<?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>iCal</name>
	<version>0.1</version>
  <mincmsversion>1.6.5</mincmsversion>
	<help>PGxpbmsgbWVkaWE9InNjcmVlbiIgaHJlZj0iLi4vbW9kdWxlcy9pQ2FsL0NTUy9NYXN0ZXJDU1MuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0Ij48ZGl2IGNsYXNzPSJTaW1XcmFwIj48YiBjbGFzcz0icmJvdHRvbSI+PGIgY2xhc3M9InIxIj48L2I+IDxiIGNsYXNzPSJyMiI+PC9iPjxiIGNsYXNzPSJyMyI+PC9iPiA8YiBjbGFzcz0icjQiPjwvYj48L2I+DQoNCjxkaXYgY2xhc3M9IlNpbWNvbiI+PGgzIGNsYXNzPSJCYWNrTGluayI+PGEgb25jbGljaz0iamF2YXNjcmlwdDp3aW5kb3cuaGlzdG9yeS5nbygtMSkiIHJlbD0ibm9mb2xsb3ciPiZsdDsmbHQ7IEJhY2s8L2E+PC9oMz4NCjxoMz5XaGF0IERvZXMgVGhpcyBEbz8tLS0gdGhpcyBuZWVkcyB1cGRhdGluZzwvaDM+DQo8cD5NYWtlIGFuZCBtYW5hZ2UgaUNhbCBmaWxlczwvcD4NCg0KDQo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4NCg0KDQo8YnIvPjxici8+DQoNCjxoMz5HZXQgdGhlIGJ1dHRvbjwvaDM+DQp1c2UgPHNwYW4gY2xhc3M9ImNvZGVISUdITElHSFQiPntjbXNfbW9kdWxlIG1vZHVsZT1pQ2FsIE1vZGU9ImRlZmF1bHQiIEJ0bj0iQkxTQnRuIn0gPC9zcGFuPiA8YnIvPjxici8+DQoNCg0KDQoNCjxoMT5BbGwgb3V0cHV0IGlzIGluIHRoZSBYSFRNTCBmb3JtYXQsIHlvdSBzaG91bGQgd29yayBpbiB0aGF0LjwvaDE+DQoNCjxici8+PGJyLz4NCjxoND5QYXJhbXM8L2g0Pg0KPHVsPg0KPGxpPjxzdHJvbmc+TW9kZT0iZGVmYXVsdCI8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBkZWZhdWx0PGJyLz58IHJlY2VpdmVyPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+QnRuPSIiIDwvc3Ryb25nPjxlbT4oUmVxdWlyZWQpPC9lbT4gPGJyLz58IHNldCB0aGUgYWxpYXM8YnIvPjwvbGk+DQoNCjwvdWw+DQo8YnIvPg0KDQoNCjxoMz5TdXBwb3J0PC9oMz4NCjxoND5TY3JlZW5jYXN0cyBmb3IgZXh0cmEgaGVscCB3aWxsIGZhbGxvdy0tLSBvbiB0aGUgVE9ETzwvaDQ+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSBvciB0byBmaWxlIGEgYnVnIHJlcG9ydCB2aXNpdCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3BwYm0iPnRoZSBDTVMgRm9yZ2U8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8L3VsPg0KDQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwOSwgamVyZW15QmFzcyAmbHQ7PGEgaHJlZj0iaHR0cDovL2NvcmJlbnNwcm9kdWN0cy5jb20iPmNvcmJlbnNwcm9kdWN0cy5jb208L2E+Jmd0OyBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8c3Ryb25nPlN1cHBvcnQgbW9yZSBtb2RzIGxpa2UgdGhpczo8L3N0cm9uZz48Zm9ybSBhY3Rpb249Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vY2dpLWJpbi93ZWJzY3IiIG1ldGhvZD0icG9zdCI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjbWQiIHZhbHVlPSJfcy14Y2xpY2siPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaG9zdGVkX2J1dHRvbl9pZCIgdmFsdWU9Ijg4MTc2NzUiPg0KPGlucHV0IHR5cGU9ImltYWdlIiBzcmM9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9idG4vYnRuX2RvbmF0ZV9MRy5naWYiIGJvcmRlcj0iMCIgbmFtZT0ic3VibWl0IiBhbHQ9IlBheVBhbCAtIFRoZSBzYWZlciwgZWFzaWVyIHdheSB0byBwYXkgb25saW5lISI+DQo8aW1nIGFsdD0iIiBib3JkZXI9IjAiIHNyYz0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL3Njci9waXhlbC5naWYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPg0KPC9mb3JtPjxici8+DQoNCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+DQo8L2RpdiA+DQoNCg0KPGIgY2xhc3M9InJib3R0b20iPjxiIGNsYXNzPSJyNCI+PC9iPjxiIGNsYXNzPSJyMyI+PC9iPiA8YiBjbGFzcz0icjIiPjwvYj4gPGIgY2xhc3M9InIxIj48L2I+PC9iPg0KDQo8L2Rpdj4NCjxoMz5QYXJhbWV0ZXJzPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGFuZz0iZW5fVVMiIC0gUGFyYW1ldGVyIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGF0IGxhbmd1YWdlIHRvIHVzZSBmb3IgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQuIE5vdCBhbGwgbW9kdWxlcyBzdXBwb3J0IG9yIG5lZWQgdGhpcy48L2xpPjwvdWw+</help>
	<about>PGJyIC8+QXV0aG9yOiBqZXJlbXlCYXNzICZsdDtqZXJlbXliYXNzQGNhYmxlb25lLm5ldCZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAwLjE8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz4NCjx1bD4NCg0KICA8bGk+VmVyc2lvbiAwLjEgQmV0YSByZWxlYXNlLjwvbGk+DQo8L3VsPjxiciAvPg==</about>
	<description>iCal is a iCal manager. Let a user add an event in to their own calendar</description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.clearCache.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogaUNhbCAtIGlDYWwgQ3JlYXRvciBhbmQgTWFuYWdlciANCiMgTW9kIGRlc2lnbmVkIGJ5IGplcmVteUJhc3MgKGplcmVteUJhc3NAY2FibGVvbmUubmV0KQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2lDYWwvDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KZ2xvYmFsICRnQ21zOw0KCQkkY29uZmlnID0mICRnQ21zLT5HZXRDb25maWcoKTsNCglpZihpc3NldCgkX1BPU1RbJ2NsZWFyY2FjaGUnXSkmJiRfUE9TVFsnY2xlYXJjYWNoZSddPT0xKXsNCgkJJGRpcnBhdGg9JGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uIi9pQ2FsLyI7DQoJCSRkZWxldGVkID0gJHRoaXMtPnJlY3Vyc2l2ZV9ybWRpcigkZGlycGF0aCk7DQoJCWlmKCRkZWxldGVkKXsNCgkJCWVjaG8gIjxoMj5DbGVhcmVkICRkaXJwYXRoPC9oMj4iOw0KCQl9ZWxzZXsNCgkJCWVjaG8gIjxoMj5Tb3JyeTogJGRpcnBhdGg8YnIvPjxmb250IGNvbG9yPVwicmVkXCI+PHN0cm9uZz5ET0VTIE5PVCB5ZXQgZXhpc3QgcnVuIHRoZSBwbHVnLWluIG9uIGFuIGltYWdlIGZpcnN0Ljwvc3Ryb25nPjwvZm9udD48YnIvPjwvaDI+IjsNCgkJfQ0KCX0NCgkNCgllY2hvICI8c3BhbiBzdHlsZT1cImZsb2F0OnJpZ2h0OyBjb2xvcjojMDA2NkNDOyBmb250LXdlaWdodDo5MDA7XCI+WW91ciBjYWNoZSBwYXRoIGlzOiAiLiRjb25maWdbJ3VwbG9hZHNfcGF0aCddLiIvaUNhbC88L3NwYW4+IjsNCgkNCgllY2hvJzxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY2xlYXJjYWNoZSIgdmFsdWU9IjEiPjxpbnB1dCBuYW1lPSIiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IkNsZWFyIHRoZSBjYWNoZSIgLz4NCjwvZm9ybT4nOw0KDQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogaUNhbCAtIGlDYWwgQ3JlYXRvciBhbmQgTWFuYWdlciANCiMgTW9kIGRlc2lnbmVkIGJ5IGplcmVteUJhc3MgKGplcmVteUJhc3NAY2FibGVvbmUubmV0KQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2lDYWwvDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQogLy8kdGhpcy0+QWRkRXZlbnRGb3JtKCRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsNCi8vaWYoJHRoaXMtPkNoZWNrQk9PS0lFVXNlcigpKXsNCg0KCS8vZ2xvYmFsICRnQ21zOw0KCSRjb25maWcgPSYgJGdDbXMtPkdldENvbmZpZygpOyANCgkNCgkkRXJyb3JOb3RFbmRtZXM9IlRoZSB3cm9uZyBvciBub25lIGV4aXN0aW5nIGJ1dHRvbiB3YXMgdXNlZC4gIFBsZWFzZSBjaGVjayB0aGUgYWRtaW4gc2V0dGluZ3MuIjsNCglpZigkdGhpcy0+Y2hlY2tBQlROKCRwYXJhbXNbJ0J0biddKT09dHJ1ZSl7ZXh0cmFjdCgkdGhpcy0+TGlzdEFCVE4oJHBhcmFtc1snQnRuJ10pKTt9ZWxzZXtlY2hvICRFcnJvck5vdEVuZG1lcztyZXR1cm4gO30NCgkNCgkJDQoJDQoJJHNtYXJ0eU9uID0gaXNzZXQoJHNtYXJ0eU9uKSA/ICRzbWFydHlPbjokdGhpcy0+R2V0UHJlZmVyZW5jZSgnc21hcnR5T24nLDApOw0KCSRub091dFB1dCA9IGlzc2V0KCRwYXJhbXNbJ25vT3V0UHV0J10pID8gJHBhcmFtc1snbm9PdXRQdXQnXTpmYWxzZTsNCgkkVVJMPSBpc3NldCgkcGFyYW1zWydVUkwnXSkgPyAkcGFyYW1zWydVUkwnXTowOw0KCSRQcmVmaXggPSBpc3NldCgkUHJlZml4KSA/ICRQcmVmaXg6Jyc7DQoJJFN1ZmZpeCA9IGlzc2V0KCRTdWZmaXgpID8gJFN1ZmZpeDonJzsNCgkkU3ViZGlyID0gaXNzZXQoJFN1YmRpcikgPyAkU3ViZGlyOiIiOw0KCSRmaWxlYmFzZW5hbWUgPSBpc3NldCgkZmlsZWJhc2VuYW1lKSA/ICRmaWxlYmFzZW5hbWU6c3RydG90aW1lKCJub3ciKS5tdF9yYW5kKCk7DQoJJFRaSUQgPSBpc3NldCgkVFpJRCkgPyAkVFpJRDokdGhpcy0+R2V0UHJlZmVyZW5jZSgnVFpJRCcsIlVTLVBhY2lmaWMiKTsNCgkkVFpOQU1FID0gIlBTVCI7IC8vLyBpbmZlciBmcm9tICRUWklEDQoJJGRheWxpZ2h0U2F2aW5nID0gaXNzZXQoJGRheWxpZ2h0U2F2aW5nKSA/ICRkYXlsaWdodFNhdmluZzokdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGF5bGlnaHRTYXZpbmcnLHRydWUpOyAvLyBpZiB0dXJuIGluZmVyIGZyb20gJFRaSUQNCgkkQ0FMX1VSTCA9IGlzc2V0KCRDQUxfVVJMKSA/ICRDQUxfVVJMOiR0aGlzLT5HZXRQcmVmZXJlbmNlKCdDQUxfVVJMJywkY29uZmlnWydyb290X3VybCddKTsNCgkkRFRTVEFSVCA9IGlzc2V0KCREVFNUQVJUKSA/ICREVFNUQVJUOicnOw0KCSREVEVORCA9IGlzc2V0KCREVEVORCkgPyAkRFRFTkQ6Jyc7DQoJJExPQ0FUSU9OID0gaXNzZXQoJExPQ0FUSU9OKSA/ICRMT0NBVElPTjonJzsNCgkkU1VNTUFSWSA9IGlzc2V0KCRTVU1NQVJZKSA/ICRTVU1NQVJZOicnOw0KCSRDQVRFR09SSUVTID0gaXNzZXQoJENBVEVHT1JJRVMpID8gJENBVEVHT1JJRVM6Jyc7DQoJJERFU0NSSVBUSU9OID0gaXNzZXQoJERFU0NSSVBUSU9OKSA/ICRERVNDUklQVElPTjonJzsNCgkkTUFJTFRPID0gaXNzZXQoJE1BSUxUTykgPyAkTUFJTFRPOicnOw0KCSRsaW5rdGV4dCA9IGlzc2V0KCRsaW5rdGV4dCkgPyAkbGlua3RleHQ6JHRoaXMtPkdldFByZWZlcmVuY2UoJ2xpbmt0ZXh0JywkdGhpcy0+TGFuZygnbGlua3RleHQnKSk7DQoJJGNsYXNzID0gaXNzZXQoJGNsYXNzKSA/ICcgY2xhc3M9IicuJGNsYXNzLiciICc6Jyc7DQoJJGFsdCA9IGlzc2V0KCRhbHQpID8gJyBhbHQ9IicuJGFsdC4nIiAnOicnOw0KCSRpZHMgPSBpc3NldCgkaWRzKSA/ICcgaWQ9IicuJGlkcy4nIiAnOicnOw0KCSR0aXRsZSA9IGlzc2V0KCR0aXRsZSkgPyAnIHRpdGxlPSInLiR0aXRsZS4nIiAnOicnOw0KCSRzdHlsZSA9IGlzc2V0KCRzdHlsZSkgPyAnIHN0eWxlPSInLiRzdHlsZS4nIiAnOicnOw0KCSR0YXJnZXQgPSBpc3NldCgkdGFyZ2V0KSA/ICcgdGFyZ2V0PSInLiR0YXJnZXQuJyIgJzonJzsNCgkkYXNzaWduID0gaXNzZXQoJGFzc2lnbikgPyAkYXNzaWduOicnOw0KCSRjYWNoZUJ1c3RlciA9IGlzc2V0KCRjYWNoZUJ1c3RlcikgPyAkY2FjaGVCdXN0ZXI6JHRoaXMtPkdldFByZWZlcmVuY2UoJ2NhY2hlQnVzdGVyJyxmYWxzZSk7DQoJJHJvb3RVcmwgPSBpc3NldCgkcm9vdFVybCkgPyAkcm9vdFVybCA6ICRjb25maWdbJ3VwbG9hZHNfdXJsJ107DQoJDQoJaWYoJHNtYXJ0eU9uPT0xKXsNCgkJJFByZWZpeD0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJFByZWZpeCk7DQoJCSRTdWZmaXg9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRTdWZmaXgpOw0KCQkkU3ViZGlyPSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkU3ViZGlyKTsNCgkJJGZpbGViYXNlbmFtZT0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJGZpbGViYXNlbmFtZSk7DQoJCSRUWklEPSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkVFpJRCk7DQoJCSRDQUxfVVJMPSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkQ0FMX1VSTCk7DQoJCSREVFNUQVJUPSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkRFRTVEFSVCk7DQoJCSREVEVORD0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJERURU5EKTsNCgkJJExPQ0FUSU9OPSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkTE9DQVRJT04pOw0KCQkkU1VNTUFSWT0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJFNVTU1BUlkpOw0KCQkkQ0FURUdPUklFUz0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJENBVEVHT1JJRVMpOw0KCQkkREVTQ1JJUFRJT049JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRERVNDUklQVElPTik7DQoJCSRsaW5rdGV4dD0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJGxpbmt0ZXh0KTsNCgkJJE1BSUxUTz0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJE1BSUxUTyk7DQoJCSRhbHQ9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRhbHQpOw0KCQkkaWRzPSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkaWRzKTsNCgkJJGNsYXNzPSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkY2xhc3MpOw0KCQkkdGl0bGU9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCR0aXRsZSk7DQoJfQ0KCQ0KCWlmKGlzc2V0KCRTdWJkaXIpKXsNCgkJaWYgKChzdWJzdHIoJFN1YmRpciwgMCwxKSk9PSIvIil7c3Vic3RyX3JlcGxhY2UoJFN1YmRpciwgJycsIDAsIDEpO30NCgkJaWYgKChzdWJzdHIoJFN1YmRpciwgLTEpKSE9Ii8iKXskU3ViZGlyLj0iLyI7fQ0KCX0NCgkJDQoJJGZpbGVuYW1lPSRjb25maWdbJ3VwbG9hZHNfcGF0aCddLiIvaUNhbC8iLiRTdWJkaXIuJFByZWZpeC4kZmlsZWJhc2VuYW1lLiRTdWZmaXguIi5pY3MiOwkNCgkkZmlsZUxJTks9JHJvb3RVcmwuIi91cGxvYWRzL2lDYWwvIi4kU3ViZGlyLiRQcmVmaXguJGZpbGViYXNlbmFtZS4kU3VmZml4LiIuaWNzIjsNCgkNCgkNCgkvLy90b2RvIE5lZWQgdG8gY2hlY2sgb2xkIGZpbGUuLi4gaWUgdGhlIGV2ZW50IHdhcyB1cGRhdGVkLi4uIA0KDQoJaWYoZmlsZV9leGlzdHMoJGZpbGVuYW1lKSl7DQoJCWlmKCRkZWJ1Z0lUPT10cnVlKXsNCgkJCQl1bmxpbmsgKCRmaWxlbmFtZSk7DQoJCQkJLy9zbWFydHlfY21zX2Z1bmN0aW9uX3N1cGVyc2l6ZXIoJHBhcmFtcywgJiRzbWFydHkpOw0KCQl9ZWxzZWlmKGZpbGVtdGltZSgkZmlsZW5hbWUpIDwgc3RydG90aW1lKCJub3ciKSl7DQoJCQkJdW5saW5rICgkZmlsZW5hbWUpOw0KCQl9DQoJfQ0KLy8vdG9kbyBOZWVkIHRvIGNoZWNrIG9sZCBmaWxlLi4uIGllIHRoZSBldmVudCB3YXMgdXBkYXRlZC4uLiANCglpZighZmlsZV9leGlzdHMoJGZpbGVuYW1lKSl7DQoJCWlmKCFmaWxlX2V4aXN0cygkY29uZmlnWyd1cGxvYWRzX3BhdGgnXS4iL2lDYWwvIi4kU3ViZGlyKSl7DQoJCQlta2RpcigkY29uZmlnWyd1cGxvYWRzX3BhdGgnXS4iL2lDYWwvIi4kU3ViZGlyLCAwNzc3LCB0cnVlKTsNCgkJfQ0KDQoNCg0KDQoJCSRvdXJGaWxlTmFtZSA9ICRmaWxlbmFtZTsNCgkJJG91ckZpbGVIYW5kbGUgPSBmb3Blbigkb3VyRmlsZU5hbWUsICd3Jykgb3IgZGllKCJjYW4ndCBvcGVuIGZpbGUiKTsNCgkJZmNsb3NlKCRvdXJGaWxlSGFuZGxlKTsNCgkJJGV2ZW50PSJCRUdJTjpWQ0FMRU5EQVINCgkJUFJPRElEOi0vL05DSVRBLy9ub3J0aGNlbnRyYWxpZGFoby5vcmcgMS4wLy9FTg0KCQlWRVJTSU9OOjEuMA0KCQlCRUdJTjpWRVZFTlQNCgkJQkVHSU46VlRJTUVaT05FDQoJCVRaSUQ6Ii4kVFpJRC4iDQoJCUxBU1QtTU9ESUZJRUQ6MTk4NzAxMDFUMDAwMDAwWg0KCQlUWlVSTDpodHRwOi8vem9uZXMuc3Rkc19yX3VzLm5ldC90ei8iLiRUWklELiINCgkJQkVHSU46U1RBTkRBUkQNCgkJRFRTVEFSVDoyMDA3MTEwNFQwMjAwMDANCgkJUlJVTEU6RlJFUT1ZRUFSTFk7QllEQVk9LTFTVTtCWU1PTlRIPTExDQoJCVRaT0ZGU0VURlJPTTotMDcwMA0KCQlUWk9GRlNFVFRPOi0wODAwDQoJCVRaTkFNRTpQU1QNCgkJRU5EOlNUQU5EQVJEDQoJCUJFR0lOOkRBWUxJR0hUDQoJCURUU1RBUlQ6MjAwNzAzMTFUMDIwMDAwDQoJCVJSVUxFOkZSRVE9WUVBUkxZO0JZREFZPTFTVTtCWU1PTlRIPTMNCgkJVFpPRkZTRVRGUk9NOi0wODAwDQoJCVRaT0ZGU0VUVE86LTA3MDANCgkJVFpOQU1FOlBEVA0KCQlFTkQ6REFZTElHSFQNCgkJRU5EOlZUSU1FWk9ORQ0KCQlVUkw6Ii4kQ0FMX1VSTC4iDQoJCU9SR0FOSVpFUjpNQUlMVE86Ii4kTUFJTFRPLiINCgkJRFRTVEFSVDtUWklEPSIuJFRaSUQuIjoiLiREVFNUQVJULiINCgkJRFRFTkQ7VFpJRD0iLiRUWklELiI6Ii4kRFRFTkQuIg0KCQlMT0NBVElPTjoiLiRMT0NBVElPTi4iDQoJCVNVTU1BUlk6Ii4kU1VNTUFSWS4iDQoJCVNFUVVFTkNFOjANCgkJVUlEOjENCgkJQ0FURUdPUklFUzoiLiRDQVRFR09SSUVTLiINCgkJREVTQ1JJUFRJT046Ii4kREVTQ1JJUFRJT04uIg0KCQlFTkQ6VkVWRU5UDQoJCUVORDpWQ0FMRU5EQVINCgkJIjsNCgkNCgkJLy8gR0VUIExFTkdUSCwgQU5EIFNUT1JFIERBVEEgVE8gT1VSIFNFUlZFUiAoT1IgREFUQSBCQVNFKQ0KCQkkbGVuID0gc3RybGVuKCRldmVudCk7DQoJCSRjaGsgPSBmaWxlX3B1dF9jb250ZW50cygkZmlsZW5hbWUsICRldmVudCk7DQoJCQ0KCQkvLyBURVNUIEZPUiBTVUNDRVNTRlVMIFNUT1JBR0UNCgkJaWYgKCRsZW4hPSRjaGspIGRpZSgiTEVOR1RIIE1JU01BVENIIik7DQoNCgkJaWYoJGRlYnVnSVQ9PXRydWUpew0KCQkJZWNobyAnPGgyIGNsYXNzPSJ0aXRsZSI+T3JpZ2luYWwgSW1hZ2U8L2gyPjxwcmU+JzsNCgkJCXByaW50X3IoJG9ialJlc2l6ZS0+ZmluZFJlc291cmNlRGV0YWlscygkb2JqUmVzaXplLT5yZXNPcmlnaW5hbEltYWdlKSk7DQoJCQllY2hvICc8L3ByZT48aDIgY2xhc3M9InRpdGxlIj5SZXNpemVkIEltYWdlPC9oMj48cHJlPic7DQoJCQlwcmludF9yKCRvYmpSZXNpemUtPmZpbmRSZXNvdXJjZURldGFpbHMoJG9ialJlc2l6ZS0+cmVzUmVzaXplZEltYWdlKSk7IA0KCQkJZWNobyAnPC9wcmU+JzsNCgkJCWVycm9yX3JlcG9ydGluZyhFX0FMTCk7DQoJCX0NCgl9DQoJaWYoJG5vT3V0UHV0PT1mYWxzZSl7DQoJCQ0KCQlpZigkY2FjaGVCdXN0ZXI9PXRydWUpew0KCQkJJGZpbGVMSU5LPSRmaWxlTElOSy4iPyIuZmlsZW10aW1lKCRmaWxlbmFtZSk7DQoJCX0NCg0KCQlpZigkVVJMPT0wKXsNCgkJCWlmKCRhc3NpZ24hPScnKXsNCgkJCQkkc21hcnR5LT5hc3NpZ24oJGFzc2lnbiwiPGEgaHJlZj1cIiRmaWxlTElOS1wiICR0aXRsZSAkaWRzICRjbGFzcyAkYWx0ICRzdHlsZSAkdGFyZ2V0ID4kbGlua3RleHQ8L2E+Iik7DQoJCQl9ZWxzZXsNCgkJCQllY2hvICI8YSBocmVmPVwiJGZpbGVMSU5LXCIgJHRpdGxlICRpZHMgJGNsYXNzICRhbHQgJHN0eWxlICR0YXJnZXQgPiRsaW5rdGV4dDwvYT4iOw0KCQkJfQ0KCQl9ZWxzZXsNCgkJCWlmKCRhc3NpZ24hPScnKXsNCgkJCQkkc21hcnR5LT5hc3NpZ24oJGFzc2lnbiwkZmlsZUxJTkspOw0KCQkJfWVsc2V7DQoJCQkJZWNobyAkZmlsZUxJTks7DQoJCQl9DQoJCX0NCgkJDQoJfQ0KDQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogaUNhbCAtIGlDYWwgQ3JlYXRvciBhbmQgTWFuYWdlciANCiMgTW9kIGRlc2lnbmVkIGJ5IGplcmVteUJhc3MgKGplcmVteUJhc3NAY2FibGVvbmUubmV0KQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2lDYWwvDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCiMNCiNUaGUgdGFiIGhlYWRlcnMNCiMNCmVjaG8gJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCi8vPCFbQ0RBVEFbDQpsb2FkID0gZnVuY3Rpb24oKSB7DQogICAgbG9hZC5nZXRTY3JpcHQoIi4uL21vZHVsZXMvaUNhbC9pbmNsdWRlcy9NU18xLjAwLjAwLmpzIik7DQogICAgLy8gZG8gc3R1ZmYgd2hlbiBqUXVlcnkgZmluaXNoZXMgbG9hZGluZy4NCiAgICBsb2FkLnRyeVJlYWR5KDApOw0KfQ0KbG9hZC5nZXRTY3JpcHQgPSBmdW5jdGlvbihmaWxlbmFtZSkgew0KICAgIHZhciBmaWxlcmVmID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0IikNCiAgICBmaWxlcmVmLnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQvamF2YXNjcmlwdCIpDQogICAgZmlsZXJlZi5zZXRBdHRyaWJ1dGUoInNyYyIsIGZpbGVuYW1lKQ0KICAgIGlmICh0eXBlb2YgZmlsZXJlZiE9InVuZGVmaW5lZCIpDQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoZmlsZXJlZikNCn0NCmxvYWQudHJ5UmVhZHkgPSBmdW5jdGlvbih0aW1lX2VsYXBzZWQpIHsNCiAgICAvKiBDb250aW51YWxseSBwb2xscyBmb3IgalF1ZXJ5IGxpYnJhcnkuICovDQogICAgaWYgKHR5cGVvZiAkID09ICJ1bmRlZmluZWQiKSB7DQogICAgICAgIGlmICh0aW1lX2VsYXBzZWQgPD0gNTAwMCkgew0KICAgICAgICAgICAgc2V0VGltZW91dCgibG9hZC50cnlSZWFkeSgiICsgKHRpbWVfZWxhcHNlZCArIDIwMCkgKyAiKSIsIDIwMCk7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBhbGVydCgiVGltZWQgb3V0IHdoaWxlIGxvYWRpbmcgalF1ZXJ5LiIpDQogICAgICAgIH0NCiAgICB9DQp9DQppZiAodHlwZW9mKHdpbmRvdy5qUXVlcnkpPT0idW5kZWZpbmVkIil7DQoJCWxvYWQoKTsgICANCn0NCgkNCgkNCg0KCQ0KCS8vXV0+DQoNCjwvc2NyaXB0Pg0KDQo8bGluayBtZWRpYT0ic2NyZWVuIiBocmVmPSIuLi9tb2R1bGVzL2lDYWwvQ1NTL01hc3RlckNTUy5jc3MiIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIC8+DQo8bGluayBtZWRpYT0ic2NyZWVuIiBocmVmPSIuLi9tb2R1bGVzL2lDYWwvQ1NTL2ZhcmJ0YXN0aWMuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiAvPg0KDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vY2RuLmpxdWVyeXRvb2xzLm9yZy8xLjEuMi90aW55L2pxdWVyeS50b29scy5taW4uanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vbW9kdWxlcy9pQ2FsL2luY2x1ZGVzL2ZhcmJ0YXN0aWMuanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vbW9kdWxlcy9pQ2FsL2luY2x1ZGVzL01FXzEuMDAuMDAuanMiPjwvc2NyaXB0Pg0KDQoNCjxkaXYgaWQ9ImRlbW90aXAiPiZuYnNwOzwvZGl2Pg0KDQonOw0KDQoNCg0KaWYgKEZBTFNFID09IGVtcHR5KCRwYXJhbXNbJ2FjdGl2ZV90YWInXSkpew0KCSR0YWIgPSAkcGFyYW1zWydhY3RpdmVfdGFiJ107DQp9IGVsc2Ugew0KCSR0YWIgPSAnJzsNCn0NCiR0YWJJcz0wOw0KaWYgKCR0YWI9PSJlbWFpbF90ZW1wbGF0ZSIpeyR0YWJJcz0wO30NCmlmICgkdGFiPT0iYnRub3B0aW9ucyIpeyR0YWJJcz0xO30NCmlmICgkdGFiPT0ib3B0aW9ucyIpeyR0YWJJcz0yO30NCmVjaG8gJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpeyQoInVsLnRhYmVycyIpLnRhYnMoImRpdi5UYWJwYW5lcyA+IGRpdi5wYW5lIiwge2VmZmVjdDogImZhZGUiLCBmYWRlT3V0U3BlZWQ6IDIwMCwgaW5pdGlhbEluZGV4OicuJHRhYklzLicsIG9uQ2xpY2s6ZnVuY3Rpb24oZXZlbnQsIHRhYkluZGV4KSB7aWYgKCQoIi5wYWdlbWVzc2FnZSIpLmxlbmd0aCA+IDApeyQoIi5wYWdlbWVzc2FnZSIpLmNsb3Nlc3QoIi5wYWdlbWNvbnRhaW5lciIpLmZhZGVPdXQoMjAwMCxmdW5jdGlvbigpeyQoIi5wYWdlbWVzc2FnZSIpLmNsb3Nlc3QoIi5wYWdlbWNvbnRhaW5lciIpLnJlbW92ZSgpO30pO319fSk7IH0pOzwvc2NyaXB0Pic7DQogDQppZiAoRkFMU0UgPT0gZW1wdHkoJHBhcmFtc1snYWN0aXZlX3RhYiddKSAmJiBGQUxTRSA9PSBlbXB0eSgkcGFyYW1zWyd0YWJfbWVzc2FnZSddKSkgew0KCSRtZXNzYWdlID0gJHRoaXMtPlNob3dNZXNzYWdlKCR0aGlzLT5MYW5nKCRwYXJhbXNbJ3RhYl9tZXNzYWdlJ10pKTsNCn0gZWxzZSB7DQoJJG1lc3NhZ2UgPSAnJzsNCn0NCmVjaG8gJG1lc3NhZ2U7DQppZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IENhbGVuZGFyJykpew0KZWNobycNCjx1bCBjbGFzcz0idGFiZXJzIj4NCgk8bGk+PGEgaHJlZj0iI2VtYWlsX3RlbXBsYXRlIj4nLiR0aGlzLT5MYW5nKCdCdG5fbGlzdCcpLic8L2E+PC9saT4NCgk8bGk+PGEgaHJlZj0iI2J0bm9wdGlvbnMiPicuJHRoaXMtPkxhbmcoJ0JUTm9wdGlvbnMnKS4nPC9hPjwvbGk+DQoJPGxpPjxhIGhyZWY9IiNvcHRpb25zIj4nLiR0aGlzLT5MYW5nKCdBQ1RvcHRpb25zJykuJzwvYT48L2xpPg0KPC91bD4gDQonOw0KfQ0KICAgDQppZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IENhbGVuZGFyJykpDQogIHsNCmVjaG8gJzxkaXYgY2xhc3M9IlRhYnBhbmVzIiBpZD0iUFBCTSI+DQo8ZGl2IGNsYXNzPSJwYW5lIj4nOw0KZWNobyAnPGgzPicuJHRoaXMtPkxhbmcoJ3RpdGxlX2F2YWlsYWJsZV90ZW1wbGF0ZXMnKS4nPC9oMz4nOw0KJHRoaXMtPl9BZG1pbkNyZWF0ZVRlbXBsYXRlTGlzdCgkaWQsJHJldHVybmlkLA0KCQkJICAnZW1haWwnLA0KCQkJICAnZGVmYXVsdF9lbWFpbF90ZW1wbGF0ZV9jb250ZW50cycsDQoJCQkgICdlbWFpbF90ZW1wbGF0ZScsDQoJCQkgICdjdXJyZW50X2VtYWlsX3RlbXBsYXRlJywNCgkJCSAgJHRoaXMtPkxhbmcoJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJykpOw0KZWNobyAnPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYW5lIj4nOw0KICAgIGluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9CVE5vcHRpb25zdGFiLnBocCcpOw0KZWNobyAnPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYW5lIj4nOw0KICAgIGluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9BQ1RvcHRpb25zdGFiLnBocCcpOw0KCSAgZWNobyAnPC9kaXY+DQoJPC9kaXY+JzsNCn0NCg0KDQojIHZpbTp0cz00IHN3PTQgbm9ldA0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.deletetemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogaUNhbCAtIGlDYWwgQ3JlYXRvciBhbmQgTWFuYWdlciANCiMgTW9kIGRlc2lnbmVkIGJ5IGplcmVteUJhc3MgKGplcmVteUJhc3NAY2FibGVvbmUubmV0KQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL0NhcnMvDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggISAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykgKQ0KICB7DQogICAgLy8gdG9kbywgcGVybWlzc2lvbnMgbWVzc2FnZSBoZXJlDQogICAgcmV0dXJuOw0KICB9DQpnbG9iYWwgJGdDbXM7DQoNCiAgDQokQktTZXQ9JHBhcmFtc1snQktTZXQnXTsNCg0KCQkkZGIgPSAmJGdDbXMtPmRiOw0KCSAgCSRxdWVyeSA9ICJERUxFVEUgcCwgcHAgDQoJCQlGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfaUNhbF9CdG4gQVMgcCANCgkJCUlOTkVSIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9pQ2FsX0J0bl9PUFQgQVMgcHAgDQoJCQlPTiBwLklEID0gcHAuSUQgDQoJCQlXSEVSRSBwLkJLU2V0PSciLiRCS1NldC4iJyI7DQoJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsNCgkJaWYoISRyZXN1bHQpIHsNCgkJCWVjaG8gJ0Vycm9yOiAnLm15c3FsX2Vycm9yKCk7DQoJCQkkcGFyYW1zWydtZXNzYWdlJ10gPSBteXNxbF9lcnJvcigpOw0KCQkJJHRoaXMtPkZpcmVEZWJ1ZygnZXJyb3IgbXlzcWxfZXJyb3IoKScsbXlzcWxfZXJyb3IoKSk7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQ0KCQl9ZWxzZXsNCi8vICR0aGlzLT5GaXJlRGVidWcoInNhaWQgaXQncyBkb25lIHRoZXJlIiwnZXJyb3InKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlDQoJCQkkcGFyYW1zWydtZXNzYWdlJ10gPSBteXNxbF9lcnJvcigpOw0KCQkJJHRoaXMtPkZpcmVEZWJ1ZygnZXJyb3InLCRCS1NldCk7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQ0KCQl9DQoJCQ0KCQkNCgkJJHRoaXMtPkZpcmVEZWJ1ZygnZXJyb3InLCRCS1NldCk7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQ0KCQkvLyR0aGlzLT5teVJlZGlyZWN0VG9UYWIoJGlkLCAndXBsb2FkZm9ybV90ZW1wbGF0ZScpOw0KCQkkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICdCdG5ERUxFVEVEJywgJ2FjdGl2ZV90YWInID0+ICdlbWFpbF90ZW1wbGF0ZScpOw0KCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.description.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogaUNhbCAtIGlDYWwgQ3JlYXRvciBhbmQgTWFuYWdlciANCiMgTW9kIGRlc2lnbmVkIGJ5IGplcmVteUJhc3MgKGplcmVteUJhc3NAY2FibGVvbmUubmV0KQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2lDYWwvDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpnbG9iYWwgJGdDbXM7DQovLy8vLy8tLS0tLWJ1dHRvbiB2YXJzDQokZGlzPSR0aGlzLT5MYW5nKCRwYXJhbXNbJ0Rlc2NyaXB0aW9uJ10pOw0KZWNobyAgIjxzcGFuIGlkPVwiRElTQ1JQXCI+Ii4kZGlzLiI8L3NwYW4+IjsNCmV4aXQ7DQoNCg0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.edittemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogaUNhbCAtIGlDYWwgQ3JlYXRvciBhbmQgTWFuYWdlciANCiMgTW9kIGRlc2lnbmVkIGJ5IGplcmVteUJhc3MgKGplcmVteUJhc3NAY2FibGVvbmUubmV0KQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL0NhcnMvDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZighJGdDbXMpZXhpdCgpOw0KDQoNCmlmKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykgKXsNCgkvLyB0b2RvLCBwZXJtaXNzaW9ucyBtZXNzYWdlIGhlcmUNCglyZXR1cm47DQp9DQokY29uZmlnID0mICRnQ21zLT5HZXRDb25maWcoKTsgDQplY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQpsb2FkID0gZnVuY3Rpb24oKSB7DQogICAgbG9hZC5nZXRTY3JpcHQoIi4uL21vZHVsZXMvaUNhbC9pbmNsdWRlcy9NU18xLjAwLjAwLmpzIik7DQogICAgLy8gZG8gc3R1ZmYgd2hlbiBqUXVlcnkgZmluaXNoZXMgbG9hZGluZy4NCiAgICBsb2FkLnRyeVJlYWR5KDApOw0KfQ0KbG9hZC5nZXRTY3JpcHQgPSBmdW5jdGlvbihmaWxlbmFtZSkgew0KICAgIHZhciBmaWxlcmVmID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0IikNCiAgICBmaWxlcmVmLnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQvamF2YXNjcmlwdCIpDQogICAgZmlsZXJlZi5zZXRBdHRyaWJ1dGUoInNyYyIsIGZpbGVuYW1lKQ0KICAgIGlmICh0eXBlb2YgZmlsZXJlZiE9InVuZGVmaW5lZCIpDQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoZmlsZXJlZikNCn0NCmxvYWQudHJ5UmVhZHkgPSBmdW5jdGlvbih0aW1lX2VsYXBzZWQpIHsNCiAgICAvKiBDb250aW51YWxseSBwb2xscyBmb3IgalF1ZXJ5IGxpYnJhcnkuICovDQogICAgaWYgKHR5cGVvZiAkID09ICJ1bmRlZmluZWQiKSB7DQogICAgICAgIGlmICh0aW1lX2VsYXBzZWQgPD0gNTAwMCkgew0KICAgICAgICAgICAgc2V0VGltZW91dCgibG9hZC50cnlSZWFkeSgiICsgKHRpbWVfZWxhcHNlZCArIDIwMCkgKyAiKSIsIDIwMCk7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBhbGVydCgiVGltZWQgb3V0IHdoaWxlIGxvYWRpbmcgalF1ZXJ5LiIpDQogICAgICAgIH0NCiAgICB9DQp9DQppZiAodHlwZW9mKHdpbmRvdy5qUXVlcnkpPT0idW5kZWZpbmVkIil7DQoJCWxvYWQoKTsgICANCn0NCgkNCgkNCjwvc2NyaXB0Pg0KDQo8c2NyaXB0IHNyYz0iaHR0cDovL2Nkbi5qcXVlcnl0b29scy5vcmcvMS4xLjIvdGlueS9qcXVlcnkudG9vbHMubWluLmpzIj48L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL21vZHVsZXMvaUNhbC9pbmNsdWRlcy9mYXJidGFzdGljLmpzIj48L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL21vZHVsZXMvaUNhbC9pbmNsdWRlcy9NRV8xLjAwLjAwLmpzIj48L3NjcmlwdD4NCg0KPGxpbmsgbWVkaWE9InNjcmVlbiIgaHJlZj0iLi4vbW9kdWxlcy9pQ2FsL0NTUy9NYXN0ZXJDU1MuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiAvPg0KPGxpbmsgbWVkaWE9InNjcmVlbiIgaHJlZj0iLi4vbW9kdWxlcy9pQ2FsL0NTUy9mYXJidGFzdGljLmNzcyIgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgLz4NCjxkaXYgaWQ9ImRlbW90aXAiPjxpbWcgY2xhc3M9InByb2dyZXNzIiBzcmM9Ii4uL21vZHVsZXMvaUNhbC9pbWFnZXMvYWpheC1sb2FkZXIuZ2lmIiBhbHQ9IiIvPjwvZGl2Pg0KDQonOw0KLy8kQnRuVHlwZUFycmF5PWFycmF5KA0KLy8JCSdCdXkgTm93Jz0+J194Y2xpY2snLA0KLy8JCSdEb25hdGUnPT4nX2RvbmF0aW9ucycsDQovLwkJJ1N1YnNjcmliZSc9PidfeGNsaWNrLXN1YnNjcmlwdGlvbnMnLA0KLy8JCSdCdXkgR2lmdCBDZXJ0aWZpY2F0ZSc9Pidfb2UtZ2lmdC1jZXJ0aWZpY2F0ZScNCi8vCSk7DQokVFpJREFycmF5PWFycmF5KCdVUy1QYWNpZmljJz0+J1VTLVBhY2lmaWMnLA0KCQknVVMtQ2VudHJhbCc9PidVUy1DZW50cmFsJywNCgkJJ1VTLU1vdW50YWluJz0+J1VTLU1vdW50YWluJywNCgkJJ1VTLUVhc3Rlcm4nPT4nVVMtRWFzdGVybicNCik7DQoNCg0KDQoNCg0KDQovLyBoYW5kbGUgZXJyb3JzLg0KaWYoIGlzc2V0KCRwYXJhbXNbJ2Vycm9ycyddKSApDQogIHsNCiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRwYXJhbXNbJ2Vycm9ycyddKTsNCiAgfQ0KDQokcGFyYW1zWydvcmlnYWN0aW9uJ10gPSAkcGFyYW1zWydhY3Rpb24nXTsNCiRjb250ZW50cyA9ICIiOw0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywNCgkJCSAgICAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0ICgkaWQsICdzYXZlX0JUTicsJHJldHVybmlkLCdwb3N0JywnJywNCgkJCQkJCSAgICBmYWxzZSwgJycsICRwYXJhbXMpKTsNCmlmKCAkcGFyYW1zWydtb2RlJ10gPT0gJ2FkZCcgKXsNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsDQoJCQkgICAgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCAoJGlkLCAnc2F2ZV9CVE4nLCRyZXR1cm5pZCwncG9zdCcsJycsZmFsc2UsICcnLCAkcGFyYW1zKSk7DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZW5hbWUnLA0KCQkJICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICd0ZW1wbGF0ZScsICIiLCA0MCApKTsNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsDQoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdtb2RlJywgJHBhcmFtc1snbW9kZSddICkpOw0KICAgIGlmKCBpc3NldCgkcGFyYW1zWydkZWZhdWx0dGVtcGxhdGVwcmVmJ10pICYmICRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSAhPSAnJyApew0KCQkkY29udGVudHMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgkcGFyYW1zWydkZWZhdWx0dGVtcGxhdGVwcmVmJ10pOw0KICAgICAgfQ0KICB9ZWxzZXsNCg0KLy8gICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywNCi8vCQkJICAgICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQgKCRpZCwgJ2RvX2VkaXR0ZW1wbGF0ZScsJHJldHVybmlkLCdwb3N0JywnJywNCi8vCQkJCQkJICAgIGZhbHNlLCAnJywgJHBhcmFtcykpOw0KLy8gICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigndGVtcGxhdGVuYW1lJywkcGFyYW1zWyd0ZW1wbGF0ZSddKTsNCi8vICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsDQovLwkJCSAgICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICd0ZW1wbGF0ZScsICRwYXJhbXNbJ3RlbXBsYXRlJ10gKSk7DQoJCQkkdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywkcGFyYW1zWydCS1NldCddKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlDQpleHRyYWN0KCR0aGlzLT5MaXN0QUJUTigkcGFyYW1zWydCS1NldCddKSk7DQoNCg0KDQoNCg0KJFByZWZpeCA9IGlzc2V0KCRQcmVmaXgpID8gJFByZWZpeDonJzsNCiRTdWZmaXggPSBpc3NldCgkU3VmZml4KSA/ICRTdWZmaXg6Jyc7DQokU3ViZGlyID0gaXNzZXQoJFN1YmRpcikgPyAkU3ViZGlyOiAiIjsNCiRmaWxlYmFzZW5hbWUgPSBpc3NldCgkZmlsZWJhc2VuYW1lKSA/ICRmaWxlYmFzZW5hbWU6c3RydG90aW1lKCJub3ciKS5tdF9yYW5kKCk7DQokVFpJRCA9IGlzc2V0KCRUWklEKSA/ICRUWklEOiR0aGlzLT5HZXRQcmVmZXJlbmNlKCdUWklEJywiVVMtUGFjaWZpYyIpOw0KJGRheWxpZ2h0U2F2aW5nID0gaXNzZXQoJGRheWxpZ2h0U2F2aW5nKSA/ICRkYXlsaWdodFNhdmluZzokdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGF5bGlnaHRTYXZpbmcnLHRydWUpOyAvLyBpZiB0dXJuIGluZmVyIGZyb20gJFRaSUQNCiRDQUxfVVJMID0gaXNzZXQoJENBTF9VUkwpID8gJENBTF9VUkw6JHRoaXMtPkdldFByZWZlcmVuY2UoJ0NBTF9VUkwnLCRjb25maWdbJ3Jvb3RfdXJsJ10pOw0KJERUU1RBUlQgPSBpc3NldCgkRFRTVEFSVCkgPyAkRFRTVEFSVDonJzsNCiREVEVORCA9IGlzc2V0KCREVEVORCkgPyAkRFRFTkQ6Jyc7DQokTE9DQVRJT04gPSBpc3NldCgkTE9DQVRJT04pID8gJExPQ0FUSU9OOicnOw0KJFNVTU1BUlkgPSBpc3NldCgkU1VNTUFSWSApID8gJFNVTU1BUlkgOicnOw0KJENBVEVHT1JJRVMgPSBpc3NldCgkQ0FURUdPUklFUykgPyAkQ0FURUdPUklFUzonJzsNCiRERVNDUklQVElPTiA9IGlzc2V0KCRERVNDUklQVElPTikgPyAkREVTQ1JJUFRJT046Jyc7DQokbGlua3RleHQgPSBpc3NldCgkbGlua3RleHQgKSA/ICRsaW5rdGV4dCA6JHRoaXMtPkdldFByZWZlcmVuY2UoJ2xpbmt0ZXh0JywkdGhpcy0+TGFuZygnbGlua3RleHRfZGVmYXVsdCcpKTsNCiRjbGFzcyA9IGlzc2V0KCRjbGFzcykgPyAkY2xhc3M6Jyc7DQokYWx0ID0gaXNzZXQoJGFsdCkgPyAkYWx0OicnOw0KJGlkcyA9IGlzc2V0KCRpZHMpID8gJGlkczonJzsNCiR0aXRsZSA9IGlzc2V0KCR0aXRsZSkgPyAkdGl0bGU6Jyc7DQokc3R5bGUgPSBpc3NldCgkc3R5bGUpID8gJHN0eWxlOicnOw0KJHRhcmdldCA9IGlzc2V0KCR0YXJnZXQpID8gJHRhcmdldDonJzsNCiRhc3NpZ24gPSBpc3NldCgkYXNzaWduKSA/ICRhc3NpZ246Jyc7DQokY2FjaGVCdXN0ZXIgPSBpc3NldCgkY2FjaGVCdXN0ZXIpID8gJGNhY2hlQnVzdGVyOiR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjYWNoZUJ1c3RlcicsZmFsc2UpOw0KJHJvb3RVcmwgPSBpc3NldCgkcm9vdFVybCkgPyAkcm9vdFVybCA6JHRoaXMtPkdldFByZWZlcmVuY2UoJ3Jvb3RVcmwnLCRjb25maWdbJ3Jvb3RfdXJsJ10pOw0KJE1BSUxUTyA9IGlzc2V0KCRNQUlMVE8pID8gJE1BSUxUTzokdGhpcy0+R2V0UHJlZmVyZW5jZSgnTUFJTFRPJywkY29uZmlnWydNQUlMVE8nXSk7DQoNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0JLU2V0X2lucHV0JywNCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnQktTZXQnLCAkcGFyYW1zWydCS1NldCddLCA0MCwgMjU1LCAnZGlzYWJsZWQ9ImRpc2FibGVkIicgKSk7DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdQcmVmaXhfaW5wdXQnLA0KCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdQcmVmaXgnLCAkUHJlZml4LCA0MCwgMjU1ICkpOyANCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1N1ZmZpeF9pbnB1dCcsDQoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ1N1ZmZpeCcsICRTdWZmaXgsIDQwLCAyNTUgKSk7IA0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignU3ViZGlyX2lucHV0JywNCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnU3ViZGlyJywgJFN1YmRpciwgNDAsIDI1NSApKTsgCQ0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZmlsZWJhc2VuYW1lX2lucHV0JywNCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnZmlsZWJhc2VuYW1lJywgJGZpbGViYXNlbmFtZSwgNDAsIDI1NSApKTsgCQ0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignVFpJRF9pbnB1dCcsDQoJCSR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ1RaSUQnLCAkVFpJREFycmF5LCAnJywgJFRaSUQpKTsNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2RheWxpZ2h0U2F2aW5nX2lucHV0JywNCgkJJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCAoJGlkLCAnZGF5bGlnaHRTYXZpbmcnLCBhcnJheSgnTm8nPT5mYWxzZSwnWWVzJz0+dHJ1ZSksICRkYXlsaWdodFNhdmluZywnJywnJm5ic3A7Jm5ic3A7Jm5ic3A7JykpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignQ0FMX1VSTF9pbnB1dCcsDQoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnQ0FMX1VSTCcsICRDQUxfVVJMLCA0MCwgMjU1KSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdEVFNUQVJUX2lucHV0JywNCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdEVFNUQVJUJywgJERUU1RBUlQsIDQwLCAyNTUpKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0RURU5EX2lucHV0JywNCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdEVEVORCcsICREVEVORCwgNDAsIDI1NSkpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignTE9DQVRJT05faW5wdXQnLA0KCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ0xPQ0FUSU9OJywgJExPQ0FUSU9OICwgNDAsIDI1NSkpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignU1VNTUFSWV9pbnB1dCcsDQoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnU1VNTUFSWScsICRTVU1NQVJZLCA0MCwgMjU1KSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdDQVRFR09SSUVTX2lucHV0JywNCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdDQVRFR09SSUVTJywgJENBVEVHT1JJRVMsIDQwLCAyNTUpKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0RFU0NSSVBUSU9OX2lucHV0JywNCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdERVNDUklQVElPTicsICRERVNDUklQVElPTiwgNDAsIDI1NSkpOwkNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2xpbmt0ZXh0X2lucHV0JywNCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdsaW5rdGV4dCcsICRsaW5rdGV4dCwgNDAsIDI1NSkpOw0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignY2xhc3NfaW5wdXQnLA0KCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdjbGFzcycsICRjbGFzcywgNDAsIDI1NSkpOyAgDQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhbHRfaW5wdXQnLA0KCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdhbHQnLCAkYWx0LCA0MCwgMjU1KSk7ICANCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lkc19pbnB1dCcsDQoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2lkcycsICRpZHMsIDQwLCAyNTUpKTsgIA0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfaW5wdXQnLA0KCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICd0aXRsZScsICR0aXRsZSwgNDAsIDI1NSkpOyAgDQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdHlsZV9pbnB1dCcsDQoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3N0eWxlJywgJHN0eWxlLCA0MCwgMjU1KSk7ICANCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RhcmdldF9pbnB1dCcsDQoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3RhcmdldCcsICR0YXJnZXQsIDQwLCAyNTUpKTsgIA0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignYXNzaWduX2lucHV0JywNCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnYXNzaWduJywgJGFzc2lnbiwgNDAsIDI1NSkpOyAgDQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYWNoZUJ1c3Rlcl9pbnB1dCcsDQoJCSR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAgKCRpZCwgJ2NhY2hlQnVzdGVyJywgYXJyYXkoJ05vJz0+ZmFsc2UsJ1llcyc9PnRydWUpLCAkY2FjaGVCdXN0ZXIsJycsJyZuYnNwOyZuYnNwOyZuYnNwOycpKTsNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Jvb3RVcmxfaW5wdXQnLA0KCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdyb290VXJsJywgJHJvb3RVcmwsIDQwLCAyNTUpKTsgDQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdNQUlMVE9faW5wdXQnLA0KCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdNQUlMVE8nLCAkTUFJTFRPLCA0MCwgMjU1KSk7IA0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignaGlkZGVuTW9kZScsDQoJCSR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdtb2RlJywgJHBhcmFtc1snbW9kZSddICkpOyAgDQoNCiAgIH0NCg0KLy8kdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlJyxjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKCRwYXJhbXNbJ3RpdGxlJ10pKTsNCmlmKCAkcGFyYW1zWydtb2RlJ10gPT0gJ2FkZCcgKXsNCiAgDQokUHJlZml4ID0gaXNzZXQoJFByZWZpeCkgPyAkUHJlZml4OicnOw0KJFN1ZmZpeCA9IGlzc2V0KCRTdWZmaXgpID8gJFN1ZmZpeDonJzsNCiRTdWJkaXIgPSBpc3NldCgkU3ViZGlyICkgPyAkU3ViZGlyOiAiIjsNCiRmaWxlYmFzZW5hbWUgPSBpc3NldCgkZmlsZWJhc2VuYW1lKSA/ICRmaWxlYmFzZW5hbWU6c3RydG90aW1lKCJub3ciKS5tdF9yYW5kKCk7DQokVFpJRCA9IGlzc2V0KCRUWklEKSA/ICRUWklEOiR0aGlzLT5HZXRQcmVmZXJlbmNlKCdUWklEJywiVVMtUGFjaWZpYyIpOw0KJGRheWxpZ2h0U2F2aW5nID0gaXNzZXQoJGRheWxpZ2h0U2F2aW5nKSA/ICRkYXlsaWdodFNhdmluZzokdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGF5bGlnaHRTYXZpbmcnLHRydWUpOyAvLyBpZiB0dXJuIGluZmVyIGZyb20gJFRaSUQNCiRDQUxfVVJMID0gaXNzZXQoJENBTF9VUkwpID8gJENBTF9VUkw6JHRoaXMtPkdldFByZWZlcmVuY2UoJ0NBTF9VUkwnLCRjb25maWdbJ3Jvb3RfdXJsJ10pOw0KJERUU1RBUlQgPSBpc3NldCgkRFRTVEFSVCkgPyAkRFRTVEFSVDonJzsNCiREVEVORCA9IGlzc2V0KCREVEVORCkgPyAkRFRFTkQ6Jyc7DQokTE9DQVRJT04gPSBpc3NldCgkTE9DQVRJT04pID8gJExPQ0FUSU9OOicnOw0KJFNVTU1BUlkgPSBpc3NldCgkU1VNTUFSWSApID8gJFNVTU1BUlkgOicnOw0KJENBVEVHT1JJRVMgPSBpc3NldCgkQ0FURUdPUklFUykgPyAkQ0FURUdPUklFUzonJzsNCiRERVNDUklQVElPTiA9IGlzc2V0KCRERVNDUklQVElPTikgPyAkREVTQ1JJUFRJT046Jyc7DQokbGlua3RleHQgPSBpc3NldCgkbGlua3RleHQgKSA/ICRsaW5rdGV4dCA6JHRoaXMtPkdldFByZWZlcmVuY2UoJ2xpbmt0ZXh0JywkdGhpcy0+TGFuZygnbGlua3RleHRfZGVmYXVsdCcpKTsNCiRjbGFzcyA9IGlzc2V0KCRjbGFzcykgPyAkY2xhc3M6Jyc7DQokYWx0ID0gaXNzZXQoJGFsdCkgPyAkYWx0OicnOw0KJGlkcyA9IGlzc2V0KCRpZHMpID8gJGlkczonJzsNCiR0aXRsZSA9IGlzc2V0KCR0aXRsZSkgPyAkdGl0bGU6Jyc7DQokc3R5bGUgPSBpc3NldCgkc3R5bGUpID8gJHN0eWxlOicnOw0KJHRhcmdldCA9IGlzc2V0KCR0YXJnZXQpID8gJHRhcmdldDonJzsNCiRhc3NpZ24gPSBpc3NldCgkYXNzaWduKSA/ICRhc3NpZ246Jyc7DQokY2FjaGVCdXN0ZXIgPSBpc3NldCgkY2FjaGVCdXN0ZXIpID8gJGNhY2hlQnVzdGVyOiR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjYWNoZUJ1c3RlcicsZmFsc2UpOw0KJHJvb3RVcmwgPSBpc3NldCgkcm9vdFVybCkgPyAkcm9vdFVybCA6JHRoaXMtPkdldFByZWZlcmVuY2UoJ3Jvb3RVcmwnLCRjb25maWdbJ3Jvb3RfdXJsJ10pOw0KJE1BSUxUTyA9IGlzc2V0KCRNQUlMVE8pID8gJE1BSUxUTzokdGhpcy0+R2V0UHJlZmVyZW5jZSgnTUFJTFRPJywnJyk7DQoNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0JLU2V0X2lucHV0JywNCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnQktTZXQnLCAnJywgNDAsIDI1NSwgJycgKSk7DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdQcmVmaXhfaW5wdXQnLA0KCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdQcmVmaXgnLCAkUHJlZml4LCA0MCwgMjU1KSk7IA0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignU3VmZml4X2lucHV0JywNCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnU3VmZml4JywgJFN1ZmZpeCwgNDAsIDI1NSkpOyANCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1N1YmRpcl9pbnB1dCcsDQoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ1N1YmRpcicsICRTdWJkaXIsIDQwLCAyNTUpKTsgCQ0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZmlsZWJhc2VuYW1lX2lucHV0JywNCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnZmlsZWJhc2VuYW1lJywgJGZpbGViYXNlbmFtZSwgNDAsIDI1NSkpOyAJDQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdUWklEX2lucHV0JywNCgkJJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnVFpJRCcsICRUWklEQXJyYXksICcnLCAkVFpJRCkpOw0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZGF5bGlnaHRTYXZpbmdfaW5wdXQnLA0KCQkkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwICgkaWQsICdkYXlsaWdodFNhdmluZycsIGFycmF5KCdObyc9PmZhbHNlLCdZZXMnPT50cnVlKSwgJGRheWxpZ2h0U2F2aW5nLCcnLCcmbmJzcDsmbmJzcDsmbmJzcDsnKSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdDQUxfVVJMX2lucHV0JywNCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdDQUxfVVJMJywgJENBTF9VUkwsIDQwLCAyNTUpKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0RUU1RBUlRfaW5wdXQnLA0KCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ0RUU1RBUlQnLCAkRFRTVEFSVCwgNDAsIDI1NSkpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignRFRFTkRfaW5wdXQnLA0KCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ0RURU5EJywgJERURU5ELCA0MCwgMjU1KSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdMT0NBVElPTl9pbnB1dCcsDQoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnTE9DQVRJT04nLCAkTE9DQVRJT04gLCA0MCwgMjU1KSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdTVU1NQVJZX2lucHV0JywNCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdTVU1NQVJZJywgJFNVTU1BUlksIDQwLCAyNTUpKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0NBVEVHT1JJRVNfaW5wdXQnLA0KCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ0NBVEVHT1JJRVMnLCAkQ0FURUdPUklFUywgNDAsIDI1NSkpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignREVTQ1JJUFRJT05faW5wdXQnLA0KCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ0RFU0NSSVBUSU9OJywgJERFU0NSSVBUSU9OLCA0MCwgMjU1KSk7CQ0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignbGlua3RleHRfaW5wdXQnLA0KCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2xpbmt0ZXh0JywgJGxpbmt0ZXh0LCA0MCwgMjU1KSk7DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjbGFzc19pbnB1dCcsDQoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2NsYXNzJywgJGNsYXNzLCA0MCwgMjU1KSk7ICANCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FsdF9pbnB1dCcsDQoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2FsdCcsICRhbHQsIDQwLCAyNTUpKTsgIA0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignaWRzX2lucHV0JywNCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnaWRzJywgJGlkcywgNDAsIDI1NSkpOyAgDQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9pbnB1dCcsDQoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3RpdGxlJywgJHRpdGxlLCA0MCwgMjU1KSk7ICANCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0eWxlX2lucHV0JywNCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnc3R5bGUnLCAkc3R5bGUsIDQwLCAyNTUpKTsgIA0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigndGFyZ2V0X2lucHV0JywNCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAndGFyZ2V0JywgJHRhcmdldCwgNDAsIDI1NSkpOyAgDQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhc3NpZ25faW5wdXQnLA0KCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdhc3NpZ24nLCAkYXNzaWduLCA0MCwgMjU1KSk7ICANCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhY2hlQnVzdGVyX2lucHV0JywNCgkJJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCAoJGlkLCAnY2FjaGVCdXN0ZXInLCBhcnJheSgnTm8nPT5mYWxzZSwnWWVzJz0+dHJ1ZSksICRjYWNoZUJ1c3RlciwnJywnJm5ic3A7Jm5ic3A7Jm5ic3A7JykpOw0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigncm9vdFVybF9pbnB1dCcsDQoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3Jvb3RVcmwnLCAkcm9vdFVybCwgNDAsIDI1NSkpOyANCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ01BSUxUT19pbnB1dCcsDQoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ01BSUxUTycsICRNQUlMVE8sIDQwLCAyNTUpKTsgDQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdoaWRkZW5Nb2RlJywNCgkJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ21vZGUnLCAkcGFyYW1zWydtb2RlJ10gKSk7ICANCg0KICB9ZWxzZXsNCg0KDQogIH0NCiAgJHVybGV4dD1DTVNfU0VDVVJFX1BBUkFNX05BTUUuJz0nLiRfU0VTU0lPTltDTVNfVVNFUl9LRVldOw0KJGltZ0hlbHBGPSc8aW1nIHNyYz0iLi4vYWRtaW4vdGhlbWVzL05DbGVhbkdyZXkvaW1hZ2VzL2ljb25zL3N5c3RlbS9pbmZvLWV4dGVybmFsLmdpZiIgYWx0PSInLiR1cmxleHQuJyIgY2xhc3M9InN5c3RlbWljb24iIHRpdGxlPSIiIHJlbD0iJzsNCiRpbWdIZWxwQj0nIi8+JzsNCg0KDQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbignQktTZXRfbGFiZWwnLCAkdGhpcy0+TGFuZygnQktTZXRfbGFiZWwnKS4kaW1nSGVscEYuIkJLU2V0Ii4kaW1nSGVscEIpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdQcmVmaXhfbGFiZWwnLCAkdGhpcy0+TGFuZygnUHJlZml4X2xhYmVsJykuJGltZ0hlbHBGLiJQcmVmaXgiLiRpbWdIZWxwQik7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1N1ZmZpeF9sYWJlbCcsICR0aGlzLT5MYW5nKCdTdWZmaXhfbGFiZWwnKS4kaW1nSGVscEYuIlN1ZmZpeCIuJGltZ0hlbHBCKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignU3ViZGlyX2xhYmVsJywgJHRoaXMtPkxhbmcoJ1N1YmRpcl9sYWJlbCcpLiRpbWdIZWxwRi4iU3ViZGlyIi4kaW1nSGVscEIpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmaWxlYmFzZW5hbWVfbGFiZWwnLCAkdGhpcy0+TGFuZygnZmlsZWJhc2VuYW1lX2xhYmVsJykuJGltZ0hlbHBGLiJmaWxlYmFzZW5hbWUiLiRpbWdIZWxwQik7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1RaSURfbGFiZWwnLCAkdGhpcy0+TGFuZygnVFpJRF9sYWJlbCcpLiRpbWdIZWxwRi4iVFpJRCIuJGltZ0hlbHBCKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignZGF5bGlnaHRTYXZpbmdfbGFiZWwnLCAkdGhpcy0+TGFuZygnZGF5bGlnaHRTYXZpbmdfbGFiZWwnKS4kaW1nSGVscEYuImRheWxpZ2h0U2F2aW5nIi4kaW1nSGVscEIpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdDQUxfVVJMX2xhYmVsJywgJHRoaXMtPkxhbmcoJ0NBTF9VUkxfbGFiZWwnKS4kaW1nSGVscEYuIkNBTF9VUkwiLiRpbWdIZWxwQik7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0RUU1RBUlRfbGFiZWwnLCAkdGhpcy0+TGFuZygnRFRTVEFSVF9sYWJlbCcpLiRpbWdIZWxwRi4iRFRTVEFSVCIuJGltZ0hlbHBCKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignRFRFTkRfbGFiZWwnLCAkdGhpcy0+TGFuZygnRFRFTkRfbGFiZWwnKS4kaW1nSGVscEYuIkRURU5EIi4kaW1nSGVscEIpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdMT0NBVElPTl9sYWJlbCcsICR0aGlzLT5MYW5nKCdMT0NBVElPTl9sYWJlbCcpLiRpbWdIZWxwRi4iTE9DQVRJT04iLiRpbWdIZWxwQik7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1NVTU1BUllfbGFiZWwnLCAkdGhpcy0+TGFuZygnU1VNTUFSWV9sYWJlbCcpLiRpbWdIZWxwRi4iU1VNTUFSWSIuJGltZ0hlbHBCKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignQ0FURUdPUklFU19sYWJlbCcsICR0aGlzLT5MYW5nKCdDQVRFR09SSUVTX2xhYmVsJykuJGltZ0hlbHBGLiJDQVRFR09SSUVTIi4kaW1nSGVscEIpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdERVNDUklQVElPTl9sYWJlbCcsICR0aGlzLT5MYW5nKCdERVNDUklQVElPTl9sYWJlbCcpLiRpbWdIZWxwRi4iREVTQ1JJUFRJT04iLiRpbWdIZWxwQik7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2xpbmt0ZXh0X2xhYmVsJywgJHRoaXMtPkxhbmcoJ2xpbmt0ZXh0X2xhYmVsJykuJGltZ0hlbHBGLiJsaW5rdGV4dCIuJGltZ0hlbHBCKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignY2xhc3NfbGFiZWwnLCAkdGhpcy0+TGFuZygnY2xhc3NfbGFiZWwnKS4kaW1nSGVscEYuImNsYXNzIi4kaW1nSGVscEIpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhbHRfbGFiZWwnLCAkdGhpcy0+TGFuZygnYWx0X2xhYmVsJykuJGltZ0hlbHBGLiJhbHQiLiRpbWdIZWxwQik7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lkc19sYWJlbCcsICR0aGlzLT5MYW5nKCdpZHNfbGFiZWwnKS4kaW1nSGVscEYuImlkcyIuJGltZ0hlbHBCKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfbGFiZWwnLCAkdGhpcy0+TGFuZygndGl0bGVfbGFiZWwnKS4kaW1nSGVscEYuInRpdGxlIi4kaW1nSGVscEIpOw0KDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0eWxlX2xhYmVsJywgJHRoaXMtPkxhbmcoJ3N0eWxlX2xhYmVsJykuJGltZ0hlbHBGLiJzdHlsZSIuJGltZ0hlbHBCKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigndGFyZ2V0X2xhYmVsJywgJHRoaXMtPkxhbmcoJ3RhcmdldF9sYWJlbCcpLiRpbWdIZWxwRi4idGFyZ2V0Ii4kaW1nSGVscEIpOw0KDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Fzc2lnbl9sYWJlbCcsICR0aGlzLT5MYW5nKCdhc3NpZ25fbGFiZWwnKS4kaW1nSGVscEYuImFzc2lnbiIuJGltZ0hlbHBCKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignY2FjaGVCdXN0ZXJfbGFiZWwnLCAkdGhpcy0+TGFuZygnY2FjaGVCdXN0ZXJfbGFiZWwnKS4kaW1nSGVscEYuImNhY2hlQnVzdGVyIi4kaW1nSGVscEIpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyb290VXJsX2xhYmVsJywgJHRoaXMtPkxhbmcoJ3Jvb3RVcmxfbGFiZWwnKS4kaW1nSGVscEYuInJvb3RVcmwiLiRpbWdIZWxwQik7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ01BSUxUT19sYWJlbCcsICR0aGlzLT5MYW5nKCdNQUlMVE9fbGFiZWwnKS4kaW1nSGVscEYuIk1BSUxUTyIuJGltZ0hlbHBCKTsNCg0KJHRoaXMtPkZpcmVEZWJ1ZygnbWVzc2FnZScsJHBhcmFtc1snbW9kZSddKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlDQoJICAJICAJCSAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdoaWRkZW5Nb2RlJywNCgkJCSR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdtb2RlJywgJHBhcmFtc1snbW9kZSddICkNCgkJCS8vLiR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICd3YXMnLCAkcGFyYW1zWydWSU5WJ10gKQ0KCQkJKTsgDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fY2FuY2VsJywgJzxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSInLiR0aGlzLT5MYW5nKCdmb3JtX2NhbmNlbCcpLiciIG9uY2xpY2s9ImphdmFzY3JpcHQ6d2luZG93Lmhpc3RvcnkuZ28oLTEpIiAvPicpOwkgIA0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfdGVtcGxhdGVuYW1lJywkdGhpcy0+TGFuZygncHJvbXB0X3RlbXBsYXRlbmFtZScpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigncHJvbXB0X3RlbXBsYXRlJywkdGhpcy0+TGFuZygncHJvbXB0X3RlbXBsYXRlJykpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZScsDQoJCSAgICAgICR0aGlzLT5DcmVhdGVTeW50YXhBcmVhICgkaWQsICRjb250ZW50cywgJ3RlbXBsYXRlY29udGVudCcpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignc3VibWl0JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ3N1Ym1pdGJ1dHRvbicsDQoJCQkJCQkJICR0aGlzLT5MYW5nICgnc3VibWl0JykpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignY2FuY2VsJywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ2NhbmNlbCcsIA0KCQkJCQkJCSAkdGhpcy0+TGFuZyAoJ2NhbmNlbCcpKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOw0KDQoNCg0KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0dGVtcGxhdGUudHBsJyk7DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.save_ACTptions.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogaUNhbCAtIGlDYWwgQ3JlYXRvciBhbmQgTWFuYWdlciANCiMgTW9kIGRlc2lnbmVkIGJ5IGplcmVteUJhc3MgKGplcmVteUJhc3NAY2FibGVvbmUubmV0KQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2lDYWwvDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsNCg0KaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCAnTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnICkgKQ0Kew0KICByZXR1cm47DQp9DQoNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWJ1Z0lUJywgJHBhcmFtc1snZGVidWdJVCddKTsNCiRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdwcmVmc3VwZGF0ZWQnKTsNCg0KJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnb3B0aW9uc3VwZGF0ZWQnLCAnYWN0aXZlX3RhYicgPT4gJ29wdGlvbnMnKTsNCiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/action.save_BNToptions.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogaUNhbCAtIGlDYWwgQ3JlYXRvciBhbmQgTWFuYWdlciANCiMgTW9kIGRlc2lnbmVkIGJ5IGplcmVteUJhc3MgKGplcmVteUJhc3NAY2FibGVvbmUubmV0KQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2lDYWwvDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsNCg0KaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCAnTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnICkgKQ0Kew0KICByZXR1cm47DQp9DQoNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdDQUxfVVJMJywgJHBhcmFtc1snQ0FMX1VSTCddKTsNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdsaW5rdGV4dCcsICRwYXJhbXNbJ2xpbmt0ZXh0J10pOw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RheWxpZ2h0U2F2aW5nJywgJHBhcmFtc1snZGF5bGlnaHRTYXZpbmcnXSk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnY2FjaGVCdXN0ZXInLCAkcGFyYW1zWydjYWNoZUJ1c3RlciddKTsNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdUWklEJywgJHBhcmFtc1snVFpJRCddKTsNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzbWFydHlPbicsICRwYXJhbXNbJ3NtYXJ0eU9uJ10pOw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Jvb3RVcmwnLCAkcGFyYW1zWydyb290VXJsJ10pOw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ01BSUxUTycsICRwYXJhbXNbJ01BSUxUTyddKTsNCg0KDQokcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygncHJlZnN1cGRhdGVkJyk7DQoNCiRwYXJhbXMgPSBhcnJheSgndGFiX21lc3NhZ2UnPT4gJ29wdGlvbnN1cGRhdGVkJywgJ2FjdGl2ZV90YWInID0+ICdidG5vcHRpb25zJyk7DQokdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.save_BTN.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogaUNhbCAtIGlDYWwgQ3JlYXRvciBhbmQgTWFuYWdlciANCiMgTW9kIGRlc2lnbmVkIGJ5IGplcmVteUJhc3MgKGplcmVteUJhc3NAY2FibGVvbmUubmV0KQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL0NhcnMvDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsNCmdsb2JhbCAkZ0NtczsNCg0KaWYoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKXsNCgkkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICdDYW5jZWxlZCcsICdhY3RpdmVfdGFiJyA9PiAnZW1haWxfdGVtcGxhdGUnKTsNCgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KICB9DQoNCg0KJGRiID0mICR0aGlzLT5HZXREYigpOw0KDQoJDQoJDQovLy8vDQovLyBDcmVhdCBidG4gdGFibGUNCi8vLy8NCg0KCSRQcmVmaXg9bXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nKCRwYXJhbXNbJ1ByZWZpeCddKTsNCgkkU3VmZml4PW15c3FsX3JlYWxfZXNjYXBlX3N0cmluZygkcGFyYW1zWydTdWZmaXgnXSk7DQoJJFN1YmRpcj1teXNxbF9yZWFsX2VzY2FwZV9zdHJpbmcoJHBhcmFtc1snU3ViZGlyJ10pOw0KCSRmaWxlYmFzZW5hbWU9bXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nKCRwYXJhbXNbJ2ZpbGViYXNlbmFtZSddKTsNCgkkVFpJRD1teXNxbF9yZWFsX2VzY2FwZV9zdHJpbmcoJHBhcmFtc1snVFpJRCddKTsNCgkkZGF5bGlnaHRTYXZpbmc9JHBhcmFtc1snZGF5bGlnaHRTYXZpbmcnXTsNCgkkQ0FMX1VSTD1teXNxbF9yZWFsX2VzY2FwZV9zdHJpbmcoJHBhcmFtc1snQ0FMX1VSTCddKTsNCgkkRFRTVEFSVD1teXNxbF9yZWFsX2VzY2FwZV9zdHJpbmcoJHBhcmFtc1snRFRTVEFSVCddKTsNCgkkRFRFTkQ9bXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nKCRwYXJhbXNbJ0RURU5EJ10pOw0KCSRMT0NBVElPTj1teXNxbF9yZWFsX2VzY2FwZV9zdHJpbmcoJHBhcmFtc1snTE9DQVRJT04nXSk7DQoJJENBVEVHT1JJRVM9bXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nKCRwYXJhbXNbJ0NBVEVHT1JJRVMnXSk7DQoJJFNVTU1BUlk9bXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nKCRwYXJhbXNbJ1NVTU1BUlknXSk7DQoJJERFU0NSSVBUSU9OPW15c3FsX3JlYWxfZXNjYXBlX3N0cmluZygkcGFyYW1zWydERVNDUklQVElPTiddKTsNCgkkbGlua3RleHQ9bXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nKCRwYXJhbXNbJ2xpbmt0ZXh0J10pOw0KCSRjbGFzcz1teXNxbF9yZWFsX2VzY2FwZV9zdHJpbmcoJHBhcmFtc1snY2xhc3MnXSk7DQoJJGFsdD1teXNxbF9yZWFsX2VzY2FwZV9zdHJpbmcoJHBhcmFtc1snYWx0J10pOw0KCSRpZHM9bXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nKCRwYXJhbXNbJ2lkcyddKTsNCgkkdGl0bGU9bXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nKCRwYXJhbXNbJ3RpdGxlJ10pOw0KCSRzdHlsZT0kcGFyYW1zWydzdHlsZSddOw0KCSR0YXJnZXQ9JHBhcmFtc1sndGFyZ2V0J107DQoJJGFzc2lnbj0kcGFyYW1zWydhc3NpZ24nXTsNCgkkY2FjaGVCdXN0ZXI9JHBhcmFtc1snY2FjaGVCdXN0ZXInXTsNCgkkcm9vdFVybD0kcGFyYW1zWydyb290VXJsJ107DQoJJE1BSUxUTz1teXNxbF9yZWFsX2VzY2FwZV9zdHJpbmcgKCRwYXJhbXNbJ01BSUxUTyddKTsNCg0KDQoJCQlpZigkcGFyYW1zWydtb2RlJ109PSdhZGQnKXsNCg0KCQkJCQ0KCQkJCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2lDYWxfQnRuIFNFVCBCS1NldD0nIi4kcGFyYW1zWydCS1NldCddLiInIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICRyZXN1bHQgPSAmJGRiLT5FeGVjdXRlKCRxdWVyeSk7DQogICAgICAgICAgICAgICAgICAgICAgICBpZighJHJlc3VsdCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAvL2VjaG8gJ0Vycm9yOiAnLm15c3FsX2Vycm9yKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbXNbJ21lc3NhZ2UnXSA9IG15c3FsX2Vycm9yKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdwcmVmc3VwZGF0ZWQnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfaUNhbF9CdG5fT1BUIChJRCwgUHJlZml4LCBTdWZmaXgsIFN1YmRpciwgZmlsZWJhc2VuYW1lLCBUWklELCBkYXlsaWdodFNhdmluZywgQ0FMX1VSTCwgRFRTVEFSVCwgRFRFTkQsIExPQ0FUSU9OLCBTVU1NQVJZLCBDQVRFR09SSUVTLCBERVNDUklQVElPTiwgbGlua3RleHQsIGNsYXNzLCBhbHQsIGlkcywgdGl0bGUsIHN0eWxlLCB0YXJnZXQsIGFzc2lnbiwgY2FjaGVCdXN0ZXIsIHJvb3RVcmwsIE1BSUxUTykiDQoJCQkJCQkuIlZBTFVFUyAoIExBU1RfSU5TRVJUX0lEKCkiDQoJCQkJCQkJCS4iLCciLiRQcmVmaXgNCgkJCQkJCQkJLiInLCciLiRTdWZmaXgNCgkJCQkJCQkJLiInLCciLiRTdWJkaXINCgkJCQkJCQkJLiInLCciLiRmaWxlYmFzZW5hbWUNCgkJCQkJCQkJLiInLCciLiRUWklEDQoJCQkJCQkJCS4iJywnIi4kZGF5bGlnaHRTYXZpbmcNCgkJCQkJCQkJLiInLCciLiRDQUxfVVJMDQoJCQkJCQkJCS4iJywnIi4kRFRTVEFSVA0KCQkJCQkJCQkuIicsJyIuJERURU5EDQoJCQkJCQkJCS4iJywnIi4kTE9DQVRJT04NCgkJCQkJCQkJLiInLCciLiRTVU1NQVJZDQoJCQkJCQkJCS4iJywnIi4kQ0FURUdPUklFUw0KCQkJCQkJCQkuIicsJyIuJERFU0NSSVBUSU9ODQoJCQkJCQkJCS4iJywnIi4kbGlua3RleHQNCgkJCQkJCQkJLiInLCciLiRjbGFzcw0KCQkJCQkJCQkuIicsJyIuJGFsdA0KCQkJCQkJCQkuIicsJyIuJGlkcw0KCQkJCQkJCQkuIicsJyIuJHRpdGxlDQoJCQkJCQkJCS4iJywnIi4kc3R5bGUNCgkJCQkJCQkJLiInLCciLiR0YXJnZXQNCgkJCQkJCQkJLiInLCciLiRhc3NpZ24NCgkJCQkJCQkJLiInLCciLiRjYWNoZUJ1c3Rlcg0KCQkJCQkJCQkuIicsJyIuJHJvb3RVcmwNCgkJCQkJCQkJLiInLCciLiRNQUlMVE8uIicpIjsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0ID0gJiRkYi0+RXhlY3V0ZSgkcXVlcnkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoISRyZXN1bHQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgLy9lY2hvICdFcnJvcjogJy5teXNxbF9lcnJvcigpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1zWydtZXNzYWdlJ10gPSBteXNxbF9lcnJvcigpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygncHJlZnN1cGRhdGVkJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQoJCQkJDQoJCQl9ZWxzZSBpZigkcGFyYW1zWydtb2RlJ109PSdlZGl0Jyl7DQoJCQkJCQkJDQogIA0KICAkcXVlcnkgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfaUNhbF9CdG5fT1BUIG8gIg0KLiJJTk5FUiBqb2luICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfaUNhbF9CdG4gYiAiDQouIk9OIGIuSUQgPSBvLklEICINCi4iIFNFVCBvLlByZWZpeD0nIi4kUHJlZml4DQogIC4iJywgby5TdWZmaXg9JyIuJFN1ZmZpeA0KICAuIicsIG8uU3ViZGlyPSciLiRTdWJkaXINCiAgLiInLCBvLmZpbGViYXNlbmFtZT0nIi4kZmlsZWJhc2VuYW1lDQogIC4iJywgby5UWklEPSciLiRUWklEDQogIC4iJywgby5kYXlsaWdodFNhdmluZz0nIi4kZGF5bGlnaHRTYXZpbmcNCiAgLiInLCBvLkNBTF9VUkw9JyIuJENBTF9VUkwNCiAgLiInLCBvLkRUU1RBUlQ9JyIuJERUU1RBUlQNCiAgLiInLCBvLkRURU5EPSciLiREVEVORA0KICAuIicsIG8uTE9DQVRJT049JyIuJExPQ0FUSU9ODQogIC4iJywgby5TVU1NQVJZPSciLiRTVU1NQVJZDQogIC4iJywgby5DQVRFR09SSUVTPSciLiRDQVRFR09SSUVTDQogIC4iJywgby5ERVNDUklQVElPTj0nIi4kREVTQ1JJUFRJT04NCiAgLiInLCBvLmxpbmt0ZXh0PSciLiRsaW5rdGV4dA0KICAuIicsIG8uY2xhc3M9JyIuJGNsYXNzDQogIC4iJywgby5hbHQ9JyIuJGFsdA0KICAuIicsIG8uaWRzPSciLiRpZHMNCiAgLiInLCBvLnRpdGxlPSciLiR0aXRsZQ0KICAuIicsIG8uc3R5bGU9JyIuJHN0eWxlDQogIC4iJywgby50YXJnZXQ9JyIuJHRhcmdldA0KICAuIicsIG8uYXNzaWduPSciLiRhc3NpZ24NCiAgLiInLCBvLmNhY2hlQnVzdGVyPSciLiRjYWNoZUJ1c3Rlcg0KICAuIicsIG8ucm9vdFVybD0nIi4kcm9vdFVybA0KICAuIicsIG8uTUFJTFRPPSciLiRNQUlMVE8NCiAgLiInIFdIRVJFIGIuQktTZXQ9JyIuJHBhcmFtc1snQktTZXQnXS4iJyI7DQoNCiAgIA0KICAgDQoNCg0KCQkJCQkJCQkJCQkkcmVzdWx0ID0gJiRkYi0+RXhlY3V0ZSgkcXVlcnkpOw0KCQkJCQkJCWlmKCEkcmVzdWx0KSB7DQoJCQkJCQkJICAvL2VjaG8gJ0Vycm9yOiAnLm15c3FsX2Vycm9yKCk7DQoJCQkJCQkJICAkcGFyYW1zWydtZXNzYWdlJ10gPSBteXNxbF9lcnJvcigpOw0KCQkJCQkJCSAgJHRoaXMtPkZpcmVEZWJ1ZygnZXJyb3InLG15c3FsX2Vycm9yKCkpOy8vPDw8PC0tLS0tLUZpcmUgUEhQIG1lc3NhZ2UNCgkJCQkJCQl9ZWxzZXsNCgkJCQkJCQkgICAkcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygncHJlZnN1cGRhdGVkJyk7DQoJCQkJCQkJfQ0KCQkJCQkJCSR0aGlzLT5GaXJlRGVidWcoJ2Vycm9yJywkcGFyYW1zWydtb2RlJ10pOy8vPDw8PC0tLS0tLUZpcmUgUEhQIG1lc3NhZ2UNCgkJCX0NCgkJDQoNCg0KCWlmKCRwYXJhbXNbJ21vZGUnXT09J2FkZCcpew0KCQkkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICdCdG5BRERFRCcsICdhY3RpdmVfdGFiJyA9PiAnZW1haWxfdGVtcGxhdGUnKTsNCgl9ZWxzZXsNCgkJJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnQnRuRURJVEVEJywgJ2FjdGl2ZV90YWInID0+ICdlbWFpbF90ZW1wbGF0ZScpOw0KCX0NCg0KDQovLyRwYXJhbXNbJ3NydCddID0gJHNydDsNCiAgICAvLyB0byBjYWxsIGFub3RoZXIgbWV0aG9kIG9mIHRoZSBtb2R1bGUsIHlvdSBoYXZlIHRvIGJlIGNhcmVmdWwgbm93IHRoYXQNCiAgICAvLyBtZXRob2RzIGNhbiBiZSBzcGxpdCBpbnRvIG90aGVyIGZpbGVzLiBIZXJlJ3MgdGhlIHByZWZlcmVkIGFwcHJvYWNoOg0KJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/CSS/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/CSS/farbtastic.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqDQogKiBGYXJidGFzdGljIENvbG9yIFBpY2tlciAxLjINCiAqIMKpIDIwMDggU3RldmVuIFdpdHRlbnMNCiAqDQogKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQogKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KICoNCiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCiAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQogKg0KICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0ENCiAqLw0KI1BQQk0gLmZhcmJ0YXN0aWMgew0KICBwb3NpdGlvbjogcmVsYXRpdmU7DQp9DQojUFBCTSAuZmFyYnRhc3RpYyAqIHsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBjdXJzb3I6IGNyb3NzaGFpcjsNCn0NCiNQUEJNIC5mYXJidGFzdGljLCNQUEJNICAuZmFyYnRhc3RpYyAud2hlZWwgew0KICB3aWR0aDogMTk1cHg7DQogIGhlaWdodDogMTk1cHg7DQp9DQojUFBCTSAuZmFyYnRhc3RpYyAuY29sb3IsICNQUEJNIC5mYXJidGFzdGljIC5vdmVybGF5IHsNCiAgdG9wOiA0N3B4Ow0KICBsZWZ0OiA0N3B4Ow0KICB3aWR0aDogMTAxcHg7DQogIGhlaWdodDogMTAxcHg7DQp9DQojUFBCTSAuZmFyYnRhc3RpYyAud2hlZWwgew0KICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL3doZWVsLnBuZykgbm8tcmVwZWF0Ow0KICB3aWR0aDogMTk1cHg7DQogIGhlaWdodDogMTk1cHg7DQp9DQojUFBCTSAuZmFyYnRhc3RpYyAub3ZlcmxheSB7DQogIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbWFzay5wbmcpIG5vLXJlcGVhdDsNCn0NCiNQUEJNIC5mYXJidGFzdGljIC5tYXJrZXIgew0KICB3aWR0aDogMTdweDsNCiAgaGVpZ2h0OiAxN3B4Ow0KICBtYXJnaW46IC04cHggMCAwIC04cHg7DQogIG92ZXJmbG93OiBoaWRkZW47IA0KICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL21hcmtlci5wbmcpIG5vLXJlcGVhdDsNCn0NCg0K]]></data>
	</file>
	<file>
	  <filename>/CSS/MasterCSS.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[QGNoYXJzZXQgInV0Zi04IjsNCi8qIENTUyBEb2N1bWVudCAqLw0KLkJhY2tMaW5re2N1cnNvcjpwb2ludGVyO2Zsb2F0OnJpZ2h0O30NCiBiLnJib3R0b20gew0KZGlzcGxheTpibG9jazsNCn0NCiBiLnJib3R0b20gKiB7DQpiYWNrZ3JvdW5kOiNBOEI3QzYgbm9uZSByZXBlYXQgc2Nyb2xsIDAgMDsNCmRpc3BsYXk6YmxvY2s7DQpoZWlnaHQ6MXB4Ow0Kb3ZlcmZsb3c6aGlkZGVuOw0KfQ0KIGIucjEgew0KYmFja2dyb3VuZDojMDAwMDAwIG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7DQptYXJnaW46MCA1cHg7DQp9DQogYi5yMiB7DQptYXJnaW46MCAzcHg7DQp9DQogYi5yMyB7DQptYXJnaW46MCAycHg7DQp9DQogYi5yNCB7DQpoZWlnaHQ6MnB4Ow0KbWFyZ2luOjAgMXB4Ow0KfQ0KLlNpbWNvbnsNCglwYWRkaW5nOiAxMHB4Ow0KCWJvcmRlci1yaWdodDogMnB4IHNvbGlkICMwMDA7DQoJYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjMDAwOw0KCWJvcmRlci10b3Atc3R5bGU6IG5vbmU7DQoJYm9yZGVyLWJvdHRvbS1zdHlsZTogbm9uZTsNCgliYWNrZ3JvdW5kLWNvbG9yOiNBOEI3QzY7DQp9DQouU2ltV3JhcHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyB9DQouY29kZUhJR0hMSUdIVHtjb2xvcjojMzU0ZDU4OyBmb250LXNpemU6MTRweDsgZm9udC13ZWlnaHQ6NjAwOyBsaW5lLWhlaWdodDoxNXB4O30NCmRpdi5wYWdlY29udGFpbmVyIC5wYWdlaGVhZGVyIHtjb2xvcjojMzU0ZDU4OyBmb250LXNpemU6MjRweDsgZm9udC13ZWlnaHQ6NjAwOyBsaW5lLWhlaWdodDoxNXB4O30NCg0KZGl2LnBhZ2Vjb250YWluZXIgLnBhZ2VoZWFkZXIgc3Bhbi5oZWxwdGV4dHsNCglmb250LXNpemU6MTJweDsgDQoJZm9udC13ZWlnaHQ6bm9ybWFsOw0KCW1hcmdpbi10b3A6LTRweDsNCglwYWRkaW5nOjJweDsNCglwb3NpdGlvbjphYnNvbHV0ZTsNCglyaWdodDozNXB4Ow0KCXotaW5kZXg6MTA7DQp9DQpocnsNCglkaXNwbGF5OmJsb2NrOw0KCX0NCnRleHRhcmVhew0KCXdpZHRoOjI1MHB4Ow0KCWhlaWdodDo3NXB4Ow0KfQ0KLmV4dGVuZEhBTkRMRSAqIHsNCglkaXNwbGF5OmlubGluZTsNCgltYXJnaW46MWVtIDAgMC4yZW0gMjAlOw0KCWN1cnNvcjpwb2ludGVyOw0KfQ0KDQouTmV4dGVuZCB7DQoJbWFyZ2luOjFlbSAwIDAuMmVtIDIwJTsNCglwb3NpdGlvbjogcmVsYXRpdmU7DQp9DQouTmV4dGVuZCB7DQoJZGlzcGxheTpub25lOw0KfQ0KDQouVHJhbnNsYXRlQ29uIHsNCgliYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkY7DQoJYm9yZGVyOjJweCBzb2xpZCAjMDAwMDAwOw0KCXBvc2l0aW9uOmFic29sdXRlOw0KCXdpZHRoOjE5NXB4Ow0KCXotaW5kZXg6NzAwOw0KfQ0KLmNvbnRyeUNvZGVzew0KCXdpZHRoOjM1MHB4Ow0KCWhlaWdodDoxNTBweDsNCglvdmVyZmxvdzpzY3JvbGw7DQoJYm9yZGVyOiBtZWRpdW0gaW5zZXQgIzMzMzsNCgliYWNrZ3JvdW5kLWNvbG9yOiNDQ0M7DQoJcGFkZGluZzoxMHB4Ow0KCWxpbmUtaGVpZ2h0OjIwcHg7DQp9DQoNCiNkZW1vdGlwIHsNCglkaXNwbGF5Om5vbmU7DQoJYmFja2dyb3VuZDp0cmFuc3BhcmVudCB1cmwoaHR0cDovL2Zsb3dwbGF5ZXIub3JnL3Rvb2xzL2ltZy90b29sdGlwL2JsYWNrX2Fycm93X2JpZy5wbmcpOw0KCWZvbnQtc2l6ZToxMnB4Ow0KCWhlaWdodDoxNjZweDsNCgl3aWR0aDozMjBweDsNCglwYWRkaW5nOjI1cHg7DQoJY29sb3I6I2ZmZjsNCglwb3NpdGlvbjogcmVsYXRpdmU7DQoJei1pbmRleDo5OTk2Ow0KfQ0KIA0KLyogc3R5bGUgdGhlIHRyaWdnZXIgZWxlbWVudHMgKi8NCiNkZW1vIGltZyB7DQoJYm9yZGVyOjA7DQoJY3Vyc29yOnBvaW50ZXI7DQoJbWFyZ2luOjAgOHB4Ow0KfQ0KaW1nLnN5c3RlbWljb257IGN1cnNvcjpwb2ludGVyO30NCi5wcm9ncmVzcyB7cG9zaXRpb246YWJzb2x1dGU7dG9wOjQ1JTtsZWZ0OjUwJTsgei1pbmRleDo5OTk3O30NCg0KI3BhZ2VfdGFicyBkaXZ7DQoJYmFja2dyb3VuZDp0cmFuc3BhcmVudCBub25lOw0KCWJvcmRlcjogbm9uZTsNCgltYXJnaW46MHB4Ow0KCXBhZGRpbmc6MHB4Ow0KCWZsb2F0Om5vbmU7DQoJY3Vyc29yOmRlZmF1bHQ7fQ0KZGl2LlRhYnBhbmVzIGRpdi5wYW5lIHsNCglkaXNwbGF5Om5vbmU7CQkNCglwYWRkaW5nOjE1cHggMTBweDsNCglib3JkZXI6MXB4IHNvbGlkICM5OTk7DQoJYm9yZGVyLXRvcDowOw0KCWZvbnQtc2l6ZToxMnB4Ow0KCWJhY2tncm91bmQtY29sb3I6I2ZmZjsNCn0NCg0KLyogcm9vdCBlbGVtZW50IGZvciB0YWJzICAqLw0KdWwudGFiZXJzIHsgDQoJbGlzdC1zdHlsZTpub25lOyANCgltYXJnaW46MCAhaW1wb3J0YW50OyANCglwYWRkaW5nOjA7DQoJaGVpZ2h0OjMwcHg7DQoJYm9yZGVyLWJvdHRvbToxcHggc29saWQgIzY2NjsJDQp9DQoNCi8qIHNpbmdsZSB0YWIgKi8NCnVsLnRhYmVycyBsaSB7IA0KCWZsb2F0OmxlZnQ7CSANCgl0ZXh0LWluZGVudDowOw0KCXBhZGRpbmc6MDsNCgltYXJnaW46MCAhaW1wb3J0YW50Ow0KCWxpc3Qtc3R5bGUtaW1hZ2U6bm9uZSAhaW1wb3J0YW50OyANCn0NCg0KLyogbGluayBpbnNpZGUgdGhlIHRhYi4gdXNlcyBhIGJhY2tncm91bmQgaW1hZ2UgKi8NCnVsLnRhYmVycyBhIHsgDQoJYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9ibHVlLnBuZykgbm8tcmVwZWF0IC00MjBweCAwOw0KCWZvbnQtc2l6ZToxMXB4Ow0KCWRpc3BsYXk6YmxvY2s7DQoJaGVpZ2h0OiAzMHB4OyAgDQoJbGluZS1oZWlnaHQ6MzBweDsNCgl3aWR0aDogMTM0cHg7DQoJdGV4dC1hbGlnbjpjZW50ZXI7CQ0KCXRleHQtZGVjb3JhdGlvbjpub25lOw0KCWNvbG9yOiMwMDA7DQoJcGFkZGluZzowcHg7DQoJbWFyZ2luOjBweDsJDQoJcG9zaXRpb246cmVsYXRpdmU7DQoJdG9wOjFweDsNCn0NCg0KdWwudGFiZXJzIGE6YWN0aXZlIHsNCglvdXRsaW5lOm5vbmU7CQkNCn0NCg0KLyogd2hlbiBtb3VzZSBlbnRlcnMgdGhlIHRhYiBtb3ZlIHRoZSBiYWNrZ3JvdW5kIGltYWdlICovDQp1bC50YWJlcnMgYTpob3ZlciB7DQoJYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9ibHVlLnBuZykgbm8tcmVwZWF0IC00MjBweCAgLTMxcHg7Ow0KCWNvbG9yOiNmZmY7CQ0KfQ0KDQovKiBhY3RpdmUgdGFiIHVzZXMgYSBjbGFzcyBuYW1lICJjdXJyZW50Ii4gaXQncyBoaWdobGlnaHQgaXMgYWxzbyBkb25lIGJ5IG1vdmluZyB0aGUgYmFja2dyb3VuZCBpbWFnZS4gKi8NCnVsLnRhYmVycyBhLmN1cnJlbnQsIHVsLnRhYmVycyBhLmN1cnJlbnQ6aG92ZXIsIHVsLnRhYmVycyBsaS5jdXJyZW50IGEgew0KCWJhY2tncm91bmQtcG9zaXRpb246IC00MjBweCAtNjJweDsJCQ0KCWN1cnNvcjpkZWZhdWx0ICFpbXBvcnRhbnQ7IA0KCWNvbG9yOiMwMDAgIWltcG9ydGFudDsNCn0NCg0KLyogRGlmZmVyZW50IHdpZHRocyBmb3IgdGFiczogdXNlIGEgY2xhc3MgbmFtZTogdzEsIHcyLCB3MyBvciB3MiAqLw0KDQoNCi8qIHdpZHRoIDEgKi8NCnVsLnRhYmVycyBhLncxIAkJCXsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTUxOXB4IDA7IHdpZHRoOjEzNHB4OyB9DQp1bC50YWJlcnMgYS53MTpob3ZlciAJeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNTE5cHggLTMxcHg7IH0NCnVsLnRhYmVycyBhLncxLmN1cnJlbnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNTE5cHggLTYycHg7IH0NCg0KLyogd2lkdGggMiAqLw0KdWwudGFiZXJzIGEudzIgCQkJeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzY2cHggLTBweDsgd2lkdGg6MTU0cHg7IH0NCnVsLnRhYmVycyBhLncyOmhvdmVyIAl7IGJhY2tncm91bmQtcG9zaXRpb246IC0zNjZweCAtMzFweDsgfQ0KdWwudGFiZXJzIGEudzIuY3VycmVudCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zNjZweCAtNjJweDsgfQ0KDQoNCi8qIHdpZHRoIDMgKi8NCnVsLnRhYmVycyBhLnczIAkJCXsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE5M3B4IC0wcHg7IHdpZHRoOjE3NHB4OyB9DQp1bC50YWJlcnMgYS53Mzpob3ZlciAJeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkzcHggLTMxcHg7IH0NCnVsLnRhYmVycyBhLnczLmN1cnJlbnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkzcHggLTYycHg7IH0NCg0KLyogd2lkdGggNCAqLw0KdWwudGFiZXJzIGEudzQgCQkJeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMHB4IC0wcHg7IHdpZHRoOjE5NHB4OyB9DQp1bC50YWJlcnMgYS53NDpob3ZlciAJeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMHB4IC0zMXB4OyB9DQp1bC50YWJlcnMgYS53NC5jdXJyZW50IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTBweCAtNjJweDsgfQ0KDQoNCi8qIGluaXRpYWxseSBhbGwgcGFuZXMgYXJlIGhpZGRlbiAqLyANCmRpdi5UYWJwYW5lcyBkaXYucGFuZSB7DQoJZGlzcGxheTpub25lOwkJDQp9DQojcGFnZV90YWJzICNQUEJNew0KCWJvcmRlci1yaWdodDogMXB4IHNvbGlkICMzMzM7DQoJYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzMzM7DQoJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjMzMzOw0KCXdpZHRoOjEwMCU7DQp9DQojcGFnZV90YWJzIGRpdi5wYW5lew0KCXdpZHRoOjEwMCU7DQpwYWRkaW5nLXRvcDoxMHB4Ow0KdGV4dC1hbGlnbjpsZWZ0Ow0KCX0NCiNwYWdlX3RhYnN7IG1hcmdpbjowcHg7IHBhZGRpbmc6MHB4O30NCg0KZGl2LnBhZ2Vjb250YWluZXIgLnBhZ2V0ZXh0IHsgdGV4dC1hbGlnbjpsZWZ0O30NCg0KI3BhZ2VfdGFicyBkaXYuVHJhbnNsYXRlew0KCXRleHQtYWxpZ246bGVmdDsNCmNvbG9yOiMzODQ2NTQ7DQpmb250LXdlaWdodDpib2xkOw0KbWFyZ2luOjFlbSAwIDAuMmVtIDIwJTsNCnBhZGRpbmc6MDsNCndpZHRoOmF1dG87CQ0KfQ0KDQpkaXYuVHJhbnNsYXRlICp7DQoJbWFyZ2luOjBweDsgcGFkZGluZzowcHg7DQp9DQoNCi5zeXN0ZW1pY29uew0Kd2lkdGg6MTVweDsNCn0NCg==]]></data>
	</file>
	<file>
	  <filename>/CSS/_notes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/CSS/_notes/dwsync.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+DQo8ZHdzeW5jPg0KPGZpbGUgbmFtZT0iZmFyYnRhc3RpYy5jc3MiIHNlcnZlcj0iOTguMTI5LjEwNS4yMCIgbG9jYWw9IjEyOTA1Mzc0MTU2NzgxMjUwMCIgcmVtb3RlPSIxMjkwNTM4NDUyMDAwMDAwMDAiIC8+DQo8ZmlsZSBuYW1lPSJNYXN0ZXJDU1MuY3NzIiBzZXJ2ZXI9Ijk4LjEyOS4xMDUuMjAiIGxvY2FsPSIxMjkwNTM3NDE1Njc4MTI1MDAiIHJlbW90ZT0iMTI5MDUzODQ1MjAwMDAwMDAwIiAvPg0KPC9kd3N5bmM+]]></data>
	</file>
	<file>
	  <filename>/function.admin_ACToptionstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogaUNhbCAtIGlDYWwgQ3JlYXRvciBhbmQgTWFuYWdlciANCiMgTW9kIGRlc2lnbmVkIGJ5IGplcmVteUJhc3MgKGplcmVteUJhc3NAY2FibGVvbmUubmV0KQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2lDYWwvDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFpc3NldCgkZ0NtcykgKSBleGl0Ow0KDQoNCiR1cmxleHQ9Q01TX1NFQ1VSRV9QQVJBTV9OQU1FLic9Jy4kX1NFU1NJT05bQ01TX1VTRVJfS0VZXTsNCiRpbWdIZWxwRj0nPGltZyBzcmM9Ii4uL2FkbWluL3RoZW1lcy9OQ2xlYW5HcmV5L2ltYWdlcy9pY29ucy9zeXN0ZW0vaW5mby1leHRlcm5hbC5naWYiIGFsdD0iJy4kdXJsZXh0LiciIGNsYXNzPSJzeXN0ZW1pY29uIiB0aXRsZT0iIiByZWw9Iic7DQokaW1nSGVscEI9JyIvPic7DQoNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21vZF9wcmVmc190aXRsZScsICR0aGlzLT5MYW5nKCdtb2RfcHJlZnNfdGl0bGUnKSk7DQogICAgDQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX3N0YXJ0JywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdzYXZlX0FDVHB0aW9ucycsICRyZXR1cm5pZCwgJ3Bvc3QnLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fZW5kJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmb3JtX3N1Ym1pdEFDVHB0aW9ucycsICR0aGlzLT5MYW5nKCdmb3JtX3N1Ym1pdCcpKSk7DQoNCiAgICAvLyB5b3UnbGwgb2Z0ZW4gd2FudCB0byBkbyB0aGluZ3MgbGlrZSB0aGlzIHRvIHByb3ZpZGUgZmVlZGJhY2s6DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtZXNzYWdlJywgKGlzc2V0KCRwYXJhbXNbJ21lc3NhZ2UnXSk/JHBhcmFtc1snbWVzc2FnZSddOicnKSk7DQoJDQoJDQovLwkNCi8vCQ0KLy8JDQovLwkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ludGVybmFsX2xhYmVsJywgJHRoaXMtPkxhbmcoJ2ludGVybmFsX2xhYmVsJykuJGltZ0hlbHBGLiJpbnRlcm5hbCIuJGltZ0hlbHBCKTsNCi8vICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignaW50ZXJuYWxfaW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwICgkaWQsICdpbnRlcm5hbCcsIGFycmF5KCdObyc9PicwJywnWWVzJz0+JzEnKSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ludGVybmFsJywnMCcpLCcnLCcmbmJzcDsmbmJzcDsmbmJzcDsnKSk7DQovLw0KLy8NCi8vCSR0aGlzLT5zbWFydHktPmFzc2lnbignY3BwX2hlYWRlcl9pbWFnZV9sYWJlbCcsICR0aGlzLT5MYW5nKCdjcHBfaGVhZGVyX2ltYWdlX2xhYmVsJykuJGltZ0hlbHBGLiJjcHBfaGVhZGVyX2ltYWdlIi4kaW1nSGVscEIpOw0KLy8JJGltZ0hlYWQ9JHRoaXMtPkdldFByZWZlcmVuY2UoJ2NwcF9oZWFkZXJfaW1hZ2UnKTsNCi8vCQ0KLy8JJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjcHBfaGVhZGVyX19VUkxfbGFiZWwnLCAkdGhpcy0+TGFuZygnY3BwX2hlYWRlcl9fVVJMX2xhYmVsJykpOw0KLy8gICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjcHBfaGVhZGVyX19VUkxfaW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2NwcF9oZWFkZXJfX1VSTCcsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjcHBfaGVhZGVyX2ltYWdlJyksIDQwKSk7DQovLwkJDQovLwkJDQovLw0KLy8JDQovLwkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0xhbmdfbGFiZWwnLCAkdGhpcy0+TGFuZygnTGFuZ19sYWJlbCcpLiRpbWdIZWxwRi4iTGFuZyIuJGltZ0hlbHBCKTsNCi8vCSR0aGlzLT5zbWFydHktPmFzc2lnbignTGFuZ19pbnB1dCcsDQovLwkJICAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdMYW5nJywgJExhbmdBcnJheSwgJycsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdMYW5nJywnZW4nKSkpOw0KCQ0KDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2RlYnVnSVQnLCAkdGhpcy0+TGFuZygnZGVidWdJVCcpKTsNCgkkZmlyZXBocG1vZHVsZT0kdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0ZpcmVQSFBEZWJ1ZycpOw0KCSAgaWYgKCRmaXJlcGhwbW9kdWxlKXsNCgkJJGRlYnVnSVRfbGFiZWw9JHRoaXMtPkxhbmcoJ2RlYnVnSVRfbGFiZWwnKTsNCgkJJGRpc2FibGU9Jyc7DQoJICB9ZWxzZXsNCgkJICAkZGVidWdJVF9sYWJlbD0gJHRoaXMtPkxhbmcoJ2RlYnVnSVRfbGFiZWwnKS4kdGhpcy0+TGFuZygnZGVidWdJVG5vdGVfbGFiZWwnKTsNCgkJICAkZGlzYWJsZT0nZGlzYWJsZWQ9ImRpc2FibGVkIic7DQoJICB9DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdkZWJ1Z0lUX2xhYmVsJywgJGRlYnVnSVRfbGFiZWwuJGltZ0hlbHBGLiJkZWJ1Z0lUIi4kaW1nSGVscEIpOwkNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2RlYnVnSVRfaW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwICgkaWQsICdkZWJ1Z0lUJywgYXJyYXkoJ05vJz0+JzAnLCdZZXMnPT4nMScpLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVidWdJVCcpLCcnLiRkaXNhYmxlLicnLCcmbmJzcDsmbmJzcDsmbmJzcDsnKSk7DQoNCgkNCgkNCgkNCiAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX29wdGlvbnMudHBsJyk7DQppbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvYWN0aW9uLmNsZWFyQ2FjaGUucGhwJyk7DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_BTNoptionstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogaUNhbCAtIGlDYWwgQ3JlYXRvciBhbmQgTWFuYWdlciANCiMgTW9kIGRlc2lnbmVkIGJ5IGplcmVteUJhc3MgKGplcmVteUJhc3NAY2FibGVvbmUubmV0KQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2lDYWwvDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFpc3NldCgkZ0NtcykgKSBleGl0Ow0KDQokY29uZmlnID0mICRnQ21zLT5HZXRDb25maWcoKTsgDQokdXJsZXh0PUNNU19TRUNVUkVfUEFSQU1fTkFNRS4nPScuJF9TRVNTSU9OW0NNU19VU0VSX0tFWV07DQokaW1nSGVscEY9JzxpbWcgc3JjPSIuLi9hZG1pbi90aGVtZXMvTkNsZWFuR3JleS9pbWFnZXMvaWNvbnMvc3lzdGVtL2luZm8tZXh0ZXJuYWwuZ2lmIiBhbHQ9IicuJHVybGV4dC4nIiBjbGFzcz0ic3lzdGVtaWNvbiIgdGl0bGU9IiIgcmVsPSInOw0KJGltZ0hlbHBCPSciLz4nOw0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignbW9kX3ByZWZzX3RpdGxlJywgJHRoaXMtPkxhbmcoJ21vZF9wcmVmc190aXRsZScpKTsNCiAgICANCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fc3RhcnQnLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ3NhdmVfQk5Ub3B0aW9ucycsICRyZXR1cm5pZCwgJ3Bvc3QnLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fZW5kJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmb3JtX3N1Ym1pdCcsICR0aGlzLT5MYW5nKCdmb3JtX3N1Ym1pdCcpKSk7DQoNCiAgICAvLyB5b3UnbGwgb2Z0ZW4gd2FudCB0byBkbyB0aGluZ3MgbGlrZSB0aGlzIHRvIHByb3ZpZGUgZmVlZGJhY2s6DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtZXNzYWdlJywgKGlzc2V0KCRwYXJhbXNbJ21lc3NhZ2UnXSk/JHBhcmFtc1snbWVzc2FnZSddOicnKSk7DQoJDQoJDQokVFpJREFycmF5PWFycmF5KCdVUy1QYWNpZmljJz0+J1VTLVBhY2lmaWMnLA0KCQknVVMtQ2VudHJhbCc9PidVUy1DZW50cmFsJywNCgkJJ1VTLU1vdW50YWluJz0+J1VTLU1vdW50YWluJywNCgkJJ1VTLUVhc3Rlcm4nPT4nVVMtRWFzdGVybicNCik7CQ0KDQoNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NtYXJ0eU9uX2xhYmVsJywgJHRoaXMtPkxhbmcoJ3NtYXJ0eU9uX2xhYmVsJykuJGltZ0hlbHBGLiJzbWFydHlPbiIuJGltZ0hlbHBCKTsNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NtYXJ0eU9uX2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCAoJGlkLCAnc21hcnR5T24nLCBhcnJheSgnTm8nPT4nMCcsJ1llcyc9PicxJyksICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzbWFydHlPbicsJzAnKSwnJywnJm5ic3A7Jm5ic3A7Jm5ic3A7JykpOw0KCQ0KDQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdUWklEX2xhYmVsJywgJHRoaXMtPkxhbmcoJ1RaSURfbGFiZWwnKS4kaW1nSGVscEYuIlRaSUQiLiRpbWdIZWxwQik7DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdUWklEX2lucHV0JywNCgkJJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnVFpJRCcsICRUWklEQXJyYXksICcnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnVFpJRCcsIlVTLVBhY2lmaWMiKSkpOwkNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdDQUxfVVJMX2xhYmVsJywgJHRoaXMtPkxhbmcoJ0NBTF9VUkxfbGFiZWwnKS4kaW1nSGVscEYuIkNBTF9VUkwiLiRpbWdIZWxwQik7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdDQUxfVVJMX2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdDQUxfVVJMJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ0NBTF9VUkwnLCRjb25maWdbJ3Jvb3RfdXJsJ10pLCA0MCkpOw0KCQ0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2xpbmt0ZXh0X2xhYmVsJywgJHRoaXMtPkxhbmcoJ2xpbmt0ZXh0X2xhYmVsJykuJGltZ0hlbHBGLiJsaW5rdGV4dCIuJGltZ0hlbHBCKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2xpbmt0ZXh0X2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdsaW5rdGV4dCcsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdsaW5rdGV4dCcsJHRoaXMtPkxhbmcoJ2xpbmt0ZXh0X2RlZmF1bHQnKSksIDQwKSk7DQoJDQoJDQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdkYXlsaWdodFNhdmluZ19sYWJlbCcsICR0aGlzLT5MYW5nKCdkYXlsaWdodFNhdmluZ19sYWJlbCcpLiRpbWdIZWxwRi4iZGF5bGlnaHRTYXZpbmciLiRpbWdIZWxwQik7DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdkYXlsaWdodFNhdmluZ19pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAgKCRpZCwgJ2RheWxpZ2h0U2F2aW5nJywgYXJyYXkoJ05vJz0+ZmFsc2UsJ1llcyc9PnRydWUpLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGF5bGlnaHRTYXZpbmcnLHRydWUpLCcnLCcmbmJzcDsmbmJzcDsmbmJzcDsnKSk7DQoNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhY2hlQnVzdGVyX2xhYmVsJywgJHRoaXMtPkxhbmcoJ2NhY2hlQnVzdGVyX2xhYmVsJykuJGltZ0hlbHBGLiJjYWNoZUJ1c3RlciIuJGltZ0hlbHBCKTsNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhY2hlQnVzdGVyX2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCAoJGlkLCAnY2FjaGVCdXN0ZXInLCBhcnJheSgnTm8nPT5mYWxzZSwnWWVzJz0+dHJ1ZSksICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjYWNoZUJ1c3RlcicsZmFsc2UpLCcnLCcmbmJzcDsmbmJzcDsmbmJzcDsnKSk7DQoNCg0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigncm9vdFVybF9sYWJlbCcsICR0aGlzLT5MYW5nKCdyb290VXJsX2xhYmVsJykuJGltZ0hlbHBGLiJyb290VXJsIi4kaW1nSGVscEIpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigncm9vdFVybF9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAncm9vdFVybCcsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyb290VXJsJywkY29uZmlnWydyb290X3VybCddKSwgNDApKTsNCgkNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ01BSUxUT19sYWJlbCcsICR0aGlzLT5MYW5nKCdNQUlMVE9fbGFiZWwnKS4kaW1nSGVscEYuIk1BSUxUTyIuJGltZ0hlbHBCKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ01BSUxUT19pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnTUFJTFRPJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ01BSUxUTycsJycpLCA0MCkpOw0KDQoNCg0KDQoJDQogICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9CTlRvcHRpb25zLnRwbCcpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/iCal.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogaUNhbCAtIGlDYWwgQ3JlYXRvciBhbmQgTWFuYWdlciANCiMgTW9kIGRlc2lnbmVkIGJ5IGplcmVteUJhc3MgKGplcmVteUJhc3NAY2FibGVvbmUubmV0KQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2lDYWwvDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoNCmNsYXNzIGlDYWwgZXh0ZW5kcyBDTVNNb2R1bGUNCnsNCglmdW5jdGlvbiBHZXROYW1lKCl7DQoJCXJldHVybiBnZXRfY2xhc3MoJHRoaXMpOw0KCX0NCgkNCglmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKXsNCgkJcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsNCgl9DQoJDQoJZnVuY3Rpb24gR2V0VmVyc2lvbigpew0KCQlyZXR1cm4gJzAuMSc7DQoJfQ0KCQ0KCWZ1bmN0aW9uIEdldEhlbHAoKXsNCgkJcmV0dXJuICR0aGlzLT5MYW5nKCdoZWxwJyk7DQoJfQ0KCQ0KCWZ1bmN0aW9uIEdldEF1dGhvcigpew0KCQlyZXR1cm4gJ2plcmVteUJhc3MnOw0KCX0NCgkNCglmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpew0KCQlyZXR1cm4gJ2plcmVteWJhc3NAY2FibGVvbmUubmV0JzsNCgl9DQoJDQoJZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCl7DQoJCXJldHVybiAkdGhpcy0+TGFuZygnY2hhbmdlbG9nJyk7DQoJfQ0KCQ0KCWZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCl7DQoJCXJldHVybiB0cnVlOw0KCX0NCgkNCglmdW5jdGlvbiBIYXNBZG1pbigpew0KCQlyZXR1cm4gdHJ1ZTsNCgl9DQoJDQoJZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uKCl7DQoJCXJldHVybiAnZXh0ZW5zaW9ucyc7DQoJfQ0KCQ0KCWZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24oKXsNCgkJcmV0dXJuICR0aGlzLT5MYW5nKCdtb2RkZXNjcmlwdGlvbicpOw0KCX0NCgkNCglmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKXsNCgkJcmV0dXJuICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDYWxlbmRhcicpOw0KCX0NCgkNCglmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKXsNCgkJcmV0dXJuIGFycmF5KCk7DQoJfQ0KCQ0KCWZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCl7DQoJCXJldHVybiAiMS42LjUiOw0KCX0NCgkNCglmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKXsNCgkJcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpOw0KCX0NCgkNCglmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpew0KCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsNCgl9DQoNCglmdW5jdGlvbiBVbmluc3RhbGxQcmVNZXNzYWdlKCl7DQoJCXJldHVybiBmYWxzZTsvLyR0aGlzLT5MYW5nKCdyZWFsbHlfdW5pbnN0YWxsJyk7DQoJfQ0KCWZ1bmN0aW9uIEZpcmVEZWJ1ZygkY29tbWFuZCwkbWVzc2FnZSwkdmFyaWFibGVzPWFycmF5KCkpIHsNCgkgaWYoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlYnVnSVQnKT09MSl7ICRmaXJlcGhwbW9kdWxlPSR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnRmlyZVBIUERlYnVnJyk7DQoJICBpZiAoJGZpcmVwaHBtb2R1bGUpIHsNCgkJLy9Nb2R1bGUgZm91bmQNCgkJJGZpcmVwaHBtb2R1bGUtPlNldE1vZHVsZU5hbWUoJHRoaXMtPkdldE5hbWUoKSk7DQoJCSRmaXJlcGhwbW9kdWxlLT5Db21tYW5kKCRjb21tYW5kLCAkbWVzc2FnZSwgJHZhcmlhYmxlcyk7DQoJICB9IC8vZWxzZSBNb2R1bGUgbm90IGZvdW5kDQoJIH0NCgl9Ly8kdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywkayk7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQkNCg0KDQogIC8qKg0KICAgKiBfRG9BZGRFdmVudCgkcGFyYW1zKQ0KICAgKi8NCiAgDQogIC8qKg0KICAgKiBEaXNwbGF5IGEgc2ltcGxlIG1lc3NhZ2UNCiAgICovDQoJZnVuY3Rpb24gRGlzcGxheU1lc3NhZ2UoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkLCAkdGl0bGUsICRtZXNzYWdlKXsNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZScsICR0aXRsZSk7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignbWVzc2FnZScsICRtZXNzYWdlKTsNCgkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdtZXNzYWdlLnRwbCcpOw0KCX0NCiAgDQoNCg0KCWZ1bmN0aW9uIG15UmVkaXJlY3RUb1RhYiggJGlkLCAkdGFiLCAkcGFyYW1zID0gJycgKXsNCgkJJHBhcm1zID0gYXJyYXkoKTsNCgkJaWYoIGlzX2FycmF5KCRwYXJhbXMpKXsNCgkJCSRwYXJtcyA9ICRwYXJhbXM7DQoJCX0NCgkJJHBhcm1zID0gYXJyYXkoJ2FjdGl2ZV90YWInID0+ICR0YWIgKTsNCgkJJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHRhZG1pbicsICRwYXJtcyApOw0KCX0NCgkNCglmdW5jdGlvbiBteVJlZGlyZWN0KCAkaWQsICRhY3Rpb24sICRwYXJhbXMgPSAnJyApew0KCQl1bnNldCgkcGFyYW1zWydhY3Rpb24nXSk7DQoJCSR0aGlzLT5SZWRpcmVjdCggJGlkLCAkYWN0aW9uLCAnJywgJHBhcmFtcyApOw0KCX0NCg0KCWZ1bmN0aW9uIHJlY3Vyc2l2ZV9ybWRpcigkZGlyKQ0KCSB7DQoJCS8vIGFsbCBzdWJkaXJlY3RvcmllcyBhbmQgY29udGVudHM6DQoJCWlmKGlzX2RpcigkZGlyKSl7DQoJCQkkZGlyX2hhbmRsZT1vcGVuZGlyKCRkaXIpOw0KCQl9ZWxzZXsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KCQl3aGlsZSgkZmlsZT1yZWFkZGlyKCRkaXJfaGFuZGxlKSkNCgkJew0KCQlpZigkZmlsZSE9Ii4iICYmICRmaWxlIT0iLi4iKQ0KCQl7DQoJCWlmKCFpc19kaXIoJGRpci4iLyIuJGZpbGUpKXVubGluayAoJGRpci4iLyIuJGZpbGUpOw0KCQllbHNlICR0aGlzLT5yZWN1cnNpdmVfcm1kaXIoJGRpci4iLyIuJGZpbGUpOw0KCQl9DQoJCX0NCgkJY2xvc2VkaXIoJGRpcl9oYW5kbGUpOw0KCQlybWRpcigkZGlyKTsNCgkJcmV0dXJuIHRydWU7DQoJfQ0KDQoNCglmdW5jdGlvbiBMaXN0QlROKCl7DQoJDQoJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsNCgkNCgkJJHJldHJlc3VsdCA9IGFycmF5KCk7DQoJCSRyZXN1bHRzID0gYXJyYXkoKTsJDQoJDQoJCSRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfaUNhbF9CdG4gJw0KCQkuJ0xFRlQgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2lDYWxfQnRuX09QVCAnDQoJCS4nT04gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9pQ2FsX0J0bi5JRCA9ICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfaUNhbF9CdG5fT1BULklEJzsNCgkJJHJlc3VsdCA9ICYkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsNCgkNCgkJd2hpbGUgKCRyZXN1bHQgJiYgISRyZXN1bHQtPkVPRil7DQoJCQkkZGFLZXk9JHJlc3VsdC0+ZmllbGRzWydCS1NldCddOw0KCQkJJHJlc3VsdHNbJ1ByZWZpeCddPSAkcmVzdWx0LT5maWVsZHNbJ1ByZWZpeCddOw0KCQkJJHJlc3VsdHNbJ1N1ZmZpeCddPSAkcmVzdWx0LT5maWVsZHNbJ1N1ZmZpeCddOw0KCQkJJHJlc3VsdHNbJ1N1YmRpciddPSAkcmVzdWx0LT5maWVsZHNbJ1N1YmRpciddOw0KCQkJJHJlc3VsdHNbJ2ZpbGViYXNlbmFtZSddPSAkcmVzdWx0LT5maWVsZHNbJ2ZpbGViYXNlbmFtZSddOw0KCQkJJHJlc3VsdHNbJ1RaSUQnXT0gJHJlc3VsdC0+ZmllbGRzWydUWklEJ107DQoJCQkkcmVzdWx0c1snZGF5bGlnaHRTYXZpbmcnXT0gJHJlc3VsdC0+ZmllbGRzWydkYXlsaWdodFNhdmluZyddOw0KCQkJJHJlc3VsdHNbJ0NBTF9VUkwnXT0gJHJlc3VsdC0+ZmllbGRzWydDQUxfVVJMJ107DQoJCQkkcmVzdWx0c1snRFRTVEFSVCddPSAkcmVzdWx0LT5maWVsZHNbJ0RUU1RBUlQnXTsNCgkJCSRyZXN1bHRzWydEVEVORCddPSAkcmVzdWx0LT5maWVsZHNbJ0RURU5EJ107DQoJCQkkcmVzdWx0c1snTE9DQVRJT04nXT0gJHJlc3VsdC0+ZmllbGRzWydMT0NBVElPTiddOw0KCQkJJHJlc3VsdHNbJ1NVTU1BUlknXT0gJHJlc3VsdC0+ZmllbGRzWydTVU1NQVJZJ107DQoJCQkkcmVzdWx0c1snQ0FURUdPUklFUyddPSAkcmVzdWx0LT5maWVsZHNbJ0NBVEVHT1JJRVMnXTsNCgkJCSRyZXN1bHRzWydERVNDUklQVElPTiddPSAkcmVzdWx0LT5maWVsZHNbJ0RFU0NSSVBUSU9OJ107DQoJCQkkcmVzdWx0c1snbGlua3RleHQnXT0gJHJlc3VsdC0+ZmllbGRzWydsaW5rdGV4dCddOw0KCQkJJHJlc3VsdHNbJ2NsYXNzJ109ICRyZXN1bHQtPmZpZWxkc1snY2xhc3MnXTsNCgkJCSRyZXN1bHRzWydhbHQnXT0gJHJlc3VsdC0+ZmllbGRzWydhbHQnXTsNCgkJCSRyZXN1bHRzWydpZHMnXT0gJHJlc3VsdC0+ZmllbGRzWydpZHMnXTsNCgkJCSRyZXN1bHRzWyd0aXRsZSddPSAkcmVzdWx0LT5maWVsZHNbJ3RpdGxlJ107DQoJCQkkcmVzdWx0c1snc3R5bGUnXT0gJHJlc3VsdC0+ZmllbGRzWydzdHlsZSddOw0KCQkJJHJlc3VsdHNbJ3RhcmdldCddPSAkcmVzdWx0LT5maWVsZHNbJ3RhcmdldCddOw0KCQkJJHJlc3VsdHNbJ2Fzc2lnbiddPSAkcmVzdWx0LT5maWVsZHNbJ2Fzc2lnbiddOw0KCQkJJHJlc3VsdHNbJ2NhY2hlQnVzdGVyJ109ICRyZXN1bHQtPmZpZWxkc1snY2FjaGVCdXN0ZXInXTsNCgkJCSRyZXN1bHRzWydyb290VXJsJ109ICRyZXN1bHQtPmZpZWxkc1sncm9vdFVybCddOw0KCQkJJHJlc3VsdHNbJ01BSUxUTyddPSAkcmVzdWx0LT5maWVsZHNbJ01BSUxUTyddOw0KCQkJJHJldHJlc3VsdFskZGFLZXldID0gJHJlc3VsdHM7DQoJCQkkcmVzdWx0LT5Nb3ZlTmV4dCgpOw0KCQl9DQoJDQoJCXJldHVybiAkcmV0cmVzdWx0Ow0KCX0gDQoNCg0KCWZ1bmN0aW9uIExpc3RBQlROKCRCVE4pew0KCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7DQoJDQoJCSRyZXRyZXN1bHQgPSBhcnJheSgpOw0KCQkkcmVzdWx0cyA9IGFycmF5KCk7CQ0KCQ0KCQkkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2lDYWxfQnRuICcNCgkJLidMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9pQ2FsX0J0bl9PUFQgJw0KCQkuJ09OICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfaUNhbF9CdG4uSUQgPSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2lDYWxfQnRuX09QVC5JRCc7DQoJCSRyZXN1bHQgPSAmJGRiLT5FeGVjdXRlKCRxdWVyeSk7DQoJDQoJCXdoaWxlICgkcmVzdWx0ICYmICEkcmVzdWx0LT5FT0Ypew0KCQ0KCQkJJGRhS2V5PSRyZXN1bHQtPmZpZWxkc1snQktTZXQnXTsNCgkJCSRyZXN1bHRzWydQcmVmaXgnXT0gJHJlc3VsdC0+ZmllbGRzWydQcmVmaXgnXTsNCgkJCSRyZXN1bHRzWydTdWZmaXgnXT0gJHJlc3VsdC0+ZmllbGRzWydTdWZmaXgnXTsNCgkJCSRyZXN1bHRzWydTdWJkaXInXT0gJHJlc3VsdC0+ZmllbGRzWydTdWJkaXInXTsNCgkJCSRyZXN1bHRzWydmaWxlYmFzZW5hbWUnXT0gJHJlc3VsdC0+ZmllbGRzWydmaWxlYmFzZW5hbWUnXTsNCgkJCSRyZXN1bHRzWydUWklEJ109ICRyZXN1bHQtPmZpZWxkc1snVFpJRCddOw0KCQkJJHJlc3VsdHNbJ2RheWxpZ2h0U2F2aW5nJ109ICRyZXN1bHQtPmZpZWxkc1snZGF5bGlnaHRTYXZpbmcnXTsNCgkJCSRyZXN1bHRzWydDQUxfVVJMJ109ICRyZXN1bHQtPmZpZWxkc1snQ0FMX1VSTCddOw0KCQkJJHJlc3VsdHNbJ0RUU1RBUlQnXT0gJHJlc3VsdC0+ZmllbGRzWydEVFNUQVJUJ107DQoJCQkkcmVzdWx0c1snRFRFTkQnXT0gJHJlc3VsdC0+ZmllbGRzWydEVEVORCddOw0KCQkJJHJlc3VsdHNbJ0xPQ0FUSU9OJ109ICRyZXN1bHQtPmZpZWxkc1snTE9DQVRJT04nXTsNCgkJCSRyZXN1bHRzWydTVU1NQVJZJ109ICRyZXN1bHQtPmZpZWxkc1snU1VNTUFSWSddOw0KCQkJJHJlc3VsdHNbJ0NBVEVHT1JJRVMnXT0gJHJlc3VsdC0+ZmllbGRzWydDQVRFR09SSUVTJ107DQoJCQkkcmVzdWx0c1snREVTQ1JJUFRJT04nXT0gJHJlc3VsdC0+ZmllbGRzWydERVNDUklQVElPTiddOw0KCQkJJHJlc3VsdHNbJ2xpbmt0ZXh0J109ICRyZXN1bHQtPmZpZWxkc1snbGlua3RleHQnXTsNCgkJCSRyZXN1bHRzWydjbGFzcyddPSAkcmVzdWx0LT5maWVsZHNbJ2NsYXNzJ107DQoJCQkkcmVzdWx0c1snYWx0J109ICRyZXN1bHQtPmZpZWxkc1snYWx0J107DQoJCQkkcmVzdWx0c1snaWRzJ109ICRyZXN1bHQtPmZpZWxkc1snaWRzJ107DQoJCQkkcmVzdWx0c1sndGl0bGUnXT0gJHJlc3VsdC0+ZmllbGRzWyd0aXRsZSddOw0KCQkJJHJlc3VsdHNbJ3N0eWxlJ109ICRyZXN1bHQtPmZpZWxkc1snc3R5bGUnXTsNCgkJCSRyZXN1bHRzWyd0YXJnZXQnXT0gJHJlc3VsdC0+ZmllbGRzWyd0YXJnZXQnXTsNCgkJCSRyZXN1bHRzWydhc3NpZ24nXT0gJHJlc3VsdC0+ZmllbGRzWydhc3NpZ24nXTsNCgkJCSRyZXN1bHRzWydjYWNoZUJ1c3RlciddPSAkcmVzdWx0LT5maWVsZHNbJ2NhY2hlQnVzdGVyJ107DQoJCQkkcmVzdWx0c1sncm9vdFVybCddPSAkcmVzdWx0LT5maWVsZHNbJ3Jvb3RVcmwnXTsNCgkJCSRyZXN1bHRzWydNQUlMVE8nXT0gJHJlc3VsdC0+ZmllbGRzWydNQUlMVE8nXTsNCgkJCSRyZXRyZXN1bHRbJGRhS2V5XSA9ICRyZXN1bHRzOw0KCQkJJHJlc3VsdC0+TW92ZU5leHQoKTsNCgkJfQ0KCQ0KCQlyZXR1cm4gJHJldHJlc3VsdFskQlROXTsNCgl9IA0KDQoNCmZ1bmN0aW9uIGNoZWNrQUJUTigkQlROKXsNCgkkZGIgPSYgJHRoaXMtPkdldERiKCk7DQoNCgkkcmV0cmVzdWx0ID0gYXJyYXkoKTsNCgkkcmVzdWx0cyA9IGFycmF5KCk7CQ0KDQoJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9pQ2FsX0J0biAnDQoJLidMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9pQ2FsX0J0bl9PUFQgJw0KCS4nT04gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9pQ2FsX0J0bi5JRCA9ICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfaUNhbF9CdG5fT1BULklEJzsNCgkkcmVzdWx0ID0gJiRkYi0+RXhlY3V0ZSgkcXVlcnkpOw0KDQoJd2hpbGUgKCRyZXN1bHQgJiYgISRyZXN1bHQtPkVPRil7DQoNCgkJJGRhS2V5PSRyZXN1bHQtPmZpZWxkc1snQktTZXQnXTsNCgkJCSRyZXN1bHRzWydQcmVmaXgnXT0gJHJlc3VsdC0+ZmllbGRzWydQcmVmaXgnXTsNCgkJCSRyZXN1bHRzWydTdWZmaXgnXT0gJHJlc3VsdC0+ZmllbGRzWydTdWZmaXgnXTsNCgkJCSRyZXN1bHRzWydTdWJkaXInXT0gJHJlc3VsdC0+ZmllbGRzWydTdWJkaXInXTsNCgkJCSRyZXN1bHRzWydmaWxlYmFzZW5hbWUnXT0gJHJlc3VsdC0+ZmllbGRzWydmaWxlYmFzZW5hbWUnXTsNCgkJCSRyZXN1bHRzWydUWklEJ109ICRyZXN1bHQtPmZpZWxkc1snVFpJRCddOw0KCQkJJHJlc3VsdHNbJ2RheWxpZ2h0U2F2aW5nJ109ICRyZXN1bHQtPmZpZWxkc1snZGF5bGlnaHRTYXZpbmcnXTsNCgkJCSRyZXN1bHRzWydDQUxfVVJMJ109ICRyZXN1bHQtPmZpZWxkc1snQ0FMX1VSTCddOw0KCQkJJHJlc3VsdHNbJ0RUU1RBUlQnXT0gJHJlc3VsdC0+ZmllbGRzWydEVFNUQVJUJ107DQoJCQkkcmVzdWx0c1snRFRFTkQnXT0gJHJlc3VsdC0+ZmllbGRzWydEVEVORCddOw0KCQkJJHJlc3VsdHNbJ0xPQ0FUSU9OJ109ICRyZXN1bHQtPmZpZWxkc1snTE9DQVRJT04nXTsNCgkJCSRyZXN1bHRzWydTVU1NQVJZJ109ICRyZXN1bHQtPmZpZWxkc1snU1VNTUFSWSddOw0KCQkJJHJlc3VsdHNbJ0NBVEVHT1JJRVMnXT0gJHJlc3VsdC0+ZmllbGRzWydDQVRFR09SSUVTJ107DQoJCQkkcmVzdWx0c1snREVTQ1JJUFRJT04nXT0gJHJlc3VsdC0+ZmllbGRzWydERVNDUklQVElPTiddOw0KCQkJJHJlc3VsdHNbJ2xpbmt0ZXh0J109ICRyZXN1bHQtPmZpZWxkc1snbGlua3RleHQnXTsNCgkJCSRyZXN1bHRzWydjbGFzcyddPSAkcmVzdWx0LT5maWVsZHNbJ2NsYXNzJ107DQoJCQkkcmVzdWx0c1snYWx0J109ICRyZXN1bHQtPmZpZWxkc1snYWx0J107DQoJCQkkcmVzdWx0c1snaWRzJ109ICRyZXN1bHQtPmZpZWxkc1snaWRzJ107DQoJCQkkcmVzdWx0c1sndGl0bGUnXT0gJHJlc3VsdC0+ZmllbGRzWyd0aXRsZSddOw0KCQkJJHJlc3VsdHNbJ3N0eWxlJ109ICRyZXN1bHQtPmZpZWxkc1snc3R5bGUnXTsNCgkJCSRyZXN1bHRzWyd0YXJnZXQnXT0gJHJlc3VsdC0+ZmllbGRzWyd0YXJnZXQnXTsNCgkJCSRyZXN1bHRzWydhc3NpZ24nXT0gJHJlc3VsdC0+ZmllbGRzWydhc3NpZ24nXTsNCgkJCSRyZXN1bHRzWydjYWNoZUJ1c3RlciddPSAkcmVzdWx0LT5maWVsZHNbJ2NhY2hlQnVzdGVyJ107DQoJCQkkcmVzdWx0c1sncm9vdFVybCddPSAkcmVzdWx0LT5maWVsZHNbJ3Jvb3RVcmwnXTsNCgkJCSRyZXN1bHRzWydNQUlMVE8nXT0gJHJlc3VsdC0+ZmllbGRzWydNQUlMVE8nXTsNCgkJJHJldHJlc3VsdFskZGFLZXldID0gJHJlc3VsdHM7DQoJCSRyZXN1bHQtPk1vdmVOZXh0KCk7DQoJfQ0KCWlmKCRyZXRyZXN1bHRbJEJUTl0hPScnKXskcj10cnVlO30NCglyZXR1cm4gJHI7DQp9IA0KDQoNCg0KDQoNCg0KZnVuY3Rpb24gX0FkbWluQ3JlYXRlVGVtcGxhdGVMaXN0KCAkaWQsICRyZXR1cm5pZCwgJHByZWZpeCwgJGRlZmF1bHR0ZW1wbGF0ZXByZWYsIA0KCQkJCSAgICAgJGFjdGl2ZV90YWIsICRkZWZhdWx0cHJlZm5hbWUsDQoJCQkJICAgICAkdGl0bGUpew0KCQkvLyB3ZSdyZSBnb25uYSBhbGxvdyBtdWx0aXBsZSB0ZW1wbGF0ZXMgaGVyZQ0KCQkvLyBidXQgd2UncmUgZ29ubmEgcHJlZml4IHRoZW0gYWxsIHdpdGggc29tZXRoaW5nDQoJCWdsb2JhbCAkZ0NtczsNCgkJDQoJCSRmYWxzZWltYWdlMSA9ICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywnbWFrZSBkZWZhdWx0JywnJywnJywnc3lzdGVtaWNvbicpOw0KCQkkdHJ1ZWltYWdlMSA9ICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vdHJ1ZS5naWYnLCdkZWZhdWx0JywnJywnJywnc3lzdGVtaWNvbicpOw0KCQkkYWxsZGJQcm9maWxlcyA9ICR0aGlzLT5MaXN0QlROKCk7DQoJCSRyb3dhcnJheSA9IGFycmF5KCk7DQoJCSRyb3djbGFzcyA9ICdyb3cxJzsNCgkJDQoJCQ0KCQkNCgkJZm9yZWFjaCgkYWxsZGJQcm9maWxlcyBhcyAka2V5ID0+ICRvbmVkYlByb2ZpbGUgKXsNCgkJCS8vJGFtb3VudD0gJG9uZWRiUHJvZmlsZVsnYW1vdW50J107DQoJCQkvLyRCdXR0b25JbWc9ICRvbmVkYlByb2ZpbGVbJ0J1dHRvbkltZyddOw0KCQkJJGl0ZW1fbmFtZT0gJG9uZWRiUHJvZmlsZVsnZmlsZWJhc2VuYW1lJ107DQoJCQkvLyRCdG5UeXBlPSAkb25lZGJQcm9maWxlWydCdG5UeXBlJ107DQoJCQkvLyRpdGVtX251bWJlcj0gJG9uZWRiUHJvZmlsZVsnaXRlbV9udW1iZXInXTsNCgkJCS8vJHF1YW50aXR5PSAkb25lZGJQcm9maWxlWydxdWFudGl0eSddOwkNCgkJDQoJCSRyb3cgPSBuZXcgU3RkQ2xhc3MoKTsNCgkJJHJvdy0+bmFtZSA9ICR0aGlzLT5DcmVhdGVMaW5rKCAkaWQsICdlZGl0dGVtcGxhdGUnLCAkcmV0dXJuaWQsDQoJCQkJCQkka2V5LCBhcnJheSgnQktTZXQnID0+ICRrZXksDQoJCQkJCQkJCSdhY3RpdmVfdGFiJyA9PiAkYWN0aXZlX3RhYiwNCgkJCQkJCQkJJ21vZGUnPT4nZWRpdCcpKTsNCgkJJHJvdy0+ZGVmYXVsdCA9ICR0aGlzLT5DcmVhdGVMaW5rKCAkaWQsICdlZGl0dGVtcGxhdGUnLCAkcmV0dXJuaWQsDQoJCQkJCQkkaXRlbV9uYW1lLCBhcnJheSgnQktTZXQnID0+ICRrZXksDQoJCQkJCQkJCSdhY3RpdmVfdGFiJyA9PiAkYWN0aXZlX3RhYiwNCgkJCQkJCQkJJ21vZGUnPT4nZWRpdCcpKTsNCgkJJHJvdy0+QnRuID0gJGtleTsJDQoJCQ0KCQkkcm93LT5yb3djbGFzcyA9ICRyb3djbGFzczsNCgkJJHJvdy0+ZWRpdGxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluayggJGlkLCAnZWRpdHRlbXBsYXRlJywgJHJldHVybmlkLA0KCQkJCQkJCSRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+DQoJCQkJCQkJRGlzcGxheUltYWdlICgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywNCgkJCQkJCQkJICAkdGhpcy0+TGFuZyAoJ2VkaXQnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLA0KCQkJCQkJCWFycmF5ICgnQktTZXQnID0+ICRrZXksDQoJCQkJCQkJICAgJ2FjdGl2ZV90YWInID0+ICRhY3RpdmVfdGFiLA0KCQkJCQkJCSAgICdtb2RlJz0+J2VkaXQnKSk7DQoJCQ0KCQkNCgkJCSRyb3ctPmRlbGV0ZWxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluayggJGlkLCAnZGVsZXRldGVtcGxhdGUnLCAkcmV0dXJuaWQsDQoJCQkJCQkJICAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPg0KCQkJCQkJCSAgRGlzcGxheUltYWdlICgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLA0KCQkJCQkJCQkJJHRoaXMtPkxhbmcgKCdkZWxldGUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLA0KCQkJCQkJCSAgYXJyYXkgKCdCS1NldCcgPT4gJGtleSksDQoJCQkJCQkJICAkdGhpcy0+TGFuZyAoJ2FyZXlvdXN1cmUnKSk7DQoJCQ0KCQkNCgkJYXJyYXlfcHVzaCAoJHJvd2FycmF5LCAkcm93KTsNCgkJKCRyb3djbGFzcyA9PSAicm93MSIgPyAkcm93Y2xhc3MgPSAicm93MiIgOiAkcm93Y2xhc3MgPSAicm93MSIpOw0KCQkgIH0NCgkJDQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignaXRlbXMnLCAkcm93YXJyYXkgKTsNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCduYW1lcHJvbXB0JywgJHRoaXMtPkxhbmcoJ3Byb21wdF9uYW1lJykpOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2RlZmF1bHRwcm9tcHQnLCAnSXRlbSBOYW1lIChQYXlQYWxcJ3MgTmFtZSknKTsvLyR0aGlzLT5MYW5nKCdwcm9tcHRfZGVmYXVsdCcpDQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignbmV3dGVtcGxhdGVsaW5rJywNCgkJCQkgICR0aGlzLT5DcmVhdGVMaW5rKCAkaWQsICdlZGl0dGVtcGxhdGUnLCAkcmV0dXJuaWQsDQoJCQkJCQkJICR0aGlzLT5MYW5nKCdwcm9tcHRfbmV3QnRuJyksDQoJCQkJCQkJIGFycmF5KCdwcmVmaXgnID0+ICRwcmVmaXgsDQoJCQkJCQkJICAgJ2FjdGl2ZV90YWInID0+ICRhY3RpdmVfdGFiLA0KCQkJCQkJCSAgICd0aXRsZSc9PiR0aXRsZSwNCgkJCQkJCQkgICAnbW9kZScgPT4gJ2FkZCcsDQoJCQkJCQkJICAgJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnID0+ICRkZWZhdWx0dGVtcGxhdGVwcmVmDQoJCQkJCQkJICAgKSkpOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7DQoJCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdHRlbXBsYXRlcy50cGwnKTsNCgl9DQogIA0KDQoNCiAgDQogIA0KCWZ1bmN0aW9uIHBvc3RfaXQoJGRhdGFzdHJlYW0sICR1cmwpIHsgDQoJCSR1cmwgPSBwcmVnX3JlcGxhY2UoIkBeaHR0cDovL0BpIiwgIiIsICR1cmwpOyANCgkJJGhvc3QgPSBzdWJzdHIoJHVybCwgMCwgc3RycG9zKCR1cmwsICIvIikpOyANCgkJJHVyaSA9IHN0cnN0cigkdXJsLCAiLyIpOw0KCQkkcmVxYm9keSA9ICIiOyANCgkJZm9yZWFjaCgkZGF0YXN0cmVhbSBhcyAka2V5PT4kdmFsKSB7IA0KCQlpZiAoISgkcmVxYm9keT09JycpKSAkcmVxYm9keS49ICImIjsgDQoJCQkkcmVxYm9keS49ICRrZXkuIj0iLnVybGVuY29kZSgkdmFsKTsgDQoJCX0NCgkJaGVhZGVyKCJMb2NhdGlvbjogaHR0cDovLyRob3N0JHVyaT8kcmVxYm9keSIpOyBkaWU7DQoJCXJldHVybiAkcmVzdWx0OyANCgl9IA0KICANCiAgDQogIA0KICANCiAgDQp9DQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/imagefiles.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiNDTVMgLSBDTVMgTWFkZSBTaW1wbGUNCiMoYykyMDA0IGJ5IFRlZCBLdWxwICh3aXNoeUB1c2Vycy5zZi5uZXQpDQojVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9jbXNtYWRlc2ltcGxlLnNmLm5ldA0KIw0KI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiN0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiNNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KI2Fsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQ0KIw0KIyRJZDogaW1hZ2VmaWxlcy5waHAgNTE4OSAyMDA4LTEwLTI5IDIwOjAyOjUzWiBjYWxndXkxMDAwICQNCg0KDQoNCi8vIGluIGZpbGV0eXBlcy5pbmMucGhwIGZpbGV0eXBlcyBhcmUgZGVmaW5lZCANCi8vcmVxdWlyZV9vbmNlKGRpcm5hbWUoZGlybmFtZShfX0ZJTEVfXykpLiIvbGliL2ZpbGVtYW5hZ2VyL2ZpbGV0eXBlcy5pbmMucGhwIik7DQpyZXF1aXJlX29uY2UoZGlybmFtZShkaXJuYW1lKF9fRklMRV9fKSkuJy4uLy4uL2xpYi9maWxlbWFuYWdlci9maWxldHlwZXMuaW5jLnBocCcpOw0KLy9yZXF1aXJlX29uY2UoZGlybmFtZShkaXJuYW1lKF9fRklMRV9fKSkuIi9saWIvZmlsZS5mdW5jdGlvbnMucGhwIik7DQpyZXF1aXJlX29uY2UoZGlybmFtZShkaXJuYW1lKF9fRklMRV9fKSkuJy4uLy4uL2xpYi9maWxlLmZ1bmN0aW9ucy5waHAnKTsNCi8vcmVxdWlyZV9vbmNlKCIuLi9pbmNsdWRlLnBocCIpOw0KDQokdXJsZXh0PSc/Jy5DTVNfU0VDVVJFX1BBUkFNX05BTUUuJz0nLiRfU0VTU0lPTltDTVNfVVNFUl9LRVldOw0KDQovL2NoZWNrX2xvZ2luKCk7DQoNCiRyZXNpemVBdD0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ0ltYWdlX1NpemUnLCAnNjQwJyk7DQokdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywkcmVzaXplQXQpOy8vPDw8PC0tLS0tLUZpcmUgUEhQIG1lc3NhZ2UNCiRhY3Rpb25fZG9uZT0nJzsNCmNsYXNzIEltZ1Jlc2l6ZXIgew0KCXByaXZhdGUgJG9yaWdpbmFsRmlsZSA9ICcnOw0KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkb3JpZ2luYWxGaWxlID0gJycpIHsNCgkJJHRoaXMgLT4gb3JpZ2luYWxGaWxlID0gJG9yaWdpbmFsRmlsZTsNCgl9DQoJcHVibGljIGZ1bmN0aW9uIHJlc2l6ZSgkbmV3V2lkdGgsICR0YXJnZXRGaWxlKSB7DQoJCWlmIChlbXB0eSgkbmV3V2lkdGgpIHx8IGVtcHR5KCR0YXJnZXRGaWxlKSkgew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoJCWdsb2JhbCAkZ0NtczsNCgkJJGNhcnMgPSAmJGdDbXMtPm1vZHVsZXNbJ0NhcnMnXVsnb2JqZWN0J107DQoJCSRxbHQ9JGNhcnMtPkdldFByZWZlcmVuY2UoJ0ltYWdlX1FsdCcsICc0MScpOw0KCQkkc3JjID0gaW1hZ2VjcmVhdGVmcm9tanBlZygkdGhpcyAtPiBvcmlnaW5hbEZpbGUpOw0KCQlsaXN0KCR3aWR0aCwgJGhlaWdodCkgPSBnZXRpbWFnZXNpemUoJHRoaXMgLT4gb3JpZ2luYWxGaWxlKTsNCgkJJG5ld0hlaWdodCA9ICgkaGVpZ2h0IC8gJHdpZHRoKSAqICRuZXdXaWR0aDsNCgkJJHRtcCA9IGltYWdlY3JlYXRldHJ1ZWNvbG9yKCRuZXdXaWR0aCwgJG5ld0hlaWdodCk7DQoJCWltYWdlY29weXJlc2FtcGxlZCgkdG1wLCAkc3JjLCAwLCAwLCAwLCAwLCAkbmV3V2lkdGgsICRuZXdIZWlnaHQsICR3aWR0aCwgJGhlaWdodCk7DQoJCWlmIChmaWxlX2V4aXN0cygkdGFyZ2V0RmlsZSkpIHsNCgkJCXVubGluaygkdGFyZ2V0RmlsZSk7DQoJCX0NCgkJaW1hZ2VqcGVnKCR0bXAsICR0YXJnZXRGaWxlLCAkcWx0KTsgLy8gODUgaXMgbXkgY2hvaWNlLCBtYWtlIGl0IGJldHdlZW4gMCCWIDEwMCBmb3Igb3V0cHV0IGltYWdlIHF1YWxpdHkgd2l0aCAxMDAgYmVpbmcgdGhlIG1vc3QgbHV4dXJpb3VzDQoJfQ0KfQ0KZnVuY3Rpb24gZGVsZGlyKCRkaXIpDQp7DQoJJGhhbmRsZSA9IG9wZW5kaXIoJGRpcik7DQoJd2hpbGUgKGZhbHNlIT09KCRGb2xkZXJPckZpbGUgPSByZWFkZGlyKCRoYW5kbGUpKSkNCgl7DQoJCWlmKCRGb2xkZXJPckZpbGUgIT0gIi4iICYmICRGb2xkZXJPckZpbGUgIT0gIi4uIikgDQoJCXsgIA0KCQkJaWYoQGlzX2RpcigiJGRpci8kRm9sZGVyT3JGaWxlIikpIA0KCQkJew0KCQkJCWRlbGRpcigiJGRpci8kRm9sZGVyT3JGaWxlIik7DQoJCQl9ICAvLyByZWN1cnNpdmUNCgkJCWVsc2UNCgkJCXsNCgkJCQl1bmxpbmsoIiRkaXIvJEZvbGRlck9yRmlsZSIpOw0KCQkJfQ0KCQl9ICANCgl9DQoJY2xvc2VkaXIoJGhhbmRsZSk7DQoJaWYocm1kaXIoJGRpcikpDQoJew0KCQkkc3VjY2VzcyA9IHRydWU7DQoJfQ0KCXJldHVybiAkc3VjY2VzczsgIA0KfSANCg0KJGVycm9ycyA9ICIiOw0KDQokZGlyID0gJGNvbmZpZ1siaW1hZ2VfdXBsb2Fkc19wYXRoIl07DQokdXJsID0gJGNvbmZpZ1siaW1hZ2VfdXBsb2Fkc191cmwiXTsNCiR0aGlzLT5GaXJlRGVidWcoJ21lc3NhZ2UnLCRkaXIpOy8vPDw8PC0tLS0tLUZpcmUgUEhQIG1lc3NhZ2UNCg0KJHJlbGRpciA9ICIvQ0FSUy8iLiRwYXJhbXNbJ1ZJTlYnXS4iLyI7DQppZiAoIWlzc2V0KCRJTUNvbmZpZ1sndGh1bWJuYWlsX2RpciddKSkgJElNQ29uZmlnWyd0aHVtYm5haWxfZGlyJ10gPSAnJzsNCmlmIChpc3NldCgkX1BPU1RbJ3JlbGRpciddKSkgJHJlbGRpciA9ICRfUE9TVFsncmVsZGlyJ107DQplbHNlIGlmIChpc3NldCgkX0dFVFsncmVsZGlyJ10pKSAkcmVsZGlyID0gJF9HRVRbJ3JlbGRpciddOw0KSWYoIWZpbGVfZXhpc3RzKCRkaXIuIi9DQVJTLyIpKXsNCgkJCW1rZGlyKCRkaXIuIi9DQVJTLyIsIDA3NzcpOw0KCQkJYXVkaXQoLTEsICRkaXIuIi8iLiRyZWxkaXIsICdDcmVhdGVkIERpcmVjdG9yeScpOw0KCQkJDQp9DQoNCklmKCFmaWxlX2V4aXN0cygkZGlyLiIvIi4kcmVsZGlyKSl7DQoNCgkJCW1rZGlyKCRkaXIuIi8iLiRyZWxkaXIsIDA3NzcpOw0KCQkJYXVkaXQoLTEsICRkaXIuIi8iLiRyZWxkaXIsICdDcmVhdGVkIERpcmVjdG9yeScpOw0KfQ0KDQoNCmlmIChzdHJwb3MoJHJlbGRpciwgJy4uJykgPT09IGZhbHNlICYmIHN0cnBvcygkcmVsZGlyLCAnXFwnKSA9PT0gZmFsc2UpDQp7DQoJJGRpciAuPSAkcmVsZGlyOw0KfQ0KJHRoaXMtPkZpcmVEZWJ1ZygnbWVzc2FnZScsJHJlbGRpcik7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQ0KJHVzZXJpZCA9IGdldF91c2VyaWQoKTsNCiRhY2Nlc3MgPSBjaGVja19wZXJtaXNzaW9uKCR1c2VyaWQsICdNb2RpZnkgRmlsZXMnKTsNCg0KJHVzZXJuYW1lID0gJGdDbXMtPnZhcmlhYmxlc1sidXNlcm5hbWUiXTsNCg0KI0RpZCB3ZSB1cGxvYWQgYSBmaWxlPw0KaWYgKGlzc2V0KCRfRklMRVMpICYmIGlzc2V0KCRfRklMRVNbJ3VwbG9hZGZpbGUnXSkgJiYgaXNzZXQoJF9GSUxFU1sndXBsb2FkZmlsZSddWyduYW1lJ10pICYmICRfRklMRVNbJ3VwbG9hZGZpbGUnXVsnbmFtZSddICE9ICIiKQ0Kew0KCWlmICgkYWNjZXNzKQ0KCXsNCgkJaWYgKCFtb3ZlX3VwbG9hZGVkX2ZpbGUoJF9GSUxFU1sndXBsb2FkZmlsZSddWyd0bXBfbmFtZSddLCAkZGlyLiIvIi4kX0ZJTEVTWyd1cGxvYWRmaWxlJ11bJ25hbWUnXSkpDQoJCXsNCgkJCSRlcnJvcnMgLj0gIjxsaT4iLmxhbmcoJ2ZpbGVub3R1cGxvYWRlZCcpLiI8L2xpPiI7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQljaG1vZCgkZGlyLiIvIi4kX0ZJTEVTWyd1cGxvYWRmaWxlJ11bJ25hbWUnXSwgb2N0ZGVjKCcwJy4kY29uZmlnWydkZWZhdWx0X3VwbG9hZF9wZXJtaXNzaW9uJ10pKTsNCg0KJHdvcmsgPSBuZXcgSW1nUmVzaXplcigkZGlyLiIvIi4kX0ZJTEVTWyd1cGxvYWRmaWxlJ11bJ25hbWUnXSk7DQokd29yayAtPiByZXNpemUoJHJlc2l6ZUF0LCAkZGlyLiIvIi4kX0ZJTEVTWyd1cGxvYWRmaWxlJ11bJ25hbWUnXSk7DQovLyR3b3JrIC0+IHJlc2l6ZSg2NDAsICd1cGxvYWRzL2ltYWdlcy90ZXN0LycuJF9QT1NUWydGaWxlbmFtZSddKTsNCgkJCWF1ZGl0KC0xLCAkX0ZJTEVTWyd1cGxvYWRmaWxlJ11bJ25hbWUnXSwgJ1VwbG9hZGVkIEZpbGUnKTsNCgkJfQ0KCX0NCgllbHNlDQoJew0KCQkkZXJyb3JzIC49ICI8bGk+Ii5sYW5nKCduZWVkcGVybWlzc2lvbnRvJywgYXJyYXkoJ01vZGlmeSBGaWxlcycpKS4iPC9saT4iOw0KCX0NCn0NCg0KI0RpZCB3ZSBjcmVhdGUgYSBuZXcgZGlyPw0KaWYgKGlzc2V0KCRfUE9TVFsnbmV3ZGlyc3VibWl0J10pKQ0Kew0KCWlmICgkYWNjZXNzKQ0KCXsNCgkJI01ha2Ugc3VyZSBpdCBpc24ndCBhbiBlbXB0eSBkaXIgbmFtZQ0KCQlpZiAoJF9QT1NUWyduZXdkaXInXSA9PSAiIikNCgkJew0KCQkJJGVycm9ycyAuPSAiPGxpPiIubGFuZygnZmlsZWNyZWF0ZWRpcm5vbmFtZScpLiI8L2xpPiI7DQoJCX0NCgkJZWxzZSBpZiAoZXJlZygnXC5cLicsJF9QT1NUWyduZXdkaXInXSkpDQoJCXsNCgkJCSRlcnJvcnMgLj0gIjxsaT4iLmxhbmcoJ2ZpbGVjcmVhdGVkaXJub2RvdWJsZWRvdCcpLiI8L2xpPiI7DQoJCX0NCgkJZWxzZSBpZiAoZXJlZygnLycsICRfUE9TVFsnbmV3ZGlyJ10pIHx8IHN0cnBvcygkX1BPU1RbJ25ld2RpciddLCAnXFwnKSAhPT0gZmFsc2UpDQoJCXsNCgkJCSRlcnJvcnMgLj0gIjxsaT4iLmxhbmcoJ2ZpbGVjcmVhdGVkaXJub3NsYXNoJykuIjwvbGk+IjsNCgkJfQ0KCQllbHNlIGlmIChmaWxlX2V4aXN0cygkZGlyLiIvIi4kX1BPU1RbJ25ld2RpciddKSkNCgkJew0KCQkJJGVycm9ycyAuPSAiPGxpPiIubGFuZygnZGlyZWN0b3J5ZXhpc3RzJykuIjwvbGk+IjsNCgkJfQ0KCQllbHNlDQoJCXsNCgkJCW1rZGlyKCRkaXIuIi8iLiRfUE9TVFsnbmV3ZGlyJ10sIDA3NzcpOw0KCQkJYXVkaXQoLTEsICRfUE9TVFsnbmV3ZGlyJ10sICdDcmVhdGVkIERpcmVjdG9yeScpOw0KCQl9DQoJfQ0KCWVsc2UNCgl7DQoJCSRlcnJvcnMgLj0gIjxsaT4iLmxhbmcoJ25lZWRwZXJtaXNzaW9udG8nLCBhcnJheSgnTW9kaWZ5IEZpbGVzJykpLiI8L2xpPiI7DQoJfQ0KfQ0KDQppZiAoaXNzZXQoJF9HRVRbJ2FjdGlvbiddKSAmJiAkX0dFVFsnYWN0aW9uJ10gPT0gImRlbGV0ZWZpbGUiKQ0Kew0KCWlmICgkYWNjZXNzKQ0KCXsNCgkJaWYgKGlzX2ZpbGUoJGRpciAuICIvIiAuICRfR0VUWydmaWxlJ10pKQ0KCQl7DQoJCQlpZiAoISh1bmxpbmsoJGRpciAuICIvIiAuICRfR0VUWydmaWxlJ10pKSkNCgkJCXsNCgkJCQkkZXJyb3JzIC49ICI8bGk+Ii5sYW5nKCdlcnJvcmRlbGV0aW5nZmlsZScpLiI8L2xpPiI7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJYXVkaXQoLTEsICRyZWxkaXIgLiAiLyIgLiAkX0dFVFsnZmlsZSddLCAnRGVsZXRlZCBGaWxlJyk7DQoJCQl9DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQkkZXJyb3JzIC49ICI8bGk+Ii5sYW5nKCdub3JlYWxmaWxlJykuIjwvbGk+IjsNCgkJfQ0KCX0NCgllbHNlDQoJew0KCQkkZXJyb3JzIC49ICI8bGk+Ii5sYW5nKCduZWVkcGVybWlzc2lvbnRvJywgYXJyYXkoJ01vZGlmeSBGaWxlcycpKS4iPC9saT4iOw0KCX0NCn0NCmVsc2UgaWYgKGlzc2V0KCRfR0VUWydhY3Rpb24nXSkgJiYgJF9HRVRbJ2FjdGlvbiddID09ICJkZWxldGVkaXIiKQ0Kew0KCWlmICgkYWNjZXNzKQ0KCXsNCgkJaWYgKEBpc19kaXIoJGRpciAuICIvIiAuICRfR0VUWydmaWxlJ10pKQ0KCQl7DQoJCQlpZiAoIShkZWxkaXIoJGRpciAuICIvIiAuICRfR0VUWydmaWxlJ10pKSkNCgkJCXsNCgkJCQkkZXJyb3JzIC49ICI8bGk+Ii5sYW5nKCdlcnJvcmRlbGV0aW5nZGlyZWN0b3J5JykuIjwvbGk+IjsNCgkJCX0NCgkJCWVsc2UNCgkJCXsNCgkJCQlhdWRpdCgtMSwgJHJlbGRpciAuICIvIiAuICRfR0VUWydmaWxlJ10sICdEZWxldGVkIERpcmVjdG9yeScpOw0KCQkJfQ0KCQl9DQoJCWVsc2UNCgkJew0KCQkJJGVycm9ycyAuPSAiPGxpPiIubGFuZygnbm9yZWFsZGlyZWN0b3J5JykuIjwvbGk+IjsNCgkJfQ0KCX0NCgllbHNlDQoJew0KCQkkZXJyb3JzIC49ICI8bGk+Ii5sYW5nKCduZWVkcGVybWlzc2lvbnRvJywgYXJyYXkoJ01vZGlmeSBGaWxlcycpKS4iPC9saT4iOw0KCX0NCn0NCg0KLy9pbmNsdWRlX29uY2UoImhlYWRlci5waHAiKTsNCj8+DQoNCg0KDQoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vbGliL2ZpbGVtYW5hZ2VyL0ltYWdlTWFuYWdlci9hc3NldHMvZGlhbG9nLmpzIj48L3NjcmlwdD4NCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9saWIvZmlsZW1hbmFnZXIvSW1hZ2VNYW5hZ2VyL0lNRVN0YW5kYWxvbmUuanMiPjwvc2NyaXB0Pg0KPD9waHAgZWNobyAiCTxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiIHNyYz1cIi4uL2xpYi9maWxlbWFuYWdlci9JbWFnZU1hbmFnZXIvbGFuZy9lbi5qc1wiPjwvc2NyaXB0PlxuIiA/Pg0KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCiAgICAvLzwhW0NEQVRBWw0KDQoJCS8vQ3JlYXRlIGEgbmV3IEltYW5hZ2VyIE1hbmFnZXIsIG5lZWRzIHRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIG1hbmFnZXIgaXMNCgkJLy9hbmQgd2hpY2ggbGFuZ3VhZ2UgdHJhbnNsYXRpb24gdG8gdXNlLg0KDQoJCXZhciBtYW5hZ2VyID0gbmV3IEltYWdlTWFuYWdlcignLi4vbGliL2ZpbGVtYW5hZ2VyL0ltYWdlTWFuYWdlcicsJ2VuJyk7DQoJCQkNCgkJdmFyIHRodW1iZGlyID0gIjw/cGhwIGVjaG8gJElNQ29uZmlnWyd0aHVtYm5haWxfZGlyJ107ID8+IjsNCgkJdmFyIGJhc2VfdXJsID0gIjw/cGhwIGVjaG8gJHVybDsgPz4iOwkNCgkJLy9JbWFnZSBNYW5hZ2VyIHdyYXBwZXIuIFNpbXBseSBjYWxscyB0aGUgSW1hZ2VNYW5hZ2VyDQoNCg0KICAgIC8vXV0+DQogICAgPC9zY3JpcHQ+DQoNCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCi8qPCFbQ0RBVEFbKi8NCg0KDQoNCi8qXV0+Ki8NCjwvc2NyaXB0Pg0KDQo8P3BocA0KJHRoaXMtPkZpcmVEZWJ1ZygkcmVsZGlyLCdtZXNzYWdlJyk7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQ0KDQokcm93ID0gInJvdzEiOw0KDQokZGlydGV4dCA9ICIiOw0KJGZpbGV0ZXh0ID0gIiI7DQokZmlsZSA9ICIiOw0KDQovL2lmICgkZXJyb3JzICE9ICIiKQ0KLy97DQovLwkvLyBlY2hvICI8ZGl2IGNsYXNzPVwicGFnZWVycm9yY29udGFpbmVyXCI+PHVsIGNsYXNzPVwiZXJyb3JcIj4iLiRlcnJvcnMuIjwvdWw+PC9kaXY+IjsNCi8vCWVjaG8gJHRoZW1lT2JqZWN0LT5TaG93RXJyb3JzKCc8dWwgY2xhc3M9ImVycm9yIj4nLiRlcnJvcnMuJzwvdWw+Jyk7DQovL30NCg0KZWNobyAnPGRpdiBzdHlsZT0id2lkdGg6MzI1cHg7ZmxvYXQ6cmlnaHQ7Ij48aDM+QWRkIEltYWdlczwvaDM+PGRpdiBzdHlsZT0icGFkZGluZzogMTBweDtib3JkZXI6IDJweCBzb2xpZCAjMDAwOyI+DQonOw0KLy9lY2hvICR0aGVtZU9iamVjdC0+U2hvd0hlYWRlcignaW1hZ2VtYW5hZ2VtZW50Jyk7DQoNCj8+DQo8aWZyYW1lIGNsYXNzPSJpbWFnZWZyYW1lIiBzcmM9Ii4uL21vZHVsZXMvQ2Fycy9pbWFnZXMucGhwPD9waHAgZWNobyAkdXJsZXh0ID8+JmRpcj08P3BocCBlY2hvICIkcmVsZGlyIiA/PiIgbmFtZT0iaW1nTWFuYWdlciIgdGl0bGU9IkltYWdlIFNlbGVjdGlvbiI+PC9pZnJhbWU+DQoNCjw/cGhwDQoNCmlmICgkYWNjZXNzKQ0Kew0KPz4NCg0KPGZvcm0gZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgYWN0aW9uPSJtb2R1bGVpbnRlcmZhY2UucGhwP21hY3Q9Q2FycyxtMV8sZWRpdHRlbXBsYXRlLDAmX3NfPTc3MTBlZTlkJm0xX1ZJTlY9PD9waHAgZWNobyAkcGFyYW1zWydWSU5WJ10gPz4mbTFfYWN0aXZlX3RhYj1lbWFpbF90ZW1wbGF0ZSZtMV9tb2RlPWVkaXQmPD9waHAgZWNobyAkdXJsZXh0ID8+IiBtZXRob2Q9InBvc3QiIG5hbWU9InVwbG9hZGVyIj4NCiAgICAgICAgPGRpdj4NCiAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSI8P3BocCBlY2hvIENNU19TRUNVUkVfUEFSQU1fTkFNRSA/PiIgdmFsdWU9Ijw/cGhwIGVjaG8gJF9TRVNTSU9OW0NNU19VU0VSX0tFWV0gPz4iIC8+DQogICAgICAgIDwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCIgc3R5bGU9Im1hcmdpbjowcHg7Ij48P3BocCBlY2hvIGxhbmcoJ3VwbG9hZGZpbGUnKT8+OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCIgc3R5bGU9Im1hcmdpbjowcHg7Ij4NCgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik1BWF9GSUxFX1NJWkUiIHZhbHVlPSI8P3BocCBlY2hvICRjb25maWdbIm1heF91cGxvYWRfc2l6ZSJdPz4iIC8+DQoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWxkaXIiIHZhbHVlPSI8P3BocCBlY2hvICRyZWxkaXI/PiIgLz4NCgkJCTxpbnB1dCBuYW1lPSJ1cGxvYWRmaWxlIiB0eXBlPSJmaWxlIiAvPiA8aW5wdXQgY2xhc3M9InBhZ2VidXR0b24iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0ncGFnZWJ1dHRvbmhvdmVyJyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3BhZ2VidXR0b24nIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSI8P3BocCBlY2hvIGxhbmcoJ3NlbmQnKT8+IiAvPg0KCQk8L3A+DQoJPC9kaXY+DQo8L2Zvcm0+DQoNCjwvZGl2Pg0KPC9kaXY+DQo8P3BocA0KfQ0KDQovL2luY2x1ZGVfb25jZSgiZm9vdGVyLnBocCIpOw0KDQojIHZpbTp0cz00IHN3PTQgbm9ldA0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/ajax-loader.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAALAPQAAOTs9QAAAMPK0rrByNLZ4QUFBQAAACkqLHR4fVZZXKassx4fIEJER3uAhVlcYKqwtyIjJAMDA0ZIS87V3cHI0Nvi6zI0NsXM1Nng6aOpr4+UmrW7wtXd5QAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA]]></data>
	</file>
	<file>
	  <filename>/images/blue.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/marker.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAAAK3RFWHRDcmVhdGlvbiBUaW1lAHZyIDE0IGp1bCAyMDA2IDEzOjMxOjIzICswMTAwHvJDZwAAAAd0SU1FB9YHDgsgJYiZ4bUAAAAJcEhZcwAALiIAAC4iAari3ZIAAAAEZ0FNQQAAsY8L/GEFAAAB5ElEQVR42q2Tz0sqURTH72Qq4mASSAoSIfSDdCEI8qJFLXSjLYSQNoGLINrI8/0ZD9q0KnDlKkIMebmP9xZRCEEiLQLBiMiNJDYq/Zg573vpCkM6CdGBD3Pn3OvXe77nDGPfENKwJBHx/CxYAtNAAVfgXJKk7khVCCyCP6ALVKAJXkEdbINxw5tgM4HHPphSFEUql8usXq8zWZZZKBRiPp+PH3sBx2Br4FbiBg+aplGxWKRgMPiMH1+YTKZDq9V64na7G+l0mprNJo7RG/g94IEoQSsUCuRyue6QToIJYAJWMA/Bo2QySZ1Ohws9gZBeZI570Gq1yO/395BKGJg+ZbFYznK5HAmf9vQiKW5iqVQim832Fyn5E+83Y7EYieAdY2Nig7dRqtVqrNfr3YiWGsVltVrtr2f0IrwEZrfbGeqWhQ9GMeFwOPprRS9SAWo4HGZOp/MH1l4DAS6+HolE+u9Xek9kcK+qKqVSKUL/s0hPDhFY83g8j5VKhcQg7nxs80/w0mg0KB6Pa2az+RTpDbDA3sd/lwvk8/l+Z7iS/FHEAor8H9rtNmWzWYpGo+T1eikQCFAmkyFxAy7AJ255aMHYcIID8d1oNBi8hGuwwkYFDq0CPlG3YsTb4B/4BRwjBb4S/wGzT16tu5THiAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/mask.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/ppbmDonate.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/support.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAJYAAAAyCAMAAACJUtIoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAwBQTFRFLi0oBgUB9fX1ra2s1NTUW1lVqainZWRhPj04vr29mZmYJCIdeXh2oKCeOzk0rKyr6+rqp6akEA8JTk1IoqKhX11ZNTQuQD45REI99vb2dHRxQ0E8DQwFt7e2HRwYIB4ZKCYgHhwWycnIGRgUFhUOLiwmMC8pBAQB8PDwT05MIiEen56cERAMMTAqioqILCokp6emYF5aGBcQsbGuIiAaNDMtODYyQkA7FBINHBoUSEdCiYmHDg0HYWBc1NTTEhAJGhgSx8bGnZya0dDPYmFdMjEub29sxMTDCgkEvLy7MTAuCwoFamllFhQQlZSSHBsXODc0cHBtMC8tPDs3q6uoCwkCKigihoWCCAcDgYB+JiQeKSglfHx6Xl1byMjHJCQggH98V1ZTJyYjjYyKY2JeR0VARUM+NzYzQUA8jo6NwsLANTQxgYB9KyoneXd0pKOgNDMwBAMBOTcyFBQQYWBeKSciBwYBMjIvfHp3VVVSUlFONjUvMDAs4uLiCAgBJiUhKykjCQgBJiYhCQcBCAYBCggBCAcBWVdTVlVQXFpWU1JNfXt4TUxHtra1mZiXbWxq09PTFBILPDo1+/v7+fn5+vr6mJiXxcXEmZiWfHt57Ozs+Pj4/Pz8R0ZBDAoDbGxqZGNf/f39e3t5SklEUE9KMzIs7+/v7e3tTEtGUVBNNjUyPjw3XVtX8vLyVVRPT09MWFZSe3p5FBMQiomIS0pFUlFMV1VRMzMwNzYwxcTESUhD8/PzuLi3UVBLVFNO7u7uFxYRcXFvenp4urm5urq5FxYSqamoU1JPh4eFdnZ0RENAfXx5nJuaY2Ngg4J/RkZDf316VFNQlpaUb25qW1tYgoGAsK+tc3JwXV1bYF9b1NPTfn15u7u6nZ2cxsbFqqmnkZGPkI+OxsXFiIeD3d3cx8fGMjErmZmWbWxobm1rdHNvf358hIOBpqWiJyUibGtoKCckubm4vLu6RERAtLOxgoF+k5KR6enpq6uq2NfWWVhVWVhWt7a0SUhFSUlG////pufWsQAAAQB0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AFP3ByUAAAwTSURBVHja7Jl5XFTXFcfnoSIRQuyggmEEcZDnAkgICEOHQBJIcaaTSSQ2RKRGDEtCSIGGMQme4mQegxoHEFCqsoOAuGCIEZcYidEkxuyLjU33VrqkbdKm6WLXc+5982YB0qyfT//o78PnzV3Oeff7zj333jeD6t//k1L9H+tzYN1wx02vvPLRR/fff/d7r7327rsXLlx47MvQQw8FBDzwwLW/eebNX339zlsXfDzWQd83p0+f3tnZmZGaet3s2bMPHNjyZWjatGlXamsPbz60tXdbT1uIX2BVcWz/5Fj3vd85nWFlpF5CqgN0gytX8A5fvA4fPrr56a29QUdSCpOyKxJVm2J8J8HqmpXR2UlQ92RgqA5sYU90+OjRo5u/BB069PTWJ5HqREESBitq2fyEiIDWCbFuvZRxT6cCdaUWcdCXKSh0cHCwOHQwO2XrF6AnUadO9QZtG+hpY1RjC5EqfnvqRFhTZl+XmpGB0zd79pZptRTiU729QUzFfi8BQNyDcFXRwMDAts+hnuAeuTRwpOdEW0FI0n6iqvRHKvWqO8dj/W3agdnXXbpEgcJkpACTZ8+JEykpIdkLgOuqDYUfFrS1pXxWfXjbvdkFKSltpIKCwtAkv8aKOTFOqpqalnFYj9VuOUBZPq2WFkjQQE9KW0FhYUhIaGhoWR1c9WJp6V2IpWrM9gtOCv2sKlsPRcHBwcVJqOBgv+zGiqq9LK/it+trUMHeWAsOHa6lRYeBOhWEq5YeJdhv//7s7MbG3AXw96iylaXPwIrc0vz8fNVtUXiNCmTXsoX5+aWZgY0bP8DPRNa0vJG0nMqqqsbGRPKJUmElagRgJF8VGBjY2IiXimMItXDTaqLSEJXV9icvrJ9vPbSZcnwrWx2FScH7GwMrKo4dq0JV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]]></data>
	</file>
	<file>
	  <filename>/images/Thumbs.db</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAEAAAAgAAAAEAAAD+////AAAAAAAAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/////v////7///8EAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAA/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1IAbwBvAHQAIABFAG4AdAByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAUA//////////8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALD50uaxfcoBAwAAAMAPAAAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAgH/////AgAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPg8AAAAAAABDAGEAdABhAGwAbwBnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAACAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8AAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAhAAAAIgAAACMAAAAkAAAAJQAAACYAAAAnAAAAKAAAACkAAAAqAAAAKwAAACwAAAAtAAAALgAAADEAAAAwAAAA/v///zIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAAAA5AAAAOgAAADsAAAA8AAAAPQAAAD4AAAD+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8MAAAAAQAAADIPAAD/2P/gABBKRklGAAEBAQBgAGAAAP/bAEMAAwICAwICAwMDAwQDAwQFCAUFBAQFCgcHBggMCgwMCwoLCw0OEhANDhEOCwsQFhARExQVFRUMDxcYFhQYEhQVFP/bAEMBAwQEBQQFCQUFCRQNCw0UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFP/AABEIAGAAYAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AP0f8c+PLfQ99jDqNrp04wJ9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]]></data>
	</file>
	<file>
	  <filename>/images/wheel.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAMMAAADDCAYAAAA/f6WqAAAAB3RJTUUH1gcOCDIojJpTggAALYlJREFUeNrtnXmYHUW58H9V1WdmMtlDQtijSSDKorLovRAWAwqyiBJugoCK6CfqRdSLityLkIsiF9SIyqIsRhZBlu+TK0JEQBBFUEAEZQ9LgkCABBPIJJnMdFd9f5wzM2d6qrqr+/SZmUy6nqef06e6z9Ld76/epd6qgrKUpSxlKUtZylKWspSlLGVxF1HeguKLAQmTp0JlOuitQU+BaHJ105NBj4JoDEQKolYwoxAmQtKBxKBYi6ITxWokK1GsQPI6ilcQLEWxjBfpFGDKu13CMBwEXsA2bTB+BzA7Qbgz6B0hmgl6GugxEAG6tkX0va/fr70XBhQgqb72bLb3kgjFy0ieQ/EUiscQPErAo/yNlaL6pWUpYWia8Cv4l21BzwYzG6K9IHo7mBarcPcTfG0BwROGNED67xsUy5E8gOSPBNyD5mH+VGqREoaGhX+/KSD3h+j9EL231uILt+AnaYACYcgCiKADxZ+R3IHgNlp4jFvpKuEoYUgBYL8A2mYB80AfDGZXiCp+gu8CwXY8AYaigHABInkJyW+R3Mga7uBu1pZglDDUAJinIJoOZh5ER0L0LjDSLsjaQ9BThN5VlwZDEUD0hwIkK1DcguQ61vN7cTPrShg2Sef3Q+Nh1GGgPwF6X9CV/K2/zghCThgaAUWmOuXLEPwcxZW8wBJxN2EJw4g3g6btCOLTEM0DPdXd6usMTnAW08hxrB4Gl3AH/YR3YF3Pq+08l3YIYucJulH8HskiWrlJXERHCcOIguC4NmjbB6KTQB8EumWgIOuMwp0Vjoww2IAIKN6UkgM0RP37JUguJeBKfshrI923ECMbghPaITgMzMmg31ONBLkEX3uaP41C4DgnDkMQa8HjMKiCwZBOvwIUKxFcTsAFLOQfI7UfQ4xMCL48GsLDgK+A3qNP2NNMH90kCNLMJgcMPj6ELxg2gQ88YOj/ugrJIgQX0MYL4syRBYUYWRCc1AptBwFngN7dHQnKA4GPo5xUlwJLEgxZBD5wCH1WcylZW6xCcAkB3xdn8koJw7CCYIGEaCcwZ4I+HLRyh0V9Wn2dQ6C1p4lUAAxJgGQxpdIiTK7XvnOXYvgGa7heLGTtxi5HcuMH4VtTQJ4N8o8gjwChqozXb5KBdSQcc21g/245NO2K628Iy99JuwwRuwyfWyh4CwGL2IxbzDnsba5HlTAMkUlk+NZc0PeA+BrIsenSkf50/QBwSdww1Pu+ly499utva/9z9kNwGy/wPfNttihhGDQIEIZzt4dtLgd5PcgdskGQZ8Mi/Hm+owmCPRSbDRbJKARfoMI95gfMNwtoK2Form/QBucdD8EfQH4EpHILv3S85tEOvsJdMBhZv6Z5gu7WEvE2SDEDyTVswU/NhWxbwtAUEH6wDUy+FOSlIKfadLW/VpANCn+jrX9B5lWjFl6WWyQTXgfWKeAjVLjL/ITDzAKCEoZCIJinDD/+AAR3gvgoSJluFskM2sH2HUU1szmBSPu478/JDIKfdgvTbqe0tkkzENzAWznHXMTEEoaGQLi4HQ78Ksj/C2p71x3P1pTZzofGfQhvqTZAN9AJrK1tbwJravvrgK5azNX9dUWYSdIRQUozh4SHU913bhuSLzOGX5irmDXc4w3DFISfbgFiIURHV9MojKW/QJPcsZanL8GzX8C5hRFE6yFcD3otRMsgeh7ClyH8J4SrIHoD9Bro6qyez3qgQkArCoVkDAHjUYwnYBIBUwiYRsAMFJuhaEPRTkCFAJHYv5Clv6K+r0KSrWNOpuz3ZMbC51DcJuZbYC9hsIFwza6gL4NoN7fw+/QupwHQQCdZddMQroNoNURPQPgg6Ceg+3nQS+GZ5YJiH7qZzngqbIdkOhVmongHinejmErAWAIquTvusiT3JeUyJQPSAfw3a7hQHE9nCYM7WiRh54MgvAz0VunCn0cz5Emr6N0MhJ0QrYDoftB3QfgIrH9M8MjqIbtv+xHQxUwUO6PYE8X+KKahGEeAStQasgEgkjTDQK1QX6cRXIThdHEEq0sYBoDwYAWWfRKib4MZlw5AxEDTqdG0bBcA0TqIXoDoFtC/gbV/EdyzatiamPsRUOHtVJhNhblI3oViEgHKy4RKy4LtEe7AA4Iks0lwM4bPig/yUglDLwg3tYM+tbZV0k2jpHyjJCiSxigPgKATwuerAES3QHS/4OaNblikAcFcZqI4AMlcAnZHMYGgFgBNM5V8/Qfbe5noP/TUP4Tgo+JAntjkYTDcNQY6zgZ9YnXscSMQZMlGtYKgQa+E6G4Ir4aOOwU3rWGEFAOSY9iJVo5EMg/FTBQtmf0IHxCUFwg9GmIJAUeJ9/LXTRYGw+3jofs8MJ/oP/CmZzMeplIaCF7aIaqZQdfChqsEVz3BCC/mWMYxhkNRnIDi3QS0o2qRKVfqt8wAhy8Q9ZEmwTHsx31DNaJODB0It04C9SPQ8/3MoiwOs7dmiEA/B9Fl0HWV4JLlbGLFzKOFrZiD4osE7ItktNOx9knz9neibdtyJB9nL347FECIoQHh9vGgLqmCYAoEwXuEmga9DKJFsP4ywUWvsIkXcwIVJvF+JCfXIlLtmUFQHjCkA/EaAUeKPbhnxMNg+NM46Dof9Mft5lBen8ErgmQgehX05dB5keB7/6As/Z/PSbQynkNp4atIdkfV9Vv4hliTzKN0cwkEL6GYL3bj3hELg+E3o2H098CcMBAA4wGAacA8CteCvhHEtwVn/L0U+5Rn9TXGM4GPIjkZyVt7e7obgcEHhD4gliGZK97JQyMOhmo/QvhNMKf0OcvGA4asKRgDHGZd7RXWC6Dzl4Izw1LUMzy3bzMDxQICjkTRnjjnUp6+BjsIPftP08LBYhbPjRgYqj3LH/wcmO+DDuwANAKDE4Q3wFwF684RfP2lUrRzPr+LqbCBuSjOQPE2VK2PwqdHOq926APiHhRzxQ6s2OhhqE7l+JcPgrgazJhk08jk1AoDHGYN0eNVLfT6bwRnlusVFPEsz2crWvgGAcegGOXVz5A9olSVStUPiJ8zhk+LLZs76cAgwPD4bhAthmiqn5/gA0RSx1vYCdENoE8TnFg6yM3QEq18FMkCJNv19k34RpOy+A19GsIgOJdlnC7mNG8OWNFcEJ6dCht+DXpXf7PIBwhnROk10N+AsZcK5neVotvEZ3s576CFHxKwNxLlBUNWEPqbSxsQfIptuUaI5vRBiOaB8GA7jF0E+qg+4faFISsQkQH9GIRfEHzirlJUBwmIq5lMC2ehOA5FW2KOUh4QBg4tXYnkELEVDzTjemRzQDASJn4J5Dz7lamMdyHxPA3yTlAfLkEY3CKOZSUv80UkZyB5I5ew26fHt4OkmIzgJ+bV5kxH06Rhny8cAPK06nhlm1clPO6KV1MSgrwO5NGCo58txXMIgPgiG/grCxGchOTV1MemUh6zcoLQE87dBcV3jaFl2JtJhqVbgrwLzCy3aZSlw81pGnXXcopOEczvKMVyGJhNt3EIkh+j2DZRoPOYSf3NpYiAzzCORUXmMMliQTAVqJwLalZygFmQX59KQG4AdR50fbkEYRhpiQNZjORjSJ5FYgqNLPUXJYXgf1jDTsPYTHrtGFBHu+cOSRsB4nVX1oH4FnScLpi/vhTBYQbE/tyN4WgUj6NiQLh6q33Npv7t6RQCLjCG0cPOTDL8cxroe6tjl02CWZQUUTIpppHeANHZIM4WzCnTKoazyXQ/uyK4DslMJKKBHuiBnXD9X79Che8VEW4VxYBgAlh9OZhj7RAYTxCiBP8h6gJzLrx8Vk8fgjGm7FkeIgXgPCBE7zHzAO8h4OcopjtGuKXHVUTKvmAVitlCND5stCAY3vww6BuAYKDwpznNPs6zCUFfDOu+IpjTO72IMaZrOFz/EP32UH7eCwYA8zD7U+FqJFvk6ltwOdK1VyPACBZLmCsEG4ZUGAxvbAbqPjDb24U/i3awwRLpaup15/GCvfuNRzbGrB3EaxcFnCMG+f8U9d+8/3scBgDzGEehuATFuLpVRf1iKo75XI3oe9WgNRzfKrhyyGAwGAFd3wR9mlsT2LSEC4q4mRSZ6voL+kjBbgOyFo0xqxoQNNEEYRVDCEqzrj9TnRUGEDzDSQjO7ddT7asZ7NogLllLu+A940T+7NYGYejcEeR91XmOkkwjHy1h1Q7PAIcKdnza+vvGrMhwTWIQIRGD9Ps+5zb7+0TMTJL2Z0XAUhYScGJvLpMtUzVhlu8ebaCFs4n9zhj4Wl5nWuQHwQTA9aCPSIYgyTxKNJlWgT5G8LZbnf/BmJcyPsyGH3ZOYRMb0ffn+S6RBgOAWck4urgBwfv7RZg8zCPTZxINkKq6/Y4QZk8S/G1QYejGHCzhJoEJql+SVytY07i7QP8nzDgvqYfRGLM06cEU8XBzfGeW80WD/6VZv5P7s0kwAJgXmEkri1Fs7wVB7dvi2iDBAP/VJDhCiOxz3IqcWqHSBXdK2Lsn3bz6ZYb8TrSp9xOuh67jBDskRgeMMUsyCE8RIOQVHFHQ8WYJtiiqLg0GAPMah1LhWiRjXH5CzEFOBaFOokIFcyaJ7LNr5IKhE3OogZskyP5T9Zve1+waofczS2D9+wQzXki9qcY8nvGBNyqAIid8RQleoYLr8epzLDsMBsEazkVwci21YgAIBn8QLFAsngqHZ9UOIo9WWAt3ippWsK9lUa8pMmmItaCPFWzxS6//YswjOYRBDJJgFfm5Is91fdanEUl69YYBwKxiAi3cgmLPHv/B5SBnAaFWFxrYf2vBH7LIdua1tt6EA4G96gEwdSBU90Vd0pOqQVF/po69CqqhYnE5XPirTK5L9pasaIHJKrB5fyuPgMbPNY738f363zEpdfWf92+FJ7LarOVkJL9GMdFYTKKsENTVBxr+0xj+KAS6KZrBYNQquF3AHJ8lhWXMfErWCtHTEOwnGOM9u50x5r6M2iDPa14zwxe0PN8lMv5n399Nq3Mdr3egMy2MbgxnaTjVgGoEBEtdGMLsGYL7m6IZVsBeAvZ1aYX6OtnvmKgBIeu0RD+tsAHU1wXtWad57M7Q0mcRwqyCluXz3oLlccz3901KnU+jaSz31hQQmfyuhkM07OobezR+YATAfxjDMb79Dt4wLMBIAyebatcIWACoh8JlOonavug7y4BcDC035orwNi6kaQLrC1bS7+eBQWT8ftt7E9tPOm6DxniYTA0VIVjdaTjDwPUaRukcELhMJgMffgpmAU8WaiYtx+xk4CEBLVmWDXavvdnrZP8T5P4C8UhmZ96YW5uh6nEvKisyAiRShDftu/N+n0i5bt/PCs//Vu9Aq+zPEdUB1xo4Uldbx8TwqQcEvceBC94mOKlQzRDCcS4Q4k2MTNAUfa8CAVohFuUBIaYZsgp9ViH0FTAfOLK+9xXGrIIsPZzjNIe5kKxfIYjWGM6MYH8NkzxCp17mUm37yNOG03YQvFkIDC9h2rvhWN81to0HJLXXVzfADxq4j905W/9mtqJ5W9ws/62+Tub8j9oRZRIpPoMrgtQQGGMFj64wXGPgRBPTDnm0Qt02eT0cAVyR9h+8YsKdVQdnqyyrISettRlVNY0O4ZLRiBcbhCFtCxPeh3Vbt2PftnUn1MUuc0Bd5FnnM0OCsfVaWupMhjrXhuUVhzOdq2j4voaVPstP+ixNWXdxn1xg0mU9lWaDEc/AzQIOyboAfXK4lZcE7DYW8Vrem2eM+VmDtrpPnSiotZc5fzvtPJnhs83aeq8tj8/QzwoxLNTwHz3awaYRyKYZalY+79xN8HhDZtKTsKWAA7LecekwnUxfJ+MVExsAoVa6ChTWLALo+9n649rzvKy32uQUXhP7vUb6pgrzH9bDjyvwSQMTsoRUiYFC/+OBgY8AZzRkJkUwV0OrzzKBOkF9xepWGbikgHvXnWNLM3fClM/4mlKhxUxy1UU5N98pyxOTwVLMpbgJFD9WqKk0U7Akgv8XgklamNhncYLYNv96g8qtGQxGPArzohzOsnBrBiPguimIZQXAEGYMS+Zp/X1b86Tv0I46mxbQHorWdcttXUDxvlBivyFjTrUcaMoPiDzFHehCx5ILuEDDRzSMzuEwD6C49vkdtoJdgQdzwfAIvEXAnjQgMZantl7CTwu6b90Z4+CNCr/M4A+k1aWZTtKjnZEOgdcOv0J71NmAMI4IeVNMpbfAI0/CHzUcaHJA4NgEcFRuGCI4TEDFN/aX9LTqDNS/bE1h63R1eQiqLxTS47hO+WzSucIhpGk2vchwjsvfMAxMLtYJmiEOhImBEBd+U6R2EALzqOEKA3M0VBqBIGbXfcgYTnGlZyTAYISBg4yj6ZUWMGwSEXtaoYFFAqEL1AxZW+8iIi8yQ4svE0wXFxw6BRjpMImwdO2kQU0KEMLiI8TrmjHlzk0hvGxgWh4AtCUWbGDGHbA98HQmGB6EURHs49IEJqWu3siseyKvATcWeMO6M9jwPnUyIxB4tPARfhkrLnPIODSCsfgCBnvOpIx1ssXNJCyaAIcTLYrWBLays6DjL4ZrIjiVujBr1s6Q2DGp4f2ZYeiCvYBxcS3gep8ERt3+r3dAvFHgPQubHGOXnsddLbm27MuYA+0j+PH38dBo/HbLmBYwlscU1xRxhU6d7yoHwzyymOk3aviSgVG+ppAjtFoPyYHAhZlgiOB9OLSASdEIWJ4w0CXgfwu+X12DJPhJpk7asA6RAIF2QCUTQLAlBUsGZs9Lh2kUb8fiZpELgDgEJmYuFQ7GUnhoK3gW2NnDH3Bpg/j+fosNrYdYZt8LXP5CBPvkyTwz7qZ6JVD0yjrdBdr5WTSCfbRr8nHtcaxeqHVCJ5kruiMtoU8bFDJmHtnqfGWsaZphviD6g+EXGnbq6ZHGw0ewmUx1x8dreBfwZy8YfgPtGnbzScK33X2Hl7p4d8TaYQCDSGjls9S5nF9bK+8KXwrHvq7TDjZzxWYyxf2GtDoXEMbS2rvqbB1yhZYQfmXgq9TGOvjAQLp22NsbBgF7aGhzAeBrMtVHkTTc0YTGo5viHN1GWn7XexcIwmLX21p9bdEA2qEdbEJvYvuqTm6wdNTVD04nBqgLCNFkLfFwBK8Ab9X+plCaQz0bWBj/IVc6xt6+XeEJ3d/1+QbrgN81CQafbFVbmoUt/SIpJSNL+kVaykZStmpIcpqGLRlYk57x6lp02zXs2KfjtynaoL7MEYQh3OFzM9Lq627WXrYs1sChmt5ta/mT6lL8i0dnI14dIs2Q1fzx0R6S9AF9OsEk0rFzjeO4TQu4Wn1jCY/aepJtDaC0aAzfKGbTp/XX8DsDx9fGNXs50ZCYXLX5DJgGPJ8CgxEadrGZRXFV4vIbLHD8sUn3qSgYpKf5IzPAIRMAS1q+Ly26Y1KO9dQpiwAnJWbGv98XjKZrhxDuN9XIYeDjJJMCRrWTm11SYVgMY7urOUkDhD5tigTHFBKhhD81EYYsznCaRiAmnHgKc2Spiwusy4GWFqfZJuz1Ah73H+LPXaaYwRY3sZ+fEAfL1gs9KCAAHA7P/gKWAzOSWn0PjVD/fhfgpkQYumFHXXcT07SCSIFBQOf6hOSogmDI6+SKlNbbt+X3eXUtyJTU0tvMJOlwklXsNa01t2mGJCjSvqdpUAiBud5wXxyGJMHXjj9WV79zqs/QBbu4Jh8yDhhSzKkXDod/DLKZJGksWlSE8MsEPyIu7PHlOXQCLEmmT1aNYNMOtkiWtsDBYJpLEdwr4JiehjpN8E1CzLd2MekwGNhe4zcHYhIMddri73X9JUMBQ5L5k0X4XX6AzZySHr6By0ewQSBJnxVFZdQEceWuU4AwGeSt8GLgqbAaYWvJoQUG/LkQZi4wyDPrpp8MLM7KdNdIDiyhA+k4Vvu8MSSPOx0EMylJ+NPMpEY1RBoItgVeXVDUH7OdB96ZzE67P2lGwqwTBBStGZ6Oqs/bG4YUWtu2hq2AF50waJhuPIWfBGh07zX4zWaWs3Q5hNRX+Mkh8FkiQ2mtv80kskWNkjrS6h+FItuQTNss0EkAJGmKppaPwUs/gVVQXQTdVz3phJsgYXoiDBFMT1oYIGl+QYs5FZpY+KoJmsFX+H3Mn0Yd4qSl+RTJS3271rGJawRXNoJ0+JQueUlacUg6zCWRYno1rwhMZFgCbJOh9U/09HUVht9bYfgpZoKGcSIh3ECC1rDMQBUKeKGJtygkexKdzOEwZzWFbFBoS51J0BhJGkHG4LBFler3SXhUrnTzeJdRnghV0Z1vzxmYYzyFPUkl1gh/i9OB7obNlaNHsSeYnhGGtR9vTs9zWj9DHi2RxfxpxDeIw5CkGWy+gcrQ+vtGkbAIvw8Ag6ohwioM/Xq9jR0aLxvRwBQnDBo2czUhUcpdtMFgmhdSTfIZfNIlmgmDzFCXpBHix5VFOxiHlqjvc3A5uq7Hlzbm2qSEe5vZ8r0o+oIJia2+cUel6vc3S4Jhiklu6Z130mZKGXi9yTB0F+An5DGRfPyEtDqfTVn6FOJ1PmaRSdEMPhDYhH9Qi4FV2gMGl3awhNDcmiGEKfEBtFlAIBaSYOhgyGMa5QmRpqxl3/BmUuqUBYI0c8k42jkXCPFxGTLFRGvmw14t6uTcpAh82p/SSTAIGOPzJcLjeA2mfzbfjMzkM8iMmsKnTnn6DMpyXFmO+8IQd55VgqaoN5mIWb1xS9g2e0fS4J9BC7GGsEp6wpCmHWplTJJmaBd+Qu7llQ0CDF0ZQqZJHWl5o0eupDtf/yAeMq2HQqXAYNMIqgEHuh4KYemDiHcADnrnWxesrtRk3PeHUhr3dicMUW0xEtedynqlBlYPIzMpr/BnjRjZWvk0bRDV7RuH8yxjEOAAIwkSm0kU1WkL11iMLDO0NLO8GTb4OzEbstUJgwEV75ExBf3wRghDI0BozwhRvIdZxLSFzVwyjqhSHJKefeVW3APg0HVQRHV19Vt8xr1B8xnWgWmluNFEJnZv4tGksUX2kWhYOwxgaDSvKClalOQfiDqhttW5IDEOAJKiS1giTGmCqiymURIIrmGgg1baYW036AK/MtFnKKwIiv3X1t8Q1WkqjTHC0cq6Jgo3jtbYNnAm3hoL0meOiMcZXIm9NoESObp00pa50ikhU+FpGhEDgsEGImrid8d9ho4Cv1tSS6rayMugjPMti5eZNNrkG6vhKmuSzKRQDAXuZSmLR+kEERT0XcISfY3D0FWUM1w7f0L5CMtSYBnXXR3Mn1lVO2zPDUkwrDN+Qp56Tm2bVD6/shQYLZkga2aSaACCumPrUn2GRoCIeYQlDGUprIQwUYIUHoIO9lXfY7La4YQhhBW+wWPjAYOwZMGWpSwNRDImRHUwJAFhG3IQ1xgGVjhhMLAi/gU6Iwyx8aglDGUprGiYSCyaJNyC7mM2rUjyGV7Pkh/uMcRu2/IRlqWo0gXbKA8YpKf/EB9iIGM+w2tR3fq78Vlssy5MHMLoT2Gmlo+xLAVphukhiLwLZlvqVjhh+AFitYY3fRahTlsgvbYFErYrH2NZCnKgp4f5hH7Ae1PdX5qoUSJ4rj4RxWf6b9vc6rX9IIS3lo+xLAV4z6Jngrs0INJAqJua/jmnz0DfCbu6/ACT7DDH/QcFvK18kmVptHwAtg5hou/M8Lb38c465QNDmmOcYWo/AexYPsqyNFoE7BBCRVqE3DXLQdLMkEDnLHg5EYYIluTQAE5IDOwCRjRxvtWybBJWErM0BMYTBkHyFKkCnqmfZ9XlM/zdZmuZDL5DbNvusDLEWpbGI0l7hSDzLGOlLT5DCI/Gf8M28fDjom4kU5oWSBsIq6EtgD1o7sx6ZRnhznMEe9q0QNos8HFtIfrkcgAMAzTD1bBGw1JfLZAUau2JKEXwr+UTLUvesi/MDGHLyDOSpD00h4G/p2oGEEZj/m5is3H7agTHvIezy0dalrwlgncLaPFYO3CABnDUmdACg3T8+AO2tVKT1lpN6X/Yef+yJ7os+WF4r65aGF5ZETZZjdW9djss84KhG+7J28XtOK9dwHvLx1qWHP5CEMH7fHqeM6QN3YsYmINqhWEtPKih00VXGomWLdDwvvLJliVr2RXeFcEWEf5awOXL1smndSlmKwy3w7oIHtIeP5ghxHrIOzCjy8dbliwlhA9G0JY3Mc8GRwj3eMNQdaL5g2/Sk6c3P3k0zCkfb1kymEhKw9zIkqmqM8hkTDu88Qo8nAEGCOGOPFohwZxq0fDh8gmXxbfsALtpmOHrC6TJaO393c+I/hMBpMKwEu4Na+ncOoXKDI7LwbtjxpePuSw+RcMRcRMpTdZ0SuPcDbe5fs8Jw19gvYY/pNlfaZGlWBRg8xCOKB9zWdLKFMOYCI6JEgbzJDXEDi2hu+D2zDCAMBH8JgsAOj36FETwKTCyfNxlSSqtcHgEW2VxmD3k89m/1RJRM8IAGm7W0K09QlgZPP3dZsFu5eMuS4LjLDQcF0El7xBPW8Mcwi8R7klfEmH4AywN4b5GQqqWPzVKw/HlEy+L00SCd4YwO0tOXJK5VNuMgeuSfjfFXBFGww05+hSSHBsRwVFvwUwrH3tZbCWEz2to90nP9oGkduzpR+GvDcAAG+AXEWxw+QRpuUsOWidqOKF87GWJl7GG7Q0cmda3kLUhDuF6RPKM9qkw/BWWR/Bbn8hRBnNKRnDcVMzm5eMvS393gc9GMD7J1HbJXEJiXmjg2rTf9ojqCKPhp0k/6mO3Weq2BP69fPxl6Y0gGWaE8DENIq1T1wWItoNy7zPwZAEwwKuwOISXfbSDT1Jf7ZjUcMIkzDalGJSl5it8ScPkLAN1fML7ISyyZanmgmE5Yp2Gq3WCNvDJUbJc2FQNXyzFoCwYdtaxTra0ccyefWAr18KNPn9B+v9XroigK01FaT8I6n2HT7Zj3llKwyYNggKxwMDEPONmUhroa/8peLNQGJ6AJzQsTnJefHunLZGlBWCCUio21aIOBnUoKEHNntGe1oUmscOtsxsu9P0XGdIihI5gYQRRXtPIEXUSGg5RZc7SpqoVJkDlG6BG1a8KbGpQRBmgsIDxv6/DU02AAZ6D+wz83icnJCkcZoGj1cBZYLYopWNTK2O/AuodVQjiW34oNITdcF5S+kVDMICIumGhri547kWo9gREw0wEXy+T+DYlrTD2X0D9OyhVD8DANePFgImw00x0Dbe/CQ9m+TuZBe8luE3DvQlEeneU9E4PLgCFRPEJWvhgKSWbAgjjJ0Dr90BN6A9B0tYfioSGOOyC//EJpzYEA4juLjgnimmHtE4Q2zFDrCFQjEbxHdpMuabDyPYTBIz6L1D/Ul2izaUVlONV9E536rBEbuuEe7P+rVwmyco67ZBmFrmAQFiuu7rNpMK3wbSWUjNSy9aHgPpcn3kkGQiESgGiCoVF3sKoqhWiQYEBRHcEZ2sIPXNDel+NsFxb/2sXKI5gIp+vnV2WEaUVtpkJwXmgxgzUADIHEH1Q1GRscQj35flruZ3VVXB7BL/yBaFXG7iut399CwGnMYWDSukZSSDMHAejLoRg5sBWUGY0ldQALWGgw8DpebRCQzCACDV8vX4NOBcIA7SBdJpI9dtEAs5nK7NDKUUjwk8IIPgmyAP6/ATpEGwfEGzniB9hmUN1EGCADngihPNdDnSvg5x0HQp3IxEwg4DL2MJMKaVpY3eYdzkR1Akglbt1lwnvU02lpWC+k6VfoVAYQJgNcF4ES5wmkXQArxLuRX//YTaj+RGzzNhSqjbWsut8kN8A1ebWCK79JEHq/R4NagGi/1K2gwwDgHhdwyk9znSiNvABYOB9kUg+BJzDNNNWCtbGphXesz+o70MwLtlOTmo1U0Ott0LndQ1LckFXHACXIzi2F2TXqxwQCPAAH5B0ITmXiLN4XHSVUrYxgPCv7wHxc9DTk3NLezbj2K9/b2L7ehVEsxEdTzT6dwtKfRAhcBqSl1Odf5ViMrn8CEULklNo49Qyw3VjAGHfXaHyM1Bvdbf8MqN2sGkJvgUdTxYixYXegIo5DsllCIIBrb5oSCvUb+tQnMMazi01xHAF4YB3g74czNtBC/dQMJOiHVzaovf1blhxKIK1ww8GTIVWfoLiY06hrzebVAoc7kDDBiQ/IOK/+ZNYX0rfcALhA/uB/gmY6RAJP/PIx1SKgxCtAPZHvPpoUX+9+B7edrMlkruQzLICIHNuAzVlN4pL0XyNu0VHKYXDAYRDDwF+DHpbv6kj8voMOoLoM7B8USOh1Cb5DHVlnViO5CQk65w97Ao/MzKpj0JSQXICLVzCB8p+iKGFAImZ+zGoLAK1rZ8vkGYPi6Rj18Lyq4oEoTmaoXp3JJM4Fck3kUjvaJJKMKHc7zWKu9B8hlvFs6VkDrpZ1ArjvwD6NIjGJw/Vr2/lXT6DTvIRAP13iA5ELHul6EtpYiKcaWdzfoLkI4l+gfBsQJL7JgySxwj4Ar8Qd5USOlggHD0Z1FkQHgemLXlmrSjFUfYymVZCeAji+QeacTnNzQrd3ExF8WsUu2aKIPmAYDefXkPyDeBSbigjTc0F4VPvgOiHoPeGSPkBkAWIATBsAP0peOqaos2jwYEBYEuzGwGLUUzNBYMrf8vdMdmJ4gYqnMbl4h+l1BYNwQkV4KNgFkC0XTV0GnkKvy8QA+oMROfCE6cjCJt1ac0fb7ycvwInIOjI5E8lgZD8mTYkx2JYzPHm4HJMdZEgnLgVVH4E6kKQ06rZp42qea8OqGuhclYzQRgczdDjUM/gc0i+j6x1yCkPLZElodFuOr1BwFUYzuFi8VIpzY1ogzFzITod9NtBS/c8FT7h1DTtUP8+ugfMXMTDK5p9mYM4ksxUmMU3UZyCROTqgfaBYWDqh0bxBJIFPMIvuVuEpXRneWxfmQFqAegjIWpPXrfJd1pqb4f5adAHIx58bjAudXCHVU41o5nMQhSfyeQ7pCU7puVBVffXIrkRwXf4rvhbKeVpEHxtPLR+FPTJEL21rzc5bUFknxU80mDQgFkGG+Yi/vLQYF3y4I8xnmnGMZrzkXy8KTAkgaEwKF5FcgVwId8qHeyBEPygFToOheiroHcHXUmd8N1r33iYT72pFi9CdBTivnsH89KHZsD97mY8cAmS+Q050T6v9jEjmoBlKBbRymWcIl4pIbi4Ah3vh+hkiPasmkQ+k/7oHBoicXsNuo9E/PGewb4FQzf7xI5mEmP4ESoBCIV/eobKAEPfFqF4DsllGH7G18TLmx4EC1pg8hzQXwS9L0Sjk9dj8lkZPC8I0XKIPga/u7NZfQnDE4YeDdHK91Ac3+tUZ8tPyqYVJBBYz4kI+AeKa5FcyYniiZEPwcXjQR4K0Qmg96g5xyLdJEozl9I63FwdbdEyMMcgbrt3qG7J0M9LtJ8Zg+FsJCfWhnjm8x3ShtbWw+AaVBSgkbyO4ncEXI3mTv6PWDOCtICE7XcCcySE80HPgKjFb7W+PP5CUii1X27SEgiPQtz616G8PcNjkq7dTTvjORXJqSgqDadlpDvS/evsgHQS8DyKW2jhFlq5n8PFuo0PAAT8aiZ0HwDhXAh3Bz0BIpm+IJSPv5AlH8m6PQTRsYibnxzqWzV8Zqzb3VSYxCeRfJuAcdbsVd/UjCwgpG8GxToULxBwCxVuw/Agh4lVwxeAuwII3w7de4M+AqJ3gZ4EofJbB8d3xbQsZpJthFt0M2z4LOKWYdEhOsymbzSSgzkIyWUotvLWCD490kEKIGlb0AtGJ4oVVHgAyV0EPIzgcfYZQjjMXQGMnQnrdwG9J0RzQE+DaFwVgKzLimfRCLk62zToi8B8HXHDG8NF+obnXKaHm10RXIZit960DZXDf0gPsbocahsItjpd0xpvEPAEAQ8geBLJc7SzlO1ZjhBRsYL/7HhgO+icDnp7CN8B+t0Qbg7hWIgq/QU1xHsxYnyXFvTRDM76DogWwMsXIe7uHE5iN3wn9j3EbMEoFqI4ul+kKW9vdJpjbRN86YAhSAQmQtFJhXW1Xu9lKJ6nhZeR/JOAVSjeoMIaJJ0ERFRYD90VoLWaDt01ttqqMx7CSRBOgXAaRDMg2gx0G4TtNcEX/YU6JB8MWcOoefoVomXQ/Tnovg1xQzTcRG54z3J9mGlnNCchOR3F6NwzEPoAoRJ8i8BTawQJwFToW5kpIKyFc6PauRFSi5pTK6A7AK2qYEQJQu1zLKtfkBY9ytvrHP2u6h9c/dRwFbfhnd58s1iH5rso/g3BEufEAj4Tl9XXxetdm8859ZuruRH93guggqANwWgEo4FxwFhgNNAOoqWGTsIX2Y75bDLjcdeNTdvvPb8TxELonDucQRj+MADcICJ+Jm5Fsz+CnyHQqc8r6bnLjLLhC4DrOwtX2PEfLwqSLDcnDYLeumdBzoOnTkVcs2q4i9rGM/DlavEihk8j+TSCV1PHhAjPBi1N0PPIkI+si0aAiJ+T96JkxgtMaoX6HYuqM1hEcxAX3oy4e6NIm9+4RoFdITq5lJ8C+yC4FkHopamFBxBpWiSTICfIrMj6wSwfEgVtPjfK2co8A+IYWH084kcbVVbwRjgkUhguFktQfALDUcDTTm2Q10zOoiFkgq8hizCZ6h+Va8ur2ijoJklArgfxQzD7IBZej7iic2OTrI13fPD5YgMXiF8QsTdwLoI1drO1yT7C8G44CtYYTrV7N5gD4ZmTEd/daNPhN/7B8ueLFYzmv4DZtZFsUaYGrSi/YVgIfpKN53uhMov2WArmk9BxKOJb9wzHvoOR08+QtZxkWpnAgQScgWSP1MxWnzEPPkl+efKeBnwuS85QWkeZz3FXz7JXZ9oqiC6B6DzEaa+OFPEZmUvLftmMZhKHIvkqkj1S0zTyJPVlzW+SRcGgyZdg10iaRVQHgV4E0fnQ8Q/EmXokic3IXmd5gWlnFIdR4WQk70HV0jp8YZAFgWFLEvSGIQ0Cn9Zfe9QlQrASwsthwwUjEYJNA4Y+KNqYyD4oTkJyUG0VIP90jaxp4ElawAmUT1pEoxAknWeFYQmYS2HdlfDF1xDCjGQx2TRg6IMiYHN2pMKngXkETE1cilfGWnJJtoFCSblNMg0G3YAfkPZdtvN684i6Qd9dNYc6foX4/Caz9sWmBUNvMYLzGM84DiPgEyj27R1h55vlakv/lp5aIBWGNBB8tUgmv2AZRD8HcSU8uQRx5iY32domCkNdud4oupmOZB6KI1G8C4nM5UNk9SlkVhiS6vOkYEcrILoFzHVQ+T3i8HWbsiiUMNSXu0zASmZR4d+QHFwbXFTJPAVNnjqpG2z5faZ7jAD9IoR3grkR1t4B89aOdF+ghKFhS8pIbmIKo9gfwfuRzEExDYXIPGCoKTB4j0/ugOjPYG6H7ttg1WMwv3so5iUqYRhJ5tQUtqXCbCSzUeyF5O0oWgoBIhEG7esgG9DLQd8P0b1g7oHoYdizs2z9SxiaqTkES2llFbNQ7ETAzkh2RDKzpkHGZAJEag8N0HssAv0yRM+Bfgq6HwPzKISPwo0rR2o/QAnDxmpiLWMqMJ1WtgamoJiMYjKSyQSMQjIGhULQhqINpaPqYHltIFoLUSdEq6sdXtEK0K9D9AqYpRAtQ2xXrn9dlrKUpSxlKUtZylKWwSj/HyHl/ePsagXCAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/_notes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/_notes/dwsync.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+DQo8ZHdzeW5jPg0KPGZpbGUgbmFtZT0iYWpheC1sb2FkZXIuZ2lmIiBzZXJ2ZXI9Ijk4LjEyOS4xMDUuMjAiIGxvY2FsPSIxMjkwNTM3NDE1ODQ4NDM3NTAiIHJlbW90ZT0iMTI5MDUzODQ1MjAwMDAwMDAwIiAvPg0KPGZpbGUgbmFtZT0iYmx1ZS5wbmciIHNlcnZlcj0iOTguMTI5LjEwNS4yMCIgbG9jYWw9IjEyOTA1Mzc0MTU4NDg0Mzc1MCIgcmVtb3RlPSIxMjkwNTM4NDUyMDAwMDAwMDAiIC8+DQo8ZmlsZSBuYW1lPSJtYXJrZXIucG5nIiBzZXJ2ZXI9Ijk4LjEyOS4xMDUuMjAiIGxvY2FsPSIxMjkwNTM3NDE1ODQ2ODc1MDAiIHJlbW90ZT0iMTI5MDUzODQ1MjAwMDAwMDAwIiAvPg0KPGZpbGUgbmFtZT0ibWFzay5wbmciIHNlcnZlcj0iOTguMTI5LjEwNS4yMCIgbG9jYWw9IjEyOTA1Mzc0MTU4NDg0Mzc1MCIgcmVtb3RlPSIxMjkwNTM4NDUyMDAwMDAwMDAiIC8+DQo8ZmlsZSBuYW1lPSJwcGJtRG9uYXRlLnBuZyIgc2VydmVyPSI5OC4xMjkuMTA1LjIwIiBsb2NhbD0iMTI5MDUzNzQxNTg0ODQzNzUwIiByZW1vdGU9IjEyOTA1Mzg0NTIwMDAwMDAwMCIgLz4NCjxmaWxlIG5hbWU9InN1cHBvcnQucG5nIiBzZXJ2ZXI9Ijk4LjEyOS4xMDUuMjAiIGxvY2FsPSIxMjkwNTM3NDE1ODQ1MzEyNTAiIHJlbW90ZT0iMTI5MDUzODQ1MjAwMDAwMDAwIiAvPg0KPGZpbGUgbmFtZT0id2hlZWwucG5nIiBzZXJ2ZXI9Ijk4LjEyOS4xMDUuMjAiIGxvY2FsPSIxMjkwNTM3NDE1ODQ2ODc1MDAiIHJlbW90ZT0iMTI5MDUzODQ1MjAwMDAwMDAwIiAvPg0KPC9kd3N5bmM+]]></data>
	</file>
	<file>
	  <filename>/includes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/farbtastic.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIEZhcmJ0YXN0aWMgQ29sb3IgUGlja2VyIDEuMgogKiDCqSAyMDA4IFN0ZXZlbiBXaXR0ZW5zCiAqCiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQogKi8KCmpRdWVyeS5mbi5mYXJidGFzdGljID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7CiAgJC5mYXJidGFzdGljKHRoaXMsIGNhbGxiYWNrKTsKICByZXR1cm4gdGhpczsKfTsKCmpRdWVyeS5mYXJidGFzdGljID0gZnVuY3Rpb24gKGNvbnRhaW5lciwgY2FsbGJhY2spIHsKICB2YXIgY29udGFpbmVyID0gJChjb250YWluZXIpLmdldCgwKTsKICByZXR1cm4gY29udGFpbmVyLmZhcmJ0YXN0aWMgfHwgKGNvbnRhaW5lci5mYXJidGFzdGljID0gbmV3IGpRdWVyeS5fZmFyYnRhc3RpYyhjb250YWluZXIsIGNhbGxiYWNrKSk7Cn0KCmpRdWVyeS5fZmFyYnRhc3RpYyA9IGZ1bmN0aW9uIChjb250YWluZXIsIGNhbGxiYWNrKSB7CiAgLy8gU3RvcmUgZmFyYnRhc3RpYyBvYmplY3QKICB2YXIgZmIgPSB0aGlzOwoKICAvLyBJbnNlcnQgbWFya3VwCiAgJChjb250YWluZXIpLmh0bWwoJzxkaXYgY2xhc3M9ImZhcmJ0YXN0aWMiPjxkaXYgY2xhc3M9ImNvbG9yIj48L2Rpdj48ZGl2IGNsYXNzPSJ3aGVlbCI+PC9kaXY+PGRpdiBjbGFzcz0ib3ZlcmxheSI+PC9kaXY+PGRpdiBjbGFzcz0iaC1tYXJrZXIgbWFya2VyIj48L2Rpdj48ZGl2IGNsYXNzPSJzbC1tYXJrZXIgbWFya2VyIj48L2Rpdj48L2Rpdj4nKTsKICB2YXIgZSA9ICQoJy5mYXJidGFzdGljJywgY29udGFpbmVyKTsKICBmYi53aGVlbCA9ICQoJy53aGVlbCcsIGNvbnRhaW5lcikuZ2V0KDApOwogIC8vIERpbWVuc2lvbnMKICBmYi5yYWRpdXMgPSA4NDsKICBmYi5zcXVhcmUgPSAxMDA7CiAgZmIud2lkdGggPSAxOTQ7CgogIC8vIEZpeCBiYWNrZ3JvdW5kIFBOR3MgaW4gSUU2CiAgaWYgKG5hdmlnYXRvci5hcHBWZXJzaW9uLm1hdGNoKC9NU0lFIFswLTZdXC4vKSkgewogICAgJCgnKicsIGUpLmVhY2goZnVuY3Rpb24gKCkgewogICAgICBpZiAodGhpcy5jdXJyZW50U3R5bGUuYmFja2dyb3VuZEltYWdlICE9ICdub25lJykgewogICAgICAgIHZhciBpbWFnZSA9IHRoaXMuY3VycmVudFN0eWxlLmJhY2tncm91bmRJbWFnZTsKICAgICAgICBpbWFnZSA9IHRoaXMuY3VycmVudFN0eWxlLmJhY2tncm91bmRJbWFnZS5zdWJzdHJpbmcoNSwgaW1hZ2UubGVuZ3RoIC0gMik7CiAgICAgICAgJCh0aGlzKS5jc3MoewogICAgICAgICAgJ2JhY2tncm91bmRJbWFnZSc6ICdub25lJywKICAgICAgICAgICdmaWx0ZXInOiAicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhSW1hZ2VMb2FkZXIoZW5hYmxlZD10cnVlLCBzaXppbmdNZXRob2Q9Y3JvcCwgc3JjPSciICsgaW1hZ2UgKyAiJykiCiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0pOwogIH0KCiAgLyoqCiAgICogTGluayB0byB0aGUgZ2l2ZW4gZWxlbWVudChzKSBvciBjYWxsYmFjay4KICAgKi8KICBmYi5saW5rVG8gPSBmdW5jdGlvbiAoY2FsbGJhY2spIHsKICAgIC8vIFVuYmluZCBwcmV2aW91cyBub2RlcwogICAgaWYgKHR5cGVvZiBmYi5jYWxsYmFjayA9PSAnb2JqZWN0JykgewogICAgICAkKGZiLmNhbGxiYWNrKS51bmJpbmQoJ2tleXVwJywgZmIudXBkYXRlVmFsdWUpOwogICAgfQoKICAgIC8vIFJlc2V0IGNvbG9yCiAgICBmYi5jb2xvciA9IG51bGw7CgogICAgLy8gQmluZCBjYWxsYmFjayBvciBlbGVtZW50cwogICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PSAnZnVuY3Rpb24nKSB7CiAgICAgIGZiLmNhbGxiYWNrID0gY2FsbGJhY2s7CiAgICB9CiAgICBlbHNlIGlmICh0eXBlb2YgY2FsbGJhY2sgPT0gJ29iamVjdCcgfHwgdHlwZW9mIGNhbGxiYWNrID09ICdzdHJpbmcnKSB7CiAgICAgIGZiLmNhbGxiYWNrID0gJChjYWxsYmFjayk7CiAgICAgIGZiLmNhbGxiYWNrLmJpbmQoJ2tleXVwJywgZmIudXBkYXRlVmFsdWUpOwogICAgICBpZiAoZmIuY2FsbGJhY2suZ2V0KDApLnZhbHVlKSB7CiAgICAgICAgZmIuc2V0Q29sb3IoZmIuY2FsbGJhY2suZ2V0KDApLnZhbHVlKTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIHRoaXM7CiAgfQogIGZiLnVwZGF0ZVZhbHVlID0gZnVuY3Rpb24gKGV2ZW50KSB7CiAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlICE9IGZiLmNvbG9yKSB7CiAgICAgIGZiLnNldENvbG9yKHRoaXMudmFsdWUpOwogICAgfQogIH0KCiAgLyoqCiAgICogQ2hhbmdlIGNvbG9yIHdpdGggSFRNTCBzeW50YXggIzEyMzQ1NgogICAqLwogIGZiLnNldENvbG9yID0gZnVuY3Rpb24gKGNvbG9yKSB7CiAgICB2YXIgdW5wYWNrID0gZmIudW5wYWNrKGNvbG9yKTsKICAgIGlmIChmYi5jb2xvciAhPSBjb2xvciAmJiB1bnBhY2spIHsKICAgICAgZmIuY29sb3IgPSBjb2xvcjsKICAgICAgZmIucmdiID0gdW5wYWNrOwogICAgICBmYi5oc2wgPSBmYi5SR0JUb0hTTChmYi5yZ2IpOwogICAgICBmYi51cGRhdGVEaXNwbGF5KCk7CiAgICB9CiAgICByZXR1cm4gdGhpczsKICB9CgogIC8qKgogICAqIENoYW5nZSBjb2xvciB3aXRoIEhTTCB0cmlwbGV0IFswLi4xLCAwLi4xLCAwLi4xXQogICAqLwogIGZiLnNldEhTTCA9IGZ1bmN0aW9uIChoc2wpIHsKICAgIGZiLmhzbCA9IGhzbDsKICAgIGZiLnJnYiA9IGZiLkhTTFRvUkdCKGhzbCk7CiAgICBmYi5jb2xvciA9IGZiLnBhY2soZmIucmdiKTsKICAgIGZiLnVwZGF0ZURpc3BsYXkoKTsKICAgIHJldHVybiB0aGlzOwogIH0KCiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCiAgLyoqCiAgICogUmV0cmlldmUgdGhlIGNvb3JkaW5hdGVzIG9mIHRoZSBnaXZlbiBldmVudCByZWxhdGl2ZSB0byB0aGUgY2VudGVyCiAgICogb2YgdGhlIHdpZGdldC4KICAgKi8KICBmYi53aWRnZXRDb29yZHMgPSBmdW5jdGlvbiAoZXZlbnQpIHsKICAgIHZhciB4LCB5OwogICAgdmFyIGVsID0gZXZlbnQudGFyZ2V0IHx8IGV2ZW50LnNyY0VsZW1lbnQ7CiAgICB2YXIgcmVmZXJlbmNlID0gZmIud2hlZWw7CgogICAgaWYgKHR5cGVvZiBldmVudC5vZmZzZXRYICE9ICd1bmRlZmluZWQnKSB7CiAgICAgIC8vIFVzZSBvZmZzZXQgY29vcmRpbmF0ZXMgYW5kIGZpbmQgY29tbW9uIG9mZnNldFBhcmVudAogICAgICB2YXIgcG9zID0geyB4OiBldmVudC5vZmZzZXRYLCB5OiBldmVudC5vZmZzZXRZIH07CgogICAgICAvLyBTZW5kIHRoZSBjb29yZGluYXRlcyB1cHdhcmRzIHRocm91Z2ggdGhlIG9mZnNldFBhcmVudCBjaGFpbi4KICAgICAgdmFyIGUgPSBlbDsKICAgICAgd2hpbGUgKGUpIHsKICAgICAgICBlLm1vdXNlWCA9IHBvcy54OwogICAgICAgIGUubW91c2VZID0gcG9zLnk7CiAgICAgICAgcG9zLnggKz0gZS5vZmZzZXRMZWZ0OwogICAgICAgIHBvcy55ICs9IGUub2Zmc2V0VG9wOwogICAgICAgIGUgPSBlLm9mZnNldFBhcmVudDsKICAgICAgfQoKICAgICAgLy8gTG9vayBmb3IgdGhlIGNvb3JkaW5hdGVzIHN0YXJ0aW5nIGZyb20gdGhlIHdoZWVsIHdpZGdldC4KICAgICAgdmFyIGUgPSByZWZlcmVuY2U7CiAgICAgIHZhciBvZmZzZXQgPSB7IHg6IDAsIHk6IDAgfQogICAgICB3aGlsZSAoZSkgewogICAgICAgIGlmICh0eXBlb2YgZS5tb3VzZVggIT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgIHggPSBlLm1vdXNlWCAtIG9mZnNldC54OwogICAgICAgICAgeSA9IGUubW91c2VZIC0gb2Zmc2V0Lnk7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgb2Zmc2V0LnggKz0gZS5vZmZzZXRMZWZ0OwogICAgICAgIG9mZnNldC55ICs9IGUub2Zmc2V0VG9wOwogICAgICAgIGUgPSBlLm9mZnNldFBhcmVudDsKICAgICAgfQoKICAgICAgLy8gUmVzZXQgc3RvcmVkIGNvb3JkaW5hdGVzCiAgICAgIGUgPSBlbDsKICAgICAgd2hpbGUgKGUpIHsKICAgICAgICBlLm1vdXNlWCA9IHVuZGVmaW5lZDsKICAgICAgICBlLm1vdXNlWSA9IHVuZGVmaW5lZDsKICAgICAgICBlID0gZS5vZmZzZXRQYXJlbnQ7CiAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICAvLyBVc2UgYWJzb2x1dGUgY29vcmRpbmF0ZXMKICAgICAgdmFyIHBvcyA9IGZiLmFic29sdXRlUG9zaXRpb24ocmVmZXJlbmNlKTsKICAgICAgeCA9IChldmVudC5wYWdlWCB8fCAwKihldmVudC5jbGllbnRYICsgJCgnaHRtbCcpLmdldCgwKS5zY3JvbGxMZWZ0KSkgLSBwb3MueDsKICAgICAgeSA9IChldmVudC5wYWdlWSB8fCAwKihldmVudC5jbGllbnRZICsgJCgnaHRtbCcpLmdldCgwKS5zY3JvbGxUb3ApKSAtIHBvcy55OwogICAgfQogICAgLy8gU3VidHJhY3QgZGlzdGFuY2UgdG8gbWlkZGxlCiAgICByZXR1cm4geyB4OiB4IC0gZmIud2lkdGggLyAyLCB5OiB5IC0gZmIud2lkdGggLyAyIH07CiAgfQoKICAvKioKICAgKiBNb3VzZWRvd24gaGFuZGxlcgogICAqLwogIGZiLm1vdXNlZG93biA9IGZ1bmN0aW9uIChldmVudCkgewogICAgLy8gQ2FwdHVyZSBtb3VzZQogICAgaWYgKCFkb2N1bWVudC5kcmFnZ2luZykgewogICAgICAkKGRvY3VtZW50KS5iaW5kKCdtb3VzZW1vdmUnLCBmYi5tb3VzZW1vdmUpLmJpbmQoJ21vdXNldXAnLCBmYi5tb3VzZXVwKTsKICAgICAgZG9jdW1lbnQuZHJhZ2dpbmcgPSB0cnVlOwogICAgfQoKICAgIC8vIENoZWNrIHdoaWNoIGFyZWEgaXMgYmVpbmcgZHJhZ2dlZAogICAgdmFyIHBvcyA9IGZiLndpZGdldENvb3JkcyhldmVudCk7CiAgICBmYi5jaXJjbGVEcmFnID0gTWF0aC5tYXgoTWF0aC5hYnMocG9zLngpLCBNYXRoLmFicyhwb3MueSkpICogMiA+IGZiLnNxdWFyZTsKCiAgICAvLyBQcm9jZXNzCiAgICBmYi5tb3VzZW1vdmUoZXZlbnQpOwogICAgcmV0dXJuIGZhbHNlOwogIH0KCiAgLyoqCiAgICogTW91c2Vtb3ZlIGhhbmRsZXIKICAgKi8KICBmYi5tb3VzZW1vdmUgPSBmdW5jdGlvbiAoZXZlbnQpIHsKICAgIC8vIEdldCBjb29yZGluYXRlcyByZWxhdGl2ZSB0byBjb2xvciBwaWNrZXIgY2VudGVyCiAgICB2YXIgcG9zID0gZmIud2lkZ2V0Q29vcmRzKGV2ZW50KTsKCiAgICAvLyBTZXQgbmV3IEhTTCBwYXJhbWV0ZXJzCiAgICBpZiAoZmIuY2lyY2xlRHJhZykgewogICAgICB2YXIgaHVlID0gTWF0aC5hdGFuMihwb3MueCwgLXBvcy55KSAvIDYuMjg7CiAgICAgIGlmIChodWUgPCAwKSBodWUgKz0gMTsKICAgICAgZmIuc2V0SFNMKFtodWUsIGZiLmhzbFsxXSwgZmIuaHNsWzJdXSk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgdmFyIHNhdCA9IE1hdGgubWF4KDAsIE1hdGgubWluKDEsIC0ocG9zLnggLyBmYi5zcXVhcmUpICsgLjUpKTsKICAgICAgdmFyIGx1bSA9IE1hdGgubWF4KDAsIE1hdGgubWluKDEsIC0ocG9zLnkgLyBmYi5zcXVhcmUpICsgLjUpKTsKICAgICAgZmIuc2V0SFNMKFtmYi5oc2xbMF0sIHNhdCwgbHVtXSk7CiAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICAvKioKICAgKiBNb3VzZXVwIGhhbmRsZXIKICAgKi8KICBmYi5tb3VzZXVwID0gZnVuY3Rpb24gKCkgewogICAgLy8gVW5jYXB0dXJlIG1vdXNlCiAgICAkKGRvY3VtZW50KS51bmJpbmQoJ21vdXNlbW92ZScsIGZiLm1vdXNlbW92ZSk7CiAgICAkKGRvY3VtZW50KS51bmJpbmQoJ21vdXNldXAnLCBmYi5tb3VzZXVwKTsKICAgIGRvY3VtZW50LmRyYWdnaW5nID0gZmFsc2U7CiAgfQoKICAvKioKICAgKiBVcGRhdGUgdGhlIG1hcmtlcnMgYW5kIHN0eWxlcwogICAqLwogIGZiLnVwZGF0ZURpc3BsYXkgPSBmdW5jdGlvbiAoKSB7CiAgICAvLyBNYXJrZXJzCiAgICB2YXIgYW5nbGUgPSBmYi5oc2xbMF0gKiA2LjI4OwogICAgJCgnLmgtbWFya2VyJywgZSkuY3NzKHsKICAgICAgbGVmdDogTWF0aC5yb3VuZChNYXRoLnNpbihhbmdsZSkgKiBmYi5yYWRpdXMgKyBmYi53aWR0aCAvIDIpICsgJ3B4JywKICAgICAgdG9wOiBNYXRoLnJvdW5kKC1NYXRoLmNvcyhhbmdsZSkgKiBmYi5yYWRpdXMgKyBmYi53aWR0aCAvIDIpICsgJ3B4JwogICAgfSk7CgogICAgJCgnLnNsLW1hcmtlcicsIGUpLmNzcyh7CiAgICAgIGxlZnQ6IE1hdGgucm91bmQoZmIuc3F1YXJlICogKC41IC0gZmIuaHNsWzFdKSArIGZiLndpZHRoIC8gMikgKyAncHgnLAogICAgICB0b3A6IE1hdGgucm91bmQoZmIuc3F1YXJlICogKC41IC0gZmIuaHNsWzJdKSArIGZiLndpZHRoIC8gMikgKyAncHgnCiAgICB9KTsKCiAgICAvLyBTYXR1cmF0aW9uL0x1bWluYW5jZSBncmFkaWVudAogICAgJCgnLmNvbG9yJywgZSkuY3NzKCdiYWNrZ3JvdW5kQ29sb3InLCBmYi5wYWNrKGZiLkhTTFRvUkdCKFtmYi5oc2xbMF0sIDEsIDAuNV0pKSk7CgogICAgLy8gTGlua2VkIGVsZW1lbnRzIG9yIGNhbGxiYWNrCiAgICBpZiAodHlwZW9mIGZiLmNhbGxiYWNrID09ICdvYmplY3QnKSB7CiAgICAgIC8vIFNldCBiYWNrZ3JvdW5kL2ZvcmVncm91bmQgY29sb3IKICAgICAgJChmYi5jYWxsYmFjaykuY3NzKHsKICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGZiLmNvbG9yLAogICAgICAgIGNvbG9yOiBmYi5oc2xbMl0gPiAwLjUgPyAnIzAwMCcgOiAnI2ZmZicKICAgICAgfSk7CgogICAgICAvLyBDaGFuZ2UgbGlua2VkIHZhbHVlCiAgICAgICQoZmIuY2FsbGJhY2spLmVhY2goZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZSAhPSBmYi5jb2xvcikgewogICAgICAgICAgdGhpcy52YWx1ZSA9IGZiLmNvbG9yOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9CiAgICBlbHNlIGlmICh0eXBlb2YgZmIuY2FsbGJhY2sgPT0gJ2Z1bmN0aW9uJykgewogICAgICBmYi5jYWxsYmFjay5jYWxsKGZiLCBmYi5jb2xvcik7CiAgICB9CiAgfQoKICAvKioKICAgKiBHZXQgYWJzb2x1dGUgcG9zaXRpb24gb2YgZWxlbWVudAogICAqLwogIGZiLmFic29sdXRlUG9zaXRpb24gPSBmdW5jdGlvbiAoZWwpIHsKICAgIHZhciByID0geyB4OiBlbC5vZmZzZXRMZWZ0LCB5OiBlbC5vZmZzZXRUb3AgfTsKICAgIC8vIFJlc29sdmUgcmVsYXRpdmUgdG8gb2Zmc2V0UGFyZW50CiAgICBpZiAoZWwub2Zmc2V0UGFyZW50KSB7CiAgICAgIHZhciB0bXAgPSBmYi5hYnNvbHV0ZVBvc2l0aW9uKGVsLm9mZnNldFBhcmVudCk7CiAgICAgIHIueCArPSB0bXAueDsKICAgICAgci55ICs9IHRtcC55OwogICAgfQogICAgcmV0dXJuIHI7CiAgfTsKCiAgLyogVmFyaW91cyBjb2xvciB1dGlsaXR5IGZ1bmN0aW9ucyAqLwogIGZiLnBhY2sgPSBmdW5jdGlvbiAocmdiKSB7CiAgICB2YXIgciA9IE1hdGgucm91bmQocmdiWzBdICogMjU1KTsKICAgIHZhciBnID0gTWF0aC5yb3VuZChyZ2JbMV0gKiAyNTUpOwogICAgdmFyIGIgPSBNYXRoLnJvdW5kKHJnYlsyXSAqIDI1NSk7CiAgICByZXR1cm4gJyMnICsgKHIgPCAxNiA/ICcwJyA6ICcnKSArIHIudG9TdHJpbmcoMTYpICsKICAgICAgICAgICAoZyA8IDE2ID8gJzAnIDogJycpICsgZy50b1N0cmluZygxNikgKwogICAgICAgICAgIChiIDwgMTYgPyAnMCcgOiAnJykgKyBiLnRvU3RyaW5nKDE2KTsKICB9CgogIGZiLnVucGFjayA9IGZ1bmN0aW9uIChjb2xvcikgewogICAgaWYgKGNvbG9yLmxlbmd0aCA9PSA3KSB7CiAgICAgIHJldHVybiBbcGFyc2VJbnQoJzB4JyArIGNvbG9yLnN1YnN0cmluZygxLCAzKSkgLyAyNTUsCiAgICAgICAgcGFyc2VJbnQoJzB4JyArIGNvbG9yLnN1YnN0cmluZygzLCA1KSkgLyAyNTUsCiAgICAgICAgcGFyc2VJbnQoJzB4JyArIGNvbG9yLnN1YnN0cmluZyg1LCA3KSkgLyAyNTVdOwogICAgfQogICAgZWxzZSBpZiAoY29sb3IubGVuZ3RoID09IDQpIHsKICAgICAgcmV0dXJuIFtwYXJzZUludCgnMHgnICsgY29sb3Iuc3Vic3RyaW5nKDEsIDIpKSAvIDE1LAogICAgICAgIHBhcnNlSW50KCcweCcgKyBjb2xvci5zdWJzdHJpbmcoMiwgMykpIC8gMTUsCiAgICAgICAgcGFyc2VJbnQoJzB4JyArIGNvbG9yLnN1YnN0cmluZygzLCA0KSkgLyAxNV07CiAgICB9CiAgfQoKICBmYi5IU0xUb1JHQiA9IGZ1bmN0aW9uIChoc2wpIHsKICAgIHZhciBtMSwgbTIsIHIsIGcsIGI7CiAgICB2YXIgaCA9IGhzbFswXSwgcyA9IGhzbFsxXSwgbCA9IGhzbFsyXTsKICAgIG0yID0gKGwgPD0gMC41KSA/IGwgKiAocyArIDEpIDogbCArIHMgLSBsKnM7CiAgICBtMSA9IGwgKiAyIC0gbTI7CiAgICByZXR1cm4gW3RoaXMuaHVlVG9SR0IobTEsIG0yLCBoKzAuMzMzMzMpLAogICAgICAgIHRoaXMuaHVlVG9SR0IobTEsIG0yLCBoKSwKICAgICAgICB0aGlzLmh1ZVRvUkdCKG0xLCBtMiwgaC0wLjMzMzMzKV07CiAgfQoKICBmYi5odWVUb1JHQiA9IGZ1bmN0aW9uIChtMSwgbTIsIGgpIHsKICAgIGggPSAoaCA8IDApID8gaCArIDEgOiAoKGggPiAxKSA/IGggLSAxIDogaCk7CiAgICBpZiAoaCAqIDYgPCAxKSByZXR1cm4gbTEgKyAobTIgLSBtMSkgKiBoICogNjsKICAgIGlmIChoICogMiA8IDEpIHJldHVybiBtMjsKICAgIGlmIChoICogMyA8IDIpIHJldHVybiBtMSArIChtMiAtIG0xKSAqICgwLjY2NjY2IC0gaCkgKiA2OwogICAgcmV0dXJuIG0xOwogIH0KCiAgZmIuUkdCVG9IU0wgPSBmdW5jdGlvbiAocmdiKSB7CiAgICB2YXIgbWluLCBtYXgsIGRlbHRhLCBoLCBzLCBsOwogICAgdmFyIHIgPSByZ2JbMF0sIGcgPSByZ2JbMV0sIGIgPSByZ2JbMl07CiAgICBtaW4gPSBNYXRoLm1pbihyLCBNYXRoLm1pbihnLCBiKSk7CiAgICBtYXggPSBNYXRoLm1heChyLCBNYXRoLm1heChnLCBiKSk7CiAgICBkZWx0YSA9IG1heCAtIG1pbjsKICAgIGwgPSAobWluICsgbWF4KSAvIDI7CiAgICBzID0gMDsKICAgIGlmIChsID4gMCAmJiBsIDwgMSkgewogICAgICBzID0gZGVsdGEgLyAobCA8IDAuNSA/ICgyICogbCkgOiAoMiAtIDIgKiBsKSk7CiAgICB9CiAgICBoID0gMDsKICAgIGlmIChkZWx0YSA+IDApIHsKICAgICAgaWYgKG1heCA9PSByICYmIG1heCAhPSBnKSBoICs9IChnIC0gYikgLyBkZWx0YTsKICAgICAgaWYgKG1heCA9PSBnICYmIG1heCAhPSBiKSBoICs9ICgyICsgKGIgLSByKSAvIGRlbHRhKTsKICAgICAgaWYgKG1heCA9PSBiICYmIG1heCAhPSByKSBoICs9ICg0ICsgKHIgLSBnKSAvIGRlbHRhKTsKICAgICAgaCAvPSA2OwogICAgfQogICAgcmV0dXJuIFtoLCBzLCBsXTsKICB9CgogIC8vIEluc3RhbGwgbW91c2Vkb3duIGhhbmRsZXIgKHRoZSBvdGhlcnMgYXJlIHNldCBvbiB0aGUgZG9jdW1lbnQgb24tZGVtYW5kKQogICQoJyonLCBlKS5tb3VzZWRvd24oZmIubW91c2Vkb3duKTsKCiAgICAvLyBJbml0IGNvbG9yCiAgZmIuc2V0Q29sb3IoJyMwMDAwMDAnKTsKCiAgLy8gU2V0IGxpbmtlZCBlbGVtZW50cy9jYWxsYmFjawogIGlmIChjYWxsYmFjaykgewogICAgZmIubGlua1RvKGNhbGxiYWNrKTsKICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/includes/ME_1.00.00.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gSmF2YVNjcmlwdCBEb2N1bWVudA0KDQoNCg0KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsNCgkvLyQoIi50aGVjb250YWN0Rm9ybSIpLnZhbGlkYXRlKHt9KTsNCgkvLyQoIiNtMV9tb2R1bGVmb3JtXzIiKS52YWxpZGF0ZSh7DQoJLy8gIHJ1bGVzOiB7DQoJLy8JVklOOiB7cmVxdWlyZWQ6dHJ1ZSx2aW5VUzp0cnVlfQ0KCS8vICB9DQoJLy99KTsNCmlmICgkKCIjY29sb3JwaWNrZXIiKS5sZW5ndGggPiAwKXskKCcjY29sb3JwaWNrZXInKS5mYXJidGFzdGljKCJpbnB1dFtuYW1lKj0nY3BwX2hlYWRlcmJhY2tfY29sb3InXSIpO30NCmlmICgkKCIjY3BwX3BheWZsb3djb2xvcnBpY2tlciIpLmxlbmd0aCA+IDApeyQoJyNjcHBfcGF5Zmxvd2NvbG9ycGlja2VyJykuZmFyYnRhc3RpYygiaW5wdXRbbmFtZSo9J2NwcF9wYXlmbG93X2NvbG9yJ10iKTt9DQppZiAoJCgiI2NwcF9oZWFkZXJib3JkZXJjb2xvcnBpY2tlciIpLmxlbmd0aCA+IDApeyQoJyNjcHBfaGVhZGVyYm9yZGVyY29sb3JwaWNrZXInKS5mYXJidGFzdGljKCJpbnB1dFtuYW1lKj0nY3BwX2hlYWRlcmJvcmRlcl9jb2xvciddIik7fQ0KDQoNCgkkKCIuZXh0ZW5kSEFORExFIikuY2xpY2soZnVuY3Rpb24oKXsNCgkJaWYoJCh0aGlzKS5uZXh0KCkuaGFzQ2xhc3MoIk5leHRlbmQiKSl7DQoJCQkkKHRoaXMpLmZpbmQoInNwYW4iKS50ZXh0KCJbLV0iKTsNCgkJCSQodGhpcykubmV4dCgpLnJlbW92ZUNsYXNzKCJOZXh0ZW5kIik7DQoJCQkkKCcuY29sb3JwaWNrZXInKS5zbGlkZURvd24oImZhc3QiKTsNCgkJCSQodGhpcykubmV4dCgpLmFkZENsYXNzKCJleHRlbmQiKTsNCgkJCSQoIi5UcmFuc2xhZXRDb24iKS5zaG93KCk7DQoJCX1lbHNlew0KCQkJJCh0aGlzKS5maW5kKCJzcGFuIikudGV4dCgiWytdIik7CQ0KCQkJJCgnLmNvbG9ycGlja2VyJykuc2xpZGVVcCgiZmFzdCIpOw0KCQkJJCh0aGlzKS5uZXh0KCkuYWRkQ2xhc3MoIk5leHRlbmQiKTsNCgkJCSQodGhpcykubmV4dCgpLnJlbW92ZUNsYXNzKCJleHRlbmQiKTsNCgkJCSQoIi5UcmFuc2xhZXRDb24iKS5oaWRlKCk7DQoJCX0NCgl9KTsNCiANCg0KaWYgKCQoImltZy5zeXN0ZW1pY29uIikubGVuZ3RoID4gMCl7JCgiaW1nLnN5c3RlbWljb24iKS50b29sdGlwKHt0aXA6IiNkZW1vdGlwIixsYXp5OnRydWUscHJlZGVsYXk6NTAsDQoJCS8vIGNoYW5nZSB0cmlnZ2VyIG9wYWNpdHkgc2xvd2x5IHRvIDAuOCANCgkJb25CZWZvcmVTaG93OiBmdW5jdGlvbigpIHsgDQoJCQkvL3RoaXMuZ2V0VHJpZ2dlcigpLmZhZGVUbygic2xvdyIsIDAuOCk7IA0KCQkJaWYoJCgiLnByb2dyZXNzIikubGVuZ3RoID09IDApew0KCQkJCSQoIiNkZW1vdGlwIikuYXBwZW5kKCc8aW1nIGNsYXNzPSJwcm9ncmVzcyIgc3JjPSIuLi9tb2R1bGVzL2lDYWwvaW1hZ2VzL2FqYXgtbG9hZGVyLmdpZiIgYWx0PSIiLz4nKTsNCgkJCX0NCgkJCXBJUz10aGlzLmdldFRyaWdnZXIoKS5hdHRyKCJyZWwiKTsNCgkJCVVTRVI9dGhpcy5nZXRUcmlnZ2VyKCkuYXR0cigiYWx0Iik7DQoJCQkkKCIjZGVtb3RpcCIpLmxvYWQoIi4uL2FkbWluL21vZHVsZWludGVyZmFjZS5waHA/bWFjdD1pQ2FsLG0xXyxkZXNjcmlwdGlvbiwwJiIrVVNFUisiJnNob3d0ZW1wbGF0ZT1mYWxzZSZtMV9EZXNjcmlwdGlvbj0iK3BJUysiICNESVNDUlAiDQoJCQkJCQkJLGZ1bmN0aW9uKCl7DQoJCQkJCQkJCSQoIi5wcm9ncmVzcyIpLmZhZGVPdXQoInNsb3ciLGZ1bmN0aW9uKCl7JCgiLnByb2dyZXNzIikucmVtb3ZlKCk7fSk7DQoJCQkJCQkJfSk7DQoJCX0sIA0KCQlvbkhpZGU6IGZ1bmN0aW9uKCkgew0KCQkJJCgiI2RlbW90aXAiKS5lbXB0eSgpLmFwcGVuZCgnPGltZyBjbGFzcz0icHJvZ3Jlc3MiIHNyYz0iLi4vbW9kdWxlcy9pQ2FsL2ltYWdlcy9hamF4LWxvYWRlci5naWYiIGFsdD0iIi8+Jyk7DQoJCX0NCgl9KTsNCg0KLy9hY3Rpb24uZGVzY3JpcHRpb24ucGhwDQp9DQoNCn0pOwkNCg0KDQoNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/MS_1.00.00.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjEuMy4yDQogKiBodHRwOi8vanF1ZXJ5LmNvbS8NCiAqDQogKiBDb3B5cmlnaHQgKGMpIDIwMDkgSm9obiBSZXNpZw0KICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGFuZCBHUEwgbGljZW5zZXMuDQogKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL0xpY2Vuc2UNCiAqDQogKiBEYXRlOiAyMDA5LTAyLTE5IDE3OjM0OjIxIC0wNTAwIChUaHUsIDE5IEZlYiAyMDA5KQ0KICogUmV2aXNpb246IDYyNDYNCiAqLw0KKGZ1bmN0aW9uKCl7dmFyIGw9dGhpcyxnLHk9bC5qUXVlcnkscD1sLiQsbz1sLmpRdWVyeT1sLiQ9ZnVuY3Rpb24oRSxGKXtyZXR1cm4gbmV3IG8uZm4uaW5pdChFLEYpfSxEPS9eW148XSooPCgufFxzKSs+KVtePl0qJHxeIyhbXHctXSspJC8sZj0vXi5bXjojXFtcLixdKiQvO28uZm49by5wcm90b3R5cGU9e2luaXQ6ZnVuY3Rpb24oRSxIKXtFPUV8fGRvY3VtZW50O2lmKEUubm9kZVR5cGUpe3RoaXNbMF09RTt0aGlzLmxlbmd0aD0xO3RoaXMuY29udGV4dD1FO3JldHVybiB0aGlzfWlmKHR5cGVvZiBFPT09InN0cmluZyIpe3ZhciBHPUQuZXhlYyhFKTtpZihHJiYoR1sxXXx8IUgpKXtpZihHWzFdKXtFPW8uY2xlYW4oW0dbMV1dLEgpfWVsc2V7dmFyIEk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoR1szXSk7aWYoSSYmSS5pZCE9R1szXSl7cmV0dXJuIG8oKS5maW5kKEUpfXZhciBGPW8oSXx8W10pO0YuY29udGV4dD1kb2N1bWVudDtGLnNlbGVjdG9yPUU7cmV0dXJuIEZ9fWVsc2V7cmV0dXJuIG8oSCkuZmluZChFKX19ZWxzZXtpZihvLmlzRnVuY3Rpb24oRSkpe3JldHVybiBvKGRvY3VtZW50KS5yZWFkeShFKX19aWYoRS5zZWxlY3RvciYmRS5jb250ZXh0KXt0aGlzLnNlbGVjdG9yPUUuc2VsZWN0b3I7dGhpcy5jb250ZXh0PUUuY29udGV4dH1yZXR1cm4gdGhpcy5zZXRBcnJheShvLmlzQXJyYXkoRSk/RTpvLm1ha2VBcnJheShFKSl9LHNlbGVjdG9yOiIiLGpxdWVyeToiMS4zLjIiLHNpemU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGh9LGdldDpmdW5jdGlvbihFKXtyZXR1cm4gRT09PWc/QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcyk6dGhpc1tFXX0scHVzaFN0YWNrOmZ1bmN0aW9uKEYsSCxFKXt2YXIgRz1vKEYpO0cucHJldk9iamVjdD10aGlzO0cuY29udGV4dD10aGlzLmNvbnRleHQ7aWYoSD09PSJmaW5kIil7Ry5zZWxlY3Rvcj10aGlzLnNlbGVjdG9yKyh0aGlzLnNlbGVjdG9yPyIgIjoiIikrRX1lbHNle2lmKEgpe0cuc2VsZWN0b3I9dGhpcy5zZWxlY3RvcisiLiIrSCsiKCIrRSsiKSJ9fXJldHVybiBHfSxzZXRBcnJheTpmdW5jdGlvbihFKXt0aGlzLmxlbmd0aD0wO0FycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KHRoaXMsRSk7cmV0dXJuIHRoaXN9LGVhY2g6ZnVuY3Rpb24oRixFKXtyZXR1cm4gby5lYWNoKHRoaXMsRixFKX0saW5kZXg6ZnVuY3Rpb24oRSl7cmV0dXJuIG8uaW5BcnJheShFJiZFLmpxdWVyeT9FWzBdOkUsdGhpcyl9LGF0dHI6ZnVuY3Rpb24oRixILEcpe3ZhciBFPUY7aWYodHlwZW9mIEY9PT0ic3RyaW5nIil7aWYoSD09PWcpe3JldHVybiB0aGlzWzBdJiZvW0d8fCJhdHRyIl0odGhpc1swXSxGKX1lbHNle0U9e307RVtGXT1IfX1yZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKEkpe2ZvcihGIGluIEUpe28uYXR0cihHP3RoaXMuc3R5bGU6dGhpcyxGLG8ucHJvcCh0aGlzLEVbRl0sRyxJLEYpKX19KX0sY3NzOmZ1bmN0aW9uKEUsRil7aWYoKEU9PSJ3aWR0aCJ8fEU9PSJoZWlnaHQiKSYmcGFyc2VGbG9hdChGKTwwKXtGPWd9cmV0dXJuIHRoaXMuYXR0cihFLEYsImN1ckNTUyIpfSx0ZXh0OmZ1bmN0aW9uKEYpe2lmKHR5cGVvZiBGIT09Im9iamVjdCImJkYhPW51bGwpe3JldHVybiB0aGlzLmVtcHR5KCkuYXBwZW5kKCh0aGlzWzBdJiZ0aGlzWzBdLm93bmVyRG9jdW1lbnR8fGRvY3VtZW50KS5jcmVhdGVUZXh0Tm9kZShGKSl9dmFyIEU9IiI7by5lYWNoKEZ8fHRoaXMsZnVuY3Rpb24oKXtvLmVhY2godGhpcy5jaGlsZE5vZGVzLGZ1bmN0aW9uKCl7aWYodGhpcy5ub2RlVHlwZSE9OCl7RSs9dGhpcy5ub2RlVHlwZSE9MT90aGlzLm5vZGVWYWx1ZTpvLmZuLnRleHQoW3RoaXNdKX19KX0pO3JldHVybiBFfSx3cmFwQWxsOmZ1bmN0aW9uKEUpe2lmKHRoaXNbMF0pe3ZhciBGPW8oRSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmNsb25lKCk7aWYodGhpc1swXS5wYXJlbnROb2RlKXtGLmluc2VydEJlZm9yZSh0aGlzWzBdKX1GLm1hcChmdW5jdGlvbigpe3ZhciBHPXRoaXM7d2hpbGUoRy5maXJzdENoaWxkKXtHPUcuZmlyc3RDaGlsZH1yZXR1cm4gR30pLmFwcGVuZCh0aGlzKX1yZXR1cm4gdGhpc30sd3JhcElubmVyOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtvKHRoaXMpLmNvbnRlbnRzKCkud3JhcEFsbChFKX0pfSx3cmFwOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtvKHRoaXMpLndyYXBBbGwoRSl9KX0sYXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLHRydWUsZnVuY3Rpb24oRSl7aWYodGhpcy5ub2RlVHlwZT09MSl7dGhpcy5hcHBlbmRDaGlsZChFKX19KX0scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyx0cnVlLGZ1bmN0aW9uKEUpe2lmKHRoaXMubm9kZVR5cGU9PTEpe3RoaXMuaW5zZXJ0QmVmb3JlKEUsdGhpcy5maXJzdENoaWxkKX19KX0sYmVmb3JlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLGZhbHNlLGZ1bmN0aW9uKEUpe3RoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoRSx0aGlzKX0pfSxhZnRlcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyxmYWxzZSxmdW5jdGlvbihFKXt0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKEUsdGhpcy5uZXh0U2libGluZyl9KX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8byhbXSl9LHB1c2g6W10ucHVzaCxzb3J0OltdLnNvcnQsc3BsaWNlOltdLnNwbGljZSxmaW5kOmZ1bmN0aW9uKEUpe2lmKHRoaXMubGVuZ3RoPT09MSl7dmFyIEY9dGhpcy5wdXNoU3RhY2soW10sImZpbmQiLEUpO0YubGVuZ3RoPTA7by5maW5kKEUsdGhpc1swXSxGKTtyZXR1cm4gRn1lbHNle3JldHVybiB0aGlzLnB1c2hTdGFjayhvLnVuaXF1ZShvLm1hcCh0aGlzLGZ1bmN0aW9uKEcpe3JldHVybiBvLmZpbmQoRSxHKX0pKSwiZmluZCIsRSl9fSxjbG9uZTpmdW5jdGlvbihHKXt2YXIgRT10aGlzLm1hcChmdW5jdGlvbigpe2lmKCFvLnN1cHBvcnQubm9DbG9uZUV2ZW50JiYhby5pc1hNTERvYyh0aGlzKSl7dmFyIEk9dGhpcy5vdXRlckhUTUw7aWYoIUkpe3ZhciBKPXRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtKLmFwcGVuZENoaWxkKHRoaXMuY2xvbmVOb2RlKHRydWUpKTtJPUouaW5uZXJIVE1MfXJldHVybiBvLmNsZWFuKFtJLnJlcGxhY2UoLyBqUXVlcnlcZCs9Iig/OlxkK3xudWxsKSIvZywiIikucmVwbGFjZSgvXlxzKi8sIiIpXSlbMF19ZWxzZXtyZXR1cm4gdGhpcy5jbG9uZU5vZGUodHJ1ZSl9fSk7aWYoRz09PXRydWUpe3ZhciBIPXRoaXMuZmluZCgiKiIpLmFuZFNlbGYoKSxGPTA7RS5maW5kKCIqIikuYW5kU2VsZigpLmVhY2goZnVuY3Rpb24oKXtpZih0aGlzLm5vZGVOYW1lIT09SFtGXS5ub2RlTmFtZSl7cmV0dXJufXZhciBJPW8uZGF0YShIW0ZdLCJldmVudHMiKTtmb3IodmFyIEsgaW4gSSl7Zm9yKHZhciBKIGluIElbS10pe28uZXZlbnQuYWRkKHRoaXMsSyxJW0tdW0pdLElbS11bSl0uZGF0YSl9fUYrK30pfXJldHVybiBFfSxmaWx0ZXI6ZnVuY3Rpb24oRSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG8uaXNGdW5jdGlvbihFKSYmby5ncmVwKHRoaXMsZnVuY3Rpb24oRyxGKXtyZXR1cm4gRS5jYWxsKEcsRil9KXx8by5tdWx0aUZpbHRlcihFLG8uZ3JlcCh0aGlzLGZ1bmN0aW9uKEYpe3JldHVybiBGLm5vZGVUeXBlPT09MX0pKSwiZmlsdGVyIixFKX0sY2xvc2VzdDpmdW5jdGlvbihFKXt2YXIgRz1vLmV4cHIubWF0Y2guUE9TLnRlc3QoRSk/byhFKTpudWxsLEY9MDtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgSD10aGlzO3doaWxlKEgmJkgub3duZXJEb2N1bWVudCl7aWYoRz9HLmluZGV4KEgpPi0xOm8oSCkuaXMoRSkpe28uZGF0YShILCJjbG9zZXN0IixGKTtyZXR1cm4gSH1IPUgucGFyZW50Tm9kZTtGKyt9fSl9LG5vdDpmdW5jdGlvbihFKXtpZih0eXBlb2YgRT09PSJzdHJpbmciKXtpZihmLnRlc3QoRSkpe3JldHVybiB0aGlzLnB1c2hTdGFjayhvLm11bHRpRmlsdGVyKEUsdGhpcyx0cnVlKSwibm90IixFKX1lbHNle0U9by5tdWx0aUZpbHRlcihFLHRoaXMpfX12YXIgRj1FLmxlbmd0aCYmRVtFLmxlbmd0aC0xXSE9PWcmJiFFLm5vZGVUeXBlO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiBGP28uaW5BcnJheSh0aGlzLEUpPDA6dGhpcyE9RX0pfSxhZGQ6ZnVuY3Rpb24oRSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG8udW5pcXVlKG8ubWVyZ2UodGhpcy5nZXQoKSx0eXBlb2YgRT09PSJzdHJpbmciP28oRSk6by5tYWtlQXJyYXkoRSkpKSl9LGlzOmZ1bmN0aW9uKEUpe3JldHVybiAhIUUmJm8ubXVsdGlGaWx0ZXIoRSx0aGlzKS5sZW5ndGg+MH0saGFzQ2xhc3M6ZnVuY3Rpb24oRSl7cmV0dXJuICEhRSYmdGhpcy5pcygiLiIrRSl9LHZhbDpmdW5jdGlvbihLKXtpZihLPT09Zyl7dmFyIEU9dGhpc1swXTtpZihFKXtpZihvLm5vZGVOYW1lKEUsIm9wdGlvbiIpKXtyZXR1cm4oRS5hdHRyaWJ1dGVzLnZhbHVlfHx7fSkuc3BlY2lmaWVkP0UudmFsdWU6RS50ZXh0fWlmKG8ubm9kZU5hbWUoRSwic2VsZWN0Iikpe3ZhciBJPUUuc2VsZWN0ZWRJbmRleCxMPVtdLE09RS5vcHRpb25zLEg9RS50eXBlPT0ic2VsZWN0LW9uZSI7aWYoSTwwKXtyZXR1cm4gbnVsbH1mb3IodmFyIEY9SD9JOjAsSj1IP0krMTpNLmxlbmd0aDtGPEo7RisrKXt2YXIgRz1NW0ZdO2lmKEcuc2VsZWN0ZWQpe0s9byhHKS52YWwoKTtpZihIKXtyZXR1cm4gS31MLnB1c2goSyl9fXJldHVybiBMfXJldHVybihFLnZhbHVlfHwiIikucmVwbGFjZSgvXHIvZywiIil9cmV0dXJuIGd9aWYodHlwZW9mIEs9PT0ibnVtYmVyIil7Sys9IiJ9cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2lmKHRoaXMubm9kZVR5cGUhPTEpe3JldHVybn1pZihvLmlzQXJyYXkoSykmJi9yYWRpb3xjaGVja2JveC8udGVzdCh0aGlzLnR5cGUpKXt0aGlzLmNoZWNrZWQ9KG8uaW5BcnJheSh0aGlzLnZhbHVlLEspPj0wfHxvLmluQXJyYXkodGhpcy5uYW1lLEspPj0wKX1lbHNle2lmKG8ubm9kZU5hbWUodGhpcywic2VsZWN0Iikpe3ZhciBOPW8ubWFrZUFycmF5KEspO28oIm9wdGlvbiIsdGhpcykuZWFjaChmdW5jdGlvbigpe3RoaXMuc2VsZWN0ZWQ9KG8uaW5BcnJheSh0aGlzLnZhbHVlLE4pPj0wfHxvLmluQXJyYXkodGhpcy50ZXh0LE4pPj0wKX0pO2lmKCFOLmxlbmd0aCl7dGhpcy5zZWxlY3RlZEluZGV4PS0xfX1lbHNle3RoaXMudmFsdWU9S319fSl9LGh0bWw6ZnVuY3Rpb24oRSl7cmV0dXJuIEU9PT1nPyh0aGlzWzBdP3RoaXNbMF0uaW5uZXJIVE1MLnJlcGxhY2UoLyBqUXVlcnlcZCs9Iig/OlxkK3xudWxsKSIvZywiIik6bnVsbCk6dGhpcy5lbXB0eSgpLmFwcGVuZChFKX0scmVwbGFjZVdpdGg6ZnVuY3Rpb24oRSl7cmV0dXJuIHRoaXMuYWZ0ZXIoRSkucmVtb3ZlKCl9LGVxOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLnNsaWNlKEUsK0UrMSl9LHNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKEFycmF5LnByb3RvdHlwZS5zbGljZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksInNsaWNlIixBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpLmpvaW4oIiwiKSl9LG1hcDpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soby5tYXAodGhpcyxmdW5jdGlvbihHLEYpe3JldHVybiBFLmNhbGwoRyxGLEcpfSkpfSxhbmRTZWxmOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWRkKHRoaXMucHJldk9iamVjdCl9LGRvbU1hbmlwOmZ1bmN0aW9uKEosTSxMKXtpZih0aGlzWzBdKXt2YXIgST0odGhpc1swXS5vd25lckRvY3VtZW50fHx0aGlzWzBdKS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksRj1vLmNsZWFuKEosKHRoaXNbMF0ub3duZXJEb2N1bWVudHx8dGhpc1swXSksSSksSD1JLmZpcnN0Q2hpbGQ7aWYoSCl7Zm9yKHZhciBHPTAsRT10aGlzLmxlbmd0aDtHPEU7RysrKXtMLmNhbGwoSyh0aGlzW0ddLEgpLHRoaXMubGVuZ3RoPjF8fEc+MD9JLmNsb25lTm9kZSh0cnVlKTpJKX19aWYoRil7by5lYWNoKEYseil9fXJldHVybiB0aGlzO2Z1bmN0aW9uIEsoTixPKXtyZXR1cm4gTSYmby5ub2RlTmFtZShOLCJ0YWJsZSIpJiZvLm5vZGVOYW1lKE8sInRyIik/KE4uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRib2R5IilbMF18fE4uYXBwZW5kQ2hpbGQoTi5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRib2R5IikpKTpOfX19O28uZm4uaW5pdC5wcm90b3R5cGU9by5mbjtmdW5jdGlvbiB6KEUsRil7aWYoRi5zcmMpe28uYWpheCh7dXJsOkYuc3JjLGFzeW5jOmZhbHNlLGRhdGFUeXBlOiJzY3JpcHQifSl9ZWxzZXtvLmdsb2JhbEV2YWwoRi50ZXh0fHxGLnRleHRDb250ZW50fHxGLmlubmVySFRNTHx8IiIpfWlmKEYucGFyZW50Tm9kZSl7Ri5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKEYpfX1mdW5jdGlvbiBlKCl7cmV0dXJuICtuZXcgRGF0ZX1vLmV4dGVuZD1vLmZuLmV4dGVuZD1mdW5jdGlvbigpe3ZhciBKPWFyZ3VtZW50c1swXXx8e30sSD0xLEk9YXJndW1lbnRzLmxlbmd0aCxFPWZhbHNlLEc7aWYodHlwZW9mIEo9PT0iYm9vbGVhbiIpe0U9SjtKPWFyZ3VtZW50c1sxXXx8e307SD0yfWlmKHR5cGVvZiBKIT09Im9iamVjdCImJiFvLmlzRnVuY3Rpb24oSikpe0o9e319aWYoST09SCl7Sj10aGlzOy0tSH1mb3IoO0g8STtIKyspe2lmKChHPWFyZ3VtZW50c1tIXSkhPW51bGwpe2Zvcih2YXIgRiBpbiBHKXt2YXIgSz1KW0ZdLEw9R1tGXTtpZihKPT09TCl7Y29udGludWV9aWYoRSYmTCYmdHlwZW9mIEw9PT0ib2JqZWN0IiYmIUwubm9kZVR5cGUpe0pbRl09by5leHRlbmQoRSxLfHwoTC5sZW5ndGghPW51bGw/W106e30pLEwpfWVsc2V7aWYoTCE9PWcpe0pbRl09TH19fX19cmV0dXJuIEp9O3ZhciBiPS96LT9pbmRleHxmb250LT93ZWlnaHR8b3BhY2l0eXx6b29tfGxpbmUtP2hlaWdodC9pLHE9ZG9jdW1lbnQuZGVmYXVsdFZpZXd8fHt9LHM9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztvLmV4dGVuZCh7bm9Db25mbGljdDpmdW5jdGlvbihFKXtsLiQ9cDtpZihFKXtsLmpRdWVyeT15fXJldHVybiBvfSxpc0Z1bmN0aW9uOmZ1bmN0aW9uKEUpe3JldHVybiBzLmNhbGwoRSk9PT0iW29iamVjdCBGdW5jdGlvbl0ifSxpc0FycmF5OmZ1bmN0aW9uKEUpe3JldHVybiBzLmNhbGwoRSk9PT0iW29iamVjdCBBcnJheV0ifSxpc1hNTERvYzpmdW5jdGlvbihFKXtyZXR1cm4gRS5ub2RlVHlwZT09PTkmJkUuZG9jdW1lbnRFbGVtZW50Lm5vZGVOYW1lIT09IkhUTUwifHwhIUUub3duZXJEb2N1bWVudCYmby5pc1hNTERvYyhFLm93bmVyRG9jdW1lbnQpfSxnbG9iYWxFdmFsOmZ1bmN0aW9uKEcpe2lmKEcmJi9cUy8udGVzdChHKSl7dmFyIEY9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXXx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LEU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7RS50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiO2lmKG8uc3VwcG9ydC5zY3JpcHRFdmFsKXtFLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKEcpKX1lbHNle0UudGV4dD1HfUYuaW5zZXJ0QmVmb3JlKEUsRi5maXJzdENoaWxkKTtGLnJlbW92ZUNoaWxkKEUpfX0sbm9kZU5hbWU6ZnVuY3Rpb24oRixFKXtyZXR1cm4gRi5ub2RlTmFtZSYmRi5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpPT1FLnRvVXBwZXJDYXNlKCl9LGVhY2g6ZnVuY3Rpb24oRyxLLEYpe3ZhciBFLEg9MCxJPUcubGVuZ3RoO2lmKEYpe2lmKEk9PT1nKXtmb3IoRSBpbiBHKXtpZihLLmFwcGx5KEdbRV0sRik9PT1mYWxzZSl7YnJlYWt9fX1lbHNle2Zvcig7SDxJOyl7aWYoSy5hcHBseShHW0grK10sRik9PT1mYWxzZSl7YnJlYWt9fX19ZWxzZXtpZihJPT09Zyl7Zm9yKEUgaW4gRyl7aWYoSy5jYWxsKEdbRV0sRSxHW0VdKT09PWZhbHNlKXticmVha319fWVsc2V7Zm9yKHZhciBKPUdbMF07SDxJJiZLLmNhbGwoSixILEopIT09ZmFsc2U7Sj1HWysrSF0pe319fXJldHVybiBHfSxwcm9wOmZ1bmN0aW9uKEgsSSxHLEYsRSl7aWYoby5pc0Z1bmN0aW9uKEkpKXtJPUkuY2FsbChILEYpfXJldHVybiB0eXBlb2YgST09PSJudW1iZXIiJiZHPT0iY3VyQ1NTIiYmIWIudGVzdChFKT9JKyJweCI6SX0sY2xhc3NOYW1lOnthZGQ6ZnVuY3Rpb24oRSxGKXtvLmVhY2goKEZ8fCIiKS5zcGxpdCgvXHMrLyksZnVuY3Rpb24oRyxIKXtpZihFLm5vZGVUeXBlPT0xJiYhby5jbGFzc05hbWUuaGFzKEUuY2xhc3NOYW1lLEgpKXtFLmNsYXNzTmFtZSs9KEUuY2xhc3NOYW1lPyIgIjoiIikrSH19KX0scmVtb3ZlOmZ1bmN0aW9uKEUsRil7aWYoRS5ub2RlVHlwZT09MSl7RS5jbGFzc05hbWU9RiE9PWc/by5ncmVwKEUuY2xhc3NOYW1lLnNwbGl0KC9ccysvKSxmdW5jdGlvbihHKXtyZXR1cm4gIW8uY2xhc3NOYW1lLmhhcyhGLEcpfSkuam9pbigiICIpOiIifX0saGFzOmZ1bmN0aW9uKEYsRSl7cmV0dXJuIEYmJm8uaW5BcnJheShFLChGLmNsYXNzTmFtZXx8RikudG9TdHJpbmcoKS5zcGxpdCgvXHMrLykpPi0xfX0sc3dhcDpmdW5jdGlvbihILEcsSSl7dmFyIEU9e307Zm9yKHZhciBGIGluIEcpe0VbRl09SC5zdHlsZVtGXTtILnN0eWxlW0ZdPUdbRl19SS5jYWxsKEgpO2Zvcih2YXIgRiBpbiBHKXtILnN0eWxlW0ZdPUVbRl19fSxjc3M6ZnVuY3Rpb24oSCxGLEosRSl7aWYoRj09IndpZHRoInx8Rj09ImhlaWdodCIpe3ZhciBMLEc9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdmlzaWJpbGl0eToiaGlkZGVuIixkaXNwbGF5OiJibG9jayJ9LEs9Rj09IndpZHRoIj9bIkxlZnQiLCJSaWdodCJdOlsiVG9wIiwiQm90dG9tIl07ZnVuY3Rpb24gSSgpe0w9Rj09IndpZHRoIj9ILm9mZnNldFdpZHRoOkgub2Zmc2V0SGVpZ2h0O2lmKEU9PT0iYm9yZGVyIil7cmV0dXJufW8uZWFjaChLLGZ1bmN0aW9uKCl7aWYoIUUpe0wtPXBhcnNlRmxvYXQoby5jdXJDU1MoSCwicGFkZGluZyIrdGhpcyx0cnVlKSl8fDB9aWYoRT09PSJtYXJnaW4iKXtMKz1wYXJzZUZsb2F0KG8uY3VyQ1NTKEgsIm1hcmdpbiIrdGhpcyx0cnVlKSl8fDB9ZWxzZXtMLT1wYXJzZUZsb2F0KG8uY3VyQ1NTKEgsImJvcmRlciIrdGhpcysiV2lkdGgiLHRydWUpKXx8MH19KX1pZihILm9mZnNldFdpZHRoIT09MCl7SSgpfWVsc2V7by5zd2FwKEgsRyxJKX1yZXR1cm4gTWF0aC5tYXgoMCxNYXRoLnJvdW5kKEwpKX1yZXR1cm4gby5jdXJDU1MoSCxGLEopfSxjdXJDU1M6ZnVuY3Rpb24oSSxGLEcpe3ZhciBMLEU9SS5zdHlsZTtpZihGPT0ib3BhY2l0eSImJiFvLnN1cHBvcnQub3BhY2l0eSl7TD1vLmF0dHIoRSwib3BhY2l0eSIpO3JldHVybiBMPT0iIj8iMSI6TH1pZihGLm1hdGNoKC9mbG9hdC9pKSl7Rj13fWlmKCFHJiZFJiZFW0ZdKXtMPUVbRl19ZWxzZXtpZihxLmdldENvbXB1dGVkU3R5bGUpe2lmKEYubWF0Y2goL2Zsb2F0L2kpKXtGPSJmbG9hdCJ9Rj1GLnJlcGxhY2UoLyhbQS1aXSkvZywiLSQxIikudG9Mb3dlckNhc2UoKTt2YXIgTT1xLmdldENvbXB1dGVkU3R5bGUoSSxudWxsKTtpZihNKXtMPU0uZ2V0UHJvcGVydHlWYWx1ZShGKX1pZihGPT0ib3BhY2l0eSImJkw9PSIiKXtMPSIxIn19ZWxzZXtpZihJLmN1cnJlbnRTdHlsZSl7dmFyIEo9Ri5yZXBsYWNlKC9cLShcdykvZyxmdW5jdGlvbihOLE8pe3JldHVybiBPLnRvVXBwZXJDYXNlKCl9KTtMPUkuY3VycmVudFN0eWxlW0ZdfHxJLmN1cnJlbnRTdHlsZVtKXTtpZighL15cZCsocHgpPyQvaS50ZXN0KEwpJiYvXlxkLy50ZXN0KEwpKXt2YXIgSD1FLmxlZnQsSz1JLnJ1bnRpbWVTdHlsZS5sZWZ0O0kucnVudGltZVN0eWxlLmxlZnQ9SS5jdXJyZW50U3R5bGUubGVmdDtFLmxlZnQ9THx8MDtMPUUucGl4ZWxMZWZ0KyJweCI7RS5sZWZ0PUg7SS5ydW50aW1lU3R5bGUubGVmdD1LfX19fXJldHVybiBMfSxjbGVhbjpmdW5jdGlvbihGLEssSSl7Sz1LfHxkb2N1bWVudDtpZih0eXBlb2YgSy5jcmVhdGVFbGVtZW50PT09InVuZGVmaW5lZCIpe0s9Sy5vd25lckRvY3VtZW50fHxLWzBdJiZLWzBdLm93bmVyRG9jdW1lbnR8fGRvY3VtZW50fWlmKCFJJiZGLmxlbmd0aD09PTEmJnR5cGVvZiBGWzBdPT09InN0cmluZyIpe3ZhciBIPS9ePChcdyspXHMqXC8/PiQvLmV4ZWMoRlswXSk7aWYoSCl7cmV0dXJuW0suY3JlYXRlRWxlbWVudChIWzFdKV19fXZhciBHPVtdLEU9W10sTD1LLmNyZWF0ZUVsZW1lbnQoImRpdiIpO28uZWFjaChGLGZ1bmN0aW9uKFAsUyl7aWYodHlwZW9mIFM9PT0ibnVtYmVyIil7Uys9IiJ9aWYoIVMpe3JldHVybn1pZih0eXBlb2YgUz09PSJzdHJpbmciKXtTPVMucmVwbGFjZSgvKDwoXHcrKVtePl0qPylcLz4vZyxmdW5jdGlvbihVLFYsVCl7cmV0dXJuIFQubWF0Y2goL14oYWJicnxicnxjb2x8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbXxocnxhcmVhfGVtYmVkKSQvaSk/VTpWKyI+PC8iK1QrIj4ifSk7dmFyIE89Uy5yZXBsYWNlKC9eXHMrLywiIikuc3Vic3RyaW5nKDAsMTApLnRvTG93ZXJDYXNlKCk7dmFyIFE9IU8uaW5kZXhPZigiPG9wdCIpJiZbMSwiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPiIsIjwvc2VsZWN0PiJdfHwhTy5pbmRleE9mKCI8bGVnIikmJlsxLCI8ZmllbGRzZXQ+IiwiPC9maWVsZHNldD4iXXx8Ty5tYXRjaCgvXjwodGhlYWR8dGJvZHl8dGZvb3R8Y29sZ3xjYXApLykmJlsxLCI8dGFibGU+IiwiPC90YWJsZT4iXXx8IU8uaW5kZXhPZigiPHRyIikmJlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXXx8KCFPLmluZGV4T2YoIjx0ZCIpfHwhTy5pbmRleE9mKCI8dGgiKSkmJlszLCI8dGFibGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJvZHk+PC90YWJsZT4iXXx8IU8uaW5kZXhPZigiPGNvbCIpJiZbMiwiPHRhYmxlPjx0Ym9keT48L3Rib2R5Pjxjb2xncm91cD4iLCI8L2NvbGdyb3VwPjwvdGFibGU+Il18fCFvLnN1cHBvcnQuaHRtbFNlcmlhbGl6ZSYmWzEsImRpdjxkaXY+IiwiPC9kaXY+Il18fFswLCIiLCIiXTtMLmlubmVySFRNTD1RWzFdK1MrUVsyXTt3aGlsZShRWzBdLS0pe0w9TC5sYXN0Q2hpbGR9aWYoIW8uc3VwcG9ydC50Ym9keSl7dmFyIFI9Lzx0Ym9keS9pLnRlc3QoUyksTj0hTy5pbmRleE9mKCI8dGFibGUiKSYmIVI/TC5maXJzdENoaWxkJiZMLmZpcnN0Q2hpbGQuY2hpbGROb2RlczpRWzFdPT0iPHRhYmxlPiImJiFSP0wuY2hpbGROb2RlczpbXTtmb3IodmFyIE09Ti5sZW5ndGgtMTtNPj0wOy0tTSl7aWYoby5ub2RlTmFtZShOW01dLCJ0Ym9keSIpJiYhTltNXS5jaGlsZE5vZGVzLmxlbmd0aCl7TltNXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKE5bTV0pfX19aWYoIW8uc3VwcG9ydC5sZWFkaW5nV2hpdGVzcGFjZSYmL15ccy8udGVzdChTKSl7TC5pbnNlcnRCZWZvcmUoSy5jcmVhdGVUZXh0Tm9kZShTLm1hdGNoKC9eXHMqLylbMF0pLEwuZmlyc3RDaGlsZCl9Uz1vLm1ha2VBcnJheShMLmNoaWxkTm9kZXMpfWlmKFMubm9kZVR5cGUpe0cucHVzaChTKX1lbHNle0c9by5tZXJnZShHLFMpfX0pO2lmKEkpe2Zvcih2YXIgSj0wO0dbSl07SisrKXtpZihvLm5vZGVOYW1lKEdbSl0sInNjcmlwdCIpJiYoIUdbSl0udHlwZXx8R1tKXS50eXBlLnRvTG93ZXJDYXNlKCk9PT0idGV4dC9qYXZhc2NyaXB0Iikpe0UucHVzaChHW0pdLnBhcmVudE5vZGU/R1tKXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKEdbSl0pOkdbSl0pfWVsc2V7aWYoR1tKXS5ub2RlVHlwZT09PTEpe0cuc3BsaWNlLmFwcGx5KEcsW0orMSwwXS5jb25jYXQoby5tYWtlQXJyYXkoR1tKXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IikpKSl9SS5hcHBlbmRDaGlsZChHW0pdKX19cmV0dXJuIEV9cmV0dXJuIEd9LGF0dHI6ZnVuY3Rpb24oSixHLEspe2lmKCFKfHxKLm5vZGVUeXBlPT0zfHxKLm5vZGVUeXBlPT04KXtyZXR1cm4gZ312YXIgSD0hby5pc1hNTERvYyhKKSxMPUshPT1nO0c9SCYmby5wcm9wc1tHXXx8RztpZihKLnRhZ05hbWUpe3ZhciBGPS9ocmVmfHNyY3xzdHlsZS8udGVzdChHKTtpZihHPT0ic2VsZWN0ZWQiJiZKLnBhcmVudE5vZGUpe0oucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4fWlmKEcgaW4gSiYmSCYmIUYpe2lmKEwpe2lmKEc9PSJ0eXBlIiYmby5ub2RlTmFtZShKLCJpbnB1dCIpJiZKLnBhcmVudE5vZGUpe3Rocm93InR5cGUgcHJvcGVydHkgY2FuJ3QgYmUgY2hhbmdlZCJ9SltHXT1LfWlmKG8ubm9kZU5hbWUoSiwiZm9ybSIpJiZKLmdldEF0dHJpYnV0ZU5vZGUoRykpe3JldHVybiBKLmdldEF0dHJpYnV0ZU5vZGUoRykubm9kZVZhbHVlfWlmKEc9PSJ0YWJJbmRleCIpe3ZhciBJPUouZ2V0QXR0cmlidXRlTm9kZSgidGFiSW5kZXgiKTtyZXR1cm4gSSYmSS5zcGVjaWZpZWQ/SS52YWx1ZTpKLm5vZGVOYW1lLm1hdGNoKC8oYnV0dG9ufGlucHV0fG9iamVjdHxzZWxlY3R8dGV4dGFyZWEpL2kpPzA6Si5ub2RlTmFtZS5tYXRjaCgvXihhfGFyZWEpJC9pKSYmSi5ocmVmPzA6Z31yZXR1cm4gSltHXX1pZighby5zdXBwb3J0LnN0eWxlJiZIJiZHPT0ic3R5bGUiKXtyZXR1cm4gby5hdHRyKEouc3R5bGUsImNzc1RleHQiLEspfWlmKEwpe0ouc2V0QXR0cmlidXRlKEcsIiIrSyl9dmFyIEU9IW8uc3VwcG9ydC5ocmVmTm9ybWFsaXplZCYmSCYmRj9KLmdldEF0dHJpYnV0ZShHLDIpOkouZ2V0QXR0cmlidXRlKEcpO3JldHVybiBFPT09bnVsbD9nOkV9aWYoIW8uc3VwcG9ydC5vcGFjaXR5JiZHPT0ib3BhY2l0eSIpe2lmKEwpe0ouem9vbT0xO0ouZmlsdGVyPShKLmZpbHRlcnx8IiIpLnJlcGxhY2UoL2FscGhhXChbXildKlwpLywiIikrKHBhcnNlSW50KEspKyIiPT0iTmFOIj8iIjoiYWxwaGEob3BhY2l0eT0iK0sqMTAwKyIpIil9cmV0dXJuIEouZmlsdGVyJiZKLmZpbHRlci5pbmRleE9mKCJvcGFjaXR5PSIpPj0wPyhwYXJzZUZsb2F0KEouZmlsdGVyLm1hdGNoKC9vcGFjaXR5PShbXildKikvKVsxXSkvMTAwKSsiIjoiIn1HPUcucmVwbGFjZSgvLShbYS16XSkvaWcsZnVuY3Rpb24oTSxOKXtyZXR1cm4gTi50b1VwcGVyQ2FzZSgpfSk7aWYoTCl7SltHXT1LfXJldHVybiBKW0ddfSx0cmltOmZ1bmN0aW9uKEUpe3JldHVybihFfHwiIikucmVwbGFjZSgvXlxzK3xccyskL2csIiIpfSxtYWtlQXJyYXk6ZnVuY3Rpb24oRyl7dmFyIEU9W107aWYoRyE9bnVsbCl7dmFyIEY9Ry5sZW5ndGg7aWYoRj09bnVsbHx8dHlwZW9mIEc9PT0ic3RyaW5nInx8by5pc0Z1bmN0aW9uKEcpfHxHLnNldEludGVydmFsKXtFWzBdPUd9ZWxzZXt3aGlsZShGKXtFWy0tRl09R1tGXX19fXJldHVybiBFfSxpbkFycmF5OmZ1bmN0aW9uKEcsSCl7Zm9yKHZhciBFPTAsRj1ILmxlbmd0aDtFPEY7RSsrKXtpZihIW0VdPT09Ryl7cmV0dXJuIEV9fXJldHVybiAtMX0sbWVyZ2U6ZnVuY3Rpb24oSCxFKXt2YXIgRj0wLEcsST1ILmxlbmd0aDtpZighby5zdXBwb3J0LmdldEFsbCl7d2hpbGUoKEc9RVtGKytdKSE9bnVsbCl7aWYoRy5ub2RlVHlwZSE9OCl7SFtJKytdPUd9fX1lbHNle3doaWxlKChHPUVbRisrXSkhPW51bGwpe0hbSSsrXT1HfX1yZXR1cm4gSH0sdW5pcXVlOmZ1bmN0aW9uKEspe3ZhciBGPVtdLEU9e307dHJ5e2Zvcih2YXIgRz0wLEg9Sy5sZW5ndGg7RzxIO0crKyl7dmFyIEo9by5kYXRhKEtbR10pO2lmKCFFW0pdKXtFW0pdPXRydWU7Ri5wdXNoKEtbR10pfX19Y2F0Y2goSSl7Rj1LfXJldHVybiBGfSxncmVwOmZ1bmN0aW9uKEYsSixFKXt2YXIgRz1bXTtmb3IodmFyIEg9MCxJPUYubGVuZ3RoO0g8STtIKyspe2lmKCFFIT0hSihGW0hdLEgpKXtHLnB1c2goRltIXSl9fXJldHVybiBHfSxtYXA6ZnVuY3Rpb24oRSxKKXt2YXIgRj1bXTtmb3IodmFyIEc9MCxIPUUubGVuZ3RoO0c8SDtHKyspe3ZhciBJPUooRVtHXSxHKTtpZihJIT1udWxsKXtGW0YubGVuZ3RoXT1JfX1yZXR1cm4gRi5jb25jYXQuYXBwbHkoW10sRil9fSk7dmFyIEM9bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpO28uYnJvd3Nlcj17dmVyc2lvbjooQy5tYXRjaCgvLisoPzpydnxpdHxyYXxpZSlbXC86IF0oW1xkLl0rKS8pfHxbMCwiMCJdKVsxXSxzYWZhcmk6L3dlYmtpdC8udGVzdChDKSxvcGVyYTovb3BlcmEvLnRlc3QoQyksbXNpZTovbXNpZS8udGVzdChDKSYmIS9vcGVyYS8udGVzdChDKSxtb3ppbGxhOi9tb3ppbGxhLy50ZXN0KEMpJiYhLyhjb21wYXRpYmxlfHdlYmtpdCkvLnRlc3QoQyl9O28uZWFjaCh7cGFyZW50OmZ1bmN0aW9uKEUpe3JldHVybiBFLnBhcmVudE5vZGV9LHBhcmVudHM6ZnVuY3Rpb24oRSl7cmV0dXJuIG8uZGlyKEUsInBhcmVudE5vZGUiKX0sbmV4dDpmdW5jdGlvbihFKXtyZXR1cm4gby5udGgoRSwyLCJuZXh0U2libGluZyIpfSxwcmV2OmZ1bmN0aW9uKEUpe3JldHVybiBvLm50aChFLDIsInByZXZpb3VzU2libGluZyIpfSxuZXh0QWxsOmZ1bmN0aW9uKEUpe3JldHVybiBvLmRpcihFLCJuZXh0U2libGluZyIpfSxwcmV2QWxsOmZ1bmN0aW9uKEUpe3JldHVybiBvLmRpcihFLCJwcmV2aW91c1NpYmxpbmciKX0sc2libGluZ3M6ZnVuY3Rpb24oRSl7cmV0dXJuIG8uc2libGluZyhFLnBhcmVudE5vZGUuZmlyc3RDaGlsZCxFKX0sY2hpbGRyZW46ZnVuY3Rpb24oRSl7cmV0dXJuIG8uc2libGluZyhFLmZpcnN0Q2hpbGQpfSxjb250ZW50czpmdW5jdGlvbihFKXtyZXR1cm4gby5ub2RlTmFtZShFLCJpZnJhbWUiKT9FLmNvbnRlbnREb2N1bWVudHx8RS5jb250ZW50V2luZG93LmRvY3VtZW50Om8ubWFrZUFycmF5KEUuY2hpbGROb2Rlcyl9fSxmdW5jdGlvbihFLEYpe28uZm5bRV09ZnVuY3Rpb24oRyl7dmFyIEg9by5tYXAodGhpcyxGKTtpZihHJiZ0eXBlb2YgRz09InN0cmluZyIpe0g9by5tdWx0aUZpbHRlcihHLEgpfXJldHVybiB0aGlzLnB1c2hTdGFjayhvLnVuaXF1ZShIKSxFLEcpfX0pO28uZWFjaCh7YXBwZW5kVG86ImFwcGVuZCIscHJlcGVuZFRvOiJwcmVwZW5kIixpbnNlcnRCZWZvcmU6ImJlZm9yZSIsaW5zZXJ0QWZ0ZXI6ImFmdGVyIixyZXBsYWNlQWxsOiJyZXBsYWNlV2l0aCJ9LGZ1bmN0aW9uKEUsRil7by5mbltFXT1mdW5jdGlvbihHKXt2YXIgSj1bXSxMPW8oRyk7Zm9yKHZhciBLPTAsSD1MLmxlbmd0aDtLPEg7SysrKXt2YXIgST0oSz4wP3RoaXMuY2xvbmUodHJ1ZSk6dGhpcykuZ2V0KCk7by5mbltGXS5hcHBseShvKExbS10pLEkpO0o9Si5jb25jYXQoSSl9cmV0dXJuIHRoaXMucHVzaFN0YWNrKEosRSxHKX19KTtvLmVhY2goe3JlbW92ZUF0dHI6ZnVuY3Rpb24oRSl7by5hdHRyKHRoaXMsRSwiIik7aWYodGhpcy5ub2RlVHlwZT09MSl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUoRSl9fSxhZGRDbGFzczpmdW5jdGlvbihFKXtvLmNsYXNzTmFtZS5hZGQodGhpcyxFKX0scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24oRSl7by5jbGFzc05hbWUucmVtb3ZlKHRoaXMsRSl9LHRvZ2dsZUNsYXNzOmZ1bmN0aW9uKEYsRSl7aWYodHlwZW9mIEUhPT0iYm9vbGVhbiIpe0U9IW8uY2xhc3NOYW1lLmhhcyh0aGlzLEYpfW8uY2xhc3NOYW1lW0U/ImFkZCI6InJlbW92ZSJdKHRoaXMsRil9LHJlbW92ZTpmdW5jdGlvbihFKXtpZighRXx8by5maWx0ZXIoRSxbdGhpc10pLmxlbmd0aCl7bygiKiIsdGhpcykuYWRkKFt0aGlzXSkuZWFjaChmdW5jdGlvbigpe28uZXZlbnQucmVtb3ZlKHRoaXMpO28ucmVtb3ZlRGF0YSh0aGlzKX0pO2lmKHRoaXMucGFyZW50Tm9kZSl7dGhpcy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMpfX19LGVtcHR5OmZ1bmN0aW9uKCl7byh0aGlzKS5jaGlsZHJlbigpLnJlbW92ZSgpO3doaWxlKHRoaXMuZmlyc3RDaGlsZCl7dGhpcy5yZW1vdmVDaGlsZCh0aGlzLmZpcnN0Q2hpbGQpfX19LGZ1bmN0aW9uKEUsRil7by5mbltFXT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goRixhcmd1bWVudHMpfX0pO2Z1bmN0aW9uIGooRSxGKXtyZXR1cm4gRVswXSYmcGFyc2VJbnQoby5jdXJDU1MoRVswXSxGLHRydWUpLDEwKXx8MH12YXIgaD0ialF1ZXJ5IitlKCksdj0wLEE9e307by5leHRlbmQoe2NhY2hlOnt9LGRhdGE6ZnVuY3Rpb24oRixFLEcpe0Y9Rj09bD9BOkY7dmFyIEg9RltoXTtpZighSCl7SD1GW2hdPSsrdn1pZihFJiYhby5jYWNoZVtIXSl7by5jYWNoZVtIXT17fX1pZihHIT09Zyl7by5jYWNoZVtIXVtFXT1HfXJldHVybiBFP28uY2FjaGVbSF1bRV06SH0scmVtb3ZlRGF0YTpmdW5jdGlvbihGLEUpe0Y9Rj09bD9BOkY7dmFyIEg9RltoXTtpZihFKXtpZihvLmNhY2hlW0hdKXtkZWxldGUgby5jYWNoZVtIXVtFXTtFPSIiO2ZvcihFIGluIG8uY2FjaGVbSF0pe2JyZWFrfWlmKCFFKXtvLnJlbW92ZURhdGEoRil9fX1lbHNle3RyeXtkZWxldGUgRltoXX1jYXRjaChHKXtpZihGLnJlbW92ZUF0dHJpYnV0ZSl7Ri5yZW1vdmVBdHRyaWJ1dGUoaCl9fWRlbGV0ZSBvLmNhY2hlW0hdfX0scXVldWU6ZnVuY3Rpb24oRixFLEgpe2lmKEYpe0U9KEV8fCJmeCIpKyJxdWV1ZSI7dmFyIEc9by5kYXRhKEYsRSk7aWYoIUd8fG8uaXNBcnJheShIKSl7Rz1vLmRhdGEoRixFLG8ubWFrZUFycmF5KEgpKX1lbHNle2lmKEgpe0cucHVzaChIKX19fXJldHVybiBHfSxkZXF1ZXVlOmZ1bmN0aW9uKEgsRyl7dmFyIEU9by5xdWV1ZShILEcpLEY9RS5zaGlmdCgpO2lmKCFHfHxHPT09ImZ4Iil7Rj1FWzBdfWlmKEYhPT1nKXtGLmNhbGwoSCl9fX0pO28uZm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKEUsRyl7dmFyIEg9RS5zcGxpdCgiLiIpO0hbMV09SFsxXT8iLiIrSFsxXToiIjtpZihHPT09Zyl7dmFyIEY9dGhpcy50cmlnZ2VySGFuZGxlcigiZ2V0RGF0YSIrSFsxXSsiISIsW0hbMF1dKTtpZihGPT09ZyYmdGhpcy5sZW5ndGgpe0Y9by5kYXRhKHRoaXNbMF0sRSl9cmV0dXJuIEY9PT1nJiZIWzFdP3RoaXMuZGF0YShIWzBdKTpGfWVsc2V7cmV0dXJuIHRoaXMudHJpZ2dlcigic2V0RGF0YSIrSFsxXSsiISIsW0hbMF0sR10pLmVhY2goZnVuY3Rpb24oKXtvLmRhdGEodGhpcyxFLEcpfSl9fSxyZW1vdmVEYXRhOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtvLnJlbW92ZURhdGEodGhpcyxFKX0pfSxxdWV1ZTpmdW5jdGlvbihFLEYpe2lmKHR5cGVvZiBFIT09InN0cmluZyIpe0Y9RTtFPSJmeCJ9aWYoRj09PWcpe3JldHVybiBvLnF1ZXVlKHRoaXNbMF0sRSl9cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBHPW8ucXVldWUodGhpcyxFLEYpO2lmKEU9PSJmeCImJkcubGVuZ3RoPT0xKXtHWzBdLmNhbGwodGhpcyl9fSl9LGRlcXVldWU6ZnVuY3Rpb24oRSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe28uZGVxdWV1ZSh0aGlzLEUpfSl9fSk7DQovKg0KICogU2l6emxlIENTUyBTZWxlY3RvciBFbmdpbmUgLSB2MC45LjMNCiAqICBDb3B5cmlnaHQgMjAwOSwgVGhlIERvam8gRm91bmRhdGlvbg0KICogIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQsIEJTRCwgYW5kIEdQTCBMaWNlbnNlcy4NCiAqICBNb3JlIGluZm9ybWF0aW9uOiBodHRwOi8vc2l6emxlanMuY29tLw0KICovDQooZnVuY3Rpb24oKXt2YXIgUj0vKCg/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/SzpLKyJweCIpfX0pfSkoKTsNCg0KLyoNCiAqIGpRdWVyeSB2YWxpZGF0aW9uIHBsdWctaW4gMS41LjENCiAqDQogKiBodHRwOi8vYmFzc2lzdGFuY2UuZGUvanF1ZXJ5LXBsdWdpbnMvanF1ZXJ5LXBsdWdpbi12YWxpZGF0aW9uLw0KICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9QbHVnaW5zL1ZhbGlkYXRpb24NCiAqDQogKiBDb3B5cmlnaHQgKGMpIDIwMDYgLSAyMDA4IEr2cm4gWmFlZmZlcmVyDQogKg0KICogJElkOiBqcXVlcnkudmFsaWRhdGUuanMgNjA5NiAyMDA5LTAxLTEyIDE0OjEyOjA0WiBqb2Vybi56YWVmZmVyZXIgJA0KICoNCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzOg0KICogICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocA0KICogICBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLmh0bWwNCiAqLw0KKGZ1bmN0aW9uKCQpeyQuZXh0ZW5kKCQuZm4se3ZhbGlkYXRlOmZ1bmN0aW9uKG9wdGlvbnMpe2lmKCF0aGlzLmxlbmd0aCl7b3B0aW9ucyYmb3B0aW9ucy5kZWJ1ZyYmd2luZG93LmNvbnNvbGUmJmNvbnNvbGUud2Fybigibm90aGluZyBzZWxlY3RlZCwgY2FuJ3QgdmFsaWRhdGUsIHJldHVybmluZyBub3RoaW5nIik7cmV0dXJuO312YXIgdmFsaWRhdG9yPSQuZGF0YSh0aGlzWzBdLCd2YWxpZGF0b3InKTtpZih2YWxpZGF0b3Ipe3JldHVybiB2YWxpZGF0b3I7fXZhbGlkYXRvcj1uZXcgJC52YWxpZGF0b3Iob3B0aW9ucyx0aGlzWzBdKTskLmRhdGEodGhpc1swXSwndmFsaWRhdG9yJyx2YWxpZGF0b3IpO2lmKHZhbGlkYXRvci5zZXR0aW5ncy5vbnN1Ym1pdCl7dGhpcy5maW5kKCJpbnB1dCwgYnV0dG9uIikuZmlsdGVyKCIuY2FuY2VsIikuY2xpY2soZnVuY3Rpb24oKXt2YWxpZGF0b3IuY2FuY2VsU3VibWl0PXRydWU7fSk7dGhpcy5zdWJtaXQoZnVuY3Rpb24oZXZlbnQpe2lmKHZhbGlkYXRvci5zZXR0aW5ncy5kZWJ1ZylldmVudC5wcmV2ZW50RGVmYXVsdCgpO2Z1bmN0aW9uIGhhbmRsZSgpe2lmKHZhbGlkYXRvci5zZXR0aW5ncy5zdWJtaXRIYW5kbGVyKXt2YWxpZGF0b3Iuc2V0dGluZ3Muc3VibWl0SGFuZGxlci5jYWxsKHZhbGlkYXRvcix2YWxpZGF0b3IuY3VycmVudEZvcm0pO3JldHVybiBmYWxzZTt9cmV0dXJuIHRydWU7fWlmKHZhbGlkYXRvci5jYW5jZWxTdWJtaXQpe3ZhbGlkYXRvci5jYW5jZWxTdWJtaXQ9ZmFsc2U7cmV0dXJuIGhhbmRsZSgpO31pZih2YWxpZGF0b3IuZm9ybSgpKXtpZih2YWxpZGF0b3IucGVuZGluZ1JlcXVlc3Qpe3ZhbGlkYXRvci5mb3JtU3VibWl0dGVkPXRydWU7cmV0dXJuIGZhbHNlO31yZXR1cm4gaGFuZGxlKCk7fWVsc2V7dmFsaWRhdG9yLmZvY3VzSW52YWxpZCgpO3JldHVybiBmYWxzZTt9fSk7fXJldHVybiB2YWxpZGF0b3I7fSx2YWxpZDpmdW5jdGlvbigpe2lmKCQodGhpc1swXSkuaXMoJ2Zvcm0nKSl7cmV0dXJuIHRoaXMudmFsaWRhdGUoKS5mb3JtKCk7fWVsc2V7dmFyIHZhbGlkPWZhbHNlO3ZhciB2YWxpZGF0b3I9JCh0aGlzWzBdLmZvcm0pLnZhbGlkYXRlKCk7dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFsaWR8PXZhbGlkYXRvci5lbGVtZW50KHRoaXMpO30pO3JldHVybiB2YWxpZDt9fSxyZW1vdmVBdHRyczpmdW5jdGlvbihhdHRyaWJ1dGVzKXt2YXIgcmVzdWx0PXt9LCRlbGVtZW50PXRoaXM7JC5lYWNoKGF0dHJpYnV0ZXMuc3BsaXQoL1xzLyksZnVuY3Rpb24oaW5kZXgsdmFsdWUpe3Jlc3VsdFt2YWx1ZV09JGVsZW1lbnQuYXR0cih2YWx1ZSk7JGVsZW1lbnQucmVtb3ZlQXR0cih2YWx1ZSk7fSk7cmV0dXJuIHJlc3VsdDt9LHJ1bGVzOmZ1bmN0aW9uKGNvbW1hbmQsYXJndW1lbnQpe3ZhciBlbGVtZW50PXRoaXNbMF07aWYoY29tbWFuZCl7dmFyIHNldHRpbmdzPSQuZGF0YShlbGVtZW50LmZvcm0sJ3ZhbGlkYXRvcicpLnNldHRpbmdzO3ZhciBzdGF0aWNSdWxlcz1zZXR0aW5ncy5ydWxlczt2YXIgZXhpc3RpbmdSdWxlcz0kLnZhbGlkYXRvci5zdGF0aWNSdWxlcyhlbGVtZW50KTtzd2l0Y2goY29tbWFuZCl7Y2FzZSJhZGQiOiQuZXh0ZW5kKGV4aXN0aW5nUnVsZXMsJC52YWxpZGF0b3Iubm9ybWFsaXplUnVsZShhcmd1bWVudCkpO3N0YXRpY1J1bGVzW2VsZW1lbnQubmFtZV09ZXhpc3RpbmdSdWxlcztpZihhcmd1bWVudC5tZXNzYWdlcylzZXR0aW5ncy5tZXNzYWdlc1tlbGVtZW50Lm5hbWVdPSQuZXh0ZW5kKHNldHRpbmdzLm1lc3NhZ2VzW2VsZW1lbnQubmFtZV0sYXJndW1lbnQubWVzc2FnZXMpO2JyZWFrO2Nhc2UicmVtb3ZlIjppZighYXJndW1lbnQpe2RlbGV0ZSBzdGF0aWNSdWxlc1tlbGVtZW50Lm5hbWVdO3JldHVybiBleGlzdGluZ1J1bGVzO312YXIgZmlsdGVyZWQ9e307JC5lYWNoKGFyZ3VtZW50LnNwbGl0KC9ccy8pLGZ1bmN0aW9uKGluZGV4LG1ldGhvZCl7ZmlsdGVyZWRbbWV0aG9kXT1leGlzdGluZ1J1bGVzW21ldGhvZF07ZGVsZXRlIGV4aXN0aW5nUnVsZXNbbWV0aG9kXTt9KTtyZXR1cm4gZmlsdGVyZWQ7fX12YXIgZGF0YT0kLnZhbGlkYXRvci5ub3JtYWxpemVSdWxlcygkLmV4dGVuZCh7fSwkLnZhbGlkYXRvci5tZXRhZGF0YVJ1bGVzKGVsZW1lbnQpLCQudmFsaWRhdG9yLmNsYXNzUnVsZXMoZWxlbWVudCksJC52YWxpZGF0b3IuYXR0cmlidXRlUnVsZXMoZWxlbWVudCksJC52YWxpZGF0b3Iuc3RhdGljUnVsZXMoZWxlbWVudCkpLGVsZW1lbnQpO2lmKGRhdGEucmVxdWlyZWQpe3ZhciBwYXJhbT1kYXRhLnJlcXVpcmVkO2RlbGV0ZSBkYXRhLnJlcXVpcmVkO2RhdGE9JC5leHRlbmQoe3JlcXVpcmVkOnBhcmFtfSxkYXRhKTt9cmV0dXJuIGRhdGE7fX0pOyQuZXh0ZW5kKCQuZXhwclsiOiJdLHtibGFuazpmdW5jdGlvbihhKXtyZXR1cm4hJC50cmltKGEudmFsdWUpO30sZmlsbGVkOmZ1bmN0aW9uKGEpe3JldHVybiEhJC50cmltKGEudmFsdWUpO30sdW5jaGVja2VkOmZ1bmN0aW9uKGEpe3JldHVybiFhLmNoZWNrZWQ7fX0pOyQuZm9ybWF0PWZ1bmN0aW9uKHNvdXJjZSxwYXJhbXMpe2lmKGFyZ3VtZW50cy5sZW5ndGg9PTEpcmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGFyZ3M9JC5tYWtlQXJyYXkoYXJndW1lbnRzKTthcmdzLnVuc2hpZnQoc291cmNlKTtyZXR1cm4gJC5mb3JtYXQuYXBwbHkodGhpcyxhcmdzKTt9O2lmKGFyZ3VtZW50cy5sZW5ndGg+MiYmcGFyYW1zLmNvbnN0cnVjdG9yIT1BcnJheSl7cGFyYW1zPSQubWFrZUFycmF5KGFyZ3VtZW50cykuc2xpY2UoMSk7fWlmKHBhcmFtcy5jb25zdHJ1Y3RvciE9QXJyYXkpe3BhcmFtcz1bcGFyYW1zXTt9JC5lYWNoKHBhcmFtcyxmdW5jdGlvbihpLG4pe3NvdXJjZT1zb3VyY2UucmVwbGFjZShuZXcgUmVnRXhwKCJcXHsiK2krIlxcfSIsImciKSxuKTt9KTtyZXR1cm4gc291cmNlO307JC52YWxpZGF0b3I9ZnVuY3Rpb24ob3B0aW9ucyxmb3JtKXt0aGlzLnNldHRpbmdzPSQuZXh0ZW5kKHt9LCQudmFsaWRhdG9yLmRlZmF1bHRzLG9wdGlvbnMpO3RoaXMuY3VycmVudEZvcm09Zm9ybTt0aGlzLmluaXQoKTt9OyQuZXh0ZW5kKCQudmFsaWRhdG9yLHtkZWZhdWx0czp7bWVzc2FnZXM6e30sZ3JvdXBzOnt9LHJ1bGVzOnt9LGVycm9yQ2xhc3M6ImVycm9yIixlcnJvckVsZW1lbnQ6ImxhYmVsIixmb2N1c0ludmFsaWQ6dHJ1ZSxlcnJvckNvbnRhaW5lcjokKFtdKSxlcnJvckxhYmVsQ29udGFpbmVyOiQoW10pLG9uc3VibWl0OnRydWUsaWdub3JlOltdLGlnbm9yZVRpdGxlOmZhbHNlLG9uZm9jdXNpbjpmdW5jdGlvbihlbGVtZW50KXt0aGlzLmxhc3RBY3RpdmU9ZWxlbWVudDtpZih0aGlzLnNldHRpbmdzLmZvY3VzQ2xlYW51cCYmIXRoaXMuYmxvY2tGb2N1c0NsZWFudXApe3RoaXMuc2V0dGluZ3MudW5oaWdobGlnaHQmJnRoaXMuc2V0dGluZ3MudW5oaWdobGlnaHQuY2FsbCh0aGlzLGVsZW1lbnQsdGhpcy5zZXR0aW5ncy5lcnJvckNsYXNzKTt0aGlzLmVycm9yc0ZvcihlbGVtZW50KS5oaWRlKCk7fX0sb25mb2N1c291dDpmdW5jdGlvbihlbGVtZW50KXtpZighdGhpcy5jaGVja2FibGUoZWxlbWVudCkmJihlbGVtZW50Lm5hbWUgaW4gdGhpcy5zdWJtaXR0ZWR8fCF0aGlzLm9wdGlvbmFsKGVsZW1lbnQpKSl7dGhpcy5lbGVtZW50KGVsZW1lbnQpO319LG9ua2V5dXA6ZnVuY3Rpb24oZWxlbWVudCl7aWYoZWxlbWVudC5uYW1lIGluIHRoaXMuc3VibWl0dGVkfHxlbGVtZW50PT10aGlzLmxhc3RFbGVtZW50KXt0aGlzLmVsZW1lbnQoZWxlbWVudCk7fX0sb25jbGljazpmdW5jdGlvbihlbGVtZW50KXtpZihlbGVtZW50Lm5hbWUgaW4gdGhpcy5zdWJtaXR0ZWQpdGhpcy5lbGVtZW50KGVsZW1lbnQpO30saGlnaGxpZ2h0OmZ1bmN0aW9uKGVsZW1lbnQsZXJyb3JDbGFzcyl7JChlbGVtZW50KS5hZGRDbGFzcyhlcnJvckNsYXNzKTt9LHVuaGlnaGxpZ2h0OmZ1bmN0aW9uKGVsZW1lbnQsZXJyb3JDbGFzcyl7JChlbGVtZW50KS5yZW1vdmVDbGFzcyhlcnJvckNsYXNzKTt9fSxzZXREZWZhdWx0czpmdW5jdGlvbihzZXR0aW5ncyl7JC5leHRlbmQoJC52YWxpZGF0b3IuZGVmYXVsdHMsc2V0dGluZ3MpO30sbWVzc2FnZXM6e3JlcXVpcmVkOiJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIscmVtb3RlOiJQbGVhc2UgZml4IHRoaXMgZmllbGQuIixlbWFpbDoiUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcy4iLHVybDoiUGxlYXNlIGVudGVyIGEgdmFsaWQgVVJMLiIsZGF0ZToiUGxlYXNlIGVudGVyIGEgdmFsaWQgZGF0ZS4iLGRhdGVJU086IlBsZWFzZSBlbnRlciBhIHZhbGlkIGRhdGUgKElTTykuIixkYXRlREU6IkJpdHRlIGdlYmVuIFNpZSBlaW4gZ/xsdGlnZXMgRGF0dW0gZWluLiIsbnVtYmVyOiJQbGVhc2UgZW50ZXIgYSB2YWxpZCBudW1iZXIuIixudW1iZXJERToiQml0dGUgZ2ViZW4gU2llIGVpbmUgTnVtbWVyIGVpbi4iLGRpZ2l0czoiUGxlYXNlIGVudGVyIG9ubHkgZGlnaXRzIixjcmVkaXRjYXJkOiJQbGVhc2UgZW50ZXIgYSB2YWxpZCBjcmVkaXQgY2FyZCBudW1iZXIuIixlcXVhbFRvOiJQbGVhc2UgZW50ZXIgdGhlIHNhbWUgdmFsdWUgYWdhaW4uIixhY2NlcHQ6IlBsZWFzZSBlbnRlciBhIHZhbHVlIHdpdGggYSB2YWxpZCBleHRlbnNpb24uIixtYXhsZW5ndGg6JC5mb3JtYXQoIlBsZWFzZSBlbnRlciBubyBtb3JlIHRoYW4gezB9IGNoYXJhY3RlcnMuIiksbWlubGVuZ3RoOiQuZm9ybWF0KCJQbGVhc2UgZW50ZXIgYXQgbGVhc3QgezB9IGNoYXJhY3RlcnMuIikscmFuZ2VsZW5ndGg6JC5mb3JtYXQoIlBsZWFzZSBlbnRlciBhIHZhbHVlIGJldHdlZW4gezB9IGFuZCB7MX0gY2hhcmFjdGVycyBsb25nLiIpLHJhbmdlOiQuZm9ybWF0KCJQbGVhc2UgZW50ZXIgYSB2YWx1ZSBiZXR3ZWVuIHswfSBhbmQgezF9LiIpLG1heDokLmZvcm1hdCgiUGxlYXNlIGVudGVyIGEgdmFsdWUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHswfS4iKSxtaW46JC5mb3JtYXQoIlBsZWFzZSBlbnRlciBhIHZhbHVlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB7MH0uIil9LGF1dG9DcmVhdGVSYW5nZXM6ZmFsc2UscHJvdG90eXBlOntpbml0OmZ1bmN0aW9uKCl7dGhpcy5sYWJlbENvbnRhaW5lcj0kKHRoaXMuc2V0dGluZ3MuZXJyb3JMYWJlbENvbnRhaW5lcik7dGhpcy5lcnJvckNvbnRleHQ9dGhpcy5sYWJlbENvbnRhaW5lci5sZW5ndGgmJnRoaXMubGFiZWxDb250YWluZXJ8fCQodGhpcy5jdXJyZW50Rm9ybSk7dGhpcy5jb250YWluZXJzPSQodGhpcy5zZXR0aW5ncy5lcnJvckNvbnRhaW5lcikuYWRkKHRoaXMuc2V0dGluZ3MuZXJyb3JMYWJlbENvbnRhaW5lcik7dGhpcy5zdWJtaXR0ZWQ9e307dGhpcy52YWx1ZUNhY2hlPXt9O3RoaXMucGVuZGluZ1JlcXVlc3Q9MDt0aGlzLnBlbmRpbmc9e307dGhpcy5pbnZhbGlkPXt9O3RoaXMucmVzZXQoKTt2YXIgZ3JvdXBzPSh0aGlzLmdyb3Vwcz17fSk7JC5lYWNoKHRoaXMuc2V0dGluZ3MuZ3JvdXBzLGZ1bmN0aW9uKGtleSx2YWx1ZSl7JC5lYWNoKHZhbHVlLnNwbGl0KC9ccy8pLGZ1bmN0aW9uKGluZGV4LG5hbWUpe2dyb3Vwc1tuYW1lXT1rZXk7fSk7fSk7dmFyIHJ1bGVzPXRoaXMuc2V0dGluZ3MucnVsZXM7JC5lYWNoKHJ1bGVzLGZ1bmN0aW9uKGtleSx2YWx1ZSl7cnVsZXNba2V5XT0kLnZhbGlkYXRvci5ub3JtYWxpemVSdWxlKHZhbHVlKTt9KTtmdW5jdGlvbiBkZWxlZ2F0ZShldmVudCl7dmFyIHZhbGlkYXRvcj0kLmRhdGEodGhpc1swXS5mb3JtLCJ2YWxpZGF0b3IiKTt2YWxpZGF0b3Iuc2V0dGluZ3NbIm9uIitldmVudC50eXBlXSYmdmFsaWRhdG9yLnNldHRpbmdzWyJvbiIrZXZlbnQudHlwZV0uY2FsbCh2YWxpZGF0b3IsdGhpc1swXSk7fSQodGhpcy5jdXJyZW50Rm9ybSkuZGVsZWdhdGUoImZvY3VzaW4gZm9jdXNvdXQga2V5dXAiLCI6dGV4dCwgOnBhc3N3b3JkLCA6ZmlsZSwgc2VsZWN0LCB0ZXh0YXJlYSIsZGVsZWdhdGUpLmRlbGVnYXRlKCJjbGljayIsIjpyYWRpbywgOmNoZWNrYm94IixkZWxlZ2F0ZSk7aWYodGhpcy5zZXR0aW5ncy5pbnZhbGlkSGFuZGxlcikkKHRoaXMuY3VycmVudEZvcm0pLmJpbmQoImludmFsaWQtZm9ybS52YWxpZGF0ZSIsdGhpcy5zZXR0aW5ncy5pbnZhbGlkSGFuZGxlcik7fSxmb3JtOmZ1bmN0aW9uKCl7dGhpcy5jaGVja0Zvcm0oKTskLmV4dGVuZCh0aGlzLnN1Ym1pdHRlZCx0aGlzLmVycm9yTWFwKTt0aGlzLmludmFsaWQ9JC5leHRlbmQoe30sdGhpcy5lcnJvck1hcCk7aWYoIXRoaXMudmFsaWQoKSkkKHRoaXMuY3VycmVudEZvcm0pLnRyaWdnZXJIYW5kbGVyKCJpbnZhbGlkLWZvcm0iLFt0aGlzXSk7dGhpcy5zaG93RXJyb3JzKCk7cmV0dXJuIHRoaXMudmFsaWQoKTt9LGNoZWNrRm9ybTpmdW5jdGlvbigpe3RoaXMucHJlcGFyZUZvcm0oKTtmb3IodmFyIGk9MCxlbGVtZW50cz0odGhpcy5jdXJyZW50RWxlbWVudHM9dGhpcy5lbGVtZW50cygpKTtlbGVtZW50c1tpXTtpKyspe3RoaXMuY2hlY2soZWxlbWVudHNbaV0pO31yZXR1cm4gdGhpcy52YWxpZCgpO30sZWxlbWVudDpmdW5jdGlvbihlbGVtZW50KXtlbGVtZW50PXRoaXMuY2xlYW4oZWxlbWVudCk7dGhpcy5sYXN0RWxlbWVudD1lbGVtZW50O3RoaXMucHJlcGFyZUVsZW1lbnQoZWxlbWVudCk7dGhpcy5jdXJyZW50RWxlbWVudHM9JChlbGVtZW50KTt2YXIgcmVzdWx0PXRoaXMuY2hlY2soZWxlbWVudCk7aWYocmVzdWx0KXtkZWxldGUgdGhpcy5pbnZhbGlkW2VsZW1lbnQubmFtZV07fWVsc2V7dGhpcy5pbnZhbGlkW2VsZW1lbnQubmFtZV09dHJ1ZTt9aWYoIXRoaXMubnVtYmVyT2ZJbnZhbGlkcygpKXt0aGlzLnRvSGlkZT10aGlzLnRvSGlkZS5hZGQodGhpcy5jb250YWluZXJzKTt9dGhpcy5zaG93RXJyb3JzKCk7cmV0dXJuIHJlc3VsdDt9LHNob3dFcnJvcnM6ZnVuY3Rpb24oZXJyb3JzKXtpZihlcnJvcnMpeyQuZXh0ZW5kKHRoaXMuZXJyb3JNYXAsZXJyb3JzKTt0aGlzLmVycm9yTGlzdD1bXTtmb3IodmFyIG5hbWUgaW4gZXJyb3JzKXt0aGlzLmVycm9yTGlzdC5wdXNoKHttZXNzYWdlOmVycm9yc1tuYW1lXSxlbGVtZW50OnRoaXMuZmluZEJ5TmFtZShuYW1lKVswXX0pO310aGlzLnN1Y2Nlc3NMaXN0PSQuZ3JlcCh0aGlzLnN1Y2Nlc3NMaXN0LGZ1bmN0aW9uKGVsZW1lbnQpe3JldHVybiEoZWxlbWVudC5uYW1lIGluIGVycm9ycyk7fSk7fXRoaXMuc2V0dGluZ3Muc2hvd0Vycm9ycz90aGlzLnNldHRpbmdzLnNob3dFcnJvcnMuY2FsbCh0aGlzLHRoaXMuZXJyb3JNYXAsdGhpcy5lcnJvckxpc3QpOnRoaXMuZGVmYXVsdFNob3dFcnJvcnMoKTt9LHJlc2V0Rm9ybTpmdW5jdGlvbigpe2lmKCQuZm4ucmVzZXRGb3JtKSQodGhpcy5jdXJyZW50Rm9ybSkucmVzZXRGb3JtKCk7dGhpcy5zdWJtaXR0ZWQ9e307dGhpcy5wcmVwYXJlRm9ybSgpO3RoaXMuaGlkZUVycm9ycygpO3RoaXMuZWxlbWVudHMoKS5yZW1vdmVDbGFzcyh0aGlzLnNldHRpbmdzLmVycm9yQ2xhc3MpO30sbnVtYmVyT2ZJbnZhbGlkczpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9iamVjdExlbmd0aCh0aGlzLmludmFsaWQpO30sb2JqZWN0TGVuZ3RoOmZ1bmN0aW9uKG9iail7dmFyIGNvdW50PTA7Zm9yKHZhciBpIGluIG9iailjb3VudCsrO3JldHVybiBjb3VudDt9LGhpZGVFcnJvcnM6ZnVuY3Rpb24oKXt0aGlzLmFkZFdyYXBwZXIodGhpcy50b0hpZGUpLmhpZGUoKTt9LHZhbGlkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l6ZSgpPT0wO30sc2l6ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVycm9yTGlzdC5sZW5ndGg7fSxmb2N1c0ludmFsaWQ6ZnVuY3Rpb24oKXtpZih0aGlzLnNldHRpbmdzLmZvY3VzSW52YWxpZCl7dHJ5eyQodGhpcy5maW5kTGFzdEFjdGl2ZSgpfHx0aGlzLmVycm9yTGlzdC5sZW5ndGgmJnRoaXMuZXJyb3JMaXN0WzBdLmVsZW1lbnR8fFtdKS5maWx0ZXIoIjp2aXNpYmxlIikuZm9jdXMoKTt9Y2F0Y2goZSl7fX19LGZpbmRMYXN0QWN0aXZlOmZ1bmN0aW9uKCl7dmFyIGxhc3RBY3RpdmU9dGhpcy5sYXN0QWN0aXZlO3JldHVybiBsYXN0QWN0aXZlJiYkLmdyZXAodGhpcy5lcnJvckxpc3QsZnVuY3Rpb24obil7cmV0dXJuIG4uZWxlbWVudC5uYW1lPT1sYXN0QWN0aXZlLm5hbWU7fSkubGVuZ3RoPT0xJiZsYXN0QWN0aXZlO30sZWxlbWVudHM6ZnVuY3Rpb24oKXt2YXIgdmFsaWRhdG9yPXRoaXMscnVsZXNDYWNoZT17fTtyZXR1cm4gJChbXSkuYWRkKHRoaXMuY3VycmVudEZvcm0uZWxlbWVudHMpLmZpbHRlcigiOmlucHV0Iikubm90KCI6c3VibWl0LCA6cmVzZXQsIDppbWFnZSwgW2Rpc2FibGVkXSIpLm5vdCh0aGlzLnNldHRpbmdzLmlnbm9yZSkuZmlsdGVyKGZ1bmN0aW9uKCl7IXRoaXMubmFtZSYmdmFsaWRhdG9yLnNldHRpbmdzLmRlYnVnJiZ3aW5kb3cuY29uc29sZSYmY29uc29sZS5lcnJvcigiJW8gaGFzIG5vIG5hbWUgYXNzaWduZWQiLHRoaXMpO2lmKHRoaXMubmFtZSBpbiBydWxlc0NhY2hlfHwhdmFsaWRhdG9yLm9iamVjdExlbmd0aCgkKHRoaXMpLnJ1bGVzKCkpKXJldHVybiBmYWxzZTtydWxlc0NhY2hlW3RoaXMubmFtZV09dHJ1ZTtyZXR1cm4gdHJ1ZTt9KTt9LGNsZWFuOmZ1bmN0aW9uKHNlbGVjdG9yKXtyZXR1cm4gJChzZWxlY3RvcilbMF07fSxlcnJvcnM6ZnVuY3Rpb24oKXtyZXR1cm4gJCh0aGlzLnNldHRpbmdzLmVycm9yRWxlbWVudCsiLiIrdGhpcy5zZXR0aW5ncy5lcnJvckNsYXNzLHRoaXMuZXJyb3JDb250ZXh0KTt9LHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5zdWNjZXNzTGlzdD1bXTt0aGlzLmVycm9yTGlzdD1bXTt0aGlzLmVycm9yTWFwPXt9O3RoaXMudG9TaG93PSQoW10pO3RoaXMudG9IaWRlPSQoW10pO3RoaXMuZm9ybVN1Ym1pdHRlZD1mYWxzZTt0aGlzLmN1cnJlbnRFbGVtZW50cz0kKFtdKTt9LHByZXBhcmVGb3JtOmZ1bmN0aW9uKCl7dGhpcy5yZXNldCgpO3RoaXMudG9IaWRlPXRoaXMuZXJyb3JzKCkuYWRkKHRoaXMuY29udGFpbmVycyk7fSxwcmVwYXJlRWxlbWVudDpmdW5jdGlvbihlbGVtZW50KXt0aGlzLnJlc2V0KCk7dGhpcy50b0hpZGU9dGhpcy5lcnJvcnNGb3IoZWxlbWVudCk7fSxjaGVjazpmdW5jdGlvbihlbGVtZW50KXtlbGVtZW50PXRoaXMuY2xlYW4oZWxlbWVudCk7aWYodGhpcy5jaGVja2FibGUoZWxlbWVudCkpe2VsZW1lbnQ9dGhpcy5maW5kQnlOYW1lKGVsZW1lbnQubmFtZSlbMF07fXZhciBydWxlcz0kKGVsZW1lbnQpLnJ1bGVzKCk7dmFyIGRlcGVuZGVuY3lNaXNtYXRjaD1mYWxzZTtmb3IobWV0aG9kIGluIHJ1bGVzKXt2YXIgcnVsZT17bWV0aG9kOm1ldGhvZCxwYXJhbWV0ZXJzOnJ1bGVzW21ldGhvZF19O3RyeXt2YXIgcmVzdWx0PSQudmFsaWRhdG9yLm1ldGhvZHNbbWV0aG9kXS5jYWxsKHRoaXMsZWxlbWVudC52YWx1ZSxlbGVtZW50LHJ1bGUucGFyYW1ldGVycyk7aWYocmVzdWx0PT0iZGVwZW5kZW5jeS1taXNtYXRjaCIpe2RlcGVuZGVuY3lNaXNtYXRjaD10cnVlO2NvbnRpbnVlO31kZXBlbmRlbmN5TWlzbWF0Y2g9ZmFsc2U7aWYocmVzdWx0PT0icGVuZGluZyIpe3RoaXMudG9IaWRlPXRoaXMudG9IaWRlLm5vdCh0aGlzLmVycm9yc0ZvcihlbGVtZW50KSk7cmV0dXJuO31pZighcmVzdWx0KXt0aGlzLmZvcm1hdEFuZEFkZChlbGVtZW50LHJ1bGUpO3JldHVybiBmYWxzZTt9fWNhdGNoKGUpe3RoaXMuc2V0dGluZ3MuZGVidWcmJndpbmRvdy5jb25zb2xlJiZjb25zb2xlLmxvZygiZXhjZXB0aW9uIG9jY3VyZWQgd2hlbiBjaGVja2luZyBlbGVtZW50ICIrZWxlbWVudC5pZA0KKyIsIGNoZWNrIHRoZSAnIitydWxlLm1ldGhvZCsiJyBtZXRob2QiKTt0aHJvdyBlO319aWYoZGVwZW5kZW5jeU1pc21hdGNoKXJldHVybjtpZih0aGlzLm9iamVjdExlbmd0aChydWxlcykpdGhpcy5zdWNjZXNzTGlzdC5wdXNoKGVsZW1lbnQpO3JldHVybiB0cnVlO30sY3VzdG9tTWV0YU1lc3NhZ2U6ZnVuY3Rpb24oZWxlbWVudCxtZXRob2Qpe2lmKCEkLm1ldGFkYXRhKXJldHVybjt2YXIgbWV0YT10aGlzLnNldHRpbmdzLm1ldGE/JChlbGVtZW50KS5tZXRhZGF0YSgpW3RoaXMuc2V0dGluZ3MubWV0YV06JChlbGVtZW50KS5tZXRhZGF0YSgpO3JldHVybiBtZXRhJiZtZXRhLm1lc3NhZ2VzJiZtZXRhLm1lc3NhZ2VzW21ldGhvZF07fSxjdXN0b21NZXNzYWdlOmZ1bmN0aW9uKG5hbWUsbWV0aG9kKXt2YXIgbT10aGlzLnNldHRpbmdzLm1lc3NhZ2VzW25hbWVdO3JldHVybiBtJiYobS5jb25zdHJ1Y3Rvcj09U3RyaW5nP206bVttZXRob2RdKTt9LGZpbmREZWZpbmVkOmZ1bmN0aW9uKCl7Zm9yKHZhciBpPTA7aTxhcmd1bWVudHMubGVuZ3RoO2krKyl7aWYoYXJndW1lbnRzW2ldIT09dW5kZWZpbmVkKXJldHVybiBhcmd1bWVudHNbaV07fXJldHVybiB1bmRlZmluZWQ7fSxkZWZhdWx0TWVzc2FnZTpmdW5jdGlvbihlbGVtZW50LG1ldGhvZCl7cmV0dXJuIHRoaXMuZmluZERlZmluZWQodGhpcy5jdXN0b21NZXNzYWdlKGVsZW1lbnQubmFtZSxtZXRob2QpLHRoaXMuY3VzdG9tTWV0YU1lc3NhZ2UoZWxlbWVudCxtZXRob2QpLCF0aGlzLnNldHRpbmdzLmlnbm9yZVRpdGxlJiZlbGVtZW50LnRpdGxlfHx1bmRlZmluZWQsJC52YWxpZGF0b3IubWVzc2FnZXNbbWV0aG9kXSwiPHN0cm9uZz5XYXJuaW5nOiBObyBtZXNzYWdlIGRlZmluZWQgZm9yICIrZWxlbWVudC5uYW1lKyI8L3N0cm9uZz4iKTt9LGZvcm1hdEFuZEFkZDpmdW5jdGlvbihlbGVtZW50LHJ1bGUpe3ZhciBtZXNzYWdlPXRoaXMuZGVmYXVsdE1lc3NhZ2UoZWxlbWVudCxydWxlLm1ldGhvZCk7aWYodHlwZW9mIG1lc3NhZ2U9PSJmdW5jdGlvbiIpbWVzc2FnZT1tZXNzYWdlLmNhbGwodGhpcyxydWxlLnBhcmFtZXRlcnMsZWxlbWVudCk7dGhpcy5lcnJvckxpc3QucHVzaCh7bWVzc2FnZTptZXNzYWdlLGVsZW1lbnQ6ZWxlbWVudH0pO3RoaXMuZXJyb3JNYXBbZWxlbWVudC5uYW1lXT1tZXNzYWdlO3RoaXMuc3VibWl0dGVkW2VsZW1lbnQubmFtZV09bWVzc2FnZTt9LGFkZFdyYXBwZXI6ZnVuY3Rpb24odG9Ub2dnbGUpe2lmKHRoaXMuc2V0dGluZ3Mud3JhcHBlcil0b1RvZ2dsZT10b1RvZ2dsZS5hZGQodG9Ub2dnbGUucGFyZW50cyh0aGlzLnNldHRpbmdzLndyYXBwZXIpKTtyZXR1cm4gdG9Ub2dnbGU7fSxkZWZhdWx0U2hvd0Vycm9yczpmdW5jdGlvbigpe2Zvcih2YXIgaT0wO3RoaXMuZXJyb3JMaXN0W2ldO2krKyl7dmFyIGVycm9yPXRoaXMuZXJyb3JMaXN0W2ldO3RoaXMuc2V0dGluZ3MuaGlnaGxpZ2h0JiZ0aGlzLnNldHRpbmdzLmhpZ2hsaWdodC5jYWxsKHRoaXMsZXJyb3IuZWxlbWVudCx0aGlzLnNldHRpbmdzLmVycm9yQ2xhc3MpO3RoaXMuc2hvd0xhYmVsKGVycm9yLmVsZW1lbnQsZXJyb3IubWVzc2FnZSk7fWlmKHRoaXMuZXJyb3JMaXN0Lmxlbmd0aCl7dGhpcy50b1Nob3c9dGhpcy50b1Nob3cuYWRkKHRoaXMuY29udGFpbmVycyk7fWlmKHRoaXMuc2V0dGluZ3Muc3VjY2Vzcyl7Zm9yKHZhciBpPTA7dGhpcy5zdWNjZXNzTGlzdFtpXTtpKyspe3RoaXMuc2hvd0xhYmVsKHRoaXMuc3VjY2Vzc0xpc3RbaV0pO319aWYodGhpcy5zZXR0aW5ncy51bmhpZ2hsaWdodCl7Zm9yKHZhciBpPTAsZWxlbWVudHM9dGhpcy52YWxpZEVsZW1lbnRzKCk7ZWxlbWVudHNbaV07aSsrKXt0aGlzLnNldHRpbmdzLnVuaGlnaGxpZ2h0LmNhbGwodGhpcyxlbGVtZW50c1tpXSx0aGlzLnNldHRpbmdzLmVycm9yQ2xhc3MpO319dGhpcy50b0hpZGU9dGhpcy50b0hpZGUubm90KHRoaXMudG9TaG93KTt0aGlzLmhpZGVFcnJvcnMoKTt0aGlzLmFkZFdyYXBwZXIodGhpcy50b1Nob3cpLnNob3coKTt9LHZhbGlkRWxlbWVudHM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50RWxlbWVudHMubm90KHRoaXMuaW52YWxpZEVsZW1lbnRzKCkpO30saW52YWxpZEVsZW1lbnRzOmZ1bmN0aW9uKCl7cmV0dXJuICQodGhpcy5lcnJvckxpc3QpLm1hcChmdW5jdGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnQ7fSk7fSxzaG93TGFiZWw6ZnVuY3Rpb24oZWxlbWVudCxtZXNzYWdlKXt2YXIgbGFiZWw9dGhpcy5lcnJvcnNGb3IoZWxlbWVudCk7aWYobGFiZWwubGVuZ3RoKXtsYWJlbC5yZW1vdmVDbGFzcygpLmFkZENsYXNzKHRoaXMuc2V0dGluZ3MuZXJyb3JDbGFzcyk7bGFiZWwuYXR0cigiZ2VuZXJhdGVkIikmJmxhYmVsLmh0bWwobWVzc2FnZSk7fWVsc2V7bGFiZWw9JCgiPCIrdGhpcy5zZXR0aW5ncy5lcnJvckVsZW1lbnQrIi8+IikuYXR0cih7ImZvciI6dGhpcy5pZE9yTmFtZShlbGVtZW50KSxnZW5lcmF0ZWQ6dHJ1ZX0pLmFkZENsYXNzKHRoaXMuc2V0dGluZ3MuZXJyb3JDbGFzcykuaHRtbChtZXNzYWdlfHwiIik7aWYodGhpcy5zZXR0aW5ncy53cmFwcGVyKXtsYWJlbD1sYWJlbC5oaWRlKCkuc2hvdygpLndyYXAoIjwiK3RoaXMuc2V0dGluZ3Mud3JhcHBlcisiLz4iKS5wYXJlbnQoKTt9aWYoIXRoaXMubGFiZWxDb250YWluZXIuYXBwZW5kKGxhYmVsKS5sZW5ndGgpdGhpcy5zZXR0aW5ncy5lcnJvclBsYWNlbWVudD90aGlzLnNldHRpbmdzLmVycm9yUGxhY2VtZW50KGxhYmVsLCQoZWxlbWVudCkpOmxhYmVsLmluc2VydEFmdGVyKGVsZW1lbnQpO31pZighbWVzc2FnZSYmdGhpcy5zZXR0aW5ncy5zdWNjZXNzKXtsYWJlbC50ZXh0KCIiKTt0eXBlb2YgdGhpcy5zZXR0aW5ncy5zdWNjZXNzPT0ic3RyaW5nIj9sYWJlbC5hZGRDbGFzcyh0aGlzLnNldHRpbmdzLnN1Y2Nlc3MpOnRoaXMuc2V0dGluZ3Muc3VjY2VzcyhsYWJlbCk7fXRoaXMudG9TaG93PXRoaXMudG9TaG93LmFkZChsYWJlbCk7fSxlcnJvcnNGb3I6ZnVuY3Rpb24oZWxlbWVudCl7cmV0dXJuIHRoaXMuZXJyb3JzKCkuZmlsdGVyKCJbZm9yPSciK3RoaXMuaWRPck5hbWUoZWxlbWVudCkrIiddIik7fSxpZE9yTmFtZTpmdW5jdGlvbihlbGVtZW50KXtyZXR1cm4gdGhpcy5ncm91cHNbZWxlbWVudC5uYW1lXXx8KHRoaXMuY2hlY2thYmxlKGVsZW1lbnQpP2VsZW1lbnQubmFtZTplbGVtZW50LmlkfHxlbGVtZW50Lm5hbWUpO30sY2hlY2thYmxlOmZ1bmN0aW9uKGVsZW1lbnQpe3JldHVybi9yYWRpb3xjaGVja2JveC9pLnRlc3QoZWxlbWVudC50eXBlKTt9LGZpbmRCeU5hbWU6ZnVuY3Rpb24obmFtZSl7dmFyIGZvcm09dGhpcy5jdXJyZW50Rm9ybTtyZXR1cm4gJChkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZShuYW1lKSkubWFwKGZ1bmN0aW9uKGluZGV4LGVsZW1lbnQpe3JldHVybiBlbGVtZW50LmZvcm09PWZvcm0mJmVsZW1lbnQubmFtZT09bmFtZSYmZWxlbWVudHx8bnVsbDt9KTt9LGdldExlbmd0aDpmdW5jdGlvbih2YWx1ZSxlbGVtZW50KXtzd2l0Y2goZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXtjYXNlJ3NlbGVjdCc6cmV0dXJuICQoIm9wdGlvbjpzZWxlY3RlZCIsZWxlbWVudCkubGVuZ3RoO2Nhc2UnaW5wdXQnOmlmKHRoaXMuY2hlY2thYmxlKGVsZW1lbnQpKXJldHVybiB0aGlzLmZpbmRCeU5hbWUoZWxlbWVudC5uYW1lKS5maWx0ZXIoJzpjaGVja2VkJykubGVuZ3RoO31yZXR1cm4gdmFsdWUubGVuZ3RoO30sZGVwZW5kOmZ1bmN0aW9uKHBhcmFtLGVsZW1lbnQpe3JldHVybiB0aGlzLmRlcGVuZFR5cGVzW3R5cGVvZiBwYXJhbV0/dGhpcy5kZXBlbmRUeXBlc1t0eXBlb2YgcGFyYW1dKHBhcmFtLGVsZW1lbnQpOnRydWU7fSxkZXBlbmRUeXBlczp7ImJvb2xlYW4iOmZ1bmN0aW9uKHBhcmFtLGVsZW1lbnQpe3JldHVybiBwYXJhbTt9LCJzdHJpbmciOmZ1bmN0aW9uKHBhcmFtLGVsZW1lbnQpe3JldHVybiEhJChwYXJhbSxlbGVtZW50LmZvcm0pLmxlbmd0aDt9LCJmdW5jdGlvbiI6ZnVuY3Rpb24ocGFyYW0sZWxlbWVudCl7cmV0dXJuIHBhcmFtKGVsZW1lbnQpO319LG9wdGlvbmFsOmZ1bmN0aW9uKGVsZW1lbnQpe3JldHVybiEkLnZhbGlkYXRvci5tZXRob2RzLnJlcXVpcmVkLmNhbGwodGhpcywkLnRyaW0oZWxlbWVudC52YWx1ZSksZWxlbWVudCkmJiJkZXBlbmRlbmN5LW1pc21hdGNoIjt9LHN0YXJ0UmVxdWVzdDpmdW5jdGlvbihlbGVtZW50KXtpZighdGhpcy5wZW5kaW5nW2VsZW1lbnQubmFtZV0pe3RoaXMucGVuZGluZ1JlcXVlc3QrKzt0aGlzLnBlbmRpbmdbZWxlbWVudC5uYW1lXT10cnVlO319LHN0b3BSZXF1ZXN0OmZ1bmN0aW9uKGVsZW1lbnQsdmFsaWQpe3RoaXMucGVuZGluZ1JlcXVlc3QtLTtpZih0aGlzLnBlbmRpbmdSZXF1ZXN0PDApdGhpcy5wZW5kaW5nUmVxdWVzdD0wO2RlbGV0ZSB0aGlzLnBlbmRpbmdbZWxlbWVudC5uYW1lXTtpZih2YWxpZCYmdGhpcy5wZW5kaW5nUmVxdWVzdD09MCYmdGhpcy5mb3JtU3VibWl0dGVkJiZ0aGlzLmZvcm0oKSl7JCh0aGlzLmN1cnJlbnRGb3JtKS5zdWJtaXQoKTt9ZWxzZSBpZighdmFsaWQmJnRoaXMucGVuZGluZ1JlcXVlc3Q9PTAmJnRoaXMuZm9ybVN1Ym1pdHRlZCl7JCh0aGlzLmN1cnJlbnRGb3JtKS50cmlnZ2VySGFuZGxlcigiaW52YWxpZC1mb3JtIixbdGhpc10pO319LHByZXZpb3VzVmFsdWU6ZnVuY3Rpb24oZWxlbWVudCl7cmV0dXJuICQuZGF0YShlbGVtZW50LCJwcmV2aW91c1ZhbHVlIil8fCQuZGF0YShlbGVtZW50LCJwcmV2aW91c1ZhbHVlIixwcmV2aW91cz17b2xkOm51bGwsdmFsaWQ6dHJ1ZSxtZXNzYWdlOnRoaXMuZGVmYXVsdE1lc3NhZ2UoZWxlbWVudCwicmVtb3RlIil9KTt9fSxjbGFzc1J1bGVTZXR0aW5nczp7cmVxdWlyZWQ6e3JlcXVpcmVkOnRydWV9LGVtYWlsOntlbWFpbDp0cnVlfSx1cmw6e3VybDp0cnVlfSxkYXRlOntkYXRlOnRydWV9LGRhdGVJU086e2RhdGVJU086dHJ1ZX0sZGF0ZURFOntkYXRlREU6dHJ1ZX0sbnVtYmVyOntudW1iZXI6dHJ1ZX0sbnVtYmVyREU6e251bWJlckRFOnRydWV9LGRpZ2l0czp7ZGlnaXRzOnRydWV9LGNyZWRpdGNhcmQ6e2NyZWRpdGNhcmQ6dHJ1ZX19LGFkZENsYXNzUnVsZXM6ZnVuY3Rpb24oY2xhc3NOYW1lLHJ1bGVzKXtjbGFzc05hbWUuY29uc3RydWN0b3I9PVN0cmluZz90aGlzLmNsYXNzUnVsZVNldHRpbmdzW2NsYXNzTmFtZV09cnVsZXM6JC5leHRlbmQodGhpcy5jbGFzc1J1bGVTZXR0aW5ncyxjbGFzc05hbWUpO30sY2xhc3NSdWxlczpmdW5jdGlvbihlbGVtZW50KXt2YXIgcnVsZXM9e307dmFyIGNsYXNzZXM9JChlbGVtZW50KS5hdHRyKCdjbGFzcycpO2NsYXNzZXMmJiQuZWFjaChjbGFzc2VzLnNwbGl0KCcgJyksZnVuY3Rpb24oKXtpZih0aGlzIGluICQudmFsaWRhdG9yLmNsYXNzUnVsZVNldHRpbmdzKXskLmV4dGVuZChydWxlcywkLnZhbGlkYXRvci5jbGFzc1J1bGVTZXR0aW5nc1t0aGlzXSk7fX0pO3JldHVybiBydWxlczt9LGF0dHJpYnV0ZVJ1bGVzOmZ1bmN0aW9uKGVsZW1lbnQpe3ZhciBydWxlcz17fTt2YXIgJGVsZW1lbnQ9JChlbGVtZW50KTtmb3IobWV0aG9kIGluICQudmFsaWRhdG9yLm1ldGhvZHMpe3ZhciB2YWx1ZT0kZWxlbWVudC5hdHRyKG1ldGhvZCk7aWYodmFsdWUpe3J1bGVzW21ldGhvZF09dmFsdWU7fX1pZihydWxlcy5tYXhsZW5ndGgmJi8tMXwyMTQ3NDgzNjQ3fDUyNDI4OC8udGVzdChydWxlcy5tYXhsZW5ndGgpKXtkZWxldGUgcnVsZXMubWF4bGVuZ3RoO31yZXR1cm4gcnVsZXM7fSxtZXRhZGF0YVJ1bGVzOmZ1bmN0aW9uKGVsZW1lbnQpe2lmKCEkLm1ldGFkYXRhKXJldHVybnt9O3ZhciBtZXRhPSQuZGF0YShlbGVtZW50LmZvcm0sJ3ZhbGlkYXRvcicpLnNldHRpbmdzLm1ldGE7cmV0dXJuIG1ldGE/JChlbGVtZW50KS5tZXRhZGF0YSgpW21ldGFdOiQoZWxlbWVudCkubWV0YWRhdGEoKTt9LHN0YXRpY1J1bGVzOmZ1bmN0aW9uKGVsZW1lbnQpe3ZhciBydWxlcz17fTt2YXIgdmFsaWRhdG9yPSQuZGF0YShlbGVtZW50LmZvcm0sJ3ZhbGlkYXRvcicpO2lmKHZhbGlkYXRvci5zZXR0aW5ncy5ydWxlcyl7cnVsZXM9JC52YWxpZGF0b3Iubm9ybWFsaXplUnVsZSh2YWxpZGF0b3Iuc2V0dGluZ3MucnVsZXNbZWxlbWVudC5uYW1lXSl8fHt9O31yZXR1cm4gcnVsZXM7fSxub3JtYWxpemVSdWxlczpmdW5jdGlvbihydWxlcyxlbGVtZW50KXskLmVhY2gocnVsZXMsZnVuY3Rpb24ocHJvcCx2YWwpe2lmKHZhbD09PWZhbHNlKXtkZWxldGUgcnVsZXNbcHJvcF07cmV0dXJuO31pZih2YWwucGFyYW18fHZhbC5kZXBlbmRzKXt2YXIga2VlcFJ1bGU9dHJ1ZTtzd2l0Y2godHlwZW9mIHZhbC5kZXBlbmRzKXtjYXNlInN0cmluZyI6a2VlcFJ1bGU9ISEkKHZhbC5kZXBlbmRzLGVsZW1lbnQuZm9ybSkubGVuZ3RoO2JyZWFrO2Nhc2UiZnVuY3Rpb24iOmtlZXBSdWxlPXZhbC5kZXBlbmRzLmNhbGwoZWxlbWVudCxlbGVtZW50KTticmVhazt9aWYoa2VlcFJ1bGUpe3J1bGVzW3Byb3BdPXZhbC5wYXJhbSE9PXVuZGVmaW5lZD92YWwucGFyYW06dHJ1ZTt9ZWxzZXtkZWxldGUgcnVsZXNbcHJvcF07fX19KTskLmVhY2gocnVsZXMsZnVuY3Rpb24ocnVsZSxwYXJhbWV0ZXIpe3J1bGVzW3J1bGVdPSQuaXNGdW5jdGlvbihwYXJhbWV0ZXIpP3BhcmFtZXRlcihlbGVtZW50KTpwYXJhbWV0ZXI7fSk7JC5lYWNoKFsnbWlubGVuZ3RoJywnbWF4bGVuZ3RoJywnbWluJywnbWF4J10sZnVuY3Rpb24oKXtpZihydWxlc1t0aGlzXSl7cnVsZXNbdGhpc109TnVtYmVyKHJ1bGVzW3RoaXNdKTt9fSk7JC5lYWNoKFsncmFuZ2VsZW5ndGgnLCdyYW5nZSddLGZ1bmN0aW9uKCl7aWYocnVsZXNbdGhpc10pe3J1bGVzW3RoaXNdPVtOdW1iZXIocnVsZXNbdGhpc11bMF0pLE51bWJlcihydWxlc1t0aGlzXVsxXSldO319KTtpZigkLnZhbGlkYXRvci5hdXRvQ3JlYXRlUmFuZ2VzKXtpZihydWxlcy5taW4mJnJ1bGVzLm1heCl7cnVsZXMucmFuZ2U9W3J1bGVzLm1pbixydWxlcy5tYXhdO2RlbGV0ZSBydWxlcy5taW47ZGVsZXRlIHJ1bGVzLm1heDt9aWYocnVsZXMubWlubGVuZ3RoJiZydWxlcy5tYXhsZW5ndGgpe3J1bGVzLnJhbmdlbGVuZ3RoPVtydWxlcy5taW5sZW5ndGgscnVsZXMubWF4bGVuZ3RoXTtkZWxldGUgcnVsZXMubWlubGVuZ3RoO2RlbGV0ZSBydWxlcy5tYXhsZW5ndGg7fX1pZihydWxlcy5tZXNzYWdlcyl7ZGVsZXRlIHJ1bGVzLm1lc3NhZ2VzfXJldHVybiBydWxlczt9LG5vcm1hbGl6ZVJ1bGU6ZnVuY3Rpb24oZGF0YSl7aWYodHlwZW9mIGRhdGE9PSJzdHJpbmciKXt2YXIgdHJhbnNmb3JtZWQ9e307JC5lYWNoKGRhdGEuc3BsaXQoL1xzLyksZnVuY3Rpb24oKXt0cmFuc2Zvcm1lZFt0aGlzXT10cnVlO30pO2RhdGE9dHJhbnNmb3JtZWQ7fXJldHVybiBkYXRhO30sYWRkTWV0aG9kOmZ1bmN0aW9uKG5hbWUsbWV0aG9kLG1lc3NhZ2UpeyQudmFsaWRhdG9yLm1ldGhvZHNbbmFtZV09bWV0aG9kOyQudmFsaWRhdG9yLm1lc3NhZ2VzW25hbWVdPW1lc3NhZ2U7aWYobWV0aG9kLmxlbmd0aDwzKXskLnZhbGlkYXRvci5hZGRDbGFzc1J1bGVzKG5hbWUsJC52YWxpZGF0b3Iubm9ybWFsaXplUnVsZShuYW1lKSk7fX0sbWV0aG9kczp7cmVxdWlyZWQ6ZnVuY3Rpb24odmFsdWUsZWxlbWVudCxwYXJhbSl7aWYoIXRoaXMuZGVwZW5kKHBhcmFtLGVsZW1lbnQpKXJldHVybiJkZXBlbmRlbmN5LW1pc21hdGNoIjtzd2l0Y2goZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXtjYXNlJ3NlbGVjdCc6dmFyIG9wdGlvbnM9JCgib3B0aW9uOnNlbGVjdGVkIixlbGVtZW50KTtyZXR1cm4gb3B0aW9ucy5sZW5ndGg+MCYmKGVsZW1lbnQudHlwZT09InNlbGVjdC1tdWx0aXBsZSJ8fCgkLmJyb3dzZXIubXNpZSYmIShvcHRpb25zWzBdLmF0dHJpYnV0ZXNbJ3ZhbHVlJ10uc3BlY2lmaWVkKT9vcHRpb25zWzBdLnRleHQ6b3B0aW9uc1swXS52YWx1ZSkubGVuZ3RoPjApO2Nhc2UnaW5wdXQnOmlmKHRoaXMuY2hlY2thYmxlKGVsZW1lbnQpKXJldHVybiB0aGlzLmdldExlbmd0aCh2YWx1ZSxlbGVtZW50KT4wO2RlZmF1bHQ6cmV0dXJuICQudHJpbSh2YWx1ZSkubGVuZ3RoPjA7fX0scmVtb3RlOmZ1bmN0aW9uKHZhbHVlLGVsZW1lbnQscGFyYW0pe2lmKHRoaXMub3B0aW9uYWwoZWxlbWVudCkpcmV0dXJuImRlcGVuZGVuY3ktbWlzbWF0Y2giO3ZhciBwcmV2aW91cz10aGlzLnByZXZpb3VzVmFsdWUoZWxlbWVudCk7aWYoIXRoaXMuc2V0dGluZ3MubWVzc2FnZXNbZWxlbWVudC5uYW1lXSl0aGlzLnNldHRpbmdzLm1lc3NhZ2VzW2VsZW1lbnQubmFtZV09e307dGhpcy5zZXR0aW5ncy5tZXNzYWdlc1tlbGVtZW50Lm5hbWVdLnJlbW90ZT10eXBlb2YgcHJldmlvdXMubWVzc2FnZT09ImZ1bmN0aW9uIj9wcmV2aW91cy5tZXNzYWdlKHZhbHVlKTpwcmV2aW91cy5tZXNzYWdlO3BhcmFtPXR5cGVvZiBwYXJhbT09InN0cmluZyImJnt1cmw6cGFyYW19fHxwYXJhbTtpZihwcmV2aW91cy5vbGQhPT12YWx1ZSl7cHJldmlvdXMub2xkPXZhbHVlO3ZhciB2YWxpZGF0b3I9dGhpczt0aGlzLnN0YXJ0UmVxdWVzdChlbGVtZW50KTt2YXIgZGF0YT17fTtkYXRhW2VsZW1lbnQubmFtZV09dmFsdWU7JC5hamF4KCQuZXh0ZW5kKHRydWUse3VybDpwYXJhbSxtb2RlOiJhYm9ydCIscG9ydDoidmFsaWRhdGUiK2VsZW1lbnQubmFtZSxkYXRhVHlwZToianNvbiIsZGF0YTpkYXRhLHN1Y2Nlc3M6ZnVuY3Rpb24ocmVzcG9uc2Upe2lmKHJlc3BvbnNlKXt2YXIgc3VibWl0dGVkPXZhbGlkYXRvci5mb3JtU3VibWl0dGVkO3ZhbGlkYXRvci5wcmVwYXJlRWxlbWVudChlbGVtZW50KTt2YWxpZGF0b3IuZm9ybVN1Ym1pdHRlZD1zdWJtaXR0ZWQ7dmFsaWRhdG9yLnN1Y2Nlc3NMaXN0LnB1c2goZWxlbWVudCk7dmFsaWRhdG9yLnNob3dFcnJvcnMoKTt9ZWxzZXt2YXIgZXJyb3JzPXt9O2Vycm9yc1tlbGVtZW50Lm5hbWVdPXJlc3BvbnNlfHx2YWxpZGF0b3IuZGVmYXVsdE1lc3NhZ2UoZWxlbWVudCwicmVtb3RlIik7dmFsaWRhdG9yLnNob3dFcnJvcnMoZXJyb3JzKTt9cHJldmlvdXMudmFsaWQ9cmVzcG9uc2U7dmFsaWRhdG9yLnN0b3BSZXF1ZXN0KGVsZW1lbnQscmVzcG9uc2UpO319LHBhcmFtKSk7cmV0dXJuInBlbmRpbmciO31lbHNlIGlmKHRoaXMucGVuZGluZ1tlbGVtZW50Lm5hbWVdKXtyZXR1cm4icGVuZGluZyI7fXJldHVybiBwcmV2aW91cy52YWxpZDt9LG1pbmxlbmd0aDpmdW5jdGlvbih2YWx1ZSxlbGVtZW50LHBhcmFtKXtyZXR1cm4gdGhpcy5vcHRpb25hbChlbGVtZW50KXx8dGhpcy5nZXRMZW5ndGgoJC50cmltKHZhbHVlKSxlbGVtZW50KT49cGFyYW07fSxtYXhsZW5ndGg6ZnVuY3Rpb24odmFsdWUsZWxlbWVudCxwYXJhbSl7cmV0dXJuIHRoaXMub3B0aW9uYWwoZWxlbWVudCl8fHRoaXMuZ2V0TGVuZ3RoKCQudHJpbSh2YWx1ZSksZWxlbWVudCk8PXBhcmFtO30scmFuZ2VsZW5ndGg6ZnVuY3Rpb24odmFsdWUsZWxlbWVudCxwYXJhbSl7dmFyIGxlbmd0aD10aGlzLmdldExlbmd0aCgkLnRyaW0odmFsdWUpLGVsZW1lbnQpO3JldHVybiB0aGlzLm9wdGlvbmFsKGVsZW1lbnQpfHwobGVuZ3RoPj1wYXJhbVswXSYmbGVuZ3RoPD1wYXJhbVsxXSk7fSxtaW46ZnVuY3Rpb24odmFsdWUsZWxlbWVudCxwYXJhbSl7cmV0dXJuIHRoaXMub3B0aW9uYWwoZWxlbWVudCl8fHZhbHVlPj1wYXJhbTt9LG1heDpmdW5jdGlvbih2YWx1ZSxlbGVtZW50LHBhcmFtKXtyZXR1cm4gdGhpcy5vcHRpb25hbChlbGVtZW50KXx8dmFsdWU8PXBhcmFtO30scmFuZ2U6ZnVuY3Rpb24odmFsdWUsZWxlbWVudCxwYXJhbSl7cmV0dXJuIHRoaXMub3B0aW9uYWwoZWxlbWVudCl8fCh2YWx1ZT49cGFyYW1bMF0mJnZhbHVlPD1wYXJhbVsxXSk7fSxlbWFpbDpmdW5jdGlvbih2YWx1ZSxlbGVtZW50KXtyZXR1cm4gdGhpcy5vcHRpb25hbChlbGVtZW50KXx8L14oKChbYS16XXxcZHxbISNcJCUmJ1wqXCtcLVwvPVw/XF5fYHtcfH1+XXxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkrKFwuKFthLXpdfFxkfFshI1wkJSYnXCpcK1wtXC89XD9cXl9ge1x8fX5dfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSspKil8KChceDIyKSgoKChceDIwfFx4MDkpKihceDBkXHgwYSkpPyhceDIwfFx4MDkpKyk/KChbXHgwMS1ceDA4XHgwYlx4MGNceDBlLVx4MWZceDdmXXxceDIxfFtceDIzLVx4NWJdfFtceDVkLVx4N2VdfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoXFwoW1x4MDEtXHgwOVx4MGJceDBjXHgwZC1ceDdmXXxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkpKSkqKCgoXHgyMHxceDA5KSooXHgwZFx4MGEpKT8oXHgyMHxceDA5KSspPyhceDIyKSkpQCgoKFthLXpdfFxkfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoKFthLXpdfFxkfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKShbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkqKFthLXpdfFxkfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSkpXC4pKygoW2Etel18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCgoW2Etel18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSooW2Etel18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKSlcLj8kL2kudGVzdCh2YWx1ZSk7fSx1cmw6ZnVuY3Rpb24odmFsdWUsZWxlbWVudCl7cmV0dXJuIHRoaXMub3B0aW9uYWwoZWxlbWVudCl8fC9eKGh0dHBzP3xmdHApOlwvXC8oKCgoW2Etel18XGR8LXxcLnxffH58W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCglW1xkYS1mXXsyfSl8WyFcJCYnXChcKVwqXCssOz1dfDopKkApPygoKFxkfFsxLTldXGR8MVxkXGR8MlswLTRdXGR8MjVbMC01XSlcLihcZHxbMS05XVxkfDFcZFxkfDJbMC00XVxkfDI1WzAtNV0pXC4oXGR8WzEtOV1cZHwxXGRcZHwyWzAtNF1cZHwyNVswLTVdKVwuKFxkfFsxLTldXGR8MVxkXGR8MlswLTRdXGR8MjVbMC01XSkpfCgoKFthLXpdfFxkfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoKFthLXpdfFxkfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKShbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkqKFthLXpdfFxkfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSkpXC4pKygoW2Etel18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCgoW2Etel18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSooW2Etel18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKSlcLj8pKDpcZCopPykoXC8oKChbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSl8KCVbXGRhLWZdezJ9KXxbIVwkJidcKFwpXCpcKyw7PV18OnxAKSsoXC8oKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoJVtcZGEtZl17Mn0pfFshXCQmJ1woXClcKlwrLDs9XXw6fEApKikqKT8pPyhcPygoKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoJVtcZGEtZl17Mn0pfFshXCQmJ1woXClcKlwrLDs9XXw6fEApfFtcdUUwMDAtXHVGOEZGXXxcL3xcPykqKT8oXCMoKChbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSl8KCVbXGRhLWZdezJ9KXxbIVwkJidcKFwpXCpcKyw7PV18OnxAKXxcL3xcPykqKT8kL2kudGVzdCh2YWx1ZSk7fSxkYXRlOmZ1bmN0aW9uKHZhbHVlLGVsZW1lbnQpe3JldHVybiB0aGlzLm9wdGlvbmFsKGVsZW1lbnQpfHwhL0ludmFsaWR8TmFOLy50ZXN0KG5ldyBEYXRlKHZhbHVlKSk7fSxkYXRlSVNPOmZ1bmN0aW9uKHZhbHVlLGVsZW1lbnQpe3JldHVybiB0aGlzLm9wdGlvbmFsKGVsZW1lbnQpfHwvXlxkezR9W1wvLV1cZHsxLDJ9W1wvLV1cZHsxLDJ9JC8udGVzdCh2YWx1ZSk7fSxkYXRlREU6ZnVuY3Rpb24odmFsdWUsZWxlbWVudCl7cmV0dXJuIHRoaXMub3B0aW9uYWwoZWxlbWVudCl8fC9eXGRcZD9cLlxkXGQ/XC5cZFxkXGQ/XGQ/JC8udGVzdCh2YWx1ZSk7fSxudW1iZXI6ZnVuY3Rpb24odmFsdWUsZWxlbWVudCl7cmV0dXJuIHRoaXMub3B0aW9uYWwoZWxlbWVudCl8fC9eLT8oPzpcZCt8XGR7MSwzfSg/OixcZHszfSkrKSg/OlwuXGQrKT8kLy50ZXN0KHZhbHVlKTt9LG51bWJlckRFOmZ1bmN0aW9uKHZhbHVlLGVsZW1lbnQpe3JldHVybiB0aGlzLm9wdGlvbmFsKGVsZW1lbnQpfHwvXi0/KD86XGQrfFxkezEsM30oPzpcLlxkezN9KSspKD86LFxkKyk/JC8udGVzdCh2YWx1ZSk7fSxkaWdpdHM6ZnVuY3Rpb24odmFsdWUsZWxlbWVudCl7cmV0dXJuIHRoaXMub3B0aW9uYWwoZWxlbWVudCl8fC9eXGQrJC8udGVzdCh2YWx1ZSk7fSxjcmVkaXRjYXJkOmZ1bmN0aW9uKHZhbHVlLGVsZW1lbnQpe2lmKHRoaXMub3B0aW9uYWwoZWxlbWVudCkpcmV0dXJuImRlcGVuZGVuY3ktbWlzbWF0Y2giO2lmKC9bXjAtOS1dKy8udGVzdCh2YWx1ZSkpcmV0dXJuIGZhbHNlO3ZhciBuQ2hlY2s9MCxuRGlnaXQ9MCxiRXZlbj1mYWxzZTt2YWx1ZT12YWx1ZS5yZXBsYWNlKC9cRC9nLCIiKTtmb3Iobj12YWx1ZS5sZW5ndGgtMTtuPj0wO24tLSl7dmFyIGNEaWdpdD12YWx1ZS5jaGFyQXQobik7dmFyIG5EaWdpdD1wYXJzZUludChjRGlnaXQsMTApO2lmKGJFdmVuKXtpZigobkRpZ2l0Kj0yKT45KW5EaWdpdC09OTt9bkNoZWNrKz1uRGlnaXQ7YkV2ZW49IWJFdmVuO31yZXR1cm4obkNoZWNrJTEwKT09MDt9LGFjY2VwdDpmdW5jdGlvbih2YWx1ZSxlbGVtZW50LHBhcmFtKXtwYXJhbT10eXBlb2YgcGFyYW09PSJzdHJpbmciP3BhcmFtOiJwbmd8anBlP2d8Z2lmIjtyZXR1cm4gdGhpcy5vcHRpb25hbChlbGVtZW50KXx8dmFsdWUubWF0Y2gobmV3IFJlZ0V4cCgiLigiK3BhcmFtKyIpJCIsImkiKSk7fSxlcXVhbFRvOmZ1bmN0aW9uKHZhbHVlLGVsZW1lbnQscGFyYW0pe3JldHVybiB2YWx1ZT09JChwYXJhbSkudmFsKCk7fX19KTt9KShqUXVlcnkpOzsoZnVuY3Rpb24oJCl7dmFyIGFqYXg9JC5hamF4O3ZhciBwZW5kaW5nUmVxdWVzdHM9e307JC5hamF4PWZ1bmN0aW9uKHNldHRpbmdzKXtzZXR0aW5ncz0kLmV4dGVuZChzZXR0aW5ncywkLmV4dGVuZCh7fSwkLmFqYXhTZXR0aW5ncyxzZXR0aW5ncykpO3ZhciBwb3J0PXNldHRpbmdzLnBvcnQ7aWYoc2V0dGluZ3MubW9kZT09ImFib3J0Iil7aWYocGVuZGluZ1JlcXVlc3RzW3BvcnRdKXtwZW5kaW5nUmVxdWVzdHNbcG9ydF0uYWJvcnQoKTt9cmV0dXJuKHBlbmRpbmdSZXF1ZXN0c1twb3J0XT1hamF4LmFwcGx5KHRoaXMsYXJndW1lbnRzKSk7fXJldHVybiBhamF4LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt9O30pKGpRdWVyeSk7OyhmdW5jdGlvbigkKXskLmVhY2goe2ZvY3VzOidmb2N1c2luJyxibHVyOidmb2N1c291dCd9LGZ1bmN0aW9uKG9yaWdpbmFsLGZpeCl7JC5ldmVudC5zcGVjaWFsW2ZpeF09e3NldHVwOmZ1bmN0aW9uKCl7aWYoJC5icm93c2VyLm1zaWUpcmV0dXJuIGZhbHNlO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcihvcmlnaW5hbCwkLmV2ZW50LnNwZWNpYWxbZml4XS5oYW5kbGVyLHRydWUpO30sdGVhcmRvd246ZnVuY3Rpb24oKXtpZigkLmJyb3dzZXIubXNpZSlyZXR1cm4gZmFsc2U7dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKG9yaWdpbmFsLCQuZXZlbnQuc3BlY2lhbFtmaXhdLmhhbmRsZXIsdHJ1ZSk7fSxoYW5kbGVyOmZ1bmN0aW9uKGUpe2FyZ3VtZW50c1swXT0kLmV2ZW50LmZpeChlKTthcmd1bWVudHNbMF0udHlwZT1maXg7cmV0dXJuICQuZXZlbnQuaGFuZGxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt9fTt9KTskLmV4dGVuZCgkLmZuLHtkZWxlZ2F0ZTpmdW5jdGlvbih0eXBlLGRlbGVnYXRlLGhhbmRsZXIpe3JldHVybiB0aGlzLmJpbmQodHlwZSxmdW5jdGlvbihldmVudCl7dmFyIHRhcmdldD0kKGV2ZW50LnRhcmdldCk7aWYodGFyZ2V0LmlzKGRlbGVnYXRlKSl7cmV0dXJuIGhhbmRsZXIuYXBwbHkodGFyZ2V0LGFyZ3VtZW50cyk7fX0pO30sdHJpZ2dlckV2ZW50OmZ1bmN0aW9uKHR5cGUsdGFyZ2V0KXtyZXR1cm4gdGhpcy50cmlnZ2VySGFuZGxlcih0eXBlLFskLmV2ZW50LmZpeCh7dHlwZTp0eXBlLHRhcmdldDp0YXJnZXR9KV0pO319KX0pKGpRdWVyeSk7DQooZnVuY3Rpb24oKXt2YXIgJCQ7JCQ9alF1ZXJ5LmZuLmZsYXNoPWZ1bmN0aW9uKGh0bWxPcHRpb25zLHBsdWdpbk9wdGlvbnMscmVwbGFjZSx1cGRhdGUpe3ZhciBibG9jaz1yZXBsYWNlfHwkJC5yZXBsYWNlO3BsdWdpbk9wdGlvbnM9JCQuY29weSgkJC5wbHVnaW5PcHRpb25zLHBsdWdpbk9wdGlvbnMpO2lmKCEkJC5oYXNGbGFzaChwbHVnaW5PcHRpb25zLnZlcnNpb24pKXtpZihwbHVnaW5PcHRpb25zLmV4cHJlc3NJbnN0YWxsJiYkJC5oYXNGbGFzaCg2LDAsNjUpKXt2YXIgZXhwcmVzc0luc3RhbGxPcHRpb25zPXtmbGFzaHZhcnM6e01NcmVkaXJlY3RVUkw6bG9jYXRpb24sTU1wbGF5ZXJUeXBlOidQbHVnSW4nLE1NZG9jdGl0bGU6alF1ZXJ5KCd0aXRsZScpLnRleHQoKX19O31lbHNlIGlmKHBsdWdpbk9wdGlvbnMudXBkYXRlKXtibG9jaz11cGRhdGV8fCQkLnVwZGF0ZTt9ZWxzZXtyZXR1cm4gdGhpczt9fQ0KaHRtbE9wdGlvbnM9JCQuY29weSgkJC5odG1sT3B0aW9ucyxleHByZXNzSW5zdGFsbE9wdGlvbnMsaHRtbE9wdGlvbnMpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtibG9jay5jYWxsKHRoaXMsJCQuY29weShodG1sT3B0aW9ucykpO30pO307JCQuY29weT1mdW5jdGlvbigpe3ZhciBvcHRpb25zPXt9LGZsYXNodmFycz17fTtmb3IodmFyIGk9MDtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXt2YXIgYXJnPWFyZ3VtZW50c1tpXTtpZihhcmc9PXVuZGVmaW5lZCljb250aW51ZTtqUXVlcnkuZXh0ZW5kKG9wdGlvbnMsYXJnKTtpZihhcmcuZmxhc2h2YXJzPT11bmRlZmluZWQpY29udGludWU7alF1ZXJ5LmV4dGVuZChmbGFzaHZhcnMsYXJnLmZsYXNodmFycyk7fQ0Kb3B0aW9ucy5mbGFzaHZhcnM9Zmxhc2h2YXJzO3JldHVybiBvcHRpb25zO307JCQuaGFzRmxhc2g9ZnVuY3Rpb24oKXtpZigvaGFzRmxhc2hcPXRydWUvLnRlc3QobG9jYXRpb24pKXJldHVybiB0cnVlO2lmKC9oYXNGbGFzaFw9ZmFsc2UvLnRlc3QobG9jYXRpb24pKXJldHVybiBmYWxzZTt2YXIgcHY9JCQuaGFzRmxhc2gucGxheWVyVmVyc2lvbigpLm1hdGNoKC9cZCsvZyk7dmFyIHJ2PVN0cmluZyhbYXJndW1lbnRzWzBdLGFyZ3VtZW50c1sxXSxhcmd1bWVudHNbMl1dKS5tYXRjaCgvXGQrL2cpfHxTdHJpbmcoJCQucGx1Z2luT3B0aW9ucy52ZXJzaW9uKS5tYXRjaCgvXGQrL2cpO2Zvcih2YXIgaT0wO2k8MztpKyspe3B2W2ldPXBhcnNlSW50KHB2W2ldfHwwKTtydltpXT1wYXJzZUludChydltpXXx8MCk7aWYocHZbaV08cnZbaV0pcmV0dXJuIGZhbHNlO2lmKHB2W2ldPnJ2W2ldKXJldHVybiB0cnVlO30NCnJldHVybiB0cnVlO307JCQuaGFzRmxhc2gucGxheWVyVmVyc2lvbj1mdW5jdGlvbigpe3RyeXt0cnl7dmFyIGF4bz1uZXcgQWN0aXZlWE9iamVjdCgnU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2guNicpO3RyeXtheG8uQWxsb3dTY3JpcHRBY2Nlc3M9J2Fsd2F5cyc7fQ0KY2F0Y2goZSl7cmV0dXJuJzYsMCwwJzt9fWNhdGNoKGUpe30NCnJldHVybiBuZXcgQWN0aXZlWE9iamVjdCgnU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2gnKS5HZXRWYXJpYWJsZSgnJHZlcnNpb24nKS5yZXBsYWNlKC9cRCsvZywnLCcpLm1hdGNoKC9eLD8oLispLD8kLylbMV07fWNhdGNoKGUpe3RyeXtpZihuYXZpZ2F0b3IubWltZVR5cGVzWyJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCJdLmVuYWJsZWRQbHVnaW4pe3JldHVybihuYXZpZ2F0b3IucGx1Z2luc1siU2hvY2t3YXZlIEZsYXNoIDIuMCJdfHxuYXZpZ2F0b3IucGx1Z2luc1siU2hvY2t3YXZlIEZsYXNoIl0pLmRlc2NyaXB0aW9uLnJlcGxhY2UoL1xEKy9nLCIsIikubWF0Y2goL14sPyguKyksPyQvKVsxXTt9fWNhdGNoKGUpe319DQpyZXR1cm4nMCwwLDAnO307JCQuaHRtbE9wdGlvbnM9e2hlaWdodDoyNDAsZmxhc2h2YXJzOnt9LHBsdWdpbnNwYWdlOidodHRwOi8vd3d3LmFkb2JlLmNvbS9nby9nZXRmbGFzaHBsYXllcicsc3JjOicjJyx0eXBlOidhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCcsd2lkdGg6MzIwfTskJC5wbHVnaW5PcHRpb25zPXtleHByZXNzSW5zdGFsbDpmYWxzZSx1cGRhdGU6dHJ1ZSx2ZXJzaW9uOic2LjAuNjUnfTskJC5yZXBsYWNlPWZ1bmN0aW9uKGh0bWxPcHRpb25zKXt0aGlzLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iYWx0Ij4nK3RoaXMuaW5uZXJIVE1MKyc8L2Rpdj4nO2pRdWVyeSh0aGlzKS5hZGRDbGFzcygnZmxhc2gtcmVwbGFjZWQnKS5wcmVwZW5kKCQkLnRyYW5zZm9ybShodG1sT3B0aW9ucykpO307JCQudXBkYXRlPWZ1bmN0aW9uKGh0bWxPcHRpb25zKXt2YXIgdXJsPVN0cmluZyhsb2NhdGlvbikuc3BsaXQoJz8nKTt1cmwuc3BsaWNlKDEsMCwnP2hhc0ZsYXNoPXRydWUmJyk7dXJsPXVybC5qb2luKCcnKTt2YXIgbXNnPSc8cD5UaGlzIGNvbnRlbnQgcmVxdWlyZXMgdGhlIEZsYXNoIFBsYXllci4gPGEgaHJlZj0iaHR0cDovL3d3dy5hZG9iZS5jb20vZ28vZ2V0Zmxhc2hwbGF5ZXIiPkRvd25sb2FkIEZsYXNoIFBsYXllcjwvYT4uIEFscmVhZHkgaGF2ZSBGbGFzaCBQbGF5ZXI/IDxhIGhyZWY9IicrdXJsKyciPkNsaWNrIGhlcmUuPC9hPjwvcD4nO3RoaXMuaW5uZXJIVE1MPSc8c3BhbiBjbGFzcz0iYWx0Ij4nK3RoaXMuaW5uZXJIVE1MKyc8L3NwYW4+JztqUXVlcnkodGhpcykuYWRkQ2xhc3MoJ2ZsYXNoLXVwZGF0ZScpLnByZXBlbmQobXNnKTt9O2Z1bmN0aW9uIHRvQXR0cmlidXRlU3RyaW5nKCl7dmFyIHM9Jyc7Zm9yKHZhciBrZXkgaW4gdGhpcykNCmlmKHR5cGVvZiB0aGlzW2tleV0hPSdmdW5jdGlvbicpcys9a2V5Kyc9IicrdGhpc1trZXldKyciICc7cmV0dXJuIHM7fTtmdW5jdGlvbiB0b0ZsYXNodmFyc1N0cmluZygpe3ZhciBzPScnO2Zvcih2YXIga2V5IGluIHRoaXMpDQppZih0eXBlb2YgdGhpc1trZXldIT0nZnVuY3Rpb24nKXMrPWtleSsnPScrZW5jb2RlVVJJQ29tcG9uZW50KHRoaXNba2V5XSkrJyYnO3JldHVybiBzLnJlcGxhY2UoLyYkLywnJyk7fTskJC50cmFuc2Zvcm09ZnVuY3Rpb24oaHRtbE9wdGlvbnMpe2h0bWxPcHRpb25zLnRvU3RyaW5nPXRvQXR0cmlidXRlU3RyaW5nO2lmKGh0bWxPcHRpb25zLmZsYXNodmFycylodG1sT3B0aW9ucy5mbGFzaHZhcnMudG9TdHJpbmc9dG9GbGFzaHZhcnNTdHJpbmc7cmV0dXJuJzxlbWJlZCAnK1N0cmluZyhodG1sT3B0aW9ucykrJy8+Jzt9O2lmKHdpbmRvdy5hdHRhY2hFdmVudCl7d2luZG93LmF0dGFjaEV2ZW50KCJvbmJlZm9yZXVubG9hZCIsZnVuY3Rpb24oKXtfX2ZsYXNoX3VubG9hZEhhbmRsZXI9ZnVuY3Rpb24oKXt9O19fZmxhc2hfc2F2ZWRVbmxvYWRIYW5kbGVyPWZ1bmN0aW9uKCl7fTt9KTt9fSkoKTsoZnVuY3Rpb24oJCl7JC5mbi5saWdodEJveD1mdW5jdGlvbihzZXR0aW5ncyl7c2V0dGluZ3M9alF1ZXJ5LmV4dGVuZCh7b3ZlcmxheUJnQ29sb3I6JyMwMDAnLG92ZXJsYXlPcGFjaXR5OjAuOCxmaXhlZE5hdmlnYXRpb246ZmFsc2UsaW1hZ2VMb2FkaW5nOidTY3JpcHRzL2xpZ2h0Ym94L2ltYWdlcy9saWdodGJveC1pY28tbG9hZGluZy5naWYnLGltYWdlQnRuUHJldjonU2NyaXB0cy9saWdodGJveC9pbWFnZXMvbGlnaHRib3gtYnRuLXByZXYuZ2lmJyxpbWFnZUJ0bk5leHQ6J1NjcmlwdHMvbGlnaHRib3gvaW1hZ2VzL2xpZ2h0Ym94LWJ0bi1uZXh0LmdpZicsaW1hZ2VCdG5DbG9zZTonU2NyaXB0cy9saWdodGJveC9pbWFnZXMvbGlnaHRib3gtYnRuLWNsb3NlLmdpZicsaW1hZ2VCbGFuazonU2NyaXB0cy9saWdodGJveC9pbWFnZXMvbGlnaHRib3gtYmxhbmsuZ2lmJyxjb250YWluZXJCb3JkZXJTaXplOjEwLGNvbnRhaW5lclJlc2l6ZVNwZWVkOjQwMCx0eHRJbWFnZTonSW1hZ2UnLHR4dE9mOidvZicsa2V5VG9DbG9zZTonYycsa2V5VG9QcmV2OidwJyxrZXlUb05leHQ6J24nLGltYWdlQXJyYXk6W10sYWN0aXZlSW1hZ2U6MH0sc2V0dGluZ3MpO3ZhciBqUXVlcnlNYXRjaGVkT2JqPXRoaXM7ZnVuY3Rpb24gX2luaXRpYWxpemUoKXtfc3RhcnQodGhpcyxqUXVlcnlNYXRjaGVkT2JqKTtyZXR1cm4gZmFsc2U7fQ0KZnVuY3Rpb24gX3N0YXJ0KG9iakNsaWNrZWQsalF1ZXJ5TWF0Y2hlZE9iail7JCgnLm1lYXN1cmVkTEFZT1VULCBlbWJlZCwgb2JqZWN0LCBzZWxlY3QnKS5jc3Moeyd2aXNpYmlsaXR5JzonaGlkZGVuJ30pO19zZXRfaW50ZXJmYWNlKCk7c2V0dGluZ3MuaW1hZ2VBcnJheS5sZW5ndGg9MDtzZXR0aW5ncy5hY3RpdmVJbWFnZT0wO2lmKGpRdWVyeU1hdGNoZWRPYmoubGVuZ3RoPT0xKXtzZXR0aW5ncy5pbWFnZUFycmF5LnB1c2gobmV3IEFycmF5KG9iakNsaWNrZWQuZ2V0QXR0cmlidXRlKCdocmVmJyksb2JqQ2xpY2tlZC5nZXRBdHRyaWJ1dGUoJ3RpdGxlJykpKTt9ZWxzZXtmb3IodmFyIGk9MDtpPGpRdWVyeU1hdGNoZWRPYmoubGVuZ3RoO2krKyl7c2V0dGluZ3MuaW1hZ2VBcnJheS5wdXNoKG5ldyBBcnJheShqUXVlcnlNYXRjaGVkT2JqW2ldLmdldEF0dHJpYnV0ZSgnaHJlZicpLGpRdWVyeU1hdGNoZWRPYmpbaV0uZ2V0QXR0cmlidXRlKCd0aXRsZScpKSk7fX0NCndoaWxlKHNldHRpbmdzLmltYWdlQXJyYXlbc2V0dGluZ3MuYWN0aXZlSW1hZ2VdWzBdIT1vYmpDbGlja2VkLmdldEF0dHJpYnV0ZSgnaHJlZicpKXtzZXR0aW5ncy5hY3RpdmVJbWFnZSsrO30NCl9zZXRfaW1hZ2VfdG9fdmlldygpO30NCmZ1bmN0aW9uIF9zZXRfaW50ZXJmYWNlKCl7JCgnYm9keScpLmFwcGVuZCgnPGRpdiBpZD0ianF1ZXJ5LW92ZXJsYXkiPjwvZGl2PjxkaXYgaWQ9ImpxdWVyeS1saWdodGJveCI+PGRpdiBpZD0ibGlnaHRib3gtY29udGFpbmVyLWltYWdlLWJveCI+PGRpdiBpZD0ibGlnaHRib3gtY29udGFpbmVyLWltYWdlIj48aW1nIGlkPSJsaWdodGJveC1pbWFnZSI+PGRpdiBzdHlsZT0iIiBpZD0ibGlnaHRib3gtbmF2Ij48YSAgaWQ9ImxpZ2h0Ym94LW5hdi1idG5QcmV2Ij48L2E+PGEgIGlkPSJsaWdodGJveC1uYXYtYnRuTmV4dCI+PC9hPjwvZGl2PjxkaXYgaWQ9ImxpZ2h0Ym94LWxvYWRpbmciPjxhICBpZD0ibGlnaHRib3gtbG9hZGluZy1saW5rIj48aW1nIHNyYz0iJytzZXR0aW5ncy5pbWFnZUxvYWRpbmcrJyI+PC9hPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImxpZ2h0Ym94LWNvbnRhaW5lci1pbWFnZS1kYXRhLWJveCI+PGRpdiBpZD0ibGlnaHRib3gtY29udGFpbmVyLWltYWdlLWRhdGEiPjxkaXYgaWQ9ImxpZ2h0Ym94LWltYWdlLWRldGFpbHMiPjxzcGFuIGlkPSJsaWdodGJveC1pbWFnZS1kZXRhaWxzLWNhcHRpb24iPjwvc3Bhbj48c3BhbiBpZD0ibGlnaHRib3gtaW1hZ2UtZGV0YWlscy1jdXJyZW50TnVtYmVyIj48L3NwYW4+PC9kaXY+PGRpdiBpZD0ibGlnaHRib3gtc2VjTmF2Ij48YSAgaWQ9ImxpZ2h0Ym94LXNlY05hdi1idG5DbG9zZSI+PGltZyBzcmM9Iicrc2V0dGluZ3MuaW1hZ2VCdG5DbG9zZSsnIj48L2E+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+Jyk7dmFyIGFyclBhZ2VTaXplcz1fX19nZXRQYWdlU2l6ZSgpOyQoJyNqcXVlcnktb3ZlcmxheScpLmNzcyh7YmFja2dyb3VuZENvbG9yOnNldHRpbmdzLm92ZXJsYXlCZ0NvbG9yLG9wYWNpdHk6c2V0dGluZ3Mub3ZlcmxheU9wYWNpdHksd2lkdGg6YXJyUGFnZVNpemVzWzBdLGhlaWdodDphcnJQYWdlU2l6ZXNbMV19KS5mYWRlSW4oKTt2YXIgYXJyUGFnZVNjcm9sbD1fX19nZXRQYWdlU2Nyb2xsKCk7JCgnI2pxdWVyeS1saWdodGJveCcpLmNzcyh7dG9wOmFyclBhZ2VTY3JvbGxbMV0rKGFyclBhZ2VTaXplc1szXS8xMCksbGVmdDphcnJQYWdlU2Nyb2xsWzBdfSkuc2hvdygpOyQoJyNqcXVlcnktb3ZlcmxheSwjanF1ZXJ5LWxpZ2h0Ym94JykuY2xpY2soZnVuY3Rpb24oKXtfZmluaXNoKCk7fSk7JCgnI2xpZ2h0Ym94LWxvYWRpbmctbGluaywjbGlnaHRib3gtc2VjTmF2LWJ0bkNsb3NlJykuY2xpY2soZnVuY3Rpb24oKXtfZmluaXNoKCk7cmV0dXJuIGZhbHNlO30pOyQod2luZG93KS5yZXNpemUoZnVuY3Rpb24oKXt2YXIgYXJyUGFnZVNpemVzPV9fX2dldFBhZ2VTaXplKCk7JCgnI2pxdWVyeS1vdmVybGF5JykuY3NzKHt3aWR0aDphcnJQYWdlU2l6ZXNbMF0saGVpZ2h0OmFyclBhZ2VTaXplc1sxXX0pO3ZhciBhcnJQYWdlU2Nyb2xsPV9fX2dldFBhZ2VTY3JvbGwoKTskKCcjanF1ZXJ5LWxpZ2h0Ym94JykuY3NzKHt0b3A6YXJyUGFnZVNjcm9sbFsxXSsoYXJyUGFnZVNpemVzWzNdLzEwKSxsZWZ0OmFyclBhZ2VTY3JvbGxbMF19KTt9KTt9DQpmdW5jdGlvbiBfc2V0X2ltYWdlX3RvX3ZpZXcoKXskKCcjbGlnaHRib3gtbG9hZGluZycpLnNob3coKTtpZihzZXR0aW5ncy5maXhlZE5hdmlnYXRpb24peyQoJyNsaWdodGJveC1pbWFnZSwjbGlnaHRib3gtY29udGFpbmVyLWltYWdlLWRhdGEtYm94LCNsaWdodGJveC1pbWFnZS1kZXRhaWxzLWN1cnJlbnROdW1iZXInKS5oaWRlKCk7fWVsc2V7JCgnI2xpZ2h0Ym94LWltYWdlLCNsaWdodGJveC1uYXYsI2xpZ2h0Ym94LW5hdi1idG5QcmV2LCNsaWdodGJveC1uYXYtYnRuTmV4dCwjbGlnaHRib3gtY29udGFpbmVyLWltYWdlLWRhdGEtYm94LCNsaWdodGJveC1pbWFnZS1kZXRhaWxzLWN1cnJlbnROdW1iZXInKS5oaWRlKCk7fQ0KdmFyIG9iakltYWdlUHJlbG9hZGVyPW5ldyBJbWFnZSgpO29iakltYWdlUHJlbG9hZGVyLm9ubG9hZD1mdW5jdGlvbigpeyQoJyNsaWdodGJveC1pbWFnZScpLmF0dHIoJ3NyYycsc2V0dGluZ3MuaW1hZ2VBcnJheVtzZXR0aW5ncy5hY3RpdmVJbWFnZV1bMF0pO19yZXNpemVfY29udGFpbmVyX2ltYWdlX2JveChvYmpJbWFnZVByZWxvYWRlci53aWR0aCxvYmpJbWFnZVByZWxvYWRlci5oZWlnaHQpO29iakltYWdlUHJlbG9hZGVyLm9ubG9hZD1mdW5jdGlvbigpe307fTtvYmpJbWFnZVByZWxvYWRlci5zcmM9c2V0dGluZ3MuaW1hZ2VBcnJheVtzZXR0aW5ncy5hY3RpdmVJbWFnZV1bMF07fTtmdW5jdGlvbiBfcmVzaXplX2NvbnRhaW5lcl9pbWFnZV9ib3goaW50SW1hZ2VXaWR0aCxpbnRJbWFnZUhlaWdodCl7dmFyIGludEN1cnJlbnRXaWR0aD0kKCcjbGlnaHRib3gtY29udGFpbmVyLWltYWdlLWJveCcpLndpZHRoKCk7dmFyIGludEN1cnJlbnRIZWlnaHQ9JCgnI2xpZ2h0Ym94LWNvbnRhaW5lci1pbWFnZS1ib3gnKS5oZWlnaHQoKTt2YXIgaW50V2lkdGg9KGludEltYWdlV2lkdGgrKHNldHRpbmdzLmNvbnRhaW5lckJvcmRlclNpemUqMikpO3ZhciBpbnRIZWlnaHQ9KGludEltYWdlSGVpZ2h0KyhzZXR0aW5ncy5jb250YWluZXJCb3JkZXJTaXplKjIpKTt2YXIgaW50RGlmZlc9aW50Q3VycmVudFdpZHRoLWludFdpZHRoO3ZhciBpbnREaWZmSD1pbnRDdXJyZW50SGVpZ2h0LWludEhlaWdodDskKCcjbGlnaHRib3gtY29udGFpbmVyLWltYWdlLWJveCcpLmFuaW1hdGUoe3dpZHRoOmludFdpZHRoLGhlaWdodDppbnRIZWlnaHR9LHNldHRpbmdzLmNvbnRhaW5lclJlc2l6ZVNwZWVkLGZ1bmN0aW9uKCl7X3Nob3dfaW1hZ2UoKTt9KTtpZigoaW50RGlmZlc9PTApJiYoaW50RGlmZkg9PTApKXtpZigkLmJyb3dzZXIubXNpZSl7X19fcGF1c2UoMjUwKTt9ZWxzZXtfX19wYXVzZSgxMDApO319DQokKCcjbGlnaHRib3gtY29udGFpbmVyLWltYWdlLWRhdGEtYm94JykuY3NzKHt3aWR0aDppbnRJbWFnZVdpZHRofSk7JCgnI2xpZ2h0Ym94LW5hdi1idG5QcmV2LCNsaWdodGJveC1uYXYtYnRuTmV4dCcpLmNzcyh7aGVpZ2h0OmludEltYWdlSGVpZ2h0KyhzZXR0aW5ncy5jb250YWluZXJCb3JkZXJTaXplKjIpfSk7fTtmdW5jdGlvbiBfc2hvd19pbWFnZSgpeyQoJyNsaWdodGJveC1sb2FkaW5nJykuaGlkZSgpOyQoJyNsaWdodGJveC1pbWFnZScpLmZhZGVJbihmdW5jdGlvbigpe19zaG93X2ltYWdlX2RhdGEoKTtfc2V0X25hdmlnYXRpb24oKTt9KTtfcHJlbG9hZF9uZWlnaGJvcl9pbWFnZXMoKTt9O2Z1bmN0aW9uIF9zaG93X2ltYWdlX2RhdGEoKXskKCcjbGlnaHRib3gtY29udGFpbmVyLWltYWdlLWRhdGEtYm94Jykuc2xpZGVEb3duKCdmYXN0Jyk7JCgnI2xpZ2h0Ym94LWltYWdlLWRldGFpbHMtY2FwdGlvbicpLmhpZGUoKTtpZihzZXR0aW5ncy5pbWFnZUFycmF5W3NldHRpbmdzLmFjdGl2ZUltYWdlXVsxXSl7JCgnI2xpZ2h0Ym94LWltYWdlLWRldGFpbHMtY2FwdGlvbicpLmh0bWwoc2V0dGluZ3MuaW1hZ2VBcnJheVtzZXR0aW5ncy5hY3RpdmVJbWFnZV1bMV0pLnNob3coKTt9DQppZihzZXR0aW5ncy5pbWFnZUFycmF5Lmxlbmd0aD4xKXskKCcjbGlnaHRib3gtaW1hZ2UtZGV0YWlscy1jdXJyZW50TnVtYmVyJykuaHRtbChzZXR0aW5ncy50eHRJbWFnZSsnICcrKHNldHRpbmdzLmFjdGl2ZUltYWdlKzEpKycgJytzZXR0aW5ncy50eHRPZisnICcrc2V0dGluZ3MuaW1hZ2VBcnJheS5sZW5ndGgpLnNob3coKTt9fQ0KZnVuY3Rpb24gX3NldF9uYXZpZ2F0aW9uKCl7JCgnI2xpZ2h0Ym94LW5hdicpLnNob3coKTskKCcjbGlnaHRib3gtbmF2LWJ0blByZXYsI2xpZ2h0Ym94LW5hdi1idG5OZXh0JykuY3NzKHsnYmFja2dyb3VuZCc6J3RyYW5zcGFyZW50IHVybCgnK3NldHRpbmdzLmltYWdlQmxhbmsrJykgbm8tcmVwZWF0J30pO2lmKHNldHRpbmdzLmFjdGl2ZUltYWdlIT0wKXtpZihzZXR0aW5ncy5maXhlZE5hdmlnYXRpb24peyQoJyNsaWdodGJveC1uYXYtYnRuUHJldicpLmNzcyh7J2JhY2tncm91bmQnOid1cmwoJytzZXR0aW5ncy5pbWFnZUJ0blByZXYrJykgbGVmdCAxNSUgbm8tcmVwZWF0J30pLnVuYmluZCgpLmJpbmQoJ2NsaWNrJyxmdW5jdGlvbigpe3NldHRpbmdzLmFjdGl2ZUltYWdlPXNldHRpbmdzLmFjdGl2ZUltYWdlLTE7X3NldF9pbWFnZV90b192aWV3KCk7cmV0dXJuIGZhbHNlO30pO31lbHNleyQoJyNsaWdodGJveC1uYXYtYnRuUHJldicpLnVuYmluZCgpLmhvdmVyKGZ1bmN0aW9uKCl7JCh0aGlzKS5jc3MoeydiYWNrZ3JvdW5kJzondXJsKCcrc2V0dGluZ3MuaW1hZ2VCdG5QcmV2KycpIGxlZnQgMTUlIG5vLXJlcGVhdCd9KTt9LGZ1bmN0aW9uKCl7JCh0aGlzKS5jc3MoeydiYWNrZ3JvdW5kJzondHJhbnNwYXJlbnQgdXJsKCcrc2V0dGluZ3MuaW1hZ2VCbGFuaysnKSBuby1yZXBlYXQnfSk7fSkuc2hvdygpLmJpbmQoJ2NsaWNrJyxmdW5jdGlvbigpe3NldHRpbmdzLmFjdGl2ZUltYWdlPXNldHRpbmdzLmFjdGl2ZUltYWdlLTE7X3NldF9pbWFnZV90b192aWV3KCk7cmV0dXJuIGZhbHNlO30pO319DQppZihzZXR0aW5ncy5hY3RpdmVJbWFnZSE9KHNldHRpbmdzLmltYWdlQXJyYXkubGVuZ3RoLTEpKXtpZihzZXR0aW5ncy5maXhlZE5hdmlnYXRpb24peyQoJyNsaWdodGJveC1uYXYtYnRuTmV4dCcpLmNzcyh7J2JhY2tncm91bmQnOid1cmwoJytzZXR0aW5ncy5pbWFnZUJ0bk5leHQrJykgcmlnaHQgMTUlIG5vLXJlcGVhdCd9KS51bmJpbmQoKS5iaW5kKCdjbGljaycsZnVuY3Rpb24oKXtzZXR0aW5ncy5hY3RpdmVJbWFnZT1zZXR0aW5ncy5hY3RpdmVJbWFnZSsxO19zZXRfaW1hZ2VfdG9fdmlldygpO3JldHVybiBmYWxzZTt9KTt9ZWxzZXskKCcjbGlnaHRib3gtbmF2LWJ0bk5leHQnKS51bmJpbmQoKS5ob3ZlcihmdW5jdGlvbigpeyQodGhpcykuY3NzKHsnYmFja2dyb3VuZCc6J3VybCgnK3NldHRpbmdzLmltYWdlQnRuTmV4dCsnKSByaWdodCAxNSUgbm8tcmVwZWF0J30pO30sZnVuY3Rpb24oKXskKHRoaXMpLmNzcyh7J2JhY2tncm91bmQnOid0cmFuc3BhcmVudCB1cmwoJytzZXR0aW5ncy5pbWFnZUJsYW5rKycpIG5vLXJlcGVhdCd9KTt9KS5zaG93KCkuYmluZCgnY2xpY2snLGZ1bmN0aW9uKCl7c2V0dGluZ3MuYWN0aXZlSW1hZ2U9c2V0dGluZ3MuYWN0aXZlSW1hZ2UrMTtfc2V0X2ltYWdlX3RvX3ZpZXcoKTtyZXR1cm4gZmFsc2U7fSk7fX0NCl9lbmFibGVfa2V5Ym9hcmRfbmF2aWdhdGlvbigpO30NCmZ1bmN0aW9uIF9lbmFibGVfa2V5Ym9hcmRfbmF2aWdhdGlvbigpeyQoZG9jdW1lbnQpLmtleWRvd24oZnVuY3Rpb24ob2JqRXZlbnQpe19rZXlib2FyZF9hY3Rpb24ob2JqRXZlbnQpO30pO30NCmZ1bmN0aW9uIF9kaXNhYmxlX2tleWJvYXJkX25hdmlnYXRpb24oKXskKGRvY3VtZW50KS51bmJpbmQoKTt9DQpmdW5jdGlvbiBfa2V5Ym9hcmRfYWN0aW9uKG9iakV2ZW50KXtpZihvYmpFdmVudD09bnVsbCl7a2V5Y29kZT1ldmVudC5rZXlDb2RlO2VzY2FwZUtleT0yNzt9ZWxzZXtrZXljb2RlPW9iakV2ZW50LmtleUNvZGU7ZXNjYXBlS2V5PW9iakV2ZW50LkRPTV9WS19FU0NBUEU7fQ0Ka2V5PVN0cmluZy5mcm9tQ2hhckNvZGUoa2V5Y29kZSkudG9Mb3dlckNhc2UoKTtpZigoa2V5PT1zZXR0aW5ncy5rZXlUb0Nsb3NlKXx8KGtleT09J3gnKXx8KGtleWNvZGU9PWVzY2FwZUtleSkpe19maW5pc2goKTt9DQppZigoa2V5PT1zZXR0aW5ncy5rZXlUb1ByZXYpfHwoa2V5Y29kZT09MzcpKXtpZihzZXR0aW5ncy5hY3RpdmVJbWFnZSE9MCl7c2V0dGluZ3MuYWN0aXZlSW1hZ2U9c2V0dGluZ3MuYWN0aXZlSW1hZ2UtMTtfc2V0X2ltYWdlX3RvX3ZpZXcoKTtfZGlzYWJsZV9rZXlib2FyZF9uYXZpZ2F0aW9uKCk7fX0NCmlmKChrZXk9PXNldHRpbmdzLmtleVRvTmV4dCl8fChrZXljb2RlPT0zOSkpe2lmKHNldHRpbmdzLmFjdGl2ZUltYWdlIT0oc2V0dGluZ3MuaW1hZ2VBcnJheS5sZW5ndGgtMSkpe3NldHRpbmdzLmFjdGl2ZUltYWdlPXNldHRpbmdzLmFjdGl2ZUltYWdlKzE7X3NldF9pbWFnZV90b192aWV3KCk7X2Rpc2FibGVfa2V5Ym9hcmRfbmF2aWdhdGlvbigpO319fQ0KZnVuY3Rpb24gX3ByZWxvYWRfbmVpZ2hib3JfaW1hZ2VzKCl7aWYoKHNldHRpbmdzLmltYWdlQXJyYXkubGVuZ3RoLTEpPnNldHRpbmdzLmFjdGl2ZUltYWdlKXtvYmpOZXh0PW5ldyBJbWFnZSgpO29iak5leHQuc3JjPXNldHRpbmdzLmltYWdlQXJyYXlbc2V0dGluZ3MuYWN0aXZlSW1hZ2UrMV1bMF07fQ0KaWYoc2V0dGluZ3MuYWN0aXZlSW1hZ2U+MCl7b2JqUHJldj1uZXcgSW1hZ2UoKTtvYmpQcmV2LnNyYz1zZXR0aW5ncy5pbWFnZUFycmF5W3NldHRpbmdzLmFjdGl2ZUltYWdlLTFdWzBdO319DQpmdW5jdGlvbiBfZmluaXNoKCl7JCgnI2pxdWVyeS1saWdodGJveCcpLnJlbW92ZSgpOyQoJyNqcXVlcnktb3ZlcmxheScpLmZhZGVPdXQoZnVuY3Rpb24oKXskKCcjanF1ZXJ5LW92ZXJsYXknKS5yZW1vdmUoKTt9KTskKCcubWVhc3VyZWRMQVlPVVQsIGVtYmVkLCBvYmplY3QsIHNlbGVjdCcpLmNzcyh7J3Zpc2liaWxpdHknOid2aXNpYmxlJ30pO30NCmZ1bmN0aW9uIF9fX2dldFBhZ2VTaXplKCl7dmFyIHhTY3JvbGwseVNjcm9sbDtpZih3aW5kb3cuaW5uZXJIZWlnaHQmJndpbmRvdy5zY3JvbGxNYXhZKXt4U2Nyb2xsPXdpbmRvdy5pbm5lcldpZHRoK3dpbmRvdy5zY3JvbGxNYXhYO3lTY3JvbGw9d2luZG93LmlubmVySGVpZ2h0K3dpbmRvdy5zY3JvbGxNYXhZO31lbHNlIGlmKGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0PmRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0KXt4U2Nyb2xsPWRvY3VtZW50LmJvZHkuc2Nyb2xsV2lkdGg7eVNjcm9sbD1kb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodDt9ZWxzZXt4U2Nyb2xsPWRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGg7eVNjcm9sbD1kb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDt9DQp2YXIgd2luZG93V2lkdGgsd2luZG93SGVpZ2h0O2lmKHNlbGYuaW5uZXJIZWlnaHQpe2lmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCl7d2luZG93V2lkdGg9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO31lbHNle3dpbmRvd1dpZHRoPXNlbGYuaW5uZXJXaWR0aDt9DQp3aW5kb3dIZWlnaHQ9c2VsZi5pbm5lckhlaWdodDt9ZWxzZSBpZihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpe3dpbmRvd1dpZHRoPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDt3aW5kb3dIZWlnaHQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDt9ZWxzZSBpZihkb2N1bWVudC5ib2R5KXt3aW5kb3dXaWR0aD1kb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoO3dpbmRvd0hlaWdodD1kb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodDt9DQppZih5U2Nyb2xsPHdpbmRvd0hlaWdodCl7cGFnZUhlaWdodD13aW5kb3dIZWlnaHQ7fWVsc2V7cGFnZUhlaWdodD15U2Nyb2xsO30NCmlmKHhTY3JvbGw8d2luZG93V2lkdGgpe3BhZ2VXaWR0aD14U2Nyb2xsO31lbHNle3BhZ2VXaWR0aD13aW5kb3dXaWR0aDt9DQphcnJheVBhZ2VTaXplPW5ldyBBcnJheShwYWdlV2lkdGgscGFnZUhlaWdodCx3aW5kb3dXaWR0aCx3aW5kb3dIZWlnaHQpO3JldHVybiBhcnJheVBhZ2VTaXplO307ZnVuY3Rpb24gX19fZ2V0UGFnZVNjcm9sbCgpe3ZhciB4U2Nyb2xsLHlTY3JvbGw7aWYoc2VsZi5wYWdlWU9mZnNldCl7eVNjcm9sbD1zZWxmLnBhZ2VZT2Zmc2V0O3hTY3JvbGw9c2VsZi5wYWdlWE9mZnNldDt9ZWxzZSBpZihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3Ape3lTY3JvbGw9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDt4U2Nyb2xsPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0O31lbHNlIGlmKGRvY3VtZW50LmJvZHkpe3lTY3JvbGw9ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7eFNjcm9sbD1kb2N1bWVudC5ib2R5LnNjcm9sbExlZnQ7fQ0KYXJyYXlQYWdlU2Nyb2xsPW5ldyBBcnJheSh4U2Nyb2xsLHlTY3JvbGwpO3JldHVybiBhcnJheVBhZ2VTY3JvbGw7fTtmdW5jdGlvbiBfX19wYXVzZShtcyl7dmFyIGRhdGU9bmV3IERhdGUoKTtjdXJEYXRlPW51bGw7ZG97dmFyIGN1ckRhdGU9bmV3IERhdGUoKTt9DQp3aGlsZShjdXJEYXRlLWRhdGU8bXMpO307cmV0dXJuIHRoaXMudW5iaW5kKCdjbGljaycpLmNsaWNrKF9pbml0aWFsaXplKTt9O30pKGpRdWVyeSk7DQpqUXVlcnkudmFsaWRhdG9yLmFkZE1ldGhvZCggICAgICAgICAidmluVVMiLCAgICAgICAgIGZ1bmN0aW9uKHYpeyAgICAgICAgICAgICAgICAgaWYgKHYubGVuZ3RoICE9IDE3KSAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7ICAgICAgICAgICAgICAgICB2YXIgaSwgbiwgZCwgZiwgY2QsIGNkdjsgICAgICAgICAgICAgICAgIHZhciBMTCAgICA9IFsiQSIsIkIiLCJDIiwiRCIsIkUiLCJGIiwiRyIsIkgiLCJKIiwiSyIsIkwiLCJNIiwiTiIsIlAiLCJSIiwiUyIsIlQiLCJVIiwiViIsIlciLCJYIiwiWSIsIloiXTsgICAgICAgICAgICAgICAgIHZhciBWTCAgICA9IFsxLDIsMyw0LDUsNiw3LDgsMSwyLDMsNCw1LDcsOSwyLDMsNCw1LDYsNyw4LDldOyAgICAgICAgICAgICAgICAgdmFyIEZMICAgID0gWzgsNyw2LDUsNCwzLDIsMTAsMCw5LDgsNyw2LDUsNCwzLDJdOyAgICAgICAgICAgICAgICAgdmFyIHJzICAgID0gMDsgICAgICAgICAgICAgICAgIGZvcihpID0gMDsgaSA8IDE3OyBpKyspeyAgICAgICAgICAgICAgICAgICAgIGYgPSBGTFtpXTsgICAgICAgICAgICAgICAgICAgICBkID0gdi5zbGljZShpLGkrMSk7ICAgICAgICAgICAgICAgICAgICAgaWYoaSA9PSA4KXsgICAgICAgICAgICAgICAgICAgICAgICAgY2R2ID0gZDsgICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgaWYoIWlzTmFOKGQpKXsgICAgICAgICAgICAgICAgICAgICAgICAgZCAqPSBmOyAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICBlbHNleyAgICAgICAgICAgICAgICAgICAgICAgICBmb3IobiA9IDA7IG4gPCBMTC5sZW5ndGg7IG4rKyl7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihkLnRvVXBwZXJDYXNlKCkgPT09IExMW25dKXsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkID0gVkxbbl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZCAqPSBmOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGlzTmFOKGNkdikgJiYgbiA9PSA4KXsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2R2ID0gTExbbl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgIHJzICs9IGQ7ICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICBjZCA9IHJzICUgMTE7ICAgICAgICAgICAgICAgICBpZihjZCA9PSAxMCl7Y2QgPSAiWCI7fSAgICAgICAgICAgICAgICAgaWYoY2QgPT0gY2R2KXtyZXR1cm4gdHJ1ZTt9ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7ICAgICAgICAgIH0sICAgICAgICAgIlRoZSBzcGVjaWZpZWQgdmVoaWNsZSBpZGVudGlmaWNhdGlvbiBudW1iZXIgKFZJTikgaXMgaW52YWxpZC4iICk7IA0KDQoNCg0K]]></data>
	</file>
	<file>
	  <filename>/includes/_notes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/_notes/dwsync.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+DQo8ZHdzeW5jPg0KPGZpbGUgbmFtZT0iZmFyYnRhc3RpYy5qcyIgc2VydmVyPSI5OC4xMjkuMTA1LjIwIiBsb2NhbD0iMTI5MDUzNzQxNTg3NjU2MjUwIiByZW1vdGU9IjEyOTA1Mzg0NTIwMDAwMDAwMCIgLz4NCjxmaWxlIG5hbWU9Ik1FXzEuMDAuMDAuanMiIHNlcnZlcj0iOTguMTI5LjEwNS4yMCIgbG9jYWw9IjEyOTA1Mzc0NDI4MDE1NjI1MCIgcmVtb3RlPSIxMjkwNTM4NDUyMDAwMDAwMDAiIC8+DQo8ZmlsZSBuYW1lPSJNU18xLjAwLjAwLmpzIiBzZXJ2ZXI9Ijk4LjEyOS4xMDUuMjAiIGxvY2FsPSIxMjkwNTM3NDE1ODc1MDAwMDAiIHJlbW90ZT0iMTI5MDUzODQ1MjAwMDAwMDAwIiAvPg0KPC9kd3N5bmM+]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiR1cmxleHQ9Jz8nLkNNU19TRUNVUkVfUEFSQU1fTkFNRS4nPScuJF9TRVNTSU9OW0NNU19VU0VSX0tFWV07DQoJCQkJJGhlbHBMaW5rID0JIjx0ZD48YSBocmVmPVwibGlzdG1vZHVsZXMucGhwIi4kdXJsZXh0LiImYW1wO2FjdGlvbj1zaG93bW9kdWxlaGVscCZhbXA7bW9kdWxlPWlDYWwmbTFfYWN0aXZlX3RhYj1vcHRpb25zXCI+Ii5sYW5nKCdoZWxwJykuIjwvYT48L3RkPiI7DQoNCiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdpQ2FsJzsNCiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1RoZSBmaXJzdCBzdG9wIHlvdVwnbGwgd2FudCB0byBtYWtlIGlzICcuJGhlbHBMaW5rOw0KJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdQbGVhc2UgZmVlbCBmcmVlIHRvIGxldCB1cyBrbm93IGlmIHRoZXJlIGlzIGEgd2F5IHRvIG1ha2UgaUNhbCBmaWxlIE1ha2VyIGJldHRlciwgPGEgaHJlZj0iaHR0cDovL2hlbHAuY29yYmVuc3Byb2R1Y3RzLmNvbS9tYWtlLWNvbnRhY3QuaHRtbCI+Q29udGFjdCB1cyB3ZVwnZXIgaGFwcHkgdG8gaGVhciBmcm9tIHlvdS48L2E+JzsNCiRsYW5nWydyZWFsbHlfdW5pbnN0YWxsJ10gPSAnVW5pbnN0YWxsaW5nIHRoaXMgbW9kdWxlIHdpbGwgbm90IGFmZmVjdCBhbnkgZXZlbnQgZGF0YSBhbmQgYWxsIGJvb2tzIHRvIGRhdGUgd2lsbCBzdGlsbCBiZSB0aGVyZS4gRG8geW91IHdpc2ggdG8gY29udGludWU/JzsNCiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSBVbmluc3RhbGxlZC4nOw0KJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4nOw0KJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsNCg0KLy8vQWRtaW4NCiRsYW5nWydBQ1RvcHRpb25zJ10gPSAnQWNjb3VudCBPcHRpb25zJzsNCiRsYW5nWydCVE5vcHRpb25zJ10gPSAnQnV0dG9uIERlZmF1bHRzJzsNCiRsYW5nWydCdG5fbGlzdCddID0gJ0J1dHRvbnMnOw0KJGxhbmdbJ3Byb21wdF9uZXdCdG4nXSA9ICdBZGQgTmV3IEJ1dHRvbic7DQokbGFuZ1sndGl0bGVfYXZhaWxhYmxlX3RlbXBsYXRlcyddID0gJ0J1dHRvbnMgTGlzdCc7DQokbGFuZ1snYXJleW91c3VyZSddID0gJ0ltcG9ydGFudDpcblxuSWYgdGhpcyBpcyBkZWxldGVkIGFsbCBpbmZvcm1hdGlvbiB3aWxsIGJlIGxvc3QhXG4nOw0KDQoNCg0KLy8vQWN0aW9ucw0KJGxhbmdbJ2VkaXQnXSA9ICdFZGl0JzsNCiRsYW5nWydkZWxldGUnXSA9ICdEZWxldGUnOw0KDQoNCi8vL21lc3NhZ2VzDQokbGFuZ1snQ2FuY2VsZWQnXSA9ICdZb3UgQ2FuY2VsZWQgb3V0IG9mIHRoZSBvcGVyYXRpb24uICBBbnkgV29yayB5b3UgbWF5IGhhdmUgZW50ZXJlZCBoYXMgYmVlbiBsb3N0Lic7DQokbGFuZ1snQnRuQURERUQnXSA9ICdZb3UgSnVzdCBBZGRlZCBhIG5ldyBpQ2FsIGZpbGUnOw0KJGxhbmdbJ0J0bkVESVRFRCddID0gJ1lvdSBKdXN0IEVkaXRlZCBhbiBleGlzdGluZyBpQ2FsIGZpbGUnOw0KJGxhbmdbJ0J0bkRFTEVURUQnXSA9ICdZb3UgSnVzdCBEZWxldGVkIGFuIGV4aXN0aW5nIGlDYWwgZmlsZSc7DQokbGFuZ1snbGlua3RleHRfZGVmYXVsdCddID0gIkFkZCB0byBPdXRsb29rIjsNCg0KDQoNCg0KDQovLy9kaXNjcmlwdGlvbnMNCiRsYW5nWydCS1NldCddID0gJzxoMT50aGUgbWFuZSB5b3VcJ2xsPC9oMT4nOw0KJGxhbmdbJ2xpbmt0ZXh0J10gPSAnPGgxPlRoZSB0ZXh0IHRoYXQgaXMgZm9yIHRoZSBsaW5rPC9oMT48aDM+PGVtPk5vdGU7IGFuZCBpbWFnZSBjYW4gYmUgdXNlZCBoZXJlLjwvZW0+PC9oMz4nOw0KJGxhbmdbJ0NBTF9VUkwnXSA9ICc8aDE+Q0FMX1VSTDwvaDE+JzsNCiRsYW5nWydkYXlsaWdodFNhdmluZyddID0gJzxoMT5kYXlsaWdodFNhdmluZzwvaDE+JzsNCiRsYW5nWydjYWNoZUJ1c3RlciddID0gJzxoMT5jYWNoZUJ1c3RlcjwvaDE+JzsNCiRsYW5nWydUWklEJ10gPSAnPGgxPlRaSUQ8L2gxPic7DQokbGFuZ1snc21hcnR5T24nXSA9ICc8aDE+UHJvY2VzcyBTbWFydHkgZGF0YTwvaDE+DQo8aDM+V2l0aCB0aGlzIHR1cm5lZCBvbiB5b3UgY2FuIHNldCB0aGUgYnV0dG9uIGZpZWxkcyB3aXRoIHRoZSB2YWx1ZXMgcGFzc2VkIGJ5IG90aGVyIG1vZHVsZXMgc3VjaCBhcyBQcm9kdWN0cyBvciBDYXRhbG9nZXI8L2gzPic7DQokbGFuZ1snZGVidWdJVCddID0gJzxoMT5kZWJ1Z0lUPC9oMT48aDM+SWYgeW91IGhhdmUgZmlyZWJ1ZyBtb2R1bGUgaW5zdGFsbGVkIHlvdSBjYW4gdHJ1biB0aGlzIG9uIHRvIHRyYWNrIHRoZSBwYXRoIGFuZCByb290IG91dCBhbiBpc3N1ZTwvaDM+JzsNCiRsYW5nWydEVFNUQVJUJ10gPSAnPGgxPkRUU1RBUlQ8L2gxPic7DQokbGFuZ1snRFRFTkQnXSA9ICc8aDE+RFRFTkQ8L2gxPic7DQokbGFuZ1snUHJlZml4J10gPSAnPGgxPlByZWZpeDwvaDE+JzsNCiRsYW5nWydTdWZmaXgnXSA9ICc8aDE+U3VmZml4PC9oMT4nOw0KJGxhbmdbJ1N1YmRpciddID0gJzxoMT5TdWJkaXI8L2gxPic7DQokbGFuZ1snZmlsZWJhc2VuYW1lJ10gPSAnPGgxPmZpbGViYXNlbmFtZTwvaDE+JzsNCiRsYW5nWydDQUxfVVJMJ10gPSAnPGgxPkNBTF9VUkw8L2gxPic7DQokbGFuZ1snTE9DQVRJT04nXSA9ICc8aDE+TE9DQVRJT048L2gxPic7DQokbGFuZ1snU1VNTUFSWSddID0gJzxoMT5TVU1NQVJZPC9oMT4nOw0KJGxhbmdbJ0NBVEVHT1JJRVMnXSA9ICc8aDE+Q0FURUdPUklFUzwvaDE+JzsNCiRsYW5nWydERVNDUklQVElPTiddID0gJzxoMT5ERVNDUklQVElPTjwvaDE+JzsNCiRsYW5nWydjbGFzcyddID0gJzxoMT5jbGFzczwvaDE+JzsNCiRsYW5nWydhbHQnXSA9ICc8aDE+YWx0PC9oMT4nOw0KJGxhbmdbJ3RpdGxlJ10gPSAnPGgxPnRpdGxlPC9oMT4nOw0KJGxhbmdbJ3N0eWxlJ10gPSAnPGgxPnN0eWxlPC9oMT4nOw0KJGxhbmdbJ3RhcmdldCddID0gJzxoMT50YXJnZXQ8L2gxPic7DQokbGFuZ1snYXNzaWduJ10gPSAnPGgxPmFzc2lnbjwvaDE+JzsNCiRsYW5nWydyb290VXJsJ10gPSAnPGgxPnJvb3RVcmw8L2gxPic7DQokbGFuZ1snTUFJTFRPJ10gPSAnPGgxPk1BSUxUTzwvaDE+JzsNCiRsYW5nWydpZHMnXSA9ICc8aDE+aWRzPC9oMT4nOw0KDQoNCi8vQWNjb3VudCBvcHRpb25zDQoNCg0KDQoNCi8vQnV0dG9uIG9wdGlvbnMNCiRsYW5nWydCS1NldF9sYWJlbCddID0gJ0FsaWFzJzsNCiRsYW5nWydsaW5rdGV4dF9sYWJlbCddID0gJ2xpbmt0ZXh0JzsNCiRsYW5nWydDQUxfVVJMX2xhYmVsJ10gPSAnQ0FMX1VSTCc7DQokbGFuZ1snZGF5bGlnaHRTYXZpbmdfbGFiZWwnXSA9ICdkYXlsaWdodFNhdmluZyc7DQokbGFuZ1snY2FjaGVCdXN0ZXJfbGFiZWwnXSA9ICdjYWNoZUJ1c3Rlcic7DQokbGFuZ1snVFpJRF9sYWJlbCddID0gJ1RaSUQnOw0KJGxhbmdbJ3NtYXJ0eU9uX2xhYmVsJ10gPSAnPHN0cm9uZz5Qcm9jZXNzIFNtYXJ0eTwvc3Ryb25nPjxici8+IGRhdGEgaW4gYnV0dG9uIGZpZWxkcyc7DQokbGFuZ1snTUFJTFRPX2xhYmVsJ10gPSAnPHN0cm9uZz5NQUlMVE88L3N0cm9uZz48YnIvPlRoZSAiU2VuZGVyIic7DQokbGFuZ1sncm9vdFVybF9sYWJlbCddID0gJzxzdHJvbmc+cm9vdFVybDwvc3Ryb25nPjxici8+IG92ZXJyaWRlIHRoZSByb290IHVybCc7DQokbGFuZ1snUHJlZml4X2xhYmVsJ10gPSAnUHJlZml4X2xhYmVsJzsNCiRsYW5nWydTdWZmaXhfbGFiZWwnXSA9ICdTdWZmaXhfbGFiZWwnOw0KJGxhbmdbJ1N1YmRpcl9sYWJlbCddID0gJ1N1YmRpcl9sYWJlbCc7DQokbGFuZ1snZmlsZWJhc2VuYW1lX2xhYmVsJ10gPSAnZmlsZWJhc2VuYW1lX2xhYmVsJzsNCiRsYW5nWydEVFNUQVJUX2xhYmVsJ10gPSAnRFRTVEFSVF9sYWJlbCc7DQokbGFuZ1snRFRFTkRfbGFiZWwnXSA9ICdEVEVORF9sYWJlbCc7DQokbGFuZ1snTE9DQVRJT05fbGFiZWwnXSA9ICdMT0NBVElPTl9sYWJlbCc7DQokbGFuZ1snU1VNTUFSWV9sYWJlbCddID0gJ1NVTU1BUllfbGFiZWwnOw0KJGxhbmdbJ0NBVEVHT1JJRVNfbGFiZWwnXSA9ICdDQVRFR09SSUVTX2xhYmVsJzsNCiRsYW5nWydERVNDUklQVElPTl9sYWJlbCddID0gJ0RFU0NSSVBUSU9OX2xhYmVsJzsNCiRsYW5nWydjbGFzc19sYWJlbCddID0gJ2NsYXNzX2xhYmVsJzsNCiRsYW5nWydhbHRfbGFiZWwnXSA9ICdhbHRfbGFiZWwnOw0KJGxhbmdbJ2lkc19sYWJlbCddID0gJ2lkc19sYWJlbCc7DQokbGFuZ1sndGl0bGVfbGFiZWwnXSA9ICd0aXRsZV9sYWJlbCc7DQokbGFuZ1snYXNzaWduX2xhYmVsJ10gPSAnYXNzaWduX2xhYmVsJzsNCiRsYW5nWydzdHlsZV9sYWJlbCddID0gJ3N0eWxlX2xhYmVsJzsNCiRsYW5nWyd0YXJnZXRfbGFiZWwnXSA9ICd0YXJnZXRfbGFiZWwnOw0KDQoNCg0KDQovL0FsZXJ0cyBhbmQgTWVzc2FnZXMNCiRsYW5nWydDbGVhckltZyddID0gJ0RlbGV0ZSBDdXJyZW50IEltYWdlJzsNCg0KDQokbGFuZ1snY2FuY2VsJ10gPSAnQ2FuY2VsJzsNCiRsYW5nWydmb3JtX2NhbmNlbCddID0gJ0NhbmNlbCc7DQoNCiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOw0KJGxhbmdbJ2Zvcm1fc3VibWl0J10gPSAnU2F2ZSBQcmVmZXJlbmNlcyc7DQoNCiRsYW5nWydtb2RfcHJlZnNfdGl0bGUnXSA9ICdNb2R1bGUgUHJlZmVyZW5jZXMnOw0KJGxhbmdbJ3ByZWZzdXBkYXRlZCddID0gJ01vZHVsZSBwcmVmZXJlbmNlcyB1cGRhdGVkLic7DQokbGFuZ1snb3B0aW9uc3VwZGF0ZWQnXSA9ICdvcHRpb25zIHVwZGF0ZWQnOw0KDQoNCiRsYW5nWydkZWJ1Z0lUX2xhYmVsJ10gPSAnZGVidWdJVCc7DQokbGFuZ1snZGVidWdJVG5vdGVfbGFiZWwnXSA9ICc8ZW0+KE11c3QgaGF2ZSBGaXJlcGhwIG1vZCk8L2VtPic7DQokbGFuZ1snZGVidWdJVCddID0gJ0RlYnVnaW5nIE9wdGlvbnMnOw0KDQoNCiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ2lDYWwgaXMgYSBpQ2FsIG1hbmFnZXIuIExldCBhIHVzZXIgYWRkIGFuIGV2ZW50IGluIHRvIHRoZWlyIG93biBjYWxlbmRhcic7DQokbGFuZ1snd2VsY29tZV90ZXh0J10gPSAnPHA+SGVsbG8hPC9wPic7DQokbGFuZ1snY2hhbmdlbG9nJ10gPSAnDQo8dWw+DQoNCiAgPGxpPlZlcnNpb24gMC4xIEJldGEgcmVsZWFzZS48L2xpPg0KPC91bD4nOw0KJGxhbmdbJ2hlbHAnXSA9ICc8bGluayBtZWRpYT0ic2NyZWVuIiBocmVmPSIuLi9tb2R1bGVzL2lDYWwvQ1NTL01hc3RlckNTUy5jc3MiIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiPjxkaXYgY2xhc3M9IlNpbVdyYXAiPjxiIGNsYXNzPSJyYm90dG9tIj48YiBjbGFzcz0icjEiPjwvYj4gPGIgY2xhc3M9InIyIj48L2I+PGIgY2xhc3M9InIzIj48L2I+IDxiIGNsYXNzPSJyNCI+PC9iPjwvYj4NCg0KPGRpdiBjbGFzcz0iU2ltY29uIj48aDMgY2xhc3M9IkJhY2tMaW5rIj48YSBvbmNsaWNrPSJqYXZhc2NyaXB0OndpbmRvdy5oaXN0b3J5LmdvKC0xKSIgcmVsPSJub2ZvbGxvdyI+Jmx0OyZsdDsgQmFjazwvYT48L2gzPg0KPGgzPldoYXQgRG9lcyBUaGlzIERvPy0tLSB0aGlzIG5lZWRzIHVwZGF0aW5nPC9oMz4NCjxwPk1ha2UgYW5kIG1hbmFnZSBpQ2FsIGZpbGVzPC9wPg0KDQoNCjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPg0KDQoNCjxici8+PGJyLz4NCg0KPGgzPkdldCB0aGUgYnV0dG9uPC9oMz4NCnVzZSA8c3BhbiBjbGFzcz0iY29kZUhJR0hMSUdIVCI+e2Ntc19tb2R1bGUgbW9kdWxlPWlDYWwgTW9kZT0iZGVmYXVsdCIgQnRuPSJCTFNCdG4ifSA8L3NwYW4+IDxici8+PGJyLz4NCg0KDQoNCg0KPGgxPkFsbCBvdXRwdXQgaXMgaW4gdGhlIFhIVE1MIGZvcm1hdCwgeW91IHNob3VsZCB3b3JrIGluIHRoYXQuPC9oMT4NCg0KPGJyLz48YnIvPg0KPGg0PlBhcmFtczwvaDQ+DQo8dWw+DQo8bGk+PHN0cm9uZz5Nb2RlPSJkZWZhdWx0Ijwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IGRlZmF1bHQ8YnIvPnwgcmVjZWl2ZXI8YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5CdG49IiIgPC9zdHJvbmc+PGVtPihSZXF1aXJlZCk8L2VtPiA8YnIvPnwgc2V0IHRoZSBhbGlhczxici8+PC9saT4NCg0KPC91bD4NCjxici8+DQoNCg0KPGgzPlN1cHBvcnQ8L2gzPg0KPGg0PlNjcmVlbmNhc3RzIGZvciBleHRyYSBoZWxwIHdpbGwgZmFsbG93LS0tIG9uIHRoZSBUT0RPPC9oND4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlIG9yIHRvIGZpbGUgYSBidWcgcmVwb3J0IHZpc2l0IDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvcHBibSI+dGhlIENNUyBGb3JnZTwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjwvdWw+DQoNCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA5LCBqZXJlbXlCYXNzICZsdDs8YSBocmVmPSJodHRwOi8vY29yYmVuc3Byb2R1Y3RzLmNvbSI+Y29yYmVuc3Byb2R1Y3RzLmNvbTwvYT4mZ3Q7IEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxzdHJvbmc+U3VwcG9ydCBtb3JlIG1vZHMgbGlrZSB0aGlzOjwvc3Ryb25nPjxmb3JtIGFjdGlvbj0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9jZ2ktYmluL3dlYnNjciIgbWV0aG9kPSJwb3N0Ij4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNtZCIgdmFsdWU9Il9zLXhjbGljayI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJob3N0ZWRfYnV0dG9uX2lkIiB2YWx1ZT0iODgxNzY3NSI+DQo8aW5wdXQgdHlwZT0iaW1hZ2UiIHNyYz0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL2J0bi9idG5fZG9uYXRlX0xHLmdpZiIgYm9yZGVyPSIwIiBuYW1lPSJzdWJtaXQiIGFsdD0iUGF5UGFsIC0gVGhlIHNhZmVyLCBlYXNpZXIgd2F5IHRvIHBheSBvbmxpbmUhIj4NCjxpbWcgYWx0PSIiIGJvcmRlcj0iMCIgc3JjPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvc2NyL3BpeGVsLmdpZiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+DQo8L2Zvcm0+PGJyLz4NCg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4NCjwvZGl2ID4NCg0KDQo8YiBjbGFzcz0icmJvdHRvbSI+PGIgY2xhc3M9InI0Ij48L2I+PGIgY2xhc3M9InIzIj48L2I+IDxiIGNsYXNzPSJyMiI+PC9iPiA8YiBjbGFzcz0icjEiPjwvYj48L2I+DQoNCjwvZGl2Pg0KJzsNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/lang/_notes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/_notes/dwsync.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+DQo8ZHdzeW5jPg0KPGZpbGUgbmFtZT0iZW5fVVMucGhwIiBzZXJ2ZXI9Ijk4LjEyOS4xMDUuMjAiIGxvY2FsPSIxMjkwNTM4NjQ3MjM5MDYyNTAiIHJlbW90ZT0iMTI5MDUzODY0NDAwMDAwMDAwIiAvPg0KPC9kd3N5bmM+]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogaUNhbCAtIGlDYWwgQ3JlYXRvciBhbmQgTWFuYWdlciANCiMgTW9kIGRlc2lnbmVkIGJ5IGplcmVteUJhc3MgKGplcmVteUJhc3NAY2FibGVvbmUubmV0KQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2lDYWwvDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsNCg0KCS8vJGRiID0mICRnQ21zLT5HZXREYigpOw0KLy8JDQokY29uZmlnID0mICRnQ21zLT5HZXRDb25maWcoKTsgDQoNCg0KCS8vIG15c3FsLXNwZWNpZmljLCBidXQgaWdub3JlZCBieSBvdGhlciBkYXRhYmFzZQ0KCSR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7DQoNCgkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7DQoJDQoJDQoJDQovLwkgICAgJEJ0bkFycmF5ID0gYXJyYXkoDQovLyAgICAgICAnQkxTQnRuJyAgPT4gYXJyYXkoDQovLyAgICAgICAgICAgJ1ByaWNlJyA9PiAnNTAuMDAnLA0KLy8gICAgICAgICAgICdCdXR0b25JbWcnID0+ICdodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9idXlub3dDQ19MRy5naWYnLA0KLy8gICAgICAgICAgICdpdGVtX25hbWUnID0+ICdCTFNjbGFzcycsDQovLwkJICAgJ0J0blR5cGUnPT4nX3hjbGljaycNCi8vICAgICAgICksDQovLyAgICAgICANCi8vICAgICAgICdDUFJfQUVEJyA9PiBhcnJheSgNCi8vICAgICAgICAgICAnUHJpY2UnID0+ICc1MC4wMCcsDQovLyAgICAgICAgICAgJ0J1dHRvbkltZycgPT4gJ2h0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9idG4vYnRuX2J1eW5vd0NDX0xHLmdpZicsDQovLyAgICAgICAgICAgJ2l0ZW1fbmFtZScgPT4gJ0NQUl9BRURjbGFzcycsDQovLwkJICAgJ0J0blR5cGUnPT4nX3hjbGljaycNCi8vICAgICAgICkNCgkNCgkNCi8vLy8NCi8vIENyZWF0IGJ0biB0YWJsZQ0KLy8vLwkNCgkvLyB0YWJsZSBzY2hlbWEgZGVzY3JpcHRpb24NCgkkZmxkcyA9ICINCgkJSUQgSSBLRVkgQVVUTywNCgkJQktTZXQgQygyNTUpDQoJCSI7DQoNCg0KCS8vIGNyZWF0ZSBpdC4gVGhpcyBzaG91bGQgZG8gZXJyb3IgY2hlY2tpbmcsIGJ1dCBJJ20gYSBsYXp5IHNvZC4NCgkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfaUNhbF9CdG4iLA0KCQkJJGZsZHMsICR0YWJvcHRhcnJheSk7DQoJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KCQ0KCQ0KLy8vLw0KLy8gQ3JlYXQgYnRuIHRhYmxlDQovLy8vCQ0KJGZsZHMgPSAiDQoJSUQgSSBLRVksDQoJUHJlZml4IEMoMjU1KSwNCglTdWZmaXggQygyNTUpLA0KCVN1YmRpciBDKDI1NSksDQoJZmlsZWJhc2VuYW1lIEMoMjU1KSwNCglUWklEIEMoMjU1KSwNCglkYXlsaWdodFNhdmluZyBDKDI1NSksDQoJQ0FMX1VSTCBDKDI1NSksDQoJRFRTVEFSVCBDKDI1NSksDQoJRFRFTkQgQygyNTUpLA0KCUxPQ0FUSU9OIEMoMjU1KSwNCglTVU1NQVJZIEMoMjU1KSwNCglDQVRFR09SSUVTIEMoMjU1KSwNCglERVNDUklQVElPTiBYLA0KCWxpbmt0ZXh0IEMoMjU1KSwNCgljbGFzcyBDKDI1NSksDQoJYWx0IEMoMjU1KSwNCglpZHMgQygyNTUpLA0KCXRpdGxlIEMoMjU1KSwNCglzdHlsZSBDKDI1NSksDQoJdGFyZ2V0IEMoMjU1KSwNCglhc3NpZ24gQygyNTUpLA0KCWNhY2hlQnVzdGVyIEMoMjU1KSwNCglyb290VXJsIEMoMjU1KSwNCglNQUlMVE8gQygyNTUpDQoiOw0KDQoNCg0KCS8vIGNyZWF0ZSBpdC4gVGhpcyBzaG91bGQgZG8gZXJyb3IgY2hlY2tpbmcsIGJ1dCBJJ20gYSBsYXp5IHNvZC4NCgkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfaUNhbF9CdG5fT1BUIiwNCgkJCSRmbGRzLCAkdGFib3B0YXJyYXkpOw0KCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCgkNCg0KCQ0KLy8NCi8vCS8vIHdlIHJlYWxseSBkb24ndCBuZWVkIGEgc2VxdWVuY2UgZm9yIHRoaXMgbW9kdWxlLg0KLy8JLy8gY3JlYXRlIGEgc2VxdWVuY2UNCi8vCS8vICRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcmF0ZV90aGlzX3NlcSIpOw0KLy8JJGZldXNlcnMgPSAmJGdDbXMtPm1vZHVsZXNbJ0Zyb250RW5kVXNlcnMnXVsnb2JqZWN0J107ICANCi8vCSRmZXVHcm91cCA9ICRmZXVzZXJzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2dyb3VwJyk7DQovLwkvLyBjcmVhdGUgZGVmYXVsdCBwcmVmZXJlbmNlcw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlYnVnSVQnLCAnMCcpOw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ1RaSUQnLCJVUy1QYWNpZmljIik7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGF5bGlnaHRTYXZpbmcnLHRydWUpOw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ0NBTF9VUkwnLCRjb25maWdbJ3Jvb3RfdXJsJ10pOw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ2NhY2hlQnVzdGVyJyxmYWxzZSk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgncm9vdFVybCcsJGNvbmZpZ1sncm9vdF91cmwnXSk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnTUFJTFRPJywnJyk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbGlua3RleHQnLCR0aGlzLT5MYW5nKCdsaW5rdGV4dF9kZWZhdWx0JykpOw0KDQovLyRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ1VEVCcsJ29yaWdfUFBCTV9FeGFtcGxlX0VtYWlsX1VEVC50cGwnKTsNCi8vaWYoIGZpbGVfZXhpc3RzKCRmbikgKXsNCi8vICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cygkZm4pOw0KLy8gICR1c2VydGFnb3BzID0mICRnQ21zLT5HZXRVc2VyVGFnT3BlcmF0aW9ucygpOw0KLy8gICR1c2VydGFnb3BzLT5TZXRVc2VyVGFnKCdQUEJNX0V4YW1wbGVfRW1haWwnLCAkdGVtcGxhdGUpOw0KLy99DQovLw0KLy8NCi8vCSRhbW91bnQ9Jyc7DQovLwkkQnV0dG9uSW1nPSdodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9idXlub3dDQ19MRy5naWYnOw0KLy8JJGl0ZW1fbmFtZT0nRG9uYXRlJzsNCi8vCSRCdG5UeXBlPSdfZG9uYXRpb25zJzsNCi8vCSRpdGVtX251bWJlcj0nJzsNCi8vCSRxdWFudGl0eT0nJzsNCi8vCSRVcGdyYWRlTUVTUz0nWW91IGhhdmUgbWFkZSBhIGRvbmF0aW9uLi4uIFRoYW5rIHlvdSc7DQovLwkkVGhlQWN0aW9uPSdQUEJNX0V4YW1wbGVfRW1haWwnOw0KLy8JJFRoZVBhcmFtcz0nJzsNCi8vCQ0KLy8JJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfaUNhbF9CdG4gU0VUIEJLU2V0PSdBdXRob3JEb25hdGUnIjsNCi8vCSRyZXN1bHQgPSAmJGRiLT5FeGVjdXRlKCRxdWVyeSk7DQovLwkJCQkJCQkJCSAgDQovLwkkcXVlcnkgPSAiSU5TRVJUIElOVE8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9pQ2FsX0J0bl9PUFQgKElELCBhbW91bnQsIEJ1dHRvbkltZywgaXRlbV9uYW1lLCBCdG5UeXBlLCBpdGVtX251bWJlciwgcXVhbnRpdHksIFVwZ3JhZGVNRVNTLCBUaGVBY3Rpb24sIFRoZVBhcmFtcykgVkFMVUVTICggTEFTVF9JTlNFUlRfSUQoKSwnIi4kYW1vdW50LiInLCciLiRCdXR0b25JbWcuIicsJyIuJGl0ZW1fbmFtZS4iJywnIi4kQnRuVHlwZS4iJywnIi4kaXRlbV9udW1iZXIuIicsJyIuJHF1YW50aXR5LiInLCciLiRVcGdyYWRlTUVTUy4iJywnIi4kVGhlQWN0aW9uLiInLCciLiRUaGVQYXJhbXMuIicpIjsNCi8vCSRyZXN1bHQgPSAmJGRiLT5FeGVjdXRlKCRxdWVyeSk7DQoNCg0KDQovL2luY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9hY3Rpb24ubWF0Y2hGRVVuQ0FMLnBocCcpOwkNCgkvLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cNCgkkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ2luc3RhbGxlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogaUNhbCAtIGlDYWwgQ3JlYXRvciBhbmQgTWFuYWdlciANCiMgTW9kIGRlc2lnbmVkIGJ5IGplcmVteUJhc3MgKGplcmVteUJhc3NAY2FibGVvbmUubmV0KQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2lDYWwvDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQovKg0KICAgIEZvciBzZXBhcmF0ZWQgbWV0aG9kcywgeW91J2xsIGFsd2F5cyB3YW50IHRvIHN0YXJ0IHdpdGggdGhlIGZvbGxvd2luZw0KICAgIGxpbmUgd2hpY2ggY2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgbWV0aG9kIHdhcyBjYWxsZWQgZnJvbSB0aGUgbW9kdWxlDQogICAgQVBJLCBhbmQgdGhhdCBldmVyeXRoaW5nJ3Mgc2FmZSB0byBjb250aW51ZToNCiovIA0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCgkkZGIgPSYgJGdDbXMtPkdldERiKCk7DQovLwkNCgkvLyByZW1vdmUgdGhlIGRhdGFiYXNlIHRhYmxlDQoJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSggJGRiICk7DQoJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfaUNhbF9CdG4iICk7DQoJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KCQ0KCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2lDYWxfQnRuX09QVCIgKTsNCgkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQoNCgkvLyByZW1vdmUgdGhlIHNlcXVlbmNlDQoJLy8gJGRiLT5Ecm9wU2VxdWVuY2UoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3JhdGVfdGhpc19zZXEiICk7DQoNCi8vCS8vIHJlbW92ZSB0aGUgcHJlZmVyZW5jZXMNCiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCk7DQovLwkNCi8vCS8vIFJlbW92ZSBhbGwgZXZlbnQgaGFuZGxlcnMNCi8vCSR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0Zyb250RW5kVXNlcnMnLCdPbkNyZWF0ZVVzZXInKTsNCi8vCSR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0Zyb250RW5kVXNlcnMnLCdPbkRlbGV0ZVVzZXInKTsNCi8vCSR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0Zyb250RW5kVXNlcnMnLCdPblVwZGF0ZVVzZXInKTsNCi8vCSR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0Zyb250RW5kVXNlcnMnLCdPbkV4cGlyZVVzZXInKTsNCi8vCSR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0Zyb250RW5kVXNlcnMnLCdPbkxvZ2luJyk7DQovLwkkdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdGcm9udEVuZFVzZXJzJywnT25Mb2dvdXQnKTsNCi8vCQ0KCS8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZw0KCSR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygndW5pbnN0YWxsZWQnKSk7DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogaUNhbCAtIGlDYWwgQ3JlYXRvciBhbmQgTWFuYWdlciANCiMgTW9kIGRlc2lnbmVkIGJ5IGplcmVteUJhc3MgKGplcmVteUJhc3NAY2FibGVvbmUubmV0KQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2lDYWwvDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQovKg0KICAgIEZvciBzZXBhcmF0ZWQgbWV0aG9kcywgeW91J2xsIGFsd2F5cyB3YW50IHRvIHN0YXJ0IHdpdGggdGhlIGZvbGxvd2luZw0KICAgIGxpbmUgd2hpY2ggY2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgbWV0aG9kIHdhcyBjYWxsZWQgZnJvbSB0aGUgbW9kdWxlDQogICAgQVBJLCBhbmQgdGhhdCBldmVyeXRoaW5nJ3Mgc2FmZSB0byBjb250aW51ZToNCiovIA0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCg0KLyogQWZ0ZXIgdGhpcywgdGhlIGNvZGUgaXMgaWRlbnRpY2FsIHRvIHRoZSBjb2RlIHRoYXQgd291bGQgb3RoZXJ3aXNlIGJlDQogICAgd3JhcHBlZCBpbiB0aGUgVXBncmFkZSgpIG1ldGhvZCBpbiB0aGUgbW9kdWxlIGJvZHkuDQoqLw0KDQoJCSRjdXJyZW50X3ZlcnNpb24gPSAkb2xkdmVyc2lvbjsNCgkJc3dpdGNoKCRjdXJyZW50X3ZlcnNpb24pDQoJCXsNCgkJCWNhc2UgIjAuMSI6DQoJCQkgICAgIGJyZWFrOw0KCQl9DQoJCQ0KCQkvLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cNCgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1cGdyYWRlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_BNToptions.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kX3ByZWZzX3RpdGxlfTwvaDM+DQo8aHIvPg0KDQp7aWYgJG1lc3NhZ2UhPScnfTxwPnskbWVzc2FnZX08L3A+ey9pZn0NCnskZm9ybV9zdGFydH0NCg0KIA0KICAgICA8aDE+R2VuZXJhbCBCdXR0b24gT3B0aW9uPC9oMT4NCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRUWklEX2xhYmVsfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskVFpJRF9pbnB1dH08L3A+DQogICAgICAgIDxici8+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRsaW5rdGV4dF9sYWJlbH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGxpbmt0ZXh0X2lucHV0fTwvcD4NCiAgICAgICAgPGJyLz4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGRheWxpZ2h0U2F2aW5nX2xhYmVsfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZGF5bGlnaHRTYXZpbmdfaW5wdXR9PC9wPg0KICAgICAgICA8YnIvPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskY2FjaGVCdXN0ZXJfbGFiZWx9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRjYWNoZUJ1c3Rlcl9pbnB1dH08L3A+DQogICAgICAgIDxici8+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRDQUxfVVJMX2xhYmVsfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskQ0FMX1VSTF9pbnB1dH08L3A+DQogICAgICAgIDxici8+ICAgIA0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcm9vdFVybF9sYWJlbH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHJvb3RVcmxfaW5wdXR9PC9wPg0KICAgICAgICA8YnIvPiANCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JE1BSUxUT19sYWJlbH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JE1BSUxUT19pbnB1dH08L3A+DQogICAgICAgIDxici8+IA0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskc21hcnR5T25fbGFiZWx9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzbWFydHlPbl9pbnB1dH08L3A+DQogICAgICAgIDxici8+DQoJPC9kaXY+ICAgDQogICA8aHIvPg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGZvcm1fc3VibWl0fTwvcD4NCgk8L2Rpdj4NCg0KICAgICAJDQp7JGZvcm1fZW5kfQ0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_email.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kX3ByZWZzX3RpdGxlfTwvaDM+DQoNCntpZiAkbWVzc2FnZSE9Jyd9PHA+eyRtZXNzYWdlfTwvcD57L2lmfQ0KeyRmb3JtX3N0YXJ0fQ0KDQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGFsbG93X2d1ZXN0X2xhYmVsfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskYWxsb3dfZ3Vlc3RfaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRncm91cF9sYWJlbH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGdyb3VwX2lucHV0fTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskd3lzaXd5Z19sYWJlbH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHd5c2l3eWdfaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGZvcm1fc3VibWl0fTwvcD4NCgk8L2Rpdj4NCnskZm9ybV9lbmR9DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_options.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[DQo8aDM+eyRtb2RfcHJlZnNfdGl0bGV9PC9oMz4NCjxoci8+DQoNCntpZiAkbWVzc2FnZSE9Jyd9PHA+eyRtZXNzYWdlfTwvcD57L2lmfQ0KeyRmb3JtX3N0YXJ0fQ0KDQogICAgPGgxPnskZGVidWdJVH08L2gxPg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRkZWJ1Z0lUX2xhYmVsfTo8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZGVidWdJVF9pbnB1dH08L3A+PGJyLz48YnIvPg0KCTwvZGl2Pg0KICAgIDxoci8+DQoNCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRmb3JtX3N1Ym1pdH08L3A+DQoJPC9kaXY+DQoNCnskZm9ybV9lbmR9DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/edittemplate.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCjxoMz57JHRpdGxlfTwvaDM+DQo8L2Rpdj4NCnskZm9ybXN0YXJ0fXskaGlkZGVufQ0KeyRzdWJtaXR9eyRjYW5jZWx9DQoNCg0KPGZpZWxkc2V0IHN0eWxlPSJjbGVhcjpsZWZ0O3dpZHRoOjkwJTsgcGFkZGluZy1yaWdodDozMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNDQ0RGQzg7IHRleHQtYWxpZ246Y2VudGVyOyI+DQo8bGVnZW5kPjxzdHJvbmc+UHJpbWFyeTwvc3Ryb25nPjwvbGVnZW5kPg0KPGZpZWxkc2V0IHN0eWxlPSJ3aWR0aDo0NSU7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDoxNXB4O21hcmdpbi1sZWZ0OjQlOyI+DQo8bGVnZW5kPjxiPlJlcXVpcmVkIGZvciB0aGUgYnV0dG9uIHRvIHdvcms8L2I+PC9sZWdlbmQ+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskQktTZXRfbGFiZWx9OjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRCS1NldF9pbnB1dH08L3A+DQo8L2Rpdj4NCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpbGViYXNlbmFtZV9sYWJlbH06PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGZpbGViYXNlbmFtZV9pbnB1dH08L3A+DQo8L2Rpdj4NCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JFRaSURfbGFiZWx9OjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRUWklEX2lucHV0fTwvcD4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskQ0FMX1VSTF9sYWJlbH06PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JENBTF9VUkxfaW5wdXR9PC9wPg0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyREVFNUQVJUX2xhYmVsfTo8L3A+DQogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskRFRTVEFSVF9pbnB1dH08L3A+DQo8L2Rpdj4NCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JERURU5EX2xhYmVsfTo8L3A+DQogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskRFRFTkRfaW5wdXR9PC9wPg0KPC9kaXY+DQo8L2ZpZWxkc2V0Pg0KDQo8ZmllbGRzZXQgc3R5bGU9IndpZHRoOjQ1JTsgZmxvYXQ6bGVmdDsiPg0KPGxlZ2VuZD48Yj5TdWdnZXN0ZWQ6PC9iPjwvbGVnZW5kPg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGRheWxpZ2h0U2F2aW5nX2xhYmVsfTo8L3A+DQogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZGF5bGlnaHRTYXZpbmdfaW5wdXR9PC9wPg0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRQcmVmaXhfbGFiZWx9OjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRQcmVmaXhfaW5wdXR9PC9wPg0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRTdWZmaXhfbGFiZWx9OjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRTdWZmaXhfaW5wdXR9PC9wPg0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRTdWJkaXJfbGFiZWx9OjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRTdWJkaXJfaW5wdXR9PC9wPg0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRMT0NBVElPTl9sYWJlbH06PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JExPQ0FUSU9OX2lucHV0fTwvcD4NCjwvZGl2Pg0KPC9maWVsZHNldD4NCjwvZmllbGRzZXQ+DQp7JHN1Ym1pdH17JGNhbmNlbH0NCg0KPGZpZWxkc2V0IHN0eWxlPSJjbGVhcjpsZWZ0O3dpZHRoOjkwJTsgcGFkZGluZy1yaWdodDozMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNGRjk7dGV4dC1hbGlnbjpjZW50ZXI7Ij4NCjxmaWVsZHNldCBzdHlsZT0id2lkdGg6NDUlOyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6MTVweDttYXJnaW4tbGVmdDo0JTsiPg0KPGxlZ2VuZD48Yj5TaGlwcGluZyBQYXJhbWV0ZXJzOjwvYj48L2xlZ2VuZD4NCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRjbGFzc19sYWJlbH06PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGNsYXNzX2lucHV0fTwvcD4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskYWx0X2xhYmVsfTo8L3A+DQogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskYWx0X2lucHV0fTwvcD4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskaWRzX2xhYmVsfTo8L3A+DQogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaWRzX2lucHV0fTwvcD4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfbGFiZWx9OjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyR0aXRsZV9pbnB1dH08L3A+DQo8L2Rpdj4NCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHN0eWxlX2xhYmVsfTo8L3A+DQogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3R5bGVfaW5wdXR9PC9wPg0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyR0YXJnZXRfbGFiZWx9OjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyR0YXJnZXRfaW5wdXR9PC9wPg0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRhc3NpZ25fbGFiZWx9OjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRhc3NpZ25faW5wdXR9PC9wPg0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRjYWNoZUJ1c3Rlcl9sYWJlbH06PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGNhY2hlQnVzdGVyX2lucHV0fTwvcD4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcm9vdFVybF9sYWJlbH06PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHJvb3RVcmxfaW5wdXR9PC9wPg0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRsaW5rdGV4dF9sYWJlbH06PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGxpbmt0ZXh0X2lucHV0fTwvcD4NCjwvZGl2Pg0KPC9maWVsZHNldD4NCg0KPGZpZWxkc2V0IHN0eWxlPSJ3aWR0aDo0NSU7IGZsb2F0OmxlZnQ7Ij4NCjxsZWdlbmQ+PGI+U2hpcHBpbmcgUGFyYW1ldGVyczo8L2I+PC9sZWdlbmQ+DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRTVU1NQVJZX2xhYmVsfTwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRTVU1NQVJZX2lucHV0fTwvcD4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JENBVEVHT1JJRVNfbGFiZWx9OjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRDQVRFR09SSUVTX2lucHV0fTwvcD4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JERFU0NSSVBUSU9OX2xhYmVsfTo8L3A+DQogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskREVTQ1JJUFRJT05faW5wdXR9PC9wPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskTUFJTFRPX2xhYmVsfTo8L3A+DQogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskTUFJTFRPX2lucHV0fTwvcD4NCjwvZGl2Pg0KPC9maWVsZHNldD4NCg0KDQo8ZmllbGRzZXQgc3R5bGU9ImZsb2F0OmxlZnQ7d2lkdGg6OTklOyBtYXJnaW46NXB4OyI+PC9maWVsZHNldD4NCjwvZmllbGRzZXQ+DQp7JHN1Ym1pdH17JGNhbmNlbH0NCnskZm9ybWVuZH0NCg0K]]></data>
	</file>
	<file>
	  <filename>/templates/edittemplates.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+DQogIDx0aGVhZD4NCiAgICA8dHI+DQogICAgICA8dGggPkFsaWFzPC90aD4NCiAgICAgIDx0aD57JGRlZmF1bHRwcm9tcHR9PC90aD4NCiAgICAgIDx0aD5TYW1wbGUgVGFnPC90aD4NCiAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+DQogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPg0KICAgIDwvdHI+DQogIDwvdGhlYWQ+DQp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQ0KICAgPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iPg0KICAgICA8dGQ+eyRlbnRyeS0+bmFtZX08L3RkPg0KICAgICA8dGQ+eyRlbnRyeS0+ZGVmYXVsdH08L3RkPg0KICAgICA8dGQ+e2xkZWxpbX1jbXNfbW9kdWxlIG1vZHVsZT1pQ2FsIE1vZGU9ImRlZmF1bHQiIEJ0bj0ieyRlbnRyeS0+QnRufSJ7cmRlbGltfTwvdGQ+DQogICAgIDx0ZD57JGVudHJ5LT5lZGl0bGlua308L3RkPg0KICAgICA8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPg0KICAgPC90cj4NCnsvZm9yZWFjaH0NCjwvdGFibGU+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRuZXd0ZW1wbGF0ZWxpbmt9PC9wPg0KPC9kaXY+DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/Email_Userform_form.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3JtX3N0YXJ0T0ZGfQ0KeyRmb3JtX2hpZGRlbk9GRn0NCnskZm9ybV9zdWJtaXRPRkZ9DQp7JGZvcm1fZW5kT0ZGfQ0KDQo=]]></data>
	</file>
	<file>
	  <filename>/templates/message.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGV9PC9oMz4KPHA+eyRtZXNzYWdlfTwvcD4=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_email_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBFTUFJTC0tPg==]]></data>
	</file>
	<file>
	  <filename>/templates/sample.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Ntc19tb2R1bGUgbW9kdWxlPWlDYWwgTW9kZT0iZGVmYXVsdCIgQnRuPSJNb2R1bGVEb25hdGUifQ==]]></data>
	</file>
	<file>
	  <filename>/templates/_notes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/_notes/dwsync.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+DQo8ZHdzeW5jPg0KPGZpbGUgbmFtZT0iYWRtaW5fQk5Ub3B0aW9ucy50cGwiIHNlcnZlcj0iOTguMTI5LjEwNS4yMCIgbG9jYWw9IjEyOTA1Mzg1NDk5NDUzMTI1MCIgcmVtb3RlPSIxMjkwNTM4NTQ4MDAwMDAwMDAiIC8+DQo8ZmlsZSBuYW1lPSJhZG1pbl9vcHRpb25zLnRwbCIgc2VydmVyPSI5OC4xMjkuMTA1LjIwIiBsb2NhbD0iMTI5MDUzODUzNDUyODEyNTAwIiByZW1vdGU9IjEyOTA1Mzg1MzAwMDAwMDAwMCIgLz4NCjxmaWxlIG5hbWU9ImVkaXR0ZW1wbGF0ZS50cGwiIHNlcnZlcj0iOTguMTI5LjEwNS4yMCIgbG9jYWw9IjEyOTA1Mzg0NTAwMDQ2ODc1MCIgcmVtb3RlPSIxMjkwNTM4NDUyMDAwMDAwMDAiIC8+DQo8ZmlsZSBuYW1lPSJhZG1pbl9lbWFpbC50cGwiIHNlcnZlcj0iOTguMTI5LjEwNS4yMCIgbG9jYWw9IjEyOTA1Mzc0MTU3NzY1NjI1MCIgcmVtb3RlPSIxMjkwNTM4NDUyMDAwMDAwMDAiIC8+DQo8ZmlsZSBuYW1lPSJlZGl0dGVtcGxhdGVzLnRwbCIgc2VydmVyPSI5OC4xMjkuMTA1LjIwIiBsb2NhbD0iMTI5MDUzNzQ0MjgxNTYyNTAwIiByZW1vdGU9IjEyOTA1Mzg0NTIwMDAwMDAwMCIgLz4NCjxmaWxlIG5hbWU9IkVtYWlsX1VzZXJmb3JtX2Zvcm0udHBsIiBzZXJ2ZXI9Ijk4LjEyOS4xMDUuMjAiIGxvY2FsPSIxMjkwNTM3NDE1Nzc2NTYyNTAiIHJlbW90ZT0iMTI5MDUzODQ1MjAwMDAwMDAwIiAvPg0KPGZpbGUgbmFtZT0ibWVzc2FnZS50cGwiIHNlcnZlcj0iOTguMTI5LjEwNS4yMCIgbG9jYWw9IjEyOTA1Mzc0MTU3NzY1NjI1MCIgcmVtb3RlPSIxMjkwNTM4NDUyMDAwMDAwMDAiIC8+DQo8ZmlsZSBuYW1lPSJvcmlnX2VtYWlsX3RlbXBsYXRlLnRwbCIgc2VydmVyPSI5OC4xMjkuMTA1LjIwIiBsb2NhbD0iMTI5MDUzNzQxNTc3NTAwMDAwIiByZW1vdGU9IjEyOTA1Mzg0NTIwMDAwMDAwMCIgLz4NCjxmaWxlIG5hbWU9InNhbXBsZS50cGwiIHNlcnZlcj0iOTguMTI5LjEwNS4yMCIgbG9jYWw9IjEyOTA1Mzc0NDI4MTcxODc1MCIgcmVtb3RlPSIxMjkwNTM4NDUyMDAwMDAwMDAiIC8+DQo8L2R3c3luYz4=]]></data>
	</file>
	<file>
	  <filename>/_notes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/_notes/dwsync.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+DQo8ZHdzeW5jPg0KPGZpbGUgbmFtZT0ibWV0aG9kLnVwZ3JhZGUucGhwIiBzZXJ2ZXI9Ijk4LjEyOS4xMDUuMjAiIGxvY2FsPSIxMjkwNTM3NDUwNzc4MTI1MDAiIHJlbW90ZT0iMTI5MDUzODQ1MjAwMDAwMDAwIiAvPg0KPGZpbGUgbmFtZT0iYWN0aW9uLmRlZmF1bHQucGhwIiBzZXJ2ZXI9Ijk4LjEyOS4xMDUuMjAiIGxvY2FsPSIxMjkwNTM4MjI0MzA0Njg3NTAiIHJlbW90ZT0iMTI5MDUzODQ1MjAwMDAwMDAwIiAvPg0KPGZpbGUgbmFtZT0ibWV0aG9kLmluc3RhbGwucGhwIiBzZXJ2ZXI9Ijk4LjEyOS4xMDUuMjAiIGxvY2FsPSIxMjkwNTM4NjAxNDMxMjUwMDAiIHJlbW90ZT0iMTI5MDUzODU5NjAwMDAwMDAwIiAvPg0KPGZpbGUgbmFtZT0iaUNhbC5tb2R1bGUucGhwIiBzZXJ2ZXI9Ijk4LjEyOS4xMDUuMjAiIGxvY2FsPSIxMjkwNTM3ODg4NjA0Njg3NTAiIHJlbW90ZT0iMTI5MDUzODQ1MjAwMDAwMDAwIiAvPg0KPGZpbGUgbmFtZT0iYWN0aW9uLmNsZWFyQ2FjaGUucGhwIiBzZXJ2ZXI9Ijk4LjEyOS4xMDUuMjAiIGxvY2FsPSIxMjkwNTM4NjcxMzM0Mzc1MDAiIHJlbW90ZT0iMTI5MDUzODY2ODAwMDAwMDAwIiAvPg0KPGZpbGUgbmFtZT0iYWN0aW9uLnNhdmVfQlROLnBocCIgc2VydmVyPSI5OC4xMjkuMTA1LjIwIiBsb2NhbD0iMTI5MDUzODI0MzYwMDAwMDAwIiByZW1vdGU9IjEyOTA1Mzg0NTIwMDAwMDAwMCIgLz4NCjxmaWxlIG5hbWU9ImZ1bmN0aW9uLmFkbWluX0FDVG9wdGlvbnN0YWIucGhwIiBzZXJ2ZXI9Ijk4LjEyOS4xMDUuMjAiIGxvY2FsPSIxMjkwNTM4NTI4MjczNDM3NTAiIHJlbW90ZT0iMTI5MDUzODUyNDAwMDAwMDAwIiAvPg0KPGZpbGUgbmFtZT0iZnVuY3Rpb24uYWRtaW5fQlROb3B0aW9uc3RhYi5waHAiIHNlcnZlcj0iOTguMTI5LjEwNS4yMCIgbG9jYWw9IjEyOTA1Mzg1OTc4MDQ2ODc1MCIgcmVtb3RlPSIxMjkwNTM4NTk2MDAwMDAwMDAiIC8+DQo8ZmlsZSBuYW1lPSJhY3Rpb24uc2F2ZV9BQ1RwdGlvbnMucGhwIiBzZXJ2ZXI9Ijk4LjEyOS4xMDUuMjAiIGxvY2FsPSIxMjkwNTM4MTkzODM0Mzc1MDAiIHJlbW90ZT0iMTI5MDUzODQ1MjAwMDAwMDAwIiAvPg0KPGZpbGUgbmFtZT0iYWN0aW9uLnNhdmVfQk5Ub3B0aW9ucy5waHAiIHNlcnZlcj0iOTguMTI5LjEwNS4yMCIgbG9jYWw9IjEyOTA1MzgzNDQ1MTI1MDAwMCIgcmVtb3RlPSIxMjkwNTM4NDUyMDAwMDAwMDAiIC8+DQo8ZmlsZSBuYW1lPSJhY3Rpb24uZWRpdHRlbXBsYXRlLnBocCIgc2VydmVyPSI5OC4xMjkuMTA1LjIwIiBsb2NhbD0iMTI5MDUzODY2MTA4OTA2MjUwIiByZW1vdGU9IjEyOTA1Mzg2NTYwMDAwMDAwMCIgLz4NCjxmaWxlIG5hbWU9ImFjdGlvbi5kZWZhdWx0YWRtaW4ucGhwIiBzZXJ2ZXI9Ijk4LjEyOS4xMDUuMjAiIGxvY2FsPSIxMjkwNTM3NDQ4NDY0MDYyNTAiIHJlbW90ZT0iMTI5MDUzODQ1MjAwMDAwMDAwIiAvPg0KPGZpbGUgbmFtZT0iYWN0aW9uLmRlbGV0ZXRlbXBsYXRlLnBocCIgc2VydmVyPSI5OC4xMjkuMTA1LjIwIiBsb2NhbD0iMTI5MDUzNzc2NTk1NDY4NzUwIiByZW1vdGU9IjEyOTA1Mzg0NTIwMDAwMDAwMCIgLz4NCjxmaWxlIG5hbWU9ImFjdGlvbi5kZXNjcmlwdGlvbi5waHAiIHNlcnZlcj0iOTguMTI5LjEwNS4yMCIgbG9jYWw9IjEyOTA1Mzc0NDg0Njg3NTAwMCIgcmVtb3RlPSIxMjkwNTM4NDUyMDAwMDAwMDAiIC8+DQo8ZmlsZSBuYW1lPSJpbWFnZWZpbGVzLnBocCIgc2VydmVyPSI5OC4xMjkuMTA1LjIwIiBsb2NhbD0iMTI5MDUzNzQxNTg5Mzc1MDAwIiByZW1vdGU9IjEyOTA1Mzg0NTIwMDAwMDAwMCIgLz4NCjxmaWxlIG5hbWU9ImluZGV4Lmh0bWwiIHNlcnZlcj0iOTguMTI5LjEwNS4yMCIgbG9jYWw9IjEyOTA1Mzc0MTU4OTUzMTI1MCIgcmVtb3RlPSIxMjkwNTM4NDUyMDAwMDAwMDAiIC8+DQo8ZmlsZSBuYW1lPSJtZXRob2QudW5pbnN0YWxsLnBocCIgc2VydmVyPSI5OC4xMjkuMTA1LjIwIiBsb2NhbD0iMTI5MDUzNzc2NjAwOTM3NTAwIiByZW1vdGU9IjEyOTA1Mzg0NTIwMDAwMDAwMCIgLz4NCjwvZHdzeW5jPg==]]></data>
	</file>
</module>
