<?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>CustomGS</name>
	<version>1.3</version>
  <mincmsversion>1.10</mincmsversion>
	<help><![CDATA[PHA+VGhpcyBtb2R1bGUgZXh0ZW5kcyB0aGUgR2xvYmFsIFNldHRpbmdzIHdpdGggc29tZSBjdXN0b21pemVkIHBhcmFtZXRlcnMuPGJyIC8+DQpZb3UgY2FuIGRlZmluZSBhbiB1bmxpbWl0ZWQgbnVtYmVyIG9mIGZpZWxkcyB3aGljaCBjYW4gYmUgdXNlZCBhcyBzbWFydHktdmFyaWFibGUgaW4gdGVtcGxhdGVzIG9yIHBhZ2VzLjwvcD4NCg0KPGgzPlVzZSBvZiB0aGUgbW9kdWxlIEN1c3RvbSBHbG9iYWwgU2V0dGluZ3M8L2gzPg0KDQo8cD5UbyBzdGFydCB5b3UgaGF2ZSB0byBhZGQgPGI+e0N1c3RvbUdTfTwvYj4gaW4gdGhlIHRvcCBvZiB5b3VyIHRlbXBsYXRlKHMpLjwvcD4NCg0KPHA+DQpJbiB0aGUgdGVtcGxhdGVzIG9yIHBhZ2VzIG9mIHlvdXIgd2Vic2l0ZSB5b3Ugd2lsbCBub3cgaGF2ZSBhbGwgc21hcnR5IHZhcmlhYmxlcyBhdmFpbGFibGUgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyBtb2R1bGUgRmllbGRkZWZpbml0aW9ucyB0YWIuPGJyIC8+DQpUaGUgZXhhY3Qgd2F5IHRvIGNhbGwgZWFjaCB2YXJpYWJsZSBpcyBzaG93biBpbiB0aGUgZmllbGRkZWZpbml0aW9ucyB0YWJsZS4gWW91IGNhbiBhbHNvIGNoZWNrIHdoaWNoIHZhcmlhYmxlcyBhbmQgdmFsdWVzIGFyZSBhdmFpbGFibGUgYnkgcGxhY2luZyA8Yj57Q3VzdG9tR1Mgc2hvd3ZhcnM9MX08L2I+IGluIHRoZSBjb250ZW50IGZpZWxkIG9mIGEgcGFnZS4NCjwvcD4NCg0KPHA+V2FybmluZzogYmV0dGVyIG5vdCBwbGFjZSB0aGUge0N1c3RvbUdTfSB0YWcgaW4gdGhlICZsdDtoZWFkJmd0OyBzZWN0aW9uIG9mIHlvdXIgdGVtcGxhdGUsIGJlY2F1c2UgdGhhdCdzIHRoZSBsYXN0IHNlY3Rpb24gdGhhdCB3aWxsIGJlIHBhcnNlZCBieSB0aGUgU21hcnR5IHRlbXBsYXRpbmcgc3lzdGVtLjwvcD4NCg0KPGRpdiBzdHlsZT0iYm9yZGVyLWJvdHRvbToxcHggZGFzaGVkICM5OTkiPjwvZGl2Pg0KDQo8aDM+UGVybWlzc2lvbnM8L2gzPg0KPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgdHdvIGRpZmZlcmVudCBwZXJtaXNzaW9uIGdyb3Vwczo8cD4NCjxwPjxiPjEuIEN1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBVc2U8L2I+PGJyIC8+DQpBIHBlcm1pc3Npb24gdG8gdXNlIGZvciBlZGl0b3JzLiBJdCB3aWxsIG9ubHkgc2hvdyB0aGUgR2VuZXJhbCB0YWIgaW4gdGhlIGFkbWluIHBhZ2UuPC9wPg0KDQo8cD48Yj4yLiBDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gTWFuYWdlPC9iPjxiciAvPg0KQSBwZXJtaXNzaW9uIHRvIHVzZSBmb3IgYWRtaW5pc3RyYXRvcnMuIEl0IHdpbGwgc2hvdyBhbGwgbW9kdWxlIHRhYnMuPC9wPg0KDQo8ZGl2IHN0eWxlPSJib3JkZXItYm90dG9tOjFweCBkYXNoZWQgIzk5OSI+PC9kaXY+DQoNCjxoMz5FeGFtcGxlczwvaDM+DQoNCjxwPkRlZmluZSBhIGNoZWNrYm94ICdDaHJpc3RtYXMgbm93JyB3aGljaCB3aWxsIGFjdGl2YXRlIGEgc3BlY2lhbCB0aGVtZSBvbiB0aGUgZnJvbnRlbmQgd2hlbiBjaGVja2VkPC9wPg0KPHAgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgI2RkZDsgcGFkZGluZzoxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjMiPg0KPGNvZGU+DQp7aWYgJEN1c3RvbUdTLkNocmlzdG1hc19ub3cgPT0gJzEnfTxiciAvPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7eyogU2hvdyBDaHJpc3RtYXMgZnJvbnRlbmQgdGhlbWUgKn08YnIgLz4NCntlbHNlfTxiciAvPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7eyogU2hvdyBkZWZhdWx0IGZyb250ZW5kIHRoZW1lICp9PGJyIC8+DQp7L2lmfQ0KPC9jb2RlPg0KPC9wPg0KPGJyIC8+DQoNCjxwPkRlZmluZSBhIGNoZWNrYm94ICdNeUNoZWNrYm94JyB3aGljaCB3aWxsIGRvIHNvbWUgbWFnaWMgc3R1ZmYgd2hlbiB1bmNoZWNrZWQ8L3A+DQo8cCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBwYWRkaW5nOjEwcHg7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMyI+DQo8Y29kZT4NCntpZiAkQ3VzdG9tR1MuTXlDaGVja2JveCAhPSAnMSd9PGJyIC8+DQombmJzcDsmbmJzcDsmbmJzcDt7KiBEbyBzb21lIG1hZ2ljIHN0dWZmICp9PGJyIC8+DQp7L2lmfQ0KPC9jb2RlPg0KPC9wPg0KPGJyIC8+DQoNCjxwPkRlZmluZSBhIHRleHRmaWVsZCBvciBwdWxsZG93biBmaWVsZCAnVHJhaW5lcicgd2hpY2ggd2lsbCBjb250YWluIHRoZSBjdXJyZW50IHRyYWluZXJzIG5hbWUuPC9wPg0KPHAgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgI2RkZDsgcGFkZGluZzoxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjMiPg0KPGNvZGU+DQombHQ7cCZndDtUaGlzIHdlZWtzIHRyYWluZXJzIG5hbWUgaXM6IHskQ3VzdG9tR1MuVHJhaW5lcn0mbHQ7L3AmZ3Q7DQo8L2NvZGU+DQo8L3A+DQo8YnIgLz4NCg0KPHA+RGVmaW5lIHR3byB0aW1lcGlja2VyIGZpZWxkcyAnc3RhcnR0aW1lJyBhbmQgJ2VuZHRpbWUnLiBSZXBsYWNlIHRoZSB7Y29udGVudH0gdGFnIGluIHlvdXIgcGFnZSB0ZW1wbGF0ZSB3aXRoIHRoaXMgY29kZSBhbmQgdGhlIG5vcm1hbCBwYWdlIGNvbnRlbnQgaXMgb25seSB2aXNpYmxlIHdoZW4gdGhlIGN1cnJlbnQgdGltZSBpcyBiZXR3ZWVuIHRoZSBzdGFydHRpbWUgYW5kIGVuZHRpbWUuPC9wPg0KPHAgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgI2RkZDsgcGFkZGluZzoxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjMiPg0KPGNvZGU+DQp7aWYgJHNtYXJ0eS5ub3d8ZGF0ZV9mb3JtYXQ6JyVIOiVNJyA+PSAkQ3VzdG9tR1Muc3RhcnR0aW1lICYmICRzbWFydHkubm93fGRhdGVfZm9ybWF0OiclSDolTScgPD0gJEN1c3RvbUdTLmVuZHRpbWV9PGJyIC8+DQombmJzcDsmbmJzcDsmbmJzcDt7Y29udGVudH08YnIgLz4NCntlbHNlfTxiciAvPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7e2NvbnRlbnQgYmxvY2s9IlNpdGVDbG9zZWRDb250ZW50In08YnIgLz4NCnsvaWZ9PGJyIC8+DQo8L2NvZGU+DQo8L3A+DQoNCjxkaXYgc3R5bGU9ImJvcmRlci1ib3R0b206MXB4IGRhc2hlZCAjOTk5Ij48L2Rpdj4NCg0KPGgzPk1vcmUgZXhhbXBsZXMgb3IgaGVscDwvaDM+DQoNCjxwPkZvciBtb3JlIGV4YW1wbGVzIG9yIGhlbHAgb24gdGhpcyBtb2R1bGUsIHBsZWFzZSBjaGVjayB0aGUgPGEgaHJlZj0iaHR0cDovL3dpa2kuY21zbWFkZXNpbXBsZS5vcmcvaW5kZXgucGhwL1VzZXJfSGFuZGJvb2svQWRtaW5fUGFuZWwvRXh0ZW5zaW9ucy9DdXN0b21HbG9iYWxTZXR0aW5ncyI+Q01TbXMgV2lraSBwYWdlPC9hPi48L3A+DQoNCjxkaXYgc3R5bGU9ImJvcmRlci1ib3R0b206MXB4IGRhc2hlZCAjOTk5Ij48L2Rpdj4NCg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQoNCjxwPkNvcHlyaWdodCDCqSAyMDEyLCBSb2xmIFRqYXNzZW5zICZsdDtyb2xmIGF0IGNtc21hZGVzaW1wbGUgZG90IG9yZyZndDssIEpvcyAmbHQ7PGEgaHJlZj0ibWFpbHRvOmpvc3ZkQGxpdmUubmwiPmpvc3ZkQGxpdmUubmw8L2E+Jmd0Oy4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KDQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2UgdjM8L2E+LiBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gWW91IG1heSBvbmx5IHVzZSB0aGlzIHNvZnR3YXJlIHdoZW4gdGhlcmUgaXMgYSBjbGVhciBhbmQgb2J2aW91cyBpbmRpY2F0aW9uIGluIHRoZSBhZG1pbiBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgU2ltcGxlLjwvcD4NCg0KPGRpdiBzdHlsZT0iYm9yZGVyLWJvdHRvbToxcHggZGFzaGVkICM5OTkiPjwvZGl2Pg0KPGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc2hvd3ZhcnM9IjEiIC0gU2V0IHRoaXMgcGFyYW1ldGVyIHRvIHNob3cgYWxsIGF2YWlsYWJsZSB2YXJpYWJsZXMgYW5kIHRoZWlyIHZhbHVlcy4gRm9yIHRlc3RpbmcgcHVycG9zZXMgb25seS48L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBSb2xmIFRqYXNzZW5zICZsdDtyb2xmIGF0IGNtc21hZGVzaW1wbGUgZG90IG9yZyZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAxLjM8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48dWw+DQo8bGk+PHN0cm9uZz5WZXJzaW9uIDEuMzwvc3Ryb25nPiAtIDE0IGF1Z3VzdCAyMDEyDQoJPHVsPg0KCTxsaT5SZW1vdmVkIENsZWFyIENhY2hlIGR1ZSB0byBGb3JnZSByZWd1bGF0aW9uczwvbGk+DQoJPGxpPkJ1ZyAjODAwOTogZml4ZWQgLSBJc3N1ZSB3aXRoIHRleHQgYXJlYXMgd2l0aCBzbWFydHkgcGFyc2luZyBvbjwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+PHN0cm9uZz5WZXJzaW9uIDEuMjwvc3Ryb25nPiAtIDIwIE1hcmNoIDIwMTINCgk8dWw+DQoJPGxpPk1pbmltdW0gcmVxdWlyZWQgQ01TbXMgdmVyc2lvbiBzZXQgdG8gMS4xMDwvbGk+DQoJPGxpPkFkZCBHZXRBZG1pblNlY3Rpb24gc2V0dGluZyAoRlIgIzc2MTgpPC9saT4NCgk8bGk+QWRkZWQgb3B0aW9uIHRvIGF1dG9tYXRpY2FsbHkgY2xlYXIgY2FjaGUgYWZ0ZXIgY2hhbmdpbmcgYSBzZXR0aW5nPC9saT4NCgk8bGk+QWRkZWQgZmllbGR0eXBlICdCdXR0b24nPC9saT4NCgk8bGk+U3VwcG9ydCBWYWx1ZXxPcHRpb25OYW1lIHBhaXJzIGFuZCBTbWFydHkgdGFncyBmb3IgcHVsbGRvd24gZmllbGRzIGFuZCByYWRpb2J1dHRvbnM8L2xpPg0KCTxsaT5CdWcgZml4ZWQ6IEVkaXRpbmcgYSBmaWVsZCBjaGFuZ2VzIHRoZSBmaWVsZG5hbWU8L2xpPg0KCTxsaT5CdWcgZml4ZWQ6IFNlbmRFdmVudCBvbiBjaGFuZ2luZyBhIGNoZWNrYm94IHNldHRpbmc8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPjxzdHJvbmc+VmVyc2lvbiAxLjE8L3N0cm9uZz4gLSAxOSBGZWJydWFyeSAyMDEyDQoJPHVsPg0KCTxsaT5EZWZpbmUgdW5saW1pdGVkIG51bWJlciBvZiBmaWVsZHM8L2xpPg0KCTxsaT5BZGRlZCBmaWVsZHR5cGVzIHRleHRhcmVhLCB3eXNpd3lnLCBkYXRldGltZXBpY2tlciwgcHVsbGRvd24gc2VsZWN0LCByYWRpb2J1dHRvbnM8L2xpPg0KCTxsaT5BZGRlZCBldmVudCBPblNldHRpbmdDaGFuZ2U8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPjxzdHJvbmc+VmVyc2lvbiAxLjA8L3N0cm9uZz4gLSAyMSBKYW51YXJ5IDIwMTINCgk8dWw+DQoJPGxpPkluaXRpYWwgbW9kdWxlIHJlbGVhc2U8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPC91bD48YnIgLz4=]]></about>
	<description><![CDATA[A module to extend the Global Settings with some customized parameters. You can define an unlimited number of fields which can be used as smarty-variable in templates or pages.]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncw0KIyBBdXRob3I6IFJvbGYgVGphc3NlbnMsIEpvcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDExIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2N1c3RvbWdzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsNCg0KDQokZmllbGRzID0gJHRoaXMtPkdldFNldHRpbmdzKCk7DQoNCi8vIFBhc3MgdGhlIGZpZWxkcyB0byB0aGUgdGVtcGxhdGVzDQppZiAoIGlzc2V0KCRwYXJhbXNbJ3Nob3d2YXJzJ10pICkNCnsNCglmb3JlYWNoICggJGZpZWxkcyBhcyAka2V5PT4kdmFsdWUgKQ0KCXsNCgkJaWYgKCAhaXNfbnVtZXJpYygka2V5KSApIGVjaG8gJ3skQ3VzdG9tR1MuJyAuICRrZXkgLiAnfSA9ICcgLiAkdmFsdWUgLiAnPGJyIC8+JzsNCgl9DQp9DQoNCiRzbWFydHktPmFzc2lnbignQ3VzdG9tR1MnLCAkZmllbGRzKTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncw0KIyBBdXRob3I6IFJvbGYgVGphc3NlbnMsIEpvcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDExIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2N1c3RvbWdzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsNCg0KDQovKioNCiAqIENyZWF0ZSBBZG1pbiB0YWJzDQogKi8gDQplY2hvICR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKTsNCiRhY3RpdmVfdGFiID0gZW1wdHkoJHBhcmFtc1snYWN0aXZlX3RhYiddKSA/ICcnIDogJHBhcmFtc1snYWN0aXZlX3RhYiddOw0KDQppZiAoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBNYW5hZ2UnIHx8ICdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gVXNlJykgKQ0Kew0KCWVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigiZ2VuZXJhbCIsJHRoaXMtPkxhbmcoInRpdGxlX2dlbmVyYWwiKSk7DQp9DQoNCmlmICggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIE1hbmFnZScpICkNCnsNCgllY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoImZpZWxkZGVmcyIsJHRoaXMtPkxhbmcoInRpdGxlX2ZpZWxkZGVmcyIpLCAoJGFjdGl2ZV90YWIgPT0gJ2ZpZWxkZGVmcycpP3RydWU6ZmFsc2UpOw0KCWVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigib3B0aW9ucyIsbGFuZygib3B0aW9ucyIpLCAoJGFjdGl2ZV90YWIgPT0gJ29wdGlvbnMnKT90cnVlOmZhbHNlKTsNCn0NCg0KZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOw0KDQoNCmVjaG8gJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpOw0KDQppZiAoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBNYW5hZ2UnIHx8ICdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gVXNlJykgKQ0Kew0KCWVjaG8gJHRoaXMtPlN0YXJ0VGFiKCJnZW5lcmFsIik7DQoJCWluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9nZW5lcmFsLnBocCcpOw0KCWVjaG8gJHRoaXMtPkVuZFRhYigpOw0KfQ0KDQppZiAoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBNYW5hZ2UnKSApDQp7DQoJZWNobyAkdGhpcy0+U3RhcnRUYWIoImZpZWxkZGVmcyIpOw0KCQlpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fZmllbGRkZWZzLnBocCcpOw0KCWVjaG8gJHRoaXMtPkVuZFRhYigpOw0KDQoJZWNobyAkdGhpcy0+U3RhcnRUYWIoIm9wdGlvbnMiKTsNCgkJaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX29wdGlvbnMucGhwJyk7DQoJZWNobyAkdGhpcy0+RW5kVGFiKCk7DQp9DQoNCmVjaG8gJHRoaXMtPkVuZFRhYkNvbnRlbnQoKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.editfielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncw0KIyBBdXRob3I6IFJvbGYgVGphc3NlbnMsIEpvcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDExIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2N1c3RvbWdzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsNCg0KaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gTWFuYWdlJykgKQ0Kew0KCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMobGFuZygnbmVlZHBlcm1pc3Npb250bycsICdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gTWFuYWdlJykpOw0KCXJldHVybjsNCn0NCg0KaWYgKCBpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkgKQ0Kew0KCSRwYXJhbXMgPSBhcnJheSgnYWN0aXZlX3RhYicgPT4gJ2ZpZWxkZGVmcycpOw0KCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQp9DQoNCmlmKCAhaXNzZXQoJHBhcmFtc1snbW9kZSddKSApDQp7DQoJJHBhcmFtcyA9IGFycmF5KCdtb2R1bGVfZXJyb3InID0+IGxhbmcoJ21pc3NpbmdwYXJhbXMnKSwgJ2FjdGl2ZV90YWInID0+ICdmaWVsZGRlZnMnKTsNCgkkdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLCRwYXJhbXMpOw0KCXJldHVybjsNCn0NCg0KJGRiID0gJHRoaXMtPkdldERCKCk7DQoNCnN3aXRjaCAoJHBhcmFtc1snbW9kZSddKQ0Kew0KCWNhc2UgJ2FkZCc6DQoJCWlmKCAkX1NFUlZFUlsnUkVRVUVTVF9NRVRIT0QnXSA9PSAnUE9TVCcgKQ0KCQl7DQoJCQkvLyBjaGVjayBpZiBuYW1lIGlzIGVtcHR5DQoJCQlpZiAoIGVtcHR5KCRwYXJhbXNbJ25hbWUnXSkgKSAkcGFyYW1zWyduYW1lJ10gPSAkcGFyYW1zWyd0eXBlJ10gLiAiMSI7DQoJCQkvLyBjaGVjayBpZiBuYW1lIGFscmVhZHkgZXhpc3RzDQoJCQlXaGlsZSAoICR0aGlzLT5HZXRGaWVsZCgkcGFyYW1zWyduYW1lJ10pICE9PSBGQUxTRSApDQoJCQl7DQoJCQkJaWYgKCBpc19udW1lcmljKHN1YnN0cigkcGFyYW1zWyduYW1lJ10sIC0xKSkgKQ0KCQkJCXsNCgkJCQkJJHBhcmFtc1snbmFtZSddID0gaXNfbnVtZXJpYyhzdWJzdHIoJHBhcmFtc1snbmFtZSddLCAtMikpID8gc3Vic3RyKCRwYXJhbXNbJ25hbWUnXSwwICwgLTIpIC4gKHN1YnN0cigkcGFyYW1zWyduYW1lJ10sIC0yKSArIDEpIDogc3Vic3RyKCRwYXJhbXNbJ25hbWUnXSwwICwgLTEpIC4gKHN1YnN0cigkcGFyYW1zWyduYW1lJ10sIC0xKSArIDEpOw0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQkkcGFyYW1zWyduYW1lJ10gLj0gIjEiOw0KCQkJCX0NCgkJCX0NCgkJCS8vIGZpbmQgbWF4aW11bSB2YWx1ZSBmb3Igc29ydG9yZGVyDQoJCQkkcXVlcnkgPSAiU0VMRUNUIE1BWChzb3J0b3JkZXIpIEFTIG1heHNvcnRvcmRlciBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3MiOw0KCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOw0KCQkJaWYoICRyZXN1bHQgKQ0KCQkJew0KCQkJCSRmaWVsZCA9ICRyZXN1bHQtPkZldGNoUm93KCk7DQoJCQkJLy8gc2V0IHByb3BlcnRpZXMsIGRlcGVuZGluZyBvbiBmaWVsZHR5cGUNCgkJCQlpZiggJHBhcmFtc1sndHlwZSddID09ICd0ZXh0ZmllbGQnICkNCgkJCQl7DQoJCQkJCSRwYXJhbXNbJ3Byb3BlcnRpZXMnXSA9IGlzX251bWVyaWMoJHBhcmFtc1snbWF4bGVuZ3RoJ10pID8gJHBhcmFtc1snbWF4bGVuZ3RoJ10gOiAyNTU7DQoJCQkJfQ0KCQkJCWVsc2VpZiAoICRwYXJhbXNbJ3R5cGUnXSA9PSAndGV4dGFyZWEnIHx8ICRwYXJhbXNbJ3R5cGUnXSA9PSAnd3lzaXd5ZycgKQ0KCQkJCXsNCgkJCQkJJHBhcmFtc1sncHJvcGVydGllcyddID0gaXNzZXQoJHBhcmFtc1sncGFyc2VzbWFydHknXSk7DQoJCQkJfQ0KCQkJCWVsc2VpZiAoICRwYXJhbXNbJ3R5cGUnXSAhPSAncHVsbGRvd24nICYmICRwYXJhbXNbJ3R5cGUnXSAhPSAncmFkaW9idXR0b25zJyApDQoJCQkJew0KCQkJCQkkcGFyYW1zWydwcm9wZXJ0aWVzJ10gPSAnJzsNCgkJCQl9DQoJCQkJJHBhcmFtc1snY2xlYXJjYWNoZSddID0gaXNzZXQoJHBhcmFtc1snY2xlYXJjYWNoZSddKTsNCgkJCQkvLyBzYXZlIGZpZWxkZGVmaW5pdGlvbg0KCQkJCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2N1c3RvbWdzIChuYW1lLCBoZWxwLCB0eXBlLCBwcm9wZXJ0aWVzLCBjbGVhcmNhY2hlLCBzb3J0b3JkZXIpIFZBTFVFUyAoPyw/LD8sPyw/LD8pIjsNCgkJCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHBhcmFtc1snbmFtZSddLCAkcGFyYW1zWydoZWxwJ10sICRwYXJhbXNbJ3R5cGUnXSwgJHBhcmFtc1sncHJvcGVydGllcyddLCAkcGFyYW1zWydjbGVhcmNhY2hlJ10sICRmaWVsZFsnbWF4c29ydG9yZGVyJ10gKyAxKSk7DQoJCQl9DQoJCQlpZiggaXNzZXQoJHJlc3VsdCkgJiYgJHJlc3VsdCApDQoJCQl7DQoJCQkJLy8gUHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nDQoJCQkJYXVkaXQoJGRiLT5JbnNlcnRfSUQoKSwgJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBGaWVsZGRlZmluaXRpb24nLCAnQWRkZWQ6ICcgLiAkcGFyYW1zWyduYW1lJ10pOw0KCQkJCSRwYXJhbXMgPSBhcnJheSgndGFiX21lc3NhZ2UnPT4gJ2ZpZWxkZGVmYWRkZWQnLCAnYWN0aXZlX3RhYicgPT4gJ2ZpZWxkZGVmcycpOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCSRwYXJhbXMgPSBhcnJheSgnbW9kdWxlX2Vycm9yJz0+ICdmaWVsZGRlZnVwZGF0ZWZhaWxlZCcsICdhY3RpdmVfdGFiJyA9PiAnZmllbGRkZWZzJyk7DQoJCQl9DQoNCgkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQoJCX0NCgkJJGZpZWxkID0gYXJyYXkoJ25hbWUnID0+ICcnLCAnaGVscCcgPT4gJycsICd0eXBlJyA9PiAnJywgJ21heGxlbmd0aCcgPT4gJycsICdwcm9wZXJ0aWVzJyA9PiAnJywgJ3BhcnNlc21hcnR5JyA9PiAnJywgJ2NsZWFyY2FjaGUnID0+IDApOw0KCQkkc21hcnR5LT5hc3NpZ24oJ3RpdGxlJyxsYW5nKCdhZGQnKSk7DQoJCSRzbWFydHktPmFzc2lnbignaGlkZGVuJywgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ21vZGUnLCAnYWRkJykpOw0KCQlicmVhazsNCg0KDQoJY2FzZSAnZGVsZXRlJzoNCgkJaWYoICFpc19udW1lcmljKCRwYXJhbXNbJ2ZpZWxkaWQnXSkgKQ0KCQl7DQoJCQkkcGFyYW1zID0gYXJyYXkoJ21vZHVsZV9lcnJvcicgPT4gbGFuZygnbWlzc2luZ3BhcmFtcycpLCAnYWN0aXZlX3RhYicgPT4gJ2ZpZWxkZGVmcycpOw0KCQkJJHRoaXMtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywnJywkcGFyYW1zKTsNCgkJCXJldHVybjsNCgkJfQ0KICAgICRxdWVyeSA9ICJTRUxFQ1QgbmFtZSwgc29ydG9yZGVyIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jdXN0b21ncyBXSEVSRSBmaWVsZGlkID0gPyI7DQoJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcGFyYW1zWydmaWVsZGlkJ10pKTsNCgkJaWYoICEkcmVzdWx0IHx8ICRyZXN1bHQtPlJlY29yZENvdW50KCkgPT0gMCApDQoJCXsNCgkJCSRwYXJhbXMgPSBhcnJheSgnbW9kdWxlX2Vycm9yJz0+ICdmaWVsZGRlZnVwZGF0ZWZhaWxlZCcsICdhY3RpdmVfdGFiJyA9PiAnZmllbGRkZWZzJyk7DQoJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KCQl9DQoJCSRyb3cgPSAkcmVzdWx0LT5GZXRjaFJvdygpOw0KDQoJCSRxdWVyeSA9ICJERUxFVEUgRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21ncyBXSEVSRSBmaWVsZGlkID0gPyI7DQoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbJ2ZpZWxkaWQnXSkpOw0KCQkvLyBQdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cNCgkJYXVkaXQoJHBhcmFtc1snZmllbGRpZCddLCAnQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIEZpZWxkZGVmaW5pdGlvbicsICdEZWxldGVkOiAnIC4gJHJvd1snbmFtZSddKTsNCg0KCQkvLyB1cGRhdGUgdGhlIHNvcnRvcmRlcg0KCQkkcXVlcnkgPSAiVVBEQVRFICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzIFNFVCBzb3J0b3JkZXIgPSBzb3J0b3JkZXIgLSAxIFdIRVJFIHNvcnRvcmRlciA+ID8iOw0KCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHJvd1snc29ydG9yZGVyJ10pKTsNCg0KCQkkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICdmaWVsZGRlZnN1cGRhdGVkJywgJ2FjdGl2ZV90YWInID0+ICdmaWVsZGRlZnMnKTsNCgkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCgkJYnJlYWs7DQoNCg0KCWNhc2UgJ2VkaXQnOg0KCQlpZiggIWlzX251bWVyaWMoJHBhcmFtc1snZmllbGRpZCddKSApDQoJCXsNCgkJCSRwYXJhbXMgPSBhcnJheSgnbW9kdWxlX2Vycm9yJyA9PiBsYW5nKCdtaXNzaW5ncGFyYW1zJyksICdhY3RpdmVfdGFiJyA9PiAnZmllbGRkZWZzJyk7DQoJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLCRwYXJhbXMpOw0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJaWYoICRfU0VSVkVSWydSRVFVRVNUX01FVEhPRCddID09ICdQT1NUJyApDQoJCXsNCgkJCS8vIGNoZWNrIGlmIG5hbWUgaXMgZW1wdHkNCgkJCWlmICggZW1wdHkoJHBhcmFtc1snbmFtZSddKSApICRwYXJhbXNbJ25hbWUnXSA9ICRwYXJhbXNbJ3R5cGUnXSAuICIxIjsNCgkJCS8vIGNoZWNrIGlmIG5hbWUgYWxyZWFkeSBleGlzdHMNCgkJCSRjaGVja2ZpZWxkbmFtZSA9ICR0aGlzLT5HZXRGaWVsZCgkcGFyYW1zWyduYW1lJ10pOw0KCQkJV2hpbGUgKCAkY2hlY2tmaWVsZG5hbWUgIT09IEZBTFNFICYmICRwYXJhbXNbJ2ZpZWxkaWQnXSAhPSAkY2hlY2tmaWVsZG5hbWVbJ2ZpZWxkaWQnXSApDQoJCQl7DQoJCQkJaWYgKCBpc19udW1lcmljKHN1YnN0cigkcGFyYW1zWyduYW1lJ10sIC0xKSkgKQ0KCQkJCXsNCgkJCQkJJHBhcmFtc1snbmFtZSddID0gaXNfbnVtZXJpYyhzdWJzdHIoJHBhcmFtc1snbmFtZSddLCAtMikpID8gc3Vic3RyKCRwYXJhbXNbJ25hbWUnXSwwICwgLTIpIC4gKHN1YnN0cigkcGFyYW1zWyduYW1lJ10sIC0yKSArIDEpIDogc3Vic3RyKCRwYXJhbXNbJ25hbWUnXSwwICwgLTEpIC4gKHN1YnN0cigkcGFyYW1zWyduYW1lJ10sIC0xKSArIDEpOw0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQkkcGFyYW1zWyduYW1lJ10gLj0gIjEiOw0KCQkJCX0NCgkJCQkkY2hlY2tmaWVsZG5hbWUgPSAkdGhpcy0+R2V0RmllbGQoJHBhcmFtc1snbmFtZSddKTsNCgkJCX0NCgkJCS8vIHNldCBwcm9wZXJ0aWVzLCBkZXBlbmRpbmcgb24gZmllbGR0eXBlDQoJCQlpZiggJHBhcmFtc1sndHlwZSddID09ICd0ZXh0ZmllbGQnICkNCgkJCXsNCgkJCQkkcGFyYW1zWydwcm9wZXJ0aWVzJ10gPSBpc19udW1lcmljKCRwYXJhbXNbJ21heGxlbmd0aCddKSA/ICRwYXJhbXNbJ21heGxlbmd0aCddIDogMjU1Ow0KCQkJfQ0KCQkJZWxzZWlmICggJHBhcmFtc1sndHlwZSddID09ICd0ZXh0YXJlYScgfHwgJHBhcmFtc1sndHlwZSddID09ICd3eXNpd3lnJyApDQoJCQl7DQoJCQkJJHBhcmFtc1sncHJvcGVydGllcyddID0gJHBhcmFtc1sncGFyc2VzbWFydHknXTsNCgkJCX0NCgkJCWVsc2VpZiAoICRwYXJhbXNbJ3R5cGUnXSAhPSAncHVsbGRvd24nICYmICRwYXJhbXNbJ3R5cGUnXSAhPSAncmFkaW9idXR0b25zJyApDQoJCQl7DQoJCQkJJHBhcmFtc1sncHJvcGVydGllcyddID0gJyc7DQoJCQl9DQoJCQkkcGFyYW1zWydjbGVhcmNhY2hlJ10gPSBpc3NldCgkcGFyYW1zWydjbGVhcmNhY2hlJ10pOw0KDQoJCQkvLyBzYXZlIGZpZWxkZGVmaW5pdGlvbg0KCQkJJHF1ZXJ5ID0gIlVQREFURSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21ncyBTRVQgbmFtZSA9ID8sIGhlbHAgPSA/LCB0eXBlID0gPywgcHJvcGVydGllcyA9ID8sIGNsZWFyY2FjaGUgPSA/IFdIRVJFIGZpZWxkaWQgPSA/IjsNCgkJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcGFyYW1zWyduYW1lJ10sICRwYXJhbXNbJ2hlbHAnXSwgJHBhcmFtc1sndHlwZSddLCAkcGFyYW1zWydwcm9wZXJ0aWVzJ10sICRwYXJhbXNbJ2NsZWFyY2FjaGUnXSwgJHBhcmFtc1snZmllbGRpZCddKSk7DQoNCgkJCS8vIFB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZw0KCQkJYXVkaXQoJHBhcmFtc1snZmllbGRpZCddLCAnQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIEZpZWxkZGVmaW5pdGlvbicsICdFZGl0ZWQ6ICcgLiAkcGFyYW1zWyduYW1lJ10pOw0KDQoJCQkkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICdmaWVsZGRlZnN1cGRhdGVkJywgJ2FjdGl2ZV90YWInID0+ICdmaWVsZGRlZnMnKTsNCgkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQoJCX0NCgkJJGZpZWxkID0gJHRoaXMtPkdldEZpZWxkKCRwYXJhbXNbJ2ZpZWxkaWQnXSk7DQoNCgkJJHNtYXJ0eS0+YXNzaWduKCd0aXRsZScsbGFuZygnZWRpdCcpKTsNCgkJJHNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLCAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmllbGRpZCcsICRwYXJhbXNbJ2ZpZWxkaWQnXSkgLg0KCQkJCQkJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ21vZGUnLCAnZWRpdCcpKTsNCgkJYnJlYWs7DQoNCg0KCWNhc2UgJ21vdmV1cCc6DQoJY2FzZSAnbW92ZWRvd24nOg0KCQkkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21ncyBXSEVSRSBmaWVsZGlkID0gPyI7DQoJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcGFyYW1zWydmaWVsZGlkJ10pKTsNCgkJaWYoICEkcmVzdWx0IHx8ICRyZXN1bHQtPlJlY29yZENvdW50KCkgPT0gMCApDQoJCXsNCgkJCSRwYXJhbXMgPSBhcnJheSgnbW9kdWxlX2Vycm9yJz0+ICd0eXBldXBkYXRlZmFpbGVkJywgJ2FjdGl2ZV90YWInID0+ICd0eXBlcycpOw0KCQkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCgkJfQ0KCQkkcm93ID0gJHJlc3VsdC0+RmV0Y2hSb3coKTsNCg0KCQkkcXVlcnkgPSAiVVBEQVRFICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzIFNFVCBzb3J0b3JkZXIgPSAiIC4gKCRwYXJhbXNbJ21vZGUnXSA9PSAnbW92ZXVwJyA/ICdzb3J0b3JkZXIgKyAxJyA6ICdzb3J0b3JkZXIgLSAxJykgLiAiIFdIRVJFIHNvcnRvcmRlciA9ID8iOw0KCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHBhcmFtc1snbW9kZSddID09ICdtb3ZldXAnID8gJHJvd1snc29ydG9yZGVyJ10gLSAxIDogJHJvd1snc29ydG9yZGVyJ10gKyAxKSk7DQoNCgkJJHF1ZXJ5ID0gIlVQREFURSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21ncyBTRVQgc29ydG9yZGVyID0gIiAuICgkcGFyYW1zWydtb2RlJ10gPT0gJ21vdmV1cCcgPyAnc29ydG9yZGVyIC0gMScgOiAnc29ydG9yZGVyICsgMScpIC4gIiBXSEVSRSBmaWVsZGlkID0gPyI7DQoJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcGFyYW1zWydmaWVsZGlkJ10pKTsNCg0KCQkkcGFyYW1zID0gYXJyYXkoJ2FjdGl2ZV90YWInID0+ICdmaWVsZGRlZnMnKTsNCgkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCgkJYnJlYWs7DQoNCn0NCg0KDQokdHlwZWxpc3QgPSBhcnJheSgNCgkkdGhpcy0+TGFuZygndGV4dGZpZWxkJykgPT4gJ3RleHRmaWVsZCcsDQoJJHRoaXMtPkxhbmcoJ3B1bGxkb3duJykgPT4gJ3B1bGxkb3duJywNCgkkdGhpcy0+TGFuZygnY2hlY2tib3gnKSA9PiAnY2hlY2tib3gnLA0KCSR0aGlzLT5MYW5nKCdyYWRpb2J1dHRvbnMnKSA9PiAncmFkaW9idXR0b25zJywNCgkkdGhpcy0+TGFuZygnZGF0ZXBpY2tlcicpID0+ICdkYXRlcGlja2VyJywNCgkkdGhpcy0+TGFuZygnZGF0ZXRpbWVwaWNrZXInKSA9PiAnZGF0ZXRpbWVwaWNrZXInLA0KCSR0aGlzLT5MYW5nKCd0aW1lcGlja2VyJykgPT4gJ3RpbWVwaWNrZXInLA0KCSR0aGlzLT5MYW5nKCd0ZXh0YXJlYScpID0+ICd0ZXh0YXJlYScsDQoJJHRoaXMtPkxhbmcoJ3d5c2l3eWcnKSA9PiAnd3lzaXd5ZycsDQoJJHRoaXMtPkxhbmcoJ2J1dHRvbicpID0+ICdidXR0b24nKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfbmFtZScsbGFuZygnbmFtZScpKTsNCiRzbWFydHktPmFzc2lnbignbmFtZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ25hbWUnLCAkZmllbGRbJ25hbWUnXSwgNDAgKSk7DQoNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X3R5cGUnLCBsYW5nKCd0eXBlJykpOw0KJHNtYXJ0eS0+YXNzaWduKCd0eXBlJywgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAndHlwZScsICR0eXBlbGlzdCwgLTEsICRmaWVsZFsndHlwZSddLCAnaWQ9ImZpZWxkdHlwZSInKSk7DQoNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X21heGxlbmd0aCcsJHRoaXMtPkxhbmcoJ21heGxlbmd0aCcpKTsNCiRzbWFydHktPmFzc2lnbignbWF4bGVuZ3RoJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnbWF4bGVuZ3RoJywgJGZpZWxkWyd0eXBlJ10gPT0gJ3RleHRmaWVsZCcgPyAkZmllbGRbJ3Byb3BlcnRpZXMnXSA6ICcnLCA1LCA1KSk7DQoNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X3Byb3BlcnRpZXMnLCAkdGhpcy0+TGFuZygncHJvcGVydGllcycpKTsNCiRzbWFydHktPmFzc2lnbignaGVscF9wcm9wZXJ0aWVzJywgJHRoaXMtPkxhbmcoJ3Byb3BlcnRpZXNfaGVscDEnKSk7DQokc21hcnR5LT5hc3NpZ24oJ3Byb3BlcnRpZXMnLCAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoRkFMU0UsICRpZCwgJGZpZWxkWyd0eXBlJ10gPT0gJ3B1bGxkb3duJyB8fCAkZmllbGRbJ3R5cGUnXSA9PSAncmFkaW9idXR0b25zJyA/ICRmaWVsZFsncHJvcGVydGllcyddIDogJycsICdwcm9wZXJ0aWVzJywgJycsICcnICwgJycgLCAnJywgMjAsIDYsICcnLCAnJywgJ3N0eWxlPSJ3aWR0aDoyMGVtOyBoZWlnaHQ6NmVtOyInKSk7DQoNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X3BhcnNlc21hcnR5JywkdGhpcy0+TGFuZygncGFyc2VzbWFydHknKSk7DQokc21hcnR5LT5hc3NpZ24oJ3BhcnNlc21hcnR5JywgJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAncGFyc2VzbWFydHknLCAnMScsICRmaWVsZFsndHlwZSddID09ICd0ZXh0YXJlYScgfHwgJGZpZWxkWyd0eXBlJ10gPT0gJ3d5c2l3eWcnID8gJGZpZWxkWydwcm9wZXJ0aWVzJ10gOiAnJykpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9oZWxwJywgbGFuZygnaGVscCcpKTsNCiRzbWFydHktPmFzc2lnbignaGVscCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2hlbHAnLCAkZmllbGRbJ2hlbHAnXSwgODAgKSk7DQoNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X2NsZWFyY2FjaGUnLCAkdGhpcy0+TGFuZygnY2xlYXJzdHlsZXNoZWV0Y2FjaGUnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2hlbHBfY2xlYXJjYWNoZScsICR0aGlzLT5MYW5nKCdjbGVhcnN0eWxlc2hlZXRjYWNoZV9oZWxwJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdjbGVhcmNhY2hlJywgJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnY2xlYXJjYWNoZScsICcxJywgJGZpZWxkWydjbGVhcmNhY2hlJ10pKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCAoJGlkLCAnc3VibWl0YnV0dG9uJywgbGFuZygnc3VibWl0JykpKTsNCiRzbWFydHktPmFzc2lnbignY2FuY2VsJywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ2NhbmNlbCcsIGxhbmcoJ2NhbmNlbCcpKSk7DQoNCiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCAoJGlkLCAnZWRpdGZpZWxkZGVmJywgJHJldHVybmlkKSk7DQokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOw0KDQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRmaWVsZGRlZi50cGwnKTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.save_general.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncw0KIyBBdXRob3I6IFJvbGYgVGphc3NlbnMsIEpvcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDExIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2N1c3RvbWdzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsNCg0KaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gTWFuYWdlJykgKSAkdGhpcy0+UmVkaXJlY3QoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkKTsNCg0KLy8gR2V0IGFsbCBmaWVsZHMgYW5kIHNldHRpbmdzDQokYWxsZmllbGRzID0gJHRoaXMtPkdldFNldHRpbmdzKGZhbHNlKTsNCiRjbGVhcmNhY2hlID0gMDsNCg0KZm9yZWFjaCggJGFsbGZpZWxkcyBhcyAka2V5ID0+ICR2YWx1ZSApDQp7DQoNCgkvLyBPbmx5IHVzZSB0aGUgbnVtZXJpYyBrZXlzDQoJaWYoIGlzX251bWVyaWMoJGtleSkgKQ0KCXsNCgkJLy8gU2F2ZSBmaWVsZCB2YWx1ZQ0KCQkkbmV3dmFsdWUgPSBpc3NldCgkcGFyYW1zWydmaWVsZCddWyRrZXldKSA/ICRwYXJhbXNbJ2ZpZWxkJ11bJGtleV0gOiAwOw0KCQkkcXVlcnkgPSAiVVBEQVRFICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzIFNFVCB2YWx1ZT0/IFdIRVJFIGZpZWxkaWQ9PyI7DQoJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkbmV3dmFsdWUsICRrZXkpKTsNCgkJDQoJCS8vIFNlbnQgZXZlbnQgb25seSB3aGVuIHZhbHVlIGhhcyBjaGFuZ2VkLg0KCQlpZiAoICRuZXd2YWx1ZSAhPSAkdmFsdWUgKQ0KCQl7DQoJCQkkZmllbGQgPSAkdGhpcy0+R2V0RmllbGQoJGtleSk7DQoJCQkkdGhpcy0+U2VuZEV2ZW50KCdPblNldHRpbmdDaGFuZ2UnLCBhcnJheSgNCgkJCQkJCSdmaWVsZGlkJyA9PiAkZmllbGRbJ2ZpZWxkaWQnXSwNCgkJCQkJCSduYW1lJyA9PiAkZmllbGRbJ25hbWUnXSwNCgkJCQkJCSdhbGlhcycgPT4gc3RyX3JlcGxhY2UoJ19fJywgJ18nLCBzdHJfcmVwbGFjZSgnLScsICdfJywgbXVuZ2Vfc3RyaW5nX3RvX3VybCgkZmllbGRbJ25hbWUnXSkpKSwNCgkJCQkJCSd2YWx1ZScgPT4gJG5ld3ZhbHVlLA0KCQkJCQkJJ2NsZWFyY2FjaGUnID0+ICRmaWVsZFsnY2xlYXJjYWNoZSddDQoJCQkpKTsNCgkJCSRjbGVhcmNhY2hlID0gJGNsZWFyY2FjaGUgfHwgJGZpZWxkWydjbGVhcmNhY2hlJ107DQoJCX0NCgl9DQp9DQoNCi8vIENsZWFyIHRoZSBzdHlsZXNoZWV0IGNhY2hlIGlmIHJlcXVpcmVkIGJ5IG9uZSBvZiB0aGUgZmllbGRzIGFuZCBvbmx5IGlmIHRoYXQgZmllbGQgaGFzIGJlZW4gY2hhbmdlZA0KaWYgKCAkY2xlYXJjYWNoZSApICR0aGlzLT5DbGVhclN0eWxlc2hlZXRDYWNoZSgpOw0KDQovLyBTaG93IHNhdmVkIHBhcmFtZXRlcnMgaW4gZGVidWcgbW9kZQ0KZGVidWdfZGlzcGxheSgkcGFyYW1zKTsNCg0KLy8gUHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nDQphdWRpdCgnJywgJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBHZW5lcmFsIHRhYicsICdTYXZlZCcpOw0KDQokdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSgnbW9kdWxlX21lc3NhZ2UnID0+ICR0aGlzLT5MYW5nKCdzZXR0aW5nc3NhdmVkJyksICdhY3RpdmVfdGFiJyA9PiAnZ2VuZXJhbCcpKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.save_options.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncw0KIyBBdXRob3I6IFJvbGYgVGphc3NlbnMsIEpvcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDExIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2N1c3RvbWdzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsNCg0KaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gTWFuYWdlJykgKSAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkKTsNCg0KLy8gU2F2ZSBQYXJhbWV0ZXJzIE9wdGlvbnMgVGFiDQppZiAoaXNzZXQoJHBhcmFtc1snaW5wdXRfY3VzdG9tX21vZHVsZW5hbWUnXSkpICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbnB1dF9jdXN0b21fbW9kdWxlbmFtZScsICRwYXJhbXNbJ2lucHV0X2N1c3RvbV9tb2R1bGVuYW1lJ10pOw0KaWYgKGlzc2V0KCRwYXJhbXNbJ2lucHV0X2FkbWluX3NlY3Rpb24nXSkpICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhZG1pbl9zZWN0aW9uJywgJHBhcmFtc1snaW5wdXRfYWRtaW5fc2VjdGlvbiddKTsNCg0KLy8gQ2xlYXIgYWRtaW4gbWVudSBjYWNoZQ0KZm9yZWFjaCAoZ2xvYigiLi4vdG1wL2NhY2hlL3RoZW1laW5mbyouY2FjaGUiKSBhcyAkZmlsZW5hbWUpIHsNCglAdW5saW5rKCRmaWxlbmFtZSk7DQp9DQoNCi8vIFNob3cgc2F2ZWQgcGFyYW1ldGVycyBpbiBkZWJ1ZyBtb2RlDQpkZWJ1Z19kaXNwbGF5KCRwYXJhbXMpOw0KDQovLyBQdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cNCmF1ZGl0KCcnLCAnQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIE9wdGlvbnMgdGFiJywgJ1NhdmVkJyk7DQoNCiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCdtb2R1bGVfbWVzc2FnZScgPT4gJHRoaXMtPkxhbmcoJ3NldHRpbmdzc2F2ZWQnKSwgJ2FjdGl2ZV90YWInID0+ICdvcHRpb25zJykpOw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPg0KPGxpPjxzdHJvbmc+VmVyc2lvbiAxLjM8L3N0cm9uZz4gLSAxNCBhdWd1c3QgMjAxMg0KCTx1bD4NCgk8bGk+UmVtb3ZlZCBDbGVhciBDYWNoZSBkdWUgdG8gRm9yZ2UgcmVndWxhdGlvbnM8L2xpPg0KCTxsaT5CdWcgIzgwMDk6IGZpeGVkIC0gSXNzdWUgd2l0aCB0ZXh0IGFyZWFzIHdpdGggc21hcnR5IHBhcnNpbmcgb248L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPjxzdHJvbmc+VmVyc2lvbiAxLjI8L3N0cm9uZz4gLSAyMCBNYXJjaCAyMDEyDQoJPHVsPg0KCTxsaT5NaW5pbXVtIHJlcXVpcmVkIENNU21zIHZlcnNpb24gc2V0IHRvIDEuMTA8L2xpPg0KCTxsaT5BZGQgR2V0QWRtaW5TZWN0aW9uIHNldHRpbmcgKEZSICM3NjE4KTwvbGk+DQoJPGxpPkFkZGVkIG9wdGlvbiB0byBhdXRvbWF0aWNhbGx5IGNsZWFyIGNhY2hlIGFmdGVyIGNoYW5naW5nIGEgc2V0dGluZzwvbGk+DQoJPGxpPkFkZGVkIGZpZWxkdHlwZSAnQnV0dG9uJzwvbGk+DQoJPGxpPlN1cHBvcnQgVmFsdWV8T3B0aW9uTmFtZSBwYWlycyBhbmQgU21hcnR5IHRhZ3MgZm9yIHB1bGxkb3duIGZpZWxkcyBhbmQgcmFkaW9idXR0b25zPC9saT4NCgk8bGk+QnVnIGZpeGVkOiBFZGl0aW5nIGEgZmllbGQgY2hhbmdlcyB0aGUgZmllbGRuYW1lPC9saT4NCgk8bGk+QnVnIGZpeGVkOiBTZW5kRXZlbnQgb24gY2hhbmdpbmcgYSBjaGVja2JveCBzZXR0aW5nPC9saT4NCgk8L3VsPg0KPC9saT4NCjxsaT48c3Ryb25nPlZlcnNpb24gMS4xPC9zdHJvbmc+IC0gMTkgRmVicnVhcnkgMjAxMg0KCTx1bD4NCgk8bGk+RGVmaW5lIHVubGltaXRlZCBudW1iZXIgb2YgZmllbGRzPC9saT4NCgk8bGk+QWRkZWQgZmllbGR0eXBlcyB0ZXh0YXJlYSwgd3lzaXd5ZywgZGF0ZXRpbWVwaWNrZXIsIHB1bGxkb3duIHNlbGVjdCwgcmFkaW9idXR0b25zPC9saT4NCgk8bGk+QWRkZWQgZXZlbnQgT25TZXR0aW5nQ2hhbmdlPC9saT4NCgk8L3VsPg0KPC9saT4NCjxsaT48c3Ryb25nPlZlcnNpb24gMS4wPC9zdHJvbmc+IC0gMjEgSmFudWFyeSAyMDEyDQoJPHVsPg0KCTxsaT5Jbml0aWFsIG1vZHVsZSByZWxlYXNlPC9saT4NCgk8L3VsPg0KPC9saT4NCjwvdWw+]]></data>
	</file>
	<file>
	  <filename>/CustomGS.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncw0KIyBBdXRob3I6IFJvbGYgVGphc3NlbnMsIEpvcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDExIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2N1c3RvbWdzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsNCg0KY2xhc3MgQ3VzdG9tR1MgZXh0ZW5kcyBDTVNNb2R1bGUNCnsNCglmdW5jdGlvbiBHZXROYW1lKCkNCgl7DQoJCXJldHVybiAnQ3VzdG9tR1MnOw0KCX0NCg0KCWZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpDQoJew0KCQlyZXR1cm4gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2lucHV0X2N1c3RvbV9tb2R1bGVuYW1lJyk7DQoJfQ0KCQ0KCWZ1bmN0aW9uIEdldFZlcnNpb24oKQ0KCXsNCgkJcmV0dXJuICcxLjMnOw0KCX0NCgkNCglmdW5jdGlvbiBNaW5pbXVtQ01TVmVyc2lvbigpDQoJew0KCQlyZXR1cm4gJzEuMTAnOw0KCX0NCgkNCglmdW5jdGlvbiBHZXRIZWxwKCkNCgl7DQoJCXJldHVybiBmaWxlX2dldF9jb250ZW50cyhkaXJuYW1lKF9fRklMRV9fKS4nL2hlbHBfdGV4dC5pbmMnKTsNCgl9DQoJDQoJZnVuY3Rpb24gR2V0QXV0aG9yKCkNCgl7DQoJCXJldHVybiAnUm9sZiBUamFzc2Vucyc7DQoJfQ0KCQ0KCWZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkNCgl7DQoJCXJldHVybiAncm9sZiBhdCBjbXNtYWRlc2ltcGxlIGRvdCBvcmcnOw0KCX0NCgkNCglmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKQ0KCXsNCgkJcmV0dXJuIGZpbGVfZ2V0X2NvbnRlbnRzKGRpcm5hbWUoX19GSUxFX18pLicvY2hhbmdlbG9nLmluYycpOw0KCX0NCgkNCglmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpDQoJew0KCQlyZXR1cm4gdHJ1ZTsNCgl9DQoJDQoJZnVuY3Rpb24gSGFzQWRtaW4oKQ0KCXsNCgkJcmV0dXJuIHRydWU7DQoJfQ0KCQ0KCWZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpDQoJew0KCQlyZXR1cm4gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FkbWluX3NlY3Rpb24nLCAnZXh0ZW5zaW9ucycpOw0KCX0NCgkNCglmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkNCgl7DQoJCXJldHVybiAkdGhpcy0+TGFuZygnbW9kZGVzY3JpcHRpb24nKTsNCgl9DQoNCglmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKSANCgl7DQoJCXJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gTWFuYWdlJykgfHwgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIFVzZScpOw0KCX0NCg0KCWZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpDQoJew0KCQlyZXR1cm4gYXJyYXkoKTsNCgl9DQoJDQoJZnVuY3Rpb24gU2V0UGFyYW1ldGVycygpDQoJew0KCQkkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsNCgkJJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOw0KCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzaG93dmFycycsMSwnU2V0IHRoaXMgcGFyYW1ldGVyIHRvIHNob3cgYWxsIGF2YWlsYWJsZSB2YXJpYWJsZXMgYW5kIHRoZWlyIHZhbHVlcy4gRm9yIHRlc3RpbmcgcHVycG9zZXMgb25seS4nKTsNCgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Nob3d2YXJzJyxDTEVBTl9JTlQpOw0KCX0NCgkNCiAgZnVuY3Rpb24gR2V0RXZlbnREZXNjcmlwdGlvbigkZXZlbnRuYW1lKQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdldmVudF9pbmZvXycuJGV2ZW50bmFtZSApOw0KICB9DQoNCiAgZnVuY3Rpb24gR2V0RXZlbnRIZWxwKCRldmVudG5hbWUpDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2V2ZW50X2hlbHBfJy4kZXZlbnRuYW1lICk7DQogIH0NCg0KCWZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpDQoJew0KCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7DQoJfQ0KDQoJZnVuY3Rpb24gVW5pbnN0YWxsUHJlTWVzc2FnZSgpDQoJew0KCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ3VuaW5zdGFsbF9jb25maXJtJyk7DQoJfQ0KCQ0KCWZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkNCgl7DQoJCXJldHVybiAkdGhpcy0+TGFuZygncG9zdHVuaW5zdGFsbCcpOw0KCX0NCg0KCWZ1bmN0aW9uIEdldEhlYWRlckhUTUwoKQ0KCXsNCgkJJHRtcGwgPSA8PDxFT1QNCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL21vZHVsZXMvQ3VzdG9tR1MvbGliL2pxdWVyeS9qcXVlcnktdWkuc21vb3RobmVzcy5jc3MiIG1lZGlhPSJzY3JlZW4iIC8+IDwhLS0gc21vb3RobmVzcy9qcXVlcnktdWktMS44LjEyLmN1c3RvbS5jc3MgLS0+DQp7bGl0ZXJhbH0NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQoJLmNtc19sYWJlbCB7IG1hcmdpbi1yaWdodDoxMnB4OyB9DQoJLyogY3NzIGZvciB0aW1lcGlja2VyICovDQoJLnVpLXRpbWVwaWNrZXItZGl2IC51aS13aWRnZXQtaGVhZGVyIHsgbWFyZ2luLWJvdHRvbTogOHB4OyB9DQoJLnVpLXRpbWVwaWNrZXItZGl2IGRsIHsgdGV4dC1hbGlnbjogbGVmdDsgfQ0KCS51aS10aW1lcGlja2VyLWRpdiBkbCBkdCB7IGhlaWdodDogMjVweDsgbWFyZ2luLWJvdHRvbTogLTI1cHg7IH0NCgkudWktdGltZXBpY2tlci1kaXYgZGwgZGQgeyBtYXJnaW46IDAgMTBweCAxMHB4IDY1cHg7IH0NCgkudWktdGltZXBpY2tlci1kaXYgdGQgeyBmb250LXNpemU6IDkwJTsgfQ0KCS51aS10cGlja2VyLWdyaWQtbGFiZWwgeyBiYWNrZ3JvdW5kOiBub25lOyBib3JkZXI6IG5vbmU7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgfQ0KPC9zdHlsZT4NCnsvbGl0ZXJhbH0NCkVPVDsNCgkJcmV0dXJuICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdG1wbCk7DQoJfQ0KDQoJLyoqDQoJKiBNZXRob2QgdG8gZ2V0IHBhcmFtZXRlcnMgb2YgYSBmaWVsZCBieSBuYW1lIG9yIGJ5IGZpZWxkaWQNCgkqDQoJKiBAZmluYWwNCgkqIEBhY2Nlc3MgcHVibGljDQoJKiBAcmV0dXJuIGFycmF5KCkNCgkqLw0KCWZ1bmN0aW9uIEdldEZpZWxkKCRmaWVsZCkNCgl7DQoJCSRkYiA9IGNtc21zKCktPkdldERCKCk7DQoJCSRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3MgV0hFUkUgZmllbGRpZD0/IE9SIG5hbWU9PyI7DQoJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkZmllbGQsICRmaWVsZCkpOw0KCQlpZiggJHJlc3VsdCAmJiAkcmVzdWx0LT5SZWNvcmRDb3VudCgpID4gMCApDQoJCXsNCgkJCSRyb3cgPSAkcmVzdWx0LT5GZXRjaFJvdygpOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJJHJvdyA9IEZBTFNFOw0KCQl9DQoJCXJldHVybiAkcm93Ow0KCX0NCg0KCS8qKg0KCSogTWV0aG9kIHRvIGdldCBhbGwgc2V0dGluZ3MNCgkqDQoJKiBAZmluYWwNCgkqIEBhY2Nlc3MgcHVibGljDQoJKiBAcmV0dXJuIGFycmF5KCkNCgkqLw0KCWZ1bmN0aW9uIEdldFNldHRpbmdzKCRwYXJzZVNtYXJ0eSA9IHRydWUpDQoJew0KCQkkZmllbGRzID0gYXJyYXkoKTsNCg0KCQkkZGIgPSBjbXNtcygpLT5HZXREQigpOw0KCQkkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21ncyI7DQoJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsNCgkJaWYgKCAkcmVzdWx0ICYmICRyZXN1bHQtPlJlY29yZENvdW50KCkgPiAwICkNCgkJew0KCQkJd2hpbGUgKCAkcm93PSRyZXN1bHQtPkZldGNoUm93KCkgKQ0KCQkJew0KCQkJCSRhbGlhcyA9IHN0cl9yZXBsYWNlKCdfXycsICdfJywgc3RyX3JlcGxhY2UoJy0nLCAnXycsIG11bmdlX3N0cmluZ190b191cmwoJHJvd1snbmFtZSddKSkpOw0KCQkJCWlmICggJHBhcnNlU21hcnR5ICYmICgkcm93Wyd0eXBlJ10gPT0gJ3RleHRhcmVhJyB8fCAkcm93Wyd0eXBlJ10gPT0gJ3d5c2l3eWcnKSAmJiAkcm93Wydwcm9wZXJ0aWVzJ10gKQ0KCQkJCXsNCgkJCQkJJGZpZWxkc1skYWxpYXNdID0gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRyb3dbJ3ZhbHVlJ10pOw0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQkkZmllbGRzWyRhbGlhc10gPSAkcm93Wyd2YWx1ZSddOw0KCQkJCX0NCgkJCQkkZmllbGRzWyRyb3dbJ2ZpZWxkaWQnXV0gPSAkZmllbGRzWyRhbGlhc107DQoJCQl9DQoJCX0NCgkJcmV0dXJuICRmaWVsZHM7DQoJfQ0KDQoJLyoqDQoJKiBNZXRob2QgdG8gY2xlYXIgdGhlIGNvbWJpbmVkIHN0eWxlc2hlZXQgY2FjaGUNCgkqDQoJKiBAZmluYWwNCgkqIEBhY2Nlc3MgcHJpdmF0ZQ0KCSogQHJldHVybiB2b2lkDQoJKi8NCglmdW5jdGlvbiBDbGVhclN0eWxlc2hlZXRDYWNoZSgpDQoJew0KCQlmb3JlYWNoIChnbG9iKCIuLi90bXAvY2FjaGUvc3R5bGVzaGVldF9jb21iaW5lZF8qLmNzcyIpIGFzICRmaWxlbmFtZSkgew0KCQkJQHVubGluaygkZmlsZW5hbWUpOw0KCQl9DQoJfQ0KDQp9DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_fielddefs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEN1c3RvbSBHbG9iYWwgU2V0dGluZ3MKIyBBdXRob3I6IFJvbGYgVGphc3NlbnMsIEpvcwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY3VzdG9tZ3MKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIE1hbmFnZScpICkKewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycyhsYW5nKCduZWVkcGVybWlzc2lvbnRvJywgJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBNYW5hZ2UnKSk7CglyZXR1cm47Cn0KCgokdGhlbWVPYmplY3QgPSBjbXNtcygpLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXTsKCiRyb3dhcnJheSA9IGFycmF5KCk7CgokZGIgPSAkdGhpcy0+R2V0REIoKTsKJHF1ZXJ5ID0gIlNFTEVDVAoJCQkJCQkqCgkJCQkJRlJPTQoJCQkJCQkiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21ncwoJCQkJCU9SREVSIEJZCgkJCQkJCXNvcnRvcmRlciBBU0MiOwokcmVzdWx0ID0gJGRiLT5HZXRBbGwoJHF1ZXJ5KTsKJHJvd2NvdW50ID0gY291bnQoJHJlc3VsdCk7CgppZiAoICRyZXN1bHQgJiYgJHJvd2NvdW50ID4gMCApCnsKCSRyb3djbGFzcyA9ICdyb3cxJzsKCWZvcmVhY2ggKCAkcmVzdWx0IGFzICRrZXkgPT4gJGRlZiApCgl7CgkJJHJvdyA9IG5ldyBTdGRDbGFzcygpOwoJCSRyb3ctPmZpZWxkaWQgPSAkZGVmWydmaWVsZGlkJ107CgkJJHJvdy0+bmFtZSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXRmaWVsZGRlZicsICRyZXR1cm5pZCwgJGRlZlsnbmFtZSddLCBhcnJheSgnZmllbGRpZCcgPT4gJGRlZlsnZmllbGRpZCddLCAnbW9kZSc9PidlZGl0JykpOwoJCSRhbGlhcyA9IHN0cl9yZXBsYWNlKCdfXycsICdfJywgc3RyX3JlcGxhY2UoJy0nLCAnXycsIG11bmdlX3N0cmluZ190b191cmwoJGRlZlsnbmFtZSddKSkpOwoJCSRyb3ctPnNtYXJ0eXZhciA9ICd7JEN1c3RvbUdTLicgLiAkYWxpYXMgLiAnfSc7CgkJLy8kcm93LT5oZWxwID0gJGRlZlsnaGVscCddOwoJCSRyb3ctPnR5cGUgPSAkdGhpcy0+TGFuZygkZGVmWyd0eXBlJ10pOwoJCWlmICggJGRlZlsnc29ydG9yZGVyJ10gPiAxICkKCQl7CgkJCSRyb3ctPm1vdmV1cCA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXRmaWVsZGRlZicsICRyZXR1cm5pZCwgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9hcnJvdy11LmdpZicsIGxhbmcoJ3VwJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2ZpZWxkaWQnID0+ICRkZWZbJ2ZpZWxkaWQnXSwgJ21vZGUnPT4nbW92ZXVwJykpOwoJCX0KCQllbHNlCgkJewoJCQkkcm93LT5tb3ZldXAgPSAnJzsKCQl9CgkJaWYgKCAka2V5IDwgJHJvd2NvdW50IC0gMSAmJiAkcmVzdWx0WyRrZXkrMV1bJ3NvcnRvcmRlciddICE9IDEgKQoJCXsKCQkJJHJvdy0+bW92ZWRvd24gPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0ZmllbGRkZWYnLCAkcmV0dXJuaWQsICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vYXJyb3ctZC5naWYnLCBsYW5nKCdkb3duJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2ZpZWxkaWQnID0+ICRkZWZbJ2ZpZWxkaWQnXSwgJ21vZGUnPT4nbW92ZWRvd24nKSk7CgkJfQoJCWVsc2UKCQl7CgkJCSRyb3ctPm1vdmVkb3duID0gJyc7CgkJfQoJCSRyb3ctPmVkaXRsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdGZpZWxkZGVmJywgJHJldHVybmlkLAoJCQkJICAgICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlICgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywgbGFuZyAoJ2VkaXQnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLAoJCQkJICAgIGFycmF5ICgnZmllbGRpZCcgPT4gJGRlZlsnZmllbGRpZCddLCAnbW9kZSc9PidlZGl0JykpOwoJCSRyb3ctPmRlbGV0ZWxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0ZmllbGRkZWYnLCAkcmV0dXJuaWQsCgkJCQkJICAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCBsYW5nICgnZGVsZXRlJyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwKCQkJCQkgIGFycmF5ICgnZmllbGRpZCcgPT4gJGRlZlsnZmllbGRpZCddLCAnbW9kZSc9PidkZWxldGUnKSwgbGFuZyAoJ2RlbGV0ZWNvbmZpcm0nLCRkZWZbJ25hbWUnXSkpOwoKCQlhcnJheV9wdXNoICgkcm93YXJyYXksICRyb3cpOwoJfQp9CmlmICggJHJlc3VsdCA9PT0gRkFMU0UgKQp7CgllY2hvICdFUlJPUjogJyAuIG15c3FsX2Vycm9yKCk7CglleGl0KCk7Cn0KCiRzbWFydHktPmFzc2lnbignaXRlbXMnLCAkcm93YXJyYXkgKTsKJHNtYXJ0eS0+YXNzaWduKCduYW1lJywgbGFuZygnbmFtZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdzbWFydHl2YXInLCAkdGhpcy0+TGFuZygnc21hcnR5dmFyJykpOwokc21hcnR5LT5hc3NpZ24oJ3R5cGUnLCBsYW5nKCd0eXBlJykpOwovLyRzbWFydHktPmFzc2lnbignaGVscCcsIGxhbmcoJ2hlbHAnKSk7Cgokc21hcnR5LT5hc3NpZ24oJ25ld2ZpZWxkZGVmbGluaycsCgkgICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXRmaWVsZGRlZicsICRyZXR1cm5pZCwKCQkJICAgICAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld2ZvbGRlci5naWYnLCBsYW5nKCdhZGQnKSwnJywnJywnc3lzdGVtaWNvbicpLAoJCQkgICAgIGFycmF5KCdtb2RlJyA9PiAnYWRkJyksICcnLCBmYWxzZSwgZmFsc2UsICcnKS4nICcuCgoJICAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0ZmllbGRkZWYnLCAkcmV0dXJuaWQsCgkJCSAgICAgbGFuZygnYWRkJyksCgkJCSAgICAgYXJyYXkoJ21vZGUnID0+ICdhZGQnKSkpOwoKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0ICgkaWQsICdlZGl0ZmllbGRkZWYnLCAkcmV0dXJuaWQsICdwb3N0JykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZyAoJ2NhbmNlbCcpKSk7CgoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9maWVsZGRlZnMudHBsJyk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_general.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEN1c3RvbSBHbG9iYWwgU2V0dGluZ3MKIyBBdXRob3I6IFJvbGYgVGphc3NlbnMsIEpvcwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY3VzdG9tZ3MKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIFVzZScpICkKewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycyhsYW5nKCduZWVkcGVybWlzc2lvbnRvJywgJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBVc2UnKSk7CglyZXR1cm47Cn0KCgokcm93YXJyYXkgPSBhcnJheSgpOwoKJGRiID0gJHRoaXMtPkdldERCKCk7CiRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzIE9SREVSIEJZIHNvcnRvcmRlciBBU0MiOwokcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CmlmICggJHJlc3VsdCAmJiAkcmVzdWx0LT5SZWNvcmRDb3VudCgpID4gMCApCnsKCXdoaWxlICggJHJvdz0kcmVzdWx0LT5GZXRjaFJvdygpICkKCXsKCQkkb25lcm93ID0gbmV3IHN0ZENsYXNzKCk7CgoJCSRvbmVyb3ctPmZpZWxkaWQgPSAkcm93WydmaWVsZGlkJ107CgkJJG9uZXJvdy0+bmFtZSA9ICRyb3dbJ25hbWUnXTsKCQkkb25lcm93LT50eXBlID0gJHJvd1sndHlwZSddOwoJCSRvbmVyb3ctPmhlbHAgPSAkcm93WydoZWxwJ107CgkJJG9uZXJvdy0+dmFsdWUgPSAkcm93Wyd2YWx1ZSddOwoJCSRvbmVyb3ctPmZpZWxkY2xhc3MgPSAnJzsKCgkJJGZpZWxkbmFtZSA9ICdmaWVsZFsnIC4gJHJvd1snZmllbGRpZCddIC4gJ10nOwoJCXN3aXRjaCAoICRyb3dbJ3R5cGUnXSApCgkJewoJCQljYXNlICd0ZXh0ZmllbGQnOgoJCQkJJHNpemUgPSBtaW4oNTAsICRyb3dbJ3Byb3BlcnRpZXMnXSk7CgkJCQkkb25lcm93LT5maWVsZGh0bWwgPSAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICRmaWVsZG5hbWUsICRyb3dbJ3ZhbHVlJ10sICRzaXplLCAkcm93Wydwcm9wZXJ0aWVzJ10gKTsKCQkJCWJyZWFrOwoKCQkJY2FzZSAncHVsbGRvd24nOgoJCQljYXNlICdyYWRpb2J1dHRvbnMnOgoJCQkJLy8gbGV0cyBwYXJzZSB0aGlzIGJ5IHNtYXJ0eSBmaXJzdAoJCQkJJHJvd1sncHJvcGVydGllcyddID0gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRyb3dbJ3Byb3BlcnRpZXMnXSk7CgkJCQkkcm93Wydwcm9wZXJ0aWVzJ10gPSBwcmVnX3JlcGxhY2UoJyM8IS0tKC4rKS0tPiNpcycsICcnLCAkcm93Wydwcm9wZXJ0aWVzJ10pOyAvLyBmaWx0ZXIgb3V0IGh0bWwgY29tbWVudHMKCQkJCSRyb3dbJ3Byb3BlcnRpZXMnXSA9IHN0cl9yZXBsYWNlKCJcciIsICJcbiIsICRyb3dbJ3Byb3BlcnRpZXMnXSk7CgkJCQkkcm93Wydwcm9wZXJ0aWVzJ10gPSBzdHJfcmVwbGFjZSgiXG5cbiIsICJcbiIsICRyb3dbJ3Byb3BlcnRpZXMnXSk7CgkJCQkkcm93Wydwcm9wZXJ0aWVzJ10gPSB0cmltKCRyb3dbJ3Byb3BlcnRpZXMnXSk7CgkJCQkkcHJvcGVydGllcyA9IGV4cGxvZGUoIlxuIiwgJHJvd1sncHJvcGVydGllcyddKTsKCQkJCSRpdGVtcyA9IGFycmF5KCk7CgkJCQlmb3JlYWNoICgkcHJvcGVydGllcyBhcyAkcHJvcGVydHkpCgkJCQl7CgkJCQkJbGlzdCgka2V5LCAkdmFsdWUpID0gZXhwbG9kZSgifCIsICRwcm9wZXJ0eSAuICJ8Iik7CgkJCQkJJHZhbHVlID0gdHJpbSgkdmFsdWUpID09ICIiID8gJGtleSA6ICR2YWx1ZTsKCQkJCQkkaXRlbXNbJHZhbHVlXSA9ICRrZXk7CgkJCQl9CgkJCQlpZiAoICRyb3dbJ3R5cGUnXSA9PSAncHVsbGRvd24nICkKCQkJCXsKCQkJCQkkb25lcm93LT5maWVsZGh0bWwgPSAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICRmaWVsZG5hbWUsICRpdGVtcywgLTEsICRyb3dbJ3ZhbHVlJ10pOwoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCSRvbmVyb3ctPmZpZWxkaHRtbCA9ICR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAoJGlkLCAkZmllbGRuYW1lLCAkaXRlbXMsICRyb3dbJ3ZhbHVlJ10pOwoJCQkJfQoJCQkJYnJlYWs7CgoJCQljYXNlICdjaGVja2JveCc6CgkJCQkkb25lcm93LT5maWVsZGh0bWwgPSAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICRmaWVsZG5hbWUsICcxJywgJHJvd1sndmFsdWUnXSwgJycpOwoJCQkJYnJlYWs7CgoJCQljYXNlICdkYXRlcGlja2VyJzoKCQkJY2FzZSAndGltZXBpY2tlcic6CgkJCQkkb25lcm93LT5maWVsZGh0bWwgPSAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICRmaWVsZG5hbWUsICRyb3dbJ3ZhbHVlJ10sIDEwLCAxMCk7CgkJCQkkb25lcm93LT5maWVsZGNsYXNzID0gJyAnIC4gJHJvd1sndHlwZSddOwoJCQkJYnJlYWs7CgoJCQljYXNlICdkYXRldGltZXBpY2tlcic6CgkJCQkkb25lcm93LT5maWVsZGh0bWwgPSAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICRmaWVsZG5hbWUsICRyb3dbJ3ZhbHVlJ10sIDE2LCAyMCk7CgkJCQkkb25lcm93LT5maWVsZGNsYXNzID0gJyAnIC4gJHJvd1sndHlwZSddOwoJCQkJYnJlYWs7CgoJCQljYXNlICd0ZXh0YXJlYSc6CgkJCQkkb25lcm93LT5maWVsZGh0bWwgPSAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoRkFMU0UsICRpZCwgJHJvd1sndmFsdWUnXSwgJGZpZWxkbmFtZSk7CgkJCQlicmVhazsKCgkJCWNhc2UgJ3d5c2l3eWcnOgoJCQkJJG9uZXJvdy0+ZmllbGRodG1sID0gJHRoaXMtPkNyZWF0ZVRleHRBcmVhKFRSVUUsICRpZCwgJHJvd1sndmFsdWUnXSwgJGZpZWxkbmFtZSk7CgkJCQlicmVhazsKCgkJCWNhc2UgJ2J1dHRvbic6CgkJCQkkb25lcm93LT5maWVsZGh0bWwgPSAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJGZpZWxkbmFtZSwgJHJvd1snbmFtZSddKTsKCQkJCWJyZWFrOwoJCX0KCgkJYXJyYXlfcHVzaCAoJHJvd2FycmF5LCAkb25lcm93KTsKCX0KfQoKJHNtYXJ0eS0+YXNzaWduKCdpdGVtcycsICRyb3dhcnJheSApOwokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0ICgkaWQsICdzdWJtaXRidXR0b24nLCBsYW5nKCdzdWJtaXQnKSkpOwokc21hcnR5LT5hc3NpZ24oJ2NhbmNlbCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0ICgkaWQsICdjYW5jZWwnLCBsYW5nKCdjYW5jZWwnKSkpOwokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoICRpZCwgJ3NhdmVfZ2VuZXJhbCcsICRyZXR1cm5pZCApKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CgppZiAoIGZ1bmN0aW9uX2V4aXN0cygnY21zX2FkbWluX2N1cnJlbnRfbGFuZ3VhZ2UnKSApIHNldGxvY2FsZShMQ19USU1FLCBjbXNfYWRtaW5fY3VycmVudF9sYW5ndWFnZSgpKTsgLy8gZm9yIGNtc21zIDEuMTAgb25seQpmb3IgKCRpID0gMTsgJGkgPD0gMTI7ICRpKyspCnsKCSR0aW1lc3RhbXA9bWt0aW1lKDEsMSwxLCRpLDEsMjAwMCk7CgkkbW9udGhzW10gPSBodG1sZW50aXRpZXMoc3RyZnRpbWUoJyVCJywgJHRpbWVzdGFtcCkpOwp9CiRtb250aG5hbWVzID0gaW1wbG9kZSgiJywnIiwkbW9udGhzKTsKZm9yICgkaSA9IDE7ICRpIDw9IDc7ICRpKyspCnsKCSR0aW1lc3RhbXA9bWt0aW1lKDEsMSwxLDEwLCRpLDIwMDApOwoJJGRheXNbXSA9IGh0bWxlbnRpdGllcyhzdHJmdGltZSgnJUEnLCAkdGltZXN0YW1wKSk7CgkkZGF5c21pbltdID0gaHRtbGVudGl0aWVzKHN1YnN0cihzdHJmdGltZSgnJWEnLCAkdGltZXN0YW1wKSwgMCwgMikpOwp9CiRkYXluYW1lcyA9IGltcGxvZGUoIicsJyIsJGRheXMpOwokZGF5bmFtZXNtaW4gPSBpbXBsb2RlKCInLCciLCRkYXlzbWluKTsKCiREUF9sb2NhbGUgPSAiCgkkLmRhdGVwaWNrZXIucmVnaW9uYWxbJyddID0gewoJCWNsb3NlVGV4dDogJyIgLiBsYW5nKCdjbG9zZScpIC4gIicsCgkJcHJldlRleHQ6ICciIC4gbGFuZygncHJldmlvdXMnKSAuICInLAoJCW5leHRUZXh0OiAnIiAuIGxhbmcoJ25leHQnKSAuICInLAoJCWN1cnJlbnRUZXh0OiAnIiAuICR0aGlzLT5MYW5nKCdub3cnKSAuICInLAoJCW1vbnRoTmFtZXM6IFsnIiAuICRtb250aG5hbWVzIC4gIiddLAoJCWRheU5hbWVzOiBbJyIgLiAkZGF5bmFtZXMgLiAiJ10sCgkJZGF5TmFtZXNNaW46IFsnIiAuICRkYXluYW1lc21pbiAuICInXSwKCQlkYXRlRm9ybWF0OiAneXl5eS1tbS1kZCcsCgkJZmlyc3REYXk6IDEsCgkJaXNSVEw6IGZhbHNlLAoJCXNob3dNb250aEFmdGVyWWVhcjogZmFsc2UsCgkJeWVhclN1ZmZpeDogJycKCX07CgkkLmRhdGVwaWNrZXIuc2V0RGVmYXVsdHMoJC5kYXRlcGlja2VyLnJlZ2lvbmFsWycnXSk7CgoJJC50aW1lcGlja2VyLnJlZ2lvbmFsWycnXSA9IHsKCQl0aW1lT25seVRpdGxlOiAnIiAuICR0aGlzLT5MYW5nKCdjaG9vc2V0aW1lJykgLiAiJywKCQl0aW1lVGV4dDogJyIgLiAkdGhpcy0+TGFuZygndGltZScpIC4gIicsCgkJaG91clRleHQ6ICciIC4gbGFuZygnaG91cicpIC4gIicsCgkJbWludXRlVGV4dDogJyIgLiBsYW5nKCdtaW51dGVzJykgLiAiJywKCQljdXJyZW50VGV4dDogJyIgLiAkdGhpcy0+TGFuZygnbm93JykgLiAiJywKCQljbG9zZVRleHQ6ICciIC4gbGFuZygnY2xvc2UnKSAuICInLAoJCWFtcG06IGZhbHNlCgl9OwoJJC50aW1lcGlja2VyLnNldERlZmF1bHRzKCQudGltZXBpY2tlci5yZWdpb25hbFsnJ10pOwoiOwoKJHNtYXJ0eS0+YXNzaWduKCdEUF9sb2NhbGUnLCAkRFBfbG9jYWxlKTsKCgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX2dlbmVyYWwudHBsJyk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_options.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEN1c3RvbSBHbG9iYWwgU2V0dGluZ3MKIyBBdXRob3I6IFJvbGYgVGphc3NlbnMsIEpvcwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY3VzdG9tZ3MKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIE1hbmFnZScpICkKewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycyhsYW5nKCduZWVkcGVybWlzc2lvbnRvJywgJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBNYW5hZ2UnKSk7CglyZXR1cm47Cn0KCgokc21hcnR5LT5hc3NpZ24oJ3RpdGxlX2N1c3RvbV9tb2R1bGVuYW1lJywgJHRoaXMtPkxhbmcoJ3RpdGxlX2N1c3RvbV9tb2R1bGVuYW1lJykpOwkKJHNtYXJ0eS0+YXNzaWduKCdoZWxwX2N1c3RvbV9tb2R1bGVuYW1lJywgJHRoaXMtPkxhbmcoJ2hlbHBfY3VzdG9tX21vZHVsZW5hbWUnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfY3VzdG9tX21vZHVsZW5hbWUnLCR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnaW5wdXRfY3VzdG9tX21vZHVsZW5hbWUnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbnB1dF9jdXN0b21fbW9kdWxlbmFtZScsJycpLDUwLDI1NSkpOwoKJHNtYXJ0eS0+YXNzaWduKCd0aXRsZV9hZG1pbl9zZWN0aW9uJywgJHRoaXMtPkxhbmcoJ3RpdGxlX2FkbWluX3NlY3Rpb24nKSk7CQokc21hcnR5LT5hc3NpZ24oJ2hlbHBfYWRtaW5fc2VjdGlvbicsICR0aGlzLT5MYW5nKCdoZWxwX2FkbWluX3NlY3Rpb24nKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfYWRtaW5fc2VjdGlvbicsICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2lucHV0X2FkbWluX3NlY3Rpb24nLAoJCQkJYXJyYXkobGFuZygnbWFpbicpID0+ICdtYWluJywKCQkJCQkJCWxhbmcoJ2NvbnRlbnQnKSA9PiAnY29udGVudCcsCgkJCQkJCQlsYW5nKCdsYXlvdXQnKSA9PiAnbGF5b3V0JywKCQkJCQkJCWxhbmcoJ3VzZXJzZ3JvdXBzJykgPT4gJ3VzZXJzZ3JvdXBzJywKCQkJCQkJCWxhbmcoJ2V4dGVuc2lvbnMnKSA9PiAnZXh0ZW5zaW9ucycsCgkJCQkJCQlsYW5nKCdteXByZWZzJykgPT4gJ215cHJlZnMnKSwKCQkJCS0xLAoJCQkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FkbWluX3NlY3Rpb24nLCAnZXh0ZW5zaW9ucycpCikpOwoKJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCAkaWQsICdzYXZlX29wdGlvbnMnLCAkcmV0dXJuaWQgKSk7CiRzbWFydHktPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fb3B0aW9ucy50cGwnKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/help_text.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHA+VGhpcyBtb2R1bGUgZXh0ZW5kcyB0aGUgR2xvYmFsIFNldHRpbmdzIHdpdGggc29tZSBjdXN0b21pemVkIHBhcmFtZXRlcnMuPGJyIC8+DQpZb3UgY2FuIGRlZmluZSBhbiB1bmxpbWl0ZWQgbnVtYmVyIG9mIGZpZWxkcyB3aGljaCBjYW4gYmUgdXNlZCBhcyBzbWFydHktdmFyaWFibGUgaW4gdGVtcGxhdGVzIG9yIHBhZ2VzLjwvcD4NCg0KPGgzPlVzZSBvZiB0aGUgbW9kdWxlIEN1c3RvbSBHbG9iYWwgU2V0dGluZ3M8L2gzPg0KDQo8cD5UbyBzdGFydCB5b3UgaGF2ZSB0byBhZGQgPGI+e0N1c3RvbUdTfTwvYj4gaW4gdGhlIHRvcCBvZiB5b3VyIHRlbXBsYXRlKHMpLjwvcD4NCg0KPHA+DQpJbiB0aGUgdGVtcGxhdGVzIG9yIHBhZ2VzIG9mIHlvdXIgd2Vic2l0ZSB5b3Ugd2lsbCBub3cgaGF2ZSBhbGwgc21hcnR5IHZhcmlhYmxlcyBhdmFpbGFibGUgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyBtb2R1bGUgRmllbGRkZWZpbml0aW9ucyB0YWIuPGJyIC8+DQpUaGUgZXhhY3Qgd2F5IHRvIGNhbGwgZWFjaCB2YXJpYWJsZSBpcyBzaG93biBpbiB0aGUgZmllbGRkZWZpbml0aW9ucyB0YWJsZS4gWW91IGNhbiBhbHNvIGNoZWNrIHdoaWNoIHZhcmlhYmxlcyBhbmQgdmFsdWVzIGFyZSBhdmFpbGFibGUgYnkgcGxhY2luZyA8Yj57Q3VzdG9tR1Mgc2hvd3ZhcnM9MX08L2I+IGluIHRoZSBjb250ZW50IGZpZWxkIG9mIGEgcGFnZS4NCjwvcD4NCg0KPHA+V2FybmluZzogYmV0dGVyIG5vdCBwbGFjZSB0aGUge0N1c3RvbUdTfSB0YWcgaW4gdGhlICZsdDtoZWFkJmd0OyBzZWN0aW9uIG9mIHlvdXIgdGVtcGxhdGUsIGJlY2F1c2UgdGhhdCdzIHRoZSBsYXN0IHNlY3Rpb24gdGhhdCB3aWxsIGJlIHBhcnNlZCBieSB0aGUgU21hcnR5IHRlbXBsYXRpbmcgc3lzdGVtLjwvcD4NCg0KPGRpdiBzdHlsZT0iYm9yZGVyLWJvdHRvbToxcHggZGFzaGVkICM5OTkiPjwvZGl2Pg0KDQo8aDM+UGVybWlzc2lvbnM8L2gzPg0KPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgdHdvIGRpZmZlcmVudCBwZXJtaXNzaW9uIGdyb3Vwczo8cD4NCjxwPjxiPjEuIEN1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBVc2U8L2I+PGJyIC8+DQpBIHBlcm1pc3Npb24gdG8gdXNlIGZvciBlZGl0b3JzLiBJdCB3aWxsIG9ubHkgc2hvdyB0aGUgR2VuZXJhbCB0YWIgaW4gdGhlIGFkbWluIHBhZ2UuPC9wPg0KDQo8cD48Yj4yLiBDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gTWFuYWdlPC9iPjxiciAvPg0KQSBwZXJtaXNzaW9uIHRvIHVzZSBmb3IgYWRtaW5pc3RyYXRvcnMuIEl0IHdpbGwgc2hvdyBhbGwgbW9kdWxlIHRhYnMuPC9wPg0KDQo8ZGl2IHN0eWxlPSJib3JkZXItYm90dG9tOjFweCBkYXNoZWQgIzk5OSI+PC9kaXY+DQoNCjxoMz5FeGFtcGxlczwvaDM+DQoNCjxwPkRlZmluZSBhIGNoZWNrYm94ICdDaHJpc3RtYXMgbm93JyB3aGljaCB3aWxsIGFjdGl2YXRlIGEgc3BlY2lhbCB0aGVtZSBvbiB0aGUgZnJvbnRlbmQgd2hlbiBjaGVja2VkPC9wPg0KPHAgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgI2RkZDsgcGFkZGluZzoxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjMiPg0KPGNvZGU+DQp7aWYgJEN1c3RvbUdTLkNocmlzdG1hc19ub3cgPT0gJzEnfTxiciAvPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7eyogU2hvdyBDaHJpc3RtYXMgZnJvbnRlbmQgdGhlbWUgKn08YnIgLz4NCntlbHNlfTxiciAvPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7eyogU2hvdyBkZWZhdWx0IGZyb250ZW5kIHRoZW1lICp9PGJyIC8+DQp7L2lmfQ0KPC9jb2RlPg0KPC9wPg0KPGJyIC8+DQoNCjxwPkRlZmluZSBhIGNoZWNrYm94ICdNeUNoZWNrYm94JyB3aGljaCB3aWxsIGRvIHNvbWUgbWFnaWMgc3R1ZmYgd2hlbiB1bmNoZWNrZWQ8L3A+DQo8cCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBwYWRkaW5nOjEwcHg7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMyI+DQo8Y29kZT4NCntpZiAkQ3VzdG9tR1MuTXlDaGVja2JveCAhPSAnMSd9PGJyIC8+DQombmJzcDsmbmJzcDsmbmJzcDt7KiBEbyBzb21lIG1hZ2ljIHN0dWZmICp9PGJyIC8+DQp7L2lmfQ0KPC9jb2RlPg0KPC9wPg0KPGJyIC8+DQoNCjxwPkRlZmluZSBhIHRleHRmaWVsZCBvciBwdWxsZG93biBmaWVsZCAnVHJhaW5lcicgd2hpY2ggd2lsbCBjb250YWluIHRoZSBjdXJyZW50IHRyYWluZXJzIG5hbWUuPC9wPg0KPHAgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgI2RkZDsgcGFkZGluZzoxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjMiPg0KPGNvZGU+DQombHQ7cCZndDtUaGlzIHdlZWtzIHRyYWluZXJzIG5hbWUgaXM6IHskQ3VzdG9tR1MuVHJhaW5lcn0mbHQ7L3AmZ3Q7DQo8L2NvZGU+DQo8L3A+DQo8YnIgLz4NCg0KPHA+RGVmaW5lIHR3byB0aW1lcGlja2VyIGZpZWxkcyAnc3RhcnR0aW1lJyBhbmQgJ2VuZHRpbWUnLiBSZXBsYWNlIHRoZSB7Y29udGVudH0gdGFnIGluIHlvdXIgcGFnZSB0ZW1wbGF0ZSB3aXRoIHRoaXMgY29kZSBhbmQgdGhlIG5vcm1hbCBwYWdlIGNvbnRlbnQgaXMgb25seSB2aXNpYmxlIHdoZW4gdGhlIGN1cnJlbnQgdGltZSBpcyBiZXR3ZWVuIHRoZSBzdGFydHRpbWUgYW5kIGVuZHRpbWUuPC9wPg0KPHAgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgI2RkZDsgcGFkZGluZzoxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjMiPg0KPGNvZGU+DQp7aWYgJHNtYXJ0eS5ub3d8ZGF0ZV9mb3JtYXQ6JyVIOiVNJyA+PSAkQ3VzdG9tR1Muc3RhcnR0aW1lICYmICRzbWFydHkubm93fGRhdGVfZm9ybWF0OiclSDolTScgPD0gJEN1c3RvbUdTLmVuZHRpbWV9PGJyIC8+DQombmJzcDsmbmJzcDsmbmJzcDt7Y29udGVudH08YnIgLz4NCntlbHNlfTxiciAvPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7e2NvbnRlbnQgYmxvY2s9IlNpdGVDbG9zZWRDb250ZW50In08YnIgLz4NCnsvaWZ9PGJyIC8+DQo8L2NvZGU+DQo8L3A+DQoNCjxkaXYgc3R5bGU9ImJvcmRlci1ib3R0b206MXB4IGRhc2hlZCAjOTk5Ij48L2Rpdj4NCg0KPGgzPk1vcmUgZXhhbXBsZXMgb3IgaGVscDwvaDM+DQoNCjxwPkZvciBtb3JlIGV4YW1wbGVzIG9yIGhlbHAgb24gdGhpcyBtb2R1bGUsIHBsZWFzZSBjaGVjayB0aGUgPGEgaHJlZj0iaHR0cDovL3dpa2kuY21zbWFkZXNpbXBsZS5vcmcvaW5kZXgucGhwL1VzZXJfSGFuZGJvb2svQWRtaW5fUGFuZWwvRXh0ZW5zaW9ucy9DdXN0b21HbG9iYWxTZXR0aW5ncyI+Q01TbXMgV2lraSBwYWdlPC9hPi48L3A+DQoNCjxkaXYgc3R5bGU9ImJvcmRlci1ib3R0b206MXB4IGRhc2hlZCAjOTk5Ij48L2Rpdj4NCg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQoNCjxwPkNvcHlyaWdodCDCqSAyMDEyLCBSb2xmIFRqYXNzZW5zICZsdDtyb2xmIGF0IGNtc21hZGVzaW1wbGUgZG90IG9yZyZndDssIEpvcyAmbHQ7PGEgaHJlZj0ibWFpbHRvOmpvc3ZkQGxpdmUubmwiPmpvc3ZkQGxpdmUubmw8L2E+Jmd0Oy4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KDQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2UgdjM8L2E+LiBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gWW91IG1heSBvbmx5IHVzZSB0aGlzIHNvZnR3YXJlIHdoZW4gdGhlcmUgaXMgYSBjbGVhciBhbmQgb2J2aW91cyBpbmRpY2F0aW9uIGluIHRoZSBhZG1pbiBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgU2ltcGxlLjwvcD4NCg0KPGRpdiBzdHlsZT0iYm9yZGVyLWJvdHRvbToxcHggZGFzaGVkICM5OTkiPjwvZGl2Pg0K]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></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[PD9waHANCiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0EgbW9kdWxlIHRvIGV4dGVuZCB0aGUgR2xvYmFsIFNldHRpbmdzIHdpdGggc29tZSBjdXN0b21pemVkIHBhcmFtZXRlcnMuIFlvdSBjYW4gZGVmaW5lIGFuIHVubGltaXRlZCBudW1iZXIgb2YgZmllbGRzIHdoaWNoIGNhbiBiZSB1c2VkIGFzIHNtYXJ0eS12YXJpYWJsZSBpbiB0ZW1wbGF0ZXMgb3IgcGFnZXMuJzsNCg0KJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnQ3VzdG9tR1MgbW9kdWxlIHN1Y2Nlc3NmdWxseSBpbnN0YWxsZWQhJzsNCiRsYW5nWyd1bmluc3RhbGxfY29uZmlybSddID0gJ0RvIHlvdXIgcmVhbGx5IHdhbnQgdG8gdW5pbnN0YWxsIHRoZSBDdXN0b21HUyBtb2R1bGU/JzsNCiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnQ3VzdG9tR1MgbW9kdWxlIHN1Y2Nlc3NmdWxsIHVuaW5zdGFsbGVkISc7DQoNCg0KLyoqDQogKiBBZG1pbiBHZW5lcmFsIFRhYg0KICovDQokbGFuZ1snbm93J10gPSAnbm93JzsNCiRsYW5nWyd0aXRsZV9nZW5lcmFsJ10gPSAnR2VuZXJhbCc7DQokbGFuZ1snY2hvb3NldGltZSddID0gJ0Nob29zZSB0aW1lJzsNCiRsYW5nWyd0aW1lJ10gPSAndGltZSc7DQokbGFuZ1snJ10gPSAnJzsNCg0KDQovKioNCiAqIEFkbWluIEZpZWxkZGVmcyBUYWINCiAqLw0KJGxhbmdbJ3RpdGxlX2ZpZWxkZGVmcyddID0gJ0ZpZWxkIERlZmluaXRpb25zJzsNCiRsYW5nWydzbWFydHl2YXInXSA9ICdTbWFydHkgdmFyaWFibGUnOw0KJGxhbmdbJ3RleHRmaWVsZCddID0gJ1RleHRmaWVsZCc7DQokbGFuZ1sncHVsbGRvd24nXSA9ICdQdWxsZG93bic7DQokbGFuZ1snY2hlY2tib3gnXSA9ICdDaGVja2JveCc7DQokbGFuZ1sncmFkaW9idXR0b25zJ10gPSAnUmFkaW9idXR0b24gZ3JvdXAnOw0KJGxhbmdbJ2RhdGVwaWNrZXInXSA9ICdEYXRlcGlja2VyJzsNCiRsYW5nWydkYXRldGltZXBpY2tlciddID0gJ0RhdGVUaW1lcGlja2VyJzsNCiRsYW5nWyd0aW1lcGlja2VyJ10gPSAnVGltZXBpY2tlcic7DQokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZXh0IEFyZWEnOw0KJGxhbmdbJ3d5c2l3eWcnXSA9ICdXWVNJV1lHJzsNCiRsYW5nWydidXR0b24nXSA9ICdCdXR0b24nOw0KJGxhbmdbJ21heGxlbmd0aCddID0gJ01heGltdW0gTGVuZ3RoJzsNCiRsYW5nWydwcm9wZXJ0aWVzJ10gPSAnUHJvcGVydGllcyc7DQokbGFuZ1sncHJvcGVydGllc19oZWxwMSddID0gJ0VudGVyIHRoZSBjaG9pY2UgdmFsdWVzLCBlYWNoIG9uZSBvbiBhIG5ldyBsaW5lLiBBbHNvIHN1cHBvcnRzIFZhbHVlfE9wdGlvbk5hbWUgcGFpcnMgYW5kL29yIFNtYXJ0eSB0YWdzJzsNCiRsYW5nWydwYXJzZXNtYXJ0eSddID0gJ1BhcnNlIGRhdGEgYnkgU21hcnR5JzsNCiRsYW5nWydjbGVhcnN0eWxlc2hlZXRjYWNoZSddID0gJ0NsZWFyIHN0eWxlc2hlZXQgY2FjaGUnOw0KJGxhbmdbJ2NsZWFyc3R5bGVzaGVldGNhY2hlX2hlbHAnXSA9ICdBdXRvbWF0aWNhbGx5IGNsZWFyIHN0eWxlc2hlZXQgY2FjaGUgYWZ0ZXIgY2hhbmdpbmcgdGhpcyBzZXR0aW5nLiBVU0UgV0lUSCBDQVVUSU9OISc7DQokbGFuZ1snZmllbGRkZWZhZGRlZCddID0gJ0ZpZWxkIERlZmluaXRpb24gaXMgYWRkZWQnOw0KJGxhbmdbJ2ZpZWxkZGVmc3VwZGF0ZWQnXSA9ICdGaWVsZCBEZWZpbml0aW9uIGxpc3QgaXMgdXBkYXRlZCc7DQoNCg0KLyoqDQogKiBBZG1pbiBPcHRpb25zIFRhYg0KICovIA0KJGxhbmdbJ3RpdGxlX2N1c3RvbV9tb2R1bGVuYW1lJ10gPSAnQ3VzdG9tIE1vZHVsZW5hbWUnOw0KJGxhbmdbJ2hlbHBfY3VzdG9tX21vZHVsZW5hbWUnXSA9ICdZb3UgY2FuIGNoYW5nZSB0aGUgTW9kdWxlbmFtZSBoZXJlIGFzIHlvdSB3aXNoLiBJdCB3aWxsIGJlIHVzZWQgYXMgdGhlIHRpdGxlIG9uIHRoZSBtb2R1bGUgYWRtaW4gcGFnZXMgYW5kIGFzIG1lbnUgdGV4dC4nOw0KDQokbGFuZ1sndGl0bGVfYWRtaW5fc2VjdGlvbiddID0gJ0FkbWluIFNlY3Rpb24nOw0KJGxhbmdbJ2hlbHBfYWRtaW5fc2VjdGlvbiddID0gJ0Nob29zZSB0aGUgQWRtaW4gU2VjdGlvbiAob3IgdG9wLWxldmVsIEFkbWluIE1lbnUpIHRoaXMgbW9kdWxlIGJlbG9uZ3MgdG8uJzsNCg0KLyoqDQogKiBTYXZpbmcNCiAqLyANCiRsYW5nWydzZXR0aW5nc3NhdmVkJ10gPSAnU2V0dGluZ3Mgc3VjY2Vzc2Z1bGx5IHNhdmVkISc7DQoNCg0KLyoqDQogKiBFdmVudHMNCiAqLw0KJGxhbmdbJ2V2ZW50X2luZm9fT25TZXR0aW5nQ2hhbmdlJ10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBzZXR0aW5nIGlzIGVkaXRlZC4nOw0KJGxhbmdbJ2V2ZW50X2hlbHBfT25TZXR0aW5nQ2hhbmdlJ10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBzZXR0aW5nIGlzIGVkaXRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+ZmllbGRpZDwvbGk+DQo8bGk+bmFtZTwvbGk+DQo8bGk+YWxpYXM8L2xpPg0KPGxpPnZhbHVlPC9saT4NCjxsaT5jbGVhcmNhY2hlPC9saT4NCjwvdWw+DQonOw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnRWluIE1vZHVsLCB1bSBkaWUgR2xvYmFsZSBFaW5zdGVsbHVuZ2VuIG1pdCBlaW5pZ2VuIGJlbnV0emVyZGVmaW5pZXJ0ZW4gUGFyYW1ldGVyIHp1IGVyd2VpdGVybi4gRXMgYmlldGV0IElobmVuIGVpbmUgdW5iZWdyZW56dGUgWmFobCB2b24gRmVsZGVybiwgZGllIGFscyBTbWFydHktVmFyaWFibGUgaW4gVGVtcGxhdGVzIG9kZXIgU2VpdGVuIHZlcndlbmRldCB3ZXJkZW4gayZvdW1sO25uZW4uJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnRGFzIEN1c3RvbUdTLU1vZHVsIHd1cmRlIGVyZm9sZ3JlaWNoIGluc3RhbGxpZXJ0ISc7CiRsYW5nWyd1bmluc3RhbGxfY29uZmlybSddID0gJ1dvbGxlbiBTaWUgZGFzIEN1c3RvbUdTLU1vZHVsIHdpcmtsaWNoIGRlaW5zdGFsbGllcmVuPyc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnRGFzIEN1c3RvbUdTLU1vZHVsIHd1cmRlIGVyZm9sZ3JlaWNoIGRlaW5zdGFsbGllcnQhJzsKJGxhbmdbJ25vdyddID0gJ2pldHp0JzsKJGxhbmdbJ3RpdGxlX2dlbmVyYWwnXSA9ICdBbGxnZW1laW4nOwokbGFuZ1snY2hvb3NldGltZSddID0gJ1plaXQgdyZhdW1sO2hsZW4nOwokbGFuZ1sndGltZSddID0gJ1plaXQnOwokbGFuZ1sndGl0bGVfZmllbGRkZWZzJ10gPSAnRmVsZC1EZWZpbml0aW9uZW4nOwokbGFuZ1snc21hcnR5dmFyJ10gPSAnU21hcnR5LVZhcmlhYmxlJzsKJGxhbmdbJ3RleHRmaWVsZCddID0gJ1RleHRmZWxkJzsKJGxhbmdbJ3B1bGxkb3duJ10gPSAnQXVma2xhcHBsaXN0ZSc7CiRsYW5nWydjaGVja2JveCddID0gJ0tvbnRyb2xsayZhdW1sO3N0Y2hlbic7CiRsYW5nWydyYWRpb2J1dHRvbnMnXSA9ICdSYWRpb2tub3BmLUdydXBwZSc7CiRsYW5nWydkYXRlcGlja2VyJ10gPSAnRGF0dW1zYXVzd2FobCc7CiRsYW5nWydkYXRldGltZXBpY2tlciddID0gJ0RhdHVtcy1aZWl0YXVzd2FobCc7CiRsYW5nWyd0aW1lcGlja2VyJ10gPSAnWmVpdGF1c3dhaGwnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZXh0YmVyZWljaCc7CiRsYW5nWyd3eXNpd3lnJ10gPSAnV3lzaXd5Zyc7CiRsYW5nWydidXR0b24nXSA9ICdUYXN0ZSc7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYXhpbWFsZSBMJmF1bWw7bmdlJzsKJGxhbmdbJ3Byb3BlcnRpZXMnXSA9ICdFaWdlbnNjaGFmdGVuJzsKJGxhbmdbJ3Byb3BlcnRpZXNfaGVscDEnXSA9ICdHZWJlbiBTaWUgZGllIEF1c3dhaGwtV2VydGUgZWluLCBqZXdlaWxzIGluIGVpbmVyIG5ldWVuIFplaWxlLiBVbnRlcnN0JnV1bWw7dHp0IGF1Y2ggVmFsdWV8T3B0aW9uTmFtZSBQYWFyZSB1bmQvb2RlciBTbWFydHktVGFncyc7CiRsYW5nWydwYXJzZXNtYXJ0eSddID0gJ0RhdGVuIGR1cmNoIFNtYXJ0eSB2ZXJhcmJlaXRlbic7CiRsYW5nWydjbGVhcnN0eWxlc2hlZXRjYWNoZSddID0gJ1p3aXNjaGVuZ2VzcGVpY2hlcnRlbiBTdHlsZXNoZWV0cyBsJm91bWw7c2NoZW4nOwokbGFuZ1snY2xlYXJzdHlsZXNoZWV0Y2FjaGVfaGVscCddID0gJ0F1dG9tYXRpc2NoIHp3aXNjaGVuZ2VzcGVpY2hlcnRlbiBTdHlsZXNoZWV0cyBsJm91bWw7c2NoZW4gbmFjaCAmQXVtbDtuZGVydW5nIGRpZXNlciBFaW5zdGVsbHVuZy4gVk9SU0lDSFQgQkVJIERFUiBWRVJXRU5EVU5HISc7CiRsYW5nWydmaWVsZGRlZmFkZGVkJ10gPSAnRGllIEZlbGQtRGVmaW5pdGlvbiB3dXJkZSBoaW56dWdlZiZ1dW1sO2d0JzsKJGxhbmdbJ2ZpZWxkZGVmc3VwZGF0ZWQnXSA9ICdEaWUgTGlzdGUgZGVyIEZlbGQtRGVmaW5pdGlvbmVuIHd1cmRlIGFrdHVhbGlzaWVydCc7CiRsYW5nWyd0aXRsZV9jdXN0b21fbW9kdWxlbmFtZSddID0gJ0JlbnV0emVyZGVmaW5pZXJ0ZXIgTW9kdWxuYW1lJzsKJGxhbmdbJ2hlbHBfY3VzdG9tX21vZHVsZW5hbWUnXSA9ICdTaWUgayZvdW1sO25uZW4gZGVuIE1vZHVsbmFtZW4gaGllciAmYXVtbDtuZGVybi4gRXMgd2lyZCBhbHMgVGl0ZWwgZGVyIE1vZHVsIEFkbWluLVNlaXRlbiB1bmQgYWxzIE1lbiZ1dW1sOyBUZXh0IHZlcndlbmRldC4nOwokbGFuZ1sndGl0bGVfYWRtaW5fc2VjdGlvbiddID0gJ0FkbWluLUJlcmVpY2gnOwokbGFuZ1snaGVscF9hZG1pbl9zZWN0aW9uJ10gPSAnVyZhdW1sO2hsZW4gU2llIGRlbiBBZG1pbi1CZXJlaWNoICh2b24gVG9wLUxldmVsIEFkbWluIE1lbnUpLCB3byBkaWVzZXMgTW9kdWwgenUgZ2VoJm91bWw7cnQuIDxzdHJvbmc+SGlud2Vpczo8L3N0cm9uZz4gTGVlcmVuIFNpZSBkZW5uIFp3aXNjaGVuc3BlaWNoZXIgZGVyIFNlaXRlLCB1bSBkYXMgRXJnZWJuaXMgenUgc2VoZW4nOwokbGFuZ1snc2V0dGluZ3NzYXZlZCddID0gJ0RpZSBFaW5zdGVsbHVuZ2VuIHd1cmRlbiBlcmZvbGdyZWljaCBnZXNwZWljaGVydCEnOwokbGFuZ1snZXZlbnRfaW5mb19PblNldHRpbmdDaGFuZ2UnXSA9ICdBdXNmJnV1bWw7aHJlbiwgbmFjaGRlbSBkaWUgJkF1bWw7bmRlcnVuZ2VuIGRlcyBFaW5zdGVsbHVuZ2VuIGdlc3BlaWNoZXJ0IHd1cmRlbi4nOwokbGFuZ1snZXZlbnRfaGVscF9PblNldHRpbmdDaGFuZ2UnXSA9ICc8cD5BdXNmJnV1bWw7aHJlbiwgbmFjaGRlbSBkaWUgJkF1bWw7bmRlcnVuZ2VuIGRlciBFaW5zdGVsbHVuZ2VuIGdlc3BlaWNoZXJ0IHd1cmRlbi48L3A+DQo8aDQ+UGFyYW1ldGVyPC9oND4NCjx1bD4NCjxsaT5maWVsZGlkPC9saT4NCjxsaT5uYW1lPC9saT4NCjxsaT5hbGlhczwvbGk+DQo8bGk+dmFsdWU8L2xpPg0KPGxpPmNsZWFyY2FjaGU8L2xpPg0KPC91bD4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xNzU0MjY1MTE5LjEzNDQ5NDI5NDMuMTM0NDk0Mjk0My4xMzQ0OTQyOTQzLjEnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMzQ0OTQyOTQzLjEuMS51dG1jY249KGRpcmVjdCl8dXRtY3NyPShkaXJlY3QpfHV0bWNtZD0obm9uZSknOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnRWVuIG1vZHVsZSBkaWUgZGUgQWxnZW1lbmUgSW5zdGVsbGluZ2VuIHZhbiBkZSB3ZWJzaXRlIHVpdGJyZWlkdCBtZXQgZXh0cmEgaW5zdGVsYmFyZSBwYXJhbWV0ZXJzLiBVIGt1bnQgZWVuIG9uYmVwZXJrdCBhYW50YWwgdmVsZGVuIGRlZmluaSZldW1sO3JlbiBkaWUgZ2VicnVpa3Qga3VubmVuIHdvcmRlbiBhbHMgU21hcnR5IHZhcmlhYmVsZW4gaW4gc2phYmxvbmVuIGVuIG9wIHBhZ2luYSYjMDM5O3MuJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTW9kdWxlIHN1Y2Nlc3ZvbCBnZSZpdW1sO25zdGFsbGVlcmQhJzsKJGxhbmdbJ3VuaW5zdGFsbF9jb25maXJtJ10gPSAnV2VldCB1IHpla2VyIGRhdCB1IGRlemUgbW9kdWxlIHdpbHQgZGUmaXVtbDtuc3RhbGxlcmVuPyc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnRGUgbW9kdWxlIGlzIGdlZGUmaXVtbDtuc3RhbGxlZXJkISc7CiRsYW5nWydub3cnXSA9ICdudSc7CiRsYW5nWyd0aXRsZV9nZW5lcmFsJ10gPSAnQWxnZW1lZW4nOwokbGFuZ1snY2hvb3NldGltZSddID0gJ0tpZXMgdGlqZCc7CiRsYW5nWyd0aW1lJ10gPSAndGlqZCc7CiRsYW5nWyd0aXRsZV9maWVsZGRlZnMnXSA9ICdWZWxkIERlZmluaXRpZXMnOwokbGFuZ1snc21hcnR5dmFyJ10gPSAnU21hcnR5IHZhcmlhYmVsZSc7CiRsYW5nWyd0ZXh0ZmllbGQnXSA9ICdUZWtzdHZlbGQnOwokbGFuZ1sncHVsbGRvd24nXSA9ICdLZXV6ZW1lbnUnOwokbGFuZ1snY2hlY2tib3gnXSA9ICdWaW5rdmFramUnOwokbGFuZ1sncmFkaW9idXR0b25zJ10gPSAnUmFkaW9idXR0b24gZ3JvZXAnOwokbGFuZ1snZGF0ZXBpY2tlciddID0gJ0RhdHVta2llemVyJzsKJGxhbmdbJ2RhdGV0aW1lcGlja2VyJ10gPSAnRGF0dW1UaWpka2llemVyJzsKJGxhbmdbJ3RpbWVwaWNrZXInXSA9ICdUaWpka2llemVyJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnVGVrc3RibG9rJzsKJGxhbmdbJ3d5c2l3eWcnXSA9ICdXeXNpd3lnJzsKJGxhbmdbJ2J1dHRvbiddID0gJ0RydWtrbm9wJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ01heGltdW0gbGVuZ3RlJzsKJGxhbmdbJ3Byb3BlcnRpZXMnXSA9ICdFaWdlbnNjaGFwcGVuJzsKJGxhbmdbJ3Byb3BlcnRpZXNfaGVscDEnXSA9ICdWdWwgZGUga2V1emV3YWFyZGVuIGluLCBlbGtlIG9wIGVlbiBuaWV1d2UgcmVnZWwuIE9uZGVyc3RldW50IG9vayAgV2FhcmRlfEtldXplTmFhbSBwYXJlbiBlbi9vZiBTbWFydHkgdGFncyc7CiRsYW5nWydwYXJzZXNtYXJ0eSddID0gJ0RhdGEgdmlhIFNtYXJ0eSBwYXJzZW4nOwokbGFuZ1snY2xlYXJzdHlsZXNoZWV0Y2FjaGUnXSA9ICdWZXJ3aWpkZXIgc3R5bGVzaGVldCBidWZmZXInOwokbGFuZ1snY2xlYXJzdHlsZXNoZWV0Y2FjaGVfaGVscCddID0gJ0F1dG9tYXRpc2NoIGRlIHN0eWxlc2hlZXQgYnVmZmVyIGxlZ2VuIG5hIGhldCB3aWp6aWdlbiB2YW4gZGUgaW5zdGVsbGluZy4gR0VCUlVJSyBCRUhPRURaQUFNISc7CiRsYW5nWydmaWVsZGRlZmFkZGVkJ10gPSAnVmVsZCBEZWZpbml0aWUgaXMgdG9lZ2V2b2VnZCc7CiRsYW5nWydmaWVsZGRlZnN1cGRhdGVkJ10gPSAnVmVsZCBEZWZpbml0aWUgbGlqc3QgaXMgYmlqZ2V3ZXJrdCc7CiRsYW5nWyd0aXRsZV9jdXN0b21fbW9kdWxlbmFtZSddID0gJ0VpZ2VuIE1vZHVsZW5hYW0nOwokbGFuZ1snaGVscF9jdXN0b21fbW9kdWxlbmFtZSddID0gJ1Uga3VudCBoaWVyIGRlIE1vZHVsZW5hYW0gbmFhciBlaWdlbiB3ZW5zIGFhbnBhc3Nlbi4gSGV0IHphbCBnZWJydWlrdCB3b3JkZW4gYWxzIHRpdGVsIG9wIGRlIG1vZHVsZSBiZWhlZXJwYWdpbmEgZW4gYWxzIG1lbnUgdGVrc3QuJzsKJGxhbmdbJ3RpdGxlX2FkbWluX3NlY3Rpb24nXSA9ICdBZG1pbiBTZWN0aWUnOwokbGFuZ1snaGVscF9hZG1pbl9zZWN0aW9uJ10gPSAnS2llcyBkZSBBZG1pbiBTZWN0aWUgKHZhbiBoZXQgQWRtaW4gdG9wbWVudSkgd2FhciBkZXplIG1vZHVsZSBtb2V0IHdvcmRlbiBnZXRvb25kLiAnOwokbGFuZ1snc2V0dGluZ3NzYXZlZCddID0gJ0luc3RlbGxpbmdlbiBvcGdlc2xhZ2VuISc7CiRsYW5nWydldmVudF9pbmZvX09uU2V0dGluZ0NoYW5nZSddID0gJ0VlbiB0YWcgZGllIHdvcmR0IGFhbmdlcm9lcGVuIG5hZGF0IGVlbiBpbnN0ZWxsaW5nIGlzIGdld2lqemlnZC4nOwokbGFuZ1snZXZlbnRfaGVscF9PblNldHRpbmdDaGFuZ2UnXSA9ICc8cD5FZW4gdGFnIGRpZSB3b3JkdCBhYW5nZXJvZXBlbiBuYWRhdCBlZW4gaW5zdGVsbGluZyBpcyBnZXdpanppZ2QuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPmZpZWxkaWQ8L2xpPg0KPGxpPm5hbWU8L2xpPg0KPGxpPmFsaWFzPC9saT4NCjxsaT52YWx1ZTwvbGk+DQo8bGk+Y2xlYXJjYWNoZTwvbGk+DQo8L3VsPic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjE3NTQyNjUxMTkuMTM0NDk0Mjk0My4xMzQ0OTQyOTQzLjEzNDQ5NDI5NDMuMSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEzNDQ5NDI5NDMuMS4xLnV0bWNjbj0oZGlyZWN0KXx1dG1jc3I9KGRpcmVjdCl8dXRtY21kPShub25lKSc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/jquery/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/jquery/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/jquery/images/ui-icons_222222_256x240.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/images/ui-icons_454545_256x240.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAQAAAADwCAMAAADYSUr5AAAA7VBMVEVERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkRERkQfbf86AAAATnRSTlMAGBAyBAhQv4OZLiJUcEBmYBoSzQwgPBZCSEoeWiYwUiyFNIeBw2rJz8c4RBy9uXyrtaWNqa2zKP2fJO8KBgKPo2KVoa9s351GPm5+kWho0kj9AAAPhUlEQVR4nO1djWLbthEGyUiq5YSSLXtp7FpLOmfzkmxr126tmi2p03RJ1/Xe/3EGgARxPyAgRbIk2/hkSz4CJO4+HsE7AJSVysjI2AMUUOxahZ2iANhzBtZWr4BoIRSYAVN5u4QwDwQDRbcwfUi5KS3wFuDmFnQLa4Dtb//cqktwD5QEFFwfUs7PoCCA7y4bEJVFizcIob8KmhAplwwqVjt+9FBl3uINQniwEiryEyw9JHqGpQdEFNi+B4QQ7QOiHhysIPoAxUqxvdvvA9K42bsAv4S2fxfYOe57IJSRkZGRkZGxx7jxSHDHcRBXQMTyIjInBgHwBJ/bEx8PEANC+uhbpSSggCBAVODVabpI1S/k4WLZpTn6NpMhoX9Y40hxYERFpMcqUs4AloCtDQdID1YhnyXZ2hLjAYWiO9Dy1PDB7tPhIqLx+uMB8grZaR+Qxl2/C2RkZGRkZGRk7A7rBf7J0DR5/LUTjzUPIPSPGvQJiVJiB7kcQCiUOJrcFNtDZIf2xarQ3aGvLNxAVIFAabz90BFiBIlycTBhgWwOWCH0FLYHlPqwHaCvcIn2ZbosCevfPTRiFFcgvHukCjWwrc3GrGh1fsAof8EaUReKXkCB4/MzFNo97qLpFiKFYv/kNR5YQxQbQEofkZ2OuEOHqqT6gFTpru8CN7x/+jaZkZGRkZGRcV+x/rLUNcMM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]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/jquery-ui-timepicker-addon.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCiogalF1ZXJ5IHRpbWVwaWNrZXIgYWRkb24NCiogQnk6IFRyZW50IFJpY2hhcmRzb24gW2h0dHA6Ly90cmVudHJpY2hhcmRzb24uY29tXQ0KKiBWZXJzaW9uIDAuOS45DQoqIExhc3QgTW9kaWZpZWQ6IDAyLzA1LzIwMTINCiogDQoqIENvcHlyaWdodCAyMDEyIFRyZW50IFJpY2hhcmRzb24NCiogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGFuZCBHUEwgbGljZW5zZXMuDQoqIGh0dHA6Ly90cmVudHJpY2hhcmRzb24uY29tL0ltcHJvbXB0dS9HUEwtTElDRU5TRS50eHQNCiogaHR0cDovL3RyZW50cmljaGFyZHNvbi5jb20vSW1wcm9tcHR1L01JVC1MSUNFTlNFLnR4dA0KKiANCiogSEVSRVMgVEhFIENTUzoNCiogLnVpLXRpbWVwaWNrZXItZGl2IC51aS13aWRnZXQtaGVhZGVyIHsgbWFyZ2luLWJvdHRvbTogOHB4OyB9DQoqIC51aS10aW1lcGlja2VyLWRpdiBkbCB7IHRleHQtYWxpZ246IGxlZnQ7IH0NCiogLnVpLXRpbWVwaWNrZXItZGl2IGRsIGR0IHsgaGVpZ2h0OiAyNXB4OyBtYXJnaW4tYm90dG9tOiAtMjVweDsgfQ0KKiAudWktdGltZXBpY2tlci1kaXYgZGwgZGQgeyBtYXJnaW46IDAgMTBweCAxMHB4IDY1cHg7IH0NCiogLnVpLXRpbWVwaWNrZXItZGl2IHRkIHsgZm9udC1zaXplOiA5MCU7IH0NCiogLnVpLXRwaWNrZXItZ3JpZC1sYWJlbCB7IGJhY2tncm91bmQ6IG5vbmU7IGJvcmRlcjogbm9uZTsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9DQoqLw0KDQooZnVuY3Rpb24oJCkgew0KDQokLmV4dGVuZCgkLnVpLCB7IHRpbWVwaWNrZXI6IHsgdmVyc2lvbjogIjAuOS45IiB9IH0pOw0KDQovKiBUaW1lIHBpY2tlciBtYW5hZ2VyLg0KICAgVXNlIHRoZSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcywgJC50aW1lcGlja2VyLCB0byBpbnRlcmFjdCB3aXRoIHRoZSB0aW1lIHBpY2tlci4NCiAgIFNldHRpbmdzIGZvciAoZ3JvdXBzIG9mKSB0aW1lIHBpY2tlcnMgYXJlIG1haW50YWluZWQgaW4gYW4gaW5zdGFuY2Ugb2JqZWN0LA0KICAgYWxsb3dpbmcgbXVsdGlwbGUgZGlmZmVyZW50IHNldHRpbmdzIG9uIHRoZSBzYW1lIHBhZ2UuICovDQoNCmZ1bmN0aW9uIFRpbWVwaWNrZXIoKSB7DQoJdGhpcy5yZWdpb25hbCA9IFtdOyAvLyBBdmFpbGFibGUgcmVnaW9uYWwgc2V0dGluZ3MsIGluZGV4ZWQgYnkgbGFuZ3VhZ2UgY29kZQ0KCXRoaXMucmVnaW9uYWxbJyddID0geyAvLyBEZWZhdWx0IHJlZ2lvbmFsIHNldHRpbmdzDQoJCWN1cnJlbnRUZXh0OiAnTm93JywNCgkJY2xvc2VUZXh0OiAnRG9uZScsDQoJCWFtcG06IGZhbHNlLA0KCQlhbU5hbWVzOiBbJ0FNJywgJ0EnXSwNCgkJcG1OYW1lczogWydQTScsICdQJ10sDQoJCXRpbWVGb3JtYXQ6ICdoaDptbSB0dCcsDQoJCXRpbWVTdWZmaXg6ICcnLA0KCQl0aW1lT25seVRpdGxlOiAnQ2hvb3NlIFRpbWUnLA0KCQl0aW1lVGV4dDogJ1RpbWUnLA0KCQlob3VyVGV4dDogJ0hvdXInLA0KCQltaW51dGVUZXh0OiAnTWludXRlJywNCgkJc2Vjb25kVGV4dDogJ1NlY29uZCcsDQoJCW1pbGxpc2VjVGV4dDogJ01pbGxpc2Vjb25kJywNCgkJdGltZXpvbmVUZXh0OiAnVGltZSBab25lJw0KCX07DQoJdGhpcy5fZGVmYXVsdHMgPSB7IC8vIEdsb2JhbCBkZWZhdWx0cyBmb3IgYWxsIHRoZSBkYXRldGltZSBwaWNrZXIgaW5zdGFuY2VzDQoJCXNob3dCdXR0b25QYW5lbDogdHJ1ZSwNCgkJdGltZU9ubHk6IGZhbHNlLA0KCQlzaG93SG91cjogdHJ1ZSwNCgkJc2hvd01pbnV0ZTogdHJ1ZSwNCgkJc2hvd1NlY29uZDogZmFsc2UsDQoJCXNob3dNaWxsaXNlYzogZmFsc2UsDQoJCXNob3dUaW1lem9uZTogZmFsc2UsDQoJCXNob3dUaW1lOiB0cnVlLA0KCQlzdGVwSG91cjogMSwNCgkJc3RlcE1pbnV0ZTogMSwNCgkJc3RlcFNlY29uZDogMSwNCgkJc3RlcE1pbGxpc2VjOiAxLA0KCQlob3VyOiAwLA0KCQltaW51dGU6IDAsDQoJCXNlY29uZDogMCwNCgkJbWlsbGlzZWM6IDAsDQoJCXRpbWV6b25lOiAnKzAwMDAnLA0KCQlob3VyTWluOiAwLA0KCQltaW51dGVNaW46IDAsDQoJCXNlY29uZE1pbjogMCwNCgkJbWlsbGlzZWNNaW46IDAsDQoJCWhvdXJNYXg6IDIzLA0KCQltaW51dGVNYXg6IDU5LA0KCQlzZWNvbmRNYXg6IDU5LA0KCQltaWxsaXNlY01heDogOTk5LA0KCQltaW5EYXRlVGltZTogbnVsbCwNCgkJbWF4RGF0ZVRpbWU6IG51bGwsDQoJCW9uU2VsZWN0OiBudWxsLA0KCQlob3VyR3JpZDogMCwNCgkJbWludXRlR3JpZDogMCwNCgkJc2Vjb25kR3JpZDogMCwNCgkJbWlsbGlzZWNHcmlkOiAwLA0KCQlhbHdheXNTZXRUaW1lOiB0cnVlLA0KCQlzZXBhcmF0b3I6ICcgJywNCgkJYWx0RmllbGRUaW1lT25seTogdHJ1ZSwNCgkJc2hvd1RpbWVwaWNrZXI6IHRydWUsDQoJCXRpbWV6b25lSXNvODYwOTogZmFsc2UsDQoJCXRpbWV6b25lTGlzdDogbnVsbCwNCgkJYWRkU2xpZGVyQWNjZXNzOiBmYWxzZSwNCgkJc2xpZGVyQWNjZXNzQXJnczogbnVsbA0KCX07DQoJJC5leHRlbmQodGhpcy5fZGVmYXVsdHMsIHRoaXMucmVnaW9uYWxbJyddKTsNCn07DQoNCiQuZXh0ZW5kKFRpbWVwaWNrZXIucHJvdG90eXBlLCB7DQoJJGlucHV0OiBudWxsLA0KCSRhbHRJbnB1dDogbnVsbCwNCgkkdGltZU9iajogbnVsbCwNCglpbnN0OiBudWxsLA0KCWhvdXJfc2xpZGVyOiBudWxsLA0KCW1pbnV0ZV9zbGlkZXI6IG51bGwsDQoJc2Vjb25kX3NsaWRlcjogbnVsbCwNCgltaWxsaXNlY19zbGlkZXI6IG51bGwsDQoJdGltZXpvbmVfc2VsZWN0OiBudWxsLA0KCWhvdXI6IDAsDQoJbWludXRlOiAwLA0KCXNlY29uZDogMCwNCgltaWxsaXNlYzogMCwNCgl0aW1lem9uZTogJyswMDAwJywNCglob3VyTWluT3JpZ2luYWw6IG51bGwsDQoJbWludXRlTWluT3JpZ2luYWw6IG51bGwsDQoJc2Vjb25kTWluT3JpZ2luYWw6IG51bGwsDQoJbWlsbGlzZWNNaW5PcmlnaW5hbDogbnVsbCwNCglob3VyTWF4T3JpZ2luYWw6IG51bGwsDQoJbWludXRlTWF4T3JpZ2luYWw6IG51bGwsDQoJc2Vjb25kTWF4T3JpZ2luYWw6IG51bGwsDQoJbWlsbGlzZWNNYXhPcmlnaW5hbDogbnVsbCwNCglhbXBtOiAnJywNCglmb3JtYXR0ZWREYXRlOiAnJywNCglmb3JtYXR0ZWRUaW1lOiAnJywNCglmb3JtYXR0ZWREYXRlVGltZTogJycsDQoJdGltZXpvbmVMaXN0OiBudWxsLA0KDQoJLyogT3ZlcnJpZGUgdGhlIGRlZmF1bHQgc2V0dGluZ3MgZm9yIGFsbCBpbnN0YW5jZXMgb2YgdGhlIHRpbWUgcGlja2VyLg0KCSAgIEBwYXJhbSAgc2V0dGluZ3MgIG9iamVjdCAtIHRoZSBuZXcgc2V0dGluZ3MgdG8gdXNlIGFzIGRlZmF1bHRzIChhbm9ueW1vdXMgb2JqZWN0KQ0KCSAgIEByZXR1cm4gdGhlIG1hbmFnZXIgb2JqZWN0ICovDQoJc2V0RGVmYXVsdHM6IGZ1bmN0aW9uKHNldHRpbmdzKSB7DQoJCWV4dGVuZFJlbW92ZSh0aGlzLl9kZWZhdWx0cywgc2V0dGluZ3MgfHwge30pOw0KCQlyZXR1cm4gdGhpczsNCgl9LA0KDQoJLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCgkvLyBDcmVhdGUgYSBuZXcgVGltZXBpY2tlciBpbnN0YW5jZQ0KCS8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQoJX25ld0luc3Q6IGZ1bmN0aW9uKCRpbnB1dCwgbykgew0KCQl2YXIgdHBfaW5zdCA9IG5ldyBUaW1lcGlja2VyKCksDQoJCQlpbmxpbmVTZXR0aW5ncyA9IHt9Ow0KCQkJDQoJCWZvciAodmFyIGF0dHJOYW1lIGluIHRoaXMuX2RlZmF1bHRzKSB7DQoJCQl2YXIgYXR0clZhbHVlID0gJGlucHV0LmF0dHIoJ3RpbWU6JyArIGF0dHJOYW1lKTsNCgkJCWlmIChhdHRyVmFsdWUpIHsNCgkJCQl0cnkgew0KCQkJCQlpbmxpbmVTZXR0aW5nc1thdHRyTmFtZV0gPSBldmFsKGF0dHJWYWx1ZSk7DQoJCQkJfSBjYXRjaCAoZXJyKSB7DQoJCQkJCWlubGluZVNldHRpbmdzW2F0dHJOYW1lXSA9IGF0dHJWYWx1ZTsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJdHBfaW5zdC5fZGVmYXVsdHMgPSAkLmV4dGVuZCh7fSwgdGhpcy5fZGVmYXVsdHMsIGlubGluZVNldHRpbmdzLCBvLCB7DQoJCQliZWZvcmVTaG93OiBmdW5jdGlvbihpbnB1dCwgZHBfaW5zdCkgew0KCQkJCWlmICgkLmlzRnVuY3Rpb24oby5iZWZvcmVTaG93KSkNCgkJCQkJcmV0dXJuIG8uYmVmb3JlU2hvdyhpbnB1dCwgZHBfaW5zdCwgdHBfaW5zdCk7DQoJCQl9LA0KCQkJb25DaGFuZ2VNb250aFllYXI6IGZ1bmN0aW9uKHllYXIsIG1vbnRoLCBkcF9pbnN0KSB7DQoJCQkJLy8gVXBkYXRlIHRoZSB0aW1lIGFzIHdlbGwgOiB0aGlzIHByZXZlbnRzIHRoZSB0aW1lIGZyb20gZGlzYXBwZWFyaW5nIGZyb20gdGhlICRpbnB1dCBmaWVsZC4NCgkJCQl0cF9pbnN0Ll91cGRhdGVEYXRlVGltZShkcF9pbnN0KTsNCgkJCQlpZiAoJC5pc0Z1bmN0aW9uKG8ub25DaGFuZ2VNb250aFllYXIpKQ0KCQkJCQlvLm9uQ2hhbmdlTW9udGhZZWFyLmNhbGwoJGlucHV0WzBdLCB5ZWFyLCBtb250aCwgZHBfaW5zdCwgdHBfaW5zdCk7DQoJCQl9LA0KCQkJb25DbG9zZTogZnVuY3Rpb24oZGF0ZVRleHQsIGRwX2luc3QpIHsNCgkJCQlpZiAodHBfaW5zdC50aW1lRGVmaW5lZCA9PT0gdHJ1ZSAmJiAkaW5wdXQudmFsKCkgIT0gJycpDQoJCQkJCXRwX2luc3QuX3VwZGF0ZURhdGVUaW1lKGRwX2luc3QpOw0KCQkJCWlmICgkLmlzRnVuY3Rpb24oby5vbkNsb3NlKSkNCgkJCQkJby5vbkNsb3NlLmNhbGwoJGlucHV0WzBdLCBkYXRlVGV4dCwgZHBfaW5zdCwgdHBfaW5zdCk7DQoJCQl9LA0KCQkJdGltZXBpY2tlcjogdHBfaW5zdCAvLyBhZGQgdGltZXBpY2tlciBhcyBhIHByb3BlcnR5IG9mIGRhdGVwaWNrZXI6ICQuZGF0ZXBpY2tlci5fZ2V0KGRwX2luc3QsICd0aW1lcGlja2VyJyk7DQoJCX0pOw0KCQl0cF9pbnN0LmFtTmFtZXMgPSAkLm1hcCh0cF9pbnN0Ll9kZWZhdWx0cy5hbU5hbWVzLCBmdW5jdGlvbih2YWwpIHsgcmV0dXJuIHZhbC50b1VwcGVyQ2FzZSgpIH0pOw0KCQl0cF9pbnN0LnBtTmFtZXMgPSAkLm1hcCh0cF9pbnN0Ll9kZWZhdWx0cy5wbU5hbWVzLCBmdW5jdGlvbih2YWwpIHsgcmV0dXJuIHZhbC50b1VwcGVyQ2FzZSgpIH0pOw0KDQoJCWlmICh0cF9pbnN0Ll9kZWZhdWx0cy50aW1lem9uZUxpc3QgPT09IG51bGwpIHsNCgkJCXZhciB0aW1lem9uZUxpc3QgPSBbXTsNCgkJCWZvciAodmFyIGkgPSAtMTE7IGkgPD0gMTI7IGkrKykNCgkJCQl0aW1lem9uZUxpc3QucHVzaCgoaSA+PSAwID8gJysnIDogJy0nKSArICgnMCcgKyBNYXRoLmFicyhpKS50b1N0cmluZygpKS5zbGljZSgtMikgKyAnMDAnKTsNCgkJCWlmICh0cF9pbnN0Ll9kZWZhdWx0cy50aW1lem9uZUlzbzg2MDkpDQoJCQkJdGltZXpvbmVMaXN0ID0gJC5tYXAodGltZXpvbmVMaXN0LCBmdW5jdGlvbih2YWwpIHsNCgkJCQkJcmV0dXJuIHZhbCA9PSAnKzAwMDAnID8gJ1onIDogKHZhbC5zdWJzdHJpbmcoMCwgMykgKyAnOicgKyB2YWwuc3Vic3RyaW5nKDMpKTsNCgkJCQl9KTsNCgkJCXRwX2luc3QuX2RlZmF1bHRzLnRpbWV6b25lTGlzdCA9IHRpbWV6b25lTGlzdDsNCgkJfQ0KDQoJCXRwX2luc3QuaG91ciA9IHRwX2luc3QuX2RlZmF1bHRzLmhvdXI7DQoJCXRwX2luc3QubWludXRlID0gdHBfaW5zdC5fZGVmYXVsdHMubWludXRlOw0KCQl0cF9pbnN0LnNlY29uZCA9IHRwX2luc3QuX2RlZmF1bHRzLnNlY29uZDsNCgkJdHBfaW5zdC5taWxsaXNlYyA9IHRwX2luc3QuX2RlZmF1bHRzLm1pbGxpc2VjOw0KCQl0cF9pbnN0LmFtcG0gPSAnJzsNCgkJdHBfaW5zdC4kaW5wdXQgPSAkaW5wdXQ7DQoNCgkJaWYgKG8uYWx0RmllbGQpDQoJCQl0cF9pbnN0LiRhbHRJbnB1dCA9ICQoby5hbHRGaWVsZCkNCgkJCQkuY3NzKHsgY3Vyc29yOiAncG9pbnRlcicgfSkNCgkJCQkuZm9jdXMoZnVuY3Rpb24oKXsgJGlucHV0LnRyaWdnZXIoImZvY3VzIik7IH0pOw0KCQkNCgkJaWYodHBfaW5zdC5fZGVmYXVsdHMubWluRGF0ZT09MCB8fCB0cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlVGltZT09MCkNCgkJew0KCQkJdHBfaW5zdC5fZGVmYXVsdHMubWluRGF0ZT1uZXcgRGF0ZSgpOw0KCQl9DQoJCWlmKHRwX2luc3QuX2RlZmF1bHRzLm1heERhdGU9PTAgfHwgdHBfaW5zdC5fZGVmYXVsdHMubWF4RGF0ZVRpbWU9PTApDQoJCXsNCgkJCXRwX2luc3QuX2RlZmF1bHRzLm1heERhdGU9bmV3IERhdGUoKTsNCgkJfQ0KCQkNCgkJLy8gZGF0ZXBpY2tlciBuZWVkcyBtaW5EYXRlL21heERhdGUsIHRpbWVwaWNrZXIgbmVlZHMgbWluRGF0ZVRpbWUvbWF4RGF0ZVRpbWUuLg0KCQlpZih0cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlICE9PSB1bmRlZmluZWQgJiYgdHBfaW5zdC5fZGVmYXVsdHMubWluRGF0ZSBpbnN0YW5jZW9mIERhdGUpDQoJCQl0cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlVGltZSA9IG5ldyBEYXRlKHRwX2luc3QuX2RlZmF1bHRzLm1pbkRhdGUuZ2V0VGltZSgpKTsNCgkJaWYodHBfaW5zdC5fZGVmYXVsdHMubWluRGF0ZVRpbWUgIT09IHVuZGVmaW5lZCAmJiB0cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlVGltZSBpbnN0YW5jZW9mIERhdGUpDQoJCQl0cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlID0gbmV3IERhdGUodHBfaW5zdC5fZGVmYXVsdHMubWluRGF0ZVRpbWUuZ2V0VGltZSgpKTsNCgkJaWYodHBfaW5zdC5fZGVmYXVsdHMubWF4RGF0ZSAhPT0gdW5kZWZpbmVkICYmIHRwX2luc3QuX2RlZmF1bHRzLm1heERhdGUgaW5zdGFuY2VvZiBEYXRlKQ0KCQkJdHBfaW5zdC5fZGVmYXVsdHMubWF4RGF0ZVRpbWUgPSBuZXcgRGF0ZSh0cF9pbnN0Ll9kZWZhdWx0cy5tYXhEYXRlLmdldFRpbWUoKSk7DQoJCWlmKHRwX2luc3QuX2RlZmF1bHRzLm1heERhdGVUaW1lICE9PSB1bmRlZmluZWQgJiYgdHBfaW5zdC5fZGVmYXVsdHMubWF4RGF0ZVRpbWUgaW5zdGFuY2VvZiBEYXRlKQ0KCQkJdHBfaW5zdC5fZGVmYXVsdHMubWF4RGF0ZSA9IG5ldyBEYXRlKHRwX2luc3QuX2RlZmF1bHRzLm1heERhdGVUaW1lLmdldFRpbWUoKSk7DQoJCXJldHVybiB0cF9pbnN0Ow0KCX0sDQoNCgkvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KCS8vIGFkZCBvdXIgc2xpZGVycyB0byB0aGUgY2FsZW5kYXINCgkvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KCV9hZGRUaW1lUGlja2VyOiBmdW5jdGlvbihkcF9pbnN0KSB7DQoJCXZhciBjdXJyRFQgPSAodGhpcy4kYWx0SW5wdXQgJiYgdGhpcy5fZGVmYXVsdHMuYWx0RmllbGRUaW1lT25seSkgPw0KCQkJCXRoaXMuJGlucHV0LnZhbCgpICsgJyAnICsgdGhpcy4kYWx0SW5wdXQudmFsKCkgOiANCgkJCQl0aGlzLiRpbnB1dC52YWwoKTsNCg0KCQl0aGlzLnRpbWVEZWZpbmVkID0gdGhpcy5fcGFyc2VUaW1lKGN1cnJEVCk7DQoJCXRoaXMuX2xpbWl0TWluTWF4RGF0ZVRpbWUoZHBfaW5zdCwgZmFsc2UpOw0KCQl0aGlzLl9pbmplY3RUaW1lUGlja2VyKCk7DQoJfSwNCg0KCS8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQoJLy8gcGFyc2UgdGhlIHRpbWUgc3RyaW5nIGZyb20gaW5wdXQgdmFsdWUgb3IgX3NldFRpbWUNCgkvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KCV9wYXJzZVRpbWU6IGZ1bmN0aW9uKHRpbWVTdHJpbmcsIHdpdGhEYXRlKSB7DQoJCXZhciByZWdzdHIgPSB0aGlzLl9kZWZhdWx0cy50aW1lRm9ybWF0LnRvU3RyaW5nKCkNCgkJCQkucmVwbGFjZSgvaHsxLDJ9L2lnLCAnKFxcZD9cXGQpJykNCgkJCQkucmVwbGFjZSgvbXsxLDJ9L2lnLCAnKFxcZD9cXGQpJykNCgkJCQkucmVwbGFjZSgvc3sxLDJ9L2lnLCAnKFxcZD9cXGQpJykNCgkJCQkucmVwbGFjZSgvbHsxfS9pZywgJyhcXGQ/XFxkP1xcZCknKQ0KCQkJCS5yZXBsYWNlKC90ezEsMn0vaWcsIHRoaXMuX2dldFBhdHRlcm5BbXBtKCkpDQoJCQkJLnJlcGxhY2UoL3p7MX0vaWcsICcoenxbLStdXFxkXFxkOj9cXGRcXGQpPycpDQoJCQkJLnJlcGxhY2UoL1xzL2csICdcXHM/JykgKyB0aGlzLl9kZWZhdWx0cy50aW1lU3VmZml4ICsgJyQnLA0KCQkJb3JkZXIgPSB0aGlzLl9nZXRGb3JtYXRQb3NpdGlvbnMoKSwNCgkJCWFtcG0gPSAnJywNCgkJCXRyZWc7DQoNCgkJaWYgKCF0aGlzLmluc3QpIHRoaXMuaW5zdCA9ICQuZGF0ZXBpY2tlci5fZ2V0SW5zdCh0aGlzLiRpbnB1dFswXSk7DQoNCgkJaWYgKHdpdGhEYXRlIHx8ICF0aGlzLl9kZWZhdWx0cy50aW1lT25seSkgew0KCQkJLy8gdGhlIHRpbWUgc2hvdWxkIGNvbWUgYWZ0ZXIgeCBudW1iZXIgb2YgY2hhcmFjdGVycyBhbmQgYSBzcGFjZS4NCgkJCS8vIHggPSBhdCBsZWFzdCB0aGUgbGVuZ3RoIG9mIHRleHQgc3BlY2lmaWVkIGJ5IHRoZSBkYXRlIGZvcm1hdA0KCQkJdmFyIGRwX2RhdGVGb3JtYXQgPSAkLmRhdGVwaWNrZXIuX2dldCh0aGlzLmluc3QsICdkYXRlRm9ybWF0Jyk7DQoJCQkvLyBlc2NhcGUgc3BlY2lhbCByZWdleCBjaGFyYWN0ZXJzIGluIHRoZSBzZXBlcmF0b3INCgkJCXZhciBzcGVjaWFscyA9IG5ldyBSZWdFeHAoIlsuKis/fCgpXFxbXFxde31cXFxcXSIsICJnIik7DQoJCQlyZWdzdHIgPSAnXi57JyArIGRwX2RhdGVGb3JtYXQubGVuZ3RoICsgJyx9PycgKyB0aGlzLl9kZWZhdWx0cy5zZXBhcmF0b3IucmVwbGFjZShzcGVjaWFscywgIlxcJCYiKSArIHJlZ3N0cjsNCgkJfQ0KCQkNCgkJdHJlZyA9IHRpbWVTdHJpbmcubWF0Y2gobmV3IFJlZ0V4cChyZWdzdHIsICdpJykpOw0KDQoJCWlmICh0cmVnKSB7DQoJCQlpZiAob3JkZXIudCAhPT0gLTEpIHsNCgkJCQlpZiAodHJlZ1tvcmRlci50XSA9PT0gdW5kZWZpbmVkIHx8IHRyZWdbb3JkZXIudF0ubGVuZ3RoID09PSAwKSB7DQoJCQkJCWFtcG0gPSAnJzsNCgkJCQkJdGhpcy5hbXBtID0gJyc7DQoJCQkJfSBlbHNlIHsNCgkJCQkJYW1wbSA9ICQuaW5BcnJheSh0cmVnW29yZGVyLnRdLnRvVXBwZXJDYXNlKCksIHRoaXMuYW1OYW1lcykgIT09IC0xID8gJ0FNJyA6ICdQTSc7DQoJCQkJCXRoaXMuYW1wbSA9IHRoaXMuX2RlZmF1bHRzW2FtcG0gPT0gJ0FNJyA/ICdhbU5hbWVzJyA6ICdwbU5hbWVzJ11bMF07DQoJCQkJfQ0KCQkJfQ0KDQoJCQlpZiAob3JkZXIuaCAhPT0gLTEpIHsNCgkJCQlpZiAoYW1wbSA9PSAnQU0nICYmIHRyZWdbb3JkZXIuaF0gPT0gJzEyJykNCgkJCQkJdGhpcy5ob3VyID0gMDsgLy8gMTJhbSA9IDAgaG91cg0KCQkJCWVsc2UgaWYgKGFtcG0gPT0gJ1BNJyAmJiB0cmVnW29yZGVyLmhdICE9ICcxMicpDQoJCQkJCXRoaXMuaG91ciA9IChwYXJzZUZsb2F0KHRyZWdbb3JkZXIuaF0pICsgMTIpLnRvRml4ZWQoMCk7IC8vIDEycG0gPSAxMiBob3VyLCBhbnkgb3RoZXIgcG0gPSBob3VyICsgMTINCgkJCQllbHNlIHRoaXMuaG91ciA9IE51bWJlcih0cmVnW29yZGVyLmhdKTsNCgkJCX0NCg0KCQkJaWYgKG9yZGVyLm0gIT09IC0xKSB0aGlzLm1pbnV0ZSA9IE51bWJlcih0cmVnW29yZGVyLm1dKTsNCgkJCWlmIChvcmRlci5zICE9PSAtMSkgdGhpcy5zZWNvbmQgPSBOdW1iZXIodHJlZ1tvcmRlci5zXSk7DQoJCQlpZiAob3JkZXIubCAhPT0gLTEpIHRoaXMubWlsbGlzZWMgPSBOdW1iZXIodHJlZ1tvcmRlci5sXSk7DQoJCQlpZiAob3JkZXIueiAhPT0gLTEgJiYgdHJlZ1tvcmRlci56XSAhPT0gdW5kZWZpbmVkKSB7DQoJCQkJdmFyIHR6ID0gdHJlZ1tvcmRlci56XS50b1VwcGVyQ2FzZSgpOw0KCQkJCXN3aXRjaCAodHoubGVuZ3RoKSB7DQoJCQkJY2FzZSAxOgkvLyBaDQoJCQkJCXR6ID0gdGhpcy5fZGVmYXVsdHMudGltZXpvbmVJc284NjA5ID8gJ1onIDogJyswMDAwJzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSA1OgkvLyAraGhtbQ0KCQkJCQlpZiAodGhpcy5fZGVmYXVsdHMudGltZXpvbmVJc284NjA5KQ0KCQkJCQkJdHogPSB0ei5zdWJzdHJpbmcoMSkgPT0gJzAwMDAnDQoJCQkJCQkgICA/ICdaJw0KCQkJCQkJICAgOiB0ei5zdWJzdHJpbmcoMCwgMykgKyAnOicgKyB0ei5zdWJzdHJpbmcoMyk7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgNjoJLy8gK2hoOm1tDQoJCQkJCWlmICghdGhpcy5fZGVmYXVsdHMudGltZXpvbmVJc284NjA5KQ0KCQkJCQkJdHogPSB0eiA9PSAnWicgfHwgdHouc3Vic3RyaW5nKDEpID09ICcwMDowMCcNCgkJCQkJCSAgID8gJyswMDAwJw0KCQkJCQkJICAgOiB0ei5yZXBsYWNlKC86LywgJycpOw0KCQkJCQllbHNlIGlmICh0ei5zdWJzdHJpbmcoMSkgPT0gJzAwOjAwJykNCgkJCQkJCXR6ID0gJ1onOw0KCQkJCQlicmVhazsNCgkJCQl9DQoJCQkJdGhpcy50aW1lem9uZSA9IHR6Ow0KCQkJfQ0KCQkJDQoJCQlyZXR1cm4gdHJ1ZTsNCg0KCQl9DQoJCXJldHVybiBmYWxzZTsNCgl9LA0KDQoJLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCgkvLyBwYXR0ZXJuIGZvciBzdGFuZGFyZCBhbmQgbG9jYWxpemVkIEFNL1BNIG1hcmtlcnMNCgkvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KCV9nZXRQYXR0ZXJuQW1wbTogZnVuY3Rpb24oKSB7DQoJCXZhciBtYXJrZXJzID0gW107DQoJCQlvID0gdGhpcy5fZGVmYXVsdHM7DQoJCWlmIChvLmFtTmFtZXMpDQoJCQkkLm1lcmdlKG1hcmtlcnMsIG8uYW1OYW1lcyk7DQoJCWlmIChvLnBtTmFtZXMpDQoJCQkkLm1lcmdlKG1hcmtlcnMsIG8ucG1OYW1lcyk7DQoJCW1hcmtlcnMgPSAkLm1hcChtYXJrZXJzLCBmdW5jdGlvbih2YWwpIHsgcmV0dXJuIHZhbC5yZXBsYWNlKC9bLiorP3woKVxbXF17fVxcXS9nLCAnXFwkJicpIH0pOw0KCQlyZXR1cm4gJygnICsgbWFya2Vycy5qb2luKCd8JykgKyAnKT8nOw0KCX0sDQoNCgkvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KCS8vIGZpZ3VyZSBvdXQgcG9zaXRpb24gb2YgdGltZSBlbGVtZW50cy4uIGNhdXNlIGpzIGNhbnQgZG8gbmFtZWQgY2FwdHVyZXMNCgkvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KCV9nZXRGb3JtYXRQb3NpdGlvbnM6IGZ1bmN0aW9uKCkgew0KCQl2YXIgZmluZHMgPSB0aGlzLl9kZWZhdWx0cy50aW1lRm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhoezEsMn18bXsxLDJ9fHN7MSwyfXxsezF9fHR7MSwyfXx6KS9nKSwNCgkJCW9yZGVycyA9IHsgaDogLTEsIG06IC0xLCBzOiAtMSwgbDogLTEsIHQ6IC0xLCB6OiAtMSB9Ow0KDQoJCWlmIChmaW5kcykNCgkJCWZvciAodmFyIGkgPSAwOyBpIDwgZmluZHMubGVuZ3RoOyBpKyspDQoJCQkJaWYgKG9yZGVyc1tmaW5kc1tpXS50b1N0cmluZygpLmNoYXJBdCgwKV0gPT0gLTEpDQoJCQkJCW9yZGVyc1tmaW5kc1tpXS50b1N0cmluZygpLmNoYXJBdCgwKV0gPSBpICsgMTsNCg0KCQlyZXR1cm4gb3JkZXJzOw0KCX0sDQoNCgkvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KCS8vIGdlbmVyYXRlIGFuZCBpbmplY3QgaHRtbCBmb3IgdGltZXBpY2tlciBpbnRvIHVpIGRhdGVwaWNrZXINCgkvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KCV9pbmplY3RUaW1lUGlja2VyOiBmdW5jdGlvbigpIHsNCgkJdmFyICRkcCA9IHRoaXMuaW5zdC5kcERpdiwNCgkJCW8gPSB0aGlzLl9kZWZhdWx0cywNCgkJCXRwX2luc3QgPSB0aGlzLA0KCQkJLy8gQWRkZWQgYnkgUGV0ZXIgTWVkZWlyb3M6DQoJCQkvLyAtIEZpZ3VyZSBvdXQgd2hhdCB0aGUgaG91ci9taW51dGUvc2Vjb25kIG1heCBzaG91bGQgYmUgYmFzZWQgb24gdGhlIHN0ZXAgdmFsdWVzLg0KCQkJLy8gLSBFeGFtcGxlOiBpZiBzdGVwTWludXRlIGlzIDE1LCB0aGVuIG1pbk1heCBpcyA0NS4NCgkJCWhvdXJNYXggPSBwYXJzZUludCgoby5ob3VyTWF4IC0gKChvLmhvdXJNYXggLSBvLmhvdXJNaW4pICUgby5zdGVwSG91cikpICwxMCksDQoJCQltaW5NYXggID0gcGFyc2VJbnQoKG8ubWludXRlTWF4IC0gKChvLm1pbnV0ZU1heCAtIG8ubWludXRlTWluKSAlIG8uc3RlcE1pbnV0ZSkpICwxMCksDQoJCQlzZWNNYXggID0gcGFyc2VJbnQoKG8uc2Vjb25kTWF4IC0gKChvLnNlY29uZE1heCAtIG8uc2Vjb25kTWluKSAlIG8uc3RlcFNlY29uZCkpICwxMCksDQoJCQltaWxsaXNlY01heCAgPSBwYXJzZUludCgoby5taWxsaXNlY01heCAtICgoby5taWxsaXNlY01heCAtIG8ubWlsbGlzZWNNaW4pICUgby5zdGVwTWlsbGlzZWMpKSAsMTApLA0KCQkJZHBfaWQgPSB0aGlzLmluc3QuaWQudG9TdHJpbmcoKS5yZXBsYWNlKC8oW15BLVphLXowLTlfXSkvZywgJycpOw0KDQoJCS8vIFByZXZlbnQgZGlzcGxheWluZyB0d2ljZQ0KCQkvL2lmICgkZHAuZmluZCgiZGl2I3VpLXRpbWVwaWNrZXItZGl2LSIrIGRwX2lkKS5sZW5ndGggPT09IDApIHsNCgkJaWYgKCRkcC5maW5kKCJkaXYjdWktdGltZXBpY2tlci1kaXYtIisgZHBfaWQpLmxlbmd0aCA9PT0gMCAmJiBvLnNob3dUaW1lcGlja2VyKSB7DQoJCQl2YXIgbm9EaXNwbGF5ID0gJyBzdHlsZT0iZGlzcGxheTpub25lOyInLA0KCQkJCWh0bWwgPQknPGRpdiBjbGFzcz0idWktdGltZXBpY2tlci1kaXYiIGlkPSJ1aS10aW1lcGlja2VyLWRpdi0nICsgZHBfaWQgKyAnIj48ZGw+JyArDQoJCQkJCQknPGR0IGNsYXNzPSJ1aV90cGlja2VyX3RpbWVfbGFiZWwiIGlkPSJ1aV90cGlja2VyX3RpbWVfbGFiZWxfJyArIGRwX2lkICsgJyInICsNCgkJCQkJCSgoby5zaG93VGltZSkgPyAnJyA6IG5vRGlzcGxheSkgKyAnPicgKyBvLnRpbWVUZXh0ICsgJzwvZHQ+JyArDQoJCQkJCQknPGRkIGNsYXNzPSJ1aV90cGlja2VyX3RpbWUiIGlkPSJ1aV90cGlja2VyX3RpbWVfJyArIGRwX2lkICsgJyInICsNCgkJCQkJCSgoby5zaG93VGltZSkgPyAnJyA6IG5vRGlzcGxheSkgKyAnPjwvZGQ+JyArDQoJCQkJCQknPGR0IGNsYXNzPSJ1aV90cGlja2VyX2hvdXJfbGFiZWwiIGlkPSJ1aV90cGlja2VyX2hvdXJfbGFiZWxfJyArIGRwX2lkICsgJyInICsNCgkJCQkJCSgoby5zaG93SG91cikgPyAnJyA6IG5vRGlzcGxheSkgKyAnPicgKyBvLmhvdXJUZXh0ICsgJzwvZHQ+JywNCgkJCQlob3VyR3JpZFNpemUgPSAwLA0KCQkJCW1pbnV0ZUdyaWRTaXplID0gMCwNCgkJCQlzZWNvbmRHcmlkU2l6ZSA9IDAsDQoJCQkJbWlsbGlzZWNHcmlkU2l6ZSA9IDAsDQoJCQkJc2l6ZTsNCg0KIAkJCS8vIEhvdXJzDQoJCQlodG1sICs9ICc8ZGQgY2xhc3M9InVpX3RwaWNrZXJfaG91ciI+PGRpdiBpZD0idWlfdHBpY2tlcl9ob3VyXycgKyBkcF9pZCArICciJyArDQoJCQkJCQkoKG8uc2hvd0hvdXIpID8gJycgOiBub0Rpc3BsYXkpICsgJz48L2Rpdj4nOw0KCQkJaWYgKG8uc2hvd0hvdXIgJiYgby5ob3VyR3JpZCA+IDApIHsNCgkJCQlodG1sICs9ICc8ZGl2IHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDFweCI+PHRhYmxlIGNsYXNzPSJ1aS10cGlja2VyLWdyaWQtbGFiZWwiPjx0cj4nOw0KDQoJCQkJZm9yICh2YXIgaCA9IG8uaG91ck1pbjsgaCA8PSBob3VyTWF4OyBoICs9IHBhcnNlSW50KG8uaG91ckdyaWQsMTApKSB7DQoJCQkJCWhvdXJHcmlkU2l6ZSsrOw0KCQkJCQl2YXIgdG1waCA9IChvLmFtcG0gJiYgaCA+IDEyKSA/IGgtMTIgOiBoOw0KCQkJCQlpZiAodG1waCA8IDEwKSB0bXBoID0gJzAnICsgdG1waDsNCgkJCQkJaWYgKG8uYW1wbSkgew0KCQkJCQkJaWYgKGggPT0gMCkgdG1waCA9IDEyICsnYSc7DQoJCQkJCQllbHNlIGlmIChoIDwgMTIpIHRtcGggKz0gJ2EnOw0KCQkJCQkJZWxzZSB0bXBoICs9ICdwJzsNCgkJCQkJfQ0KCQkJCQlodG1sICs9ICc8dGQ+JyArIHRtcGggKyAnPC90ZD4nOw0KCQkJCX0NCg0KCQkJCWh0bWwgKz0gJzwvdHI+PC90YWJsZT48L2Rpdj4nOw0KCQkJfQ0KCQkJaHRtbCArPSAnPC9kZD4nOw0KDQoJCQkvLyBNaW51dGVzDQoJCQlodG1sICs9ICc8ZHQgY2xhc3M9InVpX3RwaWNrZXJfbWludXRlX2xhYmVsIiBpZD0idWlfdHBpY2tlcl9taW51dGVfbGFiZWxfJyArIGRwX2lkICsgJyInICsNCgkJCQkJKChvLnNob3dNaW51dGUpID8gJycgOiBub0Rpc3BsYXkpICsgJz4nICsgby5taW51dGVUZXh0ICsgJzwvZHQ+JysNCgkJCQkJJzxkZCBjbGFzcz0idWlfdHBpY2tlcl9taW51dGUiPjxkaXYgaWQ9InVpX3RwaWNrZXJfbWludXRlXycgKyBkcF9pZCArICciJyArDQoJCQkJCQkJKChvLnNob3dNaW51dGUpID8gJycgOiBub0Rpc3BsYXkpICsgJz48L2Rpdj4nOw0KDQoJCQlpZiAoby5zaG93TWludXRlICYmIG8ubWludXRlR3JpZCA+IDApIHsNCgkJCQlodG1sICs9ICc8ZGl2IHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDFweCI+PHRhYmxlIGNsYXNzPSJ1aS10cGlja2VyLWdyaWQtbGFiZWwiPjx0cj4nOw0KDQoJCQkJZm9yICh2YXIgbSA9IG8ubWludXRlTWluOyBtIDw9IG1pbk1heDsgbSArPSBwYXJzZUludChvLm1pbnV0ZUdyaWQsMTApKSB7DQoJCQkJCW1pbnV0ZUdyaWRTaXplKys7DQoJCQkJCWh0bWwgKz0gJzx0ZD4nICsgKChtIDwgMTApID8gJzAnIDogJycpICsgbSArICc8L3RkPic7DQoJCQkJfQ0KDQoJCQkJaHRtbCArPSAnPC90cj48L3RhYmxlPjwvZGl2Pic7DQoJCQl9DQoJCQlodG1sICs9ICc8L2RkPic7DQoNCgkJCS8vIFNlY29uZHMNCgkJCWh0bWwgKz0gJzxkdCBjbGFzcz0idWlfdHBpY2tlcl9zZWNvbmRfbGFiZWwiIGlkPSJ1aV90cGlja2VyX3NlY29uZF9sYWJlbF8nICsgZHBfaWQgKyAnIicgKw0KCQkJCQkoKG8uc2hvd1NlY29uZCkgPyAnJyA6IG5vRGlzcGxheSkgKyAnPicgKyBvLnNlY29uZFRleHQgKyAnPC9kdD4nKw0KCQkJCQknPGRkIGNsYXNzPSJ1aV90cGlja2VyX3NlY29uZCI+PGRpdiBpZD0idWlfdHBpY2tlcl9zZWNvbmRfJyArIGRwX2lkICsgJyInKw0KCQkJCQkJCSgoby5zaG93U2Vjb25kKSA/ICcnIDogbm9EaXNwbGF5KSArICc+PC9kaXY+JzsNCg0KCQkJaWYgKG8uc2hvd1NlY29uZCAmJiBvLnNlY29uZEdyaWQgPiAwKSB7DQoJCQkJaHRtbCArPSAnPGRpdiBzdHlsZT0icGFkZGluZy1sZWZ0OiAxcHgiPjx0YWJsZT48dHI+JzsNCg0KCQkJCWZvciAodmFyIHMgPSBvLnNlY29uZE1pbjsgcyA8PSBzZWNNYXg7IHMgKz0gcGFyc2VJbnQoby5zZWNvbmRHcmlkLDEwKSkgew0KCQkJCQlzZWNvbmRHcmlkU2l6ZSsrOw0KCQkJCQlodG1sICs9ICc8dGQ+JyArICgocyA8IDEwKSA/ICcwJyA6ICcnKSArIHMgKyAnPC90ZD4nOw0KCQkJCX0NCg0KCQkJCWh0bWwgKz0gJzwvdHI+PC90YWJsZT48L2Rpdj4nOw0KCQkJfQ0KCQkJaHRtbCArPSAnPC9kZD4nOw0KDQoJCQkvLyBNaWxsaXNlY29uZHMNCgkJCWh0bWwgKz0gJzxkdCBjbGFzcz0idWlfdHBpY2tlcl9taWxsaXNlY19sYWJlbCIgaWQ9InVpX3RwaWNrZXJfbWlsbGlzZWNfbGFiZWxfJyArIGRwX2lkICsgJyInICsNCgkJCQkJKChvLnNob3dNaWxsaXNlYykgPyAnJyA6IG5vRGlzcGxheSkgKyAnPicgKyBvLm1pbGxpc2VjVGV4dCArICc8L2R0PicrDQoJCQkJCSc8ZGQgY2xhc3M9InVpX3RwaWNrZXJfbWlsbGlzZWMiPjxkaXYgaWQ9InVpX3RwaWNrZXJfbWlsbGlzZWNfJyArIGRwX2lkICsgJyInKw0KCQkJCQkJCSgoby5zaG93TWlsbGlzZWMpID8gJycgOiBub0Rpc3BsYXkpICsgJz48L2Rpdj4nOw0KDQoJCQlpZiAoby5zaG93TWlsbGlzZWMgJiYgby5taWxsaXNlY0dyaWQgPiAwKSB7DQoJCQkJaHRtbCArPSAnPGRpdiBzdHlsZT0icGFkZGluZy1sZWZ0OiAxcHgiPjx0YWJsZT48dHI+JzsNCg0KCQkJCWZvciAodmFyIGwgPSBvLm1pbGxpc2VjTWluOyBsIDw9IG1pbGxpc2VjTWF4OyBsICs9IHBhcnNlSW50KG8ubWlsbGlzZWNHcmlkLDEwKSkgew0KCQkJCQltaWxsaXNlY0dyaWRTaXplKys7DQoJCQkJCWh0bWwgKz0gJzx0ZD4nICsgKChsIDwgMTApID8gJzAnIDogJycpICsgbCArICc8L3RkPic7DQoJCQkJfQ0KDQoJCQkJaHRtbCArPSAnPC90cj48L3RhYmxlPjwvZGl2Pic7DQoJCQl9DQoJCQlodG1sICs9ICc8L2RkPic7DQoNCgkJCS8vIFRpbWV6b25lDQoJCQlodG1sICs9ICc8ZHQgY2xhc3M9InVpX3RwaWNrZXJfdGltZXpvbmVfbGFiZWwiIGlkPSJ1aV90cGlja2VyX3RpbWV6b25lX2xhYmVsXycgKyBkcF9pZCArICciJyArDQoJCQkJCSgoby5zaG93VGltZXpvbmUpID8gJycgOiBub0Rpc3BsYXkpICsgJz4nICsgby50aW1lem9uZVRleHQgKyAnPC9kdD4nOw0KCQkJaHRtbCArPSAnPGRkIGNsYXNzPSJ1aV90cGlja2VyX3RpbWV6b25lIiBpZD0idWlfdHBpY2tlcl90aW1lem9uZV8nICsgZHBfaWQgKyAnIicJKw0KCQkJCQkJCSgoby5zaG93VGltZXpvbmUpID8gJycgOiBub0Rpc3BsYXkpICsgJz48L2RkPic7DQoNCgkJCWh0bWwgKz0gJzwvZGw+PC9kaXY+JzsNCgkJCSR0cCA9ICQoaHRtbCk7DQoNCgkJCQkvLyBpZiB3ZSBvbmx5IHdhbnQgdGltZSBwaWNrZXIuLi4NCgkJCWlmIChvLnRpbWVPbmx5ID09PSB0cnVlKSB7DQoJCQkJJHRwLnByZXBlbmQoDQoJCQkJCSc8ZGl2IGNsYXNzPSJ1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItYWxsIj4nICsNCgkJCQkJCSc8ZGl2IGNsYXNzPSJ1aS1kYXRlcGlja2VyLXRpdGxlIj4nICsgby50aW1lT25seVRpdGxlICsgJzwvZGl2PicgKw0KCQkJCQknPC9kaXY+Jyk7DQoJCQkJJGRwLmZpbmQoJy51aS1kYXRlcGlja2VyLWhlYWRlciwgLnVpLWRhdGVwaWNrZXItY2FsZW5kYXInKS5oaWRlKCk7DQoJCQl9DQoNCgkJCXRoaXMuaG91cl9zbGlkZXIgPSAkdHAuZmluZCgnI3VpX3RwaWNrZXJfaG91cl8nKyBkcF9pZCkuc2xpZGVyKHsNCgkJCQlvcmllbnRhdGlvbjogImhvcml6b250YWwiLA0KCQkJCXZhbHVlOiB0aGlzLmhvdXIsDQoJCQkJbWluOiBvLmhvdXJNaW4sDQoJCQkJbWF4OiBob3VyTWF4LA0KCQkJCXN0ZXA6IG8uc3RlcEhvdXIsDQoJCQkJc2xpZGU6IGZ1bmN0aW9uKGV2ZW50LCB1aSkgew0KCQkJCQl0cF9pbnN0LmhvdXJfc2xpZGVyLnNsaWRlciggIm9wdGlvbiIsICJ2YWx1ZSIsIHVpLnZhbHVlKTsNCgkJCQkJdHBfaW5zdC5fb25UaW1lQ2hhbmdlKCk7DQoJCQkJfQ0KCQkJfSk7DQoNCgkJCQ0KCQkJLy8gVXBkYXRlZCBieSBQZXRlciBNZWRlaXJvczoNCgkJCS8vIC0gUGFzcyBpbiBFdmVudCBhbmQgVUkgaW5zdGFuY2UgaW50byBzbGlkZSBmdW5jdGlvbg0KCQkJdGhpcy5taW51dGVfc2xpZGVyID0gJHRwLmZpbmQoJyN1aV90cGlja2VyX21pbnV0ZV8nKyBkcF9pZCkuc2xpZGVyKHsNCgkJCQlvcmllbnRhdGlvbjogImhvcml6b250YWwiLA0KCQkJCXZhbHVlOiB0aGlzLm1pbnV0ZSwNCgkJCQltaW46IG8ubWludXRlTWluLA0KCQkJCW1heDogbWluTWF4LA0KCQkJCXN0ZXA6IG8uc3RlcE1pbnV0ZSwNCgkJCQlzbGlkZTogZnVuY3Rpb24oZXZlbnQsIHVpKSB7DQoJCQkJCXRwX2luc3QubWludXRlX3NsaWRlci5zbGlkZXIoICJvcHRpb24iLCAidmFsdWUiLCB1aS52YWx1ZSk7DQoJCQkJCXRwX2luc3QuX29uVGltZUNoYW5nZSgpOw0KCQkJCX0NCgkJCX0pOw0KDQoJCQl0aGlzLnNlY29uZF9zbGlkZXIgPSAkdHAuZmluZCgnI3VpX3RwaWNrZXJfc2Vjb25kXycrIGRwX2lkKS5zbGlkZXIoew0KCQkJCW9yaWVudGF0aW9uOiAiaG9yaXpvbnRhbCIsDQoJCQkJdmFsdWU6IHRoaXMuc2Vjb25kLA0KCQkJCW1pbjogby5zZWNvbmRNaW4sDQoJCQkJbWF4OiBzZWNNYXgsDQoJCQkJc3RlcDogby5zdGVwU2Vjb25kLA0KCQkJCXNsaWRlOiBmdW5jdGlvbihldmVudCwgdWkpIHsNCgkJCQkJdHBfaW5zdC5zZWNvbmRfc2xpZGVyLnNsaWRlciggIm9wdGlvbiIsICJ2YWx1ZSIsIHVpLnZhbHVlKTsNCgkJCQkJdHBfaW5zdC5fb25UaW1lQ2hhbmdlKCk7DQoJCQkJfQ0KCQkJfSk7DQoNCgkJCXRoaXMubWlsbGlzZWNfc2xpZGVyID0gJHRwLmZpbmQoJyN1aV90cGlja2VyX21pbGxpc2VjXycrIGRwX2lkKS5zbGlkZXIoew0KCQkJCW9yaWVudGF0aW9uOiAiaG9yaXpvbnRhbCIsDQoJCQkJdmFsdWU6IHRoaXMubWlsbGlzZWMsDQoJCQkJbWluOiBvLm1pbGxpc2VjTWluLA0KCQkJCW1heDogbWlsbGlzZWNNYXgsDQoJCQkJc3RlcDogby5zdGVwTWlsbGlzZWMsDQoJCQkJc2xpZGU6IGZ1bmN0aW9uKGV2ZW50LCB1aSkgew0KCQkJCQl0cF9pbnN0Lm1pbGxpc2VjX3NsaWRlci5zbGlkZXIoICJvcHRpb24iLCAidmFsdWUiLCB1aS52YWx1ZSk7DQoJCQkJCXRwX2luc3QuX29uVGltZUNoYW5nZSgpOw0KCQkJCX0NCgkJCX0pOw0KDQoJCQl0aGlzLnRpbWV6b25lX3NlbGVjdCA9ICR0cC5maW5kKCcjdWlfdHBpY2tlcl90aW1lem9uZV8nKyBkcF9pZCkuYXBwZW5kKCc8c2VsZWN0Pjwvc2VsZWN0PicpLmZpbmQoInNlbGVjdCIpOw0KCQkJJC5mbi5hcHBlbmQuYXBwbHkodGhpcy50aW1lem9uZV9zZWxlY3QsDQoJCQkJJC5tYXAoby50aW1lem9uZUxpc3QsIGZ1bmN0aW9uKHZhbCwgaWR4KSB7DQoJCQkJCXJldHVybiAkKCI8b3B0aW9uIC8+IikNCgkJCQkJCS52YWwodHlwZW9mIHZhbCA9PSAib2JqZWN0IiA/IHZhbC52YWx1ZSA6IHZhbCkNCgkJCQkJCS50ZXh0KHR5cGVvZiB2YWwgPT0gIm9iamVjdCIgPyB2YWwubGFiZWwgOiB2YWwpOw0KCQkJCX0pDQoJCQkpOw0KCQkJdGhpcy50aW1lem9uZV9zZWxlY3QudmFsKCh0eXBlb2YgdGhpcy50aW1lem9uZSAhPSAidW5kZWZpbmVkIiAmJiB0aGlzLnRpbWV6b25lICE9IG51bGwgJiYgdGhpcy50aW1lem9uZSAhPSAiIikgPyB0aGlzLnRpbWV6b25lIDogby50aW1lem9uZSk7DQoJCQl0aGlzLnRpbWV6b25lX3NlbGVjdC5jaGFuZ2UoZnVuY3Rpb24oKSB7DQoJCQkJdHBfaW5zdC5fb25UaW1lQ2hhbmdlKCk7DQoJCQl9KTsNCg0KCQkJLy8gQWRkIGdyaWQgZnVuY3Rpb25hbGl0eQ0KCQkJaWYgKG8uc2hvd0hvdXIgJiYgby5ob3VyR3JpZCA+IDApIHsNCgkJCQlzaXplID0gMTAwICogaG91ckdyaWRTaXplICogby5ob3VyR3JpZCAvIChob3VyTWF4IC0gby5ob3VyTWluKTsNCg0KCQkJCSR0cC5maW5kKCIudWlfdHBpY2tlcl9ob3VyIHRhYmxlIikuY3NzKHsNCgkJCQkJd2lkdGg6IHNpemUgKyAiJSIsDQoJCQkJCW1hcmdpbkxlZnQ6IChzaXplIC8gKC0yICogaG91ckdyaWRTaXplKSkgKyAiJSIsDQoJCQkJCWJvcmRlckNvbGxhcHNlOiAnY29sbGFwc2UnDQoJCQkJfSkuZmluZCgidGQiKS5lYWNoKCBmdW5jdGlvbihpbmRleCkgew0KCQkJCQkkKHRoaXMpLmNsaWNrKGZ1bmN0aW9uKCkgew0KCQkJCQkJdmFyIGggPSAkKHRoaXMpLmh0bWwoKTsNCgkJCQkJCWlmKG8uYW1wbSkJew0KCQkJCQkJCXZhciBhcCA9IGguc3Vic3RyaW5nKDIpLnRvTG93ZXJDYXNlKCksDQoJCQkJCQkJCWFwaCA9IHBhcnNlSW50KGguc3Vic3RyaW5nKDAsMiksIDEwKTsNCgkJCQkJCQlpZiAoYXAgPT0gJ2EnKSB7DQoJCQkJCQkJCWlmIChhcGggPT0gMTIpIGggPSAwOw0KCQkJCQkJCQllbHNlIGggPSBhcGg7DQoJCQkJCQkJfSBlbHNlIGlmIChhcGggPT0gMTIpIGggPSAxMjsNCgkJCQkJCQllbHNlIGggPSBhcGggKyAxMjsNCgkJCQkJCX0NCgkJCQkJCXRwX2luc3QuaG91cl9zbGlkZXIuc2xpZGVyKCJvcHRpb24iLCAidmFsdWUiLCBoKTsNCgkJCQkJCXRwX2luc3QuX29uVGltZUNoYW5nZSgpOw0KCQkJCQkJdHBfaW5zdC5fb25TZWxlY3RIYW5kbGVyKCk7DQoJCQkJCX0pLmNzcyh7DQoJCQkJCQljdXJzb3I6ICdwb2ludGVyJywNCgkJCQkJCXdpZHRoOiAoMTAwIC8gaG91ckdyaWRTaXplKSArICclJywNCgkJCQkJCXRleHRBbGlnbjogJ2NlbnRlcicsDQoJCQkJCQlvdmVyZmxvdzogJ2hpZGRlbicNCgkJCQkJfSk7DQoJCQkJfSk7DQoJCQl9DQoNCgkJCWlmIChvLnNob3dNaW51dGUgJiYgby5taW51dGVHcmlkID4gMCkgew0KCQkJCXNpemUgPSAxMDAgKiBtaW51dGVHcmlkU2l6ZSAqIG8ubWludXRlR3JpZCAvIChtaW5NYXggLSBvLm1pbnV0ZU1pbik7DQoJCQkJJHRwLmZpbmQoIi51aV90cGlja2VyX21pbnV0ZSB0YWJsZSIpLmNzcyh7DQoJCQkJCXdpZHRoOiBzaXplICsgIiUiLA0KCQkJCQltYXJnaW5MZWZ0OiAoc2l6ZSAvICgtMiAqIG1pbnV0ZUdyaWRTaXplKSkgKyAiJSIsDQoJCQkJCWJvcmRlckNvbGxhcHNlOiAnY29sbGFwc2UnDQoJCQkJfSkuZmluZCgidGQiKS5lYWNoKGZ1bmN0aW9uKGluZGV4KSB7DQoJCQkJCSQodGhpcykuY2xpY2soZnVuY3Rpb24oKSB7DQoJCQkJCQl0cF9pbnN0Lm1pbnV0ZV9zbGlkZXIuc2xpZGVyKCJvcHRpb24iLCAidmFsdWUiLCAkKHRoaXMpLmh0bWwoKSk7DQoJCQkJCQl0cF9pbnN0Ll9vblRpbWVDaGFuZ2UoKTsNCgkJCQkJCXRwX2luc3QuX29uU2VsZWN0SGFuZGxlcigpOw0KCQkJCQl9KS5jc3Moew0KCQkJCQkJY3Vyc29yOiAncG9pbnRlcicsDQoJCQkJCQl3aWR0aDogKDEwMCAvIG1pbnV0ZUdyaWRTaXplKSArICclJywNCgkJCQkJCXRleHRBbGlnbjogJ2NlbnRlcicsDQoJCQkJCQlvdmVyZmxvdzogJ2hpZGRlbicNCgkJCQkJfSk7DQoJCQkJfSk7DQoJCQl9DQoNCgkJCWlmIChvLnNob3dTZWNvbmQgJiYgby5zZWNvbmRHcmlkID4gMCkgew0KCQkJCSR0cC5maW5kKCIudWlfdHBpY2tlcl9zZWNvbmQgdGFibGUiKS5jc3Moew0KCQkJCQl3aWR0aDogc2l6ZSArICIlIiwNCgkJCQkJbWFyZ2luTGVmdDogKHNpemUgLyAoLTIgKiBzZWNvbmRHcmlkU2l6ZSkpICsgIiUiLA0KCQkJCQlib3JkZXJDb2xsYXBzZTogJ2NvbGxhcHNlJw0KCQkJCX0pLmZpbmQoInRkIikuZWFjaChmdW5jdGlvbihpbmRleCkgew0KCQkJCQkkKHRoaXMpLmNsaWNrKGZ1bmN0aW9uKCkgew0KCQkJCQkJdHBfaW5zdC5zZWNvbmRfc2xpZGVyLnNsaWRlcigib3B0aW9uIiwgInZhbHVlIiwgJCh0aGlzKS5odG1sKCkpOw0KCQkJCQkJdHBfaW5zdC5fb25UaW1lQ2hhbmdlKCk7DQoJCQkJCQl0cF9pbnN0Ll9vblNlbGVjdEhhbmRsZXIoKTsNCgkJCQkJfSkuY3NzKHsNCgkJCQkJCWN1cnNvcjogJ3BvaW50ZXInLA0KCQkJCQkJd2lkdGg6ICgxMDAgLyBzZWNvbmRHcmlkU2l6ZSkgKyAnJScsDQoJCQkJCQl0ZXh0QWxpZ246ICdjZW50ZXInLA0KCQkJCQkJb3ZlcmZsb3c6ICdoaWRkZW4nDQoJCQkJCX0pOw0KCQkJCX0pOw0KCQkJfQ0KDQoJCQlpZiAoby5zaG93TWlsbGlzZWMgJiYgby5taWxsaXNlY0dyaWQgPiAwKSB7DQoJCQkJJHRwLmZpbmQoIi51aV90cGlja2VyX21pbGxpc2VjIHRhYmxlIikuY3NzKHsNCgkJCQkJd2lkdGg6IHNpemUgKyAiJSIsDQoJCQkJCW1hcmdpbkxlZnQ6IChzaXplIC8gKC0yICogbWlsbGlzZWNHcmlkU2l6ZSkpICsgIiUiLA0KCQkJCQlib3JkZXJDb2xsYXBzZTogJ2NvbGxhcHNlJw0KCQkJCX0pLmZpbmQoInRkIikuZWFjaChmdW5jdGlvbihpbmRleCkgew0KCQkJCQkkKHRoaXMpLmNsaWNrKGZ1bmN0aW9uKCkgew0KCQkJCQkJdHBfaW5zdC5taWxsaXNlY19zbGlkZXIuc2xpZGVyKCJvcHRpb24iLCAidmFsdWUiLCAkKHRoaXMpLmh0bWwoKSk7DQoJCQkJCQl0cF9pbnN0Ll9vblRpbWVDaGFuZ2UoKTsNCgkJCQkJCXRwX2luc3QuX29uU2VsZWN0SGFuZGxlcigpOw0KCQkJCQl9KS5jc3Moew0KCQkJCQkJY3Vyc29yOiAncG9pbnRlcicsDQoJCQkJCQl3aWR0aDogKDEwMCAvIG1pbGxpc2VjR3JpZFNpemUpICsgJyUnLA0KCQkJCQkJdGV4dEFsaWduOiAnY2VudGVyJywNCgkJCQkJCW92ZXJmbG93OiAnaGlkZGVuJw0KCQkJCQl9KTsNCgkJCQl9KTsNCgkJCX0NCg0KCQkJdmFyICRidXR0b25QYW5lbCA9ICRkcC5maW5kKCcudWktZGF0ZXBpY2tlci1idXR0b25wYW5lJyk7DQoJCQlpZiAoJGJ1dHRvblBhbmVsLmxlbmd0aCkgJGJ1dHRvblBhbmVsLmJlZm9yZSgkdHApOw0KCQkJZWxzZSAkZHAuYXBwZW5kKCR0cCk7DQoNCgkJCXRoaXMuJHRpbWVPYmogPSAkdHAuZmluZCgnI3VpX3RwaWNrZXJfdGltZV8nKyBkcF9pZCk7DQoNCgkJCWlmICh0aGlzLmluc3QgIT09IG51bGwpIHsNCgkJCQl2YXIgdGltZURlZmluZWQgPSB0aGlzLnRpbWVEZWZpbmVkOw0KCQkJCXRoaXMuX29uVGltZUNoYW5nZSgpOw0KCQkJCXRoaXMudGltZURlZmluZWQgPSB0aW1lRGVmaW5lZDsNCgkJCX0NCg0KCQkJLy9FbXVsYXRlIGRhdGVwaWNrZXIgb25TZWxlY3QgYmVoYXZpb3IuIENhbGwgb24gc2xpZGVzdG9wLg0KCQkJdmFyIG9uU2VsZWN0RGVsZWdhdGUgPSBmdW5jdGlvbigpIHsNCgkJCQl0cF9pbnN0Ll9vblNlbGVjdEhhbmRsZXIoKTsNCgkJCX07DQoJCQl0aGlzLmhvdXJfc2xpZGVyLmJpbmQoJ3NsaWRlc3RvcCcsb25TZWxlY3REZWxlZ2F0ZSk7DQoJCQl0aGlzLm1pbnV0ZV9zbGlkZXIuYmluZCgnc2xpZGVzdG9wJyxvblNlbGVjdERlbGVnYXRlKTsNCgkJCXRoaXMuc2Vjb25kX3NsaWRlci5iaW5kKCdzbGlkZXN0b3AnLG9uU2VsZWN0RGVsZWdhdGUpOw0KCQkJdGhpcy5taWxsaXNlY19zbGlkZXIuYmluZCgnc2xpZGVzdG9wJyxvblNlbGVjdERlbGVnYXRlKTsNCgkJCQ0KCQkJLy8gc2xpZGVBY2Nlc3MgaW50ZWdyYXRpb246IGh0dHA6Ly90cmVudHJpY2hhcmRzb24uY29tLzIwMTEvMTEvMTEvanF1ZXJ5LXVpLXNsaWRlcnMtYW5kLXRvdWNoLWFjY2Vzc2liaWxpdHkvDQoJCQlpZiAodGhpcy5fZGVmYXVsdHMuYWRkU2xpZGVyQWNjZXNzKXsNCgkJCQl2YXIgc2xpZGVyQWNjZXNzQXJncyA9IHRoaXMuX2RlZmF1bHRzLnNsaWRlckFjY2Vzc0FyZ3M7DQoJCQkJc2V0VGltZW91dChmdW5jdGlvbigpeyAvLyBmaXggZm9yIGlubGluZSBtb2RlDQoJCQkJCWlmKCR0cC5maW5kKCcudWktc2xpZGVyLWFjY2VzcycpLmxlbmd0aCA9PSAwKXsNCgkJCQkJCSR0cC5maW5kKCcudWktc2xpZGVyOnZpc2libGUnKS5zbGlkZXJBY2Nlc3Moc2xpZGVyQWNjZXNzQXJncyk7DQoNCgkJCQkJCS8vIGZpeCBhbnkgZ3JpZHMgc2luY2Ugc2xpZGVycyBhcmUgc2hvcnRlcg0KCQkJCQkJdmFyIHNsaWRlckFjY2Vzc1dpZHRoID0gJHRwLmZpbmQoJy51aS1zbGlkZXItYWNjZXNzOmVxKDApJykub3V0ZXJXaWR0aCh0cnVlKTsNCgkJCQkJCWlmKHNsaWRlckFjY2Vzc1dpZHRoKXsNCgkJCQkJCQkkdHAuZmluZCgndGFibGU6dmlzaWJsZScpLmVhY2goZnVuY3Rpb24oKXsNCgkJCQkJCQkJdmFyICRnID0gJCh0aGlzKSwNCgkJCQkJCQkJCW9sZFdpZHRoID0gJGcub3V0ZXJXaWR0aCgpLA0KCQkJCQkJCQkJb2xkTWFyZ2luTGVmdCA9ICRnLmNzcygnbWFyZ2luTGVmdCcpLnRvU3RyaW5nKCkucmVwbGFjZSgnJScsJycpLA0KCQkJCQkJCQkJbmV3V2lkdGggPSBvbGRXaWR0aCAtIHNsaWRlckFjY2Vzc1dpZHRoLA0KCQkJCQkJCQkJbmV3TWFyZ2luTGVmdCA9ICgob2xkTWFyZ2luTGVmdCAqIG5ld1dpZHRoKS9vbGRXaWR0aCkgKyAnJSc7DQoJCQkJCQkNCgkJCQkJCQkJJGcuY3NzKHsgd2lkdGg6IG5ld1dpZHRoLCBtYXJnaW5MZWZ0OiBuZXdNYXJnaW5MZWZ0IH0pOw0KCQkJCQkJCX0pOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfSwwKTsNCgkJCX0NCgkJCS8vIGVuZCBzbGlkZUFjY2VzcyBpbnRlZ3JhdGlvbg0KCQkJDQoJCX0NCgl9LA0KDQoJLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCgkvLyBUaGlzIGZ1bmN0aW9uIHRyaWVzIHRvIGxpbWl0IHRoZSBhYmlsaXR5IHRvIGdvIG91dHNpZGUgdGhlDQoJLy8gbWluL21heCBkYXRlIHJhbmdlDQoJLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCglfbGltaXRNaW5NYXhEYXRlVGltZTogZnVuY3Rpb24oZHBfaW5zdCwgYWRqdXN0U2xpZGVycyl7DQoJCXZhciBvID0gdGhpcy5fZGVmYXVsdHMsDQoJCQlkcF9kYXRlID0gbmV3IERhdGUoZHBfaW5zdC5zZWxlY3RlZFllYXIsIGRwX2luc3Quc2VsZWN0ZWRNb250aCwgZHBfaW5zdC5zZWxlY3RlZERheSk7DQoNCgkJaWYoIXRoaXMuX2RlZmF1bHRzLnNob3dUaW1lcGlja2VyKSByZXR1cm47IC8vIE5vIHRpbWUgc28gbm90aGluZyB0byBjaGVjayBoZXJlDQoNCgkJaWYoJC5kYXRlcGlja2VyLl9nZXQoZHBfaW5zdCwgJ21pbkRhdGVUaW1lJykgIT09IG51bGwgJiYgJC5kYXRlcGlja2VyLl9nZXQoZHBfaW5zdCwgJ21pbkRhdGVUaW1lJykgIT09IHVuZGVmaW5lZCAmJiBkcF9kYXRlKXsNCgkJCXZhciBtaW5EYXRlVGltZSA9ICQuZGF0ZXBpY2tlci5fZ2V0KGRwX2luc3QsICdtaW5EYXRlVGltZScpLA0KCQkJCW1pbkRhdGVUaW1lRGF0ZSA9IG5ldyBEYXRlKG1pbkRhdGVUaW1lLmdldEZ1bGxZZWFyKCksIG1pbkRhdGVUaW1lLmdldE1vbnRoKCksIG1pbkRhdGVUaW1lLmdldERhdGUoKSwgMCwgMCwgMCwgMCk7DQoNCgkJCWlmKHRoaXMuaG91ck1pbk9yaWdpbmFsID09PSBudWxsIHx8IHRoaXMubWludXRlTWluT3JpZ2luYWwgPT09IG51bGwgfHwgdGhpcy5zZWNvbmRNaW5PcmlnaW5hbCA9PT0gbnVsbCB8fCB0aGlzLm1pbGxpc2VjTWluT3JpZ2luYWwgPT09IG51bGwpew0KCQkJCXRoaXMuaG91ck1pbk9yaWdpbmFsID0gby5ob3VyTWluOw0KCQkJCXRoaXMubWludXRlTWluT3JpZ2luYWwgPSBvLm1pbnV0ZU1pbjsNCgkJCQl0aGlzLnNlY29uZE1pbk9yaWdpbmFsID0gby5zZWNvbmRNaW47DQoJCQkJdGhpcy5taWxsaXNlY01pbk9yaWdpbmFsID0gby5taWxsaXNlY01pbjsNCgkJCX0NCg0KCQkJaWYoZHBfaW5zdC5zZXR0aW5ncy50aW1lT25seSB8fCBtaW5EYXRlVGltZURhdGUuZ2V0VGltZSgpID09IGRwX2RhdGUuZ2V0VGltZSgpKSB7DQoJCQkJdGhpcy5fZGVmYXVsdHMuaG91ck1pbiA9IG1pbkRhdGVUaW1lLmdldEhvdXJzKCk7DQoJCQkJaWYgKHRoaXMuaG91ciA8PSB0aGlzLl9kZWZhdWx0cy5ob3VyTWluKSB7DQoJCQkJCXRoaXMuaG91ciA9IHRoaXMuX2RlZmF1bHRzLmhvdXJNaW47DQoJCQkJCXRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1pbiA9IG1pbkRhdGVUaW1lLmdldE1pbnV0ZXMoKTsNCgkJCQkJaWYgKHRoaXMubWludXRlIDw9IHRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1pbikgew0KCQkJCQkJdGhpcy5taW51dGUgPSB0aGlzLl9kZWZhdWx0cy5taW51dGVNaW47DQoJCQkJCQl0aGlzLl9kZWZhdWx0cy5zZWNvbmRNaW4gPSBtaW5EYXRlVGltZS5nZXRTZWNvbmRzKCk7DQoJCQkJCX0gZWxzZSBpZiAodGhpcy5zZWNvbmQgPD0gdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWluKXsNCgkJCQkJCXRoaXMuc2Vjb25kID0gdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWluOw0KCQkJCQkJdGhpcy5fZGVmYXVsdHMubWlsbGlzZWNNaW4gPSBtaW5EYXRlVGltZS5nZXRNaWxsaXNlY29uZHMoKTsNCgkJCQkJfSBlbHNlIHsNCgkJCQkJCWlmKHRoaXMubWlsbGlzZWMgPCB0aGlzLl9kZWZhdWx0cy5taWxsaXNlY01pbikNCgkJCQkJCQl0aGlzLm1pbGxpc2VjID0gdGhpcy5fZGVmYXVsdHMubWlsbGlzZWNNaW47DQoJCQkJCQl0aGlzLl9kZWZhdWx0cy5taWxsaXNlY01pbiA9IHRoaXMubWlsbGlzZWNNaW5PcmlnaW5hbDsNCgkJCQkJfQ0KCQkJCX0gZWxzZSB7DQoJCQkJCXRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1pbiA9IHRoaXMubWludXRlTWluT3JpZ2luYWw7DQoJCQkJCXRoaXMuX2RlZmF1bHRzLnNlY29uZE1pbiA9IHRoaXMuc2Vjb25kTWluT3JpZ2luYWw7DQoJCQkJCXRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWluID0gdGhpcy5taWxsaXNlY01pbk9yaWdpbmFsOw0KCQkJCX0NCgkJCX1lbHNlew0KCQkJCXRoaXMuX2RlZmF1bHRzLmhvdXJNaW4gPSB0aGlzLmhvdXJNaW5PcmlnaW5hbDsNCgkJCQl0aGlzLl9kZWZhdWx0cy5taW51dGVNaW4gPSB0aGlzLm1pbnV0ZU1pbk9yaWdpbmFsOw0KCQkJCXRoaXMuX2RlZmF1bHRzLnNlY29uZE1pbiA9IHRoaXMuc2Vjb25kTWluT3JpZ2luYWw7DQoJCQkJdGhpcy5fZGVmYXVsdHMubWlsbGlzZWNNaW4gPSB0aGlzLm1pbGxpc2VjTWluT3JpZ2luYWw7DQoJCQl9DQoJCX0NCg0KCQlpZigkLmRhdGVwaWNrZXIuX2dldChkcF9pbnN0LCAnbWF4RGF0ZVRpbWUnKSAhPT0gbnVsbCAmJiAkLmRhdGVwaWNrZXIuX2dldChkcF9pbnN0LCAnbWF4RGF0ZVRpbWUnKSAhPT0gdW5kZWZpbmVkICYmIGRwX2RhdGUpew0KCQkJdmFyIG1heERhdGVUaW1lID0gJC5kYXRlcGlja2VyLl9nZXQoZHBfaW5zdCwgJ21heERhdGVUaW1lJyksDQoJCQkJbWF4RGF0ZVRpbWVEYXRlID0gbmV3IERhdGUobWF4RGF0ZVRpbWUuZ2V0RnVsbFllYXIoKSwgbWF4RGF0ZVRpbWUuZ2V0TW9udGgoKSwgbWF4RGF0ZVRpbWUuZ2V0RGF0ZSgpLCAwLCAwLCAwLCAwKTsNCg0KCQkJaWYodGhpcy5ob3VyTWF4T3JpZ2luYWwgPT09IG51bGwgfHwgdGhpcy5taW51dGVNYXhPcmlnaW5hbCA9PT0gbnVsbCB8fCB0aGlzLnNlY29uZE1heE9yaWdpbmFsID09PSBudWxsKXsNCgkJCQl0aGlzLmhvdXJNYXhPcmlnaW5hbCA9IG8uaG91ck1heDsNCgkJCQl0aGlzLm1pbnV0ZU1heE9yaWdpbmFsID0gby5taW51dGVNYXg7DQoJCQkJdGhpcy5zZWNvbmRNYXhPcmlnaW5hbCA9IG8uc2Vjb25kTWF4Ow0KCQkJCXRoaXMubWlsbGlzZWNNYXhPcmlnaW5hbCA9IG8ubWlsbGlzZWNNYXg7DQoJCQl9DQoNCgkJCWlmKGRwX2luc3Quc2V0dGluZ3MudGltZU9ubHkgfHwgbWF4RGF0ZVRpbWVEYXRlLmdldFRpbWUoKSA9PSBkcF9kYXRlLmdldFRpbWUoKSl7DQoJCQkJdGhpcy5fZGVmYXVsdHMuaG91ck1heCA9IG1heERhdGVUaW1lLmdldEhvdXJzKCk7DQoJCQkJaWYgKHRoaXMuaG91ciA+PSB0aGlzLl9kZWZhdWx0cy5ob3VyTWF4KSB7DQoJCQkJCXRoaXMuaG91ciA9IHRoaXMuX2RlZmF1bHRzLmhvdXJNYXg7DQoJCQkJCXRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1heCA9IG1heERhdGVUaW1lLmdldE1pbnV0ZXMoKTsNCgkJCQkJaWYgKHRoaXMubWludXRlID49IHRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1heCkgew0KCQkJCQkJdGhpcy5taW51dGUgPSB0aGlzLl9kZWZhdWx0cy5taW51dGVNYXg7DQoJCQkJCQl0aGlzLl9kZWZhdWx0cy5zZWNvbmRNYXggPSBtYXhEYXRlVGltZS5nZXRTZWNvbmRzKCk7DQoJCQkJCX0gZWxzZSBpZiAodGhpcy5zZWNvbmQgPj0gdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWF4KSB7DQoJCQkJCQl0aGlzLnNlY29uZCA9IHRoaXMuX2RlZmF1bHRzLnNlY29uZE1heDsNCgkJCQkJCXRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWF4ID0gbWF4RGF0ZVRpbWUuZ2V0TWlsbGlzZWNvbmRzKCk7DQoJCQkJCX0gZWxzZSB7DQoJCQkJCQlpZih0aGlzLm1pbGxpc2VjID4gdGhpcy5fZGVmYXVsdHMubWlsbGlzZWNNYXgpIHRoaXMubWlsbGlzZWMgPSB0aGlzLl9kZWZhdWx0cy5taWxsaXNlY01heDsNCgkJCQkJCXRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWF4ID0gdGhpcy5taWxsaXNlY01heE9yaWdpbmFsOw0KCQkJCQl9DQoJCQkJfSBlbHNlIHsNCgkJCQkJdGhpcy5fZGVmYXVsdHMubWludXRlTWF4ID0gdGhpcy5taW51dGVNYXhPcmlnaW5hbDsNCgkJCQkJdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWF4ID0gdGhpcy5zZWNvbmRNYXhPcmlnaW5hbDsNCgkJCQkJdGhpcy5fZGVmYXVsdHMubWlsbGlzZWNNYXggPSB0aGlzLm1pbGxpc2VjTWF4T3JpZ2luYWw7DQoJCQkJfQ0KCQkJfWVsc2V7DQoJCQkJdGhpcy5fZGVmYXVsdHMuaG91ck1heCA9IHRoaXMuaG91ck1heE9yaWdpbmFsOw0KCQkJCXRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1heCA9IHRoaXMubWludXRlTWF4T3JpZ2luYWw7DQoJCQkJdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWF4ID0gdGhpcy5zZWNvbmRNYXhPcmlnaW5hbDsNCgkJCQl0aGlzLl9kZWZhdWx0cy5taWxsaXNlY01heCA9IHRoaXMubWlsbGlzZWNNYXhPcmlnaW5hbDsNCgkJCX0NCgkJfQ0KDQoJCWlmKGFkanVzdFNsaWRlcnMgIT09IHVuZGVmaW5lZCAmJiBhZGp1c3RTbGlkZXJzID09PSB0cnVlKXsNCgkJCXZhciBob3VyTWF4ID0gcGFyc2VJbnQoKHRoaXMuX2RlZmF1bHRzLmhvdXJNYXggLSAoKHRoaXMuX2RlZmF1bHRzLmhvdXJNYXggLSB0aGlzLl9kZWZhdWx0cy5ob3VyTWluKSAlIHRoaXMuX2RlZmF1bHRzLnN0ZXBIb3VyKSkgLDEwKSwNCiAgICAgICAgICAgICAgICBtaW5NYXggID0gcGFyc2VJbnQoKHRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1heCAtICgodGhpcy5fZGVmYXVsdHMubWludXRlTWF4IC0gdGhpcy5fZGVmYXVsdHMubWludXRlTWluKSAlIHRoaXMuX2RlZmF1bHRzLnN0ZXBNaW51dGUpKSAsMTApLA0KICAgICAgICAgICAgICAgIHNlY01heCAgPSBwYXJzZUludCgodGhpcy5fZGVmYXVsdHMuc2Vjb25kTWF4IC0gKCh0aGlzLl9kZWZhdWx0cy5zZWNvbmRNYXggLSB0aGlzLl9kZWZhdWx0cy5zZWNvbmRNaW4pICUgdGhpcy5fZGVmYXVsdHMuc3RlcFNlY29uZCkpICwxMCksDQoJCQkJbWlsbGlzZWNNYXggID0gcGFyc2VJbnQoKHRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWF4IC0gKCh0aGlzLl9kZWZhdWx0cy5taWxsaXNlY01heCAtIHRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWluKSAlIHRoaXMuX2RlZmF1bHRzLnN0ZXBNaWxsaXNlYykpICwxMCk7DQoNCgkJCWlmKHRoaXMuaG91cl9zbGlkZXIpDQoJCQkJdGhpcy5ob3VyX3NsaWRlci5zbGlkZXIoIm9wdGlvbiIsIHsgbWluOiB0aGlzLl9kZWZhdWx0cy5ob3VyTWluLCBtYXg6IGhvdXJNYXggfSkuc2xpZGVyKCd2YWx1ZScsIHRoaXMuaG91cik7DQoJCQlpZih0aGlzLm1pbnV0ZV9zbGlkZXIpDQoJCQkJdGhpcy5taW51dGVfc2xpZGVyLnNsaWRlcigib3B0aW9uIiwgeyBtaW46IHRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1pbiwgbWF4OiBtaW5NYXggfSkuc2xpZGVyKCd2YWx1ZScsIHRoaXMubWludXRlKTsNCgkJCWlmKHRoaXMuc2Vjb25kX3NsaWRlcikNCgkJCQl0aGlzLnNlY29uZF9zbGlkZXIuc2xpZGVyKCJvcHRpb24iLCB7IG1pbjogdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWluLCBtYXg6IHNlY01heCB9KS5zbGlkZXIoJ3ZhbHVlJywgdGhpcy5zZWNvbmQpOw0KCQkJaWYodGhpcy5taWxsaXNlY19zbGlkZXIpDQoJCQkJdGhpcy5taWxsaXNlY19zbGlkZXIuc2xpZGVyKCJvcHRpb24iLCB7IG1pbjogdGhpcy5fZGVmYXVsdHMubWlsbGlzZWNNaW4sIG1heDogbWlsbGlzZWNNYXggfSkuc2xpZGVyKCd2YWx1ZScsIHRoaXMubWlsbGlzZWMpOw0KCQl9DQoNCgl9LA0KDQoJDQoJLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCgkvLyB3aGVuIGEgc2xpZGVyIG1vdmVzLCBzZXQgdGhlIGludGVybmFsIHRpbWUuLi4NCgkvLyBvbiB0aW1lIGNoYW5nZSBpcyBhbHNvIGNhbGxlZCB3aGVuIHRoZSB0aW1lIGlzIHVwZGF0ZWQgaW4gdGhlIHRleHQgZmllbGQNCgkvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KCV9vblRpbWVDaGFuZ2U6IGZ1bmN0aW9uKCkgew0KCQl2YXIgaG91ciAgID0gKHRoaXMuaG91cl9zbGlkZXIpID8gdGhpcy5ob3VyX3NsaWRlci5zbGlkZXIoJ3ZhbHVlJykgOiBmYWxzZSwNCgkJCW1pbnV0ZSA9ICh0aGlzLm1pbnV0ZV9zbGlkZXIpID8gdGhpcy5taW51dGVfc2xpZGVyLnNsaWRlcigndmFsdWUnKSA6IGZhbHNlLA0KCQkJc2Vjb25kID0gKHRoaXMuc2Vjb25kX3NsaWRlcikgPyB0aGlzLnNlY29uZF9zbGlkZXIuc2xpZGVyKCd2YWx1ZScpIDogZmFsc2UsDQoJCQltaWxsaXNlYyA9ICh0aGlzLm1pbGxpc2VjX3NsaWRlcikgPyB0aGlzLm1pbGxpc2VjX3NsaWRlci5zbGlkZXIoJ3ZhbHVlJykgOiBmYWxzZSwNCgkJCXRpbWV6b25lID0gKHRoaXMudGltZXpvbmVfc2VsZWN0KSA/IHRoaXMudGltZXpvbmVfc2VsZWN0LnZhbCgpIDogZmFsc2UsDQoJCQlvID0gdGhpcy5fZGVmYXVsdHM7DQoNCgkJaWYgKHR5cGVvZihob3VyKSA9PSAnb2JqZWN0JykgaG91ciA9IGZhbHNlOw0KCQlpZiAodHlwZW9mKG1pbnV0ZSkgPT0gJ29iamVjdCcpIG1pbnV0ZSA9IGZhbHNlOw0KCQlpZiAodHlwZW9mKHNlY29uZCkgPT0gJ29iamVjdCcpIHNlY29uZCA9IGZhbHNlOw0KCQlpZiAodHlwZW9mKG1pbGxpc2VjKSA9PSAnb2JqZWN0JykgbWlsbGlzZWMgPSBmYWxzZTsNCgkJaWYgKHR5cGVvZih0aW1lem9uZSkgPT0gJ29iamVjdCcpIHRpbWV6b25lID0gZmFsc2U7DQoNCgkJaWYgKGhvdXIgIT09IGZhbHNlKSBob3VyID0gcGFyc2VJbnQoaG91ciwxMCk7DQoJCWlmIChtaW51dGUgIT09IGZhbHNlKSBtaW51dGUgPSBwYXJzZUludChtaW51dGUsMTApOw0KCQlpZiAoc2Vjb25kICE9PSBmYWxzZSkgc2Vjb25kID0gcGFyc2VJbnQoc2Vjb25kLDEwKTsNCgkJaWYgKG1pbGxpc2VjICE9PSBmYWxzZSkgbWlsbGlzZWMgPSBwYXJzZUludChtaWxsaXNlYywxMCk7DQoNCgkJdmFyIGFtcG0gPSBvW2hvdXIgPCAxMiA/ICdhbU5hbWVzJyA6ICdwbU5hbWVzJ11bMF07DQoNCgkJLy8gSWYgdGhlIHVwZGF0ZSB3YXMgZG9uZSBpbiB0aGUgaW5wdXQgZmllbGQsIHRoZSBpbnB1dCBmaWVsZCBzaG91bGQgbm90IGJlIHVwZGF0ZWQuDQoJCS8vIElmIHRoZSB1cGRhdGUgd2FzIGRvbmUgdXNpbmcgdGhlIHNsaWRlcnMsIHVwZGF0ZSB0aGUgaW5wdXQgZmllbGQuDQoJCXZhciBoYXNDaGFuZ2VkID0gKGhvdXIgIT0gdGhpcy5ob3VyIHx8IG1pbnV0ZSAhPSB0aGlzLm1pbnV0ZQ0KCQkJCXx8IHNlY29uZCAhPSB0aGlzLnNlY29uZCB8fCBtaWxsaXNlYyAhPSB0aGlzLm1pbGxpc2VjDQoJCQkJfHwgKHRoaXMuYW1wbS5sZW5ndGggPiAwDQoJCQkJICAgICYmIChob3VyIDwgMTIpICE9ICgkLmluQXJyYXkodGhpcy5hbXBtLnRvVXBwZXJDYXNlKCksIHRoaXMuYW1OYW1lcykgIT09IC0xKSkNCgkJCQl8fCB0aW1lem9uZSAhPSB0aGlzLnRpbWV6b25lKTsNCgkJDQoJCWlmIChoYXNDaGFuZ2VkKSB7DQoNCgkJCWlmIChob3VyICE9PSBmYWxzZSl0aGlzLmhvdXIgPSBob3VyOw0KCQkJaWYgKG1pbnV0ZSAhPT0gZmFsc2UpIHRoaXMubWludXRlID0gbWludXRlOw0KCQkJaWYgKHNlY29uZCAhPT0gZmFsc2UpIHRoaXMuc2Vjb25kID0gc2Vjb25kOw0KCQkJaWYgKG1pbGxpc2VjICE9PSBmYWxzZSkgdGhpcy5taWxsaXNlYyA9IG1pbGxpc2VjOw0KCQkJaWYgKHRpbWV6b25lICE9PSBmYWxzZSkgdGhpcy50aW1lem9uZSA9IHRpbWV6b25lOw0KCQkJDQoJCQlpZiAoIXRoaXMuaW5zdCkgdGhpcy5pbnN0ID0gJC5kYXRlcGlja2VyLl9nZXRJbnN0KHRoaXMuJGlucHV0WzBdKTsNCgkJCQ0KCQkJdGhpcy5fbGltaXRNaW5NYXhEYXRlVGltZSh0aGlzLmluc3QsIHRydWUpOw0KCQl9DQoJCWlmIChvLmFtcG0pIHRoaXMuYW1wbSA9IGFtcG07DQoJCQ0KCQkvL3RoaXMuX2Zvcm1hdFRpbWUoKTsNCgkJdGhpcy5mb3JtYXR0ZWRUaW1lID0gJC5kYXRlcGlja2VyLmZvcm1hdFRpbWUodGhpcy5fZGVmYXVsdHMudGltZUZvcm1hdCwgdGhpcywgdGhpcy5fZGVmYXVsdHMpOw0KCQlpZiAodGhpcy4kdGltZU9iaikgdGhpcy4kdGltZU9iai50ZXh0KHRoaXMuZm9ybWF0dGVkVGltZSArIG8udGltZVN1ZmZpeCk7DQoJCXRoaXMudGltZURlZmluZWQgPSB0cnVlOw0KCQlpZiAoaGFzQ2hhbmdlZCkgdGhpcy5fdXBkYXRlRGF0ZVRpbWUoKTsNCgl9LA0KICAgIA0KCS8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQoJLy8gY2FsbCBjdXN0b20gb25TZWxlY3QuIA0KCS8vIGJpbmQgdG8gc2xpZGVycyBzbGlkZXN0b3AsIGFuZCBncmlkIGNsaWNrLg0KCS8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQoJX29uU2VsZWN0SGFuZGxlcjogZnVuY3Rpb24oKSB7DQoJCXZhciBvblNlbGVjdCA9IHRoaXMuX2RlZmF1bHRzLm9uU2VsZWN0Ow0KCQl2YXIgaW5wdXRFbCA9IHRoaXMuJGlucHV0ID8gdGhpcy4kaW5wdXRbMF0gOiBudWxsOw0KCQlpZiAob25TZWxlY3QgJiYgaW5wdXRFbCkgew0KCQkJb25TZWxlY3QuYXBwbHkoaW5wdXRFbCwgW3RoaXMuZm9ybWF0dGVkRGF0ZVRpbWUsIHRoaXNdKTsNCgkJfQ0KCX0sDQoNCgkvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KCS8vIGxlZnQgZm9yIGFueSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eQ0KCS8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQoJX2Zvcm1hdFRpbWU6IGZ1bmN0aW9uKHRpbWUsIGZvcm1hdCkgew0KCQl0aW1lID0gdGltZSB8fCB7IGhvdXI6IHRoaXMuaG91ciwgbWludXRlOiB0aGlzLm1pbnV0ZSwgc2Vjb25kOiB0aGlzLnNlY29uZCwgbWlsbGlzZWM6IHRoaXMubWlsbGlzZWMsIGFtcG06IHRoaXMuYW1wbSwgdGltZXpvbmU6IHRoaXMudGltZXpvbmUgfTsNCgkJdmFyIHRtcHRpbWUgPSAoZm9ybWF0IHx8IHRoaXMuX2RlZmF1bHRzLnRpbWVGb3JtYXQpLnRvU3RyaW5nKCk7DQoNCgkJdG1wdGltZSA9ICQuZGF0ZXBpY2tlci5mb3JtYXRUaW1lKHRtcHRpbWUsIHRpbWUsIHRoaXMuX2RlZmF1bHRzKTsNCgkJDQoJCWlmIChhcmd1bWVudHMubGVuZ3RoKSByZXR1cm4gdG1wdGltZTsNCgkJZWxzZSB0aGlzLmZvcm1hdHRlZFRpbWUgPSB0bXB0aW1lOw0KCX0sDQoNCgkvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KCS8vIHVwZGF0ZSBvdXIgaW5wdXQgd2l0aCB0aGUgbmV3IGRhdGUgdGltZS4uDQoJLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCglfdXBkYXRlRGF0ZVRpbWU6IGZ1bmN0aW9uKGRwX2luc3QpIHsNCgkJZHBfaW5zdCA9IHRoaXMuaW5zdCB8fCBkcF9pbnN0Ow0KCQl2YXIgZHQgPSAkLmRhdGVwaWNrZXIuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KG5ldyBEYXRlKGRwX2luc3Quc2VsZWN0ZWRZZWFyLCBkcF9pbnN0LnNlbGVjdGVkTW9udGgsIGRwX2luc3Quc2VsZWN0ZWREYXkpKSwNCgkJCWRhdGVGbXQgPSAkLmRhdGVwaWNrZXIuX2dldChkcF9pbnN0LCAnZGF0ZUZvcm1hdCcpLA0KCQkJZm9ybWF0Q2ZnID0gJC5kYXRlcGlja2VyLl9nZXRGb3JtYXRDb25maWcoZHBfaW5zdCksDQoJCQl0aW1lQXZhaWxhYmxlID0gZHQgIT09IG51bGwgJiYgdGhpcy50aW1lRGVmaW5lZDsNCgkJdGhpcy5mb3JtYXR0ZWREYXRlID0gJC5kYXRlcGlja2VyLmZvcm1hdERhdGUoZGF0ZUZtdCwgKGR0ID09PSBudWxsID8gbmV3IERhdGUoKSA6IGR0KSwgZm9ybWF0Q2ZnKTsNCgkJdmFyIGZvcm1hdHRlZERhdGVUaW1lID0gdGhpcy5mb3JtYXR0ZWREYXRlOw0KCQlpZiAoZHBfaW5zdC5sYXN0VmFsICE9PSB1bmRlZmluZWQgJiYgKGRwX2luc3QubGFzdFZhbC5sZW5ndGggPiAwICYmIHRoaXMuJGlucHV0LnZhbCgpLmxlbmd0aCA9PT0gMCkpDQoJCQlyZXR1cm47DQoNCgkJaWYgKHRoaXMuX2RlZmF1bHRzLnRpbWVPbmx5ID09PSB0cnVlKSB7DQoJCQlmb3JtYXR0ZWREYXRlVGltZSA9IHRoaXMuZm9ybWF0dGVkVGltZTsNCgkJfSBlbHNlIGlmICh0aGlzLl9kZWZhdWx0cy50aW1lT25seSAhPT0gdHJ1ZSAmJiAodGhpcy5fZGVmYXVsdHMuYWx3YXlzU2V0VGltZSB8fCB0aW1lQXZhaWxhYmxlKSkgew0KCQkJZm9ybWF0dGVkRGF0ZVRpbWUgKz0gdGhpcy5fZGVmYXVsdHMuc2VwYXJhdG9yICsgdGhpcy5mb3JtYXR0ZWRUaW1lICsgdGhpcy5fZGVmYXVsdHMudGltZVN1ZmZpeDsNCgkJfQ0KDQoJCXRoaXMuZm9ybWF0dGVkRGF0ZVRpbWUgPSBmb3JtYXR0ZWREYXRlVGltZTsNCg0KCQlpZighdGhpcy5fZGVmYXVsdHMuc2hvd1RpbWVwaWNrZXIpIHsNCgkJCXRoaXMuJGlucHV0LnZhbCh0aGlzLmZvcm1hdHRlZERhdGUpOw0KCQl9IGVsc2UgaWYgKHRoaXMuJGFsdElucHV0ICYmIHRoaXMuX2RlZmF1bHRzLmFsdEZpZWxkVGltZU9ubHkgPT09IHRydWUpIHsNCgkJCXRoaXMuJGFsdElucHV0LnZhbCh0aGlzLmZvcm1hdHRlZFRpbWUpOw0KCQkJdGhpcy4kaW5wdXQudmFsKHRoaXMuZm9ybWF0dGVkRGF0ZSk7DQoJCX0gZWxzZSBpZih0aGlzLiRhbHRJbnB1dCkgew0KCQkJdGhpcy4kYWx0SW5wdXQudmFsKGZvcm1hdHRlZERhdGVUaW1lKTsNCgkJCXRoaXMuJGlucHV0LnZhbChmb3JtYXR0ZWREYXRlVGltZSk7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLiRpbnB1dC52YWwoZm9ybWF0dGVkRGF0ZVRpbWUpOw0KCQl9DQoJCQ0KCQl0aGlzLiRpbnB1dC50cmlnZ2VyKCJjaGFuZ2UiKTsNCgl9DQoNCn0pOw0KDQokLmZuLmV4dGVuZCh7DQoJLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCgkvLyBzaG9ydGhhbmQganVzdCB0byB1c2UgdGltZXBpY2tlci4uDQoJLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCgl0aW1lcGlja2VyOiBmdW5jdGlvbihvKSB7DQoJCW8gPSBvIHx8IHt9Ow0KCQl2YXIgdG1wX2FyZ3MgPSBhcmd1bWVudHM7DQoNCgkJaWYgKHR5cGVvZiBvID09ICdvYmplY3QnKSB0bXBfYXJnc1swXSA9ICQuZXh0ZW5kKG8sIHsgdGltZU9ubHk6IHRydWUgfSk7DQoNCgkJcmV0dXJuICQodGhpcykuZWFjaChmdW5jdGlvbigpIHsNCgkJCSQuZm4uZGF0ZXRpbWVwaWNrZXIuYXBwbHkoJCh0aGlzKSwgdG1wX2FyZ3MpOw0KCQl9KTsNCgl9LA0KDQoJLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCgkvLyBleHRlbmQgdGltZXBpY2tlciB0byBkYXRlcGlja2VyDQoJLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCglkYXRldGltZXBpY2tlcjogZnVuY3Rpb24obykgew0KCQlvID0gbyB8fCB7fTsNCgkJdmFyICRpbnB1dCA9IHRoaXMsDQoJCXRtcF9hcmdzID0gYXJndW1lbnRzOw0KDQoJCWlmICh0eXBlb2YobykgPT0gJ3N0cmluZycpew0KCQkJaWYobyA9PSAnZ2V0RGF0ZScpIA0KCQkJCXJldHVybiAkLmZuLmRhdGVwaWNrZXIuYXBwbHkoJCh0aGlzWzBdKSwgdG1wX2FyZ3MpOw0KCQkJZWxzZSANCgkJCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJCQl2YXIgJHQgPSAkKHRoaXMpOw0KCQkJCQkkdC5kYXRlcGlja2VyLmFwcGx5KCR0LCB0bXBfYXJncyk7DQoJCQkJfSk7DQoJCX0NCgkJZWxzZQ0KCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsNCgkJCQl2YXIgJHQgPSAkKHRoaXMpOw0KCQkJCSR0LmRhdGVwaWNrZXIoJC50aW1lcGlja2VyLl9uZXdJbnN0KCR0LCBvKS5fZGVmYXVsdHMpOw0KCQkJfSk7DQoJfQ0KfSk7DQoNCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQovLyBmb3JtYXQgdGhlIHRpbWUgYWxsIHByZXR0eS4uLiANCi8vIGZvcm1hdCA9IHN0cmluZyBmb3JtYXQgb2YgdGhlIHRpbWUNCi8vIHRpbWUgPSBhIHt9LCBub3QgYSBEYXRlKCkgZm9yIHRpbWV6b25lcw0KLy8gb3B0aW9ucyA9IGVzc2VudGlhbGx5IHRoZSByZWdpb25hbFtdLi4gYW1OYW1lcywgcG1OYW1lcywgYW1wbQ0KLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiQuZGF0ZXBpY2tlci5mb3JtYXRUaW1lID0gZnVuY3Rpb24oZm9ybWF0LCB0aW1lLCBvcHRpb25zKSB7DQoJb3B0aW9ucyA9IG9wdGlvbnMgfHwge307DQoJb3B0aW9ucyA9ICQuZXh0ZW5kKCQudGltZXBpY2tlci5fZGVmYXVsdHMsIG9wdGlvbnMpOw0KCXRpbWUgPSAkLmV4dGVuZCh7aG91cjowLCBtaW51dGU6MCwgc2Vjb25kOjAsIG1pbGxpc2VjOjAsIHRpbWV6b25lOicrMDAwMCd9LCB0aW1lKTsNCgkNCgl2YXIgdG1wdGltZSA9IGZvcm1hdDsNCgl2YXIgYW1wbU5hbWUgPSBvcHRpb25zWydhbU5hbWVzJ11bMF07DQoNCgl2YXIgaG91ciA9IHBhcnNlSW50KHRpbWUuaG91ciwgMTApOw0KCWlmIChvcHRpb25zLmFtcG0pIHsNCgkJaWYgKGhvdXIgPiAxMSl7DQoJCQlhbXBtTmFtZSA9IG9wdGlvbnNbJ3BtTmFtZXMnXVswXTsNCgkJCWlmKGhvdXIgPiAxMikNCgkJCQlob3VyID0gaG91ciAlIDEyOw0KCQl9DQoJCWlmIChob3VyID09PSAwKQ0KCQkJaG91ciA9IDEyOw0KCX0NCgl0bXB0aW1lID0gdG1wdGltZS5yZXBsYWNlKC8oPzpoaD98bW0/fHNzP3xbdFRdezEsMn18W2x6XSkvZywgZnVuY3Rpb24obWF0Y2gpIHsNCgkJc3dpdGNoIChtYXRjaC50b0xvd2VyQ2FzZSgpKSB7DQoJCQljYXNlICdoaCc6IHJldHVybiAoJzAnICsgaG91cikuc2xpY2UoLTIpOw0KCQkJY2FzZSAnaCc6ICByZXR1cm4gaG91cjsNCgkJCWNhc2UgJ21tJzogcmV0dXJuICgnMCcgKyB0aW1lLm1pbnV0ZSkuc2xpY2UoLTIpOw0KCQkJY2FzZSAnbSc6ICByZXR1cm4gdGltZS5taW51dGU7DQoJCQljYXNlICdzcyc6IHJldHVybiAoJzAnICsgdGltZS5zZWNvbmQpLnNsaWNlKC0yKTsNCgkJCWNhc2UgJ3MnOiAgcmV0dXJuIHRpbWUuc2Vjb25kOw0KCQkJY2FzZSAnbCc6ICByZXR1cm4gKCcwMCcgKyB0aW1lLm1pbGxpc2VjKS5zbGljZSgtMyk7DQoJCQljYXNlICd6JzogIHJldHVybiB0aW1lLnRpbWV6b25lOw0KCQkJY2FzZSAndCc6IGNhc2UgJ3R0JzoNCgkJCQlpZiAob3B0aW9ucy5hbXBtKSB7DQoJCQkJCWlmIChtYXRjaC5sZW5ndGggPT0gMSkNCgkJCQkJCWFtcG1OYW1lID0gYW1wbU5hbWUuY2hhckF0KDApOw0KCQkJCQlyZXR1cm4gbWF0Y2guY2hhckF0KDApID09ICdUJyA/IGFtcG1OYW1lLnRvVXBwZXJDYXNlKCkgOiBhbXBtTmFtZS50b0xvd2VyQ2FzZSgpOw0KCQkJCX0NCgkJCQlyZXR1cm4gJyc7DQoJCX0NCgl9KTsNCg0KCXRtcHRpbWUgPSAkLnRyaW0odG1wdGltZSk7DQoJcmV0dXJuIHRtcHRpbWU7DQp9DQoNCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQovLyB0aGUgYmFkIGhhY2sgOi8gb3ZlcnJpZGUgZGF0ZXBpY2tlciBzbyBpdCBkb2VzbnQgY2xvc2Ugb24gc2VsZWN0DQovLyBpbnNwaXJlZDogaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMjUyNTEyL2pxdWVyeS1kYXRlcGlja2VyLXByZXZlbnQtY2xvc2luZy1waWNrZXItd2hlbi1jbGlja2luZy1hLWRhdGUvMTc2MjM3OCMxNzYyMzc4DQovLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KJC5kYXRlcGlja2VyLl9iYXNlX3NlbGVjdERhdGUgPSAkLmRhdGVwaWNrZXIuX3NlbGVjdERhdGU7DQokLmRhdGVwaWNrZXIuX3NlbGVjdERhdGUgPSBmdW5jdGlvbiAoaWQsIGRhdGVTdHIpIHsNCgl2YXIgaW5zdCA9IHRoaXMuX2dldEluc3QoJChpZClbMF0pLA0KCQl0cF9pbnN0ID0gdGhpcy5fZ2V0KGluc3QsICd0aW1lcGlja2VyJyk7DQoNCglpZiAodHBfaW5zdCkgew0KCQl0cF9pbnN0Ll9saW1pdE1pbk1heERhdGVUaW1lKGluc3QsIHRydWUpOw0KCQlpbnN0LmlubGluZSA9IGluc3Quc3RheV9vcGVuID0gdHJ1ZTsNCgkJLy9UaGlzIHdheSB0aGUgb25TZWxlY3QgaGFuZGxlciBjYWxsZWQgZnJvbSBjYWxlbmRhcnBpY2tlciBnZXQgdGhlIGZ1bGwgZGF0ZVRpbWUNCgkJdGhpcy5fYmFzZV9zZWxlY3REYXRlKGlkLCBkYXRlU3RyKTsNCgkJaW5zdC5pbmxpbmUgPSBpbnN0LnN0YXlfb3BlbiA9IGZhbHNlOw0KCQl0aGlzLl9ub3RpZnlDaGFuZ2UoaW5zdCk7DQoJCXRoaXMuX3VwZGF0ZURhdGVwaWNrZXIoaW5zdCk7DQoJfQ0KCWVsc2UgdGhpcy5fYmFzZV9zZWxlY3REYXRlKGlkLCBkYXRlU3RyKTsNCn07DQoNCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQovLyBzZWNvbmQgYmFkIGhhY2sgOi8gb3ZlcnJpZGUgZGF0ZXBpY2tlciBzbyBpdCB0cmlnZ2VycyBhbiBldmVudCB3aGVuIGNoYW5naW5nIHRoZSBpbnB1dCBmaWVsZA0KLy8gYW5kIGRvZXMgbm90IHJlZHJhdyB0aGUgZGF0ZXBpY2tlciBvbiBldmVyeSBzZWxlY3REYXRlIGV2ZW50DQovLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KJC5kYXRlcGlja2VyLl9iYXNlX3VwZGF0ZURhdGVwaWNrZXIgPSAkLmRhdGVwaWNrZXIuX3VwZGF0ZURhdGVwaWNrZXI7DQokLmRhdGVwaWNrZXIuX3VwZGF0ZURhdGVwaWNrZXIgPSBmdW5jdGlvbihpbnN0KSB7DQoNCgkvLyBkb24ndCBwb3B1cCB0aGUgZGF0ZXBpY2tlciBpZiB0aGVyZSBpcyBhbm90aGVyIGluc3RhbmNlIGFscmVhZHkgb3BlbmVkDQoJdmFyIGlucHV0ID0gaW5zdC5pbnB1dFswXTsNCglpZigkLmRhdGVwaWNrZXIuX2N1ckluc3QgJiYNCgkgICAkLmRhdGVwaWNrZXIuX2N1ckluc3QgIT0gaW5zdCAmJg0KCSAgICQuZGF0ZXBpY2tlci5fZGF0ZXBpY2tlclNob3dpbmcgJiYNCgkgICAkLmRhdGVwaWNrZXIuX2xhc3RJbnB1dCAhPSBpbnB1dCkgew0KCQlyZXR1cm47DQoJfQ0KDQoJaWYgKHR5cGVvZihpbnN0LnN0YXlfb3BlbikgIT09ICdib29sZWFuJyB8fCBpbnN0LnN0YXlfb3BlbiA9PT0gZmFsc2UpIHsNCgkJCQkNCgkJdGhpcy5fYmFzZV91cGRhdGVEYXRlcGlja2VyKGluc3QpOw0KCQkNCgkJLy8gUmVsb2FkIHRoZSB0aW1lIGNvbnRyb2wgd2hlbiBjaGFuZ2luZyBzb21ldGhpbmcgaW4gdGhlIGlucHV0IHRleHQgZmllbGQuDQoJCXZhciB0cF9pbnN0ID0gdGhpcy5fZ2V0KGluc3QsICd0aW1lcGlja2VyJyk7DQoJCWlmKHRwX2luc3QpIHRwX2luc3QuX2FkZFRpbWVQaWNrZXIoaW5zdCk7DQoJfQ0KfTsNCg0KLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCi8vIHRoaXJkIGJhZCBoYWNrIDovIG92ZXJyaWRlIGRhdGVwaWNrZXIgc28gaXQgYWxsb3dzIHNwYWNlcyBhbmQgY29sb24gaW4gdGhlIGlucHV0IGZpZWxkDQovLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KJC5kYXRlcGlja2VyLl9iYXNlX2RvS2V5UHJlc3MgPSAkLmRhdGVwaWNrZXIuX2RvS2V5UHJlc3M7DQokLmRhdGVwaWNrZXIuX2RvS2V5UHJlc3MgPSBmdW5jdGlvbihldmVudCkgew0KCXZhciBpbnN0ID0gJC5kYXRlcGlja2VyLl9nZXRJbnN0KGV2ZW50LnRhcmdldCksDQoJCXRwX2luc3QgPSAkLmRhdGVwaWNrZXIuX2dldChpbnN0LCAndGltZXBpY2tlcicpOw0KDQoJaWYgKHRwX2luc3QpIHsNCgkJaWYgKCQuZGF0ZXBpY2tlci5fZ2V0KGluc3QsICdjb25zdHJhaW5JbnB1dCcpKSB7DQoJCQl2YXIgYW1wbSA9IHRwX2luc3QuX2RlZmF1bHRzLmFtcG0sDQoJCQkJZGF0ZUNoYXJzID0gJC5kYXRlcGlja2VyLl9wb3NzaWJsZUNoYXJzKCQuZGF0ZXBpY2tlci5fZ2V0KGluc3QsICdkYXRlRm9ybWF0JykpLA0KCQkJCWRhdGV0aW1lQ2hhcnMgPSB0cF9pbnN0Ll9kZWZhdWx0cy50aW1lRm9ybWF0LnRvU3RyaW5nKCkNCgkJCQkJCQkJLnJlcGxhY2UoL1tobXNdL2csICcnKQ0KCQkJCQkJCQkucmVwbGFjZSgvVFQvZywgYW1wbSA/ICdBUE0nIDogJycpDQoJCQkJCQkJCS5yZXBsYWNlKC9UdC9nLCBhbXBtID8gJ0FhUHBNbScgOiAnJykNCgkJCQkJCQkJLnJlcGxhY2UoL3RUL2csIGFtcG0gPyAnQWFQcE1tJyA6ICcnKQ0KCQkJCQkJCQkucmVwbGFjZSgvVC9nLCBhbXBtID8gJ0FQJyA6ICcnKQ0KCQkJCQkJCQkucmVwbGFjZSgvdHQvZywgYW1wbSA/ICdhcG0nIDogJycpDQoJCQkJCQkJCS5yZXBsYWNlKC90L2csIGFtcG0gPyAnYXAnIDogJycpICsNCgkJCQkJCQkJIiAiICsNCgkJCQkJCQkJdHBfaW5zdC5fZGVmYXVsdHMuc2VwYXJhdG9yICsNCgkJCQkJCQkJdHBfaW5zdC5fZGVmYXVsdHMudGltZVN1ZmZpeCArDQoJCQkJCQkJCSh0cF9pbnN0Ll9kZWZhdWx0cy5zaG93VGltZXpvbmUgPyB0cF9pbnN0Ll9kZWZhdWx0cy50aW1lem9uZUxpc3Quam9pbignJykgOiAnJykgKw0KCQkJCQkJCQkodHBfaW5zdC5fZGVmYXVsdHMuYW1OYW1lcy5qb2luKCcnKSkgKw0KCQkJCQkJCQkodHBfaW5zdC5fZGVmYXVsdHMucG1OYW1lcy5qb2luKCcnKSkgKw0KCQkJCQkJCQlkYXRlQ2hhcnMsDQoJCQkJY2hyID0gU3RyaW5nLmZyb21DaGFyQ29kZShldmVudC5jaGFyQ29kZSA9PT0gdW5kZWZpbmVkID8gZXZlbnQua2V5Q29kZSA6IGV2ZW50LmNoYXJDb2RlKTsNCgkJCXJldHVybiBldmVudC5jdHJsS2V5IHx8IChjaHIgPCAnICcgfHwgIWRhdGVDaGFycyB8fCBkYXRldGltZUNoYXJzLmluZGV4T2YoY2hyKSA+IC0xKTsNCgkJfQ0KCX0NCgkNCglyZXR1cm4gJC5kYXRlcGlja2VyLl9iYXNlX2RvS2V5UHJlc3MoZXZlbnQpOw0KfTsNCg0KLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCi8vIE92ZXJyaWRlIGtleSB1cCBldmVudCB0byBzeW5jIG1hbnVhbCBpbnB1dCBjaGFuZ2VzLg0KLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiQuZGF0ZXBpY2tlci5fYmFzZV9kb0tleVVwID0gJC5kYXRlcGlja2VyLl9kb0tleVVwOw0KJC5kYXRlcGlja2VyLl9kb0tleVVwID0gZnVuY3Rpb24gKGV2ZW50KSB7DQoJdmFyIGluc3QgPSAkLmRhdGVwaWNrZXIuX2dldEluc3QoZXZlbnQudGFyZ2V0KSwNCgkJdHBfaW5zdCA9ICQuZGF0ZXBpY2tlci5fZ2V0KGluc3QsICd0aW1lcGlja2VyJyk7DQoNCglpZiAodHBfaW5zdCkgew0KCQlpZiAodHBfaW5zdC5fZGVmYXVsdHMudGltZU9ubHkgJiYgKGluc3QuaW5wdXQudmFsKCkgIT0gaW5zdC5sYXN0VmFsKSkgew0KCQkJdHJ5IHsNCgkJCQkkLmRhdGVwaWNrZXIuX3VwZGF0ZURhdGVwaWNrZXIoaW5zdCk7DQoJCQl9DQoJCQljYXRjaCAoZXJyKSB7DQoJCQkJJC5kYXRlcGlja2VyLmxvZyhlcnIpOw0KCQkJfQ0KCQl9DQoJfQ0KDQoJcmV0dXJuICQuZGF0ZXBpY2tlci5fYmFzZV9kb0tleVVwKGV2ZW50KTsNCn07DQoNCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQovLyBvdmVycmlkZSAiVG9kYXkiIGJ1dHRvbiB0byBhbHNvIGdyYWIgdGhlIHRpbWUuDQovLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KJC5kYXRlcGlja2VyLl9iYXNlX2dvdG9Ub2RheSA9ICQuZGF0ZXBpY2tlci5fZ290b1RvZGF5Ow0KJC5kYXRlcGlja2VyLl9nb3RvVG9kYXkgPSBmdW5jdGlvbihpZCkgew0KCXZhciBpbnN0ID0gdGhpcy5fZ2V0SW5zdCgkKGlkKVswXSksDQoJCSRkcCA9IGluc3QuZHBEaXY7DQoJdGhpcy5fYmFzZV9nb3RvVG9kYXkoaWQpOw0KCXZhciBub3cgPSBuZXcgRGF0ZSgpOw0KCXZhciB0cF9pbnN0ID0gdGhpcy5fZ2V0KGluc3QsICd0aW1lcGlja2VyJyk7DQoJaWYgKHRwX2luc3QgJiYgdHBfaW5zdC5fZGVmYXVsdHMuc2hvd1RpbWV6b25lICYmIHRwX2luc3QudGltZXpvbmVfc2VsZWN0KSB7DQoJCXZhciB0em9mZnNldCA9IG5vdy5nZXRUaW1lem9uZU9mZnNldCgpOyAvLyBJZiArMDEwMCwgcmV0dXJucyAtNjANCgkJdmFyIHR6c2lnbiA9IHR6b2Zmc2V0ID4gMCA/ICctJyA6ICcrJzsNCgkJdHpvZmZzZXQgPSBNYXRoLmFicyh0em9mZnNldCk7DQoJCXZhciB0em1pbiA9IHR6b2Zmc2V0ICUgNjA7DQoJCXR6b2Zmc2V0ID0gdHpzaWduICsgKCcwJyArICh0em9mZnNldCAtIHR6bWluKSAvIDYwKS5zbGljZSgtMikgKyAoJzAnICsgdHptaW4pLnNsaWNlKC0yKTsNCgkJaWYgKHRwX2luc3QuX2RlZmF1bHRzLnRpbWV6b25lSXNvODYwOSkNCgkJCXR6b2Zmc2V0ID0gdHpvZmZzZXQuc3Vic3RyaW5nKDAsIDMpICsgJzonICsgdHpvZmZzZXQuc3Vic3RyaW5nKDMpOw0KCQl0cF9pbnN0LnRpbWV6b25lX3NlbGVjdC52YWwodHpvZmZzZXQpOw0KCX0NCgl0aGlzLl9zZXRUaW1lKGluc3QsIG5vdyk7DQoJJCggJy51aS1kYXRlcGlja2VyLXRvZGF5JywgJGRwKS5jbGljaygpOyANCn07DQoNCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQovLyBEaXNhYmxlICYgZW5hYmxlIHRoZSBUaW1lIGluIHRoZSBkYXRldGltZXBpY2tlcg0KLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiQuZGF0ZXBpY2tlci5fZGlzYWJsZVRpbWVwaWNrZXJEYXRlcGlja2VyID0gZnVuY3Rpb24odGFyZ2V0LCBkYXRlLCB3aXRoRGF0ZSkgew0KCXZhciBpbnN0ID0gdGhpcy5fZ2V0SW5zdCh0YXJnZXQpLA0KCXRwX2luc3QgPSB0aGlzLl9nZXQoaW5zdCwgJ3RpbWVwaWNrZXInKTsNCgkkKHRhcmdldCkuZGF0ZXBpY2tlcignZ2V0RGF0ZScpOyAvLyBJbml0IHNlbGVjdGVkW1llYXJ8TW9udGh8RGF5XQ0KCWlmICh0cF9pbnN0KSB7DQoJCXRwX2luc3QuX2RlZmF1bHRzLnNob3dUaW1lcGlja2VyID0gZmFsc2U7DQoJCXRwX2luc3QuX3VwZGF0ZURhdGVUaW1lKGluc3QpOw0KCX0NCn07DQoNCiQuZGF0ZXBpY2tlci5fZW5hYmxlVGltZXBpY2tlckRhdGVwaWNrZXIgPSBmdW5jdGlvbih0YXJnZXQsIGRhdGUsIHdpdGhEYXRlKSB7DQoJdmFyIGluc3QgPSB0aGlzLl9nZXRJbnN0KHRhcmdldCksDQoJdHBfaW5zdCA9IHRoaXMuX2dldChpbnN0LCAndGltZXBpY2tlcicpOw0KCSQodGFyZ2V0KS5kYXRlcGlja2VyKCdnZXREYXRlJyk7IC8vIEluaXQgc2VsZWN0ZWRbWWVhcnxNb250aHxEYXldDQoJaWYgKHRwX2luc3QpIHsNCgkJdHBfaW5zdC5fZGVmYXVsdHMuc2hvd1RpbWVwaWNrZXIgPSB0cnVlOw0KCQl0cF9pbnN0Ll9hZGRUaW1lUGlja2VyKGluc3QpOyAvLyBDb3VsZCBiZSBkaXNhYmxlZCBvbiBwYWdlIGxvYWQNCgkJdHBfaW5zdC5fdXBkYXRlRGF0ZVRpbWUoaW5zdCk7DQoJfQ0KfTsNCg0KLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCi8vIENyZWF0ZSBvdXIgb3duIHNldCB0aW1lIGZ1bmN0aW9uDQovLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KJC5kYXRlcGlja2VyLl9zZXRUaW1lID0gZnVuY3Rpb24oaW5zdCwgZGF0ZSkgew0KCXZhciB0cF9pbnN0ID0gdGhpcy5fZ2V0KGluc3QsICd0aW1lcGlja2VyJyk7DQoJaWYgKHRwX2luc3QpIHsNCgkJdmFyIGRlZmF1bHRzID0gdHBfaW5zdC5fZGVmYXVsdHMsDQoJCQkvLyBjYWxsaW5nIF9zZXRUaW1lIHdpdGggbm8gZGF0ZSBzZXRzIHRpbWUgdG8gZGVmYXVsdHMNCgkJCWhvdXIgPSBkYXRlID8gZGF0ZS5nZXRIb3VycygpIDogZGVmYXVsdHMuaG91ciwNCgkJCW1pbnV0ZSA9IGRhdGUgPyBkYXRlLmdldE1pbnV0ZXMoKSA6IGRlZmF1bHRzLm1pbnV0ZSwNCgkJCXNlY29uZCA9IGRhdGUgPyBkYXRlLmdldFNlY29uZHMoKSA6IGRlZmF1bHRzLnNlY29uZCwNCgkJCW1pbGxpc2VjID0gZGF0ZSA/IGRhdGUuZ2V0TWlsbGlzZWNvbmRzKCkgOiBkZWZhdWx0cy5taWxsaXNlYzsNCg0KCQkvL2NoZWNrIGlmIHdpdGhpbiBtaW4vbWF4IHRpbWVzLi4NCgkJaWYgKChob3VyIDwgZGVmYXVsdHMuaG91ck1pbiB8fCBob3VyID4gZGVmYXVsdHMuaG91ck1heCkgfHwgKG1pbnV0ZSA8IGRlZmF1bHRzLm1pbnV0ZU1pbiB8fCBtaW51dGUgPiBkZWZhdWx0cy5taW51dGVNYXgpIHx8IChzZWNvbmQgPCBkZWZhdWx0cy5zZWNvbmRNaW4gfHwgc2Vjb25kID4gZGVmYXVsdHMuc2Vjb25kTWF4KSB8fCAobWlsbGlzZWMgPCBkZWZhdWx0cy5taWxsaXNlY01pbiB8fCBtaWxsaXNlYyA+IGRlZmF1bHRzLm1pbGxpc2VjTWF4KSkgew0KCQkJaG91ciA9IGRlZmF1bHRzLmhvdXJNaW47DQoJCQltaW51dGUgPSBkZWZhdWx0cy5taW51dGVNaW47DQoJCQlzZWNvbmQgPSBkZWZhdWx0cy5zZWNvbmRNaW47DQoJCQltaWxsaXNlYyA9IGRlZmF1bHRzLm1pbGxpc2VjTWluOw0KCQl9DQoNCgkJdHBfaW5zdC5ob3VyID0gaG91cjsNCgkJdHBfaW5zdC5taW51dGUgPSBtaW51dGU7DQoJCXRwX2luc3Quc2Vjb25kID0gc2Vjb25kOw0KCQl0cF9pbnN0Lm1pbGxpc2VjID0gbWlsbGlzZWM7DQoNCgkJaWYgKHRwX2luc3QuaG91cl9zbGlkZXIpIHRwX2luc3QuaG91cl9zbGlkZXIuc2xpZGVyKCd2YWx1ZScsIGhvdXIpOw0KCQlpZiAodHBfaW5zdC5taW51dGVfc2xpZGVyKSB0cF9pbnN0Lm1pbnV0ZV9zbGlkZXIuc2xpZGVyKCd2YWx1ZScsIG1pbnV0ZSk7DQoJCWlmICh0cF9pbnN0LnNlY29uZF9zbGlkZXIpIHRwX2luc3Quc2Vjb25kX3NsaWRlci5zbGlkZXIoJ3ZhbHVlJywgc2Vjb25kKTsNCgkJaWYgKHRwX2luc3QubWlsbGlzZWNfc2xpZGVyKSB0cF9pbnN0Lm1pbGxpc2VjX3NsaWRlci5zbGlkZXIoJ3ZhbHVlJywgbWlsbGlzZWMpOw0KDQoJCXRwX2luc3QuX29uVGltZUNoYW5nZSgpOw0KCQl0cF9pbnN0Ll91cGRhdGVEYXRlVGltZShpbnN0KTsNCgl9DQp9Ow0KDQovLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLy8gQ3JlYXRlIG5ldyBwdWJsaWMgbWV0aG9kIHRvIHNldCBvbmx5IHRpbWUsIGNhbGxhYmxlIGFzICQoKS5kYXRlcGlja2VyKCdzZXRUaW1lJywgZGF0ZSkNCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQokLmRhdGVwaWNrZXIuX3NldFRpbWVEYXRlcGlja2VyID0gZnVuY3Rpb24odGFyZ2V0LCBkYXRlLCB3aXRoRGF0ZSkgew0KCXZhciBpbnN0ID0gdGhpcy5fZ2V0SW5zdCh0YXJnZXQpLA0KCQl0cF9pbnN0ID0gdGhpcy5fZ2V0KGluc3QsICd0aW1lcGlja2VyJyk7DQoNCglpZiAodHBfaW5zdCkgew0KCQl0aGlzLl9zZXREYXRlRnJvbUZpZWxkKGluc3QpOw0KCQl2YXIgdHBfZGF0ZTsNCgkJaWYgKGRhdGUpIHsNCgkJCWlmICh0eXBlb2YgZGF0ZSA9PSAic3RyaW5nIikgew0KCQkJCXRwX2luc3QuX3BhcnNlVGltZShkYXRlLCB3aXRoRGF0ZSk7DQoJCQkJdHBfZGF0ZSA9IG5ldyBEYXRlKCk7DQoJCQkJdHBfZGF0ZS5zZXRIb3Vycyh0cF9pbnN0LmhvdXIsIHRwX2luc3QubWludXRlLCB0cF9pbnN0LnNlY29uZCwgdHBfaW5zdC5taWxsaXNlYyk7DQoJCQl9DQoJCQllbHNlIHRwX2RhdGUgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7DQoJCQlpZiAodHBfZGF0ZS50b1N0cmluZygpID09ICdJbnZhbGlkIERhdGUnKSB0cF9kYXRlID0gdW5kZWZpbmVkOw0KCQkJdGhpcy5fc2V0VGltZShpbnN0LCB0cF9kYXRlKTsNCgkJfQ0KCX0NCg0KfTsNCg0KLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCi8vIG92ZXJyaWRlIHNldERhdGUoKSB0byBhbGxvdyBzZXR0aW5nIHRpbWUgdG9vIHdpdGhpbiBEYXRlIG9iamVjdA0KLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiQuZGF0ZXBpY2tlci5fYmFzZV9zZXREYXRlRGF0ZXBpY2tlciA9ICQuZGF0ZXBpY2tlci5fc2V0RGF0ZURhdGVwaWNrZXI7DQokLmRhdGVwaWNrZXIuX3NldERhdGVEYXRlcGlja2VyID0gZnVuY3Rpb24odGFyZ2V0LCBkYXRlKSB7DQoJdmFyIGluc3QgPSB0aGlzLl9nZXRJbnN0KHRhcmdldCksDQoJdHBfZGF0ZSA9IChkYXRlIGluc3RhbmNlb2YgRGF0ZSkgPyBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSkgOiBkYXRlOw0KDQoJdGhpcy5fdXBkYXRlRGF0ZXBpY2tlcihpbnN0KTsNCgl0aGlzLl9iYXNlX3NldERhdGVEYXRlcGlja2VyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7DQoJdGhpcy5fc2V0VGltZURhdGVwaWNrZXIodGFyZ2V0LCB0cF9kYXRlLCB0cnVlKTsNCn07DQoNCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQovLyBvdmVycmlkZSBnZXREYXRlKCkgdG8gYWxsb3cgZ2V0dGluZyB0aW1lIHRvbyB3aXRoaW4gRGF0ZSBvYmplY3QNCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQokLmRhdGVwaWNrZXIuX2Jhc2VfZ2V0RGF0ZURhdGVwaWNrZXIgPSAkLmRhdGVwaWNrZXIuX2dldERhdGVEYXRlcGlja2VyOw0KJC5kYXRlcGlja2VyLl9nZXREYXRlRGF0ZXBpY2tlciA9IGZ1bmN0aW9uKHRhcmdldCwgbm9EZWZhdWx0KSB7DQoJdmFyIGluc3QgPSB0aGlzLl9nZXRJbnN0KHRhcmdldCksDQoJCXRwX2luc3QgPSB0aGlzLl9nZXQoaW5zdCwgJ3RpbWVwaWNrZXInKTsNCg0KCWlmICh0cF9pbnN0KSB7DQoJCXRoaXMuX3NldERhdGVGcm9tRmllbGQoaW5zdCwgbm9EZWZhdWx0KTsNCgkJdmFyIGRhdGUgPSB0aGlzLl9nZXREYXRlKGluc3QpOw0KCQlpZiAoZGF0ZSAmJiB0cF9pbnN0Ll9wYXJzZVRpbWUoJCh0YXJnZXQpLnZhbCgpLCB0cF9pbnN0LnRpbWVPbmx5KSkgZGF0ZS5zZXRIb3Vycyh0cF9pbnN0LmhvdXIsIHRwX2luc3QubWludXRlLCB0cF9pbnN0LnNlY29uZCwgdHBfaW5zdC5taWxsaXNlYyk7DQoJCXJldHVybiBkYXRlOw0KCX0NCglyZXR1cm4gdGhpcy5fYmFzZV9nZXREYXRlRGF0ZXBpY2tlcih0YXJnZXQsIG5vRGVmYXVsdCk7DQp9Ow0KDQovLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLy8gb3ZlcnJpZGUgcGFyc2VEYXRlKCkgYmVjYXVzZSBVSSAxLjguMTQgdGhyb3dzIGFuIGVycm9yIGFib3V0ICJFeHRyYSBjaGFyYWN0ZXJzIg0KLy8gQW4gb3B0aW9uIGluIGRhdGFwaWNrZXIgdG8gaWdub3JlIGV4dHJhIGZvcm1hdCBjaGFyYWN0ZXJzIHdvdWxkIGJlIG5pY2VyLg0KLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiQuZGF0ZXBpY2tlci5fYmFzZV9wYXJzZURhdGUgPSAkLmRhdGVwaWNrZXIucGFyc2VEYXRlOw0KJC5kYXRlcGlja2VyLnBhcnNlRGF0ZSA9IGZ1bmN0aW9uKGZvcm1hdCwgdmFsdWUsIHNldHRpbmdzKSB7DQoJdmFyIGRhdGU7DQoJdHJ5IHsNCgkJZGF0ZSA9IHRoaXMuX2Jhc2VfcGFyc2VEYXRlKGZvcm1hdCwgdmFsdWUsIHNldHRpbmdzKTsNCgl9IGNhdGNoIChlcnIpIHsNCgkJaWYgKGVyci5pbmRleE9mKCI6IikgPj0gMCkgew0KCQkJLy8gSGFjayEgIFRoZSBlcnJvciBtZXNzYWdlIGVuZHMgd2l0aCBhIGNvbG9uLCBhIHNwYWNlLCBhbmQNCgkJCS8vIHRoZSAiZXh0cmEiIGNoYXJhY3RlcnMuICBXZSByZWx5IG9uIHRoYXQgaW5zdGVhZCBvZg0KCQkJLy8gYXR0ZW1wdGluZyB0byBwZXJmZWN0bHkgcmVwcm9kdWNlIHRoZSBwYXJzaW5nIGFsZ29yaXRobS4NCgkJCWRhdGUgPSB0aGlzLl9iYXNlX3BhcnNlRGF0ZShmb3JtYXQsIHZhbHVlLnN1YnN0cmluZygwLHZhbHVlLmxlbmd0aC0oZXJyLmxlbmd0aC1lcnIuaW5kZXhPZignOicpLTIpKSwgc2V0dGluZ3MpOw0KCQl9IGVsc2Ugew0KCQkJLy8gVGhlIHVuZGVybHlpbmcgZXJyb3Igd2FzIG5vdCByZWxhdGVkIHRvIHRoZSB0aW1lDQoJCQl0aHJvdyBlcnI7DQoJCX0NCgl9DQoJcmV0dXJuIGRhdGU7DQp9Ow0KDQovLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLy8gb3ZlcnJpZGUgZm9ybWF0RGF0ZSB0byBzZXQgZGF0ZSB3aXRoIHRpbWUgdG8gdGhlIGlucHV0DQovLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KJC5kYXRlcGlja2VyLl9iYXNlX2Zvcm1hdERhdGU9JC5kYXRlcGlja2VyLl9mb3JtYXREYXRlOw0KJC5kYXRlcGlja2VyLl9mb3JtYXREYXRlID0gZnVuY3Rpb24oaW5zdCwgZGF5LCBtb250aCwgeWVhcil7DQoJdmFyIHRwX2luc3QgPSB0aGlzLl9nZXQoaW5zdCwgJ3RpbWVwaWNrZXInKTsNCglpZih0cF9pbnN0KQ0KCXsNCgkJaWYoZGF5KQ0KCQkJdmFyIGIgPSB0aGlzLl9iYXNlX2Zvcm1hdERhdGUoaW5zdCwgZGF5LCBtb250aCwgeWVhcik7DQoJCXRwX2luc3QuX3VwZGF0ZURhdGVUaW1lKGluc3QpOwkNCgkJcmV0dXJuIHRwX2luc3QuJGlucHV0LnZhbCgpOw0KCX0NCglyZXR1cm4gdGhpcy5fYmFzZV9mb3JtYXREYXRlKGluc3QpOw0KfTsNCg0KLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCi8vIG92ZXJyaWRlIG9wdGlvbnMgc2V0dGVyIHRvIGFkZCB0aW1lIHRvIG1heERhdGUoVGltZSkgYW5kIG1pbkRhdGUoVGltZSkuIE1heERhdGUNCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQokLmRhdGVwaWNrZXIuX2Jhc2Vfb3B0aW9uRGF0ZXBpY2tlciA9ICQuZGF0ZXBpY2tlci5fb3B0aW9uRGF0ZXBpY2tlcjsNCiQuZGF0ZXBpY2tlci5fb3B0aW9uRGF0ZXBpY2tlciA9IGZ1bmN0aW9uKHRhcmdldCwgbmFtZSwgdmFsdWUpIHsNCgl2YXIgaW5zdCA9IHRoaXMuX2dldEluc3QodGFyZ2V0KSwNCgkJdHBfaW5zdCA9IHRoaXMuX2dldChpbnN0LCAndGltZXBpY2tlcicpOw0KCWlmICh0cF9pbnN0KSB7DQoJCXZhciBtaW4sbWF4LG9uc2VsZWN0Ow0KCQlpZiAodHlwZW9mIG5hbWUgPT0gJ3N0cmluZycpIHsgLy8gaWYgbWluL21heCB3YXMgc2V0IHdpdGggdGhlIHN0cmluZw0KCQkJaWYgKG5hbWU9PT0nbWluRGF0ZScgfHwgbmFtZT09PSdtaW5EYXRlVGltZScgKQ0KCQkJCW1pbiA9IHZhbHVlOw0KCQkJZWxzZSBpZiAobmFtZT09PSdtYXhEYXRlJyB8fCBuYW1lPT09J21heERhdGVUaW1lJykNCgkJCQltYXggPSB2YWx1ZTsNCgkJCWVsc2UgaWYgKG5hbWU9PT0nb25TZWxlY3QnKQ0KCQkJCW9uc2VsZWN0PXZhbHVlOw0KCQl9IGVsc2UgaWYgKHR5cGVvZiBuYW1lID09ICdvYmplY3QnKSB7IC8vaWYgbWluL21heCB3YXMgc2V0IHdpdGggdGhlIEpTT04NCgkJCWlmKG5hbWUubWluRGF0ZSkNCgkJCQltaW4gPSBuYW1lLm1pbkRhdGU7DQoJCQllbHNlIGlmIChuYW1lLm1pbkRhdGVUaW1lKQ0KCQkJCW1pbiA9IG5hbWUubWluRGF0ZVRpbWU7DQoJCQllbHNlIGlmIChuYW1lLm1heERhdGUpDQoJCQkJbWF4ID0gbmFtZS5tYXhEYXRlOw0KCQkJZWxzZSBpZiAobmFtZS5tYXhEYXRlVGltZSkNCgkJCQltYXggPSBuYW1lLm1heERhdGVUaW1lOw0KCQl9DQoJCWlmKG1pbil7IC8vaWYgbWluIHdhcyBzZXQNCgkJCWlmKG1pbj09MCkNCgkJCQltaW49bmV3IERhdGUoKTsNCgkJCWVsc2UNCgkJCQltaW49IG5ldyBEYXRlKG1pbik7DQoJCQkNCgkJCXRwX2luc3QuX2RlZmF1bHRzLm1pbkRhdGUgPSBtaW47DQoJCQl0cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlVGltZSA9IG1pbjsNCgkJfSBlbHNlIGlmIChtYXgpeyAvL2lmIG1heCB3YXMgc2V0DQoJCQlpZihtYXg9PTApDQoJCQkJbWF4PW5ldyBEYXRlKCk7DQoJCQllbHNlDQoJCQkJbWF4PSBuZXcgRGF0ZShtYXgpOw0KCQkJdHBfaW5zdC5fZGVmYXVsdHMubWF4RGF0ZSA9IG1heDsNCgkJCXRwX2luc3QuX2RlZmF1bHRzLm1heERhdGVUaW1lID0gbWF4Ow0KCQl9DQoJCWVsc2UgaWYgKG9uc2VsZWN0KQ0KCQkJdHBfaW5zdC5fZGVmYXVsdHMub25TZWxlY3Q9b25zZWxlY3Q7DQoJfQ0KCWlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKQ0KCQlyZXR1cm4gdGhpcy5fYmFzZV9vcHRpb25EYXRlcGlja2VyKHRhcmdldCwgbmFtZSk7DQoJcmV0dXJuIHRoaXMuX2Jhc2Vfb3B0aW9uRGF0ZXBpY2tlcih0YXJnZXQsIG5hbWUsIHZhbHVlKTsNCn07DQoNCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQovLyBqUXVlcnkgZXh0ZW5kIG5vdyBpZ25vcmVzIG51bGxzIQ0KLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCmZ1bmN0aW9uIGV4dGVuZFJlbW92ZSh0YXJnZXQsIHByb3BzKSB7DQoJJC5leHRlbmQodGFyZ2V0LCBwcm9wcyk7DQoJZm9yICh2YXIgbmFtZSBpbiBwcm9wcykNCgkJaWYgKHByb3BzW25hbWVdID09PSBudWxsIHx8IHByb3BzW25hbWVdID09PSB1bmRlZmluZWQpDQoJCQl0YXJnZXRbbmFtZV0gPSBwcm9wc1tuYW1lXTsNCglyZXR1cm4gdGFyZ2V0Ow0KfTsNCg0KJC50aW1lcGlja2VyID0gbmV3IFRpbWVwaWNrZXIoKTsgLy8gc2luZ2xldG9uIGluc3RhbmNlDQokLnRpbWVwaWNrZXIudmVyc2lvbiA9ICIwLjkuOSI7DQoNCn0pKGpRdWVyeSk7DQoNCg==]]></data>
	</file>
	<file>
	  <filename>/lib/jquery/jquery-ui.smoothness.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IFVJIENTUyBGcmFtZXdvcmsgMS44LjEyCiAqCiAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKICoKICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9UaGVtaW5nL0FQSQogKi8KCi8qIExheW91dCBoZWxwZXJzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoudWktaGVscGVyLWhpZGRlbiB7IGRpc3BsYXk6IG5vbmU7IH0KLnVpLWhlbHBlci1oaWRkZW4tYWNjZXNzaWJsZSB7IHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OyBjbGlwOiByZWN0KDFweCAxcHggMXB4IDFweCk7IGNsaXA6IHJlY3QoMXB4LDFweCwxcHgsMXB4KTsgfQoudWktaGVscGVyLXJlc2V0IHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyBib3JkZXI6IDA7IG91dGxpbmU6IDA7IGxpbmUtaGVpZ2h0OiAxLjM7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgZm9udC1zaXplOiAxMDAlOyBsaXN0LXN0eWxlOiBub25lOyB9Ci51aS1oZWxwZXItY2xlYXJmaXg6YWZ0ZXIgeyBjb250ZW50OiAiLiI7IGRpc3BsYXk6IGJsb2NrOyBoZWlnaHQ6IDA7IGNsZWFyOiBib3RoOyB2aXNpYmlsaXR5OiBoaWRkZW47IH0KLnVpLWhlbHBlci1jbGVhcmZpeCB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfQovKiByZXF1aXJlZCBjb21tZW50IGZvciBjbGVhcmZpeCB0byB3b3JrIGluIE9wZXJhIFwqLwoqIGh0bWwgLnVpLWhlbHBlci1jbGVhcmZpeCB7IGhlaWdodDoxJTsgfQoudWktaGVscGVyLWNsZWFyZml4IHsgZGlzcGxheTpibG9jazsgfQovKiBlbmQgY2xlYXJmaXggKi8KLnVpLWhlbHBlci16Zml4IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgdG9wOiAwOyBsZWZ0OiAwOyBwb3NpdGlvbjogYWJzb2x1dGU7IG9wYWNpdHk6IDA7IGZpbHRlcjpBbHBoYShPcGFjaXR5PTApOyB9CgoKLyogSW50ZXJhY3Rpb24gQ3VlcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLnVpLXN0YXRlLWRpc2FibGVkIHsgY3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7IH0KCgovKiBJY29ucwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi8qIHN0YXRlcyBhbmQgaW1hZ2VzICovCi51aS1pY29uIHsgZGlzcGxheTogYmxvY2s7IHRleHQtaW5kZW50OiAtOTk5OTlweDsgb3ZlcmZsb3c6IGhpZGRlbjsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfQoKCi8qIE1pc2MgdmlzdWFscwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi8qIE92ZXJsYXlzICovCi51aS13aWRnZXQtb3ZlcmxheSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9CgoKLyoKICogalF1ZXJ5IFVJIENTUyBGcmFtZXdvcmsgMS44LjEyCiAqCiAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKICoKICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9UaGVtaW5nL0FQSQogKgogKiBUbyB2aWV3IGFuZCBtb2RpZnkgdGhpcyB0aGVtZSwgdmlzaXQgaHR0cDovL2pxdWVyeXVpLmNvbS90aGVtZXJvbGxlci8/ZmZEZWZhdWx0PVZlcmRhbmEsQXJpYWwsc2Fucy1zZXJpZiZmd0RlZmF1bHQ9bm9ybWFsJmZzRGVmYXVsdD0xLjFlbSZjb3JuZXJSYWRpdXM9NHB4JmJnQ29sb3JIZWFkZXI9Y2NjY2NjJmJnVGV4dHVyZUhlYWRlcj0wM19oaWdobGlnaHRfc29mdC5wbmcmYmdJbWdPcGFjaXR5SGVhZGVyPTc1JmJvcmRlckNvbG9ySGVhZGVyPWFhYWFhYSZmY0hlYWRlcj0yMjIyMjImaWNvbkNvbG9ySGVhZGVyPTIyMjIyMiZiZ0NvbG9yQ29udGVudD1mZmZmZmYmYmdUZXh0dXJlQ29udGVudD0wMV9mbGF0LnBuZyZiZ0ltZ09wYWNpdHlDb250ZW50PTc1JmJvcmRlckNvbG9yQ29udGVudD1hYWFhYWEmZmNDb250ZW50PTIyMjIyMiZpY29uQ29sb3JDb250ZW50PTIyMjIyMiZiZ0NvbG9yRGVmYXVsdD1lNmU2ZTYmYmdUZXh0dXJlRGVmYXVsdD0wMl9nbGFzcy5wbmcmYmdJbWdPcGFjaXR5RGVmYXVsdD03NSZib3JkZXJDb2xvckRlZmF1bHQ9ZDNkM2QzJmZjRGVmYXVsdD01NTU1NTUmaWNvbkNvbG9yRGVmYXVsdD04ODg4ODgmYmdDb2xvckhvdmVyPWRhZGFkYSZiZ1RleHR1cmVIb3Zlcj0wMl9nbGFzcy5wbmcmYmdJbWdPcGFjaXR5SG92ZXI9NzUmYm9yZGVyQ29sb3JIb3Zlcj05OTk5OTkmZmNIb3Zlcj0yMTIxMjEmaWNvbkNvbG9ySG92ZXI9NDU0NTQ1JmJnQ29sb3JBY3RpdmU9ZmZmZmZmJmJnVGV4dHVyZUFjdGl2ZT0wMl9nbGFzcy5wbmcmYmdJbWdPcGFjaXR5QWN0aXZlPTY1JmJvcmRlckNvbG9yQWN0aXZlPWFhYWFhYSZmY0FjdGl2ZT0yMTIxMjEmaWNvbkNvbG9yQWN0aXZlPTQ1NDU0NSZiZ0NvbG9ySGlnaGxpZ2h0PWZiZjllZSZiZ1RleHR1cmVIaWdobGlnaHQ9MDJfZ2xhc3MucG5nJmJnSW1nT3BhY2l0eUhpZ2hsaWdodD01NSZib3JkZXJDb2xvckhpZ2hsaWdodD1mY2VmYTEmZmNIaWdobGlnaHQ9MzYzNjM2Jmljb25Db2xvckhpZ2hsaWdodD0yZTgzZmYmYmdDb2xvckVycm9yPWZlZjFlYyZiZ1RleHR1cmVFcnJvcj0wMl9nbGFzcy5wbmcmYmdJbWdPcGFjaXR5RXJyb3I9OTUmYm9yZGVyQ29sb3JFcnJvcj1jZDBhMGEmZmNFcnJvcj1jZDBhMGEmaWNvbkNvbG9yRXJyb3I9Y2QwYTBhJmJnQ29sb3JPdmVybGF5PWFhYWFhYSZiZ1RleHR1cmVPdmVybGF5PTAxX2ZsYXQucG5nJmJnSW1nT3BhY2l0eU92ZXJsYXk9MCZvcGFjaXR5T3ZlcmxheT0zMCZiZ0NvbG9yU2hhZG93PWFhYWFhYSZiZ1RleHR1cmVTaGFkb3c9MDFfZmxhdC5wbmcmYmdJbWdPcGFjaXR5U2hhZG93PTAmb3BhY2l0eVNoYWRvdz0zMCZ0aGlja25lc3NTaGFkb3c9OHB4Jm9mZnNldFRvcFNoYWRvdz0tOHB4Jm9mZnNldExlZnRTaGFkb3c9LThweCZjb3JuZXJSYWRpdXNTaGFkb3c9OHB4CiAqLwoKCi8qIENvbXBvbmVudCBjb250YWluZXJzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoudWktd2lkZ2V0IHsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxLjFlbTsgfQoudWktd2lkZ2V0IC51aS13aWRnZXQgeyBmb250LXNpemU6IDFlbTsgfQoudWktd2lkZ2V0IGlucHV0LCAudWktd2lkZ2V0IHNlbGVjdCwgLnVpLXdpZGdldCB0ZXh0YXJlYSwgLnVpLXdpZGdldCBidXR0b24geyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxzYW5zLXNlcmlmOyBmb250LXNpemU6IDFlbTsgfQoudWktd2lkZ2V0LWNvbnRlbnQgeyBib3JkZXI6IDFweCBzb2xpZCAjYWFhYWFhOyBiYWNrZ3JvdW5kOiAjZmZmZmZmIHVybChpbWFnZXMvdWktYmdfZmxhdF83NV9mZmZmZmZfNDB4MTAwLnBuZykgNTAlIDUwJSByZXBlYXQteDsgY29sb3I6ICMyMjIyMjI7IH0KLnVpLXdpZGdldC1jb250ZW50IGEgeyBjb2xvcjogIzIyMjIyMjsgfQoudWktd2lkZ2V0LWhlYWRlciB7IGJvcmRlcjogMXB4IHNvbGlkICNhYWFhYWE7IGJhY2tncm91bmQ6ICNjY2NjY2MgdXJsKGltYWdlcy91aS1iZ19oaWdobGlnaHQtc29mdF83NV9jY2NjY2NfMXgxMDAucG5nKSA1MCUgNTAlIHJlcGVhdC14OyBjb2xvcjogIzIyMjIyMjsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0KLnVpLXdpZGdldC1oZWFkZXIgYSB7IGNvbG9yOiAjMjIyMjIyOyB9CgovKiBJbnRlcmFjdGlvbiBzdGF0ZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi51aS1zdGF0ZS1kZWZhdWx0LCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWRlZmF1bHQsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1kZWZhdWx0IHsgYm9yZGVyOiAxcHggc29saWQgI2QzZDNkMzsgYmFja2dyb3VuZDogI2U2ZTZlNiB1cmwoaW1hZ2VzL3VpLWJnX2dsYXNzXzc1X2U2ZTZlNl8xeDQwMC5wbmcpIDUwJSA1MCUgcmVwZWF0LXg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGNvbG9yOiAjNTU1NTU1OyB9Ci51aS1zdGF0ZS1kZWZhdWx0IGEsIC51aS1zdGF0ZS1kZWZhdWx0IGE6bGluaywgLnVpLXN0YXRlLWRlZmF1bHQgYTp2aXNpdGVkIHsgY29sb3I6ICM1NTU1NTU7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQoudWktc3RhdGUtaG92ZXIsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtaG92ZXIsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1ob3ZlciwgLnVpLXN0YXRlLWZvY3VzLCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWZvY3VzLCAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZm9jdXMgeyBib3JkZXI6IDFweCBzb2xpZCAjOTk5OTk5OyBiYWNrZ3JvdW5kOiAjZGFkYWRhIHVybChpbWFnZXMvdWktYmdfZ2xhc3NfNzVfZGFkYWRhXzF4NDAwLnBuZykgNTAlIDUwJSByZXBlYXQteDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgY29sb3I6ICMyMTIxMjE7IH0KLnVpLXN0YXRlLWhvdmVyIGEsIC51aS1zdGF0ZS1ob3ZlciBhOmhvdmVyIHsgY29sb3I6ICMyMTIxMjE7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQoudWktc3RhdGUtYWN0aXZlLCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWFjdGl2ZSwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWFjdGl2ZSB7IGJvcmRlcjogMXB4IHNvbGlkICNhYWFhYWE7IGJhY2tncm91bmQ6ICNmZmZmZmYgdXJsKGltYWdlcy91aS1iZ19nbGFzc182NV9mZmZmZmZfMXg0MDAucG5nKSA1MCUgNTAlIHJlcGVhdC14OyBmb250LXdlaWdodDogbm9ybWFsOyBjb2xvcjogIzIxMjEyMTsgfQoudWktc3RhdGUtYWN0aXZlIGEsIC51aS1zdGF0ZS1hY3RpdmUgYTpsaW5rLCAudWktc3RhdGUtYWN0aXZlIGE6dmlzaXRlZCB7IGNvbG9yOiAjMjEyMTIxOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0KLnVpLXdpZGdldCA6YWN0aXZlIHsgb3V0bGluZTogbm9uZTsgfQoKLyogSW50ZXJhY3Rpb24gQ3VlcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLnVpLXN0YXRlLWhpZ2hsaWdodCwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1oaWdobGlnaHQsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1oaWdobGlnaHQgIHtib3JkZXI6IDFweCBzb2xpZCAjZmNlZmExOyBiYWNrZ3JvdW5kOiAjZmJmOWVlIHVybChpbWFnZXMvdWktYmdfZ2xhc3NfNTVfZmJmOWVlXzF4NDAwLnBuZykgNTAlIDUwJSByZXBlYXQteDsgY29sb3I6ICMzNjM2MzY7IH0KLnVpLXN0YXRlLWhpZ2hsaWdodCBhLCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWhpZ2hsaWdodCBhLC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1oaWdobGlnaHQgYSB7IGNvbG9yOiAjMzYzNjM2OyB9Ci51aS1zdGF0ZS1lcnJvciwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1lcnJvciwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWVycm9yIHtib3JkZXI6IDFweCBzb2xpZCAjY2QwYTBhOyBiYWNrZ3JvdW5kOiAjZmVmMWVjIHVybChpbWFnZXMvdWktYmdfZ2xhc3NfOTVfZmVmMWVjXzF4NDAwLnBuZykgNTAlIDUwJSByZXBlYXQteDsgY29sb3I6ICNjZDBhMGE7IH0KLnVpLXN0YXRlLWVycm9yIGEsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZXJyb3IgYSwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWVycm9yIGEgeyBjb2xvcjogI2NkMGEwYTsgfQoudWktc3RhdGUtZXJyb3ItdGV4dCwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1lcnJvci10ZXh0LCAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3ItdGV4dCB7IGNvbG9yOiAjY2QwYTBhOyB9Ci51aS1wcmlvcml0eS1wcmltYXJ5LCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXByaW9yaXR5LXByaW1hcnksIC51aS13aWRnZXQtaGVhZGVyIC51aS1wcmlvcml0eS1wcmltYXJ5IHsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0KLnVpLXByaW9yaXR5LXNlY29uZGFyeSwgLnVpLXdpZGdldC1jb250ZW50IC51aS1wcmlvcml0eS1zZWNvbmRhcnksICAudWktd2lkZ2V0LWhlYWRlciAudWktcHJpb3JpdHktc2Vjb25kYXJ5IHsgb3BhY2l0eTogLjc7IGZpbHRlcjpBbHBoYShPcGFjaXR5PTcwKTsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfQoudWktc3RhdGUtZGlzYWJsZWQsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGlzYWJsZWQsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1kaXNhYmxlZCB7IG9wYWNpdHk6IC4zNTsgZmlsdGVyOkFscGhhKE9wYWNpdHk9MzUpOyBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyB9CgovKiBJY29ucwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi8qIHN0YXRlcyBhbmQgaW1hZ2VzICovCi51aS1pY29uIHsgd2lkdGg6IDE2cHg7IGhlaWdodDogMTZweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy91aS1pY29uc18yMjIyMjJfMjU2eDI0MC5wbmcpOyB9Ci51aS13aWRnZXQtY29udGVudCAudWktaWNvbiB7YmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy91aS1pY29uc18yMjIyMjJfMjU2eDI0MC5wbmcpOyB9Ci51aS13aWRnZXQtaGVhZGVyIC51aS1pY29uIHtiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL3VpLWljb25zXzIyMjIyMl8yNTZ4MjQwLnBuZyk7IH0KLnVpLXN0YXRlLWRlZmF1bHQgLnVpLWljb24geyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL3VpLWljb25zXzg4ODg4OF8yNTZ4MjQwLnBuZyk7IH0KLnVpLXN0YXRlLWhvdmVyIC51aS1pY29uLCAudWktc3RhdGUtZm9jdXMgLnVpLWljb24ge2JhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvdWktaWNvbnNfNDU0NTQ1XzI1NngyNDAucG5nKTsgfQoudWktc3RhdGUtYWN0aXZlIC51aS1pY29uIHtiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL3VpLWljb25zXzQ1NDU0NV8yNTZ4MjQwLnBuZyk7IH0KLnVpLXN0YXRlLWhpZ2hsaWdodCAudWktaWNvbiB7YmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy91aS1pY29uc18yZTgzZmZfMjU2eDI0MC5wbmcpOyB9Ci51aS1zdGF0ZS1lcnJvciAudWktaWNvbiwgLnVpLXN0YXRlLWVycm9yLXRleHQgLnVpLWljb24ge2JhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvdWktaWNvbnNfY2QwYTBhXzI1NngyNDAucG5nKTsgfQoKLyogcG9zaXRpb25pbmcgKi8KLnVpLWljb24tY2FyYXQtMS1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwOyB9Ci51aS1pY29uLWNhcmF0LTEtbmUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAwOyB9Ci51aS1pY29uLWNhcmF0LTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IDA7IH0KLnVpLWljb24tY2FyYXQtMS1zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IDA7IH0KLnVpLWljb24tY2FyYXQtMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggMDsgfQoudWktaWNvbi1jYXJhdC0xLXN3IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggMDsgfQoudWktaWNvbi1jYXJhdC0xLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAwOyB9Ci51aS1pY29uLWNhcmF0LTEtbncgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggMDsgfQoudWktaWNvbi1jYXJhdC0yLW4tcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAwOyB9Ci51aS1pY29uLWNhcmF0LTItZS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IDA7IH0KLnVpLWljb24tdHJpYW5nbGUtMS1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTZweDsgfQoudWktaWNvbi10cmlhbmdsZS0xLW5lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTE2cHg7IH0KLnVpLWljb24tdHJpYW5nbGUtMS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE2cHg7IH0KLnVpLWljb24tdHJpYW5nbGUtMS1zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xNnB4OyB9Ci51aS1pY29uLXRyaWFuZ2xlLTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xNnB4OyB9Ci51aS1pY29uLXRyaWFuZ2xlLTEtc3cgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTZweDsgfQoudWktaWNvbi10cmlhbmdsZS0xLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTZweDsgfQoudWktaWNvbi10cmlhbmdsZS0xLW53IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xNnB4OyB9Ci51aS1pY29uLXRyaWFuZ2xlLTItbi1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xNnB4OyB9Ci51aS1pY29uLXRyaWFuZ2xlLTItZS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xNnB4OyB9Ci51aS1pY29uLWFycm93LTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTMycHg7IH0KLnVpLWljb24tYXJyb3ctMS1uZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0zMnB4OyB9Ci51aS1pY29uLWFycm93LTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0zMnB4OyB9Ci51aS1pY29uLWFycm93LTEtc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMzJweDsgfQoudWktaWNvbi1hcnJvdy0xLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMzJweDsgfQoudWktaWNvbi1hcnJvdy0xLXN3IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTMycHg7IH0KLnVpLWljb24tYXJyb3ctMS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTMycHg7IH0KLnVpLWljb24tYXJyb3ctMS1udyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMzJweDsgfQoudWktaWNvbi1hcnJvdy0yLW4tcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMzJweDsgfQoudWktaWNvbi1hcnJvdy0yLW5lLXN3IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0zMnB4OyB9Ci51aS1pY29uLWFycm93LTItZS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0zMnB4OyB9Ci51aS1pY29uLWFycm93LTItc2UtbncgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTMycHg7IH0KLnVpLWljb24tYXJyb3dzdG9wLTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtMzJweDsgfQoudWktaWNvbi1hcnJvd3N0b3AtMS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0zMnB4OyB9Ci51aS1pY29uLWFycm93c3RvcC0xLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTMycHg7IH0KLnVpLWljb24tYXJyb3dzdG9wLTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yNDBweCAtMzJweDsgfQoudWktaWNvbi1hcnJvd3RoaWNrLTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTQ4cHg7IH0KLnVpLWljb24tYXJyb3d0aGljay0xLW5lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTQ4cHg7IH0KLnVpLWljb24tYXJyb3d0aGljay0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtNDhweDsgfQoudWktaWNvbi1hcnJvd3RoaWNrLTEtc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtNDhweDsgfQoudWktaWNvbi1hcnJvd3RoaWNrLTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC00OHB4OyB9Ci51aS1pY29uLWFycm93dGhpY2stMS1zdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC00OHB4OyB9Ci51aS1pY29uLWFycm93dGhpY2stMS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTQ4cHg7IH0KLnVpLWljb24tYXJyb3d0aGljay0xLW53IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC00OHB4OyB9Ci51aS1pY29uLWFycm93dGhpY2stMi1uLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTQ4cHg7IH0KLnVpLWljb24tYXJyb3d0aGljay0yLW5lLXN3IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC00OHB4OyB9Ci51aS1pY29uLWFycm93dGhpY2stMi1lLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTQ4cHg7IH0KLnVpLWljb24tYXJyb3d0aGljay0yLXNlLW53IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC00OHB4OyB9Ci51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtNDhweDsgfQoudWktaWNvbi1hcnJvd3RoaWNrc3RvcC0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTQ4cHg7IH0KLnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC00OHB4OyB9Ci51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yNDBweCAtNDhweDsgfQoudWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTY0cHg7IH0KLnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtNjRweDsgfQoudWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC02NHB4OyB9Ci51aS1pY29uLWFycm93cmV0dXJudGhpY2stMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTY0cHg7IH0KLnVpLWljb24tYXJyb3dyZXR1cm4tMS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTY0cHg7IH0KLnVpLWljb24tYXJyb3dyZXR1cm4tMS1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTY0cHg7IH0KLnVpLWljb24tYXJyb3dyZXR1cm4tMS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTY0cHg7IH0KLnVpLWljb24tYXJyb3dyZXR1cm4tMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC02NHB4OyB9Ci51aS1pY29uLWFycm93cmVmcmVzaC0xLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTY0cHg7IH0KLnVpLWljb24tYXJyb3dyZWZyZXNoLTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtNjRweDsgfQoudWktaWNvbi1hcnJvd3JlZnJlc2gtMS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC02NHB4OyB9Ci51aS1pY29uLWFycm93cmVmcmVzaC0xLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTY0cHg7IH0KLnVpLWljb24tYXJyb3ctNCB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTgwcHg7IH0KLnVpLWljb24tYXJyb3ctNC1kaWFnIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTgwcHg7IH0KLnVpLWljb24tZXh0bGluayB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC04MHB4OyB9Ci51aS1pY29uLW5ld3dpbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC04MHB4OyB9Ci51aS1pY29uLXJlZnJlc2ggeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtODBweDsgfQoudWktaWNvbi1zaHVmZmxlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTgwcHg7IH0KLnVpLWljb24tdHJhbnNmZXItZS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTgwcHg7IH0KLnVpLWljb24tdHJhbnNmZXJ0aGljay1lLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTgwcHg7IH0KLnVpLWljb24tZm9sZGVyLWNvbGxhcHNlZCB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTk2cHg7IH0KLnVpLWljb24tZm9sZGVyLW9wZW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtOTZweDsgfQoudWktaWNvbi1kb2N1bWVudCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC05NnB4OyB9Ci51aS1pY29uLWRvY3VtZW50LWIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtOTZweDsgfQoudWktaWNvbi1ub3RlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTk2cHg7IH0KLnVpLWljb24tbWFpbC1jbG9zZWQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtOTZweDsgfQoudWktaWNvbi1tYWlsLW9wZW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtOTZweDsgfQoudWktaWNvbi1zdWl0Y2FzZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtOTZweDsgfQoudWktaWNvbi1jb21tZW50IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC05NnB4OyB9Ci51aS1pY29uLXBlcnNvbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtOTZweDsgfQoudWktaWNvbi1wcmludCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtOTZweDsgfQoudWktaWNvbi10cmFzaCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtOTZweDsgfQoudWktaWNvbi1sb2NrZWQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTk2cHg7IH0KLnVpLWljb24tdW5sb2NrZWQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTk2cHg7IH0KLnVpLWljb24tYm9va21hcmsgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTk2cHg7IH0KLnVpLWljb24tdGFnIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI0MHB4IC05NnB4OyB9Ci51aS1pY29uLWhvbWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xMTJweDsgfQoudWktaWNvbi1mbGFnIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTExMnB4OyB9Ci51aS1pY29uLWNhbGVuZGFyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTExMnB4OyB9Ci51aS1pY29uLWNhcnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTEycHg7IH0KLnVpLWljb24tcGVuY2lsIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTExMnB4OyB9Ci51aS1pY29uLWNsb2NrIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTExMnB4OyB9Ci51aS1pY29uLWRpc2sgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTEycHg7IH0KLnVpLWljb24tY2FsY3VsYXRvciB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTEycHg7IH0KLnVpLWljb24tem9vbWluIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xMTJweDsgfQoudWktaWNvbi16b29tb3V0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xMTJweDsgfQoudWktaWNvbi1zZWFyY2ggeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTExMnB4OyB9Ci51aS1pY29uLXdyZW5jaCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtMTEycHg7IH0KLnVpLWljb24tZ2VhciB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtMTEycHg7IH0KLnVpLWljb24taGVhcnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTExMnB4OyB9Ci51aS1pY29uLXN0YXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTExMnB4OyB9Ci51aS1pY29uLWxpbmsgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjQwcHggLTExMnB4OyB9Ci51aS1pY29uLWNhbmNlbCB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTEyOHB4OyB9Ci51aS1pY29uLXBsdXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTI4cHg7IH0KLnVpLWljb24tcGx1c3RoaWNrIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTEyOHB4OyB9Ci51aS1pY29uLW1pbnVzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTEyOHB4OyB9Ci51aS1pY29uLW1pbnVzdGhpY2sgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTI4cHg7IH0KLnVpLWljb24tY2xvc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTI4cHg7IH0KLnVpLWljb24tY2xvc2V0aGljayB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xMjhweDsgfQoudWktaWNvbi1rZXkgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTEyOHB4OyB9Ci51aS1pY29uLWxpZ2h0YnVsYiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTI4cHg7IH0KLnVpLWljb24tc2Npc3NvcnMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTEyOHB4OyB9Ci51aS1pY29uLWNsaXBib2FyZCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtMTI4cHg7IH0KLnVpLWljb24tY29weSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtMTI4cHg7IH0KLnVpLWljb24tY29udGFjdCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtMTI4cHg7IH0KLnVpLWljb24taW1hZ2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTEyOHB4OyB9Ci51aS1pY29uLXZpZGVvIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC0xMjhweDsgfQoudWktaWNvbi1zY3JpcHQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjQwcHggLTEyOHB4OyB9Ci51aS1pY29uLWFsZXJ0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTQ0cHg7IH0KLnVpLWljb24taW5mbyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xNDRweDsgfQoudWktaWNvbi1ub3RpY2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTQ0cHg7IH0KLnVpLWljb24taGVscCB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xNDRweDsgfQoudWktaWNvbi1jaGVjayB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xNDRweDsgfQoudWktaWNvbi1idWxsZXQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTQ0cHg7IH0KLnVpLWljb24tcmFkaW8tb2ZmIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTE0NHB4OyB9Ci51aS1pY29uLXJhZGlvLW9uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xNDRweDsgfQoudWktaWNvbi1waW4tdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTQ0cHg7IH0KLnVpLWljb24tcGluLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTE0NHB4OyB9Ci51aS1pY29uLXBsYXkgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xNjBweDsgfQoudWktaWNvbi1wYXVzZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xNjBweDsgfQoudWktaWNvbi1zZWVrLW5leHQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTYwcHg7IH0KLnVpLWljb24tc2Vlay1wcmV2IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTE2MHB4OyB9Ci51aS1pY29uLXNlZWstZW5kIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTE2MHB4OyB9Ci51aS1pY29uLXNlZWstc3RhcnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTYwcHg7IH0KLyogdWktaWNvbi1zZWVrLWZpcnN0IGlzIGRlcHJlY2F0ZWQsIHVzZSB1aS1pY29uLXNlZWstc3RhcnQgaW5zdGVhZCAqLwoudWktaWNvbi1zZWVrLWZpcnN0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE2MHB4OyB9Ci51aS1pY29uLXN0b3AgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTYwcHg7IH0KLnVpLWljb24tZWplY3QgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTE2MHB4OyB9Ci51aS1pY29uLXZvbHVtZS1vZmYgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTE2MHB4OyB9Ci51aS1pY29uLXZvbHVtZS1vbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTYwcHg7IH0KLnVpLWljb24tcG93ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xNzZweDsgfQoudWktaWNvbi1zaWduYWwtZGlhZyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xNzZweDsgfQoudWktaWNvbi1zaWduYWwgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTc2cHg7IH0KLnVpLWljb24tYmF0dGVyeS0wIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTE3NnB4OyB9Ci51aS1pY29uLWJhdHRlcnktMSB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xNzZweDsgfQoudWktaWNvbi1iYXR0ZXJ5LTIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTc2cHg7IH0KLnVpLWljb24tYmF0dGVyeS0zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTE3NnB4OyB9Ci51aS1pY29uLWNpcmNsZS1wbHVzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTkycHg7IH0KLnVpLWljb24tY2lyY2xlLW1pbnVzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTE5MnB4OyB9Ci51aS1pY29uLWNpcmNsZS1jbG9zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xOTJweDsgfQoudWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xOTJweDsgfQoudWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xOTJweDsgfQoudWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xOTJweDsgfQoudWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xOTJweDsgfQoudWktaWNvbi1jaXJjbGUtYXJyb3ctZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTkycHg7IH0KLnVpLWljb24tY2lyY2xlLWFycm93LXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTE5MnB4OyB9Ci51aS1pY29uLWNpcmNsZS1hcnJvdy13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xOTJweDsgfQoudWktaWNvbi1jaXJjbGUtYXJyb3ctbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtMTkycHg7IH0KLnVpLWljb24tY2lyY2xlLXpvb21pbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtMTkycHg7IH0KLnVpLWljb24tY2lyY2xlLXpvb21vdXQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTE5MnB4OyB9Ci51aS1pY29uLWNpcmNsZS1jaGVjayB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtMTkycHg7IH0KLnVpLWljb24tY2lyY2xlc21hbGwtcGx1cyB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTIwOHB4OyB9Ci51aS1pY29uLWNpcmNsZXNtYWxsLW1pbnVzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTIwOHB4OyB9Ci51aS1pY29uLWNpcmNsZXNtYWxsLWNsb3NlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTIwOHB4OyB9Ci51aS1pY29uLXNxdWFyZXNtYWxsLXBsdXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMjA4cHg7IH0KLnVpLWljb24tc3F1YXJlc21hbGwtbWludXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMjA4cHg7IH0KLnVpLWljb24tc3F1YXJlc21hbGwtY2xvc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMjA4cHg7IH0KLnVpLWljb24tZ3JpcC1kb3R0ZWQtdmVydGljYWwgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0yMjRweDsgfQoudWktaWNvbi1ncmlwLWRvdHRlZC1ob3Jpem9udGFsIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTIyNHB4OyB9Ci51aS1pY29uLWdyaXAtc29saWQtdmVydGljYWwgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMjI0cHg7IH0KLnVpLWljb24tZ3JpcC1zb2xpZC1ob3Jpem9udGFsIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTIyNHB4OyB9Ci51aS1pY29uLWdyaXBzbWFsbC1kaWFnb25hbC1zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0yMjRweDsgfQoudWktaWNvbi1ncmlwLWRpYWdvbmFsLXNlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTIyNHB4OyB9CgoKLyogTWlzYyB2aXN1YWxzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLyogQ29ybmVyIHJhZGl1cyAqLwoudWktY29ybmVyLXRsIHsgLW1vei1ib3JkZXItcmFkaXVzLXRvcGxlZnQ6IDRweDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDsgfQoudWktY29ybmVyLXRyIHsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OiA0cHg7IC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDsgfQoudWktY29ybmVyLWJsIHsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6IDRweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDsgfQoudWktY29ybmVyLWJyIHsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OiA0cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDsgfQoudWktY29ybmVyLXRvcCB7IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OiA0cHg7IC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4OyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7IC1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDogNHB4OyAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7IH0KLnVpLWNvcm5lci1ib3R0b20geyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tbGVmdDogNHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6IDRweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4OyB9Ci51aS1jb3JuZXItcmlnaHQgeyAgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OiA0cHg7IC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OiA0cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDsgfQoudWktY29ybmVyLWxlZnQgeyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDogNHB4OyAtd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tbGVmdDogNHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4OyB9Ci51aS1jb3JuZXItYWxsIHsgLW1vei1ib3JkZXItcmFkaXVzOiA0cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czogNHB4OyBib3JkZXItcmFkaXVzOiA0cHg7IH0KCi8qIE92ZXJsYXlzICovCi51aS13aWRnZXQtb3ZlcmxheSB7IGJhY2tncm91bmQ6ICNhYWFhYWEgdXJsKGltYWdlcy91aS1iZ19mbGF0XzBfYWFhYWFhXzQweDEwMC5wbmcpIDUwJSA1MCUgcmVwZWF0LXg7IG9wYWNpdHk6IC4zMDtmaWx0ZXI6QWxwaGEoT3BhY2l0eT0zMCk7IH0KLnVpLXdpZGdldC1zaGFkb3cgeyBtYXJnaW46IC04cHggMCAwIC04cHg7IHBhZGRpbmc6IDhweDsgYmFja2dyb3VuZDogI2FhYWFhYSB1cmwoaW1hZ2VzL3VpLWJnX2ZsYXRfMF9hYWFhYWFfNDB4MTAwLnBuZykgNTAlIDUwJSByZXBlYXQteDsgb3BhY2l0eTogLjMwO2ZpbHRlcjpBbHBoYShPcGFjaXR5PTMwKTsgLW1vei1ib3JkZXItcmFkaXVzOiA4cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czogOHB4OyBib3JkZXItcmFkaXVzOiA4cHg7IH0vKgogKiBqUXVlcnkgVUkgUmVzaXphYmxlIDEuOC4xMgogKgogKiBDb3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCiAqCiAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvUmVzaXphYmxlI3RoZW1pbmcKICovCi51aS1yZXNpemFibGUgeyBwb3NpdGlvbjogcmVsYXRpdmU7fQoudWktcmVzaXphYmxlLWhhbmRsZSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTtmb250LXNpemU6IDAuMXB4O3otaW5kZXg6IDk5OTk5OyBkaXNwbGF5OiBibG9jazsKCS8qIGh0dHA6Ly9idWdzLmpxdWVyeXVpLmNvbS90aWNrZXQvNzIzMwoJIC0gUmVzaXphYmxlOiByZXNpemFibGUgaGFuZGxlcyBmYWlsIHRvIHdvcmsgaW4gSUUgaWYgdHJhbnNwYXJlbnQgYW5kIGNvbnRlbnQgb3ZlcmxhcHMKCSovCgliYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOik7Cn0KLnVpLXJlc2l6YWJsZS1kaXNhYmxlZCAudWktcmVzaXphYmxlLWhhbmRsZSwgLnVpLXJlc2l6YWJsZS1hdXRvaGlkZSAudWktcmVzaXphYmxlLWhhbmRsZSB7IGRpc3BsYXk6IG5vbmU7IH0KLnVpLXJlc2l6YWJsZS1uIHsgY3Vyc29yOiBuLXJlc2l6ZTsgaGVpZ2h0OiA3cHg7IHdpZHRoOiAxMDAlOyB0b3A6IC01cHg7IGxlZnQ6IDA7IH0KLnVpLXJlc2l6YWJsZS1zIHsgY3Vyc29yOiBzLXJlc2l6ZTsgaGVpZ2h0OiA3cHg7IHdpZHRoOiAxMDAlOyBib3R0b206IC01cHg7IGxlZnQ6IDA7IH0KLnVpLXJlc2l6YWJsZS1lIHsgY3Vyc29yOiBlLXJlc2l6ZTsgd2lkdGg6IDdweDsgcmlnaHQ6IC01cHg7IHRvcDogMDsgaGVpZ2h0OiAxMDAlOyB9Ci51aS1yZXNpemFibGUtdyB7IGN1cnNvcjogdy1yZXNpemU7IHdpZHRoOiA3cHg7IGxlZnQ6IC01cHg7IHRvcDogMDsgaGVpZ2h0OiAxMDAlOyB9Ci51aS1yZXNpemFibGUtc2UgeyBjdXJzb3I6IHNlLXJlc2l6ZTsgd2lkdGg6IDEycHg7IGhlaWdodDogMTJweDsgcmlnaHQ6IDFweDsgYm90dG9tOiAxcHg7IH0KLnVpLXJlc2l6YWJsZS1zdyB7IGN1cnNvcjogc3ctcmVzaXplOyB3aWR0aDogOXB4OyBoZWlnaHQ6IDlweDsgbGVmdDogLTVweDsgYm90dG9tOiAtNXB4OyB9Ci51aS1yZXNpemFibGUtbncgeyBjdXJzb3I6IG53LXJlc2l6ZTsgd2lkdGg6IDlweDsgaGVpZ2h0OiA5cHg7IGxlZnQ6IC01cHg7IHRvcDogLTVweDsgfQoudWktcmVzaXphYmxlLW5lIHsgY3Vyc29yOiBuZS1yZXNpemU7IHdpZHRoOiA5cHg7IGhlaWdodDogOXB4OyByaWdodDogLTVweDsgdG9wOiAtNXB4O30vKgogKiBqUXVlcnkgVUkgU2VsZWN0YWJsZSAxLjguMTIKICoKICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL1NlbGVjdGFibGUjdGhlbWluZwogKi8KLnVpLXNlbGVjdGFibGUtaGVscGVyIHsgcG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiAxMDA7IGJvcmRlcjoxcHggZG90dGVkIGJsYWNrOyB9Ci8qCiAqIGpRdWVyeSBVSSBBY2NvcmRpb24gMS44LjEyCiAqCiAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKICoKICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9BY2NvcmRpb24jdGhlbWluZwogKi8KLyogSUUvV2luIC0gRml4IGFuaW1hdGlvbiBidWcgLSAjNDYxNSAqLwoudWktYWNjb3JkaW9uIHsgd2lkdGg6IDEwMCU7IH0KLnVpLWFjY29yZGlvbiAudWktYWNjb3JkaW9uLWhlYWRlciB7IGN1cnNvcjogcG9pbnRlcjsgcG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tdG9wOiAxcHg7IHpvb206IDE7IH0KLnVpLWFjY29yZGlvbiAudWktYWNjb3JkaW9uLWxpLWZpeCB7IGRpc3BsYXk6IGlubGluZTsgfQoudWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24taGVhZGVyLWFjdGl2ZSB7IGJvcmRlci1ib3R0b206IDAgIWltcG9ydGFudDsgfQoudWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24taGVhZGVyIGEgeyBkaXNwbGF5OiBibG9jazsgZm9udC1zaXplOiAxZW07IHBhZGRpbmc6IC41ZW0gLjVlbSAuNWVtIC43ZW07IH0KLnVpLWFjY29yZGlvbi1pY29ucyAudWktYWNjb3JkaW9uLWhlYWRlciBhIHsgcGFkZGluZy1sZWZ0OiAyLjJlbTsgfQoudWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24taGVhZGVyIC51aS1pY29uIHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAuNWVtOyB0b3A6IDUwJTsgbWFyZ2luLXRvcDogLThweDsgfQoudWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24tY29udGVudCB7IHBhZGRpbmc6IDFlbSAyLjJlbTsgYm9yZGVyLXRvcDogMDsgbWFyZ2luLXRvcDogLTJweDsgcG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IDFweDsgbWFyZ2luLWJvdHRvbTogMnB4OyBvdmVyZmxvdzogYXV0bzsgZGlzcGxheTogbm9uZTsgem9vbTogMTsgfQoudWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24tY29udGVudC1hY3RpdmUgeyBkaXNwbGF5OiBibG9jazsgfQovKgogKiBqUXVlcnkgVUkgQXV0b2NvbXBsZXRlIDEuOC4xMgogKgogKiBDb3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCiAqCiAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvQXV0b2NvbXBsZXRlI3RoZW1pbmcKICovCi51aS1hdXRvY29tcGxldGUgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGN1cnNvcjogZGVmYXVsdDsgfQkKCi8qIHdvcmthcm91bmRzICovCiogaHRtbCAudWktYXV0b2NvbXBsZXRlIHsgd2lkdGg6MXB4OyB9IC8qIHdpdGhvdXQgdGhpcywgdGhlIG1lbnUgZXhwYW5kcyB0byAxMDAlIGluIElFNiAqLwoKLyoKICogalF1ZXJ5IFVJIE1lbnUgMS44LjEyCiAqCiAqIENvcHlyaWdodCAyMDEwLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKICoKICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9NZW51I3RoZW1pbmcKICovCi51aS1tZW51IHsKCWxpc3Qtc3R5bGU6bm9uZTsKCXBhZGRpbmc6IDJweDsKCW1hcmdpbjogMDsKCWRpc3BsYXk6YmxvY2s7CglmbG9hdDogbGVmdDsKfQoudWktbWVudSAudWktbWVudSB7CgltYXJnaW4tdG9wOiAtM3B4Owp9Ci51aS1tZW51IC51aS1tZW51LWl0ZW0gewoJbWFyZ2luOjA7CglwYWRkaW5nOiAwOwoJem9vbTogMTsKCWZsb2F0OiBsZWZ0OwoJY2xlYXI6IGxlZnQ7Cgl3aWR0aDogMTAwJTsKfQoudWktbWVudSAudWktbWVudS1pdGVtIGEgewoJdGV4dC1kZWNvcmF0aW9uOm5vbmU7CglkaXNwbGF5OmJsb2NrOwoJcGFkZGluZzouMmVtIC40ZW07CglsaW5lLWhlaWdodDoxLjU7Cgl6b29tOjE7Cn0KLnVpLW1lbnUgLnVpLW1lbnUtaXRlbSBhLnVpLXN0YXRlLWhvdmVyLAoudWktbWVudSAudWktbWVudS1pdGVtIGEudWktc3RhdGUtYWN0aXZlIHsKCWZvbnQtd2VpZ2h0OiBub3JtYWw7CgltYXJnaW46IC0xcHg7Cn0KLyoKICogalF1ZXJ5IFVJIEJ1dHRvbiAxLjguMTIKICoKICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL0J1dHRvbiN0aGVtaW5nCiAqLwoudWktYnV0dG9uIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwb3NpdGlvbjogcmVsYXRpdmU7IHBhZGRpbmc6IDA7IG1hcmdpbi1yaWdodDogLjFlbTsgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7IGN1cnNvcjogcG9pbnRlcjsgdGV4dC1hbGlnbjogY2VudGVyOyB6b29tOiAxOyBvdmVyZmxvdzogdmlzaWJsZTsgfSAvKiB0aGUgb3ZlcmZsb3cgcHJvcGVydHkgcmVtb3ZlcyBleHRyYSB3aWR0aCBpbiBJRSAqLwoudWktYnV0dG9uLWljb24tb25seSB7IHdpZHRoOiAyLjJlbTsgfSAvKiB0byBtYWtlIHJvb20gZm9yIHRoZSBpY29uLCBhIHdpZHRoIG5lZWRzIHRvIGJlIHNldCBoZXJlICovCmJ1dHRvbi51aS1idXR0b24taWNvbi1vbmx5IHsgd2lkdGg6IDIuNGVtOyB9IC8qIGJ1dHRvbiBlbGVtZW50cyBzZWVtIHRvIG5lZWQgYSBsaXR0bGUgbW9yZSB3aWR0aCAqLwoudWktYnV0dG9uLWljb25zLW9ubHkgeyB3aWR0aDogMy40ZW07IH0gCmJ1dHRvbi51aS1idXR0b24taWNvbnMtb25seSB7IHdpZHRoOiAzLjdlbTsgfSAKCi8qYnV0dG9uIHRleHQgZWxlbWVudCAqLwoudWktYnV0dG9uIC51aS1idXR0b24tdGV4dCB7IGRpc3BsYXk6IGJsb2NrOyBsaW5lLWhlaWdodDogMS40OyAgfQoudWktYnV0dG9uLXRleHQtb25seSAudWktYnV0dG9uLXRleHQgeyBwYWRkaW5nOiAuNGVtIDFlbTsgfQoudWktYnV0dG9uLWljb24tb25seSAudWktYnV0dG9uLXRleHQsIC51aS1idXR0b24taWNvbnMtb25seSAudWktYnV0dG9uLXRleHQgeyBwYWRkaW5nOiAuNGVtOyB0ZXh0LWluZGVudDogLTk5OTk5OTlweDsgfQoudWktYnV0dG9uLXRleHQtaWNvbi1wcmltYXJ5IC51aS1idXR0b24tdGV4dCwgLnVpLWJ1dHRvbi10ZXh0LWljb25zIC51aS1idXR0b24tdGV4dCB7IHBhZGRpbmc6IC40ZW0gMWVtIC40ZW0gMi4xZW07IH0KLnVpLWJ1dHRvbi10ZXh0LWljb24tc2Vjb25kYXJ5IC51aS1idXR0b24tdGV4dCwgLnVpLWJ1dHRvbi10ZXh0LWljb25zIC51aS1idXR0b24tdGV4dCB7IHBhZGRpbmc6IC40ZW0gMi4xZW0gLjRlbSAxZW07IH0KLnVpLWJ1dHRvbi10ZXh0LWljb25zIC51aS1idXR0b24tdGV4dCB7IHBhZGRpbmctbGVmdDogMi4xZW07IHBhZGRpbmctcmlnaHQ6IDIuMWVtOyB9Ci8qIG5vIGljb24gc3VwcG9ydCBmb3IgaW5wdXQgZWxlbWVudHMsIHByb3ZpZGUgcGFkZGluZyBieSBkZWZhdWx0ICovCmlucHV0LnVpLWJ1dHRvbiB7IHBhZGRpbmc6IC40ZW0gMWVtOyB9CgovKmJ1dHRvbiBpY29uIGVsZW1lbnQocykgKi8KLnVpLWJ1dHRvbi1pY29uLW9ubHkgLnVpLWljb24sIC51aS1idXR0b24tdGV4dC1pY29uLXByaW1hcnkgLnVpLWljb24sIC51aS1idXR0b24tdGV4dC1pY29uLXNlY29uZGFyeSAudWktaWNvbiwgLnVpLWJ1dHRvbi10ZXh0LWljb25zIC51aS1pY29uLCAudWktYnV0dG9uLWljb25zLW9ubHkgLnVpLWljb24geyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNTAlOyBtYXJnaW4tdG9wOiAtOHB4OyB9Ci51aS1idXR0b24taWNvbi1vbmx5IC51aS1pY29uIHsgbGVmdDogNTAlOyBtYXJnaW4tbGVmdDogLThweDsgfQoudWktYnV0dG9uLXRleHQtaWNvbi1wcmltYXJ5IC51aS1idXR0b24taWNvbi1wcmltYXJ5LCAudWktYnV0dG9uLXRleHQtaWNvbnMgLnVpLWJ1dHRvbi1pY29uLXByaW1hcnksIC51aS1idXR0b24taWNvbnMtb25seSAudWktYnV0dG9uLWljb24tcHJpbWFyeSB7IGxlZnQ6IC41ZW07IH0KLnVpLWJ1dHRvbi10ZXh0LWljb24tc2Vjb25kYXJ5IC51aS1idXR0b24taWNvbi1zZWNvbmRhcnksIC51aS1idXR0b24tdGV4dC1pY29ucyAudWktYnV0dG9uLWljb24tc2Vjb25kYXJ5LCAudWktYnV0dG9uLWljb25zLW9ubHkgLnVpLWJ1dHRvbi1pY29uLXNlY29uZGFyeSB7IHJpZ2h0OiAuNWVtOyB9Ci51aS1idXR0b24tdGV4dC1pY29ucyAudWktYnV0dG9uLWljb24tc2Vjb25kYXJ5LCAudWktYnV0dG9uLWljb25zLW9ubHkgLnVpLWJ1dHRvbi1pY29uLXNlY29uZGFyeSB7IHJpZ2h0OiAuNWVtOyB9CgovKmJ1dHRvbiBzZXRzKi8KLnVpLWJ1dHRvbnNldCB7IG1hcmdpbi1yaWdodDogN3B4OyB9Ci51aS1idXR0b25zZXQgLnVpLWJ1dHRvbiB7IG1hcmdpbi1sZWZ0OiAwOyBtYXJnaW4tcmlnaHQ6IC0uM2VtOyB9CgovKiB3b3JrYXJvdW5kcyAqLwpidXR0b24udWktYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHsgYm9yZGVyOiAwOyBwYWRkaW5nOiAwOyB9IC8qIHJlc2V0IGV4dHJhIHBhZGRpbmcgaW4gRmlyZWZveCAqLwovKgogKiBqUXVlcnkgVUkgRGlhbG9nIDEuOC4xMgogKgogKiBDb3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCiAqCiAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvRGlhbG9nI3RoZW1pbmcKICovCi51aS1kaWFsb2cgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHBhZGRpbmc6IC4yZW07IHdpZHRoOiAzMDBweDsgb3ZlcmZsb3c6IGhpZGRlbjsgfQoudWktZGlhbG9nIC51aS1kaWFsb2ctdGl0bGViYXIgeyBwYWRkaW5nOiAuNGVtIDFlbTsgcG9zaXRpb246IHJlbGF0aXZlOyAgfQoudWktZGlhbG9nIC51aS1kaWFsb2ctdGl0bGUgeyBmbG9hdDogbGVmdDsgbWFyZ2luOiAuMWVtIDE2cHggLjFlbSAwOyB9IAoudWktZGlhbG9nIC51aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHJpZ2h0OiAuM2VtOyB0b3A6IDUwJTsgd2lkdGg6IDE5cHg7IG1hcmdpbjogLTEwcHggMCAwIDA7IHBhZGRpbmc6IDFweDsgaGVpZ2h0OiAxOHB4OyB9Ci51aS1kaWFsb2cgLnVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSBzcGFuIHsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMXB4OyB9Ci51aS1kaWFsb2cgLnVpLWRpYWxvZy10aXRsZWJhci1jbG9zZTpob3ZlciwgLnVpLWRpYWxvZyAudWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlOmZvY3VzIHsgcGFkZGluZzogMDsgfQoudWktZGlhbG9nIC51aS1kaWFsb2ctY29udGVudCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgYm9yZGVyOiAwOyBwYWRkaW5nOiAuNWVtIDFlbTsgYmFja2dyb3VuZDogbm9uZTsgb3ZlcmZsb3c6IGF1dG87IHpvb206IDE7IH0KLnVpLWRpYWxvZyAudWktZGlhbG9nLWJ1dHRvbnBhbmUgeyB0ZXh0LWFsaWduOiBsZWZ0OyBib3JkZXItd2lkdGg6IDFweCAwIDAgMDsgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgbWFyZ2luOiAuNWVtIDAgMCAwOyBwYWRkaW5nOiAuM2VtIDFlbSAuNWVtIC40ZW07IH0KLnVpLWRpYWxvZyAudWktZGlhbG9nLWJ1dHRvbnBhbmUgLnVpLWRpYWxvZy1idXR0b25zZXQgeyBmbG9hdDogcmlnaHQ7IH0KLnVpLWRpYWxvZyAudWktZGlhbG9nLWJ1dHRvbnBhbmUgYnV0dG9uIHsgbWFyZ2luOiAuNWVtIC40ZW0gLjVlbSAwOyBjdXJzb3I6IHBvaW50ZXI7IH0KLnVpLWRpYWxvZyAudWktcmVzaXphYmxlLXNlIHsgd2lkdGg6IDE0cHg7IGhlaWdodDogMTRweDsgcmlnaHQ6IDNweDsgYm90dG9tOiAzcHg7IH0KLnVpLWRyYWdnYWJsZSAudWktZGlhbG9nLXRpdGxlYmFyIHsgY3Vyc29yOiBtb3ZlOyB9Ci8qCiAqIGpRdWVyeSBVSSBTbGlkZXIgMS44LjEyCiAqCiAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKICoKICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9TbGlkZXIjdGhlbWluZwogKi8KLnVpLXNsaWRlciB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdGV4dC1hbGlnbjogbGVmdDsgfQoudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlIHsgcG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiAyOyB3aWR0aDogMS4yZW07IGhlaWdodDogMS4yZW07IGN1cnNvcjogZGVmYXVsdDsgfQoudWktc2xpZGVyIC51aS1zbGlkZXItcmFuZ2UgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6IDE7IGZvbnQtc2l6ZTogLjdlbTsgZGlzcGxheTogYmxvY2s7IGJvcmRlcjogMDsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwOyB9CgoudWktc2xpZGVyLWhvcml6b250YWwgeyBoZWlnaHQ6IC44ZW07IH0KLnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItaGFuZGxlIHsgdG9wOiAtLjNlbTsgbWFyZ2luLWxlZnQ6IC0uNmVtOyB9Ci51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLXJhbmdlIHsgdG9wOiAwOyBoZWlnaHQ6IDEwMCU7IH0KLnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItcmFuZ2UtbWluIHsgbGVmdDogMDsgfQoudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZS1tYXggeyByaWdodDogMDsgfQoKLnVpLXNsaWRlci12ZXJ0aWNhbCB7IHdpZHRoOiAuOGVtOyBoZWlnaHQ6IDEwMHB4OyB9Ci51aS1zbGlkZXItdmVydGljYWwgLnVpLXNsaWRlci1oYW5kbGUgeyBsZWZ0OiAtLjNlbTsgbWFyZ2luLWxlZnQ6IDA7IG1hcmdpbi1ib3R0b206IC0uNmVtOyB9Ci51aS1zbGlkZXItdmVydGljYWwgLnVpLXNsaWRlci1yYW5nZSB7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyB9Ci51aS1zbGlkZXItdmVydGljYWwgLnVpLXNsaWRlci1yYW5nZS1taW4geyBib3R0b206IDA7IH0KLnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLXJhbmdlLW1heCB7IHRvcDogMDsgfS8qCiAqIGpRdWVyeSBVSSBUYWJzIDEuOC4xMgogKgogKiBDb3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCiAqCiAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvVGFicyN0aGVtaW5nCiAqLwoudWktdGFicyB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgcGFkZGluZzogLjJlbTsgem9vbTogMTsgfSAvKiBwb3NpdGlvbjogcmVsYXRpdmUgcHJldmVudHMgSUUgc2Nyb2xsIGJ1ZyAoZWxlbWVudCB3aXRoIHBvc2l0aW9uOiByZWxhdGl2ZSBpbnNpZGUgY29udGFpbmVyIHdpdGggb3ZlcmZsb3c6IGF1dG8gYXBwZWFyIGFzICJmaXhlZCIpICovCi51aS10YWJzIC51aS10YWJzLW5hdiB7IG1hcmdpbjogMDsgcGFkZGluZzogLjJlbSAuMmVtIDA7IH0KLnVpLXRhYnMgLnVpLXRhYnMtbmF2IGxpIHsgbGlzdC1zdHlsZTogbm9uZTsgZmxvYXQ6IGxlZnQ7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAxcHg7IG1hcmdpbjogMCAuMmVtIDFweCAwOyBib3JkZXItYm90dG9tOiAwICFpbXBvcnRhbnQ7IHBhZGRpbmc6IDA7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH0KLnVpLXRhYnMgLnVpLXRhYnMtbmF2IGxpIGEgeyBmbG9hdDogbGVmdDsgcGFkZGluZzogLjVlbSAxZW07IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQoudWktdGFicyAudWktdGFicy1uYXYgbGkudWktdGFicy1zZWxlY3RlZCB7IG1hcmdpbi1ib3R0b206IDA7IHBhZGRpbmctYm90dG9tOiAxcHg7IH0KLnVpLXRhYnMgLnVpLXRhYnMtbmF2IGxpLnVpLXRhYnMtc2VsZWN0ZWQgYSwgLnVpLXRhYnMgLnVpLXRhYnMtbmF2IGxpLnVpLXN0YXRlLWRpc2FibGVkIGEsIC51aS10YWJzIC51aS10YWJzLW5hdiBsaS51aS1zdGF0ZS1wcm9jZXNzaW5nIGEgeyBjdXJzb3I6IHRleHQ7IH0KLnVpLXRhYnMgLnVpLXRhYnMtbmF2IGxpIGEsIC51aS10YWJzLnVpLXRhYnMtY29sbGFwc2libGUgLnVpLXRhYnMtbmF2IGxpLnVpLXRhYnMtc2VsZWN0ZWQgYSB7IGN1cnNvcjogcG9pbnRlcjsgfSAvKiBmaXJzdCBzZWxlY3RvciBpbiBncm91cCBzZWVtcyBvYnNvbGV0ZSwgYnV0IHJlcXVpcmVkIHRvIG92ZXJjb21lIGJ1ZyBpbiBPcGVyYSBhcHBseWluZyBjdXJzb3I6IHRleHQgb3ZlcmFsbCBpZiBkZWZpbmVkIGVsc2V3aGVyZS4uLiAqLwoudWktdGFicyAudWktdGFicy1wYW5lbCB7IGRpc3BsYXk6IGJsb2NrOyBib3JkZXItd2lkdGg6IDA7IHBhZGRpbmc6IDFlbSAxLjRlbTsgYmFja2dyb3VuZDogbm9uZTsgfQoudWktdGFicyAudWktdGFicy1oaWRlIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9Ci8qCiAqIGpRdWVyeSBVSSBEYXRlcGlja2VyIDEuOC4xMgogKgogKiBDb3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCiAqCiAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvRGF0ZXBpY2tlciN0aGVtaW5nCiAqLwoudWktZGF0ZXBpY2tlciB7IHdpZHRoOiAxN2VtOyBwYWRkaW5nOiAuMmVtIC4yZW0gMDsgZGlzcGxheTogbm9uZTsgfQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1oZWFkZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgcGFkZGluZzouMmVtIDA7IH0KLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItcHJldiwgLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dCB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6IDJweDsgd2lkdGg6IDEuOGVtOyBoZWlnaHQ6IDEuOGVtOyB9Ci51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXYtaG92ZXIsIC51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLW5leHQtaG92ZXIgeyB0b3A6IDFweDsgfQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2IHsgbGVmdDoycHg7IH0KLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dCB7IHJpZ2h0OjJweDsgfQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2LWhvdmVyIHsgbGVmdDoxcHg7IH0KLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dC1ob3ZlciB7IHJpZ2h0OjFweDsgfQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2IHNwYW4sIC51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLW5leHQgc3BhbiB7IGRpc3BsYXk6IGJsb2NrOyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDUwJTsgbWFyZ2luLWxlZnQ6IC04cHg7IHRvcDogNTAlOyBtYXJnaW4tdG9wOiAtOHB4OyAgfQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci10aXRsZSB7IG1hcmdpbjogMCAyLjNlbTsgbGluZS1oZWlnaHQ6IDEuOGVtOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItdGl0bGUgc2VsZWN0IHsgZm9udC1zaXplOjFlbTsgbWFyZ2luOjFweCAwOyB9Ci51aS1kYXRlcGlja2VyIHNlbGVjdC51aS1kYXRlcGlja2VyLW1vbnRoLXllYXIge3dpZHRoOiAxMDAlO30KLnVpLWRhdGVwaWNrZXIgc2VsZWN0LnVpLWRhdGVwaWNrZXItbW9udGgsIAoudWktZGF0ZXBpY2tlciBzZWxlY3QudWktZGF0ZXBpY2tlci15ZWFyIHsgd2lkdGg6IDQ5JTt9Ci51aS1kYXRlcGlja2VyIHRhYmxlIHt3aWR0aDogMTAwJTsgZm9udC1zaXplOiAuOWVtOyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBtYXJnaW46MCAwIC40ZW07IH0KLnVpLWRhdGVwaWNrZXIgdGggeyBwYWRkaW5nOiAuN2VtIC4zZW07IHRleHQtYWxpZ246IGNlbnRlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7IGJvcmRlcjogMDsgIH0KLnVpLWRhdGVwaWNrZXIgdGQgeyBib3JkZXI6IDA7IHBhZGRpbmc6IDFweDsgfQoudWktZGF0ZXBpY2tlciB0ZCBzcGFuLCAudWktZGF0ZXBpY2tlciB0ZCBhIHsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmc6IC4yZW07IHRleHQtYWxpZ246IHJpZ2h0OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0KLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSB7IGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IG1hcmdpbjogLjdlbSAwIDAgMDsgcGFkZGluZzowIC4yZW07IGJvcmRlci1sZWZ0OiAwOyBib3JkZXItcmlnaHQ6IDA7IGJvcmRlci1ib3R0b206IDA7IH0KLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSBidXR0b24geyBmbG9hdDogcmlnaHQ7IG1hcmdpbjogLjVlbSAuMmVtIC40ZW07IGN1cnNvcjogcG9pbnRlcjsgcGFkZGluZzogLjJlbSAuNmVtIC4zZW0gLjZlbTsgd2lkdGg6YXV0bzsgb3ZlcmZsb3c6dmlzaWJsZTsgfQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIGJ1dHRvbi51aS1kYXRlcGlja2VyLWN1cnJlbnQgeyBmbG9hdDpsZWZ0OyB9CgovKiB3aXRoIG11bHRpcGxlIGNhbGVuZGFycyAqLwoudWktZGF0ZXBpY2tlci51aS1kYXRlcGlja2VyLW11bHRpIHsgd2lkdGg6YXV0bzsgfQoudWktZGF0ZXBpY2tlci1tdWx0aSAudWktZGF0ZXBpY2tlci1ncm91cCB7IGZsb2F0OmxlZnQ7IH0KLnVpLWRhdGVwaWNrZXItbXVsdGkgLnVpLWRhdGVwaWNrZXItZ3JvdXAgdGFibGUgeyB3aWR0aDo5NSU7IG1hcmdpbjowIGF1dG8gLjRlbTsgfQoudWktZGF0ZXBpY2tlci1tdWx0aS0yIC51aS1kYXRlcGlja2VyLWdyb3VwIHsgd2lkdGg6NTAlOyB9Ci51aS1kYXRlcGlja2VyLW11bHRpLTMgLnVpLWRhdGVwaWNrZXItZ3JvdXAgeyB3aWR0aDozMy4zJTsgfQoudWktZGF0ZXBpY2tlci1tdWx0aS00IC51aS1kYXRlcGlja2VyLWdyb3VwIHsgd2lkdGg6MjUlOyB9Ci51aS1kYXRlcGlja2VyLW11bHRpIC51aS1kYXRlcGlja2VyLWdyb3VwLWxhc3QgLnVpLWRhdGVwaWNrZXItaGVhZGVyIHsgYm9yZGVyLWxlZnQtd2lkdGg6MDsgfQoudWktZGF0ZXBpY2tlci1tdWx0aSAudWktZGF0ZXBpY2tlci1ncm91cC1taWRkbGUgLnVpLWRhdGVwaWNrZXItaGVhZGVyIHsgYm9yZGVyLWxlZnQtd2lkdGg6MDsgfQoudWktZGF0ZXBpY2tlci1tdWx0aSAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIHsgY2xlYXI6bGVmdDsgfQoudWktZGF0ZXBpY2tlci1yb3ctYnJlYWsgeyBjbGVhcjpib3RoOyB3aWR0aDoxMDAlOyB9CgovKiBSVEwgc3VwcG9ydCAqLwoudWktZGF0ZXBpY2tlci1ydGwgeyBkaXJlY3Rpb246IHJ0bDsgfQoudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItcHJldiB7IHJpZ2h0OiAycHg7IGxlZnQ6IGF1dG87IH0KLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLW5leHQgeyBsZWZ0OiAycHg7IHJpZ2h0OiBhdXRvOyB9Ci51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1wcmV2OmhvdmVyIHsgcmlnaHQ6IDFweDsgbGVmdDogYXV0bzsgfQoudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItbmV4dDpob3ZlciB7IGxlZnQ6IDFweDsgcmlnaHQ6IGF1dG87IH0KLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgeyBjbGVhcjpyaWdodDsgfQoudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSBidXR0b24geyBmbG9hdDogbGVmdDsgfQoudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSBidXR0b24udWktZGF0ZXBpY2tlci1jdXJyZW50IHsgZmxvYXQ6cmlnaHQ7IH0KLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWdyb3VwIHsgZmxvYXQ6cmlnaHQ7IH0KLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWdyb3VwLWxhc3QgLnVpLWRhdGVwaWNrZXItaGVhZGVyIHsgYm9yZGVyLXJpZ2h0LXdpZHRoOjA7IGJvcmRlci1sZWZ0LXdpZHRoOjFweDsgfQoudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItZ3JvdXAtbWlkZGxlIC51aS1kYXRlcGlja2VyLWhlYWRlciB7IGJvcmRlci1yaWdodC13aWR0aDowOyBib3JkZXItbGVmdC13aWR0aDoxcHg7IH0KCi8qIElFNiBJRlJBTUUgRklYICh0YWtlbiBmcm9tIGRhdGVwaWNrZXIgMS41LjMgKi8KLnVpLWRhdGVwaWNrZXItY292ZXIgewogICAgZGlzcGxheTogbm9uZTsgLypzb3JyeSBmb3IgSUU1Ki8KICAgIGRpc3BsYXkvKiovOiBibG9jazsgLypzb3JyeSBmb3IgSUU1Ki8KICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLyptdXN0IGhhdmUqLwogICAgei1pbmRleDogLTE7IC8qbXVzdCBoYXZlKi8KICAgIGZpbHRlcjogbWFzaygpOyAvKm11c3QgaGF2ZSovCiAgICB0b3A6IC00cHg7IC8qbXVzdCBoYXZlKi8KICAgIGxlZnQ6IC00cHg7IC8qbXVzdCBoYXZlKi8KICAgIHdpZHRoOiAyMDBweDsgLyptdXN0IGhhdmUqLwogICAgaGVpZ2h0OiAyMDBweDsgLyptdXN0IGhhdmUqLwp9LyoKICogalF1ZXJ5IFVJIFByb2dyZXNzYmFyIDEuOC4xMgogKgogKiBDb3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCiAqCiAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvUHJvZ3Jlc3NiYXIjdGhlbWluZwogKi8KLnVpLXByb2dyZXNzYmFyIHsgaGVpZ2h0OjJlbTsgdGV4dC1hbGlnbjogbGVmdDsgfQoudWktcHJvZ3Jlc3NiYXIgLnVpLXByb2dyZXNzYmFyLXZhbHVlIHttYXJnaW46IC0xcHg7IGhlaWdodDoxMDAlOyB9]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEN1c3RvbSBHbG9iYWwgU2V0dGluZ3MKIyBBdXRob3I6IFJvbGYgVGphc3NlbnMsIEpvcwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY3VzdG9tZ3MKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCi8qKiAKICogSW5zdGFsbCBtb2R1bGUKICovCgokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIFVzZScsICdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gVXNlJyk7CiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gTWFuYWdlJywgJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBNYW5hZ2UnKTsKCQkKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2lucHV0X2N1c3RvbV9tb2R1bGVuYW1lJywgJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FkbWluX3NlY3Rpb24nLCAnZXh0ZW5zaW9ucycpOwoKCiRkYiA9ICR0aGlzLT5HZXREYigpOwoKLy8gbXlzcWwtc3BlY2lmaWMsIGJ1dCBpZ25vcmVkIGJ5IG90aGVyIGRhdGFiYXNlCiR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ0VOR0lORT1NeUlTQU0nKTsKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoKJGZsZHMgPSAiCglmaWVsZGlkIEkgS0VZIEFVVE8sCgluYW1lIEMoMjU1KSwKCWhlbHAgWCwKCXR5cGUgQygyMCksCglwcm9wZXJ0aWVzIFgsCgljbGVhcmNhY2hlIEksCglzb3J0b3JkZXIgSSwKCXZhbHVlIFgKIjsKCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jdXN0b21ncyIsICRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokcXVlcnkgPSAiSU5TRVJUIElOVE8gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfY3VzdG9tZ3MgKG5hbWUsIGhlbHAsIHR5cGUsIHNvcnRvcmRlciwgdmFsdWUpIFZBTFVFUyAoPyw/LD8sPyw/KSI7CiRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCdTYW1wbGUgdGV4dGZpZWxkJywgJ1NhbXBsZSBoZWxwIHRleHQgZm9yIHRoaXMgdGV4dGZpZWxkJywgJ3RleHRmaWVsZCcsIDEsICdTYW1wbGUgdmFsdWUnKSk7CgovLyByZWdpc3RlciBhbiBldmVudCB0aGF0IEN1c3RvbUdTIHdpbGwgaXNzdWUuCiR0aGlzLT5DcmVhdGVFdmVudCgnT25TZXR0aW5nQ2hhbmdlJyk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEN1c3RvbSBHbG9iYWwgU2V0dGluZ3MKIyBBdXRob3I6IFJvbGYgVGphc3NlbnMsIEpvcwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY3VzdG9tZ3MKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCi8qKiAKICogVW5pbnN0YWxsIG1vZHVsZQogKi8KJGRiID0gJGdDbXMtPkdldERiKCk7CgovLyByZW1vdmUgdGhlIGRhdGFiYXNlIHRhYmxlcwokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCAkZGIgKTsKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3MiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCi8vIHJlbW92ZSB0aGUgcGVybWlzc2lvbnMKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBVc2UnKTsKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ0N1c3RvbSBHbG9iYWwgU2V0dGluZ3MgLSBNYW5hZ2UnKTsKCQkKLy8gcmVtb3ZlIGFsbCBwcmVmZXJlbmNlcwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgpOwoKLy8gcmVtb3ZlIHRoZSBldmVudAokdGhpcy0+UmVtb3ZlRXZlbnQoJ09uU2V0dGluZ0NoYW5nZScpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEN1c3RvbSBHbG9iYWwgU2V0dGluZ3MKIyBBdXRob3I6IFJvbGYgVGphc3NlbnMsIEpvcwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY3VzdG9tZ3MKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCiRkYiA9ICR0aGlzLT5HZXREYigpOwokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdFTkdJTkU9TXlJU0FNJyk7CiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCnN3aXRjaCgkb2xkdmVyc2lvbikKewoJY2FzZSAiMS4wIjoKCgkJJGZsZHMgPSAiCgkJCWZpZWxkaWQgSSBLRVkgQVVUTywKCQkJbmFtZSBDKDI1NSksCgkJCWhlbHAgWCwKCQkJdHlwZSBDKDIwKSwKCQkJcHJvcGVydGllcyBYLAoJCQlzb3J0b3JkZXIgSSwKCQkJdmFsdWUgWAoJCSI7CgoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jdXN0b21ncyIsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGlkeCA9IDE7CgkJZm9yICgkaSA9IDE7ICRpIDw9IDc7ICRpKyspCgkJewoJCQkvLyB0cmFuc2ZlciBjaGVja2JveGVzIHRvIGRhdGFiYXNlCgkJCSRmaWVsZG5hbWUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW5wdXRfdGl0bGVfY2hlY2tib3hfJy4kaSk7CgkJCWlmICggIWVtcHR5KCRmaWVsZG5hbWUpICkKCQkJewoJCQkJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2N1c3RvbWdzIChuYW1lLCBoZWxwLCB0eXBlLCBzb3J0b3JkZXIsIHZhbHVlKSBWQUxVRVMgKD8sPyw/LD8sPykiOwoJCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoCgkJCQkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ2lucHV0X3RpdGxlX2NoZWNrYm94XycuJGkpLAoJCQkJCSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbnB1dF9oZWxwX2NoZWNrYm94XycuJGkpLAoJCQkJCSdjaGVja2JveCcsCgkJCQkJJGlkeCwKCQkJCQkkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW5wdXRfY2hlY2tib3hfJy4kaSkKCQkJCSkpOwoJCQkJJGlkeCsrOwoJCQl9CgkJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdpbnB1dF9jaGVja2JveF8nLiRpKTsKCQkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2lucHV0X3RpdGxlX2NoZWNrYm94XycuJGkpOwoJCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnaW5wdXRfaGVscF9jaGVja2JveF8nLiRpKTsKCQl9CgkJZm9yICgkaSA9IDE7ICRpIDw9IDU7ICRpKyspCgkJewoJCQkvLyB0cmFuc2ZlciB0ZXh0ZmllbGRzIHRvIGRhdGFiYXNlCgkJCSRmaWVsZG5hbWUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW5wdXRfdGl0bGVfdGV4dGZpZWxkXycuJGkpOwoJCQlpZiAoICFlbXB0eSgkZmllbGRuYW1lKSApCgkJCXsKCQkJCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9jdXN0b21ncyAobmFtZSwgaGVscCwgdHlwZSwgc29ydG9yZGVyLCB2YWx1ZSkgVkFMVUVTICg/LD8sPyw/LD8pIjsKCQkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KAoJCQkJCSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbnB1dF90aXRsZV90ZXh0ZmllbGRfJy4kaSksCgkJCQkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ2lucHV0X2hlbHBfdGV4dGZpZWxkXycuJGkpLAoJCQkJCSd0ZXh0ZmllbGQnLAoJCQkJCSRpZHgsCgkJCQkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ2lucHV0X3RleHRmaWVsZF8nLiRpKQoJCQkJKSk7CgkJCQkkaWR4Kys7CgkJCX0KCQkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2lucHV0X3RleHRmaWVsZF8nLiRpKTsKCQkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2lucHV0X3RpdGxlX3RleHRmaWVsZF8nLiRpKTsKCQkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2lucHV0X2hlbHBfdGV4dGZpZWxkXycuJGkpOwoJCX0KCQkvLyByZXNldCBwZXJtaXNzaW9ucwoJCSR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gU2V0dGluZ3MnKTsKCQkkdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncyAtIFVzZScsICdDdXN0b20gR2xvYmFsIFNldHRpbmdzIC0gVXNlJyk7CgkJLy8gY3JlYXRlIGV2ZW50CgkJJHRoaXMtPkNyZWF0ZUV2ZW50KCdPblNldHRpbmdDaGFuZ2UnKTsKCQkvLyBkZWxldGUgZmlsZXMKCQkkZGVsZXRlZmlsZXMgPSBhcnJheSAoJ2Z1bmN0aW9uLmFkbWluX2NoZWNrYm94ZXMucGhwJywgJ2Z1bmN0aW9uLmFkbWluX3RleHRmaWVsZHMucGhwJywgJ2Z1bmN0aW9uLmFkbWluX3NldHRpbmdzJywKCQkJCQkJCQkJCQkJCSdhY3Rpb24uc2F2ZV9jaGVja2JveGVzLnBocCcsICdhY3Rpb24uc2F2ZV90ZXh0ZmllbGRzLnBocCcsICdhY3Rpb24uc2F2ZV9zZXR0aW5ncy5waHAnLAoJCQkJCQkJCQkJCQkJJ3RlbXBsYXRlcy9hZG1pbl9jaGVja2JveGVzLnRwbCcsICd0ZW1wbGF0ZXMvYWRtaW5fdGV4dGZpZWxkcy50cGwnLCAndGVtcGxhdGVzL2FkbWluX3NldHRpbmdzLnRwbCcpOwoJCWZvcmVhY2ggKCRkZWxldGVmaWxlcyBhcyAkZGVsZXRlZmlsZSkgQHVubGluaygkZGVsZXRlZmlsZSk7CgoJCS8vIGN1cnJlbnQgdmVyc2lvbjogMS4xCgoJY2FzZSAiMS4xIjoKCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FkbWluX3NlY3Rpb24nLCAnZXh0ZW5zaW9ucycpOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY3VzdG9tZ3MiLCAiY2xlYXJjYWNoZSBJIik7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkvLyBjdXJyZW50IHZlcnNpb246IDEuMgoJCQoJY2FzZSAiMS4yIjoKCgkJLy8gY3VycmVudCB2ZXJzaW9uOiAxLjMKCn0KPz4=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_fielddefs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRpdGVtc3xAY291bnQgPiAwfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRuZXdmaWVsZGRlZmxpbmt9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KeyRmb3Jtc3RhcnR9Cjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGggY2xhc3M9InBhZ2V3MjUiPnskbmFtZX08L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2V3MjUiPnskdHlwZX08L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2V3MjUiPnskc21hcnR5dmFyfTwvdGg+CiAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CiAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CiAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CiAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+Cntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9CgkJe2N5Y2xlIHZhbHVlcz0icm93MSxyb3cyIiBhc3NpZ249cm93Y2xhc3N9CiAgICA8dHIgY2xhc3M9Inskcm93Y2xhc3N9Ij4KICAgICAgPHRkPnskZW50cnktPm5hbWV9PC90ZD4KICAgICAgPHRkPnskZW50cnktPnR5cGV9PC90ZD4KICAgICAgPHRkPnskZW50cnktPnNtYXJ0eXZhcn08L3RkPgogICAgICA8dGQ+eyRlbnRyeS0+bW92ZXVwfTwvdGQ+CiAgICAgIDx0ZD57JGVudHJ5LT5tb3ZlZG93bn08L3RkPgogICAgICA8dGQ+eyRlbnRyeS0+ZWRpdGxpbmt9PC90ZD4KICAgICAgPHRkPnskZW50cnktPmRlbGV0ZWxpbmt9PC90ZD4KICAgIDwvdHI+CnsvZm9yZWFjaH0KPC90YWJsZT4KCnskZm9ybWVuZH0KPC9kaXY+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRuZXdmaWVsZGRlZmxpbmt9PC9wPgo8L2Rpdj4K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_general.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9tb2R1bGVzL0N1c3RvbUdTL2xpYi9qcXVlcnkvanF1ZXJ5LXVpLXRpbWVwaWNrZXItYWRkb24uanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KCQkkKGZ1bmN0aW9uKCkgew0Key9saXRlcmFsfXskRFBfbG9jYWxlfXtsaXRlcmFsfQ0KCQkJJCgnLmRhdGVwaWNrZXIgaW5wdXQnKS5kYXRlcGlja2VyKHsNCgkJCQlkYXRlRm9ybWF0OiAneXktbW0tZGQnLA0KCQkJCXNob3dPdGhlck1vbnRoczogdHJ1ZSwNCgkJCQlzZWxlY3RPdGhlck1vbnRoczogdHJ1ZQ0KCQkJfSk7DQoJCQkkKCcuZGF0ZXRpbWVwaWNrZXIgaW5wdXQnKS5kYXRldGltZXBpY2tlcih7DQoJCQkJZGF0ZUZvcm1hdDogJ3l5LW1tLWRkJywNCgkJCQlzaG93T3RoZXJNb250aHM6IHRydWUsDQoJCQkJc2VsZWN0T3RoZXJNb250aHM6IHRydWUNCgkJCX0pOw0KCQkJJCgnLnRpbWVwaWNrZXIgaW5wdXQnKS50aW1lcGlja2VyKHt9KTsNCgkJfSk7DQo8L3NjcmlwdD4NCnsvbGl0ZXJhbH0NCg0KeyRzdGFydGZvcm19DQoNCntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9DQoNCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgCQk8cCBjbGFzcz0icGFnZXRleHQiPntpZiAkZW50cnktPnR5cGUgIT0gJ2J1dHRvbid9eyRlbnRyeS0+bmFtZX06PC9wPg0KICAgCQk8cCBjbGFzcz0icGFnZWlucHV0eyRlbnRyeS0+ZmllbGRjbGFzc30iPnsvaWZ9eyRlbnRyeS0+ZmllbGRodG1sfTwvcD4NCiAgIAkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRlbnRyeS0+aGVscH08L3A+DQoJPC9kaXY+DQp7L2ZvcmVhY2h9DQoNCgk8aHIgLz4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdWJtaXR9eyRjYW5jZWx9PC9wPg0KCTwvZGl2Pg0KDQp7JGVuZGZvcm19DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_options.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2N1c3RvbV9tb2R1bGVuYW1lfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfY3VzdG9tX21vZHVsZW5hbWV9PGJyIC8+eyRoZWxwX2N1c3RvbV9tb2R1bGVuYW1lfTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfYWRtaW5fc2VjdGlvbn06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2FkbWluX3NlY3Rpb259PGJyIC8+eyRoZWxwX2FkbWluX3NlY3Rpb259PC9wPg0KCTwvZGl2Pg0KPGhyIC8+CQ0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH17JGNhbmNlbH08L3A+DQoJPC9kaXY+DQp7JGVuZGZvcm19]]></data>
	</file>
	<file>
	  <filename>/templates/editfielddef.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsNCgkkKCcjbWF4bGVuZ3RoJykuaGlkZSgpOw0KCSQoJyNwcm9wZXJ0aWVzJykuaGlkZSgpOw0KCSQoJyNwYXJzZXNtYXJ0eScpLmhpZGUoKTsNCgkkKCcjZmllbGR0eXBlJykuY2hhbmdlKGZ1bmN0aW9uKCkgew0KCQlpZiAoJCgnI2ZpZWxkdHlwZScpLnZhbCgpID09ICd0ZXh0ZmllbGQnKQ0KCQl7DQoJCQkkKCcjbWF4bGVuZ3RoJykuc2xpZGVEb3duKCdzbG93Jyk7DQoJCQkkKCcjcHJvcGVydGllcycpLnNsaWRlVXAoJ3Nsb3cnKTsNCgkJCSQoJyNwYXJzZXNtYXJ0eScpLnNsaWRlVXAoJ3Nsb3cnKTsNCgkJfQ0KCQllbHNlIGlmICgkKCcjZmllbGR0eXBlJykudmFsKCkgPT0gJ3B1bGxkb3duJyB8fCAkKCcjZmllbGR0eXBlJykudmFsKCkgPT0gJ3JhZGlvYnV0dG9ucycpDQoJCXsNCgkJCSQoJyNtYXhsZW5ndGgnKS5zbGlkZVVwKCdzbG93Jyk7DQoJCQkkKCcjcHJvcGVydGllcycpLnNsaWRlRG93bignc2xvdycpOw0KCQkJJCgnI3BhcnNlc21hcnR5Jykuc2xpZGVVcCgnc2xvdycpOw0KCQl9DQoJCWVsc2UgaWYgKCQoJyNmaWVsZHR5cGUnKS52YWwoKSA9PSAndGV4dGFyZWEnIHx8ICQoJyNmaWVsZHR5cGUnKS52YWwoKSA9PSAnd3lzaXd5ZycpDQoJCXsNCgkJCSQoJyNtYXhsZW5ndGgnKS5zbGlkZVVwKCdzbG93Jyk7DQoJCQkkKCcjcHJvcGVydGllcycpLnNsaWRlVXAoJ3Nsb3cnKTsNCgkJCSQoJyNwYXJzZXNtYXJ0eScpLnNsaWRlRG93bignc2xvdycpOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJJCgnI21heGxlbmd0aCcpLnNsaWRlVXAoJ3Nsb3cnKTsNCgkJCSQoJyNwcm9wZXJ0aWVzJykuc2xpZGVVcCgnc2xvdycpOw0KCQkJJCgnI3BhcnNlc21hcnR5Jykuc2xpZGVVcCgnc2xvdycpOw0KCQl9DQoJfSk7DQoJJCgnI2ZpZWxkdHlwZScpLmNoYW5nZSgpOw0KfSk7DQo8L3NjcmlwdD4NCnsvbGl0ZXJhbH0NCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQo8aDM+eyR0aXRsZX08L2gzPg0KPC9kaXY+DQp7JGZvcm1zdGFydH17JGhpZGRlbn0NCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9uYW1lfTo8L3A+DQogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskbmFtZX08L3A+DQo8L2Rpdj4NCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF90eXBlfTo8L3A+DQogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskdHlwZX08L3A+DQo8L2Rpdj4NCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IiBpZD0ibWF4bGVuZ3RoIj4NCiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9tYXhsZW5ndGh9OjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRtYXhsZW5ndGh9PC9wPg0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyIgaWQ9InByb3BlcnRpZXMiPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3Byb3BlcnRpZXN9OjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRoZWxwX3Byb3BlcnRpZXN9PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHByb3BlcnRpZXN9PC9wPg0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyIgaWQ9InBhcnNlc21hcnR5Ij4NCiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9wYXJzZXNtYXJ0eX06PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHBhcnNlc21hcnR5fTwvcD4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2hlbHB9OjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRoZWxwfTwvcD4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2NsZWFyY2FjaGV9OjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRjbGVhcmNhY2hlfSB7JGhlbHBfY2xlYXJjYWNoZX08L3A+DQo8L2Rpdj4NCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+DQogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fXskY2FuY2VsfTwvcD4NCgk8cD4mbmJzcDs8L3A+DQo8L2Rpdj4NCg0KeyRmb3JtZW5kfQ==]]></data>
	</file>
</module>
