<?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>JQueryTools</name>
	<version>1.0.3</version>
  <mincmsversion>1.5.1</mincmsversion>
	<help>PGgzPldoYXQgaXMgdGhpcz88L2gzPgo8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyA8YSBocmVmPSJodHRwOi8vd3d3LmpxdWVyeS5jb20iPmpRdWVyeTwvYT4gZnVuY3Rpb25hbGl0eSB0byBDTVMgTWFkZSBTaW1wbGUgcGFnZSwgYW5kIG1vZHVsZXMgKGV2ZW4gaW4gdGhlIGFkbWluIHNlY3Rpb24pLCBjb252ZW5pZW50bHkgYW5kIGVhc2lseS4gIEl0IHByb3ZpZGVzIGZ1bmN0aW9uYWxpdHkgbGlrZSBhamF4LCB0b29sdGlwcywgc29ydGFibGUgdGFibGVzLCBhbmQgYW55dGhpbmcgZWxzZSB5b3UgY2FuIGRvIHdpdGgganF1ZXJ5IGluIG9uZSBuaWNlLCBlYXN5IHRvIHVzZSBwYWNrYWdlLjwvcD4KPGgzPkhvdyBkbyBJIHVzZSBpdD88L2gzPgo8cD5UbyBlbmFibGUgSlF1ZXJ5VG9vbHMgeW91IG11c3QgaW5jbHVkZSBhdCBsZWFzdCBvbmUgdGFnIGluIHRoZSBoZWFkIHNlY3Rpb24gb2YgeW91ciBwYWdlIHRlbXBsYXRlLCBvciBpbiB0aGUgbWV0YWRhdGEgc2VjdGlvbiBvZiBlYWNoIHJlcXVpcmVkIHBhZ2UuICBVc2UgdGhpcyB0YWc6IDxjb2RlPntKUXVlcnlUb29scyBhY3Rpb249aW5janN9PC9jb2RlPjwvcD4KPHA+QWRkaXRpb25hbGx5LCB5b3UgY2FuIGluY2x1ZGUgYSBzZWNvbmQgdGFnIHRvIGluY2x1ZGUgdGhlIGphdmFzY3JpcHQgdGhhdCBwcm92aWRlcyB0aGUgZGVmYXVsdCByZWFkeSBmdW5jdGlvbi4gPGNvZGU+e0pRdWVyeVRvb2xzIGFjdGlvbj1yZWFkeX08L2NvZGU+PC9wPgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBwcm92aWRlIHNhbXBsZXMgYW5kIGluc3RydWN0aW9ucyBhcyB0byBob3cgdG8gdXNlIGpxdWVyeSBvciB0aGUgdmFyaW91cyBhZGRvbiBsaWJyYXJpZXMgdGhhdCB3ZSBpbmNsdWRlLiAgdG8gbGVhcm4gaG93IHRvIHVzZSB0aGVzZSBsaWJyYXJpZXMgeW91IHdpbGwgbmVlZCB0byByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgcGx1Z2lucyBhdCB0aGVpciByZXNwZWN0aXZlIGhvbWUgcGFnZS48L3A+CjxoMz5XaGF0IGpxdWVyeSB2ZXJzaW9uIGlzIGluY2x1ZGVkPzwvaDM+CjxwPkN1cnJlbnRseSBKUXVlcnlUb29scyB1c2VzIGpxdWVyeSAxLjIuNTwvcD4KPGgzPldoYXQgSlF1ZXJ5IHBsdWdpbnMgYXJlIGluY2x1ZGVkPC9oMz4KPHVsPgogIDxsaT5kaW1lbnNpb25zPC9saT4KICA8bGk+aG92ZXJJbnRlbnQ8L2xpPgogIDxsaT5tZXRhZGF0YTwvbGk+CjxsaT50YWJsZXNvcnRlciA8ZW0+KHNlZSA8YSBocmVmPSJodHRwOi8vdGFibGVzb3J0ZXIuY29tIj5odHRwOi8vdGFibGVzb3J0ZXIuY29tPC9hPiBmb3IgdXNhZ2UgaW5zdHJ1Y3Rpb25zKTwvZW0+CjxwPi0tIFRvIGFsbG93IHNvcnRpbmcgeW91ciB0YWJsZXMsIGdpdmUgdGhlIGZvbGx3aW5nIGNsYXNzZXMgdG8gdGhlIHRhYmxlIGRlZmluaXRpb246IGNtc19zb3J0YWJsZSB0YWJsZXNvcnRlci4gaS5lOiA8Y29kZT4mbHQ7dGFibGUgY2xhc3M9ImNtc19zb3J0YWJsZSB0YWJsZXNvcnRlciImZ3Q7Li4uJmx0Oy90YWJsZSZndDs8L2NvZGU+PC9wPgogIDwvbGk+CiAgPGxpPmNsdWV0aXAgPGVtPihzZWUgPGEgaHJlZj0iaHR0cDovL3BsdWdpbnMubGVhcm5pbmdqcXVlcnkuY29tL2NsdWV0aXAvIj5odHRwOi8vcGx1Z2lucy5sZWFybmluZ2pxdWVyeS5jb20vY2x1ZXRpcC88L2E+IGZvciB1c2FnZSBpbnN0cnVjdGlvbnMpPC9lbT48L2xpPgogIDxsaT5mb3JtIDxlbT4oc2VlIDxhIGhyZWY9Imh0dHA6Ly9tYWxzdXAuY29tL2pxdWVyeS9mb3JtLyI+aHR0cDovL21hbHN1cC5jb20vanF1ZXJ5L2Zvcm0vPC9hPiBmb3IgdXNhZ2UgaW5zdHJ1Y3Rpb25zKTwvZW0+PC9saT4KICA8bGk+bGlnaHRib3ggPGVtPihzZWUgPGEgaHJlZj0iaHR0cDovL2xlYW5kcm92aWVpcmEuY29tL3Byb2plY3RzL2pxdWVyeS9saWdodGJveC8iPmh0dHA6Ly9sZWFuZHJvdmllaXJhLmNvbS9wcm9qZWN0cy9qcXVlcnkvbGlnaHRib3gvPC9hPiBmb3IgdXNhZ2UgaW5zdHJ1Y3Rpb25zKTwvZW0+PC9saT4KICA8bGk+ZmFuY3lib3ggPGVtPihzZWUgPGEgaHJlZj0iaHR0cDovL2ZhbmN5LmtsYWRlLmx2LyI+aHR0cDovL2ZhbmN5LmtsYWRlLmx2LzwvYT4gZm9yIHVzYWdlIGluc3RydWN0aW9ucyk8L2VtPjwvbGk+CjwvdWw+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCBvciBidXkgY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2UgdmlzaXQgY2FsZ3V5XCdzCm1vZHVsZSBob21lcGFnZSBhdCA8YSBocmVmPSJodHRwOi8vY2FsZ3V5MTAwMC5jb20iPmNhbGd1eTEwMDAuY29tPC9hPi48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjxsaT5UaGUgYXV0aG9yLCBjYWxndXkxMDAwLCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkuPC9saT4gIAo8L3VsPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA4LCBSb2JlcnQgQ2FtcGJlbCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+Jmx0O2NhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcmZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgooYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4KPHA+SG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCmFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQppbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCk1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLApidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgpNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCmFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCk9yIHJlYWQgaXQgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5vbmxpbmU8L2E+PC9wPjxoMz5EZXBlbmRlbmNpZXM8L2gzPjx1bD48bGk+Q0dFeHRlbnNpb25zID0mZ3Q7IDEuMTQ8L2xpPjwvdWw+PGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gaW5jbHVkZT0iIiAtIEFwcGxpY2FibGUgb25seSB0byB0aGUgaW5janMgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3MgZXhwbGljaXRseSBpbmNsdWRpbmcgY2VydGFpbiBqcXVlcnkgcGx1Z2lucyB3aGlsc3QgZXhjbHVkaW5nIGFsbCBvdGhlcnMuICBJZiB0aGlzIHBhcmFtZXRlciBpcyBzcGVjaWZpZWQsIHRoZSBleGNsdWRlIHBhcmFtZXRlciB3aWxsIGJlIGlnbm9yZWQuICBQb3NzaWJsZSB2YWx1ZXMgYXJlIHRhYmxlc29ydGVyLGNsdWV0aXAsZm9ybS48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGV4Y2x1ZGU9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGluY2pzIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIGV4Y2x1ZGluZyBjZXJ0YWluIGpxdWVyeSBwbHVnaW5zIGZyb20gdGhlIG91dHB1dCBnZW5lcmF0ZWQuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOiB0YWJsZXNvcnRlcixjbHVldGlwLGZvcm0uPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBhY3Rpb249IiIgLSBTcGVjaWZ5IHRoZSBhY3Rpb24gdG8gYmUgY2FsbGVkLiAgUG9zc2libGUgdmFsdWVzIGFyZTo8dWw+PGxpPmluY2pzIC0gSW5jbHVkZSByZXF1aXJlZCBqYXZhc2NyaXB0IGZpbGVzLjwvbGk+PGxpPnJlYWR5IC0gT3V0cHV0IGRlZmF1bHQgcmVhZHkgZnVuY3Rpb24uPC9saT48L3VsPjwvbGk+PC91bD4=</help>
	<about>PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuMC4zPGJyIC8+PGJyIC8+Q2hhbmdlIEhpc3Rvcnk6PGJyIC8+VE9ETzxiciAvPg==</about>
	<description>A toolbox of Jquery utilities to aide in creating dynamic and fancy CMS Made Simple modules and websites</description>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.14</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.incjs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEpRdWVyeVRvb2xzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBIHRvb2xib3ggb2YgY29udmVuaWVuY2VzIHRvIHByb3ZpZGUgZHluYW1pYyBqYXZhc2NyaXB0eSBmdW5jdGlvbmFsaXR5CiMgIGZvciBDTVMgbW9kdWxlcyBhbmQgd2Vic2l0ZSBkZXNpZ25lcnMuCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiRjb25maWcgPSYgJGdDbXMtPkdldENvbmZpZygpOwoKJGJhc2V1cmwgPSAkY29uZmlnWydyb290X3VybCddLicvbW9kdWxlcy8nLiR0aGlzLT5HZXROYW1lKCkuJy9saWIvJzsKJGZtdCA9ICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIlcyI+PC9zY3JpcHQ+Jy4iXG4iOwoKJGFsbF9saWJzID0gYXJyYXkoJ2Jhc2UnLCd0YWJsZXNvcnRlcicsJ2NsdWV0aXAnLCdmb3JtJywnZmFuY3lib3gnKTsKJGJhc2VfZmlsZXMgPSBhcnJheSgnZGVwcyc9PidqcXVlcnktMS4zLjIubWluLmpzJywKCQkgICAgJ2Nzcyc9PiR0aGlzLT5HZXROYW1lKCkuJy5jc3MnKTsKCi8vIGFsbCB0aGUgZXh0cmEgbGlicmFyaWVzLgokdGFibGVzb3J0ZXJfZmlsZXMgPSBhcnJheSgnbWFpbic9PidqcXVlcnkudGFibGVzb3J0ZXIuanMnLAoJCQkgICAnZGVwcyc9PidqcXVlcnkubWV0YWRhdGEuanMnKTsKJGNsdWV0aXBfZmlsZXMgPSBhcnJheSgnbWFpbic9PidqcXVlcnkuY2x1ZXRpcC5qcycsCgkJICAgICAgICdkZXBzJz0+J2pxdWVyeS5kaW1lbnNpb25zLmpzLGpxdWVyeS5ob3ZlckludGVudC5qcycsCgkJICAgICAgICdjc3MnPT4nanF1ZXJ5LmNsdWV0aXAuY3NzJyk7CiRsaWdodGJveF9maWxlcyA9IGFycmF5KCdtYWluJz0+J2pxdWVyeS5saWdodGJveC0wLjUuanMnLAoJCQknY3NzJz0+J2pxdWVyeS5saWdodGJveC0wLjUuY3NzJyk7CiR0aGlja2JveF9maWxlcyA9IGFycmF5KCdtYWluJz0+J3RoaWNrYm94LWNvbXByZXNzZWQuanMnLAoJCQknY3NzJz0+J3RoaWNrYm94LmNzcycpOwokZmFuY3lib3hfZmlsZXMgPSBhcnJheSgnbWFpbic9PidqcXVlcnkuZmFuY3lib3gvanF1ZXJ5LmZhbmN5Ym94LTEuMi4xLnBhY2suanMnLAoJCQknZGVwcyc9PidqcXVlcnkuZWFzaW5nLjEuMy5qcycsCgkJCSdjc3MnPT4nLi4vanF1ZXJ5LmZhbmN5Ym94L2pxdWVyeS5mYW5jeWJveC5jc3MnKTsKJGZvcm1fZmlsZXMgPSBhcnJheSgnbWFpbic9PidqcXVlcnkuZm9ybS5qcycpOwoKCi8vIGFzc2VtYmxlIHRoZSBsaXN0IG9mIGxpYnJhcmllcyBhbmQgY3NzIGZpbGVzLgokdGhpcy0+X2xpYnMgPSBhcnJheSgpOwokbGlicyA9IGFycmF5KCk7CiRjc3MgPSBhcnJheSgpOwpmb3IoICRwYXNzID0gMDsgJHBhc3MgPCAyOyAkcGFzcysrICkKICB7CiAgICBmb3JlYWNoKCAkYWxsX2xpYnMgYXMgJG9uZSApCiAgICAgIHsKCSR0bXAyID0gInskb25lfV9maWxlcyI7CgkkYXJyID0gJCR0bXAyOwoJaWYoICFpc19hcnJheSgkYXJyKSApCgkgIHsKCSAgICBkaWUoJ2NvdWxkIG5vdCBmaW5kIGFycmF5ICR0bXAyJyk7CgkgIH0KCglpZiggaXNzZXQoJHBhcmFtc1snaW5jbHVkZSddKSApCgkgIHsKCSAgICAkaW5jbHVkZSA9IGV4cGxvZGUoJywnLCRwYXJhbXNbJ2luY2x1ZGUnXSk7CgkgICAgaWYoICRvbmUgIT0gJ2Jhc2UnICYmICFpbl9hcnJheSgkb25lLCRpbmNsdWRlKSApIGNvbnRpbnVlOwoJICB9CgllbHNlIGlmKCBpc3NldCgkcGFyYW1zWydleGNsdWRlJ10pICkKCSAgewoJICAgICRleGNsdWRlID0gZXhwbG9kZSgnLCcsJHBhcmFtc1snZXhjbHVkZSddKTsKCSAgICBpZiggJG9uZSAhPSAnYmFzZScgJiYgaW5fYXJyYXkoJG9uZSwkZXhjbHVkZSkgKSBjb250aW51ZTsKCSAgfQoKCWlmKCAhaW5fYXJyYXkoJG9uZSwkdGhpcy0+X2xpYnMpICkKCSAgewoJICAgICR0aGlzLT5fbGlic1tdID0gJG9uZTsKCSAgfQoKCWlmKCAkcGFzcyA9PSAwICYmIGlzc2V0KCRhcnJbJ2RlcHMnXSkgKQoJICB7CgkgICAgJGxpYnMgPSBhcnJheV9tZXJnZSgkbGlicyxleHBsb2RlKCcsJywkYXJyWydkZXBzJ10pKTsKCSAgfQoKCWlmKCAkcGFzcyA9PSAxICYmIGlzc2V0KCRhcnJbJ21haW4nXSkgKQoJICB7CgkgICAgJGxpYnMgPSBhcnJheV9tZXJnZSgkbGlicyxleHBsb2RlKCcsJywkYXJyWydtYWluJ10pKTsKCSAgfQoKCWlmKCAkcGFzcyA9PSAxICYmIGlzc2V0KCRhcnJbJ2NzcyddKSApCgkgIHsKCSAgICAkY3NzID0gYXJyYXlfbWVyZ2UoJGNzcyxleHBsb2RlKCcsJywkYXJyWydjc3MnXSkpOwoJICB9CiAgICAgIH0KCiAgICAkbGlicyA9IGFycmF5X3VuaXF1ZSgkbGlicyk7CiAgICAkY3NzID0gYXJyYXlfdW5pcXVlKCRjc3MpOwp9Cgokc21hcnR5LT5hc3NpZ24oJ2Jhc2VfdXJsJywkYmFzZXVybCk7CmlmKCBjb3VudCgkbGlicykgKQogIHsKICAgICRzbWFydHktPmFzc2lnbignbGlicycsJGxpYnMpOwogIH0KaWYoIGNvdW50KCRjc3MpICkKICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2NzcycsJGNzcyk7CiAgfQoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdpbmNqcy50cGwnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.ready.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEpRdWVyeVRvb2xzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBIHRvb2xib3ggb2YgY29udmVuaWVuY2VzIHRvIHByb3ZpZGUgZHluYW1pYyBqYXZhc2NyaXB0eSBmdW5jdGlvbmFsaXR5CiMgIGZvciBDTVMgbW9kdWxlcyBhbmQgd2Vic2l0ZSBkZXNpZ25lcnMuCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiR0X2xpYnMgPSBhcnJheSgpOwppZiggaXNfYXJyYXkoJHRoaXMtPl9saWJzKSApCiAgewogICAgZm9yZWFjaCgkdGhpcy0+X2xpYnMgYXMgJG9uZSkKICAgICAgewoJJHRfbGlic1skb25lXSA9IDE7CiAgICAgIH0KICB9CiRzbWFydHktPmFzc2lnbignanF1ZXJ5X2xpYnMnLCR0X2xpYnMpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdyZWFkeS50cGwnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/JQueryTools.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEpRdWVyeVRvb2xzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBIHRvb2xib3ggb2YgY29udmVuaWVuY2VzIHRvIHByb3ZpZGUgZHluYW1pYyBqYXZhc2NyaXB0eSBmdW5jdGlvbmFsaXR5CiMgIGZvciBDTVMgbW9kdWxlcyBhbmQgd2Vic2l0ZSBkZXNpZ25lcnMuCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KJGNnZXh0ZW5zaW9ucyA9IGNtc19qb2luX3BhdGgoJGdDbXMtPmNvbmZpZ1sncm9vdF9wYXRoJ10sJ21vZHVsZXMnLAoJCQkgICAgICAnQ0dFeHRlbnNpb25zJywnQ0dFeHRlbnNpb25zLm1vZHVsZS5waHAnKTsKaWYoICFpc19yZWFkYWJsZSggJGNnZXh0ZW5zaW9ucyApICkKewogIGVjaG8gJzxoMT48Zm9udCBjb2xvcj0icmVkIj5FUlJPUjogVGhlIENHRXh0ZW5zaW9ucyBtb2R1bGUgY291bGQgbm90IGJlIGZvdW5kLjwvZm9udD48L2gxPic7CiAgcmV0dXJuOwp9CnJlcXVpcmVfb25jZSgkY2dleHRlbnNpb25zKTsKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpjbGFzcyBKUXVlcnlUb29scyBleHRlbmRzIENHRXh0ZW5zaW9ucwp7CiAgdmFyICRsaWJzID0gJyc7CgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEpRdWVyeVRvb2xzKCkKICAgY29uc3RydWN0b3IKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBKUXVlcnlUb29scygpCiAgewogICAgcGFyZW50OjpDTVNNb2R1bGUoKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXROYW1lKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXROYW1lKCkKICB7CiAgICByZXR1cm4gJ0pRdWVyeVRvb2xzJzsKICB9CgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEZyaWVuZGx5TmFtZSgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpOwogIH0KCgkKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRWZXJzaW9uKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRWZXJzaW9uKCkKICB7CiAgICByZXR1cm4gJzEuMC4zJzsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRIZWxwKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRIZWxwKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2hlbHAnKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRBdXRob3IoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldEF1dGhvcigpCiAgewogICAgcmV0dXJuICdjYWxndXkxMDAwJzsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRBdXRob3JFbWFpbCgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKQogIHsKICAgIHJldHVybiAnY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyc7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0Q2hhbmdlTG9nKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygnY2hhbmdlbG9nJyk7CiAgfQogIAogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIElzUGx1Z2luTW9kdWxlKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpCiAgewogICAgcmV0dXJuIHRydWU7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgSGFzQWRtaW4oKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEhhc0FkbWluKCkKICB7CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0QWRtaW5TZWN0aW9uKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKQogIHsKICAgIHJldHVybiAnZXh0ZW5zaW9ucyc7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0QWRtaW5EZXNjcmlwdGlvbigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdtb2RkZXNjcmlwdGlvbicpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIFZpc2libGVUb0FkbWluVXNlcigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkKICB7CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0RGVwZW5kZW5jaWVzKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKQogIHsKICAgIHJldHVybiBhcnJheSgnQ0dFeHRlbnNpb25zJz0+JzEuMTQnKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBNaW5pbXVtQ01TVmVyc2lvbigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKQogIHsKICAgIHJldHVybiAiMS41LjEiOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIFNldFBhcmFtZXRlcnMoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIFNldFBhcmFtZXRlcnMoKQogIHsKICAgICR0aGlzLT5SZWdpc3Rlck1vZHVsZVBsdWdpbigpOwogICAgJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOwoKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpbmNsdWRlJyxDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignaW5jbHVkZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2luY2x1ZGUnKSk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZXhjbHVkZScsQ0xFQU5fU1RSSU5HKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2V4Y2x1ZGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9leGNsdWRlJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignYWN0aW9uJywnJywkdGhpcy0+TGFuZygncGFyYW1fYWN0aW9uJykpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEluc3RhbGxQb3N0TWVzc2FnZSgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBVbmluc3RhbGxQcmVNZXNzYWdlKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBVbmluc3RhbGxQcmVNZXNzYWdlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3ByZXVuaW5zdGFsbCcpOwogIH0JCgoKfSAvLyBjbGFzcwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0EKCgojQgoKCiNDCiRsYW5nWydjaGFuZ2Vsb2cnXSA9IDw8PEVPVApUT0RPCkVPVDsKCiNECgoKI0UKCgojRgokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnSlF1ZXJ5IFRvb2xib3gnOwoKCiNHCgoKI0gKJGxhbmdbJ2hlbHAnXSA9IDw8PEVPVAo8aDM+V2hhdCBpcyB0aGlzPzwvaDM+CjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIDxhIGhyZWY9Imh0dHA6Ly93d3cuanF1ZXJ5LmNvbSI+alF1ZXJ5PC9hPiBmdW5jdGlvbmFsaXR5IHRvIENNUyBNYWRlIFNpbXBsZSBwYWdlLCBhbmQgbW9kdWxlcyAoZXZlbiBpbiB0aGUgYWRtaW4gc2VjdGlvbiksIGNvbnZlbmllbnRseSBhbmQgZWFzaWx5LiAgSXQgcHJvdmlkZXMgZnVuY3Rpb25hbGl0eSBsaWtlIGFqYXgsIHRvb2x0aXBzLCBzb3J0YWJsZSB0YWJsZXMsIGFuZCBhbnl0aGluZyBlbHNlIHlvdSBjYW4gZG8gd2l0aCBqcXVlcnkgaW4gb25lIG5pY2UsIGVhc3kgdG8gdXNlIHBhY2thZ2UuPC9wPgo8aDM+SG93IGRvIEkgdXNlIGl0PzwvaDM+CjxwPlRvIGVuYWJsZSBKUXVlcnlUb29scyB5b3UgbXVzdCBpbmNsdWRlIGF0IGxlYXN0IG9uZSB0YWcgaW4gdGhlIGhlYWQgc2VjdGlvbiBvZiB5b3VyIHBhZ2UgdGVtcGxhdGUsIG9yIGluIHRoZSBtZXRhZGF0YSBzZWN0aW9uIG9mIGVhY2ggcmVxdWlyZWQgcGFnZS4gIFVzZSB0aGlzIHRhZzogPGNvZGU+e0pRdWVyeVRvb2xzIGFjdGlvbj1pbmNqc308L2NvZGU+PC9wPgo8cD5BZGRpdGlvbmFsbHksIHlvdSBjYW4gaW5jbHVkZSBhIHNlY29uZCB0YWcgdG8gaW5jbHVkZSB0aGUgamF2YXNjcmlwdCB0aGF0IHByb3ZpZGVzIHRoZSBkZWZhdWx0IHJlYWR5IGZ1bmN0aW9uLiA8Y29kZT57SlF1ZXJ5VG9vbHMgYWN0aW9uPXJlYWR5fTwvY29kZT48L3A+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IHByb3ZpZGUgc2FtcGxlcyBhbmQgaW5zdHJ1Y3Rpb25zIGFzIHRvIGhvdyB0byB1c2UganF1ZXJ5IG9yIHRoZSB2YXJpb3VzIGFkZG9uIGxpYnJhcmllcyB0aGF0IHdlIGluY2x1ZGUuICB0byBsZWFybiBob3cgdG8gdXNlIHRoZXNlIGxpYnJhcmllcyB5b3Ugd2lsbCBuZWVkIHRvIHJlYWQgdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBwbHVnaW5zIGF0IHRoZWlyIHJlc3BlY3RpdmUgaG9tZSBwYWdlLjwvcD4KPGgzPldoYXQganF1ZXJ5IHZlcnNpb24gaXMgaW5jbHVkZWQ/PC9oMz4KPHA+Q3VycmVudGx5IEpRdWVyeVRvb2xzIHVzZXMganF1ZXJ5IDEuMi41PC9wPgo8aDM+V2hhdCBKUXVlcnkgcGx1Z2lucyBhcmUgaW5jbHVkZWQ8L2gzPgo8dWw+CiAgPGxpPmRpbWVuc2lvbnM8L2xpPgogIDxsaT5ob3ZlckludGVudDwvbGk+CiAgPGxpPm1ldGFkYXRhPC9saT4KPGxpPnRhYmxlc29ydGVyIDxlbT4oc2VlIDxhIGhyZWY9Imh0dHA6Ly90YWJsZXNvcnRlci5jb20iPmh0dHA6Ly90YWJsZXNvcnRlci5jb208L2E+IGZvciB1c2FnZSBpbnN0cnVjdGlvbnMpPC9lbT4KPHA+LS0gVG8gYWxsb3cgc29ydGluZyB5b3VyIHRhYmxlcywgZ2l2ZSB0aGUgZm9sbHdpbmcgY2xhc3NlcyB0byB0aGUgdGFibGUgZGVmaW5pdGlvbjogY21zX3NvcnRhYmxlIHRhYmxlc29ydGVyLiBpLmU6IDxjb2RlPiZsdDt0YWJsZSBjbGFzcz0iY21zX3NvcnRhYmxlIHRhYmxlc29ydGVyIiZndDsuLi4mbHQ7L3RhYmxlJmd0OzwvY29kZT48L3A+CiAgPC9saT4KICA8bGk+Y2x1ZXRpcCA8ZW0+KHNlZSA8YSBocmVmPSJodHRwOi8vcGx1Z2lucy5sZWFybmluZ2pxdWVyeS5jb20vY2x1ZXRpcC8iPmh0dHA6Ly9wbHVnaW5zLmxlYXJuaW5nanF1ZXJ5LmNvbS9jbHVldGlwLzwvYT4gZm9yIHVzYWdlIGluc3RydWN0aW9ucyk8L2VtPjwvbGk+CiAgPGxpPmZvcm0gPGVtPihzZWUgPGEgaHJlZj0iaHR0cDovL21hbHN1cC5jb20vanF1ZXJ5L2Zvcm0vIj5odHRwOi8vbWFsc3VwLmNvbS9qcXVlcnkvZm9ybS88L2E+IGZvciB1c2FnZSBpbnN0cnVjdGlvbnMpPC9lbT48L2xpPgogIDxsaT5saWdodGJveCA8ZW0+KHNlZSA8YSBocmVmPSJodHRwOi8vbGVhbmRyb3ZpZWlyYS5jb20vcHJvamVjdHMvanF1ZXJ5L2xpZ2h0Ym94LyI+aHR0cDovL2xlYW5kcm92aWVpcmEuY29tL3Byb2plY3RzL2pxdWVyeS9saWdodGJveC88L2E+IGZvciB1c2FnZSBpbnN0cnVjdGlvbnMpPC9lbT48L2xpPgogIDxsaT5mYW5jeWJveCA8ZW0+KHNlZSA8YSBocmVmPSJodHRwOi8vZmFuY3kua2xhZGUubHYvIj5odHRwOi8vZmFuY3kua2xhZGUubHYvPC9hPiBmb3IgdXNhZ2UgaW5zdHJ1Y3Rpb25zKTwvZW0+PC9saT4KPC91bD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0IG9yIGJ1eSBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSB2aXNpdCBjYWxndXlcJ3MKbW9kdWxlIGhvbWVwYWdlIGF0IDxhIGhyZWY9Imh0dHA6Ly9jYWxndXkxMDAwLmNvbSI+Y2FsZ3V5MTAwMC5jb208L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4KPGxpPlRoZSBhdXRob3IsIGNhbGd1eTEwMDAsIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS48L2xpPiAgCjwvdWw+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mbHQ7Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPgo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIApzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+CkVPVDsKCgojSQoKCiNKCgoKI0sKCgojTAoKCiNNCiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0EgdG9vbGJveCBvZiBKcXVlcnkgdXRpbGl0aWVzIHRvIGFpZGUgaW4gY3JlYXRpbmcgZHluYW1pYyBhbmQgZmFuY3kgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZXMgYW5kIHdlYnNpdGVzJzsKCiNOCgoKI08KCgojUAokbGFuZ1sncGFyYW1fYWN0aW9uJ10gPSAnU3BlY2lmeSB0aGUgYWN0aW9uIHRvIGJlIGNhbGxlZC4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6PHVsPjxsaT5pbmNqcyAtIEluY2x1ZGUgcmVxdWlyZWQgamF2YXNjcmlwdCBmaWxlcy48L2xpPjxsaT5yZWFkeSAtIE91dHB1dCBkZWZhdWx0IHJlYWR5IGZ1bmN0aW9uLjwvbGk+PC91bD4nOwokbGFuZ1sncGFyYW1fZXhjbHVkZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgaW5janMgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3MgZXhjbHVkaW5nIGNlcnRhaW4ganF1ZXJ5IHBsdWdpbnMgZnJvbSB0aGUgb3V0cHV0IGdlbmVyYXRlZC4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6IHRhYmxlc29ydGVyLGNsdWV0aXAsZm9ybS4nOwokbGFuZ1sncGFyYW1faW5jbHVkZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgaW5janMgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3MgZXhwbGljaXRseSBpbmNsdWRpbmcgY2VydGFpbiBqcXVlcnkgcGx1Z2lucyB3aGlsc3QgZXhjbHVkaW5nIGFsbCBvdGhlcnMuICBJZiB0aGlzIHBhcmFtZXRlciBpcyBzcGVjaWZpZWQsIHRoZSBleGNsdWRlIHBhcmFtZXRlciB3aWxsIGJlIGlnbm9yZWQuICBQb3NzaWJsZSB2YWx1ZXMgYXJlIHRhYmxlc29ydGVyLGNsdWV0aXAsZm9ybS4nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdUaGUgSlF1ZXJ5VG9vbHMgbW9kdWxlIGhhcyBiZWVuIGluc3RhbGxlZC4uLi4gZ2V0IGNyYWNraW4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1RoZSBKUXVlcnlUb29scyBtb2R1bGUgaGFzIGJlZW4gdW5pbnN0YWxsZWQnOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnUmVtb3ZpbmcgdGhpcyBtb2R1bGUgY291bGQgZGFtYWdlIHRoZSBhcHBlYXJhbmNlIGFuZCBmdW5jdGlvbmFsaXR5IG9mIHlvdXIgd2Vic2l0ZS4gIEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjb250aW51ZT8nOwoKI1EKCgojUgoKCiNTCgoKI1QKCgojVQoKCiNWCgoKI1cKCgojWAoKCiNZCgoKI1oKCgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2NoYW5nZWxvZyddID0gJ1RPRE8gJzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0pRdWVyeSBUb29sYm94ICc7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgaXMgdGhpcz88L2gzPg0KPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgPGEgaHJlZj0iaHR0cDovL3d3dy5qcXVlcnkuY29tIj5qUXVlcnk8L2E+IGZ1bmN0aW9uYWxpdHkgdG8gQ01TIE1hZGUgU2ltcGxlIHBhZ2UsIGFuZCBtb2R1bGVzIChldmVuIGluIHRoZSBhZG1pbiBzZWN0aW9uKSwgY29udmVuaWVudGx5IGFuZCBlYXNpbHkuICBJdCBwcm92aWRlcyBmdW5jdGlvbmFsaXR5IGxpa2UgYWpheCwgdG9vbHRpcHMsIHNvcnRhYmxlIHRhYmxlcywgYW5kIGFueXRoaW5nIGVsc2UgeW91IGNhbiBkbyB3aXRoIGpxdWVyeSBpbiBvbmUgbmljZSwgZWFzeSB0byB1c2UgcGFja2FnZS48L3A+DQo8aDM+SG93IGRvIEkgdXNlIGl0PzwvaDM+DQo8cD5UbyBlbmFibGUgSlF1ZXJ5VG9vbHMgeW91IG11c3QgaW5jbHVkZSBhdCBsZWFzdCBvbmUgdGFnIGluIHRoZSBoZWFkIHNlY3Rpb24gb2YgeW91ciBwYWdlIHRlbXBsYXRlLCBvciBpbiB0aGUgbWV0YWRhdGEgc2VjdGlvbiBvZiBlYWNoIHJlcXVpcmVkIHBhZ2UuICBVc2UgdGhpcyB0YWc6IDxjb2RlPntKUXVlcnlUb29scyBhY3Rpb249aW5janN9PC9jb2RlPjwvcD4NCjxwPkFkZGl0aW9uYWxseSwgeW91IGNhbiBpbmNsdWRlIGEgc2Vjb25kIHRhZyB0byBpbmNsdWRlIHRoZSBqYXZhc2NyaXB0IHRoYXQgcHJvdmlkZXMgdGhlIGRlZmF1bHQgcmVhZHkgZnVuY3Rpb24uIDxjb2RlPntKUXVlcnlUb29scyBhY3Rpb249cmVhZHl9PC9jb2RlPjwvcD4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IHByb3ZpZGUgc2FtcGxlcyBhbmQgaW5zdHJ1Y3Rpb25zIGFzIHRvIGhvdyB0byB1c2UganF1ZXJ5IG9yIHRoZSB2YXJpb3VzIGFkZG9uIGxpYnJhcmllcyB0aGF0IHdlIGluY2x1ZGUuICB0byBsZWFybiBob3cgdG8gdXNlIHRoZXNlIGxpYnJhcmllcyB5b3Ugd2lsbCBuZWVkIHRvIHJlYWQgdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBwbHVnaW5zIGF0IHRoZWlyIHJlc3BlY3RpdmUgaG9tZSBwYWdlLjwvcD4NCjxoMz5XaGF0IGpxdWVyeSB2ZXJzaW9uIGlzIGluY2x1ZGVkPzwvaDM+DQo8cD5DdXJyZW50bHkgSlF1ZXJ5VG9vbHMgdXNlcyBqcXVlcnkgMS4yLjU8L3A+DQo8aDM+V2hhdCBKUXVlcnkgcGx1Z2lucyBhcmUgaW5jbHVkZWQ8L2gzPg0KPHVsPg0KICA8bGk+ZGltZW5zaW9uczwvbGk+DQogIDxsaT5ob3ZlckludGVudDwvbGk+DQogIDxsaT5tZXRhZGF0YTwvbGk+DQo8bGk+dGFibGVzb3J0ZXIgPGVtPihzZWUgPGEgaHJlZj0iaHR0cDovL3RhYmxlc29ydGVyLmNvbSI+aHR0cDovL3RhYmxlc29ydGVyLmNvbTwvYT4gZm9yIHVzYWdlIGluc3RydWN0aW9ucyk8L2VtPg0KPHA+LS0gVG8gYWxsb3cgc29ydGluZyB5b3VyIHRhYmxlcywgZ2l2ZSB0aGUgZm9sbHdpbmcgY2xhc3NlcyB0byB0aGUgdGFibGUgZGVmaW5pdGlvbjogY21zX3NvcnRhYmxlIHRhYmxlc29ydGVyLiBpLmU6IDxjb2RlPiZhbXA7bHQ7dGFibGUgY2xhc3M9JnF1b3Q7Y21zX3NvcnRhYmxlIHRhYmxlc29ydGVyJnF1b3Q7JmFtcDtndDsuLi4mYW1wO2x0Oy90YWJsZSZhbXA7Z3Q7PC9jb2RlPjwvcD4NCiAgPC9saT4NCiAgPGxpPmNsdWV0aXAgPGVtPihzZWUgPGEgaHJlZj0iaHR0cDovL3BsdWdpbnMubGVhcm5pbmdqcXVlcnkuY29tL2NsdWV0aXAvIj5odHRwOi8vcGx1Z2lucy5sZWFybmluZ2pxdWVyeS5jb20vY2x1ZXRpcC88L2E+IGZvciB1c2FnZSBpbnN0cnVjdGlvbnMpPC9lbT48L2xpPg0KICA8bGk+Zm9ybSA8ZW0+KHNlZSA8YSBocmVmPSJodHRwOi8vbWFsc3VwLmNvbS9qcXVlcnkvZm9ybS8iPmh0dHA6Ly9tYWxzdXAuY29tL2pxdWVyeS9mb3JtLzwvYT4gZm9yIHVzYWdlIGluc3RydWN0aW9ucyk8L2VtPjwvbGk+DQogIDxsaT5saWdodGJveCA8ZW0+KHNlZSA8YSBocmVmPSJodHRwOi8vbGVhbmRyb3ZpZWlyYS5jb20vcHJvamVjdHMvanF1ZXJ5L2xpZ2h0Ym94LyI+aHR0cDovL2xlYW5kcm92aWVpcmEuY29tL3Byb2plY3RzL2pxdWVyeS9saWdodGJveC88L2E+IGZvciB1c2FnZSBpbnN0cnVjdGlvbnMpPC9lbT48L2xpPg0KICA8bGk+ZmFuY3lib3ggPGVtPihzZWUgPGEgaHJlZj0iaHR0cDovL2ZhbmN5LmtsYWRlLmx2LyI+aHR0cDovL2ZhbmN5LmtsYWRlLmx2LzwvYT4gZm9yIHVzYWdlIGluc3RydWN0aW9ucyk8L2VtPjwvbGk+DQo8L3VsPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0IG9yIGJ1eSBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSB2aXNpdCBjYWxndXlcJiMwMzk7cw0KbW9kdWxlIGhvbWVwYWdlIGF0IDxhIGhyZWY9Imh0dHA6Ly9jYWxndXkxMDAwLmNvbSI+Y2FsZ3V5MTAwMC5jb208L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciwgY2FsZ3V5MTAwMCwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS48L2xpPiAgDQo8L3VsPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmFtcDtjb3B5OyAyMDA4LCBSb2JlcnQgQ2FtcGJlbCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+JmFtcDtsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmFtcDtndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQooYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4NCjxwPkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZA0KYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlDQppbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TDQpNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gDQpzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4NCjxwPlRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCkZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQpPciByZWFkIGl0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+b25saW5lPC9hPjwvcD4nOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdFbiB2ZXJrdCZvc2xhc2g7eWthc3NlIG1lZCBKcXVlcnkgdmVya3Qmb3NsYXNoO3kgc29tIGJpc3QmYXJpbmc7ciBpIG9wcHJldHRlbHNlIGF2IGR5bmFtaXNrZSBvZyBmYW5jeSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlciBnbyBuZXR0c3RlZGVyJzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ1NwZXNpZmlzZXIgaGFuZGxpbmdlbiBzb20gc2thbCBrYWxsZXMuIE11bGlnZSB2ZXJkaWVyIGVyOjx1bD48bGk+aW5janMgLSBJbmNsdWRlIHJlcXVpcmVkIGphdmFzY3JpcHQgZmlsZXMuPC9saT48bGk+cmVhZHkgLSBPdXRwdXQgZGVmYXVsdCByZWFkeSBmdW5jdGlvbi48L2xpPjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2V4Y2x1ZGUnXSA9ICdLdW4gZ3lsZGlnIHRpbCBpbmNqcyBoYW5kbGluZ2VuLiBEZW5uZSBwYXJhbWV0ZXJlbiB0aWxsYXRlciAmYXJpbmc7IHV0ZWx1a2tlIGJlc3RlbXRlIGpxdWVyeSBwcm9ncmFtdGlsbGVnZyBmcmEgdmlzbmluZ2VuIHNvbSBnZW5lcmVyZXMuIE11bGlnZSB2ZXJkaWVyIGVyOiB0YWJsZXNvcnRlcixjbHVldGlwLGZvcm0uJzsKJGxhbmdbJ3BhcmFtX2luY2x1ZGUnXSA9ICdLdW4gZ3lsZGlnIHRpbCBpbmNqcyBoYW5kbGluZ2VuLiBEZW5uZSBwYXJhbWV0ZXJlbiB0aWxhbHRlciAmYXJpbmc7IGVrc3BsaXNpdHQgaW5rbHVkZXJlIGJlc3RlbXRlIGpxdWVyeSBwcm9ncmFtdGlsbGVnZyBvZyB1dGVsdWtrZSBhbGxlIGFuZHJlLiBPbSBkZW5uZSBwYXJhbWV0ZXJlbiBlciBzcGVzaWZpc2VydCwgdmlsIGVrc2x1ZGVyIHBhcmFtZXRlcmVuIGJsaSBpZ25vcmVydC4gIE11bGlnZSB2ZXJkaWVyIGVyIHRhYmxlc29ydGVyLGNsdWV0aXAsZm9ybS4nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdKUXVlcnlUb29scyBtb2R1bGVuIGFociBibGl0dCBpbnN0YWxsZXJ0Li4uLiBwciZvc2xhc2g7diBkZW4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0pRdWVyeVRvb2xzIG1vZHVsZW4gaGFyIGJsaXR0IGF2aW5zdGFsbGVydCc7CiRsYW5nWydwcmV1bmluc3RhbGwnXSA9ICcmQXJpbmc7IGZqZXJuZSBkZW5uZSBtb2R1bGVuIGthbiBza2FkZSBvcHBmJm9zbGFzaDtyc2VsZW4gb2cgZnVua3Nqb25hbGl0ZXRlbiBwJmFyaW5nOyBkaXR0IG5ldHRzdGVkLiBFciBkdSBzaWtrZXIgcCZhcmluZzsgYXQgZHUgdmlsIGZvcnRzZXR0ZSBhdmluc3RhbGxhc2pvbmVuPyc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMzgxMDUzNjIuMTA2Ny4yOS51dG1jc3I9dGhlbWVzLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjbj0ocmVmZXJyYWwpfHV0bWNtZD1yZWZlcnJhbHx1dG1jY3Q9Lyc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjE3OTA1MjYyMzA4NDExMDEwMC4xMjEwNDIzNTc3LjEyMzgxMDUzNjIuMTIzODE3NjMyMi4xMDY4JzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1My4zLjEwLjEyMzgxNzYzMjInOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2NoYW5nZWxvZyddID0gJ1RFIERPRU4nOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnSlF1ZXJ5IFRvb2xib3ggJzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBpcyB0aGlzPzwvaDM+DQo8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyA8YSBocmVmPSJodHRwOi8vd3d3LmpxdWVyeS5jb20iPmpRdWVyeTwvYT4gZnVuY3Rpb25hbGl0eSB0byBDTVMgTWFkZSBTaW1wbGUgcGFnZSwgYW5kIG1vZHVsZXMgKGV2ZW4gaW4gdGhlIGFkbWluIHNlY3Rpb24pLCBjb252ZW5pZW50bHkgYW5kIGVhc2lseS4gIEl0IHByb3ZpZGVzIGZ1bmN0aW9uYWxpdHkgbGlrZSBhamF4LCB0b29sdGlwcywgc29ydGFibGUgdGFibGVzLCBhbmQgYW55dGhpbmcgZWxzZSB5b3UgY2FuIGRvIHdpdGgganF1ZXJ5IGluIG9uZSBuaWNlLCBlYXN5IHRvIHVzZSBwYWNrYWdlLjwvcD4NCjxoMz5Ib3cgZG8gSSB1c2UgaXQ/PC9oMz4NCjxwPlRvIGVuYWJsZSBKUXVlcnlUb29scyB5b3UgbXVzdCBpbmNsdWRlIGF0IGxlYXN0IG9uZSB0YWcgaW4gdGhlIGhlYWQgc2VjdGlvbiBvZiB5b3VyIHBhZ2UgdGVtcGxhdGUsIG9yIGluIHRoZSBtZXRhZGF0YSBzZWN0aW9uIG9mIGVhY2ggcmVxdWlyZWQgcGFnZS4gIFVzZSB0aGlzIHRhZzogPGNvZGU+e0pRdWVyeVRvb2xzIGFjdGlvbj1pbmNqc308L2NvZGU+PC9wPg0KPHA+QWRkaXRpb25hbGx5LCB5b3UgY2FuIGluY2x1ZGUgYSBzZWNvbmQgdGFnIHRvIGluY2x1ZGUgdGhlIGphdmFzY3JpcHQgdGhhdCBwcm92aWRlcyB0aGUgZGVmYXVsdCByZWFkeSBmdW5jdGlvbi4gPGNvZGU+e0pRdWVyeVRvb2xzIGFjdGlvbj1yZWFkeX08L2NvZGU+PC9wPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgcHJvdmlkZSBzYW1wbGVzIGFuZCBpbnN0cnVjdGlvbnMgYXMgdG8gaG93IHRvIHVzZSBqcXVlcnkgb3IgdGhlIHZhcmlvdXMgYWRkb24gbGlicmFyaWVzIHRoYXQgd2UgaW5jbHVkZS4gIHRvIGxlYXJuIGhvdyB0byB1c2UgdGhlc2UgbGlicmFyaWVzIHlvdSB3aWxsIG5lZWQgdG8gcmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHBsdWdpbnMgYXQgdGhlaXIgcmVzcGVjdGl2ZSBob21lIHBhZ2UuPC9wPg0KPGgzPldoYXQganF1ZXJ5IHZlcnNpb24gaXMgaW5jbHVkZWQ/PC9oMz4NCjxwPkN1cnJlbnRseSBKUXVlcnlUb29scyB1c2VzIGpxdWVyeSAxLjIuNTwvcD4NCjxoMz5XaGF0IEpRdWVyeSBwbHVnaW5zIGFyZSBpbmNsdWRlZDwvaDM+DQo8dWw+DQogIDxsaT5kaW1lbnNpb25zPC9saT4NCiAgPGxpPmhvdmVySW50ZW50PC9saT4NCiAgPGxpPm1ldGFkYXRhPC9saT4NCiAgPGxpPnRhYmxlc29ydGVyDQo8cD4tLSBUbyBhbGxvdyBzb3J0aW5nIHlvdXIgdGFibGVzLCBnaXZlIHRoZSBmb2xsd2luZyBjbGFzc2VzIHRvIHRoZSB0YWJsZSBkZWZpbml0aW9uOiBjbXNfc29ydGFibGUgdGFibGVzb3J0ZXIuIGkuZTogPGNvZGU+JmFtcDtsdDt0YWJsZSBjbGFzcz0mcXVvdDtjbXNfc29ydGFibGUgdGFibGVzb3J0ZXImcXVvdDsmYW1wO2d0Oy4uLiZhbXA7bHQ7L3RhYmxlJmFtcDtndDs8L2NvZGU+PC9wPg0KICA8L2xpPg0KICA8bGk+Y2x1ZXRpcDwvbGk+DQogIDxsaT5mb3JtPC9saT4NCiAgPGxpPmxpZ2h0Ym94PC9saT4NCjwvdWw+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQgb3IgYnV5IGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHZpc2l0IGNhbGd1eVwmIzAzOTtzDQptb2R1bGUgaG9tZXBhZ2UgYXQgPGEgaHJlZj0iaHR0cDovL2NhbGd1eTEwMDAuY29tIj5jYWxndXkxMDAwLmNvbTwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yLCBjYWxndXkxMDAwLCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LjwvbGk+ICANCjwvdWw+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmYW1wO2NvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mYW1wO2x0O2NhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcmYW1wO2d0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPg0KPHA+SG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkDQphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUNCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMNCk1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiANCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPg0KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQpidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCk9yIHJlYWQgaXQgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5vbmxpbmU8L2E+PC9wPic7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0EgdG9vbGJveCBvZiBKcXVlcnkgdXRpbGl0aWVzIHRvIGFpZGUgaW4gY3JlYXRpbmcgZHluYW1pYyBhbmQgZmFuY3kgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZXMgYW5kIHdlYnNpdGVzJzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ1NwZWNpZnkgdGhlIGFjdGlvbiB0byBiZSBjYWxsZWQuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOjx1bD48bGk+aW5janMgLSBJbmNsdWRlIHJlcXVpcmVkIGphdmFzY3JpcHQgZmlsZXMuPC9saT48bGk+cmVhZHkgLSBPdXRwdXQgZGVmYXVsdCByZWFkeSBmdW5jdGlvbi48L2xpPjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2V4Y2x1ZGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGluY2pzIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIGV4Y2x1ZGluZyBjZXJ0YWluIGpxdWVyeSBwbHVnaW5zIGZyb20gdGhlIG91dHB1dCBnZW5lcmF0ZWQuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOiB0YWJsZXNvcnRlcixjbHVldGlwLGZvcm0uJzsKJGxhbmdbJ3BhcmFtX2luY2x1ZGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGluY2pzIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIGV4cGxpY2l0bHkgaW5jbHVkaW5nIGNlcnRhaW4ganF1ZXJ5IHBsdWdpbnMgd2hpbHN0IGV4Y2x1ZGluZyBhbGwgb3RoZXJzLiAgSWYgdGhpcyBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVkLCB0aGUgZXhjbHVkZSBwYXJhbWV0ZXIgd2lsbCBiZSBpZ25vcmVkLiAgUG9zc2libGUgdmFsdWVzIGFyZSB0YWJsZXNvcnRlcixjbHVldGlwLGZvcm0uJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnRGUgSlF1ZXJ5VG9vbHMgbW9kdWxlIGlzIGdlJml1bWw7bnN0YWxsZWVyZCc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnRGUgSlF1ZXJ5VG9vbHMgbW9kdWxlIGlzIHZlcndpamRlcmQnOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnSGV0IHZlcndpamRlcmVuIHZhbiBkZXplIG1vZHVsZSBrYW4gZGUgdmVydG9uaW5nIGVuIGRlIGZ1bmN0aW9uYWxpdGVpdCB2YW4gdXcgd2Vic2l0ZSBzY2hhZGUgdG9lIGJyZW5nZW4uIFdpbHQgdSB6ZWtlciBkYXQgdSB3aWx0IGRvb3JnYWFuPyc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjc5OTk2OTA1MC4xMjI1MDI0MDU2LjEyMzU5OTk0MjUuMTIzNjAwNzc4NS40MCc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMzIzNTU3ODkuNS4zLnV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY249KHJlZmVycmFsKXx1dG1jbWQ9cmVmZXJyYWx8dXRtY2N0PS9pbmRleC5waHAvdG9waWMsMjk4NjYuMC5odG1sJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sv_SE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2NoYW5nZWxvZyddID0gJ0F0dCBnJm91bWw7cmEnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnSlF1ZXJ5LVRvb2xib3gnOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IGlzIHRoaXM/PC9oMz4NCjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIDxhIGhyZWY9Imh0dHA6Ly93d3cuanF1ZXJ5LmNvbSI+alF1ZXJ5PC9hPiBmdW5jdGlvbmFsaXR5IHRvIENNUyBNYWRlIFNpbXBsZSBwYWdlLCBhbmQgbW9kdWxlcyAoZXZlbiBpbiB0aGUgYWRtaW4gc2VjdGlvbiksIGNvbnZlbmllbnRseSBhbmQgZWFzaWx5LiAgSXQgcHJvdmlkZXMgZnVuY3Rpb25hbGl0eSBsaWtlIGFqYXgsIHRvb2x0aXBzLCBzb3J0YWJsZSB0YWJsZXMsIGFuZCBhbnl0aGluZyBlbHNlIHlvdSBjYW4gZG8gd2l0aCBqcXVlcnkgaW4gb25lIG5pY2UsIGVhc3kgdG8gdXNlIHBhY2thZ2UuPC9wPg0KPGgzPkhvdyBkbyBJIHVzZSBpdD88L2gzPg0KPHA+VG8gZW5hYmxlIEpRdWVyeVRvb2xzIHlvdSBtdXN0IGluY2x1ZGUgYXQgbGVhc3Qgb25lIHRhZyBpbiB0aGUgaGVhZCBzZWN0aW9uIG9mIHlvdXIgcGFnZSB0ZW1wbGF0ZSwgb3IgaW4gdGhlIG1ldGFkYXRhIHNlY3Rpb24gb2YgZWFjaCByZXF1aXJlZCBwYWdlLiAgVXNlIHRoaXMgdGFnOiA8Y29kZT57SlF1ZXJ5VG9vbHMgYWN0aW9uPWluY2pzfTwvY29kZT48L3A+DQo8cD5BZGRpdGlvbmFsbHksIHlvdSBjYW4gaW5jbHVkZSBhIHNlY29uZCB0YWcgdG8gaW5jbHVkZSB0aGUgamF2YXNjcmlwdCB0aGF0IHByb3ZpZGVzIHRoZSBkZWZhdWx0IHJlYWR5IGZ1bmN0aW9uLiA8Y29kZT57SlF1ZXJ5VG9vbHMgYWN0aW9uPXJlYWR5fTwvY29kZT4NCjxoMz5XaGF0IGpxdWVyeSB2ZXJzaW9uIGlzIGluY2x1ZGVkPzwvaDM+DQo8cD5DdXJyZW50bHkgSlF1ZXJ5VG9vbHMgdXNlcyBqcXVlcnkgMS4yLjU8L3A+DQo8aDM+V2hhdCBwbHVnaW5zIGFyZSBpbmNsdWRlZDwvaDM+DQo8dWw+DQogIDxsaT5kaW1lbnNpb25zPC9saT4NCiAgPGxpPmhvdmVySW50ZW50PC9saT4NCiAgPGxpPm1ldGFkYXRhPC9saT4NCiAgPGxpPnRhYmxlc29ydGVyDQo8cD4tLSBUbyBhbGxvdyBzb3J0aW5nIHlvdXIgdGFibGVzLCBnaXZlIHRoZSBmb2xsd2luZyBjbGFzc2VzIHRvIHRoZSB0YWJsZSBkZWZpbml0aW9uOiBjbXNfc29ydGFibGUgdGFibGVzb3J0ZXIuIGkuZTogPGNvZGU+PHRhYmxlIGNsYXNzPSZxdW90O2Ntc19zb3J0YWJsZSB0YWJsZXNvcnRlciZxdW90Oz4uLi48L3RhYmxlPjwvY29kZT48L3A+DQogIDwvbGk+DQogIDxsaT5jbHVldGlwPC9saT4NCiAgPGxpPmZvcm08L2xpPg0KPC91bD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCBvciBidXkgY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2UgdmlzaXQgY2FsZ3V5XCYjMDM5O3MNCm1vZHVsZSBob21lcGFnZSBhdCA8YSBocmVmPSJodHRwOi8vY2FsZ3V5MTAwMC5jb20iPmNhbGd1eTEwMDAuY29tPC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IsIGNhbGd1eTEwMDAsIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkuPC9saT4gIA0KPC91bD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA4LCBSb2JlcnQgQ2FtcGJlbCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+PGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmc+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+DQo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQNCmFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQ0KaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUw0KTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIA0Kc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS48L3A+DQo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQpNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCmFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+JzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnRW4gdmVya3R5Z3NsJmFyaW5nO2RhIHRpbGwgSnF1ZXJ5IGYmb3VtbDtyIGF0dCBza2FwYSBkeW5hbWlza2Egb2NoIHZhY2tyYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlciBvY2ggd2ViYnBsYXRzZXInOwokbGFuZ1sncGFyYW1fYWN0aW9uJ10gPSAnU3BlY2lmeSB0aGUgYWN0aW9uIHRvIGJlIGNhbGxlZC4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6PHVsPjxsaT5pbmNqcyAtIEluY2x1ZGUgcmVxdWlyZWQgamF2YXNjcmlwdCBmaWxlcy48L2xpPjxsaT5yZWFkeSAtIE91dHB1dCBkZWZhdWx0IHJlYWR5IGZ1bmN0aW9uLjwvbGk+PC91bD4nOwokbGFuZ1sncGFyYW1fZXhjbHVkZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgaW5janMgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3MgZXhjbHVkaW5nIGNlcnRhaW4ganF1ZXJ5IHBsdWdpbnMgZnJvbSB0aGUgb3V0cHV0IGdlbmVyYXRlZC4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6IHRhYmxlc29ydGVyLGNsdWV0aXAsZm9ybS4nOwokbGFuZ1sncGFyYW1faW5jbHVkZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgaW5janMgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3MgZXhwbGljaXRseSBpbmNsdWRpbmcgY2VydGFpbiBqcXVlcnkgcGx1Z2lucyB3aGlsc3QgZXhjbHVkaW5nIGFsbCBvdGhlcnMuICBJZiB0aGlzIHBhcmFtZXRlciBpcyBzcGVjaWZpZWQsIHRoZSBleGNsdWRlIHBhcmFtZXRlciB3aWxsIGJlIGlnbm9yZWQuICBQb3NzaWJsZSB2YWx1ZXMgYXJlIHRhYmxlc29ydGVyLGNsdWV0aXAsZm9ybS4nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdKUXVlcnlUb29scyBtb2R1bGVuICZhdW1sO3IgbnUgaW5zdGFsbGVyYWQhJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdKUXVlcnlUb29scyBtb2R1bGVuICZhdW1sO3IgbnUgYXZpbnN0YWxsZXJhZCEnOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnQm9ydHRhZ25pbmcgYXYgZGVuIGgmYXVtbDtyIG1vZHVsZW4ga2FuIHNrYWRhIHV0c2VlbmRldCBvY2ggZnVua3Rpb25hbGl0ZXRlbiBwJmFyaW5nOyBkaW4gd2ViYnBsYXRzLiAmQXVtbDtyIGR1IHMmYXVtbDtrZXIgcCZhcmluZzsgYXR0IGR1IHZpbGwgZm9ydHMmYXVtbDt0dGE/JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTg0NDg1NDMyNjU1NzM3ODAwMC4xMjIwNzEyMDE2LjEyMzM1MDUzMDMuMTIzMzUxMDkwNi4zMTQnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjMzNTA1MzAzLjMxMy4zMC51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9Zm9ydW0uY21zbWFkZXNpbXBsZS5vcmd8dXRtY2N0PS98dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/css/jquery.cluetip.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogZ2xvYmFsICovDQojY2x1ZXRpcC1jbG9zZSBpbWcgew0KICBib3JkZXI6IDA7DQp9DQojY2x1ZXRpcC10aXRsZSB7DQogIG92ZXJmbG93OiBoaWRkZW47DQp9DQojY2x1ZXRpcC10aXRsZSAjY2x1ZXRpcC1jbG9zZSB7DQogIGZsb2F0OiByaWdodDsNCiAgcG9zaXRpb246IHJlbGF0aXZlOw0KfQ0KI2NsdWV0aXAtd2FpdGltYWdlIHsNCiAgd2lkdGg6IDQzcHg7DQogIGhlaWdodDogMTFweDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1ncy93YWl0LmdpZik7DQp9DQouY2x1ZXRpcC1hcnJvd3Mgew0KICBkaXNwbGF5OiBub25lOw0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHRvcDogMDsNCiAgbGVmdDogLTExcHg7DQogIGhlaWdodDogMjJweDsNCiAgd2lkdGg6IDExcHg7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDsNCn0NCiNjbHVldGlwLWV4dHJhIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiAgID1jbHVldGlwQ2xhc3M6ICdkZWZhdWx0JyANCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQouY2x1ZXRpcC1kZWZhdWx0IHsNCiAgYmFja2dyb3VuZC1jb2xvcjojZmZmOw0KICANCn0NCi5jbHVldGlwLWRlZmF1bHQgI2NsdWV0aXAtb3V0ZXIgew0KICBwb3NpdGlvbjogcmVsYXRpdmU7DQogIG1hcmdpbjogMDsNCiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsNCn0NCi5jbHVldGlwLWRlZmF1bHQgaDMjY2x1ZXRpcC10aXRsZSB7DQoJbWFyZ2luOiAwIDAgNXB4Ow0KCXBhZGRpbmc6IDhweCAxMHB4IDRweDsNCglmb250LXNpemU6IDEuMWVtOw0KCWZvbnQtd2VpZ2h0OiBub3JtYWw7DQoJYmFja2dyb3VuZC1jb2xvcjogIzRCNEI0QjsNCgljb2xvcjogI2ZmZjsNCn0NCi5jbHVldGlwLWRlZmF1bHQgI2NsdWV0aXAtdGl0bGUgYSB7DQogIGNvbG9yOiAjY2NjOw0KICBmb250LXNpemU6IDAuOTVlbTsNCn0gIA0KLmNsdWV0aXAtZGVmYXVsdCAjY2x1ZXRpcC1pbm5lciB7DQogIHBhZGRpbmc6IDEwcHg7DQp9DQouY2x1ZXRpcC1kZWZhdWx0IGRpdiNjbHVldGlwLWNsb3NlIHsgDQogIHRleHQtYWxpZ246IHJpZ2h0Ow0KICBtYXJnaW46IDAgNXB4IDVweDsNCiAgY29sb3I6ICM5MDA7DQp9DQoNCi8qIGRlZmF1bHQgYXJyb3dzICovDQoNCi5jbHVlLXJpZ2h0LWRlZmF1bHQgLmNsdWV0aXAtYXJyb3dzIHsNCiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZ3MvY2x1ZXRpcC9kYXJyb3dsZWZ0LmdpZik7DQp9DQouY2x1ZS1sZWZ0LWRlZmF1bHQgLmNsdWV0aXAtYXJyb3dzIHsNCiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZ3MvY2x1ZXRpcC9kYXJyb3dyaWdodC5naWYpOw0KICBsZWZ0OiAxMDAlOw0KICBtYXJnaW4tcmlnaHQ6IC0xMXB4Ow0KfQ0KLmNsdWUtdG9wLWRlZmF1bHQgLmNsdWV0aXAtYXJyb3dzIHsNCiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZ3MvY2x1ZXRpcC9kYXJyb3dkb3duLmdpZik7DQogIHRvcDogMTAwJTsNCiAgbGVmdDogNTAlOw0KICBtYXJnaW4tbGVmdDogLTExcHg7DQogIGhlaWdodDogMTFweDsNCiAgd2lkdGg6IDIycHg7ICANCn0gIA0KLmNsdWUtYm90dG9tLWRlZmF1bHQgLmNsdWV0aXAtYXJyb3dzIHsNCiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZ3MvY2x1ZXRpcC9kYXJyb3d1cC5naWYpOw0KICB0b3A6IC0xMXB4Ow0KICBsZWZ0OiA1MCU7DQogIG1hcmdpbi1sZWZ0OiAtMTFweDsNCiAgaGVpZ2h0OiAxMXB4Ow0KICB3aWR0aDogMjJweDsNCn0NCg0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KICAgPWNsdWV0aXBDbGFzczogJ2p0aXAnDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLw0KLmNsdWV0aXAtanRpcCB7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KfQ0KLmNsdWV0aXAtanRpcCAjY2x1ZXRpcC1vdXRlciB7DQogIGJvcmRlcjogMnB4IHNvbGlkICNjY2M7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsNCn0NCg0KLmNsdWV0aXAtanRpcCBoMyNjbHVldGlwLXRpdGxlIHsNCiAgbWFyZ2luOiAwIDAgNXB4Ow0KICBwYWRkaW5nOiAycHggNXB4Ow0KICBmb250LXNpemU6IDE2cHg7DQogIGZvbnQtd2VpZ2h0OiBub3JtYWw7DQogIGJhY2tncm91bmQtY29sb3I6ICNjY2M7DQogIGNvbG9yOiAjMzMzOw0KfQ0KDQouY2x1ZXRpcC1qdGlwICNjbHVldGlwLWlubmVyIHsNCiAgcGFkZGluZzogMCA1cHggNXB4Ow0KICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQp9DQouY2x1ZXRpcC1qdGlwIGRpdiNjbHVldGlwLWNsb3NlIHsgDQogIHRleHQtYWxpZ246IHJpZ2h0Ow0KICBtYXJnaW46IDAgNXB4IDVweDsNCiAgY29sb3I6ICM5MDA7DQp9DQoNCi8qIGp0aXAgYXJyb3dzICovDQoNCi5jbHVlLXJpZ2h0LWp0aXAgLmNsdWV0aXAtYXJyb3dzIHsNCiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZ3MvY2x1ZXRpcC9hcnJvd2xlZnQuZ2lmKTsNCn0NCi5jbHVlLWxlZnQtanRpcCAuY2x1ZXRpcC1hcnJvd3Mgew0KICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1ncy9jbHVldGlwL2Fycm93cmlnaHQuZ2lmKTsNCiAgbGVmdDogMTAwJTsNCiAgbWFyZ2luLXJpZ2h0OiAtMTFweDsNCn0NCi5jbHVlLXRvcC1qdGlwIC5jbHVldGlwLWFycm93cyB7DQogIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWdzL2NsdWV0aXAvYXJyb3dkb3duLmdpZik7DQogIHRvcDogMTAwJTsNCiAgbGVmdDogNTAlOw0KICBtYXJnaW4tbGVmdDogLTExcHg7DQogIGhlaWdodDogMTFweDsNCiAgd2lkdGg6IDIycHg7ICANCn0gIA0KLmNsdWUtYm90dG9tLWp0aXAgLmNsdWV0aXAtYXJyb3dzIHsNCiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZ3MvY2x1ZXRpcC9hcnJvd3VwLmdpZik7DQogIHRvcDogLTExcHg7DQogIGxlZnQ6IDUwJTsNCiAgbWFyZ2luLWxlZnQ6IC0xMXB4Ow0KICBoZWlnaHQ6IDExcHg7DQogIHdpZHRoOiAyMnB4Ow0KfQ0KDQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQogICA9Y2x1ZXRpcENsYXNzOiAncm91bmRlZCcNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQoNCi5jbHVldGlwLXJvdW5kZWQgew0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoLi4vaW1ncy9jbHVldGlwL2JsLmdpZikgbm8tcmVwZWF0IDAgMTAwJTsNCiAgbWFyZ2luLXRvcDogMTBweDsNCiAgbWFyZ2luLWxlZnQ6IDEycHg7DQp9DQoNCi5jbHVldGlwLXJvdW5kZWQgI2NsdWV0aXAtb3V0ZXIgew0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoLi4vaW1ncy9jbHVldGlwL3RsLmdpZikgbm8tcmVwZWF0IDAgMDsNCiAgbWFyZ2luLXRvcDogLTEycHg7DQp9DQoNCi5jbHVldGlwLXJvdW5kZWQgI2NsdWV0aXAtdGl0bGUgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgcGFkZGluZzogMTJweCAxMnB4IDA7DQogIG1hcmdpbjogMCAtMTJweCAwIDA7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCn0NCi5jbHVldGlwLXJvdW5kZWQgI2NsdWV0aXAtZXh0cmEgew0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoLi4vaW1ncy9jbHVldGlwL3RyLmdpZikgbm8tcmVwZWF0IDEwMCUgMDsNCiAgdG9wOiAwOw0KICByaWdodDogMDsNCiAgd2lkdGg6IDEycHg7DQogIGhlaWdodDogMzBweDsNCiAgbWFyZ2luOiAtMTJweCAtMTJweCAwIDA7DQp9DQouY2x1ZXRpcC1yb3VuZGVkICNjbHVldGlwLWlubmVyIHsNCiAgYmFja2dyb3VuZDogdXJsKC4uL2ltZ3MvY2x1ZXRpcC9ici5naWYpIG5vLXJlcGVhdCAxMDAlIDEwMCU7DQogIHBhZGRpbmc6IDVweCAxMnB4IDEycHg7DQogIG1hcmdpbjogLTE4cHggLTEycHggMCAwOw0KICBwb3NpdGlvbjogcmVsYXRpdmU7DQp9DQoNCi5jbHVldGlwLXJvdW5kZWQgZGl2I2NsdWV0aXAtY2xvc2UgeyANCiAgdGV4dC1hbGlnbjogcmlnaHQ7DQogIG1hcmdpbjogMCA1cHggNXB4Ow0KICBjb2xvcjogIzAwOTsNCiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQp9DQouY2x1ZXRpcC1yb3VuZGVkIGRpdiNjbHVldGlwLWNsb3NlIGEgew0KICBjb2xvcjogIzc3NzsNCn0NCg0KLyogcm91bmRlZCBhcnJvd3MgKi8NCg0KLmNsdWUtcmlnaHQtcm91bmRlZCAuY2x1ZXRpcC1hcnJvd3Mgew0KICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1ncy9jbHVldGlwL3JhcnJvd2xlZnQuZ2lmKTsNCn0NCi5jbHVlLWxlZnQtcm91bmRlZCAuY2x1ZXRpcC1hcnJvd3Mgew0KICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1ncy9jbHVldGlwL3JhcnJvd3JpZ2h0LmdpZik7DQogIGxlZnQ6IDEwMCU7DQogIG1hcmdpbi1sZWZ0OiAxMnB4Ow0KfQ0KLmNsdWUtdG9wLXJvdW5kZWQgLmNsdWV0aXAtYXJyb3dzIHsNCiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZ3MvY2x1ZXRpcC9yYXJyb3dkb3duLmdpZik7DQogIHRvcDogMTAwJTsNCiAgbGVmdDogNTAlOw0KICBtYXJnaW4tbGVmdDogLTExcHg7DQogIGhlaWdodDogMTFweDsNCiAgd2lkdGg6IDIycHg7ICANCn0gIA0KLmNsdWUtYm90dG9tLXJvdW5kZWQgLmNsdWV0aXAtYXJyb3dzIHsNCiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZ3MvY2x1ZXRpcC9yYXJyb3d1cC5naWYpOw0KICB0b3A6IC0yM3B4Ow0KICBsZWZ0OiA1MCU7DQogIG1hcmdpbi1sZWZ0OiAtMTFweDsNCiAgaGVpZ2h0OiAxMXB4Ow0KICB3aWR0aDogMjJweDsNCn0NCg0KDQoNCi8qIHN0dXBpZCBJRTYgSGFzTGF5b3V0IGhhY2sgKi8NCi5jbHVldGlwLXJvdW5kZWQgI2NsdWV0aXAtdGl0bGUsDQouY2x1ZXRpcC1yb3VuZGVkICNjbHVldGlwLWlubmVyIHsNCiAgem9vbTogMTsNCn0NCg==]]></data>
	</file>
	<file>
	  <filename>/lib/css/jquery.lightbox-0.5.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqDQogKiBqUXVlcnkgbGlnaHRCb3ggcGx1Z2luDQogKiBUaGlzIGpRdWVyeSBwbHVnaW4gd2FzIGluc3BpcmVkIGFuZCBiYXNlZCBvbiBMaWdodGJveCAyIGJ5IExva2VzaCBEaGFrYXIgKGh0dHA6Ly93d3cuaHVkZGxldG9nZXRoZXIuY29tL3Byb2plY3RzL2xpZ2h0Ym94Mi8pDQogKiBhbmQgYWRhcHRlZCB0byBtZSBmb3IgdXNlIGxpa2UgYSBwbHVnaW4gZnJvbSBqUXVlcnkuDQogKiBAbmFtZSBqcXVlcnktbGlnaHRib3gtMC41LmNzcw0KICogQGF1dGhvciBMZWFuZHJvIFZpZWlyYSBQaW5obyAtIGh0dHA6Ly9sZWFuZHJvdmllaXJhLmNvbQ0KICogQHZlcnNpb24gMC41DQogKiBAZGF0ZSBBcHJpbCAxMSwgMjAwOA0KICogQGNhdGVnb3J5IGpRdWVyeSBwbHVnaW4NCiAqIEBjb3B5cmlnaHQgKGMpIDIwMDggTGVhbmRybyBWaWVpcmEgUGluaG8gKGxlYW5kcm92aWVpcmEuY29tKQ0KICogQGxpY2Vuc2UgQ0MgQXR0cmlidXRpb24tTm8gRGVyaXZhdGl2ZSBXb3JrcyAyLjUgQnJhemlsIC0gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktbmQvMi41L2JyL2RlZWQuZW5fVVMNCiAqIEBleGFtcGxlIFZpc2l0IGh0dHA6Ly9sZWFuZHJvdmllaXJhLmNvbS9wcm9qZWN0cy9qcXVlcnkvbGlnaHRib3gvIGZvciBtb3JlIGluZm9ybWF0aW9ucyBhYm91dCB0aGlzIGpRdWVyeSBwbHVnaW4NCiAqLw0KI2pxdWVyeS1vdmVybGF5IHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiAwOw0KCWxlZnQ6IDA7DQoJei1pbmRleDogOTA7DQoJd2lkdGg6IDEwMCU7DQoJaGVpZ2h0OiA1MDBweDsNCn0NCiNqcXVlcnktbGlnaHRib3ggew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl0b3A6IDA7DQoJbGVmdDogMDsNCgl3aWR0aDogMTAwJTsNCgl6LWluZGV4OiAxMDA7DQoJdGV4dC1hbGlnbjogY2VudGVyOw0KCWxpbmUtaGVpZ2h0OiAwOw0KfQ0KI2pxdWVyeS1saWdodGJveCBhIGltZyB7IGJvcmRlcjogbm9uZTsgfQ0KI2xpZ2h0Ym94LWNvbnRhaW5lci1pbWFnZS1ib3ggew0KCXBvc2l0aW9uOiByZWxhdGl2ZTsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOw0KCXdpZHRoOiAyNTBweDsNCgloZWlnaHQ6IDI1MHB4Ow0KCW1hcmdpbjogMCBhdXRvOw0KfQ0KI2xpZ2h0Ym94LWNvbnRhaW5lci1pbWFnZSB7IHBhZGRpbmc6IDEwcHg7IH0NCiNsaWdodGJveC1sb2FkaW5nIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiA0MCU7DQoJbGVmdDogMCU7DQoJaGVpZ2h0OiAyNSU7DQoJd2lkdGg6IDEwMCU7DQoJdGV4dC1hbGlnbjogY2VudGVyOw0KCWxpbmUtaGVpZ2h0OiAwOw0KfQ0KI2xpZ2h0Ym94LW5hdiB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXRvcDogMDsNCglsZWZ0OiAwOw0KCWhlaWdodDogMTAwJTsNCgl3aWR0aDogMTAwJTsNCgl6LWluZGV4OiAxMDsNCn0NCiNsaWdodGJveC1jb250YWluZXItaW1hZ2UtYm94ID4gI2xpZ2h0Ym94LW5hdiB7IGxlZnQ6IDA7IH0NCiNsaWdodGJveC1uYXYgYSB7IG91dGxpbmU6IG5vbmU7fQ0KI2xpZ2h0Ym94LW5hdi1idG5QcmV2LCAjbGlnaHRib3gtbmF2LWJ0bk5leHQgew0KCXdpZHRoOiA0OSU7DQoJaGVpZ2h0OiAxMDAlOw0KCXpvb206IDE7DQoJZGlzcGxheTogYmxvY2s7DQp9DQojbGlnaHRib3gtbmF2LWJ0blByZXYgeyANCglsZWZ0OiAwOyANCglmbG9hdDogbGVmdDsNCn0NCiNsaWdodGJveC1uYXYtYnRuTmV4dCB7IA0KCXJpZ2h0OiAwOyANCglmbG9hdDogcmlnaHQ7DQp9DQojbGlnaHRib3gtY29udGFpbmVyLWltYWdlLWRhdGEtYm94IHsNCglmb250OiAxMHB4IFZlcmRhbmEsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOw0KCW1hcmdpbjogMCBhdXRvOw0KCWxpbmUtaGVpZ2h0OiAxLjRlbTsNCglvdmVyZmxvdzogYXV0bzsNCgl3aWR0aDogMTAwJTsNCglwYWRkaW5nOiAwIDEwcHggMDsNCn0NCiNsaWdodGJveC1jb250YWluZXItaW1hZ2UtZGF0YSB7DQoJcGFkZGluZzogMCAxMHB4OyANCgljb2xvcjogIzY2NjsgDQp9DQojbGlnaHRib3gtY29udGFpbmVyLWltYWdlLWRhdGEgI2xpZ2h0Ym94LWltYWdlLWRldGFpbHMgeyANCgl3aWR0aDogNzAlOyANCglmbG9hdDogbGVmdDsgDQoJdGV4dC1hbGlnbjogbGVmdDsgDQp9CQ0KI2xpZ2h0Ym94LWltYWdlLWRldGFpbHMtY2FwdGlvbiB7IGZvbnQtd2VpZ2h0OiBib2xkOyB9DQojbGlnaHRib3gtaW1hZ2UtZGV0YWlscy1jdXJyZW50TnVtYmVyIHsNCglkaXNwbGF5OiBibG9jazsgDQoJY2xlYXI6IGxlZnQ7IA0KCXBhZGRpbmctYm90dG9tOiAxLjBlbTsJDQp9CQkJDQojbGlnaHRib3gtc2VjTmF2LWJ0bkNsb3NlIHsNCgl3aWR0aDogNjZweDsgDQoJZmxvYXQ6IHJpZ2h0Ow0KCXBhZGRpbmctYm90dG9tOiAwLjdlbTsJDQp9]]></data>
	</file>
	<file>
	  <filename>/lib/css/JQueryTools.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIHRhYmxlc29ydGVyICoqKioqKioqKioqKioqKiovDQoNCnRhYmxlLnRhYmxlc29ydGVyIHRoZWFkIHRyIHRoLCB0YWJsZS50YWJsZXNvcnRlciB0Zm9vdCB0ciB0aCB7DQoJcGFkZGluZzogNXB4IDBweCA1cHggMjBweDsNCiAJYmFja2dyb3VuZDogIzI0MzEzNTsNCgl0ZXh0LWFsaWduOiBsZWZ0Ow0KfQ0KDQp0YWJsZS50YWJsZXNvcnRlciB0aGVhZCB0ciAuaGVhZGVyIHsNCg0KCWJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWdzL2JnLmdpZik7DQoJYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgbGVmdDsNCgljb2xvcjojZmZmOw0KCWN1cnNvcjogcG9pbnRlcjsNCn0NCnRhYmxlLnRhYmxlc29ydGVyIHRib2R5IHRyLm9kZCB0ZCB7DQoJLyoqDQoJICogYmFja2dyb3VuZDogI0RCRTZFODsNCgkgKi8NCgl9DQoNCnRhYmxlLnRhYmxlc29ydGVyIHRoZWFkIHRyIC5oZWFkZXJTb3J0VXAgew0KDQoJYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZ3MvYXNjLmdpZik7DQp9DQoNCnRhYmxlLnRhYmxlc29ydGVyIHRoZWFkIHRyIC5oZWFkZXJTb3J0RG93biB7DQoNCgliYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1ncy9kZXNjLmdpZik7DQp9DQovKioNCnRhYmxlLnRhYmxlc29ydGVyIHRoZWFkIHRyIC5oZWFkZXJTb3J0RG93biwgdGFibGUudGFibGVzb3J0ZXIgdGhlYWQgdHIgLmhlYWRlclNvcnRVcCB7DQoJDQoJICogYmFja2dyb3VuZC1jb2xvcjogIzMzNDU0QTsNCgkNCgkNCn0gKi8NCg0KDQp0YWJsZS50YWJsZXNvcnRlciB0Ym9keSB0ZCBpbWcgew0KICAgIG1hcmdpbi1sZWZ0OiAtMTVweDsNCn0NCg0KDQp0YWJsZS50YWJsZXNvcnRlciB0Ym9keSB0ci5vZGQgdGQsIHRhYmxlLnRhYmxlc29ydGVyIHRib2R5IHRyLmV2ZW4gdGQgIHsNCglwYWRkaW5nLWxlZnQ6MjBweDsNCgkNCn0NCnRhYmxlLnRhYmxlc29ydGVyIHRoLnBhZ2VpY29uICB7DQoJDQoJd2lkdGg6IDEwcHg7DQp9DQoNCg0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIG5leHQgY3NzIHRvb2wgKioqKioqKioqKioqKioqKi8=]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/imgs/asc.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFQAEAIAAAP///////yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNC4xLWMwMzQgNDYuMjcyOTc2LCBTYXQgSmFuIDI3IDIwMDcgMjI6Mzc6MzcgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhhcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx4YXA6Q3JlYXRvclRvb2w+QWRvYmUgRmlyZXdvcmtzIENTMzwveGFwOkNyZWF0b3JUb29sPgogICAgICAgICA8eGFwOkNyZWF0ZURhdGU+MjAwNy0wMS0wNFQyMjoxMDozMVo8L3hhcDpDcmVhdGVEYXRlPgogICAgICAgICA8eGFwOk1vZGlmeURhdGU+MjAwOS0wMS0xN1QxODozMjoxOFo8L3hhcDpNb2RpZnlEYXRlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9naWY8L2RjOmZvcm1hdD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PAA6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBBwABACwAAAAAFQAEAAACDYwfoAvoz9qbZ9FrJC0AOw==]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/bg.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFQAJAIAAAP///////yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNC4xLWMwMzQgNDYuMjcyOTc2LCBTYXQgSmFuIDI3IDIwMDcgMjI6Mzc6MzcgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhhcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx4YXA6Q3JlYXRvclRvb2w+QWRvYmUgRmlyZXdvcmtzIENTMzwveGFwOkNyZWF0b3JUb29sPgogICAgICAgICA8eGFwOkNyZWF0ZURhdGU+MjAwNy0wMS0wNFQyMjoxMDozMVo8L3hhcDpDcmVhdGVEYXRlPgogICAgICAgICA8eGFwOk1vZGlmeURhdGU+MjAwOS0wMS0xN1QxODozMjoyMVo8L3hhcDpNb2RpZnlEYXRlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9naWY8L2RjOmZvcm1hdD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PAA6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBBwABACwAAAAAFQAJAAACF4yPgMsJ2mJ4VDKKrd4GVz5lYPeMiVUAADs=]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/cluetip/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/imgs/cluetip/arrowdown.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFgALAIABAMzMzP///yH5BAEAAAEALAAAAAAWAAsAAAIchI+pEOsZ4nuxTlXzPbnvDk7g6IwmZp5cmhpsAQA7]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/cluetip/arrowleft.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhCwAWAIABAMzMzP///yH5BAEAAAEALAAAAAALABYAAAIjjI+AC7rWHIsvtmmTvXBzT4HiKAZkBx6l6mGUK2lcNdNPUgAAOw==]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/cluetip/arrowright.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhCwAWAIABAMzMzP///yH5BAEAAAEALAAAAAALABYAAAIkRI4JlrqN1oNyutqqvDrqHXyYSJZkeKKf17Ggy3CQOqN1eAcFADs=]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/cluetip/arrowup.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFgALAPcBAMzMzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAEALAAAAAAWAAsAAAgyAAMIHEgQAACCCBMWNHhQocMADBk+TBgx4sSBFStezJjxIUeOCj9+RChSJMaSJlGiDAgAOw==]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/cluetip/bl.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhzwPJA/eVAKzG16zI2qm3vaa7xqa2vq3J26nBzazI2avE06/K27XO3ejv8rnR38TY4rHM3L7V4KS3wMnb46zJ2qW3wMrc5K3I2b/V4bLN3K/L26vD07rS38TZ4rjQ3rbP3qq4vazF067K27XP3cXZ46rBzbDL3LLM3Ke7x+jv8ePp666/yLTL2fT296zI2K/J2rrM1LXHz8HV3rjL1bPGz6i3vrLCyPj5+rHL2rLJ1aq5v8jZ4MrW2q28w8fW3LbN2bXDyK/I2Ke3vrfQ3qq3vb7Q19bc3rrGy8rb4rHJ2LPN3crb4a+7wPP19qvBzrDH1efu8ai8x7S/w7nO2qW4wK7I2bHFz6y/yKa4wai/zMXQ1Ke5wbXK1sTY4avF1rzP2LvT37DAyP7+/qi5wam4vsDT3LnQ3LzM0q7Dzsvc5L3L0MbY4fX4+K3CzrTO3aa3vr3S3bbO26a6xqW2vbnHzcDJzarD0q3F067H16i6wrTM28PU2+rv8ay6wK3K263F1Kq+x63H17rGysDQ1sDW4bK/xK67wOft8MXX38XT2bvS3+bt773T3s3V2MHW4au4vau7w/Hz9LfHzqi9x6nAza++xKvI2v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAJUALAAAAADPA8kDAAj/ABecEWFBQ4cLGAoEoMSwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzZscFFDZYYBCiRIICNoMKHUq0qNGjSJMqXcq0qdOnUKN+xNngAQMFDn5K3cq1q9evYMOKHUu2rNmzERdEqHo1K1C0cOPKnUu3rt27ePOaVcsWq1a9gAMLHky4sOHDiI3yter3beLHkCNLnky5suWli9v+vcy5s+fPoEOLBpy58ejTqFOrXs26NcnSbl3Lnk27tu3bg2Fvxs27t+/fwIPH1O1YuPHjyJMr9018ufPn0KNLh9x8uvXr2LNrl1p9u/fv4MOL/x/Zfbz58+jTay+vvr379/Bts49Pv779+5Ln49/Pv7//s/r9J+CABBZYVIAGJqjgggyGhGCDEEYoIYQPTmjhhRjeV2GGHHboIXgbfijiiCQmF2KJKKaoomwnrujiizBe1mKMNNZoY2Az3qjjjjySlWOPQAYpJGZrMRbbkEgmqSSRfR255JNQRgnTj1JWaeWVEFGJ5ZZcLqlll2CGueOXYpZp5opknqnmmh2myeabcDboZpx01vnfnHbmqWd8eO7p55/j9QnooIReJ2ihiCZqYpGaFafoo5B6d2iklFba2qSWZqopaJhu6umn+TFqGqiklupap6amqmpdqK7q6qs+iv/qJKy01lpYq7bmqmtSuO7q66819QrssMSuJGyxyCbroKy7Kevss0MdC+201DokbbXYPnttttwWu2234Pr6bbjk1jpuueiuem667JK6brvwavpuvPRGOm+9+CJ6b778/rlvvwDb+W/ABL85cMEIm3lwwgx3uXDDEFv5cMQUPzlxxRgPeXHGHPO4cccg1/hxyCS7OHLJKJd4csose7hyyzBf+HLMNFPIrKM15yzmzDr3PCDPPgfNH9BCF10f0UYn7R7SSjd9HtNORw3izVJX7THVVmctMtZad20y116HrTLYYpftMtlmpy0z2mq3bXOTzbot94JQz203a3Xfrfdpee//7fdnff8tuGWBD254ZIUfrvhhiS/uuGCNPy45XpFPbvlclV+uOYBsb+75cpl/LrpXoY9uelSln646U6mv7vpRrb8uu1Cxz277TLXfrrtLue/ue0q9/y78a50Pb3yocON8/PLUFc/884QFD/30E0lP/fXWOo/99nJZzz313n8PffjiM09++cefj/7w6q//e/vu7w5//LfPT//s9t//ev76r85//6f7HwBHJ8ABfq6ABtwcAhN4uQUycHIOfODjIijBxVGwgoe7IAYHp8EN/q2DHtwbCEN4txGScG4mPKHbUqhCtbGwhWZ7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t67Zt2cauCSDuNg1uIQ7m4ZLpooLMpG7XYzbuLqpt5bLFZPLMZvrXZWbuVv2uF/auRhDuuH1uaDrZZibulBhuhTjuuSFuqyrnKLLpbALMbd7XrI7u9G5urxLpLv7u/fqu8LrpMFbvM1DvMhLpce7vAqrvM6rpc0bve4JvdT7bbWbpbnLMNurXtN7vR//a73gi6biO75rWr7m66bZa6XdizDtK2Iplr6hi77yG2/rO6XvSzD5W2LxW7/Feb9QShXf6791cQI5wRg+0WEELBknEAEEoQEhgBAKscCc4QRG0AAFcRAJsRAUbBmFkARbIAheEARIQAJ8IAEdbBmJkANpwAiIwAFs4AAgMMEpPBl6wAOGAAOKwAEKcAEkMMMSEMQSEABEXMRGfMRInMRKvMRM3MRO/MRQHMVSPMVUXMVWfMVYnMVavMVc3MVe/MVgHMZiPMZkXMZmfMZonMZqvMZs3MZNLMRqcAh5MAZuQAZvgAc20AJTUAF8fAB+/MeAHMiCPMiEXMiGfMiInMiK/7zIjNzIjvzIkBzJkjzJlFzJlnzJmJzJmrzJnNzJnvzJoBzKojzKpFzKpnzKiVwBLFAJOhAIQ9AFUdADKnAEP2AHfwAAuJzLurzLvNzLvvzLwBzMwjzMxFzMxnzMyJzMyrzMzNzMzvzM0BzN0jzN1FzN1nzN2JzN2rzN3NzN3vzN4BzOxswFlYACaFAGLhADWnADTdAHdfABH4AA8jzP9FzP9nzP+JzP+rzP/NzP/vzPAB3QAj3QBF3QBn3QCJ3QCr3QDN3QDv3QEB3REj3RFF3RFn3RGJ3RGr3R/JwBHk0HlQAGWCAHkPACMkAFZrAGTDACI2AALv3SMB3TMj3TNP9d0zZ90zid0zq90zzd0z7900Ad1EI91ERd1EZ91Eid1Eq91Ezd1E791FAd1VI91VRd1VZ91TotCVdQCZWwAkXgAzTwBSlQBX4QCU9gAiYwAGq91mzd1m791nAd13I913Rd13Z913id13q913zd137914Ad2II92IRd2IZ92Iid2Iq92Izd2I792JAd2ZI92XYNB1xdCY8ACIMwCTvgCHcQBllgBRMw2hMAAaZ92qid2qq92qzd2q792rAd27I927Rd27Z927id27q927zd277928Ad3MI93MRd3MZ93Mid3Mq93Mzd3M793KtN2hMgBZddCTWwCEpACHuAA2IwA0Ca0AYEEN7iPd7kXd7mfd7ond7qvd7s3d7u/d7wHd/yPd/0Xd/2fd/4nd/6vd/83d/+/d8AHuACPuAEXuAGfuAInuAKzt5xQADVzdVLQARzAAWN4AEeIAAYnuEavuEc3uEe/uEgHuIiPuIkXuImfuIonuIqvuIs3uIu/uIwHuMyPuM0XuM2fuM4nuM6vuM83uM+/uNAHuQlLgQBAQA7]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/cluetip/bl.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAA88AAAPJCAMAAAAbDOrsAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAcJQTFRFrMbXrMjaqbe9prvGpra+rcnbqcHNrMjZq8TTr8rbtc7d6O/yudHfxNjisczcvtXgpLfAydvjrMnapbfAytzkrcjZv9Xhss3cr8vbq8PTutLfxNniuNDets/eqri9rMXTrsrbtc/dxdnjqsHNsMvcsszcp7vH6O/x4+nrrr/ItMvZ9Pb3rMjYr8nauszUtcfPwdXeuMvVs8bPqLe+ssLI+Pn6scvassnVqrm/yNngytbarbzDx9bcts3ZtcPIr8jYp7e+t9Deqre9vtDX1tzeusbLytviscnYs83dytvhr7vA8/X2q8HOsMfV5+7xqLzHtL/Duc7apbjArsjZscXPrL/IprjBqL/MxdDUp7nBtcrWxNjhq8XWvM/Yu9PfsMDI/v7+qLnBqbi+wNPcudDcvMzSrsPOy9zkvcvQxtjh9fj4rcLOtM7dpre+vdLdts7bprrGpba9ucfNwMnNqsPSrcXTrsfXqLrCtMzbw9Tb6u/xrLrArcrbrcXUqr7HrcfXusbKwNDWwNbhsr/ErrvA5+3wxdffxdPZu9Lf5u3vvdPezdXYwdbhq7i9q7vD8fP0t8fOqL3HqcDNr77Eq8ja////LL4G4QAAAJZ0Uk5T//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AaRLOegAACStJREFUeNrs1QVyFFEARdEeyCAxSBjJTFxxd3d3d5fg7i7BXf5+6bAKftc5S3hVt15SN9hTqraXW/K5P0DckrpCa6m+u39s3haQgZ4bxtXXNuoZstBzk55Bz4CeAT0DegY9A3oG9AzoGdAz6BnQM6BnQM+gZ0DPgJ4BPQN6Bj0Degb0DOgZ9Kxn0DOgZ0DPgJ5Bz4CeAT0Degb0DHoG9AzoGdAz6BnQM6BnQM+AnkHPgJ4BPQN6BvQMegb0DOgZ0DPoGdAzoGdAz4Ce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]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/cluetip/br.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/cluetip/br.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAwAAAPJCAMAAAARZjlPAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAYNQTFRFrMnaq77Hq7i8p7a9qri9rsnZrsbUrsrbpLa/rsPPq8jZpbW9qre8qbe9q7m//v7+rMbXqsTTpbfApba/qrvCpbnDpra+qsPRpbnFrcnarMLOprzIrMPQvMbKp7nDqsPSqr3GrsfXrsXTqb/LprzHqLnBrMfXprjArbvArcXSqcLRqbe8sMfUsLvAqsHPydHU4ebnrMTTprrEp77MpbjAo7a/qri8pbW+rsfVrMfZq8bVrMLNqr3HrLm/pbnEpLjBuMPGqLi/q7vD1tzf4ubopbjCtsHFrMjYrcjYq7i9u8XJpra9qbnAqL3IqLe9rcfWq8jYp7a80NfaqMDNprvHqsDNqcHPqsXVp73JrMHNqr/L8fP0rL/I4+fpqbm/q8HOqL7LrcfXp73KrMbUq8XU/f39q8PRqbvFrbq+rLm+qLrDrMjZqL/Np7e+sMnYqLa8prW8qbi+qLvGxs/Sqb7Ip73Iqr7HrcPOr8fUrLrArMjarcrbqrrCr8jYr8naq8ja////7sj6uQAAAIF0Uk5T//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AksjjTwAAAQtJREFUeNrs28VaQgEYhOGfcwBJ6bC7u1vs7u7u7kD0nEsXgYU71z7PN6t5N3MHI5qmSdrXTbV1a6Bckvh8sxr87wl8xPFqiCUQ/QMvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4nzD//giYM1OQFNKTjwNTQWFXtz+JDNNsxXp+rCeF9uyN06nzxMDYfsPu08XOuGhR22Xp4UnRQ8l9jdg65txHoeXp3H5jn4y6Vz2VV8+NZdfGOun05K00ZfU2B2eUegnVLh4sBbw+1ThyLHtrxeFIS5vqVIZ0CQeGLRb7nVNZ0HXxWnz2yXnH2aArjqCq3lYpOZt6POJoVSYet10/Xf8WYACiIq1QmLEJbAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/cluetip/darrowdown.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFgALAIABAIeHav///yH5BAEAAAEALAAAAAAWAAsAAAIchI+pEOsZ4nuxTlXzPbnvDk7g6IwmZp5cmhpsAQA7]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/cluetip/darrowleft.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhCwAWAIABAIeHav///yH5BAEAAAEALAAAAAALABYAAAIjjI+AC7rWHIsvtmmTvXBzT4HiKAZkBx6l6mGUK2lcNdNPUgAAOw==]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/cluetip/darrowright.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhCwAWAIABAIeHav///yH5BAEAAAEALAAAAAALABYAAAIkRI4JlrqN1oNyutqqvDrqHXyYSJZkeKKf17Ggy3CQOqN1eAcFADs=]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/cluetip/darrowup.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFgALAIABAIeHav///yH5BAEAAAEALAAAAAAWAAsAAAIcjI8AyJ26nAwQzlbrPTnv3k0g6IwjY5pcqrJsAQA7]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/cluetip/rarrowdown.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFgALAMQeAM/f5q7K28jb5NDg5rnR377V4MPY4rTO3cXZ47jQ3rfQ3sHW4bLM3KzI2tHh56/L29Lh58fb473U4LPN3bbP3q3J27XO3bvT37DL3MTY4r/V4c7f5sze5dTj6P///wAAACH5BAEAAB4ALAAAAAAWAAsAAAVuYCd2zsadaLo5Y+eJgGAsWm3XiyEAoud3G0SBoKBYjhaKglBAbFw+HyRSSEwwj0DggZkkChFIdLzJXA6YSqNRwRwumc14Xj5jtG64fE43WxgMFnp8hAAIEgQEEggAhI4DMjoDjpQdAwNQlI49lCEAOw==]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/cluetip/rarrowleft.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhCwAWAMQeAM/f5q7K28jb5NDg5rnR377V4MPY4rTO3cXZ47jQ3rfQ3sHW4bLM3KzI2tHh56/L29Lh58fb473U4LPN3bbP3q3J27XO3bvT37DL3MTY4r/V4c7f5sze5dTj6P///wAAACH5BAEAAB4ALAAAAAALABYAAAVooCeOZEeenXmKqXpCG+COW4QIzrllRWFspN0lQVhwRoDM5TBRaI6eAWKJwVCeno5AYsFUHpZnZ2AgMAKNQJgzLp/T6+y2+41Hp4fqFepJLptYNEpERjo8PkA6NjgrHjAyjVkpkZKUWSEAOw==]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/cluetip/rarrowright.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhCwAWAMQeAM/f5q7K28jb5NDg5rnR377V4MPY4rTO3cXZ47jQ3rfQ3sHW4bLM3KzI2tHh56/L29Lh58fb473U4LPN3bbP3q3J27XO3bvT37DL3MTY4r/V4c7f5sze5dTj6P///wAAACH5BAEAAB4ALAAAAAALABYAAAVlYOeNZNmJpXmmZAdsEOs5AhJt7GYURYaXnAUhcfEBNYrJoQggcTQUDGaJGIyelkcFY5EIRNhAI8AgGAad8Lh8Tmuy2+7X84xOL9UrUsl0ColGJDo8gSQ0Nj8mLzEsJyiNj40yJCEAOw==]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/cluetip/rarrowup.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFgALAMQeAM/f5q7K28jb5NDg5rnR377V4MPY4rTO3cXZ47jQ3rfQ3sHW4bLM3KzI2tHh56/L29Lh58fb473U4LPN3bbP3q3J27XO3bvT37DL3MTY4r/V4c7f5sze5dTj6P///wAAACH5BAEAAB4ALAAAAAAWAAsAAAVuoCeOZNeRaFoOw6m+3iAYhjDAKYBIBCEhANxok7lYGAzLJbMREi8HTCCAOSybr2e00mhUqlcVJFJITDCP6QMzSRQiEFRngygQFBSL3kJREAoIGy4eJgAzCxqJiokLNQAmhCYdDhsclpeYGw6SHSEAOw==]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/cluetip/tl.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhzwMMAOZCAMXZ47/V4a/L27bP3rPN3brS373U4LLN3KzI2s7f5qzJ2sHW4bXP3bfQ3sbZ463K27HM3LvS37DL3NLh59Dg5sjb5NHh58LX4q7K28rc5MPY4sDW4ejv8szd5c/f5s3e5cnb5Mfa49Pi6LzT4P3+/vL298ba47vT3+Pt8NPh58vd5NTi6Pn7/Ozy9P7+/vj6+8ze5fH2+Ozy9eHr7+Ls8Orx9M7f5enw88TZ4r7V4LXO3a/K27LM3LnR363J28vd5e3z9avI2v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEIALAAAAADPAwwAAAf/gEKCg0IuMUCIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGZMoRCLDQrExQJHzAdP8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6cwdhDciFgk/ICEmAPY4+Pn6+/z9/v8AAwocSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQwq0NwjFBA8/KgDQsGBDgJc5YsqcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rd+VJQjQkJMji4EMDAiAgFCvRYy7at27dw/+PKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnkzZblohL0R4yABggYEIPRoMGM2AgY7TqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0F+XHiBkhoUfDjyH1kGAwIEDPMKLH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqGB7B5CQQgIVXGBADwMQAIEEEgggwA4cdujhhyCGKOKIJJZo4okopqjiiiy26OKLMMYo44w01mjjjTjmqOOOPPbo449ABinkkEQWeaKGJVDwA8wAAUTQgIUCYPCAD1RWaeWVWGap5ZZcdunll2CGKeaYZJZp5plopqnmmmy26eabcMYp55x01mnnnXjmqeeefPY5Zgs2gKDBhDpAIMADCiiAAAJBNOroo5BGKumklFZq6aWYZqrpppx26umnoIYq6qiklmrqqaimquqqrLbq6quwxirrrLTWaiumi3LwQQgLnPCkBBgocOuwxBZr7LHIJqvsssw26+yz0EYr7bSfcqCCAxsUMMABhwpL7bfghivuuOSWa+656Kar7rqQBgIAOw==]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/cluetip/tl.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAA88AAAAMCAMAAABrwX92AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMlQTFRFxdnjv9Xhr8vbts/es83dutLfvdTgss3crMjazt/mrMnawdbhtc/dt9Dextnjrcrbsczcu9LfsMvc0uHn0ODmyNvk0eHnwtfirsrbytzkw9jiwNbh6O/yzN3lz9/mzd7lydvkx9rj0+LovNPg/f7+8vb3xtrju9Pf4+3w0+Hny93k1OLo+fv87PL0/v7++Pr7zN7l8fb47PL14evv4uzw6vH0zt/l6fDzxNnivtXgtc7dr8rbsszcudHfrcnby93l7fP1q8ja////pkJuwAAAAEN0Uk5T////////////////////////////////////////////////////////////////////////////////////////AEFiBO8AAADcSURBVHja7NUHTsNAFITht9XdcUnvCZ0UejMsC77/obDCKZ403xFG+jXU/js+/AAAb490qnn/vKv70ep+4QGArcWp57ftMPLrzSURvQMAU13AXc7X9dIPaJrMhBAfAMCUEF3PL3U0yUfCnpXGOADgyhhq77bLCSW2dJlSKk0bAGApTRW1T0OfJ9ZljdZB8AUAbAV0fhMNRtYpXVSVlJ8AwJWUdNH3JMpMF3Lc+wYAzujwup5a1xSyF8dh+AsAXIUhzVeb5CrT1TjGHADM0fw2nxkVdPeMMQCY+xNgAGxG2LimrQDhAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/cluetip/tr.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhDAAyAOZsAK7K26zJ2qu+x7DL3LLN3K3J26+8wbrS37bP3rjQ3rDJ2K7Dz8DW4bHJ2LrR3cjb5MXY4Mnb48nb4bjK0rDFz7TAxb3S3rHCyrbI0bvT37zT4LfO3LHM3LrO17fO2rC/xbfM1rvS38ze5bTK1c3d5LfQ3rTH0bLG0L7N0sDR2MHO1MnZ37TO3bbFy7LL28DV4LHK2q/AybPJ1a/Ez6u7w8nX3ay/yKq7wrDI1LvQ3LXM2sTY4b7S3K27wL7V4L3Q17O/xa2/yMLU3c/e5LTM27vM0q67wK/K28PX4bPN3bDK2q6+xLjFyr3Kz7XO3bPDysTU26/L26y8w83c4rjGy8fa48LR1628w66/yMHV3rLK2bHI1cLX4rPAxcbV2rDH1MbZ48zd5Kq+x63Dzqq6wq3K26y6wKzI2q/I2K/H1K/J2qvI2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAGwALAAAAAAMADIAAAf9gGyCg4SCImEkQ1M1hWxgVQ8REiteKoQMDFxIOxBQVk2DBxkaPi9ZQikoTIIIJQkHIRY8P0VUQGwESSwICQ45HRMtFWxRAxwEThseIBhPXWwFAAADBEQ6IyYXHwZnAdEDLloyJzFLBmtrZwVHMA1bFFhX5+gBAEoKODNBUkboa/VqFHxZYINGD38A0aRZIOCGGYRl1CgcI4DMQ3RnIk6seDGdxjQULfrLKBGkGJEYP4452ZHkRJYjVcJMWXIlSo81Z+J8edOlyZ4ygeYUyrNlUKNDkRaNmZTpUppPd/5UOtVpVahXpdqkutVqV6xfter0GZbs2KNezzYFq7ZoIAA7]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/cluetip/tr.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAwAAAAyCAMAAABf28oIAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAUdQTFRFrsrbrMnaq77HsMvcss3crcnbr7zButLfts/euNDesMnYrsPPwNbhscnYutHdyNvkxdjgydvjydvhuMrSsMXPtMDFvdLescLKtsjRu9PfvNPgt87csczcus7Xt87asL/Ft8zWu9LfzN7ltMrVzd3kt9DetMfRssbQvs3SwNHYwc7UydnftM7dtsXLssvbwNXgscrar8DJs8nVr8TPq7vDydfdrL/IqrvCsMjUu9DctczaxNjhvtLcrbvAvtXgvdDXs7/Frb/IwtTdz97ktMzbu8zSrrvAr8rbw9fhs83dsMrarr7EuMXKvcrPtc7ds8PKxNTbr8vbrLzDzdziuMbLx9rjwtHXrbzDrr/IwdXessrZscjVwtfis8DFxtXasMfUxtnjzN3kqr7HrcPOqrrCrcrbrLrArMjar8jYr8fUr8naq8jaAAAAZmJJ4wAAAG10Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AC221EsAAACxSURBVHjaYshBAgxKiSrOwaZQTkIov6CQdpwWmMPDE+NhLRAQ5gvisEtK2elHOmlq+AA5HKqc7IpiNvauIQ45DCyeOhycfJaywrqiOQyBzDIsftJyChL+sTkMrAwMzCwuVspq4vJsDOmMrAzMelFG6obebAzZ2ems7ga80SIR4SBONiODF5eFsWOQG4STxRXPbWZiC+VkZHIzmaeBOalATjJTCpiTToCTNMoZ7ByAAAMAMXnTwpvpjk4AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/desc.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFQAEAIAAAP///////yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNC4xLWMwMzQgNDYuMjcyOTc2LCBTYXQgSmFuIDI3IDIwMDcgMjI6Mzc6MzcgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhhcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx4YXA6Q3JlYXRvclRvb2w+QWRvYmUgRmlyZXdvcmtzIENTMzwveGFwOkNyZWF0b3JUb29sPgogICAgICAgICA8eGFwOkNyZWF0ZURhdGU+MjAwNy0wMS0wNFQyMjoxMDozMVo8L3hhcDpDcmVhdGVEYXRlPgogICAgICAgICA8eGFwOk1vZGlmeURhdGU+MjAwOS0wMS0xN1QxODozMjoyMFo8L3hhcDpNb2RpZnlEYXRlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9naWY8L2RjOmZvcm1hdD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PAA6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBBwABACwAAAAAFQAEAAACDYyPAcmtsJyDVDKKWQEAOw==]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/lightbox-blank.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/lightbox-btn-close.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhQgAWANUAAP////39/fr6+vj4+PX19fDw8Ovr6+np6ebm5uTk5N/f39zc3Nra2tfX19XV1dLS0svLy8jIyL6+vre3t7S0tLKysq+vr6ioqKOjo56enpubm5aWlpGRkY+Pj4yMjIeHh4KCgoCAgH19fXZ2dnNzc3FxcW5ubmlpaWdnZ2RkZGJiYl9fX11dXVpaWlVVVVNTU1BQUE5OTktLS0lJSUZGRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAHAP8ALAAAAABCABYAAAb/QIBwSCwaj8ikcslsOp/QqLQZmFqvRAHngYxsBEaCw3EYHhwE5IFykZSLZ7RQPK4PBxzaimGEtGgcaXMZL4UvH0IXLw5HEoaFF0MEIo8RAA6PhUMWNC8xKw1EES0xLzQYQ5QfY2yJi0YRh2UKlBRCHC8XDhEZZZgcdYxCBiQzLzIqC0KjpTMhBUIULxlHisJEKCiCAAQoLEIvJEaYkUcGIzKeKAt+pTQgA0Pe20TWRQrTRYSMLyjjuUnOGYOBgtQxENsOHEJij4g0S6IA4gpEBJOICxjfEDmXDgaMYx/iDSHH8FU9kyMBTnrBguKlTNeIFCjx0ZMGMBUBVkPpKubL2XKXKLFQ8HNJgRM1Y3Qwgo9DSZ+ObBFxJKGIIxFFkywwUcrjMQ1ViLDwt9OnQkREcGkcQuJF1iMLUKSLkWLFRxlgTwK91NMIJaJC8GE14u1tkQUr0skgkSCCV7xhubUF5gCXJUUcMGJkpIAFCwkOKHgGnCHDmA/5LGoGyiCxCxkjDAiZ8DjvHEqFWFADoChTOQcoDKEADAC1od2YMglhwEIxCdlDKsjwSKMCnDFQFJAxEqdJgQ4yZjw3UiGGjBN8sKjP4mH8EQsnEKyfP0QAvSIB5NPfz7+/+iAAOw==]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/lightbox-btn-next.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////39/fv7+/n5+ff39/X19fPz8/Hx8e/v7+3t7evr6+np6efn5+bm5uTk5OLi4uDg4N7e3tzc3NjY2NbW1tLS0tDQ0M7OzsrKysjIyMbGxsLCwsDAwLy8vLq6ura2trS0tLOzs7Gxsa+vr62traurq6mpqaenp6WlpaOjo52dnZubm5mZmZGRkY+Pj42NjYuLi4eHh4WFhYODg4GBgYCAgH5+fnp6enh4eHZ2dnR0dHBwcG5ubmxsbGpqamhoaGZmZmRkZGJiYmBgYF5eXlxcXFpaWlhYWFZWVlRUVFJSUlBQUE5OTk1NTUtLS0lJSUdHR0VFRUNDQ////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAFMALAAAAAA/ACAAAAf/gFNTAISFhoeIiYqLjIiDjZCRkpOUlZaXmJmam5ydnp+goaKjpKWmp6igARomF4UCHCIABiAlJrcnDxQoroQKJRsOKSYlIyUnIASeAS5PQxGEAzZFAAxCSUFCQkUXDD1GEADMTRgWSEJGSkNDOAfLLUlMMsoDNUQAC0UzCQz9yhhNYATIwGRFgAENFqh4UmHBggDLXPx4wQQEAAE07i0w8iIRCyUhdvBAYKgElAWhmPlogOOIAwAZ8Q3hUQJFChIFCBG4scRIhUMmoDRIKZHAhCTzYi4IYkSHyBruxM14UiScoaBDVUk8ECBFkxIxhuArIgNBAgUKIAIQoeSEkBtRiQlhJfqDZIEeRYIAwWekBaIIR2oA+PDkxFWhdEkCMLfkBz4iOTpI9vBgAA0kEgAMuJFkQqG5qlrsiJtCSQ98QJpAWS3lhAgnhglRODJabpSsoAgQUCtOt7gDCMwmSFDgQFpDBxYIIFRAwfJU0CkFEBCgunXr0TXxzs69u/fv4MOLdzRekqDykAIBADs=]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/lightbox-btn-prev.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////39/fv7+/n5+fj4+Pb29vT09PLy8vDw8O7u7urq6unp6efn5+Xl5ePj4+Hh4d/f393d3dvb29ra2tjY2NbW1tTU1NDQ0M7OzszMzMvLy8nJycfHx8XFxcPDw8HBwb+/v729vby8vLq6uri4uLa2trKysq6urq2traurq6mpqaenp6Ojo6GhoZ+fn56enpycnJqampiYmJSUlJCQkI+Pj42NjYWFhYODg4GBgYCAgHx8fHp6enh4eHZ2dnR0dHJycnFxcW9vb21tbWtra2lpaWVlZWNjY2JiYmBgYF5eXlxcXFpaWlhYWFZWVlRUVFNTU1FRUU9PT01NTUtLS0lJSUdHR0JCQkBAQP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAFkALAAAAAA/ACAAAAf/gACCg4SFhoeIiYqGWVmLj5CRj46SlZaXmJmam5ydnp+goaKjpKWmp6ipmwMYICAfFQSCE64hGQuCBx4fvLwMGhwBgwMbG6IFOVFJyzsQAC1QSkpIRikAEUtOS0xMShc1URKDE0o2xzpCBQclVDYCLUsSAxFBTRQOUjQQFPwBH1MuBqmoguEcEAEAAjDxYYCFkgaCVkT5wGDKikIIiAwpAKCAjyDCQhXQEQRBgRJWbARgsUTEhBBHkkBw8ARHiBEkPCCM8UQDAAtVRIwqgCOKkiVJekwAwAKKkSVPgHQAIGGJkiJGjuAYAGDCFBkAZCRhMDSHEQ8dKMh6tkQDCiojnQRJiDLDAYQIDkLuEALhyAyE534YcpFEgQAfSA5QnWLNEIcpN5IUHKoDCFdCLpQ4ACCCyotrUWhUGG0hgaAEQ6rwCHmMB5HLg2A8cWagR5UND55YucIbiwlBAWBcOVEqwIIGrAUpkLBWQYUFAyRMmD4dwaADFDiq2n6JwIABAsIL+E4gOfdEAgKoX7/+vPv38OPLn0+//iVK9hU1CgQAOw==]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/lightbox-ico-loading.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhIAAgAOYAAP////39/fr6+vj4+PX19fPz8/Dw8O7u7uvr6+np6ebm5uTk5OHh4d/f39zc3Nra2tfX19XV1dLS0s3NzcvLy8jIyMbGxsPDw8HBwb6+vry8vLm5ube3t7S0tLKysq+vr62traqqqqioqKWlpZ6enpaWlpSUlJGRkY+Pj4yMjIqKioeHh4WFhYKCgoCAgH19fXt7e3h4eHZ2dnNzc3FxcWxsbGlpaWJiYl9fX1paWlhYWFVVVU5OTktLS0REREFBQT8/Pzw8PDc3NzIyMjAwMC0tLSsrKygoKCYmJiMjIyEhIR4eHhwcHBkZGRcXFxISEg8PDw0NDQoKCggICAUFBf4BAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgBVACwAAAAAIAAgAAAH/4AAgoOEhYaHiImKi4yNjQGGBAgCjoYIEhcRCIMCGywSlYQPKzxAPCsQkAQnPxuhgggwSlS0STAIAQEQHJuECA0EiZ1BtMVCG5AAub4uOR/BhwQkR8W1JNCGEkJQNQeIBCNF1VRHIZSHCM3PiAESPFHVPBTJ6A/YhwciPk1PTD4jBV4VClDgAYgVMlJo8CZwEAELKmSo2MDgwDlHyzht6NEEir8KryCQIMFgEIMa42bcW4TgxZIkKRhK8DHOR69GDHLQqtErAo9xPG4yKlACiA8RAQEcWLGkGJMTFxsdoECBoTIINYQkESKjZMOBDDaE2ADB4tdoFUic4EUvUUZ2FpV2IFkSxIRQQwEokLiQFJ0MJ8V+YHC7AQgTIdcQNdghpdgREckIFMB2QAYUWjYcIEJQ4zKtIBoACJiA4kWIXgVWOJkCxcbdQQE2NmlChAUDXTmcQCFCwlu7HEBydIhaiIAnGCQaBACHpFiOB4ICPMgQYaUhAQgQQAOXhBaU54TahpKQezeJvmdFX2Axg2T6QgIOaHcUCAAh+QQFCgBVACwAAAAAHwAgAAAH/4BVgoOEhAgODgiFi4yMBBYvOzsuFQSNl4sXOU1UVE05FpiiVQguS52dSy+Ko4USCAIQOVOonTkQrYQ7PDEZFDm1VFC3uQyETTsfL6eoTKuDCAG5VUsqVTtOnU86GIQvDACNI4syCBMtPDwsEpakNjYQ4YweQoRKJ5YECAjtgrEQAuQtYjCDUxUnPCwIZASg4SUCFV7w6FFjQ4GF06oUiICBAgQJrwhgnFbgQw4fO0jAGpkRQw8onYSEkDbtURUJAQmYYFYFigyR0xrkOFIDAQACJ3j6BJrrgQ0kMsBVydCzShQhIAKwvHSBBE55H3CgVLn1EgCtAjdikHDAYcZGAJEEBBBQoN9bRgc2oLhpt5G+voU++BBkYwLNRghIyBCBqcagJCUAE/JABAqQDFttDFqCogChgIMCiEhSZUgHlgVOFDnoYwPoCCNGRAANoMGMHi6kMkJw4t2HtoSTKLHhQB4ABK/KBijAYGWVAByICCLC4XBDt2bdAsAQRFAQDNbvCuI98YRR8YvMTTiPftH1VoEAACH5BAUKAFUALAAAAAAeAB8AAAf/gFWCg4SEAAABAIWLjIuICBMXEASKjZaEARAuPkA5IgiXoQAML0qCUD8gBIIEBauWBAxVsgIaP4RNMAwFFCQnIRCNBR81OjUcCCBDhTZVITpFSUI1FQOFtT5QUFU8Gxk9iyM9UFTlTDUOhQcrTYQnECtJgz0fKknl+D4bhggvToNNVFRBQCJHFRgXELhogq+cEBCFCIRYJijIhwBVMA4iUOIevig/NBQCgGCFDyI9TshidGHHE3xJYDQYSQBBBhAYEGhcNCwHkSNCZlB4VeVQq0QBEl0iEOHDCA4rBQEoIGHEiAgCQhEiQHSQgAw6jiDJYUHryAAErAFY165KkxZmmA09KPGhKAIZ2wTViDsIQMuNJIbkJcFXKoINQ+2eMDircKMACB445ntocqNDBQ4oFVX5sQQULjR0ZURSwoKdhhrYaOJEXygCJ4DMiGrIgpBBJUIhqOGkxwTSEHQ4gWKxbyxQXj/YKIF8EYG6OUisnCrCxgsJWxEU0ArhQF8I4JKc2G65bwQeUMSTL1/0wAjr2Nn3LSBr9KJAACH5BAUKAFUALAAAAQAgAB4AAAf/gFWCg4SFVR0ZDIaLjIUEIzpCPy4SjZaFARQ8UFVURioIggCjl1UABAYEowQgRoNQNhACCBMWEKqNAAwgKiOyBB9FhhIrPD42IAgAjAgrQk1ELw0BDzdOVVBCJBUxSYJQPR0EiwATPoNAG6cZNT48JA8cQIRNL6GGABXzgkIeowEIGjAgIAAEEUKwHpBDUCMJlCQ2KokiBSCDD06CkrC4ZyhAhRU5XGQYt4hBi4NVnOzYQBIfQAgIWhoSAOFEDh41fMXEt6yUqAIQLnw44ULFB0WiDAiUWSqAhRpEmCT5geIegxM6coA44FMQAhlMqIilImREFQEdgqTkIaFnKQlAsMaKdVKjCgESR/hpcHtJAhG5VKDgqBLgwo4lSWpA6FoFQo8ocusN4rDiBAWmlgicICJlLg8MgwggOBCAsaAHKXwQEWLjA1fTzIR2kFCAEUXYlgAgiKCg9CUAAnznauDCRw2JuSCgYGkpwIchVYyQ+L3Bx4rXjAJo6NFkEYLahHZREJAbAQgZIzgK+EiCo6ngpU7tHHRgRZIeF4TjdkQCSES++w2iywYVgBcgPsEByEggACH5BAUKAFUALAAAAAAgAB8AAAf/gFWCg4SFhoeIiYMUEASKj4YcNj01HAWQmBE5TlVONhMBmIehVQEaQoM/HAJVBA0TmBAjJBSOARU9UFVQPBcCBxs1PJANMURINhahCCY/Rj4kCAQYOk2dPooYg0QkjgAIGyQZCAAFJkiDSiyKuVVCId5VAAEA9QcnSYNMLwyJJDs9VjQgZYgABx+6oAQZcQkRAgoXGNBD9I0EDyE9UgxUFIAeAEUCEFTwwEECgwIERR2aB04QCQmOBs2bqJIAiB35itSQQIoABRIeyKlskEOXoCQqEAiCUMPIwpiYLBAhBCVHg1IWsDFZoVQUBVSDoNhwIOjBCyA8OkCFxMCGNUFGqFA0FNBAQ4UDH1VuwDHkSJAXEQgGEJAS0gEIFkCUMAECgoC8KgcRkHDCxo4aJCCghBx5aYwiVKg48TGiK6IGFRQRICFkSmjRNiRAQmG60IEWTV6HDuIhkQQdS2o04DwIgYvcuoF0SIRgxAxLnFG2IjFEd5McsCgSkEb85UcIL4g8gdKkR2lF9Tiv3vGBVITKOWqEqK2yQmbICCBEONl5kAACNPUnoCGBAAAh+QQFCgBVACwCAAEAHgAfAAAH/4BVgoOEggABBAMAhYyNjAAFFSMdDAKOl4wBFzlEPycMmI0Ai4MEJUlVUDoUhocBpKIBAqOCBCRIgjkSVYcMFRQIAaIHFx8QllUCEzRBPIYBEjM+PSwQwoUCGzpBLw+kBBAdFoYIKLhVQiMFjAUrS1U+GtePDDVQhAiMBCA9RDW7jgAgWIGqyhAS+Rp9IHGBACYCFmxUARIDYCMC60JVIWCRACyNmAKIJEBgFshLo8B9CFHhAK8ABRA4PMlLQMQhRHiQqBIAwQgWGWjyYvDi3SALBDDsQAID1EkAEnbcq0KFSAioNaqUSAgSAAQbU6cE4bAxQhWnT33+aOKkCIwGQrAJHSLwgIQNGykmzBQKQAADDSJAXKgigWvcABBU+CASZEbDgK9QIiAhZNCRF3AfIeAgYa+BCL8YDIhgwwmhHhgaCcDAQ0UCQQxM8BgSpMaGDFILBc0EAcWgyUKoCF+SY8QMJYQkOppXxYJU4cKRqACBI0mTuByAQBfuJEYVDClqvOhAM0OPKdubsJCJoIFhjRBmMIEuJQiIvXEJZMiRBIqTICtkFlcpFahgwwwjCHhJIAAh+QQFCgBVACwCAAEAHgAfAAAH/4BVgoOEhACHhYmKigIIDQgBi5KLESo1JAgAk5uDJEJNOxaRnJxFUD4Xo1UFDAwEkgAFCq+ELzklmYIIJDY1H5CKBx8tHAWEDBEIAoIBFzxOTDkUy4UAEjlJNRCTBCJHgkActIYMKz0oDJPNPExJNhOqhAIQG9uTAMIyL8WSAdSbAAi0IqCJlMEqiA7eE8jggCoAAQoqRDDChg0TDyIRgGAh10ECH344qSKkxAEADFLYyBCPEwIVTARBseGgCoIQKSS03HTAxLcqTGYgQFgAwTiDASrYIFJkBwhjCqsRsGDiBAePghhoEPFBwoF7AAQIIIDAaCEIK3wMEWLjw1dFAL8QTNjQMWIhBCiIQKFCpUmOC3ARiMgBhMeJBi0v7ODL+MgJSAYWGA24ocdIKEIwESLQAYgUxn1jQLiwIsclCAhK/KzSZEaDQhh4gKaixEUHbFCgDFlBgQQRQjBeE3rwIskUvqdIqEBCyAeIDUChOPmhiAAGG0OWHOlRAoOMJoSKkGDQwcaOHOMVFejN4kSHViyUEBIC4pWECxKGSipqlgAHH3tVoYQNEkgUVVwk6CAEEDVgcFRURFHwwQYNPKhIIAAh+QQFCgBVACwAAAIAIAAeAAAH/4BVgoOEhQEDAYWKi4yCBBIaDYmNlIoAEC87JQiVnYMAFDtHMAyFBwQAnYeTgggkLxwFhCArIAipjQINGgysVQgMsoVJPBuojQckOiDCjR9DVUIjx4wEGSkUBJURNT0yEr6LBQjalY8aEtSL5Z6DAgG4hQUQGh4Xpe2UBBgxPT87KR7kExSgQIF3gijYUEKFCpQiJzi1e0TihAZOrog03NiDQrtLMYok0WGMAQwmGxsO2dAuAAYfgoyYOIBgRZKUVIJkaCkhRxMoQaYR+NADykYnNQS2QyDCxg4VEBI1QAFkiRMkPDo06wQAAYULDdg1CLEixgoSGiIgEPAxALxCBMg4hYChw8YJCWwZCUDQYG0jAhVsJIHiZEiLBtUopKihIhsjBCduDvrRQRuAy6kCQIgxOEmNCOGqdH3RhFAREggQQJDgAJUADTAF+eDAjhACFZIFCREBYYRTGBkK7CtaBYoPDbUHEdjAo3QVzxlE+HDy3EYFAg1WCEkixMWD0KIRgLDRg4eMDRIKDSFxKgIJFyTSNQqAQMKGDBBUz3BehUiJA6kA41clAhSYSEZTFNcDbQOtE4ELP1TBAwkMxNNgIQ18MMIv4BUSCAA7]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/thickbox-ico-loading.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/lib/imgs/wait.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhKwALAPEAADc8QP///5ianP///yH/C05FVFNDQVBFMi4wAwEAAAAh/h1CdWlsdCB3aXRoIEdJRiBNb3ZpZSBHZWFyIDQuMAAh/hVNYWRlIGJ5IEFqYXhMb2FkLmluZm8AIfkECQoAAAAsAAAAACsACwAAAjKEjgjLltnYg/PFChveVvPLheA2hlhZoWYnfd6avqcMZy1J14fKLvrEs/k+uKAgMkwVAAAh+QQJCgAAACwAAAAAKwALAAACPcSOCMsgD2FjsZqEx6x885hh3veMZJiYn8qhSkNKcCy4B2vNsa3pJA6yAWUUGm9Y8n2Oyk7T4posYlLHrwAAIfkECQoAAAAsAAAAACsACwAAAj2EjgjLMA9hY6maalvcb+IPChO3eeF5jKTUoKi6DqYLwutMYzaJ58nO6flSmpisNcwwjEfK6fKZLGJSqK4AACH5BAkKAAAALAAAAAArAAsAAAJAhI4Iy5bZ2JiUugcbfrH6uWVMqDSfRx5RKnQnxa6p+w6xNpu1nY/9suORZENd7eYrSnbIRRMQvGAizhAV+gIUAAA7AAAAAAAAAAAA]]></data>
	</file>
	<file>
	  <filename>/lib/jquery-1.3.2.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IEphdmFTY3JpcHQgTGlicmFyeSB2MS4zLjIKICogaHR0cDovL2pxdWVyeS5jb20vCiAqCiAqIENvcHlyaWdodCAoYykgMjAwOSBKb2huIFJlc2lnCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgogKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL0xpY2Vuc2UKICoKICogRGF0ZTogMjAwOS0wMi0xOSAxNzozNDoyMSAtMDUwMCAoVGh1LCAxOSBGZWIgMjAwOSkKICogUmV2aXNpb246IDYyNDYKICovCihmdW5jdGlvbigpe3ZhciBsPXRoaXMsZyx5PWwualF1ZXJ5LHA9bC4kLG89bC5qUXVlcnk9bC4kPWZ1bmN0aW9uKEUsRil7cmV0dXJuIG5ldyBvLmZuLmluaXQoRSxGKX0sRD0vXltePF0qKDwoLnxccykrPilbXj5dKiR8XiMoW1x3LV0rKSQvLGY9L14uW146I1xbXC4sXSokLztvLmZuPW8ucHJvdG90eXBlPXtpbml0OmZ1bmN0aW9uKEUsSCl7RT1FfHxkb2N1bWVudDtpZihFLm5vZGVUeXBlKXt0aGlzWzBdPUU7dGhpcy5sZW5ndGg9MTt0aGlzLmNvbnRleHQ9RTtyZXR1cm4gdGhpc31pZih0eXBlb2YgRT09PSJzdHJpbmciKXt2YXIgRz1ELmV4ZWMoRSk7aWYoRyYmKEdbMV18fCFIKSl7aWYoR1sxXSl7RT1vLmNsZWFuKFtHWzFdXSxIKX1lbHNle3ZhciBJPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKEdbM10pO2lmKEkmJkkuaWQhPUdbM10pe3JldHVybiBvKCkuZmluZChFKX12YXIgRj1vKEl8fFtdKTtGLmNvbnRleHQ9ZG9jdW1lbnQ7Ri5zZWxlY3Rvcj1FO3JldHVybiBGfX1lbHNle3JldHVybiBvKEgpLmZpbmQoRSl9fWVsc2V7aWYoby5pc0Z1bmN0aW9uKEUpKXtyZXR1cm4gbyhkb2N1bWVudCkucmVhZHkoRSl9fWlmKEUuc2VsZWN0b3ImJkUuY29udGV4dCl7dGhpcy5zZWxlY3Rvcj1FLnNlbGVjdG9yO3RoaXMuY29udGV4dD1FLmNvbnRleHR9cmV0dXJuIHRoaXMuc2V0QXJyYXkoby5pc0FycmF5KEUpP0U6by5tYWtlQXJyYXkoRSkpfSxzZWxlY3RvcjoiIixqcXVlcnk6IjEuMy4yIixzaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVuZ3RofSxnZXQ6ZnVuY3Rpb24oRSl7cmV0dXJuIEU9PT1nP0FycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMpOnRoaXNbRV19LHB1c2hTdGFjazpmdW5jdGlvbihGLEgsRSl7dmFyIEc9byhGKTtHLnByZXZPYmplY3Q9dGhpcztHLmNvbnRleHQ9dGhpcy5jb250ZXh0O2lmKEg9PT0iZmluZCIpe0cuc2VsZWN0b3I9dGhpcy5zZWxlY3RvcisodGhpcy5zZWxlY3Rvcj8iICI6IiIpK0V9ZWxzZXtpZihIKXtHLnNlbGVjdG9yPXRoaXMuc2VsZWN0b3IrIi4iK0grIigiK0UrIikifX1yZXR1cm4gR30sc2V0QXJyYXk6ZnVuY3Rpb24oRSl7dGhpcy5sZW5ndGg9MDtBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSh0aGlzLEUpO3JldHVybiB0aGlzfSxlYWNoOmZ1bmN0aW9uKEYsRSl7cmV0dXJuIG8uZWFjaCh0aGlzLEYsRSl9LGluZGV4OmZ1bmN0aW9uKEUpe3JldHVybiBvLmluQXJyYXkoRSYmRS5qcXVlcnk/RVswXTpFLHRoaXMpfSxhdHRyOmZ1bmN0aW9uKEYsSCxHKXt2YXIgRT1GO2lmKHR5cGVvZiBGPT09InN0cmluZyIpe2lmKEg9PT1nKXtyZXR1cm4gdGhpc1swXSYmb1tHfHwiYXR0ciJdKHRoaXNbMF0sRil9ZWxzZXtFPXt9O0VbRl09SH19cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihJKXtmb3IoRiBpbiBFKXtvLmF0dHIoRz90aGlzLnN0eWxlOnRoaXMsRixvLnByb3AodGhpcyxFW0ZdLEcsSSxGKSl9fSl9LGNzczpmdW5jdGlvbihFLEYpe2lmKChFPT0id2lkdGgifHxFPT0iaGVpZ2h0IikmJnBhcnNlRmxvYXQoRik8MCl7Rj1nfXJldHVybiB0aGlzLmF0dHIoRSxGLCJjdXJDU1MiKX0sdGV4dDpmdW5jdGlvbihGKXtpZih0eXBlb2YgRiE9PSJvYmplY3QiJiZGIT1udWxsKXtyZXR1cm4gdGhpcy5lbXB0eSgpLmFwcGVuZCgodGhpc1swXSYmdGhpc1swXS5vd25lckRvY3VtZW50fHxkb2N1bWVudCkuY3JlYXRlVGV4dE5vZGUoRikpfXZhciBFPSIiO28uZWFjaChGfHx0aGlzLGZ1bmN0aW9uKCl7by5lYWNoKHRoaXMuY2hpbGROb2RlcyxmdW5jdGlvbigpe2lmKHRoaXMubm9kZVR5cGUhPTgpe0UrPXRoaXMubm9kZVR5cGUhPTE/dGhpcy5ub2RlVmFsdWU6by5mbi50ZXh0KFt0aGlzXSl9fSl9KTtyZXR1cm4gRX0sd3JhcEFsbDpmdW5jdGlvbihFKXtpZih0aGlzWzBdKXt2YXIgRj1vKEUsdGhpc1swXS5vd25lckRvY3VtZW50KS5jbG9uZSgpO2lmKHRoaXNbMF0ucGFyZW50Tm9kZSl7Ri5pbnNlcnRCZWZvcmUodGhpc1swXSl9Ri5tYXAoZnVuY3Rpb24oKXt2YXIgRz10aGlzO3doaWxlKEcuZmlyc3RDaGlsZCl7Rz1HLmZpcnN0Q2hpbGR9cmV0dXJuIEd9KS5hcHBlbmQodGhpcyl9cmV0dXJuIHRoaXN9LHdyYXBJbm5lcjpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7byh0aGlzKS5jb250ZW50cygpLndyYXBBbGwoRSl9KX0sd3JhcDpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7byh0aGlzKS53cmFwQWxsKEUpfSl9LGFwcGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyx0cnVlLGZ1bmN0aW9uKEUpe2lmKHRoaXMubm9kZVR5cGU9PTEpe3RoaXMuYXBwZW5kQ2hpbGQoRSl9fSl9LHByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsdHJ1ZSxmdW5jdGlvbihFKXtpZih0aGlzLm5vZGVUeXBlPT0xKXt0aGlzLmluc2VydEJlZm9yZShFLHRoaXMuZmlyc3RDaGlsZCl9fSl9LGJlZm9yZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyxmYWxzZSxmdW5jdGlvbihFKXt0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKEUsdGhpcyl9KX0sYWZ0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZmFsc2UsZnVuY3Rpb24oRSl7dGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShFLHRoaXMubmV4dFNpYmxpbmcpfSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fG8oW10pfSxwdXNoOltdLnB1c2gsc29ydDpbXS5zb3J0LHNwbGljZTpbXS5zcGxpY2UsZmluZDpmdW5jdGlvbihFKXtpZih0aGlzLmxlbmd0aD09PTEpe3ZhciBGPXRoaXMucHVzaFN0YWNrKFtdLCJmaW5kIixFKTtGLmxlbmd0aD0wO28uZmluZChFLHRoaXNbMF0sRik7cmV0dXJuIEZ9ZWxzZXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soby51bmlxdWUoby5tYXAodGhpcyxmdW5jdGlvbihHKXtyZXR1cm4gby5maW5kKEUsRyl9KSksImZpbmQiLEUpfX0sY2xvbmU6ZnVuY3Rpb24oRyl7dmFyIEU9dGhpcy5tYXAoZnVuY3Rpb24oKXtpZighby5zdXBwb3J0Lm5vQ2xvbmVFdmVudCYmIW8uaXNYTUxEb2ModGhpcykpe3ZhciBJPXRoaXMub3V0ZXJIVE1MO2lmKCFJKXt2YXIgSj10aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Si5hcHBlbmRDaGlsZCh0aGlzLmNsb25lTm9kZSh0cnVlKSk7ST1KLmlubmVySFRNTH1yZXR1cm4gby5jbGVhbihbSS5yZXBsYWNlKC8galF1ZXJ5XGQrPSIoPzpcZCt8bnVsbCkiL2csIiIpLnJlcGxhY2UoL15ccyovLCIiKV0pWzBdfWVsc2V7cmV0dXJuIHRoaXMuY2xvbmVOb2RlKHRydWUpfX0pO2lmKEc9PT10cnVlKXt2YXIgSD10aGlzLmZpbmQoIioiKS5hbmRTZWxmKCksRj0wO0UuZmluZCgiKiIpLmFuZFNlbGYoKS5lYWNoKGZ1bmN0aW9uKCl7aWYodGhpcy5ub2RlTmFtZSE9PUhbRl0ubm9kZU5hbWUpe3JldHVybn12YXIgST1vLmRhdGEoSFtGXSwiZXZlbnRzIik7Zm9yKHZhciBLIGluIEkpe2Zvcih2YXIgSiBpbiBJW0tdKXtvLmV2ZW50LmFkZCh0aGlzLEssSVtLXVtKXSxJW0tdW0pdLmRhdGEpfX1GKyt9KX1yZXR1cm4gRX0sZmlsdGVyOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLnB1c2hTdGFjayhvLmlzRnVuY3Rpb24oRSkmJm8uZ3JlcCh0aGlzLGZ1bmN0aW9uKEcsRil7cmV0dXJuIEUuY2FsbChHLEYpfSl8fG8ubXVsdGlGaWx0ZXIoRSxvLmdyZXAodGhpcyxmdW5jdGlvbihGKXtyZXR1cm4gRi5ub2RlVHlwZT09PTF9KSksImZpbHRlciIsRSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oRSl7dmFyIEc9by5leHByLm1hdGNoLlBPUy50ZXN0KEUpP28oRSk6bnVsbCxGPTA7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7dmFyIEg9dGhpczt3aGlsZShIJiZILm93bmVyRG9jdW1lbnQpe2lmKEc/Ry5pbmRleChIKT4tMTpvKEgpLmlzKEUpKXtvLmRhdGEoSCwiY2xvc2VzdCIsRik7cmV0dXJuIEh9SD1ILnBhcmVudE5vZGU7RisrfX0pfSxub3Q6ZnVuY3Rpb24oRSl7aWYodHlwZW9mIEU9PT0ic3RyaW5nIil7aWYoZi50ZXN0KEUpKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soby5tdWx0aUZpbHRlcihFLHRoaXMsdHJ1ZSksIm5vdCIsRSl9ZWxzZXtFPW8ubXVsdGlGaWx0ZXIoRSx0aGlzKX19dmFyIEY9RS5sZW5ndGgmJkVbRS5sZW5ndGgtMV0hPT1nJiYhRS5ub2RlVHlwZTtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gRj9vLmluQXJyYXkodGhpcyxFKTwwOnRoaXMhPUV9KX0sYWRkOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLnB1c2hTdGFjayhvLnVuaXF1ZShvLm1lcmdlKHRoaXMuZ2V0KCksdHlwZW9mIEU9PT0ic3RyaW5nIj9vKEUpOm8ubWFrZUFycmF5KEUpKSkpfSxpczpmdW5jdGlvbihFKXtyZXR1cm4gISFFJiZvLm11bHRpRmlsdGVyKEUsdGhpcykubGVuZ3RoPjB9LGhhc0NsYXNzOmZ1bmN0aW9uKEUpe3JldHVybiAhIUUmJnRoaXMuaXMoIi4iK0UpfSx2YWw6ZnVuY3Rpb24oSyl7aWYoSz09PWcpe3ZhciBFPXRoaXNbMF07aWYoRSl7aWYoby5ub2RlTmFtZShFLCJvcHRpb24iKSl7cmV0dXJuKEUuYXR0cmlidXRlcy52YWx1ZXx8e30pLnNwZWNpZmllZD9FLnZhbHVlOkUudGV4dH1pZihvLm5vZGVOYW1lKEUsInNlbGVjdCIpKXt2YXIgST1FLnNlbGVjdGVkSW5kZXgsTD1bXSxNPUUub3B0aW9ucyxIPUUudHlwZT09InNlbGVjdC1vbmUiO2lmKEk8MCl7cmV0dXJuIG51bGx9Zm9yKHZhciBGPUg/STowLEo9SD9JKzE6TS5sZW5ndGg7RjxKO0YrKyl7dmFyIEc9TVtGXTtpZihHLnNlbGVjdGVkKXtLPW8oRykudmFsKCk7aWYoSCl7cmV0dXJuIEt9TC5wdXNoKEspfX1yZXR1cm4gTH1yZXR1cm4oRS52YWx1ZXx8IiIpLnJlcGxhY2UoL1xyL2csIiIpfXJldHVybiBnfWlmKHR5cGVvZiBLPT09Im51bWJlciIpe0srPSIifXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtpZih0aGlzLm5vZGVUeXBlIT0xKXtyZXR1cm59aWYoby5pc0FycmF5KEspJiYvcmFkaW98Y2hlY2tib3gvLnRlc3QodGhpcy50eXBlKSl7dGhpcy5jaGVja2VkPShvLmluQXJyYXkodGhpcy52YWx1ZSxLKT49MHx8by5pbkFycmF5KHRoaXMubmFtZSxLKT49MCl9ZWxzZXtpZihvLm5vZGVOYW1lKHRoaXMsInNlbGVjdCIpKXt2YXIgTj1vLm1ha2VBcnJheShLKTtvKCJvcHRpb24iLHRoaXMpLmVhY2goZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVkPShvLmluQXJyYXkodGhpcy52YWx1ZSxOKT49MHx8by5pbkFycmF5KHRoaXMudGV4dCxOKT49MCl9KTtpZighTi5sZW5ndGgpe3RoaXMuc2VsZWN0ZWRJbmRleD0tMX19ZWxzZXt0aGlzLnZhbHVlPUt9fX0pfSxodG1sOmZ1bmN0aW9uKEUpe3JldHVybiBFPT09Zz8odGhpc1swXT90aGlzWzBdLmlubmVySFRNTC5yZXBsYWNlKC8galF1ZXJ5XGQrPSIoPzpcZCt8bnVsbCkiL2csIiIpOm51bGwpOnRoaXMuZW1wdHkoKS5hcHBlbmQoRSl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLmFmdGVyKEUpLnJlbW92ZSgpfSxlcTpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5zbGljZShFLCtFKzEpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhBcnJheS5wcm90b3R5cGUuc2xpY2UuYXBwbHkodGhpcyxhcmd1bWVudHMpLCJzbGljZSIsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKS5qb2luKCIsIikpfSxtYXA6ZnVuY3Rpb24oRSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG8ubWFwKHRoaXMsZnVuY3Rpb24oRyxGKXtyZXR1cm4gRS5jYWxsKEcsRixHKX0pKX0sYW5kU2VsZjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFkZCh0aGlzLnByZXZPYmplY3QpfSxkb21NYW5pcDpmdW5jdGlvbihKLE0sTCl7aWYodGhpc1swXSl7dmFyIEk9KHRoaXNbMF0ub3duZXJEb2N1bWVudHx8dGhpc1swXSkuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLEY9by5jbGVhbihKLCh0aGlzWzBdLm93bmVyRG9jdW1lbnR8fHRoaXNbMF0pLEkpLEg9SS5maXJzdENoaWxkO2lmKEgpe2Zvcih2YXIgRz0wLEU9dGhpcy5sZW5ndGg7RzxFO0crKyl7TC5jYWxsKEsodGhpc1tHXSxIKSx0aGlzLmxlbmd0aD4xfHxHPjA/SS5jbG9uZU5vZGUodHJ1ZSk6SSl9fWlmKEYpe28uZWFjaChGLHopfX1yZXR1cm4gdGhpcztmdW5jdGlvbiBLKE4sTyl7cmV0dXJuIE0mJm8ubm9kZU5hbWUoTiwidGFibGUiKSYmby5ub2RlTmFtZShPLCJ0ciIpPyhOLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpWzBdfHxOLmFwcGVuZENoaWxkKE4ub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Ym9keSIpKSk6Tn19fTtvLmZuLmluaXQucHJvdG90eXBlPW8uZm47ZnVuY3Rpb24geihFLEYpe2lmKEYuc3JjKXtvLmFqYXgoe3VybDpGLnNyYyxhc3luYzpmYWxzZSxkYXRhVHlwZToic2NyaXB0In0pfWVsc2V7by5nbG9iYWxFdmFsKEYudGV4dHx8Ri50ZXh0Q29udGVudHx8Ri5pbm5lckhUTUx8fCIiKX1pZihGLnBhcmVudE5vZGUpe0YucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChGKX19ZnVuY3Rpb24gZSgpe3JldHVybiArbmV3IERhdGV9by5leHRlbmQ9by5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgSj1hcmd1bWVudHNbMF18fHt9LEg9MSxJPWFyZ3VtZW50cy5sZW5ndGgsRT1mYWxzZSxHO2lmKHR5cGVvZiBKPT09ImJvb2xlYW4iKXtFPUo7Sj1hcmd1bWVudHNbMV18fHt9O0g9Mn1pZih0eXBlb2YgSiE9PSJvYmplY3QiJiYhby5pc0Z1bmN0aW9uKEopKXtKPXt9fWlmKEk9PUgpe0o9dGhpczstLUh9Zm9yKDtIPEk7SCsrKXtpZigoRz1hcmd1bWVudHNbSF0pIT1udWxsKXtmb3IodmFyIEYgaW4gRyl7dmFyIEs9SltGXSxMPUdbRl07aWYoSj09PUwpe2NvbnRpbnVlfWlmKEUmJkwmJnR5cGVvZiBMPT09Im9iamVjdCImJiFMLm5vZGVUeXBlKXtKW0ZdPW8uZXh0ZW5kKEUsS3x8KEwubGVuZ3RoIT1udWxsP1tdOnt9KSxMKX1lbHNle2lmKEwhPT1nKXtKW0ZdPUx9fX19fXJldHVybiBKfTt2YXIgYj0vei0/aW5kZXh8Zm9udC0/d2VpZ2h0fG9wYWNpdHl8em9vbXxsaW5lLT9oZWlnaHQvaSxxPWRvY3VtZW50LmRlZmF1bHRWaWV3fHx7fSxzPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7by5leHRlbmQoe25vQ29uZmxpY3Q6ZnVuY3Rpb24oRSl7bC4kPXA7aWYoRSl7bC5qUXVlcnk9eX1yZXR1cm4gb30saXNGdW5jdGlvbjpmdW5jdGlvbihFKXtyZXR1cm4gcy5jYWxsKEUpPT09IltvYmplY3QgRnVuY3Rpb25dIn0saXNBcnJheTpmdW5jdGlvbihFKXtyZXR1cm4gcy5jYWxsKEUpPT09IltvYmplY3QgQXJyYXldIn0saXNYTUxEb2M6ZnVuY3Rpb24oRSl7cmV0dXJuIEUubm9kZVR5cGU9PT05JiZFLmRvY3VtZW50RWxlbWVudC5ub2RlTmFtZSE9PSJIVE1MInx8ISFFLm93bmVyRG9jdW1lbnQmJm8uaXNYTUxEb2MoRS5vd25lckRvY3VtZW50KX0sZ2xvYmFsRXZhbDpmdW5jdGlvbihHKXtpZihHJiYvXFMvLnRlc3QoRykpe3ZhciBGPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxFPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO0UudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtpZihvLnN1cHBvcnQuc2NyaXB0RXZhbCl7RS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShHKSl9ZWxzZXtFLnRleHQ9R31GLmluc2VydEJlZm9yZShFLEYuZmlyc3RDaGlsZCk7Ri5yZW1vdmVDaGlsZChFKX19LG5vZGVOYW1lOmZ1bmN0aW9uKEYsRSl7cmV0dXJuIEYubm9kZU5hbWUmJkYubm9kZU5hbWUudG9VcHBlckNhc2UoKT09RS50b1VwcGVyQ2FzZSgpfSxlYWNoOmZ1bmN0aW9uKEcsSyxGKXt2YXIgRSxIPTAsST1HLmxlbmd0aDtpZihGKXtpZihJPT09Zyl7Zm9yKEUgaW4gRyl7aWYoSy5hcHBseShHW0VdLEYpPT09ZmFsc2Upe2JyZWFrfX19ZWxzZXtmb3IoO0g8STspe2lmKEsuYXBwbHkoR1tIKytdLEYpPT09ZmFsc2Upe2JyZWFrfX19fWVsc2V7aWYoST09PWcpe2ZvcihFIGluIEcpe2lmKEsuY2FsbChHW0VdLEUsR1tFXSk9PT1mYWxzZSl7YnJlYWt9fX1lbHNle2Zvcih2YXIgSj1HWzBdO0g8SSYmSy5jYWxsKEosSCxKKSE9PWZhbHNlO0o9R1srK0hdKXt9fX1yZXR1cm4gR30scHJvcDpmdW5jdGlvbihILEksRyxGLEUpe2lmKG8uaXNGdW5jdGlvbihJKSl7ST1JLmNhbGwoSCxGKX1yZXR1cm4gdHlwZW9mIEk9PT0ibnVtYmVyIiYmRz09ImN1ckNTUyImJiFiLnRlc3QoRSk/SSsicHgiOkl9LGNsYXNzTmFtZTp7YWRkOmZ1bmN0aW9uKEUsRil7by5lYWNoKChGfHwiIikuc3BsaXQoL1xzKy8pLGZ1bmN0aW9uKEcsSCl7aWYoRS5ub2RlVHlwZT09MSYmIW8uY2xhc3NOYW1lLmhhcyhFLmNsYXNzTmFtZSxIKSl7RS5jbGFzc05hbWUrPShFLmNsYXNzTmFtZT8iICI6IiIpK0h9fSl9LHJlbW92ZTpmdW5jdGlvbihFLEYpe2lmKEUubm9kZVR5cGU9PTEpe0UuY2xhc3NOYW1lPUYhPT1nP28uZ3JlcChFLmNsYXNzTmFtZS5zcGxpdCgvXHMrLyksZnVuY3Rpb24oRyl7cmV0dXJuICFvLmNsYXNzTmFtZS5oYXMoRixHKX0pLmpvaW4oIiAiKToiIn19LGhhczpmdW5jdGlvbihGLEUpe3JldHVybiBGJiZvLmluQXJyYXkoRSwoRi5jbGFzc05hbWV8fEYpLnRvU3RyaW5nKCkuc3BsaXQoL1xzKy8pKT4tMX19LHN3YXA6ZnVuY3Rpb24oSCxHLEkpe3ZhciBFPXt9O2Zvcih2YXIgRiBpbiBHKXtFW0ZdPUguc3R5bGVbRl07SC5zdHlsZVtGXT1HW0ZdfUkuY2FsbChIKTtmb3IodmFyIEYgaW4gRyl7SC5zdHlsZVtGXT1FW0ZdfX0sY3NzOmZ1bmN0aW9uKEgsRixKLEUpe2lmKEY9PSJ3aWR0aCJ8fEY9PSJoZWlnaHQiKXt2YXIgTCxHPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToiYmxvY2sifSxLPUY9PSJ3aWR0aCI/WyJMZWZ0IiwiUmlnaHQiXTpbIlRvcCIsIkJvdHRvbSJdO2Z1bmN0aW9uIEkoKXtMPUY9PSJ3aWR0aCI/SC5vZmZzZXRXaWR0aDpILm9mZnNldEhlaWdodDtpZihFPT09ImJvcmRlciIpe3JldHVybn1vLmVhY2goSyxmdW5jdGlvbigpe2lmKCFFKXtMLT1wYXJzZUZsb2F0KG8uY3VyQ1NTKEgsInBhZGRpbmciK3RoaXMsdHJ1ZSkpfHwwfWlmKEU9PT0ibWFyZ2luIil7TCs9cGFyc2VGbG9hdChvLmN1ckNTUyhILCJtYXJnaW4iK3RoaXMsdHJ1ZSkpfHwwfWVsc2V7TC09cGFyc2VGbG9hdChvLmN1ckNTUyhILCJib3JkZXIiK3RoaXMrIldpZHRoIix0cnVlKSl8fDB9fSl9aWYoSC5vZmZzZXRXaWR0aCE9PTApe0koKX1lbHNle28uc3dhcChILEcsSSl9cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5yb3VuZChMKSl9cmV0dXJuIG8uY3VyQ1NTKEgsRixKKX0sY3VyQ1NTOmZ1bmN0aW9uKEksRixHKXt2YXIgTCxFPUkuc3R5bGU7aWYoRj09Im9wYWNpdHkiJiYhby5zdXBwb3J0Lm9wYWNpdHkpe0w9by5hdHRyKEUsIm9wYWNpdHkiKTtyZXR1cm4gTD09IiI/IjEiOkx9aWYoRi5tYXRjaCgvZmxvYXQvaSkpe0Y9d31pZighRyYmRSYmRVtGXSl7TD1FW0ZdfWVsc2V7aWYocS5nZXRDb21wdXRlZFN0eWxlKXtpZihGLm1hdGNoKC9mbG9hdC9pKSl7Rj0iZmxvYXQifUY9Ri5yZXBsYWNlKC8oW0EtWl0pL2csIi0kMSIpLnRvTG93ZXJDYXNlKCk7dmFyIE09cS5nZXRDb21wdXRlZFN0eWxlKEksbnVsbCk7aWYoTSl7TD1NLmdldFByb3BlcnR5VmFsdWUoRil9aWYoRj09Im9wYWNpdHkiJiZMPT0iIil7TD0iMSJ9fWVsc2V7aWYoSS5jdXJyZW50U3R5bGUpe3ZhciBKPUYucmVwbGFjZSgvXC0oXHcpL2csZnVuY3Rpb24oTixPKXtyZXR1cm4gTy50b1VwcGVyQ2FzZSgpfSk7TD1JLmN1cnJlbnRTdHlsZVtGXXx8SS5jdXJyZW50U3R5bGVbSl07aWYoIS9eXGQrKHB4KT8kL2kudGVzdChMKSYmL15cZC8udGVzdChMKSl7dmFyIEg9RS5sZWZ0LEs9SS5ydW50aW1lU3R5bGUubGVmdDtJLnJ1bnRpbWVTdHlsZS5sZWZ0PUkuY3VycmVudFN0eWxlLmxlZnQ7RS5sZWZ0PUx8fDA7TD1FLnBpeGVsTGVmdCsicHgiO0UubGVmdD1IO0kucnVudGltZVN0eWxlLmxlZnQ9S319fX1yZXR1cm4gTH0sY2xlYW46ZnVuY3Rpb24oRixLLEkpe0s9S3x8ZG9jdW1lbnQ7aWYodHlwZW9mIEsuY3JlYXRlRWxlbWVudD09PSJ1bmRlZmluZWQiKXtLPUsub3duZXJEb2N1bWVudHx8S1swXSYmS1swXS5vd25lckRvY3VtZW50fHxkb2N1bWVudH1pZighSSYmRi5sZW5ndGg9PT0xJiZ0eXBlb2YgRlswXT09PSJzdHJpbmciKXt2YXIgSD0vXjwoXHcrKVxzKlwvPz4kLy5leGVjKEZbMF0pO2lmKEgpe3JldHVybltLLmNyZWF0ZUVsZW1lbnQoSFsxXSldfX12YXIgRz1bXSxFPVtdLEw9Sy5jcmVhdGVFbGVtZW50KCJkaXYiKTtvLmVhY2goRixmdW5jdGlvbihQLFMpe2lmKHR5cGVvZiBTPT09Im51bWJlciIpe1MrPSIifWlmKCFTKXtyZXR1cm59aWYodHlwZW9mIFM9PT0ic3RyaW5nIil7Uz1TLnJlcGxhY2UoLyg8KFx3KylbXj5dKj8pXC8+L2csZnVuY3Rpb24oVSxWLFQpe3JldHVybiBULm1hdGNoKC9eKGFiYnJ8YnJ8Y29sfGltZ3xpbnB1dHxsaW5rfG1ldGF8cGFyYW18aHJ8YXJlYXxlbWJlZCkkL2kpP1U6VisiPjwvIitUKyI+In0pO3ZhciBPPVMucmVwbGFjZSgvXlxzKy8sIiIpLnN1YnN0cmluZygwLDEwKS50b0xvd2VyQ2FzZSgpO3ZhciBRPSFPLmluZGV4T2YoIjxvcHQiKSYmWzEsIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXXx8IU8uaW5kZXhPZigiPGxlZyIpJiZbMSwiPGZpZWxkc2V0PiIsIjwvZmllbGRzZXQ+Il18fE8ubWF0Y2goL148KHRoZWFkfHRib2R5fHRmb290fGNvbGd8Y2FwKS8pJiZbMSwiPHRhYmxlPiIsIjwvdGFibGU+Il18fCFPLmluZGV4T2YoIjx0ciIpJiZbMiwiPHRhYmxlPjx0Ym9keT4iLCI8L3Rib2R5PjwvdGFibGU+Il18fCghTy5pbmRleE9mKCI8dGQiKXx8IU8uaW5kZXhPZigiPHRoIikpJiZbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il18fCFPLmluZGV4T2YoIjxjb2wiKSYmWzIsIjx0YWJsZT48dGJvZHk+PC90Ym9keT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdfHwhby5zdXBwb3J0Lmh0bWxTZXJpYWxpemUmJlsxLCJkaXY8ZGl2PiIsIjwvZGl2PiJdfHxbMCwiIiwiIl07TC5pbm5lckhUTUw9UVsxXStTK1FbMl07d2hpbGUoUVswXS0tKXtMPUwubGFzdENoaWxkfWlmKCFvLnN1cHBvcnQudGJvZHkpe3ZhciBSPS88dGJvZHkvaS50ZXN0KFMpLE49IU8uaW5kZXhPZigiPHRhYmxlIikmJiFSP0wuZmlyc3RDaGlsZCYmTC5maXJzdENoaWxkLmNoaWxkTm9kZXM6UVsxXT09Ijx0YWJsZT4iJiYhUj9MLmNoaWxkTm9kZXM6W107Zm9yKHZhciBNPU4ubGVuZ3RoLTE7TT49MDstLU0pe2lmKG8ubm9kZU5hbWUoTltNXSwidGJvZHkiKSYmIU5bTV0uY2hpbGROb2Rlcy5sZW5ndGgpe05bTV0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChOW01dKX19fWlmKCFvLnN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2UmJi9eXHMvLnRlc3QoUykpe0wuaW5zZXJ0QmVmb3JlKEsuY3JlYXRlVGV4dE5vZGUoUy5tYXRjaCgvXlxzKi8pWzBdKSxMLmZpcnN0Q2hpbGQpfVM9by5tYWtlQXJyYXkoTC5jaGlsZE5vZGVzKX1pZihTLm5vZGVUeXBlKXtHLnB1c2goUyl9ZWxzZXtHPW8ubWVyZ2UoRyxTKX19KTtpZihJKXtmb3IodmFyIEo9MDtHW0pdO0orKyl7aWYoby5ub2RlTmFtZShHW0pdLCJzY3JpcHQiKSYmKCFHW0pdLnR5cGV8fEdbSl0udHlwZS50b0xvd2VyQ2FzZSgpPT09InRleHQvamF2YXNjcmlwdCIpKXtFLnB1c2goR1tKXS5wYXJlbnROb2RlP0dbSl0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChHW0pdKTpHW0pdKX1lbHNle2lmKEdbSl0ubm9kZVR5cGU9PT0xKXtHLnNwbGljZS5hcHBseShHLFtKKzEsMF0uY29uY2F0KG8ubWFrZUFycmF5KEdbSl0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpKSkpfUkuYXBwZW5kQ2hpbGQoR1tKXSl9fXJldHVybiBFfXJldHVybiBHfSxhdHRyOmZ1bmN0aW9uKEosRyxLKXtpZighSnx8Si5ub2RlVHlwZT09M3x8Si5ub2RlVHlwZT09OCl7cmV0dXJuIGd9dmFyIEg9IW8uaXNYTUxEb2MoSiksTD1LIT09ZztHPUgmJm8ucHJvcHNbR118fEc7aWYoSi50YWdOYW1lKXt2YXIgRj0vaHJlZnxzcmN8c3R5bGUvLnRlc3QoRyk7aWYoRz09InNlbGVjdGVkIiYmSi5wYXJlbnROb2RlKXtKLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleH1pZihHIGluIEomJkgmJiFGKXtpZihMKXtpZihHPT0idHlwZSImJm8ubm9kZU5hbWUoSiwiaW5wdXQiKSYmSi5wYXJlbnROb2RlKXt0aHJvdyJ0eXBlIHByb3BlcnR5IGNhbid0IGJlIGNoYW5nZWQifUpbR109S31pZihvLm5vZGVOYW1lKEosImZvcm0iKSYmSi5nZXRBdHRyaWJ1dGVOb2RlKEcpKXtyZXR1cm4gSi5nZXRBdHRyaWJ1dGVOb2RlKEcpLm5vZGVWYWx1ZX1pZihHPT0idGFiSW5kZXgiKXt2YXIgST1KLmdldEF0dHJpYnV0ZU5vZGUoInRhYkluZGV4Iik7cmV0dXJuIEkmJkkuc3BlY2lmaWVkP0kudmFsdWU6Si5ub2RlTmFtZS5tYXRjaCgvKGJ1dHRvbnxpbnB1dHxvYmplY3R8c2VsZWN0fHRleHRhcmVhKS9pKT8wOkoubm9kZU5hbWUubWF0Y2goL14oYXxhcmVhKSQvaSkmJkouaHJlZj8wOmd9cmV0dXJuIEpbR119aWYoIW8uc3VwcG9ydC5zdHlsZSYmSCYmRz09InN0eWxlIil7cmV0dXJuIG8uYXR0cihKLnN0eWxlLCJjc3NUZXh0IixLKX1pZihMKXtKLnNldEF0dHJpYnV0ZShHLCIiK0spfXZhciBFPSFvLnN1cHBvcnQuaHJlZk5vcm1hbGl6ZWQmJkgmJkY/Si5nZXRBdHRyaWJ1dGUoRywyKTpKLmdldEF0dHJpYnV0ZShHKTtyZXR1cm4gRT09PW51bGw/ZzpFfWlmKCFvLnN1cHBvcnQub3BhY2l0eSYmRz09Im9wYWNpdHkiKXtpZihMKXtKLnpvb209MTtKLmZpbHRlcj0oSi5maWx0ZXJ8fCIiKS5yZXBsYWNlKC9hbHBoYVwoW14pXSpcKS8sIiIpKyhwYXJzZUludChLKSsiIj09Ik5hTiI/IiI6ImFscGhhKG9wYWNpdHk9IitLKjEwMCsiKSIpfXJldHVybiBKLmZpbHRlciYmSi5maWx0ZXIuaW5kZXhPZigib3BhY2l0eT0iKT49MD8ocGFyc2VGbG9hdChKLmZpbHRlci5tYXRjaCgvb3BhY2l0eT0oW14pXSopLylbMV0pLzEwMCkrIiI6IiJ9Rz1HLnJlcGxhY2UoLy0oW2Etel0pL2lnLGZ1bmN0aW9uKE0sTil7cmV0dXJuIE4udG9VcHBlckNhc2UoKX0pO2lmKEwpe0pbR109S31yZXR1cm4gSltHXX0sdHJpbTpmdW5jdGlvbihFKXtyZXR1cm4oRXx8IiIpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX0sbWFrZUFycmF5OmZ1bmN0aW9uKEcpe3ZhciBFPVtdO2lmKEchPW51bGwpe3ZhciBGPUcubGVuZ3RoO2lmKEY9PW51bGx8fHR5cGVvZiBHPT09InN0cmluZyJ8fG8uaXNGdW5jdGlvbihHKXx8Ry5zZXRJbnRlcnZhbCl7RVswXT1HfWVsc2V7d2hpbGUoRil7RVstLUZdPUdbRl19fX1yZXR1cm4gRX0saW5BcnJheTpmdW5jdGlvbihHLEgpe2Zvcih2YXIgRT0wLEY9SC5sZW5ndGg7RTxGO0UrKyl7aWYoSFtFXT09PUcpe3JldHVybiBFfX1yZXR1cm4gLTF9LG1lcmdlOmZ1bmN0aW9uKEgsRSl7dmFyIEY9MCxHLEk9SC5sZW5ndGg7aWYoIW8uc3VwcG9ydC5nZXRBbGwpe3doaWxlKChHPUVbRisrXSkhPW51bGwpe2lmKEcubm9kZVR5cGUhPTgpe0hbSSsrXT1HfX19ZWxzZXt3aGlsZSgoRz1FW0YrK10pIT1udWxsKXtIW0krK109R319cmV0dXJuIEh9LHVuaXF1ZTpmdW5jdGlvbihLKXt2YXIgRj1bXSxFPXt9O3RyeXtmb3IodmFyIEc9MCxIPUsubGVuZ3RoO0c8SDtHKyspe3ZhciBKPW8uZGF0YShLW0ddKTtpZighRVtKXSl7RVtKXT10cnVlO0YucHVzaChLW0ddKX19fWNhdGNoKEkpe0Y9S31yZXR1cm4gRn0sZ3JlcDpmdW5jdGlvbihGLEosRSl7dmFyIEc9W107Zm9yKHZhciBIPTAsST1GLmxlbmd0aDtIPEk7SCsrKXtpZighRSE9IUooRltIXSxIKSl7Ry5wdXNoKEZbSF0pfX1yZXR1cm4gR30sbWFwOmZ1bmN0aW9uKEUsSil7dmFyIEY9W107Zm9yKHZhciBHPTAsSD1FLmxlbmd0aDtHPEg7RysrKXt2YXIgST1KKEVbR10sRyk7aWYoSSE9bnVsbCl7RltGLmxlbmd0aF09SX19cmV0dXJuIEYuY29uY2F0LmFwcGx5KFtdLEYpfX0pO3ZhciBDPW5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTtvLmJyb3dzZXI9e3ZlcnNpb246KEMubWF0Y2goLy4rKD86cnZ8aXR8cmF8aWUpW1wvOiBdKFtcZC5dKykvKXx8WzAsIjAiXSlbMV0sc2FmYXJpOi93ZWJraXQvLnRlc3QoQyksb3BlcmE6L29wZXJhLy50ZXN0KEMpLG1zaWU6L21zaWUvLnRlc3QoQykmJiEvb3BlcmEvLnRlc3QoQyksbW96aWxsYTovbW96aWxsYS8udGVzdChDKSYmIS8oY29tcGF0aWJsZXx3ZWJraXQpLy50ZXN0KEMpfTtvLmVhY2goe3BhcmVudDpmdW5jdGlvbihFKXtyZXR1cm4gRS5wYXJlbnROb2RlfSxwYXJlbnRzOmZ1bmN0aW9uKEUpe3JldHVybiBvLmRpcihFLCJwYXJlbnROb2RlIil9LG5leHQ6ZnVuY3Rpb24oRSl7cmV0dXJuIG8ubnRoKEUsMiwibmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihFKXtyZXR1cm4gby5udGgoRSwyLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihFKXtyZXR1cm4gby5kaXIoRSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihFKXtyZXR1cm4gby5kaXIoRSwicHJldmlvdXNTaWJsaW5nIil9LHNpYmxpbmdzOmZ1bmN0aW9uKEUpe3JldHVybiBvLnNpYmxpbmcoRS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQsRSl9LGNoaWxkcmVuOmZ1bmN0aW9uKEUpe3JldHVybiBvLnNpYmxpbmcoRS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oRSl7cmV0dXJuIG8ubm9kZU5hbWUoRSwiaWZyYW1lIik/RS5jb250ZW50RG9jdW1lbnR8fEUuY29udGVudFdpbmRvdy5kb2N1bWVudDpvLm1ha2VBcnJheShFLmNoaWxkTm9kZXMpfX0sZnVuY3Rpb24oRSxGKXtvLmZuW0VdPWZ1bmN0aW9uKEcpe3ZhciBIPW8ubWFwKHRoaXMsRik7aWYoRyYmdHlwZW9mIEc9PSJzdHJpbmciKXtIPW8ubXVsdGlGaWx0ZXIoRyxIKX1yZXR1cm4gdGhpcy5wdXNoU3RhY2soby51bmlxdWUoSCksRSxHKX19KTtvLmVhY2goe2FwcGVuZFRvOiJhcHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihFLEYpe28uZm5bRV09ZnVuY3Rpb24oRyl7dmFyIEo9W10sTD1vKEcpO2Zvcih2YXIgSz0wLEg9TC5sZW5ndGg7SzxIO0srKyl7dmFyIEk9KEs+MD90aGlzLmNsb25lKHRydWUpOnRoaXMpLmdldCgpO28uZm5bRl0uYXBwbHkobyhMW0tdKSxJKTtKPUouY29uY2F0KEkpfXJldHVybiB0aGlzLnB1c2hTdGFjayhKLEUsRyl9fSk7by5lYWNoKHtyZW1vdmVBdHRyOmZ1bmN0aW9uKEUpe28uYXR0cih0aGlzLEUsIiIpO2lmKHRoaXMubm9kZVR5cGU9PTEpe3RoaXMucmVtb3ZlQXR0cmlidXRlKEUpfX0sYWRkQ2xhc3M6ZnVuY3Rpb24oRSl7by5jbGFzc05hbWUuYWRkKHRoaXMsRSl9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKEUpe28uY2xhc3NOYW1lLnJlbW92ZSh0aGlzLEUpfSx0b2dnbGVDbGFzczpmdW5jdGlvbihGLEUpe2lmKHR5cGVvZiBFIT09ImJvb2xlYW4iKXtFPSFvLmNsYXNzTmFtZS5oYXModGhpcyxGKX1vLmNsYXNzTmFtZVtFPyJhZGQiOiJyZW1vdmUiXSh0aGlzLEYpfSxyZW1vdmU6ZnVuY3Rpb24oRSl7aWYoIUV8fG8uZmlsdGVyKEUsW3RoaXNdKS5sZW5ndGgpe28oIioiLHRoaXMpLmFkZChbdGhpc10pLmVhY2goZnVuY3Rpb24oKXtvLmV2ZW50LnJlbW92ZSh0aGlzKTtvLnJlbW92ZURhdGEodGhpcyl9KTtpZih0aGlzLnBhcmVudE5vZGUpe3RoaXMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzKX19fSxlbXB0eTpmdW5jdGlvbigpe28odGhpcykuY2hpbGRyZW4oKS5yZW1vdmUoKTt3aGlsZSh0aGlzLmZpcnN0Q2hpbGQpe3RoaXMucmVtb3ZlQ2hpbGQodGhpcy5maXJzdENoaWxkKX19fSxmdW5jdGlvbihFLEYpe28uZm5bRV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKEYsYXJndW1lbnRzKX19KTtmdW5jdGlvbiBqKEUsRil7cmV0dXJuIEVbMF0mJnBhcnNlSW50KG8uY3VyQ1NTKEVbMF0sRix0cnVlKSwxMCl8fDB9dmFyIGg9ImpRdWVyeSIrZSgpLHY9MCxBPXt9O28uZXh0ZW5kKHtjYWNoZTp7fSxkYXRhOmZ1bmN0aW9uKEYsRSxHKXtGPUY9PWw/QTpGO3ZhciBIPUZbaF07aWYoIUgpe0g9RltoXT0rK3Z9aWYoRSYmIW8uY2FjaGVbSF0pe28uY2FjaGVbSF09e319aWYoRyE9PWcpe28uY2FjaGVbSF1bRV09R31yZXR1cm4gRT9vLmNhY2hlW0hdW0VdOkh9LHJlbW92ZURhdGE6ZnVuY3Rpb24oRixFKXtGPUY9PWw/QTpGO3ZhciBIPUZbaF07aWYoRSl7aWYoby5jYWNoZVtIXSl7ZGVsZXRlIG8uY2FjaGVbSF1bRV07RT0iIjtmb3IoRSBpbiBvLmNhY2hlW0hdKXticmVha31pZighRSl7by5yZW1vdmVEYXRhKEYpfX19ZWxzZXt0cnl7ZGVsZXRlIEZbaF19Y2F0Y2goRyl7aWYoRi5yZW1vdmVBdHRyaWJ1dGUpe0YucmVtb3ZlQXR0cmlidXRlKGgpfX1kZWxldGUgby5jYWNoZVtIXX19LHF1ZXVlOmZ1bmN0aW9uKEYsRSxIKXtpZihGKXtFPShFfHwiZngiKSsicXVldWUiO3ZhciBHPW8uZGF0YShGLEUpO2lmKCFHfHxvLmlzQXJyYXkoSCkpe0c9by5kYXRhKEYsRSxvLm1ha2VBcnJheShIKSl9ZWxzZXtpZihIKXtHLnB1c2goSCl9fX1yZXR1cm4gR30sZGVxdWV1ZTpmdW5jdGlvbihILEcpe3ZhciBFPW8ucXVldWUoSCxHKSxGPUUuc2hpZnQoKTtpZighR3x8Rz09PSJmeCIpe0Y9RVswXX1pZihGIT09Zyl7Ri5jYWxsKEgpfX19KTtvLmZuLmV4dGVuZCh7ZGF0YTpmdW5jdGlvbihFLEcpe3ZhciBIPUUuc3BsaXQoIi4iKTtIWzFdPUhbMV0/Ii4iK0hbMV06IiI7aWYoRz09PWcpe3ZhciBGPXRoaXMudHJpZ2dlckhhbmRsZXIoImdldERhdGEiK0hbMV0rIiEiLFtIWzBdXSk7aWYoRj09PWcmJnRoaXMubGVuZ3RoKXtGPW8uZGF0YSh0aGlzWzBdLEUpfXJldHVybiBGPT09ZyYmSFsxXT90aGlzLmRhdGEoSFswXSk6Rn1lbHNle3JldHVybiB0aGlzLnRyaWdnZXIoInNldERhdGEiK0hbMV0rIiEiLFtIWzBdLEddKS5lYWNoKGZ1bmN0aW9uKCl7by5kYXRhKHRoaXMsRSxHKX0pfX0scmVtb3ZlRGF0YTpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7by5yZW1vdmVEYXRhKHRoaXMsRSl9KX0scXVldWU6ZnVuY3Rpb24oRSxGKXtpZih0eXBlb2YgRSE9PSJzdHJpbmciKXtGPUU7RT0iZngifWlmKEY9PT1nKXtyZXR1cm4gby5xdWV1ZSh0aGlzWzBdLEUpfXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgRz1vLnF1ZXVlKHRoaXMsRSxGKTtpZihFPT0iZngiJiZHLmxlbmd0aD09MSl7R1swXS5jYWxsKHRoaXMpfX0pfSxkZXF1ZXVlOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtvLmRlcXVldWUodGhpcyxFKX0pfX0pOwovKgogKiBTaXp6bGUgQ1NTIFNlbGVjdG9yIEVuZ2luZSAtIHYwLjkuMwogKiAgQ29weXJpZ2h0IDIwMDksIFRoZSBEb2pvIEZvdW5kYXRpb24KICogIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQsIEJTRCwgYW5kIEdQTCBMaWNlbnNlcy4KICogIE1vcmUgaW5mb3JtYXRpb246IGh0dHA6Ly9zaXp6bGVqcy5jb20vCiAqLwooZnVuY3Rpb24oKXt2YXIgUj0vKCg/OlwoKD86XChbXigpXStcKXxbXigpXSspK1wpfFxbKD86XFtbXltcXV0qXF18WyciXVteJyJdKlsnIl18W15bXF0nIl0rKStcXXxcXC58W14gPit+LChcW1xcXSspK3xbPit+XSkoXHMqLFxzKik/L2csTD0wLEg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzt2YXIgRj1mdW5jdGlvbihZLFUsYWIsYWMpe2FiPWFifHxbXTtVPVV8fGRvY3VtZW50O2lmKFUubm9kZVR5cGUhPT0xJiZVLm5vZGVUeXBlIT09OSl7cmV0dXJuW119aWYoIVl8fHR5cGVvZiBZIT09InN0cmluZyIpe3JldHVybiBhYn12YXIgWj1bXSxXLGFmLGFpLFQsYWQsVixYPXRydWU7Ui5sYXN0SW5kZXg9MDt3aGlsZSgoVz1SLmV4ZWMoWSkpIT09bnVsbCl7Wi5wdXNoKFdbMV0pO2lmKFdbMl0pe1Y9UmVnRXhwLnJpZ2h0Q29udGV4dDticmVha319aWYoWi5sZW5ndGg+MSYmTS5leGVjKFkpKXtpZihaLmxlbmd0aD09PTImJkkucmVsYXRpdmVbWlswXV0pe2FmPUooWlswXStaWzFdLFUpfWVsc2V7YWY9SS5yZWxhdGl2ZVtaWzBdXT9bVV06RihaLnNoaWZ0KCksVSk7d2hpbGUoWi5sZW5ndGgpe1k9Wi5zaGlmdCgpO2lmKEkucmVsYXRpdmVbWV0pe1krPVouc2hpZnQoKX1hZj1KKFksYWYpfX19ZWxzZXt2YXIgYWU9YWM/e2V4cHI6Wi5wb3AoKSxzZXQ6RShhYyl9OkYuZmluZChaLnBvcCgpLFoubGVuZ3RoPT09MSYmVS5wYXJlbnROb2RlP1UucGFyZW50Tm9kZTpVLFEoVSkpO2FmPUYuZmlsdGVyKGFlLmV4cHIsYWUuc2V0KTtpZihaLmxlbmd0aD4wKXthaT1FKGFmKX1lbHNle1g9ZmFsc2V9d2hpbGUoWi5sZW5ndGgpe3ZhciBhaD1aLnBvcCgpLGFnPWFoO2lmKCFJLnJlbGF0aXZlW2FoXSl7YWg9IiJ9ZWxzZXthZz1aLnBvcCgpfWlmKGFnPT1udWxsKXthZz1VfUkucmVsYXRpdmVbYWhdKGFpLGFnLFEoVSkpfX1pZighYWkpe2FpPWFmfWlmKCFhaSl7dGhyb3ciU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIisoYWh8fFkpfWlmKEguY2FsbChhaSk9PT0iW29iamVjdCBBcnJheV0iKXtpZighWCl7YWIucHVzaC5hcHBseShhYixhaSl9ZWxzZXtpZihVLm5vZGVUeXBlPT09MSl7Zm9yKHZhciBhYT0wO2FpW2FhXSE9bnVsbDthYSsrKXtpZihhaVthYV0mJihhaVthYV09PT10cnVlfHxhaVthYV0ubm9kZVR5cGU9PT0xJiZLKFUsYWlbYWFdKSkpe2FiLnB1c2goYWZbYWFdKX19fWVsc2V7Zm9yKHZhciBhYT0wO2FpW2FhXSE9bnVsbDthYSsrKXtpZihhaVthYV0mJmFpW2FhXS5ub2RlVHlwZT09PTEpe2FiLnB1c2goYWZbYWFdKX19fX19ZWxzZXtFKGFpLGFiKX1pZihWKXtGKFYsVSxhYixhYyk7aWYoRyl7aGFzRHVwbGljYXRlPWZhbHNlO2FiLnNvcnQoRyk7aWYoaGFzRHVwbGljYXRlKXtmb3IodmFyIGFhPTE7YWE8YWIubGVuZ3RoO2FhKyspe2lmKGFiW2FhXT09PWFiW2FhLTFdKXthYi5zcGxpY2UoYWEtLSwxKX19fX19cmV0dXJuIGFifTtGLm1hdGNoZXM9ZnVuY3Rpb24oVCxVKXtyZXR1cm4gRihULG51bGwsbnVsbCxVKX07Ri5maW5kPWZ1bmN0aW9uKGFhLFQsYWIpe3ZhciBaLFg7aWYoIWFhKXtyZXR1cm5bXX1mb3IodmFyIFc9MCxWPUkub3JkZXIubGVuZ3RoO1c8VjtXKyspe3ZhciBZPUkub3JkZXJbV10sWDtpZigoWD1JLm1hdGNoW1ldLmV4ZWMoYWEpKSl7dmFyIFU9UmVnRXhwLmxlZnRDb250ZXh0O2lmKFUuc3Vic3RyKFUubGVuZ3RoLTEpIT09IlxcIil7WFsxXT0oWFsxXXx8IiIpLnJlcGxhY2UoL1xcL2csIiIpO1o9SS5maW5kW1ldKFgsVCxhYik7aWYoWiE9bnVsbCl7YWE9YWEucmVwbGFjZShJLm1hdGNoW1ldLCIiKTticmVha319fX1pZighWil7Wj1ULmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIil9cmV0dXJue3NldDpaLGV4cHI6YWF9fTtGLmZpbHRlcj1mdW5jdGlvbihhZCxhYyxhZyxXKXt2YXIgVj1hZCxhaT1bXSxhYT1hYyxZLFQsWj1hYyYmYWNbMF0mJlEoYWNbMF0pO3doaWxlKGFkJiZhYy5sZW5ndGgpe2Zvcih2YXIgYWIgaW4gSS5maWx0ZXIpe2lmKChZPUkubWF0Y2hbYWJdLmV4ZWMoYWQpKSE9bnVsbCl7dmFyIFU9SS5maWx0ZXJbYWJdLGFoLGFmO1Q9ZmFsc2U7aWYoYWE9PWFpKXthaT1bXX1pZihJLnByZUZpbHRlclthYl0pe1k9SS5wcmVGaWx0ZXJbYWJdKFksYWEsYWcsYWksVyxaKTtpZighWSl7VD1haD10cnVlfWVsc2V7aWYoWT09PXRydWUpe2NvbnRpbnVlfX19aWYoWSl7Zm9yKHZhciBYPTA7KGFmPWFhW1hdKSE9bnVsbDtYKyspe2lmKGFmKXthaD1VKGFmLFksWCxhYSk7dmFyIGFlPVdeISFhaDtpZihhZyYmYWghPW51bGwpe2lmKGFlKXtUPXRydWV9ZWxzZXthYVtYXT1mYWxzZX19ZWxzZXtpZihhZSl7YWkucHVzaChhZik7VD10cnVlfX19fX1pZihhaCE9PWcpe2lmKCFhZyl7YWE9YWl9YWQ9YWQucmVwbGFjZShJLm1hdGNoW2FiXSwiIik7aWYoIVQpe3JldHVybltdfWJyZWFrfX19aWYoYWQ9PVYpe2lmKFQ9PW51bGwpe3Rocm93IlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrYWR9ZWxzZXticmVha319Vj1hZH1yZXR1cm4gYWF9O3ZhciBJPUYuc2VsZWN0b3JzPXtvcmRlcjpbIklEIiwiTkFNRSIsIlRBRyJdLG1hdGNoOntJRDovIygoPzpbXHdcdTAwYzAtXHVGRkZGXy1dfFxcLikrKS8sQ0xBU1M6L1wuKCg/Oltcd1x1MDBjMC1cdUZGRkZfLV18XFwuKSspLyxOQU1FOi9cW25hbWU9WyciXSooKD86W1x3XHUwMGMwLVx1RkZGRl8tXXxcXC4pKylbJyJdKlxdLyxBVFRSOi9cW1xzKigoPzpbXHdcdTAwYzAtXHVGRkZGXy1dfFxcLikrKVxzKig/OihcUz89KVxzKihbJyJdKikoLio/KVwzfClccypcXS8sVEFHOi9eKCg/Oltcd1x1MDBjMC1cdUZGRkZcKl8tXXxcXC4pKykvLENISUxEOi86KG9ubHl8bnRofGxhc3R8Zmlyc3QpLWNoaWxkKD86XCgoZXZlbnxvZGR8W1xkbistXSopXCkpPy8sUE9TOi86KG50aHxlcXxndHxsdHxmaXJzdHxsYXN0fGV2ZW58b2RkKSg/OlwoKFxkKilcKSk/KD89W14tXXwkKS8sUFNFVURPOi86KCg/Oltcd1x1MDBjMC1cdUZGRkZfLV18XFwuKSspKD86XCgoWyciXSopKCg/OlwoW15cKV0rXCl8W15cMlwoXCldKikrKVwyXCkpPy99LGF0dHJNYXA6eyJjbGFzcyI6ImNsYXNzTmFtZSIsImZvciI6Imh0bWxGb3IifSxhdHRySGFuZGxlOntocmVmOmZ1bmN0aW9uKFQpe3JldHVybiBULmdldEF0dHJpYnV0ZSgiaHJlZiIpfX0scmVsYXRpdmU6eyIrIjpmdW5jdGlvbihhYSxULFope3ZhciBYPXR5cGVvZiBUPT09InN0cmluZyIsYWI9WCYmIS9cVy8udGVzdChUKSxZPVgmJiFhYjtpZihhYiYmIVope1Q9VC50b1VwcGVyQ2FzZSgpfWZvcih2YXIgVz0wLFY9YWEubGVuZ3RoLFU7VzxWO1crKyl7aWYoKFU9YWFbV10pKXt3aGlsZSgoVT1VLnByZXZpb3VzU2libGluZykmJlUubm9kZVR5cGUhPT0xKXt9YWFbV109WXx8VSYmVS5ub2RlTmFtZT09PVQ/VXx8ZmFsc2U6VT09PVR9fWlmKFkpe0YuZmlsdGVyKFQsYWEsdHJ1ZSl9fSwiPiI6ZnVuY3Rpb24oWixVLGFhKXt2YXIgWD10eXBlb2YgVT09PSJzdHJpbmciO2lmKFgmJiEvXFcvLnRlc3QoVSkpe1U9YWE/VTpVLnRvVXBwZXJDYXNlKCk7Zm9yKHZhciBWPTAsVD1aLmxlbmd0aDtWPFQ7VisrKXt2YXIgWT1aW1ZdO2lmKFkpe3ZhciBXPVkucGFyZW50Tm9kZTtaW1ZdPVcubm9kZU5hbWU9PT1VP1c6ZmFsc2V9fX1lbHNle2Zvcih2YXIgVj0wLFQ9Wi5sZW5ndGg7VjxUO1YrKyl7dmFyIFk9WltWXTtpZihZKXtaW1ZdPVg/WS5wYXJlbnROb2RlOlkucGFyZW50Tm9kZT09PVV9fWlmKFgpe0YuZmlsdGVyKFUsWix0cnVlKX19fSwiIjpmdW5jdGlvbihXLFUsWSl7dmFyIFY9TCsrLFQ9UztpZighVS5tYXRjaCgvXFcvKSl7dmFyIFg9VT1ZP1U6VS50b1VwcGVyQ2FzZSgpO1Q9UH1UKCJwYXJlbnROb2RlIixVLFYsVyxYLFkpfSwifiI6ZnVuY3Rpb24oVyxVLFkpe3ZhciBWPUwrKyxUPVM7aWYodHlwZW9mIFU9PT0ic3RyaW5nIiYmIVUubWF0Y2goL1xXLykpe3ZhciBYPVU9WT9VOlUudG9VcHBlckNhc2UoKTtUPVB9VCgicHJldmlvdXNTaWJsaW5nIixVLFYsVyxYLFkpfX0sZmluZDp7SUQ6ZnVuY3Rpb24oVSxWLFcpe2lmKHR5cGVvZiBWLmdldEVsZW1lbnRCeUlkIT09InVuZGVmaW5lZCImJiFXKXt2YXIgVD1WLmdldEVsZW1lbnRCeUlkKFVbMV0pO3JldHVybiBUP1tUXTpbXX19LE5BTUU6ZnVuY3Rpb24oVixZLFope2lmKHR5cGVvZiBZLmdldEVsZW1lbnRzQnlOYW1lIT09InVuZGVmaW5lZCIpe3ZhciBVPVtdLFg9WS5nZXRFbGVtZW50c0J5TmFtZShWWzFdKTtmb3IodmFyIFc9MCxUPVgubGVuZ3RoO1c8VDtXKyspe2lmKFhbV10uZ2V0QXR0cmlidXRlKCJuYW1lIik9PT1WWzFdKXtVLnB1c2goWFtXXSl9fXJldHVybiBVLmxlbmd0aD09PTA/bnVsbDpVfX0sVEFHOmZ1bmN0aW9uKFQsVSl7cmV0dXJuIFUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoVFsxXSl9fSxwcmVGaWx0ZXI6e0NMQVNTOmZ1bmN0aW9uKFcsVSxWLFQsWixhYSl7Vz0iICIrV1sxXS5yZXBsYWNlKC9cXC9nLCIiKSsiICI7aWYoYWEpe3JldHVybiBXfWZvcih2YXIgWD0wLFk7KFk9VVtYXSkhPW51bGw7WCsrKXtpZihZKXtpZihaXihZLmNsYXNzTmFtZSYmKCIgIitZLmNsYXNzTmFtZSsiICIpLmluZGV4T2YoVyk+PTApKXtpZighVil7VC5wdXNoKFkpfX1lbHNle2lmKFYpe1VbWF09ZmFsc2V9fX19cmV0dXJuIGZhbHNlfSxJRDpmdW5jdGlvbihUKXtyZXR1cm4gVFsxXS5yZXBsYWNlKC9cXC9nLCIiKX0sVEFHOmZ1bmN0aW9uKFUsVCl7Zm9yKHZhciBWPTA7VFtWXT09PWZhbHNlO1YrKyl7fXJldHVybiBUW1ZdJiZRKFRbVl0pP1VbMV06VVsxXS50b1VwcGVyQ2FzZSgpfSxDSElMRDpmdW5jdGlvbihUKXtpZihUWzFdPT0ibnRoIil7dmFyIFU9LygtPykoXGQqKW4oKD86XCt8LSk/XGQqKS8uZXhlYyhUWzJdPT0iZXZlbiImJiIybiJ8fFRbMl09PSJvZGQiJiYiMm4rMSJ8fCEvXEQvLnRlc3QoVFsyXSkmJiIwbisiK1RbMl18fFRbMl0pO1RbMl09KFVbMV0rKFVbMl18fDEpKS0wO1RbM109VVszXS0wfVRbMF09TCsrO3JldHVybiBUfSxBVFRSOmZ1bmN0aW9uKFgsVSxWLFQsWSxaKXt2YXIgVz1YWzFdLnJlcGxhY2UoL1xcL2csIiIpO2lmKCFaJiZJLmF0dHJNYXBbV10pe1hbMV09SS5hdHRyTWFwW1ddfWlmKFhbMl09PT0ifj0iKXtYWzRdPSIgIitYWzRdKyIgIn1yZXR1cm4gWH0sUFNFVURPOmZ1bmN0aW9uKFgsVSxWLFQsWSl7aWYoWFsxXT09PSJub3QiKXtpZihYWzNdLm1hdGNoKFIpLmxlbmd0aD4xfHwvXlx3Ly50ZXN0KFhbM10pKXtYWzNdPUYoWFszXSxudWxsLG51bGwsVSl9ZWxzZXt2YXIgVz1GLmZpbHRlcihYWzNdLFUsVix0cnVlXlkpO2lmKCFWKXtULnB1c2guYXBwbHkoVCxXKX1yZXR1cm4gZmFsc2V9fWVsc2V7aWYoSS5tYXRjaC5QT1MudGVzdChYWzBdKXx8SS5tYXRjaC5DSElMRC50ZXN0KFhbMF0pKXtyZXR1cm4gdHJ1ZX19cmV0dXJuIFh9LFBPUzpmdW5jdGlvbihUKXtULnVuc2hpZnQodHJ1ZSk7cmV0dXJuIFR9fSxmaWx0ZXJzOntlbmFibGVkOmZ1bmN0aW9uKFQpe3JldHVybiBULmRpc2FibGVkPT09ZmFsc2UmJlQudHlwZSE9PSJoaWRkZW4ifSxkaXNhYmxlZDpmdW5jdGlvbihUKXtyZXR1cm4gVC5kaXNhYmxlZD09PXRydWV9LGNoZWNrZWQ6ZnVuY3Rpb24oVCl7cmV0dXJuIFQuY2hlY2tlZD09PXRydWV9LHNlbGVjdGVkOmZ1bmN0aW9uKFQpe1QucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4O3JldHVybiBULnNlbGVjdGVkPT09dHJ1ZX0scGFyZW50OmZ1bmN0aW9uKFQpe3JldHVybiAhIVQuZmlyc3RDaGlsZH0sZW1wdHk6ZnVuY3Rpb24oVCl7cmV0dXJuICFULmZpcnN0Q2hpbGR9LGhhczpmdW5jdGlvbihWLFUsVCl7cmV0dXJuICEhRihUWzNdLFYpLmxlbmd0aH0saGVhZGVyOmZ1bmN0aW9uKFQpe3JldHVybi9oXGQvaS50ZXN0KFQubm9kZU5hbWUpfSx0ZXh0OmZ1bmN0aW9uKFQpe3JldHVybiJ0ZXh0Ij09PVQudHlwZX0scmFkaW86ZnVuY3Rpb24oVCl7cmV0dXJuInJhZGlvIj09PVQudHlwZX0sY2hlY2tib3g6ZnVuY3Rpb24oVCl7cmV0dXJuImNoZWNrYm94Ij09PVQudHlwZX0sZmlsZTpmdW5jdGlvbihUKXtyZXR1cm4iZmlsZSI9PT1ULnR5cGV9LHBhc3N3b3JkOmZ1bmN0aW9uKFQpe3JldHVybiJwYXNzd29yZCI9PT1ULnR5cGV9LHN1Ym1pdDpmdW5jdGlvbihUKXtyZXR1cm4ic3VibWl0Ij09PVQudHlwZX0saW1hZ2U6ZnVuY3Rpb24oVCl7cmV0dXJuImltYWdlIj09PVQudHlwZX0scmVzZXQ6ZnVuY3Rpb24oVCl7cmV0dXJuInJlc2V0Ij09PVQudHlwZX0sYnV0dG9uOmZ1bmN0aW9uKFQpe3JldHVybiJidXR0b24iPT09VC50eXBlfHxULm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk9PT0iQlVUVE9OIn0saW5wdXQ6ZnVuY3Rpb24oVCl7cmV0dXJuL2lucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24vaS50ZXN0KFQubm9kZU5hbWUpfX0sc2V0RmlsdGVyczp7Zmlyc3Q6ZnVuY3Rpb24oVSxUKXtyZXR1cm4gVD09PTB9LGxhc3Q6ZnVuY3Rpb24oVixVLFQsVyl7cmV0dXJuIFU9PT1XLmxlbmd0aC0xfSxldmVuOmZ1bmN0aW9uKFUsVCl7cmV0dXJuIFQlMj09PTB9LG9kZDpmdW5jdGlvbihVLFQpe3JldHVybiBUJTI9PT0xfSxsdDpmdW5jdGlvbihWLFUsVCl7cmV0dXJuIFU8VFszXS0wfSxndDpmdW5jdGlvbihWLFUsVCl7cmV0dXJuIFU+VFszXS0wfSxudGg6ZnVuY3Rpb24oVixVLFQpe3JldHVybiBUWzNdLTA9PVV9LGVxOmZ1bmN0aW9uKFYsVSxUKXtyZXR1cm4gVFszXS0wPT1VfX0sZmlsdGVyOntQU0VVRE86ZnVuY3Rpb24oWixWLFcsYWEpe3ZhciBVPVZbMV0sWD1JLmZpbHRlcnNbVV07aWYoWCl7cmV0dXJuIFgoWixXLFYsYWEpfWVsc2V7aWYoVT09PSJjb250YWlucyIpe3JldHVybihaLnRleHRDb250ZW50fHxaLmlubmVyVGV4dHx8IiIpLmluZGV4T2YoVlszXSk+PTB9ZWxzZXtpZihVPT09Im5vdCIpe3ZhciBZPVZbM107Zm9yKHZhciBXPTAsVD1ZLmxlbmd0aDtXPFQ7VysrKXtpZihZW1ddPT09Wil7cmV0dXJuIGZhbHNlfX1yZXR1cm4gdHJ1ZX19fX0sQ0hJTEQ6ZnVuY3Rpb24oVCxXKXt2YXIgWj1XWzFdLFU9VDtzd2l0Y2goWil7Y2FzZSJvbmx5IjpjYXNlImZpcnN0Ijp3aGlsZShVPVUucHJldmlvdXNTaWJsaW5nKXtpZihVLm5vZGVUeXBlPT09MSl7cmV0dXJuIGZhbHNlfX1pZihaPT0iZmlyc3QiKXtyZXR1cm4gdHJ1ZX1VPVQ7Y2FzZSJsYXN0Ijp3aGlsZShVPVUubmV4dFNpYmxpbmcpe2lmKFUubm9kZVR5cGU9PT0xKXtyZXR1cm4gZmFsc2V9fXJldHVybiB0cnVlO2Nhc2UibnRoIjp2YXIgVj1XWzJdLGFjPVdbM107aWYoVj09MSYmYWM9PTApe3JldHVybiB0cnVlfXZhciBZPVdbMF0sYWI9VC5wYXJlbnROb2RlO2lmKGFiJiYoYWIuc2l6Y2FjaGUhPT1ZfHwhVC5ub2RlSW5kZXgpKXt2YXIgWD0wO2ZvcihVPWFiLmZpcnN0Q2hpbGQ7VTtVPVUubmV4dFNpYmxpbmcpe2lmKFUubm9kZVR5cGU9PT0xKXtVLm5vZGVJbmRleD0rK1h9fWFiLnNpemNhY2hlPVl9dmFyIGFhPVQubm9kZUluZGV4LWFjO2lmKFY9PTApe3JldHVybiBhYT09MH1lbHNle3JldHVybihhYSVWPT0wJiZhYS9WPj0wKX19fSxJRDpmdW5jdGlvbihVLFQpe3JldHVybiBVLm5vZGVUeXBlPT09MSYmVS5nZXRBdHRyaWJ1dGUoImlkIik9PT1UfSxUQUc6ZnVuY3Rpb24oVSxUKXtyZXR1cm4oVD09PSIqIiYmVS5ub2RlVHlwZT09PTEpfHxVLm5vZGVOYW1lPT09VH0sQ0xBU1M6ZnVuY3Rpb24oVSxUKXtyZXR1cm4oIiAiKyhVLmNsYXNzTmFtZXx8VS5nZXRBdHRyaWJ1dGUoImNsYXNzIikpKyIgIikuaW5kZXhPZihUKT4tMX0sQVRUUjpmdW5jdGlvbihZLFcpe3ZhciBWPVdbMV0sVD1JLmF0dHJIYW5kbGVbVl0/SS5hdHRySGFuZGxlW1ZdKFkpOllbVl0hPW51bGw/WVtWXTpZLmdldEF0dHJpYnV0ZShWKSxaPVQrIiIsWD1XWzJdLFU9V1s0XTtyZXR1cm4gVD09bnVsbD9YPT09IiE9IjpYPT09Ij0iP1o9PT1VOlg9PT0iKj0iP1ouaW5kZXhPZihVKT49MDpYPT09In49Ij8oIiAiK1orIiAiKS5pbmRleE9mKFUpPj0wOiFVP1omJlQhPT1mYWxzZTpYPT09IiE9Ij9aIT1VOlg9PT0iXj0iP1ouaW5kZXhPZihVKT09PTA6WD09PSIkPSI/Wi5zdWJzdHIoWi5sZW5ndGgtVS5sZW5ndGgpPT09VTpYPT09Inw9Ij9aPT09VXx8Wi5zdWJzdHIoMCxVLmxlbmd0aCsxKT09PVUrIi0iOmZhbHNlfSxQT1M6ZnVuY3Rpb24oWCxVLFYsWSl7dmFyIFQ9VVsyXSxXPUkuc2V0RmlsdGVyc1tUXTtpZihXKXtyZXR1cm4gVyhYLFYsVSxZKX19fX07dmFyIE09SS5tYXRjaC5QT1M7Zm9yKHZhciBPIGluIEkubWF0Y2gpe0kubWF0Y2hbT109UmVnRXhwKEkubWF0Y2hbT10uc291cmNlKy8oPyFbXlxbXSpcXSkoPyFbXlwoXSpcKSkvLnNvdXJjZSl9dmFyIEU9ZnVuY3Rpb24oVSxUKXtVPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKFUpO2lmKFQpe1QucHVzaC5hcHBseShULFUpO3JldHVybiBUfXJldHVybiBVfTt0cnl7QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNoaWxkTm9kZXMpfWNhdGNoKE4pe0U9ZnVuY3Rpb24oWCxXKXt2YXIgVT1XfHxbXTtpZihILmNhbGwoWCk9PT0iW29iamVjdCBBcnJheV0iKXtBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShVLFgpfWVsc2V7aWYodHlwZW9mIFgubGVuZ3RoPT09Im51bWJlciIpe2Zvcih2YXIgVj0wLFQ9WC5sZW5ndGg7VjxUO1YrKyl7VS5wdXNoKFhbVl0pfX1lbHNle2Zvcih2YXIgVj0wO1hbVl07VisrKXtVLnB1c2goWFtWXSl9fX1yZXR1cm4gVX19dmFyIEc7aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKXtHPWZ1bmN0aW9uKFUsVCl7dmFyIFY9VS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihUKSY0Py0xOlU9PT1UPzA6MTtpZihWPT09MCl7aGFzRHVwbGljYXRlPXRydWV9cmV0dXJuIFZ9fWVsc2V7aWYoInNvdXJjZUluZGV4IiBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpe0c9ZnVuY3Rpb24oVSxUKXt2YXIgVj1VLnNvdXJjZUluZGV4LVQuc291cmNlSW5kZXg7aWYoVj09PTApe2hhc0R1cGxpY2F0ZT10cnVlfXJldHVybiBWfX1lbHNle2lmKGRvY3VtZW50LmNyZWF0ZVJhbmdlKXtHPWZ1bmN0aW9uKFcsVSl7dmFyIFY9Vy5vd25lckRvY3VtZW50LmNyZWF0ZVJhbmdlKCksVD1VLm93bmVyRG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtWLnNlbGVjdE5vZGUoVyk7Vi5jb2xsYXBzZSh0cnVlKTtULnNlbGVjdE5vZGUoVSk7VC5jb2xsYXBzZSh0cnVlKTt2YXIgWD1WLmNvbXBhcmVCb3VuZGFyeVBvaW50cyhSYW5nZS5TVEFSVF9UT19FTkQsVCk7aWYoWD09PTApe2hhc0R1cGxpY2F0ZT10cnVlfXJldHVybiBYfX19fShmdW5jdGlvbigpe3ZhciBVPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImZvcm0iKSxWPSJzY3JpcHQiKyhuZXcgRGF0ZSkuZ2V0VGltZSgpO1UuaW5uZXJIVE1MPSI8aW5wdXQgbmFtZT0nIitWKyInLz4iO3ZhciBUPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtULmluc2VydEJlZm9yZShVLFQuZmlyc3RDaGlsZCk7aWYoISFkb2N1bWVudC5nZXRFbGVtZW50QnlJZChWKSl7SS5maW5kLklEPWZ1bmN0aW9uKFgsWSxaKXtpZih0eXBlb2YgWS5nZXRFbGVtZW50QnlJZCE9PSJ1bmRlZmluZWQiJiYhWil7dmFyIFc9WS5nZXRFbGVtZW50QnlJZChYWzFdKTtyZXR1cm4gVz9XLmlkPT09WFsxXXx8dHlwZW9mIFcuZ2V0QXR0cmlidXRlTm9kZSE9PSJ1bmRlZmluZWQiJiZXLmdldEF0dHJpYnV0ZU5vZGUoImlkIikubm9kZVZhbHVlPT09WFsxXT9bV106ZzpbXX19O0kuZmlsdGVyLklEPWZ1bmN0aW9uKFksVyl7dmFyIFg9dHlwZW9mIFkuZ2V0QXR0cmlidXRlTm9kZSE9PSJ1bmRlZmluZWQiJiZZLmdldEF0dHJpYnV0ZU5vZGUoImlkIik7cmV0dXJuIFkubm9kZVR5cGU9PT0xJiZYJiZYLm5vZGVWYWx1ZT09PVd9fVQucmVtb3ZlQ2hpbGQoVSl9KSgpOyhmdW5jdGlvbigpe3ZhciBUPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO1QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiIikpO2lmKFQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKS5sZW5ndGg+MCl7SS5maW5kLlRBRz1mdW5jdGlvbihVLFkpe3ZhciBYPVkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoVVsxXSk7aWYoVVsxXT09PSIqIil7dmFyIFc9W107Zm9yKHZhciBWPTA7WFtWXTtWKyspe2lmKFhbVl0ubm9kZVR5cGU9PT0xKXtXLnB1c2goWFtWXSl9fVg9V31yZXR1cm4gWH19VC5pbm5lckhUTUw9IjxhIGhyZWY9JyMnPjwvYT4iO2lmKFQuZmlyc3RDaGlsZCYmdHlwZW9mIFQuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUhPT0idW5kZWZpbmVkIiYmVC5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgiaHJlZiIpIT09IiMiKXtJLmF0dHJIYW5kbGUuaHJlZj1mdW5jdGlvbihVKXtyZXR1cm4gVS5nZXRBdHRyaWJ1dGUoImhyZWYiLDIpfX19KSgpO2lmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwpeyhmdW5jdGlvbigpe3ZhciBUPUYsVT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtVLmlubmVySFRNTD0iPHAgY2xhc3M9J1RFU1QnPjwvcD4iO2lmKFUucXVlcnlTZWxlY3RvckFsbCYmVS5xdWVyeVNlbGVjdG9yQWxsKCIuVEVTVCIpLmxlbmd0aD09PTApe3JldHVybn1GPWZ1bmN0aW9uKFksWCxWLFcpe1g9WHx8ZG9jdW1lbnQ7aWYoIVcmJlgubm9kZVR5cGU9PT05JiYhUShYKSl7dHJ5e3JldHVybiBFKFgucXVlcnlTZWxlY3RvckFsbChZKSxWKX1jYXRjaChaKXt9fXJldHVybiBUKFksWCxWLFcpfTtGLmZpbmQ9VC5maW5kO0YuZmlsdGVyPVQuZmlsdGVyO0Yuc2VsZWN0b3JzPVQuc2VsZWN0b3JzO0YubWF0Y2hlcz1ULm1hdGNoZXN9KSgpfWlmKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXsoZnVuY3Rpb24oKXt2YXIgVD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtULmlubmVySFRNTD0iPGRpdiBjbGFzcz0ndGVzdCBlJz48L2Rpdj48ZGl2IGNsYXNzPSd0ZXN0Jz48L2Rpdj4iO2lmKFQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZSIpLmxlbmd0aD09PTApe3JldHVybn1ULmxhc3RDaGlsZC5jbGFzc05hbWU9ImUiO2lmKFQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZSIpLmxlbmd0aD09PTEpe3JldHVybn1JLm9yZGVyLnNwbGljZSgxLDAsIkNMQVNTIik7SS5maW5kLkNMQVNTPWZ1bmN0aW9uKFUsVixXKXtpZih0eXBlb2YgVi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lIT09InVuZGVmaW5lZCImJiFXKXtyZXR1cm4gVi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFVbMV0pfX19KSgpfWZ1bmN0aW9uIFAoVSxaLFksYWQsYWEsYWMpe3ZhciBhYj1VPT0icHJldmlvdXNTaWJsaW5nIiYmIWFjO2Zvcih2YXIgVz0wLFY9YWQubGVuZ3RoO1c8VjtXKyspe3ZhciBUPWFkW1ddO2lmKFQpe2lmKGFiJiZULm5vZGVUeXBlPT09MSl7VC5zaXpjYWNoZT1ZO1Quc2l6c2V0PVd9VD1UW1VdO3ZhciBYPWZhbHNlO3doaWxlKFQpe2lmKFQuc2l6Y2FjaGU9PT1ZKXtYPWFkW1Quc2l6c2V0XTticmVha31pZihULm5vZGVUeXBlPT09MSYmIWFjKXtULnNpemNhY2hlPVk7VC5zaXpzZXQ9V31pZihULm5vZGVOYW1lPT09Wil7WD1UO2JyZWFrfVQ9VFtVXX1hZFtXXT1YfX19ZnVuY3Rpb24gUyhVLFosWSxhZCxhYSxhYyl7dmFyIGFiPVU9PSJwcmV2aW91c1NpYmxpbmciJiYhYWM7Zm9yKHZhciBXPTAsVj1hZC5sZW5ndGg7VzxWO1crKyl7dmFyIFQ9YWRbV107aWYoVCl7aWYoYWImJlQubm9kZVR5cGU9PT0xKXtULnNpemNhY2hlPVk7VC5zaXpzZXQ9V31UPVRbVV07dmFyIFg9ZmFsc2U7d2hpbGUoVCl7aWYoVC5zaXpjYWNoZT09PVkpe1g9YWRbVC5zaXpzZXRdO2JyZWFrfWlmKFQubm9kZVR5cGU9PT0xKXtpZighYWMpe1Quc2l6Y2FjaGU9WTtULnNpenNldD1XfWlmKHR5cGVvZiBaIT09InN0cmluZyIpe2lmKFQ9PT1aKXtYPXRydWU7YnJlYWt9fWVsc2V7aWYoRi5maWx0ZXIoWixbVF0pLmxlbmd0aD4wKXtYPVQ7YnJlYWt9fX1UPVRbVV19YWRbV109WH19fXZhciBLPWRvY3VtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uP2Z1bmN0aW9uKFUsVCl7cmV0dXJuIFUuY29tcGFyZURvY3VtZW50UG9zaXRpb24oVCkmMTZ9OmZ1bmN0aW9uKFUsVCl7cmV0dXJuIFUhPT1UJiYoVS5jb250YWlucz9VLmNvbnRhaW5zKFQpOnRydWUpfTt2YXIgUT1mdW5jdGlvbihUKXtyZXR1cm4gVC5ub2RlVHlwZT09PTkmJlQuZG9jdW1lbnRFbGVtZW50Lm5vZGVOYW1lIT09IkhUTUwifHwhIVQub3duZXJEb2N1bWVudCYmUShULm93bmVyRG9jdW1lbnQpfTt2YXIgSj1mdW5jdGlvbihULGFhKXt2YXIgVz1bXSxYPSIiLFksVj1hYS5ub2RlVHlwZT9bYWFdOmFhO3doaWxlKChZPUkubWF0Y2guUFNFVURPLmV4ZWMoVCkpKXtYKz1ZWzBdO1Q9VC5yZXBsYWNlKEkubWF0Y2guUFNFVURPLCIiKX1UPUkucmVsYXRpdmVbVF0/VCsiKiI6VDtmb3IodmFyIFo9MCxVPVYubGVuZ3RoO1o8VTtaKyspe0YoVCxWW1pdLFcpfXJldHVybiBGLmZpbHRlcihYLFcpfTtvLmZpbmQ9RjtvLmZpbHRlcj1GLmZpbHRlcjtvLmV4cHI9Ri5zZWxlY3RvcnM7by5leHByWyI6Il09by5leHByLmZpbHRlcnM7Ri5zZWxlY3RvcnMuZmlsdGVycy5oaWRkZW49ZnVuY3Rpb24oVCl7cmV0dXJuIFQub2Zmc2V0V2lkdGg9PT0wfHxULm9mZnNldEhlaWdodD09PTB9O0Yuc2VsZWN0b3JzLmZpbHRlcnMudmlzaWJsZT1mdW5jdGlvbihUKXtyZXR1cm4gVC5vZmZzZXRXaWR0aD4wfHxULm9mZnNldEhlaWdodD4wfTtGLnNlbGVjdG9ycy5maWx0ZXJzLmFuaW1hdGVkPWZ1bmN0aW9uKFQpe3JldHVybiBvLmdyZXAoby50aW1lcnMsZnVuY3Rpb24oVSl7cmV0dXJuIFQ9PT1VLmVsZW19KS5sZW5ndGh9O28ubXVsdGlGaWx0ZXI9ZnVuY3Rpb24oVixULFUpe2lmKFUpe1Y9Ijpub3QoIitWKyIpIn1yZXR1cm4gRi5tYXRjaGVzKFYsVCl9O28uZGlyPWZ1bmN0aW9uKFYsVSl7dmFyIFQ9W10sVz1WW1VdO3doaWxlKFcmJlchPWRvY3VtZW50KXtpZihXLm5vZGVUeXBlPT0xKXtULnB1c2goVyl9Vz1XW1VdfXJldHVybiBUfTtvLm50aD1mdW5jdGlvbihYLFQsVixXKXtUPVR8fDE7dmFyIFU9MDtmb3IoO1g7WD1YW1ZdKXtpZihYLm5vZGVUeXBlPT0xJiYrK1U9PVQpe2JyZWFrfX1yZXR1cm4gWH07by5zaWJsaW5nPWZ1bmN0aW9uKFYsVSl7dmFyIFQ9W107Zm9yKDtWO1Y9Vi5uZXh0U2libGluZyl7aWYoVi5ub2RlVHlwZT09MSYmViE9VSl7VC5wdXNoKFYpfX1yZXR1cm4gVH07cmV0dXJuO2wuU2l6emxlPUZ9KSgpO28uZXZlbnQ9e2FkZDpmdW5jdGlvbihJLEYsSCxLKXtpZihJLm5vZGVUeXBlPT0zfHxJLm5vZGVUeXBlPT04KXtyZXR1cm59aWYoSS5zZXRJbnRlcnZhbCYmSSE9bCl7ST1sfWlmKCFILmd1aWQpe0guZ3VpZD10aGlzLmd1aWQrK31pZihLIT09Zyl7dmFyIEc9SDtIPXRoaXMucHJveHkoRyk7SC5kYXRhPUt9dmFyIEU9by5kYXRhKEksImV2ZW50cyIpfHxvLmRhdGEoSSwiZXZlbnRzIix7fSksSj1vLmRhdGEoSSwiaGFuZGxlIil8fG8uZGF0YShJLCJoYW5kbGUiLGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBvIT09InVuZGVmaW5lZCImJiFvLmV2ZW50LnRyaWdnZXJlZD9vLmV2ZW50LmhhbmRsZS5hcHBseShhcmd1bWVudHMuY2FsbGVlLmVsZW0sYXJndW1lbnRzKTpnfSk7Si5lbGVtPUk7by5lYWNoKEYuc3BsaXQoL1xzKy8pLGZ1bmN0aW9uKE0sTil7dmFyIE89Ti5zcGxpdCgiLiIpO049Ty5zaGlmdCgpO0gudHlwZT1PLnNsaWNlKCkuc29ydCgpLmpvaW4oIi4iKTt2YXIgTD1FW05dO2lmKG8uZXZlbnQuc3BlY2lhbEFsbFtOXSl7by5ldmVudC5zcGVjaWFsQWxsW05dLnNldHVwLmNhbGwoSSxLLE8pfWlmKCFMKXtMPUVbTl09e307aWYoIW8uZXZlbnQuc3BlY2lhbFtOXXx8by5ldmVudC5zcGVjaWFsW05dLnNldHVwLmNhbGwoSSxLLE8pPT09ZmFsc2Upe2lmKEkuYWRkRXZlbnRMaXN0ZW5lcil7SS5hZGRFdmVudExpc3RlbmVyKE4sSixmYWxzZSl9ZWxzZXtpZihJLmF0dGFjaEV2ZW50KXtJLmF0dGFjaEV2ZW50KCJvbiIrTixKKX19fX1MW0guZ3VpZF09SDtvLmV2ZW50Lmdsb2JhbFtOXT10cnVlfSk7ST1udWxsfSxndWlkOjEsZ2xvYmFsOnt9LHJlbW92ZTpmdW5jdGlvbihLLEgsSil7aWYoSy5ub2RlVHlwZT09M3x8Sy5ub2RlVHlwZT09OCl7cmV0dXJufXZhciBHPW8uZGF0YShLLCJldmVudHMiKSxGLEU7aWYoRyl7aWYoSD09PWd8fCh0eXBlb2YgSD09PSJzdHJpbmciJiZILmNoYXJBdCgwKT09Ii4iKSl7Zm9yKHZhciBJIGluIEcpe3RoaXMucmVtb3ZlKEssSSsoSHx8IiIpKX19ZWxzZXtpZihILnR5cGUpe0o9SC5oYW5kbGVyO0g9SC50eXBlfW8uZWFjaChILnNwbGl0KC9ccysvKSxmdW5jdGlvbihNLE8pe3ZhciBRPU8uc3BsaXQoIi4iKTtPPVEuc2hpZnQoKTt2YXIgTj1SZWdFeHAoIihefFxcLikiK1Euc2xpY2UoKS5zb3J0KCkuam9pbigiLipcXC4iKSsiKFxcLnwkKSIpO2lmKEdbT10pe2lmKEope2RlbGV0ZSBHW09dW0ouZ3VpZF19ZWxzZXtmb3IodmFyIFAgaW4gR1tPXSl7aWYoTi50ZXN0KEdbT11bUF0udHlwZSkpe2RlbGV0ZSBHW09dW1BdfX19aWYoby5ldmVudC5zcGVjaWFsQWxsW09dKXtvLmV2ZW50LnNwZWNpYWxBbGxbT10udGVhcmRvd24uY2FsbChLLFEpfWZvcihGIGluIEdbT10pe2JyZWFrfWlmKCFGKXtpZighby5ldmVudC5zcGVjaWFsW09dfHxvLmV2ZW50LnNwZWNpYWxbT10udGVhcmRvd24uY2FsbChLLFEpPT09ZmFsc2Upe2lmKEsucmVtb3ZlRXZlbnRMaXN0ZW5lcil7Sy5yZW1vdmVFdmVudExpc3RlbmVyKE8sby5kYXRhKEssImhhbmRsZSIpLGZhbHNlKX1lbHNle2lmKEsuZGV0YWNoRXZlbnQpe0suZGV0YWNoRXZlbnQoIm9uIitPLG8uZGF0YShLLCJoYW5kbGUiKSl9fX1GPW51bGw7ZGVsZXRlIEdbT119fX0pfWZvcihGIGluIEcpe2JyZWFrfWlmKCFGKXt2YXIgTD1vLmRhdGEoSywiaGFuZGxlIik7aWYoTCl7TC5lbGVtPW51bGx9by5yZW1vdmVEYXRhKEssImV2ZW50cyIpO28ucmVtb3ZlRGF0YShLLCJoYW5kbGUiKX19fSx0cmlnZ2VyOmZ1bmN0aW9uKEksSyxILEUpe3ZhciBHPUkudHlwZXx8STtpZighRSl7ST10eXBlb2YgST09PSJvYmplY3QiP0lbaF0/STpvLmV4dGVuZChvLkV2ZW50KEcpLEkpOm8uRXZlbnQoRyk7aWYoRy5pbmRleE9mKCIhIik+PTApe0kudHlwZT1HPUcuc2xpY2UoMCwtMSk7SS5leGNsdXNpdmU9dHJ1ZX1pZighSCl7SS5zdG9wUHJvcGFnYXRpb24oKTtpZih0aGlzLmdsb2JhbFtHXSl7by5lYWNoKG8uY2FjaGUsZnVuY3Rpb24oKXtpZih0aGlzLmV2ZW50cyYmdGhpcy5ldmVudHNbR10pe28uZXZlbnQudHJpZ2dlcihJLEssdGhpcy5oYW5kbGUuZWxlbSl9fSl9fWlmKCFIfHxILm5vZGVUeXBlPT0zfHxILm5vZGVUeXBlPT04KXtyZXR1cm4gZ31JLnJlc3VsdD1nO0kudGFyZ2V0PUg7Sz1vLm1ha2VBcnJheShLKTtLLnVuc2hpZnQoSSl9SS5jdXJyZW50VGFyZ2V0PUg7dmFyIEo9by5kYXRhKEgsImhhbmRsZSIpO2lmKEope0ouYXBwbHkoSCxLKX1pZigoIUhbR118fChvLm5vZGVOYW1lKEgsImEiKSYmRz09ImNsaWNrIikpJiZIWyJvbiIrR10mJkhbIm9uIitHXS5hcHBseShILEspPT09ZmFsc2Upe0kucmVzdWx0PWZhbHNlfWlmKCFFJiZIW0ddJiYhSS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmIShvLm5vZGVOYW1lKEgsImEiKSYmRz09ImNsaWNrIikpe3RoaXMudHJpZ2dlcmVkPXRydWU7dHJ5e0hbR10oKX1jYXRjaChMKXt9fXRoaXMudHJpZ2dlcmVkPWZhbHNlO2lmKCFJLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpe3ZhciBGPUgucGFyZW50Tm9kZXx8SC5vd25lckRvY3VtZW50O2lmKEYpe28uZXZlbnQudHJpZ2dlcihJLEssRix0cnVlKX19fSxoYW5kbGU6ZnVuY3Rpb24oSyl7dmFyIEosRTtLPWFyZ3VtZW50c1swXT1vLmV2ZW50LmZpeChLfHxsLmV2ZW50KTtLLmN1cnJlbnRUYXJnZXQ9dGhpczt2YXIgTD1LLnR5cGUuc3BsaXQoIi4iKTtLLnR5cGU9TC5zaGlmdCgpO0o9IUwubGVuZ3RoJiYhSy5leGNsdXNpdmU7dmFyIEk9UmVnRXhwKCIoXnxcXC4pIitMLnNsaWNlKCkuc29ydCgpLmpvaW4oIi4qXFwuIikrIihcXC58JCkiKTtFPShvLmRhdGEodGhpcywiZXZlbnRzIil8fHt9KVtLLnR5cGVdO2Zvcih2YXIgRyBpbiBFKXt2YXIgSD1FW0ddO2lmKEp8fEkudGVzdChILnR5cGUpKXtLLmhhbmRsZXI9SDtLLmRhdGE9SC5kYXRhO3ZhciBGPUguYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKEYhPT1nKXtLLnJlc3VsdD1GO2lmKEY9PT1mYWxzZSl7Sy5wcmV2ZW50RGVmYXVsdCgpO0suc3RvcFByb3BhZ2F0aW9uKCl9fWlmKEsuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSl7YnJlYWt9fX19LHByb3BzOiJhbHRLZXkgYXR0ckNoYW5nZSBhdHRyTmFtZSBidWJibGVzIGJ1dHRvbiBjYW5jZWxhYmxlIGNoYXJDb2RlIGNsaWVudFggY2xpZW50WSBjdHJsS2V5IGN1cnJlbnRUYXJnZXQgZGF0YSBkZXRhaWwgZXZlbnRQaGFzZSBmcm9tRWxlbWVudCBoYW5kbGVyIGtleUNvZGUgbWV0YUtleSBuZXdWYWx1ZSBvcmlnaW5hbFRhcmdldCBwYWdlWCBwYWdlWSBwcmV2VmFsdWUgcmVsYXRlZE5vZGUgcmVsYXRlZFRhcmdldCBzY3JlZW5YIHNjcmVlblkgc2hpZnRLZXkgc3JjRWxlbWVudCB0YXJnZXQgdG9FbGVtZW50IHZpZXcgd2hlZWxEZWx0YSB3aGljaCIuc3BsaXQoIiAiKSxmaXg6ZnVuY3Rpb24oSCl7aWYoSFtoXSl7cmV0dXJuIEh9dmFyIEY9SDtIPW8uRXZlbnQoRik7Zm9yKHZhciBHPXRoaXMucHJvcHMubGVuZ3RoLEo7Rzspe0o9dGhpcy5wcm9wc1stLUddO0hbSl09RltKXX1pZighSC50YXJnZXQpe0gudGFyZ2V0PUguc3JjRWxlbWVudHx8ZG9jdW1lbnR9aWYoSC50YXJnZXQubm9kZVR5cGU9PTMpe0gudGFyZ2V0PUgudGFyZ2V0LnBhcmVudE5vZGV9aWYoIUgucmVsYXRlZFRhcmdldCYmSC5mcm9tRWxlbWVudCl7SC5yZWxhdGVkVGFyZ2V0PUguZnJvbUVsZW1lbnQ9PUgudGFyZ2V0P0gudG9FbGVtZW50OkguZnJvbUVsZW1lbnR9aWYoSC5wYWdlWD09bnVsbCYmSC5jbGllbnRYIT1udWxsKXt2YXIgST1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsRT1kb2N1bWVudC5ib2R5O0gucGFnZVg9SC5jbGllbnRYKyhJJiZJLnNjcm9sbExlZnR8fEUmJkUuc2Nyb2xsTGVmdHx8MCktKEkuY2xpZW50TGVmdHx8MCk7SC5wYWdlWT1ILmNsaWVudFkrKEkmJkkuc2Nyb2xsVG9wfHxFJiZFLnNjcm9sbFRvcHx8MCktKEkuY2xpZW50VG9wfHwwKX1pZighSC53aGljaCYmKChILmNoYXJDb2RlfHxILmNoYXJDb2RlPT09MCk/SC5jaGFyQ29kZTpILmtleUNvZGUpKXtILndoaWNoPUguY2hhckNvZGV8fEgua2V5Q29kZX1pZighSC5tZXRhS2V5JiZILmN0cmxLZXkpe0gubWV0YUtleT1ILmN0cmxLZXl9aWYoIUgud2hpY2gmJkguYnV0dG9uKXtILndoaWNoPShILmJ1dHRvbiYxPzE6KEguYnV0dG9uJjI/MzooSC5idXR0b24mND8yOjApKSl9cmV0dXJuIEh9LHByb3h5OmZ1bmN0aW9uKEYsRSl7RT1FfHxmdW5jdGlvbigpe3JldHVybiBGLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07RS5ndWlkPUYuZ3VpZD1GLmd1aWR8fEUuZ3VpZHx8dGhpcy5ndWlkKys7cmV0dXJuIEV9LHNwZWNpYWw6e3JlYWR5OntzZXR1cDpCLHRlYXJkb3duOmZ1bmN0aW9uKCl7fX19LHNwZWNpYWxBbGw6e2xpdmU6e3NldHVwOmZ1bmN0aW9uKEUsRil7by5ldmVudC5hZGQodGhpcyxGWzBdLGMpfSx0ZWFyZG93bjpmdW5jdGlvbihHKXtpZihHLmxlbmd0aCl7dmFyIEU9MCxGPVJlZ0V4cCgiKF58XFwuKSIrR1swXSsiKFxcLnwkKSIpO28uZWFjaCgoby5kYXRhKHRoaXMsImV2ZW50cyIpLmxpdmV8fHt9KSxmdW5jdGlvbigpe2lmKEYudGVzdCh0aGlzLnR5cGUpKXtFKyt9fSk7aWYoRTwxKXtvLmV2ZW50LnJlbW92ZSh0aGlzLEdbMF0sYyl9fX19fX07by5FdmVudD1mdW5jdGlvbihFKXtpZighdGhpcy5wcmV2ZW50RGVmYXVsdCl7cmV0dXJuIG5ldyBvLkV2ZW50KEUpfWlmKEUmJkUudHlwZSl7dGhpcy5vcmlnaW5hbEV2ZW50PUU7dGhpcy50eXBlPUUudHlwZX1lbHNle3RoaXMudHlwZT1FfXRoaXMudGltZVN0YW1wPWUoKTt0aGlzW2hdPXRydWV9O2Z1bmN0aW9uIGsoKXtyZXR1cm4gZmFsc2V9ZnVuY3Rpb24gdSgpe3JldHVybiB0cnVlfW8uRXZlbnQucHJvdG90eXBlPXtwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPXU7dmFyIEU9dGhpcy5vcmlnaW5hbEV2ZW50O2lmKCFFKXtyZXR1cm59aWYoRS5wcmV2ZW50RGVmYXVsdCl7RS5wcmV2ZW50RGVmYXVsdCgpfUUucmV0dXJuVmFsdWU9ZmFsc2V9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9dTt2YXIgRT10aGlzLm9yaWdpbmFsRXZlbnQ7aWYoIUUpe3JldHVybn1pZihFLnN0b3BQcm9wYWdhdGlvbil7RS5zdG9wUHJvcGFnYXRpb24oKX1FLmNhbmNlbEJ1YmJsZT10cnVlfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPXU7dGhpcy5zdG9wUHJvcGFnYXRpb24oKX0saXNEZWZhdWx0UHJldmVudGVkOmssaXNQcm9wYWdhdGlvblN0b3BwZWQ6ayxpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDprfTt2YXIgYT1mdW5jdGlvbihGKXt2YXIgRT1GLnJlbGF0ZWRUYXJnZXQ7d2hpbGUoRSYmRSE9dGhpcyl7dHJ5e0U9RS5wYXJlbnROb2RlfWNhdGNoKEcpe0U9dGhpc319aWYoRSE9dGhpcyl7Ri50eXBlPUYuZGF0YTtvLmV2ZW50LmhhbmRsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fTtvLmVhY2goe21vdXNlb3ZlcjoibW91c2VlbnRlciIsbW91c2VvdXQ6Im1vdXNlbGVhdmUifSxmdW5jdGlvbihGLEUpe28uZXZlbnQuc3BlY2lhbFtFXT17c2V0dXA6ZnVuY3Rpb24oKXtvLmV2ZW50LmFkZCh0aGlzLEYsYSxFKX0sdGVhcmRvd246ZnVuY3Rpb24oKXtvLmV2ZW50LnJlbW92ZSh0aGlzLEYsYSl9fX0pO28uZm4uZXh0ZW5kKHtiaW5kOmZ1bmN0aW9uKEYsRyxFKXtyZXR1cm4gRj09InVubG9hZCI/dGhpcy5vbmUoRixHLEUpOnRoaXMuZWFjaChmdW5jdGlvbigpe28uZXZlbnQuYWRkKHRoaXMsRixFfHxHLEUmJkcpfSl9LG9uZTpmdW5jdGlvbihHLEgsRil7dmFyIEU9by5ldmVudC5wcm94eShGfHxILGZ1bmN0aW9uKEkpe28odGhpcykudW5iaW5kKEksRSk7cmV0dXJuKEZ8fEgpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtvLmV2ZW50LmFkZCh0aGlzLEcsRSxGJiZIKX0pfSx1bmJpbmQ6ZnVuY3Rpb24oRixFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7by5ldmVudC5yZW1vdmUodGhpcyxGLEUpfSl9LHRyaWdnZXI6ZnVuY3Rpb24oRSxGKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7by5ldmVudC50cmlnZ2VyKEUsRix0aGlzKX0pfSx0cmlnZ2VySGFuZGxlcjpmdW5jdGlvbihFLEcpe2lmKHRoaXNbMF0pe3ZhciBGPW8uRXZlbnQoRSk7Ri5wcmV2ZW50RGVmYXVsdCgpO0Yuc3RvcFByb3BhZ2F0aW9uKCk7by5ldmVudC50cmlnZ2VyKEYsRyx0aGlzWzBdKTtyZXR1cm4gRi5yZXN1bHR9fSx0b2dnbGU6ZnVuY3Rpb24oRyl7dmFyIEU9YXJndW1lbnRzLEY9MTt3aGlsZShGPEUubGVuZ3RoKXtvLmV2ZW50LnByb3h5KEcsRVtGKytdKX1yZXR1cm4gdGhpcy5jbGljayhvLmV2ZW50LnByb3h5KEcsZnVuY3Rpb24oSCl7dGhpcy5sYXN0VG9nZ2xlPSh0aGlzLmxhc3RUb2dnbGV8fDApJUY7SC5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiBFW3RoaXMubGFzdFRvZ2dsZSsrXS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fGZhbHNlfSkpfSxob3ZlcjpmdW5jdGlvbihFLEYpe3JldHVybiB0aGlzLm1vdXNlZW50ZXIoRSkubW91c2VsZWF2ZShGKX0scmVhZHk6ZnVuY3Rpb24oRSl7QigpO2lmKG8uaXNSZWFkeSl7RS5jYWxsKGRvY3VtZW50LG8pfWVsc2V7by5yZWFkeUxpc3QucHVzaChFKX1yZXR1cm4gdGhpc30sbGl2ZTpmdW5jdGlvbihHLEYpe3ZhciBFPW8uZXZlbnQucHJveHkoRik7RS5ndWlkKz10aGlzLnNlbGVjdG9yK0c7byhkb2N1bWVudCkuYmluZChpKEcsdGhpcy5zZWxlY3RvciksdGhpcy5zZWxlY3RvcixFKTtyZXR1cm4gdGhpc30sZGllOmZ1bmN0aW9uKEYsRSl7byhkb2N1bWVudCkudW5iaW5kKGkoRix0aGlzLnNlbGVjdG9yKSxFP3tndWlkOkUuZ3VpZCt0aGlzLnNlbGVjdG9yK0Z9Om51bGwpO3JldHVybiB0aGlzfX0pO2Z1bmN0aW9uIGMoSCl7dmFyIEU9UmVnRXhwKCIoXnxcXC4pIitILnR5cGUrIihcXC58JCkiKSxHPXRydWUsRj1bXTtvLmVhY2goby5kYXRhKHRoaXMsImV2ZW50cyIpLmxpdmV8fFtdLGZ1bmN0aW9uKEksSil7aWYoRS50ZXN0KEoudHlwZSkpe3ZhciBLPW8oSC50YXJnZXQpLmNsb3Nlc3QoSi5kYXRhKVswXTtpZihLKXtGLnB1c2goe2VsZW06SyxmbjpKfSl9fX0pO0Yuc29ydChmdW5jdGlvbihKLEkpe3JldHVybiBvLmRhdGEoSi5lbGVtLCJjbG9zZXN0Iiktby5kYXRhKEkuZWxlbSwiY2xvc2VzdCIpfSk7by5lYWNoKEYsZnVuY3Rpb24oKXtpZih0aGlzLmZuLmNhbGwodGhpcy5lbGVtLEgsdGhpcy5mbi5kYXRhKT09PWZhbHNlKXtyZXR1cm4oRz1mYWxzZSl9fSk7cmV0dXJuIEd9ZnVuY3Rpb24gaShGLEUpe3JldHVyblsibGl2ZSIsRixFLnJlcGxhY2UoL1wuL2csImAiKS5yZXBsYWNlKC8gL2csInwiKV0uam9pbigiLiIpfW8uZXh0ZW5kKHtpc1JlYWR5OmZhbHNlLHJlYWR5TGlzdDpbXSxyZWFkeTpmdW5jdGlvbigpe2lmKCFvLmlzUmVhZHkpe28uaXNSZWFkeT10cnVlO2lmKG8ucmVhZHlMaXN0KXtvLmVhY2goby5yZWFkeUxpc3QsZnVuY3Rpb24oKXt0aGlzLmNhbGwoZG9jdW1lbnQsbyl9KTtvLnJlYWR5TGlzdD1udWxsfW8oZG9jdW1lbnQpLnRyaWdnZXJIYW5kbGVyKCJyZWFkeSIpfX19KTt2YXIgeD1mYWxzZTtmdW5jdGlvbiBCKCl7aWYoeCl7cmV0dXJufXg9dHJ1ZTtpZihkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbigpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGFyZ3VtZW50cy5jYWxsZWUsZmFsc2UpO28ucmVhZHkoKX0sZmFsc2UpfWVsc2V7aWYoZG9jdW1lbnQuYXR0YWNoRXZlbnQpe2RvY3VtZW50LmF0dGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKCl7aWYoZG9jdW1lbnQucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpe2RvY3VtZW50LmRldGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLGFyZ3VtZW50cy5jYWxsZWUpO28ucmVhZHkoKX19KTtpZihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwmJmw9PWwudG9wKXsoZnVuY3Rpb24oKXtpZihvLmlzUmVhZHkpe3JldHVybn10cnl7ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iil9Y2F0Y2goRSl7c2V0VGltZW91dChhcmd1bWVudHMuY2FsbGVlLDApO3JldHVybn1vLnJlYWR5KCl9KSgpfX19by5ldmVudC5hZGQobCwibG9hZCIsby5yZWFkeSl9by5lYWNoKCgiYmx1cixmb2N1cyxsb2FkLHJlc2l6ZSxzY3JvbGwsdW5sb2FkLGNsaWNrLGRibGNsaWNrLG1vdXNlZG93bixtb3VzZXVwLG1vdXNlbW92ZSxtb3VzZW92ZXIsbW91c2VvdXQsbW91c2VlbnRlcixtb3VzZWxlYXZlLGNoYW5nZSxzZWxlY3Qsc3VibWl0LGtleWRvd24sa2V5cHJlc3Msa2V5dXAsZXJyb3IiKS5zcGxpdCgiLCIpLGZ1bmN0aW9uKEYsRSl7by5mbltFXT1mdW5jdGlvbihHKXtyZXR1cm4gRz90aGlzLmJpbmQoRSxHKTp0aGlzLnRyaWdnZXIoRSl9fSk7byhsKS5iaW5kKCJ1bmxvYWQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBFIGluIG8uY2FjaGUpe2lmKEUhPTEmJm8uY2FjaGVbRV0uaGFuZGxlKXtvLmV2ZW50LnJlbW92ZShvLmNhY2hlW0VdLmhhbmRsZS5lbGVtKX19fSk7KGZ1bmN0aW9uKCl7by5zdXBwb3J0PXt9O3ZhciBGPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxHPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLEs9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksSj0ic2NyaXB0IisobmV3IERhdGUpLmdldFRpbWUoKTtLLnN0eWxlLmRpc3BsYXk9Im5vbmUiO0suaW5uZXJIVE1MPScgICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0iL2EiIHN0eWxlPSJjb2xvcjpyZWQ7ZmxvYXQ6bGVmdDtvcGFjaXR5Oi41OyI+YTwvYT48c2VsZWN0PjxvcHRpb24+dGV4dDwvb3B0aW9uPjwvc2VsZWN0PjxvYmplY3Q+PHBhcmFtLz48L29iamVjdD4nO3ZhciBIPUsuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSxFPUsuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXTtpZighSHx8IUgubGVuZ3RofHwhRSl7cmV0dXJufW8uc3VwcG9ydD17bGVhZGluZ1doaXRlc3BhY2U6Sy5maXJzdENoaWxkLm5vZGVUeXBlPT0zLHRib2R5OiFLLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpLmxlbmd0aCxvYmplY3RBbGw6ISFLLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aCxodG1sU2VyaWFsaXplOiEhSy5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCxzdHlsZTovcmVkLy50ZXN0KEUuZ2V0QXR0cmlidXRlKCJzdHlsZSIpKSxocmVmTm9ybWFsaXplZDpFLmdldEF0dHJpYnV0ZSgiaHJlZiIpPT09Ii9hIixvcGFjaXR5OkUuc3R5bGUub3BhY2l0eT09PSIwLjUiLGNzc0Zsb2F0OiEhRS5zdHlsZS5jc3NGbG9hdCxzY3JpcHRFdmFsOmZhbHNlLG5vQ2xvbmVFdmVudDp0cnVlLGJveE1vZGVsOm51bGx9O0cudHlwZT0idGV4dC9qYXZhc2NyaXB0Ijt0cnl7Ry5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgid2luZG93LiIrSisiPTE7IikpfWNhdGNoKEkpe31GLmluc2VydEJlZm9yZShHLEYuZmlyc3RDaGlsZCk7aWYobFtKXSl7by5zdXBwb3J0LnNjcmlwdEV2YWw9dHJ1ZTtkZWxldGUgbFtKXX1GLnJlbW92ZUNoaWxkKEcpO2lmKEsuYXR0YWNoRXZlbnQmJksuZmlyZUV2ZW50KXtLLmF0dGFjaEV2ZW50KCJvbmNsaWNrIixmdW5jdGlvbigpe28uc3VwcG9ydC5ub0Nsb25lRXZlbnQ9ZmFsc2U7Sy5kZXRhY2hFdmVudCgib25jbGljayIsYXJndW1lbnRzLmNhbGxlZSl9KTtLLmNsb25lTm9kZSh0cnVlKS5maXJlRXZlbnQoIm9uY2xpY2siKX1vKGZ1bmN0aW9uKCl7dmFyIEw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7TC5zdHlsZS53aWR0aD1MLnN0eWxlLnBhZGRpbmdMZWZ0PSIxcHgiO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoTCk7by5ib3hNb2RlbD1vLnN1cHBvcnQuYm94TW9kZWw9TC5vZmZzZXRXaWR0aD09PTI7ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChMKS5zdHlsZS5kaXNwbGF5PSJub25lIn0pfSkoKTt2YXIgdz1vLnN1cHBvcnQuY3NzRmxvYXQ/ImNzc0Zsb2F0Ijoic3R5bGVGbG9hdCI7by5wcm9wcz17ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSIsImZsb2F0Ijp3LGNzc0Zsb2F0Oncsc3R5bGVGbG9hdDp3LHJlYWRvbmx5OiJyZWFkT25seSIsbWF4bGVuZ3RoOiJtYXhMZW5ndGgiLGNlbGxzcGFjaW5nOiJjZWxsU3BhY2luZyIscm93c3Bhbjoicm93U3BhbiIsdGFiaW5kZXg6InRhYkluZGV4In07by5mbi5leHRlbmQoe19sb2FkOm8uZm4ubG9hZCxsb2FkOmZ1bmN0aW9uKEcsSixLKXtpZih0eXBlb2YgRyE9PSJzdHJpbmciKXtyZXR1cm4gdGhpcy5fbG9hZChHKX12YXIgST1HLmluZGV4T2YoIiAiKTtpZihJPj0wKXt2YXIgRT1HLnNsaWNlKEksRy5sZW5ndGgpO0c9Ry5zbGljZSgwLEkpfXZhciBIPSJHRVQiO2lmKEope2lmKG8uaXNGdW5jdGlvbihKKSl7Sz1KO0o9bnVsbH1lbHNle2lmKHR5cGVvZiBKPT09Im9iamVjdCIpe0o9by5wYXJhbShKKTtIPSJQT1NUIn19fXZhciBGPXRoaXM7by5hamF4KHt1cmw6Ryx0eXBlOkgsZGF0YVR5cGU6Imh0bWwiLGRhdGE6Sixjb21wbGV0ZTpmdW5jdGlvbihNLEwpe2lmKEw9PSJzdWNjZXNzInx8TD09Im5vdG1vZGlmaWVkIil7Ri5odG1sKEU/bygiPGRpdi8+IikuYXBwZW5kKE0ucmVzcG9uc2VUZXh0LnJlcGxhY2UoLzxzY3JpcHQoLnxccykqP1wvc2NyaXB0Pi9nLCIiKSkuZmluZChFKTpNLnJlc3BvbnNlVGV4dCl9aWYoSyl7Ri5lYWNoKEssW00ucmVzcG9uc2VUZXh0LEwsTV0pfX19KTtyZXR1cm4gdGhpc30sc2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIG8ucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50cz9vLm1ha2VBcnJheSh0aGlzLmVsZW1lbnRzKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZSYmIXRoaXMuZGlzYWJsZWQmJih0aGlzLmNoZWNrZWR8fC9zZWxlY3R8dGV4dGFyZWEvaS50ZXN0KHRoaXMubm9kZU5hbWUpfHwvdGV4dHxoaWRkZW58cGFzc3dvcmR8c2VhcmNoL2kudGVzdCh0aGlzLnR5cGUpKX0pLm1hcChmdW5jdGlvbihFLEYpe3ZhciBHPW8odGhpcykudmFsKCk7cmV0dXJuIEc9PW51bGw/bnVsbDpvLmlzQXJyYXkoRyk/by5tYXAoRyxmdW5jdGlvbihJLEgpe3JldHVybntuYW1lOkYubmFtZSx2YWx1ZTpJfX0pOntuYW1lOkYubmFtZSx2YWx1ZTpHfX0pLmdldCgpfX0pO28uZWFjaCgiYWpheFN0YXJ0LGFqYXhTdG9wLGFqYXhDb21wbGV0ZSxhamF4RXJyb3IsYWpheFN1Y2Nlc3MsYWpheFNlbmQiLnNwbGl0KCIsIiksZnVuY3Rpb24oRSxGKXtvLmZuW0ZdPWZ1bmN0aW9uKEcpe3JldHVybiB0aGlzLmJpbmQoRixHKX19KTt2YXIgcj1lKCk7by5leHRlbmQoe2dldDpmdW5jdGlvbihFLEcsSCxGKXtpZihvLmlzRnVuY3Rpb24oRykpe0g9RztHPW51bGx9cmV0dXJuIG8uYWpheCh7dHlwZToiR0VUIix1cmw6RSxkYXRhOkcsc3VjY2VzczpILGRhdGFUeXBlOkZ9KX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKEUsRil7cmV0dXJuIG8uZ2V0KEUsbnVsbCxGLCJzY3JpcHQiKX0sZ2V0SlNPTjpmdW5jdGlvbihFLEYsRyl7cmV0dXJuIG8uZ2V0KEUsRixHLCJqc29uIil9LHBvc3Q6ZnVuY3Rpb24oRSxHLEgsRil7aWYoby5pc0Z1bmN0aW9uKEcpKXtIPUc7Rz17fX1yZXR1cm4gby5hamF4KHt0eXBlOiJQT1NUIix1cmw6RSxkYXRhOkcsc3VjY2VzczpILGRhdGFUeXBlOkZ9KX0sYWpheFNldHVwOmZ1bmN0aW9uKEUpe28uZXh0ZW5kKG8uYWpheFNldHRpbmdzLEUpfSxhamF4U2V0dGluZ3M6e3VybDpsb2NhdGlvbi5ocmVmLGdsb2JhbDp0cnVlLHR5cGU6IkdFVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIscHJvY2Vzc0RhdGE6dHJ1ZSxhc3luYzp0cnVlLHhocjpmdW5jdGlvbigpe3JldHVybiBsLkFjdGl2ZVhPYmplY3Q/bmV3IEFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIik6bmV3IFhNTEh0dHBSZXF1ZXN0KCl9LGFjY2VwdHM6e3htbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsaHRtbDoidGV4dC9odG1sIixzY3JpcHQ6InRleHQvamF2YXNjcmlwdCwgYXBwbGljYXRpb24vamF2YXNjcmlwdCIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0Iix0ZXh0OiJ0ZXh0L3BsYWluIixfZGVmYXVsdDoiKi8qIn19LGxhc3RNb2RpZmllZDp7fSxhamF4OmZ1bmN0aW9uKE0pe009by5leHRlbmQodHJ1ZSxNLG8uZXh0ZW5kKHRydWUse30sby5hamF4U2V0dGluZ3MsTSkpO3ZhciBXLEY9Lz1cPygmfCQpL2csUixWLEc9TS50eXBlLnRvVXBwZXJDYXNlKCk7aWYoTS5kYXRhJiZNLnByb2Nlc3NEYXRhJiZ0eXBlb2YgTS5kYXRhIT09InN0cmluZyIpe00uZGF0YT1vLnBhcmFtKE0uZGF0YSl9aWYoTS5kYXRhVHlwZT09Impzb25wIil7aWYoRz09IkdFVCIpe2lmKCFNLnVybC5tYXRjaChGKSl7TS51cmwrPShNLnVybC5tYXRjaCgvXD8vKT8iJiI6Ij8iKSsoTS5qc29ucHx8ImNhbGxiYWNrIikrIj0/In19ZWxzZXtpZighTS5kYXRhfHwhTS5kYXRhLm1hdGNoKEYpKXtNLmRhdGE9KE0uZGF0YT9NLmRhdGErIiYiOiIiKSsoTS5qc29ucHx8ImNhbGxiYWNrIikrIj0/In19TS5kYXRhVHlwZT0ianNvbiJ9aWYoTS5kYXRhVHlwZT09Impzb24iJiYoTS5kYXRhJiZNLmRhdGEubWF0Y2goRil8fE0udXJsLm1hdGNoKEYpKSl7Vz0ianNvbnAiK3IrKztpZihNLmRhdGEpe00uZGF0YT0oTS5kYXRhKyIiKS5yZXBsYWNlKEYsIj0iK1crIiQxIil9TS51cmw9TS51cmwucmVwbGFjZShGLCI9IitXKyIkMSIpO00uZGF0YVR5cGU9InNjcmlwdCI7bFtXXT1mdW5jdGlvbihYKXtWPVg7SSgpO0woKTtsW1ddPWc7dHJ5e2RlbGV0ZSBsW1ddfWNhdGNoKFkpe31pZihIKXtILnJlbW92ZUNoaWxkKFQpfX19aWYoTS5kYXRhVHlwZT09InNjcmlwdCImJk0uY2FjaGU9PW51bGwpe00uY2FjaGU9ZmFsc2V9aWYoTS5jYWNoZT09PWZhbHNlJiZHPT0iR0VUIil7dmFyIEU9ZSgpO3ZhciBVPU0udXJsLnJlcGxhY2UoLyhcP3wmKV89Lio/KCZ8JCkvLCIkMV89IitFKyIkMiIpO00udXJsPVUrKChVPT1NLnVybCk/KE0udXJsLm1hdGNoKC9cPy8pPyImIjoiPyIpKyJfPSIrRToiIil9aWYoTS5kYXRhJiZHPT0iR0VUIil7TS51cmwrPShNLnVybC5tYXRjaCgvXD8vKT8iJiI6Ij8iKStNLmRhdGE7TS5kYXRhPW51bGx9aWYoTS5nbG9iYWwmJiFvLmFjdGl2ZSsrKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpfXZhciBRPS9eKFx3KzopP1wvXC8oW15cLz8jXSspLy5leGVjKE0udXJsKTtpZihNLmRhdGFUeXBlPT0ic2NyaXB0IiYmRz09IkdFVCImJlEmJihRWzFdJiZRWzFdIT1sb2NhdGlvbi5wcm90b2NvbHx8UVsyXSE9bG9jYXRpb24uaG9zdCkpe3ZhciBIPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF07dmFyIFQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7VC5zcmM9TS51cmw7aWYoTS5zY3JpcHRDaGFyc2V0KXtULmNoYXJzZXQ9TS5zY3JpcHRDaGFyc2V0fWlmKCFXKXt2YXIgTz1mYWxzZTtULm9ubG9hZD1ULm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKCFPJiYoIXRoaXMucmVhZHlTdGF0ZXx8dGhpcy5yZWFkeVN0YXRlPT0ibG9hZGVkInx8dGhpcy5yZWFkeVN0YXRlPT0iY29tcGxldGUiKSl7Tz10cnVlO0koKTtMKCk7VC5vbmxvYWQ9VC5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbDtILnJlbW92ZUNoaWxkKFQpfX19SC5hcHBlbmRDaGlsZChUKTtyZXR1cm4gZ312YXIgSz1mYWxzZTt2YXIgSj1NLnhocigpO2lmKE0udXNlcm5hbWUpe0oub3BlbihHLE0udXJsLE0uYXN5bmMsTS51c2VybmFtZSxNLnBhc3N3b3JkKX1lbHNle0oub3BlbihHLE0udXJsLE0uYXN5bmMpfXRyeXtpZihNLmRhdGEpe0ouc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIixNLmNvbnRlbnRUeXBlKX1pZihNLmlmTW9kaWZpZWQpe0ouc2V0UmVxdWVzdEhlYWRlcigiSWYtTW9kaWZpZWQtU2luY2UiLG8ubGFzdE1vZGlmaWVkW00udXJsXXx8IlRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIil9Si5zZXRSZXF1ZXN0SGVhZGVyKCJYLVJlcXVlc3RlZC1XaXRoIiwiWE1MSHR0cFJlcXVlc3QiKTtKLnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsTS5kYXRhVHlwZSYmTS5hY2NlcHRzW00uZGF0YVR5cGVdP00uYWNjZXB0c1tNLmRhdGFUeXBlXSsiLCAqLyoiOk0uYWNjZXB0cy5fZGVmYXVsdCl9Y2F0Y2goUyl7fWlmKE0uYmVmb3JlU2VuZCYmTS5iZWZvcmVTZW5kKEosTSk9PT1mYWxzZSl7aWYoTS5nbG9iYWwmJiEtLW8uYWN0aXZlKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIil9Si5hYm9ydCgpO3JldHVybiBmYWxzZX1pZihNLmdsb2JhbCl7by5ldmVudC50cmlnZ2VyKCJhamF4U2VuZCIsW0osTV0pfXZhciBOPWZ1bmN0aW9uKFgpe2lmKEoucmVhZHlTdGF0ZT09MCl7aWYoUCl7Y2xlYXJJbnRlcnZhbChQKTtQPW51bGw7aWYoTS5nbG9iYWwmJiEtLW8uYWN0aXZlKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIil9fX1lbHNle2lmKCFLJiZKJiYoSi5yZWFkeVN0YXRlPT00fHxYPT0idGltZW91dCIpKXtLPXRydWU7aWYoUCl7Y2xlYXJJbnRlcnZhbChQKTtQPW51bGx9Uj1YPT0idGltZW91dCI/InRpbWVvdXQiOiFvLmh0dHBTdWNjZXNzKEopPyJlcnJvciI6TS5pZk1vZGlmaWVkJiZvLmh0dHBOb3RNb2RpZmllZChKLE0udXJsKT8ibm90bW9kaWZpZWQiOiJzdWNjZXNzIjtpZihSPT0ic3VjY2VzcyIpe3RyeXtWPW8uaHR0cERhdGEoSixNLmRhdGFUeXBlLE0pfWNhdGNoKFope1I9InBhcnNlcmVycm9yIn19aWYoUj09InN1Y2Nlc3MiKXt2YXIgWTt0cnl7WT1KLmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIil9Y2F0Y2goWil7fWlmKE0uaWZNb2RpZmllZCYmWSl7by5sYXN0TW9kaWZpZWRbTS51cmxdPVl9aWYoIVcpe0koKX19ZWxzZXtvLmhhbmRsZUVycm9yKE0sSixSKX1MKCk7aWYoWCl7Si5hYm9ydCgpfWlmKE0uYXN5bmMpe0o9bnVsbH19fX07aWYoTS5hc3luYyl7dmFyIFA9c2V0SW50ZXJ2YWwoTiwxMyk7aWYoTS50aW1lb3V0PjApe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpZihKJiYhSyl7TigidGltZW91dCIpfX0sTS50aW1lb3V0KX19dHJ5e0ouc2VuZChNLmRhdGEpfWNhdGNoKFMpe28uaGFuZGxlRXJyb3IoTSxKLG51bGwsUyl9aWYoIU0uYXN5bmMpe04oKX1mdW5jdGlvbiBJKCl7aWYoTS5zdWNjZXNzKXtNLnN1Y2Nlc3MoVixSKX1pZihNLmdsb2JhbCl7by5ldmVudC50cmlnZ2VyKCJhamF4U3VjY2VzcyIsW0osTV0pfX1mdW5jdGlvbiBMKCl7aWYoTS5jb21wbGV0ZSl7TS5jb21wbGV0ZShKLFIpfWlmKE0uZ2xvYmFsKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW0osTV0pfWlmKE0uZ2xvYmFsJiYhLS1vLmFjdGl2ZSl7by5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpfX1yZXR1cm4gSn0saGFuZGxlRXJyb3I6ZnVuY3Rpb24oRixILEUsRyl7aWYoRi5lcnJvcil7Ri5lcnJvcihILEUsRyl9aWYoRi5nbG9iYWwpe28uZXZlbnQudHJpZ2dlcigiYWpheEVycm9yIixbSCxGLEddKX19LGFjdGl2ZTowLGh0dHBTdWNjZXNzOmZ1bmN0aW9uKEYpe3RyeXtyZXR1cm4gIUYuc3RhdHVzJiZsb2NhdGlvbi5wcm90b2NvbD09ImZpbGU6Inx8KEYuc3RhdHVzPj0yMDAmJkYuc3RhdHVzPDMwMCl8fEYuc3RhdHVzPT0zMDR8fEYuc3RhdHVzPT0xMjIzfWNhdGNoKEUpe31yZXR1cm4gZmFsc2V9LGh0dHBOb3RNb2RpZmllZDpmdW5jdGlvbihHLEUpe3RyeXt2YXIgSD1HLmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIik7cmV0dXJuIEcuc3RhdHVzPT0zMDR8fEg9PW8ubGFzdE1vZGlmaWVkW0VdfWNhdGNoKEYpe31yZXR1cm4gZmFsc2V9LGh0dHBEYXRhOmZ1bmN0aW9uKEosSCxHKXt2YXIgRj1KLmdldFJlc3BvbnNlSGVhZGVyKCJjb250ZW50LXR5cGUiKSxFPUg9PSJ4bWwifHwhSCYmRiYmRi5pbmRleE9mKCJ4bWwiKT49MCxJPUU/Si5yZXNwb25zZVhNTDpKLnJlc3BvbnNlVGV4dDtpZihFJiZJLmRvY3VtZW50RWxlbWVudC50YWdOYW1lPT0icGFyc2VyZXJyb3IiKXt0aHJvdyJwYXJzZXJlcnJvciJ9aWYoRyYmRy5kYXRhRmlsdGVyKXtJPUcuZGF0YUZpbHRlcihJLEgpfWlmKHR5cGVvZiBJPT09InN0cmluZyIpe2lmKEg9PSJzY3JpcHQiKXtvLmdsb2JhbEV2YWwoSSl9aWYoSD09Impzb24iKXtJPWxbImV2YWwiXSgiKCIrSSsiKSIpfX1yZXR1cm4gSX0scGFyYW06ZnVuY3Rpb24oRSl7dmFyIEc9W107ZnVuY3Rpb24gSChJLEope0dbRy5sZW5ndGhdPWVuY29kZVVSSUNvbXBvbmVudChJKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KEopfWlmKG8uaXNBcnJheShFKXx8RS5qcXVlcnkpe28uZWFjaChFLGZ1bmN0aW9uKCl7SCh0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KX1lbHNle2Zvcih2YXIgRiBpbiBFKXtpZihvLmlzQXJyYXkoRVtGXSkpe28uZWFjaChFW0ZdLGZ1bmN0aW9uKCl7SChGLHRoaXMpfSl9ZWxzZXtIKEYsby5pc0Z1bmN0aW9uKEVbRl0pP0VbRl0oKTpFW0ZdKX19fXJldHVybiBHLmpvaW4oIiYiKS5yZXBsYWNlKC8lMjAvZywiKyIpfX0pO3ZhciBtPXt9LG4sZD1bWyJoZWlnaHQiLCJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSJdLFsid2lkdGgiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCJdLFsib3BhY2l0eSJdXTtmdW5jdGlvbiB0KEYsRSl7dmFyIEc9e307by5lYWNoKGQuY29uY2F0LmFwcGx5KFtdLGQuc2xpY2UoMCxFKSksZnVuY3Rpb24oKXtHW3RoaXNdPUZ9KTtyZXR1cm4gR31vLmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbihKLEwpe2lmKEope3JldHVybiB0aGlzLmFuaW1hdGUodCgic2hvdyIsMyksSixMKX1lbHNle2Zvcih2YXIgSD0wLEY9dGhpcy5sZW5ndGg7SDxGO0grKyl7dmFyIEU9by5kYXRhKHRoaXNbSF0sIm9sZGRpc3BsYXkiKTt0aGlzW0hdLnN0eWxlLmRpc3BsYXk9RXx8IiI7aWYoby5jc3ModGhpc1tIXSwiZGlzcGxheSIpPT09Im5vbmUiKXt2YXIgRz10aGlzW0hdLnRhZ05hbWUsSztpZihtW0ddKXtLPW1bR119ZWxzZXt2YXIgST1vKCI8IitHKyIgLz4iKS5hcHBlbmRUbygiYm9keSIpO0s9SS5jc3MoImRpc3BsYXkiKTtpZihLPT09Im5vbmUiKXtLPSJibG9jayJ9SS5yZW1vdmUoKTttW0ddPUt9by5kYXRhKHRoaXNbSF0sIm9sZGRpc3BsYXkiLEspfX1mb3IodmFyIEg9MCxGPXRoaXMubGVuZ3RoO0g8RjtIKyspe3RoaXNbSF0uc3R5bGUuZGlzcGxheT1vLmRhdGEodGhpc1tIXSwib2xkZGlzcGxheSIpfHwiIn1yZXR1cm4gdGhpc319LGhpZGU6ZnVuY3Rpb24oSCxJKXtpZihIKXtyZXR1cm4gdGhpcy5hbmltYXRlKHQoImhpZGUiLDMpLEgsSSl9ZWxzZXtmb3IodmFyIEc9MCxGPXRoaXMubGVuZ3RoO0c8RjtHKyspe3ZhciBFPW8uZGF0YSh0aGlzW0ddLCJvbGRkaXNwbGF5Iik7aWYoIUUmJkUhPT0ibm9uZSIpe28uZGF0YSh0aGlzW0ddLCJvbGRkaXNwbGF5IixvLmNzcyh0aGlzW0ddLCJkaXNwbGF5IikpfX1mb3IodmFyIEc9MCxGPXRoaXMubGVuZ3RoO0c8RjtHKyspe3RoaXNbR10uc3R5bGUuZGlzcGxheT0ibm9uZSJ9cmV0dXJuIHRoaXN9fSxfdG9nZ2xlOm8uZm4udG9nZ2xlLHRvZ2dsZTpmdW5jdGlvbihHLEYpe3ZhciBFPXR5cGVvZiBHPT09ImJvb2xlYW4iO3JldHVybiBvLmlzRnVuY3Rpb24oRykmJm8uaXNGdW5jdGlvbihGKT90aGlzLl90b2dnbGUuYXBwbHkodGhpcyxhcmd1bWVudHMpOkc9PW51bGx8fEU/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIEg9RT9HOm8odGhpcykuaXMoIjpoaWRkZW4iKTtvKHRoaXMpW0g/InNob3ciOiJoaWRlIl0oKX0pOnRoaXMuYW5pbWF0ZSh0KCJ0b2dnbGUiLDMpLEcsRil9LGZhZGVUbzpmdW5jdGlvbihFLEcsRil7cmV0dXJuIHRoaXMuYW5pbWF0ZSh7b3BhY2l0eTpHfSxFLEYpfSxhbmltYXRlOmZ1bmN0aW9uKEksRixILEcpe3ZhciBFPW8uc3BlZWQoRixILEcpO3JldHVybiB0aGlzW0UucXVldWU9PT1mYWxzZT8iZWFjaCI6InF1ZXVlIl0oZnVuY3Rpb24oKXt2YXIgSz1vLmV4dGVuZCh7fSxFKSxNLEw9dGhpcy5ub2RlVHlwZT09MSYmbyh0aGlzKS5pcygiOmhpZGRlbiIpLEo9dGhpcztmb3IoTSBpbiBJKXtpZihJW01dPT0iaGlkZSImJkx8fElbTV09PSJzaG93IiYmIUwpe3JldHVybiBLLmNvbXBsZXRlLmNhbGwodGhpcyl9aWYoKE09PSJoZWlnaHQifHxNPT0id2lkdGgiKSYmdGhpcy5zdHlsZSl7Sy5kaXNwbGF5PW8uY3NzKHRoaXMsImRpc3BsYXkiKTtLLm92ZXJmbG93PXRoaXMuc3R5bGUub3ZlcmZsb3d9fWlmKEsub3ZlcmZsb3chPW51bGwpe3RoaXMuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiJ9Sy5jdXJBbmltPW8uZXh0ZW5kKHt9LEkpO28uZWFjaChJLGZ1bmN0aW9uKE8sUyl7dmFyIFI9bmV3IG8uZngoSixLLE8pO2lmKC90b2dnbGV8c2hvd3xoaWRlLy50ZXN0KFMpKXtSW1M9PSJ0b2dnbGUiP0w/InNob3ciOiJoaWRlIjpTXShJKX1lbHNle3ZhciBRPVMudG9TdHJpbmcoKS5tYXRjaCgvXihbKy1dPSk/KFtcZCstLl0rKSguKikkLyksVD1SLmN1cih0cnVlKXx8MDtpZihRKXt2YXIgTj1wYXJzZUZsb2F0KFFbMl0pLFA9UVszXXx8InB4IjtpZihQIT0icHgiKXtKLnN0eWxlW09dPShOfHwxKStQO1Q9KChOfHwxKS9SLmN1cih0cnVlKSkqVDtKLnN0eWxlW09dPVQrUH1pZihRWzFdKXtOPSgoUVsxXT09Ii09Ij8tMToxKSpOKStUfVIuY3VzdG9tKFQsTixQKX1lbHNle1IuY3VzdG9tKFQsUywiIil9fX0pO3JldHVybiB0cnVlfSl9LHN0b3A6ZnVuY3Rpb24oRixFKXt2YXIgRz1vLnRpbWVycztpZihGKXt0aGlzLnF1ZXVlKFtdKX10aGlzLmVhY2goZnVuY3Rpb24oKXtmb3IodmFyIEg9Ry5sZW5ndGgtMTtIPj0wO0gtLSl7aWYoR1tIXS5lbGVtPT10aGlzKXtpZihFKXtHW0hdKHRydWUpfUcuc3BsaWNlKEgsMSl9fX0pO2lmKCFFKXt0aGlzLmRlcXVldWUoKX1yZXR1cm4gdGhpc319KTtvLmVhY2goe3NsaWRlRG93bjp0KCJzaG93IiwxKSxzbGlkZVVwOnQoImhpZGUiLDEpLHNsaWRlVG9nZ2xlOnQoInRvZ2dsZSIsMSksZmFkZUluOntvcGFjaXR5OiJzaG93In0sZmFkZU91dDp7b3BhY2l0eToiaGlkZSJ9fSxmdW5jdGlvbihFLEYpe28uZm5bRV09ZnVuY3Rpb24oRyxIKXtyZXR1cm4gdGhpcy5hbmltYXRlKEYsRyxIKX19KTtvLmV4dGVuZCh7c3BlZWQ6ZnVuY3Rpb24oRyxILEYpe3ZhciBFPXR5cGVvZiBHPT09Im9iamVjdCI/Rzp7Y29tcGxldGU6Rnx8IUYmJkh8fG8uaXNGdW5jdGlvbihHKSYmRyxkdXJhdGlvbjpHLGVhc2luZzpGJiZIfHxIJiYhby5pc0Z1bmN0aW9uKEgpJiZIfTtFLmR1cmF0aW9uPW8uZngub2ZmPzA6dHlwZW9mIEUuZHVyYXRpb249PT0ibnVtYmVyIj9FLmR1cmF0aW9uOm8uZnguc3BlZWRzW0UuZHVyYXRpb25dfHxvLmZ4LnNwZWVkcy5fZGVmYXVsdDtFLm9sZD1FLmNvbXBsZXRlO0UuY29tcGxldGU9ZnVuY3Rpb24oKXtpZihFLnF1ZXVlIT09ZmFsc2Upe28odGhpcykuZGVxdWV1ZSgpfWlmKG8uaXNGdW5jdGlvbihFLm9sZCkpe0Uub2xkLmNhbGwodGhpcyl9fTtyZXR1cm4gRX0sZWFzaW5nOntsaW5lYXI6ZnVuY3Rpb24oRyxILEUsRil7cmV0dXJuIEUrRipHfSxzd2luZzpmdW5jdGlvbihHLEgsRSxGKXtyZXR1cm4oKC1NYXRoLmNvcyhHKk1hdGguUEkpLzIpKzAuNSkqRitFfX0sdGltZXJzOltdLGZ4OmZ1bmN0aW9uKEYsRSxHKXt0aGlzLm9wdGlvbnM9RTt0aGlzLmVsZW09Rjt0aGlzLnByb3A9RztpZighRS5vcmlnKXtFLm9yaWc9e319fX0pO28uZngucHJvdG90eXBlPXt1cGRhdGU6ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMuc3RlcCl7dGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyl9KG8uZnguc3RlcFt0aGlzLnByb3BdfHxvLmZ4LnN0ZXAuX2RlZmF1bHQpKHRoaXMpO2lmKCh0aGlzLnByb3A9PSJoZWlnaHQifHx0aGlzLnByb3A9PSJ3aWR0aCIpJiZ0aGlzLmVsZW0uc3R5bGUpe3RoaXMuZWxlbS5zdHlsZS5kaXNwbGF5PSJibG9jayJ9fSxjdXI6ZnVuY3Rpb24oRil7aWYodGhpcy5lbGVtW3RoaXMucHJvcF0hPW51bGwmJighdGhpcy5lbGVtLnN0eWxlfHx0aGlzLmVsZW0uc3R5bGVbdGhpcy5wcm9wXT09bnVsbCkpe3JldHVybiB0aGlzLmVsZW1bdGhpcy5wcm9wXX12YXIgRT1wYXJzZUZsb2F0KG8uY3NzKHRoaXMuZWxlbSx0aGlzLnByb3AsRikpO3JldHVybiBFJiZFPi0xMDAwMD9FOnBhcnNlRmxvYXQoby5jdXJDU1ModGhpcy5lbGVtLHRoaXMucHJvcCkpfHwwfSxjdXN0b206ZnVuY3Rpb24oSSxILEcpe3RoaXMuc3RhcnRUaW1lPWUoKTt0aGlzLnN0YXJ0PUk7dGhpcy5lbmQ9SDt0aGlzLnVuaXQ9R3x8dGhpcy51bml0fHwicHgiO3RoaXMubm93PXRoaXMuc3RhcnQ7dGhpcy5wb3M9dGhpcy5zdGF0ZT0wO3ZhciBFPXRoaXM7ZnVuY3Rpb24gRihKKXtyZXR1cm4gRS5zdGVwKEopfUYuZWxlbT10aGlzLmVsZW07aWYoRigpJiZvLnRpbWVycy5wdXNoKEYpJiYhbil7bj1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3ZhciBLPW8udGltZXJzO2Zvcih2YXIgSj0wO0o8Sy5sZW5ndGg7SisrKXtpZighS1tKXSgpKXtLLnNwbGljZShKLS0sMSl9fWlmKCFLLmxlbmd0aCl7Y2xlYXJJbnRlcnZhbChuKTtuPWd9fSwxMyl9fSxzaG93OmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLm9yaWdbdGhpcy5wcm9wXT1vLmF0dHIodGhpcy5lbGVtLnN0eWxlLHRoaXMucHJvcCk7dGhpcy5vcHRpb25zLnNob3c9dHJ1ZTt0aGlzLmN1c3RvbSh0aGlzLnByb3A9PSJ3aWR0aCJ8fHRoaXMucHJvcD09ImhlaWdodCI/MTowLHRoaXMuY3VyKCkpO28odGhpcy5lbGVtKS5zaG93KCl9LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMub3JpZ1t0aGlzLnByb3BdPW8uYXR0cih0aGlzLmVsZW0uc3R5bGUsdGhpcy5wcm9wKTt0aGlzLm9wdGlvbnMuaGlkZT10cnVlO3RoaXMuY3VzdG9tKHRoaXMuY3VyKCksMCl9LHN0ZXA6ZnVuY3Rpb24oSCl7dmFyIEc9ZSgpO2lmKEh8fEc+PXRoaXMub3B0aW9ucy5kdXJhdGlvbit0aGlzLnN0YXJ0VGltZSl7dGhpcy5ub3c9dGhpcy5lbmQ7dGhpcy5wb3M9dGhpcy5zdGF0ZT0xO3RoaXMudXBkYXRlKCk7dGhpcy5vcHRpb25zLmN1ckFuaW1bdGhpcy5wcm9wXT10cnVlO3ZhciBFPXRydWU7Zm9yKHZhciBGIGluIHRoaXMub3B0aW9ucy5jdXJBbmltKXtpZih0aGlzLm9wdGlvbnMuY3VyQW5pbVtGXSE9PXRydWUpe0U9ZmFsc2V9fWlmKEUpe2lmKHRoaXMub3B0aW9ucy5kaXNwbGF5IT1udWxsKXt0aGlzLmVsZW0uc3R5bGUub3ZlcmZsb3c9dGhpcy5vcHRpb25zLm92ZXJmbG93O3RoaXMuZWxlbS5zdHlsZS5kaXNwbGF5PXRoaXMub3B0aW9ucy5kaXNwbGF5O2lmKG8uY3NzKHRoaXMuZWxlbSwiZGlzcGxheSIpPT0ibm9uZSIpe3RoaXMuZWxlbS5zdHlsZS5kaXNwbGF5PSJibG9jayJ9fWlmKHRoaXMub3B0aW9ucy5oaWRlKXtvKHRoaXMuZWxlbSkuaGlkZSgpfWlmKHRoaXMub3B0aW9ucy5oaWRlfHx0aGlzLm9wdGlvbnMuc2hvdyl7Zm9yKHZhciBJIGluIHRoaXMub3B0aW9ucy5jdXJBbmltKXtvLmF0dHIodGhpcy5lbGVtLnN0eWxlLEksdGhpcy5vcHRpb25zLm9yaWdbSV0pfX10aGlzLm9wdGlvbnMuY29tcGxldGUuY2FsbCh0aGlzLmVsZW0pfXJldHVybiBmYWxzZX1lbHNle3ZhciBKPUctdGhpcy5zdGFydFRpbWU7dGhpcy5zdGF0ZT1KL3RoaXMub3B0aW9ucy5kdXJhdGlvbjt0aGlzLnBvcz1vLmVhc2luZ1t0aGlzLm9wdGlvbnMuZWFzaW5nfHwoby5lYXNpbmcuc3dpbmc/InN3aW5nIjoibGluZWFyIildKHRoaXMuc3RhdGUsSiwwLDEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKTt0aGlzLm5vdz10aGlzLnN0YXJ0KygodGhpcy5lbmQtdGhpcy5zdGFydCkqdGhpcy5wb3MpO3RoaXMudXBkYXRlKCl9cmV0dXJuIHRydWV9fTtvLmV4dGVuZChvLmZ4LHtzcGVlZHM6e3Nsb3c6NjAwLGZhc3Q6MjAwLF9kZWZhdWx0OjQwMH0sc3RlcDp7b3BhY2l0eTpmdW5jdGlvbihFKXtvLmF0dHIoRS5lbGVtLnN0eWxlLCJvcGFjaXR5IixFLm5vdyl9LF9kZWZhdWx0OmZ1bmN0aW9uKEUpe2lmKEUuZWxlbS5zdHlsZSYmRS5lbGVtLnN0eWxlW0UucHJvcF0hPW51bGwpe0UuZWxlbS5zdHlsZVtFLnByb3BdPUUubm93K0UudW5pdH1lbHNle0UuZWxlbVtFLnByb3BdPUUubm93fX19fSk7aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCl7by5mbi5vZmZzZXQ9ZnVuY3Rpb24oKXtpZighdGhpc1swXSl7cmV0dXJue3RvcDowLGxlZnQ6MH19aWYodGhpc1swXT09PXRoaXNbMF0ub3duZXJEb2N1bWVudC5ib2R5KXtyZXR1cm4gby5vZmZzZXQuYm9keU9mZnNldCh0aGlzWzBdKX12YXIgRz10aGlzWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEo9dGhpc1swXS5vd25lckRvY3VtZW50LEY9Si5ib2R5LEU9Si5kb2N1bWVudEVsZW1lbnQsTD1FLmNsaWVudFRvcHx8Ri5jbGllbnRUb3B8fDAsSz1FLmNsaWVudExlZnR8fEYuY2xpZW50TGVmdHx8MCxJPUcudG9wKyhzZWxmLnBhZ2VZT2Zmc2V0fHxvLmJveE1vZGVsJiZFLnNjcm9sbFRvcHx8Ri5zY3JvbGxUb3ApLUwsSD1HLmxlZnQrKHNlbGYucGFnZVhPZmZzZXR8fG8uYm94TW9kZWwmJkUuc2Nyb2xsTGVmdHx8Ri5zY3JvbGxMZWZ0KS1LO3JldHVybnt0b3A6SSxsZWZ0Okh9fX1lbHNle28uZm4ub2Zmc2V0PWZ1bmN0aW9uKCl7aWYoIXRoaXNbMF0pe3JldHVybnt0b3A6MCxsZWZ0OjB9fWlmKHRoaXNbMF09PT10aGlzWzBdLm93bmVyRG9jdW1lbnQuYm9keSl7cmV0dXJuIG8ub2Zmc2V0LmJvZHlPZmZzZXQodGhpc1swXSl9by5vZmZzZXQuaW5pdGlhbGl6ZWR8fG8ub2Zmc2V0LmluaXRpYWxpemUoKTt2YXIgSj10aGlzWzBdLEc9Si5vZmZzZXRQYXJlbnQsRj1KLE89Si5vd25lckRvY3VtZW50LE0sSD1PLmRvY3VtZW50RWxlbWVudCxLPU8uYm9keSxMPU8uZGVmYXVsdFZpZXcsRT1MLmdldENvbXB1dGVkU3R5bGUoSixudWxsKSxOPUoub2Zmc2V0VG9wLEk9Si5vZmZzZXRMZWZ0O3doaWxlKChKPUoucGFyZW50Tm9kZSkmJkohPT1LJiZKIT09SCl7TT1MLmdldENvbXB1dGVkU3R5bGUoSixudWxsKTtOLT1KLnNjcm9sbFRvcCxJLT1KLnNjcm9sbExlZnQ7aWYoSj09PUcpe04rPUoub2Zmc2V0VG9wLEkrPUoub2Zmc2V0TGVmdDtpZihvLm9mZnNldC5kb2VzTm90QWRkQm9yZGVyJiYhKG8ub2Zmc2V0LmRvZXNBZGRCb3JkZXJGb3JUYWJsZUFuZENlbGxzJiYvXnQoYWJsZXxkfGgpJC9pLnRlc3QoSi50YWdOYW1lKSkpe04rPXBhcnNlSW50KE0uYm9yZGVyVG9wV2lkdGgsMTApfHwwLEkrPXBhcnNlSW50KE0uYm9yZGVyTGVmdFdpZHRoLDEwKXx8MH1GPUcsRz1KLm9mZnNldFBhcmVudH1pZihvLm9mZnNldC5zdWJ0cmFjdHNCb3JkZXJGb3JPdmVyZmxvd05vdFZpc2libGUmJk0ub3ZlcmZsb3chPT0idmlzaWJsZSIpe04rPXBhcnNlSW50KE0uYm9yZGVyVG9wV2lkdGgsMTApfHwwLEkrPXBhcnNlSW50KE0uYm9yZGVyTGVmdFdpZHRoLDEwKXx8MH1FPU19aWYoRS5wb3NpdGlvbj09PSJyZWxhdGl2ZSJ8fEUucG9zaXRpb249PT0ic3RhdGljIil7Tis9Sy5vZmZzZXRUb3AsSSs9Sy5vZmZzZXRMZWZ0fWlmKEUucG9zaXRpb249PT0iZml4ZWQiKXtOKz1NYXRoLm1heChILnNjcm9sbFRvcCxLLnNjcm9sbFRvcCksSSs9TWF0aC5tYXgoSC5zY3JvbGxMZWZ0LEsuc2Nyb2xsTGVmdCl9cmV0dXJue3RvcDpOLGxlZnQ6SX19fW8ub2Zmc2V0PXtpbml0aWFsaXplOmZ1bmN0aW9uKCl7aWYodGhpcy5pbml0aWFsaXplZCl7cmV0dXJufXZhciBMPWRvY3VtZW50LmJvZHksRj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxILEcsTixJLE0sRSxKPUwuc3R5bGUubWFyZ2luVG9wLEs9JzxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDttYXJnaW46MDtib3JkZXI6NXB4IHNvbGlkICMwMDA7cGFkZGluZzowO3dpZHRoOjFweDtoZWlnaHQ6MXB4OyI+PGRpdj48L2Rpdj48L2Rpdj48dGFibGUgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDttYXJnaW46MDtib3JkZXI6NXB4IHNvbGlkICMwMDA7cGFkZGluZzowO3dpZHRoOjFweDtoZWlnaHQ6MXB4OyIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIj48dHI+PHRkPjwvdGQ+PC90cj48L3RhYmxlPic7TT17cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxsZWZ0OjAsbWFyZ2luOjAsYm9yZGVyOjAsd2lkdGg6IjFweCIsaGVpZ2h0OiIxcHgiLHZpc2liaWxpdHk6ImhpZGRlbiJ9O2ZvcihFIGluIE0pe0Yuc3R5bGVbRV09TVtFXX1GLmlubmVySFRNTD1LO0wuaW5zZXJ0QmVmb3JlKEYsTC5maXJzdENoaWxkKTtIPUYuZmlyc3RDaGlsZCxHPUguZmlyc3RDaGlsZCxJPUgubmV4dFNpYmxpbmcuZmlyc3RDaGlsZC5maXJzdENoaWxkO3RoaXMuZG9lc05vdEFkZEJvcmRlcj0oRy5vZmZzZXRUb3AhPT01KTt0aGlzLmRvZXNBZGRCb3JkZXJGb3JUYWJsZUFuZENlbGxzPShJLm9mZnNldFRvcD09PTUpO0guc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsSC5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiO3RoaXMuc3VidHJhY3RzQm9yZGVyRm9yT3ZlcmZsb3dOb3RWaXNpYmxlPShHLm9mZnNldFRvcD09PS01KTtMLnN0eWxlLm1hcmdpblRvcD0iMXB4Ijt0aGlzLmRvZXNOb3RJbmNsdWRlTWFyZ2luSW5Cb2R5T2Zmc2V0PShMLm9mZnNldFRvcD09PTApO0wuc3R5bGUubWFyZ2luVG9wPUo7TC5yZW1vdmVDaGlsZChGKTt0aGlzLmluaXRpYWxpemVkPXRydWV9LGJvZHlPZmZzZXQ6ZnVuY3Rpb24oRSl7by5vZmZzZXQuaW5pdGlhbGl6ZWR8fG8ub2Zmc2V0LmluaXRpYWxpemUoKTt2YXIgRz1FLm9mZnNldFRvcCxGPUUub2Zmc2V0TGVmdDtpZihvLm9mZnNldC5kb2VzTm90SW5jbHVkZU1hcmdpbkluQm9keU9mZnNldCl7Rys9cGFyc2VJbnQoby5jdXJDU1MoRSwibWFyZ2luVG9wIix0cnVlKSwxMCl8fDAsRis9cGFyc2VJbnQoby5jdXJDU1MoRSwibWFyZ2luTGVmdCIsdHJ1ZSksMTApfHwwfXJldHVybnt0b3A6RyxsZWZ0OkZ9fX07by5mbi5leHRlbmQoe3Bvc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIEk9MCxIPTAsRjtpZih0aGlzWzBdKXt2YXIgRz10aGlzLm9mZnNldFBhcmVudCgpLEo9dGhpcy5vZmZzZXQoKSxFPS9eYm9keXxodG1sJC9pLnRlc3QoR1swXS50YWdOYW1lKT97dG9wOjAsbGVmdDowfTpHLm9mZnNldCgpO0oudG9wLT1qKHRoaXMsIm1hcmdpblRvcCIpO0oubGVmdC09aih0aGlzLCJtYXJnaW5MZWZ0Iik7RS50b3ArPWooRywiYm9yZGVyVG9wV2lkdGgiKTtFLmxlZnQrPWooRywiYm9yZGVyTGVmdFdpZHRoIik7Rj17dG9wOkoudG9wLUUudG9wLGxlZnQ6Si5sZWZ0LUUubGVmdH19cmV0dXJuIEZ9LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3ZhciBFPXRoaXNbMF0ub2Zmc2V0UGFyZW50fHxkb2N1bWVudC5ib2R5O3doaWxlKEUmJighL15ib2R5fGh0bWwkL2kudGVzdChFLnRhZ05hbWUpJiZvLmNzcyhFLCJwb3NpdGlvbiIpPT0ic3RhdGljIikpe0U9RS5vZmZzZXRQYXJlbnR9cmV0dXJuIG8oRSl9fSk7by5lYWNoKFsiTGVmdCIsIlRvcCJdLGZ1bmN0aW9uKEYsRSl7dmFyIEc9InNjcm9sbCIrRTtvLmZuW0ddPWZ1bmN0aW9uKEgpe2lmKCF0aGlzWzBdKXtyZXR1cm4gbnVsbH1yZXR1cm4gSCE9PWc/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dGhpcz09bHx8dGhpcz09ZG9jdW1lbnQ/bC5zY3JvbGxUbyghRj9IOm8obCkuc2Nyb2xsTGVmdCgpLEY/SDpvKGwpLnNjcm9sbFRvcCgpKTp0aGlzW0ddPUh9KTp0aGlzWzBdPT1sfHx0aGlzWzBdPT1kb2N1bWVudD9zZWxmW0Y/InBhZ2VZT2Zmc2V0IjoicGFnZVhPZmZzZXQiXXx8by5ib3hNb2RlbCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50W0ddfHxkb2N1bWVudC5ib2R5W0ddOnRoaXNbMF1bR119fSk7by5lYWNoKFsiSGVpZ2h0IiwiV2lkdGgiXSxmdW5jdGlvbihJLEcpe3ZhciBFPUk/IkxlZnQiOiJUb3AiLEg9ST8iUmlnaHQiOiJCb3R0b20iLEY9Ry50b0xvd2VyQ2FzZSgpO28uZm5bImlubmVyIitHXT1mdW5jdGlvbigpe3JldHVybiB0aGlzWzBdP28uY3NzKHRoaXNbMF0sRixmYWxzZSwicGFkZGluZyIpOm51bGx9O28uZm5bIm91dGVyIitHXT1mdW5jdGlvbihLKXtyZXR1cm4gdGhpc1swXT9vLmNzcyh0aGlzWzBdLEYsZmFsc2UsSz8ibWFyZ2luIjoiYm9yZGVyIik6bnVsbH07dmFyIEo9Ry50b0xvd2VyQ2FzZSgpO28uZm5bSl09ZnVuY3Rpb24oSyl7cmV0dXJuIHRoaXNbMF09PWw/ZG9jdW1lbnQuY29tcGF0TW9kZT09IkNTUzFDb21wYXQiJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrR118fGRvY3VtZW50LmJvZHlbImNsaWVudCIrR106dGhpc1swXT09ZG9jdW1lbnQ/TWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK0ddLGRvY3VtZW50LmJvZHlbInNjcm9sbCIrR10sZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJzY3JvbGwiK0ddLGRvY3VtZW50LmJvZHlbIm9mZnNldCIrR10sZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJvZmZzZXQiK0ddKTpLPT09Zz8odGhpcy5sZW5ndGg/by5jc3ModGhpc1swXSxKKTpudWxsKTp0aGlzLmNzcyhKLHR5cGVvZiBLPT09InN0cmluZyI/SzpLKyJweCIpfX0pfSkoKTs=]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.cluetip.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IGNsdWVUaXAgcGx1Z2luCiAqIFZlcnNpb24gMC45LjggICgwNS8yMi8yMDA4KQogKiBAcmVxdWlyZXMgalF1ZXJ5IHYxLjEuNCsKICogQHJlcXVpcmVzIERpbWVuc2lvbnMgcGx1Z2luIChmb3IgalF1ZXJ5IHZlcnNpb25zIDwgMS4yLjUpCiAqCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzOgogKiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAogKiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLmh0bWwKICoKICovCjsoZnVuY3Rpb24oJCkgeyAKLyoKICogQG5hbWUgY2x1ZVRpcAogKiBAdHlwZSBqUXVlcnkKICogQGNhdCBQbHVnaW5zL3Rvb2x0aXAKICogQHJldHVybiBqUXVlcnkKICogQGF1dGhvciBLYXJsIFN3ZWRiZXJnCiAqCiAqIEBjcmVkaXQgSW5zcGlyZWQgYnkgQ29keSBMaW5kbGV5J3MgalRpcCAoaHR0cDovL3d3dy5jb2R5bGluZGxleS5jb20pCiAqIEBjcmVkaXQgVGhhbmtzIHRvIHRoZSBmb2xsb3dpbmcgcGVvcGxlIGZvciB0aGVpciBtYW55IGFuZCB2YXJpZWQgY29udHJpYnV0aW9uczoKICAgICAgU2hlbGFuZSBFbm9zLCBHbGVuIExpcGthLCBIZWN0b3IgU2FudG9zLCBUb3JiZW4gU2NocmVpdGVyLCBEYW4gRy4gU3dpdHplciwgSsO2cm4gWmFlZmZlcmVyIAogKiBAY3JlZGl0IFRoYW5rcyB0byBKb25hdGhhbiBDaGFmZmVyLCBhcyBhbHdheXMsIGZvciBoZWxwIHdpdGggdGhlIGhhcmQgcGFydHMuIDotKQogKi8KCiAvKioKICogCiAqIERpc3BsYXlzIGEgaGlnaGx5IGN1c3RvbWl6YWJsZSB0b29sdGlwIHdoZW4gdGhlIHVzZXIgaG92ZXJzIChkZWZhdWx0KSBvciBjbGlja3MgKG9wdGlvbmFsKSB0aGUgbWF0Y2hlZCBlbGVtZW50LiAKICogQnkgZGVmYXVsdCwgdGhlIGNsdWVUaXAgcGx1Z2luIGxvYWRzIGEgcGFnZSBpbmRpY2F0ZWQgYnkgdGhlICJyZWwiIGF0dHJpYnV0ZSB2aWEgYWpheCBhbmQgZGlzcGxheXMgaXRzIGNvbnRlbnRzLgogKiBJZiBhICJ0aXRsZSIgYXR0cmlidXRlIGlzIHNwZWNpZmllZCwgaXRzIHZhbHVlIGlzIHVzZWQgYXMgdGhlIGNsdWVUaXAncyBoZWFkaW5nLgogKiBUaGUgYXR0cmlidXRlIHRvIGJlIHVzZWQgZm9yIGJvdGggdGhlIGJvZHkgYW5kIHRoZSBoZWFkaW5nIG9mIHRoZSBjbHVlVGlwIGlzIHVzZXItY29uZmlndXJhYmxlLiAKICogT3B0aW9uYWxseSwgdGhlIGNsdWVUaXAncyBib2R5IGNhbiBkaXNwbGF5IGNvbnRlbnQgZnJvbSBhbiBlbGVtZW50IG9uIHRoZSBzYW1lIHBhZ2UuCiAqICogSnVzdCBpbmRpY2F0ZSB0aGUgZWxlbWVudCdzIGlkIChlLmcuICIjc29tZS1pZCIpIGluIHRoZSByZWwgYXR0cmlidXRlLgogKiBPcHRpb25hbGx5LCB0aGUgY2x1ZVRpcCdzIGJvZHkgY2FuIGRpc3BsYXkgY29udGVudCBmcm9tIHRoZSB0aXRsZSBhdHRyaWJ1dGUsIHdoZW4gYSBkZWxpbWl0ZXIgaXMgaW5kaWNhdGVkLiAKICogKiBUaGUgc3RyaW5nIGJlZm9yZSB0aGUgZmlyc3QgaW5zdGFuY2Ugb2YgdGhlIGRlbGltaXRlciBpcyBzZXQgYXMgdGhlIGNsdWVUaXAncyBoZWFkaW5nLgogKiAqIEFsbCBzdWJzZXF1ZW50IHN0cmluZ3MgYXJlIHdyYXBwZWQgaW4gc2VwYXJhdGUgRElWcyBhbmQgcGxhY2VkIGluIHRoZSBjbHVlVGlwJ3MgYm9keS4KICogVGhlIGNsdWVUaXAgcGx1Z2luIGFsbG93cyBmb3IgbWFueSwgbWFueSBtb3JlIG9wdGlvbnMuIFBsZWFzZWUgc2VlIHRoZSBleGFtcGxlcyBhbmQgdGhlIG9wdGlvbiBkZXNjcmlwdGlvbnMgYmVsb3cuLi4KICogCiAqIAogKiBAZXhhbXBsZSAkKCcjdGlwKS5jbHVldGlwKCk7CiAqIEBkZXNjIFRoaXMgaXMgdGhlIG1vc3QgYmFzaWMgY2x1ZVRpcC4gSXQgZGlzcGxheXMgYSAyNzVweC13aWRlIGNsdWVUaXAgb24gbW91c2VvdmVyIG9mIHRoZSBlbGVtZW50IHdpdGggYW4gSUQgb2YgInRpcC4iIE9uIG1vdXNlb3V0IG9mIHRoZSBlbGVtZW50LCB0aGUgY2x1ZVRpcCBpcyBoaWRkZW4uCiAqCiAqCiAqIEBleGFtcGxlICQoJ2EuY2x1ZScpLmNsdWV0aXAoewogKiAgaG92ZXJDbGFzczogJ2hpZ2hsaWdodCcsCiAqICBzdGlja3k6IHRydWUsCiAqICBjbG9zZVBvc2l0aW9uOiAnYm90dG9tJywKICogIGNsb3NlVGV4dDogJzxpbWcgc3JjPSJjcm9zcy5wbmciIGFsdD0iY2xvc2UiIC8+JywKICogIHRydW5jYXRlOiA2MCwKICogIGFqYXhTZXR0aW5nczogewogKiAgICB0eXBlOiAnUE9TVCcKICogIH0KICogfSk7CiAqIEBkZXNjIERpc3BsYXlzIGEgY2x1ZVRpcCBvbiBtb3VzZW92ZXIgb2YgYWxsIDxhPiBlbGVtZW50cyB3aXRoIGNsYXNzPSJjbHVlIi4gVGhlIGhvdmVyZWQgZWxlbWVudCBnZXRzIGEgY2xhc3Mgb2YgImhpZ2hsaWdodCIgYWRkZWQgdG8gaXQgKHNvIHRoYXQgaXQgY2FuIGJlIHN0eWxlZCBhcHByb3ByaWF0ZWx5LiBUaGlzIGlzIGVzcC4gdXNlZnVsIGZvciBub24tYW5jaG9yIGVsZW1lbnRzLikuIFRoZSBjbHVlVGlwIGlzICJzdGlja3ksIiB3aGljaCBtZWFucyB0aGF0IGl0IHdpbGwgbm90IGJlIGhpZGRlbiB1bnRpbCB0aGUgdXNlciBlaXRoZXIgY2xpY2tzIG9uIGl0cyAiY2xvc2UiIHRleHQvZ3JhcGhpYyBvciBkaXNwbGF5cyBhbm90aGVyIGNsdWVUaXAuIFRoZSAiY2xvc2UiIHRleHQvZ3JhcGhpYyBpcyBzZXQgdG8gZGlwbGF5IGF0IHRoZSBib3R0b20gb2YgdGhlIGNsdWVUaXAgKGRlZmF1bHQgaXMgdG9wKSBhbmQgZGlzcGxheSBhbiBpbWFnZSByYXRoZXIgdGhhbiB0aGUgZGVmYXVsdCAiQ2xvc2UiIHRleHQuIE1vcmVvdmVyLCB0aGUgYm9keSBvZiB0aGUgY2x1ZVRpcCBpcyB0cnVuY2F0ZWQgdG8gdGhlIGZpcnN0IDYwIGNoYXJhY3RlcnMsIHdoaWNoIGFyZSBmb2xsb3dlZCBieSBhbiBlbGxpcHNpcyAoLi4uKS4gRmluYWxseSwgdGhlIGNsdWVUaXAgcmV0cmlldmVzIHRoZSBjb250ZW50IHVzaW5nIFBPU1QgcmF0aGVyIHRoYW4gdGhlICQuYWpheCBtZXRob2QncyBkZWZhdWx0ICJHRVQuIgogKiAKICogTW9yZSBleGFtcGxlcyBjYW4gYmUgZm91bmQgYXQgaHR0cDovL3BsdWdpbnMubGVhcm5pbmdqcXVlcnkuY29tL2NsdWV0aXAvZGVtby8KICogCiAqIEZ1bGwgbGlzdCBvZiBvcHRpb25zL3NldHRpbmdzIGNhbiBiZSBmb3VuZCBhdCB0aGUgYm90dG9tIG9mIHRoaXMgZmlsZSBhbmQgYXQgaHR0cDovL3BsdWdpbnMubGVhcm5pbmdqcXVlcnkuY29tL2NsdWV0aXAvCiAqLwoKICB2YXIgJGNsdWV0aXAsICRjbHVldGlwSW5uZXIsICRjbHVldGlwT3V0ZXIsICRjbHVldGlwVGl0bGUsICRjbHVldGlwQXJyb3dzLCAkZHJvcFNoYWRvdywgaW1nQ291bnQ7CiAgJC5mbi5jbHVldGlwID0gZnVuY3Rpb24oanMsIG9wdGlvbnMpIHsKICAgIGlmICh0eXBlb2YganMgPT0gJ29iamVjdCcpIHsKICAgICAgb3B0aW9ucyA9IGpzOwogICAgICBqcyA9IG51bGw7CiAgICB9CiAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGluZGV4KSB7CiAgICAgIHZhciAkdGhpcyA9ICQodGhpcyk7ICAgICAgCiAgICAgIAogICAgICAvLyBzdXBwb3J0IG1ldGFkYXRhIHBsdWdpbiAodjEuMCBhbmQgMi4wKQogICAgICB2YXIgb3B0cyA9ICQuZXh0ZW5kKGZhbHNlLCB7fSwgJC5mbi5jbHVldGlwLmRlZmF1bHRzLCBvcHRpb25zIHx8IHt9LCAkLm1ldGFkYXRhID8gJHRoaXMubWV0YWRhdGEoKSA6ICQubWV0YSA/ICR0aGlzLmRhdGEoKSA6IHt9KTsKCiAgICAgIC8vIHN0YXJ0IG91dCB3aXRoIG5vIGNvbnRlbnRzIChmb3IgYWpheCBhY3RpdmF0aW9uKQogICAgICB2YXIgY2x1ZXRpcENvbnRlbnRzID0gZmFsc2U7CiAgICAgIHZhciBjbHVlekluZGV4ID0gcGFyc2VJbnQob3B0cy5jbHVlekluZGV4LCAxMCktMTsKICAgICAgdmFyIGlzQWN0aXZlID0gZmFsc2UsIGNsb3NlT25EZWxheSA9IDA7CgogICAgICAvLyBjcmVhdGUgdGhlIGNsdWV0aXAgZGl2cwogICAgICBpZiAoISQoJyNjbHVldGlwJykubGVuZ3RoKSB7CiAgICAgICAgJGNsdWV0aXBJbm5lciA9ICQoJzxkaXYgaWQ9ImNsdWV0aXAtaW5uZXIiPjwvZGl2PicpOwogICAgICAgICRjbHVldGlwVGl0bGUgPSAkKCc8aDMgaWQ9ImNsdWV0aXAtdGl0bGUiPjwvaDM+Jyk7ICAgICAgICAKICAgICAgICAkY2x1ZXRpcE91dGVyID0gJCgnPGRpdiBpZD0iY2x1ZXRpcC1vdXRlciI+PC9kaXY+JykuYXBwZW5kKCRjbHVldGlwSW5uZXIpLnByZXBlbmQoJGNsdWV0aXBUaXRsZSk7CiAgICAgICAgJGNsdWV0aXAgPSAkKCc8ZGl2IGlkPSJjbHVldGlwIj48L2Rpdj4nKS5jc3Moe3pJbmRleDogb3B0cy5jbHVlekluZGV4fSkKICAgICAgICAuYXBwZW5kKCRjbHVldGlwT3V0ZXIpLmFwcGVuZCgnPGRpdiBpZD0iY2x1ZXRpcC1leHRyYSI+PC9kaXY+JylbaW5zZXJ0aW9uVHlwZV0oaW5zZXJ0aW9uRWxlbWVudCkuaGlkZSgpOwogICAgICAgICQoJzxkaXYgaWQ9ImNsdWV0aXAtd2FpdGltYWdlIj48L2Rpdj4nKS5jc3Moe3Bvc2l0aW9uOiAnYWJzb2x1dGUnLCB6SW5kZXg6IGNsdWV6SW5kZXgtMX0pCiAgICAgICAgLmluc2VydEJlZm9yZSgnI2NsdWV0aXAnKS5oaWRlKCk7CiAgICAgICAgJGNsdWV0aXAuY3NzKHtwb3NpdGlvbjogJ2Fic29sdXRlJywgekluZGV4OiBjbHVlekluZGV4fSk7CiAgICAgICAgJGNsdWV0aXBPdXRlci5jc3Moe3Bvc2l0aW9uOiAncmVsYXRpdmUnLCB6SW5kZXg6IGNsdWV6SW5kZXgrMX0pOwogICAgICAgICRjbHVldGlwQXJyb3dzID0gJCgnPGRpdiBpZD0iY2x1ZXRpcC1hcnJvd3MiIGNsYXNzPSJjbHVldGlwLWFycm93cyI+PC9kaXY+JykuY3NzKHt6SW5kZXg6IGNsdWV6SW5kZXgrMX0pLmFwcGVuZFRvKCcjY2x1ZXRpcCcpOwogICAgICB9CiAgICAgIHZhciBkcm9wU2hhZG93U3RlcHMgPSAob3B0cy5kcm9wU2hhZG93KSA/ICtvcHRzLmRyb3BTaGFkb3dTdGVwcyA6IDA7CiAgICAgIGlmICghJGRyb3BTaGFkb3cpIHsKICAgICAgICAkZHJvcFNoYWRvdyA9ICQoW10pOwogICAgICAgIGZvciAodmFyIGk9MDsgaSA8IGRyb3BTaGFkb3dTdGVwczsgaSsrKSB7CiAgICAgICAgICAkZHJvcFNoYWRvdyA9ICRkcm9wU2hhZG93LmFkZCgkKCc8ZGl2PjwvZGl2PicpLmNzcyh7ekluZGV4OiBjbHVlekluZGV4LWktMSwgb3BhY2l0eTouMSwgdG9wOiAxK2ksIGxlZnQ6IDEraX0pKTsKICAgICAgICB9OwogICAgICAgICRkcm9wU2hhZG93LmNzcyh7cG9zaXRpb246ICdhYnNvbHV0ZScsIGJhY2tncm91bmRDb2xvcjogJyMwMDAnfSkKICAgICAgICAucHJlcGVuZFRvKCRjbHVldGlwKTsKICAgICAgfQogICAgICB2YXIgdGlwQXR0cmlidXRlID0gJHRoaXMuYXR0cihvcHRzLmF0dHJpYnV0ZSksIGN0Q2xhc3MgPSBvcHRzLmNsdWV0aXBDbGFzczsKICAgICAgaWYgKCF0aXBBdHRyaWJ1dGUgJiYgIW9wdHMuc3BsaXRUaXRsZSAmJiAhanMpIHJldHVybiB0cnVlOwogICAgICAvLyBpZiBoaWRlTG9jYWwgaXMgc2V0IHRvIHRydWUsIG9uIERPTSByZWFkeSBoaWRlIHRoZSBsb2NhbCBjb250ZW50IHRoYXQgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGNsdWVUaXAgICAgICAKICAgICAgaWYgKG9wdHMubG9jYWwgJiYgb3B0cy5oaWRlTG9jYWwpIHsgJCh0aXBBdHRyaWJ1dGUgKyAnOmZpcnN0JykuaGlkZSgpOyB9CiAgICAgIHZhciB0T2Zmc2V0ID0gcGFyc2VJbnQob3B0cy50b3BPZmZzZXQsIDEwKSwgbE9mZnNldCA9IHBhcnNlSW50KG9wdHMubGVmdE9mZnNldCwgMTApOwogICAgICAvLyB2ZXJ0aWNhbCBtZWFzdXJlbWVudCB2YXJpYWJsZXMKICAgICAgdmFyIHRpcEhlaWdodCwgd0hlaWdodDsKICAgICAgdmFyIGRlZkhlaWdodCA9IGlzTmFOKHBhcnNlSW50KG9wdHMuaGVpZ2h0LCAxMCkpID8gJ2F1dG8nIDogKC9cRC9nKS50ZXN0KG9wdHMuaGVpZ2h0KSA/IG9wdHMuaGVpZ2h0IDogb3B0cy5oZWlnaHQgKyAncHgnOwogICAgICB2YXIgc1RvcCwgbGlua1RvcCwgcG9zWSwgdGlwWSwgbW91c2VZLCBiYXNlbGluZTsKICAgICAgLy8gaG9yaXpvbnRhbCBtZWFzdXJlbWVudCB2YXJpYWJsZXMKICAgICAgdmFyIHRpcElubmVyV2lkdGggPSBpc05hTihwYXJzZUludChvcHRzLndpZHRoLCAxMCkpID8gMjc1IDogcGFyc2VJbnQob3B0cy53aWR0aCwgMTApOwogICAgICB2YXIgdGlwV2lkdGggPSB0aXBJbm5lcldpZHRoICsgKHBhcnNlSW50KCRjbHVldGlwLmNzcygncGFkZGluZ0xlZnQnKSl8fDApICsgKHBhcnNlSW50KCRjbHVldGlwLmNzcygncGFkZGluZ1JpZ2h0JykpfHwwKSArIGRyb3BTaGFkb3dTdGVwczsKICAgICAgdmFyIGxpbmtXaWR0aCA9IHRoaXMub2Zmc2V0V2lkdGg7CiAgICAgIHZhciBsaW5rTGVmdCwgcG9zWCwgdGlwWCwgbW91c2VYLCB3aW5XaWR0aDsKICAgICAgICAgICAgCiAgICAgIC8vIHBhcnNlIHRoZSB0aXRsZQogICAgICB2YXIgdGlwUGFydHM7CiAgICAgIHZhciB0aXBUaXRsZSA9IChvcHRzLmF0dHJpYnV0ZSAhPSAndGl0bGUnKSA/ICR0aGlzLmF0dHIob3B0cy50aXRsZUF0dHJpYnV0ZSkgOiAnJzsKICAgICAgaWYgKG9wdHMuc3BsaXRUaXRsZSkgewogICAgICAgIGlmKHRpcFRpdGxlID09IHVuZGVmaW5lZCkge3RpcFRpdGxlID0gJyc7fQogICAgICAgIHRpcFBhcnRzID0gdGlwVGl0bGUuc3BsaXQob3B0cy5zcGxpdFRpdGxlKTsKICAgICAgICB0aXBUaXRsZSA9IHRpcFBhcnRzLnNoaWZ0KCk7CiAgICAgIH0KICAgICAgdmFyIGxvY2FsQ29udGVudDsKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogICAgICAKKiBBQ1RJVkFUSU9OCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAgICAKLy9hY3RpdmF0ZSBjbHVlVGlwCiAgICB2YXIgYWN0aXZhdGUgPSBmdW5jdGlvbihldmVudCkgewogICAgICBpZiAoIW9wdHMub25BY3RpdmF0ZSgkdGhpcykpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgaXNBY3RpdmUgPSB0cnVlOwogICAgICAkY2x1ZXRpcC5yZW1vdmVDbGFzcygpLmNzcyh7d2lkdGg6IHRpcElubmVyV2lkdGh9KTsKICAgICAgaWYgKHRpcEF0dHJpYnV0ZSA9PSAkdGhpcy5hdHRyKCdocmVmJykpIHsKICAgICAgICAkdGhpcy5jc3MoJ2N1cnNvcicsIG9wdHMuY3Vyc29yKTsKICAgICAgfQogICAgICAkdGhpcy5hdHRyKCd0aXRsZScsJycpOwogICAgICBpZiAob3B0cy5ob3ZlckNsYXNzKSB7CiAgICAgICAgJHRoaXMuYWRkQ2xhc3Mob3B0cy5ob3ZlckNsYXNzKTsKICAgICAgfQogICAgICBsaW5rVG9wID0gcG9zWSA9ICR0aGlzLm9mZnNldCgpLnRvcDsKICAgICAgbGlua0xlZnQgPSAkdGhpcy5vZmZzZXQoKS5sZWZ0OwogICAgICBtb3VzZVggPSBldmVudC5wYWdlWDsKICAgICAgbW91c2VZID0gZXZlbnQucGFnZVk7CiAgICAgIGlmICgkdGhpc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgIT0gJ2FyZWEnKSB7CiAgICAgICAgc1RvcCA9ICQoZG9jdW1lbnQpLnNjcm9sbFRvcCgpOwogICAgICAgIHdpbldpZHRoID0gJCh3aW5kb3cpLndpZHRoKCk7CiAgICAgIH0KLy8gcG9zaXRpb24gY2x1ZVRpcCBob3Jpem9udGFsbHkKICAgICAgaWYgKG9wdHMucG9zaXRpb25CeSA9PSAnZml4ZWQnKSB7CiAgICAgICAgcG9zWCA9IGxpbmtXaWR0aCArIGxpbmtMZWZ0ICsgbE9mZnNldDsKICAgICAgICAkY2x1ZXRpcC5jc3Moe2xlZnQ6IHBvc1h9KTsKICAgICAgfSBlbHNlIHsKICAgICAgICBwb3NYID0gKGxpbmtXaWR0aCA+IGxpbmtMZWZ0ICYmIGxpbmtMZWZ0ID4gdGlwV2lkdGgpCiAgICAgICAgICB8fCBsaW5rTGVmdCArIGxpbmtXaWR0aCArIHRpcFdpZHRoICsgbE9mZnNldCA+IHdpbldpZHRoIAogICAgICAgICAgPyBsaW5rTGVmdCAtIHRpcFdpZHRoIC0gbE9mZnNldCAKICAgICAgICAgIDogbGlua1dpZHRoICsgbGlua0xlZnQgKyBsT2Zmc2V0OwogICAgICAgIGlmICgkdGhpc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT0gJ2FyZWEnIHx8IG9wdHMucG9zaXRpb25CeSA9PSAnbW91c2UnIHx8IGxpbmtXaWR0aCArIHRpcFdpZHRoID4gd2luV2lkdGgpIHsgLy8gcG9zaXRpb24gYnkgbW91c2UKICAgICAgICAgIGlmIChtb3VzZVggKyAyMCArIHRpcFdpZHRoID4gd2luV2lkdGgpIHsgIAogICAgICAgICAgICAkY2x1ZXRpcC5hZGRDbGFzcygnIGNsdWV0aXAtJyArIGN0Q2xhc3MpOwogICAgICAgICAgICBwb3NYID0gKG1vdXNlWCAtIHRpcFdpZHRoIC0gbE9mZnNldCkgPj0gMCA/IG1vdXNlWCAtIHRpcFdpZHRoIC0gbE9mZnNldCAtIHBhcnNlSW50KCRjbHVldGlwLmNzcygnbWFyZ2luTGVmdCcpLDEwKSArIHBhcnNlSW50KCRjbHVldGlwSW5uZXIuY3NzKCdtYXJnaW5SaWdodCcpLDEwKSA6ICBtb3VzZVggLSAodGlwV2lkdGgvMik7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwb3NYID0gbW91c2VYICsgbE9mZnNldDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdmFyIHBZID0gcG9zWCA8IDAgPyBldmVudC5wYWdlWSArIHRPZmZzZXQgOiBldmVudC5wYWdlWTsKICAgICAgICAkY2x1ZXRpcC5jc3Moe2xlZnQ6IChwb3NYID4gMCAmJiBvcHRzLnBvc2l0aW9uQnkgIT0gJ2JvdHRvbVRvcCcpID8gcG9zWCA6IChtb3VzZVggKyAodGlwV2lkdGgvMikgPiB3aW5XaWR0aCkgPyB3aW5XaWR0aC8yIC0gdGlwV2lkdGgvMiA6IE1hdGgubWF4KG1vdXNlWCAtICh0aXBXaWR0aC8yKSwwKX0pOwogICAgICB9CiAgICAgICAgd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiBsb2FkIGEgc3RyaW5nIGZyb20gY2x1ZXRpcCBtZXRob2QncyBmaXJzdCBhcmd1bWVudAoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAgICAgIGlmIChqcykgewogICAgICAgICRjbHVldGlwSW5uZXIuaHRtbChqcyk7CiAgICAgICAgY2x1ZXRpcFNob3cocFkpOwogICAgICB9Ci8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiBsb2FkIHRoZSB0aXRsZSBhdHRyaWJ1dGUgb25seSAob3IgdXNlci1zZWxlY3RlZCBhdHRyaWJ1dGUpLiAKKiBjbHVlVGlwIHRpdGxlIGlzIHRoZSBzdHJpbmcgYmVmb3JlIHRoZSBmaXJzdCBkZWxpbWl0ZXIKKiBzdWJzZXF1ZW50IGRlbGltaXRlcnMgcGxhY2UgY2x1ZVRpcCBib2R5IHRleHQgb24gc2VwYXJhdGUgbGluZXMKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKICAgICAgZWxzZSBpZiAodGlwUGFydHMpIHsKICAgICAgICB2YXIgdHBsID0gdGlwUGFydHMubGVuZ3RoOwogICAgICAgIGZvciAodmFyIGk9MDsgaSA8IHRwbDsgaSsrKXsKICAgICAgICAgIGlmIChpID09IDApIHsKICAgICAgICAgICAgJGNsdWV0aXBJbm5lci5odG1sKHRpcFBhcnRzW2ldKTsKICAgICAgICAgIH0gZWxzZSB7IAogICAgICAgICAgICAkY2x1ZXRpcElubmVyLmFwcGVuZCgnPGRpdiBjbGFzcz0ic3BsaXQtYm9keSI+JyArIHRpcFBhcnRzW2ldICsgJzwvZGl2PicpOwogICAgICAgICAgfSAgICAgICAgICAgIAogICAgICAgIH07CiAgICAgICAgY2x1ZXRpcFNob3cocFkpOwogICAgICB9Ci8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiBsb2FkIGV4dGVybmFsIGZpbGUgdmlhIGFqYXggICAgICAgICAgCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiAgICAgIGVsc2UgaWYgKCFvcHRzLmxvY2FsICYmIHRpcEF0dHJpYnV0ZS5pbmRleE9mKCcjJykgIT0gMCkgewogICAgICAgIGlmIChjbHVldGlwQ29udGVudHMgJiYgb3B0cy5hamF4Q2FjaGUpIHsKICAgICAgICAgICRjbHVldGlwSW5uZXIuaHRtbChjbHVldGlwQ29udGVudHMpOwogICAgICAgICAgY2x1ZXRpcFNob3cocFkpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgIHZhciBhamF4U2V0dGluZ3MgPSBvcHRzLmFqYXhTZXR0aW5nczsKICAgICAgICAgIGFqYXhTZXR0aW5ncy51cmwgPSB0aXBBdHRyaWJ1dGU7CiAgICAgICAgICBhamF4U2V0dGluZ3MuYmVmb3JlU2VuZCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAkY2x1ZXRpcE91dGVyLmNoaWxkcmVuKCkuZW1wdHkoKTsKICAgICAgICAgICAgaWYgKG9wdHMud2FpdEltYWdlKSB7CiAgICAgICAgICAgICAgJCgnI2NsdWV0aXAtd2FpdGltYWdlJykKICAgICAgICAgICAgICAuY3NzKHt0b3A6IG1vdXNlWSsyMCwgbGVmdDogbW91c2VYKzIwfSkKICAgICAgICAgICAgICAuc2hvdygpOwogICAgICAgICAgICB9CiAgICAgICAgICB9OwogICAgICAgICBhamF4U2V0dGluZ3MuZXJyb3IgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgaWYgKGlzQWN0aXZlKSB7CiAgICAgICAgICAgICAgJGNsdWV0aXBJbm5lci5odG1sKCc8aT5zb3JyeSwgdGhlIGNvbnRlbnRzIGNvdWxkIG5vdCBiZSBsb2FkZWQ8L2k+Jyk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH07CiAgICAgICAgICBhamF4U2V0dGluZ3Muc3VjY2VzcyA9IGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgICAgICAgY2x1ZXRpcENvbnRlbnRzID0gb3B0cy5hamF4UHJvY2VzcyhkYXRhKTsKICAgICAgICAgICAgaWYgKGlzQWN0aXZlKSB7CiAgICAgICAgICAgICAgJGNsdWV0aXBJbm5lci5odG1sKGNsdWV0aXBDb250ZW50cyk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH07CiAgICAgICAgICBhamF4U2V0dGluZ3MuY29tcGxldGUgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIAlpbWdDb3VudCA9ICQoJyNjbHVldGlwLWlubmVyIGltZycpLmxlbmd0aDsKICAgICAgICAJCWlmIChpbWdDb3VudCAmJiAhJC5icm93c2VyLm9wZXJhKSB7CiAgICAgICAgCQkgICQoJyNjbHVldGlwLWlubmVyIGltZycpLmxvYWQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAJCQlpbWdDb3VudC0tOwogICAgICAgICAgCQkJaWYgKGltZ0NvdW50PDEpIHsKICAgICAgICAgIAkJCQkkKCcjY2x1ZXRpcC13YWl0aW1hZ2UnKS5oaWRlKCk7CiAgICAgICAgICAJCQkgIGlmIChpc0FjdGl2ZSkgY2x1ZXRpcFNob3cocFkpOwogICAgICAgICAgCQkJfQogICAgICAgIAkJICB9KTsgCiAgICAgICAgCQl9IGVsc2UgewogICAgICAJCQkJJCgnI2NsdWV0aXAtd2FpdGltYWdlJykuaGlkZSgpOwogICAgICAgIAkJICBpZiAoaXNBY3RpdmUpIGNsdWV0aXBTaG93KHBZKTsgICAgCiAgICAgICAgCQl9IAogICAgICAgICAgfTsKICAgICAgICAgICQuYWpheChhamF4U2V0dGluZ3MpOwogICAgICAgIH0KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiBsb2FkIGFuIGVsZW1lbnQgZnJvbSB0aGUgc2FtZSBwYWdlCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICAgICAgfSBlbHNlIGlmIChvcHRzLmxvY2FsKXsKICAgICAgICB2YXIgJGxvY2FsQ29udGVudCA9ICQodGlwQXR0cmlidXRlICsgJzpmaXJzdCcpOwogICAgICAgIHZhciBsb2NhbENsdWV0aXAgPSAkLmZuLndyYXBJbm5lciA/ICRsb2NhbENvbnRlbnQud3JhcElubmVyKCc8ZGl2PjwvZGl2PicpLmNoaWxkcmVuKCkuY2xvbmUodHJ1ZSkgOiAkbG9jYWxDb250ZW50Lmh0bWwoKTsKICAgICAgICAkLmZuLndyYXBJbm5lciA/ICRjbHVldGlwSW5uZXIuZW1wdHkoKS5hcHBlbmQobG9jYWxDbHVldGlwKSA6ICRjbHVldGlwSW5uZXIuaHRtbChsb2NhbENsdWV0aXApOwogICAgICAgIGNsdWV0aXBTaG93KHBZKTsKICAgICAgfQogICAgfTsKCi8vIGdldCBkaW1lbnNpb25zIGFuZCBvcHRpb25zIGZvciBjbHVldGlwIGFuZCBwcmVwYXJlIGl0IHRvIGJlIHNob3duCiAgICB2YXIgY2x1ZXRpcFNob3cgPSBmdW5jdGlvbihicFkpIHsKICAgICAgJGNsdWV0aXAuYWRkQ2xhc3MoJ2NsdWV0aXAtJyArIGN0Q2xhc3MpOwogICAgICAKICAgICAgaWYgKG9wdHMudHJ1bmNhdGUpIHsgCiAgICAgICAgdmFyICR0cnVuY2xvYWRlZCA9ICRjbHVldGlwSW5uZXIudGV4dCgpLnNsaWNlKDAsb3B0cy50cnVuY2F0ZSkgKyAnLi4uJzsKICAgICAgICAkY2x1ZXRpcElubmVyLmh0bWwoJHRydW5jbG9hZGVkKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBkb05vdGhpbmcoKSB7fTsgLy9lbXB0eSBmdW5jdGlvbgogICAgICB0aXBUaXRsZSA/ICRjbHVldGlwVGl0bGUuc2hvdygpLmh0bWwodGlwVGl0bGUpIDogKG9wdHMuc2hvd1RpdGxlKSA/ICRjbHVldGlwVGl0bGUuc2hvdygpLmh0bWwoJyZuYnNwOycpIDogJGNsdWV0aXBUaXRsZS5oaWRlKCk7CiAgICAgIGlmIChvcHRzLnN0aWNreSkgewogICAgICAgIHZhciAkY2xvc2VMaW5rID0gJCgnPGRpdiBpZD0iY2x1ZXRpcC1jbG9zZSI+PGEgaHJlZj0iIyI+JyArIG9wdHMuY2xvc2VUZXh0ICsgJzwvYT48L2Rpdj4nKTsKICAgICAgICAob3B0cy5jbG9zZVBvc2l0aW9uID09ICdib3R0b20nKSA/ICRjbG9zZUxpbmsuYXBwZW5kVG8oJGNsdWV0aXBJbm5lcikgOiAob3B0cy5jbG9zZVBvc2l0aW9uID09ICd0aXRsZScpID8gJGNsb3NlTGluay5wcmVwZW5kVG8oJGNsdWV0aXBUaXRsZSkgOiAkY2xvc2VMaW5rLnByZXBlbmRUbygkY2x1ZXRpcElubmVyKTsKICAgICAgICAkY2xvc2VMaW5rLmNsaWNrKGZ1bmN0aW9uKCkgewogICAgICAgICAgY2x1ZXRpcENsb3NlKCk7CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CiAgICAgICAgaWYgKG9wdHMubW91c2VPdXRDbG9zZSkgewogICAgICAgICAgaWYgKCQuZm4uaG92ZXJJbnRlbnQgJiYgb3B0cy5ob3ZlckludGVudCkgeyAKICAgICAgICAgICAgJGNsdWV0aXAuaG92ZXJJbnRlbnQoewogICAgICAgICAgICAgIG92ZXI6IGRvTm90aGluZywgCiAgICAgICAgICAgICAgdGltZW91dDogb3B0cy5ob3ZlckludGVudC50aW1lb3V0LCAgCiAgICAgICAgICAgICAgb3V0OiBmdW5jdGlvbigpIHsgJGNsb3NlTGluay50cmlnZ2VyKCdjbGljaycpOyB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJGNsdWV0aXAuaG92ZXIoZG9Ob3RoaW5nLCAKICAgICAgICAgICAgZnVuY3Rpb24oKSB7JGNsb3NlTGluay50cmlnZ2VyKCdjbGljaycpOyB9KTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgJGNsdWV0aXAudW5iaW5kKCdtb3VzZW91dCcpOwogICAgICAgIH0KICAgICAgfQovLyBub3cgdGhhdCBjb250ZW50IGlzIGxvYWRlZCwgZmluaXNoIHRoZSBwb3NpdGlvbmluZyAKICAgICAgdmFyIGRpcmVjdGlvbiA9ICcnOwogICAgICAkY2x1ZXRpcE91dGVyLmNzcyh7b3ZlcmZsb3c6IGRlZkhlaWdodCA9PSAnYXV0bycgPyAndmlzaWJsZScgOiAnYXV0bycsIGhlaWdodDogZGVmSGVpZ2h0fSk7CiAgICAgIHRpcEhlaWdodCA9IGRlZkhlaWdodCA9PSAnYXV0bycgPyBNYXRoLm1heCgkY2x1ZXRpcC5vdXRlckhlaWdodCgpLCRjbHVldGlwLmhlaWdodCgpKSA6IHBhcnNlSW50KGRlZkhlaWdodCwxMCk7ICAgCiAgICAgIHRpcFkgPSBwb3NZOwogICAgICBiYXNlbGluZSA9IHNUb3AgKyB3SGVpZ2h0OwogICAgICBpZiAob3B0cy5wb3NpdGlvbkJ5ID09ICdmaXhlZCcpIHsKICAgICAgICB0aXBZID0gcG9zWSAtIG9wdHMuZHJvcFNoYWRvd1N0ZXBzICsgdE9mZnNldDsKICAgICAgfSBlbHNlIGlmICggKHBvc1ggPCBtb3VzZVggJiYgTWF0aC5tYXgocG9zWCwgMCkgKyB0aXBXaWR0aCA+IG1vdXNlWCkgfHwgb3B0cy5wb3NpdGlvbkJ5ID09ICdib3R0b21Ub3AnKSB7CiAgICAgICAgaWYgKHBvc1kgKyB0aXBIZWlnaHQgKyB0T2Zmc2V0ID4gYmFzZWxpbmUgJiYgbW91c2VZIC0gc1RvcCA+IHRpcEhlaWdodCArIHRPZmZzZXQpIHsgCiAgICAgICAgICB0aXBZID0gbW91c2VZIC0gdGlwSGVpZ2h0IC0gdE9mZnNldDsKICAgICAgICAgIGRpcmVjdGlvbiA9ICd0b3AnOwogICAgICAgIH0gZWxzZSB7IAogICAgICAgICAgdGlwWSA9IG1vdXNlWSArIHRPZmZzZXQ7CiAgICAgICAgICBkaXJlY3Rpb24gPSAnYm90dG9tJzsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoIHBvc1kgKyB0aXBIZWlnaHQgKyB0T2Zmc2V0ID4gYmFzZWxpbmUgKSB7CiAgICAgICAgdGlwWSA9ICh0aXBIZWlnaHQgPj0gd0hlaWdodCkgPyBzVG9wIDogYmFzZWxpbmUgLSB0aXBIZWlnaHQgLSB0T2Zmc2V0OwogICAgICB9IGVsc2UgaWYgKCR0aGlzLmNzcygnZGlzcGxheScpID09ICdibG9jaycgfHwgJHRoaXNbMF0udGFnTmFtZS50b0xvd2VyQ2FzZSgpID09ICdhcmVhJyB8fCBvcHRzLnBvc2l0aW9uQnkgPT0gIm1vdXNlIikgewogICAgICAgIHRpcFkgPSBicFkgLSB0T2Zmc2V0OwogICAgICB9IGVsc2UgewogICAgICAgIHRpcFkgPSBwb3NZIC0gb3B0cy5kcm9wU2hhZG93U3RlcHM7CiAgICAgIH0KICAgICAgaWYgKGRpcmVjdGlvbiA9PSAnJykgewogICAgICAgIHBvc1ggPCBsaW5rTGVmdCA/IGRpcmVjdGlvbiA9ICdsZWZ0JyA6IGRpcmVjdGlvbiA9ICdyaWdodCc7CiAgICAgIH0KICAgICAgJGNsdWV0aXAuY3NzKHt0b3A6IHRpcFkgKyAncHgnfSkucmVtb3ZlQ2xhc3MoKS5hZGRDbGFzcygnY2x1ZS0nICsgZGlyZWN0aW9uICsgJy0nICsgY3RDbGFzcykuYWRkQ2xhc3MoJyBjbHVldGlwLScgKyBjdENsYXNzKTsKICAgICAgaWYgKG9wdHMuYXJyb3dzKSB7IC8vIHNldCB1cCBhcnJvdyBwb3NpdGlvbmluZyB0byBhbGlnbiB3aXRoIGVsZW1lbnQKICAgICAgICB2YXIgYmdZID0gKHBvc1kgLSB0aXBZIC0gb3B0cy5kcm9wU2hhZG93U3RlcHMpOwogICAgICAgICRjbHVldGlwQXJyb3dzLmNzcyh7dG9wOiAoLyhsZWZ0fHJpZ2h0KS8udGVzdChkaXJlY3Rpb24pICYmIHBvc1ggPj0wICYmIGJnWSA+IDApID8gYmdZICsgJ3B4JyA6IC8obGVmdHxyaWdodCkvLnRlc3QoZGlyZWN0aW9uKSA/IDAgOiAnJ30pLnNob3coKTsKICAgICAgfSBlbHNlIHsKICAgICAgICAkY2x1ZXRpcEFycm93cy5oaWRlKCk7CiAgICAgIH0KCi8vIChmaXJzdCBoaWRlLCB0aGVuKSAqKipTSE9XIFRIRSBDTFVFVElQKioqCiAgICAgICRkcm9wU2hhZG93LmhpZGUoKTsKICAgICAgJGNsdWV0aXAuaGlkZSgpW29wdHMuZngub3Blbl0ob3B0cy5meC5vcGVuICE9ICdzaG93JyAmJiBvcHRzLmZ4Lm9wZW5TcGVlZCk7CiAgICAgIGlmIChvcHRzLmRyb3BTaGFkb3cpICRkcm9wU2hhZG93LmNzcyh7aGVpZ2h0OiB0aXBIZWlnaHQsIHdpZHRoOiB0aXBJbm5lcldpZHRofSkuc2hvdygpOwogICAgICBpZiAoJC5mbi5iZ2lmcmFtZSkgeyAkY2x1ZXRpcC5iZ2lmcmFtZSgpOyB9CiAgICAgIC8vIHRyaWdnZXIgdGhlIG9wdGlvbmFsIG9uU2hvdyBmdW5jdGlvbgogICAgICBpZiAob3B0cy5kZWxheWVkQ2xvc2UgPiAwKSB7CiAgICAgICAgY2xvc2VPbkRlbGF5ID0gc2V0VGltZW91dChjbHVldGlwQ2xvc2UsIG9wdHMuZGVsYXllZENsb3NlKTsKICAgICAgfQogICAgICBvcHRzLm9uU2hvdygkY2x1ZXRpcCwgJGNsdWV0aXBJbm5lcik7CiAgICAgIAogICAgfTsKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgPUlOQUNUSVZBVElPTgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogICAgdmFyIGluYWN0aXZhdGUgPSBmdW5jdGlvbigpIHsKICAgICAgaXNBY3RpdmUgPSBmYWxzZTsKICAgICAgJCgnI2NsdWV0aXAtd2FpdGltYWdlJykuaGlkZSgpOwogICAgICBpZiAoIW9wdHMuc3RpY2t5IHx8ICgvY2xpY2t8dG9nZ2xlLykudGVzdChvcHRzLmFjdGl2YXRpb24pICkgewogICAgICAgIGNsdWV0aXBDbG9zZSgpOwpjbGVhclRpbWVvdXQoY2xvc2VPbkRlbGF5KTsgICAgICAgIAogICAgICB9OwogICAgICBpZiAob3B0cy5ob3ZlckNsYXNzKSB7CiAgICAgICAgJHRoaXMucmVtb3ZlQ2xhc3Mob3B0cy5ob3ZlckNsYXNzKTsKICAgICAgfQogICAgICAkKCcuY2x1ZXRpcC1jbGlja2VkJykucmVtb3ZlQ2xhc3MoJ2NsdWV0aXAtY2xpY2tlZCcpOwogICAgfTsKLy8gY2xvc2UgY2x1ZXRpcCBhbmQgcmVzZXQgc29tZSB0aGluZ3MKICAgIHZhciBjbHVldGlwQ2xvc2UgPSBmdW5jdGlvbigpIHsKICAgICAgJGNsdWV0aXBPdXRlciAKICAgICAgLnBhcmVudCgpLmhpZGUoKS5yZW1vdmVDbGFzcygpLmVuZCgpCiAgICAgIC5jaGlsZHJlbigpLmVtcHR5KCk7CiAgICAgIGlmICh0aXBUaXRsZSkgewogICAgICAgICR0aGlzLmF0dHIob3B0cy50aXRsZUF0dHJpYnV0ZSwgdGlwVGl0bGUpOwogICAgICB9CiAgICAgICR0aGlzLmNzcygnY3Vyc29yJywnJyk7CiAgICAgIGlmIChvcHRzLmFycm93cykgJGNsdWV0aXBBcnJvd3MuY3NzKHt0b3A6ICcnfSk7CiAgICB9OwoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICA9QklORCBFVkVOVFMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KICAvLyBhY3RpdmF0ZSBieSBjbGljawogICAgICBpZiAoICgvY2xpY2t8dG9nZ2xlLykudGVzdChvcHRzLmFjdGl2YXRpb24pICkgewogICAgICAgICR0aGlzLmNsaWNrKGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgICBpZiAoJGNsdWV0aXAuaXMoJzpoaWRkZW4nKSB8fCAhJHRoaXMuaXMoJy5jbHVldGlwLWNsaWNrZWQnKSkgewogICAgICAgICAgICBhY3RpdmF0ZShldmVudCk7CiAgICAgICAgICAgICQoJy5jbHVldGlwLWNsaWNrZWQnKS5yZW1vdmVDbGFzcygnY2x1ZXRpcC1jbGlja2VkJyk7CiAgICAgICAgICAgICR0aGlzLmFkZENsYXNzKCdjbHVldGlwLWNsaWNrZWQnKTsKCiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpbmFjdGl2YXRlKGV2ZW50KTsKCiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLmJsdXIoKTsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9KTsKICAvLyBhY3RpdmF0ZSBieSBmb2N1czsgaW5hY3RpdmF0ZSBieSBibHVyICAgIAogICAgICB9IGVsc2UgaWYgKG9wdHMuYWN0aXZhdGlvbiA9PSAnZm9jdXMnKSB7CiAgICAgICAgJHRoaXMuZm9jdXMoZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgIGFjdGl2YXRlKGV2ZW50KTsKICAgICAgICB9KTsKICAgICAgICAkdGhpcy5ibHVyKGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgICBpbmFjdGl2YXRlKGV2ZW50KTsKICAgICAgICB9KTsKICAvLyBhY3RpdmF0ZSBieSBob3ZlcgogICAgLy8gY2xpY2tpbmcgaXMgcmV0dXJuZWQgZmFsc2UgaWYgY2x1ZXRpcCB1cmwgaXMgc2FtZSBhcyBocmVmIHVybAogICAgICB9IGVsc2UgewogICAgICAgICR0aGlzLmNsaWNrKGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKCR0aGlzLmF0dHIoJ2hyZWYnKSAmJiAkdGhpcy5hdHRyKCdocmVmJykgPT0gdGlwQXR0cmlidXRlICYmICFvcHRzLmNsaWNrVGhyb3VnaCkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgLy9zZXQgdXAgbW91c2UgdHJhY2tpbmcKICAgICAgICB2YXIgbW91c2VUcmFja3MgPSBmdW5jdGlvbihldnQpIHsKICAgICAgICAgIGlmIChvcHRzLnRyYWNraW5nID09IHRydWUpIHsKICAgICAgICAgICAgdmFyIHRyYWNrWCA9IHBvc1ggLSBldnQucGFnZVg7CiAgICAgICAgICAgIHZhciB0cmFja1kgPSB0aXBZID8gdGlwWSAtIGV2dC5wYWdlWSA6IHBvc1kgLSBldnQucGFnZVk7CiAgICAgICAgICAgICR0aGlzLm1vdXNlbW92ZShmdW5jdGlvbihldnQpIHsKICAgICAgICAgICAgICAkY2x1ZXRpcC5jc3Moe2xlZnQ6IGV2dC5wYWdlWCArIHRyYWNrWCwgdG9wOiBldnQucGFnZVkgKyB0cmFja1kgfSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgaWYgKCQuZm4uaG92ZXJJbnRlbnQgJiYgb3B0cy5ob3ZlckludGVudCkgewogICAgICAgICAgJHRoaXMubW91c2VvdmVyKGZ1bmN0aW9uKCkgeyR0aGlzLmF0dHIoJ3RpdGxlJywnJyk7IH0pCiAgICAgICAgICAuaG92ZXJJbnRlbnQoewogICAgICAgICAgICBzZW5zaXRpdml0eTogb3B0cy5ob3ZlckludGVudC5zZW5zaXRpdml0eSwKICAgICAgICAgICAgaW50ZXJ2YWw6IG9wdHMuaG92ZXJJbnRlbnQuaW50ZXJ2YWwsICAKICAgICAgICAgICAgb3ZlcjogZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgICAgICBhY3RpdmF0ZShldmVudCk7CiAgICAgICAgICAgICAgbW91c2VUcmFja3MoZXZlbnQpOwogICAgICAgICAgICB9LCAKICAgICAgICAgICAgdGltZW91dDogb3B0cy5ob3ZlckludGVudC50aW1lb3V0LCAgCiAgICAgICAgICAgIG91dDogZnVuY3Rpb24oZXZlbnQpIHtpbmFjdGl2YXRlKGV2ZW50KTsgJHRoaXMudW5iaW5kKCdtb3VzZW1vdmUnKTt9CiAgICAgICAgICB9KTsgICAgICAgICAgIAogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAkdGhpcy5ob3ZlcihmdW5jdGlvbihldmVudCkgewogICAgICAgICAgICBhY3RpdmF0ZShldmVudCk7CiAgICAgICAgICAgIG1vdXNlVHJhY2tzKGV2ZW50KTsKICAgICAgICAgIH0sIGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgICAgIGluYWN0aXZhdGUoZXZlbnQpOwogICAgICAgICAgICAkdGhpcy51bmJpbmQoJ21vdXNlbW92ZScpOwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9CiAgICB9KTsKICB9OwogIAovKgogKiBvcHRpb25zIGZvciBjbHVlVGlwCiAqCiAqIGVhY2ggb25lIGNhbiBiZSBleHBsaWNpdGx5IG92ZXJyaWRkZW4gYnkgY2hhbmdpbmcgaXRzIHZhbHVlLiAKICogZm9yIGV4YW1wbGU6ICQuZm4uY2x1ZXRpcC5kZWZhdWx0cy53aWR0aCA9IDIwMDsgCiAqIHdvdWxkIGNoYW5nZSB0aGUgZGVmYXVsdCB3aWR0aCBmb3IgYWxsIGNsdWVUaXBzIHRvIDIwMC4gCiAqCiAqIGVhY2ggb25lIGNhbiBhbHNvIGJlIG92ZXJyaWRkZW4gYnkgcGFzc2luZyBhbiBvcHRpb25zIG1hcCB0byB0aGUgY2x1ZXRpcCBtZXRob2QuCiAqIGZvciBleGFtcGxlOiAkKCdhLmV4YW1wbGUnKS5jbHVldGlwKHt3aWR0aDogMjAwfSk7IAogKiB3b3VsZCBjaGFuZ2UgdGhlIGRlZmF1bHQgd2lkdGggdG8gMjAwIGZvciBjbHVlVGlwcyBpbnZva2VkIGJ5IGEgbGluayB3aXRoIGNsYXNzIG9mICJleGFtcGxlIgogKgogKi8KICAKICAkLmZuLmNsdWV0aXAuZGVmYXVsdHMgPSB7ICAvLyBzZXQgdXAgZGVmYXVsdCBvcHRpb25zCiAgICB3aWR0aDogICAgICAgICAgICAyNzUsICAgICAgLy8gVGhlIHdpZHRoIG9mIHRoZSBjbHVlVGlwCiAgICBoZWlnaHQ6ICAgICAgICAgICAnYXV0bycsICAgLy8gVGhlIGhlaWdodCBvZiB0aGUgY2x1ZVRpcAogICAgY2x1ZXpJbmRleDogICAgICAgOTcsICAgICAgIC8vIFNldHMgdGhlIHotaW5kZXggc3R5bGUgcHJvcGVydHkgb2YgdGhlIGNsdWVUaXAKICAgIHBvc2l0aW9uQnk6ICAgICAgICdhdXRvJywgICAvLyBTZXRzIHRoZSB0eXBlIG9mIHBvc2l0aW9uaW5nOiAnYXV0bycsICdtb3VzZScsJ2JvdHRvbVRvcCcsICdmaXhlZCcKICAgIHRvcE9mZnNldDogICAgICAgIDE1LCAgICAgICAvLyBOdW1iZXIgb2YgcHggdG8gb2Zmc2V0IGNsdWVUaXAgZnJvbSB0b3Agb2YgaW52b2tpbmcgZWxlbWVudAogICAgbGVmdE9mZnNldDogICAgICAgMTUsICAgICAgIC8vIE51bWJlciBvZiBweCB0byBvZmZzZXQgY2x1ZVRpcCBmcm9tIGxlZnQgb2YgaW52b2tpbmcgZWxlbWVudAogICAgbG9jYWw6ICAgICAgICAgICAgZmFsc2UsICAgIC8vIFdoZXRoZXIgdG8gdXNlIGNvbnRlbnQgZnJvbSB0aGUgc2FtZSBwYWdlIGZvciB0aGUgY2x1ZVRpcCdzIGJvZHkKICAgIGhpZGVMb2NhbDogICAgICAgIHRydWUsICAgICAvLyBJZiBsb2NhbCBvcHRpb24gaXMgc2V0IHRvIHRydWUsIHRoaXMgZGV0ZXJtaW5lcyB3aGV0aGVyIGxvY2FsIGNvbnRlbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byBiZSBzaG93biBpbiBjbHVlVGlwIHNob3VsZCBiZSBoaWRkZW4gYXQgaXRzIG9yaWdpbmFsIGxvY2F0aW9uCiAgICBhdHRyaWJ1dGU6ICAgICAgICAncmVsJywgICAgLy8gdGhlIGF0dHJpYnV0ZSB0byBiZSB1c2VkIGZvciBmZXRjaGluZyB0aGUgY2x1ZVRpcCdzIGJvZHkgY29udGVudAogICAgdGl0bGVBdHRyaWJ1dGU6ICAgJ3RpdGxlJywgIC8vIHRoZSBhdHRyaWJ1dGUgdG8gYmUgdXNlZCBmb3IgZmV0Y2hpbmcgdGhlIGNsdWVUaXAncyB0aXRsZQogICAgc3BsaXRUaXRsZTogICAgICAgJycsICAgICAgIC8vIEEgY2hhcmFjdGVyIHVzZWQgdG8gc3BsaXQgdGhlIHRpdGxlIGF0dHJpYnV0ZSBpbnRvIHRoZSBjbHVlVGlwIHRpdGxlIGFuZCBkaXZzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2l0aGluIHRoZSBjbHVlVGlwIGJvZHkuIG1vcmUgaW5mbyBiZWxvdyBbNl0KICAgIHNob3dUaXRsZTogICAgICAgIHRydWUsICAgICAvLyBzaG93IHRpdGxlIGJhciBvZiB0aGUgY2x1ZVRpcCwgZXZlbiBpZiB0aXRsZSBhdHRyaWJ1dGUgbm90IHNldAogICAgY2x1ZXRpcENsYXNzOiAgICAgJ2RlZmF1bHQnLC8vIGNsYXNzIGFkZGVkIHRvIG91dGVybW9zdCBjbHVlVGlwIGRpdiBpbiB0aGUgZm9ybSBvZiAnY2x1ZXRpcC0nICsgY2x1ZVRpcENsYXNzLgogICAgaG92ZXJDbGFzczogICAgICAgJycsICAgICAgIC8vIGNsYXNzIGFwcGxpZWQgdG8gdGhlIGludm9raW5nIGVsZW1lbnQgb25tb3VzZW92ZXIgYW5kIHJlbW92ZWQgb25tb3VzZW91dAogICAgd2FpdEltYWdlOiAgICAgICAgdHJ1ZSwgICAgIC8vIHdoZXRoZXIgdG8gc2hvdyBhICJsb2FkaW5nIiBpbWcsIHdoaWNoIGlzIHNldCBpbiBqcXVlcnkuY2x1ZXRpcC5jc3MKICAgIGN1cnNvcjogICAgICAgICAgICdoZWxwJywKICAgIGFycm93czogICAgICAgICAgIGZhbHNlLCAgICAvLyBpZiB0cnVlLCBkaXNwbGF5cyBhcnJvdyBvbiBhcHByb3ByaWF0ZSBzaWRlIG9mIGNsdWVUaXAKICAgIGRyb3BTaGFkb3c6ICAgICAgIHRydWUsICAgICAvLyBzZXQgdG8gZmFsc2UgaWYgeW91IGRvbid0IHdhbnQgdGhlIGRyb3Atc2hhZG93IGVmZmVjdCBvbiB0aGUgY2x1ZVRpcAogICAgZHJvcFNoYWRvd1N0ZXBzOiAgNiwgICAgICAgIC8vIGFkanVzdHMgdGhlIHNpemUgb2YgdGhlIGRyb3Agc2hhZG93CiAgICBzdGlja3k6ICAgICAgICAgICBmYWxzZSwgICAgLy8ga2VlcCB2aXNpYmxlIHVudGlsIG1hbnVhbGx5IGNsb3NlZAogICAgbW91c2VPdXRDbG9zZTogICAgZmFsc2UsICAgIC8vIGNsb3NlIHdoZW4gY2x1ZVRpcCBpcyBtb3VzZWQgb3V0CiAgICBhY3RpdmF0aW9uOiAgICAgICAnaG92ZXInLCAgLy8gc2V0IHRvICdjbGljaycgdG8gZm9yY2UgdXNlciB0byBjbGljayB0byBzaG93IGNsdWVUaXAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzZXQgdG8gJ2ZvY3VzJyB0byBzaG93IG9uIGZvY3VzIG9mIGEgZm9ybSBlbGVtZW50IGFuZCBoaWRlIG9uIGJsdXIKICAgIGNsaWNrVGhyb3VnaDogICAgIGZhbHNlLCAgICAvLyBpZiB0cnVlLCBhbmQgYWN0aXZhdGlvbiBpcyBub3QgJ2NsaWNrJywgdGhlbiBjbGlja2luZyBvbiBsaW5rIHdpbGwgdGFrZSB1c2VyIHRvIHRoZSBsaW5rJ3MgaHJlZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBldmVuIGlmIGhyZWYgYW5kIHRpcEF0dHJpYnV0ZSBhcmUgZXF1YWwKICAgIHRyYWNraW5nOiAgICAgICAgIGZhbHNlLCAgICAvLyBpZiB0cnVlLCBjbHVlVGlwIHdpbGwgdHJhY2sgbW91c2UgbW92ZW1lbnQgKGV4cGVyaW1lbnRhbCkKICAgIGRlbGF5ZWRDbG9zZTogICAgIDAsICAgICAgICAvLyBjbG9zZSBjbHVlVGlwIG9uIGEgdGltZWQgZGVsYXkgKGV4cGVyaW1lbnRhbCkKICAgIGNsb3NlUG9zaXRpb246ICAgICd0b3AnLCAgICAvLyBsb2NhdGlvbiBvZiBjbG9zZSB0ZXh0IGZvciBzdGlja3kgY2x1ZXRpcHM7IGNhbiBiZSAndG9wJyBvciAnYm90dG9tJyBvciAndGl0bGUnCiAgICBjbG9zZVRleHQ6ICAgICAgICAnQ2xvc2UnLCAgLy8gdGV4dCAob3IgSFRNTCkgdG8gdG8gYmUgY2xpY2tlZCB0byBjbG9zZSBzdGlja3kgY2x1ZVRpcHMKICAgIHRydW5jYXRlOiAgICAgICAgIDAsICAgICAgICAvLyBudW1iZXIgb2YgY2hhcmFjdGVycyB0byB0cnVuY2F0ZSBjbHVlVGlwJ3MgY29udGVudHMuIGlmIDAsIG5vIHRydW5jYXRpb24gb2NjdXJzCgogICAgLy8gZWZmZWN0IGFuZCBzcGVlZCBmb3Igb3BlbmluZyBjbHVlVGlwcwogICAgZng6IHsgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICBvcGVuOiAgICAgICAnc2hvdycsIC8vIGNhbiBiZSAnc2hvdycgb3IgJ3NsaWRlRG93bicgb3IgJ2ZhZGVJbicKICAgICAgICAgICAgICAgICAgICAgIG9wZW5TcGVlZDogICcnCiAgICB9LCAgICAgCgogICAgLy8gc2V0dGluZ3MgZm9yIHdoZW4gaG92ZXJJbnRlbnQgcGx1Z2luIGlzIHVzZWQgICAgICAgICAgICAgCiAgICBob3ZlckludGVudDogeyAgICAKICAgICAgICAgICAgICAgICAgICAgIHNlbnNpdGl2aXR5OiAgMywKICAgICAgICAgICAgICAJCQkgIGludGVydmFsOiAgICAgNTAsCiAgICAgICAgICAgICAgCQkJICB0aW1lb3V0OiAgICAgIDAKICAgIH0sCgogICAgLy8gZnVuY3Rpb24gdG8gcnVuIGp1c3QgYmVmb3JlIGNsdWVUaXAgaXMgc2hvd24uICAgICAgICAgICAKICAgIG9uQWN0aXZhdGU6ICAgICAgIGZ1bmN0aW9uKGUpIHtyZXR1cm4gdHJ1ZTt9LAoKICAgIC8vIGZ1bmN0aW9uIHRvIHJ1biBqdXN0IGFmdGVyIGNsdWVUaXAgaXMgc2hvd24uCiAgICBvblNob3c6ICAgICAgICAgICBmdW5jdGlvbihjdCwgYyl7fSwKICAgIAogICAgLy8gd2hldGhlciB0byBjYWNoZSByZXN1bHRzIG9mIGFqYXggcmVxdWVzdCB0byBhdm9pZCB1bm5lY2Vzc2FyeSBoaXRzIHRvIHNlcnZlciAgICAKICAgIGFqYXhDYWNoZTogICAgICAgIHRydWUsICAKCiAgICAvLyBwcm9jZXNzIGRhdGEgcmV0cmlldmVkIHZpYSB4aHIgYmVmb3JlIGl0J3MgZGlzcGxheWVkCiAgICBhamF4UHJvY2VzczogICAgICBmdW5jdGlvbihkYXRhKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhLnJlcGxhY2UoLzxzKGNyaXB0fHR5bGUpKC58XHMpKj9cL3MoY3JpcHR8dHlsZSk+L2csICcnKS5yZXBsYWNlKC88KGxpbmt8dGl0bGUpKC58XHMpKj9cLyhsaW5rfHRpdGxlKT4vZywnJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhOwogICAgfSwgICAgICAgICAgICAgICAgCgogICAgLy8gY2FuIHBhc3MgaW4gc3RhbmRhcmQgJC5hamF4KCkgcGFyYW1ldGVycywgbm90IGluY2x1ZGluZyBlcnJvciwgY29tcGxldGUsIHN1Y2Nlc3MsIGFuZCB1cmwKICAgIGFqYXhTZXR0aW5nczogeyAgIAogICAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU6ICdodG1sJwogICAgfSwKICAgIGRlYnVnOiBmYWxzZQogIH07CgoKLyoKICogR2xvYmFsIGRlZmF1bHRzIGZvciBjbHVlVGlwcy4gQXBwbHkgdG8gYWxsIGNhbGxzIHRvIHRoZSBjbHVlVGlwIHBsdWdpbi4KICoKICogQGV4YW1wbGUgJC5jbHVldGlwLnNldHVwKHsKICogICBpbnNlcnRpb25UeXBlOiAncHJlcGVuZFRvJywKICogICBpbnNlcnRpb25FbGVtZW50OiAnI2NvbnRhaW5lcicKICogfSk7CiAqIAogKiBAcHJvcGVydHkKICogQG5hbWUgJC5jbHVldGlwLnNldHVwCiAqIEB0eXBlIE1hcAogKiBAY2F0IFBsdWdpbnMvdG9vbHRpcAogKiBAb3B0aW9uIFN0cmluZyBpbnNlcnRpb25UeXBlOiBEZWZhdWx0IGlzICdhcHBlbmRUbycuIERldGVybWluZXMgdGhlIG1ldGhvZCB0byBiZSB1c2VkIGZvciBpbnNlcnRpbmcgdGhlIGNsdWVUaXAgaW50byB0aGUgRE9NLiBQZXJtaXR0ZWQgdmFsdWVzIGFyZSAnYXBwZW5kVG8nLCAncHJlcGVuZFRvJywgJ2luc2VydEJlZm9yZScsIGFuZCAnaW5zZXJ0QWZ0ZXInCiAqIEBvcHRpb24gU3RyaW5nIGluc2VydGlvbkVsZW1lbnQ6IERlZmF1bHQgaXMgJ2JvZHknLiBEZXRlcm1pbmVzIHdoaWNoIGVsZW1lbnQgaW4gdGhlIERPTSB0aGUgcGx1Z2luIHdpbGwgcmVmZXJlbmNlIHdoZW4gaW5zZXJ0aW5nIHRoZSBjbHVlVGlwLgogKgogKi8KICAgCiAgdmFyIGluc2VydGlvblR5cGUgPSAnYXBwZW5kVG8nLCBpbnNlcnRpb25FbGVtZW50ID0gJ2JvZHknOwogICQuY2x1ZXRpcCA9IHt9OwogICQuY2x1ZXRpcC5zZXR1cCA9IGZ1bmN0aW9uKG9wdGlvbnMpIHsKICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuaW5zZXJ0aW9uVHlwZSAmJiAob3B0aW9ucy5pbnNlcnRpb25UeXBlKS5tYXRjaCgvYXBwZW5kVG98cHJlcGVuZFRvfGluc2VydEJlZm9yZXxpbnNlcnRBZnRlci8pKSB7CiAgICAgIGluc2VydGlvblR5cGUgPSBvcHRpb25zLmluc2VydGlvblR5cGU7CiAgICB9CiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmluc2VydGlvbkVsZW1lbnQpIHsKICAgICAgaW5zZXJ0aW9uRWxlbWVudCA9IG9wdGlvbnMuaW5zZXJ0aW9uRWxlbWVudDsKICAgIH0KICB9OwogIAp9KShqUXVlcnkpOwo=]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.dimensions-1.2.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogQ29weXJpZ2h0IChjKSAyMDA3IFBhdWwgQmFrYXVzIChwYXVsLmJha2F1c0Bnb29nbGVtYWlsLmNvbSkgYW5kIEJyYW5kb24gQWFyb24gKGJyYW5kb24uYWFyb25AZ21haWwuY29tIHx8IGh0dHA6Ly9icmFuZG9uYWFyb24ubmV0KQogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgKGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwKQogKiBhbmQgR1BMIChodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2dwbC1saWNlbnNlLnBocCkgbGljZW5zZXMuCiAqCiAqICRMYXN0Q2hhbmdlZERhdGU6IDIwMDgtMDItMjggMDU6NDk6NTUgLTA1MDAgKFRodSwgMjggRmViIDIwMDgpICQKICogJFJldjogNDg0MSAkCiAqCiAqIFZlcnNpb246IEBWRVJTSU9OCiAqCiAqIFJlcXVpcmVzOiBqUXVlcnkgMS4yKwogKi8KCihmdW5jdGlvbigkKXsKCQokLmRpbWVuc2lvbnMgPSB7Cgl2ZXJzaW9uOiAnQFZFUlNJT04nCn07CgovLyBDcmVhdGUgaW5uZXJIZWlnaHQsIGlubmVyV2lkdGgsIG91dGVySGVpZ2h0IGFuZCBvdXRlcldpZHRoIG1ldGhvZHMKJC5lYWNoKCBbICdIZWlnaHQnLCAnV2lkdGgnIF0sIGZ1bmN0aW9uKGksIG5hbWUpewoJCgkvLyBpbm5lckhlaWdodCBhbmQgaW5uZXJXaWR0aAoJJC5mblsgJ2lubmVyJyArIG5hbWUgXSA9IGZ1bmN0aW9uKCkgewoJCWlmICghdGhpc1swXSkgcmV0dXJuOwoJCQoJCXZhciB0b3JsID0gbmFtZSA9PSAnSGVpZ2h0JyA/ICdUb3AnICAgIDogJ0xlZnQnLCAgLy8gdG9wIG9yIGxlZnQKCQkgICAgYm9yciA9IG5hbWUgPT0gJ0hlaWdodCcgPyAnQm90dG9tJyA6ICdSaWdodCc7IC8vIGJvdHRvbSBvciByaWdodAoKICAgIHJldHVybiB0aGlzLmNzcygnZGlzcGxheScpICE9ICdub25lJyA/IHRoaXNbMF1bJ2NsaWVudCcgKyBuYW1lXSA6IG51bSggdGhpcywgbmFtZS50b0xvd2VyQ2FzZSgpICkgKyBudW0odGhpcywgJ3BhZGRpbmcnICsgdG9ybCkgKyBudW0odGhpcywgJ3BhZGRpbmcnICsgYm9ycik7Cgl9OwoJCgkvLyBvdXRlckhlaWdodCBhbmQgb3V0ZXJXaWR0aAoJJC5mblsgJ291dGVyJyArIG5hbWUgXSA9IGZ1bmN0aW9uKG9wdGlvbnMpIHsKCQlpZiAoIXRoaXNbMF0pIHJldHVybjsKCQkKCQl2YXIgdG9ybCA9IG5hbWUgPT0gJ0hlaWdodCcgPyAnVG9wJyAgICA6ICdMZWZ0JywgIC8vIHRvcCBvciBsZWZ0CgkJICAgIGJvcnIgPSBuYW1lID09ICdIZWlnaHQnID8gJ0JvdHRvbScgOiAnUmlnaHQnOyAvLyBib3R0b20gb3IgcmlnaHQKCQkKCQlvcHRpb25zID0gJC5leHRlbmQoeyBtYXJnaW46IGZhbHNlIH0sIG9wdGlvbnMgfHwge30pOwoJCXZhciB2YWwgPSB0aGlzLmNzcygnZGlzcGxheScpICE9ICdub25lJyA/IAoJCQkJdGhpc1swXVsnb2Zmc2V0JyArIG5hbWVdIDogCgkJCQludW0oIHRoaXMsIG5hbWUudG9Mb3dlckNhc2UoKSApCgkJCQkJKyBudW0odGhpcywgJ2JvcmRlcicgKyB0b3JsICsgJ1dpZHRoJykgKyBudW0odGhpcywgJ2JvcmRlcicgKyBib3JyICsgJ1dpZHRoJykKCQkJCQkrIG51bSh0aGlzLCAncGFkZGluZycgKyB0b3JsKSArIG51bSh0aGlzLCAncGFkZGluZycgKyBib3JyKTsKCQlyZXR1cm4gdmFsICsgKG9wdGlvbnMubWFyZ2luID8gKG51bSh0aGlzLCAnbWFyZ2luJyArIHRvcmwpICsgbnVtKHRoaXMsICdtYXJnaW4nICsgYm9ycikpIDogMCk7Cgl9Owp9KTsKCi8vIENyZWF0ZSBzY3JvbGxMZWZ0IGFuZCBzY3JvbGxUb3AgbWV0aG9kcwokLmVhY2goIFsnTGVmdCcsICdUb3AnXSwgZnVuY3Rpb24oaSwgbmFtZSkgewoJJC5mblsgJ3Njcm9sbCcgKyBuYW1lIF0gPSBmdW5jdGlvbih2YWwpIHsKCQlpZiAoIXRoaXNbMF0pIHJldHVybjsKCQkKCQlyZXR1cm4gdmFsICE9IHVuZGVmaW5lZCA/CgkJCgkJCS8vIFNldCB0aGUgc2Nyb2xsIG9mZnNldAoJCQl0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCQl0aGlzID09IHdpbmRvdyB8fCB0aGlzID09IGRvY3VtZW50ID8KCQkJCQl3aW5kb3cuc2Nyb2xsVG8oIAoJCQkJCQluYW1lID09ICdMZWZ0JyA/IHZhbCA6ICQod2luZG93KVsgJ3Njcm9sbExlZnQnIF0oKSwKCQkJCQkJbmFtZSA9PSAnVG9wJyAgPyB2YWwgOiAkKHdpbmRvdylbICdzY3JvbGxUb3AnICBdKCkKCQkJCQkpIDoKCQkJCQl0aGlzWyAnc2Nyb2xsJyArIG5hbWUgXSA9IHZhbDsKCQkJfSkgOgoJCQkKCQkJLy8gUmV0dXJuIHRoZSBzY3JvbGwgb2Zmc2V0CgkJCXRoaXNbMF0gPT0gd2luZG93IHx8IHRoaXNbMF0gPT0gZG9jdW1lbnQgPwoJCQkJc2VsZlsgKG5hbWUgPT0gJ0xlZnQnID8gJ3BhZ2VYT2Zmc2V0JyA6ICdwYWdlWU9mZnNldCcpIF0gfHwKCQkJCQkkLmJveE1vZGVsICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFsgJ3Njcm9sbCcgKyBuYW1lIF0gfHwKCQkJCQlkb2N1bWVudC5ib2R5WyAnc2Nyb2xsJyArIG5hbWUgXSA6CgkJCQl0aGlzWzBdWyAnc2Nyb2xsJyArIG5hbWUgXTsKCX07Cn0pOwoKJC5mbi5leHRlbmQoewoJcG9zaXRpb246IGZ1bmN0aW9uKCkgewoJCXZhciBsZWZ0ID0gMCwgdG9wID0gMCwgZWxlbSA9IHRoaXNbMF0sIG9mZnNldCwgcGFyZW50T2Zmc2V0LCBvZmZzZXRQYXJlbnQsIHJlc3VsdHM7CgkJCgkJaWYgKGVsZW0pIHsKCQkJLy8gR2V0ICpyZWFsKiBvZmZzZXRQYXJlbnQKCQkJb2Zmc2V0UGFyZW50ID0gdGhpcy5vZmZzZXRQYXJlbnQoKTsKCQkJCgkJCS8vIEdldCBjb3JyZWN0IG9mZnNldHMKCQkJb2Zmc2V0ICAgICAgID0gdGhpcy5vZmZzZXQoKTsKCQkJcGFyZW50T2Zmc2V0ID0gb2Zmc2V0UGFyZW50Lm9mZnNldCgpOwoJCQkKCQkJLy8gU3VidHJhY3QgZWxlbWVudCBtYXJnaW5zCgkJCW9mZnNldC50b3AgIC09IG51bShlbGVtLCAnbWFyZ2luVG9wJyk7CgkJCW9mZnNldC5sZWZ0IC09IG51bShlbGVtLCAnbWFyZ2luTGVmdCcpOwoJCQkKCQkJLy8gQWRkIG9mZnNldFBhcmVudCBib3JkZXJzCgkJCXBhcmVudE9mZnNldC50b3AgICs9IG51bShvZmZzZXRQYXJlbnQsICdib3JkZXJUb3BXaWR0aCcpOwoJCQlwYXJlbnRPZmZzZXQubGVmdCArPSBudW0ob2Zmc2V0UGFyZW50LCAnYm9yZGVyTGVmdFdpZHRoJyk7CgkJCQoJCQkvLyBTdWJ0cmFjdCB0aGUgdHdvIG9mZnNldHMKCQkJcmVzdWx0cyA9IHsKCQkJCXRvcDogIG9mZnNldC50b3AgIC0gcGFyZW50T2Zmc2V0LnRvcCwKCQkJCWxlZnQ6IG9mZnNldC5sZWZ0IC0gcGFyZW50T2Zmc2V0LmxlZnQKCQkJfTsKCQl9CgkJCgkJcmV0dXJuIHJlc3VsdHM7Cgl9LAoJCglvZmZzZXRQYXJlbnQ6IGZ1bmN0aW9uKCkgewoJCXZhciBvZmZzZXRQYXJlbnQgPSB0aGlzWzBdLm9mZnNldFBhcmVudDsKCQl3aGlsZSAoIG9mZnNldFBhcmVudCAmJiAoIS9eYm9keXxodG1sJC9pLnRlc3Qob2Zmc2V0UGFyZW50LnRhZ05hbWUpICYmICQuY3NzKG9mZnNldFBhcmVudCwgJ3Bvc2l0aW9uJykgPT0gJ3N0YXRpYycpICkKCQkJb2Zmc2V0UGFyZW50ID0gb2Zmc2V0UGFyZW50Lm9mZnNldFBhcmVudDsKCQlyZXR1cm4gJChvZmZzZXRQYXJlbnQpOwoJfQp9KTsKCmZ1bmN0aW9uIG51bShlbCwgcHJvcCkgewoJcmV0dXJuIHBhcnNlSW50KCQuY3VyQ1NTKGVsLmpxdWVyeT9lbFswXTplbCxwcm9wLHRydWUpKXx8MDsKfTsKCn0pKGpRdWVyeSk7]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.dimensions.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogQ29weXJpZ2h0IChjKSAyMDA3IFBhdWwgQmFrYXVzIChwYXVsLmJha2F1c0Bnb29nbGVtYWlsLmNvbSkgYW5kIEJyYW5kb24gQWFyb24gKGJyYW5kb24uYWFyb25AZ21haWwuY29tIHx8IGh0dHA6Ly9icmFuZG9uYWFyb24ubmV0KQogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgKGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwKQogKiBhbmQgR1BMIChodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2dwbC1saWNlbnNlLnBocCkgbGljZW5zZXMuCiAqCiAqICRMYXN0Q2hhbmdlZERhdGU6IDIwMDctMDgtMTcgMTQ6MTQ6MTEgLTA0MDAgKEZyaSwgMTcgQXVnIDIwMDcpICQKICogJFJldjogMjc1OSAkCiAqCiAqIFZlcnNpb246IDEuMS4yCiAqCiAqIFJlcXVpcmVzOiBqUXVlcnkgMS4xLjMrCiAqLwoKKGZ1bmN0aW9uKCQpewoKLy8gc3RvcmUgYSBjb3B5IG9mIHRoZSBjb3JlIGhlaWdodCBhbmQgd2lkdGggbWV0aG9kcwp2YXIgaGVpZ2h0ID0gJC5mbi5oZWlnaHQsCiAgICB3aWR0aCAgPSAkLmZuLndpZHRoOwoKJC5mbi5leHRlbmQoewoJLyoqCgkgKiBJZiB1c2VkIG9uIGRvY3VtZW50LCByZXR1cm5zIHRoZSBkb2N1bWVudCdzIGhlaWdodCAoaW5uZXJIZWlnaHQpLgoJICogSWYgdXNlZCBvbiB3aW5kb3csIHJldHVybnMgdGhlIHZpZXdwb3J0J3MgKHdpbmRvdykgaGVpZ2h0LgoJICogU2VlIGNvcmUgZG9jcyBvbiBoZWlnaHQoKSB0byBzZWUgd2hhdCBoYXBwZW5zIHdoZW4gdXNlZCBvbiBhbiBlbGVtZW50LgoJICoKCSAqIEBleGFtcGxlICQoIiN0ZXN0ZGl2IikuaGVpZ2h0KCkKCSAqIEByZXN1bHQgMjAwCgkgKgoJICogQGV4YW1wbGUgJChkb2N1bWVudCkuaGVpZ2h0KCkKCSAqIEByZXN1bHQgODAwCgkgKgoJICogQGV4YW1wbGUgJCh3aW5kb3cpLmhlaWdodCgpCgkgKiBAcmVzdWx0IDQwMAoJICoKCSAqIEBuYW1lIGhlaWdodAoJICogQHR5cGUgTnVtYmVyCgkgKiBAY2F0IFBsdWdpbnMvRGltZW5zaW9ucwoJICovCgloZWlnaHQ6IGZ1bmN0aW9uKCkgewoJCWlmICggIXRoaXNbMF0gKSBlcnJvcigpOwoJCWlmICggdGhpc1swXSA9PSB3aW5kb3cgKQoJCQlpZiAoICQuYnJvd3Nlci5vcGVyYSB8fCAoJC5icm93c2VyLnNhZmFyaSAmJiBwYXJzZUludCgkLmJyb3dzZXIudmVyc2lvbikgPiA1MjApICkKCQkJCXJldHVybiBzZWxmLmlubmVySGVpZ2h0IC0gKCgkKGRvY3VtZW50KS5oZWlnaHQoKSA+IHNlbGYuaW5uZXJIZWlnaHQpID8gZ2V0U2Nyb2xsYmFyV2lkdGgoKSA6IDApOwoKCQkJZWxzZSBpZiAoICQuYnJvd3Nlci5zYWZhcmkgKQoJCQkJcmV0dXJuIHNlbGYuaW5uZXJIZWlnaHQ7CgkJCWVsc2UKICAgICAgICAgIC8vcmV0dXJuICQuYm94TW9kZWwgJiYgTWF0aC5taW4oZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCxkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodCk7CiAgICAgIAkJcmV0dXJuICQuYm94TW9kZWwgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCB8fCBkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodDsKCQlpZiAoIHRoaXNbMF0gPT0gZG9jdW1lbnQgKSAKCQkJcmV0dXJuIE1hdGgubWF4KCAoJC5ib3hNb2RlbCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0IHx8IGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0KSwgZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQgKTsKCQkKCQlyZXR1cm4gaGVpZ2h0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7Cgl9LAoJCgkvKioKCSAqIElmIHVzZWQgb24gZG9jdW1lbnQsIHJldHVybnMgdGhlIGRvY3VtZW50J3Mgd2lkdGggKGlubmVyV2lkdGgpLgoJICogSWYgdXNlZCBvbiB3aW5kb3csIHJldHVybnMgdGhlIHZpZXdwb3J0J3MgKHdpbmRvdykgd2lkdGguCgkgKiBTZWUgY29yZSBkb2NzIG9uIHdpZHRoKCkgdG8gc2VlIHdoYXQgaGFwcGVucyB3aGVuIHVzZWQgb24gYW4gZWxlbWVudC4KCSAqCgkgKiBAZXhhbXBsZSAkKCIjdGVzdGRpdiIpLndpZHRoKCkKCSAqIEByZXN1bHQgMjAwCgkgKgoJICogQGV4YW1wbGUgJChkb2N1bWVudCkud2lkdGgoKQoJICogQHJlc3VsdCA4MDAKCSAqCgkgKiBAZXhhbXBsZSAkKHdpbmRvdykud2lkdGgoKQoJICogQHJlc3VsdCA0MDAKCSAqCgkgKiBAbmFtZSB3aWR0aAoJICogQHR5cGUgTnVtYmVyCgkgKiBAY2F0IFBsdWdpbnMvRGltZW5zaW9ucwoJICovCgl3aWR0aDogZnVuY3Rpb24oKSB7CgkJaWYgKCF0aGlzWzBdKSBlcnJvcigpOwoJCWlmICggdGhpc1swXSA9PSB3aW5kb3cgKQoJCQlpZiAoICQuYnJvd3Nlci5vcGVyYSB8fCAoJC5icm93c2VyLnNhZmFyaSAmJiBwYXJzZUludCgkLmJyb3dzZXIudmVyc2lvbikgPiA1MjApICkKCQkJCXJldHVybiBzZWxmLmlubmVyV2lkdGggLSAoKCQoZG9jdW1lbnQpLndpZHRoKCkgPiBzZWxmLmlubmVyV2lkdGgpID8gZ2V0U2Nyb2xsYmFyV2lkdGgoKSA6IDApOwoJCQllbHNlIGlmICggJC5icm93c2VyLnNhZmFyaSApCgkJCQlyZXR1cm4gc2VsZi5pbm5lcldpZHRoOwoJCQllbHNlCiAgICAgICAgICAgICAgICByZXR1cm4gJC5ib3hNb2RlbCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggfHwgZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDsKCgkJaWYgKCB0aGlzWzBdID09IGRvY3VtZW50ICkKCQkJaWYgKCQuYnJvd3Nlci5tb3ppbGxhKSB7CgkJCQkvLyBtb3ppbGxhIHJlcG9ydHMgc2Nyb2xsV2lkdGggYW5kIG9mZnNldFdpZHRoIGFzIHRoZSBzYW1lCgkJCQl2YXIgc2Nyb2xsTGVmdCA9IHNlbGYucGFnZVhPZmZzZXQ7CgkJCQlzZWxmLnNjcm9sbFRvKDk5OTk5OTk5LCBzZWxmLnBhZ2VZT2Zmc2V0KTsKCQkJCXZhciBzY3JvbGxXaWR0aCA9IHNlbGYucGFnZVhPZmZzZXQ7CgkJCQlzZWxmLnNjcm9sbFRvKHNjcm9sbExlZnQsIHNlbGYucGFnZVlPZmZzZXQpOwoJCQkJcmV0dXJuIGRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGggKyBzY3JvbGxXaWR0aDsKCQkJfQoJCQllbHNlIAoJCQkJcmV0dXJuIE1hdGgubWF4KCAoKCQuYm94TW9kZWwgJiYgISQuYnJvd3Nlci5zYWZhcmkpICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxXaWR0aCB8fCBkb2N1bWVudC5ib2R5LnNjcm9sbFdpZHRoKSwgZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aCApOwoKCQlyZXR1cm4gd2lkdGguYXBwbHkodGhpcywgYXJndW1lbnRzKTsKCX0sCgkKCS8qKgoJICogR2V0cyB0aGUgaW5uZXIgaGVpZ2h0IChleGNsdWRlcyB0aGUgYm9yZGVyIGFuZCBpbmNsdWRlcyB0aGUgcGFkZGluZykgZm9yIHRoZSBmaXJzdCBtYXRjaGVkIGVsZW1lbnQuCgkgKiBJZiB1c2VkIG9uIGRvY3VtZW50LCByZXR1cm5zIHRoZSBkb2N1bWVudCdzIGhlaWdodCAoaW5uZXJIZWlnaHQpLgoJICogSWYgdXNlZCBvbiB3aW5kb3csIHJldHVybnMgdGhlIHZpZXdwb3J0J3MgKHdpbmRvdykgaGVpZ2h0LgoJICoKCSAqIEBleGFtcGxlICQoIiN0ZXN0ZGl2IikuaW5uZXJIZWlnaHQoKQoJICogQHJlc3VsdCAyMTAKCSAqCgkgKiBAbmFtZSBpbm5lckhlaWdodAoJICogQHR5cGUgTnVtYmVyCgkgKiBAY2F0IFBsdWdpbnMvRGltZW5zaW9ucwoJICovCglpbm5lckhlaWdodDogZnVuY3Rpb24oKSB7CgkJaWYgKCF0aGlzWzBdKSBlcnJvcigpOwoJCXJldHVybiB0aGlzWzBdID09IHdpbmRvdyB8fCB0aGlzWzBdID09IGRvY3VtZW50ID8KCQkJdGhpcy5oZWlnaHQoKSA6CgkJCXRoaXMuaXMoJzp2aXNpYmxlJykgPwoJCQkJdGhpc1swXS5vZmZzZXRIZWlnaHQgLSBudW0odGhpcywgJ2JvcmRlclRvcFdpZHRoJykgLSBudW0odGhpcywgJ2JvcmRlckJvdHRvbVdpZHRoJykgOgoJCQkJdGhpcy5oZWlnaHQoKSArIG51bSh0aGlzLCAncGFkZGluZ1RvcCcpICsgbnVtKHRoaXMsICdwYWRkaW5nQm90dG9tJyk7Cgl9LAoJCgkvKioKCSAqIEdldHMgdGhlIGlubmVyIHdpZHRoIChleGNsdWRlcyB0aGUgYm9yZGVyIGFuZCBpbmNsdWRlcyB0aGUgcGFkZGluZykgZm9yIHRoZSBmaXJzdCBtYXRjaGVkIGVsZW1lbnQuCgkgKiBJZiB1c2VkIG9uIGRvY3VtZW50LCByZXR1cm5zIHRoZSBkb2N1bWVudCdzIHdpZHRoIChpbm5lcldpZHRoKS4KCSAqIElmIHVzZWQgb24gd2luZG93LCByZXR1cm5zIHRoZSB2aWV3cG9ydCdzICh3aW5kb3cpIHdpZHRoLgoJICoKCSAqIEBleGFtcGxlICQoIiN0ZXN0ZGl2IikuaW5uZXJXaWR0aCgpCgkgKiBAcmVzdWx0IDIxMAoJICoKCSAqIEBuYW1lIGlubmVyV2lkdGgKCSAqIEB0eXBlIE51bWJlcgoJICogQGNhdCBQbHVnaW5zL0RpbWVuc2lvbnMKCSAqLwoJaW5uZXJXaWR0aDogZnVuY3Rpb24oKSB7CgkJaWYgKCF0aGlzWzBdKSBlcnJvcigpOwoJCXJldHVybiB0aGlzWzBdID09IHdpbmRvdyB8fCB0aGlzWzBdID09IGRvY3VtZW50ID8KCQkJdGhpcy53aWR0aCgpIDoKCQkJdGhpcy5pcygnOnZpc2libGUnKSA/CgkJCQl0aGlzWzBdLm9mZnNldFdpZHRoIC0gbnVtKHRoaXMsICdib3JkZXJMZWZ0V2lkdGgnKSAtIG51bSh0aGlzLCAnYm9yZGVyUmlnaHRXaWR0aCcpIDoKCQkJCXRoaXMud2lkdGgoKSArIG51bSh0aGlzLCAncGFkZGluZ0xlZnQnKSArIG51bSh0aGlzLCAncGFkZGluZ1JpZ2h0Jyk7Cgl9LAoJCgkvKioKCSAqIEdldHMgdGhlIG91dGVyIGhlaWdodCAoaW5jbHVkZXMgdGhlIGJvcmRlciBhbmQgcGFkZGluZykgZm9yIHRoZSBmaXJzdCBtYXRjaGVkIGVsZW1lbnQuCgkgKiBJZiB1c2VkIG9uIGRvY3VtZW50LCByZXR1cm5zIHRoZSBkb2N1bWVudCdzIGhlaWdodCAoaW5uZXJIZWlnaHQpLgoJICogSWYgdXNlZCBvbiB3aW5kb3csIHJldHVybnMgdGhlIHZpZXdwb3J0J3MgKHdpbmRvdykgaGVpZ2h0LgoJICoKCSAqIFRoZSBtYXJnaW4gY2FuIGJlIGluY2x1ZGVkIGluIHRoZSBjYWxjdWxhdGlvbiBieSBwYXNzaW5nIGFuIG9wdGlvbnMgbWFwIHdpdGggbWFyZ2luCgkgKiBzZXQgdG8gdHJ1ZS4KCSAqCgkgKiBAZXhhbXBsZSAkKCIjdGVzdGRpdiIpLm91dGVySGVpZ2h0KCkKCSAqIEByZXN1bHQgMjIwCgkgKgoJICogQGV4YW1wbGUgJCgiI3Rlc3RkaXYiKS5vdXRlckhlaWdodCh7IG1hcmdpbjogdHJ1ZSB9KQoJICogQHJlc3VsdCAyNDAKCSAqCgkgKiBAbmFtZSBvdXRlckhlaWdodAoJICogQHR5cGUgTnVtYmVyCgkgKiBAcGFyYW0gTWFwIG9wdGlvbnMgT3B0aW9uYWwgc2V0dGluZ3MgdG8gY29uZmlndXJlIHRoZSB3YXkgdGhlIG91dGVyIGhlaWdodCBpcyBjYWxjdWxhdGVkLgoJICogQGNhdCBQbHVnaW5zL0RpbWVuc2lvbnMKCSAqLwoJb3V0ZXJIZWlnaHQ6IGZ1bmN0aW9uKG9wdGlvbnMpIHsKCQlpZiAoIXRoaXNbMF0pIGVycm9yKCk7CgkJb3B0aW9ucyA9ICQuZXh0ZW5kKHsgbWFyZ2luOiBmYWxzZSB9LCBvcHRpb25zIHx8IHt9KTsKCQlyZXR1cm4gdGhpc1swXSA9PSB3aW5kb3cgfHwgdGhpc1swXSA9PSBkb2N1bWVudCA/CgkJCXRoaXMuaGVpZ2h0KCkgOgoJCQl0aGlzLmlzKCc6dmlzaWJsZScpID8KCQkJCXRoaXNbMF0ub2Zmc2V0SGVpZ2h0ICsgKG9wdGlvbnMubWFyZ2luID8gKG51bSh0aGlzLCAnbWFyZ2luVG9wJykgKyBudW0odGhpcywgJ21hcmdpbkJvdHRvbScpKSA6IDApIDoKCQkJCXRoaXMuaGVpZ2h0KCkgCgkJCQkJKyBudW0odGhpcywnYm9yZGVyVG9wV2lkdGgnKSArIG51bSh0aGlzLCAnYm9yZGVyQm90dG9tV2lkdGgnKSAKCQkJCQkrIG51bSh0aGlzLCAncGFkZGluZ1RvcCcpICsgbnVtKHRoaXMsICdwYWRkaW5nQm90dG9tJykKCQkJCQkrIChvcHRpb25zLm1hcmdpbiA/IChudW0odGhpcywgJ21hcmdpblRvcCcpICsgbnVtKHRoaXMsICdtYXJnaW5Cb3R0b20nKSkgOiAwKTsKCX0sCgkKCS8qKgoJICogR2V0cyB0aGUgb3V0ZXIgd2lkdGggKGluY2x1ZGluZyB0aGUgYm9yZGVyIGFuZCBwYWRkaW5nKSBmb3IgdGhlIGZpcnN0IG1hdGNoZWQgZWxlbWVudC4KCSAqIElmIHVzZWQgb24gZG9jdW1lbnQsIHJldHVybnMgdGhlIGRvY3VtZW50J3Mgd2lkdGggKGlubmVyV2lkdGgpLgoJICogSWYgdXNlZCBvbiB3aW5kb3csIHJldHVybnMgdGhlIHZpZXdwb3J0J3MgKHdpbmRvdykgd2lkdGguCgkgKgoJICogVGhlIG1hcmdpbiBjYW4gYmUgaW5jbHVkZWQgaW4gdGhlIGNhbGN1bGF0aW9uIGJ5IHBhc3NpbmcgYW4gb3B0aW9ucyBtYXAgd2l0aCBtYXJnaW4KCSAqIHNldCB0byB0cnVlLgoJICoKCSAqIEBleGFtcGxlICQoIiN0ZXN0ZGl2Iikub3V0ZXJXaWR0aCgpCgkgKiBAcmVzdWx0IDEwMDAKCSAqCgkgKiBAZXhhbXBsZSAkKCIjdGVzdGRpdiIpLm91dGVyV2lkdGgoeyBtYXJnaW46IHRydWUgfSkKCSAqIEByZXN1bHQgMTAyMAoJICogCgkgKiBAbmFtZSBvdXRlckhlaWdodAoJICogQHR5cGUgTnVtYmVyCgkgKiBAcGFyYW0gTWFwIG9wdGlvbnMgT3B0aW9uYWwgc2V0dGluZ3MgdG8gY29uZmlndXJlIHRoZSB3YXkgdGhlIG91dGVyIHdpZHRoIGlzIGNhbGN1bGF0ZWQuCgkgKiBAY2F0IFBsdWdpbnMvRGltZW5zaW9ucwoJICovCglvdXRlcldpZHRoOiBmdW5jdGlvbihvcHRpb25zKSB7CgkJaWYgKCF0aGlzWzBdKSBlcnJvcigpOwoJCW9wdGlvbnMgPSAkLmV4dGVuZCh7IG1hcmdpbjogZmFsc2UgfSwgb3B0aW9ucyB8fCB7fSk7CgkJcmV0dXJuIHRoaXNbMF0gPT0gd2luZG93IHx8IHRoaXNbMF0gPT0gZG9jdW1lbnQgPwoJCQl0aGlzLndpZHRoKCkgOgoJCQl0aGlzLmlzKCc6dmlzaWJsZScpID8KCQkJCXRoaXNbMF0ub2Zmc2V0V2lkdGggKyAob3B0aW9ucy5tYXJnaW4gPyAobnVtKHRoaXMsICdtYXJnaW5MZWZ0JykgKyBudW0odGhpcywgJ21hcmdpblJpZ2h0JykpIDogMCkgOgoJCQkJdGhpcy53aWR0aCgpIAoJCQkJCSsgbnVtKHRoaXMsICdib3JkZXJMZWZ0V2lkdGgnKSArIG51bSh0aGlzLCAnYm9yZGVyUmlnaHRXaWR0aCcpIAoJCQkJCSsgbnVtKHRoaXMsICdwYWRkaW5nTGVmdCcpICsgbnVtKHRoaXMsICdwYWRkaW5nUmlnaHQnKQoJCQkJCSsgKG9wdGlvbnMubWFyZ2luID8gKG51bSh0aGlzLCAnbWFyZ2luTGVmdCcpICsgbnVtKHRoaXMsICdtYXJnaW5SaWdodCcpKSA6IDApOwoJfSwKCQoJLyoqCgkgKiBHZXRzIGhvdyBtYW55IHBpeGVscyB0aGUgdXNlciBoYXMgc2Nyb2xsZWQgdG8gdGhlIHJpZ2h0IChzY3JvbGxMZWZ0KS4KCSAqIFdvcmtzIG9uIGNvbnRhaW5lcnMgd2l0aCBvdmVyZmxvdzogYXV0byBhbmQgd2luZG93L2RvY3VtZW50LgoJICoKCSAqIEBleGFtcGxlICQod2luZG93KS5zY3JvbGxMZWZ0KCkKCSAqIEByZXN1bHQgMTAwCgkgKgoJICogQGV4YW1wbGUgJChkb2N1bWVudCkuc2Nyb2xsTGVmdCgpCgkgKiBAcmVzdWx0IDEwMAoJICogCgkgKiBAZXhhbXBsZSAkKCIjdGVzdGRpdiIpLnNjcm9sbExlZnQoKQoJICogQHJlc3VsdCAxMDAKCSAqCgkgKiBAbmFtZSBzY3JvbGxMZWZ0CgkgKiBAdHlwZSBOdW1iZXIKCSAqIEBjYXQgUGx1Z2lucy9EaW1lbnNpb25zCgkgKi8KCS8qKgoJICogU2V0cyB0aGUgc2Nyb2xsTGVmdCBwcm9wZXJ0eSBmb3IgZWFjaCBlbGVtZW50IGFuZCBjb250aW51ZXMgdGhlIGNoYWluLgoJICogV29ya3Mgb24gY29udGFpbmVycyB3aXRoIG92ZXJmbG93OiBhdXRvIGFuZCB3aW5kb3cvZG9jdW1lbnQuCgkgKgoJICogQGV4YW1wbGUgJCh3aW5kb3cpLnNjcm9sbExlZnQoMTAwKS5zY3JvbGxMZWZ0KCkKCSAqIEByZXN1bHQgMTAwCgkgKiAKCSAqIEBleGFtcGxlICQoZG9jdW1lbnQpLnNjcm9sbExlZnQoMTAwKS5zY3JvbGxMZWZ0KCkKCSAqIEByZXN1bHQgMTAwCgkgKgoJICogQGV4YW1wbGUgJCgiI3Rlc3RkaXYiKS5zY3JvbGxMZWZ0KDEwMCkuc2Nyb2xsTGVmdCgpCgkgKiBAcmVzdWx0IDEwMAoJICoKCSAqIEBuYW1lIHNjcm9sbExlZnQKCSAqIEBwYXJhbSBOdW1iZXIgdmFsdWUgQSBwb3NpdGl2ZSBudW1iZXIgcmVwcmVzZW50aW5nIHRoZSBkZXNpcmVkIHNjcm9sbExlZnQuCgkgKiBAdHlwZSBqUXVlcnkKCSAqIEBjYXQgUGx1Z2lucy9EaW1lbnNpb25zCgkgKi8KCXNjcm9sbExlZnQ6IGZ1bmN0aW9uKHZhbCkgewoJCWlmICghdGhpc1swXSkgZXJyb3IoKTsKCQlpZiAoIHZhbCAhPSB1bmRlZmluZWQgKQoJCQkvLyBzZXQgdGhlIHNjcm9sbCBsZWZ0CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCQlpZiAodGhpcyA9PSB3aW5kb3cgfHwgdGhpcyA9PSBkb2N1bWVudCkKCQkJCQl3aW5kb3cuc2Nyb2xsVG8oIHZhbCwgJCh3aW5kb3cpLnNjcm9sbFRvcCgpICk7CgkJCQllbHNlCgkJCQkJdGhpcy5zY3JvbGxMZWZ0ID0gdmFsOwoJCQl9KTsKCQkKCQkvLyByZXR1cm4gdGhlIHNjcm9sbCBsZWZ0IG9mZmVzdCBpbiBwaXhlbHMKCQlpZiAoIHRoaXNbMF0gPT0gd2luZG93IHx8IHRoaXNbMF0gPT0gZG9jdW1lbnQgKQoJCQlyZXR1cm4gc2VsZi5wYWdlWE9mZnNldCB8fAoJCQkJJC5ib3hNb2RlbCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdCB8fAoJCQkJZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0OwoJCQkJCgkJcmV0dXJuIHRoaXNbMF0uc2Nyb2xsTGVmdDsKCX0sCgkKCS8qKgoJICogR2V0cyBob3cgbWFueSBwaXhlbHMgdGhlIHVzZXIgaGFzIHNjcm9sbGVkIHRvIHRoZSBib3R0b20gKHNjcm9sbFRvcCkuCgkgKiBXb3JrcyBvbiBjb250YWluZXJzIHdpdGggb3ZlcmZsb3c6IGF1dG8gYW5kIHdpbmRvdy9kb2N1bWVudC4KCSAqCgkgKiBAZXhhbXBsZSAkKHdpbmRvdykuc2Nyb2xsVG9wKCkKCSAqIEByZXN1bHQgMTAwCgkgKgoJICogQGV4YW1wbGUgJChkb2N1bWVudCkuc2Nyb2xsVG9wKCkKCSAqIEByZXN1bHQgMTAwCgkgKiAKCSAqIEBleGFtcGxlICQoIiN0ZXN0ZGl2Iikuc2Nyb2xsVG9wKCkKCSAqIEByZXN1bHQgMTAwCgkgKgoJICogQG5hbWUgc2Nyb2xsVG9wCgkgKiBAdHlwZSBOdW1iZXIKCSAqIEBjYXQgUGx1Z2lucy9EaW1lbnNpb25zCgkgKi8KCS8qKgoJICogU2V0cyB0aGUgc2Nyb2xsVG9wIHByb3BlcnR5IGZvciBlYWNoIGVsZW1lbnQgYW5kIGNvbnRpbnVlcyB0aGUgY2hhaW4uCgkgKiBXb3JrcyBvbiBjb250YWluZXJzIHdpdGggb3ZlcmZsb3c6IGF1dG8gYW5kIHdpbmRvdy9kb2N1bWVudC4KCSAqCgkgKiBAZXhhbXBsZSAkKHdpbmRvdykuc2Nyb2xsVG9wKDEwMCkuc2Nyb2xsVG9wKCkKCSAqIEByZXN1bHQgMTAwCgkgKiAKCSAqIEBleGFtcGxlICQoZG9jdW1lbnQpLnNjcm9sbFRvcCgxMDApLnNjcm9sbFRvcCgpCgkgKiBAcmVzdWx0IDEwMAoJICoKCSAqIEBleGFtcGxlICQoIiN0ZXN0ZGl2Iikuc2Nyb2xsVG9wKDEwMCkuc2Nyb2xsVG9wKCkKCSAqIEByZXN1bHQgMTAwCgkgKgoJICogQG5hbWUgc2Nyb2xsVG9wCgkgKiBAcGFyYW0gTnVtYmVyIHZhbHVlIEEgcG9zaXRpdmUgbnVtYmVyIHJlcHJlc2VudGluZyB0aGUgZGVzaXJlZCBzY3JvbGxUb3AuCgkgKiBAdHlwZSBqUXVlcnkKCSAqIEBjYXQgUGx1Z2lucy9EaW1lbnNpb25zCgkgKi8KCXNjcm9sbFRvcDogZnVuY3Rpb24odmFsKSB7CgkJaWYgKCF0aGlzWzBdKSBlcnJvcigpOwoJCWlmICggdmFsICE9IHVuZGVmaW5lZCApCgkJCS8vIHNldCB0aGUgc2Nyb2xsIHRvcAoJCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgewoJCQkJaWYgKHRoaXMgPT0gd2luZG93IHx8IHRoaXMgPT0gZG9jdW1lbnQpCgkJCQkJd2luZG93LnNjcm9sbFRvKCAkKHdpbmRvdykuc2Nyb2xsTGVmdCgpLCB2YWwgKTsKCQkJCWVsc2UKCQkJCQl0aGlzLnNjcm9sbFRvcCA9IHZhbDsKCQkJfSk7CgkJCgkJLy8gcmV0dXJuIHRoZSBzY3JvbGwgdG9wIG9mZnNldCBpbiBwaXhlbHMKCQlpZiAoIHRoaXNbMF0gPT0gd2luZG93IHx8IHRoaXNbMF0gPT0gZG9jdW1lbnQgKQoJCQlyZXR1cm4gc2VsZi5wYWdlWU9mZnNldCB8fAoJCQkJJC5ib3hNb2RlbCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wIHx8CgkJCQlkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKCgkJcmV0dXJuIHRoaXNbMF0uc2Nyb2xsVG9wOwoJfSwKCQoJLyoqIAoJICogR2V0cyB0aGUgdG9wIGFuZCBsZWZ0IHBvc2l0aW9uZWQgb2Zmc2V0IGluIHBpeGVscy4KCSAqIFRoZSBwb3NpdGlvbmVkIG9mZnNldCBpcyB0aGUgb2Zmc2V0IGJldHdlZW4gYSBwb3NpdGlvbmVkCgkgKiBwYXJlbnQgYW5kIHRoZSBlbGVtZW50IGl0c2VsZi4KCSAqCgkgKiBGb3IgYWNjdXJhdGUgY2FsY3VsYXRpb25zIG1ha2Ugc3VyZSB0byB1c2UgcGl4ZWwgdmFsdWVzIGZvciBtYXJnaW5zLCBib3JkZXJzIGFuZCBwYWRkaW5nLgoJICoKCSAqIEBleGFtcGxlICQoIiN0ZXN0ZGl2IikucG9zaXRpb24oKQoJICogQHJlc3VsdCB7IHRvcDogMTAwLCBsZWZ0OiAxMDAgfQoJICoKCSAqIEBleGFtcGxlIHZhciBwb3NpdGlvbiA9IHt9OwoJICogJCgiI3Rlc3RkaXYiKS5wb3NpdGlvbihwb3NpdGlvbikKCSAqIEByZXN1bHQgcG9zaXRpb24gPSB7IHRvcDogMTAwLCBsZWZ0OiAxMDAgfQoJICogCgkgKiBAbmFtZSBwb3NpdGlvbgoJICogQHBhcmFtIE9iamVjdCByZXR1cm5PYmplY3QgT3B0aW9uYWwgQW4gb2JqZWN0IHRvIHN0b3JlIHRoZSByZXR1cm4gdmFsdWUgaW4sIHNvIGFzIG5vdCB0byBicmVhayB0aGUgY2hhaW4uIElmIHBhc3NlZCBpbiB0aGUKCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYWluIHdpbGwgbm90IGJlIGJyb2tlbiBhbmQgdGhlIHJlc3VsdCB3aWxsIGJlIGFzc2lnbmVkIHRvIHRoaXMgb2JqZWN0LgoJICogQHR5cGUgT2JqZWN0CgkgKiBAY2F0IFBsdWdpbnMvRGltZW5zaW9ucwoJICovCglwb3NpdGlvbjogZnVuY3Rpb24ocmV0dXJuT2JqZWN0KSB7CgkJcmV0dXJuIHRoaXMub2Zmc2V0KHsgbWFyZ2luOiBmYWxzZSwgc2Nyb2xsOiBmYWxzZSwgcmVsYXRpdmVUbzogdGhpcy5vZmZzZXRQYXJlbnQoKSB9LCByZXR1cm5PYmplY3QpOwoJfSwKCQoJLyoqCgkgKiBHZXRzIHRoZSBsb2NhdGlvbiBvZiB0aGUgZWxlbWVudCBpbiBwaXhlbHMgZnJvbSB0aGUgdG9wIGxlZnQgY29ybmVyIG9mIHRoZSB2aWV3cG9ydC4KCSAqIFRoZSBvZmZzZXQgbWV0aG9kIHRha2VzIGFuIG9wdGlvbmFsIG1hcCBvZiBrZXkgdmFsdWUgcGFpcnMgdG8gY29uZmlndXJlIHRoZSB3YXkKCSAqIHRoZSBvZmZzZXQgaXMgY2FsY3VsYXRlZC4gSGVyZSBhcmUgdGhlIGRpZmZlcmVudCBvcHRpb25zLgoJICoKCSAqIChCb29sZWFuKSBtYXJnaW4gLSBTaG91bGQgdGhlIG1hcmdpbiBvZiB0aGUgZWxlbWVudCBiZSBpbmNsdWRlZCBpbiB0aGUgY2FsY3VsYXRpb25zPyBUcnVlIGJ5IGRlZmF1bHQuCgkgKiAoQm9vbGVhbikgYm9yZGVyIC0gU2hvdWxkIHRoZSBib3JkZXIgb2YgdGhlIGVsZW1lbnQgYmUgaW5jbHVkZWQgaW4gdGhlIGNhbGN1bGF0aW9ucz8gRmFsc2UgYnkgZGVmYXVsdC4gCgkgKiAoQm9vbGVhbikgcGFkZGluZyAtIFNob3VsZCB0aGUgcGFkZGluZyBvZiB0aGUgZWxlbWVudCBiZSBpbmNsdWRlZCBpbiB0aGUgY2FsY3VsYXRpb25zPyBGYWxzZSBieSBkZWZhdWx0LiAKCSAqIChCb29sZWFuKSBzY3JvbGwgLSBTaG91bGQgdGhlIHNjcm9sbCBvZmZzZXRzIG9mIHRoZSBwYXJlbnQgZWxlbWVudHMgYmUgaW5jbHVkZWQgaW4gdGhlIGNhbGN1bGF0aW9ucz8gVHJ1ZSBieSBkZWZhdWx0LgoJICogICAgICAgICAgICAgICAgICAgIFdoZW4gdHJ1ZSBpdCBhZGRzIHRoZSB0b3RhbCBzY3JvbGwgb2Zmc2V0cyBvZiBhbGwgcGFyZW50cyB0byB0aGUgdG90YWwgb2Zmc2V0IGFuZCBhbHNvIGFkZHMgdHdvCgkgKiAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllcyB0byB0aGUgcmV0dXJuZWQgb2JqZWN0LCBzY3JvbGxUb3AgYW5kIHNjcm9sbExlZnQuCgkgKiAoQm9vbGVhbikgbGl0ZSAtIFdoZW4gdHJ1ZSBpdCB3aWxsIHVzZSB0aGUgb2Zmc2V0TGl0ZSBtZXRob2QgaW5zdGVhZCBvZiB0aGUgZnVsbC1ibG93biwgc2xvd2VyIG9mZnNldCBtZXRob2QuIEZhbHNlIGJ5IGRlZmF1bHQuCgkgKiAgICAgICAgICAgICAgICAgIE9ubHkgdXNlIHRoaXMgd2hlbiBtYXJnaW5zLCBib3JkZXJzIGFuZCBwYWRkaW5nIGNhbGN1bGF0aW9ucyBkb24ndCBtYXR0ZXIuCgkgKiAoSFRNTCBFbGVtZW50KSByZWxhdGl2ZVRvIC0gVGhpcyBzaG91bGQgYmUgYSBwYXJlbnQgb2YgdGhlIGVsZW1lbnQgYW5kIHNob3VsZCBoYXZlIHBvc2l0aW9uIChsaWtlIGFic29sdXRlIG9yIHJlbGF0aXZlKS4KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJdCB3aWxsIHJldHJlaXZlIHRoZSBvZmZzZXQgcmVsYXRpdmUgdG8gdGhpcyBwYXJlbnQgZWxlbWVudC4gQnkgZGVmYXVsdCBpdCBpcyB0aGUgYm9keSBlbGVtZW50LgoJICoKCSAqIEFsc28gYW4gb2JqZWN0IGNhbiBiZSBwYXNzZWQgYXMgdGhlIHNlY29uZCBwYXJhbWF0ZXIgdG8KCSAqIGNhdGNoIHRoZSB2YWx1ZSBvZiB0aGUgcmV0dXJuIGFuZCBjb250aW51ZSB0aGUgY2hhaW4uCgkgKgoJICogRm9yIGFjY3VyYXRlIGNhbGN1bGF0aW9ucyBtYWtlIHN1cmUgdG8gdXNlIHBpeGVsIHZhbHVlcyBmb3IgbWFyZ2lucywgYm9yZGVycyBhbmQgcGFkZGluZy4KCSAqIAoJICogS25vd24gaXNzdWVzOgoJICogIC0gSXNzdWU6IEEgZGl2IHBvc2l0aW9uZWQgcmVsYXRpdmUgb3Igc3RhdGljIHdpdGhvdXQgYW55IGNvbnRlbnQgYmVmb3JlIGl0IGFuZCBpdHMgcGFyZW50IHdpbGwgcmVwb3J0IGFuIG9mZnNldFRvcCBvZiAwIGluIFNhZmFyaQoJICogICAgV29ya2Fyb3VuZDogUGxhY2UgY29udGVudCBiZWZvcmUgdGhlIHJlbGF0aXZlIGRpdiAuLi4gYW5kIHNldCBoZWlnaHQgYW5kIHdpZHRoIHRvIDAgYW5kIG92ZXJmbG93IHRvIGhpZGRlbgoJICoKCSAqIEBleGFtcGxlICQoIiN0ZXN0ZGl2Iikub2Zmc2V0KCkKCSAqIEByZXN1bHQgeyB0b3A6IDEwMCwgbGVmdDogMTAwLCBzY3JvbGxUb3A6IDEwLCBzY3JvbGxMZWZ0OiAxMCB9CgkgKgoJICogQGV4YW1wbGUgJCgiI3Rlc3RkaXYiKS5vZmZzZXQoeyBzY3JvbGw6IGZhbHNlIH0pCgkgKiBAcmVzdWx0IHsgdG9wOiA5MCwgbGVmdDogOTAgfQoJICoKCSAqIEBleGFtcGxlIHZhciBvZmZzZXQgPSB7fQoJICogJCgiI3Rlc3RkaXYiKS5vZmZzZXQoeyBzY3JvbGw6IGZhbHNlIH0sIG9mZnNldCkKCSAqIEByZXN1bHQgb2Zmc2V0ID0geyB0b3A6IDkwLCBsZWZ0OiA5MCB9CgkgKgoJICogQG5hbWUgb2Zmc2V0CgkgKiBAcGFyYW0gTWFwIG9wdGlvbnMgT3B0aW9uYWwgc2V0dGluZ3MgdG8gY29uZmlndXJlIHRoZSB3YXkgdGhlIG9mZnNldCBpcyBjYWxjdWxhdGVkLgoJICogQHBhcmFtIE9iamVjdCByZXR1cm5PYmplY3QgQW4gb2JqZWN0IHRvIHN0b3JlIHRoZSByZXR1cm4gdmFsdWUgaW4sIHNvIGFzIG5vdCB0byBicmVhayB0aGUgY2hhaW4uIElmIHBhc3NlZCBpbiB0aGUKCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYWluIHdpbGwgbm90IGJlIGJyb2tlbiBhbmQgdGhlIHJlc3VsdCB3aWxsIGJlIGFzc2lnbmVkIHRvIHRoaXMgb2JqZWN0LgoJICogQHR5cGUgT2JqZWN0CgkgKiBAY2F0IFBsdWdpbnMvRGltZW5zaW9ucwoJICovCglvZmZzZXQ6IGZ1bmN0aW9uKG9wdGlvbnMsIHJldHVybk9iamVjdCkgewoJCWlmICghdGhpc1swXSkgZXJyb3IoKTsKCQl2YXIgeCA9IDAsIHkgPSAwLCBzbCA9IDAsIHN0ID0gMCwKCQkgICAgZWxlbSA9IHRoaXNbMF0sIHBhcmVudCA9IHRoaXNbMF0sIG9wLCBwYXJQb3MsIGVsZW1Qb3MgPSAkLmNzcyhlbGVtLCAncG9zaXRpb24nKSwKCQkgICAgbW8gPSAkLmJyb3dzZXIubW96aWxsYSwgaWUgPSAkLmJyb3dzZXIubXNpZSwgb2EgPSAkLmJyb3dzZXIub3BlcmEsCgkJICAgIHNmID0gJC5icm93c2VyLnNhZmFyaSwgc2YzID0gJC5icm93c2VyLnNhZmFyaSAmJiBwYXJzZUludCgkLmJyb3dzZXIudmVyc2lvbikgPiA1MjAsCgkJICAgIGFic3BhcmVudCA9IGZhbHNlLCByZWxwYXJlbnQgPSBmYWxzZSwgCgkJICAgIG9wdGlvbnMgPSAkLmV4dGVuZCh7IG1hcmdpbjogdHJ1ZSwgYm9yZGVyOiBmYWxzZSwgcGFkZGluZzogZmFsc2UsIHNjcm9sbDogdHJ1ZSwgbGl0ZTogZmFsc2UsIHJlbGF0aXZlVG86IGRvY3VtZW50LmJvZHkgfSwgb3B0aW9ucyB8fCB7fSk7CgkJCgkJLy8gVXNlIG9mZnNldExpdGUgaWYgbGl0ZSBvcHRpb24gaXMgdHJ1ZQoJCWlmIChvcHRpb25zLmxpdGUpIHJldHVybiB0aGlzLm9mZnNldExpdGUob3B0aW9ucywgcmV0dXJuT2JqZWN0KTsKCQkvLyBHZXQgdGhlIEhUTUxFbGVtZW50IGlmIHJlbGF0aXZlVG8gaXMgYSBqcXVlcnkgY29sbGVjdGlvbgoJCWlmIChvcHRpb25zLnJlbGF0aXZlVG8uanF1ZXJ5KSBvcHRpb25zLnJlbGF0aXZlVG8gPSBvcHRpb25zLnJlbGF0aXZlVG9bMF07CgkJCgkJaWYgKGVsZW0udGFnTmFtZSA9PSAnQk9EWScpIHsKCQkJLy8gU2FmYXJpIDIgaXMgdGhlIG9ubHkgb25lIHRvIGdldCBvZmZzZXRMZWZ0IGFuZCBvZmZzZXRUb3AgcHJvcGVydGllcyBvZiB0aGUgYm9keSAiY29ycmVjdCIKCQkJLy8gRXhjZXB0IHRoZXkgYWxsIG1lc3MgdXAgd2hlbiB0aGUgYm9keSBpcyBwb3NpdGlvbmVkIGFic29sdXRlIG9yIHJlbGF0aXZlCgkJCXggPSBlbGVtLm9mZnNldExlZnQ7CgkJCXkgPSBlbGVtLm9mZnNldFRvcDsKCQkJLy8gTW96aWxsYSBpZ25vcmVzIG1hcmdpbiBhbmQgc3VidHJhY3RzIGJvcmRlciBmcm9tIGJvZHkgZWxlbWVudAoJCQlpZiAobW8pIHsKCQkJCXggKz0gbnVtKGVsZW0sICdtYXJnaW5MZWZ0JykgKyAobnVtKGVsZW0sICdib3JkZXJMZWZ0V2lkdGgnKSoyKTsKCQkJCXkgKz0gbnVtKGVsZW0sICdtYXJnaW5Ub3AnKSAgKyAobnVtKGVsZW0sICdib3JkZXJUb3BXaWR0aCcpICoyKTsKCQkJfSBlbHNlCgkJCS8vIE9wZXJhIGlnbm9yZXMgbWFyZ2luCgkJCWlmIChvYSkgewoJCQkJeCArPSBudW0oZWxlbSwgJ21hcmdpbkxlZnQnKTsKCQkJCXkgKz0gbnVtKGVsZW0sICdtYXJnaW5Ub3AnKTsKCQkJfSBlbHNlCgkJCS8vIElFIGRvZXMgbm90IGFkZCB0aGUgYm9yZGVyIGluIFN0YW5kYXJkcyBNb2RlCgkJCWlmICgoaWUgJiYgalF1ZXJ5LmJveE1vZGVsKSkgewoJCQkJeCArPSBudW0oZWxlbSwgJ2JvcmRlckxlZnRXaWR0aCcpOwoJCQkJeSArPSBudW0oZWxlbSwgJ2JvcmRlclRvcFdpZHRoJyk7CgkJCX0gZWxzZQoJCQkvLyBTYWZhcmkgMyBkb2Vzbid0IG5vdCBpbmNsdWRlIGJvcmRlciBvciBtYXJnaW4KCQkJaWYgKHNmMykgewoJCQkJeCArPSBudW0oZWxlbSwgJ21hcmdpbkxlZnQnKSArIG51bShlbGVtLCAnYm9yZGVyTGVmdFdpZHRoJyk7CgkJCQl5ICs9IG51bShlbGVtLCAnbWFyZ2luVG9wJykgICsgbnVtKGVsZW0sICdib3JkZXJUb3BXaWR0aCcpOwoJCQl9CgkJfSBlbHNlIHsKCQkJZG8gewoJCQkJcGFyUG9zID0gJC5jc3MocGFyZW50LCAncG9zaXRpb24nKTsKCQkJCgkJCQl4ICs9IHBhcmVudC5vZmZzZXRMZWZ0OwoJCQkJeSArPSBwYXJlbnQub2Zmc2V0VG9wOwoKCQkJCS8vIE1vemlsbGEgYW5kIElFIGRvIG5vdCBhZGQgdGhlIGJvcmRlcgoJCQkJLy8gTW96aWxsYSBhZGRzIHRoZSBib3JkZXIgZm9yIHRhYmxlIGNlbGxzCgkJCQlpZiAoKG1vICYmICFwYXJlbnQudGFnTmFtZS5tYXRjaCgvXnRbZHxoXSQvaSkpIHx8IGllIHx8IHNmMykgewoJCQkJCS8vIGFkZCBib3JkZXJzIHRvIG9mZnNldAoJCQkJCXggKz0gbnVtKHBhcmVudCwgJ2JvcmRlckxlZnRXaWR0aCcpOwoJCQkJCXkgKz0gbnVtKHBhcmVudCwgJ2JvcmRlclRvcFdpZHRoJyk7CgoJCQkJCS8vIE1vemlsbGEgZG9lcyBub3QgaW5jbHVkZSB0aGUgYm9yZGVyIG9uIGJvZHkgaWYgYW4gZWxlbWVudCBpc24ndCBwb3NpdGlvbmVkIGFic29sdXRlIGFuZCBpcyB3aXRob3V0IGFuIGFic29sdXRlIHBhcmVudAoJCQkJCWlmIChtbyAmJiBwYXJQb3MgPT0gJ2Fic29sdXRlJykgYWJzcGFyZW50ID0gdHJ1ZTsKCQkJCQkvLyBJRSBkb2VzIG5vdCBpbmNsdWRlIHRoZSBib3JkZXIgb24gdGhlIGJvZHkgaWYgYW4gZWxlbWVudCBpcyBwb3NpdGlvbiBzdGF0aWMgYW5kIHdpdGhvdXQgYW4gYWJzb2x1dGUgb3IgcmVsYXRpdmUgcGFyZW50CgkJCQkJaWYgKGllICYmIHBhclBvcyA9PSAncmVsYXRpdmUnKSByZWxwYXJlbnQgPSB0cnVlOwoJCQkJfQoKCQkJCW9wID0gcGFyZW50Lm9mZnNldFBhcmVudCB8fCBkb2N1bWVudC5ib2R5OwoJCQkJaWYgKG9wdGlvbnMuc2Nyb2xsIHx8IG1vKSB7CgkJCQkJZG8gewoJCQkJCQlpZiAob3B0aW9ucy5zY3JvbGwpIHsKCQkJCQkJCS8vIGdldCBzY3JvbGwgb2Zmc2V0cwoJCQkJCQkJc2wgKz0gcGFyZW50LnNjcm9sbExlZnQ7CgkJCQkJCQlzdCArPSBwYXJlbnQuc2Nyb2xsVG9wOwoJCQkJCQl9CgkJCQkJCQoJCQkJCQkvLyBPcGVyYSBzb21ldGltZXMgaW5jb3JyZWN0bHkgcmVwb3J0cyBzY3JvbGwgb2Zmc2V0IGZvciBlbGVtZW50cyB3aXRoIGRpc3BsYXkgc2V0IHRvIHRhYmxlLXJvdyBvciBpbmxpbmUKCQkJCQkJaWYgKG9hICYmICgkLmNzcyhwYXJlbnQsICdkaXNwbGF5JykgfHwgJycpLm1hdGNoKC90YWJsZS1yb3d8aW5saW5lLykpIHsKCQkJCQkJCXNsID0gc2wgLSAoKHBhcmVudC5zY3JvbGxMZWZ0ID09IHBhcmVudC5vZmZzZXRMZWZ0KSA/IHBhcmVudC5zY3JvbGxMZWZ0IDogMCk7CgkJCQkJCQlzdCA9IHN0IC0gKChwYXJlbnQuc2Nyb2xsVG9wID09IHBhcmVudC5vZmZzZXRUb3ApID8gcGFyZW50LnNjcm9sbFRvcCA6IDApOwoJCQkJCQl9CgkJCQkKCQkJCQkJLy8gTW96aWxsYSBkb2VzIG5vdCBhZGQgdGhlIGJvcmRlciBmb3IgYSBwYXJlbnQgdGhhdCBoYXMgb3ZlcmZsb3cgc2V0IHRvIGFueXRoaW5nIGJ1dCB2aXNpYmxlCgkJCQkJCWlmIChtbyAmJiBwYXJlbnQgIT0gZWxlbSAmJiAkLmNzcyhwYXJlbnQsICdvdmVyZmxvdycpICE9ICd2aXNpYmxlJykgewoJCQkJCQkJeCArPSBudW0ocGFyZW50LCAnYm9yZGVyTGVmdFdpZHRoJyk7CgkJCQkJCQl5ICs9IG51bShwYXJlbnQsICdib3JkZXJUb3BXaWR0aCcpOwoJCQkJCQl9CgkJCQkKCQkJCQkJcGFyZW50ID0gcGFyZW50LnBhcmVudE5vZGU7CgkJCQkJfSB3aGlsZSAocGFyZW50ICE9IG9wKTsKCQkJCX0KCQkJCXBhcmVudCA9IG9wOwoJCQkJCgkJCQkvLyBleGl0IHRoZSBsb29wIGlmIHdlIGFyZSBhdCB0aGUgcmVsYXRpdmVUbyBvcHRpb24gYnV0IG5vdCBpZiBpdCBpcyB0aGUgYm9keSBvciBodG1sIHRhZwoJCQkJaWYgKHBhcmVudCA9PSBvcHRpb25zLnJlbGF0aXZlVG8gJiYgIShwYXJlbnQudGFnTmFtZSA9PSAnQk9EWScgfHwgcGFyZW50LnRhZ05hbWUgPT0gJ0hUTUwnKSkgIHsKCQkJCQkvLyBNb3ppbGxhIGRvZXMgbm90IGFkZCB0aGUgYm9yZGVyIGZvciBhIHBhcmVudCB0aGF0IGhhcyBvdmVyZmxvdyBzZXQgdG8gYW55dGhpbmcgYnV0IHZpc2libGUKCQkJCQlpZiAobW8gJiYgcGFyZW50ICE9IGVsZW0gJiYgJC5jc3MocGFyZW50LCAnb3ZlcmZsb3cnKSAhPSAndmlzaWJsZScpIHsKCQkJCQkJeCArPSBudW0ocGFyZW50LCAnYm9yZGVyTGVmdFdpZHRoJyk7CgkJCQkJCXkgKz0gbnVtKHBhcmVudCwgJ2JvcmRlclRvcFdpZHRoJyk7CgkJCQkJfQoJCQkJCS8vIFNhZmFyaSAyIGFuZCBvcGVyYSBpbmNsdWRlcyBib3JkZXIgb24gcG9zaXRpb25lZCBwYXJlbnRzCgkJCQkJaWYgKCAoKHNmICYmICFzZjMpIHx8IG9hKSAmJiBwYXJQb3MgIT0gJ3N0YXRpYycgKSB7CgkJCQkJCXggLT0gbnVtKG9wLCAnYm9yZGVyTGVmdFdpZHRoJyk7CgkJCQkJCXkgLT0gbnVtKG9wLCAnYm9yZGVyVG9wV2lkdGgnKTsKCQkJCQl9CgkJCQkJYnJlYWs7CgkJCQl9CgkJCQlpZiAocGFyZW50LnRhZ05hbWUgPT0gJ0JPRFknIHx8IHBhcmVudC50YWdOYW1lID09ICdIVE1MJykgewoJCQkJCS8vIFNhZmFyaSAyIGFuZCBJRSBTdGFuZGFyZHMgTW9kZSBkb2Vzbid0IGFkZCB0aGUgYm9keSBtYXJnaW4gZm9yIGVsbWVudHMgcG9zaXRpb25lZCB3aXRoIHN0YXRpYyBvciByZWxhdGl2ZQoJCQkJCWlmICgoKHNmICYmICFzZjMpIHx8IChpZSAmJiAkLmJveE1vZGVsKSkgJiYgZWxlbVBvcyAhPSAnYWJzb2x1dGUnICYmIGVsZW1Qb3MgIT0gJ2ZpeGVkJykgewoJCQkJCQl4ICs9IG51bShwYXJlbnQsICdtYXJnaW5MZWZ0Jyk7CgkJCQkJCXkgKz0gbnVtKHBhcmVudCwgJ21hcmdpblRvcCcpOwoJCQkJCX0KCQkJCQkvLyBTYWZhcmkgMyBkb2VzIG5vdCBpbmNsdWRlIHRoZSBib3JkZXIgb24gYm9keQoJCQkJCS8vIE1vemlsbGEgZG9lcyBub3QgaW5jbHVkZSB0aGUgYm9yZGVyIG9uIGJvZHkgaWYgYW4gZWxlbWVudCBpc24ndCBwb3NpdGlvbmVkIGFic29sdXRlIGFuZCBpcyB3aXRob3V0IGFuIGFic29sdXRlIHBhcmVudAoJCQkJCS8vIElFIGRvZXMgbm90IGluY2x1ZGUgdGhlIGJvcmRlciBvbiB0aGUgYm9keSBpZiBhbiBlbGVtZW50IGlzIHBvc2l0aW9uZWQgc3RhdGljIGFuZCB3aXRob3V0IGFuIGFic29sdXRlIG9yIHJlbGF0aXZlIHBhcmVudAoJCQkJCWlmICggc2YzIHx8IChtbyAmJiAhYWJzcGFyZW50ICYmIGVsZW1Qb3MgIT0gJ2ZpeGVkJykgfHwgCgkJCQkJICAgICAoaWUgJiYgZWxlbVBvcyA9PSAnc3RhdGljJyAmJiAhcmVscGFyZW50KSApIHsKCQkJCQkJeCArPSBudW0ocGFyZW50LCAnYm9yZGVyTGVmdFdpZHRoJyk7CgkJCQkJCXkgKz0gbnVtKHBhcmVudCwgJ2JvcmRlclRvcFdpZHRoJyk7CgkJCQkJfQoJCQkJCWJyZWFrOyAvLyBFeGl0IHRoZSBsb29wCgkJCQl9CgkJCX0gd2hpbGUgKHBhcmVudCk7CgkJfQoKCQl2YXIgcmV0dXJuVmFsdWUgPSBoYW5kbGVPZmZzZXRSZXR1cm4oZWxlbSwgb3B0aW9ucywgeCwgeSwgc2wsIHN0KTsKCgkJaWYgKHJldHVybk9iamVjdCkgeyAkLmV4dGVuZChyZXR1cm5PYmplY3QsIHJldHVyblZhbHVlKTsgcmV0dXJuIHRoaXM7IH0KCQllbHNlICAgICAgICAgICAgICB7IHJldHVybiByZXR1cm5WYWx1ZTsgfQoJfSwKCQoJLyoqCgkgKiBHZXRzIHRoZSBsb2NhdGlvbiBvZiB0aGUgZWxlbWVudCBpbiBwaXhlbHMgZnJvbSB0aGUgdG9wIGxlZnQgY29ybmVyIG9mIHRoZSB2aWV3cG9ydC4KCSAqIFRoaXMgbWV0aG9kIGlzIG11Y2ggZmFzdGVyIHRoYW4gb2Zmc2V0IGJ1dCBub3QgYXMgYWNjdXJhdGUgd2hlbiBib3JkZXJzIGFuZCBtYXJnaW5zIGFyZQoJICogb24gdGhlIGVsZW1lbnQgYW5kL29yIGl0cyBwYXJlbnRzLiBUaGlzIG1ldGhvZCBjYW4gYmUgaW52b2tlZAoJICogYnkgc2V0dGluZyB0aGUgbGl0ZSBvcHRpb24gdG8gdHJ1ZSBpbiB0aGUgb2Zmc2V0IG1ldGhvZC4KCSAqIFRoZSBvZmZzZXRMaXRlIG1ldGhvZCB0YWtlcyBhbiBvcHRpb25hbCBtYXAgb2Yga2V5IHZhbHVlIHBhaXJzIHRvIGNvbmZpZ3VyZSB0aGUgd2F5CgkgKiB0aGUgb2Zmc2V0IGlzIGNhbGN1bGF0ZWQuIEhlcmUgYXJlIHRoZSBkaWZmZXJlbnQgb3B0aW9ucy4KCSAqCgkgKiAoQm9vbGVhbikgbWFyZ2luIC0gU2hvdWxkIHRoZSBtYXJnaW4gb2YgdGhlIGVsZW1lbnQgYmUgaW5jbHVkZWQgaW4gdGhlIGNhbGN1bGF0aW9ucz8gVHJ1ZSBieSBkZWZhdWx0LgoJICogKEJvb2xlYW4pIGJvcmRlciAtIFNob3VsZCB0aGUgYm9yZGVyIG9mIHRoZSBlbGVtZW50IGJlIGluY2x1ZGVkIGluIHRoZSBjYWxjdWxhdGlvbnM/IEZhbHNlIGJ5IGRlZmF1bHQuIAoJICogKEJvb2xlYW4pIHBhZGRpbmcgLSBTaG91bGQgdGhlIHBhZGRpbmcgb2YgdGhlIGVsZW1lbnQgYmUgaW5jbHVkZWQgaW4gdGhlIGNhbGN1YXRpb25zPyBGYWxzZSBieSBkZWZhdWx0LiAKCSAqIChCb29sZWFuKSBzY3JvbGwgLSBTb3VsZCB0aGUgc2Nyb2xsIG9mZnNldHMgb2YgdGhlIHBhcmVudCBlbGVtZW50cyBiZSBpbmNsdWRlZCBpbnQgaGUgY2FsY3VsYXRpb25zPyBUcnVlIGJ5IGRlZmF1bHQuCgkgKiAgICAgICAgICAgICAgICAgICAgV2hlbiB0cnVlIGl0IGFkZHMgdGhlIHRvdGFsIHNjcm9sbCBvZmZzZXRzIG9mIGFsbCBwYXJlbnRzIHRvIHRoZSB0b3RhbCBvZmZzZXQgYW5kIGFsc28gYWRkcyB0d28KCSAqICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzIHRvIHRoZSByZXR1cm5lZCBvYmplY3QsIHNjcm9sbFRvcCBhbmQgc2Nyb2xsTGVmdC4KCSAqIChIVE1MIEVsZW1lbnQpIHJlbGF0aXZlVG8gLSBUaGlzIHNob3VsZCBiZSBhIHBhcmVudCBvZiB0aGUgZWxlbWVudCBhbmQgc2hvdWxkIGhhdmUgcG9zaXRpb24gKGxpa2UgYWJzb2x1dGUgb3IgcmVsYXRpdmUpLgoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0IHdpbGwgcmV0cmVpdmUgdGhlIG9mZnNldCByZWxhdGl2ZSB0byB0aGlzIHBhcmVudCBlbGVtZW50LiBCeSBkZWZhdWx0IGl0IGlzIHRoZSBib2R5IGVsZW1lbnQuCgkgKgoJICogQG5hbWUgb2Zmc2V0TGl0ZQoJICogQHBhcmFtIE1hcCBvcHRpb25zIE9wdGlvbmFsIHNldHRpbmdzIHRvIGNvbmZpZ3VyZSB0aGUgd2F5IHRoZSBvZmZzZXQgaXMgY2FsY3VsYXRlZC4KCSAqIEBwYXJhbSBPYmplY3QgcmV0dXJuT2JqZWN0IEFuIG9iamVjdCB0byBzdG9yZSB0aGUgcmV0dXJuIHZhbHVlIGluLCBzbyBhcyBub3QgdG8gYnJlYWsgdGhlIGNoYWluLiBJZiBwYXNzZWQgaW4gdGhlCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFpbiB3aWxsIG5vdCBiZSBicm9rZW4gYW5kIHRoZSByZXN1bHQgd2lsbCBiZSBhc3NpZ25lZCB0byB0aGlzIG9iamVjdC4KCSAqIEB0eXBlIE9iamVjdAoJICogQGNhdCBQbHVnaW5zL0RpbWVuc2lvbnMKCSAqLwoJb2Zmc2V0TGl0ZTogZnVuY3Rpb24ob3B0aW9ucywgcmV0dXJuT2JqZWN0KSB7CgkJaWYgKCF0aGlzWzBdKSBlcnJvcigpOwoJCXZhciB4ID0gMCwgeSA9IDAsIHNsID0gMCwgc3QgPSAwLCBwYXJlbnQgPSB0aGlzWzBdLCBvZmZzZXRQYXJlbnQsIAoJCSAgICBvcHRpb25zID0gJC5leHRlbmQoeyBtYXJnaW46IHRydWUsIGJvcmRlcjogZmFsc2UsIHBhZGRpbmc6IGZhbHNlLCBzY3JvbGw6IHRydWUsIHJlbGF0aXZlVG86IGRvY3VtZW50LmJvZHkgfSwgb3B0aW9ucyB8fCB7fSk7CgkJCQkKCQkvLyBHZXQgdGhlIEhUTUxFbGVtZW50IGlmIHJlbGF0aXZlVG8gaXMgYSBqcXVlcnkgY29sbGVjdGlvbgoJCWlmIChvcHRpb25zLnJlbGF0aXZlVG8uanF1ZXJ5KSBvcHRpb25zLnJlbGF0aXZlVG8gPSBvcHRpb25zLnJlbGF0aXZlVG9bMF07CgkJCgkJZG8gewoJCQl4ICs9IHBhcmVudC5vZmZzZXRMZWZ0OwoJCQl5ICs9IHBhcmVudC5vZmZzZXRUb3A7CgoJCQlvZmZzZXRQYXJlbnQgPSBwYXJlbnQub2Zmc2V0UGFyZW50IHx8IGRvY3VtZW50LmJvZHk7CgkJCWlmIChvcHRpb25zLnNjcm9sbCkgewoJCQkJLy8gZ2V0IHNjcm9sbCBvZmZzZXRzCgkJCQlkbyB7CgkJCQkJc2wgKz0gcGFyZW50LnNjcm9sbExlZnQ7CgkJCQkJc3QgKz0gcGFyZW50LnNjcm9sbFRvcDsKCQkJCQlwYXJlbnQgPSBwYXJlbnQucGFyZW50Tm9kZTsKCQkJCX0gd2hpbGUocGFyZW50ICE9IG9mZnNldFBhcmVudCk7CgkJCX0KCQkJcGFyZW50ID0gb2Zmc2V0UGFyZW50OwoJCX0gd2hpbGUgKHBhcmVudCAmJiBwYXJlbnQudGFnTmFtZSAhPSAnQk9EWScgJiYgcGFyZW50LnRhZ05hbWUgIT0gJ0hUTUwnICYmIHBhcmVudCAhPSBvcHRpb25zLnJlbGF0aXZlVG8pOwoKCQl2YXIgcmV0dXJuVmFsdWUgPSBoYW5kbGVPZmZzZXRSZXR1cm4odGhpc1swXSwgb3B0aW9ucywgeCwgeSwgc2wsIHN0KTsKCgkJaWYgKHJldHVybk9iamVjdCkgeyAkLmV4dGVuZChyZXR1cm5PYmplY3QsIHJldHVyblZhbHVlKTsgcmV0dXJuIHRoaXM7IH0KCQllbHNlICAgICAgICAgICAgICB7IHJldHVybiByZXR1cm5WYWx1ZTsgfQoJfSwKCQoJLyoqCgkgKiBSZXR1cm5zIGEgalF1ZXJ5IGNvbGxlY3Rpb24gd2l0aCB0aGUgcG9zaXRpb25lZCBwYXJlbnQgb2YgCgkgKiB0aGUgZmlyc3QgbWF0Y2hlZCBlbGVtZW50LiBUaGlzIGlzIHRoZSBmaXJzdCBwYXJlbnQgb2YgCgkgKiB0aGUgZWxlbWVudCB0aGF0IGhhcyBwb3NpdGlvbiAoYXMgaW4gcmVsYXRpdmUgb3IgYWJzb2x1dGUpLgoJICoKCSAqIEBuYW1lIG9mZnNldFBhcmVudAoJICogQHR5cGUgalF1ZXJ5CgkgKiBAY2F0IFBsdWdpbnMvRGltZW5zaW9ucwoJICovCglvZmZzZXRQYXJlbnQ6IGZ1bmN0aW9uKCkgewoJCWlmICghdGhpc1swXSkgZXJyb3IoKTsKCQl2YXIgb2Zmc2V0UGFyZW50ID0gdGhpc1swXS5vZmZzZXRQYXJlbnQ7CgkJd2hpbGUgKCBvZmZzZXRQYXJlbnQgJiYgKG9mZnNldFBhcmVudC50YWdOYW1lICE9ICdCT0RZJyAmJiAkLmNzcyhvZmZzZXRQYXJlbnQsICdwb3NpdGlvbicpID09ICdzdGF0aWMnKSApCgkJCW9mZnNldFBhcmVudCA9IG9mZnNldFBhcmVudC5vZmZzZXRQYXJlbnQ7CgkJcmV0dXJuICQob2Zmc2V0UGFyZW50KTsKCX0KfSk7CgovKioKICogVGhyb3dzIGFuIGVycm9yIG1lc3NhZ2Ugd2hlbiBubyBlbGVtZW50cyBhcmUgaW4gdGhlIGpRdWVyeSBjb2xsZWN0aW9uCiAqIEBwcml2YXRlCiAqLwp2YXIgZXJyb3IgPSBmdW5jdGlvbigpIHsKCXRocm93ICJEaW1lbnNpb25zOiBqUXVlcnkgY29sbGVjdGlvbiBpcyBlbXB0eSI7Cn07CgovKioKICogSGFuZGxlcyBjb252ZXJ0aW5nIGEgQ1NTIFN0eWxlIGludG8gYW4gSW50ZWdlci4KICogQHByaXZhdGUKICovCnZhciBudW0gPSBmdW5jdGlvbihlbCwgcHJvcCkgewoJcmV0dXJuIHBhcnNlSW50KCQuY3NzKGVsLmpxdWVyeT9lbFswXTplbCxwcm9wKSl8fDA7Cn07CgovKioKICogSGFuZGxlcyB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBvZmZzZXQgYW5kIG9mZnNldExpdGUgbWV0aG9kcy4KICogQHByaXZhdGUKICovCnZhciBoYW5kbGVPZmZzZXRSZXR1cm4gPSBmdW5jdGlvbihlbGVtLCBvcHRpb25zLCB4LCB5LCBzbCwgc3QpIHsKCWlmICggIW9wdGlvbnMubWFyZ2luICkgewoJCXggLT0gbnVtKGVsZW0sICdtYXJnaW5MZWZ0Jyk7CgkJeSAtPSBudW0oZWxlbSwgJ21hcmdpblRvcCcpOwoJfQoKCS8vIFNhZmFyaSBhbmQgT3BlcmEgZG8gbm90IGFkZCB0aGUgYm9yZGVyIGZvciB0aGUgZWxlbWVudAoJaWYgKCBvcHRpb25zLmJvcmRlciAmJiAoKCQuYnJvd3Nlci5zYWZhcmkgJiYgcGFyc2VJbnQoJC5icm93c2VyLnZlcnNpb24pIDwgNTIwKSB8fCAkLmJyb3dzZXIub3BlcmEpICkgewoJCXggKz0gbnVtKGVsZW0sICdib3JkZXJMZWZ0V2lkdGgnKTsKCQl5ICs9IG51bShlbGVtLCAnYm9yZGVyVG9wV2lkdGgnKTsKCX0gZWxzZSBpZiAoICFvcHRpb25zLmJvcmRlciAmJiAhKCgkLmJyb3dzZXIuc2FmYXJpICYmIHBhcnNlSW50KCQuYnJvd3Nlci52ZXJzaW9uKSA8IDUyMCkgfHwgJC5icm93c2VyLm9wZXJhKSApIHsKCQl4IC09IG51bShlbGVtLCAnYm9yZGVyTGVmdFdpZHRoJyk7CgkJeSAtPSBudW0oZWxlbSwgJ2JvcmRlclRvcFdpZHRoJyk7Cgl9CgoJaWYgKCBvcHRpb25zLnBhZGRpbmcgKSB7CgkJeCArPSBudW0oZWxlbSwgJ3BhZGRpbmdMZWZ0Jyk7CgkJeSArPSBudW0oZWxlbSwgJ3BhZGRpbmdUb3AnKTsKCX0KCQoJLy8gZG8gbm90IGluY2x1ZGUgc2Nyb2xsIG9mZnNldCBvbiB0aGUgZWxlbWVudCAuLi4gb3BlcmEgc29tZXRpbWVzIHJlcG9ydHMgc2Nyb2xsIG9mZnNldCBhcyBhY3R1YWwgb2Zmc2V0CglpZiAoIG9wdGlvbnMuc2Nyb2xsICYmICghJC5icm93c2VyLm9wZXJhIHx8IGVsZW0ub2Zmc2V0TGVmdCAhPSBlbGVtLnNjcm9sbExlZnQgJiYgZWxlbS5vZmZzZXRUb3AgIT0gZWxlbS5zY3JvbGxMZWZ0KSApIHsKCQlzbCAtPSBlbGVtLnNjcm9sbExlZnQ7CgkJc3QgLT0gZWxlbS5zY3JvbGxUb3A7Cgl9CgoJcmV0dXJuIG9wdGlvbnMuc2Nyb2xsID8geyB0b3A6IHkgLSBzdCwgbGVmdDogeCAtIHNsLCBzY3JvbGxUb3A6ICBzdCwgc2Nyb2xsTGVmdDogc2wgfQoJICAgICAgICAgICAgICAgICAgICAgIDogeyB0b3A6IHksIGxlZnQ6IHggfTsKfTsKCi8qKgogKiBHZXRzIHRoZSB3aWR0aCBvZiB0aGUgT1Mgc2Nyb2xsYmFyCiAqIEBwcml2YXRlCiAqLwp2YXIgc2Nyb2xsYmFyV2lkdGggPSAwOwp2YXIgZ2V0U2Nyb2xsYmFyV2lkdGggPSBmdW5jdGlvbigpIHsKCWlmICghc2Nyb2xsYmFyV2lkdGgpIHsKCQl2YXIgdGVzdEVsID0gJCgnPGRpdj4nKQoJCQkJLmNzcyh7CgkJCQkJd2lkdGg6IDEwMCwKCQkJCQloZWlnaHQ6IDEwMCwKCQkJCQlvdmVyZmxvdzogJ2F1dG8nLAoJCQkJCXBvc2l0aW9uOiAnYWJzb2x1dGUnLAoJCQkJCXRvcDogLTEwMDAsCgkJCQkJbGVmdDogLTEwMDAKCQkJCX0pCgkJCQkuYXBwZW5kVG8oJ2JvZHknKTsKCQlzY3JvbGxiYXJXaWR0aCA9IDEwMCAtIHRlc3RFbAoJCQkuYXBwZW5kKCc8ZGl2PicpCgkJCS5maW5kKCdkaXYnKQoJCQkJLmNzcyh7CgkJCQkJd2lkdGg6ICcxMDAlJywKCQkJCQloZWlnaHQ6IDIwMAoJCQkJfSkKCQkJCS53aWR0aCgpOwoJCXRlc3RFbC5yZW1vdmUoKTsKCX0KCXJldHVybiBzY3JvbGxiYXJXaWR0aDsKfTsKCn0pKGpRdWVyeSk7]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.easing.1.3.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IEVhc2luZyB2MS4zIC0gaHR0cDovL2dzZ2QuY28udWsvc2FuZGJveC9qcXVlcnkvZWFzaW5nLwogKgogKiBVc2VzIHRoZSBidWlsdCBpbiBlYXNpbmcgY2FwYWJpbGl0aWVzIGFkZGVkIEluIGpRdWVyeSAxLjEKICogdG8gb2ZmZXIgbXVsdGlwbGUgZWFzaW5nIG9wdGlvbnMKICoKICogVEVSTVMgT0YgVVNFIC0galF1ZXJ5IEVhc2luZwogKiAKICogT3BlbiBzb3VyY2UgdW5kZXIgdGhlIEJTRCBMaWNlbnNlLiAKICogCiAqIENvcHlyaWdodCDCqSAyMDA4IEdlb3JnZSBNY0dpbmxleSBTbWl0aAogKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKiAKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgCiAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKICogCiAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIAogKiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IAogKiBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyAKICogcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogKiAKICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgYXV0aG9yIG5vciB0aGUgbmFtZXMgb2YgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2UgCiAqIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCiAqIAogKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSAKICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCiAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQogKiAgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAogKiAgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFCiAqICBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgCiAqIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCiAqICBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCAKICogT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICoKKi8KCi8vIHQ6IGN1cnJlbnQgdGltZSwgYjogYmVnSW5uSW5nIHZhbHVlLCBjOiBjaGFuZ2UgSW4gdmFsdWUsIGQ6IGR1cmF0aW9uCmpRdWVyeS5lYXNpbmdbJ2pzd2luZyddID0galF1ZXJ5LmVhc2luZ1snc3dpbmcnXTsKCmpRdWVyeS5leHRlbmQoIGpRdWVyeS5lYXNpbmcsCnsKCWRlZjogJ2Vhc2VPdXRRdWFkJywKCXN3aW5nOiBmdW5jdGlvbiAoeCwgdCwgYiwgYywgZCkgewoJCS8vYWxlcnQoalF1ZXJ5LmVhc2luZy5kZWZhdWx0KTsKCQlyZXR1cm4galF1ZXJ5LmVhc2luZ1tqUXVlcnkuZWFzaW5nLmRlZl0oeCwgdCwgYiwgYywgZCk7Cgl9LAoJZWFzZUluUXVhZDogZnVuY3Rpb24gKHgsIHQsIGIsIGMsIGQpIHsKCQlyZXR1cm4gYyoodC89ZCkqdCArIGI7Cgl9LAoJZWFzZU91dFF1YWQ6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkKSB7CgkJcmV0dXJuIC1jICoodC89ZCkqKHQtMikgKyBiOwoJfSwKCWVhc2VJbk91dFF1YWQ6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkKSB7CgkJaWYgKCh0Lz1kLzIpIDwgMSkgcmV0dXJuIGMvMip0KnQgKyBiOwoJCXJldHVybiAtYy8yICogKCgtLXQpKih0LTIpIC0gMSkgKyBiOwoJfSwKCWVhc2VJbkN1YmljOiBmdW5jdGlvbiAoeCwgdCwgYiwgYywgZCkgewoJCXJldHVybiBjKih0Lz1kKSp0KnQgKyBiOwoJfSwKCWVhc2VPdXRDdWJpYzogZnVuY3Rpb24gKHgsIHQsIGIsIGMsIGQpIHsKCQlyZXR1cm4gYyooKHQ9dC9kLTEpKnQqdCArIDEpICsgYjsKCX0sCgllYXNlSW5PdXRDdWJpYzogZnVuY3Rpb24gKHgsIHQsIGIsIGMsIGQpIHsKCQlpZiAoKHQvPWQvMikgPCAxKSByZXR1cm4gYy8yKnQqdCp0ICsgYjsKCQlyZXR1cm4gYy8yKigodC09MikqdCp0ICsgMikgKyBiOwoJfSwKCWVhc2VJblF1YXJ0OiBmdW5jdGlvbiAoeCwgdCwgYiwgYywgZCkgewoJCXJldHVybiBjKih0Lz1kKSp0KnQqdCArIGI7Cgl9LAoJZWFzZU91dFF1YXJ0OiBmdW5jdGlvbiAoeCwgdCwgYiwgYywgZCkgewoJCXJldHVybiAtYyAqICgodD10L2QtMSkqdCp0KnQgLSAxKSArIGI7Cgl9LAoJZWFzZUluT3V0UXVhcnQ6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkKSB7CgkJaWYgKCh0Lz1kLzIpIDwgMSkgcmV0dXJuIGMvMip0KnQqdCp0ICsgYjsKCQlyZXR1cm4gLWMvMiAqICgodC09MikqdCp0KnQgLSAyKSArIGI7Cgl9LAoJZWFzZUluUXVpbnQ6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkKSB7CgkJcmV0dXJuIGMqKHQvPWQpKnQqdCp0KnQgKyBiOwoJfSwKCWVhc2VPdXRRdWludDogZnVuY3Rpb24gKHgsIHQsIGIsIGMsIGQpIHsKCQlyZXR1cm4gYyooKHQ9dC9kLTEpKnQqdCp0KnQgKyAxKSArIGI7Cgl9LAoJZWFzZUluT3V0UXVpbnQ6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkKSB7CgkJaWYgKCh0Lz1kLzIpIDwgMSkgcmV0dXJuIGMvMip0KnQqdCp0KnQgKyBiOwoJCXJldHVybiBjLzIqKCh0LT0yKSp0KnQqdCp0ICsgMikgKyBiOwoJfSwKCWVhc2VJblNpbmU6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkKSB7CgkJcmV0dXJuIC1jICogTWF0aC5jb3ModC9kICogKE1hdGguUEkvMikpICsgYyArIGI7Cgl9LAoJZWFzZU91dFNpbmU6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkKSB7CgkJcmV0dXJuIGMgKiBNYXRoLnNpbih0L2QgKiAoTWF0aC5QSS8yKSkgKyBiOwoJfSwKCWVhc2VJbk91dFNpbmU6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkKSB7CgkJcmV0dXJuIC1jLzIgKiAoTWF0aC5jb3MoTWF0aC5QSSp0L2QpIC0gMSkgKyBiOwoJfSwKCWVhc2VJbkV4cG86IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkKSB7CgkJcmV0dXJuICh0PT0wKSA/IGIgOiBjICogTWF0aC5wb3coMiwgMTAgKiAodC9kIC0gMSkpICsgYjsKCX0sCgllYXNlT3V0RXhwbzogZnVuY3Rpb24gKHgsIHQsIGIsIGMsIGQpIHsKCQlyZXR1cm4gKHQ9PWQpID8gYitjIDogYyAqICgtTWF0aC5wb3coMiwgLTEwICogdC9kKSArIDEpICsgYjsKCX0sCgllYXNlSW5PdXRFeHBvOiBmdW5jdGlvbiAoeCwgdCwgYiwgYywgZCkgewoJCWlmICh0PT0wKSByZXR1cm4gYjsKCQlpZiAodD09ZCkgcmV0dXJuIGIrYzsKCQlpZiAoKHQvPWQvMikgPCAxKSByZXR1cm4gYy8yICogTWF0aC5wb3coMiwgMTAgKiAodCAtIDEpKSArIGI7CgkJcmV0dXJuIGMvMiAqICgtTWF0aC5wb3coMiwgLTEwICogLS10KSArIDIpICsgYjsKCX0sCgllYXNlSW5DaXJjOiBmdW5jdGlvbiAoeCwgdCwgYiwgYywgZCkgewoJCXJldHVybiAtYyAqIChNYXRoLnNxcnQoMSAtICh0Lz1kKSp0KSAtIDEpICsgYjsKCX0sCgllYXNlT3V0Q2lyYzogZnVuY3Rpb24gKHgsIHQsIGIsIGMsIGQpIHsKCQlyZXR1cm4gYyAqIE1hdGguc3FydCgxIC0gKHQ9dC9kLTEpKnQpICsgYjsKCX0sCgllYXNlSW5PdXRDaXJjOiBmdW5jdGlvbiAoeCwgdCwgYiwgYywgZCkgewoJCWlmICgodC89ZC8yKSA8IDEpIHJldHVybiAtYy8yICogKE1hdGguc3FydCgxIC0gdCp0KSAtIDEpICsgYjsKCQlyZXR1cm4gYy8yICogKE1hdGguc3FydCgxIC0gKHQtPTIpKnQpICsgMSkgKyBiOwoJfSwKCWVhc2VJbkVsYXN0aWM6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkKSB7CgkJdmFyIHM9MS43MDE1ODt2YXIgcD0wO3ZhciBhPWM7CgkJaWYgKHQ9PTApIHJldHVybiBiOyAgaWYgKCh0Lz1kKT09MSkgcmV0dXJuIGIrYzsgIGlmICghcCkgcD1kKi4zOwoJCWlmIChhIDwgTWF0aC5hYnMoYykpIHsgYT1jOyB2YXIgcz1wLzQ7IH0KCQllbHNlIHZhciBzID0gcC8oMipNYXRoLlBJKSAqIE1hdGguYXNpbiAoYy9hKTsKCQlyZXR1cm4gLShhKk1hdGgucG93KDIsMTAqKHQtPTEpKSAqIE1hdGguc2luKCAodCpkLXMpKigyKk1hdGguUEkpL3AgKSkgKyBiOwoJfSwKCWVhc2VPdXRFbGFzdGljOiBmdW5jdGlvbiAoeCwgdCwgYiwgYywgZCkgewoJCXZhciBzPTEuNzAxNTg7dmFyIHA9MDt2YXIgYT1jOwoJCWlmICh0PT0wKSByZXR1cm4gYjsgIGlmICgodC89ZCk9PTEpIHJldHVybiBiK2M7ICBpZiAoIXApIHA9ZCouMzsKCQlpZiAoYSA8IE1hdGguYWJzKGMpKSB7IGE9YzsgdmFyIHM9cC80OyB9CgkJZWxzZSB2YXIgcyA9IHAvKDIqTWF0aC5QSSkgKiBNYXRoLmFzaW4gKGMvYSk7CgkJcmV0dXJuIGEqTWF0aC5wb3coMiwtMTAqdCkgKiBNYXRoLnNpbiggKHQqZC1zKSooMipNYXRoLlBJKS9wICkgKyBjICsgYjsKCX0sCgllYXNlSW5PdXRFbGFzdGljOiBmdW5jdGlvbiAoeCwgdCwgYiwgYywgZCkgewoJCXZhciBzPTEuNzAxNTg7dmFyIHA9MDt2YXIgYT1jOwoJCWlmICh0PT0wKSByZXR1cm4gYjsgIGlmICgodC89ZC8yKT09MikgcmV0dXJuIGIrYzsgIGlmICghcCkgcD1kKiguMyoxLjUpOwoJCWlmIChhIDwgTWF0aC5hYnMoYykpIHsgYT1jOyB2YXIgcz1wLzQ7IH0KCQllbHNlIHZhciBzID0gcC8oMipNYXRoLlBJKSAqIE1hdGguYXNpbiAoYy9hKTsKCQlpZiAodCA8IDEpIHJldHVybiAtLjUqKGEqTWF0aC5wb3coMiwxMCoodC09MSkpICogTWF0aC5zaW4oICh0KmQtcykqKDIqTWF0aC5QSSkvcCApKSArIGI7CgkJcmV0dXJuIGEqTWF0aC5wb3coMiwtMTAqKHQtPTEpKSAqIE1hdGguc2luKCAodCpkLXMpKigyKk1hdGguUEkpL3AgKSouNSArIGMgKyBiOwoJfSwKCWVhc2VJbkJhY2s6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkLCBzKSB7CgkJaWYgKHMgPT0gdW5kZWZpbmVkKSBzID0gMS43MDE1ODsKCQlyZXR1cm4gYyoodC89ZCkqdCooKHMrMSkqdCAtIHMpICsgYjsKCX0sCgllYXNlT3V0QmFjazogZnVuY3Rpb24gKHgsIHQsIGIsIGMsIGQsIHMpIHsKCQlpZiAocyA9PSB1bmRlZmluZWQpIHMgPSAxLjcwMTU4OwoJCXJldHVybiBjKigodD10L2QtMSkqdCooKHMrMSkqdCArIHMpICsgMSkgKyBiOwoJfSwKCWVhc2VJbk91dEJhY2s6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkLCBzKSB7CgkJaWYgKHMgPT0gdW5kZWZpbmVkKSBzID0gMS43MDE1ODsgCgkJaWYgKCh0Lz1kLzIpIDwgMSkgcmV0dXJuIGMvMioodCp0KigoKHMqPSgxLjUyNSkpKzEpKnQgLSBzKSkgKyBiOwoJCXJldHVybiBjLzIqKCh0LT0yKSp0KigoKHMqPSgxLjUyNSkpKzEpKnQgKyBzKSArIDIpICsgYjsKCX0sCgllYXNlSW5Cb3VuY2U6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkKSB7CgkJcmV0dXJuIGMgLSBqUXVlcnkuZWFzaW5nLmVhc2VPdXRCb3VuY2UgKHgsIGQtdCwgMCwgYywgZCkgKyBiOwoJfSwKCWVhc2VPdXRCb3VuY2U6IGZ1bmN0aW9uICh4LCB0LCBiLCBjLCBkKSB7CgkJaWYgKCh0Lz1kKSA8ICgxLzIuNzUpKSB7CgkJCXJldHVybiBjKig3LjU2MjUqdCp0KSArIGI7CgkJfSBlbHNlIGlmICh0IDwgKDIvMi43NSkpIHsKCQkJcmV0dXJuIGMqKDcuNTYyNSoodC09KDEuNS8yLjc1KSkqdCArIC43NSkgKyBiOwoJCX0gZWxzZSBpZiAodCA8ICgyLjUvMi43NSkpIHsKCQkJcmV0dXJuIGMqKDcuNTYyNSoodC09KDIuMjUvMi43NSkpKnQgKyAuOTM3NSkgKyBiOwoJCX0gZWxzZSB7CgkJCXJldHVybiBjKig3LjU2MjUqKHQtPSgyLjYyNS8yLjc1KSkqdCArIC45ODQzNzUpICsgYjsKCQl9Cgl9LAoJZWFzZUluT3V0Qm91bmNlOiBmdW5jdGlvbiAoeCwgdCwgYiwgYywgZCkgewoJCWlmICh0IDwgZC8yKSByZXR1cm4galF1ZXJ5LmVhc2luZy5lYXNlSW5Cb3VuY2UgKHgsIHQqMiwgMCwgYywgZCkgKiAuNSArIGI7CgkJcmV0dXJuIGpRdWVyeS5lYXNpbmcuZWFzZU91dEJvdW5jZSAoeCwgdCoyLWQsIDAsIGMsIGQpICogLjUgKyBjKi41ICsgYjsKCX0KfSk7CgovKgogKgogKiBURVJNUyBPRiBVU0UgLSBFQVNJTkcgRVFVQVRJT05TCiAqIAogKiBPcGVuIHNvdXJjZSB1bmRlciB0aGUgQlNEIExpY2Vuc2UuIAogKiAKICogQ29weXJpZ2h0IMKpIDIwMDEgUm9iZXJ0IFBlbm5lcgogKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKiAKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgCiAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKICogCiAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIAogKiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IAogKiBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyAKICogcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogKiAKICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgYXV0aG9yIG5vciB0aGUgbmFtZXMgb2YgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2UgCiAqIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCiAqIAogKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSAKICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCiAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQogKiAgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAogKiAgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFCiAqICBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgCiAqIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCiAqICBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCAKICogT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICoKICov]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.fancybox/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/jquery.fancybox/fancy_closebox.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.fancybox/fancy_left.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.fancybox/fancy_progress.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.fancybox/fancy_right.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABg9JREFUeNqMV1tMFGcUntmZvXJfwMKCAmq5NIg3bElE0JCoUVM1xiiptBoNpj4YH3whIekD9cXEhIQg4YFo3xpLQ0j7Yo0CD6IVg4olQWMU5CIgF2GXnb3NbL8z/YdM19llJznszs/5z/efc77/nLM8F/vhmXB79+41ud1u3ufz8X6/n7948aLocDj4mzdvBuj/NpstnJSUFO7t7VXY3jATw0eMAWhiIhQVFZmLi4vt+HQAWJyamgoLgpAmiqIA8KnS0lIuLy8vPDY25h8eHpY+fvwYwj4ZojAJGwEYrQkkmZmZ5u3btzsOHz68bsuWLRsg1SkpKVVms7lCvyEUCj1HNAaePXv2R2tr69CTJ0/ciEoABwiyA8ixvOeYhxQFe35+furJkyc3dHR0VMLo7+GIZ3p6Wh4dHZUj15eWln5FZApwYFdaWloK2WI2TbHySQqO3Nxc55kzZzZ3d3d/K8vyKBkMBAJKe3t7YP/+/V7ouPWya9eulRs3bgQkSVKY7vP79+/X7ty5cwMilEY2mW0+Gqg9OTnZeeDAgc137tw5Dht+MnT37t0QcuiJBIwU8GDl6dOnIc177PsOa/kM3G4ETjm1QlLKysoKrl+/fhB5G6PNt27dCoBI7rVANSHda9eu+TXwtra24y6Xaz3ZZhiCBk5/zJDEjIwM16VLlyoXFhb+1Dw1AkXuPCSxDkDXjGyAH/14/wqSRRgMy6QRykYhrqqqKrl9+/Y52rCysiIj14bGm5qa/ENDQ3IscIvF4p6cnAySrb6+vp9g60usOwmLea0CJ+A+usDiynfv3v1Cyi0tLYFoRsFclURrgdfX1/tIb25urgfvZZBs5rWo5Rf5T9l46NChg16v9zkpV1RUeKMZ3LFjx4oGTp/0bqSXnp7uAVfUXKemplZhrQCSCrGYNEaj5DlQGJx2u30r8qI8fvxYjnbvBgcHlX379knLy8thpIjv6emxA/yzezo/Px9GJVNLKkrsVpRUq3anVeDExEQBxLKjUmWQEopDeI0aroJv27ZNevnypRILHGVU/URBylUUZZXVqiIWBJ7nzSgWlHguGAxy8Tzgg3LlyhU/fSfwrq4ue6QObHIMwwrCCgxY9ZhDXvnZ2VnuzZs3Er1nZWXFBUweAkw9LHmODiZF6uAOq90K5dWNNP6vgNC9ciG/3xQUFJxHuZslMkS7SkYEi8ZuqgHQUa8UCtOPwPga6zl0i0y63qngSoXGx8dHaOHEiRNiLE8ppxRe8rS6ulpaXFz8jBc1NTUCdMSZmZl/cLhPSOFql9KA5f9SG/ShMbymhYaGBuq1hsDxgNLT2Niorg8MDIzig7iw2qcFBm5B8m0ej8eBkwmnT5/OzM7OdlmtVu7evXufXSsiH1LCHT161BcN9OzZs+Lly5ftsPkBuf8NnWsCywsQSklgtYDQ5cZEscfpdJ6/cOFCu1bkYUCKt0Fosnv3bi+FlfZjMOjC2jnIHn0BEfQTB7w2wxPbxMSEkJCQsIw+W3Ls2DER+znUWzkeptfV1YmdnZ1W1GpTf3//ALjyF5bJ21nIEsRHQVttEqyAb4ZUgY0/gKU/o153a56PjIz4Tp06JSHvhl7SgPDo0SOvpv/w4cNBrDdBviebzPZqk+B1Q4CVFXCqXjkAz0NF21hbW1sCkpTk5ORQd+EwSymvXr0KoeGrucU14QoLC1X20jta6hR6+OurV6/+jde3VLwgk5A5ll8imczrBgGRnSaZgWcDPBcEW48Ck9Pc3Fx45MiRjE2bNhUZhfj9+/dvHzx4MI+ONIz8UmjHWYg/MNBlFmZitsJHTJZmBp7EwvIFkyxUnXVgphNdLLW8vDwT3YvGGQ6T5dKLFy/m0HvnGWspl9OQGSYLLB1abtW7zBuMtRZd2IntBJDODkKMTAT71fkJLY/D9xBIKUEojJ8YEB1ikZFJC29AP+byBuOtiXluYQNaAotAEjuMQzc7acWHDHsZiEY46tESAwzqhvuYA702X4u6CGhiiZiTFZa3ADuAX+dhSMtp5EDPx5ix9YfQ/6ThDfZpv5P0P1n0YHH9hOHWOMxaTzgepX8FGADuEJHbscc2FgAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.fancybox/fancy_shadow_e.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA0AAAAECAYAAABV5LW0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiZGBg8ADi90D8A4h/QulfUPwbiP9A8V8g/gfE/5kYyABMUN0ka/pPqiaAAAMAKHoOBm9+vqAAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.fancybox/fancy_shadow_n.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAASCAYAAACaV7S8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACNJREFUeNpiYGBgYGQCEgxMMBYTnMWMhWCBE6y4CIgSgAADAA2lAF3Y3q+mAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.fancybox/fancy_shadow_ne.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA0AAAASCAYAAACAa1QyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJdJREFUeNqUkgsOwCAIQxHZ7n/hybaEma7iPiTEX59FoohIifwcb4DPIH0T8b6S28z5tlePtOQgg/vaws2T0jyEQ8mn05rc/Di3ABvcyK6D0wWVAAVGJwdniKNRWc5OFoJtAg9NMWi50LsKCLG88gQxeCtvISFn2giDlnvMG7hovLeDCqBS8p/so0Lb6wQaPrD+Bc7YBRgAARQsgvBDz24AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.fancybox/fancy_shadow_nw.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA0AAAASCAYAAACAa1QyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHFJREFUeNqUkAsKwDAIQ5fM3f/KGwPLZq2phRRqfX6Co3cwriph9wMqF80iSANFsr9hYhQE6BVWI8Tqj+ixqlOUQzRhxBcY4kYXBp1W7DIluyhMQAKZGm8CMihanEEXE4BJNwd+42HTDOvsJI2Q4C3AAFSdAQWkpOppAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.fancybox/fancy_shadow_s.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAASCAYAAACaV7S8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACpJREFUeNpiYGBgsGICEn/gxG9cBELJXwTBDCQYQaz/IBYDmABxGQACDAChSQ0uFhaMIQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.fancybox/fancy_shadow_se.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA0AAAASCAYAAACAa1QyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJFJREFUeNqMkoEOgCAIRNH8ov7/x0rDtOGGKBDbzWU9OG4FADibLtLdlJmepkInNtWuSBfjEvlL0lKRdfoNDqgIAAUwnXzS4p2EAvyg7FgEaZHbk5C7kwdwsCaxy58wICpAtewlkRgqH07PB6kKCKw/Ihl2tiGMSdHovp3UoaB11PbikNp5F4RVahDelKVeAQYAyGx/ZWSEUn8AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.fancybox/fancy_shadow_sw.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA0AAAASCAYAAACAa1QyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAH9JREFUeNqUkQsSgCAIREH63P/AZdpkgwSrOfMGP7uAykTEilSQwvLEVbEV9koVeSMrTsVREVMpIunYTKRiCkytq85EJoHl3fcqMZjfQ36IOxMSsfe0EmUDXzE0TVUi58WGlbzs2a4lEMO7CRCG7c0IPx2MRO4+6p1/HyD9JcAAS+YNmHZIdksAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.fancybox/fancy_shadow_w.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA0AAAAECAYAAABV5LW0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAC5JREFUeNpiZGBgYIRiJiBmBmIWKGYFYjYo5gBidigtCFJIMiBH0z9yNP0HCDAAa8cCTZSUYeoAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.fancybox/fancy_title_left.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA8AAAAgCAQAAABnJeoiAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAG+SURBVCjPjZNNKMNxGMe/9mZMZhtTwrwcRhLlrbxkTl4PHNwosh2cxGk1Ukpxwc1xJ+UkSqFcdtDiaDmMWCtWxLSpyUsez9//72X7/1d+v9v/83ue//N8n+8DyE8GXxXU0EArRyr+rIMeBuQiLxWpGWXDuGwPuWPbz4FkqEUWx1jvN0g6yTAb5v3+uJ/onfaenJHW8F9ogMXvFGIuXzrCCH7dryPC/COXANejhnMJBsVYDf/TPNfyFiOav/tBElYhE0YU3+4T7cSTYFCMNcDqdhC9ftgu5VjHsbajJaKt1NigkFqPAtjDh0TOiByrOXUR6uLXRLUhOdawTqVofk0QmS6UcB4q0JYOa2FCJToeI8rJJXzmVy5NSr7pVW5MKq13UpCl+ipNYxg4OVYSVZIFXe0zCa5+9k5RVDRhaMErGGHlIfM8dSSFqIIDo74TuR3EgZagHj2YcHlPb4Qcu/ExyUyiHSwoRyP6MAHPQSDZiqKZCrj/BnRjBNM1a6s+X+gi+m1Fwd85/KCMW+zEIMYxBQ8Wf40sPGCvopiLbOQyBzCMUfkaGGFlFe2cpRntSvvFS4R8VtLGo/r/Cios8Cda4RLIg7+tuQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.fancybox/fancy_title_main.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAAgCAQAAAB57NqRAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAnSURBVAjXY2BgZ2AQZfj/H4QYbpKPoCZMZWDIYmBwZ2DQBhnLwA4AVwIallZZU/IAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.fancybox/fancy_title_right.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA8AAAAgCAQAAABnJeoiAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHBSURBVCjPfVNLKIRRGD1mxmOMvIcSxmOBJMqrPDJWngsWdhQZCyuxUkgpxQY7y1kpK1EKZTMLTSzJYohpiinyyKiRR65zzT/6Z/5/3G95zvfde849HxAPE4wwII6lc9KRCguSkECaQUN5O3vZ9k4vlyENyaQYoyhCOQ8byOEcMy9TE5p8Dv/e6xcJAfd+DzI5I4LgkdXqu3qXM9wOZPElKoInVJaL9SdJOBpDtkJQw7Lm74X4fJlr5BVm6oiLguHZCQhxt4986kgM9UfAtquPbyGm7VRhCfV7ImuL/UdLsLE/QQd2+IXwHaIMVjpp0MBVXjpwg2rkcbxRA2dcCvERRAMK6aEpFtyMEn6WSXf4sx+tKEUGzdF72rk7JiyFbTpjDK+4lrZ0jcd4mjT15Bi9usJm+SXBYMsU2jW2JF6sPMpQLDjRj/ooU8NxcJ1gCHaUI1f5kibfsH83IPtOb8ecGEUnalDw96HhKB6cYYZgN+pQzECF43D55PKuuirXMIlBdKCWeq3qMC2yawIj6EMb5RQRTPnNuxLFIQxQp51DyxkimVMVCLTQoWrqLGSA0jRrQOttdChbWSLNnv2/gv8v8A9rRBLIyszVnQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.fancybox/jquery.fancybox-1.2.1.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogRmFuY3lCb3ggLSBzaW1wbGUgYW5kIGZhbmN5IGpRdWVyeSBwbHVnaW4KICogRXhhbXBsZXMgYW5kIGRvY3VtZW50YXRpb24gYXQ6IGh0dHA6Ly9mYW5jeS5rbGFkZS5sdi8KICogVmVyc2lvbjogMS4yLjEgKDEzLzAzLzIwMDkpCiAqIENvcHlyaWdodCAoYykgMjAwOSBKYW5pcyBTa2FybmVsaXMKICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlOiBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL01JVF9MaWNlbnNlCiAqIFJlcXVpcmVzOiBqUXVlcnkgdjEuMysKKi8KOyhmdW5jdGlvbigkKSB7CgoJJC5mbi5maXhQTkcgPSBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uICgpIHsKCQkJdmFyIGltYWdlID0gJCh0aGlzKS5jc3MoJ2JhY2tncm91bmRJbWFnZScpOwoKCQkJaWYgKGltYWdlLm1hdGNoKC9edXJsXChbIiddPyguKlwucG5nKVsiJ10/XCkkL2kpKSB7CgkJCQlpbWFnZSA9IFJlZ0V4cC4kMTsKCQkJCSQodGhpcykuY3NzKHsKCQkJCQknYmFja2dyb3VuZEltYWdlJzogJ25vbmUnLAoJCQkJCSdmaWx0ZXInOiAicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhSW1hZ2VMb2FkZXIoZW5hYmxlZD10cnVlLCBzaXppbmdNZXRob2Q9IiArICgkKHRoaXMpLmNzcygnYmFja2dyb3VuZFJlcGVhdCcpID09ICduby1yZXBlYXQnID8gJ2Nyb3AnIDogJ3NjYWxlJykgKyAiLCBzcmM9JyIgKyBpbWFnZSArICInKSIKCQkJCX0pLmVhY2goZnVuY3Rpb24gKCkgewoJCQkJCXZhciBwb3NpdGlvbiA9ICQodGhpcykuY3NzKCdwb3NpdGlvbicpOwoJCQkJCWlmIChwb3NpdGlvbiAhPSAnYWJzb2x1dGUnICYmIHBvc2l0aW9uICE9ICdyZWxhdGl2ZScpCgkJCQkJCSQodGhpcykuY3NzKCdwb3NpdGlvbicsICdyZWxhdGl2ZScpOwoJCQkJfSk7CgkJCX0KCQl9KTsKCX07CgoJdmFyIGVsZW0sIG9wdHMsIGJ1c3kgPSBmYWxzZSwgaW1hZ2VQcmVsb2FkZXIgPSBuZXcgSW1hZ2UsIGxvYWRpbmdUaW1lciwgbG9hZGluZ0ZyYW1lID0gMSwgaW1hZ2VSZWdFeHAgPSAvXC4oanBnfGdpZnxwbmd8Ym1wfGpwZWcpKC4qKT8kL2k7Cgl2YXIgaXNJRSA9ICgkLmJyb3dzZXIubXNpZSAmJiBwYXJzZUludCgkLmJyb3dzZXIudmVyc2lvbi5zdWJzdHIoMCwxKSkgPCA4KTsKCgkkLmZuLmZhbmN5Ym94ID0gZnVuY3Rpb24oc2V0dGluZ3MpIHsKCQlzZXR0aW5ncyA9ICQuZXh0ZW5kKHt9LCAkLmZuLmZhbmN5Ym94LmRlZmF1bHRzLCBzZXR0aW5ncyk7CgoJCXZhciBtYXRjaGVkR3JvdXAgPSB0aGlzOwoKCQlmdW5jdGlvbiBfaW5pdGlhbGl6ZSgpIHsKCQkJZWxlbSA9IHRoaXM7CgkJCW9wdHMgPSBzZXR0aW5nczsKCgkJCV9zdGFydCgpOwoKCQkJcmV0dXJuIGZhbHNlOwoJCX07CgoJCWZ1bmN0aW9uIF9zdGFydCgpIHsKCQkJaWYgKGJ1c3kpIHJldHVybjsKCgkJCWlmICgkLmlzRnVuY3Rpb24ob3B0cy5jYWxsYmFja09uU3RhcnQpKSB7CgkJCQlvcHRzLmNhbGxiYWNrT25TdGFydCgpOwoJCQl9CgoJCQlvcHRzLml0ZW1BcnJheQkJPSBbXTsKCQkJb3B0cy5pdGVtQ3VycmVudAk9IDA7CgoJCQlpZiAoc2V0dGluZ3MuaXRlbUFycmF5Lmxlbmd0aCA+IDApIHsKCQkJCW9wdHMuaXRlbUFycmF5ID0gc2V0dGluZ3MuaXRlbUFycmF5OwoKCQkJfSBlbHNlIHsKCQkJCXZhciBpdGVtID0ge307CgoJCQkJaWYgKCFlbGVtLnJlbCB8fCBlbGVtLnJlbCA9PSAnJykgewoJCQkJCXZhciBpdGVtID0ge2hyZWY6IGVsZW0uaHJlZiwgdGl0bGU6IGVsZW0udGl0bGV9OwoKCQkJCQlpZiAoJChlbGVtKS5jaGlsZHJlbigiaW1nOmZpcnN0IikubGVuZ3RoKSB7CgkJCQkJCWl0ZW0ub3JpZyA9ICQoZWxlbSkuY2hpbGRyZW4oImltZzpmaXJzdCIpOwoJCQkJCX0KCgkJCQkJb3B0cy5pdGVtQXJyYXkucHVzaCggaXRlbSApOwoKCQkJCX0gZWxzZSB7CgkJCQkJCgkJCQkJdmFyIHN1Ykdyb3VwID0gJChtYXRjaGVkR3JvdXApLmZpbHRlcigiYVtyZWw9IiArIGVsZW0ucmVsICsgIl0iKTsKCgkJCQkJdmFyIGl0ZW0gPSB7fTsKCgkJCQkJZm9yICh2YXIgaSA9IDA7IGkgPCBzdWJHcm91cC5sZW5ndGg7IGkrKykgewoJCQkJCQlpdGVtID0ge2hyZWY6IHN1Ykdyb3VwW2ldLmhyZWYsIHRpdGxlOiBzdWJHcm91cFtpXS50aXRsZX07CgoJCQkJCQlpZiAoJChzdWJHcm91cFtpXSkuY2hpbGRyZW4oImltZzpmaXJzdCIpLmxlbmd0aCkgewoJCQkJCQkJaXRlbS5vcmlnID0gJChzdWJHcm91cFtpXSkuY2hpbGRyZW4oImltZzpmaXJzdCIpOwoJCQkJCQl9CgoJCQkJCQlvcHRzLml0ZW1BcnJheS5wdXNoKCBpdGVtICk7CgkJCQkJfQoKCQkJCQl3aGlsZSAoIG9wdHMuaXRlbUFycmF5WyBvcHRzLml0ZW1DdXJyZW50IF0uaHJlZiAhPSBlbGVtLmhyZWYgKSB7CgkJCQkJCW9wdHMuaXRlbUN1cnJlbnQrKzsKCQkJCQl9CgkJCQl9CgkJCX0KCgkJCWlmIChvcHRzLm92ZXJsYXlTaG93KSB7CgkJCQlpZiAoaXNJRSkgewoJCQkJCSQoJ2VtYmVkLCBvYmplY3QsIHNlbGVjdCcpLmNzcygndmlzaWJpbGl0eScsICdoaWRkZW4nKTsKCQkJCX0KCgkJCQkkKCIjZmFuY3lfb3ZlcmxheSIpLmNzcygnb3BhY2l0eScsIG9wdHMub3ZlcmxheU9wYWNpdHkpLnNob3coKTsKCQkJfQoKCQkJX2NoYW5nZV9pdGVtKCk7CgkJfTsKCgkJZnVuY3Rpb24gX2NoYW5nZV9pdGVtKCkgewoJCQkkKCIjZmFuY3lfcmlnaHQsICNmYW5jeV9sZWZ0LCAjZmFuY3lfY2xvc2UsICNmYW5jeV90aXRsZSIpLmhpZGUoKTsKCgkJCXZhciBocmVmID0gb3B0cy5pdGVtQXJyYXlbIG9wdHMuaXRlbUN1cnJlbnQgXS5ocmVmOwoKCQkJaWYgKGhyZWYubWF0Y2goLyMvKSkgewoJCQkJdmFyIHRhcmdldCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCcjJylbMF07IHRhcmdldCA9IGhyZWYucmVwbGFjZSh0YXJnZXQsICcnKTsgdGFyZ2V0ID0gdGFyZ2V0LnN1YnN0cih0YXJnZXQuaW5kZXhPZignIycpKTsKCgkJCQlfc2V0X2NvbnRlbnQoJzxkaXYgaWQ9ImZhbmN5X2RpdiI+JyArICQodGFyZ2V0KS5odG1sKCkgKyAnPC9kaXY+Jywgb3B0cy5mcmFtZVdpZHRoLCBvcHRzLmZyYW1lSGVpZ2h0KTsKCgkJCX0gZWxzZSBpZiAoaHJlZi5tYXRjaChpbWFnZVJlZ0V4cCkpIHsKCQkJCWltYWdlUHJlbG9hZGVyID0gbmV3IEltYWdlOyBpbWFnZVByZWxvYWRlci5zcmMgPSBocmVmOwoKCQkJCWlmIChpbWFnZVByZWxvYWRlci5jb21wbGV0ZSkgewoJCQkJCV9wcm9jZWVkX2ltYWdlKCk7CgoJCQkJfSBlbHNlIHsKCQkJCQkkLmZuLmZhbmN5Ym94LnNob3dMb2FkaW5nKCk7CgoJCQkJCSQoaW1hZ2VQcmVsb2FkZXIpLnVuYmluZCgpLmJpbmQoJ2xvYWQnLCBmdW5jdGlvbigpIHsKCQkJCQkJJCgiLmZhbmN5X2xvYWRpbmciKS5oaWRlKCk7CgoJCQkJCQlfcHJvY2VlZF9pbWFnZSgpOwoJCQkJCX0pOwoJCQkJfQoKCQkJIH0gZWxzZSBpZiAoaHJlZi5tYXRjaCgiaWZyYW1lIikgfHwgZWxlbS5jbGFzc05hbWUuaW5kZXhPZigiaWZyYW1lIikgPj0gMCkgewoJCQkJX3NldF9jb250ZW50KCc8aWZyYW1lIGlkPSJmYW5jeV9mcmFtZSIgb25sb2FkPSIkLmZuLmZhbmN5Ym94LnNob3dJZnJhbWUoKSIgbmFtZT0iZmFuY3lfaWZyYW1lJyArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSoxMDAwKSArICciIGZyYW1lYm9yZGVyPSIwIiBoc3BhY2U9IjAiIHNyYz0iJyArIGhyZWYgKyAnIj48L2lmcmFtZT4nLCBvcHRzLmZyYW1lV2lkdGgsIG9wdHMuZnJhbWVIZWlnaHQpOwoKCQkJfSBlbHNlIHsKCQkJCSQuZ2V0KGhyZWYsIGZ1bmN0aW9uKGRhdGEpIHsKCQkJCQlfc2V0X2NvbnRlbnQoICc8ZGl2IGlkPSJmYW5jeV9hamF4Ij4nICsgZGF0YSArICc8L2Rpdj4nLCBvcHRzLmZyYW1lV2lkdGgsIG9wdHMuZnJhbWVIZWlnaHQgKTsKCQkJCX0pOwoJCQl9CgkJfTsKCgkJZnVuY3Rpb24gX3Byb2NlZWRfaW1hZ2UoKSB7CgkJCWlmIChvcHRzLmltYWdlU2NhbGUpIHsKCQkJCXZhciB3ID0gJC5mbi5mYW5jeWJveC5nZXRWaWV3cG9ydCgpOwoKCQkJCXZhciByID0gTWF0aC5taW4oTWF0aC5taW4od1swXSAtIDM2LCBpbWFnZVByZWxvYWRlci53aWR0aCkgLyBpbWFnZVByZWxvYWRlci53aWR0aCwgTWF0aC5taW4od1sxXSAtIDYwLCBpbWFnZVByZWxvYWRlci5oZWlnaHQpIC8gaW1hZ2VQcmVsb2FkZXIuaGVpZ2h0KTsKCgkJCQl2YXIgd2lkdGggPSBNYXRoLnJvdW5kKHIgKiBpbWFnZVByZWxvYWRlci53aWR0aCk7CgkJCQl2YXIgaGVpZ2h0ID0gTWF0aC5yb3VuZChyICogaW1hZ2VQcmVsb2FkZXIuaGVpZ2h0KTsKCgkJCX0gZWxzZSB7CgkJCQl2YXIgd2lkdGggPSBpbWFnZVByZWxvYWRlci53aWR0aDsKCQkJCXZhciBoZWlnaHQgPSBpbWFnZVByZWxvYWRlci5oZWlnaHQ7CgkJCX0KCgkJCV9zZXRfY29udGVudCgnPGltZyBhbHQ9IiIgaWQ9ImZhbmN5X2ltZyIgc3JjPSInICsgaW1hZ2VQcmVsb2FkZXIuc3JjICsgJyIgLz4nLCB3aWR0aCwgaGVpZ2h0KTsKCQl9OwoKCQlmdW5jdGlvbiBfcHJlbG9hZF9uZWlnaGJvcl9pbWFnZXMoKSB7CgkJCWlmICgob3B0cy5pdGVtQXJyYXkubGVuZ3RoIC0xKSA+IG9wdHMuaXRlbUN1cnJlbnQpIHsKCQkJCXZhciBocmVmID0gb3B0cy5pdGVtQXJyYXlbb3B0cy5pdGVtQ3VycmVudCArIDFdLmhyZWY7CgoJCQkJaWYgKGhyZWYubWF0Y2goaW1hZ2VSZWdFeHApKSB7CgkJCQkJb2JqTmV4dCA9IG5ldyBJbWFnZSgpOwoJCQkJCW9iak5leHQuc3JjID0gaHJlZjsKCQkJCX0KCQkJfQoKCQkJaWYgKG9wdHMuaXRlbUN1cnJlbnQgPiAwKSB7CgkJCQl2YXIgaHJlZiA9IG9wdHMuaXRlbUFycmF5W29wdHMuaXRlbUN1cnJlbnQgLTFdLmhyZWY7CgoJCQkJaWYgKGhyZWYubWF0Y2goaW1hZ2VSZWdFeHApKSB7CgkJCQkJb2JqTmV4dCA9IG5ldyBJbWFnZSgpOwoJCQkJCW9iak5leHQuc3JjID0gaHJlZjsKCQkJCX0KCQkJfQoJCX07CgoJCWZ1bmN0aW9uIF9zZXRfY29udGVudCh2YWx1ZSwgd2lkdGgsIGhlaWdodCkgewoJCQlidXN5ID0gdHJ1ZTsKCgkJCXZhciBwYWQgPSBvcHRzLnBhZGRpbmc7CgoJCQlpZiAoaXNJRSkgewoJCQkJJCgiI2ZhbmN5X2NvbnRlbnQiKVswXS5zdHlsZS5yZW1vdmVFeHByZXNzaW9uKCJoZWlnaHQiKTsKCQkJCSQoIiNmYW5jeV9jb250ZW50IilbMF0uc3R5bGUucmVtb3ZlRXhwcmVzc2lvbigid2lkdGgiKTsKCQkJfQoKCQkJaWYgKHBhZCA+IDApIHsKCQkJCXdpZHRoCSs9IHBhZCAqIDI7CgkJCQloZWlnaHQJKz0gcGFkICogMjsKCgkJCQkkKCIjZmFuY3lfY29udGVudCIpLmNzcyh7CgkJCQkJJ3RvcCcJCTogcGFkICsgJ3B4JywKCQkJCQkncmlnaHQnCQk6IHBhZCArICdweCcsCgkJCQkJJ2JvdHRvbScJOiBwYWQgKyAncHgnLAoJCQkJCSdsZWZ0JwkJOiBwYWQgKyAncHgnLAoJCQkJCSd3aWR0aCcJCTogJ2F1dG8nLAoJCQkJCSdoZWlnaHQnCTogJ2F1dG8nCgkJCQl9KTsKCgkJCQlpZiAoaXNJRSkgewoJCQkJCSQoIiNmYW5jeV9jb250ZW50IilbMF0uc3R5bGUuc2V0RXhwcmVzc2lvbignaGVpZ2h0JywJJyh0aGlzLnBhcmVudE5vZGUuY2xpZW50SGVpZ2h0IC0gMjApJyk7CgkJCQkJJCgiI2ZhbmN5X2NvbnRlbnQiKVswXS5zdHlsZS5zZXRFeHByZXNzaW9uKCd3aWR0aCcsCQknKHRoaXMucGFyZW50Tm9kZS5jbGllbnRXaWR0aCAtIDIwKScpOwoJCQkJfQoKCQkJfSBlbHNlIHsKCQkJCSQoIiNmYW5jeV9jb250ZW50IikuY3NzKHsKCQkJCQkndG9wJwkJOiAwLAoJCQkJCSdyaWdodCcJCTogMCwKCQkJCQknYm90dG9tJwk6IDAsCgkJCQkJJ2xlZnQnCQk6IDAsCgkJCQkJJ3dpZHRoJwkJOiAnMTAwJScsCgkJCQkJJ2hlaWdodCcJOiAnMTAwJScKCQkJCX0pOwoJCQl9CgoJCQlpZiAoJCgiI2ZhbmN5X291dGVyIikuaXMoIjp2aXNpYmxlIikgJiYgd2lkdGggPT0gJCgiI2ZhbmN5X291dGVyIikud2lkdGgoKSAmJiBoZWlnaHQgPT0gJCgiI2ZhbmN5X291dGVyIikuaGVpZ2h0KCkpIHsKCQkJCSQoIiNmYW5jeV9jb250ZW50IikuZmFkZU91dCgiZmFzdCIsIGZ1bmN0aW9uKCkgewoJCQkJCSQoIiNmYW5jeV9jb250ZW50IikuZW1wdHkoKS5hcHBlbmQoJCh2YWx1ZSkpLmZhZGVJbigibm9ybWFsIiwgZnVuY3Rpb24oKSB7CgkJCQkJCV9maW5pc2goKTsKCQkJCQl9KTsKCQkJCX0pOwoKCQkJCXJldHVybjsKCQkJfQoKCQkJdmFyIHcgPSAkLmZuLmZhbmN5Ym94LmdldFZpZXdwb3J0KCk7CgoJCQl2YXIgaXRlbUxlZnQJPSAod2lkdGggKyAzNikJPiB3WzBdID8gd1syXSA6ICh3WzJdICsgTWF0aC5yb3VuZCgod1swXSAtIHdpZHRoIC0gMzYpIC8gMikpOwoJCQl2YXIgaXRlbVRvcAkJPSAoaGVpZ2h0ICsgNTApCT4gd1sxXSA/IHdbM10gOiAod1szXSArIE1hdGgucm91bmQoKHdbMV0gLSBoZWlnaHQgLSA1MCkgLyAyKSk7CgoJCQl2YXIgaXRlbU9wdHMgPSB7CgkJCQknbGVmdCc6CQlpdGVtTGVmdCwKCQkJCSd0b3AnOgkJaXRlbVRvcCwKCQkJCSd3aWR0aCc6CXdpZHRoICsgJ3B4JywKCQkJCSdoZWlnaHQnOgloZWlnaHQgKyAncHgnCgkJCX07CgoJCQlpZiAoJCgiI2ZhbmN5X291dGVyIikuaXMoIjp2aXNpYmxlIikpIHsKCQkJCSQoIiNmYW5jeV9jb250ZW50IikuZmFkZU91dCgibm9ybWFsIiwgZnVuY3Rpb24oKSB7CgkJCQkJJCgiI2ZhbmN5X2NvbnRlbnQiKS5lbXB0eSgpOwoJCQkJCSQoIiNmYW5jeV9vdXRlciIpLmFuaW1hdGUoaXRlbU9wdHMsIG9wdHMuem9vbVNwZWVkQ2hhbmdlLCBvcHRzLmVhc2luZ0NoYW5nZSwgZnVuY3Rpb24oKSB7CgkJCQkJCSQoIiNmYW5jeV9jb250ZW50IikuYXBwZW5kKCQodmFsdWUpKS5mYWRlSW4oIm5vcm1hbCIsIGZ1bmN0aW9uKCkgewoJCQkJCQkJX2ZpbmlzaCgpOwoJCQkJCQl9KTsKCQkJCQl9KTsKCQkJCX0pOwoKCQkJfSBlbHNlIHsKCgkJCQlpZiAob3B0cy56b29tU3BlZWRJbiA+IDAgJiYgb3B0cy5pdGVtQXJyYXlbb3B0cy5pdGVtQ3VycmVudF0ub3JpZyAhPT0gdW5kZWZpbmVkKSB7CgkJCQkJJCgiI2ZhbmN5X2NvbnRlbnQiKS5lbXB0eSgpLmFwcGVuZCgkKHZhbHVlKSk7CgoJCQkJCXZhciBvcmlnX2l0ZW0JPSBvcHRzLml0ZW1BcnJheVtvcHRzLml0ZW1DdXJyZW50XS5vcmlnOwoJCQkJCXZhciBvcmlnX3Bvcwk9ICQuZm4uZmFuY3lib3guZ2V0UG9zaXRpb24ob3JpZ19pdGVtKTsKCgkJCQkJJCgiI2ZhbmN5X291dGVyIikuY3NzKHsKCQkJCQkJJ2xlZnQnOgkJKG9yaWdfcG9zLmxlZnQgLSAxOCkgKyAncHgnLAoJCQkJCQkndG9wJzoJCShvcmlnX3Bvcy50b3AgIC0gMTgpICsgJ3B4JywKCQkJCQkJJ3dpZHRoJzoJJChvcmlnX2l0ZW0pLndpZHRoKCksCgkJCQkJCSdoZWlnaHQnOgkkKG9yaWdfaXRlbSkuaGVpZ2h0KCkKCQkJCQl9KTsKCgkJCQkJaWYgKG9wdHMuem9vbU9wYWNpdHkpIHsKCQkJCQkJaXRlbU9wdHMub3BhY2l0eSA9ICdzaG93JzsKCQkJCQl9CgoJCQkJCSQoIiNmYW5jeV9vdXRlciIpLmFuaW1hdGUoaXRlbU9wdHMsIG9wdHMuem9vbVNwZWVkSW4sIG9wdHMuZWFzaW5nSW4sIGZ1bmN0aW9uKCkgewoJCQkJCQlfZmluaXNoKCk7CgkJCQkJfSk7CgoJCQkJfSBlbHNlIHsKCgkJCQkJJCgiI2ZhbmN5X2NvbnRlbnQiKS5oaWRlKCkuZW1wdHkoKS5hcHBlbmQoJCh2YWx1ZSkpLnNob3coKTsKCQkJCQkkKCIjZmFuY3lfb3V0ZXIiKS5jc3MoaXRlbU9wdHMpLmZhZGVJbigibm9ybWFsIiwgZnVuY3Rpb24oKSB7CgkJCQkJCV9maW5pc2goKTsKCQkJCQl9KTsKCQkJCX0KCQkJfQoJCX07CgoJCWZ1bmN0aW9uIF9zZXRfbmF2aWdhdGlvbigpIHsKCQkJaWYgKG9wdHMuaXRlbUN1cnJlbnQgIT0gMCkgewoJCQkJJCgiI2ZhbmN5X2xlZnQsICNmYW5jeV9sZWZ0X2ljbyIpLnVuYmluZCgpLmJpbmQoImNsaWNrIiwgZnVuY3Rpb24oZSkgewoJCQkJCWUuc3RvcFByb3BhZ2F0aW9uKCk7CgoJCQkJCW9wdHMuaXRlbUN1cnJlbnQtLTsKCQkJCQlfY2hhbmdlX2l0ZW0oKTsKCgkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJfSk7CgoJCQkJJCgiI2ZhbmN5X2xlZnQiKS5zaG93KCk7CgkJCX0KCgkJCWlmIChvcHRzLml0ZW1DdXJyZW50ICE9ICggb3B0cy5pdGVtQXJyYXkubGVuZ3RoIC0xKSkgewoJCQkJJCgiI2ZhbmN5X3JpZ2h0LCAjZmFuY3lfcmlnaHRfaWNvIikudW5iaW5kKCkuYmluZCgiY2xpY2siLCBmdW5jdGlvbihlKSB7CgkJCQkJZS5zdG9wUHJvcGFnYXRpb24oKTsKCgkJCQkJb3B0cy5pdGVtQ3VycmVudCsrOwoJCQkJCV9jaGFuZ2VfaXRlbSgpOwoKCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQl9KTsKCgkJCQkkKCIjZmFuY3lfcmlnaHQiKS5zaG93KCk7CgkJCX0KCQl9OwoKCQlmdW5jdGlvbiBfZmluaXNoKCkgewoJCQlfc2V0X25hdmlnYXRpb24oKTsKCgkJCV9wcmVsb2FkX25laWdoYm9yX2ltYWdlcygpOwoKCQkJJChkb2N1bWVudCkua2V5ZG93bihmdW5jdGlvbihlKSB7CgkJCQlpZiAoZS5rZXlDb2RlID09IDI3KSB7CgkJCQkJJC5mbi5mYW5jeWJveC5jbG9zZSgpOwoJCQkJCSQoZG9jdW1lbnQpLnVuYmluZCgia2V5ZG93biIpOwoKCQkJCX0gZWxzZSBpZihlLmtleUNvZGUgPT0gMzcgJiYgb3B0cy5pdGVtQ3VycmVudCAhPSAwKSB7CgkJCQkJb3B0cy5pdGVtQ3VycmVudC0tOwoJCQkJCV9jaGFuZ2VfaXRlbSgpOwoJCQkJCSQoZG9jdW1lbnQpLnVuYmluZCgia2V5ZG93biIpOwoKCQkJCX0gZWxzZSBpZihlLmtleUNvZGUgPT0gMzkgJiYgb3B0cy5pdGVtQ3VycmVudCAhPSAob3B0cy5pdGVtQXJyYXkubGVuZ3RoIC0gMSkpIHsKIAkJCQkJb3B0cy5pdGVtQ3VycmVudCsrOwoJCQkJCV9jaGFuZ2VfaXRlbSgpOwoJCQkJCSQoZG9jdW1lbnQpLnVuYmluZCgia2V5ZG93biIpOwoJCQkJfQoJCQl9KTsKCgkJCWlmIChvcHRzLmNlbnRlck9uU2Nyb2xsKSB7CgkJCQkkKHdpbmRvdykuYmluZCgicmVzaXplIHNjcm9sbCIsICQuZm4uZmFuY3lib3guc2Nyb2xsQm94KTsKCQkJfSBlbHNlIHsKCQkJCSQoImRpdiNmYW5jeV9vdXRlciIpLmNzcygicG9zaXRpb24iLCAiYWJzb2x1dGUiKTsKCQkJfQoKCQkJaWYgKG9wdHMuaGlkZU9uQ29udGVudENsaWNrKSB7CgkJCQkkKCIjZmFuY3lfd3JhcCIpLmNsaWNrKCQuZm4uZmFuY3lib3guY2xvc2UpOwoJCQl9CgoJCQkkKCIjZmFuY3lfb3ZlcmxheSwgI2ZhbmN5X2Nsb3NlIikuYmluZCgiY2xpY2siLCAkLmZuLmZhbmN5Ym94LmNsb3NlKTsKCgkJCSQoIiNmYW5jeV9jbG9zZSIpLnNob3coKTsKCgkJCWlmIChvcHRzLml0ZW1BcnJheVsgb3B0cy5pdGVtQ3VycmVudCBdLnRpdGxlICE9PSB1bmRlZmluZWQgJiYgb3B0cy5pdGVtQXJyYXlbIG9wdHMuaXRlbUN1cnJlbnQgXS50aXRsZS5sZW5ndGggPiAwKSB7CgkJCQkkKCcjZmFuY3lfdGl0bGUgZGl2JykuaHRtbChvcHRzLml0ZW1BcnJheVsgb3B0cy5pdGVtQ3VycmVudCBdLnRpdGxlKTsKCQkJCSQoJyNmYW5jeV90aXRsZScpLnNob3coKTsKCQkJfQoKCQkJaWYgKG9wdHMub3ZlcmxheVNob3cgJiYgaXNJRSkgewoJCQkJJCgnZW1iZWQsIG9iamVjdCwgc2VsZWN0JywgJCgnI2ZhbmN5X2NvbnRlbnQnKSkuY3NzKCd2aXNpYmlsaXR5JywgJ3Zpc2libGUnKTsKCQkJfQoKCQkJaWYgKCQuaXNGdW5jdGlvbihvcHRzLmNhbGxiYWNrT25TaG93KSkgewoJCQkJb3B0cy5jYWxsYmFja09uU2hvdygpOwoJCQl9CgoJCQlidXN5ID0gZmFsc2U7CgkJfTsKCgkJcmV0dXJuIHRoaXMudW5iaW5kKCdjbGljaycpLmNsaWNrKF9pbml0aWFsaXplKTsKCX07CgoJJC5mbi5mYW5jeWJveC5zY3JvbGxCb3ggPSBmdW5jdGlvbigpIHsKCQl2YXIgcG9zID0gJC5mbi5mYW5jeWJveC5nZXRWaWV3cG9ydCgpOwoKCQkkKCIjZmFuY3lfb3V0ZXIiKS5jc3MoJ2xlZnQnLCAoKCQoIiNmYW5jeV9vdXRlciIpLndpZHRoKCkJKyAzNikgPiBwb3NbMF0gPyBwb3NbMl0gOiBwb3NbMl0gKyBNYXRoLnJvdW5kKChwb3NbMF0gLSAkKCIjZmFuY3lfb3V0ZXIiKS53aWR0aCgpCS0gMzYpCS8gMikpKTsKCQkkKCIjZmFuY3lfb3V0ZXIiKS5jc3MoJ3RvcCcsICAoKCQoIiNmYW5jeV9vdXRlciIpLmhlaWdodCgpCSsgNTApID4gcG9zWzFdID8gcG9zWzNdIDogcG9zWzNdICsgTWF0aC5yb3VuZCgocG9zWzFdIC0gJCgiI2ZhbmN5X291dGVyIikuaGVpZ2h0KCkJLSA1MCkJLyAyKSkpOwoJfTsKCgkkLmZuLmZhbmN5Ym94LmdldE51bWVyaWMgPSBmdW5jdGlvbihlbCwgcHJvcCkgewoJCXJldHVybiBwYXJzZUludCgkLmN1ckNTUyhlbC5qcXVlcnk/ZWxbMF06ZWwscHJvcCx0cnVlKSl8fDA7Cgl9OwoKCSQuZm4uZmFuY3lib3guZ2V0UG9zaXRpb24gPSBmdW5jdGlvbihlbCkgewoJCXZhciBwb3MgPSBlbC5vZmZzZXQoKTsKCgkJcG9zLnRvcAkrPSAkLmZuLmZhbmN5Ym94LmdldE51bWVyaWMoZWwsICdwYWRkaW5nVG9wJyk7CgkJcG9zLnRvcAkrPSAkLmZuLmZhbmN5Ym94LmdldE51bWVyaWMoZWwsICdib3JkZXJUb3BXaWR0aCcpOwoKCQlwb3MubGVmdCArPSAkLmZuLmZhbmN5Ym94LmdldE51bWVyaWMoZWwsICdwYWRkaW5nTGVmdCcpOwoJCXBvcy5sZWZ0ICs9ICQuZm4uZmFuY3lib3guZ2V0TnVtZXJpYyhlbCwgJ2JvcmRlckxlZnRXaWR0aCcpOwoKCQlyZXR1cm4gcG9zOwoJfTsKCgkkLmZuLmZhbmN5Ym94LnNob3dJZnJhbWUgPSBmdW5jdGlvbigpIHsKCQkkKCIuZmFuY3lfbG9hZGluZyIpLmhpZGUoKTsKCQkkKCIjZmFuY3lfZnJhbWUiKS5zaG93KCk7Cgl9OwoKCSQuZm4uZmFuY3lib3guZ2V0Vmlld3BvcnQgPSBmdW5jdGlvbigpIHsKCQlyZXR1cm4gWyQod2luZG93KS53aWR0aCgpLCAkKHdpbmRvdykuaGVpZ2h0KCksICQoZG9jdW1lbnQpLnNjcm9sbExlZnQoKSwgJChkb2N1bWVudCkuc2Nyb2xsVG9wKCkgXTsKCX07CgoJJC5mbi5mYW5jeWJveC5hbmltYXRlTG9hZGluZyA9IGZ1bmN0aW9uKCkgewoJCWlmICghJCgiI2ZhbmN5X2xvYWRpbmciKS5pcygnOnZpc2libGUnKSl7CgkJCWNsZWFySW50ZXJ2YWwobG9hZGluZ1RpbWVyKTsKCQkJcmV0dXJuOwoJCX0KCgkJJCgiI2ZhbmN5X2xvYWRpbmcgPiBkaXYiKS5jc3MoJ3RvcCcsIChsb2FkaW5nRnJhbWUgKiAtNDApICsgJ3B4Jyk7CgoJCWxvYWRpbmdGcmFtZSA9IChsb2FkaW5nRnJhbWUgKyAxKSAlIDEyOwoJfTsKCgkkLmZuLmZhbmN5Ym94LnNob3dMb2FkaW5nID0gZnVuY3Rpb24oKSB7CgkJY2xlYXJJbnRlcnZhbChsb2FkaW5nVGltZXIpOwoKCQl2YXIgcG9zID0gJC5mbi5mYW5jeWJveC5nZXRWaWV3cG9ydCgpOwoKCQkkKCIjZmFuY3lfbG9hZGluZyIpLmNzcyh7J2xlZnQnOiAoKHBvc1swXSAtIDQwKSAvIDIgKyBwb3NbMl0pLCAndG9wJzogKChwb3NbMV0gLSA0MCkgLyAyICsgcG9zWzNdKX0pLnNob3coKTsKCQkkKCIjZmFuY3lfbG9hZGluZyIpLmJpbmQoJ2NsaWNrJywgJC5mbi5mYW5jeWJveC5jbG9zZSk7CgoJCWxvYWRpbmdUaW1lciA9IHNldEludGVydmFsKCQuZm4uZmFuY3lib3guYW5pbWF0ZUxvYWRpbmcsIDY2KTsKCX07CgoJJC5mbi5mYW5jeWJveC5jbG9zZSA9IGZ1bmN0aW9uKCkgewoJCWJ1c3kgPSB0cnVlOwoKCQkkKGltYWdlUHJlbG9hZGVyKS51bmJpbmQoKTsKCgkJJCgiI2ZhbmN5X292ZXJsYXksICNmYW5jeV9jbG9zZSIpLnVuYmluZCgpOwoKCQlpZiAob3B0cy5oaWRlT25Db250ZW50Q2xpY2spIHsKCQkJJCgiI2ZhbmN5X3dyYXAiKS51bmJpbmQoKTsKCQl9CgoJCSQoIiNmYW5jeV9jbG9zZSwgLmZhbmN5X2xvYWRpbmcsICNmYW5jeV9sZWZ0LCAjZmFuY3lfcmlnaHQsICNmYW5jeV90aXRsZSIpLmhpZGUoKTsKCgkJaWYgKG9wdHMuY2VudGVyT25TY3JvbGwpIHsKCQkJJCh3aW5kb3cpLnVuYmluZCgicmVzaXplIHNjcm9sbCIpOwoJCX0KCgkJX19jbGVhbnVwID0gZnVuY3Rpb24oKSB7CgkJCSQoIiNmYW5jeV9vdmVybGF5LCAjZmFuY3lfb3V0ZXIiKS5oaWRlKCk7CgoJCQlpZiAob3B0cy5jZW50ZXJPblNjcm9sbCkgewoJCQkJJCh3aW5kb3cpLnVuYmluZCgicmVzaXplIHNjcm9sbCIpOwoJCQl9CgoJCQlpZiAoaXNJRSkgewoJCQkJJCgnZW1iZWQsIG9iamVjdCwgc2VsZWN0JykuY3NzKCd2aXNpYmlsaXR5JywgJ3Zpc2libGUnKTsKCQkJfQoKCQkJaWYgKCQuaXNGdW5jdGlvbihvcHRzLmNhbGxiYWNrT25DbG9zZSkpIHsKCQkJCW9wdHMuY2FsbGJhY2tPbkNsb3NlKCk7CgkJCX0KCgkJCWJ1c3kgPSBmYWxzZTsKCQl9OwoKCQlpZiAoJCgiI2ZhbmN5X291dGVyIikuaXMoIjp2aXNpYmxlIikgIT09IGZhbHNlKSB7CgkJCWlmIChvcHRzLnpvb21TcGVlZE91dCA+IDAgJiYgb3B0cy5pdGVtQXJyYXlbb3B0cy5pdGVtQ3VycmVudF0ub3JpZyAhPT0gdW5kZWZpbmVkKSB7CgkJCQl2YXIgb3JpZ19pdGVtCT0gb3B0cy5pdGVtQXJyYXlbb3B0cy5pdGVtQ3VycmVudF0ub3JpZzsKCQkJCXZhciBvcmlnX3Bvcwk9ICQuZm4uZmFuY3lib3guZ2V0UG9zaXRpb24ob3JpZ19pdGVtKTsKCgkJCQl2YXIgaXRlbU9wdHMgPSB7CgkJCQkJJ2xlZnQnOgkJKG9yaWdfcG9zLmxlZnQgLSAxOCkgKyAncHgnLAoJCQkJCSd0b3AnOiAJCShvcmlnX3Bvcy50b3AgIC0gMTgpICsgJ3B4JywKCQkJCQknd2lkdGgnOgkkKG9yaWdfaXRlbSkud2lkdGgoKSwKCQkJCQknaGVpZ2h0JzoJJChvcmlnX2l0ZW0pLmhlaWdodCgpCgkJCQl9OwoKCQkJCWlmIChvcHRzLnpvb21PcGFjaXR5KSB7CgkJCQkJaXRlbU9wdHMub3BhY2l0eSA9ICdoaWRlJzsKCQkJCX0KCgkJCQkkKCIjZmFuY3lfb3V0ZXIiKS5zdG9wKGZhbHNlLCB0cnVlKS5hbmltYXRlKGl0ZW1PcHRzLCBvcHRzLnpvb21TcGVlZE91dCwgb3B0cy5lYXNpbmdPdXQsIF9fY2xlYW51cCk7CgoJCQl9IGVsc2UgewoJCQkJJCgiI2ZhbmN5X291dGVyIikuc3RvcChmYWxzZSwgdHJ1ZSkuZmFkZU91dCgiZmFzdCIsIF9fY2xlYW51cCk7CgkJCX0KCgkJfSBlbHNlIHsKCQkJX19jbGVhbnVwKCk7CgkJfQoKCQlyZXR1cm4gZmFsc2U7Cgl9OwoKCSQuZm4uZmFuY3lib3guYnVpbGQgPSBmdW5jdGlvbigpIHsKCQl2YXIgaHRtbCA9ICcnOwoKCQlodG1sICs9ICc8ZGl2IGlkPSJmYW5jeV9vdmVybGF5Ij48L2Rpdj4nOwoKCQlodG1sICs9ICc8ZGl2IGlkPSJmYW5jeV93cmFwIj4nOwoKCQlodG1sICs9ICc8ZGl2IGNsYXNzPSJmYW5jeV9sb2FkaW5nIiBpZD0iZmFuY3lfbG9hZGluZyI+PGRpdj48L2Rpdj48L2Rpdj4nOwoKCQlodG1sICs9ICc8ZGl2IGlkPSJmYW5jeV9vdXRlciI+JzsKCgkJaHRtbCArPSAnPGRpdiBpZD0iZmFuY3lfaW5uZXIiPic7CgoJCWh0bWwgKz0gJzxkaXYgaWQ9ImZhbmN5X2Nsb3NlIj48L2Rpdj4nOwoKCQlodG1sICs9ICAnPGRpdiBpZD0iZmFuY3lfYmciPjxkaXYgY2xhc3M9ImZhbmN5X2JnIGZhbmN5X2JnX24iPjwvZGl2PjxkaXYgY2xhc3M9ImZhbmN5X2JnIGZhbmN5X2JnX25lIj48L2Rpdj48ZGl2IGNsYXNzPSJmYW5jeV9iZyBmYW5jeV9iZ19lIj48L2Rpdj48ZGl2IGNsYXNzPSJmYW5jeV9iZyBmYW5jeV9iZ19zZSI+PC9kaXY+PGRpdiBjbGFzcz0iZmFuY3lfYmcgZmFuY3lfYmdfcyI+PC9kaXY+PGRpdiBjbGFzcz0iZmFuY3lfYmcgZmFuY3lfYmdfc3ciPjwvZGl2PjxkaXYgY2xhc3M9ImZhbmN5X2JnIGZhbmN5X2JnX3ciPjwvZGl2PjxkaXYgY2xhc3M9ImZhbmN5X2JnIGZhbmN5X2JnX253Ij48L2Rpdj48L2Rpdj4nOwoKCQlodG1sICs9ICAnPGEgaHJlZj0iamF2YXNjcmlwdDo7IiBpZD0iZmFuY3lfbGVmdCI+PHNwYW4gY2xhc3M9ImZhbmN5X2ljbyIgaWQ9ImZhbmN5X2xlZnRfaWNvIj48L3NwYW4+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6OyIgaWQ9ImZhbmN5X3JpZ2h0Ij48c3BhbiBjbGFzcz0iZmFuY3lfaWNvIiBpZD0iZmFuY3lfcmlnaHRfaWNvIj48L3NwYW4+PC9hPic7CgoJCWh0bWwgKz0gJzxkaXYgaWQ9ImZhbmN5X2NvbnRlbnQiPjwvZGl2Pic7CgoJCWh0bWwgKz0gICc8ZGl2IGlkPSJmYW5jeV90aXRsZSI+PC9kaXY+JzsKCgkJaHRtbCArPSAnPC9kaXY+JzsKCgkJaHRtbCArPSAnPC9kaXY+JzsKCgkJaHRtbCArPSAnPC9kaXY+JzsKCgkJJChodG1sKS5hcHBlbmRUbygiYm9keSIpOwoKCQkkKCc8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiPjx0cj48dGQgY2xhc3M9ImZhbmN5X3RpdGxlIiBpZD0iZmFuY3lfdGl0bGVfbGVmdCI+PC90ZD48dGQgY2xhc3M9ImZhbmN5X3RpdGxlIiBpZD0iZmFuY3lfdGl0bGVfbWFpbiI+PGRpdj48L2Rpdj48L3RkPjx0ZCBjbGFzcz0iZmFuY3lfdGl0bGUiIGlkPSJmYW5jeV90aXRsZV9yaWdodCI+PC90ZD48L3RyPjwvdGFibGU+JykuYXBwZW5kVG8oJyNmYW5jeV90aXRsZScpOwoKCQlpZiAoaXNJRSkgewoJCQkkKCIjZmFuY3lfaW5uZXIiKS5wcmVwZW5kKCc8aWZyYW1lIGNsYXNzPSJmYW5jeV9iaWdJZnJhbWUiIHNjcm9sbGluZz0ibm8iIGZyYW1lYm9yZGVyPSIwIj48L2lmcmFtZT4nKTsKCQkJJCgiI2ZhbmN5X2Nsb3NlLCAuZmFuY3lfYmcsIC5mYW5jeV90aXRsZSwgLmZhbmN5X2ljbyIpLmZpeFBORygpOwoJCX0KCX07CgoJJC5mbi5mYW5jeWJveC5kZWZhdWx0cyA9IHsKCQlwYWRkaW5nCQkJCToJMTAsCgkJaW1hZ2VTY2FsZQkJCToJdHJ1ZSwKCQl6b29tT3BhY2l0eQkJCToJZmFsc2UsCgkJem9vbVNwZWVkSW4JCQk6CTAsCgkJem9vbVNwZWVkT3V0CQk6CTAsCgkJem9vbVNwZWVkQ2hhbmdlCQk6CTMwMCwKCQllYXNpbmdJbgkJCToJJ3N3aW5nJywKCQllYXNpbmdPdXQJCQk6CSdzd2luZycsCgkJZWFzaW5nQ2hhbmdlCQk6CSdzd2luZycsCgkJZnJhbWVXaWR0aAkJCToJNDI1LAoJCWZyYW1lSGVpZ2h0CQkJOgkzNTUsCgkJb3ZlcmxheVNob3cJCQk6CXRydWUsCgkJb3ZlcmxheU9wYWNpdHkJCToJMC4zLAoJCWhpZGVPbkNvbnRlbnRDbGljawk6CXRydWUsCgkJY2VudGVyT25TY3JvbGwJCToJdHJ1ZSwKCQlpdGVtQXJyYXkJCQk6CVtdLAoJCWNhbGxiYWNrT25TdGFydAkJOgludWxsLAoJCWNhbGxiYWNrT25TaG93CQk6CW51bGwsCgkJY2FsbGJhY2tPbkNsb3NlCQk6CW51bGwKCX07CgoJJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CgkJJC5mbi5mYW5jeWJveC5idWlsZCgpOwoJfSk7Cgp9KShqUXVlcnkpOw==]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.fancybox/jquery.fancybox-1.2.1.pack.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogRmFuY3lCb3ggLSBzaW1wbGUgYW5kIGZhbmN5IGpRdWVyeSBwbHVnaW4KICogRXhhbXBsZXMgYW5kIGRvY3VtZW50YXRpb24gYXQ6IGh0dHA6Ly9mYW5jeS5rbGFkZS5sdi8KICogVmVyc2lvbjogMS4yLjEgKDEzLzAzLzIwMDkpCiAqIENvcHlyaWdodCAoYykgMjAwOSBKYW5pcyBTa2FybmVsaXMKICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlOiBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL01JVF9MaWNlbnNlCiAqIFJlcXVpcmVzOiBqUXVlcnkgdjEuMysKKi8KZXZhbChmdW5jdGlvbihwLGEsYyxrLGUsZCl7ZT1mdW5jdGlvbihjKXtyZXR1cm4oYzxhPycnOmUocGFyc2VJbnQoYy9hKSkpKygoYz1jJWEpPjM1P1N0cmluZy5mcm9tQ2hhckNvZGUoYysyOSk6Yy50b1N0cmluZygzNikpfTtpZighJycucmVwbGFjZSgvXi8sU3RyaW5nKSl7d2hpbGUoYy0tKXtkW2UoYyldPWtbY118fGUoYyl9az1bZnVuY3Rpb24oZSl7cmV0dXJuIGRbZV19XTtlPWZ1bmN0aW9uKCl7cmV0dXJuJ1xcdysnfTtjPTF9O3doaWxlKGMtLSl7aWYoa1tjXSl7cD1wLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFxiJytlKGMpKydcXGInLCdnJyksa1tjXSl9fXJldHVybiBwfSgnOyg3KCQpeyQuYi4yUT03KCl7dSBCLjJ0KDcoKXs5IDFKPSQoQikubihcJzJaXCcpOzUoMUouMWMoL14zd1xcKFsiXCddPyguKlxcLjJwKVsiXCddP1xcKSQvaSkpezFKPTN0LiQxOyQoQikubih7XCcyWlwnOlwnNDVcJyxcJzJvXCc6IjNXOjNSLjRtLjRkKDNoPUYsIDNUPSIrKCQoQikubihcJzQxXCcpPT1cJzJKLTNaXCc/XCc0Y1wnOlwnM05cJykrIiwgUT1cJyIrMUorIlwnKSJ9KS4ydCg3KCl7OSAxYj0kKEIpLm4oXCcxYlwnKTs1KDFiIT1cJzJlXCcmJjFiIT1cJzJuXCcpJChCKS5uKFwnMWJcJyxcJzJuXCcpfSl9fSl9OzkgQSw0LDE2PUQscz0xdCAxbywxdywxdj0xLDF5PS9cXC4oM0F8M1l8MnB8M2N8M2QpKC4qKT8kL2k7OSBQPSgkLjJxLjNLJiYyZigkLjJxLjN6LjJrKDAsMSkpPDgpOyQuYi5jPTcoWSl7WT0kLjN4KHt9LCQuYi5jLjJSLFkpOzkgMnM9Qjs3IDJoKCl7QT1COzQ9WTsycigpO3UgRH07NyAycigpezUoMTYpdTs1KCQuMU8oNC4yYykpezQuMmMoKX00Lmo9W107NC5oPTA7NShZLmouTj4wKXs0Lmo9WS5qfXR7OSBPPXt9OzUoIUEuMUh8fEEuMUg9PVwnXCcpezkgTz17ZDpBLmQsWDpBLlh9OzUoJChBKS4xRygiMW06MUQiKS5OKXtPLjFhPSQoQSkuMUcoIjFtOjFEIil9NC5qLjJqKE8pfXR7OSBaPSQoMnMpLjJvKCJhWzFIPSIrQS4xSCsiXSIpOzkgTz17fTszQyg5IGk9MDtpPFouTjtpKyspe089e2Q6WltpXS5kLFg6WltpXS5YfTs1KCQoWltpXSkuMUcoIjFtOjFEIikuTil7Ty4xYT0kKFpbaV0pLjFHKCIxbToxRCIpfTQuai4yaihPKX0zRig0LmpbNC5oXS5kIT1BLmQpezQuaCsrfX19NSg0LjIzKXs1KFApeyQoXCcxVSwgMVEsIDFQXCcpLm4oXCcxU1wnLFwnM3NcJyl9JCgiIzFpIikubihcJzI1XCcsNC4yVSkuSigpfTFkKCl9OzcgMWQoKXskKCIjMWYsICMxZSwgI1YsICNHIikuUygpOzkgZD00LmpbNC5oXS5kOzUoZC4xYygvIy8pKXs5IFU9MTEuM3IuZC4zZihcJyNcJylbMF07VT1kLjNnKFUsXCdcJyk7VT1VLjJrKFUuMmwoXCcjXCcpKTsxayhcJzw2IGw9IjNlIj5cJyskKFUpLm8oKStcJzwvNj5cJyw0LjFJLDQuMXgpfXQgNShkLjFjKDF5KSl7cz0xdCAxbztzLlE9ZDs1KHMuM2EpezFLKCl9dHskLmIuYy4zNCgpOyQocykueCgpLjE0KFwnM2JcJyw3KCl7JCgiLkkiKS5TKCk7MUsoKX0pfX10IDUoZC4xYygiMTciKXx8QS4zai4ybCgiMTciKT49MCl7MWsoXCc8MTcgbD0iMzUiIDNxPSIkLmIuYy4zOCgpIiAzbz0iM25cJytDLlQoQy4zbCgpKjNtKStcJyIgMks9IjAiIDNFPSIwIiBRPSJcJytkK1wnIj48LzE3PlwnLDQuMUksNC4xeCl9dHskLjRwKGQsNygybSl7MWsoXCc8NiBsPSIzTCI+XCcrMm0rXCc8LzY+XCcsNC4xSSw0LjF4KX0pfX07NyAxSygpezUoNC4zMCl7OSB3PSQuYi5jLjFuKCk7OSByPUMuMU0oQy4xTSh3WzBdLTM2LHMuZykvcy5nLEMuMU0od1sxXS00YixzLmYpL3MuZik7OSBnPUMuVChyKnMuZyk7OSBmPUMuVChyKnMuZil9dHs5IGc9cy5nOzkgZj1zLmZ9MWsoXCc8MW0gNDg9IiIgbD0iNDkiIFE9IlwnK3MuUStcJyIgLz5cJyxnLGYpfTs3IDJGKCl7NSgoNC5qLk4tMSk+NC5oKXs5IGQ9NC5qWzQuaCsxXS5kOzUoZC4xYygxeSkpezFBPTF0IDFvKCk7MUEuUT1kfX01KDQuaD4wKXs5IGQ9NC5qWzQuaC0xXS5kOzUoZC4xYygxeSkpezFBPTF0IDFvKCk7MUEuUT1kfX19OzcgMWsoMWosZyxmKXsxNj1GOzkgTD00LjJZOzUoUCl7JCgiI3EiKVswXS4xRS4ydSgiZiIpOyQoIiNxIilbMF0uMUUuMnUoImciKX01KEw+MCl7Zys9TCoyO2YrPUwqMjskKCIjcSIpLm4oe1wndlwnOkwrXCd6XCcsXCcyRVwnOkwrXCd6XCcsXCcyaVwnOkwrXCd6XCcsXCd5XCc6TCtcJ3pcJyxcJ2dcJzpcJzJCXCcsXCdmXCc6XCcyQlwnfSk7NShQKXskKCIjcSIpWzBdLjFFLjJDKFwnZlwnLFwnKEIuMkQuNGogLSAyMClcJyk7JCgiI3EiKVswXS4xRS4yQyhcJ2dcJyxcJyhCLjJELjNTIC0gMjApXCcpfX10eyQoIiNxIikubih7XCd2XCc6MCxcJzJFXCc6MCxcJzJpXCc6MCxcJ3lcJzowLFwnZ1wnOlwnMnolXCcsXCdmXCc6XCcyeiVcJ30pfTUoJCgiI2siKS4xdSgiOjE5IikmJmc9PSQoIiNrIikuZygpJiZmPT0kKCIjayIpLmYoKSl7JCgiI3EiKS4xWigiMk4iLDcoKXskKCIjcSIpLjFDKCkuMUYoJCgxaikpLjIxKCIxcyIsNygpezFnKCl9KX0pO3V9OSB3PSQuYi5jLjFuKCk7OSAydj0oZyszNik+d1swXT93WzJdOih3WzJdK0MuVCgod1swXS1nLTM2KS8yKSk7OSAydz0oZisxeik+d1sxXT93WzNdOih3WzNdK0MuVCgod1sxXS1mLTF6KS8yKSk7OSBLPXtcJ3lcJzoydixcJ3ZcJzoydyxcJ2dcJzpnK1wnelwnLFwnZlwnOmYrXCd6XCd9OzUoJCgiI2siKS4xdSgiOjE5IikpeyQoIiNxIikuMVooIjFzIiw3KCl7JCgiI3EiKS4xQygpOyQoIiNrIikuMjQoSyw0LjJYLDQuMlQsNygpeyQoIiNxIikuMUYoJCgxaikpLjIxKCIxcyIsNygpezFnKCl9KX0pfSl9dHs1KDQuMVc+MCYmNC5qWzQuaF0uMWEhPT0xTCl7JCgiI3EiKS4xQygpLjFGKCQoMWopKTs5IE09NC5qWzQuaF0uMWE7OSAxNT0kLmIuYy4xUihNKTskKCIjayIpLm4oe1wneVwnOigxNS55LTE4KStcJ3pcJyxcJ3ZcJzooMTUudi0xOCkrXCd6XCcsXCdnXCc6JChNKS5nKCksXCdmXCc6JChNKS5mKCl9KTs1KDQuMVgpe0suMjU9XCdKXCd9JCgiI2siKS4yNChLLDQuMVcsNC4yVyw3KCl7MWcoKX0pfXR7JCgiI3EiKS5TKCkuMUMoKS4xRigkKDFqKSkuSigpOyQoIiNrIikubihLKS4yMSgiMXMiLDcoKXsxZygpfSl9fX07NyAyeSgpezUoNC5oIT0wKXskKCIjMWUsICMyTyIpLngoKS4xNCgiUiIsNyhlKXtlLjJ4KCk7NC5oLS07MWQoKTt1IER9KTskKCIjMWUiKS5KKCl9NSg0LmghPSg0LmouTi0xKSl7JCgiIzFmLCAjMk0iKS54KCkuMTQoIlIiLDcoZSl7ZS4yeCgpOzQuaCsrOzFkKCk7dSBEfSk7JCgiIzFmIikuSigpfX07NyAxZygpezJ5KCk7MkYoKTskKFcpLjFCKDcoZSl7NShlLjI5PT0yNyl7JC5iLmMuMWwoKTskKFcpLngoIjFCIil9dCA1KGUuMjk9PTM3JiY0LmghPTApezQuaC0tOzFkKCk7JChXKS54KCIxQiIpfXQgNShlLjI5PT0zOSYmNC5oIT0oNC5qLk4tMSkpezQuaCsrOzFkKCk7JChXKS54KCIxQiIpfX0pOzUoNC4xcil7JCgxMSkuMTQoIjFOIDFUIiwkLmIuYy4yZyl9dHskKCI2I2siKS5uKCIxYiIsIjJlIil9NSg0LjJiKXskKCIjMjIiKS5SKCQuYi5jLjFsKX0kKCIjMWksICNWIikuMTQoIlIiLCQuYi5jLjFsKTskKCIjViIpLkooKTs1KDQuals0LmhdLlghPT0xTCYmNC5qWzQuaF0uWC5OPjApeyQoXCcjRyA2XCcpLm8oNC5qWzQuaF0uWCk7JChcJyNHXCcpLkooKX01KDQuMjMmJlApeyQoXCcxVSwgMVEsIDFQXCcsJChcJyNxXCcpKS5uKFwnMVNcJyxcJzE5XCcpfTUoJC4xTyg0LjJhKSl7NC4yYSgpfTE2PUR9O3UgQi54KFwnUlwnKS5SKDJoKX07JC5iLmMuMmc9NygpezkgbT0kLmIuYy4xbigpOyQoIiNrIikubihcJ3lcJywoKCQoIiNrIikuZygpKzM2KT5tWzBdP21bMl06bVsyXStDLlQoKG1bMF0tJCgiI2siKS5nKCktMzYpLzIpKSk7JCgiI2siKS5uKFwndlwnLCgoJCgiI2siKS5mKCkrMXopPm1bMV0/bVszXTptWzNdK0MuVCgobVsxXS0kKCIjayIpLmYoKS0xeikvMikpKX07JC5iLmMuMWg9NyhILDJBKXt1IDJmKCQuM0koSC4zdT9IWzBdOkgsMkEsRikpfHwwfTskLmIuYy4xUj03KEgpezkgbT1ILjRnKCk7bS52Kz0kLmIuYy4xaChILFwnM2tcJyk7bS52Kz0kLmIuYy4xaChILFwnM0pcJyk7bS55Kz0kLmIuYy4xaChILFwnM0hcJyk7bS55Kz0kLmIuYy4xaChILFwnM0RcJyk7dSBtfTskLmIuYy4zOD03KCl7JCgiLkkiKS5TKCk7JCgiIzM1IikuSigpfTskLmIuYy4xbj03KCl7dVskKDExKS5nKCksJCgxMSkuZigpLCQoVykuM2koKSwkKFcpLjNwKCldfTskLmIuYy4yRz03KCl7NSghJCgiI0kiKS4xdShcJzoxOVwnKSl7MzMoMXcpO3V9JCgiI0kgPiA2IikubihcJ3ZcJywoMXYqLTQwKStcJ3pcJyk7MXY9KDF2KzEpJTEyfTskLmIuYy4zND03KCl7MzMoMXcpOzkgbT0kLmIuYy4xbigpOyQoIiNJIikubih7XCd5XCc6KChtWzBdLTQwKS8yK21bMl0pLFwndlwnOigobVsxXS00MCkvMittWzNdKX0pLkooKTskKCIjSSIpLjE0KFwnUlwnLCQuYi5jLjFsKTsxdz0zUSgkLmIuYy4yRywzWCl9OyQuYi5jLjFsPTcoKXsxNj1GOyQocykueCgpOyQoIiMxaSwgI1YiKS54KCk7NSg0LjJiKXskKCIjMjIiKS54KCl9JCgiI1YsIC5JLCAjMWUsICMxZiwgI0ciKS5TKCk7NSg0LjFyKXskKDExKS54KCIxTiAxVCIpfTFxPTcoKXskKCIjMWksICNrIikuUygpOzUoNC4xcil7JCgxMSkueCgiMU4gMVQiKX01KFApeyQoXCcxVSwgMVEsIDFQXCcpLm4oXCcxU1wnLFwnMTlcJyl9NSgkLjFPKDQuMVYpKXs0LjFWKCl9MTY9RH07NSgkKCIjayIpLjF1KCI6MTkiKSE9PUQpezUoNC4yNj4wJiY0LmpbNC5oXS4xYSE9PTFMKXs5IE09NC5qWzQuaF0uMWE7OSAxNT0kLmIuYy4xUihNKTs5IEs9e1wneVwnOigxNS55LTE4KStcJ3pcJyxcJ3ZcJzooMTUudi0xOCkrXCd6XCcsXCdnXCc6JChNKS5nKCksXCdmXCc6JChNKS5mKCl9OzUoNC4xWCl7Sy4yNT1cJ1NcJ30kKCIjayIpLjMxKEQsRikuMjQoSyw0LjI2LDQuMlMsMXEpfXR7JCgiI2siKS4zMShELEYpLjFaKCIyTiIsMXEpfX10ezFxKCl9dSBEfTskLmIuYy4yVj03KCl7OSBvPVwnXCc7bys9XCc8NiBsPSIxaSI+PC82PlwnO28rPVwnPDYgbD0iMjIiPlwnO28rPVwnPDYgcD0iSSIgbD0iSSI+PDY+PC82PjwvNj5cJztvKz1cJzw2IGw9ImsiPlwnO28rPVwnPDYgbD0iMkkiPlwnO28rPVwnPDYgbD0iViI+PC82PlwnO28rPVwnPDYgbD0iRSI+PDYgcD0iRSA0NCI+PC82Pjw2IHA9IkUgNDMiPjwvNj48NiBwPSJFIDQyIj48LzY+PDYgcD0iRSAzViI+PC82Pjw2IHA9IkUgM1UiPjwvNj48NiBwPSJFIDNPIj48LzY+PDYgcD0iRSAzTSI+PC82Pjw2IHA9IkUgM1AiPjwvNj48LzY+XCc7bys9XCc8YSBkPSIyUDo7IiBsPSIxZSI+PDFwIHA9IjFZIiBsPSIyTyI+PC8xcD48L2E+PGEgZD0iMlA6OyIgbD0iMWYiPjwxcCBwPSIxWSIgbD0iMk0iPjwvMXA+PC9hPlwnO28rPVwnPDYgbD0icSI+PC82PlwnO28rPVwnPDYgbD0iRyI+PC82PlwnO28rPVwnPC82PlwnO28rPVwnPC82PlwnO28rPVwnPC82PlwnOyQobykuMkgoIjQ2Iik7JChcJzwzMiA0aT0iMCIgNGg9IjAiIDRrPSIwIj48Mkw+PDEzIHA9IkciIGw9IjRsIj48LzEzPjwxMyBwPSJHIiBsPSI0byI+PDY+PC82PjwvMTM+PDEzIHA9IkciIGw9IjRuIj48LzEzPjwvMkw+PC8zMj5cJykuMkgoXCcjR1wnKTs1KFApeyQoIiMySSIpLjQ3KFwnPDE3IHA9IjRhIiA0ZT0iMkoiIDJLPSIwIj48LzE3PlwnKTskKCIjViwgLkUsIC5HLCAuMVkiKS4yUSgpfX07JC5iLmMuMlI9ezJZOjEwLDMwOkYsMVg6RCwxVzowLDI2OjAsMlg6M0csMlc6XCcyOFwnLDJTOlwnMjhcJywyVDpcJzI4XCcsMUk6M0IsMXg6M3YsMjM6RiwyVTowLjMsMmI6RiwxcjpGLGo6W10sMmM6MmQsMmE6MmQsMVY6MmR9OyQoVykuM3koNygpeyQuYi5jLjJWKCl9KX0pKDRmKTsnLDYyLDI3NCwnfHx8fG9wdHN8aWZ8ZGl2fGZ1bmN0aW9ufHx2YXJ8fGZufGZhbmN5Ym94fGhyZWZ8fGhlaWdodHx3aWR0aHxpdGVtQ3VycmVudHx8aXRlbUFycmF5fGZhbmN5X291dGVyfGlkfHBvc3xjc3N8aHRtbHxjbGFzc3xmYW5jeV9jb250ZW50fHxpbWFnZVByZWxvYWRlcnxlbHNlfHJldHVybnx0b3B8fHVuYmluZHxsZWZ0fHB4fGVsZW18dGhpc3xNYXRofGZhbHNlfGZhbmN5X2JnfHRydWV8ZmFuY3lfdGl0bGV8ZWx8ZmFuY3lfbG9hZGluZ3xzaG93fGl0ZW1PcHRzfHBhZHxvcmlnX2l0ZW18bGVuZ3RofGl0ZW18aXNJRXxzcmN8Y2xpY2t8aGlkZXxyb3VuZHx0YXJnZXR8ZmFuY3lfY2xvc2V8ZG9jdW1lbnR8dGl0bGV8c2V0dGluZ3N8c3ViR3JvdXB8fHdpbmRvd3x8dGR8YmluZHxvcmlnX3Bvc3xidXN5fGlmcmFtZXx8dmlzaWJsZXxvcmlnfHBvc2l0aW9ufG1hdGNofF9jaGFuZ2VfaXRlbXxmYW5jeV9sZWZ0fGZhbmN5X3JpZ2h0fF9maW5pc2h8Z2V0TnVtZXJpY3xmYW5jeV9vdmVybGF5fHZhbHVlfF9zZXRfY29udGVudHxjbG9zZXxpbWd8Z2V0Vmlld3BvcnR8SW1hZ2V8c3BhbnxfX2NsZWFudXB8Y2VudGVyT25TY3JvbGx8bm9ybWFsfG5ld3xpc3xsb2FkaW5nRnJhbWV8bG9hZGluZ1RpbWVyfGZyYW1lSGVpZ2h0fGltYWdlUmVnRXhwfDUwfG9iak5leHR8a2V5ZG93bnxlbXB0eXxmaXJzdHxzdHlsZXxhcHBlbmR8Y2hpbGRyZW58cmVsfGZyYW1lV2lkdGh8aW1hZ2V8X3Byb2NlZWRfaW1hZ2V8dW5kZWZpbmVkfG1pbnxyZXNpemV8aXNGdW5jdGlvbnxzZWxlY3R8b2JqZWN0fGdldFBvc2l0aW9ufHZpc2liaWxpdHl8c2Nyb2xsfGVtYmVkfGNhbGxiYWNrT25DbG9zZXx6b29tU3BlZWRJbnx6b29tT3BhY2l0eXxmYW5jeV9pY298ZmFkZU91dHx8ZmFkZUlufGZhbmN5X3dyYXB8b3ZlcmxheVNob3d8YW5pbWF0ZXxvcGFjaXR5fHpvb21TcGVlZE91dHx8c3dpbmd8a2V5Q29kZXxjYWxsYmFja09uU2hvd3xoaWRlT25Db250ZW50Q2xpY2t8Y2FsbGJhY2tPblN0YXJ0fG51bGx8YWJzb2x1dGV8cGFyc2VJbnR8c2Nyb2xsQm94fF9pbml0aWFsaXplfGJvdHRvbXxwdXNofHN1YnN0cnxpbmRleE9mfGRhdGF8cmVsYXRpdmV8ZmlsdGVyfHBuZ3xicm93c2VyfF9zdGFydHxtYXRjaGVkR3JvdXB8ZWFjaHxyZW1vdmVFeHByZXNzaW9ufGl0ZW1MZWZ0fGl0ZW1Ub3B8c3RvcFByb3BhZ2F0aW9ufF9zZXRfbmF2aWdhdGlvbnwxMDB8cHJvcHxhdXRvfHNldEV4cHJlc3Npb258cGFyZW50Tm9kZXxyaWdodHxfcHJlbG9hZF9uZWlnaGJvcl9pbWFnZXN8YW5pbWF0ZUxvYWRpbmd8YXBwZW5kVG98ZmFuY3lfaW5uZXJ8bm98ZnJhbWVib3JkZXJ8dHJ8ZmFuY3lfcmlnaHRfaWNvfGZhc3R8ZmFuY3lfbGVmdF9pY298amF2YXNjcmlwdHxmaXhQTkd8ZGVmYXVsdHN8ZWFzaW5nT3V0fGVhc2luZ0NoYW5nZXxvdmVybGF5T3BhY2l0eXxidWlsZHxlYXNpbmdJbnx6b29tU3BlZWRDaGFuZ2V8cGFkZGluZ3xiYWNrZ3JvdW5kSW1hZ2V8aW1hZ2VTY2FsZXxzdG9wfHRhYmxlfGNsZWFySW50ZXJ2YWx8c2hvd0xvYWRpbmd8ZmFuY3lfZnJhbWV8fHxzaG93SWZyYW1lfHxjb21wbGV0ZXxsb2FkfGJtcHxqcGVnfGZhbmN5X2RpdnxzcGxpdHxyZXBsYWNlfGVuYWJsZWR8c2Nyb2xsTGVmdHxjbGFzc05hbWV8cGFkZGluZ1RvcHxyYW5kb218MTAwMHxmYW5jeV9pZnJhbWV8bmFtZXxzY3JvbGxUb3B8b25sb2FkfGxvY2F0aW9ufGhpZGRlbnxSZWdFeHB8anF1ZXJ5fDM1NXx1cmx8ZXh0ZW5kfHJlYWR5fHZlcnNpb258anBnfDQyNXxmb3J8Ym9yZGVyTGVmdFdpZHRofGhzcGFjZXx3aGlsZXwzMDB8cGFkZGluZ0xlZnR8Y3VyQ1NTfGJvcmRlclRvcFdpZHRofG1zaWV8ZmFuY3lfYWpheHxmYW5jeV9iZ193fHNjYWxlfGZhbmN5X2JnX3N3fGZhbmN5X2JnX253fHNldEludGVydmFsfERYSW1hZ2VUcmFuc2Zvcm18Y2xpZW50V2lkdGh8c2l6aW5nTWV0aG9kfGZhbmN5X2JnX3N8ZmFuY3lfYmdfc2V8cHJvZ2lkfDY2fGdpZnxyZXBlYXR8fGJhY2tncm91bmRSZXBlYXR8ZmFuY3lfYmdfZXxmYW5jeV9iZ19uZXxmYW5jeV9iZ19ufG5vbmV8Ym9keXxwcmVwZW5kfGFsdHxmYW5jeV9pbWd8ZmFuY3lfYmlnSWZyYW1lfDYwfGNyb3B8QWxwaGFJbWFnZUxvYWRlcnxzY3JvbGxpbmd8alF1ZXJ5fG9mZnNldHxjZWxscGFkZGluZ3xjZWxsc3BhY2luZ3xjbGllbnRIZWlnaHR8Ym9yZGVyfGZhbmN5X3RpdGxlX2xlZnR8TWljcm9zb2Z0fGZhbmN5X3RpdGxlX3JpZ2h0fGZhbmN5X3RpdGxlX21haW58Z2V0Jy5zcGxpdCgnfCcpLDAse30pKQo=]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.fancybox/jquery.fancybox.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[aHRtbCwgYm9keSB7DQoJaGVpZ2h0OiAxMDAlOw0KfQ0KDQpkaXYjZmFuY3lfb3ZlcmxheSB7DQoJcG9zaXRpb246IGZpeGVkOw0KCXRvcDogMDsNCglsZWZ0OiAwOw0KCXdpZHRoOiAxMDAlOw0KCWhlaWdodDogMTAwJTsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjNjY2Ow0KCWRpc3BsYXk6IG5vbmU7DQoJei1pbmRleDogMzA7DQp9DQoNCiogaHRtbCBkaXYjZmFuY3lfb3ZlcmxheSB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCWhlaWdodDogZXhwcmVzc2lvbihkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodCA+IGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0ID8gZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQgOiBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodCArICdweCcpOw0KfQ0KDQpkaXYjZmFuY3lfd3JhcCB7DQoJdGV4dC1hbGlnbjogbGVmdDsNCn0NCg0KZGl2I2ZhbmN5X2xvYWRpbmcgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgloZWlnaHQ6IDQwcHg7DQoJd2lkdGg6IDQwcHg7DQoJY3Vyc29yOiBwb2ludGVyOw0KCWRpc3BsYXk6IG5vbmU7DQoJb3ZlcmZsb3c6IGhpZGRlbjsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsNCgl6LWluZGV4OiAxMDA7DQp9DQoNCmRpdiNmYW5jeV9sb2FkaW5nIGRpdiB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXRvcDogMDsNCglsZWZ0OiAwOw0KCXdpZHRoOiA0MHB4Ow0KCWhlaWdodDogNDgwcHg7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCdmYW5jeV9wcm9ncmVzcy5wbmcnKSBuby1yZXBlYXQ7DQp9DQoNCmRpdiNmYW5jeV9sb2FkaW5nX292ZXJsYXkgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjRkZGOw0KCXotaW5kZXg6IDMwOw0KfQ0KDQpkaXYjZmFuY3lfbG9hZGluZ19pY29uIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJYmFja2dyb3VuZDogdXJsKCdmYW5jeV9sb2FkaW5nLmdpZicpIG5vLXJlcGVhdDsNCgl6LWluZGV4OiAzNTsNCgl3aWR0aDogMTZweDsNCgloZWlnaHQ6IDE2cHg7DQp9DQoNCmRpdiNmYW5jeV9vdXRlciB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KICAgIHRvcDogMDsNCiAgICBsZWZ0OiAwOw0KICAgIHotaW5kZXg6IDkwOw0KICAgIHBhZGRpbmc6IDE4cHggMThweCAzM3B4IDE4cHg7DQogICAgbWFyZ2luOiAwOw0KICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQogICAgZGlzcGxheTogbm9uZTsNCn0NCg0KZGl2I2ZhbmN5X2lubmVyIHsNCglwb3NpdGlvbjogcmVsYXRpdmU7DQoJd2lkdGg6MTAwJTsNCgloZWlnaHQ6MTAwJTsNCglib3JkZXI6IDFweCBzb2xpZCAjQkJCOw0KCWJhY2tncm91bmQ6ICNGRkY7DQp9DQoNCmRpdiNmYW5jeV9jb250ZW50IHsNCgltYXJnaW46IDA7DQoJei1pbmRleDogMTAwOw0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCn0NCg0KZGl2I2ZhbmN5X2RpdiB7DQoJYmFja2dyb3VuZDogIzAwMDsNCgljb2xvcjogI0ZGRjsNCgloZWlnaHQ6IDEwMCU7DQoJd2lkdGg6IDEwMCU7DQoJei1pbmRleDogMTAwOw0KfQ0KDQppbWcjZmFuY3lfaW1nIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiAwOw0KCWxlZnQ6IDA7DQoJYm9yZGVyOjA7IA0KCXBhZGRpbmc6IDA7IA0KCW1hcmdpbjogMDsNCgl6LWluZGV4OiAxMDA7DQoJd2lkdGg6IDEwMCU7DQoJaGVpZ2h0OiAxMDAlOw0KfQ0KDQpkaXYjZmFuY3lfY2xvc2Ugew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl0b3A6IC0xMnB4Ow0KCXJpZ2h0OiAtMTVweDsNCgloZWlnaHQ6IDMwcHg7DQoJd2lkdGg6IDMwcHg7DQoJYmFja2dyb3VuZDogdXJsKCdmYW5jeV9jbG9zZWJveC5wbmcnKSB0b3AgbGVmdCBuby1yZXBlYXQ7DQoJY3Vyc29yOiBwb2ludGVyOw0KCXotaW5kZXg6IDE4MTsNCglkaXNwbGF5OiBub25lOw0KfQ0KDQojZmFuY3lfZnJhbWUgew0KCXBvc2l0aW9uOiByZWxhdGl2ZTsNCgl3aWR0aDogMTAwJTsNCgloZWlnaHQ6IDEwMCU7DQoJZGlzcGxheTogbm9uZTsNCn0NCg0KI2ZhbmN5X2FqYXggew0KCXdpZHRoOiAxMDAlOw0KCWhlaWdodDogMTAwJTsNCglvdmVyZmxvdzogYXV0bzsNCn0NCg0KYSNmYW5jeV9sZWZ0LCBhI2ZhbmN5X3JpZ2h0IHsNCglwb3NpdGlvbjogYWJzb2x1dGU7IA0KCWJvdHRvbTogMHB4OyANCgloZWlnaHQ6IDEwMCU7IA0KCXdpZHRoOiAzNSU7IA0KCWN1cnNvcjogcG9pbnRlcjsNCgl6LWluZGV4OiAxMTE7IA0KCWRpc3BsYXk6IG5vbmU7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCd0cmFuc3BhcmVudC5naWYnKTsNCglvdXRsaW5lOiBub25lOw0KfQ0KDQphI2ZhbmN5X2xlZnQgew0KCWxlZnQ6IDBweDsNCglkaXNwbGF5OiBibG9jazsgDQp9DQoNCmEjZmFuY3lfcmlnaHQgew0KCXJpZ2h0OiAwcHg7DQoJDQp9DQoNCnNwYW4uZmFuY3lfaWNvIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7IA0KCXRvcDogNTAlOw0KCW1hcmdpbi10b3A6IC0xNXB4Ow0KCXdpZHRoOiAzMHB4Ow0KCWhlaWdodDogMzBweDsNCgl6LWluZGV4OiAxMTI7IA0KCWN1cnNvcjogcG9pbnRlcjsNCglkaXNwbGF5OiBibG9jazsNCn0NCg0Kc3BhbiNmYW5jeV9sZWZ0X2ljbyB7DQoJbGVmdDogLTk5OTlweDsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJ2ZhbmN5X2xlZnQucG5nJykgbm8tcmVwZWF0Ow0KfQ0KDQpzcGFuI2ZhbmN5X3JpZ2h0X2ljbyB7DQoJcmlnaHQ6IC05OTk5cHg7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCdmYW5jeV9yaWdodC5wbmcnKSBuby1yZXBlYXQ7DQp9DQoNCmEjZmFuY3lfbGVmdDpob3ZlciB7DQogIHZpc2liaWxpdHk6IHZpc2libGU7DQp9DQoNCmEjZmFuY3lfcmlnaHQ6aG92ZXIgew0KICB2aXNpYmlsaXR5OiB2aXNpYmxlOw0KfQ0KDQphI2ZhbmN5X2xlZnQ6aG92ZXIgc3BhbiB7DQoJbGVmdDogMjBweDsgDQp9DQoNCmEjZmFuY3lfcmlnaHQ6aG92ZXIgc3BhbiB7DQoJcmlnaHQ6IDIwcHg7IA0KfQ0KDQouZmFuY3lfYmlnSWZyYW1lIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiAwOw0KCWxlZnQ6IDA7DQoJd2lkdGg6IDEwMCU7DQoJaGVpZ2h0OiAxMDAlOw0KCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50Ow0KfQ0KDQpkaXYjZmFuY3lfYmcgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl0b3A6IDA7IGxlZnQ6IDA7DQoJd2lkdGg6IDEwMCU7DQoJaGVpZ2h0OiAxMDAlOw0KCXotaW5kZXg6IDcwOw0KCWJvcmRlcjogMDsNCglwYWRkaW5nOiAwOw0KCW1hcmdpbjogMDsNCn0NCgkNCmRpdi5mYW5jeV9iZyB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCWRpc3BsYXk6IGJsb2NrOw0KCXotaW5kZXg6IDcwOw0KCWJvcmRlcjogMDsNCglwYWRkaW5nOiAwOw0KCW1hcmdpbjogMDsNCn0NCg0KZGl2LmZhbmN5X2JnX24gew0KCXRvcDogLTE4cHg7DQoJd2lkdGg6IDEwMCU7DQoJaGVpZ2h0OiAxOHB4Ow0KCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnZmFuY3lfc2hhZG93X24ucG5nJykgcmVwZWF0LXg7DQp9DQoNCmRpdi5mYW5jeV9iZ19uZSB7DQoJdG9wOiAtMThweDsNCglyaWdodDogLTEzcHg7DQoJd2lkdGg6IDEzcHg7DQoJaGVpZ2h0OiAxOHB4Ow0KCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnZmFuY3lfc2hhZG93X25lLnBuZycpIG5vLXJlcGVhdDsNCn0NCg0KZGl2LmZhbmN5X2JnX2Ugew0KCXJpZ2h0OiAtMTNweDsNCgloZWlnaHQ6IDEwMCU7DQoJd2lkdGg6IDEzcHg7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCdmYW5jeV9zaGFkb3dfZS5wbmcnKSByZXBlYXQteTsNCn0NCg0KZGl2LmZhbmN5X2JnX3NlIHsNCglib3R0b206IC0xOHB4Ow0KCXJpZ2h0OiAtMTNweDsNCgl3aWR0aDogMTNweDsNCgloZWlnaHQ6IDE4cHg7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCdmYW5jeV9zaGFkb3dfc2UucG5nJykgbm8tcmVwZWF0Ow0KfQ0KDQpkaXYuZmFuY3lfYmdfcyB7DQoJYm90dG9tOiAtMThweDsNCgl3aWR0aDogMTAwJTsNCgloZWlnaHQ6IDE4cHg7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCdmYW5jeV9zaGFkb3dfcy5wbmcnKSByZXBlYXQteDsNCn0NCg0KZGl2LmZhbmN5X2JnX3N3IHsNCglib3R0b206IC0xOHB4Ow0KCWxlZnQ6IC0xM3B4Ow0KCXdpZHRoOiAxM3B4Ow0KCWhlaWdodDogMThweDsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJ2ZhbmN5X3NoYWRvd19zdy5wbmcnKSBuby1yZXBlYXQ7DQp9DQoNCmRpdi5mYW5jeV9iZ193IHsNCglsZWZ0OiAtMTNweDsNCgloZWlnaHQ6IDEwMCU7DQoJd2lkdGg6IDEzcHg7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCdmYW5jeV9zaGFkb3dfdy5wbmcnKSByZXBlYXQteTsNCn0NCg0KZGl2LmZhbmN5X2JnX253IHsNCgl0b3A6IC0xOHB4Ow0KCWxlZnQ6IC0xM3B4Ow0KCXdpZHRoOiAxM3B4Ow0KCWhlaWdodDogMThweDsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJ2ZhbmN5X3NoYWRvd19udy5wbmcnKSBuby1yZXBlYXQ7DQp9DQoNCmRpdiNmYW5jeV90aXRsZSB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCWJvdHRvbTogLTMzcHg7DQoJbGVmdDogMDsNCgl3aWR0aDogMTAwJTsNCgl6LWluZGV4OiAxMDA7DQoJZGlzcGxheTogbm9uZTsNCn0NCg0KZGl2I2ZhbmN5X3RpdGxlIGRpdiB7DQoJY29sb3I6ICNGRkY7DQoJZm9udDogYm9sZCAxMnB4IEFyaWFsOw0KCXBhZGRpbmctYm90dG9tOiAzcHg7DQp9DQoNCmRpdiNmYW5jeV90aXRsZSB0YWJsZSB7DQoJbWFyZ2luOiAwIGF1dG87DQp9DQoNCmRpdiNmYW5jeV90aXRsZSB0YWJsZSB0ZCB7DQoJcGFkZGluZzogMDsNCgl2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KfQ0KDQp0ZCNmYW5jeV90aXRsZV9sZWZ0IHsNCgloZWlnaHQ6IDMycHg7DQoJd2lkdGg6IDE1cHg7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCdmYW5jeV90aXRsZV9sZWZ0LnBuZycpIHJlcGVhdC14Ow0KfQ0KDQp0ZCNmYW5jeV90aXRsZV9tYWluIHsNCgloZWlnaHQ6IDMycHg7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCdmYW5jeV90aXRsZV9tYWluLnBuZycpIHJlcGVhdC14Ow0KfQ0KDQp0ZCNmYW5jeV90aXRsZV9yaWdodCB7DQoJaGVpZ2h0OiAzMnB4Ow0KCXdpZHRoOiAxNXB4Ow0KCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnZmFuY3lfdGl0bGVfcmlnaHQucG5nJykgcmVwZWF0LXg7DQp9]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.fancybox/transparent.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhAQABAJEAAAAAAP///////wAAACH5BAEHAAIALAAAAAABAAEAAAICVAEAOw==]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.form.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCiAqIGpRdWVyeSBGb3JtIFBsdWdpbg0KICogdmVyc2lvbjogMi4xOCAoMDYtSkFOLTIwMDkpDQogKiBAcmVxdWlyZXMgalF1ZXJ5IHYxLjIuMiBvciBsYXRlcg0KICoNCiAqIEV4YW1wbGVzIGFuZCBkb2N1bWVudGF0aW9uIGF0OiBodHRwOi8vbWFsc3VwLmNvbS9qcXVlcnkvZm9ybS8NCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzOg0KICogICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocA0KICogICBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLmh0bWwNCiAqDQogKiBSZXZpc2lvbjogJElkJA0KICovDQo7KGZ1bmN0aW9uKCQpIHsNCg0KLyoNCiAgICBVc2FnZSBOb3RlOiAgDQogICAgLS0tLS0tLS0tLS0NCiAgICBEbyBub3QgdXNlIGJvdGggYWpheFN1Ym1pdCBhbmQgYWpheEZvcm0gb24gdGhlIHNhbWUgZm9ybS4gIFRoZXNlDQogICAgZnVuY3Rpb25zIGFyZSBpbnRlbmRlZCB0byBiZSBleGNsdXNpdmUuICBVc2UgYWpheFN1Ym1pdCBpZiB5b3Ugd2FudA0KICAgIHRvIGJpbmQgeW91ciBvd24gc3VibWl0IGhhbmRsZXIgdG8gdGhlIGZvcm0uICBGb3IgZXhhbXBsZSwNCg0KICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgew0KICAgICAgICAkKCcjbXlGb3JtJykuYmluZCgnc3VibWl0JywgZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAkKHRoaXMpLmFqYXhTdWJtaXQoew0KICAgICAgICAgICAgICAgIHRhcmdldDogJyNvdXRwdXQnDQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gPC0tIGltcG9ydGFudCENCiAgICAgICAgfSk7DQogICAgfSk7DQoNCiAgICBVc2UgYWpheEZvcm0gd2hlbiB5b3Ugd2FudCB0aGUgcGx1Z2luIHRvIG1hbmFnZSBhbGwgdGhlIGV2ZW50IGJpbmRpbmcNCiAgICBmb3IgeW91LiAgRm9yIGV4YW1wbGUsDQoNCiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsNCiAgICAgICAgJCgnI215Rm9ybScpLmFqYXhGb3JtKHsNCiAgICAgICAgICAgIHRhcmdldDogJyNvdXRwdXQnDQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgICAgICANCiAgICBXaGVuIHVzaW5nIGFqYXhGb3JtLCB0aGUgYWpheFN1Ym1pdCBmdW5jdGlvbiB3aWxsIGJlIGludm9rZWQgZm9yIHlvdQ0KICAgIGF0IHRoZSBhcHByb3ByaWF0ZSB0aW1lLiAgDQoqLw0KDQovKioNCiAqIGFqYXhTdWJtaXQoKSBwcm92aWRlcyBhIG1lY2hhbmlzbSBmb3IgaW1tZWRpYXRlbHkgc3VibWl0dGluZyANCiAqIGFuIEhUTUwgZm9ybSB1c2luZyBBSkFYLg0KICovDQokLmZuLmFqYXhTdWJtaXQgPSBmdW5jdGlvbihvcHRpb25zKSB7DQogICAgLy8gZmFzdCBmYWlsIGlmIG5vdGhpbmcgc2VsZWN0ZWQgKGh0dHA6Ly9kZXYuanF1ZXJ5LmNvbS90aWNrZXQvMjc1MikNCiAgICBpZiAoIXRoaXMubGVuZ3RoKSB7DQogICAgICAgIGxvZygnYWpheFN1Ym1pdDogc2tpcHBpbmcgc3VibWl0IHByb2Nlc3MgLSBubyBlbGVtZW50IHNlbGVjdGVkJyk7DQogICAgICAgIHJldHVybiB0aGlzOw0KICAgIH0NCg0KICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PSAnZnVuY3Rpb24nKQ0KICAgICAgICBvcHRpb25zID0geyBzdWNjZXNzOiBvcHRpb25zIH07DQoNCiAgICBvcHRpb25zID0gJC5leHRlbmQoew0KICAgICAgICB1cmw6ICB0aGlzLmF0dHIoJ2FjdGlvbicpIHx8IHdpbmRvdy5sb2NhdGlvbi50b1N0cmluZygpLA0KICAgICAgICB0eXBlOiB0aGlzLmF0dHIoJ21ldGhvZCcpIHx8ICdHRVQnDQogICAgfSwgb3B0aW9ucyB8fCB7fSk7DQoNCiAgICAvLyBob29rIGZvciBtYW5pcHVsYXRpbmcgdGhlIGZvcm0gZGF0YSBiZWZvcmUgaXQgaXMgZXh0cmFjdGVkOw0KICAgIC8vIGNvbnZlbmllbnQgZm9yIHVzZSB3aXRoIHJpY2ggZWRpdG9ycyBsaWtlIHRpbnlNQ0Ugb3IgRkNLRWRpdG9yDQogICAgdmFyIHZldG8gPSB7fTsNCiAgICB0aGlzLnRyaWdnZXIoJ2Zvcm0tcHJlLXNlcmlhbGl6ZScsIFt0aGlzLCBvcHRpb25zLCB2ZXRvXSk7DQogICAgaWYgKHZldG8udmV0bykgew0KICAgICAgICBsb2coJ2FqYXhTdWJtaXQ6IHN1Ym1pdCB2ZXRvZWQgdmlhIGZvcm0tcHJlLXNlcmlhbGl6ZSB0cmlnZ2VyJyk7DQogICAgICAgIHJldHVybiB0aGlzOw0KICAgIH0NCg0KICAgIC8vIHByb3ZpZGUgb3Bwb3J0dW5pdHkgdG8gYWx0ZXIgZm9ybSBkYXRhIGJlZm9yZSBpdCBpcyBzZXJpYWxpemVkDQogICAgaWYgKG9wdGlvbnMuYmVmb3JlU2VyaWFsaXplICYmIG9wdGlvbnMuYmVmb3JlU2VyaWFsaXplKHRoaXMsIG9wdGlvbnMpID09PSBmYWxzZSkgew0KICAgICAgICBsb2coJ2FqYXhTdWJtaXQ6IHN1Ym1pdCBhYm9ydGVkIHZpYSBiZWZvcmVTZXJpYWxpemUgY2FsbGJhY2snKTsNCiAgICAgICAgcmV0dXJuIHRoaXM7DQogICAgfSAgICANCiAgIA0KICAgIHZhciBhID0gdGhpcy5mb3JtVG9BcnJheShvcHRpb25zLnNlbWFudGljKTsNCiAgICBpZiAob3B0aW9ucy5kYXRhKSB7DQogICAgICAgIG9wdGlvbnMuZXh0cmFEYXRhID0gb3B0aW9ucy5kYXRhOw0KICAgICAgICBmb3IgKHZhciBuIGluIG9wdGlvbnMuZGF0YSkgew0KICAgICAgICAgIGlmKG9wdGlvbnMuZGF0YVtuXSBpbnN0YW5jZW9mIEFycmF5KSB7DQogICAgICAgICAgICBmb3IgKHZhciBrIGluIG9wdGlvbnMuZGF0YVtuXSkNCiAgICAgICAgICAgICAgYS5wdXNoKCB7IG5hbWU6IG4sIHZhbHVlOiBvcHRpb25zLmRhdGFbbl1ba10gfSApDQogICAgICAgICAgfSAgDQogICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgIGEucHVzaCggeyBuYW1lOiBuLCB2YWx1ZTogb3B0aW9ucy5kYXRhW25dIH0gKTsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIC8vIGdpdmUgcHJlLXN1Ym1pdCBjYWxsYmFjayBhbiBvcHBvcnR1bml0eSB0byBhYm9ydCB0aGUgc3VibWl0DQogICAgaWYgKG9wdGlvbnMuYmVmb3JlU3VibWl0ICYmIG9wdGlvbnMuYmVmb3JlU3VibWl0KGEsIHRoaXMsIG9wdGlvbnMpID09PSBmYWxzZSkgew0KICAgICAgICBsb2coJ2FqYXhTdWJtaXQ6IHN1Ym1pdCBhYm9ydGVkIHZpYSBiZWZvcmVTdWJtaXQgY2FsbGJhY2snKTsNCiAgICAgICAgcmV0dXJuIHRoaXM7DQogICAgfSAgICANCg0KICAgIC8vIGZpcmUgdmV0b2FibGUgJ3ZhbGlkYXRlJyBldmVudA0KICAgIHRoaXMudHJpZ2dlcignZm9ybS1zdWJtaXQtdmFsaWRhdGUnLCBbYSwgdGhpcywgb3B0aW9ucywgdmV0b10pOw0KICAgIGlmICh2ZXRvLnZldG8pIHsNCiAgICAgICAgbG9nKCdhamF4U3VibWl0OiBzdWJtaXQgdmV0b2VkIHZpYSBmb3JtLXN1Ym1pdC12YWxpZGF0ZSB0cmlnZ2VyJyk7DQogICAgICAgIHJldHVybiB0aGlzOw0KICAgIH0gICAgDQoNCiAgICB2YXIgcSA9ICQucGFyYW0oYSk7DQoNCiAgICBpZiAob3B0aW9ucy50eXBlLnRvVXBwZXJDYXNlKCkgPT0gJ0dFVCcpIHsNCiAgICAgICAgb3B0aW9ucy51cmwgKz0gKG9wdGlvbnMudXJsLmluZGV4T2YoJz8nKSA+PSAwID8gJyYnIDogJz8nKSArIHE7DQogICAgICAgIG9wdGlvbnMuZGF0YSA9IG51bGw7ICAvLyBkYXRhIGlzIG51bGwgZm9yICdnZXQnDQogICAgfQ0KICAgIGVsc2UNCiAgICAgICAgb3B0aW9ucy5kYXRhID0gcTsgLy8gZGF0YSBpcyB0aGUgcXVlcnkgc3RyaW5nIGZvciAncG9zdCcNCg0KICAgIHZhciAkZm9ybSA9IHRoaXMsIGNhbGxiYWNrcyA9IFtdOw0KICAgIGlmIChvcHRpb25zLnJlc2V0Rm9ybSkgY2FsbGJhY2tzLnB1c2goZnVuY3Rpb24oKSB7ICRmb3JtLnJlc2V0Rm9ybSgpOyB9KTsNCiAgICBpZiAob3B0aW9ucy5jbGVhckZvcm0pIGNhbGxiYWNrcy5wdXNoKGZ1bmN0aW9uKCkgeyAkZm9ybS5jbGVhckZvcm0oKTsgfSk7DQoNCiAgICAvLyBwZXJmb3JtIGEgbG9hZCBvbiB0aGUgdGFyZ2V0IG9ubHkgaWYgZGF0YVR5cGUgaXMgbm90IHByb3ZpZGVkDQogICAgaWYgKCFvcHRpb25zLmRhdGFUeXBlICYmIG9wdGlvbnMudGFyZ2V0KSB7DQogICAgICAgIHZhciBvbGRTdWNjZXNzID0gb3B0aW9ucy5zdWNjZXNzIHx8IGZ1bmN0aW9uKCl7fTsNCiAgICAgICAgY2FsbGJhY2tzLnB1c2goZnVuY3Rpb24oZGF0YSkgew0KICAgICAgICAgICAgJChvcHRpb25zLnRhcmdldCkuaHRtbChkYXRhKS5lYWNoKG9sZFN1Y2Nlc3MsIGFyZ3VtZW50cyk7DQogICAgICAgIH0pOw0KICAgIH0NCiAgICBlbHNlIGlmIChvcHRpb25zLnN1Y2Nlc3MpDQogICAgICAgIGNhbGxiYWNrcy5wdXNoKG9wdGlvbnMuc3VjY2Vzcyk7DQoNCiAgICBvcHRpb25zLnN1Y2Nlc3MgPSBmdW5jdGlvbihkYXRhLCBzdGF0dXMpIHsNCiAgICAgICAgZm9yICh2YXIgaT0wLCBtYXg9Y2FsbGJhY2tzLmxlbmd0aDsgaSA8IG1heDsgaSsrKQ0KICAgICAgICAgICAgY2FsbGJhY2tzW2ldLmFwcGx5KG9wdGlvbnMsIFtkYXRhLCBzdGF0dXMsICRmb3JtXSk7DQogICAgfTsNCg0KICAgIC8vIGFyZSB0aGVyZSBmaWxlcyB0byB1cGxvYWQ/DQogICAgdmFyIGZpbGVzID0gJCgnaW5wdXQ6ZmlsZScsIHRoaXMpLmZpZWxkVmFsdWUoKTsNCiAgICB2YXIgZm91bmQgPSBmYWxzZTsNCiAgICBmb3IgKHZhciBqPTA7IGogPCBmaWxlcy5sZW5ndGg7IGorKykNCiAgICAgICAgaWYgKGZpbGVzW2pdKQ0KICAgICAgICAgICAgZm91bmQgPSB0cnVlOw0KDQogICAgLy8gb3B0aW9ucy5pZnJhbWUgYWxsb3dzIHVzZXIgdG8gZm9yY2UgaWZyYW1lIG1vZGUNCiAgIGlmIChvcHRpb25zLmlmcmFtZSB8fCBmb3VuZCkgeyANCiAgICAgICAvLyBoYWNrIHRvIGZpeCBTYWZhcmkgaGFuZyAodGhhbmtzIHRvIFRpbSBNb2xlbmRpamsgZm9yIHRoaXMpDQogICAgICAgLy8gc2VlOiAgaHR0cDovL2dyb3Vwcy5nb29nbGUuY29tL2dyb3VwL2pxdWVyeS1kZXYvYnJvd3NlX3RocmVhZC90aHJlYWQvMzYzOTViN2FiNTEwZGQ1ZA0KICAgICAgIGlmICgkLmJyb3dzZXIuc2FmYXJpICYmIG9wdGlvbnMuY2xvc2VLZWVwQWxpdmUpDQogICAgICAgICAgICQuZ2V0KG9wdGlvbnMuY2xvc2VLZWVwQWxpdmUsIGZpbGVVcGxvYWQpOw0KICAgICAgIGVsc2UNCiAgICAgICAgICAgZmlsZVVwbG9hZCgpOw0KICAgICAgIH0NCiAgIGVsc2UNCiAgICAgICAkLmFqYXgob3B0aW9ucyk7DQoNCiAgICAvLyBmaXJlICdub3RpZnknIGV2ZW50DQogICAgdGhpcy50cmlnZ2VyKCdmb3JtLXN1Ym1pdC1ub3RpZnknLCBbdGhpcywgb3B0aW9uc10pOw0KICAgIHJldHVybiB0aGlzOw0KDQoNCiAgICAvLyBwcml2YXRlIGZ1bmN0aW9uIGZvciBoYW5kbGluZyBmaWxlIHVwbG9hZHMgKGhhdCB0aXAgdG8gWUFIT08hKQ0KICAgIGZ1bmN0aW9uIGZpbGVVcGxvYWQoKSB7DQogICAgICAgIHZhciBmb3JtID0gJGZvcm1bMF07DQogICAgICAgIA0KICAgICAgICBpZiAoJCgnOmlucHV0W25hbWU9c3VibWl0XScsIGZvcm0pLmxlbmd0aCkgew0KICAgICAgICAgICAgYWxlcnQoJ0Vycm9yOiBGb3JtIGVsZW1lbnRzIG11c3Qgbm90IGJlIG5hbWVkICJzdWJtaXQiLicpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICB2YXIgb3B0cyA9ICQuZXh0ZW5kKHt9LCAkLmFqYXhTZXR0aW5ncywgb3B0aW9ucyk7DQoJCXZhciBzID0galF1ZXJ5LmV4dGVuZCh0cnVlLCB7fSwgJC5leHRlbmQodHJ1ZSwge30sICQuYWpheFNldHRpbmdzKSwgb3B0cyk7DQoNCiAgICAgICAgdmFyIGlkID0gJ2pxRm9ybUlPJyArIChuZXcgRGF0ZSgpLmdldFRpbWUoKSk7DQogICAgICAgIHZhciAkaW8gPSAkKCc8aWZyYW1lIGlkPSInICsgaWQgKyAnIiBuYW1lPSInICsgaWQgKyAnIiAvPicpOw0KICAgICAgICB2YXIgaW8gPSAkaW9bMF07DQoNCiAgICAgICAgaWYgKCQuYnJvd3Nlci5tc2llIHx8ICQuYnJvd3Nlci5vcGVyYSkgDQogICAgICAgICAgICBpby5zcmMgPSAnamF2YXNjcmlwdDpmYWxzZTtkb2N1bWVudC53cml0ZSgiIik7JzsNCiAgICAgICAgJGlvLmNzcyh7IHBvc2l0aW9uOiAnYWJzb2x1dGUnLCB0b3A6ICctMTAwMHB4JywgbGVmdDogJy0xMDAwcHgnIH0pOw0KDQogICAgICAgIHZhciB4aHIgPSB7IC8vIG1vY2sgb2JqZWN0DQogICAgICAgICAgICBhYm9ydGVkOiAwLA0KICAgICAgICAgICAgcmVzcG9uc2VUZXh0OiBudWxsLA0KICAgICAgICAgICAgcmVzcG9uc2VYTUw6IG51bGwsDQogICAgICAgICAgICBzdGF0dXM6IDAsDQogICAgICAgICAgICBzdGF0dXNUZXh0OiAnbi9hJywNCiAgICAgICAgICAgIGdldEFsbFJlc3BvbnNlSGVhZGVyczogZnVuY3Rpb24oKSB7fSwNCiAgICAgICAgICAgIGdldFJlc3BvbnNlSGVhZGVyOiBmdW5jdGlvbigpIHt9LA0KICAgICAgICAgICAgc2V0UmVxdWVzdEhlYWRlcjogZnVuY3Rpb24oKSB7fSwNCiAgICAgICAgICAgIGFib3J0OiBmdW5jdGlvbigpIHsgDQogICAgICAgICAgICAgICAgdGhpcy5hYm9ydGVkID0gMTsgDQogICAgICAgICAgICAgICAgJGlvLmF0dHIoJ3NyYycsJ2Fib3V0OmJsYW5rJyk7IC8vIGFib3J0IG9wIGluIHByb2dyZXNzDQogICAgICAgICAgICB9DQogICAgICAgIH07DQoNCiAgICAgICAgdmFyIGcgPSBvcHRzLmdsb2JhbDsNCiAgICAgICAgLy8gdHJpZ2dlciBhamF4IGdsb2JhbCBldmVudHMgc28gdGhhdCBhY3Rpdml0eS9ibG9jayBpbmRpY2F0b3JzIHdvcmsgbGlrZSBub3JtYWwNCiAgICAgICAgaWYgKGcgJiYgISAkLmFjdGl2ZSsrKSAkLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpOw0KICAgICAgICBpZiAoZykgJC5ldmVudC50cmlnZ2VyKCJhamF4U2VuZCIsIFt4aHIsIG9wdHNdKTsNCg0KCQlpZiAocy5iZWZvcmVTZW5kICYmIHMuYmVmb3JlU2VuZCh4aHIsIHMpID09PSBmYWxzZSkgew0KCQkJcy5nbG9iYWwgJiYgalF1ZXJ5LmFjdGl2ZS0tOw0KCQkJcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIGlmICh4aHIuYWJvcnRlZCkNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgDQogICAgICAgIHZhciBjYkludm9rZWQgPSAwOw0KICAgICAgICB2YXIgdGltZWRPdXQgPSAwOw0KDQogICAgICAgIC8vIGFkZCBzdWJtaXR0aW5nIGVsZW1lbnQgdG8gZGF0YSBpZiB3ZSBrbm93IGl0DQogICAgICAgIHZhciBzdWIgPSBmb3JtLmNsazsNCiAgICAgICAgaWYgKHN1Yikgew0KICAgICAgICAgICAgdmFyIG4gPSBzdWIubmFtZTsNCiAgICAgICAgICAgIGlmIChuICYmICFzdWIuZGlzYWJsZWQpIHsNCiAgICAgICAgICAgICAgICBvcHRpb25zLmV4dHJhRGF0YSA9IG9wdGlvbnMuZXh0cmFEYXRhIHx8IHt9Ow0KICAgICAgICAgICAgICAgIG9wdGlvbnMuZXh0cmFEYXRhW25dID0gc3ViLnZhbHVlOw0KICAgICAgICAgICAgICAgIGlmIChzdWIudHlwZSA9PSAiaW1hZ2UiKSB7DQogICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuZXh0cmFEYXRhW25hbWUrJy54J10gPSBmb3JtLmNsa194Ow0KICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmV4dHJhRGF0YVtuYW1lKycueSddID0gZm9ybS5jbGtfeTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLyB0YWtlIGEgYnJlYXRoIHNvIHRoYXQgcGVuZGluZyByZXBhaW50cyBnZXQgc29tZSBjcHUgdGltZSBiZWZvcmUgdGhlIHVwbG9hZCBzdGFydHMNCiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsNCiAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSBmb3JtIGF0dHJzIGFyZSBzZXQNCiAgICAgICAgICAgIHZhciB0ID0gJGZvcm0uYXR0cigndGFyZ2V0JyksIGEgPSAkZm9ybS5hdHRyKCdhY3Rpb24nKTsNCiAgICAgICAgICAgICRmb3JtLmF0dHIoew0KICAgICAgICAgICAgICAgIHRhcmdldDogICBpZCwNCiAgICAgICAgICAgICAgICBtZXRob2Q6ICAgJ1BPU1QnLA0KICAgICAgICAgICAgICAgIGFjdGlvbjogICBvcHRzLnVybA0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICANCiAgICAgICAgICAgIC8vIGllIGJvcmtzIGluIHNvbWUgY2FzZXMgd2hlbiBzZXR0aW5nIGVuY29kaW5nDQogICAgICAgICAgICBpZiAoISBvcHRpb25zLnNraXBFbmNvZGluZ092ZXJyaWRlKSB7DQogICAgICAgICAgICAgICAgJGZvcm0uYXR0cih7DQogICAgICAgICAgICAgICAgICAgIGVuY29kaW5nOiAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsDQogICAgICAgICAgICAgICAgICAgIGVuY3R5cGU6ICAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLy8gc3VwcG9ydCB0aW1vdXQNCiAgICAgICAgICAgIGlmIChvcHRzLnRpbWVvdXQpDQogICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgdGltZWRPdXQgPSB0cnVlOyBjYigpOyB9LCBvcHRzLnRpbWVvdXQpOw0KDQogICAgICAgICAgICAvLyBhZGQgImV4dHJhIiBkYXRhIHRvIGZvcm0gaWYgcHJvdmlkZWQgaW4gb3B0aW9ucw0KICAgICAgICAgICAgdmFyIGV4dHJhSW5wdXRzID0gW107DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmV4dHJhRGF0YSkNCiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgbiBpbiBvcHRpb25zLmV4dHJhRGF0YSkNCiAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhSW5wdXRzLnB1c2goDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJytuKyciIHZhbHVlPSInK29wdGlvbnMuZXh0cmFEYXRhW25dKyciIC8+JykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKGZvcm0pWzBdKTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIC8vIGFkZCBpZnJhbWUgdG8gZG9jIGFuZCBzdWJtaXQgdGhlIGZvcm0NCiAgICAgICAgICAgICAgICAkaW8uYXBwZW5kVG8oJ2JvZHknKTsNCiAgICAgICAgICAgICAgICBpby5hdHRhY2hFdmVudCA/IGlvLmF0dGFjaEV2ZW50KCdvbmxvYWQnLCBjYikgOiBpby5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgY2IsIGZhbHNlKTsNCiAgICAgICAgICAgICAgICBmb3JtLnN1Ym1pdCgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZmluYWxseSB7DQogICAgICAgICAgICAgICAgLy8gcmVzZXQgYXR0cnMgYW5kIHJlbW92ZSAiZXh0cmEiIGlucHV0IGVsZW1lbnRzDQogICAgICAgICAgICAgICAgJGZvcm0uYXR0cignYWN0aW9uJywgYSk7DQogICAgICAgICAgICAgICAgdCA/ICRmb3JtLmF0dHIoJ3RhcmdldCcsIHQpIDogJGZvcm0ucmVtb3ZlQXR0cigndGFyZ2V0Jyk7DQogICAgICAgICAgICAgICAgJChleHRyYUlucHV0cykucmVtb3ZlKCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0sIDEwKTsNCg0KICAgICAgICBmdW5jdGlvbiBjYigpIHsNCiAgICAgICAgICAgIGlmIChjYkludm9rZWQrKykgcmV0dXJuOw0KICAgICAgICAgICAgDQogICAgICAgICAgICBpby5kZXRhY2hFdmVudCA/IGlvLmRldGFjaEV2ZW50KCdvbmxvYWQnLCBjYikgOiBpby5yZW1vdmVFdmVudExpc3RlbmVyKCdsb2FkJywgY2IsIGZhbHNlKTsNCg0KICAgICAgICAgICAgdmFyIG9wZXJhSGFjayA9IDA7DQogICAgICAgICAgICB2YXIgb2sgPSB0cnVlOw0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBpZiAodGltZWRPdXQpIHRocm93ICd0aW1lb3V0JzsNCiAgICAgICAgICAgICAgICAvLyBleHRyYWN0IHRoZSBzZXJ2ZXIgcmVzcG9uc2UgZnJvbSB0aGUgaWZyYW1lDQogICAgICAgICAgICAgICAgdmFyIGRhdGEsIGRvYzsNCg0KICAgICAgICAgICAgICAgIGRvYyA9IGlvLmNvbnRlbnRXaW5kb3cgPyBpby5jb250ZW50V2luZG93LmRvY3VtZW50IDogaW8uY29udGVudERvY3VtZW50ID8gaW8uY29udGVudERvY3VtZW50IDogaW8uZG9jdW1lbnQ7DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgaWYgKGRvYy5ib2R5ID09IG51bGwgJiYgIW9wZXJhSGFjayAmJiAkLmJyb3dzZXIub3BlcmEpIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gSW4gT3BlcmEgOS4yLnggdGhlIGlmcmFtZSBET00gaXMgbm90IGFsd2F5cyB0cmF2ZXJzYWJsZSB3aGVuDQogICAgICAgICAgICAgICAgICAgIC8vIHRoZSBvbmxvYWQgY2FsbGJhY2sgZmlyZXMgc28gd2UgZ2l2ZSBPcGVyYSAxMDBtcyB0byByaWdodCBpdHNlbGYNCiAgICAgICAgICAgICAgICAgICAgb3BlcmFIYWNrID0gMTsNCiAgICAgICAgICAgICAgICAgICAgY2JJbnZva2VkLS07DQogICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoY2IsIDEwMCk7DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgeGhyLnJlc3BvbnNlVGV4dCA9IGRvYy5ib2R5ID8gZG9jLmJvZHkuaW5uZXJIVE1MIDogbnVsbDsNCiAgICAgICAgICAgICAgICB4aHIucmVzcG9uc2VYTUwgPSBkb2MuWE1MRG9jdW1lbnQgPyBkb2MuWE1MRG9jdW1lbnQgOiBkb2M7DQogICAgICAgICAgICAgICAgeGhyLmdldFJlc3BvbnNlSGVhZGVyID0gZnVuY3Rpb24oaGVhZGVyKXsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGhlYWRlcnMgPSB7J2NvbnRlbnQtdHlwZSc6IG9wdHMuZGF0YVR5cGV9Ow0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGVhZGVyc1toZWFkZXJdOw0KICAgICAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgICAgICBpZiAob3B0cy5kYXRhVHlwZSA9PSAnanNvbicgfHwgb3B0cy5kYXRhVHlwZSA9PSAnc2NyaXB0Jykgew0KICAgICAgICAgICAgICAgICAgICB2YXIgdGEgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RleHRhcmVhJylbMF07DQogICAgICAgICAgICAgICAgICAgIHhoci5yZXNwb25zZVRleHQgPSB0YSA/IHRhLnZhbHVlIDogeGhyLnJlc3BvbnNlVGV4dDsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSBpZiAob3B0cy5kYXRhVHlwZSA9PSAneG1sJyAmJiAheGhyLnJlc3BvbnNlWE1MICYmIHhoci5yZXNwb25zZVRleHQgIT0gbnVsbCkgew0KICAgICAgICAgICAgICAgICAgICB4aHIucmVzcG9uc2VYTUwgPSB0b1htbCh4aHIucmVzcG9uc2VUZXh0KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZGF0YSA9ICQuaHR0cERhdGEoeGhyLCBvcHRzLmRhdGFUeXBlKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNhdGNoKGUpew0KICAgICAgICAgICAgICAgIG9rID0gZmFsc2U7DQogICAgICAgICAgICAgICAgJC5oYW5kbGVFcnJvcihvcHRzLCB4aHIsICdlcnJvcicsIGUpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAvLyBvcmRlcmluZyBvZiB0aGVzZSBjYWxsYmFja3MvdHJpZ2dlcnMgaXMgb2RkLCBidXQgdGhhdCdzIGhvdyAkLmFqYXggZG9lcyBpdA0KICAgICAgICAgICAgaWYgKG9rKSB7DQogICAgICAgICAgICAgICAgb3B0cy5zdWNjZXNzKGRhdGEsICdzdWNjZXNzJyk7DQogICAgICAgICAgICAgICAgaWYgKGcpICQuZXZlbnQudHJpZ2dlcigiYWpheFN1Y2Nlc3MiLCBbeGhyLCBvcHRzXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoZykgJC5ldmVudC50cmlnZ2VyKCJhamF4Q29tcGxldGUiLCBbeGhyLCBvcHRzXSk7DQogICAgICAgICAgICBpZiAoZyAmJiAhIC0tJC5hY3RpdmUpICQuZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKTsNCiAgICAgICAgICAgIGlmIChvcHRzLmNvbXBsZXRlKSBvcHRzLmNvbXBsZXRlKHhociwgb2sgPyAnc3VjY2VzcycgOiAnZXJyb3InKTsNCg0KICAgICAgICAgICAgLy8gY2xlYW4gdXANCiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgJGlvLnJlbW92ZSgpOw0KICAgICAgICAgICAgICAgIHhoci5yZXNwb25zZVhNTCA9IG51bGw7DQogICAgICAgICAgICB9LCAxMDApOw0KICAgICAgICB9Ow0KDQogICAgICAgIGZ1bmN0aW9uIHRvWG1sKHMsIGRvYykgew0KICAgICAgICAgICAgaWYgKHdpbmRvdy5BY3RpdmVYT2JqZWN0KSB7DQogICAgICAgICAgICAgICAgZG9jID0gbmV3IEFjdGl2ZVhPYmplY3QoJ01pY3Jvc29mdC5YTUxET00nKTsNCiAgICAgICAgICAgICAgICBkb2MuYXN5bmMgPSAnZmFsc2UnOw0KICAgICAgICAgICAgICAgIGRvYy5sb2FkWE1MKHMpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgIGRvYyA9IChuZXcgRE9NUGFyc2VyKCkpLnBhcnNlRnJvbVN0cmluZyhzLCAndGV4dC94bWwnKTsNCiAgICAgICAgICAgIHJldHVybiAoZG9jICYmIGRvYy5kb2N1bWVudEVsZW1lbnQgJiYgZG9jLmRvY3VtZW50RWxlbWVudC50YWdOYW1lICE9ICdwYXJzZXJlcnJvcicpID8gZG9jIDogbnVsbDsNCiAgICAgICAgfTsNCiAgICB9Ow0KfTsNCg0KLyoqDQogKiBhamF4Rm9ybSgpIHByb3ZpZGVzIGEgbWVjaGFuaXNtIGZvciBmdWxseSBhdXRvbWF0aW5nIGZvcm0gc3VibWlzc2lvbi4NCiAqDQogKiBUaGUgYWR2YW50YWdlcyBvZiB1c2luZyB0aGlzIG1ldGhvZCBpbnN0ZWFkIG9mIGFqYXhTdWJtaXQoKSBhcmU6DQogKg0KICogMTogVGhpcyBtZXRob2Qgd2lsbCBpbmNsdWRlIGNvb3JkaW5hdGVzIGZvciA8aW5wdXQgdHlwZT0iaW1hZ2UiIC8+IGVsZW1lbnRzIChpZiB0aGUgZWxlbWVudA0KICogICAgaXMgdXNlZCB0byBzdWJtaXQgdGhlIGZvcm0pLg0KICogMi4gVGhpcyBtZXRob2Qgd2lsbCBpbmNsdWRlIHRoZSBzdWJtaXQgZWxlbWVudCdzIG5hbWUvdmFsdWUgZGF0YSAoZm9yIHRoZSBlbGVtZW50IHRoYXQgd2FzDQogKiAgICB1c2VkIHRvIHN1Ym1pdCB0aGUgZm9ybSkuDQogKiAzLiBUaGlzIG1ldGhvZCBiaW5kcyB0aGUgc3VibWl0KCkgbWV0aG9kIHRvIHRoZSBmb3JtIGZvciB5b3UuDQogKg0KICogVGhlIG9wdGlvbnMgYXJndW1lbnQgZm9yIGFqYXhGb3JtIHdvcmtzIGV4YWN0bHkgYXMgaXQgZG9lcyBmb3IgYWpheFN1Ym1pdC4gIGFqYXhGb3JtIG1lcmVseQ0KICogcGFzc2VzIHRoZSBvcHRpb25zIGFyZ3VtZW50IGFsb25nIGFmdGVyIHByb3Blcmx5IGJpbmRpbmcgZXZlbnRzIGZvciBzdWJtaXQgZWxlbWVudHMgYW5kDQogKiB0aGUgZm9ybSBpdHNlbGYuDQogKi8gDQokLmZuLmFqYXhGb3JtID0gZnVuY3Rpb24ob3B0aW9ucykgew0KICAgIHJldHVybiB0aGlzLmFqYXhGb3JtVW5iaW5kKCkuYmluZCgnc3VibWl0LmZvcm0tcGx1Z2luJyxmdW5jdGlvbigpIHsNCiAgICAgICAgJCh0aGlzKS5hamF4U3VibWl0KG9wdGlvbnMpOw0KICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgfSkuZWFjaChmdW5jdGlvbigpIHsNCiAgICAgICAgLy8gc3RvcmUgb3B0aW9ucyBpbiBoYXNoDQogICAgICAgICQoIjpzdWJtaXQsaW5wdXQ6aW1hZ2UiLCB0aGlzKS5iaW5kKCdjbGljay5mb3JtLXBsdWdpbicsZnVuY3Rpb24oZSkgew0KICAgICAgICAgICAgdmFyIGZvcm0gPSB0aGlzLmZvcm07DQogICAgICAgICAgICBmb3JtLmNsayA9IHRoaXM7DQogICAgICAgICAgICBpZiAodGhpcy50eXBlID09ICdpbWFnZScpIHsNCiAgICAgICAgICAgICAgICBpZiAoZS5vZmZzZXRYICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBmb3JtLmNsa194ID0gZS5vZmZzZXRYOw0KICAgICAgICAgICAgICAgICAgICBmb3JtLmNsa195ID0gZS5vZmZzZXRZOw0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mICQuZm4ub2Zmc2V0ID09ICdmdW5jdGlvbicpIHsgLy8gdHJ5IHRvIHVzZSBkaW1lbnNpb25zIHBsdWdpbg0KICAgICAgICAgICAgICAgICAgICB2YXIgb2Zmc2V0ID0gJCh0aGlzKS5vZmZzZXQoKTsNCiAgICAgICAgICAgICAgICAgICAgZm9ybS5jbGtfeCA9IGUucGFnZVggLSBvZmZzZXQubGVmdDsNCiAgICAgICAgICAgICAgICAgICAgZm9ybS5jbGtfeSA9IGUucGFnZVkgLSBvZmZzZXQudG9wOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGZvcm0uY2xrX3ggPSBlLnBhZ2VYIC0gdGhpcy5vZmZzZXRMZWZ0Ow0KICAgICAgICAgICAgICAgICAgICBmb3JtLmNsa195ID0gZS5wYWdlWSAtIHRoaXMub2Zmc2V0VG9wOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIGNsZWFyIGZvcm0gdmFycw0KICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgZm9ybS5jbGsgPSBmb3JtLmNsa194ID0gZm9ybS5jbGtfeSA9IG51bGw7IH0sIDEwKTsNCiAgICAgICAgfSk7DQogICAgfSk7DQp9Ow0KDQovLyBhamF4Rm9ybVVuYmluZCB1bmJpbmRzIHRoZSBldmVudCBoYW5kbGVycyB0aGF0IHdlcmUgYm91bmQgYnkgYWpheEZvcm0NCiQuZm4uYWpheEZvcm1VbmJpbmQgPSBmdW5jdGlvbigpIHsNCiAgICB0aGlzLnVuYmluZCgnc3VibWl0LmZvcm0tcGx1Z2luJyk7DQogICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsNCiAgICAgICAgJCgiOnN1Ym1pdCxpbnB1dDppbWFnZSIsIHRoaXMpLnVuYmluZCgnY2xpY2suZm9ybS1wbHVnaW4nKTsNCiAgICB9KTsNCg0KfTsNCg0KLyoqDQogKiBmb3JtVG9BcnJheSgpIGdhdGhlcnMgZm9ybSBlbGVtZW50IGRhdGEgaW50byBhbiBhcnJheSBvZiBvYmplY3RzIHRoYXQgY2FuDQogKiBiZSBwYXNzZWQgdG8gYW55IG9mIHRoZSBmb2xsb3dpbmcgYWpheCBmdW5jdGlvbnM6ICQuZ2V0LCAkLnBvc3QsIG9yIGxvYWQuDQogKiBFYWNoIG9iamVjdCBpbiB0aGUgYXJyYXkgaGFzIGJvdGggYSAnbmFtZScgYW5kICd2YWx1ZScgcHJvcGVydHkuICBBbiBleGFtcGxlIG9mDQogKiBhbiBhcnJheSBmb3IgYSBzaW1wbGUgbG9naW4gZm9ybSBtaWdodCBiZToNCiAqDQogKiBbIHsgbmFtZTogJ3VzZXJuYW1lJywgdmFsdWU6ICdqcmVzaWcnIH0sIHsgbmFtZTogJ3Bhc3N3b3JkJywgdmFsdWU6ICdzZWNyZXQnIH0gXQ0KICoNCiAqIEl0IGlzIHRoaXMgYXJyYXkgdGhhdCBpcyBwYXNzZWQgdG8gcHJlLXN1Ym1pdCBjYWxsYmFjayBmdW5jdGlvbnMgcHJvdmlkZWQgdG8gdGhlDQogKiBhamF4U3VibWl0KCkgYW5kIGFqYXhGb3JtKCkgbWV0aG9kcy4NCiAqLw0KJC5mbi5mb3JtVG9BcnJheSA9IGZ1bmN0aW9uKHNlbWFudGljKSB7DQogICAgdmFyIGEgPSBbXTsNCiAgICBpZiAodGhpcy5sZW5ndGggPT0gMCkgcmV0dXJuIGE7DQoNCiAgICB2YXIgZm9ybSA9IHRoaXNbMF07DQogICAgdmFyIGVscyA9IHNlbWFudGljID8gZm9ybS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnKicpIDogZm9ybS5lbGVtZW50czsNCiAgICBpZiAoIWVscykgcmV0dXJuIGE7DQogICAgZm9yKHZhciBpPTAsIG1heD1lbHMubGVuZ3RoOyBpIDwgbWF4OyBpKyspIHsNCiAgICAgICAgdmFyIGVsID0gZWxzW2ldOw0KICAgICAgICB2YXIgbiA9IGVsLm5hbWU7DQogICAgICAgIGlmICghbikgY29udGludWU7DQoNCiAgICAgICAgaWYgKHNlbWFudGljICYmIGZvcm0uY2xrICYmIGVsLnR5cGUgPT0gImltYWdlIikgew0KICAgICAgICAgICAgLy8gaGFuZGxlIGltYWdlIGlucHV0cyBvbiB0aGUgZmx5IHdoZW4gc2VtYW50aWMgPT0gdHJ1ZQ0KICAgICAgICAgICAgaWYoIWVsLmRpc2FibGVkICYmIGZvcm0uY2xrID09IGVsKQ0KICAgICAgICAgICAgICAgIGEucHVzaCh7bmFtZTogbisnLngnLCB2YWx1ZTogZm9ybS5jbGtfeH0sIHtuYW1lOiBuKycueScsIHZhbHVlOiBmb3JtLmNsa195fSk7DQogICAgICAgICAgICBjb250aW51ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciB2ID0gJC5maWVsZFZhbHVlKGVsLCB0cnVlKTsNCiAgICAgICAgaWYgKHYgJiYgdi5jb25zdHJ1Y3RvciA9PSBBcnJheSkgew0KICAgICAgICAgICAgZm9yKHZhciBqPTAsIGptYXg9di5sZW5ndGg7IGogPCBqbWF4OyBqKyspDQogICAgICAgICAgICAgICAgYS5wdXNoKHtuYW1lOiBuLCB2YWx1ZTogdltqXX0pOw0KICAgICAgICB9DQogICAgICAgIGVsc2UgaWYgKHYgIT09IG51bGwgJiYgdHlwZW9mIHYgIT0gJ3VuZGVmaW5lZCcpDQogICAgICAgICAgICBhLnB1c2goe25hbWU6IG4sIHZhbHVlOiB2fSk7DQogICAgfQ0KDQogICAgaWYgKCFzZW1hbnRpYyAmJiBmb3JtLmNsaykgew0KICAgICAgICAvLyBpbnB1dCB0eXBlPT0naW1hZ2UnIGFyZSBub3QgZm91bmQgaW4gZWxlbWVudHMgYXJyYXkhIGhhbmRsZSB0aGVtIGhlcmUNCiAgICAgICAgdmFyIGlucHV0cyA9IGZvcm0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0Iik7DQogICAgICAgIGZvcih2YXIgaT0wLCBtYXg9aW5wdXRzLmxlbmd0aDsgaSA8IG1heDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBpbnB1dHNbaV07DQogICAgICAgICAgICB2YXIgbiA9IGlucHV0Lm5hbWU7DQogICAgICAgICAgICBpZihuICYmICFpbnB1dC5kaXNhYmxlZCAmJiBpbnB1dC50eXBlID09ICJpbWFnZSIgJiYgZm9ybS5jbGsgPT0gaW5wdXQpDQogICAgICAgICAgICAgICAgYS5wdXNoKHtuYW1lOiBuKycueCcsIHZhbHVlOiBmb3JtLmNsa194fSwge25hbWU6IG4rJy55JywgdmFsdWU6IGZvcm0uY2xrX3l9KTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm4gYTsNCn07DQoNCi8qKg0KICogU2VyaWFsaXplcyBmb3JtIGRhdGEgaW50byBhICdzdWJtaXR0YWJsZScgc3RyaW5nLiBUaGlzIG1ldGhvZCB3aWxsIHJldHVybiBhIHN0cmluZw0KICogaW4gdGhlIGZvcm1hdDogbmFtZTE9dmFsdWUxJmFtcDtuYW1lMj12YWx1ZTINCiAqLw0KJC5mbi5mb3JtU2VyaWFsaXplID0gZnVuY3Rpb24oc2VtYW50aWMpIHsNCiAgICAvL2hhbmQgb2ZmIHRvIGpRdWVyeS5wYXJhbSBmb3IgcHJvcGVyIGVuY29kaW5nDQogICAgcmV0dXJuICQucGFyYW0odGhpcy5mb3JtVG9BcnJheShzZW1hbnRpYykpOw0KfTsNCg0KLyoqDQogKiBTZXJpYWxpemVzIGFsbCBmaWVsZCBlbGVtZW50cyBpbiB0aGUgalF1ZXJ5IG9iamVjdCBpbnRvIGEgcXVlcnkgc3RyaW5nLg0KICogVGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gYSBzdHJpbmcgaW4gdGhlIGZvcm1hdDogbmFtZTE9dmFsdWUxJmFtcDtuYW1lMj12YWx1ZTINCiAqLw0KJC5mbi5maWVsZFNlcmlhbGl6ZSA9IGZ1bmN0aW9uKHN1Y2Nlc3NmdWwpIHsNCiAgICB2YXIgYSA9IFtdOw0KICAgIHRoaXMuZWFjaChmdW5jdGlvbigpIHsNCiAgICAgICAgdmFyIG4gPSB0aGlzLm5hbWU7DQogICAgICAgIGlmICghbikgcmV0dXJuOw0KICAgICAgICB2YXIgdiA9ICQuZmllbGRWYWx1ZSh0aGlzLCBzdWNjZXNzZnVsKTsNCiAgICAgICAgaWYgKHYgJiYgdi5jb25zdHJ1Y3RvciA9PSBBcnJheSkgew0KICAgICAgICAgICAgZm9yICh2YXIgaT0wLG1heD12Lmxlbmd0aDsgaSA8IG1heDsgaSsrKQ0KICAgICAgICAgICAgICAgIGEucHVzaCh7bmFtZTogbiwgdmFsdWU6IHZbaV19KTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIGlmICh2ICE9PSBudWxsICYmIHR5cGVvZiB2ICE9ICd1bmRlZmluZWQnKQ0KICAgICAgICAgICAgYS5wdXNoKHtuYW1lOiB0aGlzLm5hbWUsIHZhbHVlOiB2fSk7DQogICAgfSk7DQogICAgLy9oYW5kIG9mZiB0byBqUXVlcnkucGFyYW0gZm9yIHByb3BlciBlbmNvZGluZw0KICAgIHJldHVybiAkLnBhcmFtKGEpOw0KfTsNCg0KLyoqDQogKiBSZXR1cm5zIHRoZSB2YWx1ZShzKSBvZiB0aGUgZWxlbWVudCBpbiB0aGUgbWF0Y2hlZCBzZXQuICBGb3IgZXhhbXBsZSwgY29uc2lkZXIgdGhlIGZvbGxvd2luZyBmb3JtOg0KICoNCiAqICA8Zm9ybT48ZmllbGRzZXQ+DQogKiAgICAgIDxpbnB1dCBuYW1lPSJBIiB0eXBlPSJ0ZXh0IiAvPg0KICogICAgICA8aW5wdXQgbmFtZT0iQSIgdHlwZT0idGV4dCIgLz4NCiAqICAgICAgPGlucHV0IG5hbWU9IkIiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iQjEiIC8+DQogKiAgICAgIDxpbnB1dCBuYW1lPSJCIiB0eXBlPSJjaGVja2JveCIgdmFsdWU9IkIyIi8+DQogKiAgICAgIDxpbnB1dCBuYW1lPSJDIiB0eXBlPSJyYWRpbyIgdmFsdWU9IkMxIiAvPg0KICogICAgICA8aW5wdXQgbmFtZT0iQyIgdHlwZT0icmFkaW8iIHZhbHVlPSJDMiIgLz4NCiAqICA8L2ZpZWxkc2V0PjwvZm9ybT4NCiAqDQogKiAgdmFyIHYgPSAkKCc6dGV4dCcpLmZpZWxkVmFsdWUoKTsNCiAqICAvLyBpZiBubyB2YWx1ZXMgYXJlIGVudGVyZWQgaW50byB0aGUgdGV4dCBpbnB1dHMNCiAqICB2ID09IFsnJywnJ10NCiAqICAvLyBpZiB2YWx1ZXMgZW50ZXJlZCBpbnRvIHRoZSB0ZXh0IGlucHV0cyBhcmUgJ2ZvbycgYW5kICdiYXInDQogKiAgdiA9PSBbJ2ZvbycsJ2JhciddDQogKg0KICogIHZhciB2ID0gJCgnOmNoZWNrYm94JykuZmllbGRWYWx1ZSgpOw0KICogIC8vIGlmIG5laXRoZXIgY2hlY2tib3ggaXMgY2hlY2tlZA0KICogIHYgPT09IHVuZGVmaW5lZA0KICogIC8vIGlmIGJvdGggY2hlY2tib3hlcyBhcmUgY2hlY2tlZA0KICogIHYgPT0gWydCMScsICdCMiddDQogKg0KICogIHZhciB2ID0gJCgnOnJhZGlvJykuZmllbGRWYWx1ZSgpOw0KICogIC8vIGlmIG5laXRoZXIgcmFkaW8gaXMgY2hlY2tlZA0KICogIHYgPT09IHVuZGVmaW5lZA0KICogIC8vIGlmIGZpcnN0IHJhZGlvIGlzIGNoZWNrZWQNCiAqICB2ID09IFsnQzEnXQ0KICoNCiAqIFRoZSBzdWNjZXNzZnVsIGFyZ3VtZW50IGNvbnRyb2xzIHdoZXRoZXIgb3Igbm90IHRoZSBmaWVsZCBlbGVtZW50IG11c3QgYmUgJ3N1Y2Nlc3NmdWwnDQogKiAocGVyIGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2ludGVyYWN0L2Zvcm1zLmh0bWwjc3VjY2Vzc2Z1bC1jb250cm9scykuDQogKiBUaGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgc3VjY2Vzc2Z1bCBhcmd1bWVudCBpcyB0cnVlLiAgSWYgdGhpcyB2YWx1ZSBpcyBmYWxzZSB0aGUgdmFsdWUocykNCiAqIGZvciBlYWNoIGVsZW1lbnQgaXMgcmV0dXJuZWQuDQogKg0KICogTm90ZTogVGhpcyBtZXRob2QgKmFsd2F5cyogcmV0dXJucyBhbiBhcnJheS4gIElmIG5vIHZhbGlkIHZhbHVlIGNhbiBiZSBkZXRlcm1pbmVkIHRoZQ0KICogICAgICAgYXJyYXkgd2lsbCBiZSBlbXB0eSwgb3RoZXJ3aXNlIGl0IHdpbGwgY29udGFpbiBvbmUgb3IgbW9yZSB2YWx1ZXMuDQogKi8NCiQuZm4uZmllbGRWYWx1ZSA9IGZ1bmN0aW9uKHN1Y2Nlc3NmdWwpIHsNCiAgICBmb3IgKHZhciB2YWw9W10sIGk9MCwgbWF4PXRoaXMubGVuZ3RoOyBpIDwgbWF4OyBpKyspIHsNCiAgICAgICAgdmFyIGVsID0gdGhpc1tpXTsNCiAgICAgICAgdmFyIHYgPSAkLmZpZWxkVmFsdWUoZWwsIHN1Y2Nlc3NmdWwpOw0KICAgICAgICBpZiAodiA9PT0gbnVsbCB8fCB0eXBlb2YgdiA9PSAndW5kZWZpbmVkJyB8fCAodi5jb25zdHJ1Y3RvciA9PSBBcnJheSAmJiAhdi5sZW5ndGgpKQ0KICAgICAgICAgICAgY29udGludWU7DQogICAgICAgIHYuY29uc3RydWN0b3IgPT0gQXJyYXkgPyAkLm1lcmdlKHZhbCwgdikgOiB2YWwucHVzaCh2KTsNCiAgICB9DQogICAgcmV0dXJuIHZhbDsNCn07DQoNCi8qKg0KICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIGZpZWxkIGVsZW1lbnQuDQogKi8NCiQuZmllbGRWYWx1ZSA9IGZ1bmN0aW9uKGVsLCBzdWNjZXNzZnVsKSB7DQogICAgdmFyIG4gPSBlbC5uYW1lLCB0ID0gZWwudHlwZSwgdGFnID0gZWwudGFnTmFtZS50b0xvd2VyQ2FzZSgpOw0KICAgIGlmICh0eXBlb2Ygc3VjY2Vzc2Z1bCA9PSAndW5kZWZpbmVkJykgc3VjY2Vzc2Z1bCA9IHRydWU7DQoNCiAgICBpZiAoc3VjY2Vzc2Z1bCAmJiAoIW4gfHwgZWwuZGlzYWJsZWQgfHwgdCA9PSAncmVzZXQnIHx8IHQgPT0gJ2J1dHRvbicgfHwNCiAgICAgICAgKHQgPT0gJ2NoZWNrYm94JyB8fCB0ID09ICdyYWRpbycpICYmICFlbC5jaGVja2VkIHx8DQogICAgICAgICh0ID09ICdzdWJtaXQnIHx8IHQgPT0gJ2ltYWdlJykgJiYgZWwuZm9ybSAmJiBlbC5mb3JtLmNsayAhPSBlbCB8fA0KICAgICAgICB0YWcgPT0gJ3NlbGVjdCcgJiYgZWwuc2VsZWN0ZWRJbmRleCA9PSAtMSkpDQogICAgICAgICAgICByZXR1cm4gbnVsbDsNCg0KICAgIGlmICh0YWcgPT0gJ3NlbGVjdCcpIHsNCiAgICAgICAgdmFyIGluZGV4ID0gZWwuc2VsZWN0ZWRJbmRleDsNCiAgICAgICAgaWYgKGluZGV4IDwgMCkgcmV0dXJuIG51bGw7DQogICAgICAgIHZhciBhID0gW10sIG9wcyA9IGVsLm9wdGlvbnM7DQogICAgICAgIHZhciBvbmUgPSAodCA9PSAnc2VsZWN0LW9uZScpOw0KICAgICAgICB2YXIgbWF4ID0gKG9uZSA/IGluZGV4KzEgOiBvcHMubGVuZ3RoKTsNCiAgICAgICAgZm9yKHZhciBpPShvbmUgPyBpbmRleCA6IDApOyBpIDwgbWF4OyBpKyspIHsNCiAgICAgICAgICAgIHZhciBvcCA9IG9wc1tpXTsNCiAgICAgICAgICAgIGlmIChvcC5zZWxlY3RlZCkgew0KICAgICAgICAgICAgICAgIC8vIGV4dHJhIHBhaW4gZm9yIElFLi4uDQogICAgICAgICAgICAgICAgdmFyIHYgPSAkLmJyb3dzZXIubXNpZSAmJiAhKG9wLmF0dHJpYnV0ZXNbJ3ZhbHVlJ10uc3BlY2lmaWVkKSA/IG9wLnRleHQgOiBvcC52YWx1ZTsNCiAgICAgICAgICAgICAgICBpZiAob25lKSByZXR1cm4gdjsNCiAgICAgICAgICAgICAgICBhLnB1c2godik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIGE7DQogICAgfQ0KICAgIHJldHVybiBlbC52YWx1ZTsNCn07DQoNCi8qKg0KICogQ2xlYXJzIHRoZSBmb3JtIGRhdGEuICBUYWtlcyB0aGUgZm9sbG93aW5nIGFjdGlvbnMgb24gdGhlIGZvcm0ncyBpbnB1dCBmaWVsZHM6DQogKiAgLSBpbnB1dCB0ZXh0IGZpZWxkcyB3aWxsIGhhdmUgdGhlaXIgJ3ZhbHVlJyBwcm9wZXJ0eSBzZXQgdG8gdGhlIGVtcHR5IHN0cmluZw0KICogIC0gc2VsZWN0IGVsZW1lbnRzIHdpbGwgaGF2ZSB0aGVpciAnc2VsZWN0ZWRJbmRleCcgcHJvcGVydHkgc2V0IHRvIC0xDQogKiAgLSBjaGVja2JveCBhbmQgcmFkaW8gaW5wdXRzIHdpbGwgaGF2ZSB0aGVpciAnY2hlY2tlZCcgcHJvcGVydHkgc2V0IHRvIGZhbHNlDQogKiAgLSBpbnB1dHMgb2YgdHlwZSBzdWJtaXQsIGJ1dHRvbiwgcmVzZXQsIGFuZCBoaWRkZW4gd2lsbCAqbm90KiBiZSBlZmZlY3RlZA0KICogIC0gYnV0dG9uIGVsZW1lbnRzIHdpbGwgKm5vdCogYmUgZWZmZWN0ZWQNCiAqLw0KJC5mbi5jbGVhckZvcm0gPSBmdW5jdGlvbigpIHsNCiAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgew0KICAgICAgICAkKCdpbnB1dCxzZWxlY3QsdGV4dGFyZWEnLCB0aGlzKS5jbGVhckZpZWxkcygpOw0KICAgIH0pOw0KfTsNCg0KLyoqDQogKiBDbGVhcnMgdGhlIHNlbGVjdGVkIGZvcm0gZWxlbWVudHMuDQogKi8NCiQuZm4uY2xlYXJGaWVsZHMgPSAkLmZuLmNsZWFySW5wdXRzID0gZnVuY3Rpb24oKSB7DQogICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsNCiAgICAgICAgdmFyIHQgPSB0aGlzLnR5cGUsIHRhZyA9IHRoaXMudGFnTmFtZS50b0xvd2VyQ2FzZSgpOw0KICAgICAgICBpZiAodCA9PSAndGV4dCcgfHwgdCA9PSAncGFzc3dvcmQnIHx8IHRhZyA9PSAndGV4dGFyZWEnKQ0KICAgICAgICAgICAgdGhpcy52YWx1ZSA9ICcnOw0KICAgICAgICBlbHNlIGlmICh0ID09ICdjaGVja2JveCcgfHwgdCA9PSAncmFkaW8nKQ0KICAgICAgICAgICAgdGhpcy5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGVsc2UgaWYgKHRhZyA9PSAnc2VsZWN0JykNCiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IC0xOw0KICAgIH0pOw0KfTsNCg0KLyoqDQogKiBSZXNldHMgdGhlIGZvcm0gZGF0YS4gIENhdXNlcyBhbGwgZm9ybSBlbGVtZW50cyB0byBiZSByZXNldCB0byB0aGVpciBvcmlnaW5hbCB2YWx1ZS4NCiAqLw0KJC5mbi5yZXNldEZvcm0gPSBmdW5jdGlvbigpIHsNCiAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgew0KICAgICAgICAvLyBndWFyZCBhZ2FpbnN0IGFuIGlucHV0IHdpdGggdGhlIG5hbWUgb2YgJ3Jlc2V0Jw0KICAgICAgICAvLyBub3RlIHRoYXQgSUUgcmVwb3J0cyB0aGUgcmVzZXQgZnVuY3Rpb24gYXMgYW4gJ29iamVjdCcNCiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlc2V0ID09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiB0aGlzLnJlc2V0ID09ICdvYmplY3QnICYmICF0aGlzLnJlc2V0Lm5vZGVUeXBlKSkNCiAgICAgICAgICAgIHRoaXMucmVzZXQoKTsNCiAgICB9KTsNCn07DQoNCi8qKg0KICogRW5hYmxlcyBvciBkaXNhYmxlcyBhbnkgbWF0Y2hpbmcgZWxlbWVudHMuDQogKi8NCiQuZm4uZW5hYmxlID0gZnVuY3Rpb24oYikgeyANCiAgICBpZiAoYiA9PSB1bmRlZmluZWQpIGIgPSB0cnVlOw0KICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7IA0KICAgICAgICB0aGlzLmRpc2FibGVkID0gIWIgDQogICAgfSk7DQp9Ow0KDQovKioNCiAqIENoZWNrcy91bmNoZWNrcyBhbnkgbWF0Y2hpbmcgY2hlY2tib3hlcyBvciByYWRpbyBidXR0b25zIGFuZA0KICogc2VsZWN0cy9kZXNlbGVjdHMgYW5kIG1hdGNoaW5nIG9wdGlvbiBlbGVtZW50cy4NCiAqLw0KJC5mbi5zZWxlY3RlZCA9IGZ1bmN0aW9uKHNlbGVjdCkgew0KICAgIGlmIChzZWxlY3QgPT0gdW5kZWZpbmVkKSBzZWxlY3QgPSB0cnVlOw0KICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7IA0KICAgICAgICB2YXIgdCA9IHRoaXMudHlwZTsNCiAgICAgICAgaWYgKHQgPT0gJ2NoZWNrYm94JyB8fCB0ID09ICdyYWRpbycpDQogICAgICAgICAgICB0aGlzLmNoZWNrZWQgPSBzZWxlY3Q7DQogICAgICAgIGVsc2UgaWYgKHRoaXMudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09ICdvcHRpb24nKSB7DQogICAgICAgICAgICB2YXIgJHNlbCA9ICQodGhpcykucGFyZW50KCdzZWxlY3QnKTsNCiAgICAgICAgICAgIGlmIChzZWxlY3QgJiYgJHNlbFswXSAmJiAkc2VsWzBdLnR5cGUgPT0gJ3NlbGVjdC1vbmUnKSB7DQogICAgICAgICAgICAgICAgLy8gZGVzZWxlY3QgYWxsIG90aGVyIG9wdGlvbnMNCiAgICAgICAgICAgICAgICAkc2VsLmZpbmQoJ29wdGlvbicpLnNlbGVjdGVkKGZhbHNlKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3Q7DQogICAgICAgIH0NCiAgICB9KTsNCn07DQoNCi8vIGhlbHBlciBmbiBmb3IgY29uc29sZSBsb2dnaW5nDQovLyBzZXQgJC5mbi5hamF4U3VibWl0LmRlYnVnIHRvIHRydWUgdG8gZW5hYmxlIGRlYnVnIGxvZ2dpbmcNCmZ1bmN0aW9uIGxvZygpIHsNCiAgICBpZiAoJC5mbi5hamF4U3VibWl0LmRlYnVnICYmIHdpbmRvdy5jb25zb2xlICYmIHdpbmRvdy5jb25zb2xlLmxvZykNCiAgICAgICAgd2luZG93LmNvbnNvbGUubG9nKCdbanF1ZXJ5LmZvcm1dICcgKyBBcnJheS5wcm90b3R5cGUuam9pbi5jYWxsKGFyZ3VtZW50cywnJykpOw0KfTsNCg0KfSkoalF1ZXJ5KTsNCg==]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.hoverIntent.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[77u/LyoqCiogaG92ZXJJbnRlbnQgaXMgc2ltaWxhciB0byBqUXVlcnkncyBidWlsdC1pbiAiaG92ZXIiIGZ1bmN0aW9uIGV4Y2VwdCB0aGF0CiogaW5zdGVhZCBvZiBmaXJpbmcgdGhlIG9uTW91c2VPdmVyIGV2ZW50IGltbWVkaWF0ZWx5LCBob3ZlckludGVudCBjaGVja3MKKiB0byBzZWUgaWYgdGhlIHVzZXIncyBtb3VzZSBoYXMgc2xvd2VkIGRvd24gKGJlbmVhdGggdGhlIHNlbnNpdGl2aXR5CiogdGhyZXNob2xkKSBiZWZvcmUgZmlyaW5nIHRoZSBvbk1vdXNlT3ZlciBldmVudC4KKiAKKiBob3ZlckludGVudCByNSAvLyAyMDA3LjAzLjI3IC8vIGpRdWVyeSAxLjEuMgoqIDxodHRwOi8vY2hlcm5lLm5ldC9icmlhbi9yZXNvdXJjZXMvanF1ZXJ5LmhvdmVySW50ZW50Lmh0bWw+CiogCiogaG92ZXJJbnRlbnQgaXMgY3VycmVudGx5IGF2YWlsYWJsZSBmb3IgdXNlIGluIGFsbCBwZXJzb25hbCBvciBjb21tZXJjaWFsIAoqIHByb2plY3RzIHVuZGVyIGJvdGggTUlUIGFuZCBHUEwgbGljZW5zZXMuIFRoaXMgbWVhbnMgdGhhdCB5b3UgY2FuIGNob29zZSAKKiB0aGUgbGljZW5zZSB0aGF0IGJlc3Qgc3VpdHMgeW91ciBwcm9qZWN0LCBhbmQgdXNlIGl0IGFjY29yZGluZ2x5LgoqIAoqIC8vIGJhc2ljIHVzYWdlIChqdXN0IGxpa2UgLmhvdmVyKSByZWNlaXZlcyBvbk1vdXNlT3ZlciBhbmQgb25Nb3VzZU91dCBmdW5jdGlvbnMKKiAkKCJ1bCBsaSIpLmhvdmVySW50ZW50KCBzaG93TmF2ICwgaGlkZU5hdiApOwoqIAoqIC8vIGFkdmFuY2VkIHVzYWdlIHJlY2VpdmVzIGNvbmZpZ3VyYXRpb24gb2JqZWN0IG9ubHkKKiAkKCJ1bCBsaSIpLmhvdmVySW50ZW50KHsKKglzZW5zaXRpdml0eTogMiwgLy8gbnVtYmVyID0gc2Vuc2l0aXZpdHkgdGhyZXNob2xkIChtdXN0IGJlIDEgb3IgaGlnaGVyKQoqCWludGVydmFsOiA1MCwgICAvLyBudW1iZXIgPSBtaWxsaXNlY29uZHMgb2YgcG9sbGluZyBpbnRlcnZhbAoqCW92ZXI6IHNob3dOYXYsICAvLyBmdW5jdGlvbiA9IG9uTW91c2VPdmVyIGNhbGxiYWNrIChyZXF1aXJlZCkKKgl0aW1lb3V0OiAxMDAsICAgLy8gbnVtYmVyID0gbWlsbGlzZWNvbmRzIGRlbGF5IGJlZm9yZSBvbk1vdXNlT3V0IGZ1bmN0aW9uIGNhbGwKKglvdXQ6IGhpZGVOYXYgICAgLy8gZnVuY3Rpb24gPSBvbk1vdXNlT3V0IGNhbGxiYWNrIChyZXF1aXJlZCkKKiB9KTsKKiAKKiBAcGFyYW0gIGYgIG9uTW91c2VPdmVyIGZ1bmN0aW9uIHx8IEFuIG9iamVjdCB3aXRoIGNvbmZpZ3VyYXRpb24gb3B0aW9ucwoqIEBwYXJhbSAgZyAgb25Nb3VzZU91dCBmdW5jdGlvbiAgfHwgTm90aGluZyAodXNlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBvYmplY3QpCiogQHJldHVybiAgICBUaGUgb2JqZWN0IChha2EgInRoaXMiKSB0aGF0IGNhbGxlZCBob3ZlckludGVudCwgYW5kIHRoZSBldmVudCBvYmplY3QKKiBAYXV0aG9yICAgIEJyaWFuIENoZXJuZSA8YnJpYW5AY2hlcm5lLm5ldD4KKi8KKGZ1bmN0aW9uKCQpIHsKCSQuZm4uaG92ZXJJbnRlbnQgPSBmdW5jdGlvbihmLGcpIHsKCQkvLyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucwoJCXZhciBjZmcgPSB7CgkJCXNlbnNpdGl2aXR5OiA3LAoJCQlpbnRlcnZhbDogMTAwLAoJCQl0aW1lb3V0OiAwCgkJfTsKCQkvLyBvdmVycmlkZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgd2l0aCB1c2VyIHN1cHBsaWVkIG9iamVjdAoJCWNmZyA9ICQuZXh0ZW5kKGNmZywgZyA/IHsgb3ZlcjogZiwgb3V0OiBnIH0gOiBmICk7CgoJCS8vIGluc3RhbnRpYXRlIHZhcmlhYmxlcwoJCS8vIGNYLCBjWSA9IGN1cnJlbnQgWCBhbmQgWSBwb3NpdGlvbiBvZiBtb3VzZSwgdXBkYXRlZCBieSBtb3VzZW1vdmUgZXZlbnQKCQkvLyBwWCwgcFkgPSBwcmV2aW91cyBYIGFuZCBZIHBvc2l0aW9uIG9mIG1vdXNlLCBzZXQgYnkgbW91c2VvdmVyIGFuZCBwb2xsaW5nIGludGVydmFsCgkJdmFyIGNYLCBjWSwgcFgsIHBZOwoKCQkvLyBBIHByaXZhdGUgZnVuY3Rpb24gZm9yIGdldHRpbmcgbW91c2UgcG9zaXRpb24KCQl2YXIgdHJhY2sgPSBmdW5jdGlvbihldikgewoJCQljWCA9IGV2LnBhZ2VYOwoJCQljWSA9IGV2LnBhZ2VZOwoJCX07CgoJCS8vIEEgcHJpdmF0ZSBmdW5jdGlvbiBmb3IgY29tcGFyaW5nIGN1cnJlbnQgYW5kIHByZXZpb3VzIG1vdXNlIHBvc2l0aW9uCgkJdmFyIGNvbXBhcmUgPSBmdW5jdGlvbihldixvYikgewoJCQlvYi5ob3ZlckludGVudF90ID0gY2xlYXJUaW1lb3V0KG9iLmhvdmVySW50ZW50X3QpOwoJCQkvLyBjb21wYXJlIG1vdXNlIHBvc2l0aW9ucyB0byBzZWUgaWYgdGhleSd2ZSBjcm9zc2VkIHRoZSB0aHJlc2hvbGQKCQkJaWYgKCAoIE1hdGguYWJzKHBYLWNYKSArIE1hdGguYWJzKHBZLWNZKSApIDwgY2ZnLnNlbnNpdGl2aXR5ICkgewoJCQkJJChvYikudW5iaW5kKCJtb3VzZW1vdmUiLHRyYWNrKTsKCQkJCS8vIHNldCBob3ZlckludGVudCBzdGF0ZSB0byB0cnVlIChzbyBtb3VzZU91dCBjYW4gYmUgY2FsbGVkKQoJCQkJb2IuaG92ZXJJbnRlbnRfcyA9IDE7CgkJCQlyZXR1cm4gY2ZnLm92ZXIuYXBwbHkob2IsW2V2XSk7CgkJCX0gZWxzZSB7CgkJCQkvLyBzZXQgcHJldmlvdXMgY29vcmRpbmF0ZXMgZm9yIG5leHQgdGltZQoJCQkJcFggPSBjWDsgcFkgPSBjWTsKCQkJCS8vIHVzZSBzZWxmLWNhbGxpbmcgdGltZW91dCwgZ3VhcmFudGVlcyBpbnRlcnZhbHMgYXJlIHNwYWNlZCBvdXQgcHJvcGVybHkgKGF2b2lkcyBKYXZhU2NyaXB0IHRpbWVyIGJ1Z3MpCgkJCQlvYi5ob3ZlckludGVudF90ID0gc2V0VGltZW91dCggZnVuY3Rpb24oKXtjb21wYXJlKGV2LCBvYik7fSAsIGNmZy5pbnRlcnZhbCApOwoJCQl9CgkJfTsKCgkJLy8gQSBwcml2YXRlIGZ1bmN0aW9uIGZvciBkZWxheWluZyB0aGUgbW91c2VPdXQgZnVuY3Rpb24KCQl2YXIgZGVsYXkgPSBmdW5jdGlvbihldixvYikgewoJCQlvYi5ob3ZlckludGVudF90ID0gY2xlYXJUaW1lb3V0KG9iLmhvdmVySW50ZW50X3QpOwoJCQlvYi5ob3ZlckludGVudF9zID0gMDsKCQkJcmV0dXJuIGNmZy5vdXQuYXBwbHkob2IsW2V2XSk7CgkJfTsKCgkJLy8gQSBwcml2YXRlIGZ1bmN0aW9uIGZvciBoYW5kbGluZyBtb3VzZSAnaG92ZXJpbmcnCgkJdmFyIGhhbmRsZUhvdmVyID0gZnVuY3Rpb24oZSkgewoJCQkvLyBuZXh0IHRocmVlIGxpbmVzIGNvcGllZCBmcm9tIGpRdWVyeS5ob3ZlciwgaWdub3JlIGNoaWxkcmVuIG9uTW91c2VPdmVyL29uTW91c2VPdXQKCQkJdmFyIHAgPSAoZS50eXBlID09ICJtb3VzZW92ZXIiID8gZS5mcm9tRWxlbWVudCA6IGUudG9FbGVtZW50KSB8fCBlLnJlbGF0ZWRUYXJnZXQ7CgkJCXdoaWxlICggcCAmJiBwICE9IHRoaXMgKSB7IHRyeSB7IHAgPSBwLnBhcmVudE5vZGU7IH0gY2F0Y2goZSkgeyBwID0gdGhpczsgfSB9CgkJCWlmICggcCA9PSB0aGlzICkgeyByZXR1cm4gZmFsc2U7IH0KCgkJCS8vIGNvcHkgb2JqZWN0cyB0byBiZSBwYXNzZWQgaW50byB0IChyZXF1aXJlZCBmb3IgZXZlbnQgb2JqZWN0IHRvIGJlIHBhc3NlZCBpbiBJRSkKCQkJdmFyIGV2ID0galF1ZXJ5LmV4dGVuZCh7fSxlKTsKCQkJdmFyIG9iID0gdGhpczsKCgkJCS8vIGNhbmNlbCBob3ZlckludGVudCB0aW1lciBpZiBpdCBleGlzdHMKCQkJaWYgKG9iLmhvdmVySW50ZW50X3QpIHsgb2IuaG92ZXJJbnRlbnRfdCA9IGNsZWFyVGltZW91dChvYi5ob3ZlckludGVudF90KTsgfQoKCQkJLy8gZWxzZSBlLnR5cGUgPT0gIm9ubW91c2VvdmVyIgoJCQlpZiAoZS50eXBlID09ICJtb3VzZW92ZXIiKSB7CgkJCQkvLyBzZXQgInByZXZpb3VzIiBYIGFuZCBZIHBvc2l0aW9uIGJhc2VkIG9uIGluaXRpYWwgZW50cnkgcG9pbnQKCQkJCXBYID0gZXYucGFnZVg7IHBZID0gZXYucGFnZVk7CgkJCQkvLyB1cGRhdGUgImN1cnJlbnQiIFggYW5kIFkgcG9zaXRpb24gYmFzZWQgb24gbW91c2Vtb3ZlCgkJCQkkKG9iKS5iaW5kKCJtb3VzZW1vdmUiLHRyYWNrKTsKCQkJCS8vIHN0YXJ0IHBvbGxpbmcgaW50ZXJ2YWwgKHNlbGYtY2FsbGluZyB0aW1lb3V0KSB0byBjb21wYXJlIG1vdXNlIGNvb3JkaW5hdGVzIG92ZXIgdGltZQoJCQkJaWYgKG9iLmhvdmVySW50ZW50X3MgIT0gMSkgeyBvYi5ob3ZlckludGVudF90ID0gc2V0VGltZW91dCggZnVuY3Rpb24oKXtjb21wYXJlKGV2LG9iKTt9ICwgY2ZnLmludGVydmFsICk7fQoKCQkJLy8gZWxzZSBlLnR5cGUgPT0gIm9ubW91c2VvdXQiCgkJCX0gZWxzZSB7CgkJCQkvLyB1bmJpbmQgZXhwZW5zaXZlIG1vdXNlbW92ZSBldmVudAoJCQkJJChvYikudW5iaW5kKCJtb3VzZW1vdmUiLHRyYWNrKTsKCQkJCS8vIGlmIGhvdmVySW50ZW50IHN0YXRlIGlzIHRydWUsIHRoZW4gY2FsbCB0aGUgbW91c2VPdXQgZnVuY3Rpb24gYWZ0ZXIgdGhlIHNwZWNpZmllZCBkZWxheQoJCQkJaWYgKG9iLmhvdmVySW50ZW50X3MgPT0gMSkgeyBvYi5ob3ZlckludGVudF90ID0gc2V0VGltZW91dCggZnVuY3Rpb24oKXtkZWxheShldixvYik7fSAsIGNmZy50aW1lb3V0ICk7fQoJCQl9CgkJfTsKCgkJLy8gYmluZCB0aGUgZnVuY3Rpb24gdG8gdGhlIHR3byBldmVudCBsaXN0ZW5lcnMKCQlyZXR1cm4gdGhpcy5tb3VzZW92ZXIoaGFuZGxlSG92ZXIpLm1vdXNlb3V0KGhhbmRsZUhvdmVyKTsKCX07Cn0pKGpRdWVyeSk7]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.lightbox-0.5.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqDQogKiBqUXVlcnkgbGlnaHRCb3ggcGx1Z2luDQogKiBUaGlzIGpRdWVyeSBwbHVnaW4gd2FzIGluc3BpcmVkIGFuZCBiYXNlZCBvbiBMaWdodGJveCAyIGJ5IExva2VzaCBEaGFrYXIgKGh0dHA6Ly93d3cuaHVkZGxldG9nZXRoZXIuY29tL3Byb2plY3RzL2xpZ2h0Ym94Mi8pDQogKiBhbmQgYWRhcHRlZCB0byBtZSBmb3IgdXNlIGxpa2UgYSBwbHVnaW4gZnJvbSBqUXVlcnkuDQogKiBAbmFtZSBqcXVlcnktbGlnaHRib3gtMC41LmpzDQogKiBAYXV0aG9yIExlYW5kcm8gVmllaXJhIFBpbmhvIC0gaHR0cDovL2xlYW5kcm92aWVpcmEuY29tDQogKiBAdmVyc2lvbiAwLjUNCiAqIEBkYXRlIEFwcmlsIDExLCAyMDA4DQogKiBAY2F0ZWdvcnkgalF1ZXJ5IHBsdWdpbg0KICogQGNvcHlyaWdodCAoYykgMjAwOCBMZWFuZHJvIFZpZWlyYSBQaW5obyAobGVhbmRyb3ZpZWlyYS5jb20pDQogKiBAbGljZW5zZSBDQyBBdHRyaWJ1dGlvbi1ObyBEZXJpdmF0aXZlIFdvcmtzIDIuNSBCcmF6aWwgLSBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1uZC8yLjUvYnIvZGVlZC5lbl9VUw0KICogQGV4YW1wbGUgVmlzaXQgaHR0cDovL2xlYW5kcm92aWVpcmEuY29tL3Byb2plY3RzL2pxdWVyeS9saWdodGJveC8gZm9yIG1vcmUgaW5mb3JtYXRpb25zIGFib3V0IHRoaXMgalF1ZXJ5IHBsdWdpbg0KICovDQoNCi8vIE9mZmVyaW5nIGEgQ3VzdG9tIEFsaWFzIHN1cG9ydCAtIE1vcmUgaW5mbzogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9QbHVnaW5zL0F1dGhvcmluZyNDdXN0b21fQWxpYXMNCihmdW5jdGlvbigkKSB7DQoJLyoqDQoJICogJCBpcyBhbiBhbGlhcyB0byBqUXVlcnkgb2JqZWN0DQoJICoNCgkgKi8NCgkkLmZuLmxpZ2h0Qm94ID0gZnVuY3Rpb24oc2V0dGluZ3MpIHsNCgkJLy8gU2V0dGluZ3MgdG8gY29uZmlndXJlIHRoZSBqUXVlcnkgbGlnaHRCb3ggcGx1Z2luIGhvdyB5b3UgbGlrZQ0KCQlzZXR0aW5ncyA9IGpRdWVyeS5leHRlbmQoew0KCQkJLy8gQ29uZmlndXJhdGlvbiByZWxhdGVkIHRvIG92ZXJsYXkNCgkJCW92ZXJsYXlCZ0NvbG9yOiAJCScjMDAwJywJCS8vIChzdHJpbmcpIEJhY2tncm91bmQgY29sb3IgdG8gb3ZlcmxheTsgaW5mb3JtIGEgaGV4YWRlY2ltYWwgdmFsdWUgbGlrZTogI1JSR0dCQi4gV2hlcmUgUlIsIEdHLCBhbmQgQkIgYXJlIHRoZSBoZXhhZGVjaW1hbCB2YWx1ZXMgZm9yIHRoZSByZWQsIGdyZWVuLCBhbmQgYmx1ZSB2YWx1ZXMgb2YgdGhlIGNvbG9yLg0KCQkJb3ZlcmxheU9wYWNpdHk6CQkJMC44LAkJLy8gKGludGVnZXIpIE9wYWNpdHkgdmFsdWUgdG8gb3ZlcmxheTsgaW5mb3JtOiAwLlguIFdoZXJlIFggYXJlIG51bWJlciBmcm9tIDAgdG8gOQ0KCQkJLy8gQ29uZmlndXJhdGlvbiByZWxhdGVkIHRvIG5hdmlnYXRpb24NCgkJCWZpeGVkTmF2aWdhdGlvbjoJCWZhbHNlLAkJLy8gKGJvb2xlYW4pIEJvb2xlYW4gdGhhdCBpbmZvcm1zIGlmIHRoZSBuYXZpZ2F0aW9uIChuZXh0IGFuZCBwcmV2IGJ1dHRvbikgd2lsbCBiZSBmaXhlZCBvciBub3QgaW4gdGhlIGludGVyZmFjZS4NCgkJCS8vIENvbmZpZ3VyYXRpb24gcmVsYXRlZCB0byBpbWFnZXMNCgkJCWltYWdlTG9hZGluZzoJCQknbW9kdWxlcy9KUXVlcnlUb29scy9saWIvaW1ncy9saWdodGJveC1pY28tbG9hZGluZy5naWYnLAkJLy8gKHN0cmluZykgUGF0aCBhbmQgdGhlIG5hbWUgb2YgdGhlIGxvYWRpbmcgaWNvbg0KCQkJaW1hZ2VCdG5QcmV2OgkJCSdtb2R1bGVzL0pRdWVyeVRvb2xzL2xpYi9pbWdzL2xpZ2h0Ym94LWJ0bi1wcmV2LmdpZicsCQkJLy8gKHN0cmluZykgUGF0aCBhbmQgdGhlIG5hbWUgb2YgdGhlIHByZXYgYnV0dG9uIGltYWdlDQoJCQlpbWFnZUJ0bk5leHQ6CQkJJ21vZHVsZXMvSlF1ZXJ5VG9vbHMvbGliL2ltZ3MvbGlnaHRib3gtYnRuLW5leHQuZ2lmJywJCQkvLyAoc3RyaW5nKSBQYXRoIGFuZCB0aGUgbmFtZSBvZiB0aGUgbmV4dCBidXR0b24gaW1hZ2UNCgkJCWltYWdlQnRuQ2xvc2U6CQkJJ21vZHVsZXMvSlF1ZXJ5VG9vbHMvbGliL2ltZ3MvbGlnaHRib3gtYnRuLWNsb3NlLmdpZicsCQkvLyAoc3RyaW5nKSBQYXRoIGFuZCB0aGUgbmFtZSBvZiB0aGUgY2xvc2UgYnRuDQoJCQlpbWFnZUJsYW5rOgkJCQknbW9kdWxlcy9KUXVlcnlUb29scy9saWIvaW1ncy9saWdodGJveC1ibGFuay5naWYnLAkJCS8vIChzdHJpbmcpIFBhdGggYW5kIHRoZSBuYW1lIG9mIGEgYmxhbmsgaW1hZ2UgKG9uZSBwaXhlbCkNCgkJCS8vIENvbmZpZ3VyYXRpb24gcmVsYXRlZCB0byBjb250YWluZXIgaW1hZ2UgYm94DQoJCQljb250YWluZXJCb3JkZXJTaXplOgkxMCwJCQkvLyAoaW50ZWdlcikgSWYgeW91IGFkanVzdCB0aGUgcGFkZGluZyBpbiB0aGUgQ1NTIGZvciB0aGUgY29udGFpbmVyLCAjbGlnaHRib3gtY29udGFpbmVyLWltYWdlLWJveCwgeW91IHdpbGwgbmVlZCB0byB1cGRhdGUgdGhpcyB2YWx1ZQ0KCQkJY29udGFpbmVyUmVzaXplU3BlZWQ6CTQwMCwJCS8vIChpbnRlZ2VyKSBTcGVjaWZ5IHRoZSByZXNpemUgZHVyYXRpb24gb2YgY29udGFpbmVyIGltYWdlLiBUaGVzZSBudW1iZXIgYXJlIG1pbGlzZWNvbmRzLiA0MDAgaXMgZGVmYXVsdC4NCgkJCS8vIENvbmZpZ3VyYXRpb24gcmVsYXRlZCB0byB0ZXh0cyBpbiBjYXB0aW9uLiBGb3IgZXhhbXBsZTogSW1hZ2UgMiBvZiA4LiBZb3UgY2FuIGFsdGVyIGVpdGhlciAiSW1hZ2UiIGFuZCAib2YiIHRleHRzLg0KCQkJdHh0SW1hZ2U6CQkJCSdJbWFnZScsCS8vIChzdHJpbmcpIFNwZWNpZnkgdGV4dCAiSW1hZ2UiDQoJCQl0eHRPZjoJCQkJCSdvZicsCQkvLyAoc3RyaW5nKSBTcGVjaWZ5IHRleHQgIm9mIg0KCQkJLy8gQ29uZmlndXJhdGlvbiByZWxhdGVkIHRvIGtleWJvYXJkIG5hdmlnYXRpb24NCgkJCWtleVRvQ2xvc2U6CQkJCSdjJywJCS8vIChzdHJpbmcpIChjID0gY2xvc2UpIExldHRlciB0byBjbG9zZSB0aGUgalF1ZXJ5IGxpZ2h0Qm94IGludGVyZmFjZS4gQmV5b25kIHRoaXMgbGV0dGVyLCB0aGUgbGV0dGVyIFggYW5kIHRoZSBTQ0FQRSBrZXkgaXMgdXNlZCB0by4NCgkJCWtleVRvUHJldjoJCQkJJ3AnLAkJLy8gKHN0cmluZykgKHAgPSBwcmV2aW91cykgTGV0dGVyIHRvIHNob3cgdGhlIHByZXZpb3VzIGltYWdlDQoJCQlrZXlUb05leHQ6CQkJCSduJywJCS8vIChzdHJpbmcpIChuID0gbmV4dCkgTGV0dGVyIHRvIHNob3cgdGhlIG5leHQgaW1hZ2UuDQoJCQkvLyBEb260dCBhbHRlciB0aGVzZSB2YXJpYWJsZXMgaW4gYW55IHdheQ0KCQkJaW1hZ2VBcnJheToJCQkJW10sDQoJCQlhY3RpdmVJbWFnZToJCQkwDQoJCX0sc2V0dGluZ3MpOw0KCQkvLyBDYWNoaW5nIHRoZSBqUXVlcnkgb2JqZWN0IHdpdGggYWxsIGVsZW1lbnRzIG1hdGNoZWQNCgkJdmFyIGpRdWVyeU1hdGNoZWRPYmogPSB0aGlzOyAvLyBUaGlzLCBpbiB0aGlzIGNvbnRleHQsIHJlZmVyIHRvIGpRdWVyeSBvYmplY3QNCgkJLyoqDQoJCSAqIEluaXRpYWxpemluZyB0aGUgcGx1Z2luIGNhbGxpbmcgdGhlIHN0YXJ0IGZ1bmN0aW9uDQoJCSAqDQoJCSAqIEByZXR1cm4gYm9vbGVhbiBmYWxzZQ0KCQkgKi8NCgkJZnVuY3Rpb24gX2luaXRpYWxpemUoKSB7DQoJCQlfc3RhcnQodGhpcyxqUXVlcnlNYXRjaGVkT2JqKTsgLy8gVGhpcywgaW4gdGhpcyBjb250ZXh0LCByZWZlciB0byBvYmplY3QgKGxpbmspIHdoaWNoIHRoZSB1c2VyIGhhdmUgY2xpY2tlZA0KCQkJcmV0dXJuIGZhbHNlOyAvLyBBdm9pZCB0aGUgYnJvd3NlciBmb2xsb3dpbmcgdGhlIGxpbmsNCgkJfQ0KCQkvKioNCgkJICogU3RhcnQgdGhlIGpRdWVyeSBsaWdodEJveCBwbHVnaW4NCgkJICoNCgkJICogQHBhcmFtIG9iamVjdCBvYmpDbGlja2VkIFRoZSBvYmplY3QgKGxpbmspIHdoaWNrIHRoZSB1c2VyIGhhdmUgY2xpY2tlZA0KCQkgKiBAcGFyYW0gb2JqZWN0IGpRdWVyeU1hdGNoZWRPYmogVGhlIGpRdWVyeSBvYmplY3Qgd2l0aCBhbGwgZWxlbWVudHMgbWF0Y2hlZA0KCQkgKi8NCgkJZnVuY3Rpb24gX3N0YXJ0KG9iakNsaWNrZWQsalF1ZXJ5TWF0Y2hlZE9iaikgew0KCQkJLy8gSGltZSBzb21lIGVsZW1lbnRzIHRvIGF2b2lkIGNvbmZsaWN0IHdpdGggb3ZlcmxheSBpbiBJRS4gVGhlc2UgZWxlbWVudHMgYXBwZWFyIGFib3ZlIHRoZSBvdmVybGF5Lg0KCQkJJCgnZW1iZWQsIG9iamVjdCwgc2VsZWN0JykuY3NzKHsgJ3Zpc2liaWxpdHknIDogJ2hpZGRlbicgfSk7DQoJCQkvLyBDYWxsIHRoZSBmdW5jdGlvbiB0byBjcmVhdGUgdGhlIG1hcmt1cCBzdHJ1Y3R1cmU7IHN0eWxlIHNvbWUgZWxlbWVudHM7IGFzc2lnbiBldmVudHMgaW4gc29tZSBlbGVtZW50cy4NCgkJCV9zZXRfaW50ZXJmYWNlKCk7DQoJCQkvLyBVbnNldCB0b3RhbCBpbWFnZXMgaW4gaW1hZ2VBcnJheQ0KCQkJc2V0dGluZ3MuaW1hZ2VBcnJheS5sZW5ndGggPSAwOw0KCQkJLy8gVW5zZXQgaW1hZ2UgYWN0aXZlIGluZm9ybWF0aW9uDQoJCQlzZXR0aW5ncy5hY3RpdmVJbWFnZSA9IDA7DQoJCQkvLyBXZSBoYXZlIGFuIGltYWdlIHNldD8gT3IganVzdCBhbiBpbWFnZT8gTGV0tHMgc2VlIGl0Lg0KCQkJaWYgKCBqUXVlcnlNYXRjaGVkT2JqLmxlbmd0aCA9PSAxICkgew0KCQkJCXNldHRpbmdzLmltYWdlQXJyYXkucHVzaChuZXcgQXJyYXkob2JqQ2xpY2tlZC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSxvYmpDbGlja2VkLmdldEF0dHJpYnV0ZSgndGl0bGUnKSkpOw0KCQkJfSBlbHNlIHsNCgkJCQkvLyBBZGQgYW4gQXJyYXkgKGFzIG1hbnkgYXMgd2UgaGF2ZSksIHdpdGggaHJlZiBhbmQgdGl0bGUgYXRyaWJ1dGVzLCBpbnNpZGUgdGhlIEFycmF5IHRoYXQgc3RvcmFnZSB0aGUgaW1hZ2VzIHJlZmVyZW5jZXMJCQ0KCQkJCWZvciAoIHZhciBpID0gMDsgaSA8IGpRdWVyeU1hdGNoZWRPYmoubGVuZ3RoOyBpKysgKSB7DQoJCQkJCXNldHRpbmdzLmltYWdlQXJyYXkucHVzaChuZXcgQXJyYXkoalF1ZXJ5TWF0Y2hlZE9ialtpXS5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSxqUXVlcnlNYXRjaGVkT2JqW2ldLmdldEF0dHJpYnV0ZSgndGl0bGUnKSkpOw0KCQkJCX0NCgkJCX0NCgkJCXdoaWxlICggc2V0dGluZ3MuaW1hZ2VBcnJheVtzZXR0aW5ncy5hY3RpdmVJbWFnZV1bMF0gIT0gb2JqQ2xpY2tlZC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSApIHsNCgkJCQlzZXR0aW5ncy5hY3RpdmVJbWFnZSsrOw0KCQkJfQ0KCQkJLy8gQ2FsbCB0aGUgZnVuY3Rpb24gdGhhdCBwcmVwYXJlcyBpbWFnZSBleGliaXRpb24NCgkJCV9zZXRfaW1hZ2VfdG9fdmlldygpOw0KCQl9DQoJCS8qKg0KCQkgKiBDcmVhdGUgdGhlIGpRdWVyeSBsaWdodEJveCBwbHVnaW4gaW50ZXJmYWNlDQoJCSAqDQoJCSAqIFRoZSBIVE1MIG1hcmt1cCB3aWxsIGJlIGxpa2UgdGhhdDoNCgkJCTxkaXYgaWQ9ImpxdWVyeS1vdmVybGF5Ij48L2Rpdj4NCgkJCTxkaXYgaWQ9ImpxdWVyeS1saWdodGJveCI+DQoJCQkJPGRpdiBpZD0ibGlnaHRib3gtY29udGFpbmVyLWltYWdlLWJveCI+DQoJCQkJCTxkaXYgaWQ9ImxpZ2h0Ym94LWNvbnRhaW5lci1pbWFnZSI+DQoJCQkJCQk8aW1nIHNyYz0iLi4vZm90b3MvWFguanBnIiBpZD0ibGlnaHRib3gtaW1hZ2UiPg0KCQkJCQkJPGRpdiBpZD0ibGlnaHRib3gtbmF2Ij4NCgkJCQkJCQk8YSBocmVmPSIjIiBpZD0ibGlnaHRib3gtbmF2LWJ0blByZXYiPjwvYT4NCgkJCQkJCQk8YSBocmVmPSIjIiBpZD0ibGlnaHRib3gtbmF2LWJ0bk5leHQiPjwvYT4NCgkJCQkJCTwvZGl2Pg0KCQkJCQkJPGRpdiBpZD0ibGlnaHRib3gtbG9hZGluZyI+DQoJCQkJCQkJPGEgaHJlZj0iIyIgaWQ9ImxpZ2h0Ym94LWxvYWRpbmctbGluayI+DQoJCQkJCQkJCTxpbWcgc3JjPSIuLi9pbWFnZXMvbGlnaHRib3gtaWNvLWxvYWRpbmcuZ2lmIj4NCgkJCQkJCQk8L2E+DQoJCQkJCQk8L2Rpdj4NCgkJCQkJPC9kaXY+DQoJCQkJPC9kaXY+DQoJCQkJPGRpdiBpZD0ibGlnaHRib3gtY29udGFpbmVyLWltYWdlLWRhdGEtYm94Ij4NCgkJCQkJPGRpdiBpZD0ibGlnaHRib3gtY29udGFpbmVyLWltYWdlLWRhdGEiPg0KCQkJCQkJPGRpdiBpZD0ibGlnaHRib3gtaW1hZ2UtZGV0YWlscyI+DQoJCQkJCQkJPHNwYW4gaWQ9ImxpZ2h0Ym94LWltYWdlLWRldGFpbHMtY2FwdGlvbiI+PC9zcGFuPg0KCQkJCQkJCTxzcGFuIGlkPSJsaWdodGJveC1pbWFnZS1kZXRhaWxzLWN1cnJlbnROdW1iZXIiPjwvc3Bhbj4NCgkJCQkJCTwvZGl2Pg0KCQkJCQkJPGRpdiBpZD0ibGlnaHRib3gtc2VjTmF2Ij4NCgkJCQkJCQk8YSBocmVmPSIjIiBpZD0ibGlnaHRib3gtc2VjTmF2LWJ0bkNsb3NlIj4NCgkJCQkJCQkJPGltZyBzcmM9Ii4uL2ltYWdlcy9saWdodGJveC1idG4tY2xvc2UuZ2lmIj4NCgkJCQkJCQk8L2E+DQoJCQkJCQk8L2Rpdj4NCgkJCQkJPC9kaXY+DQoJCQkJPC9kaXY+DQoJCQk8L2Rpdj4NCgkJICoNCgkJICovDQoJCWZ1bmN0aW9uIF9zZXRfaW50ZXJmYWNlKCkgew0KCQkJLy8gQXBwbHkgdGhlIEhUTUwgbWFya3VwIGludG8gYm9keSB0YWcNCgkJCSQoJ2JvZHknKS5hcHBlbmQoJzxkaXYgaWQ9ImpxdWVyeS1vdmVybGF5Ij48L2Rpdj48ZGl2IGlkPSJqcXVlcnktbGlnaHRib3giPjxkaXYgaWQ9ImxpZ2h0Ym94LWNvbnRhaW5lci1pbWFnZS1ib3giPjxkaXYgaWQ9ImxpZ2h0Ym94LWNvbnRhaW5lci1pbWFnZSI+PGltZyBpZD0ibGlnaHRib3gtaW1hZ2UiPjxkaXYgc3R5bGU9IiIgaWQ9ImxpZ2h0Ym94LW5hdiI+PGEgaHJlZj0iIyIgaWQ9ImxpZ2h0Ym94LW5hdi1idG5QcmV2Ij48L2E+PGEgaHJlZj0iIyIgaWQ9ImxpZ2h0Ym94LW5hdi1idG5OZXh0Ij48L2E+PC9kaXY+PGRpdiBpZD0ibGlnaHRib3gtbG9hZGluZyI+PGEgaHJlZj0iIyIgaWQ9ImxpZ2h0Ym94LWxvYWRpbmctbGluayI+PGltZyBzcmM9IicgKyBzZXR0aW5ncy5pbWFnZUxvYWRpbmcgKyAnIj48L2E+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBpZD0ibGlnaHRib3gtY29udGFpbmVyLWltYWdlLWRhdGEtYm94Ij48ZGl2IGlkPSJsaWdodGJveC1jb250YWluZXItaW1hZ2UtZGF0YSI+PGRpdiBpZD0ibGlnaHRib3gtaW1hZ2UtZGV0YWlscyI+PHNwYW4gaWQ9ImxpZ2h0Ym94LWltYWdlLWRldGFpbHMtY2FwdGlvbiI+PC9zcGFuPjxzcGFuIGlkPSJsaWdodGJveC1pbWFnZS1kZXRhaWxzLWN1cnJlbnROdW1iZXIiPjwvc3Bhbj48L2Rpdj48ZGl2IGlkPSJsaWdodGJveC1zZWNOYXYiPjxhIGhyZWY9IiMiIGlkPSJsaWdodGJveC1zZWNOYXYtYnRuQ2xvc2UiPjxpbWcgc3JjPSInICsgc2V0dGluZ3MuaW1hZ2VCdG5DbG9zZSArICciPjwvYT48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4nKTsJDQoJCQkvLyBHZXQgcGFnZSBzaXplcw0KCQkJdmFyIGFyclBhZ2VTaXplcyA9IF9fX2dldFBhZ2VTaXplKCk7DQoJCQkvLyBTdHlsZSBvdmVybGF5IGFuZCBzaG93IGl0DQoJCQkkKCcjanF1ZXJ5LW92ZXJsYXknKS5jc3Moew0KCQkJCWJhY2tncm91bmRDb2xvcjoJc2V0dGluZ3Mub3ZlcmxheUJnQ29sb3IsDQoJCQkJb3BhY2l0eToJCQlzZXR0aW5ncy5vdmVybGF5T3BhY2l0eSwNCgkJCQl3aWR0aDoJCQkJYXJyUGFnZVNpemVzWzBdLA0KCQkJCWhlaWdodDoJCQkJYXJyUGFnZVNpemVzWzFdDQoJCQl9KS5mYWRlSW4oKTsNCgkJCS8vIEdldCBwYWdlIHNjcm9sbA0KCQkJdmFyIGFyclBhZ2VTY3JvbGwgPSBfX19nZXRQYWdlU2Nyb2xsKCk7DQoJCQkvLyBDYWxjdWxhdGUgdG9wIGFuZCBsZWZ0IG9mZnNldCBmb3IgdGhlIGpxdWVyeS1saWdodGJveCBkaXYgb2JqZWN0IGFuZCBzaG93IGl0DQoJCQkkKCcjanF1ZXJ5LWxpZ2h0Ym94JykuY3NzKHsNCgkJCQl0b3A6CWFyclBhZ2VTY3JvbGxbMV0gKyAoYXJyUGFnZVNpemVzWzNdIC8gMTApLA0KCQkJCWxlZnQ6CWFyclBhZ2VTY3JvbGxbMF0NCgkJCX0pLnNob3coKTsNCgkJCS8vIEFzc2lnbmluZyBjbGljayBldmVudHMgaW4gZWxlbWVudHMgdG8gY2xvc2Ugb3ZlcmxheQ0KCQkJJCgnI2pxdWVyeS1vdmVybGF5LCNqcXVlcnktbGlnaHRib3gnKS5jbGljayhmdW5jdGlvbigpIHsNCgkJCQlfZmluaXNoKCk7CQkJCQkJCQkJDQoJCQl9KTsNCgkJCS8vIEFzc2lnbiB0aGUgX2ZpbmlzaCBmdW5jdGlvbiB0byBsaWdodGJveC1sb2FkaW5nLWxpbmsgYW5kIGxpZ2h0Ym94LXNlY05hdi1idG5DbG9zZSBvYmplY3RzDQoJCQkkKCcjbGlnaHRib3gtbG9hZGluZy1saW5rLCNsaWdodGJveC1zZWNOYXYtYnRuQ2xvc2UnKS5jbGljayhmdW5jdGlvbigpIHsNCgkJCQlfZmluaXNoKCk7DQoJCQkJcmV0dXJuIGZhbHNlOw0KCQkJfSk7DQoJCQkvLyBJZiB3aW5kb3cgd2FzIHJlc2l6ZWQsIGNhbGN1bGF0ZSB0aGUgbmV3IG92ZXJsYXkgZGltZW5zaW9ucw0KCQkJJCh3aW5kb3cpLnJlc2l6ZShmdW5jdGlvbigpIHsNCgkJCQkvLyBHZXQgcGFnZSBzaXplcw0KCQkJCXZhciBhcnJQYWdlU2l6ZXMgPSBfX19nZXRQYWdlU2l6ZSgpOw0KCQkJCS8vIFN0eWxlIG92ZXJsYXkgYW5kIHNob3cgaXQNCgkJCQkkKCcjanF1ZXJ5LW92ZXJsYXknKS5jc3Moew0KCQkJCQl3aWR0aDoJCWFyclBhZ2VTaXplc1swXSwNCgkJCQkJaGVpZ2h0OgkJYXJyUGFnZVNpemVzWzFdDQoJCQkJfSk7DQoJCQkJLy8gR2V0IHBhZ2Ugc2Nyb2xsDQoJCQkJdmFyIGFyclBhZ2VTY3JvbGwgPSBfX19nZXRQYWdlU2Nyb2xsKCk7DQoJCQkJLy8gQ2FsY3VsYXRlIHRvcCBhbmQgbGVmdCBvZmZzZXQgZm9yIHRoZSBqcXVlcnktbGlnaHRib3ggZGl2IG9iamVjdCBhbmQgc2hvdyBpdA0KCQkJCSQoJyNqcXVlcnktbGlnaHRib3gnKS5jc3Moew0KCQkJCQl0b3A6CWFyclBhZ2VTY3JvbGxbMV0gKyAoYXJyUGFnZVNpemVzWzNdIC8gMTApLA0KCQkJCQlsZWZ0OglhcnJQYWdlU2Nyb2xsWzBdDQoJCQkJfSk7DQoJCQl9KTsNCgkJfQ0KCQkvKioNCgkJICogUHJlcGFyZXMgaW1hZ2UgZXhpYml0aW9uOyBkb2luZyBhIGltYWdltHMgcHJlbG9hZGVyIHRvIGNhbGN1bGF0ZSBpdLRzIHNpemUNCgkJICoNCgkJICovDQoJCWZ1bmN0aW9uIF9zZXRfaW1hZ2VfdG9fdmlldygpIHsgLy8gc2hvdyB0aGUgbG9hZGluZw0KCQkJLy8gU2hvdyB0aGUgbG9hZGluZw0KCQkJJCgnI2xpZ2h0Ym94LWxvYWRpbmcnKS5zaG93KCk7DQoJCQlpZiAoIHNldHRpbmdzLmZpeGVkTmF2aWdhdGlvbiApIHsNCgkJCQkkKCcjbGlnaHRib3gtaW1hZ2UsI2xpZ2h0Ym94LWNvbnRhaW5lci1pbWFnZS1kYXRhLWJveCwjbGlnaHRib3gtaW1hZ2UtZGV0YWlscy1jdXJyZW50TnVtYmVyJykuaGlkZSgpOw0KCQkJfSBlbHNlIHsNCgkJCQkvLyBIaWRlIHNvbWUgZWxlbWVudHMNCgkJCQkkKCcjbGlnaHRib3gtaW1hZ2UsI2xpZ2h0Ym94LW5hdiwjbGlnaHRib3gtbmF2LWJ0blByZXYsI2xpZ2h0Ym94LW5hdi1idG5OZXh0LCNsaWdodGJveC1jb250YWluZXItaW1hZ2UtZGF0YS1ib3gsI2xpZ2h0Ym94LWltYWdlLWRldGFpbHMtY3VycmVudE51bWJlcicpLmhpZGUoKTsNCgkJCX0NCgkJCS8vIEltYWdlIHByZWxvYWQgcHJvY2Vzcw0KCQkJdmFyIG9iakltYWdlUHJlbG9hZGVyID0gbmV3IEltYWdlKCk7DQoJCQlvYmpJbWFnZVByZWxvYWRlci5vbmxvYWQgPSBmdW5jdGlvbigpIHsNCgkJCQkkKCcjbGlnaHRib3gtaW1hZ2UnKS5hdHRyKCdzcmMnLHNldHRpbmdzLmltYWdlQXJyYXlbc2V0dGluZ3MuYWN0aXZlSW1hZ2VdWzBdKTsNCgkJCQkvLyBQZXJmb21hbmNlIGFuIGVmZmVjdCBpbiB0aGUgaW1hZ2UgY29udGFpbmVyIHJlc2l6aW5nIGl0DQoJCQkJX3Jlc2l6ZV9jb250YWluZXJfaW1hZ2VfYm94KG9iakltYWdlUHJlbG9hZGVyLndpZHRoLG9iakltYWdlUHJlbG9hZGVyLmhlaWdodCk7DQoJCQkJLy8JY2xlYXIgb25Mb2FkLCBJRSBiZWhhdmVzIGlycmF0aWNhbGx5IHdpdGggYW5pbWF0ZWQgZ2lmcyBvdGhlcndpc2UNCgkJCQlvYmpJbWFnZVByZWxvYWRlci5vbmxvYWQ9ZnVuY3Rpb24oKXt9Ow0KCQkJfTsNCgkJCW9iakltYWdlUHJlbG9hZGVyLnNyYyA9IHNldHRpbmdzLmltYWdlQXJyYXlbc2V0dGluZ3MuYWN0aXZlSW1hZ2VdWzBdOw0KCQl9Ow0KCQkvKioNCgkJICogUGVyZm9tYW5jZSBhbiBlZmZlY3QgaW4gdGhlIGltYWdlIGNvbnRhaW5lciByZXNpemluZyBpdA0KCQkgKg0KCQkgKiBAcGFyYW0gaW50ZWdlciBpbnRJbWFnZVdpZHRoIFRoZSBpbWFnZbRzIHdpZHRoIHRoYXQgd2lsbCBiZSBzaG93ZWQNCgkJICogQHBhcmFtIGludGVnZXIgaW50SW1hZ2VIZWlnaHQgVGhlIGltYWdltHMgaGVpZ2h0IHRoYXQgd2lsbCBiZSBzaG93ZWQNCgkJICovDQoJCWZ1bmN0aW9uIF9yZXNpemVfY29udGFpbmVyX2ltYWdlX2JveChpbnRJbWFnZVdpZHRoLGludEltYWdlSGVpZ2h0KSB7DQoJCQkvLyBHZXQgY3VycmVudCB3aWR0aCBhbmQgaGVpZ2h0DQoJCQl2YXIgaW50Q3VycmVudFdpZHRoID0gJCgnI2xpZ2h0Ym94LWNvbnRhaW5lci1pbWFnZS1ib3gnKS53aWR0aCgpOw0KCQkJdmFyIGludEN1cnJlbnRIZWlnaHQgPSAkKCcjbGlnaHRib3gtY29udGFpbmVyLWltYWdlLWJveCcpLmhlaWdodCgpOw0KCQkJLy8gR2V0IHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBzZWxlY3RlZCBpbWFnZSBwbHVzIHRoZSBwYWRkaW5nDQoJCQl2YXIgaW50V2lkdGggPSAoaW50SW1hZ2VXaWR0aCArIChzZXR0aW5ncy5jb250YWluZXJCb3JkZXJTaXplICogMikpOyAvLyBQbHVzIHRoZSBpbWFnZbRzIHdpZHRoIGFuZCB0aGUgbGVmdCBhbmQgcmlnaHQgcGFkZGluZyB2YWx1ZQ0KCQkJdmFyIGludEhlaWdodCA9IChpbnRJbWFnZUhlaWdodCArIChzZXR0aW5ncy5jb250YWluZXJCb3JkZXJTaXplICogMikpOyAvLyBQbHVzIHRoZSBpbWFnZbRzIGhlaWdodCBhbmQgdGhlIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgdmFsdWUNCgkJCS8vIERpZmVyZW5jZXMNCgkJCXZhciBpbnREaWZmVyA9IGludEN1cnJlbnRXaWR0aCAtIGludFdpZHRoOw0KCQkJdmFyIGludERpZmZIID0gaW50Q3VycmVudEhlaWdodCAtIGludEhlaWdodDsNCgkJCS8vIFBlcmZvbWFuY2UgdGhlIGVmZmVjdA0KCQkJJCgnI2xpZ2h0Ym94LWNvbnRhaW5lci1pbWFnZS1ib3gnKS5hbmltYXRlKHsgd2lkdGg6IGludFdpZHRoLCBoZWlnaHQ6IGludEhlaWdodCB9LHNldHRpbmdzLmNvbnRhaW5lclJlc2l6ZVNwZWVkLGZ1bmN0aW9uKCkgeyBfc2hvd19pbWFnZSgpOyB9KTsNCgkJCWlmICggKCBpbnREaWZmVyA9PSAwICkgJiYgKCBpbnREaWZmSCA9PSAwICkgKSB7DQoJCQkJaWYgKCAkLmJyb3dzZXIubXNpZSApIHsNCgkJCQkJX19fcGF1c2UoMjUwKTsNCgkJCQl9IGVsc2Ugew0KCQkJCQlfX19wYXVzZSgxMDApOwkNCgkJCQl9DQoJCQl9IA0KCQkJJCgnI2xpZ2h0Ym94LWNvbnRhaW5lci1pbWFnZS1kYXRhLWJveCcpLmNzcyh7IHdpZHRoOiBpbnRJbWFnZVdpZHRoIH0pOw0KCQkJJCgnI2xpZ2h0Ym94LW5hdi1idG5QcmV2LCNsaWdodGJveC1uYXYtYnRuTmV4dCcpLmNzcyh7IGhlaWdodDogaW50SW1hZ2VIZWlnaHQgKyAoc2V0dGluZ3MuY29udGFpbmVyQm9yZGVyU2l6ZSAqIDIpIH0pOw0KCQl9Ow0KCQkvKioNCgkJICogU2hvdyB0aGUgcHJlcGFyZWQgaW1hZ2UNCgkJICoNCgkJICovDQoJCWZ1bmN0aW9uIF9zaG93X2ltYWdlKCkgew0KCQkJJCgnI2xpZ2h0Ym94LWxvYWRpbmcnKS5oaWRlKCk7DQoJCQkkKCcjbGlnaHRib3gtaW1hZ2UnKS5mYWRlSW4oZnVuY3Rpb24oKSB7DQoJCQkJX3Nob3dfaW1hZ2VfZGF0YSgpOw0KCQkJCV9zZXRfbmF2aWdhdGlvbigpOw0KCQkJfSk7DQoJCQlfcHJlbG9hZF9uZWlnaGJvcl9pbWFnZXMoKTsNCgkJfTsNCgkJLyoqDQoJCSAqIFNob3cgdGhlIGltYWdlIGluZm9ybWF0aW9uDQoJCSAqDQoJCSAqLw0KCQlmdW5jdGlvbiBfc2hvd19pbWFnZV9kYXRhKCkgew0KCQkJJCgnI2xpZ2h0Ym94LWNvbnRhaW5lci1pbWFnZS1kYXRhLWJveCcpLnNsaWRlRG93bignZmFzdCcpOw0KCQkJJCgnI2xpZ2h0Ym94LWltYWdlLWRldGFpbHMtY2FwdGlvbicpLmhpZGUoKTsNCgkJCWlmICggc2V0dGluZ3MuaW1hZ2VBcnJheVtzZXR0aW5ncy5hY3RpdmVJbWFnZV1bMV0gKSB7DQoJCQkJJCgnI2xpZ2h0Ym94LWltYWdlLWRldGFpbHMtY2FwdGlvbicpLmh0bWwoc2V0dGluZ3MuaW1hZ2VBcnJheVtzZXR0aW5ncy5hY3RpdmVJbWFnZV1bMV0pLnNob3coKTsNCgkJCX0NCgkJCS8vIElmIHdlIGhhdmUgYSBpbWFnZSBzZXQsIGRpc3BsYXkgJ0ltYWdlIFggb2YgWCcNCgkJCWlmICggc2V0dGluZ3MuaW1hZ2VBcnJheS5sZW5ndGggPiAxICkgew0KCQkJCSQoJyNsaWdodGJveC1pbWFnZS1kZXRhaWxzLWN1cnJlbnROdW1iZXInKS5odG1sKHNldHRpbmdzLnR4dEltYWdlICsgJyAnICsgKCBzZXR0aW5ncy5hY3RpdmVJbWFnZSArIDEgKSArICcgJyArIHNldHRpbmdzLnR4dE9mICsgJyAnICsgc2V0dGluZ3MuaW1hZ2VBcnJheS5sZW5ndGgpLnNob3coKTsNCgkJCX0JCQ0KCQl9DQoJCS8qKg0KCQkgKiBEaXNwbGF5IHRoZSBidXR0b24gbmF2aWdhdGlvbnMNCgkJICoNCgkJICovDQoJCWZ1bmN0aW9uIF9zZXRfbmF2aWdhdGlvbigpIHsNCgkJCSQoJyNsaWdodGJveC1uYXYnKS5zaG93KCk7DQoNCgkJCS8vIEluc3RlYWQgdG8gZGVmaW5lIHRoaXMgY29uZmlndXJhdGlvbiBpbiBDU1MgZmlsZSwgd2UgZGVmaW5lIGhlcmUuIEFuZCBpdLRzIG5lZWQgdG8gSUUuIEp1c3QuDQoJCQkkKCcjbGlnaHRib3gtbmF2LWJ0blByZXYsI2xpZ2h0Ym94LW5hdi1idG5OZXh0JykuY3NzKHsgJ2JhY2tncm91bmQnIDogJ3RyYW5zcGFyZW50IHVybCgnICsgc2V0dGluZ3MuaW1hZ2VCbGFuayArICcpIG5vLXJlcGVhdCcgfSk7DQoJCQkNCgkJCS8vIFNob3cgdGhlIHByZXYgYnV0dG9uLCBpZiBub3QgdGhlIGZpcnN0IGltYWdlIGluIHNldA0KCQkJaWYgKCBzZXR0aW5ncy5hY3RpdmVJbWFnZSAhPSAwICkgew0KCQkJCWlmICggc2V0dGluZ3MuZml4ZWROYXZpZ2F0aW9uICkgew0KCQkJCQkkKCcjbGlnaHRib3gtbmF2LWJ0blByZXYnKS5jc3MoeyAnYmFja2dyb3VuZCcgOiAndXJsKCcgKyBzZXR0aW5ncy5pbWFnZUJ0blByZXYgKyAnKSBsZWZ0IDE1JSBuby1yZXBlYXQnIH0pDQoJCQkJCQkudW5iaW5kKCkNCgkJCQkJCS5iaW5kKCdjbGljaycsZnVuY3Rpb24oKSB7DQoJCQkJCQkJc2V0dGluZ3MuYWN0aXZlSW1hZ2UgPSBzZXR0aW5ncy5hY3RpdmVJbWFnZSAtIDE7DQoJCQkJCQkJX3NldF9pbWFnZV90b192aWV3KCk7DQoJCQkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCQkJfSk7DQoJCQkJfSBlbHNlIHsNCgkJCQkJLy8gU2hvdyB0aGUgaW1hZ2VzIGJ1dHRvbiBmb3IgTmV4dCBidXR0b25zDQoJCQkJCSQoJyNsaWdodGJveC1uYXYtYnRuUHJldicpLnVuYmluZCgpLmhvdmVyKGZ1bmN0aW9uKCkgew0KCQkJCQkJJCh0aGlzKS5jc3MoeyAnYmFja2dyb3VuZCcgOiAndXJsKCcgKyBzZXR0aW5ncy5pbWFnZUJ0blByZXYgKyAnKSBsZWZ0IDE1JSBuby1yZXBlYXQnIH0pOw0KCQkJCQl9LGZ1bmN0aW9uKCkgew0KCQkJCQkJJCh0aGlzKS5jc3MoeyAnYmFja2dyb3VuZCcgOiAndHJhbnNwYXJlbnQgdXJsKCcgKyBzZXR0aW5ncy5pbWFnZUJsYW5rICsgJykgbm8tcmVwZWF0JyB9KTsNCgkJCQkJfSkuc2hvdygpLmJpbmQoJ2NsaWNrJyxmdW5jdGlvbigpIHsNCgkJCQkJCXNldHRpbmdzLmFjdGl2ZUltYWdlID0gc2V0dGluZ3MuYWN0aXZlSW1hZ2UgLSAxOw0KCQkJCQkJX3NldF9pbWFnZV90b192aWV3KCk7DQoJCQkJCQlyZXR1cm4gZmFsc2U7DQoJCQkJCX0pOw0KCQkJCX0NCgkJCX0NCgkJCQ0KCQkJLy8gU2hvdyB0aGUgbmV4dCBidXR0b24sIGlmIG5vdCB0aGUgbGFzdCBpbWFnZSBpbiBzZXQNCgkJCWlmICggc2V0dGluZ3MuYWN0aXZlSW1hZ2UgIT0gKCBzZXR0aW5ncy5pbWFnZUFycmF5Lmxlbmd0aCAtMSApICkgew0KCQkJCWlmICggc2V0dGluZ3MuZml4ZWROYXZpZ2F0aW9uICkgew0KCQkJCQkkKCcjbGlnaHRib3gtbmF2LWJ0bk5leHQnKS5jc3MoeyAnYmFja2dyb3VuZCcgOiAndXJsKCcgKyBzZXR0aW5ncy5pbWFnZUJ0bk5leHQgKyAnKSByaWdodCAxNSUgbm8tcmVwZWF0JyB9KQ0KCQkJCQkJLnVuYmluZCgpDQoJCQkJCQkuYmluZCgnY2xpY2snLGZ1bmN0aW9uKCkgew0KCQkJCQkJCXNldHRpbmdzLmFjdGl2ZUltYWdlID0gc2V0dGluZ3MuYWN0aXZlSW1hZ2UgKyAxOw0KCQkJCQkJCV9zZXRfaW1hZ2VfdG9fdmlldygpOw0KCQkJCQkJCXJldHVybiBmYWxzZTsNCgkJCQkJCX0pOw0KCQkJCX0gZWxzZSB7DQoJCQkJCS8vIFNob3cgdGhlIGltYWdlcyBidXR0b24gZm9yIE5leHQgYnV0dG9ucw0KCQkJCQkkKCcjbGlnaHRib3gtbmF2LWJ0bk5leHQnKS51bmJpbmQoKS5ob3ZlcihmdW5jdGlvbigpIHsNCgkJCQkJCSQodGhpcykuY3NzKHsgJ2JhY2tncm91bmQnIDogJ3VybCgnICsgc2V0dGluZ3MuaW1hZ2VCdG5OZXh0ICsgJykgcmlnaHQgMTUlIG5vLXJlcGVhdCcgfSk7DQoJCQkJCX0sZnVuY3Rpb24oKSB7DQoJCQkJCQkkKHRoaXMpLmNzcyh7ICdiYWNrZ3JvdW5kJyA6ICd0cmFuc3BhcmVudCB1cmwoJyArIHNldHRpbmdzLmltYWdlQmxhbmsgKyAnKSBuby1yZXBlYXQnIH0pOw0KCQkJCQl9KS5zaG93KCkuYmluZCgnY2xpY2snLGZ1bmN0aW9uKCkgew0KCQkJCQkJc2V0dGluZ3MuYWN0aXZlSW1hZ2UgPSBzZXR0aW5ncy5hY3RpdmVJbWFnZSArIDE7DQoJCQkJCQlfc2V0X2ltYWdlX3RvX3ZpZXcoKTsNCgkJCQkJCXJldHVybiBmYWxzZTsNCgkJCQkJfSk7DQoJCQkJfQ0KCQkJfQ0KCQkJLy8gRW5hYmxlIGtleWJvYXJkIG5hdmlnYXRpb24NCgkJCV9lbmFibGVfa2V5Ym9hcmRfbmF2aWdhdGlvbigpOw0KCQl9DQoJCS8qKg0KCQkgKiBFbmFibGUgYSBzdXBwb3J0IHRvIGtleWJvYXJkIG5hdmlnYXRpb24NCgkJICoNCgkJICovDQoJCWZ1bmN0aW9uIF9lbmFibGVfa2V5Ym9hcmRfbmF2aWdhdGlvbigpIHsNCgkJCSQoZG9jdW1lbnQpLmtleWRvd24oZnVuY3Rpb24ob2JqRXZlbnQpIHsNCgkJCQlfa2V5Ym9hcmRfYWN0aW9uKG9iakV2ZW50KTsNCgkJCX0pOw0KCQl9DQoJCS8qKg0KCQkgKiBEaXNhYmxlIHRoZSBzdXBwb3J0IHRvIGtleWJvYXJkIG5hdmlnYXRpb24NCgkJICoNCgkJICovDQoJCWZ1bmN0aW9uIF9kaXNhYmxlX2tleWJvYXJkX25hdmlnYXRpb24oKSB7DQoJCQkkKGRvY3VtZW50KS51bmJpbmQoKTsNCgkJfQ0KCQkvKioNCgkJICogUGVyZm9ybSB0aGUga2V5Ym9hcmQgYWN0aW9ucw0KCQkgKg0KCQkgKi8NCgkJZnVuY3Rpb24gX2tleWJvYXJkX2FjdGlvbihvYmpFdmVudCkgew0KCQkJLy8gVG8gaWUNCgkJCWlmICggb2JqRXZlbnQgPT0gbnVsbCApIHsNCgkJCQlrZXljb2RlID0gZXZlbnQua2V5Q29kZTsNCgkJCQllc2NhcGVLZXkgPSAyNzsNCgkJCS8vIFRvIE1vemlsbGENCgkJCX0gZWxzZSB7DQoJCQkJa2V5Y29kZSA9IG9iakV2ZW50LmtleUNvZGU7DQoJCQkJZXNjYXBlS2V5ID0gb2JqRXZlbnQuRE9NX1ZLX0VTQ0FQRTsNCgkJCX0NCgkJCS8vIEdldCB0aGUga2V5IGluIGxvd2VyIGNhc2UgZm9ybQ0KCQkJa2V5ID0gU3RyaW5nLmZyb21DaGFyQ29kZShrZXljb2RlKS50b0xvd2VyQ2FzZSgpOw0KCQkJLy8gVmVyaWZ5IHRoZSBrZXlzIHRvIGNsb3NlIHRoZSBsaWd0aEJveA0KCQkJaWYgKCAoIGtleSA9PSBzZXR0aW5ncy5rZXlUb0Nsb3NlICkgfHwgKCBrZXkgPT0gJ3gnICkgfHwgKCBrZXljb2RlID09IGVzY2FwZUtleSApICkgew0KCQkJCV9maW5pc2goKTsNCgkJCX0NCgkJCS8vIFZlcmlmeSB0aGUga2V5IHRvIHNob3cgdGhlIHByZXZpb3VzIGltYWdlDQoJCQlpZiAoICgga2V5ID09IHNldHRpbmdzLmtleVRvUHJldiApIHx8ICgga2V5Y29kZSA9PSAzNyApICkgew0KCQkJCS8vIElmIHdltHJlIG5vdCBzaG93aW5nIHRoZSBmaXJzdCBpbWFnZSwgY2FsbCB0aGUgcHJldmlvdXMNCgkJCQlpZiAoIHNldHRpbmdzLmFjdGl2ZUltYWdlICE9IDAgKSB7DQoJCQkJCXNldHRpbmdzLmFjdGl2ZUltYWdlID0gc2V0dGluZ3MuYWN0aXZlSW1hZ2UgLSAxOw0KCQkJCQlfc2V0X2ltYWdlX3RvX3ZpZXcoKTsNCgkJCQkJX2Rpc2FibGVfa2V5Ym9hcmRfbmF2aWdhdGlvbigpOw0KCQkJCX0NCgkJCX0NCgkJCS8vIFZlcmlmeSB0aGUga2V5IHRvIHNob3cgdGhlIG5leHQgaW1hZ2UNCgkJCWlmICggKCBrZXkgPT0gc2V0dGluZ3Mua2V5VG9OZXh0ICkgfHwgKCBrZXljb2RlID09IDM5ICkgKSB7DQoJCQkJLy8gSWYgd2W0cmUgbm90IHNob3dpbmcgdGhlIGxhc3QgaW1hZ2UsIGNhbGwgdGhlIG5leHQNCgkJCQlpZiAoIHNldHRpbmdzLmFjdGl2ZUltYWdlICE9ICggc2V0dGluZ3MuaW1hZ2VBcnJheS5sZW5ndGggLSAxICkgKSB7DQoJCQkJCXNldHRpbmdzLmFjdGl2ZUltYWdlID0gc2V0dGluZ3MuYWN0aXZlSW1hZ2UgKyAxOw0KCQkJCQlfc2V0X2ltYWdlX3RvX3ZpZXcoKTsNCgkJCQkJX2Rpc2FibGVfa2V5Ym9hcmRfbmF2aWdhdGlvbigpOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCQkvKioNCgkJICogUHJlbG9hZCBwcmV2IGFuZCBuZXh0IGltYWdlcyBiZWluZyBzaG93ZWQNCgkJICoNCgkJICovDQoJCWZ1bmN0aW9uIF9wcmVsb2FkX25laWdoYm9yX2ltYWdlcygpIHsNCgkJCWlmICggKHNldHRpbmdzLmltYWdlQXJyYXkubGVuZ3RoIC0xKSA+IHNldHRpbmdzLmFjdGl2ZUltYWdlICkgew0KCQkJCW9iak5leHQgPSBuZXcgSW1hZ2UoKTsNCgkJCQlvYmpOZXh0LnNyYyA9IHNldHRpbmdzLmltYWdlQXJyYXlbc2V0dGluZ3MuYWN0aXZlSW1hZ2UgKyAxXVswXTsNCgkJCX0NCgkJCWlmICggc2V0dGluZ3MuYWN0aXZlSW1hZ2UgPiAwICkgew0KCQkJCW9ialByZXYgPSBuZXcgSW1hZ2UoKTsNCgkJCQlvYmpQcmV2LnNyYyA9IHNldHRpbmdzLmltYWdlQXJyYXlbc2V0dGluZ3MuYWN0aXZlSW1hZ2UgLTFdWzBdOw0KCQkJfQ0KCQl9DQoJCS8qKg0KCQkgKiBSZW1vdmUgalF1ZXJ5IGxpZ2h0Qm94IHBsdWdpbiBIVE1MIG1hcmt1cA0KCQkgKg0KCQkgKi8NCgkJZnVuY3Rpb24gX2ZpbmlzaCgpIHsNCgkJCSQoJyNqcXVlcnktbGlnaHRib3gnKS5yZW1vdmUoKTsNCgkJCSQoJyNqcXVlcnktb3ZlcmxheScpLmZhZGVPdXQoZnVuY3Rpb24oKSB7ICQoJyNqcXVlcnktb3ZlcmxheScpLnJlbW92ZSgpOyB9KTsNCgkJCS8vIFNob3cgc29tZSBlbGVtZW50cyB0byBhdm9pZCBjb25mbGljdCB3aXRoIG92ZXJsYXkgaW4gSUUuIFRoZXNlIGVsZW1lbnRzIGFwcGVhciBhYm92ZSB0aGUgb3ZlcmxheS4NCgkJCSQoJ2VtYmVkLCBvYmplY3QsIHNlbGVjdCcpLmNzcyh7ICd2aXNpYmlsaXR5JyA6ICd2aXNpYmxlJyB9KTsNCgkJfQ0KCQkvKioNCgkJIC8gVEhJUkQgRlVOQ1RJT04NCgkJICogZ2V0UGFnZVNpemUoKSBieSBxdWlya3Ntb2RlLmNvbQ0KCQkgKg0KCQkgKiBAcmV0dXJuIEFycmF5IFJldHVybiBhbiBhcnJheSB3aXRoIHBhZ2Ugd2lkdGgsIGhlaWdodCBhbmQgd2luZG93IHdpZHRoLCBoZWlnaHQNCgkJICovDQoJCWZ1bmN0aW9uIF9fX2dldFBhZ2VTaXplKCkgew0KCQkJdmFyIHhTY3JvbGwsIHlTY3JvbGw7DQoJCQlpZiAod2luZG93LmlubmVySGVpZ2h0ICYmIHdpbmRvdy5zY3JvbGxNYXhZKSB7CQ0KCQkJCXhTY3JvbGwgPSB3aW5kb3cuaW5uZXJXaWR0aCArIHdpbmRvdy5zY3JvbGxNYXhYOw0KCQkJCXlTY3JvbGwgPSB3aW5kb3cuaW5uZXJIZWlnaHQgKyB3aW5kb3cuc2Nyb2xsTWF4WTsNCgkJCX0gZWxzZSBpZiAoZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQgPiBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodCl7IC8vIGFsbCBidXQgRXhwbG9yZXIgTWFjDQoJCQkJeFNjcm9sbCA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsV2lkdGg7DQoJCQkJeVNjcm9sbCA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0Ow0KCQkJfSBlbHNlIHsgLy8gRXhwbG9yZXIgTWFjLi4ud291bGQgYWxzbyB3b3JrIGluIEV4cGxvcmVyIDYgU3RyaWN0LCBNb3ppbGxhIGFuZCBTYWZhcmkNCgkJCQl4U2Nyb2xsID0gZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aDsNCgkJCQl5U2Nyb2xsID0gZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQ7DQoJCQl9DQoJCQl2YXIgd2luZG93V2lkdGgsIHdpbmRvd0hlaWdodDsNCgkJCWlmIChzZWxmLmlubmVySGVpZ2h0KSB7CS8vIGFsbCBleGNlcHQgRXhwbG9yZXINCgkJCQlpZihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpew0KCQkJCQl3aW5kb3dXaWR0aCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDsgDQoJCQkJfSBlbHNlIHsNCgkJCQkJd2luZG93V2lkdGggPSBzZWxmLmlubmVyV2lkdGg7DQoJCQkJfQ0KCQkJCXdpbmRvd0hlaWdodCA9IHNlbGYuaW5uZXJIZWlnaHQ7DQoJCQl9IGVsc2UgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSB7IC8vIEV4cGxvcmVyIDYgU3RyaWN0IE1vZGUNCgkJCQl3aW5kb3dXaWR0aCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDsNCgkJCQl3aW5kb3dIZWlnaHQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0Ow0KCQkJfSBlbHNlIGlmIChkb2N1bWVudC5ib2R5KSB7IC8vIG90aGVyIEV4cGxvcmVycw0KCQkJCXdpbmRvd1dpZHRoID0gZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDsNCgkJCQl3aW5kb3dIZWlnaHQgPSBkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodDsNCgkJCX0JDQoJCQkvLyBmb3Igc21hbGwgcGFnZXMgd2l0aCB0b3RhbCBoZWlnaHQgbGVzcyB0aGVuIGhlaWdodCBvZiB0aGUgdmlld3BvcnQNCgkJCWlmKHlTY3JvbGwgPCB3aW5kb3dIZWlnaHQpew0KCQkJCXBhZ2VIZWlnaHQgPSB3aW5kb3dIZWlnaHQ7DQoJCQl9IGVsc2UgeyANCgkJCQlwYWdlSGVpZ2h0ID0geVNjcm9sbDsNCgkJCX0NCgkJCS8vIGZvciBzbWFsbCBwYWdlcyB3aXRoIHRvdGFsIHdpZHRoIGxlc3MgdGhlbiB3aWR0aCBvZiB0aGUgdmlld3BvcnQNCgkJCWlmKHhTY3JvbGwgPCB3aW5kb3dXaWR0aCl7CQ0KCQkJCXBhZ2VXaWR0aCA9IHhTY3JvbGw7CQkNCgkJCX0gZWxzZSB7DQoJCQkJcGFnZVdpZHRoID0gd2luZG93V2lkdGg7DQoJCQl9DQoJCQlhcnJheVBhZ2VTaXplID0gbmV3IEFycmF5KHBhZ2VXaWR0aCxwYWdlSGVpZ2h0LHdpbmRvd1dpZHRoLHdpbmRvd0hlaWdodCk7DQoJCQlyZXR1cm4gYXJyYXlQYWdlU2l6ZTsNCgkJfTsNCgkJLyoqDQoJCSAvIFRISVJEIEZVTkNUSU9ODQoJCSAqIGdldFBhZ2VTY3JvbGwoKSBieSBxdWlya3Ntb2RlLmNvbQ0KCQkgKg0KCQkgKiBAcmV0dXJuIEFycmF5IFJldHVybiBhbiBhcnJheSB3aXRoIHgseSBwYWdlIHNjcm9sbCB2YWx1ZXMuDQoJCSAqLw0KCQlmdW5jdGlvbiBfX19nZXRQYWdlU2Nyb2xsKCkgew0KCQkJdmFyIHhTY3JvbGwsIHlTY3JvbGw7DQoJCQlpZiAoc2VsZi5wYWdlWU9mZnNldCkgew0KCQkJCXlTY3JvbGwgPSBzZWxmLnBhZ2VZT2Zmc2V0Ow0KCQkJCXhTY3JvbGwgPSBzZWxmLnBhZ2VYT2Zmc2V0Ow0KCQkJfSBlbHNlIGlmIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCkgewkgLy8gRXhwbG9yZXIgNiBTdHJpY3QNCgkJCQl5U2Nyb2xsID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDsNCgkJCQl4U2Nyb2xsID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQ7DQoJCQl9IGVsc2UgaWYgKGRvY3VtZW50LmJvZHkpIHsvLyBhbGwgb3RoZXIgRXhwbG9yZXJzDQoJCQkJeVNjcm9sbCA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOw0KCQkJCXhTY3JvbGwgPSBkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQ7CQ0KCQkJfQ0KCQkJYXJyYXlQYWdlU2Nyb2xsID0gbmV3IEFycmF5KHhTY3JvbGwseVNjcm9sbCk7DQoJCQlyZXR1cm4gYXJyYXlQYWdlU2Nyb2xsOw0KCQl9Ow0KCQkgLyoqDQoJCSAgKiBTdG9wIHRoZSBjb2RlIGV4ZWN1dGlvbiBmcm9tIGEgZXNjaWZpZWQgdGltZSBpbiBtaWxpc2Vjb25kDQoJCSAgKg0KCQkgICovDQoJCSBmdW5jdGlvbiBfX19wYXVzZShtcykgew0KCQkJdmFyIGRhdGUgPSBuZXcgRGF0ZSgpOyANCgkJCWN1ckRhdGUgPSBudWxsOw0KCQkJZG8geyB2YXIgY3VyRGF0ZSA9IG5ldyBEYXRlKCk7IH0NCgkJCXdoaWxlICggY3VyRGF0ZSAtIGRhdGUgPCBtcyk7DQoJCSB9Ow0KCQkvLyBSZXR1cm4gdGhlIGpRdWVyeSBvYmplY3QgZm9yIGNoYWluaW5nLiBUaGUgdW5iaW5kIG1ldGhvZCBpcyB1c2VkIHRvIGF2b2lkIGNsaWNrIGNvbmZsaWN0IHdoZW4gdGhlIHBsdWdpbiBpcyBjYWxsZWQgbW9yZSB0aGFuIG9uY2UNCgkJcmV0dXJuIHRoaXMudW5iaW5kKCdjbGljaycpLmNsaWNrKF9pbml0aWFsaXplKTsNCgl9Ow0KfSkoalF1ZXJ5KTsgLy8gQ2FsbCBhbmQgZXhlY3V0ZSB0aGUgZnVuY3Rpb24gaW1tZWRpYXRlbHkgcGFzc2luZyB0aGUgalF1ZXJ5IG9iamVjdA0K]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.metadata.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogTWV0YWRhdGEgLSBqUXVlcnkgcGx1Z2luIGZvciBwYXJzaW5nIG1ldGFkYXRhIGZyb20gZWxlbWVudHMKICoKICogQ29weXJpZ2h0IChjKSAyMDA2IEpvaG4gUmVzaWcsIFllaHVkYSBLYXR6LCBK77+9w7ZybiBaYWVmZmVyZXIsIFBhdWwgTWNMYW5haGFuCiAqCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzOgogKiAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCiAqICAgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sCiAqCiAqIFJldmlzaW9uOiAkSWQkCiAqCiAqLwoKLyoqCiAqIFNldHMgdGhlIHR5cGUgb2YgbWV0YWRhdGEgdG8gdXNlLiBNZXRhZGF0YSBpcyBlbmNvZGVkIGluIEpTT04sIGFuZCBlYWNoIHByb3BlcnR5CiAqIGluIHRoZSBKU09OIHdpbGwgYmVjb21lIGEgcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQgaXRzZWxmLgogKgogKiBUaGVyZSBhcmUgdGhyZWUgc3VwcG9ydGVkIHR5cGVzIG9mIG1ldGFkYXRhIHN0b3JhZ2U6CiAqCiAqICAgYXR0cjogIEluc2lkZSBhbiBhdHRyaWJ1dGUuIFRoZSBuYW1lIHBhcmFtZXRlciBpbmRpY2F0ZXMgKndoaWNoKiBhdHRyaWJ1dGUuCiAqICAgICAgICAgIAogKiAgIGNsYXNzOiBJbnNpZGUgdGhlIGNsYXNzIGF0dHJpYnV0ZSwgd3JhcHBlZCBpbiBjdXJseSBicmFjZXM6IHsgfQogKiAgIAogKiAgIGVsZW06ICBJbnNpZGUgYSBjaGlsZCBlbGVtZW50IChlLmcuIGEgc2NyaXB0IHRhZykuIFRoZQogKiAgICAgICAgICBuYW1lIHBhcmFtZXRlciBpbmRpY2F0ZXMgKndoaWNoKiBlbGVtZW50LgogKiAgICAgICAgICAKICogVGhlIG1ldGFkYXRhIGZvciBhbiBlbGVtZW50IGlzIGxvYWRlZCB0aGUgZmlyc3QgdGltZSB0aGUgZWxlbWVudCBpcyBhY2Nlc3NlZCB2aWEgalF1ZXJ5LgogKgogKiBBcyBhIHJlc3VsdCwgeW91IGNhbiBkZWZpbmUgdGhlIG1ldGFkYXRhIHR5cGUsIHVzZSAkKGV4cHIpIHRvIGxvYWQgdGhlIG1ldGFkYXRhIGludG8gdGhlIGVsZW1lbnRzCiAqIG1hdGNoZWQgYnkgZXhwciwgdGhlbiByZWRlZmluZSB0aGUgbWV0YWRhdGEgdHlwZSBhbmQgcnVuIGFub3RoZXIgJChleHByKSBmb3Igb3RoZXIgZWxlbWVudHMuCiAqIAogKiBAbmFtZSAkLm1ldGFkYXRhLnNldFR5cGUKICoKICogQGV4YW1wbGUgPHAgaWQ9Im9uZSIgY2xhc3M9InNvbWVfY2xhc3Mge2l0ZW1faWQ6IDEsIGl0ZW1fbGFiZWw6ICdMYWJlbCd9Ij5UaGlzIGlzIGEgcDwvcD4KICogQGJlZm9yZSAkLm1ldGFkYXRhLnNldFR5cGUoImNsYXNzIikKICogQGFmdGVyICQoIiNvbmUiKS5tZXRhZGF0YSgpLml0ZW1faWQgPT0gMTsgJCgiI29uZSIpLm1ldGFkYXRhKCkuaXRlbV9sYWJlbCA9PSAiTGFiZWwiCiAqIEBkZXNjIFJlYWRzIG1ldGFkYXRhIGZyb20gdGhlIGNsYXNzIGF0dHJpYnV0ZQogKiAKICogQGV4YW1wbGUgPHAgaWQ9Im9uZSIgY2xhc3M9InNvbWVfY2xhc3MiIGRhdGE9IntpdGVtX2lkOiAxLCBpdGVtX2xhYmVsOiAnTGFiZWwnfSI+VGhpcyBpcyBhIHA8L3A+CiAqIEBiZWZvcmUgJC5tZXRhZGF0YS5zZXRUeXBlKCJhdHRyIiwgImRhdGEiKQogKiBAYWZ0ZXIgJCgiI29uZSIpLm1ldGFkYXRhKCkuaXRlbV9pZCA9PSAxOyAkKCIjb25lIikubWV0YWRhdGEoKS5pdGVtX2xhYmVsID09ICJMYWJlbCIKICogQGRlc2MgUmVhZHMgbWV0YWRhdGEgZnJvbSBhICJkYXRhIiBhdHRyaWJ1dGUKICogCiAqIEBleGFtcGxlIDxwIGlkPSJvbmUiIGNsYXNzPSJzb21lX2NsYXNzIj48c2NyaXB0PntpdGVtX2lkOiAxLCBpdGVtX2xhYmVsOiAnTGFiZWwnfTwvc2NyaXB0PlRoaXMgaXMgYSBwPC9wPgogKiBAYmVmb3JlICQubWV0YWRhdGEuc2V0VHlwZSgiZWxlbSIsICJzY3JpcHQiKQogKiBAYWZ0ZXIgJCgiI29uZSIpLm1ldGFkYXRhKCkuaXRlbV9pZCA9PSAxOyAkKCIjb25lIikubWV0YWRhdGEoKS5pdGVtX2xhYmVsID09ICJMYWJlbCIKICogQGRlc2MgUmVhZHMgbWV0YWRhdGEgZnJvbSBhIG5lc3RlZCBzY3JpcHQgZWxlbWVudAogKiAKICogQHBhcmFtIFN0cmluZyB0eXBlIFRoZSBlbmNvZGluZyB0eXBlCiAqIEBwYXJhbSBTdHJpbmcgbmFtZSBUaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlIHRvIGJlIHVzZWQgdG8gZ2V0IG1ldGFkYXRhIChvcHRpb25hbCkKICogQGNhdCBQbHVnaW5zL01ldGFkYXRhCiAqIEBkZXNjciBTZXRzIHRoZSB0eXBlIG9mIGVuY29kaW5nIHRvIGJlIHVzZWQgd2hlbiBsb2FkaW5nIG1ldGFkYXRhIGZvciB0aGUgZmlyc3QgdGltZQogKiBAdHlwZSB1bmRlZmluZWQKICogQHNlZSBtZXRhZGF0YSgpCiAqLwoKKGZ1bmN0aW9uKCQpIHsKCiQuZXh0ZW5kKHsKCW1ldGFkYXRhIDogewoJCWRlZmF1bHRzIDogewoJCQl0eXBlOiAnY2xhc3MnLAoJCQluYW1lOiAnbWV0YWRhdGEnLAoJCQljcmU6IC8oey4qfSkvLAoJCQlzaW5nbGU6ICdtZXRhZGF0YScKCQl9LAoJCXNldFR5cGU6IGZ1bmN0aW9uKCB0eXBlLCBuYW1lICl7CgkJCXRoaXMuZGVmYXVsdHMudHlwZSA9IHR5cGU7CgkJCXRoaXMuZGVmYXVsdHMubmFtZSA9IG5hbWU7CgkJfSwKCQlnZXQ6IGZ1bmN0aW9uKCBlbGVtLCBvcHRzICl7CgkJCXZhciBzZXR0aW5ncyA9ICQuZXh0ZW5kKHt9LHRoaXMuZGVmYXVsdHMsb3B0cyk7CgkJCS8vIGNoZWNrIGZvciBlbXB0eSBzdHJpbmcgaW4gc2luZ2xlIHByb3BlcnR5CgkJCWlmICggIXNldHRpbmdzLnNpbmdsZS5sZW5ndGggKSBzZXR0aW5ncy5zaW5nbGUgPSAnbWV0YWRhdGEnOwoJCQkKCQkJdmFyIGRhdGEgPSAkLmRhdGEoZWxlbSwgc2V0dGluZ3Muc2luZ2xlKTsKCQkJLy8gcmV0dXJuZWQgY2FjaGVkIGRhdGEgaWYgaXQgYWxyZWFkeSBleGlzdHMKCQkJaWYgKCBkYXRhICkgcmV0dXJuIGRhdGE7CgkJCQoJCQlkYXRhID0gInt9IjsKCQkJCgkJCWlmICggc2V0dGluZ3MudHlwZSA9PSAiY2xhc3MiICkgewoJCQkJdmFyIG0gPSBzZXR0aW5ncy5jcmUuZXhlYyggZWxlbS5jbGFzc05hbWUgKTsKCQkJCWlmICggbSApCgkJCQkJZGF0YSA9IG1bMV07CgkJCX0gZWxzZSBpZiAoIHNldHRpbmdzLnR5cGUgPT0gImVsZW0iICkgewoJCQkJaWYoICFlbGVtLmdldEVsZW1lbnRzQnlUYWdOYW1lICkKCQkJCQlyZXR1cm4gdW5kZWZpbmVkOwoJCQkJdmFyIGUgPSBlbGVtLmdldEVsZW1lbnRzQnlUYWdOYW1lKHNldHRpbmdzLm5hbWUpOwoJCQkJaWYgKCBlLmxlbmd0aCApCgkJCQkJZGF0YSA9ICQudHJpbShlWzBdLmlubmVySFRNTCk7CgkJCX0gZWxzZSBpZiAoIGVsZW0uZ2V0QXR0cmlidXRlICE9IHVuZGVmaW5lZCApIHsKCQkJCXZhciBhdHRyID0gZWxlbS5nZXRBdHRyaWJ1dGUoIHNldHRpbmdzLm5hbWUgKTsKCQkJCWlmICggYXR0ciApCgkJCQkJZGF0YSA9IGF0dHI7CgkJCX0KCQkJCgkJCWlmICggZGF0YS5pbmRleE9mKCAneycgKSA8MCApCgkJCWRhdGEgPSAieyIgKyBkYXRhICsgIn0iOwoJCQkKCQkJZGF0YSA9IGV2YWwoIigiICsgZGF0YSArICIpIik7CgkJCQoJCQkkLmRhdGEoIGVsZW0sIHNldHRpbmdzLnNpbmdsZSwgZGF0YSApOwoJCQlyZXR1cm4gZGF0YTsKCQl9Cgl9Cn0pOwoKLyoqCiAqIFJldHVybnMgdGhlIG1ldGFkYXRhIG9iamVjdCBmb3IgdGhlIGZpcnN0IG1lbWJlciBvZiB0aGUgalF1ZXJ5IG9iamVjdC4KICoKICogQG5hbWUgbWV0YWRhdGEKICogQGRlc2NyIFJldHVybnMgZWxlbWVudCdzIG1ldGFkYXRhIG9iamVjdAogKiBAcGFyYW0gT2JqZWN0IG9wdHMgQW4gb2JqZWN0IGNvbnRpYW5pbmcgc2V0dGluZ3MgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHRzCiAqIEB0eXBlIGpRdWVyeQogKiBAY2F0IFBsdWdpbnMvTWV0YWRhdGEKICovCiQuZm4ubWV0YWRhdGEgPSBmdW5jdGlvbiggb3B0cyApewoJcmV0dXJuICQubWV0YWRhdGEuZ2V0KCB0aGlzWzBdLCBvcHRzICk7Cn07Cgp9KShqUXVlcnkpOw==]]></data>
	</file>
	<file>
	  <filename>/lib/jquery.tablesorter.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogCiAqIFRhYmxlU29ydGVyIDIuMCAtIENsaWVudC1zaWRlIHRhYmxlIHNvcnRpbmcgd2l0aCBlYXNlIQogKiBWZXJzaW9uIDIuMC4zCiAqIEByZXF1aXJlcyBqUXVlcnkgdjEuMi4zCiAqIAogKiBDb3B5cmlnaHQgKGMpIDIwMDcgQ2hyaXN0aWFuIEJhY2gKICogRXhhbXBsZXMgYW5kIGRvY3MgYXQ6IGh0dHA6Ly90YWJsZXNvcnRlci5jb20KICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGFuZCBHUEwgbGljZW5zZXM6CiAqIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCiAqIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwuaHRtbAogKiAKICovCi8qKgogKgogKiBAZGVzY3JpcHRpb24gQ3JlYXRlIGEgc29ydGFibGUgdGFibGUgd2l0aCBtdWx0aS1jb2x1bW4gc29ydGluZyBjYXBhYmlsaXR5cwogKiAKICogQGV4YW1wbGUgJCgndGFibGUnKS50YWJsZXNvcnRlcigpOwogKiBAZGVzYyBDcmVhdGUgYSBzaW1wbGUgdGFibGVzb3J0ZXIgaW50ZXJmYWNlLgogKgogKiBAZXhhbXBsZSAkKCd0YWJsZScpLnRhYmxlc29ydGVyKHsgc29ydExpc3Q6W1swLDBdLFsxLDBdXSB9KTsKICogQGRlc2MgQ3JlYXRlIGEgdGFibGVzb3J0ZXIgaW50ZXJmYWNlIGFuZCBzb3J0IG9uIHRoZSBmaXJzdCBhbmQgc2Vjb3VuZCBjb2x1bW4gaW4gYXNjZW5kaW5nIG9yZGVyLgogKiAKICogQGV4YW1wbGUgJCgndGFibGUnKS50YWJsZXNvcnRlcih7IGhlYWRlcnM6IHsgMDogeyBzb3J0ZXI6IGZhbHNlfSwgMToge3NvcnRlcjogZmFsc2V9IH0gfSk7CiAqIEBkZXNjIENyZWF0ZSBhIHRhYmxlc29ydGVyIGludGVyZmFjZSBhbmQgZGlzYWJsZWluZyB0aGUgZmlyc3QgYW5kIHNlY291bmQgY29sdW1uIGhlYWRlcnMuCiAqIAogKiBAZXhhbXBsZSAkKCd0YWJsZScpLnRhYmxlc29ydGVyKHsgMDoge3NvcnRlcjoiaW50ZWdlciJ9LCAxOiB7c29ydGVyOiJjdXJyZW5jeSJ9IH0pOwogKiBAZGVzYyBDcmVhdGUgYSB0YWJsZXNvcnRlciBpbnRlcmZhY2UgYW5kIHNldCBhIGNvbHVtbiBwYXJzZXIgZm9yIHRoZSBmaXJzdCBhbmQgc2Vjb3VuZCBjb2x1bW4uCiAqIAogKiAKICogQHBhcmFtIE9iamVjdCBzZXR0aW5ncyBBbiBvYmplY3QgbGl0ZXJhbCBjb250YWluaW5nIGtleS92YWx1ZSBwYWlycyB0byBwcm92aWRlIG9wdGlvbmFsIHNldHRpbmdzLgogKiAKICogQG9wdGlvbiBTdHJpbmcgY3NzSGVhZGVyIChvcHRpb25hbCkgCQkJQSBzdHJpbmcgb2YgdGhlIGNsYXNzIG5hbWUgdG8gYmUgYXBwZW5kZWQgdG8gc29ydGFibGUgdHIgZWxlbWVudHMgaW4gdGhlIHRoZWFkIG9mIHRoZSB0YWJsZS4gCiAqIAkJCQkJCQkJCQkJCURlZmF1bHQgdmFsdWU6ICJoZWFkZXIiCiAqIAogKiBAb3B0aW9uIFN0cmluZyBjc3NBc2MgKG9wdGlvbmFsKSAJCQlBIHN0cmluZyBvZiB0aGUgY2xhc3MgbmFtZSB0byBiZSBhcHBlbmRlZCB0byBzb3J0YWJsZSB0ciBlbGVtZW50cyBpbiB0aGUgdGhlYWQgb24gYSBhc2NlbmRpbmcgc29ydC4gCiAqIAkJCQkJCQkJCQkJCURlZmF1bHQgdmFsdWU6ICJoZWFkZXJTb3J0VXAiCiAqIAogKiBAb3B0aW9uIFN0cmluZyBjc3NEZXNjIChvcHRpb25hbCkgCQkJQSBzdHJpbmcgb2YgdGhlIGNsYXNzIG5hbWUgdG8gYmUgYXBwZW5kZWQgdG8gc29ydGFibGUgdHIgZWxlbWVudHMgaW4gdGhlIHRoZWFkIG9uIGEgZGVzY2VuZGluZyBzb3J0LiAKICogCQkJCQkJCQkJCQkJRGVmYXVsdCB2YWx1ZTogImhlYWRlclNvcnREb3duIgogKiAKICogQG9wdGlvbiBTdHJpbmcgc29ydEluaXRpYWxPcmRlciAob3B0aW9uYWwpIAlBIHN0cmluZyBvZiB0aGUgaW5pdGFsIHNvcnRpbmcgb3JkZXIgY2FuIGJlIGFzYyBvciBkZXNjLiAKICogCQkJCQkJCQkJCQkJRGVmYXVsdCB2YWx1ZTogImFzYyIKICogCiAqIEBvcHRpb24gU3RyaW5nIHNvcnRNdWx0aXNvcnRLZXkgKG9wdGlvbmFsKSAJQSBzdHJpbmcgb2YgdGhlIG11bHRpLWNvbHVtbiBzb3J0IGtleS4gCiAqIAkJCQkJCQkJCQkJCURlZmF1bHQgdmFsdWU6ICJzaGlmdEtleSIKICogCiAqIEBvcHRpb24gU3RyaW5nIHRleHRFeHRyYWN0aW9uIChvcHRpb25hbCkgCUEgc3RyaW5nIG9mIHRoZSB0ZXh0LWV4dHJhY3Rpb24gbWV0aG9kIHRvIHVzZS4gCiAqIAkJCQkJCQkJCQkJCUZvciBjb21wbGV4IGh0bWwgc3RydWN0dXJlcyBpbnNpZGUgdGQgY2VsbCBzZXQgdGhpcyBvcHRpb24gdG8gImNvbXBsZXgiLCAKICogCQkJCQkJCQkJCQkJb24gbGFyZ2UgdGFibGVzIHRoZSBjb21wbGV4IG9wdGlvbiBjYW4gYmUgc2xvdy4gCiAqIAkJCQkJCQkJCQkJCURlZmF1bHQgdmFsdWU6ICJzaW1wbGUiCiAqIAogKiBAb3B0aW9uIE9iamVjdCBoZWFkZXJzIChvcHRpb25hbCkgCQkJQW4gYXJyYXkgY29udGFpbmluZyB0aGUgZm9yY2VzIHNvcnRpbmcgcnVsZXMuIAogKiAJCQkJCQkJCQkJCQlUaGlzIG9wdGlvbiBsZXQncyB5b3Ugc3BlY2lmeSBhIGRlZmF1bHQgc29ydGluZyBydWxlLiAKICogCQkJCQkJCQkJCQkJRGVmYXVsdCB2YWx1ZTogbnVsbAogKiAKICogQG9wdGlvbiBBcnJheSBzb3J0TGlzdCAob3B0aW9uYWwpIAkJCUFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIGZvcmNlcyBzb3J0aW5nIHJ1bGVzLiAKICogCQkJCQkJCQkJCQkJVGhpcyBvcHRpb24gbGV0J3MgeW91IHNwZWNpZnkgYSBkZWZhdWx0IHNvcnRpbmcgcnVsZS4gCiAqIAkJCQkJCQkJCQkJCURlZmF1bHQgdmFsdWU6IG51bGwKICogCiAqIEBvcHRpb24gQXJyYXkgc29ydEZvcmNlIChvcHRpb25hbCkgCQkJQW4gYXJyYXkgY29udGFpbmluZyBmb3JjZWQgc29ydGluZyBydWxlcy4gCiAqIAkJCQkJCQkJCQkJCVRoaXMgb3B0aW9uIGxldCdzIHlvdSBzcGVjaWZ5IGEgZGVmYXVsdCBzb3J0aW5nIHJ1bGUsIHdoaWNoIGlzIHByZXBlbmRlZCB0byB1c2VyLXNlbGVjdGVkIHJ1bGVzLgogKiAJCQkJCQkJCQkJCQlEZWZhdWx0IHZhbHVlOiBudWxsCiAqICAKICAqIEBvcHRpb24gQXJyYXkgc29ydEFwcGVuZCAob3B0aW9uYWwpIAkJCUFuIGFycmF5IGNvbnRhaW5pbmcgZm9yY2VkIHNvcnRpbmcgcnVsZXMuIAogKiAJCQkJCQkJCQkJCQlUaGlzIG9wdGlvbiBsZXQncyB5b3Ugc3BlY2lmeSBhIGRlZmF1bHQgc29ydGluZyBydWxlLCB3aGljaCBpcyBhcHBlbmRlZCB0byB1c2VyLXNlbGVjdGVkIHJ1bGVzLgogKiAJCQkJCQkJCQkJCQlEZWZhdWx0IHZhbHVlOiBudWxsCiAqIAogKiBAb3B0aW9uIEJvb2xlYW4gd2lkdGhGaXhlZCAob3B0aW9uYWwpIAkJQm9vbGVhbiBmbGFnIGluZGljYXRpbmcgaWYgdGFibGVzb3J0ZXIgc2hvdWxkIGFwcGx5IGZpeGVkIHdpZHRocyB0byB0aGUgdGFibGUgY29sdW1ucy4KICogCQkJCQkJCQkJCQkJVGhpcyBpcyB1c2VmdWxsIHdoZW4gdXNpbmcgdGhlIHBhZ2VyIGNvbXBhbmlvbiBwbHVnaW4uCiAqIAkJCQkJCQkJCQkJCVRoaXMgb3B0aW9ucyByZXF1aXJlcyB0aGUgZGltZW5zaW9uIGpxdWVyeSBwbHVnaW4uCiAqIAkJCQkJCQkJCQkJCURlZmF1bHQgdmFsdWU6IGZhbHNlCiAqCiAqIEBvcHRpb24gQm9vbGVhbiBjYW5jZWxTZWxlY3Rpb24gKG9wdGlvbmFsKSAJQm9vbGVhbiBmbGFnIGluZGljYXRpbmcgaWYgdGFibGVzb3J0ZXIgc2hvdWxkIGNhbmNlbCBzZWxlY3Rpb24gb2YgdGhlIHRhYmxlIGhlYWRlcnMgdGV4dC4KICogCQkJCQkJCQkJCQkJRGVmYXVsdCB2YWx1ZTogdHJ1ZQogKgogKiBAb3B0aW9uIEJvb2xlYW4gZGVidWcgKG9wdGlvbmFsKSAJCQlCb29sZWFuIGZsYWcgaW5kaWNhdGluZyBpZiB0YWJsZXNvcnRlciBzaG91bGQgZGlzcGxheSBkZWJ1Z2luZyBpbmZvcm1hdGlvbiB1c2VmdWxsIGZvciBkZXZlbG9wbWVudC4KICoKICogQHR5cGUgalF1ZXJ5CiAqCiAqIEBuYW1lIHRhYmxlc29ydGVyCiAqIAogKiBAY2F0IFBsdWdpbnMvVGFibGVzb3J0ZXIKICogCiAqIEBhdXRob3IgQ2hyaXN0aWFuIEJhY2gvY2hyaXN0aWFuLmJhY2hAcG9seWVzdGVyLnNlCiAqLwoKKGZ1bmN0aW9uKCQpIHsKCSQuZXh0ZW5kKHsKCQl0YWJsZXNvcnRlcjogbmV3IGZ1bmN0aW9uKCkgewoJCQkKCQkJdmFyIHBhcnNlcnMgPSBbXSwgd2lkZ2V0cyA9IFtdOwoJCQkKCQkJdGhpcy5kZWZhdWx0cyA9IHsKCQkJCWNzc0hlYWRlcjogImhlYWRlciIsCgkJCQljc3NBc2M6ICJoZWFkZXJTb3J0VXAiLAoJCQkJY3NzRGVzYzogImhlYWRlclNvcnREb3duIiwKCQkJCXNvcnRJbml0aWFsT3JkZXI6ICJhc2MiLAoJCQkJc29ydE11bHRpU29ydEtleTogInNoaWZ0S2V5IiwKCQkJCXNvcnRGb3JjZTogbnVsbCwKCQkJCXNvcnRBcHBlbmQ6IG51bGwsCgkJCQl0ZXh0RXh0cmFjdGlvbjogInNpbXBsZSIsCgkJCQlwYXJzZXJzOiB7fSwgCgkJCQl3aWRnZXRzOiBbXSwJCQoJCQkJd2lkZ2V0WmVicmE6IHtjc3M6IFsiZXZlbiIsIm9kZCJdfSwKCQkJCWhlYWRlcnM6IHt9LAoJCQkJd2lkdGhGaXhlZDogZmFsc2UsCgkJCQljYW5jZWxTZWxlY3Rpb246IHRydWUsCgkJCQlzb3J0TGlzdDogW10sCgkJCQloZWFkZXJMaXN0OiBbXSwKCQkJCWRhdGVGb3JtYXQ6ICJ1cyIsCgkJCQlkZWNpbWFsOiAnLicsCgkJCQlkZWJ1ZzogZmFsc2UKCQkJfTsKCQkJCgkJCS8qIGRlYnVnaW5nIHV0aWxzICovCgkJCWZ1bmN0aW9uIGJlbmNobWFyayhzLGQpIHsKCQkJCWxvZyhzICsgIiwiICsgKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gZC5nZXRUaW1lKCkpICsgIm1zIik7CgkJCX0KCQkJCgkJCXRoaXMuYmVuY2htYXJrID0gYmVuY2htYXJrOwoJCQkKCQkJZnVuY3Rpb24gbG9nKHMpIHsKCQkJCWlmICh0eXBlb2YgY29uc29sZSAhPSAidW5kZWZpbmVkIiAmJiB0eXBlb2YgY29uc29sZS5kZWJ1ZyAhPSAidW5kZWZpbmVkIikgewoJCQkJCWNvbnNvbGUubG9nKHMpOwoJCQkJfSBlbHNlIHsKCQkJCQlhbGVydChzKTsKCQkJCX0KCQkJfQoJCQkJCQkKCQkJLyogcGFyc2VycyB1dGlscyAqLwoJCQlmdW5jdGlvbiBidWlsZFBhcnNlckNhY2hlKHRhYmxlLCRoZWFkZXJzKSB7CgkJCQkKCQkJCWlmKHRhYmxlLmNvbmZpZy5kZWJ1ZykgeyB2YXIgcGFyc2Vyc0RlYnVnID0gIiI7IH0KCQkJCQoJCQkJdmFyIHJvd3MgPSB0YWJsZS50Qm9kaWVzWzBdLnJvd3M7CgkJCQkKCQkJCWlmKHRhYmxlLnRCb2RpZXNbMF0ucm93c1swXSkgewoKCQkJCQl2YXIgbGlzdCA9IFtdLCBjZWxscyA9IHJvd3NbMF0uY2VsbHMsIGwgPSBjZWxscy5sZW5ndGg7CgkJCQkJCgkJCQkJZm9yICh2YXIgaT0wO2kgPCBsOyBpKyspIHsKCQkJCQkJdmFyIHAgPSBmYWxzZTsKCQkJCQkJCgkJCQkJCWlmKCQubWV0YWRhdGEgJiYgKCQoJGhlYWRlcnNbaV0pLm1ldGFkYXRhKCkgJiYgJCgkaGVhZGVyc1tpXSkubWV0YWRhdGEoKS5zb3J0ZXIpICApIHsKCQkJCQkJCgkJCQkJCQlwID0gZ2V0UGFyc2VyQnlJZCgkKCRoZWFkZXJzW2ldKS5tZXRhZGF0YSgpLnNvcnRlcik7CQoJCQkJCQkKCQkJCQkJfSBlbHNlIGlmKCh0YWJsZS5jb25maWcuaGVhZGVyc1tpXSAmJiB0YWJsZS5jb25maWcuaGVhZGVyc1tpXS5zb3J0ZXIpKSB7CgkKCQkJCQkJCXAgPSBnZXRQYXJzZXJCeUlkKHRhYmxlLmNvbmZpZy5oZWFkZXJzW2ldLnNvcnRlcik7CgkJCQkJCX0KCQkJCQkJaWYoIXApIHsKCQkJCQkJCXAgPSBkZXRlY3RQYXJzZXJGb3JDb2x1bW4odGFibGUsY2VsbHNbaV0pOwoJCQkJCQl9CgkKCQkJCQkJaWYodGFibGUuY29uZmlnLmRlYnVnKSB7IHBhcnNlcnNEZWJ1ZyArPSAiY29sdW1uOiIgKyBpICsgIiBwYXJzZXI6IiArcC5pZCArICJcbiI7IH0KCQoJCQkJCQlsaXN0LnB1c2gocCk7CgkJCQkJfQoJCQkJfQoJCQkJCgkJCQlpZih0YWJsZS5jb25maWcuZGVidWcpIHsgbG9nKHBhcnNlcnNEZWJ1Zyk7IH0KCgkJCQlyZXR1cm4gbGlzdDsKCQkJfTsKCQkJCgkJCWZ1bmN0aW9uIGRldGVjdFBhcnNlckZvckNvbHVtbih0YWJsZSxub2RlKSB7CgkJCQl2YXIgbCA9IHBhcnNlcnMubGVuZ3RoOwoJCQkJZm9yKHZhciBpPTE7IGkgPCBsOyBpKyspIHsKCQkJCQlpZihwYXJzZXJzW2ldLmlzKCQudHJpbShnZXRFbGVtZW50VGV4dCh0YWJsZS5jb25maWcsbm9kZSkpLHRhYmxlLG5vZGUpKSB7CgkJCQkJCXJldHVybiBwYXJzZXJzW2ldOwoJCQkJCX0KCQkJCX0KCQkJCS8vIDAgaXMgYWx3YXlzIHRoZSBnZW5lcmljIHBhcnNlciAodGV4dCkKCQkJCXJldHVybiBwYXJzZXJzWzBdOwoJCQl9CgkJCQoJCQlmdW5jdGlvbiBnZXRQYXJzZXJCeUlkKG5hbWUpIHsKCQkJCXZhciBsID0gcGFyc2Vycy5sZW5ndGg7CgkJCQlmb3IodmFyIGk9MDsgaSA8IGw7IGkrKykgewoJCQkJCWlmKHBhcnNlcnNbaV0uaWQudG9Mb3dlckNhc2UoKSA9PSBuYW1lLnRvTG93ZXJDYXNlKCkpIHsJCgkJCQkJCXJldHVybiBwYXJzZXJzW2ldOwoJCQkJCX0KCQkJCX0KCQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCQkKCQkJLyogdXRpbHMgKi8KCQkJZnVuY3Rpb24gYnVpbGRDYWNoZSh0YWJsZSkgewoJCQkJCgkJCQlpZih0YWJsZS5jb25maWcuZGVidWcpIHsgdmFyIGNhY2hlVGltZSA9IG5ldyBEYXRlKCk7IH0KCQkJCQoJCQkJCgkJCQl2YXIgdG90YWxSb3dzID0gKHRhYmxlLnRCb2RpZXNbMF0gJiYgdGFibGUudEJvZGllc1swXS5yb3dzLmxlbmd0aCkgfHwgMCwKCQkJCQl0b3RhbENlbGxzID0gKHRhYmxlLnRCb2RpZXNbMF0ucm93c1swXSAmJiB0YWJsZS50Qm9kaWVzWzBdLnJvd3NbMF0uY2VsbHMubGVuZ3RoKSB8fCAwLAoJCQkJCXBhcnNlcnMgPSB0YWJsZS5jb25maWcucGFyc2VycywgCgkJCQkJY2FjaGUgPSB7cm93OiBbXSwgbm9ybWFsaXplZDogW119OwoJCQkJCgkJCQkJZm9yICh2YXIgaT0wO2kgPCB0b3RhbFJvd3M7ICsraSkgewoJCQkJCQoJCQkJCQkvKiogQWRkIHRoZSB0YWJsZSBkYXRhIHRvIG1haW4gZGF0YSBhcnJheSAqLwoJCQkJCQl2YXIgYyA9IHRhYmxlLnRCb2RpZXNbMF0ucm93c1tpXSwgY29scyA9IFtdOwoJCQkJCQoJCQkJCQljYWNoZS5yb3cucHVzaCgkKGMpKTsKCQkJCQkJCgkJCQkJCWZvcih2YXIgaj0wOyBqIDwgdG90YWxDZWxsczsgKytqKSB7CgkJCQkJCQljb2xzLnB1c2gocGFyc2Vyc1tqXS5mb3JtYXQoZ2V0RWxlbWVudFRleHQodGFibGUuY29uZmlnLGMuY2VsbHNbal0pLHRhYmxlLGMuY2VsbHNbal0pKTsJCgkJCQkJCX0KCQkJCQkJCQkJCQkJCgkJCQkJCWNvbHMucHVzaChpKTsgLy8gYWRkIHBvc2l0aW9uIGZvciByb3dDYWNoZQoJCQkJCQljYWNoZS5ub3JtYWxpemVkLnB1c2goY29scyk7CgkJCQkJCWNvbHMgPSBudWxsOwoJCQkJCX07CgkJCQkKCQkJCWlmKHRhYmxlLmNvbmZpZy5kZWJ1ZykgeyBiZW5jaG1hcmsoIkJ1aWxkaW5nIGNhY2hlIGZvciAiICsgdG90YWxSb3dzICsgIiByb3dzOiIsIGNhY2hlVGltZSk7IH0KCQkJCQoJCQkJcmV0dXJuIGNhY2hlOwoJCQl9OwoJCQkKCQkJZnVuY3Rpb24gZ2V0RWxlbWVudFRleHQoY29uZmlnLG5vZGUpIHsKCQkJCQoJCQkJaWYoIW5vZGUpIHJldHVybiAiIjsKCQkJCQkJCQkKCQkJCXZhciB0ID0gIiI7CgkJCQkKCQkJCWlmKGNvbmZpZy50ZXh0RXh0cmFjdGlvbiA9PSAic2ltcGxlIikgewoJCQkJCWlmKG5vZGUuY2hpbGROb2Rlc1swXSAmJiBub2RlLmNoaWxkTm9kZXNbMF0uaGFzQ2hpbGROb2RlcygpKSB7CgkJCQkJCXQgPSBub2RlLmNoaWxkTm9kZXNbMF0uaW5uZXJIVE1MOwoJCQkJCX0gZWxzZSB7CgkJCQkJCXQgPSBub2RlLmlubmVySFRNTDsKCQkJCQl9CgkJCQl9IGVsc2UgewoJCQkJCWlmKHR5cGVvZihjb25maWcudGV4dEV4dHJhY3Rpb24pID09ICJmdW5jdGlvbiIpIHsKCQkJCQkJdCA9IGNvbmZpZy50ZXh0RXh0cmFjdGlvbihub2RlKTsKCQkJCQl9IGVsc2UgeyAKCQkJCQkJdCA9ICQobm9kZSkudGV4dCgpOwoJCQkJCX0JCgkJCQl9CgkJCQlyZXR1cm4gdDsKCQkJfQoJCQkKCQkJZnVuY3Rpb24gYXBwZW5kVG9UYWJsZSh0YWJsZSxjYWNoZSkgewoJCQkJCgkJCQlpZih0YWJsZS5jb25maWcuZGVidWcpIHt2YXIgYXBwZW5kVGltZSA9IG5ldyBEYXRlKCl9CgkJCQkKCQkJCXZhciBjID0gY2FjaGUsIAoJCQkJCXIgPSBjLnJvdywgCgkJCQkJbj0gYy5ub3JtYWxpemVkLCAKCQkJCQl0b3RhbFJvd3MgPSBuLmxlbmd0aCwgCgkJCQkJY2hlY2tDZWxsID0gKG5bMF0ubGVuZ3RoLTEpLCAKCQkJCQl0YWJsZUJvZHkgPSAkKHRhYmxlLnRCb2RpZXNbMF0pLAoJCQkJCXJvd3MgPSBbXTsKCQkJCQoJCQkJZm9yICh2YXIgaT0wO2kgPCB0b3RhbFJvd3M7IGkrKykgewoJCQkJCXJvd3MucHVzaChyW25baV1bY2hlY2tDZWxsXV0pOwkKCQkJCQlpZighdGFibGUuY29uZmlnLmFwcGVuZGVyKSB7CgkJCQkJCQoJCQkJCQl2YXIgbyA9IHJbbltpXVtjaGVja0NlbGxdXTsKCQkJCQkJdmFyIGwgPSBvLmxlbmd0aDsKCQkJCQkJZm9yKHZhciBqPTA7IGogPCBsOyBqKyspIHsKCQkJCQkJCQoJCQkJCQkJdGFibGVCb2R5WzBdLmFwcGVuZENoaWxkKG9bal0pOwoJCQkJCQkKCQkJCQkJfQoJCQkJCQkKCQkJCQkJLy90YWJsZUJvZHkuYXBwZW5kKHJbbltpXVtjaGVja0NlbGxdXSk7CgkJCQkJfQoJCQkJfQkKCQkJCQoJCQkJaWYodGFibGUuY29uZmlnLmFwcGVuZGVyKSB7CgkJCQkKCQkJCQl0YWJsZS5jb25maWcuYXBwZW5kZXIodGFibGUscm93cyk7CQoJCQkJfQoJCQkJCgkJCQlyb3dzID0gbnVsbDsKCQkJCQoJCQkJaWYodGFibGUuY29uZmlnLmRlYnVnKSB7IGJlbmNobWFyaygiUmVidWlsdCB0YWJsZToiLCBhcHBlbmRUaW1lKTsgfQoJCQkJCQkJCQoJCQkJLy9hcHBseSB0YWJsZSB3aWRnZXRzCgkJCQlhcHBseVdpZGdldCh0YWJsZSk7CgkJCQkKCQkJCS8vIHRyaWdnZXIgc29ydGVuZAoJCQkJc2V0VGltZW91dChmdW5jdGlvbigpIHsKCQkJCQkkKHRhYmxlKS50cmlnZ2VyKCJzb3J0RW5kIik7CQoJCQkJfSwwKTsKCQkJCQoJCQl9OwoJCQkKCQkJZnVuY3Rpb24gYnVpbGRIZWFkZXJzKHRhYmxlKSB7CgkJCQkKCQkJCWlmKHRhYmxlLmNvbmZpZy5kZWJ1ZykgeyB2YXIgdGltZSA9IG5ldyBEYXRlKCk7IH0KCQkJCQoJCQkJdmFyIG1ldGEgPSAoJC5tZXRhZGF0YSkgPyB0cnVlIDogZmFsc2UsIHRhYmxlSGVhZGVyc1Jvd3MgPSBbXTsKCQkJCgkJCQlmb3IodmFyIGkgPSAwOyBpIDwgdGFibGUudEhlYWQucm93cy5sZW5ndGg7IGkrKykgeyB0YWJsZUhlYWRlcnNSb3dzW2ldPTA7IH07CgkJCQkKCQkJCSR0YWJsZUhlYWRlcnMgPSAkKCJ0aGVhZCB0aCIsdGFibGUpOwoJCQoJCQkJJHRhYmxlSGVhZGVycy5lYWNoKGZ1bmN0aW9uKGluZGV4KSB7CgkJCQkJCQkKCQkJCQl0aGlzLmNvdW50ID0gMDsKCQkJCQl0aGlzLmNvbHVtbiA9IGluZGV4OwoJCQkJCXRoaXMub3JkZXIgPSBmb3JtYXRTb3J0aW5nT3JkZXIodGFibGUuY29uZmlnLnNvcnRJbml0aWFsT3JkZXIpOwoJCQkJCQoJCQkJCWlmKGNoZWNrSGVhZGVyTWV0YWRhdGEodGhpcykgfHwgY2hlY2tIZWFkZXJPcHRpb25zKHRhYmxlLGluZGV4KSkgdGhpcy5zb3J0RGlzYWJsZWQgPSB0cnVlOwoJCQkJCQoJCQkJCWlmKCF0aGlzLnNvcnREaXNhYmxlZCkgewoJCQkJCQkkKHRoaXMpLmFkZENsYXNzKHRhYmxlLmNvbmZpZy5jc3NIZWFkZXIpOwoJCQkJCX0KCQkJCQkKCQkJCQkvLyBhZGQgY2VsbCB0byBoZWFkZXJMaXN0CgkJCQkJdGFibGUuY29uZmlnLmhlYWRlckxpc3RbaW5kZXhdPSB0aGlzOwoJCQkJfSk7CgkJCQkKCQkJCWlmKHRhYmxlLmNvbmZpZy5kZWJ1ZykgeyBiZW5jaG1hcmsoIkJ1aWx0IGhlYWRlcnM6IiwgdGltZSk7IGxvZygkdGFibGVIZWFkZXJzKTsgfQoJCQkJCgkJCQlyZXR1cm4gJHRhYmxlSGVhZGVyczsKCQkJCQoJCQl9OwoJCQkJCQkKCQkgICAJZnVuY3Rpb24gY2hlY2tDZWxsQ29sU3Bhbih0YWJsZSwgcm93cywgcm93KSB7CiAgICAgICAgICAgICAgICB2YXIgYXJyID0gW10sIHIgPSB0YWJsZS50SGVhZC5yb3dzLCBjID0gcltyb3ddLmNlbGxzOwoJCQkJCgkJCQlmb3IodmFyIGk9MDsgaSA8IGMubGVuZ3RoOyBpKyspIHsKCQkJCQl2YXIgY2VsbCA9IGNbaV07CgkJCQkJCgkJCQkJaWYgKCBjZWxsLmNvbFNwYW4gPiAxKSB7IAoJCQkJCQlhcnIgPSBhcnIuY29uY2F0KGNoZWNrQ2VsbENvbFNwYW4odGFibGUsIGhlYWRlckFycixyb3crKykpOwoJCQkJCX0gZWxzZSAgewoJCQkJCQlpZih0YWJsZS50SGVhZC5sZW5ndGggPT0gMSB8fCAoY2VsbC5yb3dTcGFuID4gMSB8fCAhcltyb3crMV0pKSB7CgkJCQkJCQlhcnIucHVzaChjZWxsKTsKCQkJCQkJfQoJCQkJCQkvL2hlYWRlckFycltyb3ddID0gKGkrcm93KTsKCQkJCQl9CgkJCQl9CgkJCQlyZXR1cm4gYXJyOwoJCQl9OwoJCQkKCQkJZnVuY3Rpb24gY2hlY2tIZWFkZXJNZXRhZGF0YShjZWxsKSB7CgkJCQlpZigoJC5tZXRhZGF0YSkgJiYgKCQoY2VsbCkubWV0YWRhdGEoKS5zb3J0ZXIgPT09IGZhbHNlKSkgeyByZXR1cm4gdHJ1ZTsgfTsKCQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCQkKCQkJZnVuY3Rpb24gY2hlY2tIZWFkZXJPcHRpb25zKHRhYmxlLGkpIHsJCgkJCQlpZigodGFibGUuY29uZmlnLmhlYWRlcnNbaV0pICYmICh0YWJsZS5jb25maWcuaGVhZGVyc1tpXS5zb3J0ZXIgPT09IGZhbHNlKSkgeyByZXR1cm4gdHJ1ZTsgfTsKCQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCQkKCQkJZnVuY3Rpb24gYXBwbHlXaWRnZXQodGFibGUpIHsKCQkJCXZhciBjID0gdGFibGUuY29uZmlnLndpZGdldHM7CgkJCQl2YXIgbCA9IGMubGVuZ3RoOwoJCQkJZm9yKHZhciBpPTA7IGkgPCBsOyBpKyspIHsKCQkJCQkKCQkJCQlnZXRXaWRnZXRCeUlkKGNbaV0pLmZvcm1hdCh0YWJsZSk7CgkJCQl9CgkJCQkKCQkJfQoJCQkKCQkJZnVuY3Rpb24gZ2V0V2lkZ2V0QnlJZChuYW1lKSB7CgkJCQl2YXIgbCA9IHdpZGdldHMubGVuZ3RoOwoJCQkJZm9yKHZhciBpPTA7IGkgPCBsOyBpKyspIHsKCQkJCQlpZih3aWRnZXRzW2ldLmlkLnRvTG93ZXJDYXNlKCkgPT0gbmFtZS50b0xvd2VyQ2FzZSgpICkgewoJCQkJCQlyZXR1cm4gd2lkZ2V0c1tpXTsgCgkJCQkJfQoJCQkJfQoJCQl9OwoJCQkKCQkJZnVuY3Rpb24gZm9ybWF0U29ydGluZ09yZGVyKHYpIHsKCQkJCQoJCQkJaWYodHlwZW9mKHYpICE9ICJOdW1iZXIiKSB7CgkJCQkJaSA9ICh2LnRvTG93ZXJDYXNlKCkgPT0gImRlc2MiKSA/IDEgOiAwOwoJCQkJfSBlbHNlIHsKCQkJCQlpID0gKHYgPT0gKDAgfHwgMSkpID8gdiA6IDA7CgkJCQl9CgkJCQlyZXR1cm4gaTsKCQkJfQoJCQkKCQkJZnVuY3Rpb24gaXNWYWx1ZUluQXJyYXkodiwgYSkgewoJCQkJdmFyIGwgPSBhLmxlbmd0aDsKCQkJCWZvcih2YXIgaT0wOyBpIDwgbDsgaSsrKSB7CgkJCQkJaWYoYVtpXVswXSA9PSB2KSB7CgkJCQkJCXJldHVybiB0cnVlOwkKCQkJCQl9CgkJCQl9CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQkJCQoJCQlmdW5jdGlvbiBzZXRIZWFkZXJzQ3NzKHRhYmxlLCRoZWFkZXJzLCBsaXN0LCBjc3MpIHsKCQkJCS8vIHJlbW92ZSBhbGwgaGVhZGVyIGluZm9ybWF0aW9uCgkJCQkkaGVhZGVycy5yZW1vdmVDbGFzcyhjc3NbMF0pLnJlbW92ZUNsYXNzKGNzc1sxXSk7CgkJCQkKCQkJCXZhciBoID0gW107CgkJCQkkaGVhZGVycy5lYWNoKGZ1bmN0aW9uKG9mZnNldCkgewoJCQkJCQlpZighdGhpcy5zb3J0RGlzYWJsZWQpIHsKCQkJCQkJCWhbdGhpcy5jb2x1bW5dID0gJCh0aGlzKTsJCQkJCQoJCQkJCQl9CgkJCQl9KTsKCQkJCQoJCQkJdmFyIGwgPSBsaXN0Lmxlbmd0aDsgCgkJCQlmb3IodmFyIGk9MDsgaSA8IGw7IGkrKykgewoJCQkJCWhbbGlzdFtpXVswXV0uYWRkQ2xhc3MoY3NzW2xpc3RbaV1bMV1dKTsKCQkJCX0KCQkJfQoJCQkKCQkJZnVuY3Rpb24gZml4Q29sdW1uV2lkdGgodGFibGUsJGhlYWRlcnMpIHsKCQkJCXZhciBjID0gdGFibGUuY29uZmlnOwoJCQkJaWYoYy53aWR0aEZpeGVkKSB7CgkJCQkJdmFyIGNvbGdyb3VwID0gJCgnPGNvbGdyb3VwPicpOwoJCQkJCSQoInRyOmZpcnN0IHRkIix0YWJsZS50Qm9kaWVzWzBdKS5lYWNoKGZ1bmN0aW9uKCkgewoJCQkJCQljb2xncm91cC5hcHBlbmQoJCgnPGNvbD4nKS5jc3MoJ3dpZHRoJywkKHRoaXMpLndpZHRoKCkpKTsKCQkJCQl9KTsKCQkJCQkkKHRhYmxlKS5wcmVwZW5kKGNvbGdyb3VwKTsKCQkJCX07CgkJCX0KCQkJCgkJCWZ1bmN0aW9uIHVwZGF0ZUhlYWRlclNvcnRDb3VudCh0YWJsZSxzb3J0TGlzdCkgewoJCQkJdmFyIGMgPSB0YWJsZS5jb25maWcsIGwgPSBzb3J0TGlzdC5sZW5ndGg7CgkJCQlmb3IodmFyIGk9MDsgaSA8IGw7IGkrKykgewoJCQkJCXZhciBzID0gc29ydExpc3RbaV0sIG8gPSBjLmhlYWRlckxpc3Rbc1swXV07CgkJCQkJby5jb3VudCA9IHNbMV07CgkJCQkJby5jb3VudCsrOwoJCQkJfQoJCQl9CgkJCQoJCQkvKiBzb3J0aW5nIG1ldGhvZHMgKi8KCQkJZnVuY3Rpb24gbXVsdGlzb3J0KHRhYmxlLHNvcnRMaXN0LGNhY2hlKSB7CgkJCQkKCQkJCWlmKHRhYmxlLmNvbmZpZy5kZWJ1ZykgeyB2YXIgc29ydFRpbWUgPSBuZXcgRGF0ZSgpOyB9CgkJCQkKCQkJCXZhciBkeW5hbWljRXhwID0gInZhciBzb3J0V3JhcHBlciA9IGZ1bmN0aW9uKGEsYikgeyIsIGwgPSBzb3J0TGlzdC5sZW5ndGg7CgkJCQkJCgkJCQlmb3IodmFyIGk9MDsgaSA8IGw7IGkrKykgewoJCQkJCQoJCQkJCXZhciBjID0gc29ydExpc3RbaV1bMF07CgkJCQkJdmFyIG9yZGVyID0gc29ydExpc3RbaV1bMV07CgkJCQkJdmFyIHMgPSAoZ2V0Q2FjaGVkU29ydFR5cGUodGFibGUuY29uZmlnLnBhcnNlcnMsYykgPT0gInRleHQiKSA/ICgob3JkZXIgPT0gMCkgPyAic29ydFRleHQiIDogInNvcnRUZXh0RGVzYyIpIDogKChvcmRlciA9PSAwKSA/ICJzb3J0TnVtZXJpYyIgOiAic29ydE51bWVyaWNEZXNjIik7CgkJCQkJCgkJCQkJdmFyIGUgPSAiZSIgKyBpOwoJCQkJCQoJCQkJCWR5bmFtaWNFeHAgKz0gInZhciAiICsgZSArICIgPSAiICsgcyArICIoYVsiICsgYyArICJdLGJbIiArIGMgKyAiXSk7ICI7CgkJCQkJZHluYW1pY0V4cCArPSAiaWYoIiArIGUgKyAiKSB7IHJldHVybiAiICsgZSArICI7IH0gIjsKCQkJCQlkeW5hbWljRXhwICs9ICJlbHNlIHsgIjsKCQkJCX0KCQkJCQoJCQkJLy8gaWYgdmFsdWUgaXMgdGhlIHNhbWUga2VlcCBvcmlnbmFsIG9yZGVyCQoJCQkJdmFyIG9yZ09yZGVyQ29sID0gY2FjaGUubm9ybWFsaXplZFswXS5sZW5ndGggLSAxOwoJCQkJZHluYW1pY0V4cCArPSAicmV0dXJuIGFbIiArIG9yZ09yZGVyQ29sICsgIl0tYlsiICsgb3JnT3JkZXJDb2wgKyAiXTsiOwoJCQkJCQkKCQkJCWZvcih2YXIgaT0wOyBpIDwgbDsgaSsrKSB7CgkJCQkJZHluYW1pY0V4cCArPSAifTsgIjsKCQkJCX0KCQkJCQoJCQkJZHluYW1pY0V4cCArPSAicmV0dXJuIDA7ICI7CQoJCQkJZHluYW1pY0V4cCArPSAifTsgIjsJCgkJCQkKCQkJCWV2YWwoZHluYW1pY0V4cCk7CgkJCQkKCQkJCWNhY2hlLm5vcm1hbGl6ZWQuc29ydChzb3J0V3JhcHBlcik7CgkJCQkKCQkJCWlmKHRhYmxlLmNvbmZpZy5kZWJ1ZykgeyBiZW5jaG1hcmsoIlNvcnRpbmcgb24gIiArIHNvcnRMaXN0LnRvU3RyaW5nKCkgKyAiIGFuZCBkaXIgIiArIG9yZGVyKyAiIHRpbWU6Iiwgc29ydFRpbWUpOyB9CgkJCQkKCQkJCXJldHVybiBjYWNoZTsKCQkJfTsKCQkJCgkJCWZ1bmN0aW9uIHNvcnRUZXh0KGEsYikgewoJCQkJcmV0dXJuICgoYSA8IGIpID8gLTEgOiAoKGEgPiBiKSA/IDEgOiAwKSk7CgkJCX07CgkJCQoJCQlmdW5jdGlvbiBzb3J0VGV4dERlc2MoYSxiKSB7CgkJCQlyZXR1cm4gKChiIDwgYSkgPyAtMSA6ICgoYiA+IGEpID8gMSA6IDApKTsKCQkJfTsJCgkJCQoJIAkJZnVuY3Rpb24gc29ydE51bWVyaWMoYSxiKSB7CgkJCQlyZXR1cm4gYS1iOwoJCQl9OwoJCQkKCQkJZnVuY3Rpb24gc29ydE51bWVyaWNEZXNjKGEsYikgewoJCQkJcmV0dXJuIGItYTsKCQkJfTsKCQkJCgkJCWZ1bmN0aW9uIGdldENhY2hlZFNvcnRUeXBlKHBhcnNlcnMsaSkgewoJCQkJcmV0dXJuIHBhcnNlcnNbaV0udHlwZTsKCQkJfTsKCQkJCgkJCS8qIHB1YmxpYyBtZXRob2RzICovCgkJCXRoaXMuY29uc3RydWN0ID0gZnVuY3Rpb24oc2V0dGluZ3MpIHsKCgkJCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgewoJCQkJCQoJCQkJCWlmKCF0aGlzLnRIZWFkIHx8ICF0aGlzLnRCb2RpZXMpIHJldHVybjsKCQkJCQkKCQkJCQl2YXIgJHRoaXMsICRkb2N1bWVudCwkaGVhZGVycywgY2FjaGUsIGNvbmZpZywgc2hpZnREb3duID0gMCwgc29ydE9yZGVyOwoJCQkJCQoJCQkJCXRoaXMuY29uZmlnID0ge307CgkJCQkJCgkJCQkJY29uZmlnID0gJC5leHRlbmQodGhpcy5jb25maWcsICQudGFibGVzb3J0ZXIuZGVmYXVsdHMsIHNldHRpbmdzKTsKCQkJCQkKCQkJCQkvLyBzdG9yZSBjb21tb24gZXhwcmVzc2lvbiBmb3Igc3BlZWQJCQkJCQoJCQkJCSR0aGlzID0gJCh0aGlzKTsKCQkJCQkKCQkJCQkvLyBidWlsZCBoZWFkZXJzCgkJCQkJJGhlYWRlcnMgPSBidWlsZEhlYWRlcnModGhpcyk7CgkJCQkJCgkJCQkJLy8gdHJ5IHRvIGF1dG8gZGV0ZWN0IGNvbHVtbiB0eXBlLCBhbmQgc3RvcmUgaW4gdGFibGVzIGNvbmZpZwoJCQkJCXRoaXMuY29uZmlnLnBhcnNlcnMgPSBidWlsZFBhcnNlckNhY2hlKHRoaXMsJGhlYWRlcnMpOwoJCQkJCQoJCQkJCQoJCQkJCS8vIGJ1aWxkIHRoZSBjYWNoZSBmb3IgdGhlIHRib2R5IGNlbGxzCgkJCQkJY2FjaGUgPSBidWlsZENhY2hlKHRoaXMpOwoJCQkJCQoJCQkJCS8vIGdldCB0aGUgY3NzIGNsYXNzIG5hbWVzLCBjb3VsZCBiZSBkb25lIGVsc2Ugd2hlcmUuCgkJCQkJdmFyIHNvcnRDU1MgPSBbY29uZmlnLmNzc0Rlc2MsY29uZmlnLmNzc0FzY107CgkJCQkJCgkJCQkJLy8gZml4YXRlIGNvbHVtbnMgaWYgdGhlIHVzZXJzIHN1cHBsaWVzIHRoZSBmaXhlZFdpZHRoIG9wdGlvbgoJCQkJCWZpeENvbHVtbldpZHRoKHRoaXMpOwoJCQkJCQoJCQkJCS8vIGFwcGx5IGV2ZW50IGhhbmRsaW5nIHRvIGhlYWRlcnMKCQkJCQkvLyB0aGlzIGlzIHRvIGJpZywgcGVyaGFwcyBicmVhayBpdCBvdXQ/CgkJCQkJJGhlYWRlcnMuY2xpY2soZnVuY3Rpb24oZSkgewoJCQkJCQkKCQkJCQkJJHRoaXMudHJpZ2dlcigic29ydFN0YXJ0Iik7CgkJCQkJCQoJCQkJCQl2YXIgdG90YWxSb3dzID0gKCR0aGlzWzBdLnRCb2RpZXNbMF0gJiYgJHRoaXNbMF0udEJvZGllc1swXS5yb3dzLmxlbmd0aCkgfHwgMDsKCQkJCQkJCgkJCQkJCWlmKCF0aGlzLnNvcnREaXNhYmxlZCAmJiB0b3RhbFJvd3MgPiAwKSB7CgkJCQkJCQkKCQkJCQkJCQoJCQkJCQkJLy8gc3RvcmUgZXhwLCBmb3Igc3BlZWQKCQkJCQkJCXZhciAkY2VsbCA9ICQodGhpcyk7CgkKCQkJCQkJCS8vIGdldCBjdXJyZW50IGNvbHVtbiBpbmRleAoJCQkJCQkJdmFyIGkgPSB0aGlzLmNvbHVtbjsKCQkJCQkJCQoJCQkJCQkJLy8gZ2V0IGN1cnJlbnQgY29sdW1uIHNvcnQgb3JkZXIKCQkJCQkJCXRoaXMub3JkZXIgPSB0aGlzLmNvdW50KysgJSAyOwoJCQkJCQkJCgkJCQkJCQkvLyB1c2VyIG9ubHkgd2hhbnRzIHRvIHNvcnQgb24gb25lIGNvbHVtbgoJCQkJCQkJaWYoIWVbY29uZmlnLnNvcnRNdWx0aVNvcnRLZXldKSB7CgkJCQkJCQkJCgkJCQkJCQkJLy8gZmx1c2ggdGhlIHNvcnQgbGlzdAoJCQkJCQkJCWNvbmZpZy5zb3J0TGlzdCA9IFtdOwoJCQkJCQkJCQoJCQkJCQkJCWlmKGNvbmZpZy5zb3J0Rm9yY2UgIT0gbnVsbCkgewoJCQkJCQkJCQl2YXIgYSA9IGNvbmZpZy5zb3J0Rm9yY2U7IAoJCQkJCQkJCQlmb3IodmFyIGo9MDsgaiA8IGEubGVuZ3RoOyBqKyspIHsKCQkJCQkJCQkJCWlmKGFbal1bMF0gIT0gaSkgewoJCQkJCQkJCQkJCWNvbmZpZy5zb3J0TGlzdC5wdXNoKGFbal0pOwoJCQkJCQkJCQkJfQoJCQkJCQkJCQl9CgkJCQkJCQkJfQoJCQkJCQkJCQoJCQkJCQkJCS8vIGFkZCBjb2x1bW4gdG8gc29ydCBsaXN0CgkJCQkJCQkJY29uZmlnLnNvcnRMaXN0LnB1c2goW2ksdGhpcy5vcmRlcl0pOwoJCQkJCQkJCgkJCQkJCQkvLyBtdWx0aSBjb2x1bW4gc29ydGluZwoJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQkvLyB0aGUgdXNlciBoYXMgY2xpY2tlZCBvbiBhbiBhbGwgcmVhZHkgc29ydGV0IGNvbHVtbi4KCQkJCQkJCQlpZihpc1ZhbHVlSW5BcnJheShpLGNvbmZpZy5zb3J0TGlzdCkpIHsJIAoJCQkJCQkJCQkKCQkJCQkJCQkJLy8gcmV2ZXJzIHRoZSBzb3J0aW5nIGRpcmVjdGlvbiBmb3IgYWxsIHRhYmxlcy4KCQkJCQkJCQkJZm9yKHZhciBqPTA7IGogPCBjb25maWcuc29ydExpc3QubGVuZ3RoOyBqKyspIHsKCQkJCQkJCQkJCXZhciBzID0gY29uZmlnLnNvcnRMaXN0W2pdLCBvID0gY29uZmlnLmhlYWRlckxpc3Rbc1swXV07CgkJCQkJCQkJCQlpZihzWzBdID09IGkpIHsKCQkJCQkJCQkJCQlvLmNvdW50ID0gc1sxXTsKCQkJCQkJCQkJCQlvLmNvdW50Kys7CgkJCQkJCQkJCQkJc1sxXSA9IG8uY291bnQgJSAyOwoJCQkJCQkJCQkJfQoJCQkJCQkJCQl9CQoJCQkJCQkJCX0gZWxzZSB7CgkJCQkJCQkJCS8vIGFkZCBjb2x1bW4gdG8gc29ydCBsaXN0IGFycmF5CgkJCQkJCQkJCWNvbmZpZy5zb3J0TGlzdC5wdXNoKFtpLHRoaXMub3JkZXJdKTsKCQkJCQkJCQl9CgkJCQkJCQl9OwoJCQkJCQkJc2V0VGltZW91dChmdW5jdGlvbigpIHsKCQkJCQkJCQkvL3NldCBjc3MgZm9yIGhlYWRlcnMKCQkJCQkJCQlzZXRIZWFkZXJzQ3NzKCR0aGlzWzBdLCRoZWFkZXJzLGNvbmZpZy5zb3J0TGlzdCxzb3J0Q1NTKTsKCQkJCQkJCQlhcHBlbmRUb1RhYmxlKCR0aGlzWzBdLG11bHRpc29ydCgkdGhpc1swXSxjb25maWcuc29ydExpc3QsY2FjaGUpKTsKCQkJCQkJCX0sMSk7CgkJCQkJCQkvLyBzdG9wIG5vcm1hbCBldmVudCBieSByZXR1cm5pbmcgZmFsc2UKCQkJCQkJCXJldHVybiBmYWxzZTsKCQkJCQkJfQoJCQkJCS8vIGNhbmNlbCBzZWxlY3Rpb24JCgkJCQkJfSkubW91c2Vkb3duKGZ1bmN0aW9uKCkgewoJCQkJCQlpZihjb25maWcuY2FuY2VsU2VsZWN0aW9uKSB7CgkJCQkJCQl0aGlzLm9uc2VsZWN0c3RhcnQgPSBmdW5jdGlvbigpIHtyZXR1cm4gZmFsc2V9OwoJCQkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJCQl9CgkJCQkJfSk7CgkJCQkJCgkJCQkJLy8gYXBwbHkgZWFzeSBtZXRob2RzIHRoYXQgdHJpZ2dlciBiaW5kZWQgZXZlbnRzCgkJCQkJJHRoaXMuYmluZCgidXBkYXRlIixmdW5jdGlvbigpIHsKCQkJCQkJCgkJCQkJCS8vIHJlYnVpbGQgcGFyc2Vycy4KCQkJCQkJdGhpcy5jb25maWcucGFyc2VycyA9IGJ1aWxkUGFyc2VyQ2FjaGUodGhpcywkaGVhZGVycyk7CgkJCQkJCQoJCQkJCQkvLyByZWJ1aWxkIHRoZSBjYWNoZSBtYXAKCQkJCQkJY2FjaGUgPSBidWlsZENhY2hlKHRoaXMpOwoJCQkJCQkKCQkJCQl9KS5iaW5kKCJzb3J0b24iLGZ1bmN0aW9uKGUsbGlzdCkgewoJCQkJCQkKCQkJCQkJJCh0aGlzKS50cmlnZ2VyKCJzb3J0U3RhcnQiKTsKCQkJCQkJCgkJCQkJCWNvbmZpZy5zb3J0TGlzdCA9IGxpc3Q7CgkJCQkJCQoJCQkJCQkvLyB1cGRhdGUgYW5kIHN0b3JlIHRoZSBzb3J0bGlzdAoJCQkJCQl2YXIgc29ydExpc3QgPSBjb25maWcuc29ydExpc3Q7CgkJCQkJCQoJCQkJCQkvLyB1cGRhdGUgaGVhZGVyIGNvdW50IGluZGV4CgkJCQkJCXVwZGF0ZUhlYWRlclNvcnRDb3VudCh0aGlzLHNvcnRMaXN0KTsKCQkJCQkJCgkJCQkJCS8vc2V0IGNzcyBmb3IgaGVhZGVycwoJCQkJCQlzZXRIZWFkZXJzQ3NzKHRoaXMsJGhlYWRlcnMsc29ydExpc3Qsc29ydENTUyk7CgkJCQkJCQoJCQkJCQkKCQkJCQkJLy8gc29ydCB0aGUgdGFibGUgYW5kIGFwcGVuZCBpdCB0byB0aGUgZG9tCgkJCQkJCWFwcGVuZFRvVGFibGUodGhpcyxtdWx0aXNvcnQodGhpcyxzb3J0TGlzdCxjYWNoZSkpOwoKCQkJCQl9KS5iaW5kKCJhcHBlbmRDYWNoZSIsZnVuY3Rpb24oKSB7CgkJCQkJCQoJCQkJCQlhcHBlbmRUb1RhYmxlKHRoaXMsY2FjaGUpOwoJCQkJCQoJCQkJCX0pLmJpbmQoImFwcGx5V2lkZ2V0SWQiLGZ1bmN0aW9uKGUsaWQpIHsKCQkJCQkJCgkJCQkJCWdldFdpZGdldEJ5SWQoaWQpLmZvcm1hdCh0aGlzKTsKCQkJCQkJCgkJCQkJfSkuYmluZCgiYXBwbHlXaWRnZXRzIixmdW5jdGlvbigpIHsKCQkJCQkJLy8gYXBwbHkgd2lkZ2V0cwoJCQkJCQlhcHBseVdpZGdldCh0aGlzKTsKCQkJCQl9KTsKCQkJCQkKCQkJCQlpZigkLm1ldGFkYXRhICYmICgkKHRoaXMpLm1ldGFkYXRhKCkgJiYgJCh0aGlzKS5tZXRhZGF0YSgpLnNvcnRsaXN0KSkgewoJCQkJCQljb25maWcuc29ydExpc3QgPSAkKHRoaXMpLm1ldGFkYXRhKCkuc29ydGxpc3Q7CgkJCQkJfQoJCQkJCS8vIGlmIHVzZXIgaGFzIHN1cHBsaWVkIGEgc29ydCBsaXN0IHRvIGNvbnN0cnVjdG9yLgoJCQkJCWlmKGNvbmZpZy5zb3J0TGlzdC5sZW5ndGggPiAwKSB7CgkJCQkJCSR0aGlzLnRyaWdnZXIoInNvcnRvbiIsW2NvbmZpZy5zb3J0TGlzdF0pOwkKCQkJCQl9CgkJCQkJCgkJCQkJLy8gYXBwbHkgd2lkZ2V0cwoJCQkJCWFwcGx5V2lkZ2V0KHRoaXMpOwoJCQkJfSk7CgkJCX07CgkJCQoJCQl0aGlzLmFkZFBhcnNlciA9IGZ1bmN0aW9uKHBhcnNlcikgewoJCQkJdmFyIGwgPSBwYXJzZXJzLmxlbmd0aCwgYSA9IHRydWU7CgkJCQlmb3IodmFyIGk9MDsgaSA8IGw7IGkrKykgewoJCQkJCWlmKHBhcnNlcnNbaV0uaWQudG9Mb3dlckNhc2UoKSA9PSBwYXJzZXIuaWQudG9Mb3dlckNhc2UoKSkgewoJCQkJCQlhID0gZmFsc2U7CgkJCQkJfQoJCQkJfQoJCQkJaWYoYSkgeyBwYXJzZXJzLnB1c2gocGFyc2VyKTsgfTsKCQkJfTsKCQkJCgkJCXRoaXMuYWRkV2lkZ2V0ID0gZnVuY3Rpb24od2lkZ2V0KSB7CgkJCQl3aWRnZXRzLnB1c2god2lkZ2V0KTsKCQkJfTsKCQkJCgkJCXRoaXMuZm9ybWF0RmxvYXQgPSBmdW5jdGlvbihzKSB7CgkJCQl2YXIgaSA9IHBhcnNlRmxvYXQocyk7CgkJCQlyZXR1cm4gKGlzTmFOKGkpKSA/IDAgOiBpOwoJCQl9OwoJCQl0aGlzLmZvcm1hdEludCA9IGZ1bmN0aW9uKHMpIHsKCQkJCXZhciBpID0gcGFyc2VJbnQocyk7CgkJCQlyZXR1cm4gKGlzTmFOKGkpKSA/IDAgOiBpOwoJCQl9OwoJCQkKCQkJdGhpcy5pc0RpZ2l0ID0gZnVuY3Rpb24ocyxjb25maWcpIHsKCQkJCXZhciBERUNJTUFMID0gJ1xcJyArIGNvbmZpZy5kZWNpbWFsOwoJCQkJdmFyIGV4cCA9ICcvKF5bK10/MCgnICsgREVDSU1BTCArJzArKT8kKXwoXihbLStdP1sxLTldWzAtOV0qKSQpfCheKFstK10/KCgwP3xbMS05XVswLTldKiknICsgREVDSU1BTCArJygwKlsxLTldWzAtOV0qKSkpJCl8KF5bLStdP1sxLTldK1swLTldKicgKyBERUNJTUFMICsnMCskKS8nOwoJCQkJcmV0dXJuIFJlZ0V4cChleHApLnRlc3QoJC50cmltKHMpKTsKCQkJfTsKCQkJCgkJCXRoaXMuY2xlYXJUYWJsZUJvZHkgPSBmdW5jdGlvbih0YWJsZSkgewoJCQkJaWYoJC5icm93c2VyLm1zaWUpIHsKCQkJCQlmdW5jdGlvbiBlbXB0eSgpIHsKCQkJCQkJd2hpbGUgKCB0aGlzLmZpcnN0Q2hpbGQgKSB0aGlzLnJlbW92ZUNoaWxkKCB0aGlzLmZpcnN0Q2hpbGQgKTsKCQkJCQl9CgkJCQkJZW1wdHkuYXBwbHkodGFibGUudEJvZGllc1swXSk7CgkJCQl9IGVsc2UgewoJCQkJCXRhYmxlLnRCb2RpZXNbMF0uaW5uZXJIVE1MID0gIiI7CgkJCQl9CgkJCX07CgkJfQoJfSk7CgkKCS8vIGV4dGVuZCBwbHVnaW4gc2NvcGUKCSQuZm4uZXh0ZW5kKHsKICAgICAgICB0YWJsZXNvcnRlcjogJC50YWJsZXNvcnRlci5jb25zdHJ1Y3QKCX0pOwoJCgl2YXIgdHMgPSAkLnRhYmxlc29ydGVyOwoJCgkvLyBhZGQgZGVmYXVsdCBwYXJzZXJzCgl0cy5hZGRQYXJzZXIoewoJCWlkOiAidGV4dCIsCgkJaXM6IGZ1bmN0aW9uKHMpIHsKCQkJcmV0dXJuIHRydWU7CgkJfSwKCQlmb3JtYXQ6IGZ1bmN0aW9uKHMpIHsKCQkJcmV0dXJuICQudHJpbShzLnRvTG93ZXJDYXNlKCkpOwoJCX0sCgkJdHlwZTogInRleHQiCgl9KTsKCQoJdHMuYWRkUGFyc2VyKHsKCQlpZDogImRpZ2l0IiwKCQlpczogZnVuY3Rpb24ocyx0YWJsZSkgewoJCQl2YXIgYyA9IHRhYmxlLmNvbmZpZzsKCQkJcmV0dXJuICQudGFibGVzb3J0ZXIuaXNEaWdpdChzLGMpOwoJCX0sCgkJZm9ybWF0OiBmdW5jdGlvbihzKSB7CgkJCXJldHVybiAkLnRhYmxlc29ydGVyLmZvcm1hdEZsb2F0KHMpOwoJCX0sCgkJdHlwZTogIm51bWVyaWMiCgl9KTsKCQoJdHMuYWRkUGFyc2VyKHsKCQlpZDogImN1cnJlbmN5IiwKCQlpczogZnVuY3Rpb24ocykgewoJCQlyZXR1cm4gL15bwqMk4oKsPy5dLy50ZXN0KHMpOwoJCX0sCgkJZm9ybWF0OiBmdW5jdGlvbihzKSB7CgkJCXJldHVybiAkLnRhYmxlc29ydGVyLmZvcm1hdEZsb2F0KHMucmVwbGFjZShuZXcgUmVnRXhwKC9bXjAtOS5dL2cpLCIiKSk7CgkJfSwKCQl0eXBlOiAibnVtZXJpYyIKCX0pOwoJCgl0cy5hZGRQYXJzZXIoewoJCWlkOiAiaXBBZGRyZXNzIiwKCQlpczogZnVuY3Rpb24ocykgewoJCQlyZXR1cm4gL15cZHsyLDN9W1wuXVxkezIsM31bXC5dXGR7MiwzfVtcLl1cZHsyLDN9JC8udGVzdChzKTsKCQl9LAoJCWZvcm1hdDogZnVuY3Rpb24ocykgewoJCQl2YXIgYSA9IHMuc3BsaXQoIi4iKSwgciA9ICIiLCBsID0gYS5sZW5ndGg7CgkJCWZvcih2YXIgaSA9IDA7IGkgPCBsOyBpKyspIHsKCQkJCXZhciBpdGVtID0gYVtpXTsKCQkJICAgCWlmKGl0ZW0ubGVuZ3RoID09IDIpIHsKCQkJCQlyICs9ICIwIiArIGl0ZW07CgkJCSAgIAl9IGVsc2UgewoJCQkJCXIgKz0gaXRlbTsKCQkJICAgCX0KCQkJfQoJCQlyZXR1cm4gJC50YWJsZXNvcnRlci5mb3JtYXRGbG9hdChyKTsKCQl9LAoJCXR5cGU6ICJudW1lcmljIgoJfSk7CgkKCXRzLmFkZFBhcnNlcih7CgkJaWQ6ICJ1cmwiLAoJCWlzOiBmdW5jdGlvbihzKSB7CgkJCXJldHVybiAvXihodHRwcz98ZnRwfGZpbGUpOlwvXC8kLy50ZXN0KHMpOwoJCX0sCgkJZm9ybWF0OiBmdW5jdGlvbihzKSB7CgkJCXJldHVybiBqUXVlcnkudHJpbShzLnJlcGxhY2UobmV3IFJlZ0V4cCgvKGh0dHBzP3xmdHB8ZmlsZSk6XC9cLy8pLCcnKSk7CgkJfSwKCQl0eXBlOiAidGV4dCIKCX0pOwoJCgl0cy5hZGRQYXJzZXIoewoJCWlkOiAiaXNvRGF0ZSIsCgkJaXM6IGZ1bmN0aW9uKHMpIHsKCQkJcmV0dXJuIC9eXGR7NH1bXC8tXVxkezEsMn1bXC8tXVxkezEsMn0kLy50ZXN0KHMpOwoJCX0sCgkJZm9ybWF0OiBmdW5jdGlvbihzKSB7CgkJCXJldHVybiAkLnRhYmxlc29ydGVyLmZvcm1hdEZsb2F0KChzICE9ICIiKSA/IG5ldyBEYXRlKHMucmVwbGFjZShuZXcgUmVnRXhwKC8tL2cpLCIvIikpLmdldFRpbWUoKSA6ICIwIik7CgkJfSwKCQl0eXBlOiAibnVtZXJpYyIKCX0pOwoJCQoJdHMuYWRkUGFyc2VyKHsKCQlpZDogInBlcmNlbnQiLAoJCWlzOiBmdW5jdGlvbihzKSB7IAoJCQlyZXR1cm4gL1wlJC8udGVzdCgkLnRyaW0ocykpOwoJCX0sCgkJZm9ybWF0OiBmdW5jdGlvbihzKSB7CgkJCXJldHVybiAkLnRhYmxlc29ydGVyLmZvcm1hdEZsb2F0KHMucmVwbGFjZShuZXcgUmVnRXhwKC8lL2cpLCIiKSk7CgkJfSwKCQl0eXBlOiAibnVtZXJpYyIKCX0pOwoKCXRzLmFkZFBhcnNlcih7CgkJaWQ6ICJ1c0xvbmdEYXRlIiwKCQlpczogZnVuY3Rpb24ocykgewoJCQlyZXR1cm4gcy5tYXRjaChuZXcgUmVnRXhwKC9eW0EtWmEtel17MywxMH1cLj8gWzAtOV17MSwyfSwgKFswLTldezR9fCc/WzAtOV17Mn0pICgoWzAtMl0/WzAtOV06WzAtNV1bMC05XSl8KFswLTFdP1swLTldOlswLTVdWzAtOV1ccyhBTXxQTSkpKSQvKSk7CgkJfSwKCQlmb3JtYXQ6IGZ1bmN0aW9uKHMpIHsKCQkJcmV0dXJuICQudGFibGVzb3J0ZXIuZm9ybWF0RmxvYXQobmV3IERhdGUocykuZ2V0VGltZSgpKTsKCQl9LAoJCXR5cGU6ICJudW1lcmljIgoJfSk7CgoJdHMuYWRkUGFyc2VyKHsKCQlpZDogInNob3J0RGF0ZSIsCgkJaXM6IGZ1bmN0aW9uKHMpIHsKCQkJcmV0dXJuIC9cZHsxLDJ9W1wvXC1dXGR7MSwyfVtcL1wtXVxkezIsNH0vLnRlc3Qocyk7CgkJfSwKCQlmb3JtYXQ6IGZ1bmN0aW9uKHMsdGFibGUpIHsKCQkJdmFyIGMgPSB0YWJsZS5jb25maWc7CgkJCXMgPSBzLnJlcGxhY2UoL1wtL2csIi8iKTsKCQkJaWYoYy5kYXRlRm9ybWF0ID09ICJ1cyIpIHsKCQkJCS8vIHJlZm9ybWF0IHRoZSBzdHJpbmcgaW4gSVNPIGZvcm1hdAoJCQkJcyA9IHMucmVwbGFjZSgvKFxkezEsMn0pW1wvXC1dKFxkezEsMn0pW1wvXC1dKFxkezR9KS8sICIkMy8kMS8kMiIpOwoJCQl9IGVsc2UgaWYoYy5kYXRlRm9ybWF0ID09ICJ1ayIpIHsKCQkJCS8vcmVmb3JtYXQgdGhlIHN0cmluZyBpbiBJU08gZm9ybWF0CgkJCQlzID0gcy5yZXBsYWNlKC8oXGR7MSwyfSlbXC9cLV0oXGR7MSwyfSlbXC9cLV0oXGR7NH0pLywgIiQzLyQyLyQxIik7CgkJCX0gZWxzZSBpZihjLmRhdGVGb3JtYXQgPT0gImRkL21tL3l5IiB8fCBjLmRhdGVGb3JtYXQgPT0gImRkLW1tLXl5IikgewoJCQkJcyA9IHMucmVwbGFjZSgvKFxkezEsMn0pW1wvXC1dKFxkezEsMn0pW1wvXC1dKFxkezJ9KS8sICIkMS8kMi8kMyIpOwkKCQkJfQoJCQlyZXR1cm4gJC50YWJsZXNvcnRlci5mb3JtYXRGbG9hdChuZXcgRGF0ZShzKS5nZXRUaW1lKCkpOwoJCX0sCgkJdHlwZTogIm51bWVyaWMiCgl9KTsKCgl0cy5hZGRQYXJzZXIoewoJICAgIGlkOiAidGltZSIsCgkgICAgaXM6IGZ1bmN0aW9uKHMpIHsKCSAgICAgICAgcmV0dXJuIC9eKChbMC0yXT9bMC05XTpbMC01XVswLTldKXwoWzAtMV0/WzAtOV06WzAtNV1bMC05XVxzKGFtfHBtKSkpJC8udGVzdChzKTsKCSAgICB9LAoJICAgIGZvcm1hdDogZnVuY3Rpb24ocykgewoJICAgICAgICByZXR1cm4gJC50YWJsZXNvcnRlci5mb3JtYXRGbG9hdChuZXcgRGF0ZSgiMjAwMC8wMS8wMSAiICsgcykuZ2V0VGltZSgpKTsKCSAgICB9LAoJICB0eXBlOiAibnVtZXJpYyIKCX0pOwoJCgkKCXRzLmFkZFBhcnNlcih7CgkgICAgaWQ6ICJtZXRhZGF0YSIsCgkgICAgaXM6IGZ1bmN0aW9uKHMpIHsKCSAgICAgICAgcmV0dXJuIGZhbHNlOwoJICAgIH0sCgkgICAgZm9ybWF0OiBmdW5jdGlvbihzLHRhYmxlLGNlbGwpIHsKCQkJdmFyIGMgPSB0YWJsZS5jb25maWcsIHAgPSAoIWMucGFyc2VyTWV0YWRhdGFOYW1lKSA/ICdzb3J0VmFsdWUnIDogYy5wYXJzZXJNZXRhZGF0YU5hbWU7CgkgICAgICAgIHJldHVybiAkKGNlbGwpLm1ldGFkYXRhKClbcF07CgkgICAgfSwKCSAgdHlwZTogIm51bWVyaWMiCgl9KTsKCQoJLy8gYWRkIGRlZmF1bHQgd2lkZ2V0cwoJdHMuYWRkV2lkZ2V0KHsKCQlpZDogInplYnJhIiwKCQlmb3JtYXQ6IGZ1bmN0aW9uKHRhYmxlKSB7CgkJCWlmKHRhYmxlLmNvbmZpZy5kZWJ1ZykgeyB2YXIgdGltZSA9IG5ldyBEYXRlKCk7IH0KCQkJJCgidHI6dmlzaWJsZSIsdGFibGUudEJvZGllc1swXSkKCSAgICAgICAgLmZpbHRlcignOmV2ZW4nKQoJICAgICAgICAucmVtb3ZlQ2xhc3ModGFibGUuY29uZmlnLndpZGdldFplYnJhLmNzc1sxXSkuYWRkQ2xhc3ModGFibGUuY29uZmlnLndpZGdldFplYnJhLmNzc1swXSkKCSAgICAgICAgLmVuZCgpLmZpbHRlcignOm9kZCcpCgkgICAgICAgIC5yZW1vdmVDbGFzcyh0YWJsZS5jb25maWcud2lkZ2V0WmVicmEuY3NzWzBdKS5hZGRDbGFzcyh0YWJsZS5jb25maWcud2lkZ2V0WmVicmEuY3NzWzFdKTsKCQkJaWYodGFibGUuY29uZmlnLmRlYnVnKSB7ICQudGFibGVzb3J0ZXIuYmVuY2htYXJrKCJBcHBseWluZyBaZWJyYSB3aWRnZXQiLCB0aW1lKTsgfQoJCX0KCX0pOwkKfSkoalF1ZXJ5KTs=]]></data>
	</file>
	<file>
	  <filename>/skeleton.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEpRdWVyeVRvb2xzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBIHRvb2xib3ggb2YgY29udmVuaWVuY2VzIHRvIHByb3ZpZGUgZHluYW1pYyBqYXZhc2NyaXB0eSBmdW5jdGlvbmFsaXR5CiMgIGZvciBDTVMgbW9kdWxlcyBhbmQgd2Vic2l0ZSBkZXNpZ25lcnMuCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/incjs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CjwhLS0gSlF1ZXJ5VG9vbHMgLS0+CntpZiBpc3NldCgkbGlicyl9Cntmb3JlYWNoIGZyb209JGxpYnMgaXRlbT0nb25lJ30KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ieyRiYXNlX3VybH17JG9uZX0iPjwvc2NyaXB0Pgp7L2ZvcmVhY2h9CnsvaWZ9Cgp7aWYgaXNzZXQoJGNzcyl9Cntmb3JlYWNoIGZyb209JGNzcyBpdGVtPSdvbmUnfQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJ7JGJhc2VfdXJsfWNzcy97JG9uZX0iIG1lZGlhPSJzY3JlZW4iIC8+CnsvZm9yZWFjaH0Key9pZn0K]]></data>
	</file>
	<file>
	  <filename>/templates/ready.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVyZSB3ZSBzZXQgZGVmYXVsdCB2YWx1ZXMgYW5kIGF0dHJpYnV0ZXMgZm9yIHRoZSBsaWJzIHRoYXQgYXJlIGxvYWRlZC4gKn0NCntsaXRlcmFsfQ0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KalF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKQ0KICAgIHsNCgl7L2xpdGVyYWx9e2lmIGlzc2V0KCRqcXVlcnlfbGlicy50YWJsZXNvcnRlcil9e2xpdGVyYWx9DQogICAgICAgIGpRdWVyeSgiLmNtc19zb3J0YWJsZSIpDQogICAgICAgICAgICAgICAgLnRhYmxlc29ydGVyKHt3aWR0aEZpeGVkOiB0cnVlLCB3aWRnZXRzOiBbJ3plYnJhJ119KQ0KICAgICAgICB7L2xpdGVyYWx9ey9pZn17bGl0ZXJhbH0NCgkJDQoJCXsvbGl0ZXJhbH17aWYgaXNzZXQoJGpxdWVyeV9saWJzLmxpZ2h0Ym94KX17bGl0ZXJhbH0NCgkJalF1ZXJ5KCdhW0ByZWwqPWxpZ2h0Ym94XScpLmxpZ2h0Qm94KCk7DQoJey9saXRlcmFsfXsvaWZ9e2xpdGVyYWx9DQoJDQoJey9saXRlcmFsfXtpZiBpc3NldCgkanF1ZXJ5X2xpYnMuY2x1ZXRpcCl9e2xpdGVyYWx9DQogICAgICAgIGpRdWVyeSgiYS50b29sdGlwIikuY2x1ZXRpcCh7bG9jYWw6dHJ1ZSwgY3Vyc29yOiAncG9pbnRlcid9KTsNCgl7L2xpdGVyYWx9ey9pZn17bGl0ZXJhbH0NCgkNCn0pOyAgLy9lbmQNCjwvc2NyaXB0Pg0Key9saXRlcmFsfQ0K]]></data>
	</file>
</module>
