<?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>Products</name>
	<version>2.24</version>
  <mincmsversion>1.12</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+CiAgPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgYSB3YXkgdG8gY29sbGVjdCwgb3JnYW5pemUsIGFuZCBkaXNwbGF5IGluZm9ybWF0aW9uIGFib3V0IHByb2R1Y3RzIGFuZCB0aGVpciBjYXRlZ29yaWVzLiAgVGhpcyBtb2R1bGUgY2FuIHN0YW5kIG9uIGl0cyBvd24sIG9yIGJlIHBhcnQgb2YgYW4gZS1jb21tZXJjZSBzb2x1dGlvbiBpZiB5b3Ugd2lzaC4gIFRoZSBtb2R1bGUgc3VwcG9ydHMgYW4gaXRlbSBleGlzdGluZyBpbiBtb3JlIHRoYW4gb25lIGNhdGVnb3J5LCBzdXBwb3J0cyBpdGVtIHdlaWdodCwgcHJpY2UsIGFuZCBvcHRpb24uICBFYWNoIGl0ZW0gb3B0aW9uIGNhbiBoYXZlIGEgcHJpY2UgYWRqdXN0bWVudC4gIEVhY2ggaXRlbSBjYW4gYmUgc2V0IGFzIHRheGFibGUsIG9yIG5vbiB0YXhhYmxlLjwvcD4KICA8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBtdWx0aXBsZSBjdXN0b20gZmllbGQgZGVmaW5pdGlvbnMsIGFuZCBmb3IgdGhlIGFiaWxpdHkgdG8gZGlzY3JpbWluYXRlIHByaXZhdGUgZnJvbSBwdWJsaWMgZGF0YS48L3A+CjxoMz5GZWF0dXJlczo8L2gzPgo8dWw+CiAgPGxpPk51bWVyb3VzIFZpZXdzPC9saT4KICAgIDx1bD4KICAgICAgPGxpPlN1bW1hcnkgdmlldzwvbGk+CiAgICAgIDxsaT5DYXRlZ29yeSBMaXN0IFZpZXc8L2xpPgogICAgICA8bGk+RGV0YWlsIHZpZXc8L2xpPgogICAgICA8bGk+SGllcmFyY2h5IERyaWxsLWRvd24gVmlldzwvbGk+CiAgICA8L3VsPgogIDxsaT5FbnRpcmVseSBkYXRhYmFzZSB0ZW1wbGF0ZSBkcml2ZW4KICAgIDxwPk51bWVyb3VzIHRlbXBsYXRlcyBvZiBlYWNoIHR5cGUgY2FuIGJlIGRlZmluZWQsIGRlZmF1bHRzIHNwZWNpZmllZCBmb3IgZWFjaCB0eXBlLCBhbmQgdGhlIHRlbXBsYXRlIHVzZWQgZm9yIGVhY2ggcGFydGljdWxhciB2aWV3IGNhbiBiZSBzcGVjaWZpZWQgYXMgYSBwYXJhbWV0ZXI8L3A+CiAgPC9saT4KICA8bGk+U29ydGluZyBhbmQgcGFnaW5hdGlvbiBpbiB0aGUgc3VtbWFyeSB2aWV3PC9saT4KICA8bGk+UHJvZHVjdHMgY2FuIGV4aXN0IGluIG11bHRpcGxlIGNhdGVnb3JpZXM8L2xpPgogIDxsaT5OdW1lcm91cyBjdXN0b20gZmllbGRzIGNhbiBiZSBkZWZpbmVkLCBpbmNsdWRpbmcgaW1hZ2VzPC9saT4KICA8bGk+QXV0b21hdGljIHRodW1ibmFpbCBjcmVhdGlvbjwvbGk+CiAgPGxpPkFkbWluIGRlZmluZWQgZmllbGRzPC9saT4KICA8bGk+UHJvZHVjdCBvcHRpb25zIChpbmNsdWRpbmcgcHJpY2UgYWRqdXN0bWVudCk8L2xpPgogIDxsaT5XZWlnaHQgYW5kIHRheGFibGUgZmllbGRzIChmb3IgdXNlIGluIGUtY29tbWVyY2Ugc29sdXRpb25zKTwvbGk+CiAgPGxpPlByb2R1Y3RzIGNhbiBoYXZlIGEgc3RhdHVzIChwdWJsaXNoZWQgb3IgZHJhZnQpIGluIG9yZGVyIHRvIGhpZGUgcHJvZHVjdHMgZnJvbSBwdWJsaWMgZGlzcGxheSBhdCBhbnkgdGltZTwvbGk+CiAgPGxpPlByZXR0eSBVUkwgU3VwcG9ydDwvbGk+CiAgPGxpPjxzdHJvbmc+TW9yZS4uLjwvc3Ryb25nPjwvbGk+CjwvdWw+Cgo8aDM+SG93IERvIEkgVXNlIEl0OjwvaDM+CjxvbD4KPGxpPlNldCBwcmVmZXJlbmNlcwogIDxwPlVzdWFsbHkgdGhpcyBpcyBqdXN0IGEgZm9ybWFsaXR5LiAgWW91IHNob3VsZCBzcGVjaWZ5IHlvdXIgZGVmYXVsdCB3ZWlnaHQgdW5pdHMsIGFuZCB5b3VyIGRlZmF1bHQgY3VycmVuY3kgc3ltYm9sIGZvciB5b3VyIGxvY2FsIGVudmlyb25tZW50LjwvcD4KPC9saT4KPGxpPlNldHVwIHVzZXJzIGFuZCBwZXJtaXNzaW9ucwogIDxwPlRoaXMgbW9kdWxlIHVzZXMgdGhlICdNb2RpZnkgVGVtcGxhdGVzJyBwZXJtaXNzaW9uIHRvIGFsbG93IHVzZXJzIHRvIGJlIGFibGUgdG8gbW9kaWZ5IHRoZSB2YXJpb3VzIHRlbXBsYXRlcyB0aGF0IGNhbiBiZSB1c2VkIGJ5IHRoaXMgbW9kdWxlLiAgQXMgd2VsbCwgdGhlICdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycgcGVybWlzc2lvbiBpcyBuZWVkZWQgdG8gYmUgYWJsZSB0byBhZGp1c3QgdGhlIG1vZHVsZXMgcHJlZmVyZW5jZXMuICBJbiBvcmRlciB0byBoYXZlIHRoZSBhYmlsaXR5IHRvIG1vZGlmeSBmaWVsZCBkZWZpbml0aW9ucywgY2F0ZWdvcmllcywgb3IgcHJvZHVjdHMsIHlvdXIgdXNlcnMgd2lsbCBuZWVkIHRoZSAnTW9kaWZ5IFByb2R1Y3RzJyBwZXJtaXNzaW9uLjwvcD4KPC9saT4KPGxpPihvcHRpb25hbCkgRGVmaW5lIG9uZSBvciBtb3JlIGNhdGVnb3JpZXMKICA8cD5UaGlzIGlzIGFuIG9wdGlvbmFsIHN0ZXAsIGJ1dCB5b3Ugd2lsbCBwcm9iYWJseSB3YW50IHRvIGRvIHRoaXMgZWFybHkgdG8gcHJldmVudCBoYXZpbmcgdG8gZ28gYmFjayB0byBtb2RpZnkgZWFjaCBhbmQgZXZlcnkgcHJvZHVjdCBsYXRlci4gIEFkZGluZyBhIGNhdGVnb3J5IGlzIGFzIHNpbXBsZSBhcyBjbGlja2luZyBvbiB0aGUgJ0NhdGVnb3JpZXMnIHRhYiBpbiB0aGUgUHJvZHVjdCBNYW5hZ2VycyBhZG1pbiBzZWN0aW9uLCBhbmQgY2xpY2tpbmcgJ0FkZCBBIENhdGVnb3J5Jy4gIEZyb20gdGhlcmUgeW91IHdpbGwgYmUgcHJvbXB0ZWQgZm9yIGEgY2F0ZWdvcnkgbmFtZS48L3A+CjwvbGk+CjxsaT4ob3B0aW9uYWwpIERlZmluZSBhIHByb2R1Y3QgaGllcmFyY2h5LgogIDxwPllvdSBjYW4gb3JnYW5pemUgeW91ciBwcm9kdWN0cyBpbnRvIGEgaGllcmFyY2h5LiAgVGhlIGhpZXJhcmNoeSBpcyBzaW1pbGFyIHRvIGNhdGVnb3JpZXMgZXhjZXB0IHRoYXQgZWFjaCBub2RlIGluIHRoZSBoaWVyYXJjaHkgY2FuIGhhdmUgemVybyBvciBtb3JlIGNoaWxkcmVybi4gIEEgcHJvZHVjdCBjYW4gb25seSBiZWxvbmcgdG8gb25lIHBsYWNlIGluIHRoZSBoaWVyYXJjaHkuPC9wPgo8L2xpPgo8bGk+KG9wdGlvbmFsKSBEZWZpbmUgb25lIG9yIG1vcmUgY3VzdG9tIGZpZWxkcwogIDxwPlRoaXMgaXMgYW4gb3B0aW9uYWwgc3RlcC4gIEN1c3RvbSBmaWVsZHMgYXJlIG5vdCBuZWVkZWQgaWYgdGhpcyBtb2R1bGUgc3VpdHMgeW91IGV4YWN0bHkgYXMgaXQgaXMuICBIb3dldmVyIGlmIHlvdSB3b3VsZCBsaWtlIHRvIHN0b3JlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gZm9yIGVhY2ggb2YgeW91ciBwcm9kdWN0cyB5b3UgY2FuIGNyZWF0ZSBjdXN0b20gZmllbGRzLiAgQ3JlYXRpbmcgY3VzdG9tIGZpZWxkcyBpcyBzaW1pbGFyIHRvIGNyZWF0aW5nIGNhdGVnb3JpZXMsIGV4Y2VwdCB0aGF0IG1vcmUgZGF0YSBpcyByZXF1ZXN0ZWQuPC9wPgo8cD5DdXJyZW50bHkgYSBudW1iZXIgb2YgdHlwZXMgb2YgY3VzdG9tIGZpZWxkcyBhcmUgYXZhaWxhYmxlLCBpbmNsdWRpbmc6ICd0ZXh0Ym94JywnY2hlY2tib3gnLGFuZCAndGV4dGFyZWEnLCAnZHJvcGRvd24nLCBhbmQgJ2ZpbGUnLiAgU2VsZWN0IG9uZSBvZiB0aGVzZSwgZ2l2ZSB5b3VyIG5ldyBmaWVsZCBhIG5hbWUsIGFuZCBpbmRpY2F0ZSB3ZXRoZXIgdGhhdCBmaWVsZCBzaG91bGQgYmUgdmlzaWJsZSB0byB0aGUgcHVibGljIGluIHRoZSB2YXJpb3VzIHZpZXdzLiAgVGhlbiBoaXQgc3VibWl0PC9wPgo8L2xpPgo8bGk+Q3JlYXRlIG9uZSBvciBtb3JlIHByb2R1Y3RzPC9saT4KPHA+WW91IHNob3VsZCBjcmVhdGUgb25lIG9yIG1vcmUgcHJvZHVjdHMgdG8gZGlzcGxheSBpbiB5b3VyIHdlYnNpdGUgY29udGVudC4gIEdpdmUgZWFjaCBwcm9kdWN0IGEgbmFtZSwgYSBwcmljZSAob3B0aW9uYWwpIGEgd2VpZ2h0IChvcHRpb25hbCksIGEgc3RhdHVzIChkcmFmdCBvciBwdWJsaXNoZWQpLCBhbmQgc29tZSBpbmZvcm1hdGlvbi4gIEFkZGl0aW9uYWxseSwgeW91IGNhbiBhbHNvIHNwZWNpZnkgaWYgdGhlIHByb2R1Y3QgaXMgdGF4YWJsZS48L3A+CjxwPklmIGNhdGVnb3JpZXMgYXJlIGRlZmluZWQsIHRoZW4gYSBtdWx0aXNlbGVjdCBmaWVsZCB3aWxsIGFwcGVhciBhbGxvd2luZyB5b3UgdG8gc2VsZWN0IHRoZSBjYXRlZ29yaWVzIGZvciB0aGUgaXRlbS48L3A+CjxwPklmIGN1c3RvbSBmaWVsZHMgYXJlIGRlZmluZWQsIHRoZW4gaW5wdXQgZmllbGRzIGFwcHJvcHJpYXRlIHRvIHRoZSB0eXBlIG9mIGN1c3RvbSBmaWVsZCB3aWxsIGFwcGVhciBhbmQgYWxsb3cgeW91IHRvIHNwZWNpZnkgZGF0YSBmb3IgZWFjaCBvZiB0aGVtLiAgVGhpcyBkYXRhIGlzIG9wdGlvbmFsLjwvcD4KPGxpPkFkZCB0aGUgYXBwcm9wcmlhdGUgdGFncyBpbnRvIHlvdXIgcGFnZSB0ZW1wbGF0ZXMgb3IgcGFnZSBjb250ZW50PC9saT4KPHA+VGhpcyBjYW4gYmUgYXMgc2ltcGxlIGFzIGFkZGluZyB0aGUgPHN0cm9uZz57UHJvZHVjdHN9PC9zdHJvbmc+IHRhZyBpbnRvIHRoZSBjb250ZW50IGFyZWEgb2Ygb25lIG9mIHlvdXIgcGFnZXMsIG9yIGludG8geW91ciBwYWdlIHRlbXBsYXRlLjwvcD4KPHA+SWYgeW91IHdpc2ggdG8gYWx0ZXIgdGhlIGJlaGF2aW91ciBvZiB0aGlzIGFwcGxpY2F0aW9uIGZyb20gaXRzIGRlZmF1bHQsIHlvdSBjYW4gZG8gdGhhdCBieSBhZGRpbmcgb25lIG9yIG1vcmUgcGFyYW1ldGVycyB0byB0aGUgPHN0cm9uZz57UHJvZHVjdHN9PC9zdHJvbmc+IHRhZy4gIFRoZSBjb21wbGV0ZSBsaXN0IG9mIHBhcmFtZXRlcnMgYW5kIHRoZWlyIGJlaGF2aW91ciBpcyBsaXN0ZWQgYmVsb3cuICBCdXQgZm9yIGV4YW1wbGUsIHRvIGRpc3BsYXkgYSBsaXN0IG9mIGl0ZW1zIGluIGEgc2luZ2xlLCBleGlzdGluZyBjYXRlZ29yeSwgeW91IGNvdWxkIHVzZSBhIHRhZyBsaWtlIDxjb2RlPntQcm9kdWN0cyBjYXRlZ29yeT0nY2F0ZWdvcnluYW1lJ308L2NvZGU+PC9wPgo8L29sPgoKPGgzPlByZXR0eSBVUkxTPC9oMz4KPHA+SWYgeW91IGhhdmUgZW5hYmxlZCBwcmV0dHkgVVJMUyBpbiB0aGUgQ01TTVMgY29uZmlnIGZpbGUgPGVtPihlaXRoZXIgbW9kX3Jld3JpdGUsIG9yIGludGVybmFsIHByZXR0eSBVUkxTKTwvZW0+IFRoZW4gdGhpcyBtb2R1bGUgaXMgY2FwYWJsZSBvZiBnZW5lcmF0aW5nIHByZXR0eSBVUkxTIGZvciB2YXJpb3VzIGxpbmtzIHRvIHByb2R1Y3Qgdmlld3MuICBUaGVyZSBpcyBhbHNvIHRoZSBwb3dlciB0byBjb21wbGV0ZWx5IGN1c3RvbWl6ZSB0aGUgVVJMIHRvIGEgcHJvZHVjdCBkZXRhaWwgdmlldy4gIFRoZXJlIGFyZSBhIGZldyBzZXR0aW5ncyBpbiB0aGUgbW9kdWxlJ3MgYWRtaW4gcGFuZWxzIHRvIGNvbmZpZ3VyZS48L3A+CjxoND5VUkwgU2x1Z3M6PC9oND4KPHA+VVJMIFNsdWdzIGFyZSBwb3J0aW9ucyBvZiBhIFVSTCB0aGF0IGFyZSBhcHBlbmRlZCB0byB0aGUgcm9vdCB1cmwgKGFsb25nIHdpdGggdGhlIFVSTCBwcmVmaXggZGVzY3JpYmVkIGJlbG93KSB0byBhbGxvdyB1bmlxdWVseSBzcGVjaWZ5aW5nIGEgVVJMIHRvIGFuIGluZGl2aWR1YWwgcHJvZHVjdC4gIFVSTCBTbHVncyAoYmFzaWNhbGx5IGZpeGVkIHN0cmluZyByb3V0ZXMpIG11c3QgYmUgdW5pcXVlIGFjcm9zcyB0aGUgZW50aXJlIHdlYnNpdGUsIGFuZCBhbiBlcnJvciB3aWxsIGJlIGdlbmVyYXRlZCBpZiB0aGUgc2x1ZyBwcm92aWRlZCBpcyBhbHJlYWR5IGluIHVzZS48L3A+CjxwPldoZW4gYSBuZXcgcHJvZHVjdCBpcyBjcmVhdGVkLCBvciBhIHByb2R1Y3Qgd2l0aG91dCBhIFVSTCBzbHVnIGlzIGVkaXRlZCwgdGhlIHN5c3RlbSB3aWxsIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBVUkwgc2x1ZyBiYXNlZCBvbiB0aGUgcHJvZHVjdCBuYW1lLCB0aGUgc2VsZWN0ZWQgaGllcmFyY2h5IGxldmVsLCB0aGUgc2VsZWN0ZWQgY2F0ZWdvcmllcywgYW5kIHRoZSBzbHVnIHRlbXBsYXRlIGluIHRoZSBwcmVmZXJlbmNlcyBwYW5lbC4gIFlvdSBtYXkgYWxzbyBlbnRlciB5b3VyIG93biBVUkwgc2x1ZyBpbiB0aGUgYXBwcm9wcmlhdGUgZmllbGQgb2YgdGhlIGZvcm0uPC9wPgo8cD5UaGUgc3lzdGVtIHdpbGwgbmV2ZXIgYXV0b210aWNhbGx5IGFkanVzdCBhbiBleGlzdGluZyBVUkwgc2x1ZywgZXZlbiBpZiB5b3UgbW92ZSB0aGUgcHJvZHVjdCB0byBhIGRpZmZlcmVudCBsZXZlbCBvZiB0aGUgaGllcmFyY2h5LCBvciBjaGFuZ2UgdGhlIHNsdWcgdGVtcGxhdGUuICBBZGp1c3RpbmcgYSBVUkwgc2x1ZyBtdXN0IGludm9sdmUgYW4gYXV0aG9yaXplZCBhZG1pbmlzdHJhdG9yLCBhbmQgc2hvdWxkIGJlIGRvbmUgd2l0aCBjYXV0aW9uIGZvciBTRU8gcHVycG9zZXMuPC9wPgoKPGg0Pk9wdGlvbnM6PC9oND4KPHVsPgogIDxsaT5EZWZhdWx0IERldGFpbCBQYWdlICA8c3Ryb25nPipyZXF1aXJlZCo8L3N0cm9uZz46CiAgICA8cD5XaGVuIHVzaW5nIHByZXR0eSBVUkxTLCBhbmQgZWl0aGVyIGEgVVJMIHNsdWcgZXhpc3RzLCBvciB0aGUgJnF1b3Q7VXNlIEhpZXJhcmNoeSBQYXRoJnF1b3Q7IHByZWZlcmVuY2UgPGVtPihkZXNjcmliZWQgYmVsb3cpIGlzIGVuYWJsZWQsIGEgcGFnZSBpZCB3aWxsIG5vdCBiZSBzcGVjaWZpZWQgb24gdGhlIFVSTC4gIEZvciB0aGlzIHB1cnBvc2UgaXQgaXMgbmNlc3NhcnkgdG8gdGVsbCB0aGUgbW9kdWxlIHdoaWNoIGNvbnRlbnQgcGFnZSB0aGUgZGV0YWlsIHZpZXcgc2hvdWxkIGJlIGRpc3BsYXllZCBvbi48L3A+CiAgPC9saT4KCiAgPGxpPlByZWZpeCB0byB1c2Ugb24gYWxsIFVSTFMgdGFyZ2V0ZWQgdG8gdGhpcyB0aGlzIG1vZHVsZToKICAgICA8cD5UaGlzIHByZWZlcmVuY2UgaXMgYW4gb3B0aW9uYWwgc3RyaW5nIHRoYXQgd2lsbCBiZSBwcmVwZW5kZWQgdG8gZWFjaCBhbmQgZXZlcnkgcHJldHR5IFVSTCBnZW5lcmF0ZWQgYnkgdGhlIHByb2R1Y3RzIG1vZHVsZS4gIFRoaXMgbWF5IGJlIG5lY2Vzc2FyeSB0byBlbnN1cmUgdW5pcXVlbmVzcyBhY3Jvc3MgdGhlIHdlYnNpdGUsIGFuZCBmb3Igb3JnYW5pemF0aW9uYWwgcHVycG9zZXMuPC9wPgogIDwvbGk+CgogIDxsaT5Vc2UgSGllcmFyY2h5IFBhdGggaW4gSXRlbSBEZXRhaWwgVVJMUzoKICAgIDxwPlRoaXMgYm9vbGVhbiBwcmVmZXJlbmNlIGluZGljYXRlcyB0aGF0IHdoZW4gY3JlYXRpbmcgYSBkZXRhaWwgVVJMIHRvIGEgcHJvZHVjdCwgYW5kIG5vIFVSTCBzbHVncyBhcmUgcHJlc2VudCBhbiBhdHRlbXB0IHNob3VsZCBiZSBtYWRlIHRvIHVzZSB0aGUgaGllcmFyY2h5IHBhdGggaW4gdGhlIFVSTC48L3A+CiAgICA8cD5UaGlzIGlzIHByb2JsZW1hdGljIHNvbHV0aW9uIHJlbWFpbmluZyBvbmx5IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBwdXJwb3NlcywgYXMgaWYgYSBwcm9kdWN0IGlzIGV2ZXIgbW92ZWQgdG8gYSBkaWZmZXJlbnQgcGxhY2UgaW4gdGhlIGhpZXJhcmNoeSB0cmVlLCBvciBldmVuIGlmIHRoZSBzcGVsbGluZyBvZiBvbmUgb2YgdGhlIHBhdGhzIGluIHRoZSBoaWVyYXJjaHkgcGF0aCBjaGFuZ2VzLCB0aGUgVVJMIHdvdWxkIGNoYW5nZS4gIFRoaXMgaXMgbm90IGEgZ29vZCBzb2x1dGlvbiBmb3IgU0VPIHB1cnBvc2VzLCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkLjwvcD4KICA8L2xpPgo8L3VsPgoKPGgzPlNLVSBhbmQgUXVhbnRpdHkgSGFuZGxpbmc8L2gzPgo8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBhIHVuaXF1ZSBmaWVsZCBmb3IgZWFjaCBpdGVtIDxlbT4oYW5kIGl0ZW0gb3B0aW9uKTwvZW0+LiAgVGhlIFNLVSB2YWx1ZSBjYW4gYmUgdXNlZCB0byB1bmlxdWVseSBpZGVudGlmeSBhbiBpdGVtIG9yIG9wdGlvbi4gIFdoZW4gdXNpbmcgdGhpcyBzeXN0ZW0gYXMgYW4gZS1jb21tZXJjZSBzeXN0ZW0gZWFjaCBpdGVtIGFuZCBvcHRpb24gaXMgcmVxdWlyZWQgdG8gaGF2ZSBhIFNLVS48L3A+CjxoMz5Qcm9kdWN0IE9wdGlvbnM8L2gzPgo8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyB0aGUgY2FwYWJpbGl0eSBvZiBoYW5kbGluZyA8ZW0+KG9wdGlvbnMpPC9lbT4gdG8gYmFzZSBpdGVtcy4gIE9wdGlvbnMgY2FuIGJlIHVzZWQgZm9yIG1ha2luZyBkaWZmZXJlbnQgc2l6ZXMsIG9yIGNvbG9ycyBvZiBhbiBpdGVtIGF2YWlsYWJsZSBpbiB0aGUgY2FydC4gICBFYWNoIG9wdGlvbiBjYW4gaGF2ZSBhIGRlc2NyaXB0aW9uLCBhIHByaWNlIDxlbT4ob3IgcHJpY2UgYWRqdXN0bWVudCk8L2VtPiBhbmQgYSBTS1UgZm9yIGUtY29tbWVyY2UgcHVycG9zZXMuPC9wPgo8aDQ+UHJvZHVjdCBBdHRyaWJ1dGVzPC9oND4KPHA+T2xkZXIgdmVyc2lvbnMgb2YgdGhlIHByb2R1Y3RzIG1vZHVsZSBoYWQgYSBjb25jZXB0IG9mIGl0ZW0gJnF1b3Q7YXR0cmlidXRlcyZxdW90Oy4gIFRoZXJlIHdhcyB0aGUgY29uY2VwdCBvZiBtdWx0aXBsZSBhdHRyaWJ1dGVzLCBhbmQgZWFjaCBhdHRyaWJ1dGUgY291bGQgaGF2ZSBudW1lcm91cyBvcHRpb25zLiAgIFRoaXMgZnVuY3Rpb25hbGl0eSBoYXMgYmVlbiByZW1vdmVkIGFuZCByZXBsYWNlZCB3aXRoIGl0ZW0gb3B0aW9ucy4gICBUaGVyZSB3aWxsIGJlIHNvbWUgZGlmZmljdWx0eSB3aXRoIHRoZSB1cGdyYWRlIHByb2Nlc3MgYmVjYXVzZSBvZiB0aGlzLjwvcD4KPGgzPlNtYXJ0eSBQbHVnaW5zPC9oMz4KPHA+VGhpcyBtb2R1bGUgYWxzbyByZWdpc3RlcnMgb25lIG9yIG1vcmUgc21hcnR5IHBsdWdpbnMgdG8gYWlkZSBpbiByZXRyaWV2aW5nIHZhcmlvdXMgcHJvZHVjdHMgcmVsYXRlZCBpbmZvcm1hdGlvbiB3aGVuIGRlc2lnbmluZyBwcm9kdWN0cyBtb2R1bGUgdGVtcGxhdGVzOjwvcD4KPHVsPgogIDxsaT57cHJvZHVjdHNfZ2V0Y2F0ZWdvcnkgY2F0ZWdvcnlpZD0nOTknIFthc3NpZ249J3RtcCddfQogIDxwPlRoaXMgcGx1Z2luIGFsbG93cyByZXRyaWV2aW5nIGFsbCBvZiB0aGUgaW5mb3JtYXRpb24gZm9yIGEgc3BlY2lmaWMgY2F0ZWdvcnkgaWQgYW5kIG9wdGlvbmFsbHkgYXNzaWduaW5nIGl0IHRvIHRoZSBuYW1lZCBzbWFydHkgdmFyaWFibGUuICBUaGUgcmV0dXJuZWQgaXMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgYWxsIG9mIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBhIGNhdGVnb3J5LCBpbmNsdWRpbmcgaXRzIGZpZWxkIHZhbHVlcy48YnIvPmkuZTouIDxjb2RlPntwcm9kdWN0c19nZXRjYXRlZ29yeSBjYXRlZ29yeWlkPTEgYXNzaWduPSd0bXAnfUNhdGVnb3J5IG5hbWUgPSB7XCR0bXAtPm5hbWV9PC9jb2RlPjwvcD4KICA8L2xpPgogIDxsaT57cHJvZHVjdHNfaGllcmFyY2h5X2JyZWFkY3J1bWIgaGllcmFyY2h5aWQ9Jzk5JyBbcGFnZWlkPWFsaWFzXSBbZGVsaW09JyAmcmFxdW8gJ11bYXNzaWduPSd0bXAnXX0KICA8cD5UaGlzIHBsdWdpbiBhbGxvd3MgcmV0cmlldmluZyB0aGUgYnJlYWRjcnVtYiBwYXRoIHRvIGEgcGFydGljdWxhciBoaWVyYXJjaHkgaWQgYW5kIG9wdGlvbmFsbHkgYXNzaWduaW5nIGl0IHRvIHRoZSBuYW1lZCBzbWFydHkgdmFyaWFibGUuICBUaGlzIHBsdWdpbiB3aWxsIG91dHB1dCB6ZXJvIG9yIG1vcmUgbGlua3MgdG8gaGllcmFyY2h5IHZpZXdzIHdpdGggb25lIGxpbmsgZm9yIGVhY2ggbGV2ZWwgaW4gdGhlIGhpZXJhcmNoeS4gIFRvIHNwZWNpZnkgYSBkaWZmZXJlbnQgZGVsaW1pdGVyIHVzZSB0aGUgImRlbGltIiBhcmd1bWVudC4gIElmIGFuIGVtcHR5IGRlbGltaXRlciBpcyBzcGVjaWZpZWQsIHRoZW4gYW4gYXJyYXkgb2YgbGlua3Mgd2lsbCBiZSByZXR1cm5lZCByYXRoZXIgdGhhbiBvbmUgY29uaW51b3VzIGh0bWwgc2VnbWVudC4gIFRvIHNwZWNpZnkgYSBkaWZmZXJlbnQgcGFnZSBpZCBmb3J0aGUgbGlua3MsIHVzZSB0aGUgcGFnZWlkIGF0dHJpYnV0ZS4gICBJZiB0aGUgcGFnZWlkIGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCBhbmQgdGhlIGhpZXJhcmNoeSBpZCBwcmVmZXJlbmNlIGlzIHNldCBpdCB3aWxsIGJlIHVzZWQuICBPdGhlcndpc2UgdGhlIGN1cnJlbnQgcGFnZSBpZCB3aWxsIGJlIHVzZWQuPC9wPgogIDwvbGk+CiAgPGxpPntwcm9kdWN0c19oaWVyYXJjaHlfcGFyZW50IGhpZXJhcmNoeWlkPTk5IFthc3NpZ249J3RtcCddfQogIDxwPlRoaXMgcGx1Z2luIHdpbGwgcmV0dXJuIHRoZSBwYXJlbnQgaGllcmFyY2h5IGlkIGZvciBhIGdpdmVuIGhpZXJhcmNoeSBpZC4gIElmIHRoZSBzcGVjaWZpZWQgaGllcmFyY2h5IGlkIGRvZXMgbm90IGV4aXN0LCB0aGVuIG5vdGhpbmcgd2lsbCBiZSByZXR1cm5lZC4gIGlmIHRoZSBzcGVjaWZpZWQgaGllcmFyY2h5IGlkIGRvZXMgbm90IGhhdmUgYSBwYXJlbnQgdGhpcyBwbHVnaW4gd2lsbCByZXR1cm4gLTEuPC9wPgogIDwvbGk+CjwvdWw+CjxoMz5UaGUgPGVtPmFqYXhfcHJvcHZhbDwvZW0+IEFjdGlvbjwvaDM+CiAgPHA+VGhlIDxlbT5hamF4X3Byb3B2YWw8L2VtPiBpcyBhIHNwZWNpYWwgYWN0aW9uIHRoYXQgaXMgdXNlZCB0byByZXR1cm4gdGhlIGRpc3RpbmN0IHZhbHVlcyBvZiBhIGN1c3RvbSBmaWVsZCwgb3IgYSBwcm9wZXJ0eSB2aWEganNvbi4gIFR5cGljYWxseSB0aGlzIGFjdGlvbiBpcyB1c2VkIHRvIHBlcmZvcm0gYXV0b2NvbXBsZXRlIGFjdGlvbnMsIGFuZCB1c3VhbGx5IGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIHNlYXJjaCBhY3Rpb24uICBUaGlzIGFjdGlvbiBhY2NlcHRzIHRoZSBwYXJhbWV0ZXJzOiBmaWVsZCBmb3IgdGhlIG5hbWUgb2YgdGhlIGZpZWxkLCBhbmQgZmllbGR2YWwgZm9yIGluZGljYXRpbmcgYSBzdGFydGluZyB2YWx1ZS4gIE5vbmUgb2YgdGhlIHBhcmFtZXRlcnMgY2FuIGJlIGVtcHR5LiAgQmVsb3cgeW91IHdpbGwgZmluZCBhIHNpbXBsZSBleGFtcGxlIG9mIHVzaW5nIHRoZSBhamF4X3Byb3B2YWwgYWN0aW9uIHRvIHBlcmZvcm0gYXV0b2NvbXBsZXRlIGZvciBpdGVtIG5hbWVzIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIHNlYXJjaCB0ZW1wbGF0ZS48L3A+CjxwcmU+PGNvZGU+Jmx0O3NjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiJmd0O3tsaXRlcmFsfQokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogIHZhciBhamF4X3VybCA9ICd7L2xpdGVyYWx9PHNwYW4gc3R5bGU9ImNvbG9yOiBncmVlbjsiPnttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPVByb2R1Y3RzIGFjdGlvbj1hamF4X3Byb3B2YWwgdXJsb25seT0xIGpzZnJpZW5kbHk9MX08L3NwYW4+e2xpdGVyYWx9JzsKICBhamF4X3VybCA9IGFqYXhfdXJsICsgPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4nJnNob3d0ZW1wbGF0ZT1mYWxzZSc8L3NwYW4+OwoKICAkKDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPicjcHJvZHVjdG5hbWUnPC9zcGFuPikuYXV0b2NvbXBsZXRlKHsKICAgIHNvdXJjZTogZnVuY3Rpb24ocmVxLGFkZCl7CiAgICAgIHZhciB0bXAgPSAgYWpheF91cmwrPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4nJmNudG50MDFmaWVsZD06Om5hbWU6OiZjbnRudDAxZmllbGR2YWw9Jzwvc3Bhbj4rcmVxLnRlcm07CiAgICAgICQuZ2V0SlNPTih0bXAsZnVuY3Rpb24oanNvbil7CiAgICAgICAgaWYoIGpzb24uc3RhdHVzID09ICdPSycgJiYganNvbi5kYXRhLmxlbmd0aCA+IDApIHsKICAgICAgICAgIGFkZChqc29uLmRhdGEpOwogICAgICAgIH0KICAgICAgfSkKICAgIH0KICB9KTsKfSk7CnsvbGl0ZXJhbH0mbHQ7L3NjcmlwdCZndDsKPC9jb2RlPjwvcHJlPgo8cD5BcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBhYm92ZSBjb2RlIHNuaXBwZXQuLiB0aGUge21vZHVsZV9hY3Rpb25fbGlua30gcGx1Z2luIGZyb20gQ0dTaW1wbGVTbWFydHkgaXMgdXNlZCB0byBnZW5lcmF0ZSBhIHVybCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgYWpheF9wcm9wdmFsIGFjdGlvbi4gIEFmdGVyIHRoYXQgVVJMIGlzIHJldHJpZXZlZCwgdGhlIHNob3d0ZW1wbGF0ZT1mYWxzZSBwYXJhbWV0ZXIgaXMgYWRkZWQgdG8gdGhlIFVSTC4gICBXaGVuIHNldHRpbmcgdXAgdGhlIGF1dG9jb21wbGV0ZSBwbHVnaW4sIHRoZSBjYWxsYmFjayB1c2VkIHRvIGZpbGwgaW4gdGhlIGRhdGEgdmFsdWVzIGZvciB0aGUgZmllbGQgdXNlcyBhamF4LiAgV2UgdGFrZSB0aGUgYWpheF91cmwgYWxyZWFkeSBwcmVwYXJlZCBhbmQgYWRkIHRoZSBmaWVsZD06Om5hbWU6OiBhbmQgZmllbGR2YWw9cmVxLnRlcm0gcGFyYW1ldGVycyB0byB0aGUgVVJMLiAgVGhlIHRlcm0gaXMgYXV0b21hdGljYWxseSBwcm92aWRlZCBieSB0aGUgYXV0b2NvbXBsZXRlIHBsdWdpbiBpbiB0aGUgcmVxLnRlcm0gdmFyaWlhYmxlLjwvcD4KPHA+VG8gdXNlIHRoaXMgZXhhbXBsZSwgdGhlIHVzZXIgd291bGQgbmVlZCB0byBlbnN1cmUgdGhhdCBqcXVlcnkgaXMgbG9hZGVkLCBhbG9uZyB3aXRoIHRoZSBqcXVlcnkgdWkgKGluY2x1ZGluZyBhdXRvY29tcGxldGUpLCBhbmQgYW55IHJlcXVpcmVkIHN0eWxlc2hlZXRzLiAgVGhpcyBjb3VsZCBiZSBkb25lIGVpdGhlciBpbiB0aGUgcGFnZSBzcGVjaWZpYyBtZXRhZGF0YSBmaWVsZCB3aGVuIGVkaXRpbmcgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgc2VhcmNoIGZvcm0sIG9yIGluIHRoZSBwYWdlIHRlbXBsYXRlIGl0c2VsZi48L3A+CjxoMz5JbXBvcnRpbmcgZnJvbSBBU0NJSTwvaDM+CjxwPlRoaXMgbW9kdWxlIGluY2x1ZGVzIGEgZmxleGlibGUgbWVjaGFuaXNtIG9mIGltcG9ydGluZyBhbmQgdXBkYXRpbmcgaXRlbSBpbmZvcm1hdGlvbiBmcm9tIEFTQ0lJIGZpbGVzLiAgVGhlIHN5c3RlbSBoYW5kbGVzIG11bHRpLWxpbmUgcmVjb3JkcyB3aXRoIGRpZmZlcmVudCBsaW5lIGVuZGluZ3MgKFVuaXgvTUFDL0RPUykgYW5kIGRpZmZlcmVudCBmaWVsZCBkZWxpbWl0ZXJzLiAgQ2F0ZWdvcmllcywgaGllcmFyY2h5IGluZm9ybWF0aW9uLCBhbmQgY3VzdG9tIGZpZWxkIGluZm9ybWF0aW9uIGNhbiBiZSBpbXBvcnRlZCBmb3IgZWFjaCBpdGVtLjwvcD4KPHA+VGhlIGltcG9ydCBzeXN0ZW0gaXMgY2FwYWJsZSBvZiBjcmVhdGluZyBuZXcgaXRlbXMsIG9yIHVwZGF0aW5nIGV4aXN0aW5nIG9uZXMsIGNyZWF0aW5nIHVua25vd24gY2F0ZWdvcmllcywgaGllcmFyY2hpZXMsIG9yIGN1c3RvbSBmaWVsZHMsIGFuZCBhdHRhY2hpbmcgaW1hZ2VzIHRvIHVwbG9hZGVkIGZpbGVzLjwvcD4KPGg0PkltYWdlczwvaDQ+CjxwPkltYWdlcyBjYW4gb3B0aW9uYWxseSBiZSBhc3NvY2lhdGVkIHdpdGggaW1wb3J0ZWQgcmVjb3JkcywgYnV0IG11c3QgYmUgcHJldmlvdXNseSB1cGxvYWRlZCB0byBhIGNlbnRyYWwgbG9jYXRpb24uICBXaGVuIGEgaW1hZ2UgZmllbGQgdmFsdWUgc3BlY2lmaWVzIGFuIGltYWdlIGZpbGVuYW1lLCBhbmQgdGhhdCBmaWxlIGV4aXN0cyBpbiB0aGUgc3BlY2lmaWVkIGRpcmVjdG9yeSAocmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyZWN0b3J5KS4gaXQgd2lsbCBiZSBjb3BpZWQgaW50byB0aGUgYXBwcm9wcmlhdGUgcGxhY2UgZm9yIGZ1dHVyZSBkaXNwbGF5IGFuZCBtYW5hZ2VtZW50LjwvcD4KCjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhlIG1vZHVsZSBhdXRob3IgaXMgaW4gbm8gd2F5IG9ibGlnYXRlZCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIHRoaXMgY29kZSBpbiBhbnkgZmFzaGlvbi4gIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5BIGJ1ZyB0cmFja2luZyBhbmQgZmVhdHVyZSByZXF1ZXN0IHN5c3RlbSBoYXMgYmVlbiBjcmVhdGVkIGZvciB0aGlzIG1vZHVsZSA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3Byb2R1Y3RzIj5oZXJlPC9hPi4gIFBsZWFzZSBiZSB2ZXJib3NlIGFuZCBkZXNjcmlwdGl2ZSB3aGVuIHN1Ym1pdHRpbmcgYnVnIHJlcG9ydHMgYW5kIGZlYXR1cmUgcmVxdWVzdHMsIGFuZCBmb3IgYnVnIHJlcG9ydHMgZW5zdXJlIHRoYXQgeW91IGhhdmUgcHJvdmlkZWQgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byByZWxpYWJseSByZXByb2R1Y2UgdGhlIGlzc3VlLjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uICBXaGVuIGRlc2NyaWJpbmcgYW4gaXNzdWUgcGxlYXNlIG1ha2UgYW4gZWZmb3J0IHRvIHByb3ZpZGUgYWxsIHJlbGF2YW50IGluZm9ybWF0aW9uLCBhIHRob3JvdWdoIGRlc2NyaXB0aW9uIG9mIHlvdXIgaXNzdWUsIGFuZCBzdGVwcyB0byByZXByb2R1Y2UgaXQgb3IgeW91ciBkaXNjdXNzaW9uIG1heSBiZSBpZ25vcmVkLjwvbGk+CjxsaT5UaGUgYXV0aG9yLCBjYWxndXkxMDAwLCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkuICBIb3dldmVyLCBwbGVhc2UgdXNlIHRoaXMgYXMgYSBsYXN0IHJlc29ydCwgYW5kIGVuc3VyZSB0aGF0IHlvdSBoYXZlIGZvbGxvd2VkIGFsbCBhcHBsaWNhYmxlIGluc3RydWN0aW9ucyBvbiB0aGUgZm9yZ2UsIGluIHRoZSBmb3J1bXMsIGV0Yy48L2xpPgo8L3VsPgoKPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAwOCwgUm9iZXJ0IENhbXBiZWwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPiZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+CjxwPkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwpNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4Kc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLApidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgpNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCmFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCk9yIHJlYWQgaXQgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5vbmxpbmU8L2E+PC9wPgo8aDM+RGVwZW5kZW5jaWVzPC9oMz48dWw+PGxpPkNHRXh0ZW5zaW9ucyA9Jmd0OyAxLjQ4LjQ8L2xpPjxsaT5DR1NpbXBsZVNtYXJ0eSA9Jmd0OyAxLjg8L2xpPjxsaT5KUXVlcnlUb29scyA9Jmd0OyAxLjMuNTwvbGk+PC91bD48aDM+UGFyYW1ldGVyczwvaDM+PHVsPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGxhbmc9ImVuX1VTIiAtIFBhcmFtZXRlciBpcyB1c2VkIHRvIHNwZWNpZnkgd2hhdCBsYW5ndWFnZSB0byB1c2UgZm9yIGRpc3BsYXkgb24gdGhlIGZyb250ZW5kLiBOb3QgYWxsIG1vZHVsZXMgc3VwcG9ydCBvciBuZWVkIHRoaXMuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBhY3Rpb249ImRlZmF1bHQiIC0gU3BlY2lmeSB0aGUgYmVoYXZpb3VyIG9mIHRoZSBtb2R1bGUuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOgo8dWw+CiAgPGxpPmhpZXJhcmNoeSAtLSBEaXNwbGF5IGFuIGl0ZW0gbGlzdCBieSBoaWVyYXJjaHk8L2xpPgogIDxsaT5jYXRlZ29yeWxpc3QgLSBEaXNwbGF5IGEgbGlzdCBvZiBpdGVtIGNhdGVnb3JpZXM8L2xpPgogIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gRGlzcGxheSBhIHN1bW1hcnkgb2YgaXRlbXM8L2xpPgogIDxsaT5kZXRhaWxzIC0gRGlzcGxheSBhIGRldGFpbCB2aWV3IG9mIGEgc2luZ2xlIGl0ZW08L2xpPgogIDxsaT5maWVsZGxpc3QgLSBEaXNwbGF5IGEgbGlzdCBvZiB2YWx1ZXMgZnJvbSBhIHNwZWNpZmllZCBmaWVsZC4KICAgICA8cD4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7LSBUaGlzIGFjdGlvbiBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYSBuYXZpZ2F0aW9uIGZyb20gdGhlIHZhbHVlcyBvZiBhIHNwZWNpZmljIGZpZWxkLiAgaS5lOiAgeW91IGNvdWxkIGNyZWF0ZSBhIGN1c3RvbSBkcm9wZG93biBmaWVsZCBjYWxsZWQgJnF1b3Q7Y29sb3ImcXVvdDsgYW5kIHRoZW4gY3JlYXRlIGEgbmF2aWdhdGlvbiBiYXNlZCBvbiB0aGUgZGlmZmVyZW50IGNvbG9ycy4KICAgICA8L3A+CiAgPC9saT4KICA8bGk+c2VhcmNoIC0gRGlzcGxheSBhIGZvcm0gdG8gYWxsb3cgc2VhcmNoaW5nIGl0ZW1zIG9uIHZhcmlvdXMgY3JpdGVyaXVtPC9saT4KPGxpPmFqYXhfcHJvcHZhbCAtIFJldHVybiBhIGpzb24gZW5jb2RlZCBsaXN0IG9mIHByb3BlcnR5IHZhbHVlcyBtYXRjaGluZyB0aGUgY3JpdGVyaWEgc3BlY2lmaWVkLiAgVGhpcyBhY3Rpb24gaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB2aWEgYWpheCwgYW5kIHNob3VsZCBiZSBjYWxsZWQgd2l0aCB0aGUgc2hvd3RlbXBsYXRlPWZhbHNlIHBhcmFtZXRlciBvbiB0aGUgVVJMLjwvbGk+CjwvdWw+PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBwcm9kdWN0aWQ9IiIgLSBVc2VmdWwgb25seSB3aXRoIHRoZSBkZXRhaWwgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgd2hhdCBpdGVtIHRvIHVzZSBmb3IgdGhlIGRpc3BsYXkuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBkZXRhaWxwYWdlPSIiIC0gVGhpcyBzcGVjaWZpZXMgdGhlIHBhZ2VpZCBvciBhbGlhcyB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIGRldGFpbCByZXBvcnQuICBJdCBjYW4gYmUgdXNlZCB3aXRoIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IG9yIHNlYXJjaCBhY3Rpb25zLiAgVGhpcyBvcHRpb24gaXMgbm90IGNvbXBhdGlibGUgd2l0aCBwcmV0dHkgdXJscyBvZiBhbnkgc29ydC48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGNhdGVnb3J5bGlzdHRlbXBsYXRlPSIiIC0gVXNlZnVsIG9ubHkgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFuZCBmaWVsZGxpc3QgYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBjYXRlZ29yeWxpc3RkdGx0ZW1wbGF0ZT0iIiAtIFVzZWZ1bCBvbmx5IHdpdGggdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkaXNwbGF5IG9mIHRoZSBjYXRlZ29yeSBkZXRhaWxzLiAgVGhpcyB1c2VzIGEgY2F0ZWdvcnkgbGlzdCB0ZW1wbGF0ZS4uICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZGV0YWlsdGVtcGxhdGU9IiIgLSBUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkZXRhaWwgbW9kZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuICBUaGlzIHBhcmFtZXRlciBoYXMgbm8gZWZmZWN0IHdoZW4gcHJldHR5IHVybHMgYXJlIGVuYWJsZWQuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzdW1tYXJ5dGVtcGxhdGU9IiIgLSBUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBzdW1tYXJ5IG1vZGUgZGlzcGxheS4gIEl0IGlzIGFsc28gYWNjZXB0ZWQgaW4gdGhlIHNlYXJjaCBhY3Rpb24uICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGhpZXJhcmNoeXRlbXBsYXRlPSIiIC0gVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgaGllcmFyY2h5IGRpc3BsYXkuIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gaGllcmFyY2h5cGFnZT0iIiAtIEFwcGxpY2FibGUgb25seSB0byB0aGUgaGllcmFyY2h5IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgKGJ5IHBhZ2UgaWQgb3IgYWxpYXMpIGEgcGFnZSB0byB1c2UgZm9yIGNoaWxkIGhpZXJhcmNoeSBsaW5rczwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc29ydGJ5PSJwcm9kdWN0X25hbWUiIC0gQXBwbGljYWJsZSBpbiB0aGUgc3VtbWFyeSwgY2F0ZWdvcnlsaXN0IG9yIHNlYXJjaCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOgo8dWw+CiAgPGxpPjxzdHJvbmc+cHJvZHVjdF9uYW1lPC9zdHJvbmc+PC9saT4KICA8bGk+aWQgLS0gVGhlIGl0ZW0gaWQ8L2xpPgogIDxsaT53ZWlnaHQgLS0gVGhlIGl0ZW0gd2VpZ2h0PC9saT4KICA8bGk+cHJpY2UgLS0gVGhlIGl0ZW0gYmFzZSBwcmljZTwvbGk+CiAgPGxpPnN0YXR1cyAtLSBEcmFmdCBvciBwdWJsaXNoZWQ8L2xpPgogIDxsaT5yYW5kb20gLS0gRGlzcGxheSBpbiByYW5kb20gb3JkZXIgb24gZWFjaCByZXF1ZXN0PC9saT4KICA8bGk+Y3JlYXRlZCAtLSBUaGUgY3JlYXRpb24gZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+CiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4KICA8bGk+ZjpmaWVsZG5hbWUgLS0gQWxsb3dzIHNvcnRpbmcgYnkgdmFsdWVzIG9mIGN1c3RvbSBmaWVsZHMuPC9saT4KPC91bD4KPHA+QSBwcmVmZXJlbmNlIGV4aXN0cyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBzb3J0YnkgdmFsdWUuPC9wPgo8cD5UaGUgY2F0ZWdvcnkgbGlzdCB2aWV3IHN1cHBvcnRzIG9ubHkgYSBmZXcgc3BlY2lmaWMgc29ydGluZyBvcHRpb25zOjwvcD4KPHVsPgogIDxsaT5pZCAtLSBUaGUgY2F0ZWdvcnkgaWQuPC9saT4KICA8bGk+PHN0cm9uZz5uYW1lPC9zdHJvbmc+IC0tIFRoZSBjYXRlZ29yeSBuYW1lLjwvbGk+CjwvdWw+PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzb3J0b3JkZXI9ImFzYyIgLSBTcGVjaWZ5IHRoZSBvcmRlciBvZiBzb3J0ZWQgZmllbGRzIGluIHN1bW1hcnkgKGluY2x1ZGluZyBhZnRlciBhIHNlYXJjaCkgdmlldy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6Cjx1bD4KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4KICA8bGk+ZGVzYyAtLSBEZXNjZW5kaW5nIG9yZGVyPC9saT4KPC91bD4KPHA+QSBwcmVmZXJlbmNlIGV4aXN0cyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBzb3J0b3JkZXIgdmFsdWUuPC9wPjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc29ydHR5cGU9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgc3VtbWFyeSB2aWV3LCB0aGlzIHBhcmFtZXRlciBpcyB1c2VkIHRvIGNvbnZlcnQgdGhlIHZhbHVlcyB0byBhbm90aGVyIHR5cGUgZm9yIHNvcnRpbmcuICB2YWxpZCB2YWx1ZXMgYXJlIFNUUklORyxTSUdORUQgYW5kIFVOU0lHTkVELiAgSWYgbm90IHN1cHBsaWVkIHRoZSBkZWZhdWx0IFNUUklORyB0eXBlIGlzIGFzc3VtZWQuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBleGNsdWRlY2F0PSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IChzdW1tYXJ5KSB2aWV3LCB0aGlzIHBhcmFtZXRlciB3aWxsIGFsbG93IGV4Y2x1ZGluZyBpdGVtcyB0aGF0IGFyZSBpbiBhIHNwZWNpZmljIGNhdGVnb3J5IGZyb20gdGhlIHJlc3VsdC4gQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBjYXRlZ29yeSBuYW1lcyBpcyBhbGxvd2VkLiBUaGlzIHBhcmFtZXRlciBjYW4gd29yayBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBjYXRlZ29yeSBwYXJhbWV0ZXIgdG8gcHJvdmlkZSBhIGxpc3Qgb2YgdGhlIGl0ZW1zIHRoYXQgYXJlIGluIHRoaXMgY2F0ZWdvcnksIGJ1dCBub3QgaW4gdGhhdCBjYXRlZ29yeTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbm90cHJldHR5PSIiIC0gVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYWN0aW9ucyB0byB3aGljaCBwcmV0dHkgdXJscyBzaG91bGQgbm90IGJlIGdlbmVyYXRlZC4gIGkuZTogbm90cHJldHR5PWhpZXJhcmNoeSxkZWZhdWx0IHdpbGwgbm90IGdlbmVyYXRlIHByZXR0eSB1cmxzIHRvIGhpZXJhcmNoeSwgb3Igc3VtbWFyeSAoZGVmYXVsdCkgYWN0aW9ucywgYnV0IHdpbGwgYWxsb3cgZ2VuZXJhdGlvbiBvZiBwcmV0dHkgdXJscyB0byBkZXRhaWwgdmlld3MuICBBcyBhIHNwZWNpYWwgdmFsdWUgJnF1b3Q7YWxsJnF1b3Q7IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhhdCBubyBwcmV0dHkgdXJscyBzaG91bGQgYmUgZ2VuZXJhdGVkPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBjYXRlZ29yeT0iIiAtIFdoZW4gdXNlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyLCB3aGljaCBzaG91bGQgbWF0Y2ggdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgY2F0ZWdvcnkgd2lsbCBiZSB1c2VkIHRvIGRpc3BsYXkgb25seSB0aG9zZSBpdGVtcyB0aGF0IGFyZSBpbiB0aGF0IGNhdGVnb29yeS4gKGEgY29tbWEgc2VwZXJhdGVkIGxpc3QgY2FuIGJlIHN1cHBsaWVkKS4gIFRoaXMgcGFyYW1ldGVyIGNhbiBhbHNvIGJlIHVzZWQgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbiB0byBsaW1pdCB0aGUgb3V0cHV0IHRvIHRoZSBzcGVjaWZpZWQgaXRlbSBjYXRlZ29yaWVzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gaGllcmFyY2h5PSIiIC0gVXNlZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYW5kIGhpZXJhY2h5IGFjdGlvbnMgdGhpcyBwYXJhbWV0ZXIgaGFzIHR3byB1c2VzLiAgV2hlbiB1c2VkIGluIHRoZSBkZWZhdWx0IChzdW1tYXJ5KSBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGF0IG9ubHkgaXRlbXMgaW4gdGhhdCBsb2NhdGlvbiBvZiB0aGUgaGllcmFyY2h5IHNob3VsZCBiZSBkaXNwbGF5ZWQuICBXaWxkY2FyZCBjaGFyYWN0ZXIgY2FuIGJlIHVzZWQgc28gdGhhdCB5b3UgY2FuIHNwZWNpZnkgcGFyZW50L2NoaWxkIHJlbGF0aW9uc2hpcHMgYXMgd2VsbC4gIGkuZSB7UHJvZHVjdHMgaGllcmFyY2h5PSd0cnVja3MqJ30gd2lsbCBjcmVhdGUgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBpbmNsdWRpbmcgdGhlIGNoaWxkcmVuIGluIHRoZSBoaWVyYXJjaHkuICBTaW1pbGFybHksIHtQcm9kdWN0cyBoaWVyYXJjaHk9Jyp0cnVja3MnfSB3aWxsIGRpc3BsYXkgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBhbmQgYWxsIGl0ZW1zIGJlbG9naW5nIHRvIGFueSBwYXJlbnQgaW4gdGhlIGhpZXJhcmNoeS4gIEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZXhwcmVzc2lvbnMgY2FuIGJlIHN1cHBsaWVkLiAgaS5lOiB7UHJvZHVjdHMgYWN0aW9uPWhpZXJhcmNoeSBoaWVyYXJjaHk9J3RydWNrcyxjYXJzJ308L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHBhZ2VsaW1pdD0iIiAtIFVzZWZ1bCBvbmx5IHdpdGggdGhlIDxlbT5kZWZhdWx0PC9lbT4gb3Igc2VhcmNoIGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBob3cgbWFueSBpdGVtcyBzaG91bGQgYmUgbGlzdGVkIG9uIGVhY2ggcGFnZS48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHBhcmVudD0iIiAtIEFwcGxpY2FibGUgb25seSBpbiB0aGUgPGVtPmhpZXJhcmNoeTwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBpbnRlZ2VyIGhpZXJhcmNoeSBpZCBvZiB0aGUgc3RhcnRpbmcgbG9jYXRpb24gb2YgdGhlIHJlcG9ydC4gIElmIHRoaXMgcGFyYW1ldGVyIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgJGFjdGl2ZV9oaWVyYXJjaHkgc21hcnR5IHZhcmlhYmxlIHdpbGwgYmUgaWdub3JlZC4gIElmIG5laXRoZXIgaXMgc2V0LCB0aGVuIHRoZSBoaWVyYXJjaHkgdmlldyB3aWxsIHN0YXJ0IGZyb20gdGhlIHJvb3QuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBwYXJlbnRzPSIiIC0gVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5oaWVyYXJjaHk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGhpZXJhcmNoeSBuYW1lcyB0aGF0IHNwZWNpZnkgdG8gY3JlYXRlIG51bWVyb3VzIGhlaXJhcmNoeSB0cmVlcyBmcm9tIHRoZSBzcGVjaWZpZWQgbG9jYXRpb24ocykuICBIaWVyYXJjaHkgbmFtZXMgbXVzdCBiZSB1bmlxdWUsIGFuZCBub3QgY29udGFpbiBhbnkgc3BlY2lhbCBjaGFycy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHNob3dhbGw9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGNhdGVnb3J5bGlzdCBhbmQgZmllbGRsaXN0IGFjdGlvbnMsIGlmIHRoaXMgcGFyYW1ldGVyIGlzIHNldCB0byBhIG5vbiAwIGludGVnZXIgdmFsdWUgYWxsIGNhdGVnb3JpZXMgKGV2ZW4gdGhvc2Ugd2l0aG91dCBpdGVtcykgd2lsbCBiZSBkaXNwbGF5ZWQuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWVsZD0iIiAtIFVzZWQgaW4gdGhlIDxlbT5maWVsZGxpc3Q8L2VtPiBhbmQgdGhlIDxlbT5hamF4X3Byb3B2YWw8L2VtPiBhY3Rpb25zLiBJbiB0aGUgZmllbGRsaXN0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgdG8gc3BlY2lmeSB0aGUgbmFtZSBvZiBhIHVzZXIgZGVmaW5lZCBwcm9wZXJ0eSB0byBjcmVhdGUgYSBsaXN0IGZyb20uICBJbiB0aGUgYWpheF9wcm9wdmFsIGFjdGlvbiB0aGlzIHBhcmFtZXRlciBpcyB1c2VkIHRvIHNwZWNpZnkgd2hpY2ggZmllbGQgdG8gdXNlIHRvIGV4dHJhY3QgYSBsaXN0IG9mIHZhbHVlcy4gIEFueSB2YWxpZCBmaWVsZCBuYW1lcyBhcmUgYWNjZXB0ZWQgKHRob3VnaCBvbmx5IHRleHQgZmllbGQgYW5kIGRyb3Bkb3duIGZpZWxkIG5hbWVzIHdpbGwgd29yayBwcm9wZXJseS4gIEFkZGl0aW9uYWxseSB0aGUgc3BlY2lhbCB2YWx1ZXMgOjpuYW1lOjosIDo6c2t1OjosIGFuZCA6OmFsaWFzOjogY2FuIGJlIHNwZWNpZmllZCB0byByZXR1cm4gdmFsdWVzIGZyb20gdGhlIGl0ZW0gbmFtZSwgc2t1IGFuZCBhbGlhcyByZXNwZWN0aXZlbHkuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWVsZGlkPSIiIC0gVXNlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24uICBUaGlzIHBhcmFtZXRlciB3b3JrcyBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBmaWVsZHZhbCBwYXJhbWV0ZXIgdG8gYWxsb3cgZmlsdGVyaW5nIHByb2R1Y3RzIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiBhIGN1c3RvbSBmaWVsZC4gIE5vdGU6ICBPbmx5IGN1c3RvbSBmaWVsZHMgdGhhdCBzdXBwb3J0IGEgc2luZ2xlIHZhbHVlIHdpbGwgd29yay48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpZWxkdmFsPSIiIC0gVXNlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhbmQgPGVtPmFqYXhfcHJvcHZhbDwvZW0+IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgZmllbGQgdmFsdWUgdG8gbGltaXQgcmVzdWx0cyBieS4gIEluIHRoZSBkZWZhdWx0IGFjdGlvbiB0aGVzZSBzcGVjaWFsIHZhbHVlcyBhcmUgYWNjZXB0ZWQ6ICZxdW90Ozo6bnVsbDo6JnF1b3Q7ICZxdW90Ozo6bm90bnVsbDo6JnF1b3Q7IGFuZCB3aWxkY2FyZCBjaGFycyAoKiBvciAlKS4gSW4gdGhlIGFqYXhfcHJvcHZhbCBhY3Rpb24gdGhpcyBmaWVsZCBpcyBleHBlY3RlZCB0byBjb250YWluIG9ubHkgYSBmZXcgbGV0dGVycywgdG8gaW5kaWNhdGUgYSBzbWFsbCBmaWx0ZXIuICBpLmU6IGZpZWxkdmFsPWIgdG8gcmV0dXJuIGFsbCBmaWVsZCB2YWx1ZXMgdGhhdCBiZWdpbiB3aXRoIHRoZSBsZXR0ZXIgYi48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGNhdGVnb3J5ZmllbGQ9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlICZxdW90O2NhdGVnb3J5bGlzdCZxdW90OyBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGZpbHRlciBjYXRlZ29yaWVzIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiBhIGNhdGVnb3J5IGZpZWxkLiAgSXQgd2lsbCBub3Qgd29yayBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAmcXVvdDtjYXRlZ29yeSZxdW90OyBvciAmcXVvdDtjYXRlZ29yeV9pZCZxdW90OyBwYXJhbWV0ZXJzLiAgIFRoZSBzeW50YXggb2YgdGhpcyBwYXJhbWV0ZXIgaXMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBmaWVsZCBuYW1lcywgYW5kIGZpZWxkIHZhbHVlcy4gIGkuZTogIGNhdGVnb3J5bGlzdD0mcXVvdDtmaWVsZCBuYW1lOnZhbHVlLGZpZWxkIG5hbWUgMjp2YWx1ZSAyJnF1b3Q7PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBpbmxpbmU9IjAiIC0gVXNlZnVsIG9ubHkgd2l0aCB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgdGhlIG91dHB1dCBvZiB0aGUgc3VtbWFyeSB2aWV3IHNob3VsZCBiZSBkaXNwbGF5ZWQgaW5saW5lPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiByZXN1bHRwYWdlPSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBzZWFyY2gsIGFuZCBjYXRlZ29yeSBsaXN0IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBhIHBhZ2UgaWQgb3IgYWxpYXMgdG8gdXNlIHRvIGRpc3BsYXkgdGhlIHN1bW1hcnkgcmVzdWx0cy4gIElmIHNwZWNpZmllZCwgdGhpcyB3aWxsIG92ZXJyaWRlIHRoZSBpbmxpbmUgcGFyYW1ldGVyLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc2VhcmNoZm9ybXRlbXBsYXRlPSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbm9uIGRlZmF1bHQgc2VhcmNoIGZvcm0gdGVtcGxhdGU8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHNlYXJjaGZpZWxkPSIiIC0gPGVtPihkZXByZWNhdGVkKTwvZW0+IEFwcGxpY2FibGUgb25seSB0byB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgbWF5IGNvbnRhaW4gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBmaWVsZCBuYW1lcyB0byBpbmNsdWRlIGluIHRoZSBzZWFyY2g8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHN1bW1hcnlwYWdlPSJBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGFjdGlvbj1oaWVyYXJjaHksIGFsbG93cyBzcGVjaWZ5aW5nIGEgcGFnZSBpZCBvciBhbGlhcyB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgYW55IGxpbmtzIHRvIHN1bW1hcnkgdmlldyIgLSA8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHByb2R1Y3RsaXN0PSJBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgKHN1bW1hcnkpIHZpZXcsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgaW50ZWdlciBwcm9kdWN0IGlkcyB0byBkaXNwbGF5LiAgTm8gcGFnaW5hdGlvbiBvciBzb3J0aW5nIGlzIHBlcmZvcm1lZCBvbiB0aGVzZSB2YWx1ZXMsIGFuZCBpZiBzcGVjaWZpZWQgdGhlIG90aGVyIGZpbHRlcmluZyBwYXJhbWV0ZXJzIHRvIHRoZSBzdW1tYXJ5IHZpZXcgYXJlIGlnbm9yZWQuIiAtIDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbm9jaGlsZHJlbj0iLS0gTWlzc2luZyBMYW5ndWFnZXN0cmluZyAtIG1vZHVsZTpQcm9kdWN0cyBzdHJpbmc6cGFyYW1fbm9jaGlsZHJlbi0tIiAtIDwvbGk+PC91bD4=]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDIuMjQ8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48dWw+CjxsaT5WZXJzaW9uIDEuMCAtIERlY2VtYmVyLCAyMDA3CiAgIDxwPkluaXRpYWwgUmVsZWFzZTwvcD4KPC9saT4KPGxpPlZlcnNpb24gMS4wLjEgLSBKYW51YXJ5LCAyMDA4CiAgIDx1bD4KICAgICA8bGk+QWRkcyBwYWdpbmF0aW9uIGluIHN1bW1hcnkgdmlldzwvbGk+CiAgICAgPGxpPkZpeGVzIGEgcHJvYmxlbSB3aXRoIGR1cGxpY2F0ZSBsaW5rcyBpbiBzdW1tYXJ5IHZpZXc8L2xpPgogICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjAgLSBBcHJpbCwgMjAwOAogIDx1bD4KICAgICA8bGk+QWRkcyBoaWVyYXJjaGljYWwgY2F0ZWdvcmllcyBhcyB3ZWxsIGFzIHRoZSBvcmlnaW5hbCAndGFnJyBiYXNlZCBjYXRlZ29yaWVzLjxici8+CiAgICAgICAgIEhpZXJhcmNoaWNhbCBjYXRlZ29yaWVzIGNhbiBoYXZlIGFuIGltYWdlIGFzIHdlbGwgYXMgYSBkZXNjcmlwdGlvbi48L2xpPgogICAgIDxsaT5BZGRzIG1vcmUgY3VzdG9tIGZpZWxkIHR5cGVzIChpbWFnZSwgZHJvcGRvd24pPGJyLz4KICAgICAgICAgSW5jbHVkaW5nIHRodW1ibmFpbCBnZW5lcmF0aW9uLjwvbGk+CiAgICAgPGxpPlJlbW92ZSB0aGUgb3JpZ2luYWwgaW1hZ2UgZmllbGRzPC9saT4KICAgICA8bGk+QWRkcyBTZWFyY2ggbW9kdWxlIGNhcGFiaWxpdHk8L2xpPgogICAgIDxsaT5BZGRzIGEgaGllcmFyY2hpY2FsIGNhdGVnb3J5IHZpZXcgd2l0aCBkcmlsbCBkb3duIHN1cHBvcnQ8L2xpPgogICAgIDxsaT5NdWNoLCBtdWNoIG1vcmU8L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMC4xIC0gQXByaWwsIDIwMDgKICA8dWw+CiAgICAgPGxpPkZpeGVzIG51bWVyb3VzIHNtYWxsIGVycm9ycy48L2xpPgogICAgIDxsaT5GaXggdG8gYWxsb3cgc3BhY2VzIGFuZCBvdGhlciBjaGFyYWN0ZXJzIGluIGhpZXJhcmNoeSBuYW1lczwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4wLjIgLSBBdWd1c3QsIDIwMDgKICA8dWw+CiAgICAgPGxpPkJ1ZyBmaXhlczwvbGk+CiAgICAgPGxpPk5vdyBSZXF1aXJlIENHRXh0ZW5zaW9ucyAxLjk8L2xpPgogICAgIDxsaT5BZGQgYSBjdXJyZW5jeSBjb2RlIHByZWZlcmVuY2U8L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMS4xIC0gU2VwdGVtYmVyLCAyMDA4CiAgPHVsPgogICAgIDxsaT5CdWcgZml4ZXM8L2xpPgogICAgIDxsaT5BZGQgdGhlIGFiaWxpdHkgdG8gYXNzb2NpYXRlIHN0YXRpYyBkYXRhIHdpdGggYW55IGNhdGVnb3J5PC9saT4KICAgICA8bGk+QWRkIHRoZSBhYmlsaXR5IHRvIGNvcHkgY2F0ZWdvcmllczwvbGk+CiAgICAgPGxpPkFkZCB0aGUgb3B0aW9uYWwgYWJpbGl0eSB0byB3YXRlcm1hcmsgdXBsb2FkZWQgYWJpbGl0aWVzLjwvbGk+CiAgICAgPGxpPkFkZCB0aGUgb3B0aW9uYWwgYWJpbGl0eSB0byBjaGFuZ2UgdGhlIGxvY2F0aW9uIG9mIHRoZSB3YXRlcm1hcmsgaW4gdXBsb2FkZWQgaW1hZ2VzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xLjIgLSBTZXB0ZW1iZXIsIDIwMDgKICA8dWw+CiAgICA8bGk+VXBkYXRlIGRlcGVuZGVuY2llcywgYW5kIHJlbW92ZSBkZWJ1ZyBzdGF0ZW1lbnRzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xLjMgLSBTZXB0ZW1iZXIsIDIwMDgKICA8dWw+CiAgICA8bGk+TWlub3IgQnVnZml4ZXM8L2xpPgogICAgPGxpPkNoYW5nZSB0aGUgZGVsaW1pdGVyIG9uIHRoZSBhdHRyaWJ1dGVzIGRyb3Bkb3duPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjIgLSBEZWNlbWJlciwgMjAwOAogIDx1bD4KICAgIDxsaT5OdW1lcm91cyBCdWdmaXhlczwvbGk+CiAgICA8bGk+UHJvZHVjdHMgbW9kdWxlIG5vdyBoYXMgYSBDYXJ0IG1vZHVsZSBwcmVmZXJlbmNlLCB3aGVyZSB5b3UgY2FuIHBpY2sgZnJvbSB0aGUgYXZhaWxhYmxlIGNhcnQgbW9kdWxlcy48L2xpPgogICAgPGxpPk1vZGlmeSBkZWZhdWx0IHRlbXBsYXRlcyBzbyB0aGF0IHRoZSBjYXJ0IG1vZHVsZSBwcmVmZXJlbmNlIGlzIHVzZWQuPC9saT4KICAgIDxsaT5SZW1vdmUgYWxsIHJlZmVyZW5jZXMgdG8gdGF4ZXMgb3Igc2hpcHBpbmcgbW9kdWxlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMi4xIC0gSmFudWFyeSwgMjAwOAogIDx1bD4KICAgIDxsaT5BZGQgYWJpbGl0eSB0byBzb3J0IGJ5IHdlaWdodC48L2xpPgogICAgPGxpPkFkZCBicmVhZGNydW1icyB0byBkZXRhaWwgdmlldy48L2xpPgogICAgPGxpPkFkZCBjYXRlZ29yeSBpbmZvcm1hdGlvbiB0byBzdW1tYXJ5IHZpZXcuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjIuMiAtIEphbnVhcnksIDIwMDgKICA8dWw+CiAgICA8bGk+Rml4IG1pbm9yIHByb2JsZW0gd2l0aCBjYXRlZ29yeSBpbmZvcm1hdGlvbiBpbiBzdW1tYXJ5IHZpZXcuPC9saT4KICAgIDxsaT5BZGQgY29uc2lzdGVudCBvcmRlcmluZyB0byBHZXRDYXRlZ29yaWVzRm9yUHJvZHVjdDwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4yLjQgLSBGZWJydWFyeSwgMjAwOAogIDx1bD4KICAgIDxsaT5BZGQgSUQgdG8gdGhlIGhpZXJhcmNoeSB0YWI8L2xpPgogICAgPGxpPkFkZCB0aGUgeyRwYXJlbnR9IHZhcmlhYmxlIHRvIHRoZSBoaWVyYXJjaHkgZGlzcGxheS48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMyAtIE1hcmNoLCAyMDA4CiAgPHVsPgogICAgPGxpPkFkZCBDU1YgSW1wb3J0PC9saT4KICAgIDxsaT5BZGQgaW5kZXhlcyB0byB0aGUgdGFibGVzLCBzaG91bGQgcmVzdWx0IGluIGEgbWFzc2l2ZSBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudC48L2xpPgogICAgPGxpPkFkZCBFeHRyYTEgYW5kIEV4dHJhMiBmaWVsZHMgdG8gdGhlIGhpZXJhcmNoeSBkZWZpbml0aW9uLjwvbGk+CiAgICA8bGk+Rml4ZXMgcHJvYmxlbXMgd2l0aCBkYXRlcwogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMy4xIC0gTWFyY2gsIDIwMDgKICA8dWw+CiAgICA8bGk+Rml4ZXMgdG8gQ1NWIEltcG9ydDwvbGk+CiAgICA8bGk+QnVtcCBtaW5pbXVtIENNUyBWZXJzaW9uIHRvIDEuNS4zPC9saT4KICAgIDxsaT5CdWdmaXhlcyB0byBlZGl0IGF0dHJpYnV0ZSBzZXQuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjQgLSBKdWx5LCAyMDA4CiAgPHVsPgogICAgPGxpPkZpeGVzIEVkaXQgQXR0cmlidXRlIFNldCBQcm9ibGVtPC9saT4KICAgIDxsaT5BZGRzIEdldENhdGVnb3J5KCkgbWV0aG9kLjwvbGk+CiAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi40LjIgLSBKdWx5LCAyMDA4CiAgPHVsPgogICAgPGxpPkFkZHMgY29udmVuaWVuY2UgZnVuY3Rpb25zIGZvciB1c2UgYnkgdGhlIFByb21vdGlvbnMgYW5kIG90aGVyIG1vZHVsZXMuPC9saT4KICAgIDxsaT5GaXhlcyBtaW5vciBidWdzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi40LjQgLSBTZXB0ZW1iZXIsIDIwMDgKICA8dWw+CiAgICA8bGk+Rml4ZXMgbWlub3IgYnVncy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNC41IC0gTm92ZW1iZXIsIDIwMDgKICA8dWw+CiAgICA8bGk+TWlub3Igc21hcnR5IGltcHJvdmVtZW50cy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNC43IC0gRGVjZW1iZXIsIDIwMDgKICA8dWw+CiAgICA8bGk+QWRkcyBhYmlsaXR5IHRvIHNwZWNpZnkgYSB0ZW1wbGF0ZSBmb3IgcHJvZHVjdCBhdHRyaWJ1dGUgdmFsdWUgZGlzcGxheSBpbiB0aGUgZHJvcGRvd25zLjwvbGk+CiAgICA8bGk+QWRkcyB0aGUgc2hvd2FsbCBwYXJhbWV0ZXIgKG9wdGlvbmFsKSB0byB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbi48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNC44IC0gSmFudWFyeSwgMjAwOQogIDx1bD4KICAgIDxsaT5BZGRzIGhhbmRsaW5nIGZvciBkaXJlY3QgYWNjZXNzIHRvIGRpc2FibGVkL2RlbGV0ZWQvaW52YWxpZCBwcm9kdWN0IGRldGFpbCB2aWV3cy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNS4xIC0gRmVicnVhcnksIDIwMTAKICA8dWw+CiAgICA8bGk+SW1wcm92ZW1lbnRzIGZvciBNQUMgZm9ybWF0IEFTQ0lJIGNzdiBmaWxlcy48L2xpPgogICAgPGxpPkFkZHMgcHJvZHVjdCBhbGlhcyBtZWNoYW5pc20uPC9saT4KICAgIDxsaT5BZGRzIGJyZWFkY3J1bWIgc3VwcG9ydCBpbnRvIHRoZSBkZXRhaWwgdmlldy48L2xpPgogICAgPGxpPkFkZHMgcHJldHR5IHVybCBzdXBwb3J0IGludG8gdGhlIHNlYXJjaCByZXN1bHRzLjwvbGk+CiAgICA8bGk+QWRkcyBjYW5vbmljYWwgc3VwcG9ydCBpbnRvIHRoZSBkZXRhaWwgdmlldy48L2xpPgogICAgPGxpPkFkZHMgU0tVIHN1cHBvcnQuPC9saT4KICAgIDxsaT5CdWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjYgLSBNYXJjaCwgMjAxOQogPHVsPgogICA8bGk+TW9kaWZpY2F0aW9ucyB0byB3b3JrIHdpdGggbmV3IEUtY29tbWVyY2Ugc2V0dXAuPC9saT4KICAgPGxpPk1hbnkgYnVnIGZpeGVzLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjYuMSAtIEFwcmlsLCAyMDE5CiA8dWw+CiAgIDxsaT5CdWcgRml4ZXMuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNi4yIC0gQXByaWwsIDIwMTkKIDx1bD4KICAgPGxpPkJ1ZyBGaXhlcy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi43IC0gQXByaWwsIDIwMTkKIDx1bD4KICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gc29ydCBzdW1tYXJ5IHZpZXdzIGJ5IGN1c3RvbSBmaWVsZHMuPC9saT4KICAgPGxpPkFkZHMgdGhlIGZpZWxkbGlzdCBhY3Rpb24gdG8gYWxsb3cgY3JlYXRpbmcgbmF2aWdhdGlvbnMgb24gY3VzdG9tIGZpZWxkcy48L2xpPgogICA8bGk+QWRkcyBzZWFyY2ggYWN0aW9uIHRvIGFsbG93IHNlYXJjaGluZyBwcm9kdWN0cy48L2xpPgogICA8bGk+UmVtb3ZlIGN1cnJlbmN5IGNvZGUgYW5kIG90aGVyIHByZWZlcmVuY2VzIHRoYXQgYXJlIG5vdyBpbiBDR0Vjb21tZXJjZUJhc2UuLi4gd2VsbCBpZiBDR0Vjb21tZXJjZUJhc2UgaXMgaW5zdGFsbGVkIGFueXdheXMuPC9saT4KICAgPGxpPlJlbW92ZSBzb21lIHByZWZlcmVuY2VzIGFuZCB0ZW1wbGF0ZXMgdGhhdCBhcmUgbm93IGhvc3RlZCBpbiBDR0Vjb21tZXJjZUJhc2UuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNy4xIC0gQXByaWwsIDIwMTAKIDx1bD4KICAgPGxpPkFkZHMgYSByZXR1cm4gbGluayB0byB0aGUgY2F0ZWdvcnkgZmllbGRzIGVkaXQgcGFnZS48L2xpPgogICA8bGk+QWRkcyBhIGRldGFpbF91cmwgcGFyYW0gdG8gdGhlIGNhdGVnb3J5IGxpc3Qgdmlldy48L2xpPgogICA8bGk+QWRkcyB0aGUgY2F0ZWdvcnlsaXN0ZHRsdGVtcGxhdGUgcGFyYW0uPC9saT4KICAgPGxpPkNhdGVnb3J5IExpc3QgdmlldyBub3cgdXNlcyB0aGUgcmVzdWx0cGFnZSBwYXJhbWV0ZXIgYnkgZGVmYXVsdC48L2xpPgogICA8bGk+Rml4ZXMgYSBwcm9ibGVtIHdpdGggZGVsZXRpbmcgZmlsZXMgaW4gdGhlIGVkaXQgcHJvZHVjdCBwYWdlLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjcuMyAtIEFwcmlsLCAyMDEwCiA8dWw+CiAgIDxsaT5SZW1vdmUgdGhlIGltYWdlIHdoZW4gcmVtb3ZpbmcgdGhlIGhpZXJhcmNoeSBpdGVtLjwvbGk+CiAgIDxsaT5JbXByb3ZlbWVudHMgdG8gY2F0ZWdvcnkgZmllbGQgb3JkZXJpbmcuPC9saT4KICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gcmVuYW1lIGNhdGVnb3J5IGZpZWxkcy48L2xpPgogICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjcuNCAtIEFwcmlsLCAyMDEwCiA8dWw+CiAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNy41IC0gTWF5LCAyMDEwCiA8dWw+CiAgIDxsaT5GaXhlcyBwcm9ibGVtIHdpdGggc2VhcmNoIHRlbXBsYXRlcyBvbiB1cGdyYWRlLjwvbGk+CiAgIDxsaT5BZGRzIGNhdGVnb3J5IGZpZWxkIHJlb3JkZXJpbmcuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNy42IC0gTWF5LCAyMDEwCiA8dWw+CiAgIDxsaT5GaXhlcyB0byBjYXRlZ29yeSBmaWVsZCByZS1vcmRlcmluZy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi44IC0gTWF5LCAyMDEwCiA8dWw+CiAgIDxsaT5BZGRzIGEgdHJ1ZSBoaWVyYXJjaHkgbW9kZS48YnIvPgogICAgICAgPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIHdpbGwgYnJlYWsgZXhpc3Rpbmcgc2l0ZXMgdXNpbmcgdGhlIG9sZGVyIGhpZXJhcmNoeSB2aWV3LiAgWW91IHNob3VsZCByZWFkIHRoZSBoZWxwIGZvciBpbmZvcm1hdGlvbiBhcyB0byBob3cgdG8gdXNlIHRoZSBuZXcgdmlldy48L2xpPgogICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBhZGQgY3VzdG9tIGZpZWxkcyB0byB0aGUgYWRtaW4gc2lkZSBwcm9kdWN0IHRhYmxlIHZpZXcuPC9saT4KICAgPGxpPkltcHJvdmVzIHRoZSBDU1YgaW1wb3J0IGZ1bmN0aW9uLjwvbGk+CiAgIDxsaT5BZGRzIGEgbmV3IGRpbWVuc2lvbiBkYXRhIGZpZWxkLjwvbGkKIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuOC4xIC0gTWF5LCAyMDEwCiA8dWw+CiAgIDxsaT5NaW5vciBidWcgZml4ZXMgdG8gYWRtaW4gZGlzcGxheS48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi44LjIgLSBNYXksIDIwMTAKIDx1bD4KICAgPGxpPkZpeCB0byBkZWZhdWx0IGhpZXJhcmNoeSB0ZW1wbGF0ZS48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi44LjIgLSBNYXksIDIwMTAKIDx1bD4KICAgIDxsaT5BZGRzIHN1YnNjcmlwdGlvbiBmaWVsZCB0eXBlLjwvbGk+CiAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgICA8bGk+QWRkZWQgc3VwcG9ydCBmb3IgZmllbGR2YWw9Jzo6bm90bnVsbDo6JyBvbiB0aGUgc3VtbWFyeSB2aWV3LjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjguMyAtIEp1bHksIDIwMTAKIDx1bD4KICAgIDxsaT5SZW1vdmVzIHRoZSB1c2VvbGRoaWVyYXJjaHkgcGFyYW0gZnJvbSB0aGUgaGllcmFyY2h5IHZpZXcuPC9saT4KICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGZpbHRlciB0aGUgb3V0cHV0IGluIHRoZSBjYXRlZ29yeWxpc3Qgdmlldy48L2xpPgogICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi44LjQgLSBTZXB0ZW1iZXIsIDIwMTAKIDx1bD4KICAgIDxsaT5BZGRzIGEgcHJlZmVyZW5jZSBmb3IgdGhlIGRlZmF1bHQgcGFnZSBsaW1pdCBpbiBzdW1tYXJ5IG1vZGUuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuOC41IC0gU2VwdGVtYmVyLCAyMDEwCiA8dWw+CiAgICA8bGk+QWRkcyBzb3J0aW5nIGNhcGFiaWxpdGllcyB0byB0aGUgY2F0ZWdvcnlsaXN0IHZpZXcuPC9saT4KICAgIDxsaT5SZS13b3JrcyB0aGUgaGllcmFyY2h5IHZpZXcgKGFnYWluKS4gIFRlbXBsYXRlcyB3aWxsIG5lZWQgdG8gY2hhbmdlLjwvbGk+CiAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBleHBsaWNpdGx5IGxpc3QgaGllcmFyY2h5IGl0ZW1zIGluIHRoZSBoaWVyYXJjaHkgdmlldy48L2xpPgogICAgPGxpPkFkZHMgY29tbWEgc2VwYXJhdGVkIGhpZXJhcmNoeSBjYXBhYmlsaXR5IHRvIHRoZSBkZWZhdWx0IHN1bW1hcnkgdmlldy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi44LjYgLSBTZXB0ZW1iZXIsIDIwMTAKIDx1bD4KICAgPGxpPkZpeGVzIHRvIENTViBpbXBvcnQgc3R1ZmYuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuOSAtIERlY2VtYmVyLCAyMDEwCiA8dWw+CiAgIDxsaT5GaXhlcyBzb21lIGlzc3VlcyByZWxhdGVkIHRvIEVfU1RSSUNUIGFuZCBFX0RFUFJFQ0FURUQ8L2xpPgogICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBjb3B5IGF0dHJpYnV0ZSBzZXRzIGZyb20gYW5vdGhlciBwcm9kdWN0LjwvbGk+CiAgIDxsaT5GaXhlcyB0byBDU1YgaW1wb3J0IHN0dWZmLjwvbGk+CiAgIDxsaT5GaXhlcyB0byBlbnRlcmluZyBhIHNrdSBpbiBhdHRyaWJ1dGVzLjwvbGk+CiAgIDxsaT5BZGRzIGhpZXJhcmNoeSBpbmZvcm1hdGlvbiB0byBzZWFyY2gsIHN1bW1hcnkgYW5kIGRldGFpbCB2aWV3cy48L2xpPgogICA8bGk+Rml4ZXMgYW4gaXNzdWUgd2l0aCBwYWdpbmF0aW9uIGluIHRoZSBhZG1pbiBwYW5lbCBwcm9kdWN0cyB0YWIuPC9saT4KICAgPGxpPkZpeGVzIGFuIGlzc3VlIHdpdGggcGFnZSBjb3VudHMgaW4gdGhlIHByb2R1Y3RzIHRhYiB3aGVuIGEgY3VzdG9tIGZpZWxkIGlzIGFkZGVkIHRvIHRoZSB2aWV3IGxpc3QuPC9saT4KICAgPGxpPk1hbnkgbW9yZSBidWcgZml4ZXMgYW5kIG1pbm9yIGltcHJvdmVtZW50cy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xMC4yIC0gSmFudWFyeSwgMjAxMQogPHVsPgogICA8bGk+QWRkcyBjYW5vbmljYWwgVVJMIHRvIHRoZSBoaWVyYXJjaHkgaXRlbSwgaW4gdGhlIGhpZXJhcmNoeSB2aWV3LjwvbGk+CiAgIDxsaT5BZGRzIHRoZSBwcm9kdWN0bGlzdCBwYXJhbWV0ZXIgdG8gb3V0cHV0IGEgc3VtbWFyeSB2aWV3IG9mIHNwZWNpZmljIHByb2R1Y3RzLiAgRG9lcyBub3QgcHJvdmlkZSBwYWdpbmF0aW9uIG9yIHNvcnRpbmcuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTAuMyAtIEZlYnJ1YXJ5LCAyMDExCiA8dWw+CiAgIDxsaT5GaXhlcyBidWcgd2l0aCBkZWZhdWx0IHZpZXcuLi4uIHRoYW5rcyBzdGlra2k8L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xMC40IC0gTWF5LCAyMDExCiA8dWw+CiAgIDxsaT5NaW5vciBmaXggdG8gdGhlIHVuaW5zdGFsbGVyLjwvbGk+CiAgIDxsaT5BZGRzIHRoZSBjYXRlZ29yeWZpZWxkIHBhcmFtZXRlciB0byB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbi48L2xpPgogICA8bGk+Rml4ZXMgYSBwcm9ibGVtIHdpdGggY2F0ZWdvcnkgZmllbGRzIHdoZW4gY29weWluZyBhIGNhdGVnb3J5LjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEwLjUgLSBNYXksIDIwMTEKIDx1bD4KICAgPGxpPk1pbm9yZXMgZml4IHRvIGNhdGVvZ3J5IGZpZWxkcy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xMSAtIE1heSwgMjAxMQogIDx1bD4KICAgIDxsaT5BZGRzIHRoZSAmcXVvdDtleGNsdWRlY2F0JnF1b3Q7IHBhcmFtZXRlci48L2xpPgogICAgPGxpPlJlbW92ZXMgc29tZSBlcnJhbnQgZGVidWcgc3RhdGVtZW50cyBpbiB0aGUgY2F0ZWdvcnlsaXN0IHZpZXcuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEyIC0gTWF5LCAyMDExCiAgPHVsPgogICAgPGxpPlRoZXJlIGlzIG5vdyBhbiBvcHRpb24gdG8gbWFrZSBzdXJlIHRoYXQgdGhlIFNLVSBpcyByZXF1aXJlZCB3aGVuIGFkZGluZy9lZGl0aW5nIHByb2R1Y3RzL2F0dHJpYnV0ZXMuPC9saT4KICAgIDxsaT5UaGUgaW1hZ2UgdGh1bWJuYWlsLCBwcmV2aWV3LCBhbmQgd2F0ZXJtYXJraW5nIHN0dWZmIGlzIG5vdyBERVBSRUNBVEVELjwvbGk+CiAgICA8bGk+QWRkZWQgdGhlIGF0dHJpYnNfZnVsbCBzdHVmZiBpbnRvIHRoZSBkZXRhaWwgYW5kIHN1bW1hcnkgdmlld3MuICAgdGhlIGF0dHJpYnV0ZXMgbWVtYmVyIG9mIG91dHB1dCBvYmplY3RzIGlzIGRlcHJlY2F0ZWQuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEyLjEgLSBNYXksIDIwMTEKICA8dWw+CiAgICA8bGk+QWRkcyBjYWNoaW5nIGZvciBmaWVsZCBkZWZpbml0aW9ucy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTMgLSBKdWx5LCAyMDExCiAgPHVsPgogICA8bGk+QWRkcyBidWxrIGFjdGlvbnMgaW4gdGhlIHByb2R1Y3QgbGlzdC48L2xpPgogICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBleGNsdWRlIHByb2R1Y3RzIGluIGNlcnRhaW4gY2F0ZWdvcmllcyBmcm9tIHRoZSBwcm9kdWN0IGxpc3QuPC9saT4KICAgPGxpPk51bWVyb3VzIG1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTMuMSAtIEp1bHksIDIwMTEKICA8dWw+CiAgIDxsaT5CdWcgRml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEzLjIgLSBKdWx5LCAyMDExCiAgPHVsPgogICA8bGk+QnVnIEZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xMy4zIC0gQXVndXN0LCAyMDExCiAgPHVsPgogICA8bGk+QnVnIEZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xNCAtIEF1Z3VzdCwgMjAxMQogIDx1bD4KICAgPGxpPkFkZHMgZnVuY3Rpb25hbGl0eSBmb3IgZHluYW1pY2FsbHkgcmVvcmdhbml6aW5nIHRoZSBoaWVyYXJjaHkgdHJlZS48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTUgLSBBdWd1c3QsIDIwMTEKICA8dWw+CiAgICA8bGk+QWRkcyBhIHNpbXBsZSBxdWFudGl0eS1vbi1oYW5kIGZpZWxkLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xNiAtIEF1Z3VzdCwgMjAxMQogIDx1bD4KICAgIDxsaT5WYXN0bHkgaW1wcm92ZWQgc2VhcmNoIGNhcGFiaWxpdGllcy4gIE5vdGU6IGV4aXN0aW5nIHRlbXBsYXRlcyB3aWxsIG5lZWQgdG8gYmUgdXBkYXRlZCBhcyBmaWVsZCBuYW1lcyBoYXZlIGNoYW5nZWQuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjE3IC0gTWFyY2gsIDIwMTIKICA8dWw+CiAgICA8bGk+TnVtZXJvdXMgYnVnIGZpeGVzLjwvbGk+CiAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBkdXBsaWNhdGUgYSBwcm9kdWN0LjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xOC4yIC0gSnVuZSwgMjAxMgogIDx1bD4KICAgIDxsaT5DcmVhdGVzIGEgbmV3IGZsZXhpYmxlIHF1ZXJ5IGNsYXNzIGFuZCBtYXRjaGluZyByZXN1bHRzZXQgY2xhc3MuPC9saT4KICAgIDxsaT5EcmFtYXRpYyBwZXJmb3JtYW5jZSBpbXByb3ZtZW50IGZvciBzdW1tYXJ5IHZpZXdzLjwvbGk+CiAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBleHBvcnQgcHJvZHVjdCBpbmZvcm1hdGlvbiB0byBjc3YuPC9saT4KICAgIDxsaT5NYW55IGltcHJvdmVtZW50cyB0byBDU1YgaW1wb3J0LjwvbGk+CiAgICA8bGk+QWRkcyBhbiBvcHRpb25hbCBuZXcgZGVmYXVsdCBhY3Rpb24gd2hpY2ggc2hvdWxkIGJlIG11Y2ggZmFzdGVyLiAgT3JpZ2luYWwgZGVmYXVsdCBhY3Rpb24gd2lsbCBiZSByZW1vdmVkIG92ZXIgdGltZS48L2xpPgogICAgPGxpPkhlbHAgaXMgbm93IGluIGl0cyBvd24gZmlsZS48L2xpPgogICAgPGxpPkFkZCB0aGUgJ3BhcmVudHMnIHBhcmFtZXRlciB0byB0aGUgaGllcmFyY2h5IGFjdGlvbi48L2xpPgogICAgPGxpPk51bWVyb3VzIGNhY2hpbmcgb3B0aW1pemF0aW9ucy48L2xpPgogICAgPGxpPk1vcmUgaW5kZXhlcyBvbiB0aGUgcHJvZHVjdHMgdGFibGUgZHVyaW5nIGluc3RhbGwuPC9saT4KICAgIDxsaT5MYW5ndWFnZSBjaGFuZ2UuLi4gaW4gbW9zdCBwbGFjZXMsIHByb2R1Y3RzIGFyZSBub3cgcmVmZXJyZWQgdG8gYXMgJnF1b3Q7aXRlbXMmcXVvdDs8L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTguMyAtIEp1bHksIDIwMTIKICA8dWw+CiAgICA8bGk+TWlub3IgRml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjE5LnggLSBEZWNlbWJlciwgMjAxMgogIDxwPjxzdHJvbmc+Tk9URTogQ09NUEFUSUJJTElUWSBCUk9LRU4uICBTT01FIENIQU5HRVMgUkVRVUlSRUQuPC9zdHJvbmc+PC9wPgogIDxwPjxzdHJvbmc+Tk9URTogUEhQIDUuMy54IElTIFJFUVVJUkVELjwvc3Ryb25nPjwvcD4KICA8dWw+CiAgICA8bGk+UmVtb3ZlcyB0aGUgZW50aXJlIGF0dHJpYnV0ZSBtZWNoYW5pc20gYW5kIHJlcGxhY2VzIGl0IHdpdGggYSBmbGF0IGxpc3Qgb2Ygb3B0aW9ucy4KICAgICAgPHA+VGhpcyBtZWFucyB0aGF0IHNob3BzIHVzaW5nIHRoZSBhdHRyaWJ1dGVzIHdpbGwgbmVlZCB0byBhZGp1c3QgdGhlaXIgcHJvZHVjdHMgYmVjYXVzZSBpbnN0ZWFkIG9mIGhhdmluZyBtdWx0aXBsZSAmcXVvdDthdHRyaWJ1dGVzJnF1b3Q7IHRoZXJlIGlzIG5vdyBvbmUgZmxhdCBsaXN0IG9mIG9wdGlvbnMgd2l0aCBhIHNpbXBsZSB0ZXh0IGZpZWxkIHRvIGRlc2NyaWJlIHRoZW0uPC9wPgogICAgICA8cD5BZGRpdGlvbmFsbHksIHN1bW1hcnkgYW5kIGRldGFpbCB0ZW1wbGF0ZXMgd2hlcmUgYXR0cmlidXRlcyB3ZXJlIGRpc3BsYXllZCB3aWxsIG5lZWQgYWRqdXN0bWVudC48L3A+CiAgICA8L2xpPgogICAgPGxpPlNLVXMgYXJlIG5vdyByZXF1aXJlZCBieSBkZWZhdWx0IChhcyB0aGV5IGFyZSBuZWVkZWQgZm9yIHRoZSBDYXJ0MiBtb2R1bGUpPC9saT4KICAgIDxsaT5OdW1lcm91cyBidWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjIwIC0gT2N0b2JlciwgMjAxMwogIDx1bD4KICAgIDxsaT5SZWZhY3RvciB0aGUgc2VhcmNoIGFjdGlvbgogICAgICA8dWw+CiAgICAgICAgPGxpPkltcHJvdmVkIGFiaWxpdHkgdG8gc2VhcmNoIG9uIGN1c3RvbSBmaWVsZHM8L2xpPgogICAgICAgIDxsaT5JbXByb3ZlZCBhYmlsaXR5IHRvIHNwZWNpZnkgc2VhcmNoIGJlaGF2aW9yIGluIHRoZSBzZWFyY2ggdGVtcGxhdGUsIGFzIG9wcG9zZWQgdG8gdGhlIFByb2R1Y3RzIFRhZy48L2xpPgogICAgICAgIDxsaT5GaXhlcyBwYWdpbmF0aW9uIGxpbmtzLjwvbGk+CiAgICAgICAgPGxpPkltcHJvdmVkIGRvY3VtZW50YXRpb24gaW4gdGhlIHByb3RvdHlwZSBzZWFyY2ggZm9ybSB0ZW1wbGF0ZS48L2xpPgogICAgICAgIDxsaT5Ob3cgdXNlcyB0aGUgc2FtZSBjbGFzc2VzIHVzZWQgZm9yIGdlbmVyYXRpbmcgc3VtbWFyeSB2aWV3cy4uLi4gd2l0aCB0aGUgc2FtZSBvcHRpbWl6YXRpb25zLjwvbGk+CiAgICAgIDwvdWw+CiAgICA8L2xpPgogICAgPGxpPk5ldyBjb21wYW55ZGlyZWN0b3J5IGZpZWxkIHR5cGUgYWxsb3dpbmcgbGlua2luZyBhIHByb2R1Y3QgdG8gYSBjb21wYW55LiAgVXNlcyBhbiBhamF4eSBhdXRvY29tcGxldGUgbWVjaGFuaXNtIGZvciBmaW5kaW5nIENvbXBhbmllcy48L2xpPgogICAgPGxpPkltcHJvdmVkIGFkbWluIGZpbHRlcmluZwogICAgICA8dWw+CiAgICAgICAgPGxpPkZpbHRlciBvbiBTS1Ugb3IgcHJvZHVjdCBuYW1lPC9saT4KICAgICAgICA8bGk+QWRkcyBhYmlsaXR5IHRvIHNvcnQgb24gY3VzdG9tIGZpZWxkcyBudW1lcmljYWxseS48L2xpPgogICAgICAgIDxsaT5GaWx0ZXIgaXMgbm93IHN0b3JlZCBhcyBhIHVzZXIgcHJlZmVyZW5jZSwgYW5kIHBhZ2UgbnVtYmVyIHN0b3JlZCBpbiB0aGUgc2Vzc2lvbi48L2xpPgogICAgICA8L3VsPgogICAgPC9saT4KICAgIDxsaT5Ud2Vha3MgdG8gQ1NWIEltcG9ydDwvbGk+CiAgICA8bGk+TnVtZXJvdXMgbWlub3IgZW5oYW5jZW1lbnRzPC9saT4KICAgIDxsaT5BIGNvdXBsZSBuZXcgZGF0YWJhc2UgaW5kZXhlcyBmb3IgcGVyZm9ybWFuY2UuPC9saT4KICAgIDxsaT5OdW1lcm91cyBidWcgZml4ZXMuPC9saT4KICAgIDxsaT5Nb3JlLi4uPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjIxLngKICA8dWw+CiAgICA8bGk+QWRkcyBvcmRlcmluZyB0byB0aGUgcHJvZHVjdCBvcHRpb25zLjwvbGk+CiAgICA8bGk+UmV3cm90ZSB0aGUgcHJvZHVjdCBvcHRpb25zIGRpYWxvZy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMjIueAogIDx1bD4KICAgIDxsaT5SZXdvcmsgdGhlIGhpZXJhcmNoeSBhY3Rpb24gYWdhaW4uLi4gbm93IHN1cHBvcnQgc2hvd2luZyBpdGVtcyBmcm9tIGNoaWxkIGNhdGVnb3JpZXMgPHN0cm9uZz5ieSBkZWZhdWx0PC9zdHJvbmc+LgogICAgICA8cD48c3Ryb25nPlRoaXMgaXMgYSBjaGFuZ2UgaW4gYmVoYXZpb3I6PC9zdHJvbmc+IHlvdSBtYXkgbmVlZCB0byBhZGp1c3QgeW91ciB3ZWJzaXRlcy48L3A+CiAgICAgIDxwPlRoaXMgbWVhbnMgdGhhdCB0aGUgYWN0aW9uPWhpZXJhcmNoeSB3aWxsIG5vdyBnZW5lcmF0ZSBsaW5rcyB0byBzdW1tYXJ5IHZpZXdzIHRoYXQgd2lsbCBzaG93IHRoZSBwcm9kdWN0cyBvZiB0aGF0IGhpZXJhcmNoeSwgYW5kIGl0cyBjaGlsZHJlbi48L3A+CiAgICAgIDxwPlRvIHJlc3RvcmUgdGhlIG9sZCBiZWhhdmlvciB0aGUgbm9jaGlsZHJlbj0xIHBhcmFtZXRlciB3YXMgYWRkZWQuICBIb3dldmVyLCB0aGUgVVJMUyBnZW5lcmF0ZWQgd2hlbiBub2NoaWxkcmVuPTEgaXMgYWRkZWQgdG8gdGhlIHRhZyB3aWxsIG5vdCBiZSBwcmV0dHkuPC9wPgogICAgPC9saT4KICAgIDxsaT5JbXByb3ZlbWVudHMgdG8gQVNDSUkgaW1wb3J0aW5nOgogICAgICA8cD5Ob3cgc3VwcG9ydHMgaW1wb3J0aW5nIHByb2R1Y3Qgb3B0aW9ucyBwcm9wZXJseS48L3A+CiAgICAgIDxwPk5vdyBzdXBwb3J0IGltcG9ydGluZyBjYXRlZ29yaWVzIHdpdGggdGhlIGRlbGltaXRlciBpbiBpdHMgbmFtZS48L3A+CiAgICA8L2xpPgogICAgPGxpPmJlZ2luIHJlbW92aW5nIGRlcHJlY2F0ZWQgZnVuY3Rpb25zIGFuZCBmdW5jdGlvbmFsaXR5LjwvbGk+CiAgICA8bGk+SW1wcm92ZW1lbnRzIHRvIHRoZSBvcmRlcnVwZGF0ZWQgZXZlbnQgd3J0IHVwZGF0aW5nIHF1YW50aXR5IG9uIGhhbmQuPC9saT4KICA8L3VsPgo8L2xpPj4KCiAgIDxsaT5WZXJzaW9uIDIuMjMueAogICAgIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj48c3Ryb25nPldBUk5JTkc6PC9zdHJvbmc+IFRoZSBwcm9kdWN0cyBtb2R1bGUgd2lsbCBubyBsb25nZXIgZ2VuZXJhdGUgcHJldmlldyBhbmQgdGh1bWJuYWlsIGltYWdlcyBvbiBpbWFnZSB1cGxvYWQuICBVc2UgQ0dTbWFydEltYWdlIGZvciB0aGlzIHB1cnBvc2UuCiAgICAgICBUaG91Z2ggdGhlcmUgaXMgc3RpbGwgc29tZSBjb2RlIHRvIHdvcmsgd2l0aCBwcmV2aWV3IGFuZCB0aHVtYiBpbWFnZXMgaWYgdGhleSBhbHJlYWR5IGV4aXN0LiAgVGhpcyBmdW5jdGlvbmFsaXR5IHdpbGwgYmUgcmVtb3ZlZCBhdCBhIGxhdGVyIGRhdGUuPC9kaXY+CiAgICAgPHVsPgogICA8L2xpPgoKICAgPGxpPlZlcnNpb24gMi4yNAogICAgIDx1bD4KICAgICAgIDxsaT5BZGQgVVJMIHNsdWcgZnVuY3Rpb25hbGl0eSBsaWtlIHdoYXQgQ0dCbG9nIGFuZCBOZXdzIEhhdmUuPC9saT4KICAgICAgIDxsaT5Db2RlIGNsZWFudXAgYW5kIHRlbXBsYXRlIGZpeGVzLjwvbGk+CiAgICAgICA8bGk+UmV3b3JrIChhZ2FpbikgdGhlIGhpZXJhcmNoeSB2aWV3LjwvbGk+CiAgICAgICA8bGk+TnVtZXJvdXMgYnVnIGZpeGVzLjwvbGk+CiAgICAgPC91bD4KICAgPC9saT4KPC91bD4KPGJyIC8+]]></about>
	<description><![CDATA[A module for managing a catalog of items, their price, images, etc, and for allowing users to build a cart]]></description>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.48.4</requiredversion>
	</requires>
	<requires>
	  <requiredname>CGSimpleSmarty</requiredname>
	  <requiredversion>1.8</requiredversion>
	</requires>
	<requires>
	  <requiredname>JQueryTools</requiredname>
	  <requiredversion>1.3.5</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.addcategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFByb2R1Y3RzJykpIHJldHVybjsKCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdjYXRlZ29yaWVzJyk7CmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiRuYW1lID0gY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ25hbWUnKTsKJHVzZXJpZCA9IGdldF91c2VyaWQoKTsKCmlmIChpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpIHsKICBpZiAoJG5hbWUgIT0gJycpIHsKICAgICAgLy8gTWFrZSBzdXJlIGEgY2F0ZWdvcnkgYnkgdGhpcyBuYW1lIGRvZXNuJ3QgYWxyZWFkeSBleGlzdAogICAgICAkcXVlcnkgPSAnU0VMRUNUIG5hbWUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMgV0hFUkUgbmFtZSA9ID8nOwogICAgICAkdmFsdWUgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJG5hbWUpKTsKICAgICAgaWYoICR2YWx1ZSAhPSAnJyApIHsKICAgICAgICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2NhdGVnb3J5ZXhpc3RzJywkdmFsdWUpKTsKICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMgKG5hbWUsIGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlKSBWQUxVRVMgKD8sPyw/KSc7CiAgICAgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkbmFtZSwgdHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSksICInIiksIHRyaW0oJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLCAiJyIpKSk7CgogICAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICAgICAgfQogIH0KICBlbHNlIHsKICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbm9uYW1lZ2l2ZW4nKSk7CiAgfQp9CgojRGlzcGxheSB0ZW1wbGF0ZQokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsICR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsICdhZGRjYXRlZ29yeScsICRyZXR1cm5pZCkpOwokc21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCduYW1ldGV4dCcsICR0aGlzLT5MYW5nKCduYW1lJykpOwokc21hcnR5LT5hc3NpZ24oJ25hbWUnLCRuYW1lKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdGNhdGVnb3J5LnRwbCcpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.addcategoryfield.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpKSByZXR1cm47CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdjYXRlZ29yaWVzJyk7CgppZiggIWlzc2V0KCRwYXJhbXNbJ2NhdGlkJ10pICkgewogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwogICAgcmV0dXJuOwp9CgojCiMgSW5pdGlhbGl6YXRpb24KIwokY29uZmlnID0gJGdDbXMtPkdldENvbmZpZygpOwokY2F0aWQgPSAoaW50KSRwYXJhbXNbJ2NhdGlkJ107CiRmaWVsZHR5cGUgPSAndGV4dGJveCc7CiRmaWVsZG5hbWUgPSAnJzsKJGZpZWxkcHJvbXB0ID0gJyc7CiRmaWVsZHZhbHVlID0gbnVsbDsKJGVkaXRpbmcgPSAwOwokb2xkX2ZpZWxkbmFtZSA9ICcnOwppZiggaXNzZXQoJHBhcmFtc1snZmxkbmFtZSddKSApIHsKICAgICRmaWVsZG5hbWUgPSB0cmltKCRwYXJhbXNbJ2ZsZG5hbWUnXSk7CiAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcwogICAgICAgICAgICAgIFdIRVJFIGNhdGVnb3J5X2lkID0gPyBBTkQgZmllbGRfbmFtZSA9ID8nOwogICAgJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSxhcnJheSgkY2F0aWQsJGZpZWxkbmFtZSkpOwogICAgJGZpZWxkdHlwZSA9ICRyb3dbJ2ZpZWxkX3R5cGUnXTsKICAgICRmaWVsZHByb21wdCA9ICRyb3dbJ2ZpZWxkX3Byb21wdCddOwogICAgJGZpZWxkdmFsdWUgPSAkcm93WydmaWVsZF92YWx1ZSddOwogICAgJG9sZF9maWVsZG5hbWUgPSAkZmllbGRuYW1lOwogICAgJGVkaXRpbmcgPSAxOwp9CgovLwovLyBHZXQgUGFyYW1ldGVyIFZhbHVzCi8vCiRmaWVsZHR5cGUgPSBjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdpbnB1dF9maWVsZHR5cGUnLCRmaWVsZHR5cGUpOwokZmllbGRuYW1lID0gdHJpbShjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdpbnB1dF9maWVsZG5hbWUnLCRmaWVsZG5hbWUpKTsKJGZpZWxkcHJvbXB0ID0gdHJpbShjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdpbnB1dF9maWVsZHByb21wdCcsJGZpZWxkcHJvbXB0KSk7CiRmaWVsZHZhbHVlID0gY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnaW5wdXRfZmllbGR2YWx1ZScsJGZpZWxkdmFsdWUpOwokZWRpdGluZyA9IChpbnQpIGNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2lucHV0X2VkaXRpbmcnLCRlZGl0aW5nKTsKCi8vIEdldCB0aGUgY2F0ZWdvcnkgZGF0YQokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMgV0hFUkUgaWQgPSA/JzsKJGNhdGVnb3J5ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LGFycmF5KCRjYXRpZCkpOwokc21hcnR5LT5hc3NpZ24oJ2NhdGVnb3J5JywkY2F0ZWdvcnkpOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSApIHsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2VkaXRjYXRlZ29yeWZpZWxkcycsJHJldHVybmlkLCBhcnJheSgnY2F0aWQnPT4kY2F0aWQpKTsKfQplbHNlIGlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKSB7CiAgICAvLwogICAgLy8gVmFsaWRhdGUgRm9ybSBJbnB1dAogICAgLy8KCiAgICAvLyBOYW1lIGNhbiBiZSBlbXB0eSAod2UnbGwgZ2VuZXJhdGUgb25lKQogICAgaWYoIGVtcHR5KCRmaWVsZG5hbWUpICkgewogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgQ09VTlQoY2F0ZWdvcnlfaWQpKzEgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcwogICAgICAgICAgICAgICAgICBXSEVSRSBjYXRlZ29yeV9pZCA9ID8nOwogICAgICAgICRmaWVsZG5hbWUgPSAnZmllbGRfJy4kZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJGNhdGlkKSk7CiAgICB9CgogICAgLy8gUHJvbXB0IGNhbiBiZSBlbXB0eSAod2UnbGwgdXNlIHRoZSBmaWVsZCBuYW1lKQogICAgaWYoIGVtcHR5KCRmaWVsZHByb21wdCkgKSAkZmllbGRwcm9tcHQgPSAkZmllbGRuYW1lOwoKICAgIC8vIHByb2Nlc3MgdXBsb2FkZWQgZmlsZXMKICAgICRlcnJvciA9ICcnOwogICAgc3dpdGNoKCRmaWVsZHR5cGUpIHsKICAgIGNhc2UgJ2ltYWdlJzoKICAgICAgICAvLyBpZiBhbiBpbWFnZSBoYXMgYmVlbiB1cGxvYWRlZAogICAgICAgIC8vIHByb2Nlc3MgaXQKICAgICAgICAvLyBhbmQgc2V0IHRoZSBmaWVsZCB2YWx1ZS4KICAgICAgICAkYXR0ciA9ICdkZWZhdWx0JzsKICAgICAgICAkZGVzdGRpciA9IHByb2R1Y3RfdXRpbHM6OmdldF9jYXRlZ29yeV91cGxvYWRfcGF0aCgoaW50KSAkY2F0aWQpOwogICAgICAgICRyZXMgPSAkdGhpcy0+SGFuZGxlVXBsb2FkZWRJbWFnZSgkaWQsJ2lucHV0X2ZpbGUnLCRkZXN0ZGlyLCRlcnJvciwnJywkYXR0cik7CiAgICAgICAgaWYoICRyZXMgIT09IEZBTFNFICYmICRyZXMgIT09IFRSVUUpICRmaWVsZHZhbHVlID0gJHJlczsKICAgICAgICBicmVhazsKCiAgICBjYXNlICdmaWxlJzoKICAgICAgICAvLyBpZiBhIGZpbGUgaGFzIGJlZW4gdXBsb2FkZWQKICAgICAgICAvLyBwcm9jZXNzIGl0CiAgICAgICAgLy8gYW5kIHNldCB0aGUgZmllbGQgdmFsdWUKICAgICAgICAkZGVzdGRpciA9IHByb2R1Y3RfdXRpbHM6OmdldF9jYXRlZ29yeV91cGxvYWRfcGF0aCgkY2F0aWQpOwogICAgICAgIGNnZV9kaXI6Om1rZGlycigkZGVzdGRpcik7CiAgICAgICAgaWYoICFpc19kaXIoJGRlc3RkaXIpICkgZGllKCdkaXJlY3Rvcnkgc3RpbGwgZG9lcyBub3QgZXhpc3QnKTsKICAgICAgICAkaGFuZGxlciA9IG5ldyBjZ19maWxldXBsb2FkKCRpZCwkZGVzdGRpcik7CiAgICAgICAgJGhhbmRsZXItPnNldF9hY2NlcHRlZF9maWxldHlwZXMoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93ZWRfZmlsZXR5cGVzJykpOwogICAgICAgICRyZXMgPSAkaGFuZGxlci0+aGFuZGxlX3VwbG9hZCgnaW5wdXRfZmlsZScpOwogICAgICAgICRlcnIgPSAkaGFuZGxlci0+Z2V0X2Vycm9yKCk7CiAgICAgICAgaWYoICEkcmVzICYmICRlcnIgIT0gY2dfZmlsZXVwbG9hZDo6Tk9GSUxFICkgIHsKICAgICAgICAgICAgJGVycm9yID0gc3ByaW50ZigiJXMgJXM6ICVzIiwkdGhpcy0+TGFuZygnZmllbGQnKSwnaW5wdXRfZmlsZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkdldFVwbG9hZEVycm9yTWVzc2FnZSgkZXJyKSk7CiAgICAgICAgfQogICAgICAgIGVsc2UgIHsKICAgICAgICAgICAgJGZpZWxkdmFsdWUgPSAkcmVzOwogICAgICAgIH0KICAgICAgICBicmVhazsKICAgIH0KCiAgICAvLyBBdCB0aGlzIHBvaW50LCB2YWx1ZSBjYW5ub3QgYmUgZW1wdHkKICAgIGlmKCBlbXB0eSgkZmllbGR2YWx1ZSkgJiYgZW1wdHkoJGVycm9yKSApIHsKICAgICAgICAkZXJyb3IgPSAkdGhpcy0+TGFuZygnZXJyb3JfZmllbGR2YWx1ZV9lbXB0eScpOwogICAgfQoKICAgIGlmKCAhZW1wdHkoJGVycm9yKSApIHsKICAgICAgICAvLyBIYW5kbGUgZXJyb3JzLgogICAgICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJGVycm9yKTsKICAgIH0KICAgIGVsc2UgIHsKICAgICAgICAvLyBTdG9yZSB0aGUgZmllbGQgZGVmaW5pdGlvbgogICAgICAgIGlmKCAkZWRpdGluZyA9PSAxICkgewogICAgICAgICAgICAkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcnlfZmllbGRzCiAgICAgICAgICAgICAgICAgICAgICAgICBTRVQgZmllbGRfbmFtZSA9ID8sIGZpZWxkX3R5cGUgPSA/LCBmaWVsZF9wcm9tcHQgPSA/LCBmaWVsZF92YWx1ZSA9ID8KICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSBjYXRlZ29yeV9pZCA9ID8gQU5EIGZpZWxkX25hbWUgPSA/JzsKICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkZmllbGRuYW1lLCRmaWVsZHR5cGUsJGZpZWxkcHJvbXB0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmaWVsZHZhbHVlLCRjYXRpZCwkb2xkX2ZpZWxkbmFtZSkpOwogICAgICAgIH0KICAgICAgICBlbHNlICB7CiAgICAgICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgTUFYKGZpZWxkX29yZGVyKSBBUyBudW0gRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcwogICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIGNhdGVnb3J5X2lkID0gPyc7CiAgICAgICAgICAgICR0bXAgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJGNhdGlkKSk7CiAgICAgICAgICAgICRmaWVsZG9yZGVyID0gMDsKICAgICAgICAgICAgaWYoIGlzX2FycmF5KCR0bXApICkgJGZpZWxkb3JkZXIgPSAkdG1wWydudW0nXSsxOwogICAgICAgICAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMKICAgICAgICAgICAgICAgICAgICAgIChjYXRlZ29yeV9pZCwgZmllbGRfdHlwZSwgZmllbGRfbmFtZSwgZmllbGRfcHJvbXB0LCBmaWVsZF92YWx1ZSwgZmllbGRfb3JkZXIpCiAgICAgICAgICAgICAgICAgICAgICBWQUxVRVMgKD8sPyw/LD8sPyw/KSc7CiAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGNhdGlkLCRmaWVsZHR5cGUsJGZpZWxkbmFtZSwkZmllbGRwcm9tcHQsJGZpZWxkdmFsdWUsJGZpZWxkb3JkZXIpKTsKICAgICAgICB9CgogICAgICAgIC8vIFJlZGlyZWN0LgogICAgICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2VkaXRjYXRlZ29yeWZpZWxkcycsJHJldHVybmlkLCBhcnJheSgnY2F0aWQnPT4kY2F0aWQpKTsKICAgIH0KfQoKLy8KLy8gQ3JlYXRlIHRoZSBmb3JtCi8vCiRwYXJtcyA9IGFycmF5KCdjYXRpZCc9PiRjYXRpZCk7CmlmKCAkb2xkX2ZpZWxkbmFtZSAhPSAnJyApICAkcGFybXNbJ2ZsZG5hbWUnXSA9ICRvbGRfZmllbGRuYW1lOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRkY2F0ZWdvcnlmaWVsZCcsJHJldHVybmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJtcyxmYWxzZSwncG9zdCcsJ211bHRpcGFydC9mb3JtLWRhdGEnKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CgokZmllbGR0eXBlcyA9IGFycmF5KCk7CiRmaWVsZHR5cGVzWyR0aGlzLT5MYW5nKCd0ZXh0Ym94JyldID0gJ3RleHRib3gnOwokZmllbGR0eXBlc1skdGhpcy0+TGFuZygndGV4dGFyZWEnKV0gPSAndGV4dGFyZWEnOwokZmllbGR0eXBlc1skdGhpcy0+TGFuZygnaW1hZ2V0ZXh0JyldID0gJ2ltYWdlJzsKJGZpZWxkdHlwZXNbJHRoaXMtPkxhbmcoJ2ZpbGUnKV0gPSAnZmlsZSc7CiRzbWFydHktPmFzc2lnbignaW5wdXRfZmllbGR0eXBlJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2lucHV0X2ZpZWxkdHlwZScsJGZpZWxkdHlwZXMsLTEsJGZpZWxkdHlwZSwKCQkJCQkgICAnb25DaGFuZ2U9InRoaXMuZm9ybS5zdWJtaXQoKSInKSk7CiRzbWFydHktPmFzc2lnbignaGlkZGVuMScsJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnaW5wdXRfZWRpdGluZycsJGVkaXRpbmcpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9maWVsZG5hbWUnLCR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdpbnB1dF9maWVsZG5hbWUnLCRmaWVsZG5hbWUsNDAsMjU1KSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfZmllbGRwcm9tcHQnLCR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdpbnB1dF9maWVsZHByb21wdCcsJGZpZWxkcHJvbXB0LDQwLDI1NSkpOwokc21hcnR5LT5hc3NpZ24oJ2ZpZWxkdmFsdWUnLCRmaWVsZHZhbHVlKTsKJHNtYXJ0eS0+YXNzaWduKCdmaWVsZHR5cGUnLCRmaWVsZHR5cGUpOwpzd2l0Y2goICRmaWVsZHR5cGUgKSB7CmNhc2UgJ3RleHRib3gnOgogICAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9maWVsZHZhbHVlJywKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnaW5wdXRfZmllbGR2YWx1ZScsJGZpZWxkdmFsdWUsODAsMjU1KSk7CiAgICBicmVhazsKCmNhc2UgJ3RleHRhcmVhJzoKICAgICRzbWFydHktPmFzc2lnbignaW5wdXRfZmllbGR2YWx1ZScsCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkNyZWF0ZVRleHRBcmVhKHRydWUsJGlkLCRmaWVsZHZhbHVlLCdpbnB1dF9maWVsZHZhbHVlJykpOwogICAgYnJlYWs7CgpjYXNlICdpbWFnZSc6CiAgICBpZiggIWVtcHR5KCRmaWVsZHZhbHVlKSApIHsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X2hpZGRlbicsJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnaW5wdXRfZmllbGR2YWx1ZScsJGZpZWxkdmFsdWUpKTsKICAgIH0KICAgICRzbWFydHktPmFzc2lnbignZmlsZWxvY2F0aW9uJyxwcm9kdWN0X3V0aWxzOjpnZXRfY2F0ZWdvcnlfdXBsb2FkX3VybCgkY2F0aWQpKTsKICAgIGlmKCBmaWxlX2V4aXN0cyggY21zX2pvaW5fcGF0aCggcHJvZHVjdF91dGlsczo6Z2V0X2NhdGVnb3J5X3VwbG9hZF9wYXRoKChpbnQpJGNhdGlkKSwkZmllbGR2YWx1ZSkgKSApIHsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2ZpbGVleGlzdHMnLDEpOwogICAgfQogICAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9maWVsZHZhbHVlJywgJHRoaXMtPkNyZWF0ZUZpbGVVcGxvYWRJbnB1dCgkaWQsJ2lucHV0X2ZpbGUnLCcnLDQwKSk7CiAgICBicmVhazsKCmNhc2UgJ2ZpbGUnOgogICAgaWYoICFlbXB0eSgkZmllbGR2YWx1ZSkgKSB7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9oaWRkZW4nLCR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2lucHV0X2ZpZWxkdmFsdWUnLCRmaWVsZHZhbHVlKSk7CiAgICB9CiAgICAkc21hcnR5LT5hc3NpZ24oJ2ZpbGVsb2NhdGlvbicsJ3VwbG9hZHMvJy4kdGhpcy0+R2V0TmFtZSgpLicvY2F0ZWdvcmllcy8nLiRjYXRpZCk7CiAgICBpZiggZmlsZV9leGlzdHMoIGNtc19qb2luX3BhdGgoIHByb2R1Y3RfdXRpbHM6OmdldF9jYXRlZ29yeV91cGxvYWRfcGF0aCgkY2F0aWQpLCRmaWVsZHZhbHVlKSApICkgewogICAgICAgICRzbWFydHktPmFzc2lnbignZmlsZWV4aXN0cycsMSk7CiAgICB9CiAgICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X2ZpZWxkdmFsdWUnLCAgJHRoaXMtPkNyZWF0ZUZpbGVVcGxvYWRJbnB1dCgkaWQsJ2lucHV0X2ZpbGUnLCcnLDQwKSk7CiAgICBicmVhazsKfQokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnc3VibWl0JywkdGhpcy0+TGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2NhbmNlbCcsJHRoaXMtPkxhbmcoJ2NhbmNlbCcpKSk7CgojIFByb2Nlc3MgdGVtcGxhdGUKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZGRjYXRlZ29yeWZpZWxkLnRwbCcpOwoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.addfielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpKSByZXR1cm47CgokdGhpcy0+U2V0Q3VycmVudFRhYignZmllbGRkZWZzJyk7CmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKJHVzZXJpZCA9IGdldF91c2VyaWQoKTsKJG5hbWUgPSB0cmltKGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywnbmFtZScpKTsKJHByb21wdCA9IHRyaW0oZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCdwcm9tcHQnKSk7CiRvcHRpb25zID0gdHJpbShnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsJ29wdGlvbnMnKSk7CiR0eXBlID0gdHJpbShnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsJ3R5cGUnKSk7CiRtYXhfbGVuZ3RoID0gKGludClnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsJ21heF9sZW5ndGgnKTsKJHB1YmxpYyA9IChpbnQpZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCdwdWJsaWMnLDEpOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkgewogIGlmKCAkdHlwZSA9PSAnJyApIHsKICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX25vZmllbGR0eXBlJykpOwogIH0KICBlbHNlIGlmICgkbmFtZSA9PSAnJykgewogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbm9uYW1lZ2l2ZW4nKSk7CiAgfQogIGVsc2UgaWYoICEkdGhpcy0+aXNfYWxpYXMoJG5hbWUpICkgewogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZF9uYW1lJykpOwogIH0KICBlbHNlIGlmKCAhZW1wdHkoJG1heF9sZW5ndGgpICYmICFpc19udW1lcmljKCRtYXhfbGVuZ3RoKSApIHsKICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ25vdGFudW1iZXInKSk7CiAgfQogIGVsc2UgaWYoICR0eXBlID09ICdzdWJzY3JpcHRpb24nICYmCgkgICAkZGItPkdldE9uZSgnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMgV0hFUkUgdHlwZSA9ID8nLGFycmF5KCR0eXBlKSkgKSB7CiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9vbmVzdWJzY3JpcHRpb25maWVsZCcpKTsKICB9CiAgZWxzZSBpZiggJHR5cGUgPT0gJ3F1YW50aXR5JyAmJgoJICAgJGRiLT5HZXRPbmUoJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFdIRVJFIHR5cGUgPSA/JyxhcnJheSgkdHlwZSkpICkgewogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3Jfb25lcXVhbnRpdHlmaWVsZCcpKTsKICB9CiAgZWxzZSB7CiAgICAkbWF4ID0gJGRiLT5HZXRPbmUoJ1NFTEVDVCBtYXgoaXRlbV9vcmRlcikgKyAxIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzJyk7CiAgICBpZiggISRtYXggKSAkbWF4ID0gMDsKICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyAobmFtZSwgcHJvbXB0LCB0eXBlLCBtYXhfbGVuZ3RoLCBpdGVtX29yZGVyLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSwgcHVibGljLCBvcHRpb25zKSBWQUxVRVMgKD8sPyw/LD8sPyw/LD8sPyw/KSc7CiAgICAkcGFybXMgPSBhcnJheSgkbmFtZSwgJHByb21wdCwgJHR5cGUsICRtYXhfbGVuZ3RoLCAkbWF4LAoJCSAgIHRyaW0oJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLCAiJyIpLCB0cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSwgIiciKSwgJHB1YmxpYywkb3B0aW9ucyk7CiAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgJHBhcm1zICk7CiAgICBpZiggISRkYnIgKSB7CiAgICAgIGVjaG8gIkRFQlVHOiByZXN1bHQgPSAiLiRkYi0+RXJyb3JNc2coKS4iPGJyLz4mbmJzcDsmbmJzcDsiLiRkYi0+c3FsLiI8YnIvPiI7IGRpZSgpOwogICAgfQoKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgfQp9CgojRGlzcGxheSB0ZW1wbGF0ZQokc21hcnR5LT5hc3NpZ24oJ29wdGlvbnMnLCRvcHRpb25zKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRkZmllbGRkZWYnLCAkcmV0dXJuaWQpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRuYW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICduYW1lJywgJG5hbWUsIDMwLCAyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHByb21wdCcsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ3Byb21wdCcsJHByb21wdCw1MCwyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCdzaG93aW5wdXR0eXBlJywgdHJ1ZSk7CgokYWRkdGV4dCA9ICJvbkNoYW5nZT0ndGhpcy5mb3JtLnN1Ym1pdCgpJyI7CiRzbWFydHktPmFzc2lnbignaW5wdXR0eXBlJywgJHRoaXMtPkdldFR5cGVzRHJvcGRvd24oJGlkLCAndHlwZScsICR0eXBlLCAkYWRkdGV4dCwgdHJ1ZSkpOwokc21hcnR5LT5hc3NpZ24oJ3R5cGUnLCR0eXBlKTsKCmlmKCAkdHlwZSA9PSAndGV4dGJveCcgKSAkc21hcnR5LT5hc3NpZ24oJ2lucHV0bWF4bGVuZ3RoJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdtYXhfbGVuZ3RoJywgJG1heF9sZW5ndGgsIDMwLCAyNTUpKTsKCiRzbWFydHktPmFzc2lnbigndXNlcnZpZXd0ZXh0JywkdGhpcy0+TGFuZygncHVibGljJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3VzZXJ2aWV3JywgJHRoaXMtPkNyZWF0ZUlucHV0Y2hlY2tib3goJGlkLCAncHVibGljJywgMSwgJHB1YmxpYykpOwoKJHNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLCAnJyk7CiRzbWFydHktPmFzc2lnbignc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsIGxhbmcoJ3N1Ym1pdCcpKSk7CiRzbWFydHktPmFzc2lnbignY2FuY2VsJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsIGxhbmcoJ2NhbmNlbCcpKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRmaWVsZGRlZi50cGwnKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.addproduct.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFByb2R1Y3RzJykpIHJldHVybjsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3Byb2R1Y3RzJyk7CgovLwovLyBBIHV0aWxpdHkgZnVuY3Rpb24KLy8KZnVuY3Rpb24gZ2V0X2ZpZWxkX2RlZigmJGZpZWxkZGVmcywkaWQpCnsKICAgIGZvcmVhY2goICRmaWVsZGRlZnMgYXMgJG9uZWRlZiApIHsKICAgICAgICBpZiggJG9uZWRlZi0+aWQgPT0gJGlkICkgewogICAgICAgICAgICByZXR1cm4gJG9uZWRlZjsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gZmFsc2U7Cn0KCgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKSAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKJHByb2R1Y3RfbmFtZSA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywncHJvZHVjdF9uYW1lJyk7CiRwcmljZSA9IFxjZ2VfcGFyYW06OmdldF9mbG9hdCgkcGFyYW1zLCdwcmljZScpOwokd2VpZ2h0ID0gXGNnZV9wYXJhbTo6Z2V0X2Zsb2F0KCRwYXJhbXMsJ3dlaWdodCcpOwokc2t1ID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdza3UnKTsKJGFsaWFzID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdhbGlhcycpOwokZGV0YWlscyA9IFxjZ2VfcGFyYW06OmdldF9odG1sKCRwYXJhbXMsJ2RldGFpbHMnKTsKJHN0YXR1cyA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnc3RhdHVzJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9zdGF0dXMnLCdwdWJsaXNoZWQnKSk7CiR0YXhhYmxlID0gXGNnZV9wYXJhbTo6Z2V0X2Jvb2woJHBhcmFtcywndGF4YWJsZScsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfdGF4YWJsZScsMSkpOwokdXJsc2x1ZyA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywndXJsc2x1ZycpOwoKCiR1c2VyaWQgPSBnZXRfdXNlcmlkKCk7CiRmaWVsZGRlZnMgPSBwcm9kdWN0X3V0aWxzOjpnZXRfZmllbGRkZWZzKHRydWUpOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkgewogICAgJGVycm9ycyA9IGFycmF5KCk7CiAgICB0cnkgewogICAgICAgIC8vIGNoZWNrIHByb2R1Y3QgbmFtZQogICAgICAgIGlmKCBlbXB0eSgkcHJvZHVjdF9uYW1lKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnbm9uYW1lZ2l2ZW4nKSk7CiAgICAgICAgLy8gY2hlY2sgZm9yIGR1cGxpY2F0ZSBuYW1lCiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgV0hFUkUgcHJvZHVjdF9uYW1lID0gPyc7CiAgICAgICAgaWYoIChpbnQpICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkcHJvZHVjdF9uYW1lKSkgPiAwICkgdGhyb3cgbmV3IFxSdW50aW1lZXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJfcHJvZHVjdF9uYW1ldXNlZCcpKTsKCiAgICAgICAgLy8gaGFuZGxlIGFuIGVtcHR5IGFsaWFzCiAgICAgICAgaWYoIGVtcHR5KCRhbGlhcykgKSB7CiAgICAgICAgICAgICRhbGlhcyA9IHByb2R1Y3Rfb3BzOjpnZW5lcmF0ZV9hbGlhcygkcHJvZHVjdF9uYW1lKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRhbGlhcyA9IG11bmdlX3N0cmluZ190b191cmwoJGFsaWFzKTsKICAgICAgICB9CgogICAgICAgIC8vIGNoZWNrIGZvciBkdXBsaWNhdGUgYWxpYXMKICAgICAgICBpZiggcHJvZHVjdF9vcHM6OmNoZWNrX2FsaWFzX3VzZWQoJGFsaWFzKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfcHJvZHVjdF9hbGlhc3VzZWQnKSk7CgogICAgICAgIC8vIGNoZWNrIGZvciBlbXB0eSBza3UKICAgICAgICBpZiggZW1wdHkoJHNrdSkgJiYgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NrdXJlcXVpcmVkJywwKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyX3NrdV9yZXF1aXJlZCcpKTsKCiAgICAgICAgLy8gY2hlY2sgZm9yIGR1cGxpY2F0ZSBza3UKICAgICAgICBpZiggIWVtcHR5KCRza3UpICkgewogICAgICAgICAgICBpZiggcHJvZHVjdF9vcHM6OmNoZWNrX3NrdV91c2VkKCRza3UpICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9wcm9kdWN0X3NrdXVzZWQnKSk7CiAgICAgICAgfQoKICAgICAgICAvLyB2YWxpZGF0ZSB0aGUgdXJsc2x1ZyAod2hpY2ggaXMgb3B0aW9uYWwpCiAgICAgICAgaWYoICR1cmxzbHVnICE9ICcnICkgewogICAgICAgICAgICAkdXJsc2x1ZyA9IHRyaW0oJHVybHNsdWcsJy8nKTsKCiAgICAgICAgICAgIC8vIGNoZWNrIGZvciBpbnZhbGlkIGNoYXJzLgogICAgICAgICAgICAkdHJhbnNsYXRlZCA9IG11bmdlX3N0cmluZ190b191cmwoJHVybHNsdWcsZmFsc2UsdHJ1ZSk7CiAgICAgICAgICAgIGlmKCBzdHJ0b2xvd2VyKCR0cmFuc2xhdGVkKSAhPSBzdHJ0b2xvd2VyKCR1cmxzbHVnKSApIHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWR1cmxzbHVnJykpOwoKICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoaXMgdXJsIGlzbid0IHRha2VuLgogICAgICAgICAgICAkdXJsID0gdHJpbSgkdXJsc2x1ZywiIC9cdFxyXG5cMFx4MDgiKTsKICAgICAgICAgICAgY21zX3JvdXRlX21hbmFnZXI6OmxvYWRfcm91dGVzKCk7CiAgICAgICAgICAgICRyb3V0ZSA9IGNtc19yb3V0ZV9tYW5hZ2VyOjpmaW5kX21hdGNoKCR1cmxzbHVnKTsKICAgICAgICAgICAgaWYoICRyb3V0ZSApIHsKICAgICAgICAgICAgICAgIC8vIHdlJ3JlIGFkZGluZyBhbiBhcnRpY2xlLCBub3QgZWRpdGluZy4uLiBhbnkgbWF0Y2hpbmcgcm91dGUgaXMgYmFkLgogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHVybCcpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gaW5zZXJ0IHRoZSBwcm9kdWN0IHJlY29yZAogICAgICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzIChwcm9kdWN0X25hbWUsIHByaWNlLCBkZXRhaWxzLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSwgdGF4YWJsZSwgc3RhdHVzLCB3ZWlnaHQsIHNrdSwgYWxpYXMsIHVybCkgVkFMVUVTICg/LD8sPyw/LD8sPyw/LD8sPyw/LD8pJzsKICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHByb2R1Y3RfbmFtZSwgJHByaWNlLCAkZGV0YWlscywgdHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSksICInIiksIHRyaW0oJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLCAiJyIpLCAkdGF4YWJsZSwgJHN0YXR1cywgJHdlaWdodCwgJHNrdSwgJGFsaWFzLCAkdXJsc2x1ZykpOwogICAgICAgIGlmKCAhJGRiciApIGRpZSgnRVJST1I6ICcuJGRiLT5zcWwuJzxici8+Jy4kZGItPkVycm9yTXNnKCkpOwogICAgICAgICRjaWQgPSAkZGItPkluc2VydF9JRCgpOwoKICAgICAgICAvLyBpbnNlcnQgdGhlIHByb2R0b2hpZXIgcmVjb3JkCiAgICAgICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHRvaGllciAocHJvZHVjdF9pZCxoaWVyYXJjaHlfaWQpIFZBTFVFUyAoPyw/KSc7CiAgICAgICAgJGRiLT5FeGVjdXRlKCAkcXVlcnksIGFycmF5KCAkY2lkLCAoaW50KSRwYXJhbXNbJ2hpZXJhcmNoeSddKSApOwoKICAgICAgICAvLyBIYW5kbGUgY3VzdG9tIGZpZWxkcwogICAgICAgIGlmIChpc3NldCgkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddKSkgewogICAgICAgICAgICBmb3JlYWNoICgkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddIGFzICRrPT4kdikgewogICAgICAgICAgICAgICAgaWYgKHN0YXJ0c3dpdGgoJGssICdmaWVsZC0nKSkgewogICAgICAgICAgICAgICAgICAgIC8vIGdldCB0aGUgZmllbGQgaW5kZXgKICAgICAgICAgICAgICAgICAgICAkZmlkID0gc3Vic3RyKCRrLCA2KTsKCiAgICAgICAgICAgICAgICAgICAgLy8gZ2V0IHRoZSBmaWVsZCB0eXBlCiAgICAgICAgICAgICAgICAgICAgJGRlZiA9IGdldF9maWVsZF9kZWYoJGZpZWxkZGVmcywkZmlkKTsKICAgICAgICAgICAgICAgICAgICBpZiggISRkZWYgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRpZSgnY291bGQgbm90IGdldCBmaWVsZCBkZWYgZm9yICcuJGZpZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgLy8gaGFuZGxlIHRoZSB1cGxvYWQgKGlmIGFueSkKICAgICAgICAgICAgICAgICAgICBzd2l0Y2goICRkZWYtPnR5cGUgKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZmlsZSc6CiAgICAgICAgICAgICAgICAgICAgICAgICRkZXN0ZGlyID0gcHJvZHVjdF91dGlsczo6Z2V0X3Byb2R1Y3RfdXBsb2FkX3BhdGgoJGNpZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNnZV9kaXI6Om1rZGlycigkZGVzdGRpcik7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAhaXNfZGlyKCRkZXN0ZGlyKSApIGRpZSgnZGlyZWN0b3J5IHN0aWxsIGRvZXMgbm90IGV4aXN0Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgICRoYW5kbGVyID0gbmV3IGNnX2ZpbGV1cGxvYWQoJGlkLCRkZXN0ZGlyKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGhhbmRsZXItPnNldF9hY2NlcHRlZF9maWxldHlwZXMoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93ZWRfZmlsZXR5cGVzJykpOwogICAgICAgICAgICAgICAgICAgICAgICAkcmVzID0gJGhhbmRsZXItPmhhbmRsZV91cGxvYWQoJ2N1c3RvbWZpZWxkJywnJywnZmllbGQtJy4kZmlkKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGVyciA9ICRoYW5kbGVyLT5nZXRfZXJyb3IoKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICEkcmVzICYmICRlcnIgIT0gY2dfZmlsZXVwbG9hZDo6Tk9GSUxFICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGVycm9yc1tdID0gc3ByaW50ZigiJXMgJXM6ICVzIiwkdGhpcy0+TGFuZygnZmllbGQnKSwkZGVmLT5uYW1lLCR0aGlzLT5HZXRVcGxvYWRFcnJvck1lc3NhZ2UoJGVycikpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoICEkcmVzICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHYgPSBudWxsOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHYgPSAkcmVzOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICBjYXNlICdpbWFnZSc6CiAgICAgICAgICAgICAgICAgICAgICAgICRhdHRyID0gJ2RlZmF1bHQnOyAvLyB1c2UgZGVmYXVsdCB2YWx1ZSBmb3Igd21sb2NhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICBpZiggaXNzZXQoJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGRfYXR0ciddKSAmJiBpc3NldCgkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZF9hdHRyJ11bJGtdKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhdHRyID0gJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGRfYXR0ciddWyRrXTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAkZGVzdGRpciA9IHByb2R1Y3RfdXRpbHM6OmdldF9wcm9kdWN0X3VwbG9hZF9wYXRoKCRjaWQpOwogICAgICAgICAgICAgICAgICAgICAgICAkcmVzID0gJHRoaXMtPkhhbmRsZVVwbG9hZGVkSW1hZ2UoJGlkLCdjdXN0b21maWVsZCcsJGRlc3RkaXIsJGVycm9ycywnZmllbGQtJy4kZmlkLCRhdHRyKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICRyZXMgPT09IEZBTFNFICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHYgPSBudWxsOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoICRyZXMgPT09IFRSVUUgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHYgPSAkcmVzOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICBjYXNlICdxdWFudGl0eSc6CiAgICAgICAgICAgICAgICAgICAgICAgICR2ID0gKGludCkkdjsKICAgICAgICAgICAgICAgICAgICAgICAgJHYgPSBtYXgoMCwkdik7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICBjYXNlICdzdWJzY3JpcHRpb24nOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2RpbWVuc2lvbnMnOgogICAgICAgICAgICAgICAgICAgICAgICBpZiggaXNfYXJyYXkoJHYpICkgJHYgPSBzZXJpYWxpemUoJHYpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnY29tcGFueWRpcic6CiAgICAgICAgICAgICAgICAgICAgICAgICR2ID0gKGludCkkdjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICR2IDwgMSApICR2ID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3RleHRib3gnOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NoZWNrYm94JzoKICAgICAgICAgICAgICAgICAgICBjYXNlICd0ZXh0YXJlYSc6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZHJvcGRvd24nOgogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgZGllKCJ1bmtub3duIGZpZWxkIHR5cGU6ICIuJGRlZi0+dHlwZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgLy8gY29tbWl0IGl0LgogICAgICAgICAgICAgICAgICAgIGlmKCAhaXNfbnVsbCgkdikgJiYgJHYgIT09ICcnICkgewogICAgICAgICAgICAgICAgICAgICAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgKHByb2R1Y3RfaWQsIGZpZWxkZGVmX2lkLCB2YWx1ZSwgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUpIFZBTFVFUyAoPyw/LD8sPyw/KSc7CiAgICAgICAgICAgICAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjaWQsICRmaWQsICR2LCB0cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSwgIiciKSwgdHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSksICInIikpKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIGhhbmRsZSBjYXRlZ29yeSBzdHVmZgogICAgICAgIGlmIChpc3NldCgkcGFyYW1zWydjYXRlZ29yaWVzJ10pKSB7CiAgICAgICAgICAgIGZvcmVhY2ggKCRwYXJhbXNbJ2NhdGVnb3JpZXMnXSBhcyAkdikgewogICAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzCiAgICAgICAgICAgICAgICAgIChwcm9kdWN0X2lkLCBjYXRlZ29yeV9pZCwgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUpIFZBTFVFUyAoPyw/LD8sPyknOwogICAgICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGNpZCwgJHYsIHRyaW0oJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLCAiJyIpLCB0cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSwgIiciKSkpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvL1VwZGF0ZSBzZWFyY2ggaW5kZXgKICAgICAgICAkbW9kdWxlID0gY21zX3V0aWxzOjpnZXRfc2VhcmNoX21vZHVsZSgpOwogICAgICAgIGlmICgkbW9kdWxlICE9IEZBTFNFKSB7CiAgICAgICAgICAgIGlmKCAkc3RhdHVzID09ICdwdWJsaXNoZWQnICkgewogICAgICAgICAgICAgICAgJG1vZHVsZS0+QWRkV29yZHMoJHRoaXMtPkdldE5hbWUoKSwgJGNpZCwgJ3Byb2R1Y3QnLCBpbXBsb2RlKCcgJywgJHRoaXMtPkdldFNlYXJjaGFibGVUZXh0KCRjaWQpICkpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiggY291bnQoJGVycm9ycykgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2luZm9fZmllbGRwcm9ibGVtcycpKTsKCiAgICAgICAgLy8gYWxsIGRvbmUKICAgICAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogICAgfQogICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgLy8gaGFuZGxlIGVycm9ycy4KICAgICAgICBpZiggY291bnQoJGVycm9ycykgKSBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRlcnJvcnMpOwogICAgICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJGUtPkdldE1lc3NhZ2UoKSk7CiAgICB9Cn0KCiRmaWVsZGFycmF5ID0gYXJyYXkoKTsKaWYgKGNvdW50KCRmaWVsZGRlZnMpID4gMCkgewogICAgJHN1YnNjcmliZV9vcHRzID0gYXJyYXkoKTsKICAgICRzdWJzY3JpYmVfb3B0c1stMV0gPSAkdGhpcy0+TGFuZygnbm9uZScpOwogICAgJHN1YnNjcmliZV9vcHRzWydtb250aGx5J10gPSAkdGhpcy0+TGFuZygnc3Vic2NyX21vbnRobHknKTsKICAgICRzdWJzY3JpYmVfb3B0c1sncXVhcnRlcmx5J10gPSAkdGhpcy0+TGFuZygnc3Vic2NyX3F1YXJ0ZXJseScpOwogICAgJHN1YnNjcmliZV9vcHRzWydzZW1pYW51YWxseSddID0gJHRoaXMtPkxhbmcoJ3N1YnNjcl9zZW1pYW51YWxseScpOwogICAgJHN1YnNjcmliZV9vcHRzWyd5ZWFybHknXSA9ICR0aGlzLT5MYW5nKCdzdWJzY3JfeWVhcmx5Jyk7CiAgICAkc3Vic2NyaWJlX29wdHMgPSBhcnJheV9mbGlwKCRzdWJzY3JpYmVfb3B0cyk7CgogICAgJGV4cGlyZV9vcHRzID0gYXJyYXkoKTsKICAgICRleHBpcmVfb3B0c1skdGhpcy0+TGFuZygnbm9uZScpXSA9IC0xOwogICAgJGV4cGlyZV9vcHRzWyR0aGlzLT5MYW5nKCdleHBpcmVfc2l4X21vbnRocycpXSA9ICc2JzsKICAgICRleHBpcmVfb3B0c1skdGhpcy0+TGFuZygnZXhwaXJlX29uZV95ZWFyJyldID0gJzEyJzsKICAgICRleHBpcmVfb3B0c1skdGhpcy0+TGFuZygnZXhwaXJlX3R3b195ZWFyJyldID0gJzI0JzsKCiAgICAkd21vcHRzID0gYXJyYXkoKTsKICAgICR3bW9wdHNbJHRoaXMtPkxhbmcoJ25vbmUnKV0gPSAnbm9uZSc7CiAgICAkd21vcHRzWyR0aGlzLT5MYW5nKCdkZWZhdWx0JyldID0gJ2RlZmF1bHQnOwogICAgJHdtb3B0c1skdGhpcy0+TGFuZygnYWxpZ25fdWwnKV0gPSAnMCc7CiAgICAkd21vcHRzWyR0aGlzLT5MYW5nKCdhbGlnbl91YycpXSA9ICcxJzsKICAgICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2FsaWduX3VyJyldID0gJzInOwogICAgJHdtb3B0c1skdGhpcy0+TGFuZygnYWxpZ25fbWwnKV0gPSAnMyc7CiAgICAkd21vcHRzWyR0aGlzLT5MYW5nKCdhbGlnbl9tYycpXSA9ICc0JzsKICAgICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2FsaWduX21yJyldID0gJzUnOwogICAgJHdtb3B0c1skdGhpcy0+TGFuZygnYWxpZ25fbGwnKV0gPSAnNic7CiAgICAkd21vcHRzWyR0aGlzLT5MYW5nKCdhbGlnbl9sYycpXSA9ICc3JzsKICAgICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2FsaWduX2xyJyldID0gJzgnOwoKICAgIGZvcmVhY2ggKCRmaWVsZGRlZnMgYXMgJGZpZWxkZGVmKSB7CiAgICAgICAgJGZpZWxkID0gbmV3IHN0ZENsYXNzKCk7CgogICAgICAgICR2YWx1ZSA9ICcnOwogICAgICAgIGlmIChpc3NldCgkZmllbGRkZWYtPnZhbHVlKSkgJHZhbHVlID0gJGZpZWxkZGVmLT52YWx1ZTsKCiAgICAgICAgaWYgKGlzc2V0KCRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ11bJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZF0pKSAkdmFsdWUgPSAkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddWydmaWVsZC0nLiRmaWVsZGRlZi0+aWRdOwogICAgICAgICRmaWVsZC0+aWQgPSAkZmllbGRkZWYtPmlkOwogICAgICAgICRmaWVsZC0+bmFtZSA9ICRmaWVsZGRlZi0+bmFtZTsKICAgICAgICAkZmllbGQtPnByb21wdCA9ICRmaWVsZGRlZi0+cHJvbXB0OwogICAgICAgICRmaWVsZC0+dHlwZSA9ICRmaWVsZGRlZi0+dHlwZTsKICAgICAgICBzd2l0Y2ggKCRmaWVsZGRlZi0+dHlwZSkgewogICAgICAgIGNhc2UgJ2RpbWVuc2lvbnMnOgogICAgICAgICAgICAkZmllbGQtPnByb21wdCAuPSAnJm5ic3A7KCcucHJvZHVjdF9vcHM6OmdldF9sZW5ndGhfdW5pdHMoKS4nKSc7CiAgICAgICAgICAgICRmaWVsZC0+aW5wdXRfYm94ID0KICAgICAgICAgICAgICAgICR0aGlzLT5MYW5nKCdhYmJyX2xlbmd0aCcpLic6Jm5ic3AnLgogICAgICAgICAgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXVtsZW5ndGhdJywkdmFsdWUsMywzKS4KICAgICAgICAgICAgICAgICR0aGlzLT5MYW5nKCdhYmJyX3dpZHRoJykuJzombmJzcCcuCiAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddW3dpZHRoXScsICR2YWx1ZSwzLDMpLgogICAgICAgICAgICAgICAgJHRoaXMtPkxhbmcoJ2FiYnJfaGVpZ2h0JykuJzombmJzcCcuCiAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddW2hlaWdodF0nLCAkdmFsdWUsMywzKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnY2hlY2tib3gnOgogICAgICAgICAgICAkZmllbGQtPmlucHV0X2JveCA9ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSInIC4gJGlkIC4gJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScgLiAnIiB2YWx1ZT0iZmFsc2UiIC8+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCAndHJ1ZScsICR2YWx1ZSA9PSAndHJ1ZScpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICd0ZXh0YXJlYSc6CiAgICAgICAgICAgICRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkNyZWF0ZVRleHRBcmVhKHRydWUsICRpZCwgJHZhbHVlLCAnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddJyk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2Ryb3Bkb3duJzoKICAgICAgICAgICAgJGZpZWxkLT5pbnB1dF9ib3ggPSAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCAkZmllbGRkZWYtPm9wdGlvbnMsIC0xLCAkdmFsdWUgKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnZmlsZSc6CiAgICAgICAgICAgICRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkNyZWF0ZUZpbGVVcGxvYWRJbnB1dCgkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsJycsNTApOwogICAgICAgICAgICAkZmllbGQtPmhpZGRlbiA9ICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsJycpOwogICAgICAgIGNhc2UgJ2ltYWdlJzoKICAgICAgICAgICAgJGZpZWxkLT5pbnB1dF9ib3ggPSAkdGhpcy0+Q3JlYXRlRmlsZVVwbG9hZElucHV0KCRpZCwnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddJywnJyw1MCk7CiAgICAgICAgICAgICRmaWVsZC0+aGlkZGVuID0gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddJywnJyk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ3N1YnNjcmlwdGlvbic6CiAgICAgICAgICAgICRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkxhbmcoJ3N1YnNjcl9wYXlwZXJpb2QnKS4nOiZuYnNwOyc7CiAgICAgICAgICAgICRmaWVsZC0+aW5wdXRfYm94IC49ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddW3BheXBlcmlvZF0nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3Vic2NyaWJlX29wdHMsIC0xLCAkdmFsdWUpOwogICAgICAgICAgICAkZmllbGQtPmlucHV0X2JveCAuPSAnPGJyLz4nLiR0aGlzLT5MYW5nKCdzdWJzY3JfZGVscGVyaW9kJykuJzombmJzcDsnOwogICAgICAgICAgICAkZmllbGQtPmlucHV0X2JveCAuPSAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXVtkZWxwZXJpb2RdJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN1YnNjcmliZV9vcHRzLCAtMSwgJHZhbHVlKTsKICAgICAgICAgICAgJGZpZWxkLT5pbnB1dF9ib3ggLj0gJzxici8+Jy4kdGhpcy0+TGFuZygnc3Vic2NyX2V4cGlyeScpLic6Jm5ic3A7JzsKICAgICAgICAgICAgJGZpZWxkLT5pbnB1dF9ib3ggLj0gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ11bZXhwaXJlXScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRleHBpcmVfb3B0cywgLTEsICR2YWx1ZSk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdxdWFudGl0eSc6CiAgICAgICAgICAgICRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCAkdmFsdWUsIDQsIDQpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnY29tcGFueWRpcic6CiAgICAgICAgICAgICRjZG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ29tcGFueURpcmVjdG9yeScsJzEuMTknKTsKICAgICAgICAgICAgaWYoICRjZG1vZCApIHsKICAgICAgICAgICAgICAgICRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsJHZhbHVlLDEwLDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwbGFjZWhvbGRlcj1cInskdGhpcy0+TGFuZygnY2RfYXV0b2NvbXBsZXRlJyl9XCIgdGl0bGU9XCJ7JHRoaXMtPkxhbmcoJ3RpdGxlX2NkYXV0b2NvbXBsZXRlJyl9XCIiKTsKICAgICAgICAgICAgICAgICRmaWVsZC0+aW5wdXRfYm94ID0gJzxzcGFuIGNsYXNzPSJjZGF1dG9jb21wbGV0ZSI+Jy4kZmllbGQtPmlucHV0X2JveC4nPC9zcGFuPic7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ3RleHRib3gnOgogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCAkdmFsdWUsIDMwLCAyNTUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgJGZpZWxkYXJyYXlbXSA9ICRmaWVsZDsKICAgIH0KfQoKJGNhdGVnb3JpZXMgPSAkdGhpcy0+R2V0Q2F0ZWdvcmllcygpOwokY2F0YXJyYXkgPSBhcnJheSgpOwppZiggaXNfYXJyYXkoJGNhdGVnb3JpZXMpICYmIGNvdW50KCRjYXRlZ29yaWVzKSApIHsKICAgIGZvcmVhY2ggKCRjYXRlZ29yaWVzIGFzICRmaWVsZGRlZikgewogICAgICAgICRjYXRhcnJheVskZmllbGRkZWYtPm5hbWVdID0gJGZpZWxkZGVmLT5pZDsKICAgIH0KfQoKI0Rpc3BsYXkgdGVtcGxhdGUKJHNtYXJ0eS0+YXNzaWduKCdwcm9kdWN0X25hbWUnLCRwcm9kdWN0X25hbWUpOwokc21hcnR5LT5hc3NpZ24oJ3ByaWNlJywkcHJpY2UpOwokc21hcnR5LT5hc3NpZ24oJ3dlaWdodCcsJHdlaWdodCk7CiRzbWFydHktPmFzc2lnbignc2t1Jywkc2t1KTsKJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkZHByb2R1Y3QnLCAkcmV0dXJuaWQsICdwb3N0JywgJ211bHRpcGFydC9mb3JtLWRhdGEnKSk7CiRzbWFydHktPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokc21hcnR5LT5hc3NpZ24oJ2N1cnJlbmN5X3N5bWJvbCcscHJvZHVjdF9vcHM6OmdldF9jdXJyZW5jeV9zeW1ib2woKSk7CiRzbWFydHktPmFzc2lnbignd2VpZ2h0dW5pdHMnLHByb2R1Y3Rfb3BzOjpnZXRfd2VpZ2h0X3VuaXRzKCkpOwoKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGFsaWFzJywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnYWxpYXMnLCRhbGlhcyw0MCwyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCdkZXRhaWxzdGV4dCcsICR0aGlzLT5MYW5nKCdkZXRhaWxzJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0ZGV0YWlscycsICR0aGlzLT5DcmVhdGVUZXh0QXJlYSh0cnVlLCAkaWQsICRkZXRhaWxzLCAnZGV0YWlscycsICcnLCAnJywgJycsICcnLCAnODAnLCAnNScpKTsKCmlmKCBjb3VudCgkY2F0YXJyYXkpID4gMCApIHsKICAgICRuID0gY291bnQoJGNhdGFycmF5KS80OwogICAgJG4gPSBtaW4oJG4sMjApOwogICAgJG4gPSBtYXgoJG4sNSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2FsbF9jYXRlZ29yaWVzJyxhcnJheV9mbGlwKCRjYXRhcnJheSkpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdzZWxjYXRhcnJheScsYXJyYXkoKSk7Cn0KCiRzbWFydHktPmFzc2lnbigndGF4YWJsZXRleHQnLCR0aGlzLT5MYW5nKCd0YXhhYmxlJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0dGF4YWJsZScsICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwndGF4YWJsZScsMSwkdGF4YWJsZSkpOwoKJGhpZXJhcmNoeV9pdGVtcyA9ICR0aGlzLT5CdWlsZEhpZXJhcmNoeUxpc3QoKTsKJHNtYXJ0eS0+YXNzaWduKCdoaWVyYXJjaHlfaXRlbXMnLCRoaWVyYXJjaHlfaXRlbXMpOwokc21hcnR5LT5hc3NpZ24oJ2hpZXJhcmNoeV9wb3MnLGlzc2V0KCRwYXJhbXNbJ2hpZXJhcmNoeSddKT8kcGFyYW1zWydoaWVyYXJjaHknXTotMSk7Cgokc3RhdHVzZXMgPSBhcnJheSgkdGhpcy0+TGFuZygncHVibGlzaGVkJyk9PidwdWJsaXNoZWQnLCAkdGhpcy0+TGFuZygnZHJhZnQnKT0+J2RyYWZ0JywgJHRoaXMtPkxhbmcoJ2Rpc2FibGVkJyk9PidkaXNhYmxlZCcpOwokc21hcnR5LT5hc3NpZ24oJ3N0YXR1c3RleHQnLCR0aGlzLT5MYW5nKCdzdGF0dXMnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRzdGF0dXMnLCR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnc3RhdHVzJywkc3RhdHVzZXMsLTEsJHN0YXR1cykpOwokc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsICcnKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjdXN0b21maWVsZHMnLCAkZmllbGRhcnJheSk7CiRzbWFydHktPmFzc2lnbignY3VzdG9tZmllbGRzY291bnQnLCBjb3VudCgkZmllbGRhcnJheSkpOwokc21hcnR5LT5hc3NpZ24oJ3VybHNsdWcnLCR1cmxzbHVnKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdHByb2R1Y3QudHBsJyk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_add_hierarchy_item.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpICkgZXhpdDsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2hpZXJhcmNoeScpOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSApIHsKICAgIC8vIHdlJ3JlIGNhbmNlbGxpbmcKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Cn0KCi8vCi8vIERlZmF1bHRzCi8vCiRwYXJlbnQgPSAtMTsKJG5hbWUgPSAnJzsKJGV4dHJhMSA9ICcnOwokZXh0cmEyID0gJyc7CiRkZXNjcmlwdGlvbiA9ICcnOwokaW1hZ2UgPSAnJzsKCiMKIyBmb3JtIGFjdGlvbnMKIwppZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkgewogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ3BhcmVudCddKSApICRwYXJlbnQgPSAoaW50KSRwYXJhbXNbJ3BhcmVudCddOwogICAgJG5hbWUgPSB0cmltKCRwYXJhbXNbJ25hbWUnXSk7CiAgICAkZXh0cmExID0gdHJpbSgkcGFyYW1zWydleHRyYTEnXSk7CiAgICAkZXh0cmEyID0gdHJpbSgkcGFyYW1zWydleHRyYTInXSk7CiAgICAkZGVzY3JpcHRpb24gPSB0cmltKCRwYXJhbXNbJ2Rlc2NyaXB0aW9uJ10pOwogICAgJGVycm9yID0gMDsKICAgIGlmKCBlbXB0eSgkbmFtZSkgKSB7CiAgICAgICAgJGVycm9yID0gMTsKICAgICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9ub25hbWUnKSk7CiAgICB9CgogICAgaWYoICEkZXJyb3IgKSB7CiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IFdIRVJFIHBhcmVudF9pZCA9ID8gQU5EIG5hbWUgPSA/JzsKICAgICAgICAkdG1wID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRwYXJlbnQsJG5hbWUpKTsKICAgICAgICBpZiggJHRtcCApIHsKICAgICAgICAgICAgJGVycm9yID0gMTsKICAgICAgICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfbmFtZXVzZWQnKSk7CiAgICAgICAgfQogICAgfQoKICAgIGlmKCAhJGVycm9yICkgewogICAgICAgIC8vIEhhbmRsZSBmaWxlIHVwbG9hZAogICAgICAgICRhdHRyID0gJ2RlZmF1bHQnOwogICAgICAgICRlcnJvcnMgPSBhcnJheSgpOwogICAgICAgICRkZXN0ZGlyID0gcHJvZHVjdF91dGlsczo6Z2V0X2hpZXJhcmNoeV91cGxvYWRfcGF0aCgpOwogICAgICAgICRyZXMgPSAkdGhpcy0+SGFuZGxlVXBsb2FkZWRJbWFnZSgkaWQsJ2ZpbGUnLCRkZXN0ZGlyLCRlcnJvcnMsJycsJGF0dHIpOwogICAgICAgIGlmKCAkcmVzID09PSBGQUxTRSApIHsKICAgICAgICAgICAgLy8gYW4gZXJyb3IgZW5zdWVkLgogICAgICAgICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRlcnJvcnMpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJGltYWdlID0gJHJlczsKICAgICAgICAgICAgaWYoICRyZXMgPT09IFRSVUUgKSAkaW1hZ2UgPSAnJzsKCiAgICAgICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgTUFYKGl0ZW1fb3JkZXIpKzEgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBXSEVSRSBwYXJlbnRfaWQgPSA/JzsKICAgICAgICAgICAgJGl0ZW1fb3JkZXIgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHBhcmVudCkpOwogICAgICAgICAgICBpZiggISRpdGVtX29yZGVyICkgJGl0ZW1fb3JkZXIgPSAxOwoKICAgICAgICAgICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5CiAgICAgICAgICAgICAgICAgICAgKG5hbWUsIHBhcmVudF9pZCwgZGVzY3JpcHRpb24sIGltYWdlLCBleHRyYTEsIGV4dHJhMiwgaXRlbV9vcmRlcikgVkFMVUVTKD8sPyw/LD8sPyw/LD8pJzsKICAgICAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJG5hbWUsJHBhcmVudCwkZGVzY3JpcHRpb24sJGltYWdlLCRleHRyYTEsJGV4dHJhMiwkaXRlbV9vcmRlcikpOwogICAgICAgICAgICBpZiggISRkYnIgKSB7IGVjaG8gJGRiLT5zcWwuJzxici8+JzsgZGllKCAkZGItPkVycm9yTXNnKCkgKTsgfQogICAgICAgICAgICAkbmV3X2lkID0gJGRiLT5JbnNlcnRfSUQoKTsKICAgICAgICAgICAgJHRoaXMtPlVwZGF0ZUhpZXJhcmNoeVBvc2l0aW9ucygpOwogICAgICAgICAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogICAgICAgIH0KICAgICAgfQogIH0KCiMKIyBCdWlsZCB0aGUgZm9ybQojCiRoaWVyYXJjaHlfaXRlbXMgPSAkdGhpcy0+QnVpbGRIaWVyYXJjaHlMaXN0KCk7CiRzbWFydHktPmFzc2lnbignaGllcmFyY2h5X2l0ZW1zJywkaGllcmFyY2h5X2l0ZW1zKTsKJHNtYXJ0eS0+YXNzaWduKCdwYXJlbnQnLCRwYXJlbnQpOwokc21hcnR5LT5hc3NpZ24oJ25hbWUnLCRuYW1lKTsKJHNtYXJ0eS0+YXNzaWduKCdleHRyYTEnLCRleHRyYTEpOwokc21hcnR5LT5hc3NpZ24oJ2V4dHJhMicsJGV4dHJhMik7CiRzbWFydHktPmFzc2lnbignZGVzY3JpcHRpb24nLCRkZXNjcmlwdGlvbik7CiRzbWFydHktPmFzc2lnbignaW1hZ2UnLCRpbWFnZSk7Cgokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsCiAgICAgICAgICAgICAgICAkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9hZGRfaGllcmFyY2h5X2l0ZW0nLCRyZXR1cm5pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1zLGZhbHNlLCdwb3N0JywnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fYWRkX2hpZXJhcmNoeV9pdGVtLnRwbCcpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_ajax_getslug.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFByb2R1Y3RzJykpIHJldHVybjsKCiRwaWQgPSBcY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ3BpZCcpOwokbmFtZSA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnbmFtZScpOwokaGllcl9pZCA9IFxjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnaGllcicpOwokdG1wID0gXGNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2NhdHMnKTsKCi8vIGNsZWFuIGNhdHMgYXJyYXkKJGNhdHNfdCA9IGFycmF5KCk7CmZvcmVhY2goICRjYXRzX3QgYXMgJGNhdCApIHsKICAgICR0bXBfaSA9IChpbnQpICRjYXQ7CiAgICBpZiggJHRtcF9pID4gMCApICRjYXRzX3RbXSA9ICR0bXBfaTsKfQokY2F0c190ID0gYXJyYXlfdW5pcXVlKCRjYXRzX3QpOwoKLy8gZ2V0IGFsbCBvZiBvdXIgaGVyYXJjaGllcyBhbmQgY2F0ZWdvcmllcwokaGllciA9IGhpZXJhcmNoeV9vcHM6OmdldF9oaWVyYXJjaHlfaW5mbygkaGllcl9pZCk7CiRhbGxjYXRzID0gcHJvZHVjdF91dGlsczo6Z2V0X2NhdGVnb3JpZXMoKTsKCmRlYnVnX3RvX2xvZyhfX0ZJTEVfXyk7CmRlYnVnX3RvX2xvZygkaGllcik7CmRlYnVnX3RvX2xvZygkYWxsY2F0cyk7CgovLyBnaXZlIGV2ZXJ5dGhpbmcgdG8gc21hcnR5Ci8vIHdlIGdpdmUgdGhlIGhpZXJhcmNoeSBsb25nIG5hbWUgdG8gc21hcnR5IGluIGEgZmV3IHdheXMKLy8gYXMgYW4gYXJyYXksIGFuZCBhcyBhIHNpbmdsZSBzdHJpbmcKJHRwbCA9ICdzdHJpbmc6e3N0cmlwfScuJHRoaXMtPkdldFRlbXBsYXRlKCdzbHVndGVtcGxhdGUnKS4ney9zdHJpcH0nOwokdHBsID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoJHRwbCk7CiRsbiA9ICRoaWVyWydsb25nX25hbWUnXTsKJHBhcnRzX3QgPSBleHBsb2RlKCcgfCAnLCRsbik7CiRwYXJ0cyA9IGFycmF5KCk7CmZvcmVhY2goICRwYXJ0c190IGFzICRwICkgewogICAgJHAgPSB0cmltKG11bmdlX3N0cmluZ190b191cmwoJHApKTsKICAgIGlmKCAkcCApICRwYXJ0c1tdID0gJHA7Cn0KJHRwbC0+YXNzaWduKCdoaWVyX3BhcnRzJywkcGFydHMpOwokdHBsLT5hc3NpZ24oJ2hpZXJhcmNoeScsaW1wbG9kZSgnLycsJHBhcnRzKSk7CiR0cGwtPmFzc2lnbignaGllcmFyY2h5MycsaW1wbG9kZSgnLycsYXJyYXlfc2xpY2UoJHBhcnRzLDAsMykpKTsKCiRjYXRlZ29yaWVzID0gYXJyYXkoKTsKaWYoIGNvdW50KCRjYXRzX3QpICkgewogICAgZm9yZWFjaCggJGNhdHNfdCBhcyAkY19pZCApIHsKICAgICAgICBpZiggIWlzc2V0KCRhbGxjYXRzWyRjX2lkXSkgKSBjb250aW51ZTsKICAgICAgICAkY2F0ZWdvcmllc1tdID0gbXVuZ2Vfc3RyaW5nX3RvX3VybCgkY2FsbGNhdHNbJGNfaWRdWyduYW1lJ10pOwogICAgfQp9CmRlYnVnX3RvX2xvZygkYWxsY2F0cywnYWxsY2F0cycpOwpkZWJ1Z190b19sb2coaW1wbG9kZSgnLycsJGNhdGVnb3JpZXMpLCdjYXRwYXRoJyk7CiR0cGwtPmFzc2lnbignY2F0ZWdvcnlfcGFydHMnLCRjYXRlZ29yaWVzKTsKJGZpcnN0Y2F0ID0gKGNvdW50KCRjYXRlZ29yaWVzKSk/JGNhdGVnb3JpZXNbMF06Jyc7CiR0cGwtPmFzc2lnbignZmlyc3RfY2F0ZWdvcnknLCRmaXJzdGNhdCk7CiR0cGwtPmFzc2lnbignbmFtZScsdHJpbShtdW5nZV9zdHJpbmdfdG9fdXJsKCRuYW1lKSkpOwoKJHRlc3RfaSA9IDE7CiRiYXNlX3VybCA9ICR0cGwtPmZldGNoKCk7CndoaWxlKCAkdGVzdF9pIDwgMTAwICkgewogICAgLy8gcHJvY2VzcyB0aGUgdGVtcGxhdGUKICAgICR1cmwgPSB0cmltKCRiYXNlX3VybCwiIC9cdFxyXG5cMFx4MDgiKTsKICAgIGlmKCAkdGVzdF9pID4gMSApICR1cmwgLj0gIi17JHRlc3RfaX0iOwogICAgJHRlc3RfaSsrOwoKICAgICRyb3V0ZSA9IGNtc19yb3V0ZV9tYW5hZ2VyOjpmaW5kX21hdGNoKCR1cmwpOwogICAgaWYoICEkcm91dGUgKSBicmVhazsKCiAgICAkZGZsdHMgPSAkcm91dGUtPmdldF9kZWZhdWx0cygpOwogICAgaWYoICRyb3V0LT5nZXRfZGVzdCgpID09ICR0aGlzLT5HZXROYW1lKCkgKSB7CiAgICAgICAgLy8gcm91dGUgaXMgZm9yIHRoaXMgbW9kdWxlCiAgICAgICAgaWYoIGlzc2V0KCRkZmx0c1snY29tcGlkJ10pICYmICRkZmx0c1snY29tcGlkJ10gPT0gJHBpZCApIHsKICAgICAgICAgICAgLy8gaXQncyBmb3IgdGhpcyBwcm9kdWN0CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KfQoKLy8gZ2l2ZSBpdCBiYWNrIHZpYSBhamF4ClxjZ2VfdXRpbHM6OnNlbmRfYWpheF9hbmRfZXhpdCgkdXJsKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_bulkaction.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpICkgZXhpdDsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3Byb2R1Y3RzJyk7CgppZiggaXNzZXQoJHBhcmFtc1snbXVsdGlzZWxlY3QnXSkgJiYgaXNfYXJyYXkoJHBhcmFtc1snbXVsdGlzZWxlY3QnXSkgJiYgY291bnQoJHBhcmFtc1snbXVsdGlzZWxlY3QnXSkgJiYgaXNzZXQoJHBhcmFtc1snYnVsa2FjdGlvbiddKSApIHsKICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRwYXJhbXNbJ211bHRpc2VsZWN0J10pOyAkaSsrICkgewogICAgICAgICRwYXJhbXNbJ211bHRpc2VsZWN0J11bJGldID0gKGludCkkcGFyYW1zWydtdWx0aXNlbGVjdCddWyRpXTsKICAgIH0KCiAgICBzd2l0Y2goICRwYXJhbXNbJ2J1bGthY3Rpb24nXSApIHsKICAgIGNhc2UgJ2RlbGV0ZSc6CiAgICAgICAgZm9yZWFjaCggJHBhcmFtc1snbXVsdGlzZWxlY3QnXSBhcyAkcHJvZHVjdGlkICkgewogICAgICAgICAgICAkcmVzID0gJHRoaXMtPkRlbGV0ZVByb2R1Y3QoKGludCkkcHJvZHVjdGlkKTsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICdzZXRkcmFmdCc6CiAgICB7CiAgICAgICAgJG5vdyA9ICRkYi0+RGJUaW1lU3RhbXAodGltZSgpKTsKICAgICAgICAkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHMgU0VUIHN0YXR1cyA9ID8sIG1vZGlmaWVkX2RhdGUgPSAkbm93IFdIRVJFIGlkIElOICgiOwogICAgICAgICRxdWVyeSAuPSBpbXBsb2RlKCcsJywkcGFyYW1zWydtdWx0aXNlbGVjdCddKS4nKSc7CiAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJ2RyYWZ0JykpOwogICAgfQogICAgYnJlYWs7CiAgICBjYXNlICdzZXRkaXNhYmxlZCc6CiAgICB7CiAgICAgICAgJG5vdyA9ICRkYi0+RGJUaW1lU3RhbXAodGltZSgpKTsKICAgICAgICAkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHMgU0VUIHN0YXR1cyA9ID8sIG1vZGlmaWVkX2RhdGUgPSAkbm93IFdIRVJFIGlkIElOICgiOwogICAgICAgICRxdWVyeSAuPSBpbXBsb2RlKCcsJywkcGFyYW1zWydtdWx0aXNlbGVjdCddKS4nKSc7CiAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJ2Rpc2FibGVkJykpOwogICAgfQogICAgYnJlYWs7CiAgICBjYXNlICdzZXRwdWJsaXNoZWQnOgogICAgewogICAgICAgICRub3cgPSAkZGItPkRiVGltZVN0YW1wKHRpbWUoKSk7CiAgICAgICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzIFNFVCBzdGF0dXMgPSA/LCBtb2RpZmllZF9kYXRlID0gJG5vdyBXSEVSRSBpZCBJTiAoIjsKICAgICAgICAkcXVlcnkgLj0gaW1wbG9kZSgnLCcsJHBhcmFtc1snbXVsdGlzZWxlY3QnXSkuJyknOwogICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCdwdWJsaXNoZWQnKSk7CiAgICB9CiAgICBicmVhazsKICAgIH0KfQoKJHRoaXMtPlNldG1lc3NhZ2UoJHRoaXMtPkxhbmcoJ29wZXJhdGlvbl9jb21wbGV0ZScpKTsKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_copyproduct.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpKSByZXR1cm47CgovLyBpbml0aWFsaXphdGlvbi4KJHRoaXMtPlNldEN1cnJlbnRUYWIoJ1Byb2R1Y3RzJyk7CmlmKCAhaXNzZXQoJHBhcmFtc1snY29tcGlkJ10pICkKICB7CiAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXJhbScpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgICByZXR1cm47CiAgfQokY29tcGlkID0gKGludCkkcGFyYW1zWydjb21waWQnXTsKaWYoICRjb21waWQgPD0gMCApCiAgewogICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogICAgcmV0dXJuOwogIH0KJGZpZWxkZGVmcyA9IHByb2R1Y3Rfb3BzOjpnZXRfZmllbGRzKCk7CgovLwovLyByZWFkIGFsbCB0aGUgZGF0YQovLwokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzIFdIRVJFIElkID0gPyc7CiRwcm9kdWN0ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LGFycmF5KCRjb21waWQpKTsKaWYoICFpc19hcnJheSgkcHJvZHVjdCkgKQogIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfcHJvZHVjdG5vdGZvdW5kJykpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICAgIHJldHVybjsKICB9CgovLyBnZXQgdGhlIGNhdGVnb3JpZXMKJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdWN0X2NhdGVnb3JpZXMgV0hFUkUgcHJvZHVjdF9pZCA9ID8nOwokcHJvZHVjdF9jYXRlZ29yaWVzID0gJGRiLT5HZXRBcnJheSgkcXVlcnksYXJyYXkoJGNvbXBpZCkpOwoKLy8gZ2V0IHRoZSBmaWVsZCB2YWx1ZXMuLi4KJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgV0hFUkUgcHJvZHVjdF9pZCA9ID8nOwokcHJvZHVjdF9maWVsZHZhbHMgPSAkZGItPkdldEFycmF5KCRxdWVyeSxhcnJheSgkY29tcGlkKSk7CgovLyBnZXQgdGhlIGF0dHJpYnV0ZSBzZXRzCiRhdHRyaWJzID0gcHJvZHVjdHNfYXR0cmliOjpsb2FkX2J5X3Byb2R1Y3QoJGNvbXBpZCk7CgovLyBnZXQgdGhlIGhpZXJhcmNoeQokcXVlcnkgPSAnU0VMRUNUIGhpZXJhcmNoeV9pZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHRvaGllciBXSEVSRSBwcm9kdWN0X2lkID0gPyc7CiRoaWVyYXJjaHlfaWQgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJGNvbXBpZCkpOwoKLy8KLy8gYWx0ZXIgZGF0YQovLwppZiggJHByb2R1Y3RbJ2FsaWFzJ10gKQogIHsKICAgICRwcm9kdWN0WydhbGlhcyddID0gcHJvZHVjdF9vcHM6OmdlbmVyYXRlX2FsaWFzKCRwcm9kdWN0Wydwcm9kdWN0X25hbWUnXSk7CiAgfQoKLy8gZ2V0IGEgbmV3IG5hbWUgZm9yIHRoZSBwcm9kdWN0LgokcHJvZHVjdFsncHJvZHVjdF9uYW1lJ10gPSAkdGhpcy0+TGFuZygncHJlZml4X2NvcHlvZicpLicgJy4kcHJvZHVjdFsncHJvZHVjdF9uYW1lJ107CiRzdWZmaXggPSAnJzsKJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgV0hFUkUgcHJvZHVjdF9uYW1lID0gPyc7CndoaWxlKCAkc3VmZml4IDwgMTAwICkKICB7CiAgICAkdG5hbWUgPSAkcHJvZHVjdFsncHJvZHVjdF9uYW1lJ10uJHN1ZmZpeDsKICAgICR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHRuYW1lKSk7CiAgICBpZiggISR0bXAgKQogICAgICB7CgkkcHJvZHVjdFsncHJvZHVjdF9uYW1lJ10gPSAkdG5hbWU7CglicmVhazsKICAgICAgfQogICAgaWYoICEkc3VmZml4ICkgJHN1ZmZpeCA9IDE7CiAgICAkc3VmZml4Kys7CiAgfQoKLy8gbWFrZSBzdXJlIHRoYXQgdGhlIHNrdSBpcyBzZXQgdG8gJ3NvbWV0aGluZycgb24gY29weWluZyBhIHByb2R1Y3QuCiRuZXdfc2t1ID0gJyc7CmlmKCAkcHJvZHVjdFsnc2t1J10gKSB7CiAgJGlkeCA9ICcnOwogIGlmKCAoJHAgPSBzdHJwb3MoJHByb2R1Y3RbJ3NrdSddLCdfY29weScpKSAhPT0gRkFMU0UgKSB7CiAgICBpZiggJHAgIT09IEZBTFNFICkgJGlkeCA9IChpbnQpc3Vic3RyKCRwcm9kdWN0Wydza3UnXSwkcCtzdHJsZW4oJ19jb3B5JykpOwogICAgJGlkeCA9IG1heCgyLCRpZHgrMSk7CiAgfQogICRuZXdfc2t1ID0gJHByb2R1Y3RbJ3NrdSddIC4gJ19jb3B5JyAuICRpZHg7CiAgd2hpbGUoICRpZHggPCAxMDAgKSB7CiAgICBpZiggIXByb2R1Y3Rfb3BzOjpjaGVja19za3VfdXNlZCgkbmV3X3NrdSkgKSB7CiAgICAgICRwcm9kdWN0Wydza3UnXSA9ICRuZXdfc2t1OwogICAgICBicmVhazsKICAgIH0KICAgIGlmKCAkaWR4ID09ICcnICkgJGlkeCA9IDE7CiAgICAkaWR4Kys7CiAgICAkbmV3X3NrdSA9ICRwcm9kdWN0Wydza3UnXSAuICdfY29weScgLiAkaWR4OwogIH0KfQovLyBjbGVhciB0aGUgc2t1J3MgZm9yIHRoZSBhdHRyaWJ1dGVzCmlmKCAkbmV3X3NrdSApIHsKICAkaWR4ID0gMTsKICBmb3JlYWNoKCAkYXR0cmlicyBhcyAmJG9uZSApIHsKICAgICRvbmVbJ3NrdSddID0gJHByb2R1Y3RbJ3NrdSddLiItJGlkeCI7CiAgICAkaWR4Kys7CiAgfQp9CgovLwovLyBzYXZlIGRhdGEKLy8gbm90ZTogdHJhbnNhY3Rpb25zIHdvdWxkIGJlIHJlYWxseSByZWFsbHkgbmljZSBoZXJlLgovLwp0cnkgewogICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzCiAgICAgICAgICAgIChwcm9kdWN0X25hbWUsIGRldGFpbHMsIHByaWNlLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSwgdGF4YWJsZSwgc3RhdHVzLAogICAgICAgICAgICAgd2VpZ2h0LCBza3UsIGFsaWFzKQogICAgICAgICAgICBWQUxVRVMgKD8sPyw/LE5PVygpLE5PVygpLD8sPyw/LD8sPykiOwogICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LAoJCSAgICAgIGFycmF5KCRwcm9kdWN0Wydwcm9kdWN0X25hbWUnXSwkcHJvZHVjdFsnZGV0YWlscyddLCRwcm9kdWN0WydwcmljZSddLAoJCQkgICAgJHByb2R1Y3RbJ3RheGFibGUnXSwkcHJvZHVjdFsnc3RhdHVzJ10sJHByb2R1Y3RbJ3dlaWdodCddLAoJCQkgICAgJHByb2R1Y3RbJ3NrdSddLCRwcm9kdWN0WydhbGlhcyddKSk7CiAgaWYoICEkZGJyICkKICAgIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2RiZXJyb3InKS4nIC0tICcuJGRiLT5zcWwuJyAtLSAnLiRkYi0+RXJyb3JNc2coKSk7CgogICRuZXdfaWQgPSAkZGItPkluc2VydF9JZCgpOwoKICBpZiggaXNfYXJyYXkoJHByb2R1Y3RfY2F0ZWdvcmllcykgJiYgY291bnQoJHByb2R1Y3RfY2F0ZWdvcmllcykgKSB7CiAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19wcm9kdWN0X2NhdGVnb3JpZXMKICAgICAgICAgICAgICAocHJvZHVjdF9pZCxjYXRlZ29yeV9pZCxjcmVhdGVfZGF0ZSxtb2RpZmllZF9kYXRlKSBWQUxVRVMgKD8sPyxOT1coKSxOT1coKSkiOwogICAgZm9yZWFjaCggJHByb2R1Y3RfY2F0ZWdvcmllcyBhcyAkY2F0ICkgewogICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRuZXdfaWQsJGNhdFsnY2F0ZWdvcnlfaWQnXSkpOwogICAgfQogIH0KCiAgaWYoIGlzX2FycmF5KCRwcm9kdWN0X2ZpZWxkdmFscykgJiYgY291bnQoJHByb2R1Y3RfZmllbGR2YWxzKSApIHsKICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscwogICAgICAgICAgICAgIChwcm9kdWN0X2lkLGZpZWxkZGVmX2lkLHZhbHVlLGNyZWF0ZV9kYXRlLG1vZGlmaWVkX2RhdGUpCiAgICAgICAgICAgICAgVkFMVUVTICg/LD8sPyxOT1coKSxOT1coKSkiOwogICAgZm9yZWFjaCggJHByb2R1Y3RfZmllbGR2YWxzIGFzICRmdiApIHsKICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkbmV3X2lkLCRmdlsnZmllbGRkZWZfaWQnXSwkZnZbJ3ZhbHVlJ10pKTsKICAgIH0KICB9CgogIGlmKCBpc19hcnJheSgkYXR0cmlicykgJiYgY291bnQoJGF0dHJpYnMpICkgewogICAgJG4gPSBjb3VudCgkYXR0cmlicyk7CiAgICBmb3IoICRpID0gMDsgJGkgPCAkbjsgJGkrKyApIHsKICAgICAgJG5ldyA9IGNsb25lICRhdHRyaWJzWyRpXTsKICAgICAgJG5ld1sncHJvZHVjdF9pZCddID0gJG5ld19pZDsKICAgICAgJG5ldy0+c2F2ZSgpOwogICAgfQogIH0KCiAgaWYoICRoaWVyYXJjaHlfaWQgPiAwICkgewogICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHRvaGllcgogICAgICAgICAgICAgIChwcm9kdWN0X2lkLGhpZXJhcmNoeV9pZCkgVkFMVUVTICg/LD8pJzsKICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJG5ld19pZCwkaGllcmFyY2h5X2lkKSk7CiAgfQoKICAvLwogIC8vIGNvcHkgZmlsZXMuCiAgLy8KICAkc3JjZGlyID0gcHJvZHVjdF91dGlsczo6Z2V0X3Byb2R1Y3RfdXBsb2FkX3BhdGgoJGNvbXBpZCk7CiAgJGRlc3RkaXIgPSBwcm9kdWN0X3V0aWxzOjpnZXRfcHJvZHVjdF91cGxvYWRfcGF0aCgkbmV3X2lkKTsKICBpZiggaXNfZGlyKCRzcmNkaXIpICkgewogICAgICAkZmlsZXMgPSBnbG9iKCRzcmNkaXIuJy8qJyk7CiAgICAgIGlmKCBpc19hcnJheSgkZmlsZXMpICYmIGNvdW50KCRmaWxlcykgKSB7CiAgICAgICAgICBAbWtkaXIoJGRlc3RkaXIpOwogICAgICAgICAgZm9yZWFjaCggJGZpbGVzIGFzICRvbmVmaWxlICkgewogICAgICAgICAgICAgICRmbiA9IGJhc2VuYW1lKCRvbmVmaWxlKTsKICAgICAgICAgICAgICBjb3B5KCRvbmVmaWxlLGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJGZuKSk7CiAgICAgICAgICB9CiAgICAgIH0KICB9Cn0KY2F0Y2goIENtc0V4Y2VwdGlvbiAkZSApIHsKICAkdGhpcy0+U2V0RXJyb3IoJGUtPkdldE1lc3NhZ2UoKSk7CiAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKfQoKLy8KLy8gYWxsIGRvbmUuLiByZWRpcmVjdCB0byBlZGl0IGZvcm0KLy8KJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19wcm9kdWN0Y29waWVkJykpOwokdGhpcy0+UmVkaXJlY3QoJGlkLCdlZGl0cHJvZHVjdCcsJycsYXJyYXkoJ2NvbXBpZCc9PiRuZXdfaWQpKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_delete_hierarchy_item.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpICkgZXhpdDsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2hpZXJhcmNoeScpOwppZiggIWlzc2V0KCRwYXJhbXNbJ2hpZXJhcmNoeV9pZCddKSApIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKfQokaGllcmFyY2h5X2lkID0gKGludCkkcGFyYW1zWydoaWVyYXJjaHlfaWQnXTsKCi8vIEdldCB0aGlzIGhpZXJhcmNoeSBpdGVtJwokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBXSEVSRSBpZCA9ID8nOwokZGF0YSA9ICRkYi0+R2V0Um93KCRxdWVyeSxhcnJheSgkaGllcmFyY2h5X2lkKSk7CmlmKCAkZGF0YVsnaW1hZ2UnXSApIHsKICAgICRkZXN0ZGlyID0gcHJvZHVjdF91dGlsczo6Z2V0X2hpZXJhcmNoeV91cGxvYWRfcGF0aCgpOwogICAgJGZuID0gY21zX2pvaW5fcGF0aCgkZGVzdGRpciwkZGF0YVsnaW1hZ2UnXSk7CiAgICBpZiggQGZpbGVfZXhpc3RzKCRmbikgKQlAdW5saW5rKCRmbik7CiAgICAkZm4gPSBjbXNfam9pbl9wYXRoKCRkZXN0ZGlyLCd0aHVtYl8nLiRkYXRhWydpbWFnZSddKTsKICAgIGlmKCBAZmlsZV9leGlzdHMoJGZuKSApCUB1bmxpbmsoJGZuKTsKICAgICRmbiA9IGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJ3ByZXZpZXdfJy4kZGF0YVsnaW1hZ2UnXSk7CiAgICBpZiggQGZpbGVfZXhpc3RzKCRmbikgKQlAdW5saW5rKCRmbik7Cn0KCi8vIHJlc2V0IGFsbCBwZWVyIGhpZXJhcmNoaWVzIGl0ZW0gb3JkZXIKJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBTRVQgaXRlbV9vcmRlciA9IGl0ZW1fb3JkZXIgLSAxCiAgICAgICAgICBXSEVSRSBwYXJlbnRfaWQgPSA/IEFORCBpdGVtX29yZGVyID4gPyc7CiRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRkYXRhWydwYXJlbnRfaWQnXSwkZGF0YVsnaXRlbV9vcmRlciddKSk7CgovLyBSZXNldCBhbGwgaGllcmFyY2hpZXMgdXNpbmcgdGhpcyBwYXJlbnQgdG8gaGF2ZSBubyBwYXJlbnQgKC0xKQokcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IFNFVCBwYXJlbnRfaWQgPSAtMSBXSEVSRSBwYXJlbnRfaWQgPSA/JzsKJGRiciA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSggJGhpZXJhcmNoeV9pZCApICk7CgovLyBOb3cgcmVtb3ZlIGl0CiRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBXSEVSRSBpZCA9ID8nOwokZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoICRoaWVyYXJjaHlfaWQgKSApOwoKLy8gQW5kIG5vdyB1cGRhdGUgYW55IHByb2R1Y3RzIHRvIGhhdmUgbm8gY2F0ZWdvcnkKLy8gaWYgdGhleSBoYXZlIHRoaXMgaGllcmFyY2h5X2lkCiRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hpZXIgV0hFUkUgaGllcmFyY2h5X2lkID0gPyc7CiRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSggJGhpZXJhcmNoeV9pZCApICk7CgokdGhpcy0+VXBkYXRlSGllcmFyY2h5UG9zaXRpb25zKCk7CgovLyBkb25lCiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_edit_attribs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0KCk7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFByb2R1Y3RzJykgKSByZXR1cm47CmlmKCAhaXNzZXQoJHBhcmFtc1sncHJvZGlkJ10pICkgcmV0dXJuOwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3Byb2R1Y3RzJyk7CiRza2VsX3JvdyA9IGFycmF5KCdpZCc9PicnLCdwcm9kdWN0X2lkJz0+KGludCkkcGFyYW1zWydwcm9kaWQnXSwndGV4dCc9PicnLCdhZGp1c3RtZW50Jz0+MCwnc2t1Jz0+JycsJ3FvaCc9PjAsJ25vdGVzJz0+JycpOwokYXR0cmlicyA9IGFycmF5KCRza2VsX3Jvdyk7CgppZiggaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pICkgewogICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdvcGVyYXRpb25fY2FuY2VsbGVkJykpOwogICR0aGlzLT5SZWRpcmVjdFRvdGFiKCRpZCk7Cn0KaWYoIGlzc2V0KCRwYXJhbXNbJ2RlbGV0ZWFsbCddKSApIHsKICBwcm9kdWN0c19hdHRyaWI6OmRlbGV0ZV9ieV9wcm9kdWN0KCRwYXJhbXNbJ3Byb2RpZCddKTsKICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX29wdGlvbnNfZGVsZXRlZCcsJHBhcmFtc1sncHJvZGlkJ10pKTsKICAkdGhpcy0+UmVkaXJlY3RUb3RhYigkaWQpOwp9CmlmKCBpc3NldCgkcGFyYW1zWydjb3B5YXR0cmlicyddKSApIHsKICBpZiggIWlzc2V0KCRwYXJhbXNbJ2NvcHlmcm9tJ10pIHx8ICRwYXJhbXNbJ2NvcHlmcm9tJ10gPCAxICkgewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwogIH0KICBlbHNlIHsKCSRhdHRyaWJzID0gcHJvZHVjdHNfYXR0cmliOjpsb2FkX2J5X3Byb2R1Y3QoKGludCkkcGFyYW1zWydjb3B5ZnJvbSddKTsKCWVjaG8gJHRoaXMtPlNob3dNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfb3B0aW9uc2NvcGllZCcpKTsKICB9Cn0KaWYoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSApIHsKICAgIHRyeSB7CiAgICAgICAgcHJvZHVjdHNfYXR0cmliOjpkZWxldGVfYnlfcHJvZHVjdCgkcGFyYW1zWydwcm9kaWQnXSk7CiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ3NrdSddKSAmJiBpc3NldCgkcGFyYW1zWyd0ZXh0J10pICkgewogICAgICAgICAgICAvLyB3ZSBoYXZlIHNvbWUgb3B0aW9ucy4KICAgICAgICAgICAgJGF0dHJpYnMgPSBwcm9kdWN0c19hdHRyaWI6OmxvYWRfZnJvbV9mb3JtKCRwYXJhbXMpOwogICAgICAgICAgICBmb3JlYWNoKCAkYXR0cmlicyBhcyAkYXR0cmliICkgewogICAgICAgICAgICAgICAgJGF0dHJpYi0+c2F2ZSgpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX29wdGlvbnNfc2F2ZWQnKSk7CiAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICAgIH0KICAgIGNhdGNoKCBDbXNFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZS0+R2V0TWVzc2FnZSgpKTsKICAgIH0KfQplbHNlIHsKICAkdG1wID0gcHJvZHVjdHNfYXR0cmliOjpsb2FkX2J5X3Byb2R1Y3QoJHBhcmFtc1sncHJvZGlkJ10pOwogIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKCSRhdHRyaWJzID0gJHRtcDsKICB9Cn0KCgovLyBnZXQgYSBsaXN0IG9mIHByb2R1Y3RzIChleGNlcHQgdGhpcyBvbmUpIHdpdGggcHJvZHVjdHMuCiRxdWVyeSA9ICdTRUxFQ1QgRElTVElOQ1QgUC5pZCxQLnByb2R1Y3RfbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlicyBBCiAgICAgICAgICBMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cyBQCiAgICAgICAgICBPTiBBLnByb2R1Y3RfaWQgPSBQLmlkIFdIRVJFIEEucHJvZHVjdF9pZCAhPSA/CiAgICAgICAgICBPUkRFUiBCWSBwcm9kdWN0X25hbWUgQVNDJzsKJHRtcCA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5LGFycmF5KChpbnQpJHBhcmFtc1sncHJvZGlkJ10pKTsKaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgewogICR0MiA9IGFycmF5KCk7CiAgZm9yZWFjaCggJHRtcCBhcyAkcmVjICkgewoJJHQyWyRyZWNbJ2lkJ11dID0gJHJlY1sncHJvZHVjdF9uYW1lJ107CiAgfQogICRzbWFydHktPmFzc2lnbigncHJvZHVjdHNfd2l0aF9hdHRyaWJzJywkdDIpOwp9CgokcHJvZHVjdCA9IHByb2R1Y3Rfb3BzOjpnZXRfcHJvZHVjdCgoaW50KSRwYXJhbXNbJ3Byb2RpZCddLFRSVUUpOwokc21hcnR5LT5hc3NpZ24oJ3Byb2R1Y3QnLCRwcm9kdWN0KTsKJHNtYXJ0eS0+YXNzaWduKCdza3VfaXNfcmVxdWlyZWQnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdza3VyZXF1aXJlZCcsMCkpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fZWRpdF9hdHRyaWJzJywnJyxhcnJheSgncHJvZGlkJz0+JHBhcmFtc1sncHJvZGlkJ10pKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignc2tlbF9yb3cnLCRza2VsX3Jvdyk7CiRzbWFydHktPmFzc2lnbignYXR0cmlicycsJGF0dHJpYnMpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9lZGl0X2F0dHJpYnMudHBsJyk7CiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_edit_hierarchy_item.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpICkgZXhpdDsKCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdoaWVyYXJjaHknKTsKaWYoICFpc3NldCgkcGFyYW1zWydoaWVyYXJjaHlfaWQnXSkgKSB7CiAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXJhbScpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Cn0KJGhpZXJhcmNoeV9pZCA9IChpbnQpJHBhcmFtc1snaGllcmFyY2h5X2lkJ107CgppZiggaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pICkgIHsKICAgIC8vIHdlJ3JlIGNhbmNlbGxpbmcKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Cn0KCiMKIyBEZWZhdWx0cwojCiRwYXJlbnQgPSAtMTsKJG5hbWUgPSAnJzsKJGV4dHJhMSA9ICcnOwokZXh0cmEyID0gJyc7CiRkZXNjcmlwdGlvbiA9ICcnOwokZGVzdGRpciA9IHByb2R1Y3RfdXRpbHM6OmdldF9oaWVyYXJjaHlfdXBsb2FkX3BhdGgoKTsKCgojCiMgR2V0IHRoZSB2YWx1ZXMgZnJvbSB0aGUgZGF0YWJhc2UKIwokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBXSEVSRSBpZCA9ID8nOwokcm93ID0gJGRiLT5HZXRSb3coICRxdWVyeSwgYXJyYXkoICRoaWVyYXJjaHlfaWQpICk7CiRwYXJlbnQgPSAkcm93WydwYXJlbnRfaWQnXTsKJG5hbWUgPSAkcm93WyduYW1lJ107CiRleHRyYTEgPSAkcm93WydleHRyYTEnXTsKJGV4dHJhMiA9ICRyb3dbJ2V4dHJhMiddOwokaW1hZ2UgPSAkcm93WydpbWFnZSddOwokZGVzY3JpcHRpb24gPSAkcm93WydkZXNjcmlwdGlvbiddOwoKIwojIEZvcm0gQWN0aW9uCmlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKSB7CiAgICAkZXJyb3IgPSAwOwogICAgJG5hbWUgPSB0cmltKCRwYXJhbXNbJ25hbWUnXSk7CiAgICAkZXh0cmExID0gdHJpbSgkcGFyYW1zWydleHRyYTEnXSk7CiAgICAkZXh0cmEyID0gdHJpbSgkcGFyYW1zWydleHRyYTInXSk7CiAgICAkcGFyZW50ID0gKGludCkkcGFyYW1zWydwYXJlbnQnXTsKICAgICRkZXNjcmlwdGlvbiA9IHRyaW0oJHBhcmFtc1snZGVzY3JpcHRpb24nXSk7CgogICAgaWYoICRwYXJlbnQgPT0gJHBhcmFtc1snaGllcmFyY2h5X2lkJ10gKSB7CiAgICAgICAgJGVycm9yID0gMTsKICAgICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkcGFyZW50JykpOwogICAgfQoKICAgIGlmKCAhJGVycm9yICYmIGVtcHR5KCRuYW1lKSApIHsKICAgICAgICAkZXJyb3IgPSAxOwogICAgICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX25vbmFtZScpKTsKICAgIH0KCiAgICBpZiggISRlcnJvciApIHsKICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkgV0hFUkUgcGFyZW50X2lkID0gPyBBTkQgbmFtZSA9ID8gQU5EIGlkICE9ID8nOwogICAgICAgICR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHBhcmVudCwkbmFtZSwkaGllcmFyY2h5X2lkKSk7CiAgICAgICAgaWYoICR0bXAgKSB7CiAgICAgICAgICAgICRlcnJvciA9IDE7CiAgICAgICAgICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX25hbWV1c2VkJykpOwogICAgICAgIH0KICAgIH0KCiAgICBpZiggISRlcnJvciApIHsKICAgICAgICAvLyBoYW5kbGUgaW1hZ2UgZGVsZXRlIGZpcnN0CiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2RlbGV0ZWltZyddKSApIHsKICAgICAgICAgICAgJHNyY25hbWUgPSBjbXNfam9pbl9wYXRoKCRkZXN0ZGlyLCRpbWFnZSk7CiAgICAgICAgICAgICRkZXN0bmFtZSA9IGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJ3RodW1iXycuJGltYWdlKTsKICAgICAgICAgICAgJHByZXZpZXduYW1lID0gY21zX2pvaW5fcGF0aCgkZGVzdGRpciwncHJldmlld18nLiRpbWFnZSk7CiAgICAgICAgICAgIEB1bmxpbmsoJHNyY25hbWUpOwogICAgICAgICAgICBAdW5saW5rKCRkZXN0bmFtZSk7CiAgICAgICAgICAgIEB1bmxpbmsoJHByZXZpZXduYW1lKTsKICAgICAgICAgICAgJGltYWdlID0gJyc7CiAgICAgICAgfQoKICAgICAgICAvLyBIYW5kbGUgZmlsZSB1cGxvYWQKICAgICAgICAkYXR0ciA9ICdkZWZhdWx0JzsKICAgICAgICAkZXJyb3JzID0gYXJyYXkoKTsKICAgICAgICAkcmVzID0gJHRoaXMtPkhhbmRsZVVwbG9hZGVkSW1hZ2UoJGlkLCdmaWxlJywkZGVzdGRpciwkZXJyb3JzLCcnLCRhdHRyLHRydWUpOwogICAgICAgIGlmKCAkcmVzID09PSBGQUxTRSApIHsKICAgICAgICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZXJyb3JzKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGlmKCAkcmVzICE9IGNnX2ZpbGV1cGxvYWQ6Ok5PRklMRSApIHsKICAgICAgICAgICAgICAgIC8vIGltYWdlIHVwbG9hZCBzdWNjZWVkZWQKICAgICAgICAgICAgICAgICRpbWFnZSA9ICRyZXM7CiAgICAgICAgICAgICAgICBpZiggJHJlcyA9PT0gVFJVRSApICRpbWFnZSA9ICcnOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkaXRlbV9vcmRlciA9ICRyb3dbJ2l0ZW1fb3JkZXInXTsKICAgICAgICAgICAgaWYoICRyb3dbJ3BhcmVudF9pZCddICE9ICRwYXJlbnQgKSB7CiAgICAgICAgICAgICAgICAvLyBjaGFuZ2VkIHRvIGEgZGlmZmVyZW50IHBhcmVudC4KICAgICAgICAgICAgICAgIC8vIGRlY3JlbWVudCBhbGwgb2YgdGhlIHNpYmxpbmdzIHdpdGggdGhlIGxhcmdlciBpdGVtX29yZGVyCiAgICAgICAgICAgICAgICAkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmlhcmNoeSBTRVQgaXRlbV9vcmRlciA9IGl0ZW1fb3JkZXIgLSAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgV0hFUkUgcGFyZW50X2lkID0gPyBBTkQgaXRlbV9vcmRlciA+ID8nOwogICAgICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkcm93WydwYXJlbnRfaWQnXSwkaXRlbV9vcmRlcikpOwoKICAgICAgICAgICAgICAgIC8vIGZpbmQgYSBuZXcgaXRlbSBvcmRlcgogICAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBDT0FMRVNDRShNQVgoaXRlbV9vcmRlciksMCkrMSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5CiAgICAgICAgICAgICAgICAgICAgICAgICAgV0hFUkUgcGFyZW50X2lkID0gPyc7CiAgICAgICAgICAgICAgICAkaXRlbV9vcmRlciA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkcGFyZW50KSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkKICAgICAgICAgICAgICAgICAgICAgIFNFVCBuYW1lID0gPywgaW1hZ2UgPSA/LCBpdGVtX29yZGVyID0gPywgcGFyZW50X2lkID0gPywgZGVzY3JpcHRpb24gPSA/LAogICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhMSA9ID8sIGV4dHJhMiA9ID8KICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIGlkID0gPyc7CiAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJG5hbWUsJGltYWdlLCRpdGVtX29yZGVyLCAkcGFyZW50LCRkZXNjcmlwdGlvbiwkZXh0cmExLCRleHRyYTIsJGhpZXJhcmNoeV9pZCkpOwoKICAgICAgICAgICAgJHRoaXMtPlVwZGF0ZUhpZXJhcmNoeVBvc2l0aW9ucygpOwogICAgICAgICAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogICAgICAgIH0KICAgIH0KfQoKCiMKIyBCdWlsZCB0aGUgZm9ybQojCiRoaWVyYXJjaHlfaXRlbXMgPSAkdGhpcy0+QnVpbGRIaWVyYXJjaHlMaXN0KCk7CiRzbWFydHktPmFzc2lnbignaGllcmFyY2h5X2lkJywkaGllcmFyY2h5X2lkKTsKJHNtYXJ0eS0+YXNzaWduKCdoaWVyYXJjaHlfaXRlbXMnLCRoaWVyYXJjaHlfaXRlbXMpOwokc21hcnR5LT5hc3NpZ24oJ3BhcmVudCcsJHBhcmVudCk7CiRzbWFydHktPmFzc2lnbignbmFtZScsJG5hbWUpOwokc21hcnR5LT5hc3NpZ24oJ2V4dHJhMScsJGV4dHJhMSk7CiRzbWFydHktPmFzc2lnbignZXh0cmEyJywkZXh0cmEyKTsKJHNtYXJ0eS0+YXNzaWduKCdpbWFnZScsJGltYWdlKTsKJGltYWdlX3VybCA9IHByb2R1Y3RfdXRpbHM6OmdldF9oaWVyYXJjaHlfdXBsb2FkX3VybCgpLiIvJGltYWdlIjsKJHNtYXJ0eS0+YXNzaWduKCdpbWFnZV91cmwnLCRpbWFnZV91cmwpOwokc21hcnR5LT5hc3NpZ24oJ2Rlc2NyaXB0aW9uJywkZGVzY3JpcHRpb24pOwoKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLAogICAgICAgICAgICAgICAgJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fZWRpdF9oaWVyYXJjaHlfaXRlbScsJHJldHVybmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbXMsJ2ZhbHNlJywncG9zdCcsJ211bHRpcGFydC9mb3JtLWRhdGEnKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX2FkZF9oaWVyYXJjaHlfaXRlbS50cGwnKTsKCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_reorder_hierarchy.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSApIGV4aXQ7CgovLwovLyBpbml0aWFsaXplCi8vCmZ1bmN0aW9uIG9yZGVyaGllcl9jcmVhdGVfZmxhdGxpc3QoJHRyZWUsJHBhcmVudF9pZCA9IC0xKQp7CiAgJGRhdGEgPSBhcnJheSgpOwogICRvcmRlciA9IDE7CiAgZm9yZWFjaCggJHRyZWUgYXMgJiRub2RlICkKICAgIHsKICAgICAgaWYoIGlzX2FycmF5KCRub2RlKSAmJiBjb3VudCgkbm9kZSkgPT0gMiApCgl7CgkgICRwaWQgPSAoaW50KXN1YnN0cigkbm9kZVswXSxzdHJsZW4oJ2hpZXJfJykpOwoJICAkZGF0YVtdID0gYXJyYXkoJ2lkJz0+JHBpZCwncGFyZW50X2lkJz0+JHBhcmVudF9pZCwnb3JkZXInPT4kb3JkZXIpOwoJICBpZiggaXNzZXQoJG5vZGVbMV0pICYmIGlzX2FycmF5KCRub2RlWzFdKSApCgkgICAgewoJICAgICAgJGRhdGEgPSBhcnJheV9tZXJnZSgkZGF0YSxvcmRlcmhpZXJfY3JlYXRlX2ZsYXRsaXN0KCRub2RlWzFdLCRwaWQpKTsKCSAgICB9Cgl9CiAgICAgIGVsc2UKCXsKCSAgJHBpZCA9IChpbnQpc3Vic3RyKCRub2RlLHN0cmxlbignaGllcl8nKSk7CgkgICRkYXRhW10gPSBhcnJheSgnaWQnPT4kcGlkLCdwYXJlbnRfaWQnPT4kcGFyZW50X2lkLCdvcmRlcic9PiRvcmRlcik7Cgl9CiAgICAgICRvcmRlcisrOwogICAgfQogIHJldHVybiAkZGF0YTsKfQoKLy8KLy8gc2V0dXAgdGhlIGRhdGEKLy8KJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2hpZXJhcmNoeScpOwokdHJlZSA9IHByb2R1Y3RfdXRpbHM6OmhpZXJhcmNoeV9nZXRfdHJlZSgpOwoKLy8KLy8gaGFuZGxlIGZvcm0gc3VibWlzc2lvbl8KLy8KaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSApCiAgewogICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ29wZXJhdGlvbl9jYW5jZWxsZWQnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogICAgcmV0dXJuOwogIH0KZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkKICB7CiAgICAkcGFyYW1zWydvcmRlcmRhdGEnXSA9IGpzb25fZGVjb2RlKCRwYXJhbXNbJ29yZGVyZGF0YSddKTsKCiAgICAvLyAxLiBNYXNzYWdlIHRoZSBvcmRlciBkYXRhIGZyb20gdGhlIGZvcm0uCiAgICAkZGF0YSA9IG9yZGVyaGllcl9jcmVhdGVfZmxhdGxpc3QoJHBhcmFtc1snb3JkZXJkYXRhJ10pOwoKICAgIC8vIDIuIFVwZGF0ZSB0aGUgZGF0YSBhcnJheSB3aXRoIGluZm8gZnJvbSB0aGUgdHJlZS4KICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IE9SREVSIGJ5IGhpZXJhcmNoeSc7CiAgICAkZGJyID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgJGRiciA9IGNnZV9hcnJheTo6dG9faGFzaCgkZGJyLCdpZCcpOwoKICAgIC8vIDMuIFVwZGF0ZSB0aGUgZGF0YWJhc2UKICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkgU0VUIHBhcmVudF9pZCA9ID8sIGl0ZW1fb3JkZXIgPSA/LCBoaWVyYXJjaHkgPSA/LCBsb25nX25hbWUgPSA/IFdIRVJFIGlkID0gPyc7CiAgICBmb3JlYWNoKCAkZGF0YSBhcyAkcmVjICkKICAgICAgewoJJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHJlY1sncGFyZW50X2lkJ10sJHJlY1snb3JkZXInXSwnJywnJywkcmVjWydpZCddKSk7CiAgICAgIH0KICAgIHByb2R1Y3RfdXRpbHM6OnVwZGF0ZV9oaWVyYXJjaHlfcG9zaXRpb25zKCk7CgogICAgLy8gYW5kIGdldCBvdXQgb2YgaGVyZS4KICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdvcGVyYXRpb25fY29tcGxldGUnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogICAgcmV0dXJuOwogIH0KCi8vCi8vIGdpdmUgaXQgdG8gc21hcnR5Ci8vCiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9yZW9yZGVyX2hpZXJhcmNoeScpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCd0cmVlJywkdHJlZSk7CiRzbWFydHktPmFzc2lnbignZGVwdGgnLDApOwoKLy8gZGlzcGxheSB0aGUgZm9ybS4KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9yZW9yZGVyX2hpZXJhcmNoeS50cGwnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_saveprefs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCggJGdDbXMgKSApIHJldHVybjsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3ByZWZzJyk7CgppZiggaXNzZXQoJHBhcmFtc1snc2V0ZWNvbWhhbmRsZXJzJ10pICkgewogICAgJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ0dFY29tbWVyY2VCYXNlJywnT3JkZXJVcGRhdGVkJyxGQUxTRSk7CiAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX2V2ZW50aGFuZGxlcnNfY3JlYXRlZCcpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Cn0KCmlmKCAhaXNzZXQoICRwYXJhbXNbJ3N1Ym1pdCddICkgKSAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ3RheGFibGUnXSkgKSB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGVmYXVsdF90YXhhYmxlJywoaW50KSRwYXJhbXNbJ3RheGFibGUnXSk7Cn0KZWxzZSB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGVmYXVsdF90YXhhYmxlJywwKTsKfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ3N0YXR1cyddKSApIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWZhdWx0X3N0YXR1cycsJHBhcmFtc1snc3RhdHVzJ10pOwp9CmVsc2UgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRfc3RhdHVzJywwKTsKfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSkgKSB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGV0YWlscGFnZScsJHBhcmFtc1snZGV0YWlscGFnZSddKTsKfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ2hpZXJwYWdlJ10pICkgIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdoaWVycGFnZScsJHBhcmFtc1snaGllcnBhZ2UnXSk7Cn0KCmlmKCBpc3NldCgkcGFyYW1zWydwcmV0dHloaWVydXJscyddKSApICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgncHJldHR5aGllcnVybHMnLCRwYXJhbXNbJ3ByZXR0eWhpZXJ1cmxzJ10pOwp9CgppZiggaXNzZXQoJHBhcmFtc1snc29ydG9yZGVyJ10pICkgIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzb3J0b3JkZXInLCRwYXJhbXNbJ3NvcnRvcmRlciddKTsKfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ3N1bW1hcnlfbmV3ZGVmYXVsdCddKSApICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnc3VtbWFyeV9uZXdkZWZhdWx0JywoaW50KSRwYXJhbXNbJ3N1bW1hcnlfbmV3ZGVmYXVsdCddKTsKfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ3N1bW1hcnlfcGFnZWxpbWl0J10pICkgIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzdW1tYXJ5X3BhZ2VsaW1pdCcsKGludCkkcGFyYW1zWydzdW1tYXJ5X3BhZ2VsaW1pdCddKTsKfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ3NvcnRieSddKSApICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnc29ydGJ5JywkcGFyYW1zWydzb3J0YnknXSk7Cn0KCmlmKCBpc3NldCgkcGFyYW1zWydjdXJyZW5jeXN5bWJvbCddKSApIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwcm9kdWN0c19jdXJyZW5jeXN5bWJvbCcsdHJpbSgkcGFyYW1zWydjdXJyZW5jeXN5bWJvbCddKSk7Cn0KCmlmKCBpc3NldCgkcGFyYW1zWyd3ZWlnaHR1bml0cyddKSApICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgncHJvZHVjdHNfd2VpZ2h0dW5pdHMnLHRyaW0oJHBhcmFtc1snd2VpZ2h0dW5pdHMnXSkpOwp9CgppZiggaXNzZXQoJHBhcmFtc1snbGVuZ3RodW5pdHMnXSkgKSAgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Byb2R1Y3RzX2xlbmd0aHVuaXRzJyx0cmltKCRwYXJhbXNbJ2xlbmd0aHVuaXRzJ10pKTsKfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ2FsbG93ZWRfaW1hZ2V0eXBlcyddKSApICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWxsb3dlZF9pbWFnZXR5cGVzJyx0cmltKCRwYXJhbXNbJ2FsbG93ZWRfaW1hZ2V0eXBlcyddKSk7Cn0KCmlmKCBpc3NldCgkcGFyYW1zWydhbGxvd2VkX2ZpbGV0eXBlcyddKSApICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWxsb3dlZF9maWxldHlwZXMnLHRyaW0oJHBhcmFtc1snYWxsb3dlZF9maWxldHlwZXMnXSkpOwp9CgppZiggaXNzZXQoJHBhcmFtc1sndXJscHJlZml4J10pICkgewogICAgaWYoICRwYXJhbXNbJ3VybHByZWZpeCddICE9ICcnICkgewogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1cmxwcmVmaXgnLCRwYXJhbXNbJ3VybHByZWZpeCddKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCd1cmxwcmVmaXgnKTsKICAgIH0KfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ2RlbGV0ZXByb2R1Y3RmaWxlcyddKSApIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWxldGVwcm9kdWN0ZmlsZXMnLHRyaW0oJHBhcmFtc1snZGVsZXRlcHJvZHVjdGZpbGVzJ10pKTsKfQoKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VzZV9kZXRhaWxwYWdlX2Zvcl9zZWFyY2gnLChpbnQpJHBhcmFtc1sndXNlX2RldGFpbHBhZ2VfZm9yX3NlYXJjaCddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VzZWhpZXJwYXRodXJscycsKGludCkkcGFyYW1zWyd1c2VoaWVycGF0aHVybHMnXSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwcm9kbm90Zm91bmQnLHRyaW0oJHBhcmFtc1sncHJvZG5vdGZvdW5kJ10pKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Byb2Rub3Rmb3VuZG1zZycsdHJpbSgkcGFyYW1zWydwcm9kbm90Zm91bmRtc2cnXSkpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgncHJvZG5vdGZvdW5kcGFnZScsdHJpbSgkcGFyYW1zWydwcm9kbm90Zm91bmRwYWdlJ10pKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3NrdXJlcXVpcmVkJywoaW50KSRwYXJhbXNbJ3NrdXJlcXVpcmVkJ10pOwokdGhpcy0+U2V0VGVtcGxhdGUoJ3NsdWd0ZW1wbGF0ZScsXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdzbHVndGVtcGxhdGUnKSk7CgokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_setdflttemplates.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdCgpOwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSApIGV4aXQoKTsKCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdkZWZhdWx0X3RlbXBsYXRlcycpOwoKaWYoIGlzc2V0KCAkcGFyYW1zWydzdWJtaXRfc3VtbWFyeXRlbXBsYXRlJ10gKSApIHsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV1NVTU1BUllfVEVNUExBVEUsdHJpbSgkcGFyYW1zWydpbnB1dF9zdW1tYXJ5dGVtcGxhdGUnXSkpOwp9CmVsc2UgaWYoIGlzc2V0KCAkcGFyYW1zWydyZXNldF9zdW1tYXJ5dGVtcGxhdGUnXSApICkgewogICRmbiA9IF9fRElSX18uRElSRUNUT1JZX1NFUEFSQVRPUi4ndGVtcGxhdGVzJy5ESVJFQ1RPUllfU0VQQVJBVE9SLidvcmlnX3N1bW1hcnlfdGVtcGxhdGUudHBsJzsKICBpZiggZmlsZV9leGlzdHMoICRmbiApICkgewogICAgJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV1NVTU1BUllfVEVNUExBVEUsJHRlbXBsYXRlKTsKICB9Cn0KCmlmKCBpc3NldCggJHBhcmFtc1snc3VibWl0X2RldGFpbHRlbXBsYXRlJ10gKSApIHsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV0RFVEFJTF9URU1QTEFURSx0cmltKCRwYXJhbXNbJ2lucHV0X2RldGFpbHRlbXBsYXRlJ10pKTsKfQplbHNlIGlmKCBpc3NldCggJHBhcmFtc1sncmVzZXRfZGV0YWlsdGVtcGxhdGUnXSApICkgewogICRmbiA9IF9fRElSX18uRElSRUNUT1JZX1NFUEFSQVRPUi4ndGVtcGxhdGVzJy5ESVJFQ1RPUllfU0VQQVJBVE9SLidvcmlnX2RldGFpbF90ZW1wbGF0ZS50cGwnOwogIGlmKCBmaWxlX2V4aXN0cyggJGZuICkgKSB7CiAgICAkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXREVUQUlMX1RFTVBMQVRFLCR0ZW1wbGF0ZSk7CiAgfQp9CgoKaWYoIGlzc2V0KCAkcGFyYW1zWydzdWJtaXRfYnloaWVyYXJjaHl0ZW1wbGF0ZSddICkgKSB7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ORVdCWUhJRVJBUkNIWV9URU1QTEFURSx0cmltKCRwYXJhbXNbJ2lucHV0X2J5aGllcmFyY2h5dGVtcGxhdGUnXSkpOwp9CmVsc2UgaWYoIGlzc2V0KCAkcGFyYW1zWydyZXNldF9ieWhpZXJhcmNoeXRlbXBsYXRlJ10gKSApIHsKICAkZm4gPSBfX0RJUl9fLkRJUkVDVE9SWV9TRVBBUkFUT1IuJ3RlbXBsYXRlcycuRElSRUNUT1JZX1NFUEFSQVRPUi4nb3JpZ19ieWhpZXJhcmNoeV90ZW1wbGF0ZS50cGwnOwogIGlmKCBmaWxlX2V4aXN0cyggJGZuICkgKSB7CiAgICAkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXQllISUVSQVJDSFlfVEVNUExBVEUsJHRlbXBsYXRlKTsKICB9Cn0KCgppZiggaXNzZXQoICRwYXJhbXNbJ3N1Ym1pdF9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddICkgKSB7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ORVdDQVRFR09SWUxJU1RfVEVNUExBVEUsdHJpbSgkcGFyYW1zWydpbnB1dF9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddKSk7Cn0KZWxzZSBpZiggaXNzZXQoICRwYXJhbXNbJ3Jlc2V0X2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gKSApIHsKICAkZm4gPSBfX0RJUl9fLkRJUkVDVE9SWV9TRVBBUkFUT1IuJ3RlbXBsYXRlcycuRElSRUNUT1JZX1NFUEFSQVRPUi4nb3JpZ19jYXRlZ29yeWxpc3RfdGVtcGxhdGUudHBsJzsKICBpZiggZmlsZV9leGlzdHMoICRmbiApICkgewogICAgJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV0NBVEVHT1JZTElTVF9URU1QTEFURSwkdGVtcGxhdGUpOwogIH0KfQoKaWYoIGlzc2V0KCAkcGFyYW1zWydzdWJtaXRfc2VhcmNodGVtcGxhdGUnXSApICkgewogICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXU0VBUkNIX1RFTVBMQVRFLHRyaW0oJHBhcmFtc1snaW5wdXRfc2VhcmNodGVtcGxhdGUnXSkpOwp9CmVsc2UgaWYoIGlzc2V0KCAkcGFyYW1zWydyZXNldF9zZWFyY2h0ZW1wbGF0ZSddICkgKSB7CiAgJGZuID0gX19ESVJfXy5ESVJFQ1RPUllfU0VQQVJBVE9SLid0ZW1wbGF0ZXMnLkRJUkVDVE9SWV9TRVBBUkFUT1IuJ29yaWdfc2VhcmNoX3RlbXBsYXRlLnRwbCc7CiAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApIHsKICAgICR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ORVdTRUFSQ0hfVEVNUExBVEUsJHRlbXBsYXRlKTsKICB9Cn0KCiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Ci8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.ajax_propval.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgovLwovLyByZXRyaWV2ZSBhbGwgb2YgdGhlIHZhbHVlcyBvZiBhIGZpZWxkCi8vIHRoaXMgaXMgYW4gYWN0aW9uIGludGVuZGVkIHRvIGJlIGNhbGxlZCB2aWEgYWpheC4uLiBpLmU6IHdpdGggdGhlIHNob3d0ZW1wbGF0ZT1mYWxzZSBwYXJhbWV0ZXIKLy8KCi8vCi8vIHNldHVwCi8vCiRyZXMgPSBhcnJheSgnc3RhdHVzJz0+J0VSUk9SJywnZGF0YSc9PicnKTsKJGZpZWxkID0gJyc7CiRmaWVsZHZhbCA9ICcnOwokZmllbGRkZWZzID0gcHJvZHVjdF91dGlsczo6Z2V0X2ZpZWxkZGVmcygpOwokZGF0YSA9ICcnOwoKZnVuY3Rpb24gZG9fZXJyb3IoJG1zZywkZXh0cmEgPSBudWxsKSB7CiAgICAkcmVzWydzdGF0dXMnXSA9ICdFUlJPUic7CiAgICAkcmVzWydkYXRhJ10gPSAkbXNnOwogICAgaWYoICFpc19udWxsKCRleHRyYSkgKSAkcmVzWydleHRyYSddID0gJGV4dHJhOwogICAgZWNobyBqc29uX2VuY29kZSgkcmVzKTsKICAgIGV4aXQ7Cn0KCi8vCi8vIGRhdGEgdmFsaWRhdGlvbgovLwppZiggIWlzc2V0KCRwYXJhbXNbJ2ZpZWxkJ10pIHx8ICFpc3NldCgkcGFyYW1zWydmaWVsZHZhbCddKSApIHsKICAgIGRvX2Vycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nKSk7Cn0KJGZpZWxkID0gdHJpbSgkcGFyYW1zWydmaWVsZCddKTsKJGZpZWxkdmFsID0gdHJpbSgkcGFyYW1zWydmaWVsZHZhbCddKTsKCi8vCi8vIGRvIHRoZSB3b3JrCi8vCiRsZmllbGQgPSBzdHJ0b2xvd2VyKCRmaWVsZCk7CnN3aXRjaCggc3RydG9sb3dlcigkbGZpZWxkKSApIHsKY2FzZSAnOjpza3U6Oic6CiAgICAkcXVlcnkgPSAnU0VMRUNUIHNrdSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgV0hFUkUgc2t1IExJS0UgPyc7CiAgICAkZGF0YSA9ICRkYi0+R2V0Q29sKCRxdWVyeSxhcnJheSgkZmllbGR2YWwuJyUnKSk7CiAgICBicmVhazsKCmNhc2UgJzo6bmFtZTo6JzoKICAgICRxdWVyeSA9ICdTRUxFQ1QgcHJvZHVjdF9uYW1lIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cyBXSEVSRSBwcm9kdWN0X25hbWUgTElLRSA/JzsKICAgICRkYXRhID0gJGRiLT5HZXRDb2woJHF1ZXJ5LGFycmF5KCRmaWVsZHZhbC4nJScpKTsKICAgIGJyZWFrOwoKY2FzZSAnOjphbGlhczo6JzoKICAgICRxdWVyeSA9ICdTRUxFQ1QgYWxpYXMgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzIFdIRVJFIGFsaWFzIExJS0UgPyc7CiAgICAkZGF0YSA9ICRkYi0+R2V0Q29sKCRxdWVyeSxhcnJheSgkZmllbGR2YWwuJyUnKSk7CiAgICBicmVhazsKCmRlZmF1bHQ6CiAgICAkZm5kID0gMDsKICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRmaWVsZGRlZnMpOyAkaSsrICkgewogICAgICAgIGlmKCAkZmllbGRkZWZzWyRpXS0+bmFtZSA9PSAkZmllbGQgKSB7CiAgICAgICAgICAgICRmbmQgPSAxOwogICAgICAgICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgRElTVElOQ1QgdmFsdWUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyBXSEVSRSBmaWVsZGRlZl9pZCA9ID8gQU5EIHZhbHVlIExJS0UgPyc7CiAgICAgICAgICAgICAgJGRhdGEgPSAkZGItPkdldENvbCgkcXVlcnksYXJyYXkoJGZpZWxkZGVmc1skaV0tPmlkLCRmaWVsZHZhbC4nJScpKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICBpZiggISRmbmQgKSB7CiAgICAgICAgJGV4dCA9IGFycmF5KCdsb29rZm9yJz0+JGxmaWVsZCwnZmQnPT4kZmllbGRkZWZzLCd2YWwnPT4kZmllbGR2YWwuJyUnKTsKICAgICAgICBkb19lcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZF9uYW1lJyksJGV4dCk7CiAgICB9CiAgICBicmVhazsKfQoKLy8KLy8gb3V0cHV0Ci8vCiRyZXNbJ3N0YXR1cyddID0gJ09LJzsKJHJlc1snZGF0YSddID0gJGRhdGE7CmVjaG8ganNvbl9lbmNvZGUoJHJlcyk7CmV4aXQ7CgojCiMgRU9GCiM/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.categorylist.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCiR0aGV0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVENBVEVHT1JZTElTVF9URU1QTEFURSk7CiR0aGV0ZW1wbGF0ZSA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnY2F0ZWdvcnlsaXN0dGVtcGxhdGUnLCR0aGV0ZW1wbGF0ZSk7Cgokc29ydGJ5ID0gJ0EubmFtZSc7CiRzb3J0b3JkZXIgPSAnYXNjJzsKJGNhdGVnb3J5X2lkID0gXGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdjYXRlZ29yeWlkJyk7CiRjYXRlZ29yeSA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnY2F0ZWdvcnknKTsKJGNhdGVnb3J5ZmllbGQgPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2NhdGVnb3J5ZmllbGQnKTsKJHJlc3VsdHBhZ2UgPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ3Jlc3VsdHBhZ2UnKTsKCiRyZXN1bHRwYWdlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Jlc3VsdHBhZ2UnLCcnKTsKaWYoICFlbXB0eSgkcmVzdWx0cGFnZSkgKSB7CiAgICAkbWFuYWdlciA9ICRnQ21zLT5HZXRIaWVyYXJjaHlNYW5hZ2VyKCk7CiAgICAkbm9kZSA9ICRtYW5hZ2VyLT5zdXJlR2V0Tm9kZUJ5QWxpYXMoJHJlc3VsdHBhZ2UpOwogICAgaWYgKGlzc2V0KCRub2RlKSkgewogICAgICAgICRjb250ZW50ID0gJG5vZGUtPkdldENvbnRlbnQoKTsKICAgICAgICBpZiAoaXNzZXQoJGNvbnRlbnQpKSAkcmVzdWx0cGFnZSA9ICRjb250ZW50LT5JZCgpOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJG5vZGUgPSAkbWFuYWdlci0+c3VyZUdldE5vZGVCeUlkKCRyZXN1bHRwYWdlKTsKICAgICAgICBpZiAoIWlzc2V0KCRub2RlKSkgJHJlc3VsdHBhZ2UgPSAnJzsKICAgIH0KfQoKJHRtcCA9IHN0cnRvbG93ZXIoXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdzb3J0YnknKSk7CnN3aXRjaCggJHRtcCApIHsKY2FzZSAnaWQnOgpjYXNlICduYW1lJzoKCSRzb3J0YnkgPSAnQS4nLiR0bXA7CglicmVhazsKfQokdG1wID0gc3RydG9sb3dlcihcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ3NvcnRvcmRlcicpKTsKc3dpdGNoKCAkdG1wICkgewpjYXNlICdhc2MnOgpjYXNlICdkZXNjJzoKCSRzb3J0b3JkZXIgPSAkdG1wOwoJYnJlYWs7Cn0KCiRxdWVyeSA9ICJTRUxFQ1QgQS5pZCxBLm5hbWUsY291bnQoQi5wcm9kdWN0X2lkKSBBUyBjb3VudCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyBBIExFRlQgT1VURVIgSk9JTiAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcyBCIE9OIEEuaWQgPSBCLmNhdGVnb3J5X2lkIjsKJGpvaW5zID0gYXJyYXkoKTsKJGpwYXJtcyA9IGFycmF5KCk7CiR3aGVyZSA9IGFycmF5KCk7CiRxcGFybXMgPSBhcnJheSgpOwppZiggJGNhdGVnb3J5X2lkICkgewogICAgJHdoZXJlW10gLj0gIkEuaWQgPSA/IjsKICAgICRxcGFybXNbXSA9ICRjYXRlZ29yeV9pZDsKfQplbHNlIGlmKCAkY2F0ZWdvcnkpIHsKICAgICRxMiA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMgV0hFUkUgbmFtZSBJTiAoJzsKICAgICR0bXAgPSBleHBsb2RlKCcsJywkY2F0ZWdvcnkpOwogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKSB7CiAgICAgICAgJHRtcFskaV0gPSAnIicuJHRtcFskaV0uJyInOwogICAgfQogICAgJHEyIC49IGltcGxvZGUoJywnLCR0bXApLicpJzsKICAgICRpZHMgPSAkZGItPkdldENvbCgkcTIpOwogICAgaWYoIGlzX2FycmF5KCRpZHMpICYmIGNvdW50KCRpZHMpICkgewogICAgICAgICR3aGVyZVtdID0gJ0EuaWQgSU4gKCcuaW1wbG9kZSgnLCcsJGlkcykuJyknOwogICAgfQp9CmVsc2UgaWYoICRjYXRlZ29yeWZpZWxkICkgewogICAgJGV4cHJzID0gY2dlX2FycmF5OjpzbWFydF9leHBsb2RlKCRjYXRlZ29yeWZpZWxkKTsKICAgIGlmKCBpc19hcnJheSgkZXhwcnMpICYmIGNvdW50KCRleHBycykgKSB7CiAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGV4cHJzKTsgJGkrKyApIHsKICAgICAgICAgICAgbGlzdCgkZmxkbmFtZSwkZmxkdmFsKSA9IGV4cGxvZGUoJzonLCRleHByc1skaV0sMik7CiAgICAgICAgICAgIGlmKCAkZmxkbmFtZSAhPSAnJyAmJiAkZmxkdmFsICE9ICcnICkgewogICAgICAgICAgICAgICAgJGpvaW5zW10gPSBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMgQ0Z7JGl9IE9OIEEuaWQgPSBDRnskaX0uY2F0ZWdvcnlfaWQgQU5EIENGeyRpfS5maWVsZF9uYW1lID0gPyI7CiAgICAgICAgICAgICAgICAkanBhcm1zW10gPSAkZmxkbmFtZTsKICAgICAgICAgICAgICAgICR3aGVyZVtdID0gIkNGeyRpfS5maWVsZF92YWx1ZSA9ID8iOwogICAgICAgICAgICAgICAgJHFwYXJtc1tdID0gJGZsZHZhbDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKLy8gZmluYWwgcXVlcnkgYXNzZW1ibHkuCmlmKCBjb3VudCgkam9pbnMpICkgJHF1ZXJ5IC49ICcgTEVGVCBKT0lOICcuaW1wbG9kZSgnIExFRlQgSk9JTiAnLCRqb2lucyk7CmlmKCBjb3VudCgkd2hlcmUpICkgJHF1ZXJ5IC49ICcgV0hFUkUgJy5pbXBsb2RlKCcgQU5EICcsJHdoZXJlKTsKJHFwYXJtcyA9IGFycmF5X21lcmdlKCRqcGFybXMsJHFwYXJtcyk7CiRxdWVyeSAuPSAiIEdST1VQIEJZIEEuaWQgT1JERVIgQlkgJHNvcnRieSAkc29ydG9yZGVyIjsKJGNhdGVnb3JpZXMgPSAkZGItPkdldEFycmF5KCRxdWVyeSwkcXBhcm1zKTsKaWYoICEkY2F0ZWdvcmllcyApIHJldHVybjsKCiR0bXAgPSBjZ2VfYXJyYXk6OmV4dHJhY3RfZmllbGQoJGNhdGVnb3JpZXMsJ2lkJyk7CiRxdWVyeTIgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcwogICAgICAgICAgICBXSEVSRSBjYXRlZ29yeV9pZCBJTiAoJy5pbXBsb2RlKCcsJywkdG1wKS4nKSBPUkRFUiBCWSBjYXRlZ29yeV9pZCBBU0MsIGZpZWxkX29yZGVyIEFTQyc7CiR0bXAyID0gJGRiLT5HZXRBcnJheSgkcXVlcnkyKTsKJHJlc3VsdHMgPSBhcnJheSgpOwpmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkY2F0ZWdvcmllcyk7ICRpKysgKSB7CiAgICAkcm93ID0mICRjYXRlZ29yaWVzWyRpXTsKICAgIGlmKCAoIWlzc2V0KCRwYXJhbXNbJ3Nob3dhbGwnXSkgfHwgJHBhcmFtc1snc2hvd2FsbCddIDwgMSkgJiYgJHJvd1snY291bnQnXSA8PSAwICkgY29udGludWU7CgogICAgJG9iaiA9IG5ldyBTdGRDbGFzcygpOwogICAgZm9yZWFjaCggJHJvdyBhcyAkayA9PiAkdiApIHsKICAgICAgICAkb2JqLT4kayA9ICR2OwogICAgfQoKICAgIC8vIGV4dHJhY3QgYWxsIG9mIHRoZSByb3dzIHRoYXQgaGF2ZSB0aGlzIGNhdGVnb3J5IGlkCiAgICAkdG1wYSA9IGFycmF5KCk7CiAgICBmb3IoICRqID0gMDsgJGogPCBjb3VudCgkdG1wMik7ICRqKysgKSB7CiAgICAgICAgaWYoICR0bXAyWyRqXVsnY2F0ZWdvcnlfaWQnXSA8ICRyb3dbJ2lkJ10gKSBjb250aW51ZTsKICAgICAgICBpZiggJHRtcDJbJGpdWydjYXRlZ29yeV9pZCddID4gJHJvd1snaWQnXSApIGJyZWFrOwoKICAgICAgICAkdG1wYVtdID0gJHRtcDJbJGpdOwogICAgfQogICAgaWYoIGlzX2FycmF5KCR0bXBhKSAmJiBjb3VudCgkdG1wYSkgPiAwICkgJG9iai0+ZmllbGRzID0gY2dlX2FycmF5Ojp0b19oYXNoKCR0bXBhLCdmaWVsZF9uYW1lJyk7CgogICAgJHBhcmFtc1snY2F0ZWdvcnlpZCddID0gJG9iai0+aWQ7CiAgICBpZiggISRjYXRlZ29yeV9pZCApIHsKICAgICAgICAkb2JqLT5kZXRhaWxfdXJsID0gJHRoaXMtPkNyZWF0ZVByZXR0eUxpbmsoJGlkLCdjYXRlZ29yeWxpc3QnLCgkcmVzdWx0cGFnZSE9JycpPyRyZXN1bHRwYWdlOiRyZXR1cm5pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycsJHBhcmFtcywnJyx0cnVlKTsKICAgIH0KICAgICRwYXJhbXNbJ2NhdGVnb3J5bmFtZSddID0gJG9iai0+bmFtZTsKICAgICRvYmotPnN1bW1hcnlfdXJsID0gJHRoaXMtPkNyZWF0ZVByZXR0eUxpbmsoJGlkLCdkZWZhdWx0JywoJHJlc3VsdHBhZ2UhPScnKT8kcmVzdWx0cGFnZTokcmV0dXJuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnLCRwYXJhbXMsJycsdHJ1ZSk7CiAgICAkcmVzdWx0c1tdID0gJG9iajsKfQoKJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgkdGhldGVtcGxhdGUsJ2NhdGVnb3J5bGlzdF8nKTsKJHRwbC0+YXNzaWduKCdjYXRlZ29yeWxpc3QnLCRyZXN1bHRzKTsKJHRwbC0+ZGlzcGxheSgpOwoKLy8gRU9GCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.copycategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYignY2F0ZWdvcmllcycpOwoKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSkKewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbmVlZHBlcm1pc3Npb24nLCBhcnJheSgnTW9kaWZ5IFByb2R1Y3RzJykpKTsKCXJldHVybjsKfQppZiAoIWlzc2V0KCRwYXJhbXNbJ2NhdGlkJ10pKQp7CiAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwogIHJldHVybjsKfQoKIyBJbml0aWFsaXphdGlvbgokbmFtZSA9ICcnOwokY2F0aWQgPSAoaW50KSRwYXJhbXNbJ2NhdGlkJ107CgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKQp7CiAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKfQoKJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yaWVzCiAgICAgICAgICAgV0hFUkUgaWQgPSA/JzsKJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSxhcnJheSgkY2F0aWQpKTsKCmlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKQp7CiAgLy8gbWFrZSBzdXJlIHRoZSBuYW1lIGlzIG5vdCBlbXB0eQogIGlmKCBpc3NldCgkcGFyYW1zWyduYW1lJ10pICkKICAgIHsKICAgICAgJG5hbWUgPSB0cmltKCRwYXJhbXNbJ25hbWUnXSk7CiAgICB9CiAgaWYoIGVtcHR5KCRuYW1lKSApCiAgICB7CiAgICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX25vbmFtZScpKTsKICAgIH0KICBlbHNlCiAgICB7CiAgICAgICRxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMKICAgICAgICAgICAgICAgICAgV0hFUkUgbmFtZSA9ID8nOwogICAgICAkdG1wID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRuYW1lKSk7CiAgICAgIGlmKCAkdG1wICkKCXsKCSAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfbmFtZXVzZWQnKSk7Cgl9CiAgICAgIGVsc2UKCXsKCSAgLy8gaXQncyBnb29kIHRvIGdvLgoJICAkbm93ID0gJGRiLT5EYlRpbWVTdGFtcCh0aW1lKCkpOwoJICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19jYXRlZ29yaWVzCiAgICAgICAgICAgICAgICAgKG5hbWUsIGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlKQogICAgICAgICAgICAgICAgVkFMVUVTICg/LCRub3csJG5vdykiOwoJICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRuYW1lKSk7CgkgICRuZXdfaWQgPSAkZGItPkluc2VydF9JRCgpOwoKCSAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMKICAgICAgICAgICAgICAgICBXSEVSRSBjYXRlZ29yeV9pZCA9ID8gT1JERVIgQlkgZmllbGRfb3JkZXInOwoJICAkcmVzID0gJGRiLT5HZXRBcnJheSgkcXVlcnksYXJyYXkoJGNhdGlkKSk7CgoJICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMKICAgICAgICAgICAgICAgICAgKGNhdGVnb3J5X2lkLCBmaWVsZF90eXBlLCBmaWVsZF9uYW1lLCBmaWVsZF9wcm9tcHQsIGZpZWxkX3ZhbHVlLCBmaWVsZF9vcmRlcikKICAgICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8pJzsKCSAgJGlkeCA9IDE7CgkgIGZvcmVhY2goICRyZXMgYXMgJG9uZSApCgkgICAgewoJICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwKCQkJICAgYXJyYXkoJG5ld19pZCwkb25lWydmaWVsZF90eXBlJ10sJG9uZVsnZmllbGRfbmFtZSddLAoJCQkJICRvbmVbJ2ZpZWxkX3Byb21wdCddLCRvbmVbJ2ZpZWxkX3ZhbHVlJ10sJGlkeCsrKSk7CgkgICAgfQoKCSAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKCX0KICAgIH0KfQoKaWYoICRyb3cgKQp7CiAgJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yeScsJHJvdyk7Cn0KCiMgRGlzcGxheSBUZW1wbGF0ZQokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsCgkJJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ2NvcHljYXRlZ29yeScsJHJldHVybmlkKSk7CiRzbWFydHktPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0bmFtZScsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ25hbWUnLCRuYW1lLDgwLDI1NSkpOwokc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnY2F0aWQnLCRjYXRpZCkpOwokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsIGxhbmcoJ3N1Ym1pdCcpKSk7CiRzbWFydHktPmFzc2lnbignY2FuY2VsJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnY29weWNhdGVnb3J5LnRwbCcpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgokdGhldGVtcGxhdGUgPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ3N1bW1hcnl0ZW1wbGF0ZScsJHRoZXRlbXBsYXRlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ERkxUU1VNTUFSWV9URU1QTEFURSkpOwokY2FjaGVfaWQgPSAnfHBzJy5tZDUoc2VyaWFsaXplKCRwYXJhbXMpKTsKJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgkdGhldGVtcGxhdGUsJ3N1bW1hcnlfJywkY2FjaGVfaWQpOwppZiggISR0cGwtPmlzQ2FjaGVkKCkgKSB7CgogICAgLy8gc2V0dXAgdGhlIHF1ZXJ5CiAgICB0cnkgewogICAgICAgICRxdWVyeSA9IG5ldyBwcm9kdWN0c19xdWVyeSgpOwogICAgICAgIGZvcmVhY2goICRwYXJhbXMgYXMgJGtleSA9PiAkdmFsdWUgKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAkcXVlcnlbJGtleV0gPSAkdmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgICAgIC8vIGlnbm9yZSB0aGlzIGVycm9yLgogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkcmVzdWx0cyA9IG5ldyBwcm9kdWN0c19yZXN1bHRzZXQoJHF1ZXJ5KTsKICAgICAgICAkcmVzdWx0cy0+Y3VycGFnZSA9ICRyZXR1cm5pZDsKICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1snbm90cHJldHR5J10pICkgJHJlc3VsdHMtPm5vdHByZXR0eSA9ICRwYXJhbXNbJ25vdHByZXR0eSddOwogICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydkZXRhaWxwYWdlJ10pICkgJHJlc3VsdHMtPmRldGFpbHBhZ2UgPSAkcGFyYW1zWydkZXRhaWxwYWdlJ107CiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2RldGFpbHRlbXBsYXRlJ10pICkgJHJlc3VsdHMtPmRldGFpbHRlbXBsYXRlID0gJHBhcmFtc1snZGV0YWlsdGVtcGxhdGUnXTsKICAgICAgICAkZW50cnlhcnJheSA9IGFycmF5KCk7CiAgICAgICAgd2hpbGUoICEkcmVzdWx0cy0+RU9GICkgewogICAgICAgICAgICAkZW50cnlhcnJheVtdID0gJHJlc3VsdHMtPmdldF9wcm9kdWN0X2Zvcl9kaXNwbGF5KCk7CiAgICAgICAgICAgICRyZXN1bHRzLT5Nb3ZlTmV4dCgpOwogICAgICAgIH0KCiAgICAgICAgLy8KICAgICAgICAvLyBnaXZlIGV2ZXJ5dGhpbmcgdG8gc21hcnR5CiAgICAgICAgLy8KICAgICAgICBpZiggaXNzZXQoJHF1ZXJ5WydoaWVyYXJjaHlpZCddKSApICR0cGwtPmFzc2lnbignYWN0aXZlX2hpZXJhcmNoeScsJHF1ZXJ5WydoaWVyYXJjaHlpZCddKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2l0ZW1zJywkZW50cnlhcnJheSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdpdGVtY291bnQnLGNvdW50KCRlbnRyeWFycmF5KSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd0b3RhbGNvdW50JywkcmVzdWx0cy0+dG90YWxyb3dzKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3BhZ2Vjb3VudCcsJHJlc3VsdHMtPm51bXBhZ2VzKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2N1cnBhZ2UnLCRxdWVyeVsncGFnZSddKTsKICAgICAgICAkcGFnZSA9ICRxdWVyeVsncGFnZSddOwogICAgICAgIGlmKCAkcGFnZSA9PSAxICkgewogICAgICAgICAgICAkdHBsLT5hc3NpZ24oJ2ZpcnN0bGluaycsJHRoaXMtPkxhbmcoJ2ZpcnN0cGFnZScpKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdwcmV2bGluaycsJHRoaXMtPkxhbmcoJ3ByZXZwYWdlJykpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRwYXJtcyA9ICRwYXJhbXM7CiAgICAgICAgICAgICRwYXJtc1sncGFnZSddID0gMTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdmaXJzdGxpbmsnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZGVmYXVsdCcsJHJldHVybmlkLCR0aGlzLT5MYW5nKCdmaXJzdHBhZ2UnKSwkcGFybXMpKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdmaXJzdHBhZ2VfdXJsJywkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2RlZmF1bHQnLCRyZXR1cm5pZCwkcGFybXMpKTsKCiAgICAgICAgICAgICRwYXJtc1sncGFnZSddID0gJHBhZ2UgLSAxOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oJ3ByZXZsaW5rJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlZmF1bHQnLCRyZXR1cm5pZCwkdGhpcy0+TGFuZygncHJldnBhZ2UnKSwkcGFybXMpKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdwcmV2cGFnZV91cmwnLCR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnZGVmYXVsdCcsJHJldHVybmlkLCRwYXJtcykpOwogICAgICAgIH0KCiAgICAgICAgaWYoICRwYWdlID09ICRyZXN1bHRzLT5udW1wYWdlcyApIHsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdsYXN0bGluaycsJHRoaXMtPkxhbmcoJ2xhc3RwYWdlJykpOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oJ25leHRsaW5rJywkdGhpcy0+TGFuZygnbmV4dHBhZ2UnKSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHBhcm1zID0gJHBhcmFtczsKICAgICAgICAgICAgJHBhcm1zWydwYWdlJ10gPSAkcmVzdWx0cy0+bnVtcGFnZXM7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbignbGFzdGxpbmsnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZGVmYXVsdCcsJHJldHVybmlkLCR0aGlzLT5MYW5nKCdsYXN0cGFnZScpLCRwYXJtcykpOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oJ2xhc3RwYWdlX3VybCcsJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCdkZWZhdWx0JywkcmV0dXJuaWQsJHBhcm1zKSk7CiAgICAgICAgICAgICRwYXJtc1sncGFnZSddID0gJHBhZ2UgKyAxOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oJ25leHRsaW5rJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlZmF1bHQnLCRyZXR1cm5pZCwkdGhpcy0+TGFuZygnbmV4dHBhZ2UnKSwkcGFybXMpKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCduZXh0cGFnZV91cmwnLCR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnZGVmYXVsdCcsJHJldHVybmlkLCRwYXJtcykpOwogICAgICAgIH0KCiAgICAgICAgJHRwbC0+YXNzaWduKCdwYWdldGV4dCcsJHRoaXMtPkxhbmcoJ3BhZ2UnKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdvZnRleHQnLCR0aGlzLT5MYW5nKCdvZicpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2N1cnJlbmN5X3N5bWJvbCcscHJvZHVjdF9vcHM6OmdldF9jdXJyZW5jeV9zeW1ib2woKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd3ZWlnaHRfdW5pdHMnLHByb2R1Y3Rfb3BzOjpnZXRfd2VpZ2h0X3VuaXRzKCkpOwogICAgfQogICAgY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICBlY2hvICR0aGlzLT5EaXNwbGF5RXJyb3JNZXNzYWdlKCRlLT5HZXRNZXNzYWdlKCkpOwogICAgfQp9CgokdHBsLT5kaXNwbGF5KCk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKI1RoZSB0YWJzCmVjaG8gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOwoKaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpKSB7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdwcm9kdWN0cycsJHRoaXMtPkxhbmcoJ3Byb2R1Y3RzJykpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZmllbGRkZWZzJywkdGhpcy0+TGFuZygnZmllbGRkZWZzJykpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignaGllcmFyY2h5JywkdGhpcy0+TGFuZygncHJvZHVjdF9oaWVyYXJjaHknKSk7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdjYXRlZ29yaWVzJywkdGhpcy0+TGFuZygnY2F0ZWdvcmllcycpKTsKfQoKaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSkgewogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignc3VtbWFyeV90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ3N1bW1hcnl0ZW1wbGF0ZXMnKSk7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdkZXRhaWxfdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdkZXRhaWx0ZW1wbGF0ZXMnKSk7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdieWhpZXJhcmNoeV90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ2J5aGllcmFyY2h5dGVtcGxhdGVzJykpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignY2F0ZWdvcnlsaXN0X3RlbXBsYXRlJywkdGhpcy0+TGFuZygnY2F0ZWdvcnlsaXN0dGVtcGxhdGVzJykpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignc2VhcmNoX3RlbXBsYXRlJywkdGhpcy0+TGFuZygnc2VhcmNodGVtcGxhdGVzJykpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZGVmYXVsdF90ZW1wbGF0ZXMnLCR0aGlzLT5MYW5nKCdkZWZhdWx0dGVtcGxhdGVzJykpOwp9CgppZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSkgewogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigncHJlZnMnLCR0aGlzLT5MYW5nKCdwcmVmZXJlbmNlcycpKTsKfQplY2hvICR0aGlzLT5FbmRUYWJIZWFkZXJzKCk7CgojVGhlIGNvbnRlbnQgb2YgdGhlIHRhYnMKZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CmlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSkgewogIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdwcm9kdWN0cycsICRwYXJhbXMpOwogIGluY2x1ZGUoX19ESVJfXy4nL2Z1bmN0aW9uLmFkbWluX3Byb2R1Y3RzdGFiLnBocCcpOwogIGVjaG8gJHRoaXMtPkVuZFRhYigpOwoKICBlY2hvICR0aGlzLT5TdGFydFRhYignZmllbGRkZWZzJywgJHBhcmFtcyk7CiAgaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fZmllbGRkZWZzX3RhYi5waHAnKTsKICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKCiAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2hpZXJhcmNoeScsICRwYXJhbXMpOwogIGluY2x1ZGUoX19ESVJfXy4nL2Z1bmN0aW9uLmFkbWluX2hpZXJhcmNoeV90YWIucGhwJyk7CiAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CgogIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdjYXRlZ29yaWVzJywgJHBhcmFtcyk7CiAgaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fY2F0ZWdvcmllc190YWIucGhwJyk7CiAgZWNobyAkdGhpcy0+RW5kVGFiKCk7Cn0KCmlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCAnTW9kaWZ5IFRlbXBsYXRlcycgKSApIHsKICBpbmNsdWRlKF9fRElSX18uJy9mdW5jdGlvbi5hZG1pbl90ZW1wbGF0ZXN0YWJzLnBocCcpOwp9CgppZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIHsKICBlY2hvICR0aGlzLT5TdGFydFRhYigncHJlZnMnLCRwYXJhbXMpOwogIGluY2x1ZGUoX19ESVJfXy4nL2Z1bmN0aW9uLmFkbWluX3ByZWZzdGFiLnBocCcpOwogIGVjaG8gJHRoaXMtPkVuZFRhYigpOwp9CgplY2hvICR0aGlzLT5FbmRUYWJDb250ZW50KCk7CgojIHZpbTp0cz00IHN3PTQgbm9ldAo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.defaulturl.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKCmlmKCBpc3NldCgkcGFyYW1zWydjYXRlZ29yeWlkJ10pIHx8IGlzc2V0KCRwYXJhbXNbJ2hpZXJhcmNoeWlkJ10pICkKICB7CiAgICAkdGhpcy0+RG9BY3Rpb24oJ2RlZmF1bHQnLCRpZCwkcGFyYW1zLCRyZXR1cm5pZCk7CiAgfQplbHNlIGlmKCBpc3NldCgkcGFyYW1zWydwYXJlbnQnXSkgKQogIHsKICAgICR0aGlzLT5Eb0FjdGlvbignaGllcmFyY2h5JywkaWQsJHBhcmFtcywkcmV0dXJuaWQpOwogIH0KZWxzZQogIHsKICAgICR0aGlzLT5Eb0FjdGlvbignZGV0YWlscycsICRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsKICB9CgojIHZpbTp0cz00IHN3PTQgbm9ldAo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.deletecategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpKSByZXR1cm47CgokdGhpcy0+U2V0Q3VycmVudFRhYignY2F0ZWdvcmllcycpOwokY29uZmlnID0gJGdDbXMtPkdldENvbmZpZygpOwppZiggIWlzc2V0KCRwYXJhbXNbJ2NhdGlkJ10pICkgewogIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXJhbScpKTsKICByZXR1cm47Cn0KJGNhdGlkID0gKGludCkkcGFyYW1zWydjYXRpZCddOwoKLy8gR2V0IHRoZSBjYXRlZ29yeSBkZXRhaWxzCiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyBXSEVSRSBpZCA9ID8nOwokcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSggJGNhdGlkKSk7CgovLyBOb3cgcmVtb3ZlIGFueSBjYXRlZ29yeSBmaWVsZHMKJHF1ZXJ5IC0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/JzsKJHJlc3VsdHMgPSAkZGItPkdldEFycmF5KCRxdWVyeSxhcnJheSgkY2F0aWQpKTsKaWYoIGlzX2FycmF5KCRyZXN1bHRzKSAmJiBjb3VudCgkcmVzdWx0cykgKSB7CiAgICBmb3JlYWNoKCAkcmVzdWx0cyBhcyAkb25lICkgewogICAgICAgIHN3aXRjaCgkb25lWydmaWVsZF90eXBlJ10pIHsKICAgICAgICBjYXNlICdpbWFnZSc6CiAgICAgICAgY2FzZSAnZmlsZSc6CiAgICAgICAgICAgICRmaWxlcyA9IGFycmF5KCRyb3dbJ2ZpZWxkX3ZhbHVlJ10sJ3RodW1iXycuJHJvd1snZmllbGRfdmFsdWUnXSwncHJldmlld18nLiRyb3dbJ2ZpZWxkX3ZhbHVlJ10pOwogICAgICAgICAgICBmb3JlYWNoKCAkZmlsZXMgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICRmbiA9IGNtc19qb2luX3BhdGgocHJvZHVjdF91dGlsczo6Z2V0X2NhdGVnb3J5X3VwbG9hZF9wYXRoKCRjYXRpZCksJG9uZSk7CiAgICAgICAgICAgICAgICBpZiggZmlsZV9leGlzdHMoJGZuKSApIEB1bmxpbmsoJGZuKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICAkcXVlcnkgPSAnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/JzsKICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGNhdGlkKSk7Cn0KCi8vTm93IHJlbW92ZSB0aGUgY2F0ZWdvcnkKJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyBXSEVSRSBpZCA9ID8iOwokZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY2F0aWQpKTsKCi8vQW5kIHJlbW92ZSBpdCBmcm9tIGFueSBlbnRyaWVzCiRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcyBXSEVSRSBjYXRlZ29yeV9pZCA9ID8iOwokZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY2F0aWQpKTsKCiR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfY2F0ZWdvcnlfZGVsZXRlZCcpKTsKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.deletecategoryfield.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYignY2F0ZWdvcmllcycpOwoKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSkKewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbmVlZHBlcm1pc3Npb24nLCBhcnJheSgnTW9kaWZ5IFByb2R1Y3RzJykpKTsKCXJldHVybjsKfQppZiggIWlzc2V0KCRwYXJhbXNbJ2NhdGlkJ10pICkKewogIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXJhbScpKTsKICByZXR1cm47Cn0KaWYoICFpc3NldCgkcGFyYW1zWydmbGRuYW1lJ10pICkKewogIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXJhbScpKTsKICByZXR1cm47Cn0KCiMKIyBJbml0aWFsaXphdGlvbgojCiRjb25maWcgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CiRjYXRpZCA9IChpbnQpJHBhcmFtc1snY2F0aWQnXTsKJGZsZG5hbWUgPSB0cmltKCRwYXJhbXNbJ2ZsZG5hbWUnXSk7CgovLyBHZXQgdGhlIGluZm9ybWF0aW9uIGZyb20gdGhlIGRhdGFiYXNlCiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcnlfZmllbGRzCiAgICAgICAgICAgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/IEFORCBmaWVsZF9uYW1lID0gPyc7CiRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJGNhdGlkLCRmbGRuYW1lKSk7CgovLyBEZWxldGUgYW55IGZpbGVzIHRoYXQgbWF5IGJlIGF0dGFjaGVkCnN3aXRjaCggJHJvd1snZmllbGRfdHlwZSddICkgewogIGNhc2UgJ2ZpbGUnOgogIGNhc2UgJ2ltYWdlJzoKICAgICRmaWxlcyA9IGFycmF5KCRyb3dbJ2ZpZWxkX3ZhbHVlJ10sJ3RodW1iXycuJHJvd1snZmllbGRfdmFsdWUnXSwncHJldmlld18nLiRyb3dbJ2ZpZWxkX3ZhbHVlJ10pOwogICAgZm9yZWFjaCggJGZpbGVzIGFzICRvbmUgKSB7CiAgICAgICAgJGZuID0gY21zX2pvaW5fcGF0aChwcm9kdWN0X3V0aWxzOjpnZXRfY2F0ZWdvcnlfdXBsb2FkX3BhdGgoJGNhdGlkKSwkb25lKTsKICAgICAgICBpZiggZmlsZV9leGlzdHMoJGZuKSApIEB1bmxpbmsoJGZuKTsKICAgIH0KfQoKLy8gRGVsZXRlIHRoZSByZWNvcmQKJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcnlfZmllbGRzCiAgICAgICAgICAgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/IEFORCBmaWVsZF9uYW1lID0gPyc7CiRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGNhdGlkLCRmbGRuYW1lKSk7CgovLyBVcGRhdGUgdGhlIGNvdW50cwokcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcnlfZmllbGRzCiAgICAgICAgICAgICBTRVQgZmllbGRfb3JkZXIgPSBmaWVsZF9vcmRlciAtIDEKICAgICAgICAgICBXSEVSRSBjYXRlZ29yeV9pZCA9ID8gQU5EIGZpZWxkX29yZGVyID4gPyc7CiRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGNhdGlkLCRyb3dbJ2ZpZWxkX29yZGVyJ10pKTsKCi8vIFJlZGlyZWN0CiR0aGlzLT5SZWRpcmVjdCgkaWQsJ2VkaXRjYXRlZ29yeWZpZWxkcycsJHJldHVybmlkLAoJCWFycmF5KCdjYXRpZCc9PiRjYXRpZCkpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.deletefielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdmaWVsZGRlZnMnKTsKCiRmZGlkID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydmZGlkJ10pKQp7CgkkZmRpZCA9ICRwYXJhbXNbJ2ZkaWQnXTsKfQoKLy8gR2V0IHRoZSBjYXRlZ29yeSBkZXRhaWxzCiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFdIRVJFIGlkID0gPyc7CiRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRmZGlkKSk7CgovL05vdyByZW1vdmUgdGhlIGNhdGVnb3J5CiRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBXSEVSRSBpZCA9ID8iOwokZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkZmRpZCkpOwoKLy9BbmQgcmVtb3ZlIGl0IGZyb20gYW55IGVudHJpZXMKJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIFdIRVJFIGZpZWxkZGVmX2lkID0gPyI7CiRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRmZGlkKSk7CgokZGItPkV4ZWN1dGUoJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBTRVQgaXRlbV9vcmRlciA9IChpdGVtX29yZGVyIC0gMSkgV0hFUkUgaXRlbV9vcmRlciA+ID8nLCBhcnJheSgkcm93WydpdGVtX29yZGVyJ10pKTsKCiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.deleteproduct.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYigncHJvZHVjdHMnKTsKCiRjb21waWQgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2NvbXBpZCddKSkKewoJJGNvbXBpZCA9ICRwYXJhbXNbJ2NvbXBpZCddOwp9CgokdGhpcy0+RGVsZXRlUHJvZHVjdCgkY29tcGlkKTsKCiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.details.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgokdGhldGVtcGxhdGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX0RGTFRERVRBSUxfVEVNUExBVEUpOwokdGhldGVtcGxhdGUgPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2RldGFpbHRlbXBsYXRlJywkdGhldGVtcGxhdGUpOwoKJGNhY2hlX2lkID0gJ3xwZCcubWQ1KHNlcmlhbGl6ZSgkcGFyYW1zKSk7CiRjb21waWxlX2lkID0gJyc7CiR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJHRoZXRlbXBsYXRlLCdkZXRhaWxfJywkY2FjaGVfaWQsJGNvbXBpbGVfaWQpOwppZiggISR0cGwtPmlzQ2FjaGVkKCkgKSB7CiAgICAkcXVlcnkgPSBuZXcgcHJvZHVjdHNfcXVlcnk7CiAgICBpZiggaXNzZXQoJHBhcmFtc1sncHJvZHVjdGlkJ10pICkgewogICAgICAgICRxdWVyeVsncHJvZHVjdGlkJ10gPSAkcGFyYW1zWydwcm9kdWN0aWQnXTsKICAgIH0KICAgIGVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ2FsaWFzJ10pICkgewogICAgICAgICRxdWVyeVsnYWxpYXMnXSA9ICRwYXJhbXNbJ2FsaWFzJ107CiAgICB9CiAgICAkcnMgPSAkcXVlcnktPmV4ZWN1dGUoKTsKICAgICRycy0+Y3VycGFnZSA9ICRyZXR1cm5pZDsKICAgIGlmKCAkcnMtPnRvdGFscm93cyA9PSAxICkgewogICAgICAgICRvbmVyb3cgPSAkcnMtPmdldF9wcm9kdWN0X2Zvcl9kaXNwbGF5KCk7CgogICAgICAgIGlmKCAkb25lcm93LT5oaWVyYXJjaHlfaWQgPiAwICkgJHNtYXJ0eS0+YXNzaWduKCdhY3RpdmVfaGllcmFyY2h5Jywkb25lcm93LT5oaWVyYXJjaHlfaWQpOwogICAgICAgICRzbWFydHktPmFzc2lnbignd2VpZ2h0X3VuaXRzJyxwcm9kdWN0X29wczo6Z2V0X3dlaWdodF91bml0cygpKTsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2N1cnJlbmN5X3N5bWJvbCcscHJvZHVjdF9vcHM6OmdldF9jdXJyZW5jeV9zeW1ib2woKSk7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdlbnRyeScsJG9uZXJvdyk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAvLyBwcm9kdWN0IG5vdCBmb3VuZCBmb3Igc29tZSByZWFzb24uCiAgICAgICAgJGFjdGlvbiA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwcm9kbm90Zm91bmQnLCdkb21zZycpOwogICAgICAgIHN3aXRjaCgkYWN0aW9uKSB7CiAgICAgICAgY2FzZSAnZG80MDQnOgogICAgICAgICAgICB0aHJvdyBuZXcgQ21zRXJyb3I0MDRFeGNlcHRpb24oJ3Byb2R1Y3Qgbm90IGZvdW5kJyk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdkbzMwMSc6CiAgICAgICAgICAgICRwYWdlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Byb2Rub3Rmb3VuZHBhZ2UnLC0xKTsKICAgICAgICAgICAgaWYoICRwYWdlICE9ICcnICYmICRwYWdlICE9IC0xICkgewogICAgICAgICAgICAgICAgY2dlX3JlZGlyZWN0OjpyZWRpcmVjdDMwMSgkcGFnZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gZmFsbCB0aHJvdWdoIHRvIGRvbXNnCgogICAgICAgIGNhc2UgJ2RvbXNnJzoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAkbXNnID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Byb2Rub3Rmb3VuZG1zZycsICR0aGlzLT5MYW5nKCdlcnJvcl9wcm9kdWN0X25vdGZvdW5kJykpOwogICAgICAgICAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkbXNnKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KfQoKJHRwbC0+ZGlzcGxheSgpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.do_search.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKLy8KLy8gaW5pdGlhbGl6YXRpb24KLy8KJGZpZWxkcyA9IGFycmF5KCk7CnsKICAgIC8vIGdldCBhbGwgb2YgdGhlIGZpZWxkIGRlZmluaXRpb25zCiAgICAvLyBhbmQgZmlsdGVyIHRoZW0gZm9yIHRoZSBvbmVzIHRoYXQgd2UgY2FuIHNlYXJjaCBvbi4KICAgICR0bXAgPSBwcm9kdWN0X3V0aWxzOjpnZXRfZmllbGRkZWZzKCk7CiAgICBpZiggY291bnQoJHRtcCkgKSB7CiAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKSB7CiAgICAgICAgICAgICRvYmogPSAkdG1wWyRpXTsKICAgICAgICAgICAgaWYoIGluX2FycmF5KCRvYmotPnR5cGUsYXJyYXkoJ3RleHRib3gnLCdjaGVja2JveCcsJ3RleHRhcmVhJywnZHJvcGRvd24nKSkgKSB7CiAgICAgICAgICAgICAgICAkZmllbGRzWyRvYmotPm5hbWVdID0gJG9iajsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKJGRldGFpbHBhZ2UgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGV0YWlscGFnZScsJHJldHVybmlkKTsKJHRoZXRlbXBsYXRlID0gJ3N1bW1hcnlfJy4kdGhpcy0+R2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX0RGTFRTVU1NQVJZX1RFTVBMQVRFKTsKJGRlc3RwYWdlID0gJHJldHVybmlkOwokZW50cnlhcnJheSA9ICcnOwokbnBhZ2VzID0gMDsKJGlubGluZSA9IDA7CgoKLy8KLy8gaGFuZGxlIHBhcmFtcwovLwppZiggaXNzZXQoJHBhcmFtc1snY2RfY2FuY2VsJ10pICkgJHRoaXMtPlJlZGlyZWN0Q29udGVudCgkZGVzdHBhZ2UpOwppZiggaXNzZXQoJHBhcmFtc1snY2Rfc2VyJ10pICYmIGlzc2V0KCRwYXJhbXNbJ2NkX3NlcmNrJ10pICkgewogICAgJHNhbHQgPSBfX0RJUl9fOwogICAgaWYoIG1kNSgkc2FsdC4kcGFyYW1zWydjZF9zZXInXSkgPT0gJHBhcmFtc1snY2Rfc2VyY2snXSApIHsKICAgICAgICAkdG1wID0gdW5zZXJpYWxpemUoYmFzZTY0X2RlY29kZSgkcGFyYW1zWydjZF9zZXInXSkpOwogICAgICAgIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKICAgICAgICAgICAgdW5zZXQoJHBhcmFtc1snY2Rfc2VyJ10sJHBhcmFtc1snY2Rfc2VyY2snXSk7CiAgICAgICAgICAgICRwYXJhbXMgPSBhcnJheV9tZXJnZSgkdG1wLCRwYXJhbXMpOwogICAgICAgIH0KICAgIH0KfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ3N1bW1hcnl0ZW1wbGF0ZSddKSApICR0aGV0ZW1wbGF0ZSA9ICdzdW1tYXJ5XycuJHBhcmFtc1snc3VtbWFyeXRlbXBsYXRlJ107CmlmKCBpc3NldCgkcGFyYW1zWydjZF9ub3RwcmV0dHknXSkgKSB7CiAgICAkcGFyYW1zWydub3RwcmV0dHknXSA9ICRwYXJhbXNbJ2NkX25vdHByZXR0eSddOwogICAgdW5zZXQoJHBhcmFtc1snY2Rfbm90cHJldHR5J10pOwp9CmlmKCBpc3NldCgkcGFyYW1zWydjZF9kZXRhaWxwYWdlJ10pICkgewogICAgJHBhcmFtc1snZGV0YWlscGFnZSddID0gJHBhcmFtc1snY2RfZGV0YWlscGFnZSddOwogICAgdW5zZXQoJHBhcmFtc1snY2RfZGV0YWlscGFnZSddKTsKfQppZiggaXNzZXQoJHBhcmFtc1snY2RfcGFnZWxpbWl0J10pICkgewogICAgJHBhcmFtc1sncGFnZWxpbWl0J10gPSAkcGFyYW1zWydjZF9wYWdlbGltaXQnXTsKICAgIHVuc2V0KCRwYXJhbXNbJ2NkX3BhZ2VsaW1pdCddKTsKfQppZiggaXNzZXQoJHBhcmFtc1snY2Rfb3JpZ3BhZ2UnXSkgKSAkZGVzdHBhZ2UgPSAoaW50KSRwYXJhbXNbJ2NkX29yaWdwYWdlJ107CmlmKCBpc3NldCgkcGFyYW1zWydwYWdlbGltaXQnXSkgKSB7CiAgICAkcGFnZWxpbWl0ID0gKGludCkkcGFyYW1zWydwYWdlbGltaXQnXTsKICAgICRwYWdlbGltaXQgPSBtYXgoJHBhZ2VsaW1pdCwxKTsKICAgICRwYWdlbGltaXQgPSBtaW4oNTAwLCRwYWdlbGltaXQpOwp9CmlmKCBpc3NldCgkcGFyYW1zWydjZF9zb3J0YnknXSkgKSB7CiAgICAkcGFyYW1zWydzb3J0YnknXSA9ICRwYXJhbXNbJ2NkX3NvcnRieSddOwogICAgdW5zZXQoJHBhcmFtc1snY2Rfc29ydGJ5J10pOwp9CmlmKCBpc3NldCgkcGFyYW1zWydjZF9zb3J0b3JkZXInXSkgKSB7CiAgICAkcGFyYW1zWydzb3J0b3JkZXInXSA9ICRwYXJhbXNbJ2NkX3NvcnRvcmRlciddOwogICAgdW5zZXQoJHBhcmFtc1snY2Rfc29ydG9yZGVyJ10pOwp9CmlmKCBpc3NldCgkcGFyYW1zWydkZXRhaWxwYWdlJ10pICkgewogICAgJHN0ciA9IHRyaW0oJHBhcmFtc1snZGV0YWlscGFnZSddKTsKICAgIGlmKCAkc3RyICkgJHN0ciA9ICR0aGlzLT5yZXNvbHZlX2FsaWFzX29yX2lkKCRzdHIpOwogICAgaWYoICRzdHIgKSAkZGV0YWlscGFnZSA9ICRzdHI7Cn0KCi8vCi8vIGhhbmRsZSBmb3JtIHN1Ym1pc3Npb24KLy8KdHJ5IHsKICAgIC8vIHRha2UgdGhlIHBhcmFtcyBwYXNzZWQgZnJvbSB0aGUgdGFnLCBhbmQvb3IgZm9ybSwgb3IgZnJvbSBhIHBhZ2luYXRpb24gbGluayBhbmQgYnVpbGQgYSBxdWVyeSBvYmplY3QKICAgICRwcm9kdWN0c19xdWVyeSA9IG5ldyBwcm9kdWN0c19xdWVyeTsKICAgIGZvcmVhY2goICRwYXJhbXMgYXMgJGtleSA9PiAkdmFsdWUgKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgJHByb2R1Y3RzX3F1ZXJ5WyRrZXldID0gJHZhbHVlOwogICAgICAgIH0KICAgICAgICBjYXRjaCggRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAvLyBpZ25vcmUgdGhpcyBlcnJvci4KICAgICAgICB9CiAgICB9CgogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NkX3Byb2RuYW1lJ10pICYmICRwYXJhbXNbJ2NkX3Byb2RuYW1lJ10pICRwcm9kdWN0c19xdWVyeVsncHJvZHVjdG5hbWVsaWtlJ10gPSB0cmltKCRwYXJhbXNbJ2NkX3Byb2RuYW1lJ10pOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NkX3Byb2RkZXNjJ10pICYmICRwYXJhbXNbJ2NkX3Byb2RkZXNjJ10pICRwcm9kdWN0c19xdWVyeVsnZGVzY2xpa2UnXSA9IHRyaW0oJHBhcmFtc1snY2RfcHJvZGRlc2MnXSk7CiAgICBpZiggaXNzZXQoJHBhcmFtc1snY2RfYWxsYW55J10pICkgJHByb2R1Y3RzX3F1ZXJ5Wyd1c2VvciddID0gJHBhcmFtc1snY2RfYWxsYW55J107CgogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NkX3Byb2RwcmljZV9taW4nXSkgfHwgaXNzZXQoJHBhcmFtc1snY2RfcHJvZHByaWNlX21heCddKSApIHsKICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1snY2RfcHJvZHByaWNlX21pbiddKSApICRwcmljZV9taW4gPSAoZmxvYXQpdHJpbSgkcGFyYW1zWydjZF9wcm9kcHJpY2VfbWluJ10pOwogICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydjZF9wcm9kcHJpY2VfbWF4J10pICkgJHByaWNlX21heCA9IChmbG9hdCl0cmltKCRwYXJhbXNbJ2NkX3Byb2RwcmljZV9tYXgnXSk7CiAgICAgICAgJHByb2R1Y3RzX3F1ZXJ5WydwcmljZXJhbmdlJ10gPSAieyRwcmljZV9taW59OnskcHJpY2VfbWF4fSI7CiAgICB9CiAgICBlbHNlIGlmKCBpc3NldCgkcGFyYW1zWydjZF9wcm9kcHJpY2UnXSkgJiYgJHBhcmFtc1snY2RfcHJvZHByaWNlJ10gIT0gLTEgKSB7CiAgICAgICAgaWYoIHN0cnBvcygkcGFyYW1zWydjZF9wcm9kcHJpY2UnXSwnOicpICE9PSBGQUxTRSApIHsKICAgICAgICAgICAgbGlzdCgkbWluLCRtYXgpID0gZXhwbG9kZSgnOicsdHJpbSgkcGFyYW1zWydjZF9wcm9kcHJpY2UnXSksMik7CiAgICAgICAgICAgICRtaW4gPSB0cmltKCRtaW4pOwogICAgICAgICAgICAkbWF4ID0gdHJpbSgkbWF4KTsKICAgICAgICAgICAgaWYoICRtaW4gIT0gJycgJiYgJG1heCAhPSAnJyApIHsKICAgICAgICAgICAgICAgICRtaW4gPSBmbG9hdHZhbCgkbWluKTsKICAgICAgICAgICAgICAgICRtYXggPSBmbG9hdHZhbCgkbWF4KTsKICAgICAgICAgICAgICAgICRwcm9kdWN0c19xdWVyeVsncHJpY2VyYW5nZSddID0gInskbWlufTp7JG1heH0iOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYoICRtaW4gIT0gJycgKSB7CiAgICAgICAgICAgICAgICAkbWluID0gZmxvYXR2YWwoJG1pbik7CiAgICAgICAgICAgICAgICAkcHJvZHVjdHNfcXVlcnlbJ3ByaWNlcmFuZ2UnXSA9ICJ7JG1pbn06IjsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKCAkbWF4ICAhPSAnJyApIHsKICAgICAgICAgICAgICAgICRtYXggPSBmbG9hdHZhbCgkbWF4KTsKICAgICAgICAgICAgICAgICRwcm9kdWN0c19xdWVyeVsncHJpY2VyYW5nZSddID0gIjp7JG1heH0iOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGlmKCBpc3NldCgkcGFyYW1zWydjZF9wcm9kdmFsdWUnXSkgJiYgIWlzX2FycmF5KCRwYXJhbXNbJ2NkX3Byb2R2YWx1ZSddKSApICRwYXJhbXNbJ2NkX3Byb2R2YWx1ZSddID0gdW5zZXJpYWxpemUoJHBhcmFtc1snY2RfcHJvZHZhbHVlJ10pOwogICAgJHRmaWVsZHMgPSBhcnJheV9rZXlzKCRmaWVsZHMpOwogICAgZm9yZWFjaCggJHRmaWVsZHMgYXMgJG9uZSApIHsKICAgICAgICAkZmllbGRpZCA9ICRmaWVsZHNbJG9uZV0tPmlkOwogICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydjZF9wcm9kdmFsdWUnXVskb25lXSkgJiYgJHBhcmFtc1snY2RfcHJvZHZhbHVlJ11bJG9uZV0gIT0gJy0xJyAmJiAhZW1wdHkoJHBhcmFtc1snY2RfcHJvZHZhbHVlJ11bJG9uZV0pICkgewogICAgICAgICAgICAkcHJvZHVjdHNfcXVlcnktPmFkZF9maWVsZF9leHByKCRmaWVsZGlkLHRyaW0oJHBhcmFtc1snY2RfcHJvZHZhbHVlJ11bJG9uZV0pKTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQoKICAgICAgICAka2V5MSA9ICdjZF9wcm9kdmFsdWVfJy4kb25lLidfbWluJzsKICAgICAgICAka2V5MiA9ICdjZF9wcm9kdmFsdWVfJy4kb25lLidfbWF4JzsKICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1ska2V5MV0pIHx8IGlzc2V0KCRwYXJhbXNbJGtleTJdKSApIHsKICAgICAgICAgICAgJHRkYXRhID0gYXJyYXkoJ21pbic9PicnLCdtYXgnPT4nJyk7CiAgICAgICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWyRrZXkxXSkgKSAkdGRhdGFbJ21pbiddID0gKGZsb2F0KXRyaW0oJHBhcmFtc1ska2V5MV0pOwogICAgICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1ska2V5Ml0pICkgJHRkYXRhWydtYXgnXSA9IChmbG9hdCl0cmltKCRwYXJhbXNbJGtleTJdKTsKICAgICAgICAgICAgaWYoICR0ZGF0YVsnbWluJ10gJiYgJHRkYXRhWydtYXgnXSApIHsKICAgICAgICAgICAgICAgIGlmKCAkdGRhdGFbJ21pbiddID4gJHRkYXRhWydtYXgnXSApIHsKICAgICAgICAgICAgICAgICAgICAkdG1wID0gJHRkYXRhWydtYXgnXTsKICAgICAgICAgICAgICAgICAgICAkdGRhdGFbJ21heCddID0gJHRkYXRhWydtaW4nXTsKICAgICAgICAgICAgICAgICAgICAkdGRhdGFbJ21pbiddID0gJHRtcDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRwcm9kdWN0c19xdWVyeS0+YWRkX2ZpZWxkX2V4cHIoJGZpZWxkaWQsInskdGRhdGFbJ21pbiddfTp7JHRkYXRhWydtYXgnXX0iKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKCAkdGRhdGFbJ21pbiddICkgewogICAgICAgICAgICAgICAgJHByb2R1Y3RzX3F1ZXJ5LT5hZGRfZmllbGRfZXhwcigkZmllbGRpZCwieyR0ZGF0YVsnbWluJ119OiIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYoICR0ZGF0YVsnbWF4J10gKSB7CiAgICAgICAgICAgICAgICAkcHJvZHVjdHNfcXVlcnktPmFkZF9maWVsZF9leHByKCRpZWxkaWQsIjp7JHRkYXRhWydtaW4nXX0iKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAkcmVzdWx0cyA9ICRwcm9kdWN0c19xdWVyeS0+ZXhlY3V0ZSgpOwogICAgJHJlc3VsdHMtPmN1cnBhZ2UgPSAkcmV0dXJuaWQ7CiAgICBpZiggaXNzZXQoJHBhcmFtc1snbm90cHJldHR5J10pICkgJHJlc3VsdHMtPm5vdHByZXR0eSA9ICRwYXJhbXNbJ25vdHByZXR0eSddOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSkgKSAkcmVzdWx0cy0+ZGV0YWlscGFnZSA9ICRwYXJhbXNbJ2RldGFpbHBhZ2UnXTsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddKSApICRyZXN1bHRzLT5kZXRhaWx0ZW1wbGF0ZSA9ICRwYXJhbXNbJ2RldGFpbHRlbXBsYXRlJ107CiAgICAkZW50cnlhcnJheSA9IGFycmF5KCk7CiAgICB3aGlsZSggISRyZXN1bHRzLT5FT0YgKSB7CiAgICAgICAgJGVudHJ5YXJyYXlbXSA9ICRyZXN1bHRzLT5nZXRfcHJvZHVjdF9mb3JfZGlzcGxheSgpOwogICAgICAgICRyZXN1bHRzLT5Nb3ZlTmV4dCgpOwogICAgfQoKICAgICRzbWFydHktPmFzc2lnbignaXRlbXMnLCAkZW50cnlhcnJheSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2l0ZW1jb3VudCcsIGNvdW50KCRlbnRyeWFycmF5KSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3RvdGFsY291bnQnLCRyZXN1bHRzLT50b3RhbHJvd3MpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdwYWdlY291bnQnLCRyZXN1bHRzLT5udW1wYWdlcyk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2N1cnBhZ2UnLCRwcm9kdWN0c19xdWVyeVsncGFnZSddKTsKCiAgICAkc2VyID0gYmFzZTY0X2VuY29kZShzZXJpYWxpemUoJHBhcmFtcykpOwogICAgJHNlcmNrID0gbWQ1KF9fRElSX18uJHNlcik7CiAgICAkcGFybXMgPSBhcnJheSgnY2Rfc2VyJz0+JHNlciwnY2Rfc2VyY2snPT4kc2VyY2spOwoKICAgICRwYWdlID0gJHByb2R1Y3RzX3F1ZXJ5WydwYWdlJ107CiAgICBpZiggJHBhZ2UgPT0gMSApIHsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2ZpcnN0bGluaycsJHRoaXMtPkxhbmcoJ2ZpcnN0cGFnZScpKTsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ3ByZXZsaW5rJywkdGhpcy0+TGFuZygncHJldnBhZ2UnKSk7CiAgICB9IGVsc2UgewogICAgICAgICRwYXJtc1sncGFnZSddID0gMTsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2ZpcnN0bGluaycsJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkb19zZWFyY2gnLCRyZXR1cm5pZCwkdGhpcy0+TGFuZygnZmlyc3RwYWdlJyksJHBhcm1zKSk7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdmaXJzdHBhZ2VfdXJsJywkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2RvX3NlYXJjaCcsJHJldHVybmlkLCRwYXJtcykpOwoKICAgICAgICAkcGFybXNbJ3BhZ2UnXSA9ICRwYWdlIC0gMTsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ3ByZXZsaW5rJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RvX3NlYXJjaCcsJHJldHVybmlkLCR0aGlzLT5MYW5nKCdwcmV2cGFnZScpLCRwYXJtcykpOwogICAgICAgICRzbWFydHktPmFzc2lnbigncHJldnBhZ2VfdXJsJywkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2RvX3NlYXJjaCcsJHJldHVybmlkLCRwYXJtcykpOwogICAgfQoKICAgIGlmKCAkcGFnZSA9PSAkcmVzdWx0cy0+bnVtcGFnZXMgKSB7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdsYXN0bGluaycsJHRoaXMtPkxhbmcoJ2xhc3RwYWdlJykpOwogICAgICAgICRzbWFydHktPmFzc2lnbignbmV4dGxpbmsnLCR0aGlzLT5MYW5nKCduZXh0cGFnZScpKTsKICAgIH0gZWxzZSB7CiAgICAgICAgJHBhcm1zWydwYWdlJ10gPSAkcmVzdWx0cy0+bnVtcGFnZXM7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdsYXN0bGluaycsJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkb19zZWFyY2gnLCRyZXR1cm5pZCwkdGhpcy0+TGFuZygnbGFzdHBhZ2UnKSwkcGFybXMpKTsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2xhc3RwYWdlX3VybCcsJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCdkb19zZWFyY2gnLCRyZXR1cm5pZCwkcGFybXMpKTsKICAgICAgICAkcGFybXNbJ3BhZ2UnXSA9ICRwYWdlICsgMTsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ25leHRsaW5rJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RvX3NlYXJjaCcsJHJldHVybmlkLCR0aGlzLT5MYW5nKCduZXh0cGFnZScpLCRwYXJtcykpOwogICAgICAgICRzbWFydHktPmFzc2lnbignbmV4dHBhZ2VfdXJsJywkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2RvX3NlYXJjaCcsJHJldHVybmlkLCRwYXJtcykpOwogICAgfQoKICAgICRzbWFydHktPmFzc2lnbigncGFnZXRleHQnLCR0aGlzLT5MYW5nKCdwYWdlJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdvZnRleHQnLCR0aGlzLT5MYW5nKCdvZicpKTsKICAgICRzbWFydHktPmFzc2lnbignY3VycmVuY3lfc3ltYm9sJyxwcm9kdWN0X29wczo6Z2V0X2N1cnJlbmN5X3N5bWJvbCgpKTsKICAgICRzbWFydHktPmFzc2lnbignd2VpZ2h0X3VuaXRzJyxwcm9kdWN0X29wczo6Z2V0X3dlaWdodF91bml0cygpKTsKfQpjYXRjaCggRXhjZXB0aW9uICRlICkgewogICAgZGllKCdnb3QgZXhjZXB0aW9uOiAnLiRlLT5HZXRNZXNzYWdlKCkpOwp9CgovLwovLyBQcm9jZXNzIHRoZSB0ZW1wbGF0ZQovLwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHRoZXRlbXBsYXRlKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.editcategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFByb2R1Y3RzJykpIHJldHVybjsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2NhdGVnb3JpZXMnKTsKCgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKSAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKCiRjYXRpZCA9IFxjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnY2F0aWQnKTsKJG5hbWUgPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ25hbWUnKTsKJG9yaWduYW1lID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdvcmlnbmFtZScpOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkgewoJaWYgKCRuYW1lICE9ICcnKSB7CgkJJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMgU0VUIG5hbWUgPSA/LCBtb2RpZmllZF9kYXRlID0gJy4kZGItPkRCVGltZVN0YW1wKHRpbWUoKSkuJyBXSEVSRSBpZCA9ID8nOwoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRuYW1lLCAkY2F0aWQpKTsKCgkJJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKCX0KCWVsc2UgewoJCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ25vbmFtZWdpdmVuJykpOwoJfQp9CmVsc2UgewoJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yaWVzIFdIRVJFIGlkID0gPyc7Cgkkcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSgkY2F0aWQpKTsKCglpZiAoJHJvdykgewoJCSRuYW1lID0gJHJvd1snbmFtZSddOwoJCSRvcmlnbmFtZSA9ICRyb3dbJ25hbWUnXTsKCX0KfQoKI0Rpc3BsYXkgdGVtcGxhdGUKJHNtYXJ0eS0+YXNzaWduKCduYW1lJywkbmFtZSk7CiRzbWFydHktPmFzc2lnbignb3JpZ25hbWUnLCRuYW1lKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2VkaXRjYXRlZ29yeScsICRyZXR1cm5pZCkpOwokc21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCduYW1ldGV4dCcsICR0aGlzLT5MYW5nKCduYW1lJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0bmFtZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbmFtZScsICRuYW1lLCA4MCwgMjU1KSk7CiRzbWFydHktPmFzc2lnbignaGlkZGVuJywKCQkgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnY2F0aWQnLCAkY2F0aWQpLgoJCSAgICAgICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdvcmlnbmFtZScsICRvcmlnbmFtZSkpOwokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCBsYW5nKCdzdWJtaXQnKSkpOwokc21hcnR5LT5hc3NpZ24oJ2NhbmNlbCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdjYW5jZWwnLCBsYW5nKCdjYW5jZWwnKSkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0Y2F0ZWdvcnkudHBsJyk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.editcategoryfields.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYignY2F0ZWdvcmllcycpOwoKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSkKewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbmVlZHBlcm1pc3Npb24nLCBhcnJheSgnTW9kaWZ5IFByb2R1Y3RzJykpKTsKCXJldHVybjsKfQoKaWYoICFpc3NldCgkcGFyYW1zWydjYXRpZCddKSApCnsKICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nKSk7CiAgcmV0dXJuOwp9CiRjYXRpZCA9IChpbnQpJHBhcmFtc1snY2F0aWQnXTsKCi8vIEdldCB0aGUgaW5mbyBmb3IgdGhpcyBjYXRlZ29yeQokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMgV0hFUkUgaWQgPSA/JzsKJGNhdGVnb3J5ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LGFycmF5KCRjYXRpZCkpOwokc21hcnR5LT5hc3NpZ24oJ2NhdGVnb3J5JywkY2F0ZWdvcnkpOwokdGhlbWUgPSBjbXNfdXRpbHM6OmdldF90aGVtZV9vYmplY3QoKTsKCi8vIGdldCB0aGUgbGlzdCBvZiBmaWVsZHMgZm9yIHRoaXMgcHJvZHVjdAokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcwogICAgICAgICAgIFdIRVJFIGNhdGVnb3J5X2lkID0gPwogICAgICAgICAgIE9SREVSIEJZIGZpZWxkX29yZGVyIEFTQyc7CiRmaWVsZHMgPSAkZGItPkdldEFycmF5KCRxdWVyeSxhcnJheSgkY2F0aWQpKTsKJHRoZW1lID0gY21zX3V0aWxzOjpnZXRfdGhlbWVfb2JqZWN0KCk7CmZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRmaWVsZHMpOyAkaSsrICkgIHsKICAgIGlmKCAkZmllbGRzWyRpXVsnZmllbGRfb3JkZXInXSA+IDEgKXsKICAgICAgICAkZmllbGRzWyRpXVsnbW92ZV91cCddID0gJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ21vdmVjYXRlZ29yeWZpZWxkJywkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ21vdmVfdXAnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWNvbnMvc3lzdGVtL3NvcnRfdXAuZ2lmJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgnY2F0aWQnPT4kY2F0aWQsJ2Rpcic9Pid1cCcsJ2ZsZG5hbWUnPT4kZmllbGRzWyRpXVsnZmllbGRfbmFtZSddKSk7CiAgICB9CiAgICBpZiggJGkgPCBjb3VudCgkZmllbGRzKSAtIDEgKSB7CiAgICAgICAgJGZpZWxkc1skaV1bJ21vdmVfZG93biddID0gJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ21vdmVjYXRlZ29yeWZpZWxkJywkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ21vdmVfZG93bicpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ljb25zL3N5c3RlbS9zb3J0X2Rvd24uZ2lmJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5KCdjYXRpZCc9PiRjYXRpZCwnZGlyJz0+J2Rvd24nLCdmbGRuYW1lJz0+JGZpZWxkc1skaV1bJ2ZpZWxkX25hbWUnXSkpOwogICAgfQp9CiRzbWFydHktPmFzc2lnbignZmllbGRzJywkZmllbGRzKTsKCiRzbWFydHktPmFzc2lnbignYWRkbGluaycsICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkZGNhdGVnb3J5ZmllbGQnLCAkcmV0dXJuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vbmV3Zm9sZGVyLmdpZicsICR0aGlzLT5MYW5nKCdhZGRmaWVsZGRlZicpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJywnJywnc3lzdGVtaWNvbicpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgnY2F0aWQnPT4kY2F0aWQpLCAnJywgZmFsc2UsIGZhbHNlLCAnJykuJyAnLgogICAgICAgICAgICAgICAgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRkY2F0ZWdvcnlmaWVsZCcsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2FkZGZpZWxkZGVmJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgnY2F0aWQnPT4kY2F0aWQpLCAnJywgZmFsc2UsIGZhbHNlLCAnY2xhc3M9InBhZ2VvcHRpb25zIicpKTsKCiRzbWFydHktPmFzc2lnbigncmV0dXJuX2xpbmsnLAogICAgICAgICAgICAgICAgJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+TGFuZygncmV0dXJuJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpY29ucy9zeXN0ZW0vYmFjay5naWYnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgnY2dfYWN0aXZldGFiJz0+J2NhdGVnb3JpZXMnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycsJycsZmFsc2UpKTsKCiMgRGlzcGxheSBUZW1wbGF0ZQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRjYXRlZ29yeWZpZWxkcy50cGwnKTsKCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.editfielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdmaWVsZGRlZnMnKTsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSkgcmV0dXJuOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSkgewogICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Cn0KCiRmZGlkID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydmZGlkJ10pKSB7CiAgJGZkaWQgPSAkcGFyYW1zWydmZGlkJ107Cn0KCiRuYW1lID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWyduYW1lJ10pKSB7CiAgJG5hbWUgPSAkcGFyYW1zWyduYW1lJ107Cn0KCiRwcm9tcHQgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ3Byb21wdCddKSkgewogICRwcm9tcHQgPSAkcGFyYW1zWydwcm9tcHQnXTsKfQoKJG9wdGlvbnMgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ29wdGlvbnMnXSkpIHsKICAkb3B0aW9ucyA9ICRwYXJhbXNbJ29wdGlvbnMnXTsKfQoKJHR5cGUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ3R5cGUnXSkpIHsKICAkdHlwZSA9ICRwYXJhbXNbJ3R5cGUnXTsKfQoKJG1heF9sZW5ndGggPSAyNTU7CmlmIChpc3NldCgkcGFyYW1zWydtYXhfbGVuZ3RoJ10pKSB7CiAgJG1heF9sZW5ndGggPSAoaW50KSRwYXJhbXNbJ21heF9sZW5ndGgnXTsKfQoKJG9yaWduYW1lID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydvcmlnbmFtZSddKSkgewogICRvcmlnbmFtZSA9ICRwYXJhbXNbJ29yaWduYW1lJ107Cn0KCiRwdWJsaWMgPSAwOwppZiggaXNzZXQoJHBhcmFtc1sncHVibGljJ10pICkgewogICRwdWJsaWMgPSAoaW50KSRwYXJhbXNbJ3B1YmxpYyddOwp9CgppZiAoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pKSB7CiAgaWYoICR0eXBlID09ICcnICkgewogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3Jfbm9maWVsZHR5cGUnKSk7CiAgfQogIGVsc2UgaWYgKCRuYW1lID09ICcnKSB7CiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdub25hbWVnaXZlbicpKTsKICB9CiAgZWxzZSBpZiggISR0aGlzLT5pc19hbGlhcygkbmFtZSkgKSB7CiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkX25hbWUnKSk7CiAgfQogIGVsc2UgaWYoICFlbXB0eSgkbWF4bGVuZ3RoKSAmJiAhaXNfbnVtZXJpYygkbWF4X2xlbmd0aCkgKSB7CiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdub3RhbnVtYmVyJykpOwogIH0KICBlbHNlIGlmKCAkdHlwZSA9PSAnc3Vic2NyaXB0aW9uJyAmJiAkZGItPkdldE9uZSgnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMgV0hFUkUgdHlwZSA9ID8nLGFycmF5KCR0eXBlKSkgKSB7CiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9vbmVzdWJzY3JpcHRpb25maWVsZCcpKTsKICB9CiAgZWxzZSBpZiggJHR5cGUgPT0gJ3F1YW50aXR5JyAmJiAkZmRpZCA9PSAnJyAmJgoJICAgJGRiLT5HZXRPbmUoJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFdIRVJFIHR5cGUgPSA/JyxhcnJheSgkdHlwZSkpICkgewogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3Jfb25lcXVhbnRpdHlmaWVsZCcpKTsKICB9CiAgZWxzZSBpZiggJHR5cGUgPT0gJ3F1YW50aXR5JyAmJiAkZmRpZCAhPSAnJyAmJgoJICAgJGRiLT5HZXRPbmUoJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFdIRVJFIHR5cGUgPSA/IEFORCBpZCAhPSA/JyxhcnJheSgkdHlwZSwoaW50KSRmZGlkKSkgKSB7CiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9vbmVxdWFudGl0eWZpZWxkJykpOwogIH0KICBlbHNlIHsKICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMgU0VUIG5hbWUgPSA/LCBwcm9tcHQgPSA/LCB0eXBlID0gPywgbWF4X2xlbmd0aCA9ID8sIG1vZGlmaWVkX2RhdGUgPSAnLiRkYi0+REJUaW1lU3RhbXAodGltZSgpKS4nLCBwdWJsaWMgPSA/LCBvcHRpb25zID0gPyBXSEVSRSBpZCA9ID8nOwogICAgJHJlcyA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRuYW1lLCAkcHJvbXB0LCAkdHlwZSwgJG1heF9sZW5ndGgsICRwdWJsaWMsICRvcHRpb25zLCAkZmRpZCkpOwoKICAgIGlmKCAhJHJlcyApIGRpZSggJGRiLT5FcnJvck1zZygpICk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogIH0KfQplbHNlCnsKICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBXSEVSRSBpZCA9ID8nOwogICRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRmZGlkKSk7CgogIGlmICgkcm93KQogICAgewogICAgICAkbmFtZSA9ICRyb3dbJ25hbWUnXTsKICAgICAgJHByb21wdCA9ICRyb3dbJ3Byb21wdCddOwogICAgICAkdHlwZSA9ICRyb3dbJ3R5cGUnXTsKICAgICAgJG1heF9sZW5ndGggPSAkcm93WydtYXhfbGVuZ3RoJ107CiAgICAgICRvcmlnbmFtZSA9ICRyb3dbJ25hbWUnXTsKICAgICAgJHB1YmxpYyA9ICRyb3dbJ3B1YmxpYyddOwogICAgICAkb3B0aW9ucyA9ICRyb3dbJ29wdGlvbnMnXTsKICAgIH0KIH0KCiNEaXNwbGF5IHRlbXBsYXRlCiRzbWFydHktPmFzc2lnbignb3B0aW9ucycsJG9wdGlvbnMpOwokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsICR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsICdlZGl0ZmllbGRkZWYnLCAkcmV0dXJuaWQpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRuYW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICduYW1lJywgJG5hbWUsIDIwLCAyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHByb21wdCcsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ3Byb21wdCcsJHByb21wdCw1MCwyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCdzaG93aW5wdXR0eXBlJywgZmFsc2UpOwokc21hcnR5LT5hc3NpZ24oJ3R5cGUnLCR0eXBlKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHR5cGUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAndHlwZScsICR0eXBlKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRtYXhsZW5ndGgnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ21heF9sZW5ndGgnLCAkbWF4X2xlbmd0aCwgMjAsIDI1NSkpOwokc21hcnR5LT5hc3NpZ24oJ3VzZXJ2aWV3dGV4dCcsJHRoaXMtPkxhbmcoJ3B1YmxpYycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF91c2VydmlldycsCgkJJHRoaXMtPkNyZWF0ZUlucHV0Y2hlY2tib3goJGlkLCAncHVibGljJywgMSwgJHB1YmxpYywKCQkJCQkgICAndGl0bGU9IicuJHRoaXMtPkxhbmcoJ2luZm9fcHVibGljZmllbGQnKS4nIicpKTsKCiRzbWFydHktPmFzc2lnbignaGlkZGVuJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmRpZCcsICRmZGlkKS4KCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnb3JpZ25hbWUnLCAkb3JpZ25hbWUpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0ZmllbGRkZWYudHBsJyk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.editproduct.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYigncHJvZHVjdHMnKTsKCi8vCi8vIEEgdXRpbGl0eSBmdW5jdGlvbgovLwpmdW5jdGlvbiBnZXRfZmllbGRfZGVmKCYkZmllbGRkZWZzLCRpZCkgewogIGZvcmVhY2goICRmaWVsZGRlZnMgYXMgJG9uZWRlZiApIHsKICAgIGlmKCAkb25lZGVmLT5pZCA9PSAkaWQgKSByZXR1cm4gJG9uZWRlZjsKICB9CiAgcmV0dXJuIGZhbHNlOwp9CgpmdW5jdGlvbiBwcm9kdWN0c19kZWxldGVfdXBsb2FkZWRfZmlsZSgkZGlyLCRmaWxlbmFtZSkKewogIGlmKCBlbXB0eSgkZmlsZW5hbWUpICkgcmV0dXJuOwoKICAkZmlsZW5hbWUgPSBiYXNlbmFtZSgkZmlsZW5hbWUpOwogIEB1bmxpbmsoY21zX2pvaW5fcGF0aCgkZGlyLCRmaWxlbmFtZSkpOwogIEB1bmxpbmsoY21zX2pvaW5fcGF0aCgkZGlyLCd0aHVtYl8nLiRmaWxlbmFtZSkpOwogIEB1bmxpbmsoY21zX2pvaW5fcGF0aCgkZGlyLCdwcmV2aWV3XycuJGZpbGVuYW1lKSk7Cn0KCmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFByb2R1Y3RzJykpIHsKICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCduZWVkcGVybWlzc2lvbicsIGFycmF5KCdNb2RpZnkgUHJvZHVjdHMnKSkpOwogIHJldHVybjsKfQoKaWYgKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSkgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKCiRjb21waWQgPSBcY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2NvbXBpZCcpOwokcHJvZHVjdF9uYW1lID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdwcm9kdWN0X25hbWUnKTsKJHByaWNlID0gXGNnZV9wYXJhbTo6Z2V0X2Zsb2F0KCRwYXJhbXMsJ3ByaWNlJyk7CiR3ZWlnaHQgPSBcY2dlX3BhcmFtOjpnZXRfZmxvYXQoJHBhcmFtcywnd2VpZ2h0Jyk7CiRza3UgPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ3NrdScpOwokYWxpYXMgPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2FsaWFzJyk7CiRkZXRhaWxzID0gXGNnZV9wYXJhbTo6Z2V0X2h0bWwoJHBhcmFtcywnZGV0YWlscycpOwokc3RhdHVzID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdzdGF0dXMnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X3N0YXR1cycsJ3B1Ymxpc2hlZCcpKTsKJHRheGFibGUgPSBcY2dlX3BhcmFtOjpnZXRfYm9vbCgkcGFyYW1zLCd0YXhhYmxlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF90YXhhYmxlJywxKSk7CiR1cmxzbHVnID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCd1cmxzbHVnJyk7CiRoaWVyYXJjaHlfcG9zID0gXGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdoaWVyYXJjaHknLC0xKTsKJG9yaWduYW1lID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdvcmlnbmFtZScpOwoKJGZpZWxkYXJyYXkgPSBhcnJheSgpOwokdXNlcmlkID0gZ2V0X3VzZXJpZCgpOwokZmllbGRkZWZzID0gJHRoaXMtPkdldEZpZWxkRGVmc0ZvclByb2R1Y3QoJGNvbXBpZCx0cnVlKTsKCmlmIChpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpIHsKICAgICRlcnJvcnMgPSBhcnJheSgpOwogICAgdHJ5IHsKICAgICAgICAvLyBjaGVjayBwcm9kdWN0IG5hbWUKICAgICAgICBpZiggZW1wdHkoJHByb2R1Y3RfbmFtZSkgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ25vbmFtZWdpdmVuJykpOwogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzIFdIRVJFIHByb2R1Y3RfbmFtZSA9ID8gQU5EIGlkICE9ID8nOwogICAgICAgIGlmKCAoaW50KSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHByb2R1Y3RfbmFtZSwkY29tcGlkKSkgKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBcUnVudGltZWV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyX3Byb2R1Y3RfbmFtZXVzZWQnKSk7CiAgICAgICAgfQoKICAgICAgICAvLyBoYW5kbGUgYW4gZW1wdHkgYWxpYXMKICAgICAgICBpZiggZW1wdHkoJGFsaWFzKSApIHsKICAgICAgICAgICAgJGFsaWFzID0gcHJvZHVjdF9vcHM6OmdlbmVyYXRlX2FsaWFzKCRwcm9kdWN0X25hbWUpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJGFsaWFzID0gbXVuZ2Vfc3RyaW5nX3RvX3VybCgkYWxpYXMpOwogICAgICAgIH0KCiAgICAgICAgLy8gY2hlY2sgZm9yIGR1cGxpY2F0ZSBhbGlhcwogICAgICAgIGlmKCBwcm9kdWN0X29wczo6Y2hlY2tfYWxpYXNfdXNlZCgkYWxpYXMsJGNvbXBpZCkgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX3Byb2R1Y3RfYWxpYXN1c2VkJykpOwoKICAgICAgICAvLyBjaGVjayBmb3IgZW1wdHkgc2t1CiAgICAgICAgaWYoIGVtcHR5KCRza3UpICYmICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdza3VyZXF1aXJlZCcsMCkgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycl9za3VfcmVxdWlyZWQnKSk7CgogICAgICAgIC8vIGNoZWNrIGZvciBkdXBsaWNhdGUgc2t1CiAgICAgICAgaWYoICFlbXB0eSgkc2t1KSApIHsKICAgICAgICAgICAgaWYoIHByb2R1Y3Rfb3BzOjpjaGVja19za3VfdXNlZCgkc2t1LCRjb21waWQpICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9wcm9kdWN0X3NrdXVzZWQnKSk7CiAgICAgICAgfQoKICAgICAgICAvLyB1cGRhdGUgdGhlIG9yaWdpbmFsIHJlY29yZAogICAgICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cyBTRVQgcHJvZHVjdF9uYW1lID0gPywgcHJpY2UgPSA/LCBkZXRhaWxzID0gPywgbW9kaWZpZWRfZGF0ZSA9ICcuJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLicsdGF4YWJsZSA9ID8sIHN0YXR1cyA9ID8sCiAgICAgICAgICAgICAgICAgICAgICB3ZWlnaHQgPSA/LCBza3UgPSA/LCBhbGlhcyA9ID8sIHVybCA9ID8gV0hFUkUgaWQgPSA/JzsKICAgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcHJvZHVjdF9uYW1lLCAkcHJpY2UsICRkZXRhaWxzLCAgJHRheGFibGUsICRzdGF0dXMsICR3ZWlnaHQsICRza3UsICRhbGlhcywgJHVybHNsdWcsICRjb21waWQpKTsKCiAgICAgICAgLy8gVXBkYXRlIHRoZSBoaWVyYXJjaHkgc3R1ZmYKICAgICAgICAkcXVlcnkgPSAnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdG9oaWVyIFdIRVJFIHByb2R1Y3RfaWQgPSA/JzsKICAgICAgICAkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoICRjb21waWQgKSApOwogICAgICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hpZXIKICAgICAgICAgICAgICAocHJvZHVjdF9pZCxoaWVyYXJjaHlfaWQpIFZBTFVFUyAoPyw/KSc7CiAgICAgICAgJGRiLT5FeGVjdXRlKCAkcXVlcnksIGFycmF5KCAkY29tcGlkLCAkaGllcmFyY2h5X3BvcyApICk7CgogICAgICAgIC8vIFVwZGF0ZSBjdXN0b20gZmllbGRzCiAgICAgICAgJGRlbGV0ZWRfaXRlbXMgPSBhcnJheSgpOwogICAgICAgICRkYi0+RXhlY3V0ZSgnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgV0hFUkUgcHJvZHVjdF9pZCA9ID8nLCBhcnJheSgkY29tcGlkKSk7CgogICAgICAgICRkZXN0ZGlyID0gcHJvZHVjdF91dGlsczo6Z2V0X3Byb2R1Y3RfdXBsb2FkX3BhdGgoJGNvbXBpZCk7CgogICAgICAgIGlmIChpc3NldCgkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddKSkgewogICAgICAgICAgICBmb3JlYWNoICgkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddIGFzICRrPT4kdikgewogICAgICAgICAgICAgICAgLy8gaGFuZGxlIGZpbGUgZGVsZXRpb25zCiAgICAgICAgICAgICAgICBpZiAoc3RhcnRzd2l0aCgkaywgJ2RlbGV0ZWZpZWxkLScpKSB7CgogICAgICAgICAgICAgICAgICAgIC8vIGdldCB0aGUgZmllbGQgaW5kZXgKICAgICAgICAgICAgICAgICAgICAkZmlkID0gc3Vic3RyKCRrLCBzdHJsZW4oJ2RlbGV0ZWZpZWxkLScpKTsKCiAgICAgICAgICAgICAgICAgICAgLy8gZ2V0IHRoZSBmaWVsZCB0eXBlCiAgICAgICAgICAgICAgICAgICAgJGRlZiA9IGdldF9maWVsZF9kZWYoJGZpZWxkZGVmcywkZmlkKTsKICAgICAgICAgICAgICAgICAgICBpZiggIWlzc2V0KCRkZWYtPnZhbHVlKSApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIGlmKCAhJGRlZiApIGRpZSgnY291bGQgbm90IGdldCBmaWVsZCBkZWYgZm9yICcuJGZpZCk7CgogICAgICAgICAgICAgICAgICAgICRkZXN0ZGlyID0gcHJvZHVjdF91dGlsczo6Z2V0X3Byb2R1Y3RfdXBsb2FkX3BhdGgoJGNvbXBpZCk7CgogICAgICAgICAgICAgICAgICAgIHN3aXRjaCggJGRlZi0+dHlwZSApIHsKICAgICAgICAgICAgICAgICAgICBjYXNlICdmaWxlJzoKICAgICAgICAgICAgICAgICAgICBjYXNlICdpbWFnZSc6CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlbGV0ZSB0aGUgZmlsZQogICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0c19kZWxldGVfdXBsb2FkZWRfZmlsZSgkZGVzdGRpciwkZGVmLT52YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICRkZWxldGVkX2l0ZW1zW10gPSAkZmlkOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGZvcmVhY2ggKCRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ10gYXMgJGs9PiR2KSB7CiAgICAgICAgICAgICAgICAvLyBoYW5kbGUgbmV3IHZhbHVlcyAob3IgaGlkZGVuIHZhbHVlcykKICAgICAgICAgICAgICAgIGlmIChzdGFydHN3aXRoKCRrLCAnZmllbGQtJykpIHsgLy8gZWxzZQoKICAgICAgICAgICAgICAgICAgICAvLyBnZXQgdGhlIGZpZWxkIGluZGV4CiAgICAgICAgICAgICAgICAgICAgJGZpZCA9IHN1YnN0cigkaywgNik7CgogICAgICAgICAgICAgICAgICAgIGlmKCBpbl9hcnJheSgkZmlkLCRkZWxldGVkX2l0ZW1zKSApICR2ID0gbnVsbDsKCiAgICAgICAgICAgICAgICAgICAgLy8gZ2V0IHRoZSBmaWVsZCB0eXBlCiAgICAgICAgICAgICAgICAgICAgJGRlZiA9IGdldF9maWVsZF9kZWYoJGZpZWxkZGVmcywkZmlkKTsKICAgICAgICAgICAgICAgICAgICBpZiggISRkZWYgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRpZSgnY291bGQgbm90IGdldCBmaWVsZCBkZWYgZm9yICcuJGZpZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgLy8gaGFuZGxlIHRoZSB1cGxvYWQgKGlmIGFueSkKICAgICAgICAgICAgICAgICAgICBzd2l0Y2goICRkZWYtPnR5cGUgKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZmlsZSc6CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBpc3NldCgkZGVmLT52YWx1ZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdHIgPSAiZmllbGQtJGZpZCI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggaXNzZXQoJF9GSUxFU1skaWQuJ2N1c3RvbWZpZWxkJ11bJ25hbWUnXVskc3RyXSkgJiYgaXNzZXQoJF9GSUxFU1skaWQuJ2N1c3RvbWZpZWxkJ11bJ3NpemUnXVskc3RyXSkgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkX0ZJTEVTWyRpZC4nY3VzdG9tZmllbGQnXVsnc2l6ZSddWyRzdHJdID4gMCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0c19kZWxldGVfdXBsb2FkZWRfZmlsZSgkZGVzdGRpciwkZGVmLT52YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgJGRlc3RkaXIgPSBwcm9kdWN0X3V0aWxzOjpnZXRfcHJvZHVjdF91cGxvYWRfcGF0aCgkY29tcGlkKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2dlX2Rpcjo6bWtkaXJyKCRkZXN0ZGlyKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICFpc19kaXIoJGRlc3RkaXIpICkgZGllKCdkaXJlY3Rvcnkgc3RpbGwgZG9lcyBub3QgZXhpc3QnKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGhhbmRsZXIgPSBuZXcgY2dfZmlsZXVwbG9hZCgkaWQsJGRlc3RkaXIpOwogICAgICAgICAgICAgICAgICAgICAgICAkaGFuZGxlci0+c2V0X2FjY2VwdGVkX2ZpbGV0eXBlcygkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dlZF9maWxldHlwZXMnKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICRyZXMgPSAkaGFuZGxlci0+aGFuZGxlX3VwbG9hZCgnY3VzdG9tZmllbGQnLCcnLCdmaWVsZC0nLiRmaWQpOwogICAgICAgICAgICAgICAgICAgICAgICAkZXJyID0gJGhhbmRsZXItPmdldF9lcnJvcigpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiggISRyZXMgJiYgJGVyciAhPSBjZ19maWxldXBsb2FkOjpOT0ZJTEUgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXJyb3JzW10gPSBzcHJpbnRmKCIlcyAlczogJXMiLCR0aGlzLT5MYW5nKCdmaWVsZCcpLCRkZWYtPm5hbWUsICR0aGlzLT5HZXRVcGxvYWRFcnJvck1lc3NhZ2UoJGVycikpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoICEkcmVzICYmICFlbXB0eSgkdikgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoICEkcmVzICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHYgPSBudWxsOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHYgPSAkcmVzOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICBjYXNlICdpbWFnZSc6CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBpc3NldCgkZGVmLT52YWx1ZSkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3RyID0gImZpZWxkLSRmaWQiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIGlzc2V0KCRfRklMRVNbJGlkLidjdXN0b21maWVsZCddWyduYW1lJ11bJHN0cl0pICYmIGlzc2V0KCRfRklMRVNbJGlkLidjdXN0b21maWVsZCddWydzaXplJ11bJHN0cl0pICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJF9GSUxFU1skaWQuJ2N1c3RvbWZpZWxkJ11bJ3NpemUnXVskc3RyXSA+IDAgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdHNfZGVsZXRlX3VwbG9hZGVkX2ZpbGUoJGRlc3RkaXIsJGRlZi0+dmFsdWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICRhdHRyID0gJ2RlZmF1bHQnOyAvLyB1c2UgZGVmYXVsdCB2YWx1ZSBmb3Igd21sb2NhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICBpZiggaXNzZXQoJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGRfYXR0ciddKSAmJiBpc3NldCgkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZF9hdHRyJ11bJGtdKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhdHRyID0gJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGRfYXR0ciddWyRrXTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAkZGVzdGRpciA9IHByb2R1Y3RfdXRpbHM6OmdldF9wcm9kdWN0X3VwbG9hZF9wYXRoKCRjb21waWQpOwogICAgICAgICAgICAgICAgICAgICAgICAkcmVzID0gJHRoaXMtPkhhbmRsZVVwbG9hZGVkSW1hZ2UoJGlkLCdjdXN0b21maWVsZCcsJGRlc3RkaXIsJGVycm9ycywnZmllbGQtJy4kZmlkLCRhdHRyKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICRyZXMgPT09IEZBTFNFICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHYgPSBudWxsOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoICRyZXMgPT09IFRSVUUgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHYgPSAkcmVzOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICBjYXNlICdxdWFudGl0eSc6CiAgICAgICAgICAgICAgICAgICAgICAgICR2ID0gKGludCkkdjsKICAgICAgICAgICAgICAgICAgICAgICAgJHYgPSBtYXgoMCwkdik7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICBjYXNlICdzdWJzY3JpcHRpb24nOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2RpbWVuc2lvbnMnOgogICAgICAgICAgICAgICAgICAgICAgICBpZiggaXNfYXJyYXkoJHYpICkgJHYgPSBzZXJpYWxpemUoJHYpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICAgICAgY2FzZSAndGV4dGJveCc6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnY2hlY2tib3gnOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3RleHRhcmVhJzoKICAgICAgICAgICAgICAgICAgICBjYXNlICdkcm9wZG93bic6CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICBjYXNlICdjb21wYW55ZGlyJzoKICAgICAgICAgICAgICAgICAgICAgICAgJHYgPSAoaW50KSR2OwogICAgICAgICAgICAgICAgICAgICAgICBpZiggJHYgPCAxICkgJHYgPSBudWxsOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgZGllKCJ1bmtub3duIHR5cGU6ICIuJGRlZi0+dHlwZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYoICFpc19udWxsKCR2KSAmJiAkdiAhPT0gJycgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbW1pdCBpdCBpZiB0aGVyZSBpcyBhIHZhbGlkIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyAocHJvZHVjdF9pZCwgZmllbGRkZWZfaWQsIHZhbHVlLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSkgVkFMVUVTICg/LD8sPyw/LD8pJzsKICAgICAgICAgICAgICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGNvbXBpZCwgJGZpZCwgJHYsIHRyaW0oJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLCAiJyIpLCB0cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSwgIiciKSkpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gVXBkYXRlIGNhdGVnb3JpZXMKICAgICAgICAkZGItPkV4ZWN1dGUoJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzIFdIRVJFIHByb2R1Y3RfaWQgPSA/JywgYXJyYXkoJGNvbXBpZCkpOwogICAgICAgIGlmIChpc3NldCgkcGFyYW1zWydjYXRlZ29yaWVzJ10pKSB7CiAgICAgICAgICAgIGZvcmVhY2ggKCRwYXJhbXNbJ2NhdGVnb3JpZXMnXSBhcyAkdikgewogICAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzIChwcm9kdWN0X2lkLCBjYXRlZ29yeV9pZCwgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUpIFZBTFVFUyAoPyw/LD8sPyknOwogICAgICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGNvbXBpZCwgJHYsIHRyaW0oJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLCAiJyIpLCB0cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSwgIiciKSkpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvL1VwZGF0ZSBzZWFyY2ggaW5kZXgKICAgICAgICAkbW9kdWxlID0gY21zX3V0aWxzOjpnZXRfc2VhcmNoX21vZHVsZSgpOwogICAgICAgIGlmICgkbW9kdWxlICE9IEZBTFNFKSB7CiAgICAgICAgICAgICRtb2R1bGUtPkRlbGV0ZVdvcmRzKCR0aGlzLT5HZXROYW1lKCksICRjb21waWQsICdwcm9kdWN0Jyk7CiAgICAgICAgICAgIGlmKCAkc3RhdHVzID09ICdwdWJsaXNoZWQnICkgewogICAgICAgICAgICAgICAgJG1vZHVsZS0+QWRkV29yZHMoJHRoaXMtPkdldE5hbWUoKSwgJGNvbXBpZCwgJ3Byb2R1Y3QnLCBpbXBsb2RlKCcgJywgJHRoaXMtPkdldFNlYXJjaGFibGVUZXh0KCRjb21waWQpICkgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYoIGNvdW50KCRlcnJvcnMpICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdpbmZvX2ZpZWxkcHJvYmxlbXMnKSk7CgogICAgICAgIC8vIGFsbCBkb25lLgogICAgICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgICB9CiAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAvLyBoYW5kbGUgZXJyb3JzLgogICAgICAgIGlmKCBjb3VudCgkZXJyb3JzKSApIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJGVycm9ycyk7CiAgICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZS0+R2V0TWVzc2FnZSgpKTsKICAgIH0KfQplbHNlIHsKICAgIC8vIGxvYWQgdGhlIHByb2R1Y3QgZnJvbSB0aGUgZGF0YWJhc2UKICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgV0hFUkUgaWQgPSA/JzsKICAgICRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRjb21waWQpKTsKCiAgICBpZiAoJHJvdykgewogICAgICAgICRwcm9kdWN0X25hbWUgPSAkcm93Wydwcm9kdWN0X25hbWUnXTsKICAgICAgICAkcHJpY2UgPSAoZmxvYXQpJHJvd1sncHJpY2UnXTsKICAgICAgICAkd2VpZ2h0ID0gKGZsb2F0KSRyb3dbJ3dlaWdodCddOwogICAgICAgICRza3UgPSAkcm93Wydza3UnXTsKICAgICAgICAkYWxpYXMgPSAkcm93WydhbGlhcyddOwogICAgICAgICRkZXRhaWxzID0gJHJvd1snZGV0YWlscyddOwogICAgICAgICRvcmlnbmFtZSA9ICRyb3dbJ3Byb2R1Y3RfbmFtZSddOwogICAgICAgICR0YXhhYmxlID0gJHJvd1sndGF4YWJsZSddOwogICAgICAgICRzdGF0dXMgPSAkcm93WydzdGF0dXMnXTsKICAgICAgICAkdXJsc2x1ZyA9ICRyb3dbJ3VybCddOwoKICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIGhpZXJhcmNoeV9pZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHRvaGllcgogICAgICAgICAgICAgIFdIRVJFIHByb2R1Y3RfaWQgPSA/JzsKICAgICAgICAkaGllcmFyY2h5X3BvcyA9ICRkYi0+R2V0T25lKCRxdWVyeSwgYXJyYXkoICRjb21waWQpICk7CiAgICB9Cn0KCiRmaWVsZGFycmF5ID0gYXJyYXkoKTsKaWYgKGNvdW50KCRmaWVsZGRlZnMpID4gMCkgewogICRzdWJzY3JpYmVfb3B0cyA9IGFycmF5KCk7CiAgJHN1YnNjcmliZV9vcHRzWy0xXSA9ICR0aGlzLT5MYW5nKCdub25lJyk7CiAgJHN1YnNjcmliZV9vcHRzWydtb250aGx5J10gPSAkdGhpcy0+TGFuZygnc3Vic2NyX21vbnRobHknKTsKICAkc3Vic2NyaWJlX29wdHNbJ3F1YXJ0ZXJseSddID0gJHRoaXMtPkxhbmcoJ3N1YnNjcl9xdWFydGVybHknKTsKICAkc3Vic2NyaWJlX29wdHNbJ3NlbWlhbnVhbGx5J10gPSAkdGhpcy0+TGFuZygnc3Vic2NyX3NlbWlhbnVhbGx5Jyk7CiAgJHN1YnNjcmliZV9vcHRzWyd5ZWFybHknXSA9ICR0aGlzLT5MYW5nKCdzdWJzY3JfeWVhcmx5Jyk7CiAgJHN1YnNjcmliZV9vcHRzID0gYXJyYXlfZmxpcCgkc3Vic2NyaWJlX29wdHMpOwoKICAkZXhwaXJlX29wdHMgPSBhcnJheSgpOwogICRleHBpcmVfb3B0c1skdGhpcy0+TGFuZygnbm9uZScpXSA9IC0xOwogICRleHBpcmVfb3B0c1skdGhpcy0+TGFuZygnZXhwaXJlX3NpeF9tb250aHMnKV0gPSAnNic7CiAgJGV4cGlyZV9vcHRzWyR0aGlzLT5MYW5nKCdleHBpcmVfb25lX3llYXInKV0gPSAnMTInOwogICRleHBpcmVfb3B0c1skdGhpcy0+TGFuZygnZXhwaXJlX3R3b195ZWFyJyldID0gJzI0JzsKCiAgJHdtb3B0cyA9IGFycmF5KCk7CiAgJHdtb3B0c1skdGhpcy0+TGFuZygnbm9uZScpXSA9ICdub25lJzsKICAkd21vcHRzWyR0aGlzLT5MYW5nKCdkZWZhdWx0JyldID0gJ2RlZmF1bHQnOwogICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2FsaWduX3VsJyldID0gJzAnOwogICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2FsaWduX3VjJyldID0gJzEnOwogICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2FsaWduX3VyJyldID0gJzInOwogICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2FsaWduX21sJyldID0gJzMnOwogICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2FsaWduX21jJyldID0gJzQnOwogICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2FsaWduX21yJyldID0gJzUnOwogICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2FsaWduX2xsJyldID0gJzYnOwogICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2FsaWduX2xjJyldID0gJzcnOwogICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2FsaWduX2xyJyldID0gJzgnOwoKICBmb3JlYWNoICgkZmllbGRkZWZzIGFzICRmaWVsZGRlZikgewogICAgJGZpZWxkID0gbmV3IHN0ZENsYXNzKCk7CgogICAgJHZhbHVlID0gJyc7CiAgICBpZiAoaXNzZXQoJGZpZWxkZGVmLT52YWx1ZSkpICR2YWx1ZSA9ICRmaWVsZGRlZi0+dmFsdWU7CgogICAgaWYgKGlzc2V0KCRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ11bJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZF0pKSB7CiAgICAgICR2YWx1ZSA9ICRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ11bJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZF07CiAgICB9CgogICAgJGZpZWxkLT5pZCA9ICRmaWVsZGRlZi0+aWQ7CiAgICAkZmllbGQtPm5hbWUgPSAkZmllbGRkZWYtPm5hbWU7CiAgICAkZmllbGQtPnR5cGUgPSAkZmllbGRkZWYtPnR5cGU7CiAgICBpZiggaXNzZXQoJGZpZWxkZGVmLT52YWx1ZSkgJiYgIWVtcHR5KCRmaWVsZGRlZi0+dmFsdWUpICkgJGZpZWxkLT52YWx1ZSA9ICRmaWVsZGRlZi0+dmFsdWU7CiAgICAkZmllbGQtPnByb21wdCA9ICRmaWVsZGRlZi0+cHJvbXB0OwogICAgc3dpdGNoICgkZmllbGRkZWYtPnR5cGUpIHsKICAgIGNhc2UgJ2RpbWVuc2lvbnMnOgogICAgICBpZiggIWlzX2FycmF5KCR2YWx1ZSkgKSAkdmFsdWUgPSBhcnJheSgnbGVuZ3RoJz0+MCwnd2lkdGgnPT4wLCdoZWlnaHQnPT4wKTsKICAgICAgJGZpZWxkLT5wcm9tcHQgLj0gJyZuYnNwOygnLnByb2R1Y3Rfb3BzOjpnZXRfbGVuZ3RoX3VuaXRzKCkuJyknOwogICAgICAkZmllbGQtPmlucHV0X2JveCA9CgkkdGhpcy0+TGFuZygnYWJicl9sZW5ndGgnKS4nOiZuYnNwJy4KCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ11bbGVuZ3RoXScsCgkJCSAgICAgICAkdmFsdWVbJ2xlbmd0aCddLDMsMykuCgkkdGhpcy0+TGFuZygnYWJicl93aWR0aCcpLic6Jm5ic3AnLgoJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXVt3aWR0aF0nLAoJCQkgICAgICAgJHZhbHVlWyd3aWR0aCddLDMsMykuCgkkdGhpcy0+TGFuZygnYWJicl9oZWlnaHQnKS4nOiZuYnNwJy4KCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ11baGVpZ2h0XScsCgkJCSAgICAgICAkdmFsdWVbJ2hlaWdodCddLDMsMyk7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ2NoZWNrYm94JzoKICAgICAgJGZpZWxkLT5pbnB1dF9ib3ggPQoJJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IicgLiAkaWQgLiAnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddJyAuICciIHZhbHVlPSJmYWxzZSIgLz4nIC4KCSR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsICd0cnVlJywgJHZhbHVlICk7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ3RleHRhcmVhJzoKICAgICAgJGZpZWxkLT5pbnB1dF9ib3ggPSAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEodHJ1ZSwgJGlkLCAkdmFsdWUsICdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nKTsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnZHJvcGRvd24nOgogICAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsCgkJCQkJCSAgICAgJGZpZWxkZGVmLT5vcHRpb25zLCAtMSwgJHZhbHVlICk7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ2ZpbGUnOgogICAgICAkZmllbGQtPmRlbGV0ZSA9ICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnY3VzdG9tZmllbGRbZGVsZXRlZmllbGQtJy4kZmllbGRkZWYtPmlkLiddJywKCQkJCQkJICAxLDApOwogICAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCcnLDUwKTsKICAgICAgJGZpZWxkLT5oaWRkZW4gPSAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCR2YWx1ZSk7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ2ltYWdlJzoKICAgICAgICBpZiAoJHZhbHVlKSB7CiAgICAgICAgICAgICRkZXN0ZGlyID0gcHJvZHVjdF91dGlsczo6Z2V0X3Byb2R1Y3RfdXBsb2FkX3BhdGgoJGNvbXBpZCk7CiAgICAgICAgICAgICR1cmwgPSBwcm9kdWN0X3V0aWxzOjpnZXRfcHJvZHVjdF91cGxvYWRfdXJsKCRjb21waWQpOwogICAgICAgICAgICAkZm4gPSBjbXNfam9pbl9wYXRoKCRkZXN0ZGlyLCd0aHVtYl8nLiR2YWx1ZSk7CiAgICAgICAgICAgIGlmKCBmaWxlX2V4aXN0cygkZm4pICkgJGZpZWxkLT5pbWFnZSA9ICJ7JHVybH0veyR2YWx1ZX0iOwogICAgICAgICAgICAkZm4gPSBjbXNfam9pbl9wYXRoKCRkZXN0ZGlyLCd0aHVtYl8nLiR2YWx1ZSk7CiAgICAgICAgICAgIGlmKCBmaWxlX2V4aXN0cygkZm4pICkgJGZpZWxkLT50aHVtYm5haWwgPSAieyR1cmx9L3RodW1iX3skdmFsdWV9IjsKICAgICAgICAgICAgJGZuID0gY21zX2pvaW5fcGF0aCgkZGVzdGRpciwncHJldmlld18nLiR2YWx1ZSk7CiAgICAgICAgICAgIGlmKCBmaWxlX2V4aXN0cygkZm4pICkgJGZpZWxkLT5wcmV2aWV3ID0gInskdXJsfS9wcmV2aWV3X3skdmFsdWV9IjsKICAgICAgICB9CiAgICAgICAgJGZpZWxkLT5kZWxldGUgPSAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ2N1c3RvbWZpZWxkW2RlbGV0ZWZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsICAxLDApOwogICAgICAgICRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkNyZWF0ZUZpbGVVcGxvYWRJbnB1dCgkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsJycsNTApOwogICAgICAgICRmaWVsZC0+aGlkZGVuID0gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddJywkdmFsdWUpOwogICAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ3N1YnNjcmlwdGlvbic6CiAgICAgIGlmKCAhaXNfYXJyYXkoJHZhbHVlKSApICR2YWx1ZSA9IGFycmF5KCdwYXlwZXJpb2QnPT4tMSwnZGVscGVyaW9kJz0+LTEsJ2V4cGlyZSc9PjEpOwogICAgICBpZiggIWlzc2V0KCR2YWx1ZVsncGF5cGVyaW9kJ10pICkgJHZhbHVlWydwYXlwZXJpb2QnXSA9IC0xOwogICAgICBpZiggIWlzc2V0KCR2YWx1ZVsnZGVscGVyaW9kJ10pICkgJHZhbHVlWydkZWxwZXJpb2QnXSA9IC0xOwogICAgICBpZiggIWlzc2V0KCR2YWx1ZVsnZXhwaXJlJ10pICkgJHZhbHVlWydleHBpcmUnXSA9IC0xOwogICAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5MYW5nKCdzdWJzY3JfcGF5cGVyaW9kJykuJzombmJzcDsnOwogICAgICAkZmllbGQtPmlucHV0X2JveCAuPSAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXVtwYXlwZXJpb2RdJywKCQkJCQkJICAgICAgJHN1YnNjcmliZV9vcHRzLCAtMSwgJHZhbHVlWydwYXlwZXJpb2QnXSk7CiAgICAgICRmaWVsZC0+aW5wdXRfYm94IC49ICc8YnIvPicuJHRoaXMtPkxhbmcoJ3N1YnNjcl9kZWxwZXJpb2QnKS4nOiZuYnNwOyc7CiAgICAgICRmaWVsZC0+aW5wdXRfYm94IC49ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddW2RlbHBlcmlvZF0nLAoJCQkJCQkgICAgICAkc3Vic2NyaWJlX29wdHMsIC0xLCAkdmFsdWVbJ2RlbHBlcmlvZCddKTsKICAgICAgJGZpZWxkLT5pbnB1dF9ib3ggLj0gJzxici8+Jy4kdGhpcy0+TGFuZygnc3Vic2NyX2V4cGlyeScpLic6Jm5ic3A7JzsKICAgICAgJGZpZWxkLT5pbnB1dF9ib3ggLj0gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ11bZXhwaXJlXScsCgkJCQkJCSAgICAgICRleHBpcmVfb3B0cywgLTEsICR2YWx1ZVsnZXhwaXJlJ10pOwogICAgICBicmVhazsKCiAgICBjYXNlICdxdWFudGl0eSc6CiAgICAgICRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCAkdmFsdWUsIDQsIDQpOwogICAgICBicmVhazsKCiAgICBjYXNlICdjb21wYW55ZGlyJzoKICAgICAgJGNkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDb21wYW55RGlyZWN0b3J5JywnMS4xOScpOwogICAgICBpZiggJGNkbW9kICkgewoJJGZpZWxkLT5pbnB1dF9ib3ggPSAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddJywkdmFsdWUsMTAsMTAsCgkJCQkJCSAgICJwbGFjZWhvbGRlcj1cInskdGhpcy0+TGFuZygnY2RfYXV0b2NvbXBsZXRlJyl9XCIgdGl0bGU9XCJ7JHRoaXMtPkxhbmcoJ3RpdGxlX2NkYXV0b2NvbXBsZXRlJyl9XCIiKTsKCSRmaWVsZC0+aW5wdXRfYm94ID0gJzxzcGFuIGNsYXNzPSJjZGF1dG9jb21wbGV0ZSI+Jy4kZmllbGQtPmlucHV0X2JveC4nPC9zcGFuPic7CiAgICAgIH0KICAgICAgYnJlYWs7CgogICAgY2FzZSAndGV4dGJveCc6CiAgICBkZWZhdWx0OgogICAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddJywgJHZhbHVlLCAzMCwgMjU1KTsKICAgICAgYnJlYWs7CiAgICB9CgogICAgJGZpZWxkYXJyYXlbXSA9ICRmaWVsZDsKICB9Cn0KCiRhbGxjYXRlZ29yaWVzID0gJHRoaXMtPkdldENhdGVnb3JpZXMoKTsKJGNhdGFycmF5ID0gYXJyYXkoKTsKaWYoIGlzX2FycmF5KCRhbGxjYXRlZ29yaWVzKSAmJiBjb3VudCgkYWxsY2F0ZWdvcmllcykgKSB7CiAgZm9yZWFjaCggJGFsbGNhdGVnb3JpZXMgYXMgJG9uZSApIHsKICAgICRjYXRhcnJheVskb25lLT5uYW1lXSA9ICRvbmUtPmlkOwogIH0KfQokc2VsY2F0ZWdvcmllcyA9ICR0aGlzLT5HZXRDYXRlZ29yaWVzRm9yUHJvZHVjdCgkY29tcGlkKTsKJHNlbGNhdGFycmF5ID0gYXJyYXkoKTsKaWYoIGlzX2FycmF5KCRzZWxjYXRlZ29yaWVzKSAmJiBjb3VudCgkc2VsY2F0ZWdvcmllcykgKSB7CiAgZm9yZWFjaCggJHNlbGNhdGVnb3JpZXMgYXMgJG9uZSApIHsKICAgIGlmKCAhJG9uZS0+dmFsdWUgKSBjb250aW51ZTsKICAgICRzZWxjYXRhcnJheVskb25lLT5uYW1lXSA9ICRvbmUtPmlkOwogIH0KfQoKI0Rpc3BsYXkgdGVtcGxhdGUKJHNtYXJ0eS0+YXNzaWduKCdwcm9kdWN0X25hbWUnLCRwcm9kdWN0X25hbWUpOwokc21hcnR5LT5hc3NpZ24oJ3ByaWNlJywkcHJpY2UpOwokc21hcnR5LT5hc3NpZ24oJ3dlaWdodCcsJHdlaWdodCk7CiRzbWFydHktPmFzc2lnbignc2t1Jywkc2t1KTsKJHNtYXJ0eS0+YXNzaWduKCd1cmxzbHVnJywkdXJsc2x1Zyk7CiRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdlZGl0cHJvZHVjdCcsICRyZXR1cm5pZCwgJ3Bvc3QnLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignY3VycmVuY3lfc3ltYm9sJyxwcm9kdWN0X29wczo6Z2V0X2N1cnJlbmN5X3N5bWJvbCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHByaWNlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdwcmljZScsIHNwcmludGYoIiUuMkYiLCRwcmljZSksIDEwLCAxMikpOwokc21hcnR5LT5hc3NpZ24oJ3dlaWdodHVuaXRzJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJvZHVjdHNfd2VpZ2h0dW5pdHMnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRhbGlhcycsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2FsaWFzJywkYWxpYXMsNDAsMjU1KSk7CiRzbWFydHktPmFzc2lnbignZGV0YWlsc3RleHQnLCAkdGhpcy0+TGFuZygnZGV0YWlscycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGRldGFpbHMnLCAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEodHJ1ZSwgJGlkLCAkZGV0YWlscywgJ2RldGFpbHMnLCAnJywgJycsICcnLCAnJywgJzgwJywgJzUnKSk7CgppZiggY291bnQoJGNhdGFycmF5KSA+IDAgKSB7CiAgICAkbiA9IGNvdW50KCRjYXRhcnJheSkvNDsKICAgICRuID0gbWluKCRuLDIwKTsKICAgICRuID0gbWF4KCRuLDUpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdhbGxfY2F0ZWdvcmllcycsYXJyYXlfZmxpcCgkY2F0YXJyYXkpKTsKICAgICRzbWFydHktPmFzc2lnbignc2VsX2NhdGVnb3JpZXMnLCRzZWxjYXRhcnJheSk7Cn0KJHNtYXJ0eS0+YXNzaWduKCd0YXhhYmxldGV4dCcsJHRoaXMtPkxhbmcoJ3RheGFibGUnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXR0YXhhYmxlJywJJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCd0YXhhYmxlJywxLCR0YXhhYmxlKSk7CgokaGllcmFyY2h5X2l0ZW1zID0gJHRoaXMtPkJ1aWxkSGllcmFyY2h5TGlzdCgpOwokc21hcnR5LT5hc3NpZ24oJ2hpZXJhcmNoeV9pdGVtcycsJGhpZXJhcmNoeV9pdGVtcyk7CiRzbWFydHktPmFzc2lnbignaGllcmFyY2h5X3BvcycsJGhpZXJhcmNoeV9wb3MpOwoKJHN0YXR1c2VzID0gYXJyYXkoJHRoaXMtPkxhbmcoJ3B1Ymxpc2hlZCcpPT4ncHVibGlzaGVkJywKCQkgICR0aGlzLT5MYW5nKCdkcmFmdCcpPT4nZHJhZnQnLAoJCSAgJHRoaXMtPkxhbmcoJ2Rpc2FibGVkJyk9PidkaXNhYmxlZCcpOwokc21hcnR5LT5hc3NpZ24oJ3N0YXR1c3RleHQnLCR0aGlzLT5MYW5nKCdzdGF0dXMnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRzdGF0dXMnLCAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ3N0YXR1cycsJHN0YXR1c2VzLC0xLCRzdGF0dXMpKTsKCiRzbWFydHktPmFzc2lnbignaWR0ZXh0JywkdGhpcy0+TGFuZygnaWQnKSk7CiRzbWFydHktPmFzc2lnbignY29tcGlkJywkY29tcGlkKTsKJHNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLAoJCSR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdjb21waWQnLCAkY29tcGlkKS4KCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnb3JpZ25hbWUnLCAkb3JpZ25hbWUpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjdXN0b21maWVsZHMnLCAkZmllbGRhcnJheSk7CiRzbWFydHktPmFzc2lnbignY3VzdG9tZmllbGRzY291bnQnLCBjb3VudCgkZmllbGRhcnJheSkpOwoKJHNtYXJ0eS0+YXNzaWduKCdzdGFydHRhYmhlYWRlcnMnLCR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKSk7CiRzbWFydHktPmFzc2lnbigndGFiaGVhZGVyX21haW4nLCR0aGlzLT5TZXRUYWJIZWFkZXIoJ21haW4nLCR0aGlzLT5MYW5nKCdwcm9kdWN0X2luZm8nKSkpOwokc21hcnR5LT5hc3NpZ24oJ3RhYmhlYWRlcl9maWVsZHMnLCR0aGlzLT5TZXRUYWJIZWFkZXIoJ2ZpZWxkcycsJHRoaXMtPkxhbmcoJ2ZpZWxkcycpKSk7CiRzbWFydHktPmFzc2lnbigndGFiaGVhZGVyX2FkdmFuY2VkJywkdGhpcy0+U2V0VGFiSGVhZGVyKCdhZHZhbmNlZCcsJHRoaXMtPkxhbmcoJ2FkdmFuY2VkJykpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmR0YWJoZWFkZXJzJywkdGhpcy0+RW5kVGFiSGVhZGVycygpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGFydHRhYmNvbnRlbnQnLCR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKSk7CiRzbWFydHktPmFzc2lnbigndGFiX21haW4nLCR0aGlzLT5TdGFydFRhYignbWFpbicpKTsKJHNtYXJ0eS0+YXNzaWduKCd0YWJfZmllbGRzJywkdGhpcy0+U3RhcnRUYWIoJ2ZpZWxkcycpKTsKJHNtYXJ0eS0+YXNzaWduKCd0YWJfYWR2YW5jZWQnLCR0aGlzLT5TdGFydFRhYignYWR2YW5jZWQnKSk7CiRzbWFydHktPmFzc2lnbignZW5kdGFiJywkdGhpcy0+RW5kVGFiKCkpOwokc21hcnR5LT5hc3NpZ24oJ2VuZHRhYmNvbnRlbnQnLCR0aGlzLT5FbmRUYWJDb250ZW50KCkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0cHJvZHVjdC50cGwnKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.exportcsv.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3Byb2R1Y3RzJyk7CmlmKCBpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkgKSAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKJGFsbGNhdHMgPSAnJzsKJGFsbGZpZWxkcyA9ICcnOwokb3BzID0gYXJyYXkoJ2V4cG9ydGRyYWZ0Jz0+MSwKICAgICAgICAgICAgICdleHBvcnRjYXRzJz0+MSwKICAgICAgICAgICAgICdleHBvcnRmaWVsZHMnPT4xLAogICAgICAgICAgICAgJ2V4cG9ydG9wdGlvbnMnPT4xLAogICAgICAgICAgICAgJ2V4cG9ydGRlbGltJz0+JywnKTsKCmZ1bmN0aW9uIHF1b3RlKCRzdHIpCnsKICAgIGlmKCAkc3RyICkgcmV0dXJuICciJy4kc3RyLiciJzsKfQoKZnVuY3Rpb24gdG9fZmxhdF9hcnJheSgkcHJvZHVjdCwkbWFwKQp7CiAgICAkb3V0ID0gYXJyYXkoKTsKICAgIGZvcmVhY2goICRtYXAgYXMgJGtleSApIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAnRkxBRyc6CiAgICAgICAgICAgICRvdXRbXSA9ICdQJzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnbmFtZSc6CiAgICAgICAgICAgICRvdXRbXSA9IHF1b3RlKCRwcm9kdWN0LT5wcm9kdWN0X25hbWUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdza3UnOgogICAgICAgICAgICAkb3V0W10gPSBxdW90ZSgkcHJvZHVjdC0+c2t1KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnZGV0YWlscyc6CiAgICAgICAgICAgICRvdXRbXSA9IHF1b3RlKCRwcm9kdWN0LT5kZXRhaWxzKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAncHJpY2UnOgogICAgICAgICAgICAkb3V0W10gPSAkcHJvZHVjdC0+cHJpY2U7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2NyZWF0ZV9kYXRlJzoKICAgICAgICAgICAgJG91dFtdID0gJHByb2R1Y3QtPmNyZWF0ZV9kYXRlOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdtb2RpZmllZF9kYXRlJzoKICAgICAgICAgICAgJG91dFtdID0gJHByb2R1Y3QtPm1vZGlmaWVkX2RhdGU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ3RheGFibGUnOgogICAgICAgICAgICAkb3V0W10gPSAkcHJvZHVjdC0+dGF4YWJsZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnc3RhdHVzJzoKICAgICAgICAgICAgJG91dFtdID0gcXVvdGUoJHByb2R1Y3QtPnN0YXR1cyk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ3dlaWdodCc6CiAgICAgICAgICAgICRvdXRbXSA9ICRwcm9kdWN0LT53ZWlnaHQ7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdISUVSJzoKICAgICAgICAgICAgJHZhbCA9ICcnOwogICAgICAgICAgICBpZiggJHByb2R1Y3QtPmhpZXJhcmNoeV9pZCApIHsKICAgICAgICAgICAgICAgICRoaWVyID0gaGllcmFyY2h5X29wczo6Z2V0X2hpZXJhcmNoeV9pbmZvKCRwcm9kdWN0LT5oaWVyYXJjaHlfaWQpOwogICAgICAgICAgICAgICAgaWYoIGlzX2FycmF5KCRoaWVyKSAmJiBjb3VudCgkaGllcikgKSB7CiAgICAgICAgICAgICAgICAgICAgJHZhbCA9IHN0cl9yZXBsYWNlKCd8JywnPj4nLCRoaWVyWydsb25nX25hbWUnXSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJG91dFtdID0gcXVvdGUoJHZhbCk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdPUFRJT05TJzoKICAgICAgICAgICAgLy8gU2V0OkF0dHI6YWRqLHNrdS0tCiAgICAgICAgICAgICR2YWwgPSAnJzsKICAgICAgICAgICAgaWYoIGlzc2V0KCRwcm9kdWN0LT5hdHRyaWJ1dGVzKSAmJiBjb3VudCgkcHJvZHVjdC0+YXR0cmlidXRlcykgKSB7CiAgICAgICAgICAgICAgICAkb3B0cyA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICBmb3JlYWNoKCAkcHJvZHVjdC0+YXR0cmlidXRlcyBhcyAkb3B0aW9uICkgewogICAgICAgICAgICAgICAgICAgICR0bXAgPSBhcnJheSgpOwogICAgICAgICAgICAgICAgICAgICR0bXBbXSA9IHF1b3RlKCRvcHRpb25bJ3RleHQnXSk7CiAgICAgICAgICAgICAgICAgICAgJHRtcFtdID0gJG9wdGlvblsnYWRqdXN0bWVudCddOwogICAgICAgICAgICAgICAgICAgICR0bXBbXSA9IHF1b3RlKCRvcHRpb25bJ3NrdSddKTsKICAgICAgICAgICAgICAgICAgICAkdG1wW10gPSAoaW50KSAkb3B0aW9uWydxb2gnXTsKICAgICAgICAgICAgICAgICAgICAkb3B0c1tdID0gaW1wbG9kZSgnOicsJHRtcCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkdmFsID0gaW1wbG9kZSgnLS0nLCRvcHRzKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkb3V0W10gPSAkdmFsOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJGtleSwnQ0FUOicpICkgewogICAgICAgICAgICAgICAgLy8gY2F0ZWdvcmllcyBhcmUgb25seSAxIG9yIDAKICAgICAgICAgICAgICAgICR2YWwgPSAwOwogICAgICAgICAgICAgICAgaWYoIGlzc2V0KCRwcm9kdWN0LT5jYXRlZ29yaWVzKSAmJiBjb3VudCgkcHJvZHVjdC0+Y2F0ZWdvcmllcykgKSB7CiAgICAgICAgICAgICAgICAgICAgJG5hbWUgPSBzdWJzdHIoJGtleSw0KTsKICAgICAgICAgICAgICAgICAgICBmb3JlYWNoKCAkcHJvZHVjdC0+Y2F0ZWdvcmllcyBhcyAkb25lICkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiggJG9uZS0+bmFtZSAhPSAkbmFtZSApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICAgICBpZiggJG9uZS0+dmFsdWUgPT0gMSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSAxOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkb3V0W10gPSAkdmFsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2VpZiggc3RhcnRzd2l0aCgka2V5LCdGSUVMRDonKSApIHsKICAgICAgICAgICAgICAgICR2YWwgPSAnJzsKICAgICAgICAgICAgICAgIGlmKCBpc3NldCgkcHJvZHVjdC0+ZmllbGRzKSAmJiBjb3VudCgkcHJvZHVjdC0+ZmllbGRzKSApIHsKICAgICAgICAgICAgICAgICAgICBsaXN0KCR0MCwkdDEsJG5hbWUpID0gZXhwbG9kZSgnOicsJGtleSwzKTsKICAgICAgICAgICAgICAgICAgICBpZiggaXNzZXQoJHByb2R1Y3QtPmZpZWxkc1skbmFtZV0pICYmIGlzX29iamVjdCgkcHJvZHVjdC0+ZmllbGRzWyRuYW1lXSkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRmbGQgPSAkcHJvZHVjdC0+ZmllbGRzWyRuYW1lXTsKICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoKCAkZmxkLT50eXBlICkgewogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdkaW1lbnNpb25zJzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSAnbDonLiRmbGQtPnZhbHVlWydsZW5ndGgnXS4nLHc6Jy4kZmxkLT52YWx1ZVsnd2lkdGgnXS4nLGg6Jy4kZmxkLT52YWx1ZVsnaGVpZ2h0J107CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnc3Vic2NyaXB0aW9uJzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSAnJzsgLy8gc3Vic2NyaXB0aW9uIGluZm8gbm90IG91dHB1dCxvciByZWFkLi4uIGZvciBub3cuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSAkZmxkLT52YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRvdXRbXSA9IHF1b3RlKCR2YWwpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuICRvdXQ7Cn0KCmlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKSB7CgogICAgc2V0X3RpbWVfbGltaXQoMCk7CiAgICAkaGFuZGxlcnMgPSBvYl9saXN0X2hhbmRsZXJzKCk7CiAgICBmb3IgKCRjbnQgPSAwOyAkY250IDwgc2l6ZW9mKCRoYW5kbGVycyk7ICRjbnQrKykgeyBvYl9lbmRfY2xlYW4oKTsgfQoKICAgIC8vVGhlbiBmb3JjZSB0aGUgb3V0cHV0IG5vcm1hbGx5IGFuZCBleGl0IHNvIHdlIGRvbid0IGdldCBhIGZvb3RlcgogICAgaGVhZGVyKCJDb250ZW50LWRpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1wcm9kdWN0cy4iIC4gZGF0ZSgiWS1tLWQiKSAuICIuY3N2Iik7CiAgICBoZWFkZXIoIkNvbnRlbnQtdHlwZTogdGV4dC9jc3YiKTsKICAgIGZsdXNoKCk7CgogICAgJG9wc1snZXhwb3J0Y2F0cyddID0gKGludCkkcGFyYW1zWydleHBvcnRjYXRzJ107CiAgICAkb3BzWydleHBvcnRkcmFmdCddID0gKGludCkkcGFyYW1zWydleHBvcnRkcmFmdCddOwogICAgJG9wc1snZXhwb3J0ZmllbGRzJ10gPSAoaW50KSRwYXJhbXNbJ2V4cG9ydGZpZWxkcyddOwogICAgJG9wc1snZXhwb3J0b3B0aW9ucyddID0gKGludCkkcGFyYW1zWydleHBvcnRvcHRpb25zJ107CiAgICAkb3BzWydleHBvcnRkZWxpbSddID0gdHJpbSgkcGFyYW1zWydleHBvcnRkZWxpbSddKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdleHBvcnRvcHRpb25zJyxzZXJpYWxpemUoJG9wcykpOwoKICAgIC8vIG5vdyBkbyB0aGUgZXhwb3J0LgogICAgaWYoICRvcHNbJ2V4cG9ydGNhdHMnXSApIHsKICAgICAgICAkYWxsY2F0cyA9IHByb2R1Y3RfdXRpbHM6OmdldF9jYXRlZ29yaWVzKCk7CiAgICAgICAgJG1hcCA9IGFycmF5KCdGTEFHJywnbmFtZScsJ3NrdScsJ2RldGFpbHMnLCdwcmljZScsJ2NyZWF0ZV9kYXRlJywnbW9kaWZpZWRfZGF0ZScsJ3RheGFibGUnLCdzdGF0dXMnLCd3ZWlnaHQnLCdISUVSJyk7CiAgICAgICAgaWYoIGlzX2FycmF5KCRhbGxjYXRzKSAmJiBjb3VudCgkYWxsY2F0cykgKSB7CiAgICAgICAgICAgIGZvcmVhY2goICRhbGxjYXRzIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICAkbWFwW10gPSAnQ0FUOicuJG9uZS0+bmFtZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBpZiggJG9wc1snZXhwb3J0ZmllbGRzJ10gKSB7CiAgICAgICAgJGFsbGZpZWxkcyA9IHByb2R1Y3RfdXRpbHM6OmdldF9maWVsZGRlZnMoVFJVRSxUUlVFKTsKICAgICAgICBpZiggaXNfYXJyYXkoJGFsbGZpZWxkcykgJiYgY291bnQoJGFsbGZpZWxkcykgKSB7CiAgICAgICAgICAgIGZvcmVhY2goICRhbGxmaWVsZHMgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICRtYXBbXSA9ICdGSUVMRDonLiRvbmUtPnR5cGUuJzonLiRvbmUtPm5hbWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgaWYoICRvcHNbJ2V4cG9ydG9wdGlvbnMnXSApICRtYXBbXSA9ICdPUFRJT05TJzsKCiAgICAkb3V0cHV0ID0gJyc7CiAgICB7CiAgICAgICAgJGhlYWRlciA9ICRtYXA7CiAgICAgICAgZm9yZWFjaCggJGhlYWRlciBhcyAmJG9uZSApIHsKICAgICAgICAgICAgJHBhcnRzID0gZXhwbG9kZSgnOicsJG9uZSk7CiAgICAgICAgICAgIGlmKCBjb3VudCgkcGFydHMpID4gMSApIHsKICAgICAgICAgICAgICAgICRsYXN0ID0gJHBhcnRzW2NvdW50KCRwYXJ0cyktMV07CiAgICAgICAgICAgICAgICBpZiggc3RycG9zKCRsYXN0LCRvcHNbJ2V4cG9ydGRlbGltJ10pICE9PSBGQUxTRSApIHsKICAgICAgICAgICAgICAgICAgICAkcGFydHNbY291bnQoJHBhcnRzKS0xXSA9IHF1b3RlKCRsYXN0KTsKICAgICAgICAgICAgICAgICAgICAkb25lID0gaW1wbG9kZSgnOicsJHBhcnRzKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAkb25lID0gJyMnLiRvbmU7CiAgICAgICAgfQogICAgICAgICRvdXRwdXQgLj0gaW1wbG9kZSgkb3BzWydleHBvcnRkZWxpbSddLCRoZWFkZXIpLiJcbiI7CiAgICB9CiAgICBlY2hvICRvdXRwdXQ7IGZsdXNoKCk7CgogICAgLy8gbm93IGdldCB0aGUgcHJvZHVjdHMuLi4KICAgICRxdWVyeSA9IG5ldyBwcm9kdWN0c19xdWVyeSgpOwogICAgJHF1ZXJ5WydwYWdlbGltaXQnXSA9IDEwMDAwMDA7CiAgICBpZiggJG9wc1snZXhwb3J0ZHJhZnQnXSApICRxdWVyeVsnc3RhdHVzJ10gPSAnIWRpc2FibGVkJzsKICAgICRyZXN1bHRzID0gbmV3IHByb2R1Y3RzX3Jlc3VsdHNldCgkcXVlcnkpOwoKICAgIHdoaWxlKCAhJHJlc3VsdHMtPkVPRiApIHsKICAgICAgICAkcHJvZHVjdCA9ICRyZXN1bHRzLT5nZXRfcHJvZHVjdCgpOyAvLyByZWFsbHkgZG9uJ3QgbmVlZCB0aGlzIGZvciBleHBvcnQsIGN1eiBsaW5rcyBhcmUgaXJyZWxldmFudAogICAgICAgICR0bXAgPSB0b19mbGF0X2FycmF5KCRwcm9kdWN0LCRtYXApOwogICAgICAgICRvdXRwdXQgPSBpbXBsb2RlKCRvcHNbJ2V4cG9ydGRlbGltJ10sJHRtcCkuIlxuIjsKICAgICAgICAkcmVzdWx0cy0+TW92ZU5leHQoKTsKICAgICAgICBlY2hvICRvdXRwdXQ7IGZsdXNoKCk7CiAgICB9CgogICAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnRXhwb3J0ZWQgcHJvZHVjdCBkYXRhIHRvIGNzdicpOwogICAgZXhpdCgpOwp9CgoKJHRtcCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdleHBvcnRvcHRpb25zJyk7CmlmKCAkdG1wICkgJG9wcyA9IHVuc2VyaWFsaXplKCR0bXApOwoKJHNtYXJ0eS0+YXNzaWduKCdvcHRpb25zJywkb3BzKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2V4cG9ydGNzdicpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdleHBvcnRjc3YudHBsJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.fieldlist.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHRoZXRlbXBsYXRlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ERkxUQ0FURUdPUllMSVNUX1RFTVBMQVRFKTsKJHRoZXRlbXBsYXRlID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdjYXRlZ29yeWxpc3R0ZW1wbGF0ZScsJHRoZXRlbXBsYXRlKTsKCiRjYWNoZV9pZCA9ICd8cGQnLm1kNShzZXJpYWxpemUoJHBhcmFtcykpOwokdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCR0aGV0ZW1wbGF0ZSwnY2F0ZWdvcnlsaXN0XycsJGNhY2hlX2lkKTsKaWYoICEkdHBsLT5pc0NhY2hlZCgpICkgewogICAgdHJ5IHsKICAgICAgICAkZmllbGRzID0gYXJyYXkoKTsKICAgICAgICB7CiAgICAgICAgICAgICR0bXAgPSBwcm9kdWN0X3V0aWxzOjpnZXRfZmllbGRkZWZzKCk7CiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkdG1wKSApIHsKICAgICAgICAgICAgICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0bXApOyAkaSsrICkgewogICAgICAgICAgICAgICAgICAgICRvYmogPSAkdG1wWyRpXTsKICAgICAgICAgICAgICAgICAgICAkZmllbGRzWyRvYmotPm5hbWVdID0gJG9iajsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkZmllbGRuYW1lID0gJyc7CiAgICAgICAgJHNob3dhbGwgPSAwOwoKICAgICAgICAkZGV0YWlscGFnZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZXRhaWxwYWdlJywtMSk7CiAgICAgICAgJGRldGFpbHBhZ2UgPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2RldGFpbHBhZ2UnLCRkZXRhaWxwYWdlKTsKCiAgICAgICAgaWYoICFlbXB0eSgkZGV0YWlscGFnZSkgJiYgJGRldGFpbHBhZ2UgIT0gLTEgKSAgewogICAgICAgICAgICAkbWFuYWdlciA9ICRnQ21zLT5HZXRIaWVyYXJjaHlNYW5hZ2VyKCk7CiAgICAgICAgICAgICRub2RlID0gJG1hbmFnZXItPnN1cmVHZXROb2RlQnlBbGlhcygkZGV0YWlscGFnZSk7CiAgICAgICAgICAgIGlmIChpc3NldCgkbm9kZSkpIHsKICAgICAgICAgICAgICAgICRjb250ZW50ID0gJG5vZGUtPkdldENvbnRlbnQoKTsKICAgICAgICAgICAgICAgIGlmIChpc3NldCgkY29udGVudCkpICRkZXRhaWxwYWdlID0gJGNvbnRlbnQtPklkKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkbm9kZSA9ICRtYW5hZ2VyLT5zdXJlR2V0Tm9kZUJ5SWQoJGRldGFpbHBhZ2UpOwogICAgICAgICAgICAgICAgaWYgKCFpc3NldCgkbm9kZSkpICRkZXRhaWxwYWdlID0gJyc7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYoIGVtcHR5KCRkZXRhaWxwYWdlKSB8fCAkZGV0YWlscGFnZSA9PSAtMSApICRkZXRhaWxwYWdlID0gJHJldHVybmlkOwoKICAgICAgICAkZmllbGRuYW1lID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdmaWVsZCcpOwogICAgICAgIGlmKCAhJGZpZWxkbmFtZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oImZpZWxkIGlzIGEgcmVxdWlyZWQgcGFyYW1ldGVyIik7CiAgICAgICAgaWYoICFpc3NldCgkZmllbGRzWyRmaWVsZG5hbWVdKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIGEgdmlzaWJsZSBjdXN0b20gZmllbGQgbmFtZWQgIi4kZmllbGRuYW1lKTsKICAgICAgICAkc2hvd2FsbCA9IFxjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnc2hvd2FsbCcpOwogICAgICAgICRmaWVsZCA9ICRmaWVsZHNbJGZpZWxkbmFtZV07CgogICAgICAgIC8vIG9raWUsIG5vdyBnb3R0YSBnZXQgdGhlIGRpc3RpbmN0IHZhbHVlcyBvdXQgb2YgdGhlIGRhdGFiYXNlCiAgICAgICAgLy8gZm9yIHRoaXMgZmllbGQuCiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBESVNUSU5DVCB2YWx1ZSBBUyBuYW1lLGNvdW50KHZhbHVlKSBhcyBjb3VudCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzCiAgICAgICAgICAgV0hFUkUgZmllbGRkZWZfaWQgPSA/IEdST1VQIEJZIHZhbHVlJzsKICAgICAgICAkdG1wID0gJGRiLT5HZXRBcnJheSgkcXVlcnksYXJyYXkoJGZpZWxkc1skZmllbGRuYW1lXS0+aWQpKTsKICAgICAgICBpZiggJHRtcCApIHsKICAgICAgICAgICAgJHRyZXN1bHRzID0gY2dlX2FycmF5Ojp0b19oYXNoKCR0bXAsJ25hbWUnKTsKICAgICAgICAgICAgZm9yZWFjaCggJHRyZXN1bHRzIGFzICRrZXkgPT4gJiRyb3cgKSB7CiAgICAgICAgICAgICAgICAkbnBhcmFtcyA9ICRwYXJhbXM7CiAgICAgICAgICAgICAgICB1bnNldCgkbnBhcmFtc1snZmllbGQnXSk7CiAgICAgICAgICAgICAgICAkbnBhcmFtc1snZmllbGRpZCddID0gJGZpZWxkLT5pZDsKICAgICAgICAgICAgICAgICRucGFyYW1zWydmaWVsZHZhbCddID0gJHJvd1snbmFtZSddOwogICAgICAgICAgICAgICAgJHJvd1snc3VtbWFyeV91cmwnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdkZWZhdWx0JywkZGV0YWlscGFnZSwkbnBhcmFtcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoICRzaG93YWxsICkgewogICAgICAgICAgICAgICAgaWYoICRmaWVsZC0+dHlwZSAhPSAnZHJvcGRvd24nICkgewogICAgICAgICAgICAgICAgICAgIC8vIGl0J3MgYW5vdGhlciBmaWVsZCB0eXBlLi4gcHJvbGx5IGEgdGV4dCBmaWVsZC4KICAgICAgICAgICAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIGNvdW50KEEuaWQpIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cyBBCiAgICAgICAgICAgICAgICAgICAgTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIEIKICAgICAgICAgICAgICAgICAgICAgIE9OIEEuaWQgPSBCLnByb2R1Y3RfaWQgQU5EIEIuZmllbGRkZWZfaWQgPSA/CiAgICAgICAgICAgICAgICAgICBXSEVSRSBCLnByb2R1Y3RfaWQgSVMgTlVMTCc7CiAgICAgICAgICAgICAgICAgICAgJHRyb3cgPSBhcnJheSgpOwogICAgICAgICAgICAgICAgICAgICR0cm93Wydjb3VudCddID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRmaWVsZC0+aWQpKTsKICAgICAgICAgICAgICAgICAgICAkdHJvd1snbmFtZSddID0gJHRoaXMtPkxhbmcoJ3VuZGVmaW5lZF9maWVsZF92YWx1ZScpOwoKICAgICAgICAgICAgICAgICAgICAkbnBhcmFtcyA9ICRwYXJhbXM7CiAgICAgICAgICAgICAgICAgICAgdW5zZXQoJG5wYXJhbXNbJ2ZpZWxkJ10pOwogICAgICAgICAgICAgICAgICAgICRucGFyYW1zWydmaWVsZGlkJ10gPSAkZmllbGQtPmlkOwogICAgICAgICAgICAgICAgICAgICRucGFyYW1zWydmaWVsZHZhbCddID0gJzo6bnVsbDo6JzsKICAgICAgICAgICAgICAgICAgICAkdHJvd1snc3VtbWFyeV91cmwnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdkZWZhdWx0JywkZGV0YWlscGFnZSwkbnBhcmFtcyk7CiAgICAgICAgICAgICAgICAgICAgJHRyZXN1bHRzWyctLTpwcm9kdWN0c191bnNldF9maWVsZDotLSddID0gJHRyb3c7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvLyBpdCdzIGEgZHJvcGRvd24KICAgICAgICAgICAgICAgICAgICAvLyBmaWxsIGluIHRoZSByZWNvcmRzIGZvciB0aGUgb3RoZXIgb3B0aW9ucywgd2hpbGUgcHJlc2VydmluZyBvcHRpb24gb3JkZXIuCiAgICAgICAgICAgICAgICAgICAgJHRtcCA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCggJGZpZWxkLT5vcHRpb25zIGFzICRvcHRpb24gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBpc3NldCgkdHJlc3VsdHNbJG9wdGlvbl0pICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRtcFskb3B0aW9uXSA9ICR0cmVzdWx0c1skb3B0aW9uXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICR0cm93ID0gYXJyYXkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgJHRyb3dbJ25hbWUnXSA9ICRvcHRpb247CiAgICAgICAgICAgICAgICAgICAgICAgICR0cm93Wydjb3VudCddID0gMDsKCiAgICAgICAgICAgICAgICAgICAgICAgICRucGFyYW1zID0gJHBhcmFtczsKICAgICAgICAgICAgICAgICAgICAgICAgdW5zZXQoJG5wYXJhbXNbJ2ZpZWxkJ10pOwogICAgICAgICAgICAgICAgICAgICAgICAkbnBhcmFtc1snZmllbGRpZCddID0gJGZpZWxkLT5pZDsKICAgICAgICAgICAgICAgICAgICAgICAgJG5wYXJhbXNbJ2ZpZWxkdmFsJ10gPSAnOjpudWxsOjonOwogICAgICAgICAgICAgICAgICAgICAgICAkdHJvd1snc3VtbWFyeV91cmwnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdkZWZhdWx0JywkZGV0YWlscGFnZSwkbnBhcmFtcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICR0bXBbJG9wdGlvbl0gPSAkdHJvdzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJHRyZXN1bHRzID0gJHRtcDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHJlc3VsdHMgPSBhcnJheSgpOwogICAgICAgICAgICBmb3JlYWNoKCAkdHJlc3VsdHMgYXMgJGtleSA9PiAkcmVjICkgewogICAgICAgICAgICAgICAgJHJlc3VsdHNbXSA9IGNnZV9hcnJheTo6dG9fb2JqZWN0KCRyZWMpOwogICAgICAgICAgICB9CiAgICAgICAgICAgICR0cGwtPmFzc2lnbignY2F0ZWdvcnlsaXN0JywkcmVzdWx0cyk7CiAgICAgICAgfQogICAgfQogICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnZmllbGRsaXN0IGFjdGlvbjogJy4kZS0+R2V0TWVzc2FnZSgpKTsKICAgIH0KfSAvLyBub3QgY2FjaGVkCgokdHBsLT5kaXNwbGF5KCk7CgojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.hierarchy.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKJGNvbmZpZyA9ICRnQ21zLT5HZXRDb25maWcoKTsKCiRzdW1tYXJ5cGFnZSA9ICRyZXR1cm5pZDsKaWYoIGlzc2V0KCRwYXJhbXNbJ3N1bW1hcnlwYWdlJ10pICkgewogICAgJHN1bW1hcnlwYWdlID0gJHRoaXMtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHBhcmFtc1snc3VtbWFyeXBhZ2UnXSk7CiAgICBpZiggISRzdW1tYXJ5cGFnZSApICRzdW1tYXJ5cGFnZSA9ICRyZXR1cm5pZDsKfQoKJGFjdGl2ZV9oaWVyYXJjaHkgPSAoaW50KSRzbWFydHktPmdldF90ZW1wbGF0ZV92YXJzKCdhY3RpdmVfaGllcmFyY2h5Jyk7CmlmKCAhaXNzZXQoJHBhcmFtc1sncGFyZW50J10pICYmICRhY3RpdmVfaGllcmFyY2h5ID4gMCApICRwYXJhbXNbJ3BhcmVudCddID0gJGFjdGl2ZV9oaWVyYXJjaHk7CgokaW5saW5lID0gKGludClnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsJ2lubGluZScsMCk7CgokaGllcnBhZ2UgPSAkcmV0dXJuaWQ7CiR0bXAgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaGllcnBhZ2UnKTsKaWYoICR0bXAgPiAwICkgJGhpZXJwYWdlID0gJHRtcDsKCmlmKCBpc3NldCgkcGFyYW1zWydoaWVyYXJjaHlwYWdlJ10pICkgewogICAgJHRtcCA9ICR0aGlzLT5yZXNvbHZlX2FsaWFzX29yX2lkKCRwYXJhbXNbJ2hpZXJhcmNoeXBhZ2UnXSk7CiAgICBpZiggJHRtcCApICRoaWVycGFnZSA9ICR0bXA7Cn0KCmlmKCAhZnVuY3Rpb25fZXhpc3RzKCdwcm9kdWN0c19ieWhpZXJhcmNoeV9wb3N0cHJvY2VzcycpICkgewogICAgZnVuY3Rpb24gcHJvZHVjdHNfYnloaWVyYXJjaHlfcG9zdHByb2Nlc3MoJiRkYXRhLCRwYXJhbXMsJHN1bW1hcnlwYWdlLCRoaWVycGFnZSwkaW5saW5lLCRpZCkKICAgIHsKICAgICAgICBpZiggaXNfYXJyYXkoJGRhdGEpICkgewogICAgICAgICAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAgICAgICAgICRtb2R1bGUgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ1Byb2R1Y3RzJyk7CiAgICAgICAgICAgICRpbWdkaXIgPSBwcm9kdWN0X3V0aWxzOjpnZXRfaGllcmFyY2h5X3VwbG9hZF9wYXRoKCk7CgogICAgICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkZGF0YSk7ICRpKysgKSB7CiAgICAgICAgICAgICAgICAkcmVjID0mICRkYXRhWyRpXTsKCiAgICAgICAgICAgICAgICAkdG4gPSBjbXNfam9pbl9wYXRoKCRpbWdkaXIsJ3RodW1iXycuJHJlY1snaW1hZ2UnXSk7CiAgICAgICAgICAgICAgICBpZiggZmlsZV9leGlzdHMoJHRuKSApICRyZWNbJ3RodW1ibmFpbCddID0gJ3RodW1iXycuJHJlY1snaW1hZ2UnXTsKCiAgICAgICAgICAgICAgICAkdG4gPSBjbXNfam9pbl9wYXRoKCRpbWdkaXIsJ3ByZXZpZXdfJy4kcmVjWydpbWFnZSddKTsKICAgICAgICAgICAgICAgIGlmKCBmaWxlX2V4aXN0cygkdG4pICkgJHJlY1sncHJldmlldyddID0gJ3ByZXZpZXdfJy4kcmVjWydpbWFnZSddOwogICAgICAgICAgICAgICAgaWYoICFpc3NldCgkcmVjWydjb3VudCddKSApICRyZWNbJ2NvdW50J10gPSAwOwoKICAgICAgICAgICAgICAgICRwYXJtcyA9ICRwYXJhbXM7CiAgICAgICAgICAgICAgICAkcGFybXNbJ3BhcmVudCddID0gJHJlY1snaWQnXTsKICAgICAgICAgICAgICAgIHVuc2V0KCRwYXJtc1snaW5saW5lJ10pOwoKICAgICAgICAgICAgICAgICRyZWNbJ2Rvd25fdXJsJ10gPSAkbW9kdWxlLT5DcmVhdGVVUkwoJGlkLCdoaWVyYXJjaHknLCRoaWVycGFnZSwkcGFybXMsJGlubGluZSk7CgogICAgICAgICAgICAgICAgJHBhcm1zID0gJHBhcmFtczsKICAgICAgICAgICAgICAgICRwYXJtc1snaGllcmFyY2h5aWQnXSA9ICRyZWNbJ2lkJ107CiAgICAgICAgICAgICAgICBpZiggaXNzZXQoJHBhcm1zWydzdW1tYXJ5cGFnZSddKSApIHVuc2V0KCRwYXJtc1snc3VtbWFyeXBhZ2UnXSk7CiAgICAgICAgICAgICAgICBpZiggJHJlY1snY291bnQnXSA+IDAgKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gc3VtbWFyeSBVUkxTIGFyZSBub24gaW5saW5lCiAgICAgICAgICAgICAgICAgICAgJHJlY1sndXJsJ10gPSAkbW9kdWxlLT5DcmVhdGVQcmV0dHlMaW5rKCdjbnRudDAxJywnZGVmYXVsdCcsJHN1bW1hcnlwYWdlLCcnLCRwYXJtcywnJyx0cnVlLEZBTFNFKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiggaXNzZXQoJHJlY1snY2hpbGRyZW4nXSkgKSBwcm9kdWN0c19ieWhpZXJhcmNoeV9wb3N0cHJvY2VzcygkcmVjWydjaGlsZHJlbiddLCRwYXJhbXMsJHN1bW1hcnlwYWdlLCRoaWVycGFnZSwkaW5saW5lLCRpZCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCiR0aGV0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVEJZSElFUkFSQ0hZX1RFTVBMQVRFKTsKJHRoZXRlbXBsYXRlID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdoaWVyYXJjaHl0ZW1wbGF0ZScsJHRoZXRlbXBsYXRlKTsKdW5zZXQoJHBhcmFtc1snaGllcmFyY2h5dGVtcGxhdGUnXSk7CiR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJHRoZXRlbXBsYXRlLCdieWhpZXJhcmNoeV8nKTsKCiRub2RlcyA9IGFycmF5KCk7CiRwYXJlbnRzID0gYXJyYXkoLTEpOwppZiggaXNzZXQoJHBhcmFtc1sncGFyZW50J10gKSApIHsKICAgICRwYXJlbnRzID0gYXJyYXkoKGludCkkcGFyYW1zWydwYXJlbnQnXSk7CiAgICB1bnNldCgkcGFyYW1zWydwYXJlbnQnXSk7Cn0KZWxzZSBpZiggaXNzZXQoJHBhcmFtc1sncGFyZW50cyddKSApIHsKICAgICR0bXAgPSBleHBsb2RlKCcsJywkcGFyYW1zWydwYXJlbnRzJ10pOwogICAgJHRtcDIgPSBhcnJheSgpOwogICAgJGFsbF9oaWVyYXJjaHkgPSBoaWVyYXJjaHlfb3BzOjpnZXRfYWxsX2hpZXJhcmNoeV9pbmZvKCk7CiAgICBpZiggIWlzX2FycmF5KCRhbGxfaGllcmFyY2h5KSB8fCBjb3VudCgkYWxsX2hpZXJhcmNoeSkgPT0gMCApIHJldHVybjsgLy8gbm90aGluZyB0byBkby4KICAgIGZvcmVhY2goICR0bXAgYXMgJG9uZSApIHsKICAgICAgICAkb25lID0gdHJpbSgkb25lKTsKICAgICAgICBmb3JlYWNoKCAkYWxsX2hpZXJhcmNoeSBhcyAkb25laGllciApIHsKICAgICAgICAgICAgaWYoIGlzX251bWVyaWMoJG9uZSkgJiYgJG9uZWhpZXJbJ2lkJ10gPT0gJG9uZSApIHsKICAgICAgICAgICAgICAgICR0bXAyW10gPSAkb25lOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiggJG9uZWhpZXJbJ25hbWUnXSA9PSAkb25lICkgewogICAgICAgICAgICAgICAgJHRtcDJbXSA9ICRvbmVoaWVyWydpZCddOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICAkdG1wMiA9IGFycmF5X3VuaXF1ZSgkdG1wMik7CiAgICBpZiggIWlzX2FycmF5KCR0bXAyKSB8fCBjb3VudCgkdG1wMikgPT0gMCApIHJldHVybjsgLy8gbm90aGluZyB0byBkaXNwbGF5LgogICAgJHBhcmVudHMgPSAkdG1wMjsKICAgIHVuc2V0KCRwYXJhbXNbJ3BhcmVudHMnXSk7Cn0KLyogbm90IHVzZWQ/CiAgIGVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ2hpZXJhcmNoeSddKSApIHsKICAgJHRtcCA9IGV4cGxvZGUoJywnLCRwYXJhbXNbJ2hpZXJhcmNoeSddKTsKICAgJHRtcDIgPSBhcnJheSgpOwogICBmb3JlYWNoKCAkdG1wIGFzICRvbmUgKSB7CiAgICR0bXAyW10gPSAiJyIudHJpbSgkb25lKS4iJyI7CiAgIH0KICAgJHRtcDIgPSBpbXBsb2RlKCcsJywkdG1wMik7CiAgICRxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBXSEVSRSBuYW1lIElOICgnLiR0bXAyLicpJzsKICAgJG5vZGVzID0gJGRiLT5HZXRDb2woJHF1ZXJ5KTsKICAgJG5vZGVzID0gYXJyYXlfdW5pcXVlKCRub2Rlcyk7CiAgIHVuc2V0KCRwYXJhbXNbJ2hpZXJhcmNoeSddKTsKICAgfQoqLwoKaWYoICFjb3VudCgkcGFyZW50cykgKSByZXR1cm47IC8vIG5vdGhpbmcgZm91bmQgdG8gc3RhcnQgd2l0aAoKJGRhdGEgPSBhcnJheSgpOwppZiggY291bnQoJG5vZGVzKSApIHsKICAgIC8vIG5vdCB1c2VkPwogICAgLy8gdGhpcyB3aWxsIG9ubHkgZGlzcGxheSB0aGUgc2VsZWN0ZWQgaGllcmFyY2hpZXMgKG5vdCBpbmNsdWRpbmcgdGhlaXIgY2hpbGRyZW4pIHRoYXQgaGF2ZSBwcm9kdWN0cy4KICAgICRub2RlcyA9IGltcGxvZGUoJywnLCRub2Rlcyk7CiAgICAkcXVlcnkgPSAnU0VMRUNUIHBoLiosY291bnQocHIuaWQpIEFTIGNvdW50IEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkgcGgKICAgICAgICAgICAgICBMRUZUIE9VVEVSIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdG9oaWVyIHB0aAogICAgICAgICAgICAgICAgT04gcGguaWQgPSBwdGguaGllcmFyY2h5X2lkCiAgICAgICAgICAgICAgTEVGVCBPVVRFUiBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgcHIKICAgICAgICAgICAgICAgIE9OIHB0aC5wcm9kdWN0X2lkID0gcHIuaWQKICAgICAgICAgICAgIFdIRVJFIHByLnN0YXR1cyA9IFwncHVibGlzaGVkXCcKICAgICAgICAgICAgICAgQU5EIHBoLmlkIElOICgnLiRub2Rlcy4nKQogICAgICAgICAgICAgR1JPVVAgQlkgcGguaWQgT1JERVIgQlkgcGguaGllcmFyY2h5JzsKICAgICR0bXAgPSAkZGItPkdldEFycmF5KCRxdWVyeSk7CiAgICBwcm9kdWN0c19ieWhpZXJhcmNoeV9wb3N0cHJvY2VzcygkdG1wLCRwYXJhbXMsJHN1bW1hcnlwYWdlLCRoaWVycGFnZSwkaW5saW5lLCRpZCk7CiAgICAkZGF0YSA9ICR0bXA7Cn0KZWxzZSB7CiAgICBmb3JlYWNoKCAkcGFyZW50cyBhcyAkcGFyZW50X2lkICkgewogICAgICAgIGlmKCAhJHBhcmVudF9pZCApIGNvbnRpbnVlOwoKICAgICAgICAkdG1wID0gcHJvZHVjdF91dGlsczo6aGllcmFyY2h5X2dldF90cmVlKCRwYXJlbnRfaWQpOwogICAgICAgIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKICAgICAgICAgICAgcHJvZHVjdHNfYnloaWVyYXJjaHlfcG9zdHByb2Nlc3MoJHRtcCwkcGFyYW1zLCRzdW1tYXJ5cGFnZSwkaGllcnBhZ2UsJGlubGluZSwkaWQpOwogICAgICAgICAgICBmb3JlYWNoKCAkdG1wIGFzICR0bXAyICkgewogICAgICAgICAgICAgICAgJGRhdGFbXSA9ICR0bXAyOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgokaGllcmRhdGEgPSAnJzsKJHRwbC0+YXNzaWduKCdoaWVyZGF0YScsJGRhdGEpOwppZiggY291bnQoJHBhcmVudHMpID09IDEgKSB7CiAgICAkaGllcmRhdGEgPSBoaWVyYXJjaHlfb3BzOjpnZXRfaGllcmFyY2h5X2luZm8oJHBhcmVudHNbMF0pOwogICAgaWYoICRoaWVyZGF0YSApIHsKICAgICAgICAvLyBvbmx5IGlmIHdlIGhhdmUgYSBwYXJlbnQgaGllcmFyY2h5PwogICAgICAgICRoaWVyZGF0YVsncGFyZW50X3VybCddID0gJHRoaXMtPkNyZWF0ZVByZXR0eUxpbmsoJGlkLCdoaWVyYXJjaHknLCRyZXR1cm5pZCwnJyxhcnJheSgncGFyZW50Jz0+JGhpZXJkYXRhWydwYXJlbnRfaWQnXSksJycsVFJVRSwkaW5saW5lKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2FjdGl2ZV9oaWVyYXJjaHknLCRwYXJlbnRzWzBdKTsKICAgICAgICBpZiggJGlubGluZSA9PSAwICkgJGhpZXJkYXRhWydjYW5vbmljYWwnXSA9ICR0aGlzLT5DcmVhdGVQcmV0dHlMaW5rKCRpZCwnaGllcmFyY2h5JywkcmV0dXJuaWQsJycsYXJyYXkoJ3BhcmVudCc9PiRwYXJlbnRzWzBdKSwnJyx0cnVlKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2hpZXJhcmNoeV9pdGVtJywkaGllcmRhdGEpOwogICAgfQp9Cgokbm9jaGlsZHJlbiA9IGNnZV91dGlsczo6dG9fYm9vbChjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdub2NoaWxkcmVuJywwKSk7CgovLwovLyB0ZW1wbGF0ZQovLwokdHBsLT5hc3NpZ24oJ2hpZXJhcmNoeV9pbWFnZV9sb2NhdGlvbicsJGNvbmZpZ1sndXBsb2Fkc191cmwnXS4nLycuJHRoaXMtPkdldE5hbWUoKS4nL2hpZXJhcmNoeScpOwokdHBsLT5hc3NpZ24oJ25vY2hpbGRyZW4nLCRub2NoaWxkcmVuKTsKJHRwbC0+ZGlzcGxheSgpOwoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.importcsv.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiRnbyA9IDA7CmlmKCBpc3NldCgkcGFyYW1zWydnbyddKSApICRnbyA9IDE7CgppZiggIWlzc2V0KCRfU0VTU0lPTlsncHJvZHVjdHNfaW1wb3J0X2RhdGEnXSkgKSBkaWUoKTsKJHBhcmFtcyA9ICRfU0VTU0lPTlsncHJvZHVjdHNfaW1wb3J0X2RhdGEnXTsKCmZ1bmN0aW9uIHByb2dyZXNzKCRwY3QpIHsKICAgIGVjaG8gJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5wYXJlbnQucHJvZ3Jlc3MoJy4kcGN0LicpOzwvc2NyaXB0Pic7Cn0KZnVuY3Rpb24gZG9fZXJyb3IoJHN0cikgewogICAgZWNobyAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnBhcmVudC5vbkVycm9yKFwnJy4kc3RyLidcJyk7PC9zY3JpcHQ+JzsKfQpmdW5jdGlvbiBkb25lKCkgewogICAgZWNobyAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnBhcmVudC5kb25lKCk7PC9zY3JpcHQ+JzsKfQoKLy8gc2V0dXAgZGlzcGxheQppZiggJGdvID09IDEgKSB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3Byb2Nlc3N1cmwnLCR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnaW1wb3J0Y3N2JywkcmV0dXJuaWQsIGFycmF5KCdzaG93dGVtcGxhdGUnPT4nZmFsc2UnKSkpOwogICAgJHVybCA9ICR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnZGVmYXVsdGFkbWluJywkcmV0dXJuaWQpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdkb25ldXJsJyxzdHJfcmVwbGFjZSgnJmFtcDsnLCcmJywkdXJsKSk7CiAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2ltcG9ydGNzdi50cGwnKTsKICAgIHJldHVybjsKfQoKc2V0X3RpbWVfbGltaXQoMCk7ICAgICAgICAgICAgICAgICAgIC8vIGlnbm9yZSBwaHAgdGltZW91dAppZ25vcmVfdXNlcl9hYm9ydCh0cnVlKTsgICAgICAgICAgICAgLy8ga2VlcCBvbiBnb2luZyBldmVuIGlmIHVzZXIgcHVsbHMgdGhlIHBsdWcqCndoaWxlKG9iX2dldF9sZXZlbCgpKW9iX2VuZF9jbGVhbigpOyAvLyByZW1vdmUgb3V0cHV0IGJ1ZmZlcnMKb2JfaW1wbGljaXRfZmx1c2godHJ1ZSk7ICAgICAgICAgICAgIC8vIG91dHB1dCBzdHVmZiBkaXJlY3RseQoKCi8vIGJlZ2luIHdvcmsKZWNobyAnPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5Pic7IC8vIHdlYmtpdCBob3RmaXgKCiRjb25maWcgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CiRmbiA9ICRjb25maWdbJ3Jvb3RfcGF0aCddLicvdG1wL2NhY2hlLycuJHBhcmFtc1snZmlsZW5hbWUnXTsKJGZoID0gZm9wZW4oJGZuLCdyJyk7CmlmKCAhJGZoICkgewogICAgZXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2ZpbGVvcGVuJykpOwogICAgcmV0dXJuOwp9CiRmaWxlc2l6ZSA9IGZpbGVzaXplKCRmbik7CgokaW1hZ2VIYW5kbGVyID0gbmV3IGltcG9ydEltYWdlSGFuZGxlcigkdGhpcyk7CiRpbWFnZUhhbmRsZXItPnNldFNvdXJjZUxvY2F0aW9uKGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJHBhcmFtc1snaW1hZ2VwYXRoJ10pKTsKJGltYWdlSGFuZGxlci0+c2V0RGVzdGluYXRpb25CYXNlKHByb2R1Y3RfdXRpbHM6OmdldF9iYXNlX3VwbG9hZF9wYXRoKCkpOwokaW1hZ2VIYW5kbGVyLT5zZXRVbmlxdWVOYW1lcygpOwoKJGltcG9ydGVyID0gbmV3IHByb2R1Y3RzQ3N2SW1wb3J0ZXIoJHRoaXMpOwokaW1wb3J0ZXItPnNldEltYWdlSGFuZGxlcigkaW1hZ2VIYW5kbGVyKTsKJGltcG9ydGVyLT5zZXREZWxpbSgkcGFyYW1zWydkZWxpbWl0ZXInXSk7CiRpbXBvcnRlci0+c2V0UG9saWN5VmFsdWUoJ2NyZWF0ZV9maWVsZHMnLChpbnQpJHBhcmFtc1snY3JlYXRlZmllbGRzJ10pOwokaW1wb3J0ZXItPnNldFBvbGljeVZhbHVlKCdoYW5kbGVfaW1hZ2VzJywoaW50KSRwYXJhbXNbJ2hhbmRsZWltYWdlcyddKTsKJGltcG9ydGVyLT5zZXRQb2xpY3lWYWx1ZSgnY3JlYXRlX2hpZXJhcmNoeScsKGludCkkcGFyYW1zWydjcmVhdGVoaWVyYXJjaHknXSk7CiRpbXBvcnRlci0+c2V0UG9saWN5VmFsdWUoJ2NyZWF0ZV9jYXRlZ29yaWVzJywoaW50KSRwYXJhbXNbJ2NyZWF0ZWNhdGVnb3JpZXMnXSk7CiRpbXBvcnRlci0+c2V0UG9saWN5VmFsdWUoJ2ltYWdlX3NvdXJjZV9sb2NhdGlvbicsJHBhcmFtc1snaW1hZ2VwYXRoJ10pOwokaW1wb3J0ZXItPnNldFBvbGljeVZhbHVlKCdvbl9kdXBsaWNhdGVfcHJvZHVjdCcsdHJpbSgkcGFyYW1zWydkdXBsaWNhdGVwcm9kdWN0cyddKSk7CiRpbXBvcnRlci0+c2V0UG9saWN5VmFsdWUoJ2NsZWFyZmllbGRzJywoaW50KSRwYXJhbXNbJ2NsZWFyZmllbGRzJ10pOwokaW1wb3J0ZXItPnNldFBvbGljeVZhbHVlKCdjbGVhcmF0dHJpYnMnLChpbnQpJHBhcmFtc1snY2xlYXJhdHRyaWJzJ10pOwokaW1wb3J0ZXItPnNldFBvbGljeVZhbHVlKCdjbGVhcmNhdGVnb3JpZXMnLChpbnQpJHBhcmFtc1snY2xlYXJjYXRlZ29yaWVzJ10pOwoKd2hpbGUoICFmZW9mKCRmaCkgKSB7CiAgICAkbGluZSA9ICRpbXBvcnRlci0+Z2V0X3VucGFyc2VkX3JlY29yZCgkZmgpOwogICAgJGxpbmUgPSB0cmltKCRsaW5lKTsKICAgICRwb3MgPSBmdGVsbCgkZmgpOwogICAgaWYoIGVtcHR5KCRsaW5lKSApIGNvbnRpbnVlOwoKICAgICRwY3QgPSAoaW50KSgkcG9zIC8gJGZpbGVzaXplICogMTAwLjApOwogICAgcHJvZ3Jlc3MoJHBjdCk7CgogICAgJHJlcyA9ICRpbXBvcnRlci0+aGFuZGxlTGluZSgkbGluZSk7CiAgICBpZiggISRyZXMgKSB7CiAgICAgICAgJGVycm9ycyA9ICRpbXBvcnRlci0+Z2V0RXJyb3JzKCk7CiAgICAgICAgJGltcG9ydGVyLT5jbGVhckVycm9ycygpOwogICAgICAgIGlmKCBpc19hcnJheSgkZXJyb3JzKSAmJiBjb3VudCgkZXJyb3JzKSApIHsKICAgICAgICAgICAgZm9yZWFjaCggJGVycm9ycyBhcyAkb25lICkgewogICAgICAgICAgICAgICAgZG9fZXJyb3IoJG9uZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCi8vIHdvb3QsIHdlJ3JlIGRvbmUKZmNsb3NlKCRmaCk7CmRvbmUoKTsKZXhpdCgpOwoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.importproducts.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSApIHJldHVybjsKCiMKIyBJbml0aWFsaXphdGlvbgojCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdwcm9kdWN0cycpOwokZmxhZ19jcmVhdGVmaWVsZHMgPSAwOwokZmxhZ19oYW5kbGVpbWFnZXMgPSAwOwokaW1hZ2VwYXRoID0gJyc7CiRmbGFnX2NyZWF0ZWhpZXJhcmNoeSA9IDA7CiRmbGFnX2NyZWF0ZWNhdGVnb3JpZXMgPSAwOwokZmxhZ19kdXBsaWNhdGVwcm9kdWN0cyA9ICdza2lwJzsKJGRlbGVtZXRlciA9ICd8JzsKJGJhdGNoc2l6ZSA9IDUwOwoKIwojIFNldHVwCiMKJGZsYWdfY3JlYXRlZmllbGRzID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltcG9ydF9jcmVhdGVmaWVsZHMnLDEpOwokZmxhZ19oYW5kbGVpbWFnZXMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1wb3J0X2hhbmRsZWltYWdlcycsMCk7CiRpbWFnZXBhdGggPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1wb3J0X2ltYWdlcGF0aCcsJycpOwokZmxhZ19jcmVhdGVoaWVyYXJjaHkgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NyZWF0ZWhpZXJhcmNoeScsMSk7CiRmbGFnX2NyZWF0ZWNhdGVnb3JpZXMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NyZWF0ZWNhdGVnb3JpZXMnLDEpOwokZmxhZ19kdXBsaWNhdGVwcm9kdWN0cyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbXBvcnRfZHVwbGljYXRlcHJvZHVjdHMnLCdvdmVyd3JpdGUnKTsKJGRlbGltaXRlciA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbXBvcnRfZGVsaW1pdGVyJywnfCcpOwokYmF0Y2hzaXplID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltcG9ydF9iYXRjaHNpemUnLDUwKTsKJGNsZWFyZmllbGRzID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltcG9ydF9jbGVhcmZpZWxkcycsMSk7CiRjbGVhcmF0dHJpYnMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NsZWFyYXR0cmlicycsMSk7CiRjbGVhcmNhdGVnb3JpZXMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NsZWFyY2F0ZWdvcmllcycsMSk7CgojCiMgSGFuZGxlIEZvcm0gRGF0YQojCmlmKCBpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkgKSAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ3Rlc3QnXSkgKSB7CiAgICAvLyBnZXQgdGhlIGZvcm0gZGF0YQogICAgJGZsYWdfY3JlYXRlZmllbGRzID0gKGludCkkcGFyYW1zWydjcmVhdGVmaWVsZHMnXTsKICAgICRmbGFnX2hhbmRsZWltYWdlcyA9IChpbnQpJHBhcmFtc1snaGFuZGxlaW1hZ2VzJ107CiAgICAkaW1hZ2VwYXRoID0gdHJpbSgkcGFyYW1zWydpbWFnZXBhdGgnXSk7CiAgICAkZmxhZ19jcmVhdGVoaWVyYXJjaHkgPSAoaW50KSRwYXJhbXNbJ2NyZWF0ZWhpZXJhcmNoeSddOwogICAgJGZsYWdfY3JlYXRlY2F0ZWdvcmllcyA9IChpbnQpJHBhcmFtc1snY3JlYXRlY2F0ZWdvcmllcyddOwogICAgJGZsYWdfZHVwbGljYXRlcHJvZHVjdHMgPSAkcGFyYW1zWydkdXBsaWNhdGVwcm9kdWN0cyddOwogICAgJGRlbGltaXRlciA9ICRwYXJhbXNbJ2RlbGltaXRlciddOwogICAgJGJhdGNoc2l6ZSA9IChpbnQpJHBhcmFtc1snYmF0Y2hzaXplJ107CiAgICAkY2xlYXJmaWVsZHMgPSAoaW50KSRwYXJhbXNbJ2NsZWFyZmllbGRzJ107CiAgICAkY2xlYXJhdHRyaWJzID0gKGludCkkcGFyYW1zWydjbGVhcmF0dHJpYnMnXTsKICAgICRjbGVhcmNhdGVnb3JpZXMgPSAoaW50KSRwYXJhbXNbJ2NsZWFyY2F0ZWdvcmllcyddOwoKICAgIC8vIHZhbGlkYXRlIHRoZSBmb3JtIGRhdGEKICAgICRlcnJvciA9ICcnOwogICAgJG1lc3NhZ2VzID0gYXJyYXkoKTsKICAgICRpbXBvcnRfZXJyb3JzID0gYXJyYXkoKTsKICAgICRjb25maWcgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CiAgICAkdWggPSBuZXcgY2dfZmlsZXVwbG9hZCgkaWQsJGNvbmZpZ1sncm9vdF9wYXRoJ10uJy90bXAvY2FjaGUnKTsKICAgICR1aC0+c2V0X2FjY2VwdGVkX2ZpbGV0eXBlcygnY3N2Jyk7CiAgICAkdWgtPnNldF9hbGxvd19vdmVyd3JpdGUoKTsKICAgICRyZXMgPSAkdWgtPmhhbmRsZV91cGxvYWQoJ2NzdmZpbGUnLCdwcm9kdWN0cycpOwogICAgaWYoICRyZXMgPT09IGZhbHNlICkgewogICAgICAgICR0bXAgPSAkdWgtPmdldF9lcnJvcigpOwogICAgICAgICRlcnJvciA9ICR0aGlzLT5HZXRVcGxvYWRFcnJvck1lc3NhZ2UoJHRtcCk7CiAgICB9CgogICAgaWYoIGVtcHR5KCRlcnJvcikgKSB7CiAgICAgICAgLy8gcmVhZHkgdG8gZG8gc29tZSB0ZXN0aW5nIG9uIHRoZSBjc3YgZmlsZS4KICAgICAgICAkZm4gPSAkY29uZmlnWydyb290X3BhdGgnXS4nL3RtcC9jYWNoZS9wcm9kdWN0cy5jc3YnOwogICAgICAgICR0aGVfZmlsZXNpemUgPSBmaWxlc2l6ZSgkZm4pOwogICAgICAgICRmaCA9IGZvcGVuKCRmbiwncicpOwogICAgICAgIGlmKCAhJGZoICkgJGVycm9yID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2ZpbGVvcGVuJywkZm4pOwoKICAgICAgICBpZiggZW1wdHkoJGVycm9yKSApIHsKICAgICAgICAgICAgJGxpbmVudW0gPSAwOwogICAgICAgICAgICAkaW1wb3J0ZXIgPSBuZXcgcHJvZHVjdHNDc3ZJbXBvcnRlcigkdGhpcyk7CiAgICAgICAgICAgICRpbXBvcnRlci0+c2V0RGVsaW0oJGRlbGltaXRlcik7CiAgICAgICAgICAgIHdoaWxlKCAhZmVvZigkZmgpICYmICRsaW5lbnVtIDwgMjAgKSB7CiAgICAgICAgICAgICAgICAkbGluZSA9ICRpbXBvcnRlci0+Z2V0X3VucGFyc2VkX3JlY29yZCgkZmgpOwogICAgICAgICAgICAgICAgJGxpbmUgPSB0cmltKCRsaW5lKTsKICAgICAgICAgICAgICAgICRsaW5lbnVtKys7CiAgICAgICAgICAgICAgICAkdG1wID0gYXJyYXkoKTsKCiAgICAgICAgICAgICAgICBpZiggZW1wdHkoJGxpbmUpICkgY29udGludWU7CgogICAgICAgICAgICAgICAgJHJlcyA9ICRpbXBvcnRlci0+dGVzdExpbmUoJGxpbmUsJHRtcCk7CiAgICAgICAgICAgICAgICBpZiggJHJlcyA9PT0gRkFMU0UgKSB7CiAgICAgICAgICAgICAgICAgICAgJGVycm9yID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2ZpbGVmb3JtYXQnKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRtZXNzYWdlcyA9IGFycmF5X21lcmdlKCRtZXNzYWdlcywkdG1wKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBpZiggIWVtcHR5KCRlcnJvcikgJiYgaXNzZXQoJGltcG9ydGVyKSAmJiBpc19vYmplY3QoJGltcG9ydGVyKSApICRpbXBvcnRfZXJyb3JzID0gJGltcG9ydGVyLT5nZXRFcnJvcnMoKTsKCiAgICBpZiggZW1wdHkoJGVycm9yKSApIHsKICAgICAgICAvLyBzYXZlIHRoZSBwcmVmZXJlbmNlcwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfY3JlYXRlZmllbGRzJywkZmxhZ19jcmVhdGVmaWVsZHMpOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfaGFuZGxlaW1hZ2VzJywkZmxhZ19oYW5kbGVpbWFnZXMpOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfaW1hZ2VwYXRoJywkaW1hZ2VwYXRoKTsKICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NyZWF0ZWhpZXJhcmNoeScsJGZsYWdfY3JlYXRlaGllcmFyY2h5KTsKICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NyZWF0ZWNhdGVnb3JpZXMnLCRmbGFnX2NyZWF0ZWNhdGVnb3JpZXMpOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfZHVwbGljYXRlcHJvZHVjdHMnLCRmbGFnX2R1cGxpY2F0ZXByb2R1Y3RzKTsKICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2RlbGltaXRlcicsJGRlbGltaXRlcik7CiAgICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9iYXRjaHNpemUnLCRiYXRjaHNpemUpOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfY2xlYXJmaWVsZHMnLCRjbGVhcmZpZWxkcyk7CiAgICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9jbGVhcmF0dHJpYnMnLCRjbGVhcmF0dHJpYnMpOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfY2xlYXJjYXRlZ29yaWVzJywkY2xlYXJjYXRlZ29yaWVzKTsKCiAgICAgICAgLy8gc2F2ZSBwYXJhbWV0ZXJzIGluIHNlc3Npb24KICAgICAgICAkcGFyYW1zWydmaWxlbmFtZSddID0gJ3Byb2R1Y3RzLmNzdic7CiAgICAgICAgJF9TRVNTSU9OWydwcm9kdWN0c19pbXBvcnRfZGF0YSddID0gJHBhcmFtczsKCiAgICAgICAgLy8gR2V0IHJlYWR5IGZvciB0aGUgZ28gYWN0aW9uCiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdjc3ZmaWxlJywkcGFyYW1zWydmaWxlbmFtZSddKTsKICAgICAgICBpZiggY291bnQoJG1lc3NhZ2VzKSA+IDAgKSAkc21hcnR5LT5hc3NpZ24oJ21lc3NhZ2VzJywkbWVzc2FnZXMpOwogICAgICAgIGVjaG8gJHRoaXMtPlNob3dNZXNzYWdlKCR0aGlzLT5MYW5nKCdpbmZvX2ltcG9ydF90ZXN0X3Bhc3NlZCcpKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRzbWFydHktPmFzc2lnbignZXJyb3JzJywkaW1wb3J0X2Vycm9ycyk7CiAgICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZXJyb3IpOwogICAgfQp9CmVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ2dvJ10pICkgewogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwnaW1wb3J0Y3N2JywkcmV0dXJuaWQsJHBhcmFtcyk7CiAgICAkY2dlID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdDR0V4dGVuc2lvbnMnKTsKICAgICRmbiA9ICRjZ2UtPkdldE1vZHVsZVBhdGgoKS4nL2xpYi9Qcm9ncmVzczJfTGl0ZS5waHAnOwogICAgaW5jbHVkZSgkZm4pOwoKICAgIGlmKCAhaXNzZXQoJF9TRVNTSU9OWydwcm9kdWN0c19pbXBvcnRfZGF0YSddKSApIGRpZSgpOwogICAgJHBhcmFtcyA9ICRfU0VTU0lPTlsncHJvZHVjdHNfaW1wb3J0X2RhdGEnXTsKICAgICRiYXRjaHNpemUgPSA1MDsKICAgICRjbGVhcmZpZWxkcyA9IDE7CiAgICAkY2xlYXJhdHRyaWJzID0gMTsKICAgICRjbGVhcmNhdGVnb3JpZXMgPSAxOwogICAgJGxpbmVudW0gPSAwOwogICAgJGZwb3MgPSAwOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2JhdGNoc2l6ZSddKSApICRiYXRjaHNpemUgPSAoaW50KSRwYXJhbXNbJ2JhdGNoc2l6ZSddOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2xpbmVudW0nXSkgKSAkbGluZW51bSA9IChpbnQpJHBhcmFtc1snbGluZW51bSddOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2Zwb3MnXSkgKSAkZnBvcyA9IChpbnQpJHBhcmFtc1snZnBvcyddOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NsZWFyZmllbGRzJ10pICkgJGNsZWFyZmllbGRzID0gKGludCkkcGFyYW1zWydjbGVhcmZpZWxkcyddOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NsZWFyYXR0cmlicyddKSApICRjbGVhcmF0dHJpYnMgPSAoaW50KSRwYXJhbXNbJ2NsZWFyYXR0cmlicyddOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NsZWFyY2F0ZWdvcmllcyddKSApICRjbGVhcmNhdGVnb3JpZXMgPSAoaW50KSRwYXJhbXNbJ2NsZWFyY2F0ZWdvcmllcyddOwoKICAgICRjb25maWcgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CiAgICAkZm4gPSAkY29uZmlnWydyb290X3BhdGgnXS4nL3RtcC9jYWNoZS8nLiRwYXJhbXNbJ2ZpbGVuYW1lJ107CiAgICAkdGhlX2ZpbGVzaXplID0gZmlsZXNpemUoJGZuKTsKICAgICRmaCA9IGZvcGVuKCRmbiwncicpOwogICAgaWYoICEkZmggKSB7CiAgICAgICAgZWNobyAkdGhpcy0+TGFuZygnZXJyb3JfZmlsZW9wZW4nKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgJGltYWdlSGFuZGxlciA9IG5ldyBpbXBvcnRJbWFnZUhhbmRsZXIoJHRoaXMpOwogICAgJGltYWdlSGFuZGxlci0+c2V0U291cmNlTG9jYXRpb24oY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkcGFyYW1zWydpbWFnZXBhdGgnXSkpOwogICAgJGltYWdlSGFuZGxlci0+c2V0RGVzdGluYXRpb25CYXNlKHByb2R1Y3RfdXRpbHM6OmdldF9iYXNlX3VwbG9hZF9wYXRoKCkpOwogICAgJGltYWdlSGFuZGxlci0+c2V0VW5pcXVlTmFtZXMoKTsKCiAgICAkaW1wb3J0ZXIgPSBuZXcgcHJvZHVjdHNDc3ZJbXBvcnRlcigkdGhpcyk7CiAgICAkaW1wb3J0ZXItPnNldEltYWdlSGFuZGxlcigkaW1hZ2VIYW5kbGVyKTsKICAgICRpbXBvcnRlci0+c2V0RGVsaW0oJHBhcmFtc1snZGVsaW1pdGVyJ10pOwogICAgJGltcG9ydGVyLT5zZXRQb2xpY3lWYWx1ZSgnY3JlYXRlX2ZpZWxkcycsKGludCkkcGFyYW1zWydjcmVhdGVmaWVsZHMnXSk7CiAgICAkaW1wb3J0ZXItPnNldFBvbGljeVZhbHVlKCdoYW5kbGVfaW1hZ2VzJywoaW50KSRwYXJhbXNbJ2hhbmRsZWltYWdlcyddKTsKICAgICRpbXBvcnRlci0+c2V0UG9saWN5VmFsdWUoJ2NyZWF0ZV9oaWVyYXJjaHknLChpbnQpJHBhcmFtc1snY3JlYXRlaGllcmFyY2h5J10pOwogICAgJGltcG9ydGVyLT5zZXRQb2xpY3lWYWx1ZSgnY3JlYXRlX2NhdGVnb3JpZXMnLChpbnQpJHBhcmFtc1snY3JlYXRlY2F0ZWdvcmllcyddKTsKICAgICRpbXBvcnRlci0+c2V0UG9saWN5VmFsdWUoJ2ltYWdlX3NvdXJjZV9sb2NhdGlvbicsJHBhcmFtc1snaW1hZ2VwYXRoJ10pOwogICAgJGltcG9ydGVyLT5zZXRQb2xpY3lWYWx1ZSgnc2tpcF9leGlzdGluZ19wcm9kdWN0cycsJHBhcmFtc1snZHVwbGljYXRlcHJvZHVjdHMnXSA9PSAnc2tpcCcpOwoKICAgICRiYXRjaGxpbmVzID0gMDsKICAgIGlmKCAkZnBvcyA+IDAgKSB7CiAgICAgICAgLy8gcHJvY2VzcyB0aGUgZmlyc3QgbGluZSBhZ2Fpbi4KICAgICAgICAkbGluZSA9ICRpbXBvcnRlci0+Z2V0X3VucGFyc2VkX3JlY29yZCgkZmgpOwogICAgICAgICRsaW5lID0gdHJpbSgkbGluZSk7CiAgICAgICAgaWYoIGVtcHR5KCRsaW5lKSApIGNvbnRpbnVlOwogICAgICAgICRyZXMgPSAkaW1wb3J0ZXItPmhhbmRsZUxpbmUoJGxpbmUpOwoKICAgICAgICAvLyBzZWVrIHRvIG91ciBvbGQgcG9zaXRpb24uCiAgICAgICAgZnNlZWsoJGZoLCRmcG9zKTsKICAgIH0KICAgIHdoaWxlKCAhZmVvZigkZmgpICYmICRiYXRjaGxpbmVzIDwgJGJhdGNoc2l6ZSApIHsKICAgICAgICAkbGluZSA9ICRpbXBvcnRlci0+Z2V0X3VucGFyc2VkX3JlY29yZCgkZmgpOwogICAgICAgICRsaW5lID0gdHJpbSgkbGluZSk7CiAgICAgICAgJGxpbmVudW0rKzsKICAgICAgICAkYmF0Y2hsaW5lcysrOwogICAgICAgICRwb3MgPSBmdGVsbCgkZmgpOwogICAgICAgICRzbWFydHktPmFzc2lnbigncHJvZ3Jlc3MnLChpbnQpKCRwb3MgLyAkdGhlX2ZpbGVzaXplICogMTAwLjApKTsKICAgICAgICBpZiggZW1wdHkoJGxpbmUpICkgY29udGludWU7CgogICAgICAgICRyZXMgPSAkaW1wb3J0ZXItPmhhbmRsZUxpbmUoJGxpbmUpOwogICAgfQogICAgaWYoICFmZW9mKCRmaCkgKSB7CiAgICAgICAgLy8gcmVhZHkgZm9yIHRoZSBuZXh0IGJhdGNoCgogICAgICAgIC8vIHNhdmUgYW55IGVycm9ycwogICAgICAgICRlcnJvcnMgPSAkaW1wb3J0ZXItPmdldF9lcnJvcnMoKTsKICAgICAgICBpZiggaXNfYXJyYXkoJGVycm9ycykgJiYgY291bnQoJGVycm9ycykgKSB7CiAgICAgICAgICAgIGlmKCAhaXNzZXQoJF9TRVNTSU9OWydwcm9kdWN0c19pbXBvcnRfZGF0YSddWydlcnJvcnMnXSkgKSAkX1NFU1NJT05bJ3Byb2R1Y3RzX2ltcG9ydF9kYXRhJ11bJ2Vycm9ycyddID0gYXJyYXkoKTsKICAgICAgICAgICAgJF9TRVNTSU9OWydwcm9kdWN0c19pbXBvcnRfZGF0YSddWydlcnJvcnMnXSA9ICBhcnJheV9tZXJnZSgkX1NFU1NJT05bJ3Byb2R1Y3RzX2ltcG9ydF9kYXRhJ11bJ2Vycm9ycyddLCRlcnJvcnMpOwogICAgICAgIH0KCiAgICAgICAgLy8gc2F2ZSBvdXIgcG9zaXRpb24KICAgICAgICAkcG9zID0gZnRlbGwoJGZoKTsKICAgICAgICBmY2xvc2UoJGZoKTsKICAgICAgICAkX1NFU1NJT05bJ3Byb2R1Y3RzX2ltcG9ydF9kYXRhJ11bJ2Zwb3MnXSA9ICRwb3M7CiAgICAgICAgJF9TRVNTSU9OWydwcm9kdWN0c19pbXBvcnRfZGF0YSddWydsaW5lbnVtJ10gPSAkbGluZW51bTsKCiAgICAgICAgJHBhcm1zID0gYXJyYXkoJ2dvJz0+MSk7CiAgICAgICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwnaW1wb3J0cHJvZHVjdHMnLCRyZXR1cm5pZCwkcGFybXMpOwogICAgfQogICAgLy8gd2UncmUgZG9uZS4KICAgIGZjbG9zZSgkZmgpOwogICAgJGVycm9ycyA9ICRpbXBvcnRlci0+Z2V0RXJyb3JzKCk7CiAgICBpZiggaXNfYXJyYXkoJGVycm9ycykgKSAkX1NFU1NJT05bJ3Byb2R1Y3RzX2ltcG9ydF9kYXRhJ11bJ2Vycm9ycyddID0gIGFycmF5X21lcmdlKCRfU0VTU0lPTlsncHJvZHVjdHNfaW1wb3J0X2RhdGEnXVsnZXJyb3JzJ10sJGVycm9ycyk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2Vycm9ycycsJF9TRVNTSU9OWydwcm9kdWN0c19pbXBvcnRfZGF0YSddWydlcnJvcnMnXSk7CiAgICB1bnNldCgkX1NFU1NJT05bJ3Byb2R1Y3RzX2ltcG9ydF9kYXRhJ11bJ2Vycm9ycyddKTsKfQoKIwojIEdpdmUgRXZlcnl0aGluZyB0byBTbWFydHkKIwokc21hcnR5LT5hc3NpZ24oJ2ZsYWdfY3JlYXRlZmllbGRzJywkZmxhZ19jcmVhdGVmaWVsZHMpOwokc21hcnR5LT5hc3NpZ24oJ2ZsYWdfaGFuZGxlaW1hZ2VzJywkZmxhZ19oYW5kbGVpbWFnZXMpOwokc21hcnR5LT5hc3NpZ24oJ2ltYWdlcGF0aCcsJGltYWdlcGF0aCk7CiRzbWFydHktPmFzc2lnbignZmxhZ19jcmVhdGVoaWVyYXJjaHknLCRmbGFnX2NyZWF0ZWhpZXJhcmNoeSk7CiRzbWFydHktPmFzc2lnbignZmxhZ19jcmVhdGVjYXRlZ29yaWVzJywkZmxhZ19jcmVhdGVjYXRlZ29yaWVzKTsKJHNtYXJ0eS0+YXNzaWduKCdmbGFnX2R1cGxpY2F0ZXByb2R1Y3RzJywkZmxhZ19kdXBsaWNhdGVwcm9kdWN0cyk7CiRzbWFydHktPmFzc2lnbignZGVsaW1pdGVyJywkZGVsaW1pdGVyKTsKJHNtYXJ0eS0+YXNzaWduKCdiYXRjaHNpemUnLCRiYXRjaHNpemUpOwokc21hcnR5LT5hc3NpZ24oJ2NsZWFyZmllbGRzJywkY2xlYXJmaWVsZHMpOwokc21hcnR5LT5hc3NpZ24oJ2NsZWFyYXR0cmlicycsJGNsZWFyYXR0cmlicyk7CiRzbWFydHktPmFzc2lnbignY2xlYXJjYXRlZ29yaWVzJywkY2xlYXJjYXRlZ29yaWVzKTsKCiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdpbXBvcnRwcm9kdWN0cycsJHJldHVybmlkLGFycmF5KCksZmFsc2UsJ3Bvc3QnLCdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokeWVzbm8gPSBhcnJheSgnMCc9PiR0aGlzLT5MYW5nKCdubycpLCcxJz0+JHRoaXMtPkxhbmcoJ3llcycpKTsKJHNtYXJ0eS0+YXNzaWduKCd5ZXNubycsJHllc25vKTsKCiMKIyBQcm9jZXNzIFRoZSBUZW1wbGF0ZQojCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnaW1wb3J0cHJvZHVjdHMudHBsJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.movecategoryfield.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSkKewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbmVlZHBlcm1pc3Npb24nLCBhcnJheSgnTW9kaWZ5IFByb2R1Y3RzJykpKTsKCXJldHVybjsKfQoKLy8gaW5pdGlhbGl6ZQokZGlyID0gJ3VwJzsKJGNhdGlkID0gJyc7CiRmbGRuYW1lID0gJyc7CgppZiggaXNzZXQoJHBhcmFtc1snZGlyJ10pICkKICB7CiAgICAkZGlyID0gdHJpbSgkcGFyYW1zWydkaXInXSk7CiAgfQppZiggaXNzZXQoJHBhcmFtc1snY2F0aWQnXSkgKQogIHsKICAgICRjYXRpZCA9IChpbnQpJHBhcmFtc1snY2F0aWQnXTsKICB9CmlmKCBpc3NldCgkcGFyYW1zWydmbGRuYW1lJ10pICkKICB7CiAgICAkZmxkbmFtZSA9IHRyaW0oJHBhcmFtc1snZmxkbmFtZSddKTsKICB9CgokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcwogICAgICAgICAgIFdIRVJFIGNhdGVnb3J5X2lkID0gPyBBTkQgZmllbGRfbmFtZSA9ID8nOwokZGF0YSA9ICRkYi0+R2V0Um93KCRxdWVyeSxhcnJheSgkY2F0aWQsJGZsZG5hbWUpKTsKaWYoICFpc19hcnJheSgkZGF0YSkgKQogIHsKICAgIGVjaG8gIkRFQlVHOiAiLiRkYi0+c3FsLic8YnIvPic7IGRpZSgpOwogICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nKSk7CiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCdlZGl0Y2F0ZWdvcnlmaWVsZHMnLCRyZXR1cm5pZCxhcnJheSgnY2F0aWQnPT4kY2F0aWQpKTsKICB9CgokdGFibGUgPSBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMnOwpzd2l0Y2goJGRpcikKICB7CiAgY2FzZSAndXAnOgogICAgJHF1ZXJ5ID0gIlVQREFURSAkdGFibGUgU0VUIGZpZWxkX29yZGVyID0gZmllbGRfb3JkZXIgKyAxIFdIRVJFIGNhdGVnb3J5X2lkID0gPyBBTkQgZmllbGRfb3JkZXIgPSA/IjsKICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRjYXRpZCwkZGF0YVsnZmllbGRfb3JkZXInXS0xKSk7CiAgICAkcXVlcnkgPSAiVVBEQVRFICR0YWJsZSBTRVQgZmllbGRfb3JkZXIgPSBmaWVsZF9vcmRlciAtIDEgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/IEFORCBmaWVsZF9uYW1lID0gPyI7CiAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkY2F0aWQsJGRhdGFbJ2ZpZWxkX25hbWUnXSkpOwogICAgYnJlYWs7CgogIGNhc2UgJ2Rvd24nOgogICAgJHF1ZXJ5ID0gIlVQREFURSAkdGFibGUgU0VUIGZpZWxkX29yZGVyID0gZmllbGRfb3JkZXIgLSAxIFdIRVJFIGNhdGVnb3J5X2lkID0gPyBBTkQgZmllbGRfb3JkZXIgPSA/IjsKICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRjYXRpZCwkZGF0YVsnZmllbGRfb3JkZXInXSsxKSk7CiAgICAkcXVlcnkgPSAiVVBEQVRFICR0YWJsZSBTRVQgZmllbGRfb3JkZXIgPSBmaWVsZF9vcmRlciArIDEgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/IEFORCBmaWVsZF9uYW1lID0gPyI7CiAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkY2F0aWQsJGRhdGFbJ2ZpZWxkX25hbWUnXSkpOwogICAgYnJlYWs7CiAgfQoKJHRoaXMtPlJlZGlyZWN0KCRpZCwnZWRpdGNhdGVnb3J5ZmllbGRzJywkcmV0dXJuaWQsYXJyYXkoJ2NhdGlkJz0+JGNhdGlkKSk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.movefielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYignZmllbGRkZWZzJyk7Cgokb3JkZXIgPSAxOwokZmRpZCA9ICRwYXJhbXNbJ2ZkaWQnXTsKCiNHcmFiIG5lY2Vzc2FyeSBpbmZvIGZvciBmaXhpbmcgdGhlIGl0ZW1fb3JkZXIKJG9yZGVyID0gJGRiLT5HZXRPbmUoIlNFTEVDVCBpdGVtX29yZGVyIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMgV0hFUkUgaWQgPSA/IiwgYXJyYXkoJGZkaWQpKTsKJHRpbWUgPSAkZGItPkRCVGltZVN0YW1wKHRpbWUoKSk7CgppZiAoJHBhcmFtc1snZGlyJ10gPT0gImRvd24iKQp7CgkkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFNFVCBpdGVtX29yZGVyID0gKGl0ZW1fb3JkZXIgLSAxKSwgbW9kaWZpZWRfZGF0ZSA9ICcuJHRpbWUuJyBXSEVSRSBpdGVtX29yZGVyID0gPyc7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkb3JkZXIgKyAxKSk7CgkkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFNFVCBpdGVtX29yZGVyID0gKGl0ZW1fb3JkZXIgKyAxKSwgbW9kaWZpZWRfZGF0ZSA9ICcuJHRpbWUuJyBXSEVSRSBpZCA9ID8nOwoJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGZkaWQpKTsKfQplbHNlIGlmICgkcGFyYW1zWydkaXInXSA9PSAidXAiKQp7CgkkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFNFVCBpdGVtX29yZGVyID0gKGl0ZW1fb3JkZXIgKyAxKSwgbW9kaWZpZWRfZGF0ZSA9ICcuJHRpbWUuJyBXSEVSRSBpdGVtX29yZGVyID0gPyc7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkb3JkZXIgLSAxKSk7CgkkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFNFVCBpdGVtX29yZGVyID0gKGl0ZW1fb3JkZXIgLSAxKSwgbW9kaWZpZWRfZGF0ZSA9ICcuJHRpbWUuJyBXSEVSRSBpZCA9ID8nOwoJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGZkaWQpKTsKfQoKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.search.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKLy8KLy8gaW5pdGlhbGl6YXRpb24KLy8KJGlubGluZSA9IDA7CiRyZXN1bHRwYWdlID0gJHJldHVybmlkOwokdGhldGVtcGxhdGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX0RGTFRTRUFSQ0hfVEVNUExBVEUpOwokc2VhcmNoZmllbGQgPSAnJzsKJHNvcnRvcmRlciA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzb3J0b3JkZXInLCdhc2MnKTsKJHNvcnRieSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzb3J0YnknLCdwcm9kdWN0X25hbWUnKTsKJGZpZWxkcyA9IGFycmF5KCk7CnsKICAgIC8vIGdldCBhbGwgb2YgdGhlIGZpZWxkIGRlZmluaXRpb25zCiAgICAvLyBmaWx0ZXIgZm9yIHRob3NlIHRoYXQgY2FuIGJlIHVzZWQgaW4gc2VhcmNoCiAgICAvLyBhbmQgcHJlcGFyZSB0aGUgb2JqZWN0cyBzbyB0aGF0IHRoZXJlIGlzIGVub3VnaCBpbmZvIHRvIGJ1aWxkIGEgZm9ybS4KICAgICR0bXAgPSBwcm9kdWN0X3V0aWxzOjpnZXRfZmllbGRkZWZzKCk7CiAgICBpZiggY291bnQoJHRtcCkgKSB7CiAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKSB7CiAgICAgICAgICAgICRvYmogPSAkdG1wWyRpXTsKICAgICAgICAgICAgaWYoIGluX2FycmF5KCRvYmotPnR5cGUsYXJyYXkoJ3RleHRib3gnLCdjaGVja2JveCcsJ3RleHRhcmVhJywnZHJvcGRvd24nKSkgKSB7CiAgICAgICAgICAgICAgICBpZiggJG9iai0+dHlwZSA9PSAndGV4dCcgfHwgJG9iai0+dHlwZSA9PSAndGV4dGFyZWEnIHx8ICRvYmotPnR5cGUgPT0gJ3RleHRib3gnICkgJG9iai0+dHlwZSA9ICd0ZXh0JzsKICAgICAgICAgICAgICAgIGlmKCAkb2JqLT50eXBlID09ICdkcm9wZG93bicgKSAkb2JqLT5vcHRpb25zID0gY2dlX2FycmF5OjpoYXNoX3ByZXBlbmQoJG9iai0+b3B0aW9ucywtMSwkdGhpcy0+TGFuZygnYW55JykpOwogICAgICAgICAgICAgICAgJGZpZWxkc1skb2JqLT5uYW1lXSA9ICRvYmo7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCi8vCi8vIEdldCBwYXJhbWV0ZXJzCi8vCmlmKCBpc3NldCgkcGFyYW1zWydpbmxpbmUnXSkgJiYgJHBhcmFtc1snaW5saW5lJ10gIT0gMCApIHsKICAgICRpbmxpbmUgPSAxOwogICAgdW5zZXQoJHBhcmFtc1snaW5saW5lJ10pOwp9CmlmKCBpc3NldCgkcGFyYW1zWydyZXN1bHRwYWdlJ10pICkgewogICAgJHRtcCA9ICR0aGlzLT5yZXNvbHZlX2FsaWFzX29yX2lkKCRwYXJhbXNbJ3Jlc3VsdHBhZ2UnXSk7CiAgICBpZiggJHRtcCApIHsKICAgICAgICAkcmVzdWx0cGFnZSA9ICR0bXA7CiAgICAgICAgJGlubGluZSA9IDA7CiAgICB9CiAgICB1bnNldCgkcGFyYW1zWydyZXN1bHRwYWdlJ10pOwp9CmlmKCBpc3NldCgkcGFyYW1zWydzZWFyY2hmb3JtdGVtcGxhdGUnXSkgKSB7CiAgICAkdGhldGVtcGxhdGUgPSB0cmltKCRwYXJhbXNbJ3NlYXJjaGZvcm10ZW1wbGF0ZSddKTsKICAgIHVuc2V0KCRwYXJhbXNbJ3NlYXJjaGZvcm10ZW1wbGF0ZSddKTsKfQppZiggaXNzZXQoJHBhcmFtc1snc2VhcmNoZmllbGQnXSkgKSAkc2VhcmNoZmllbGQgPSB0cmltKCRwYXJhbXNbJ3NlYXJjaGZpZWxkJ10pOyAvLyB0aGlzIHBhcmFtIGlzIGRlcHJlY2F0ZWQKCiR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJHRoZXRlbXBsYXRlLCdzZWFyY2hfJyk7Ci8vCi8vIEdldCB0aGUgZmllbGQgZGVmaW5pdGlvbnMuCi8vCmlmKCAhZW1wdHkoJHNlYXJjaGZpZWxkKSApIHsKICAgICRzZWFyY2hmaWVsZHMgPSBhcnJheSgpOwogICAgJHRmaWVsZCA9IGV4cGxvZGUoJywnLCRzZWFyY2hmaWVsZCk7CiAgICBmb3JlYWNoKCAkdGZpZWxkIGFzICRvbmVmaWVsZCApIHsKICAgICAgICAkb25lZmllbGQgPSB0cmltKCRvbmVmaWVsZCk7CiAgICAgICAgaWYoICEkb25lZmllbGQgKSBjb250aW51ZTsKICAgICAgICBpZiggIWlzc2V0KCRmaWVsZHNbJG9uZWZpZWxkXSkgKSBjb250aW51ZTsKCiAgICAgICAgJHNlYXJjaGZpZWxkc1skb25lZmllbGRdID0gJGZpZWxkc1skb25lZmllbGRdOwogICAgfQogICAgaWYoIGNvdW50KCRzZWFyY2hmaWVsZHMpICkgJHRwbC0+YXNzaWduKCdzZWFyY2hwcm9wcycsJHNlYXJjaGZpZWxkcyk7Cn0KZWxzZSB7CiAgICBpZiggY291bnQoJGZpZWxkcykgKSAkdHBsLT5hc3NpZ24oJ3NlYXJjaHByb3BzJywkZmllbGRzKTsKfQoKJHRwbC0+YXNzaWduKCdjZF9vcmlncGFnZScsJHJldHVybmlkKTsKJHRwbC0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2RvX3NlYXJjaCcsJHJlc3VsdHBhZ2UsJHBhcmFtcywkaW5saW5lKSk7CiR0cGwtPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiR0cGwtPmRpc3BsYXkoKTsKCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/changelog.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgo8bGk+VmVyc2lvbiAxLjAgLSBEZWNlbWJlciwgMjAwNwogICA8cD5Jbml0aWFsIFJlbGVhc2U8L3A+CjwvbGk+CjxsaT5WZXJzaW9uIDEuMC4xIC0gSmFudWFyeSwgMjAwOAogICA8dWw+CiAgICAgPGxpPkFkZHMgcGFnaW5hdGlvbiBpbiBzdW1tYXJ5IHZpZXc8L2xpPgogICAgIDxsaT5GaXhlcyBhIHByb2JsZW0gd2l0aCBkdXBsaWNhdGUgbGlua3MgaW4gc3VtbWFyeSB2aWV3PC9saT4KICAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4wIC0gQXByaWwsIDIwMDgKICA8dWw+CiAgICAgPGxpPkFkZHMgaGllcmFyY2hpY2FsIGNhdGVnb3JpZXMgYXMgd2VsbCBhcyB0aGUgb3JpZ2luYWwgJ3RhZycgYmFzZWQgY2F0ZWdvcmllcy48YnIvPgogICAgICAgICBIaWVyYXJjaGljYWwgY2F0ZWdvcmllcyBjYW4gaGF2ZSBhbiBpbWFnZSBhcyB3ZWxsIGFzIGEgZGVzY3JpcHRpb24uPC9saT4KICAgICA8bGk+QWRkcyBtb3JlIGN1c3RvbSBmaWVsZCB0eXBlcyAoaW1hZ2UsIGRyb3Bkb3duKTxici8+CiAgICAgICAgIEluY2x1ZGluZyB0aHVtYm5haWwgZ2VuZXJhdGlvbi48L2xpPgogICAgIDxsaT5SZW1vdmUgdGhlIG9yaWdpbmFsIGltYWdlIGZpZWxkczwvbGk+CiAgICAgPGxpPkFkZHMgU2VhcmNoIG1vZHVsZSBjYXBhYmlsaXR5PC9saT4KICAgICA8bGk+QWRkcyBhIGhpZXJhcmNoaWNhbCBjYXRlZ29yeSB2aWV3IHdpdGggZHJpbGwgZG93biBzdXBwb3J0PC9saT4KICAgICA8bGk+TXVjaCwgbXVjaCBtb3JlPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjAuMSAtIEFwcmlsLCAyMDA4CiAgPHVsPgogICAgIDxsaT5GaXhlcyBudW1lcm91cyBzbWFsbCBlcnJvcnMuPC9saT4KICAgICA8bGk+Rml4IHRvIGFsbG93IHNwYWNlcyBhbmQgb3RoZXIgY2hhcmFjdGVycyBpbiBoaWVyYXJjaHkgbmFtZXM8L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMC4yIC0gQXVndXN0LCAyMDA4CiAgPHVsPgogICAgIDxsaT5CdWcgZml4ZXM8L2xpPgogICAgIDxsaT5Ob3cgUmVxdWlyZSBDR0V4dGVuc2lvbnMgMS45PC9saT4KICAgICA8bGk+QWRkIGEgY3VycmVuY3kgY29kZSBwcmVmZXJlbmNlPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEuMSAtIFNlcHRlbWJlciwgMjAwOAogIDx1bD4KICAgICA8bGk+QnVnIGZpeGVzPC9saT4KICAgICA8bGk+QWRkIHRoZSBhYmlsaXR5IHRvIGFzc29jaWF0ZSBzdGF0aWMgZGF0YSB3aXRoIGFueSBjYXRlZ29yeTwvbGk+CiAgICAgPGxpPkFkZCB0aGUgYWJpbGl0eSB0byBjb3B5IGNhdGVnb3JpZXM8L2xpPgogICAgIDxsaT5BZGQgdGhlIG9wdGlvbmFsIGFiaWxpdHkgdG8gd2F0ZXJtYXJrIHVwbG9hZGVkIGFiaWxpdGllcy48L2xpPgogICAgIDxsaT5BZGQgdGhlIG9wdGlvbmFsIGFiaWxpdHkgdG8gY2hhbmdlIHRoZSBsb2NhdGlvbiBvZiB0aGUgd2F0ZXJtYXJrIGluIHVwbG9hZGVkIGltYWdlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMS4yIC0gU2VwdGVtYmVyLCAyMDA4CiAgPHVsPgogICAgPGxpPlVwZGF0ZSBkZXBlbmRlbmNpZXMsIGFuZCByZW1vdmUgZGVidWcgc3RhdGVtZW50cy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMS4zIC0gU2VwdGVtYmVyLCAyMDA4CiAgPHVsPgogICAgPGxpPk1pbm9yIEJ1Z2ZpeGVzPC9saT4KICAgIDxsaT5DaGFuZ2UgdGhlIGRlbGltaXRlciBvbiB0aGUgYXR0cmlidXRlcyBkcm9wZG93bjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4yIC0gRGVjZW1iZXIsIDIwMDgKICA8dWw+CiAgICA8bGk+TnVtZXJvdXMgQnVnZml4ZXM8L2xpPgogICAgPGxpPlByb2R1Y3RzIG1vZHVsZSBub3cgaGFzIGEgQ2FydCBtb2R1bGUgcHJlZmVyZW5jZSwgd2hlcmUgeW91IGNhbiBwaWNrIGZyb20gdGhlIGF2YWlsYWJsZSBjYXJ0IG1vZHVsZXMuPC9saT4KICAgIDxsaT5Nb2RpZnkgZGVmYXVsdCB0ZW1wbGF0ZXMgc28gdGhhdCB0aGUgY2FydCBtb2R1bGUgcHJlZmVyZW5jZSBpcyB1c2VkLjwvbGk+CiAgICA8bGk+UmVtb3ZlIGFsbCByZWZlcmVuY2VzIHRvIHRheGVzIG9yIHNoaXBwaW5nIG1vZHVsZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjIuMSAtIEphbnVhcnksIDIwMDgKICA8dWw+CiAgICA8bGk+QWRkIGFiaWxpdHkgdG8gc29ydCBieSB3ZWlnaHQuPC9saT4KICAgIDxsaT5BZGQgYnJlYWRjcnVtYnMgdG8gZGV0YWlsIHZpZXcuPC9saT4KICAgIDxsaT5BZGQgY2F0ZWdvcnkgaW5mb3JtYXRpb24gdG8gc3VtbWFyeSB2aWV3LjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4yLjIgLSBKYW51YXJ5LCAyMDA4CiAgPHVsPgogICAgPGxpPkZpeCBtaW5vciBwcm9ibGVtIHdpdGggY2F0ZWdvcnkgaW5mb3JtYXRpb24gaW4gc3VtbWFyeSB2aWV3LjwvbGk+CiAgICA8bGk+QWRkIGNvbnNpc3RlbnQgb3JkZXJpbmcgdG8gR2V0Q2F0ZWdvcmllc0ZvclByb2R1Y3Q8L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMi40IC0gRmVicnVhcnksIDIwMDgKICA8dWw+CiAgICA8bGk+QWRkIElEIHRvIHRoZSBoaWVyYXJjaHkgdGFiPC9saT4KICAgIDxsaT5BZGQgdGhlIHskcGFyZW50fSB2YXJpYWJsZSB0byB0aGUgaGllcmFyY2h5IGRpc3BsYXkuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjMgLSBNYXJjaCwgMjAwOAogIDx1bD4KICAgIDxsaT5BZGQgQ1NWIEltcG9ydDwvbGk+CiAgICA8bGk+QWRkIGluZGV4ZXMgdG8gdGhlIHRhYmxlcywgc2hvdWxkIHJlc3VsdCBpbiBhIG1hc3NpdmUgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQuPC9saT4KICAgIDxsaT5BZGQgRXh0cmExIGFuZCBFeHRyYTIgZmllbGRzIHRvIHRoZSBoaWVyYXJjaHkgZGVmaW5pdGlvbi48L2xpPgogICAgPGxpPkZpeGVzIHByb2JsZW1zIHdpdGggZGF0ZXMKICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjMuMSAtIE1hcmNoLCAyMDA4CiAgPHVsPgogICAgPGxpPkZpeGVzIHRvIENTViBJbXBvcnQ8L2xpPgogICAgPGxpPkJ1bXAgbWluaW11bSBDTVMgVmVyc2lvbiB0byAxLjUuMzwvbGk+CiAgICA8bGk+QnVnZml4ZXMgdG8gZWRpdCBhdHRyaWJ1dGUgc2V0LjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi40IC0gSnVseSwgMjAwOAogIDx1bD4KICAgIDxsaT5GaXhlcyBFZGl0IEF0dHJpYnV0ZSBTZXQgUHJvYmxlbTwvbGk+CiAgICA8bGk+QWRkcyBHZXRDYXRlZ29yeSgpIG1ldGhvZC48L2xpPgogICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNC4yIC0gSnVseSwgMjAwOAogIDx1bD4KICAgIDxsaT5BZGRzIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBmb3IgdXNlIGJ5IHRoZSBQcm9tb3Rpb25zIGFuZCBvdGhlciBtb2R1bGVzLjwvbGk+CiAgICA8bGk+Rml4ZXMgbWlub3IgYnVncy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNC40IC0gU2VwdGVtYmVyLCAyMDA4CiAgPHVsPgogICAgPGxpPkZpeGVzIG1pbm9yIGJ1Z3MuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjQuNSAtIE5vdmVtYmVyLCAyMDA4CiAgPHVsPgogICAgPGxpPk1pbm9yIHNtYXJ0eSBpbXByb3ZlbWVudHMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjQuNyAtIERlY2VtYmVyLCAyMDA4CiAgPHVsPgogICAgPGxpPkFkZHMgYWJpbGl0eSB0byBzcGVjaWZ5IGEgdGVtcGxhdGUgZm9yIHByb2R1Y3QgYXR0cmlidXRlIHZhbHVlIGRpc3BsYXkgaW4gdGhlIGRyb3Bkb3ducy48L2xpPgogICAgPGxpPkFkZHMgdGhlIHNob3dhbGwgcGFyYW1ldGVyIChvcHRpb25hbCkgdG8gdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb24uPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjQuOCAtIEphbnVhcnksIDIwMDkKICA8dWw+CiAgICA8bGk+QWRkcyBoYW5kbGluZyBmb3IgZGlyZWN0IGFjY2VzcyB0byBkaXNhYmxlZC9kZWxldGVkL2ludmFsaWQgcHJvZHVjdCBkZXRhaWwgdmlld3MuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjUuMSAtIEZlYnJ1YXJ5LCAyMDEwCiAgPHVsPgogICAgPGxpPkltcHJvdmVtZW50cyBmb3IgTUFDIGZvcm1hdCBBU0NJSSBjc3YgZmlsZXMuPC9saT4KICAgIDxsaT5BZGRzIHByb2R1Y3QgYWxpYXMgbWVjaGFuaXNtLjwvbGk+CiAgICA8bGk+QWRkcyBicmVhZGNydW1iIHN1cHBvcnQgaW50byB0aGUgZGV0YWlsIHZpZXcuPC9saT4KICAgIDxsaT5BZGRzIHByZXR0eSB1cmwgc3VwcG9ydCBpbnRvIHRoZSBzZWFyY2ggcmVzdWx0cy48L2xpPgogICAgPGxpPkFkZHMgY2Fub25pY2FsIHN1cHBvcnQgaW50byB0aGUgZGV0YWlsIHZpZXcuPC9saT4KICAgIDxsaT5BZGRzIFNLVSBzdXBwb3J0LjwvbGk+CiAgICA8bGk+QnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi42IC0gTWFyY2gsIDIwMTkKIDx1bD4KICAgPGxpPk1vZGlmaWNhdGlvbnMgdG8gd29yayB3aXRoIG5ldyBFLWNvbW1lcmNlIHNldHVwLjwvbGk+CiAgIDxsaT5NYW55IGJ1ZyBmaXhlcy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi42LjEgLSBBcHJpbCwgMjAxOQogPHVsPgogICA8bGk+QnVnIEZpeGVzLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjYuMiAtIEFwcmlsLCAyMDE5CiA8dWw+CiAgIDxsaT5CdWcgRml4ZXMuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNyAtIEFwcmlsLCAyMDE5CiA8dWw+CiAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIHNvcnQgc3VtbWFyeSB2aWV3cyBieSBjdXN0b20gZmllbGRzLjwvbGk+CiAgIDxsaT5BZGRzIHRoZSBmaWVsZGxpc3QgYWN0aW9uIHRvIGFsbG93IGNyZWF0aW5nIG5hdmlnYXRpb25zIG9uIGN1c3RvbSBmaWVsZHMuPC9saT4KICAgPGxpPkFkZHMgc2VhcmNoIGFjdGlvbiB0byBhbGxvdyBzZWFyY2hpbmcgcHJvZHVjdHMuPC9saT4KICAgPGxpPlJlbW92ZSBjdXJyZW5jeSBjb2RlIGFuZCBvdGhlciBwcmVmZXJlbmNlcyB0aGF0IGFyZSBub3cgaW4gQ0dFY29tbWVyY2VCYXNlLi4uIHdlbGwgaWYgQ0dFY29tbWVyY2VCYXNlIGlzIGluc3RhbGxlZCBhbnl3YXlzLjwvbGk+CiAgIDxsaT5SZW1vdmUgc29tZSBwcmVmZXJlbmNlcyBhbmQgdGVtcGxhdGVzIHRoYXQgYXJlIG5vdyBob3N0ZWQgaW4gQ0dFY29tbWVyY2VCYXNlLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjcuMSAtIEFwcmlsLCAyMDEwCiA8dWw+CiAgIDxsaT5BZGRzIGEgcmV0dXJuIGxpbmsgdG8gdGhlIGNhdGVnb3J5IGZpZWxkcyBlZGl0IHBhZ2UuPC9saT4KICAgPGxpPkFkZHMgYSBkZXRhaWxfdXJsIHBhcmFtIHRvIHRoZSBjYXRlZ29yeSBsaXN0IHZpZXcuPC9saT4KICAgPGxpPkFkZHMgdGhlIGNhdGVnb3J5bGlzdGR0bHRlbXBsYXRlIHBhcmFtLjwvbGk+CiAgIDxsaT5DYXRlZ29yeSBMaXN0IHZpZXcgbm93IHVzZXMgdGhlIHJlc3VsdHBhZ2UgcGFyYW1ldGVyIGJ5IGRlZmF1bHQuPC9saT4KICAgPGxpPkZpeGVzIGEgcHJvYmxlbSB3aXRoIGRlbGV0aW5nIGZpbGVzIGluIHRoZSBlZGl0IHByb2R1Y3QgcGFnZS48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi43LjMgLSBBcHJpbCwgMjAxMAogPHVsPgogICA8bGk+UmVtb3ZlIHRoZSBpbWFnZSB3aGVuIHJlbW92aW5nIHRoZSBoaWVyYXJjaHkgaXRlbS48L2xpPgogICA8bGk+SW1wcm92ZW1lbnRzIHRvIGNhdGVnb3J5IGZpZWxkIG9yZGVyaW5nLjwvbGk+CiAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIHJlbmFtZSBjYXRlZ29yeSBmaWVsZHMuPC9saT4KICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi43LjQgLSBBcHJpbCwgMjAxMAogPHVsPgogICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjcuNSAtIE1heSwgMjAxMAogPHVsPgogICA8bGk+Rml4ZXMgcHJvYmxlbSB3aXRoIHNlYXJjaCB0ZW1wbGF0ZXMgb24gdXBncmFkZS48L2xpPgogICA8bGk+QWRkcyBjYXRlZ29yeSBmaWVsZCByZW9yZGVyaW5nLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjcuNiAtIE1heSwgMjAxMAogPHVsPgogICA8bGk+Rml4ZXMgdG8gY2F0ZWdvcnkgZmllbGQgcmUtb3JkZXJpbmcuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuOCAtIE1heSwgMjAxMAogPHVsPgogICA8bGk+QWRkcyBhIHRydWUgaGllcmFyY2h5IG1vZGUuPGJyLz4KICAgICAgIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyB3aWxsIGJyZWFrIGV4aXN0aW5nIHNpdGVzIHVzaW5nIHRoZSBvbGRlciBoaWVyYXJjaHkgdmlldy4gIFlvdSBzaG91bGQgcmVhZCB0aGUgaGVscCBmb3IgaW5mb3JtYXRpb24gYXMgdG8gaG93IHRvIHVzZSB0aGUgbmV3IHZpZXcuPC9saT4KICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gYWRkIGN1c3RvbSBmaWVsZHMgdG8gdGhlIGFkbWluIHNpZGUgcHJvZHVjdCB0YWJsZSB2aWV3LjwvbGk+CiAgIDxsaT5JbXByb3ZlcyB0aGUgQ1NWIGltcG9ydCBmdW5jdGlvbi48L2xpPgogICA8bGk+QWRkcyBhIG5ldyBkaW1lbnNpb24gZGF0YSBmaWVsZC48L2xpCiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjguMSAtIE1heSwgMjAxMAogPHVsPgogICA8bGk+TWlub3IgYnVnIGZpeGVzIHRvIGFkbWluIGRpc3BsYXkuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuOC4yIC0gTWF5LCAyMDEwCiA8dWw+CiAgIDxsaT5GaXggdG8gZGVmYXVsdCBoaWVyYXJjaHkgdGVtcGxhdGUuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuOC4yIC0gTWF5LCAyMDEwCiA8dWw+CiAgICA8bGk+QWRkcyBzdWJzY3JpcHRpb24gZmllbGQgdHlwZS48L2xpPgogICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICAgPGxpPkFkZGVkIHN1cHBvcnQgZm9yIGZpZWxkdmFsPSc6Om5vdG51bGw6Oicgb24gdGhlIHN1bW1hcnkgdmlldy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi44LjMgLSBKdWx5LCAyMDEwCiA8dWw+CiAgICA8bGk+UmVtb3ZlcyB0aGUgdXNlb2xkaGllcmFyY2h5IHBhcmFtIGZyb20gdGhlIGhpZXJhcmNoeSB2aWV3LjwvbGk+CiAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBmaWx0ZXIgdGhlIG91dHB1dCBpbiB0aGUgY2F0ZWdvcnlsaXN0IHZpZXcuPC9saT4KICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuOC40IC0gU2VwdGVtYmVyLCAyMDEwCiA8dWw+CiAgICA8bGk+QWRkcyBhIHByZWZlcmVuY2UgZm9yIHRoZSBkZWZhdWx0IHBhZ2UgbGltaXQgaW4gc3VtbWFyeSBtb2RlLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjguNSAtIFNlcHRlbWJlciwgMjAxMAogPHVsPgogICAgPGxpPkFkZHMgc29ydGluZyBjYXBhYmlsaXRpZXMgdG8gdGhlIGNhdGVnb3J5bGlzdCB2aWV3LjwvbGk+CiAgICA8bGk+UmUtd29ya3MgdGhlIGhpZXJhcmNoeSB2aWV3IChhZ2FpbikuICBUZW1wbGF0ZXMgd2lsbCBuZWVkIHRvIGNoYW5nZS48L2xpPgogICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gZXhwbGljaXRseSBsaXN0IGhpZXJhcmNoeSBpdGVtcyBpbiB0aGUgaGllcmFyY2h5IHZpZXcuPC9saT4KICAgIDxsaT5BZGRzIGNvbW1hIHNlcGFyYXRlZCBoaWVyYXJjaHkgY2FwYWJpbGl0eSB0byB0aGUgZGVmYXVsdCBzdW1tYXJ5IHZpZXcuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuOC42IC0gU2VwdGVtYmVyLCAyMDEwCiA8dWw+CiAgIDxsaT5GaXhlcyB0byBDU1YgaW1wb3J0IHN0dWZmLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjkgLSBEZWNlbWJlciwgMjAxMAogPHVsPgogICA8bGk+Rml4ZXMgc29tZSBpc3N1ZXMgcmVsYXRlZCB0byBFX1NUUklDVCBhbmQgRV9ERVBSRUNBVEVEPC9saT4KICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gY29weSBhdHRyaWJ1dGUgc2V0cyBmcm9tIGFub3RoZXIgcHJvZHVjdC48L2xpPgogICA8bGk+Rml4ZXMgdG8gQ1NWIGltcG9ydCBzdHVmZi48L2xpPgogICA8bGk+Rml4ZXMgdG8gZW50ZXJpbmcgYSBza3UgaW4gYXR0cmlidXRlcy48L2xpPgogICA8bGk+QWRkcyBoaWVyYXJjaHkgaW5mb3JtYXRpb24gdG8gc2VhcmNoLCBzdW1tYXJ5IGFuZCBkZXRhaWwgdmlld3MuPC9saT4KICAgPGxpPkZpeGVzIGFuIGlzc3VlIHdpdGggcGFnaW5hdGlvbiBpbiB0aGUgYWRtaW4gcGFuZWwgcHJvZHVjdHMgdGFiLjwvbGk+CiAgIDxsaT5GaXhlcyBhbiBpc3N1ZSB3aXRoIHBhZ2UgY291bnRzIGluIHRoZSBwcm9kdWN0cyB0YWIgd2hlbiBhIGN1c3RvbSBmaWVsZCBpcyBhZGRlZCB0byB0aGUgdmlldyBsaXN0LjwvbGk+CiAgIDxsaT5NYW55IG1vcmUgYnVnIGZpeGVzIGFuZCBtaW5vciBpbXByb3ZlbWVudHMuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTAuMiAtIEphbnVhcnksIDIwMTEKIDx1bD4KICAgPGxpPkFkZHMgY2Fub25pY2FsIFVSTCB0byB0aGUgaGllcmFyY2h5IGl0ZW0sIGluIHRoZSBoaWVyYXJjaHkgdmlldy48L2xpPgogICA8bGk+QWRkcyB0aGUgcHJvZHVjdGxpc3QgcGFyYW1ldGVyIHRvIG91dHB1dCBhIHN1bW1hcnkgdmlldyBvZiBzcGVjaWZpYyBwcm9kdWN0cy4gIERvZXMgbm90IHByb3ZpZGUgcGFnaW5hdGlvbiBvciBzb3J0aW5nLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEwLjMgLSBGZWJydWFyeSwgMjAxMQogPHVsPgogICA8bGk+Rml4ZXMgYnVnIHdpdGggZGVmYXVsdCB2aWV3Li4uLiB0aGFua3Mgc3Rpa2tpPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTAuNCAtIE1heSwgMjAxMQogPHVsPgogICA8bGk+TWlub3IgZml4IHRvIHRoZSB1bmluc3RhbGxlci48L2xpPgogICA8bGk+QWRkcyB0aGUgY2F0ZWdvcnlmaWVsZCBwYXJhbWV0ZXIgdG8gdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb24uPC9saT4KICAgPGxpPkZpeGVzIGEgcHJvYmxlbSB3aXRoIGNhdGVnb3J5IGZpZWxkcyB3aGVuIGNvcHlpbmcgYSBjYXRlZ29yeS48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xMC41IC0gTWF5LCAyMDExCiA8dWw+CiAgIDxsaT5NaW5vcmVzIGZpeCB0byBjYXRlb2dyeSBmaWVsZHMuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTEgLSBNYXksIDIwMTEKICA8dWw+CiAgICA8bGk+QWRkcyB0aGUgJnF1b3Q7ZXhjbHVkZWNhdCZxdW90OyBwYXJhbWV0ZXIuPC9saT4KICAgIDxsaT5SZW1vdmVzIHNvbWUgZXJyYW50IGRlYnVnIHN0YXRlbWVudHMgaW4gdGhlIGNhdGVnb3J5bGlzdCB2aWV3LjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xMiAtIE1heSwgMjAxMQogIDx1bD4KICAgIDxsaT5UaGVyZSBpcyBub3cgYW4gb3B0aW9uIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBTS1UgaXMgcmVxdWlyZWQgd2hlbiBhZGRpbmcvZWRpdGluZyBwcm9kdWN0cy9hdHRyaWJ1dGVzLjwvbGk+CiAgICA8bGk+VGhlIGltYWdlIHRodW1ibmFpbCwgcHJldmlldywgYW5kIHdhdGVybWFya2luZyBzdHVmZiBpcyBub3cgREVQUkVDQVRFRC48L2xpPgogICAgPGxpPkFkZGVkIHRoZSBhdHRyaWJzX2Z1bGwgc3R1ZmYgaW50byB0aGUgZGV0YWlsIGFuZCBzdW1tYXJ5IHZpZXdzLiAgIHRoZSBhdHRyaWJ1dGVzIG1lbWJlciBvZiBvdXRwdXQgb2JqZWN0cyBpcyBkZXByZWNhdGVkLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xMi4xIC0gTWF5LCAyMDExCiAgPHVsPgogICAgPGxpPkFkZHMgY2FjaGluZyBmb3IgZmllbGQgZGVmaW5pdGlvbnMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEzIC0gSnVseSwgMjAxMQogIDx1bD4KICAgPGxpPkFkZHMgYnVsayBhY3Rpb25zIGluIHRoZSBwcm9kdWN0IGxpc3QuPC9saT4KICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gZXhjbHVkZSBwcm9kdWN0cyBpbiBjZXJ0YWluIGNhdGVnb3JpZXMgZnJvbSB0aGUgcHJvZHVjdCBsaXN0LjwvbGk+CiAgIDxsaT5OdW1lcm91cyBtaW5vciBidWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEzLjEgLSBKdWx5LCAyMDExCiAgPHVsPgogICA8bGk+QnVnIEZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xMy4yIC0gSnVseSwgMjAxMQogIDx1bD4KICAgPGxpPkJ1ZyBGaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTMuMyAtIEF1Z3VzdCwgMjAxMQogIDx1bD4KICAgPGxpPkJ1ZyBGaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTQgLSBBdWd1c3QsIDIwMTEKICA8dWw+CiAgIDxsaT5BZGRzIGZ1bmN0aW9uYWxpdHkgZm9yIGR5bmFtaWNhbGx5IHJlb3JnYW5pemluZyB0aGUgaGllcmFyY2h5IHRyZWUuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjE1IC0gQXVndXN0LCAyMDExCiAgPHVsPgogICAgPGxpPkFkZHMgYSBzaW1wbGUgcXVhbnRpdHktb24taGFuZCBmaWVsZC48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTYgLSBBdWd1c3QsIDIwMTEKICA8dWw+CiAgICA8bGk+VmFzdGx5IGltcHJvdmVkIHNlYXJjaCBjYXBhYmlsaXRpZXMuICBOb3RlOiBleGlzdGluZyB0ZW1wbGF0ZXMgd2lsbCBuZWVkIHRvIGJlIHVwZGF0ZWQgYXMgZmllbGQgbmFtZXMgaGF2ZSBjaGFuZ2VkLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xNyAtIE1hcmNoLCAyMDEyCiAgPHVsPgogICAgPGxpPk51bWVyb3VzIGJ1ZyBmaXhlcy48L2xpPgogICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gZHVwbGljYXRlIGEgcHJvZHVjdC48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTguMiAtIEp1bmUsIDIwMTIKICA8dWw+CiAgICA8bGk+Q3JlYXRlcyBhIG5ldyBmbGV4aWJsZSBxdWVyeSBjbGFzcyBhbmQgbWF0Y2hpbmcgcmVzdWx0c2V0IGNsYXNzLjwvbGk+CiAgICA8bGk+RHJhbWF0aWMgcGVyZm9ybWFuY2UgaW1wcm92bWVudCBmb3Igc3VtbWFyeSB2aWV3cy48L2xpPgogICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gZXhwb3J0IHByb2R1Y3QgaW5mb3JtYXRpb24gdG8gY3N2LjwvbGk+CiAgICA8bGk+TWFueSBpbXByb3ZlbWVudHMgdG8gQ1NWIGltcG9ydC48L2xpPgogICAgPGxpPkFkZHMgYW4gb3B0aW9uYWwgbmV3IGRlZmF1bHQgYWN0aW9uIHdoaWNoIHNob3VsZCBiZSBtdWNoIGZhc3Rlci4gIE9yaWdpbmFsIGRlZmF1bHQgYWN0aW9uIHdpbGwgYmUgcmVtb3ZlZCBvdmVyIHRpbWUuPC9saT4KICAgIDxsaT5IZWxwIGlzIG5vdyBpbiBpdHMgb3duIGZpbGUuPC9saT4KICAgIDxsaT5BZGQgdGhlICdwYXJlbnRzJyBwYXJhbWV0ZXIgdG8gdGhlIGhpZXJhcmNoeSBhY3Rpb24uPC9saT4KICAgIDxsaT5OdW1lcm91cyBjYWNoaW5nIG9wdGltaXphdGlvbnMuPC9saT4KICAgIDxsaT5Nb3JlIGluZGV4ZXMgb24gdGhlIHByb2R1Y3RzIHRhYmxlIGR1cmluZyBpbnN0YWxsLjwvbGk+CiAgICA8bGk+TGFuZ3VhZ2UgY2hhbmdlLi4uIGluIG1vc3QgcGxhY2VzLCBwcm9kdWN0cyBhcmUgbm93IHJlZmVycmVkIHRvIGFzICZxdW90O2l0ZW1zJnF1b3Q7PC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjE4LjMgLSBKdWx5LCAyMDEyCiAgPHVsPgogICAgPGxpPk1pbm9yIEZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xOS54IC0gRGVjZW1iZXIsIDIwMTIKICA8cD48c3Ryb25nPk5PVEU6IENPTVBBVElCSUxJVFkgQlJPS0VOLiAgU09NRSBDSEFOR0VTIFJFUVVJUkVELjwvc3Ryb25nPjwvcD4KICA8cD48c3Ryb25nPk5PVEU6IFBIUCA1LjMueCBJUyBSRVFVSVJFRC48L3N0cm9uZz48L3A+CiAgPHVsPgogICAgPGxpPlJlbW92ZXMgdGhlIGVudGlyZSBhdHRyaWJ1dGUgbWVjaGFuaXNtIGFuZCByZXBsYWNlcyBpdCB3aXRoIGEgZmxhdCBsaXN0IG9mIG9wdGlvbnMuCiAgICAgIDxwPlRoaXMgbWVhbnMgdGhhdCBzaG9wcyB1c2luZyB0aGUgYXR0cmlidXRlcyB3aWxsIG5lZWQgdG8gYWRqdXN0IHRoZWlyIHByb2R1Y3RzIGJlY2F1c2UgaW5zdGVhZCBvZiBoYXZpbmcgbXVsdGlwbGUgJnF1b3Q7YXR0cmlidXRlcyZxdW90OyB0aGVyZSBpcyBub3cgb25lIGZsYXQgbGlzdCBvZiBvcHRpb25zIHdpdGggYSBzaW1wbGUgdGV4dCBmaWVsZCB0byBkZXNjcmliZSB0aGVtLjwvcD4KICAgICAgPHA+QWRkaXRpb25hbGx5LCBzdW1tYXJ5IGFuZCBkZXRhaWwgdGVtcGxhdGVzIHdoZXJlIGF0dHJpYnV0ZXMgd2VyZSBkaXNwbGF5ZWQgd2lsbCBuZWVkIGFkanVzdG1lbnQuPC9wPgogICAgPC9saT4KICAgIDxsaT5TS1VzIGFyZSBub3cgcmVxdWlyZWQgYnkgZGVmYXVsdCAoYXMgdGhleSBhcmUgbmVlZGVkIGZvciB0aGUgQ2FydDIgbW9kdWxlKTwvbGk+CiAgICA8bGk+TnVtZXJvdXMgYnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4yMCAtIE9jdG9iZXIsIDIwMTMKICA8dWw+CiAgICA8bGk+UmVmYWN0b3IgdGhlIHNlYXJjaCBhY3Rpb24KICAgICAgPHVsPgogICAgICAgIDxsaT5JbXByb3ZlZCBhYmlsaXR5IHRvIHNlYXJjaCBvbiBjdXN0b20gZmllbGRzPC9saT4KICAgICAgICA8bGk+SW1wcm92ZWQgYWJpbGl0eSB0byBzcGVjaWZ5IHNlYXJjaCBiZWhhdmlvciBpbiB0aGUgc2VhcmNoIHRlbXBsYXRlLCBhcyBvcHBvc2VkIHRvIHRoZSBQcm9kdWN0cyBUYWcuPC9saT4KICAgICAgICA8bGk+Rml4ZXMgcGFnaW5hdGlvbiBsaW5rcy48L2xpPgogICAgICAgIDxsaT5JbXByb3ZlZCBkb2N1bWVudGF0aW9uIGluIHRoZSBwcm90b3R5cGUgc2VhcmNoIGZvcm0gdGVtcGxhdGUuPC9saT4KICAgICAgICA8bGk+Tm93IHVzZXMgdGhlIHNhbWUgY2xhc3NlcyB1c2VkIGZvciBnZW5lcmF0aW5nIHN1bW1hcnkgdmlld3MuLi4uIHdpdGggdGhlIHNhbWUgb3B0aW1pemF0aW9ucy48L2xpPgogICAgICA8L3VsPgogICAgPC9saT4KICAgIDxsaT5OZXcgY29tcGFueWRpcmVjdG9yeSBmaWVsZCB0eXBlIGFsbG93aW5nIGxpbmtpbmcgYSBwcm9kdWN0IHRvIGEgY29tcGFueS4gIFVzZXMgYW4gYWpheHkgYXV0b2NvbXBsZXRlIG1lY2hhbmlzbSBmb3IgZmluZGluZyBDb21wYW5pZXMuPC9saT4KICAgIDxsaT5JbXByb3ZlZCBhZG1pbiBmaWx0ZXJpbmcKICAgICAgPHVsPgogICAgICAgIDxsaT5GaWx0ZXIgb24gU0tVIG9yIHByb2R1Y3QgbmFtZTwvbGk+CiAgICAgICAgPGxpPkFkZHMgYWJpbGl0eSB0byBzb3J0IG9uIGN1c3RvbSBmaWVsZHMgbnVtZXJpY2FsbHkuPC9saT4KICAgICAgICA8bGk+RmlsdGVyIGlzIG5vdyBzdG9yZWQgYXMgYSB1c2VyIHByZWZlcmVuY2UsIGFuZCBwYWdlIG51bWJlciBzdG9yZWQgaW4gdGhlIHNlc3Npb24uPC9saT4KICAgICAgPC91bD4KICAgIDwvbGk+CiAgICA8bGk+VHdlYWtzIHRvIENTViBJbXBvcnQ8L2xpPgogICAgPGxpPk51bWVyb3VzIG1pbm9yIGVuaGFuY2VtZW50czwvbGk+CiAgICA8bGk+QSBjb3VwbGUgbmV3IGRhdGFiYXNlIGluZGV4ZXMgZm9yIHBlcmZvcm1hbmNlLjwvbGk+CiAgICA8bGk+TnVtZXJvdXMgYnVnIGZpeGVzLjwvbGk+CiAgICA8bGk+TW9yZS4uLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4yMS54CiAgPHVsPgogICAgPGxpPkFkZHMgb3JkZXJpbmcgdG8gdGhlIHByb2R1Y3Qgb3B0aW9ucy48L2xpPgogICAgPGxpPlJld3JvdGUgdGhlIHByb2R1Y3Qgb3B0aW9ucyBkaWFsb2cuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjIyLngKICA8dWw+CiAgICA8bGk+UmV3b3JrIHRoZSBoaWVyYXJjaHkgYWN0aW9uIGFnYWluLi4uIG5vdyBzdXBwb3J0IHNob3dpbmcgaXRlbXMgZnJvbSBjaGlsZCBjYXRlZ29yaWVzIDxzdHJvbmc+YnkgZGVmYXVsdDwvc3Ryb25nPi4KICAgICAgPHA+PHN0cm9uZz5UaGlzIGlzIGEgY2hhbmdlIGluIGJlaGF2aW9yOjwvc3Ryb25nPiB5b3UgbWF5IG5lZWQgdG8gYWRqdXN0IHlvdXIgd2Vic2l0ZXMuPC9wPgogICAgICA8cD5UaGlzIG1lYW5zIHRoYXQgdGhlIGFjdGlvbj1oaWVyYXJjaHkgd2lsbCBub3cgZ2VuZXJhdGUgbGlua3MgdG8gc3VtbWFyeSB2aWV3cyB0aGF0IHdpbGwgc2hvdyB0aGUgcHJvZHVjdHMgb2YgdGhhdCBoaWVyYXJjaHksIGFuZCBpdHMgY2hpbGRyZW4uPC9wPgogICAgICA8cD5UbyByZXN0b3JlIHRoZSBvbGQgYmVoYXZpb3IgdGhlIG5vY2hpbGRyZW49MSBwYXJhbWV0ZXIgd2FzIGFkZGVkLiAgSG93ZXZlciwgdGhlIFVSTFMgZ2VuZXJhdGVkIHdoZW4gbm9jaGlsZHJlbj0xIGlzIGFkZGVkIHRvIHRoZSB0YWcgd2lsbCBub3QgYmUgcHJldHR5LjwvcD4KICAgIDwvbGk+CiAgICA8bGk+SW1wcm92ZW1lbnRzIHRvIEFTQ0lJIGltcG9ydGluZzoKICAgICAgPHA+Tm93IHN1cHBvcnRzIGltcG9ydGluZyBwcm9kdWN0IG9wdGlvbnMgcHJvcGVybHkuPC9wPgogICAgICA8cD5Ob3cgc3VwcG9ydCBpbXBvcnRpbmcgY2F0ZWdvcmllcyB3aXRoIHRoZSBkZWxpbWl0ZXIgaW4gaXRzIG5hbWUuPC9wPgogICAgPC9saT4KICAgIDxsaT5iZWdpbiByZW1vdmluZyBkZXByZWNhdGVkIGZ1bmN0aW9ucyBhbmQgZnVuY3Rpb25hbGl0eS48L2xpPgogICAgPGxpPkltcHJvdmVtZW50cyB0byB0aGUgb3JkZXJ1cGRhdGVkIGV2ZW50IHdydCB1cGRhdGluZyBxdWFudGl0eSBvbiBoYW5kLjwvbGk+CiAgPC91bD4KPC9saT4+CgogICA8bGk+VmVyc2lvbiAyLjIzLngKICAgICA8ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+PHN0cm9uZz5XQVJOSU5HOjwvc3Ryb25nPiBUaGUgcHJvZHVjdHMgbW9kdWxlIHdpbGwgbm8gbG9uZ2VyIGdlbmVyYXRlIHByZXZpZXcgYW5kIHRodW1ibmFpbCBpbWFnZXMgb24gaW1hZ2UgdXBsb2FkLiAgVXNlIENHU21hcnRJbWFnZSBmb3IgdGhpcyBwdXJwb3NlLgogICAgICAgVGhvdWdoIHRoZXJlIGlzIHN0aWxsIHNvbWUgY29kZSB0byB3b3JrIHdpdGggcHJldmlldyBhbmQgdGh1bWIgaW1hZ2VzIGlmIHRoZXkgYWxyZWFkeSBleGlzdC4gIFRoaXMgZnVuY3Rpb25hbGl0eSB3aWxsIGJlIHJlbW92ZWQgYXQgYSBsYXRlciBkYXRlLjwvZGl2PgogICAgIDx1bD4KICAgPC9saT4KCiAgIDxsaT5WZXJzaW9uIDIuMjQKICAgICA8dWw+CiAgICAgICA8bGk+QWRkIFVSTCBzbHVnIGZ1bmN0aW9uYWxpdHkgbGlrZSB3aGF0IENHQmxvZyBhbmQgTmV3cyBIYXZlLjwvbGk+CiAgICAgICA8bGk+Q29kZSBjbGVhbnVwIGFuZCB0ZW1wbGF0ZSBmaXhlcy48L2xpPgogICAgICAgPGxpPlJld29yayAoYWdhaW4pIHRoZSBoaWVyYXJjaHkgdmlldy48L2xpPgogICAgICAgPGxpPk51bWVyb3VzIGJ1ZyBmaXhlcy48L2xpPgogICAgIDwvdWw+CiAgIDwvbGk+CjwvdWw+Cg==]]></data>
	</file>
	<file>
	  <filename>/docs/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMywgMjkgSnVuZSAyMDA3CgogQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cDovL2ZzZi5vcmcvPgogRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCiBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVhbWJsZQoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgYSBmcmVlLCBjb3B5bGVmdCBsaWNlbnNlIGZvcgpzb2Z0d2FyZSBhbmQgb3RoZXIga2luZHMgb2Ygd29ya3MuCgogIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhbmQgb3RoZXIgcHJhY3RpY2FsIHdvcmtzIGFyZSBkZXNpZ25lZAp0byB0YWtlIGF3YXkgeW91ciBmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgdGhlIHdvcmtzLiAgQnkgY29udHJhc3QsCnRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBpbnRlbmRlZCB0byBndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRvCnNoYXJlIGFuZCBjaGFuZ2UgYWxsIHZlcnNpb25zIG9mIGEgcHJvZ3JhbS0tdG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgZnJlZQpzb2Z0d2FyZSBmb3IgYWxsIGl0cyB1c2Vycy4gIFdlLCB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB1c2UgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3N0IG9mIG91ciBzb2Z0d2FyZTsgaXQgYXBwbGllcyBhbHNvIHRvCmFueSBvdGhlciB3b3JrIHJlbGVhc2VkIHRoaXMgd2F5IGJ5IGl0cyBhdXRob3JzLiAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoZW0gaWYgeW91IHdpc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91CndhbnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQgaW4gbmV3CmZyZWUgcHJvZ3JhbXMsIGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdzLgoKICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIHByZXZlbnQgb3RoZXJzIGZyb20gZGVueWluZyB5b3UKdGhlc2UgcmlnaHRzIG9yIGFza2luZyB5b3UgdG8gc3VycmVuZGVyIHRoZSByaWdodHMuICBUaGVyZWZvcmUsIHlvdSBoYXZlCmNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZgp5b3UgbW9kaWZ5IGl0OiByZXNwb25zaWJpbGl0aWVzIHRvIHJlc3BlY3QgdGhlIGZyZWVkb20gb2Ygb3RoZXJzLgoKICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyCmdyYXRpcyBvciBmb3IgYSBmZWUsIHlvdSBtdXN0IHBhc3Mgb24gdG8gdGhlIHJlY2lwaWVudHMgdGhlIHNhbWUKZnJlZWRvbXMgdGhhdCB5b3UgcmVjZWl2ZWQuICBZb3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGV5LCB0b28sIHJlY2VpdmUKb3IgY2FuIGdldCB0aGUgc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkKa25vdyB0aGVpciByaWdodHMuCgogIERldmVsb3BlcnMgdGhhdCB1c2UgdGhlIEdOVSBHUEwgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczoKKDEpIGFzc2VydCBjb3B5cmlnaHQgb24gdGhlIHNvZnR3YXJlLCBhbmQgKDIpIG9mZmVyIHlvdSB0aGlzIExpY2Vuc2UKZ2l2aW5nIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSBpdC4KCiAgRm9yIHRoZSBkZXZlbG9wZXJzJyBhbmQgYXV0aG9ycycgcHJvdGVjdGlvbiwgdGhlIEdQTCBjbGVhcmx5IGV4cGxhaW5zCnRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZSBzb2Z0d2FyZS4gIEZvciBib3RoIHVzZXJzJyBhbmQKYXV0aG9ycycgc2FrZSwgdGhlIEdQTCByZXF1aXJlcyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIGJlIG1hcmtlZCBhcwpjaGFuZ2VkLCBzbyB0aGF0IHRoZWlyIHByb2JsZW1zIHdpbGwgbm90IGJlIGF0dHJpYnV0ZWQgZXJyb25lb3VzbHkgdG8KYXV0aG9ycyBvZiBwcmV2aW91cyB2ZXJzaW9ucy4KCiAgU29tZSBkZXZpY2VzIGFyZSBkZXNpZ25lZCB0byBkZW55IHVzZXJzIGFjY2VzcyB0byBpbnN0YWxsIG9yIHJ1bgptb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGUgc29mdHdhcmUgaW5zaWRlIHRoZW0sIGFsdGhvdWdoIHRoZSBtYW51ZmFjdHVyZXIKY2FuIGRvIHNvLiAgVGhpcyBpcyBmdW5kYW1lbnRhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBhaW0gb2YKcHJvdGVjdGluZyB1c2VycycgZnJlZWRvbSB0byBjaGFuZ2UgdGhlIHNvZnR3YXJlLiAgVGhlIHN5c3RlbWF0aWMKcGF0dGVybiBvZiBzdWNoIGFidXNlIG9jY3VycyBpbiB0aGUgYXJlYSBvZiBwcm9kdWN0cyBmb3IgaW5kaXZpZHVhbHMgdG8KdXNlLCB3aGljaCBpcyBwcmVjaXNlbHkgd2hlcmUgaXQgaXMgbW9zdCB1bmFjY2VwdGFibGUuICBUaGVyZWZvcmUsIHdlCmhhdmUgZGVzaWduZWQgdGhpcyB2ZXJzaW9uIG9mIHRoZSBHUEwgdG8gcHJvaGliaXQgdGhlIHByYWN0aWNlIGZvciB0aG9zZQpwcm9kdWN0cy4gIElmIHN1Y2ggcHJvYmxlbXMgYXJpc2Ugc3Vic3RhbnRpYWxseSBpbiBvdGhlciBkb21haW5zLCB3ZQpzdGFuZCByZWFkeSB0byBleHRlbmQgdGhpcyBwcm92aXNpb24gdG8gdGhvc2UgZG9tYWlucyBpbiBmdXR1cmUgdmVyc2lvbnMKb2YgdGhlIEdQTCwgYXMgbmVlZGVkIHRvIHByb3RlY3QgdGhlIGZyZWVkb20gb2YgdXNlcnMuCgogIEZpbmFsbHksIGV2ZXJ5IHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlIHBhdGVudHMuClN0YXRlcyBzaG91bGQgbm90IGFsbG93IHBhdGVudHMgdG8gcmVzdHJpY3QgZGV2ZWxvcG1lbnQgYW5kIHVzZSBvZgpzb2Z0d2FyZSBvbiBnZW5lcmFsLXB1cnBvc2UgY29tcHV0ZXJzLCBidXQgaW4gdGhvc2UgdGhhdCBkbywgd2Ugd2lzaCB0bwphdm9pZCB0aGUgc3BlY2lhbCBkYW5nZXIgdGhhdCBwYXRlbnRzIGFwcGxpZWQgdG8gYSBmcmVlIHByb2dyYW0gY291bGQKbWFrZSBpdCBlZmZlY3RpdmVseSBwcm9wcmlldGFyeS4gIFRvIHByZXZlbnQgdGhpcywgdGhlIEdQTCBhc3N1cmVzIHRoYXQKcGF0ZW50cyBjYW5ub3QgYmUgdXNlZCB0byByZW5kZXIgdGhlIHByb2dyYW0gbm9uLWZyZWUuCgogIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kCm1vZGlmaWNhdGlvbiBmb2xsb3cuCgogICAgICAgICAgICAgICAgICAgICAgIFRFUk1TIEFORCBDT05ESVRJT05TCgogIDAuIERlZmluaXRpb25zLgoKICAiVGhpcyBMaWNlbnNlIiByZWZlcnMgdG8gdmVyc2lvbiAzIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KCiAgIkNvcHlyaWdodCIgYWxzbyBtZWFucyBjb3B5cmlnaHQtbGlrZSBsYXdzIHRoYXQgYXBwbHkgdG8gb3RoZXIga2luZHMgb2YKd29ya3MsIHN1Y2ggYXMgc2VtaWNvbmR1Y3RvciBtYXNrcy4KCiAgIlRoZSBQcm9ncmFtIiByZWZlcnMgdG8gYW55IGNvcHlyaWdodGFibGUgd29yayBsaWNlbnNlZCB1bmRlciB0aGlzCkxpY2Vuc2UuICBFYWNoIGxpY2Vuc2VlIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4gICJMaWNlbnNlZXMiIGFuZAoicmVjaXBpZW50cyIgbWF5IGJlIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXphdGlvbnMuCgogIFRvICJtb2RpZnkiIGEgd29yayBtZWFucyB0byBjb3B5IGZyb20gb3IgYWRhcHQgYWxsIG9yIHBhcnQgb2YgdGhlIHdvcmsKaW4gYSBmYXNoaW9uIHJlcXVpcmluZyBjb3B5cmlnaHQgcGVybWlzc2lvbiwgb3RoZXIgdGhhbiB0aGUgbWFraW5nIG9mIGFuCmV4YWN0IGNvcHkuICBUaGUgcmVzdWx0aW5nIHdvcmsgaXMgY2FsbGVkIGEgIm1vZGlmaWVkIHZlcnNpb24iIG9mIHRoZQplYXJsaWVyIHdvcmsgb3IgYSB3b3JrICJiYXNlZCBvbiIgdGhlIGVhcmxpZXIgd29yay4KCiAgQSAiY292ZXJlZCB3b3JrIiBtZWFucyBlaXRoZXIgdGhlIHVubW9kaWZpZWQgUHJvZ3JhbSBvciBhIHdvcmsgYmFzZWQKb24gdGhlIFByb2dyYW0uCgogIFRvICJwcm9wYWdhdGUiIGEgd29yayBtZWFucyB0byBkbyBhbnl0aGluZyB3aXRoIGl0IHRoYXQsIHdpdGhvdXQKcGVybWlzc2lvbiwgd291bGQgbWFrZSB5b3UgZGlyZWN0bHkgb3Igc2Vjb25kYXJpbHkgbGlhYmxlIGZvcgppbmZyaW5nZW1lbnQgdW5kZXIgYXBwbGljYWJsZSBjb3B5cmlnaHQgbGF3LCBleGNlcHQgZXhlY3V0aW5nIGl0IG9uIGEKY29tcHV0ZXIgb3IgbW9kaWZ5aW5nIGEgcHJpdmF0ZSBjb3B5LiAgUHJvcGFnYXRpb24gaW5jbHVkZXMgY29weWluZywKZGlzdHJpYnV0aW9uICh3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uKSwgbWFraW5nIGF2YWlsYWJsZSB0byB0aGUKcHVibGljLCBhbmQgaW4gc29tZSBjb3VudHJpZXMgb3RoZXIgYWN0aXZpdGllcyBhcyB3ZWxsLgoKICBUbyAiY29udmV5IiBhIHdvcmsgbWVhbnMgYW55IGtpbmQgb2YgcHJvcGFnYXRpb24gdGhhdCBlbmFibGVzIG90aGVyCnBhcnRpZXMgdG8gbWFrZSBvciByZWNlaXZlIGNvcGllcy4gIE1lcmUgaW50ZXJhY3Rpb24gd2l0aCBhIHVzZXIgdGhyb3VnaAphIGNvbXB1dGVyIG5ldHdvcmssIHdpdGggbm8gdHJhbnNmZXIgb2YgYSBjb3B5LCBpcyBub3QgY29udmV5aW5nLgoKICBBbiBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZSBkaXNwbGF5cyAiQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcyIKdG8gdGhlIGV4dGVudCB0aGF0IGl0IGluY2x1ZGVzIGEgY29udmVuaWVudCBhbmQgcHJvbWluZW50bHkgdmlzaWJsZQpmZWF0dXJlIHRoYXQgKDEpIGRpc3BsYXlzIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UsIGFuZCAoMikKdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhlIHdvcmsgKGV4Y2VwdCB0byB0aGUKZXh0ZW50IHRoYXQgd2FycmFudGllcyBhcmUgcHJvdmlkZWQpLCB0aGF0IGxpY2Vuc2VlcyBtYXkgY29udmV5IHRoZQp3b3JrIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIGhvdyB0byB2aWV3IGEgY29weSBvZiB0aGlzIExpY2Vuc2UuICBJZgp0aGUgaW50ZXJmYWNlIHByZXNlbnRzIGEgbGlzdCBvZiB1c2VyIGNvbW1hbmRzIG9yIG9wdGlvbnMsIHN1Y2ggYXMgYQptZW51LCBhIHByb21pbmVudCBpdGVtIGluIHRoZSBsaXN0IG1lZXRzIHRoaXMgY3JpdGVyaW9uLgoKICAxLiBTb3VyY2UgQ29kZS4KCiAgVGhlICJzb3VyY2UgY29kZSIgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsKZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgIk9iamVjdCBjb2RlIiBtZWFucyBhbnkgbm9uLXNvdXJjZQpmb3JtIG9mIGEgd29yay4KCiAgQSAiU3RhbmRhcmQgSW50ZXJmYWNlIiBtZWFucyBhbiBpbnRlcmZhY2UgdGhhdCBlaXRoZXIgaXMgYW4gb2ZmaWNpYWwKc3RhbmRhcmQgZGVmaW5lZCBieSBhIHJlY29nbml6ZWQgc3RhbmRhcmRzIGJvZHksIG9yLCBpbiB0aGUgY2FzZSBvZgppbnRlcmZhY2VzIHNwZWNpZmllZCBmb3IgYSBwYXJ0aWN1bGFyIHByb2dyYW1taW5nIGxhbmd1YWdlLCBvbmUgdGhhdAppcyB3aWRlbHkgdXNlZCBhbW9uZyBkZXZlbG9wZXJzIHdvcmtpbmcgaW4gdGhhdCBsYW5ndWFnZS4KCiAgVGhlICJTeXN0ZW0gTGlicmFyaWVzIiBvZiBhbiBleGVjdXRhYmxlIHdvcmsgaW5jbHVkZSBhbnl0aGluZywgb3RoZXIKdGhhbiB0aGUgd29yayBhcyBhIHdob2xlLCB0aGF0IChhKSBpcyBpbmNsdWRlZCBpbiB0aGUgbm9ybWFsIGZvcm0gb2YKcGFja2FnaW5nIGEgTWFqb3IgQ29tcG9uZW50LCBidXQgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhhdCBNYWpvcgpDb21wb25lbnQsIGFuZCAoYikgc2VydmVzIG9ubHkgdG8gZW5hYmxlIHVzZSBvZiB0aGUgd29yayB3aXRoIHRoYXQKTWFqb3IgQ29tcG9uZW50LCBvciB0byBpbXBsZW1lbnQgYSBTdGFuZGFyZCBJbnRlcmZhY2UgZm9yIHdoaWNoIGFuCmltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluIHNvdXJjZSBjb2RlIGZvcm0uICBBCiJNYWpvciBDb21wb25lbnQiLCBpbiB0aGlzIGNvbnRleHQsIG1lYW5zIGEgbWFqb3IgZXNzZW50aWFsIGNvbXBvbmVudAooa2VybmVsLCB3aW5kb3cgc3lzdGVtLCBhbmQgc28gb24pIG9mIHRoZSBzcGVjaWZpYyBvcGVyYXRpbmcgc3lzdGVtCihpZiBhbnkpIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHdvcmsgcnVucywgb3IgYSBjb21waWxlciB1c2VkIHRvCnByb2R1Y2UgdGhlIHdvcmssIG9yIGFuIG9iamVjdCBjb2RlIGludGVycHJldGVyIHVzZWQgdG8gcnVuIGl0LgoKICBUaGUgIkNvcnJlc3BvbmRpbmcgU291cmNlIiBmb3IgYSB3b3JrIGluIG9iamVjdCBjb2RlIGZvcm0gbWVhbnMgYWxsCnRoZSBzb3VyY2UgY29kZSBuZWVkZWQgdG8gZ2VuZXJhdGUsIGluc3RhbGwsIGFuZCAoZm9yIGFuIGV4ZWN1dGFibGUKd29yaykgcnVuIHRoZSBvYmplY3QgY29kZSBhbmQgdG8gbW9kaWZ5IHRoZSB3b3JrLCBpbmNsdWRpbmcgc2NyaXB0cyB0bwpjb250cm9sIHRob3NlIGFjdGl2aXRpZXMuICBIb3dldmVyLCBpdCBkb2VzIG5vdCBpbmNsdWRlIHRoZSB3b3JrJ3MKU3lzdGVtIExpYnJhcmllcywgb3IgZ2VuZXJhbC1wdXJwb3NlIHRvb2xzIG9yIGdlbmVyYWxseSBhdmFpbGFibGUgZnJlZQpwcm9ncmFtcyB3aGljaCBhcmUgdXNlZCB1bm1vZGlmaWVkIGluIHBlcmZvcm1pbmcgdGhvc2UgYWN0aXZpdGllcyBidXQKd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSB3b3JrLiAgRm9yIGV4YW1wbGUsIENvcnJlc3BvbmRpbmcgU291cmNlCmluY2x1ZGVzIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBzb3VyY2UgZmlsZXMgZm9yCnRoZSB3b3JrLCBhbmQgdGhlIHNvdXJjZSBjb2RlIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljYWxseQpsaW5rZWQgc3VicHJvZ3JhbXMgdGhhdCB0aGUgd29yayBpcyBzcGVjaWZpY2FsbHkgZGVzaWduZWQgdG8gcmVxdWlyZSwKc3VjaCBhcyBieSBpbnRpbWF0ZSBkYXRhIGNvbW11bmljYXRpb24gb3IgY29udHJvbCBmbG93IGJldHdlZW4gdGhvc2UKc3VicHJvZ3JhbXMgYW5kIG90aGVyIHBhcnRzIG9mIHRoZSB3b3JrLgoKICBUaGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgbmVlZCBub3QgaW5jbHVkZSBhbnl0aGluZyB0aGF0IHVzZXJzCmNhbiByZWdlbmVyYXRlIGF1dG9tYXRpY2FsbHkgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgQ29ycmVzcG9uZGluZwpTb3VyY2UuCgogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYSB3b3JrIGluIHNvdXJjZSBjb2RlIGZvcm0gaXMgdGhhdApzYW1lIHdvcmsuCgogIDIuIEJhc2ljIFBlcm1pc3Npb25zLgoKICBBbGwgcmlnaHRzIGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlIGFyZSBncmFudGVkIGZvciB0aGUgdGVybSBvZgpjb3B5cmlnaHQgb24gdGhlIFByb2dyYW0sIGFuZCBhcmUgaXJyZXZvY2FibGUgcHJvdmlkZWQgdGhlIHN0YXRlZApjb25kaXRpb25zIGFyZSBtZXQuICBUaGlzIExpY2Vuc2UgZXhwbGljaXRseSBhZmZpcm1zIHlvdXIgdW5saW1pdGVkCnBlcm1pc3Npb24gdG8gcnVuIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0uICBUaGUgb3V0cHV0IGZyb20gcnVubmluZyBhCmNvdmVyZWQgd29yayBpcyBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZSBvbmx5IGlmIHRoZSBvdXRwdXQsIGdpdmVuIGl0cwpjb250ZW50LCBjb25zdGl0dXRlcyBhIGNvdmVyZWQgd29yay4gIFRoaXMgTGljZW5zZSBhY2tub3dsZWRnZXMgeW91cgpyaWdodHMgb2YgZmFpciB1c2Ugb3Igb3RoZXIgZXF1aXZhbGVudCwgYXMgcHJvdmlkZWQgYnkgY29weXJpZ2h0IGxhdy4KCiAgWW91IG1heSBtYWtlLCBydW4gYW5kIHByb3BhZ2F0ZSBjb3ZlcmVkIHdvcmtzIHRoYXQgeW91IGRvIG5vdApjb252ZXksIHdpdGhvdXQgY29uZGl0aW9ucyBzbyBsb25nIGFzIHlvdXIgbGljZW5zZSBvdGhlcndpc2UgcmVtYWlucwppbiBmb3JjZS4gIFlvdSBtYXkgY29udmV5IGNvdmVyZWQgd29ya3MgdG8gb3RoZXJzIGZvciB0aGUgc29sZSBwdXJwb3NlCm9mIGhhdmluZyB0aGVtIG1ha2UgbW9kaWZpY2F0aW9ucyBleGNsdXNpdmVseSBmb3IgeW91LCBvciBwcm92aWRlIHlvdQp3aXRoIGZhY2lsaXRpZXMgZm9yIHJ1bm5pbmcgdGhvc2Ugd29ya3MsIHByb3ZpZGVkIHRoYXQgeW91IGNvbXBseSB3aXRoCnRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UgaW4gY29udmV5aW5nIGFsbCBtYXRlcmlhbCBmb3Igd2hpY2ggeW91IGRvCm5vdCBjb250cm9sIGNvcHlyaWdodC4gIFRob3NlIHRodXMgbWFraW5nIG9yIHJ1bm5pbmcgdGhlIGNvdmVyZWQgd29ya3MKZm9yIHlvdSBtdXN0IGRvIHNvIGV4Y2x1c2l2ZWx5IG9uIHlvdXIgYmVoYWxmLCB1bmRlciB5b3VyIGRpcmVjdGlvbgphbmQgY29udHJvbCwgb24gdGVybXMgdGhhdCBwcm9oaWJpdCB0aGVtIGZyb20gbWFraW5nIGFueSBjb3BpZXMgb2YKeW91ciBjb3B5cmlnaHRlZCBtYXRlcmlhbCBvdXRzaWRlIHRoZWlyIHJlbGF0aW9uc2hpcCB3aXRoIHlvdS4KCiAgQ29udmV5aW5nIHVuZGVyIGFueSBvdGhlciBjaXJjdW1zdGFuY2VzIGlzIHBlcm1pdHRlZCBzb2xlbHkgdW5kZXIKdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGJlbG93LiAgU3VibGljZW5zaW5nIGlzIG5vdCBhbGxvd2VkOyBzZWN0aW9uIDEwCm1ha2VzIGl0IHVubmVjZXNzYXJ5LgoKICAzLiBQcm90ZWN0aW5nIFVzZXJzJyBMZWdhbCBSaWdodHMgRnJvbSBBbnRpLUNpcmN1bXZlbnRpb24gTGF3LgoKICBObyBjb3ZlcmVkIHdvcmsgc2hhbGwgYmUgZGVlbWVkIHBhcnQgb2YgYW4gZWZmZWN0aXZlIHRlY2hub2xvZ2ljYWwKbWVhc3VyZSB1bmRlciBhbnkgYXBwbGljYWJsZSBsYXcgZnVsZmlsbGluZyBvYmxpZ2F0aW9ucyB1bmRlciBhcnRpY2xlCjExIG9mIHRoZSBXSVBPIGNvcHlyaWdodCB0cmVhdHkgYWRvcHRlZCBvbiAyMCBEZWNlbWJlciAxOTk2LCBvcgpzaW1pbGFyIGxhd3MgcHJvaGliaXRpbmcgb3IgcmVzdHJpY3RpbmcgY2lyY3VtdmVudGlvbiBvZiBzdWNoCm1lYXN1cmVzLgoKICBXaGVuIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHlvdSB3YWl2ZSBhbnkgbGVnYWwgcG93ZXIgdG8gZm9yYmlkCmNpcmN1bXZlbnRpb24gb2YgdGVjaG5vbG9naWNhbCBtZWFzdXJlcyB0byB0aGUgZXh0ZW50IHN1Y2ggY2lyY3VtdmVudGlvbgppcyBlZmZlY3RlZCBieSBleGVyY2lzaW5nIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2Ugd2l0aCByZXNwZWN0IHRvCnRoZSBjb3ZlcmVkIHdvcmssIGFuZCB5b3UgZGlzY2xhaW0gYW55IGludGVudGlvbiB0byBsaW1pdCBvcGVyYXRpb24gb3IKbW9kaWZpY2F0aW9uIG9mIHRoZSB3b3JrIGFzIGEgbWVhbnMgb2YgZW5mb3JjaW5nLCBhZ2FpbnN0IHRoZSB3b3JrJ3MKdXNlcnMsIHlvdXIgb3IgdGhpcmQgcGFydGllcycgbGVnYWwgcmlnaHRzIHRvIGZvcmJpZCBjaXJjdW12ZW50aW9uIG9mCnRlY2hub2xvZ2ljYWwgbWVhc3VyZXMuCgogIDQuIENvbnZleWluZyBWZXJiYXRpbSBDb3BpZXMuCgogIFlvdSBtYXkgY29udmV5IHZlcmJhdGltIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSdzIHNvdXJjZSBjb2RlIGFzIHlvdQpyZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdSBjb25zcGljdW91c2x5IGFuZAphcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2U7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIHN0YXRpbmcgdGhhdCB0aGlzIExpY2Vuc2UgYW5kIGFueQpub24tcGVybWlzc2l2ZSB0ZXJtcyBhZGRlZCBpbiBhY2NvcmQgd2l0aCBzZWN0aW9uIDcgYXBwbHkgdG8gdGhlIGNvZGU7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIG9mIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsgYW5kIGdpdmUgYWxsCnJlY2lwaWVudHMgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgoKICBZb3UgbWF5IGNoYXJnZSBhbnkgcHJpY2Ugb3Igbm8gcHJpY2UgZm9yIGVhY2ggY29weSB0aGF0IHlvdSBjb252ZXksCmFuZCB5b3UgbWF5IG9mZmVyIHN1cHBvcnQgb3Igd2FycmFudHkgcHJvdGVjdGlvbiBmb3IgYSBmZWUuCgogIDUuIENvbnZleWluZyBNb2RpZmllZCBTb3VyY2UgVmVyc2lvbnMuCgogIFlvdSBtYXkgY29udmV5IGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSwgb3IgdGhlIG1vZGlmaWNhdGlvbnMgdG8KcHJvZHVjZSBpdCBmcm9tIHRoZSBQcm9ncmFtLCBpbiB0aGUgZm9ybSBvZiBzb3VyY2UgY29kZSB1bmRlciB0aGUKdGVybXMgb2Ygc2VjdGlvbiA0LCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgeW91IG1vZGlmaWVkCiAgICBpdCwgYW5kIGdpdmluZyBhIHJlbGV2YW50IGRhdGUuCgogICAgYikgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgaXQgaXMKICAgIHJlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZSBhbmQgYW55IGNvbmRpdGlvbnMgYWRkZWQgdW5kZXIgc2VjdGlvbgogICAgNy4gIFRoaXMgcmVxdWlyZW1lbnQgbW9kaWZpZXMgdGhlIHJlcXVpcmVtZW50IGluIHNlY3Rpb24gNCB0bwogICAgImtlZXAgaW50YWN0IGFsbCBub3RpY2VzIi4KCiAgICBjKSBZb3UgbXVzdCBsaWNlbnNlIHRoZSBlbnRpcmUgd29yaywgYXMgYSB3aG9sZSwgdW5kZXIgdGhpcwogICAgTGljZW5zZSB0byBhbnlvbmUgd2hvIGNvbWVzIGludG8gcG9zc2Vzc2lvbiBvZiBhIGNvcHkuICBUaGlzCiAgICBMaWNlbnNlIHdpbGwgdGhlcmVmb3JlIGFwcGx5LCBhbG9uZyB3aXRoIGFueSBhcHBsaWNhYmxlIHNlY3Rpb24gNwogICAgYWRkaXRpb25hbCB0ZXJtcywgdG8gdGhlIHdob2xlIG9mIHRoZSB3b3JrLCBhbmQgYWxsIGl0cyBwYXJ0cywKICAgIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgYXJlIHBhY2thZ2VkLiAgVGhpcyBMaWNlbnNlIGdpdmVzIG5vCiAgICBwZXJtaXNzaW9uIHRvIGxpY2Vuc2UgdGhlIHdvcmsgaW4gYW55IG90aGVyIHdheSwgYnV0IGl0IGRvZXMgbm90CiAgICBpbnZhbGlkYXRlIHN1Y2ggcGVybWlzc2lvbiBpZiB5b3UgaGF2ZSBzZXBhcmF0ZWx5IHJlY2VpdmVkIGl0LgoKICAgIGQpIElmIHRoZSB3b3JrIGhhcyBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZXMsIGVhY2ggbXVzdCBkaXNwbGF5CiAgICBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzOyBob3dldmVyLCBpZiB0aGUgUHJvZ3JhbSBoYXMgaW50ZXJhY3RpdmUKICAgIGludGVyZmFjZXMgdGhhdCBkbyBub3QgZGlzcGxheSBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzLCB5b3VyCiAgICB3b3JrIG5lZWQgbm90IG1ha2UgdGhlbSBkbyBzby4KCiAgQSBjb21waWxhdGlvbiBvZiBhIGNvdmVyZWQgd29yayB3aXRoIG90aGVyIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudAp3b3Jrcywgd2hpY2ggYXJlIG5vdCBieSB0aGVpciBuYXR1cmUgZXh0ZW5zaW9ucyBvZiB0aGUgY292ZXJlZCB3b3JrLAphbmQgd2hpY2ggYXJlIG5vdCBjb21iaW5lZCB3aXRoIGl0IHN1Y2ggYXMgdG8gZm9ybSBhIGxhcmdlciBwcm9ncmFtLAppbiBvciBvbiBhIHZvbHVtZSBvZiBhIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2FsbGVkIGFuCiJhZ2dyZWdhdGUiIGlmIHRoZSBjb21waWxhdGlvbiBhbmQgaXRzIHJlc3VsdGluZyBjb3B5cmlnaHQgYXJlIG5vdAp1c2VkIHRvIGxpbWl0IHRoZSBhY2Nlc3Mgb3IgbGVnYWwgcmlnaHRzIG9mIHRoZSBjb21waWxhdGlvbidzIHVzZXJzCmJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtzIHBlcm1pdC4gIEluY2x1c2lvbiBvZiBhIGNvdmVyZWQgd29yawppbiBhbiBhZ2dyZWdhdGUgZG9lcyBub3QgY2F1c2UgdGhpcyBMaWNlbnNlIHRvIGFwcGx5IHRvIHRoZSBvdGhlcgpwYXJ0cyBvZiB0aGUgYWdncmVnYXRlLgoKICA2LiBDb252ZXlpbmcgTm9uLVNvdXJjZSBGb3Jtcy4KCiAgWW91IG1heSBjb252ZXkgYSBjb3ZlcmVkIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciB0aGUgdGVybXMKb2Ygc2VjdGlvbnMgNCBhbmQgNSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBjb252ZXkgdGhlCm1hY2hpbmUtcmVhZGFibGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwKaW4gb25lIG9mIHRoZXNlIHdheXM6CgogICAgYSkgQ29udmV5IHRoZSBvYmplY3QgY29kZSBpbiwgb3IgZW1ib2RpZWQgaW4sIGEgcGh5c2ljYWwgcHJvZHVjdAogICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGZpeGVkIG9uIGEgZHVyYWJsZSBwaHlzaWNhbCBtZWRpdW0KICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLgoKICAgIGIpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHByb2R1Y3QKICAgIChpbmNsdWRpbmcgYSBwaHlzaWNhbCBkaXN0cmlidXRpb24gbWVkaXVtKSwgYWNjb21wYW5pZWQgYnkgYQogICAgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzIGFuZCB2YWxpZCBmb3IgYXMKICAgIGxvbmcgYXMgeW91IG9mZmVyIHNwYXJlIHBhcnRzIG9yIGN1c3RvbWVyIHN1cHBvcnQgZm9yIHRoYXQgcHJvZHVjdAogICAgbW9kZWwsIHRvIGdpdmUgYW55b25lIHdobyBwb3NzZXNzZXMgdGhlIG9iamVjdCBjb2RlIGVpdGhlciAoMSkgYQogICAgY29weSBvZiB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9yIGFsbCB0aGUgc29mdHdhcmUgaW4gdGhlCiAgICBwcm9kdWN0IHRoYXQgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIG9uIGEgZHVyYWJsZSBwaHlzaWNhbAogICAgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLCBmb3IgYSBwcmljZSBubwogICAgbW9yZSB0aGFuIHlvdXIgcmVhc29uYWJsZSBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyB0aGlzCiAgICBjb252ZXlpbmcgb2Ygc291cmNlLCBvciAoMikgYWNjZXNzIHRvIGNvcHkgdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmcm9tIGEgbmV0d29yayBzZXJ2ZXIgYXQgbm8gY2hhcmdlLgoKICAgIGMpIENvbnZleSBpbmRpdmlkdWFsIGNvcGllcyBvZiB0aGUgb2JqZWN0IGNvZGUgd2l0aCBhIGNvcHkgb2YgdGhlCiAgICB3cml0dGVuIG9mZmVyIHRvIHByb3ZpZGUgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhpcwogICAgYWx0ZXJuYXRpdmUgaXMgYWxsb3dlZCBvbmx5IG9jY2FzaW9uYWxseSBhbmQgbm9uY29tbWVyY2lhbGx5LCBhbmQKICAgIG9ubHkgaWYgeW91IHJlY2VpdmVkIHRoZSBvYmplY3QgY29kZSB3aXRoIHN1Y2ggYW4gb2ZmZXIsIGluIGFjY29yZAogICAgd2l0aCBzdWJzZWN0aW9uIDZiLgoKICAgIGQpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIGZyb20gYSBkZXNpZ25hdGVkCiAgICBwbGFjZSAoZ3JhdGlzIG9yIGZvciBhIGNoYXJnZSksIGFuZCBvZmZlciBlcXVpdmFsZW50IGFjY2VzcyB0byB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGluIHRoZSBzYW1lIHdheSB0aHJvdWdoIHRoZSBzYW1lIHBsYWNlIGF0IG5vCiAgICBmdXJ0aGVyIGNoYXJnZS4gIFlvdSBuZWVkIG5vdCByZXF1aXJlIHJlY2lwaWVudHMgdG8gY29weSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLiAgSWYgdGhlIHBsYWNlIHRvCiAgICBjb3B5IHRoZSBvYmplY3QgY29kZSBpcyBhIG5ldHdvcmsgc2VydmVyLCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UKICAgIG1heSBiZSBvbiBhIGRpZmZlcmVudCBzZXJ2ZXIgKG9wZXJhdGVkIGJ5IHlvdSBvciBhIHRoaXJkIHBhcnR5KQogICAgdGhhdCBzdXBwb3J0cyBlcXVpdmFsZW50IGNvcHlpbmcgZmFjaWxpdGllcywgcHJvdmlkZWQgeW91IG1haW50YWluCiAgICBjbGVhciBkaXJlY3Rpb25zIG5leHQgdG8gdGhlIG9iamVjdCBjb2RlIHNheWluZyB3aGVyZSB0byBmaW5kIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBSZWdhcmRsZXNzIG9mIHdoYXQgc2VydmVyIGhvc3RzIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UsIHlvdSByZW1haW4gb2JsaWdhdGVkIHRvIGVuc3VyZSB0aGF0IGl0IGlzCiAgICBhdmFpbGFibGUgZm9yIGFzIGxvbmcgYXMgbmVlZGVkIHRvIHNhdGlzZnkgdGhlc2UgcmVxdWlyZW1lbnRzLgoKICAgIGUpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgdXNpbmcgcGVlci10by1wZWVyIHRyYW5zbWlzc2lvbiwgcHJvdmlkZWQKICAgIHlvdSBpbmZvcm0gb3RoZXIgcGVlcnMgd2hlcmUgdGhlIG9iamVjdCBjb2RlIGFuZCBDb3JyZXNwb25kaW5nCiAgICBTb3VyY2Ugb2YgdGhlIHdvcmsgYXJlIGJlaW5nIG9mZmVyZWQgdG8gdGhlIGdlbmVyYWwgcHVibGljIGF0IG5vCiAgICBjaGFyZ2UgdW5kZXIgc3Vic2VjdGlvbiA2ZC4KCiAgQSBzZXBhcmFibGUgcG9ydGlvbiBvZiB0aGUgb2JqZWN0IGNvZGUsIHdob3NlIHNvdXJjZSBjb2RlIGlzIGV4Y2x1ZGVkCmZyb20gdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIGFzIGEgU3lzdGVtIExpYnJhcnksIG5lZWQgbm90IGJlCmluY2x1ZGVkIGluIGNvbnZleWluZyB0aGUgb2JqZWN0IGNvZGUgd29yay4KCiAgQSAiVXNlciBQcm9kdWN0IiBpcyBlaXRoZXIgKDEpIGEgImNvbnN1bWVyIHByb2R1Y3QiLCB3aGljaCBtZWFucyBhbnkKdGFuZ2libGUgcGVyc29uYWwgcHJvcGVydHkgd2hpY2ggaXMgbm9ybWFsbHkgdXNlZCBmb3IgcGVyc29uYWwsIGZhbWlseSwKb3IgaG91c2Vob2xkIHB1cnBvc2VzLCBvciAoMikgYW55dGhpbmcgZGVzaWduZWQgb3Igc29sZCBmb3IgaW5jb3Jwb3JhdGlvbgppbnRvIGEgZHdlbGxpbmcuICBJbiBkZXRlcm1pbmluZyB3aGV0aGVyIGEgcHJvZHVjdCBpcyBhIGNvbnN1bWVyIHByb2R1Y3QsCmRvdWJ0ZnVsIGNhc2VzIHNoYWxsIGJlIHJlc29sdmVkIGluIGZhdm9yIG9mIGNvdmVyYWdlLiAgRm9yIGEgcGFydGljdWxhcgpwcm9kdWN0IHJlY2VpdmVkIGJ5IGEgcGFydGljdWxhciB1c2VyLCAibm9ybWFsbHkgdXNlZCIgcmVmZXJzIHRvIGEKdHlwaWNhbCBvciBjb21tb24gdXNlIG9mIHRoYXQgY2xhc3Mgb2YgcHJvZHVjdCwgcmVnYXJkbGVzcyBvZiB0aGUgc3RhdHVzCm9mIHRoZSBwYXJ0aWN1bGFyIHVzZXIgb3Igb2YgdGhlIHdheSBpbiB3aGljaCB0aGUgcGFydGljdWxhciB1c2VyCmFjdHVhbGx5IHVzZXMsIG9yIGV4cGVjdHMgb3IgaXMgZXhwZWN0ZWQgdG8gdXNlLCB0aGUgcHJvZHVjdC4gIEEgcHJvZHVjdAppcyBhIGNvbnN1bWVyIHByb2R1Y3QgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBwcm9kdWN0IGhhcyBzdWJzdGFudGlhbApjb21tZXJjaWFsLCBpbmR1c3RyaWFsIG9yIG5vbi1jb25zdW1lciB1c2VzLCB1bmxlc3Mgc3VjaCB1c2VzIHJlcHJlc2VudAp0aGUgb25seSBzaWduaWZpY2FudCBtb2RlIG9mIHVzZSBvZiB0aGUgcHJvZHVjdC4KCiAgIkluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiIgZm9yIGEgVXNlciBQcm9kdWN0IG1lYW5zIGFueSBtZXRob2RzLApwcm9jZWR1cmVzLCBhdXRob3JpemF0aW9uIGtleXMsIG9yIG90aGVyIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIGluc3RhbGwKYW5kIGV4ZWN1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgYSBjb3ZlcmVkIHdvcmsgaW4gdGhhdCBVc2VyIFByb2R1Y3QgZnJvbQphIG1vZGlmaWVkIHZlcnNpb24gb2YgaXRzIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhlIGluZm9ybWF0aW9uIG11c3QKc3VmZmljZSB0byBlbnN1cmUgdGhhdCB0aGUgY29udGludWVkIGZ1bmN0aW9uaW5nIG9mIHRoZSBtb2RpZmllZCBvYmplY3QKY29kZSBpcyBpbiBubyBjYXNlIHByZXZlbnRlZCBvciBpbnRlcmZlcmVkIHdpdGggc29sZWx5IGJlY2F1c2UKbW9kaWZpY2F0aW9uIGhhcyBiZWVuIG1hZGUuCgogIElmIHlvdSBjb252ZXkgYW4gb2JqZWN0IGNvZGUgd29yayB1bmRlciB0aGlzIHNlY3Rpb24gaW4sIG9yIHdpdGgsIG9yCnNwZWNpZmljYWxseSBmb3IgdXNlIGluLCBhIFVzZXIgUHJvZHVjdCwgYW5kIHRoZSBjb252ZXlpbmcgb2NjdXJzIGFzCnBhcnQgb2YgYSB0cmFuc2FjdGlvbiBpbiB3aGljaCB0aGUgcmlnaHQgb2YgcG9zc2Vzc2lvbiBhbmQgdXNlIG9mIHRoZQpVc2VyIFByb2R1Y3QgaXMgdHJhbnNmZXJyZWQgdG8gdGhlIHJlY2lwaWVudCBpbiBwZXJwZXR1aXR5IG9yIGZvciBhCmZpeGVkIHRlcm0gKHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyYWN0ZXJpemVkKSwgdGhlCkNvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkIHVuZGVyIHRoaXMgc2VjdGlvbiBtdXN0IGJlIGFjY29tcGFuaWVkCmJ5IHRoZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24uICBCdXQgdGhpcyByZXF1aXJlbWVudCBkb2VzIG5vdCBhcHBseQppZiBuZWl0aGVyIHlvdSBub3IgYW55IHRoaXJkIHBhcnR5IHJldGFpbnMgdGhlIGFiaWxpdHkgdG8gaW5zdGFsbAptb2RpZmllZCBvYmplY3QgY29kZSBvbiB0aGUgVXNlciBQcm9kdWN0IChmb3IgZXhhbXBsZSwgdGhlIHdvcmsgaGFzCmJlZW4gaW5zdGFsbGVkIGluIFJPTSkuCgogIFRoZSByZXF1aXJlbWVudCB0byBwcm92aWRlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiBkb2VzIG5vdCBpbmNsdWRlIGEKcmVxdWlyZW1lbnQgdG8gY29udGludWUgdG8gcHJvdmlkZSBzdXBwb3J0IHNlcnZpY2UsIHdhcnJhbnR5LCBvciB1cGRhdGVzCmZvciBhIHdvcmsgdGhhdCBoYXMgYmVlbiBtb2RpZmllZCBvciBpbnN0YWxsZWQgYnkgdGhlIHJlY2lwaWVudCwgb3IgZm9yCnRoZSBVc2VyIFByb2R1Y3QgaW4gd2hpY2ggaXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5zdGFsbGVkLiAgQWNjZXNzIHRvIGEKbmV0d29yayBtYXkgYmUgZGVuaWVkIHdoZW4gdGhlIG1vZGlmaWNhdGlvbiBpdHNlbGYgbWF0ZXJpYWxseSBhbmQKYWR2ZXJzZWx5IGFmZmVjdHMgdGhlIG9wZXJhdGlvbiBvZiB0aGUgbmV0d29yayBvciB2aW9sYXRlcyB0aGUgcnVsZXMgYW5kCnByb3RvY29scyBmb3IgY29tbXVuaWNhdGlvbiBhY3Jvc3MgdGhlIG5ldHdvcmsuCgogIENvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkLCBhbmQgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIHByb3ZpZGVkLAppbiBhY2NvcmQgd2l0aCB0aGlzIHNlY3Rpb24gbXVzdCBiZSBpbiBhIGZvcm1hdCB0aGF0IGlzIHB1YmxpY2x5CmRvY3VtZW50ZWQgKGFuZCB3aXRoIGFuIGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluCnNvdXJjZSBjb2RlIGZvcm0pLCBhbmQgbXVzdCByZXF1aXJlIG5vIHNwZWNpYWwgcGFzc3dvcmQgb3Iga2V5IGZvcgp1bnBhY2tpbmcsIHJlYWRpbmcgb3IgY29weWluZy4KCiAgNy4gQWRkaXRpb25hbCBUZXJtcy4KCiAgIkFkZGl0aW9uYWwgcGVybWlzc2lvbnMiIGFyZSB0ZXJtcyB0aGF0IHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMKTGljZW5zZSBieSBtYWtpbmcgZXhjZXB0aW9ucyBmcm9tIG9uZSBvciBtb3JlIG9mIGl0cyBjb25kaXRpb25zLgpBZGRpdGlvbmFsIHBlcm1pc3Npb25zIHRoYXQgYXJlIGFwcGxpY2FibGUgdG8gdGhlIGVudGlyZSBQcm9ncmFtIHNoYWxsCmJlIHRyZWF0ZWQgYXMgdGhvdWdoIHRoZXkgd2VyZSBpbmNsdWRlZCBpbiB0aGlzIExpY2Vuc2UsIHRvIHRoZSBleHRlbnQKdGhhdCB0aGV5IGFyZSB2YWxpZCB1bmRlciBhcHBsaWNhYmxlIGxhdy4gIElmIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMKYXBwbHkgb25seSB0byBwYXJ0IG9mIHRoZSBQcm9ncmFtLCB0aGF0IHBhcnQgbWF5IGJlIHVzZWQgc2VwYXJhdGVseQp1bmRlciB0aG9zZSBwZXJtaXNzaW9ucywgYnV0IHRoZSBlbnRpcmUgUHJvZ3JhbSByZW1haW5zIGdvdmVybmVkIGJ5CnRoaXMgTGljZW5zZSB3aXRob3V0IHJlZ2FyZCB0byB0aGUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucy4KCiAgV2hlbiB5b3UgY29udmV5IGEgY29weSBvZiBhIGNvdmVyZWQgd29yaywgeW91IG1heSBhdCB5b3VyIG9wdGlvbgpyZW1vdmUgYW55IGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgZnJvbSB0aGF0IGNvcHksIG9yIGZyb20gYW55IHBhcnQgb2YKaXQuICAoQWRkaXRpb25hbCBwZXJtaXNzaW9ucyBtYXkgYmUgd3JpdHRlbiB0byByZXF1aXJlIHRoZWlyIG93bgpyZW1vdmFsIGluIGNlcnRhaW4gY2FzZXMgd2hlbiB5b3UgbW9kaWZ5IHRoZSB3b3JrLikgIFlvdSBtYXkgcGxhY2UKYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBvbiBtYXRlcmlhbCwgYWRkZWQgYnkgeW91IHRvIGEgY292ZXJlZCB3b3JrLApmb3Igd2hpY2ggeW91IGhhdmUgb3IgY2FuIGdpdmUgYXBwcm9wcmlhdGUgY29weXJpZ2h0IHBlcm1pc3Npb24uCgogIE5vdHdpdGhzdGFuZGluZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGljZW5zZSwgZm9yIG1hdGVyaWFsIHlvdQphZGQgdG8gYSBjb3ZlcmVkIHdvcmssIHlvdSBtYXkgKGlmIGF1dGhvcml6ZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXJzIG9mCnRoYXQgbWF0ZXJpYWwpIHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSB3aXRoIHRlcm1zOgoKICAgIGEpIERpc2NsYWltaW5nIHdhcnJhbnR5IG9yIGxpbWl0aW5nIGxpYWJpbGl0eSBkaWZmZXJlbnRseSBmcm9tIHRoZQogICAgdGVybXMgb2Ygc2VjdGlvbnMgMTUgYW5kIDE2IG9mIHRoaXMgTGljZW5zZTsgb3IKCiAgICBiKSBSZXF1aXJpbmcgcHJlc2VydmF0aW9uIG9mIHNwZWNpZmllZCByZWFzb25hYmxlIGxlZ2FsIG5vdGljZXMgb3IKICAgIGF1dGhvciBhdHRyaWJ1dGlvbnMgaW4gdGhhdCBtYXRlcmlhbCBvciBpbiB0aGUgQXBwcm9wcmlhdGUgTGVnYWwKICAgIE5vdGljZXMgZGlzcGxheWVkIGJ5IHdvcmtzIGNvbnRhaW5pbmcgaXQ7IG9yCgogICAgYykgUHJvaGliaXRpbmcgbWlzcmVwcmVzZW50YXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGF0IG1hdGVyaWFsLCBvcgogICAgcmVxdWlyaW5nIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMgb2Ygc3VjaCBtYXRlcmlhbCBiZSBtYXJrZWQgaW4KICAgIHJlYXNvbmFibGUgd2F5cyBhcyBkaWZmZXJlbnQgZnJvbSB0aGUgb3JpZ2luYWwgdmVyc2lvbjsgb3IKCiAgICBkKSBMaW1pdGluZyB0aGUgdXNlIGZvciBwdWJsaWNpdHkgcHVycG9zZXMgb2YgbmFtZXMgb2YgbGljZW5zb3JzIG9yCiAgICBhdXRob3JzIG9mIHRoZSBtYXRlcmlhbDsgb3IKCiAgICBlKSBEZWNsaW5pbmcgdG8gZ3JhbnQgcmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgZm9yIHVzZSBvZiBzb21lCiAgICB0cmFkZSBuYW1lcywgdHJhZGVtYXJrcywgb3Igc2VydmljZSBtYXJrczsgb3IKCiAgICBmKSBSZXF1aXJpbmcgaW5kZW1uaWZpY2F0aW9uIG9mIGxpY2Vuc29ycyBhbmQgYXV0aG9ycyBvZiB0aGF0CiAgICBtYXRlcmlhbCBieSBhbnlvbmUgd2hvIGNvbnZleXMgdGhlIG1hdGVyaWFsIChvciBtb2RpZmllZCB2ZXJzaW9ucyBvZgogICAgaXQpIHdpdGggY29udHJhY3R1YWwgYXNzdW1wdGlvbnMgb2YgbGlhYmlsaXR5IHRvIHRoZSByZWNpcGllbnQsIGZvcgogICAgYW55IGxpYWJpbGl0eSB0aGF0IHRoZXNlIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIGRpcmVjdGx5IGltcG9zZSBvbgogICAgdGhvc2UgbGljZW5zb3JzIGFuZCBhdXRob3JzLgoKICBBbGwgb3RoZXIgbm9uLXBlcm1pc3NpdmUgYWRkaXRpb25hbCB0ZXJtcyBhcmUgY29uc2lkZXJlZCAiZnVydGhlcgpyZXN0cmljdGlvbnMiIHdpdGhpbiB0aGUgbWVhbmluZyBvZiBzZWN0aW9uIDEwLiAgSWYgdGhlIFByb2dyYW0gYXMgeW91CnJlY2VpdmVkIGl0LCBvciBhbnkgcGFydCBvZiBpdCwgY29udGFpbnMgYSBub3RpY2Ugc3RhdGluZyB0aGF0IGl0IGlzCmdvdmVybmVkIGJ5IHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIGEgdGVybSB0aGF0IGlzIGEgZnVydGhlcgpyZXN0cmljdGlvbiwgeW91IG1heSByZW1vdmUgdGhhdCB0ZXJtLiAgSWYgYSBsaWNlbnNlIGRvY3VtZW50IGNvbnRhaW5zCmEgZnVydGhlciByZXN0cmljdGlvbiBidXQgcGVybWl0cyByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcgdW5kZXIgdGhpcwpMaWNlbnNlLCB5b3UgbWF5IGFkZCB0byBhIGNvdmVyZWQgd29yayBtYXRlcmlhbCBnb3Zlcm5lZCBieSB0aGUgdGVybXMKb2YgdGhhdCBsaWNlbnNlIGRvY3VtZW50LCBwcm92aWRlZCB0aGF0IHRoZSBmdXJ0aGVyIHJlc3RyaWN0aW9uIGRvZXMKbm90IHN1cnZpdmUgc3VjaCByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcuCgogIElmIHlvdSBhZGQgdGVybXMgdG8gYSBjb3ZlcmVkIHdvcmsgaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uLCB5b3UKbXVzdCBwbGFjZSwgaW4gdGhlIHJlbGV2YW50IHNvdXJjZSBmaWxlcywgYSBzdGF0ZW1lbnQgb2YgdGhlCmFkZGl0aW9uYWwgdGVybXMgdGhhdCBhcHBseSB0byB0aG9zZSBmaWxlcywgb3IgYSBub3RpY2UgaW5kaWNhdGluZwp3aGVyZSB0byBmaW5kIHRoZSBhcHBsaWNhYmxlIHRlcm1zLgoKICBBZGRpdGlvbmFsIHRlcm1zLCBwZXJtaXNzaXZlIG9yIG5vbi1wZXJtaXNzaXZlLCBtYXkgYmUgc3RhdGVkIGluIHRoZQpmb3JtIG9mIGEgc2VwYXJhdGVseSB3cml0dGVuIGxpY2Vuc2UsIG9yIHN0YXRlZCBhcyBleGNlcHRpb25zOwp0aGUgYWJvdmUgcmVxdWlyZW1lbnRzIGFwcGx5IGVpdGhlciB3YXkuCgogIDguIFRlcm1pbmF0aW9uLgoKICBZb3UgbWF5IG5vdCBwcm9wYWdhdGUgb3IgbW9kaWZ5IGEgY292ZXJlZCB3b3JrIGV4Y2VwdCBhcyBleHByZXNzbHkKcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQgb3RoZXJ3aXNlIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgaXQgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIKdGhpcyBMaWNlbnNlIChpbmNsdWRpbmcgYW55IHBhdGVudCBsaWNlbnNlcyBncmFudGVkIHVuZGVyIHRoZSB0aGlyZApwYXJhZ3JhcGggb2Ygc2VjdGlvbiAxMSkuCgogIEhvd2V2ZXIsIGlmIHlvdSBjZWFzZSBhbGwgdmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgdGhlbiB5b3VyCmxpY2Vuc2UgZnJvbSBhIHBhcnRpY3VsYXIgY29weXJpZ2h0IGhvbGRlciBpcyByZWluc3RhdGVkIChhKQpwcm92aXNpb25hbGx5LCB1bmxlc3MgYW5kIHVudGlsIHRoZSBjb3B5cmlnaHQgaG9sZGVyIGV4cGxpY2l0bHkgYW5kCmZpbmFsbHkgdGVybWluYXRlcyB5b3VyIGxpY2Vuc2UsIGFuZCAoYikgcGVybWFuZW50bHksIGlmIHRoZSBjb3B5cmlnaHQKaG9sZGVyIGZhaWxzIHRvIG5vdGlmeSB5b3Ugb2YgdGhlIHZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMKcHJpb3IgdG8gNjAgZGF5cyBhZnRlciB0aGUgY2Vzc2F0aW9uLgoKICBNb3Jlb3ZlciwgeW91ciBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMKcmVpbnN0YXRlZCBwZXJtYW5lbnRseSBpZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3RpZmllcyB5b3Ugb2YgdGhlCnZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMsIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgeW91IGhhdmUKcmVjZWl2ZWQgbm90aWNlIG9mIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UgKGZvciBhbnkgd29yaykgZnJvbSB0aGF0CmNvcHlyaWdodCBob2xkZXIsIGFuZCB5b3UgY3VyZSB0aGUgdmlvbGF0aW9uIHByaW9yIHRvIDMwIGRheXMgYWZ0ZXIKeW91ciByZWNlaXB0IG9mIHRoZSBub3RpY2UuCgogIFRlcm1pbmF0aW9uIG9mIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgc2VjdGlvbiBkb2VzIG5vdCB0ZXJtaW5hdGUgdGhlCmxpY2Vuc2VzIG9mIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2UuICBJZiB5b3VyIHJpZ2h0cyBoYXZlIGJlZW4gdGVybWluYXRlZCBhbmQgbm90IHBlcm1hbmVudGx5CnJlaW5zdGF0ZWQsIHlvdSBkbyBub3QgcXVhbGlmeSB0byByZWNlaXZlIG5ldyBsaWNlbnNlcyBmb3IgdGhlIHNhbWUKbWF0ZXJpYWwgdW5kZXIgc2VjdGlvbiAxMC4KCiAgOS4gQWNjZXB0YW5jZSBOb3QgUmVxdWlyZWQgZm9yIEhhdmluZyBDb3BpZXMuCgogIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UgaW4gb3JkZXIgdG8gcmVjZWl2ZSBvcgpydW4gYSBjb3B5IG9mIHRoZSBQcm9ncmFtLiAgQW5jaWxsYXJ5IHByb3BhZ2F0aW9uIG9mIGEgY292ZXJlZCB3b3JrCm9jY3VycmluZyBzb2xlbHkgYXMgYSBjb25zZXF1ZW5jZSBvZiB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uCnRvIHJlY2VpdmUgYSBjb3B5IGxpa2V3aXNlIGRvZXMgbm90IHJlcXVpcmUgYWNjZXB0YW5jZS4gIEhvd2V2ZXIsCm5vdGhpbmcgb3RoZXIgdGhhbiB0aGlzIExpY2Vuc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgYW55IGNvdmVyZWQgd29yay4gIFRoZXNlIGFjdGlvbnMgaW5mcmluZ2UgY29weXJpZ2h0IGlmIHlvdSBkbwpub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkgbW9kaWZ5aW5nIG9yIHByb3BhZ2F0aW5nIGEKY292ZXJlZCB3b3JrLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzby4KCiAgMTAuIEF1dG9tYXRpYyBMaWNlbnNpbmcgb2YgRG93bnN0cmVhbSBSZWNpcGllbnRzLgoKICBFYWNoIHRpbWUgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5CnJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZSBvcmlnaW5hbCBsaWNlbnNvcnMsIHRvIHJ1biwgbW9kaWZ5IGFuZApwcm9wYWdhdGUgdGhhdCB3b3JrLCBzdWJqZWN0IHRvIHRoaXMgTGljZW5zZS4gIFlvdSBhcmUgbm90IHJlc3BvbnNpYmxlCmZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHdpdGggdGhpcyBMaWNlbnNlLgoKICBBbiAiZW50aXR5IHRyYW5zYWN0aW9uIiBpcyBhIHRyYW5zYWN0aW9uIHRyYW5zZmVycmluZyBjb250cm9sIG9mIGFuCm9yZ2FuaXphdGlvbiwgb3Igc3Vic3RhbnRpYWxseSBhbGwgYXNzZXRzIG9mIG9uZSwgb3Igc3ViZGl2aWRpbmcgYW4Kb3JnYW5pemF0aW9uLCBvciBtZXJnaW5nIG9yZ2FuaXphdGlvbnMuICBJZiBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQKd29yayByZXN1bHRzIGZyb20gYW4gZW50aXR5IHRyYW5zYWN0aW9uLCBlYWNoIHBhcnR5IHRvIHRoYXQKdHJhbnNhY3Rpb24gd2hvIHJlY2VpdmVzIGEgY29weSBvZiB0aGUgd29yayBhbHNvIHJlY2VpdmVzIHdoYXRldmVyCmxpY2Vuc2VzIHRvIHRoZSB3b3JrIHRoZSBwYXJ0eSdzIHByZWRlY2Vzc29yIGluIGludGVyZXN0IGhhZCBvciBjb3VsZApnaXZlIHVuZGVyIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGgsIHBsdXMgYSByaWdodCB0byBwb3NzZXNzaW9uIG9mIHRoZQpDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBmcm9tIHRoZSBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCwgaWYKdGhlIHByZWRlY2Vzc29yIGhhcyBpdCBvciBjYW4gZ2V0IGl0IHdpdGggcmVhc29uYWJsZSBlZmZvcnRzLgoKICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25zIG9uIHRoZSBleGVyY2lzZSBvZiB0aGUKcmlnaHRzIGdyYW50ZWQgb3IgYWZmaXJtZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgRm9yIGV4YW1wbGUsIHlvdSBtYXkKbm90IGltcG9zZSBhIGxpY2Vuc2UgZmVlLCByb3lhbHR5LCBvciBvdGhlciBjaGFyZ2UgZm9yIGV4ZXJjaXNlIG9mCnJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIHlvdSBtYXkgbm90IGluaXRpYXRlIGxpdGlnYXRpb24KKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQKYW55IHBhdGVudCBjbGFpbSBpcyBpbmZyaW5nZWQgYnkgbWFraW5nLCB1c2luZywgc2VsbGluZywgb2ZmZXJpbmcgZm9yCnNhbGUsIG9yIGltcG9ydGluZyB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbiBvZiBpdC4KCiAgMTEuIFBhdGVudHMuCgogIEEgImNvbnRyaWJ1dG9yIiBpcyBhIGNvcHlyaWdodCBob2xkZXIgd2hvIGF1dGhvcml6ZXMgdXNlIHVuZGVyIHRoaXMKTGljZW5zZSBvZiB0aGUgUHJvZ3JhbSBvciBhIHdvcmsgb24gd2hpY2ggdGhlIFByb2dyYW0gaXMgYmFzZWQuICBUaGUKd29yayB0aHVzIGxpY2Vuc2VkIGlzIGNhbGxlZCB0aGUgY29udHJpYnV0b3IncyAiY29udHJpYnV0b3IgdmVyc2lvbiIuCgogIEEgY29udHJpYnV0b3IncyAiZXNzZW50aWFsIHBhdGVudCBjbGFpbXMiIGFyZSBhbGwgcGF0ZW50IGNsYWltcwpvd25lZCBvciBjb250cm9sbGVkIGJ5IHRoZSBjb250cmlidXRvciwgd2hldGhlciBhbHJlYWR5IGFjcXVpcmVkIG9yCmhlcmVhZnRlciBhY3F1aXJlZCwgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgYnkgc29tZSBtYW5uZXIsIHBlcm1pdHRlZApieSB0aGlzIExpY2Vuc2UsIG9mIG1ha2luZywgdXNpbmcsIG9yIHNlbGxpbmcgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24sCmJ1dCBkbyBub3QgaW5jbHVkZSBjbGFpbXMgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgb25seSBhcyBhCmNvbnNlcXVlbmNlIG9mIGZ1cnRoZXIgbW9kaWZpY2F0aW9uIG9mIHRoZSBjb250cmlidXRvciB2ZXJzaW9uLiAgRm9yCnB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgImNvbnRyb2wiIGluY2x1ZGVzIHRoZSByaWdodCB0byBncmFudApwYXRlbnQgc3VibGljZW5zZXMgaW4gYSBtYW5uZXIgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YKdGhpcyBMaWNlbnNlLgoKICBFYWNoIGNvbnRyaWJ1dG9yIGdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZQpwYXRlbnQgbGljZW5zZSB1bmRlciB0aGUgY29udHJpYnV0b3IncyBlc3NlbnRpYWwgcGF0ZW50IGNsYWltcywgdG8KbWFrZSwgdXNlLCBzZWxsLCBvZmZlciBmb3Igc2FsZSwgaW1wb3J0IGFuZCBvdGhlcndpc2UgcnVuLCBtb2RpZnkgYW5kCnByb3BhZ2F0ZSB0aGUgY29udGVudHMgb2YgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24uCgogIEluIHRoZSBmb2xsb3dpbmcgdGhyZWUgcGFyYWdyYXBocywgYSAicGF0ZW50IGxpY2Vuc2UiIGlzIGFueSBleHByZXNzCmFncmVlbWVudCBvciBjb21taXRtZW50LCBob3dldmVyIGRlbm9taW5hdGVkLCBub3QgdG8gZW5mb3JjZSBhIHBhdGVudAooc3VjaCBhcyBhbiBleHByZXNzIHBlcm1pc3Npb24gdG8gcHJhY3RpY2UgYSBwYXRlbnQgb3IgY292ZW5hbnQgbm90IHRvCnN1ZSBmb3IgcGF0ZW50IGluZnJpbmdlbWVudCkuICBUbyAiZ3JhbnQiIHN1Y2ggYSBwYXRlbnQgbGljZW5zZSB0byBhCnBhcnR5IG1lYW5zIHRvIG1ha2Ugc3VjaCBhbiBhZ3JlZW1lbnQgb3IgY29tbWl0bWVudCBub3QgdG8gZW5mb3JjZSBhCnBhdGVudCBhZ2FpbnN0IHRoZSBwYXJ0eS4KCiAgSWYgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywga25vd2luZ2x5IHJlbHlpbmcgb24gYSBwYXRlbnQgbGljZW5zZSwKYW5kIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBpcyBub3QgYXZhaWxhYmxlIGZvciBhbnlvbmUKdG8gY29weSwgZnJlZSBvZiBjaGFyZ2UgYW5kIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsIHRocm91Z2ggYQpwdWJsaWNseSBhdmFpbGFibGUgbmV0d29yayBzZXJ2ZXIgb3Igb3RoZXIgcmVhZGlseSBhY2Nlc3NpYmxlIG1lYW5zLAp0aGVuIHlvdSBtdXN0IGVpdGhlciAoMSkgY2F1c2UgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIHRvIGJlIHNvCmF2YWlsYWJsZSwgb3IgKDIpIGFycmFuZ2UgdG8gZGVwcml2ZSB5b3Vyc2VsZiBvZiB0aGUgYmVuZWZpdCBvZiB0aGUKcGF0ZW50IGxpY2Vuc2UgZm9yIHRoaXMgcGFydGljdWxhciB3b3JrLCBvciAoMykgYXJyYW5nZSwgaW4gYSBtYW5uZXIKY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBMaWNlbnNlLCB0byBleHRlbmQgdGhlIHBhdGVudApsaWNlbnNlIHRvIGRvd25zdHJlYW0gcmVjaXBpZW50cy4gICJLbm93aW5nbHkgcmVseWluZyIgbWVhbnMgeW91IGhhdmUKYWN0dWFsIGtub3dsZWRnZSB0aGF0LCBidXQgZm9yIHRoZSBwYXRlbnQgbGljZW5zZSwgeW91ciBjb252ZXlpbmcgdGhlCmNvdmVyZWQgd29yayBpbiBhIGNvdW50cnksIG9yIHlvdXIgcmVjaXBpZW50J3MgdXNlIG9mIHRoZSBjb3ZlcmVkIHdvcmsKaW4gYSBjb3VudHJ5LCB3b3VsZCBpbmZyaW5nZSBvbmUgb3IgbW9yZSBpZGVudGlmaWFibGUgcGF0ZW50cyBpbiB0aGF0CmNvdW50cnkgdGhhdCB5b3UgaGF2ZSByZWFzb24gdG8gYmVsaWV2ZSBhcmUgdmFsaWQuCgogIElmLCBwdXJzdWFudCB0byBvciBpbiBjb25uZWN0aW9uIHdpdGggYSBzaW5nbGUgdHJhbnNhY3Rpb24gb3IKYXJyYW5nZW1lbnQsIHlvdSBjb252ZXksIG9yIHByb3BhZ2F0ZSBieSBwcm9jdXJpbmcgY29udmV5YW5jZSBvZiwgYQpjb3ZlcmVkIHdvcmssIGFuZCBncmFudCBhIHBhdGVudCBsaWNlbnNlIHRvIHNvbWUgb2YgdGhlIHBhcnRpZXMKcmVjZWl2aW5nIHRoZSBjb3ZlcmVkIHdvcmsgYXV0aG9yaXppbmcgdGhlbSB0byB1c2UsIHByb3BhZ2F0ZSwgbW9kaWZ5Cm9yIGNvbnZleSBhIHNwZWNpZmljIGNvcHkgb2YgdGhlIGNvdmVyZWQgd29yaywgdGhlbiB0aGUgcGF0ZW50IGxpY2Vuc2UKeW91IGdyYW50IGlzIGF1dG9tYXRpY2FsbHkgZXh0ZW5kZWQgdG8gYWxsIHJlY2lwaWVudHMgb2YgdGhlIGNvdmVyZWQKd29yayBhbmQgd29ya3MgYmFzZWQgb24gaXQuCgogIEEgcGF0ZW50IGxpY2Vuc2UgaXMgImRpc2NyaW1pbmF0b3J5IiBpZiBpdCBkb2VzIG5vdCBpbmNsdWRlIHdpdGhpbgp0aGUgc2NvcGUgb2YgaXRzIGNvdmVyYWdlLCBwcm9oaWJpdHMgdGhlIGV4ZXJjaXNlIG9mLCBvciBpcwpjb25kaXRpb25lZCBvbiB0aGUgbm9uLWV4ZXJjaXNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSByaWdodHMgdGhhdCBhcmUKc3BlY2lmaWNhbGx5IGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgWW91IG1heSBub3QgY29udmV5IGEgY292ZXJlZAp3b3JrIGlmIHlvdSBhcmUgYSBwYXJ0eSB0byBhbiBhcnJhbmdlbWVudCB3aXRoIGEgdGhpcmQgcGFydHkgdGhhdCBpcwppbiB0aGUgYnVzaW5lc3Mgb2YgZGlzdHJpYnV0aW5nIHNvZnR3YXJlLCB1bmRlciB3aGljaCB5b3UgbWFrZSBwYXltZW50CnRvIHRoZSB0aGlyZCBwYXJ0eSBiYXNlZCBvbiB0aGUgZXh0ZW50IG9mIHlvdXIgYWN0aXZpdHkgb2YgY29udmV5aW5nCnRoZSB3b3JrLCBhbmQgdW5kZXIgd2hpY2ggdGhlIHRoaXJkIHBhcnR5IGdyYW50cywgdG8gYW55IG9mIHRoZQpwYXJ0aWVzIHdobyB3b3VsZCByZWNlaXZlIHRoZSBjb3ZlcmVkIHdvcmsgZnJvbSB5b3UsIGEgZGlzY3JpbWluYXRvcnkKcGF0ZW50IGxpY2Vuc2UgKGEpIGluIGNvbm5lY3Rpb24gd2l0aCBjb3BpZXMgb2YgdGhlIGNvdmVyZWQgd29yawpjb252ZXllZCBieSB5b3UgKG9yIGNvcGllcyBtYWRlIGZyb20gdGhvc2UgY29waWVzKSwgb3IgKGIpIHByaW1hcmlseQpmb3IgYW5kIGluIGNvbm5lY3Rpb24gd2l0aCBzcGVjaWZpYyBwcm9kdWN0cyBvciBjb21waWxhdGlvbnMgdGhhdApjb250YWluIHRoZSBjb3ZlcmVkIHdvcmssIHVubGVzcyB5b3UgZW50ZXJlZCBpbnRvIHRoYXQgYXJyYW5nZW1lbnQsCm9yIHRoYXQgcGF0ZW50IGxpY2Vuc2Ugd2FzIGdyYW50ZWQsIHByaW9yIHRvIDI4IE1hcmNoIDIwMDcuCgogIE5vdGhpbmcgaW4gdGhpcyBMaWNlbnNlIHNoYWxsIGJlIGNvbnN0cnVlZCBhcyBleGNsdWRpbmcgb3IgbGltaXRpbmcKYW55IGltcGxpZWQgbGljZW5zZSBvciBvdGhlciBkZWZlbnNlcyB0byBpbmZyaW5nZW1lbnQgdGhhdCBtYXkKb3RoZXJ3aXNlIGJlIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYXBwbGljYWJsZSBwYXRlbnQgbGF3LgoKICAxMi4gTm8gU3VycmVuZGVyIG9mIE90aGVycycgRnJlZWRvbS4KCiAgSWYgY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgpvdGhlcndpc2UpIHRoYXQgY29udHJhZGljdCB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHRoZXkgZG8gbm90CmV4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90IGNvbnZleSBhCmNvdmVyZWQgd29yayBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91IG1heQpub3QgY29udmV5IGl0IGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiB5b3UgYWdyZWUgdG8gdGVybXMgdGhhdCBvYmxpZ2F0ZSB5b3UKdG8gY29sbGVjdCBhIHJveWFsdHkgZm9yIGZ1cnRoZXIgY29udmV5aW5nIGZyb20gdGhvc2UgdG8gd2hvbSB5b3UgY29udmV5CnRoZSBQcm9ncmFtLCB0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCB0aG9zZSB0ZXJtcyBhbmQgdGhpcwpMaWNlbnNlIHdvdWxkIGJlIHRvIHJlZnJhaW4gZW50aXJlbHkgZnJvbSBjb252ZXlpbmcgdGhlIFByb2dyYW0uCgogIDEzLiBVc2Ugd2l0aCB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgoKICBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIHlvdSBoYXZlCnBlcm1pc3Npb24gdG8gbGluayBvciBjb21iaW5lIGFueSBjb3ZlcmVkIHdvcmsgd2l0aCBhIHdvcmsgbGljZW5zZWQKdW5kZXIgdmVyc2lvbiAzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW50byBhIHNpbmdsZQpjb21iaW5lZCB3b3JrLCBhbmQgdG8gY29udmV5IHRoZSByZXN1bHRpbmcgd29yay4gIFRoZSB0ZXJtcyBvZiB0aGlzCkxpY2Vuc2Ugd2lsbCBjb250aW51ZSB0byBhcHBseSB0byB0aGUgcGFydCB3aGljaCBpcyB0aGUgY292ZXJlZCB3b3JrLApidXQgdGhlIHNwZWNpYWwgcmVxdWlyZW1lbnRzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCnNlY3Rpb24gMTMsIGNvbmNlcm5pbmcgaW50ZXJhY3Rpb24gdGhyb3VnaCBhIG5ldHdvcmsgd2lsbCBhcHBseSB0byB0aGUKY29tYmluYXRpb24gYXMgc3VjaC4KCiAgMTQuIFJldmlzZWQgVmVyc2lvbnMgb2YgdGhpcyBMaWNlbnNlLgoKICBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucyBvZgp0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCiAgRWFjaCB2ZXJzaW9uIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuICBJZiB0aGUKUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIGNlcnRhaW4gbnVtYmVyZWQgdmVyc2lvbiBvZiB0aGUgR05VIEdlbmVyYWwKUHVibGljIExpY2Vuc2UgIm9yIGFueSBsYXRlciB2ZXJzaW9uIiBhcHBsaWVzIHRvIGl0LCB5b3UgaGF2ZSB0aGUKb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZWl0aGVyIG9mIHRoYXQgbnVtYmVyZWQKdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkCmJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCgogIElmIHRoZSBQcm9ncmFtIHNwZWNpZmllcyB0aGF0IGEgcHJveHkgY2FuIGRlY2lkZSB3aGljaCBmdXR1cmUKdmVyc2lvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGNhbiBiZSB1c2VkLCB0aGF0IHByb3h5J3MKcHVibGljIHN0YXRlbWVudCBvZiBhY2NlcHRhbmNlIG9mIGEgdmVyc2lvbiBwZXJtYW5lbnRseSBhdXRob3JpemVzIHlvdQp0byBjaG9vc2UgdGhhdCB2ZXJzaW9uIGZvciB0aGUgUHJvZ3JhbS4KCiAgTGF0ZXIgbGljZW5zZSB2ZXJzaW9ucyBtYXkgZ2l2ZSB5b3UgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQKcGVybWlzc2lvbnMuICBIb3dldmVyLCBubyBhZGRpdGlvbmFsIG9ibGlnYXRpb25zIGFyZSBpbXBvc2VkIG9uIGFueQphdXRob3Igb3IgY29weXJpZ2h0IGhvbGRlciBhcyBhIHJlc3VsdCBvZiB5b3VyIGNob29zaW5nIHRvIGZvbGxvdyBhCmxhdGVyIHZlcnNpb24uCgogIDE1LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LgoKICBUSEVSRSBJUyBOTyBXQVJSQU5UWSBGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZCkFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQKSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUyBQUk9WSURFIFRIRSBQUk9HUkFNICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWQpPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1NFRCBPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUgUFJPR1JBTQpJUyBXSVRIIFlPVS4gIFNIT1VMRCBUSEUgUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YKQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgoKICAxNi4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuCgogIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1PRElGSUVTIEFORC9PUiBDT05WRVlTClRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWQpHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBUSEUKVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRgpEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRApQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSIFBST0dSQU1TKSwKRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgpTVUNIIERBTUFHRVMuCgogIDE3LiBJbnRlcnByZXRhdGlvbiBvZiBTZWN0aW9ucyAxNSBhbmQgMTYuCgogIElmIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5IGFuZCBsaW1pdGF0aW9uIG9mIGxpYWJpbGl0eSBwcm92aWRlZAphYm92ZSBjYW5ub3QgYmUgZ2l2ZW4gbG9jYWwgbGVnYWwgZWZmZWN0IGFjY29yZGluZyB0byB0aGVpciB0ZXJtcywKcmV2aWV3aW5nIGNvdXJ0cyBzaGFsbCBhcHBseSBsb2NhbCBsYXcgdGhhdCBtb3N0IGNsb3NlbHkgYXBwcm94aW1hdGVzCmFuIGFic29sdXRlIHdhaXZlciBvZiBhbGwgY2l2aWwgbGlhYmlsaXR5IGluIGNvbm5lY3Rpb24gd2l0aCB0aGUKUHJvZ3JhbSwgdW5sZXNzIGEgd2FycmFudHkgb3IgYXNzdW1wdGlvbiBvZiBsaWFiaWxpdHkgYWNjb21wYW5pZXMgYQpjb3B5IG9mIHRoZSBQcm9ncmFtIGluIHJldHVybiBmb3IgYSBmZWUuCgogICAgICAgICAgICAgICAgICAgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCiAgICAgICAgICAgIEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcwoKICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0CnBvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlzIHRvIG1ha2UgaXQKZnJlZSBzb2Z0d2FyZSB3aGljaCBldmVyeW9uZSBjYW4gcmVkaXN0cmlidXRlIGFuZCBjaGFuZ2UgdW5kZXIgdGhlc2UgdGVybXMuCgogIFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0CnRvIGF0dGFjaCB0aGVtIHRvIHRoZSBzdGFydCBvZiBlYWNoIHNvdXJjZSBmaWxlIHRvIG1vc3QgZWZmZWN0aXZlbHkKc3RhdGUgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAp0aGUgImNvcHlyaWdodCIgbGluZSBhbmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KCiAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgogICAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKQWxzbyBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRvIGNvbnRhY3QgeW91IGJ5IGVsZWN0cm9uaWMgYW5kIHBhcGVyIG1haWwuCgogIElmIHRoZSBwcm9ncmFtIGRvZXMgdGVybWluYWwgaW50ZXJhY3Rpb24sIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQKbm90aWNlIGxpa2UgdGhpcyB3aGVuIGl0IHN0YXJ0cyBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlOgoKICAgIDxwcm9ncmFtPiAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KICAgIFRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFk7IGZvciBkZXRhaWxzIHR5cGUgYHNob3cgdycuCiAgICBUaGlzIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0CiAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuCgpUaGUgaHlwb3RoZXRpY2FsIGNvbW1hbmRzIGBzaG93IHcnIGFuZCBgc2hvdyBjJyBzaG91bGQgc2hvdyB0aGUgYXBwcm9wcmlhdGUKcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHlvdXIgcHJvZ3JhbSdzIGNvbW1hbmRzCm1pZ2h0IGJlIGRpZmZlcmVudDsgZm9yIGEgR1VJIGludGVyZmFjZSwgeW91IHdvdWxkIHVzZSBhbiAiYWJvdXQgYm94Ii4KCiAgWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHNjaG9vbCwKaWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIHByb2dyYW0sIGlmIG5lY2Vzc2FyeS4KRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcywgYW5kIGhvdyB0byBhcHBseSBhbmQgZm9sbG93IHRoZSBHTlUgR1BMLCBzZWUKPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtCmludG8gcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdQptYXkgY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGgKdGhlIGxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LCBwbGVhc2UgcmVhZAo8aHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvd2h5LW5vdC1sZ3BsLmh0bWw+Lgo=]]></data>
	</file>
	<file>
	  <filename>/event.CGEcommerceBase.OrderUpdated.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICFpc3NldCgkcGFyYW1zWydvcmRlcl9pZCddKSApIHJldHVybjsKCi8vIGhhbmRsZSB0aGUgY2FzZSBvZiBhdHRlbXB0ZWQgcmVjdXJzaW9uLgppZiggY2dlX3RtcGRhdGE6OmV4aXN0cyhfX0ZJTEVfXykgKSByZXR1cm47CmNnZV90bXBkYXRhOjpzZXQoX19GSUxFX18sMSk7CgovLyBnZXQgdGhlIGZpZWxkIGRlZmluaXRpb25zLgokZGVmcyA9IHByb2R1Y3RfdXRpbHM6OmdldF9maWVsZGRlZnMoVFJVRTxUUlVFKTsKCi8vIGNoZWNrIGZpZWxkIGRlZnMgZm9yIGFuIGVudHJ5IG9mIHR5cGUgJ3F1YW50aXR5JwppZiggIWlzX2FycmF5KCRkZWZzKSB8fCBjb3VudCgkZGVmcykgPT0gMCApIHJldHVybjsKJHFvaF9maWVsZF9pZCA9IC0xOwpmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkZGVmcyk7ICRpKysgKSB7CiAgICBpZiggJGRlZnNbJGldLT50eXBlID09ICdxdWFudGl0eScgKSAkcW9oX2ZpZWxkX2lkID0gKGludCkkZGVmc1skaV0tPmlkOwp9CgovLyBnZXQgdGhlIG9yZGVyLgokb3JkZXJfaWQgPSAoaW50KSRwYXJhbXNbJ29yZGVyX2lkJ107CiRvcmRlcl9vYmogPSBvcmRlcnNfb3BzOjpsb2FkX2J5X2lkKCRvcmRlcl9pZCk7CmlmKCAhJG9yZGVyX29iaiApIHJldHVybjsKaWYoICFpbl9hcnJheSgkb3JkZXJfb2JqLT5nZXRfc3RhdHVzKCksYXJyYXkoJ2ludm9pY2VkJywncGFpZCcpKSApIHJldHVybjsKCi8vIGZpbmQgdGhlIGxpbmUgd2l0aCB3aXRoIGEgcHJvZHVjdCBpbiBpdC4KZm9yKCAkcyA9IDA7ICRzIDwgJG9yZGVyX29iai0+Y291bnRfZGVzdGluYXRpb25zKCk7ICRzKysgKSB7CiAgICAkc2hpcHBpbmcgPSAkb3JkZXJfb2JqLT5nZXRfc2hpcHBpbmcoJHMpOwogICAgZm9yKCAkaSA9IDA7ICRpIDwgJHNoaXBwaW5nLT5jb3VudF9hbGxfaXRlbXMoKTsgJGkrKyApIHsKICAgICAgICAkaXRlbSA9ICRzaGlwcGluZy0+Z2V0X2l0ZW0oJGkpOwogICAgICAgIGlmKCAkaXRlbS0+Z2V0X3NvdXJjZSgpICE9ICdQcm9kdWN0cycgKSBjb250aW51ZTsKICAgICAgICBpZiggJGl0ZW0tPmdldF9pdGVtX3R5cGUoKSAhPSBsaW5lX2l0ZW06OklURU1UWVBFX1BST0RVQ1QgKSBjb250aW51ZTsKCiAgICAgICAgLy8gZ2V0IHRoZSBwcm9kdWN0IGlkLi4uIGFuZCB1cGRhdGUgdGhlIHF1YW50aXR5IGF2YWlsYWJsZS4KICAgICAgICAkc2t1ID0gJGl0ZW0tPmdldF9za3UoKTsKICAgICAgICAkcHJvZHVjdCA9IHByb2R1Y3Rfb3BzOjpnZXRfcHJvZHVjdF9ieV9za3UoJHNrdSk7CiAgICAgICAgJHByb2R1Y3RfaWQgPSAkaXRlbS0+Z2V0X2l0ZW1faWQoKTsKICAgICAgICBpZiggJHByb2R1Y3RbJ2lkJ10gIT0gJHByb2R1Y3RfaWQgKSB7CiAgICAgICAgICAgIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ2luIE9yZGVyVXBkYXRlZCBwcm9kdWN0IGlkIGRvZXMgbm90IG1hdGNoIG9yZGVyIGl0ZW0gd2hlbiBmZXRjaGVkIGJ5IHNrdScpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAkY3VyX3ZhbCA9ICctLXVuZGVmaW5lZC0tJzsKICAgICAgICBpZiggJHByb2R1Y3RbJ3NrdSddID09ICRza3UgKSB7CiAgICAgICAgICAgIC8vIHRoZSBza3UgaXMgZm9yIHRoZSBwcm9kdWN0IGl0c2VsZi4uLgogICAgICAgICAgICAkY3VyX3ZhbCA9IDA7CiAgICAgICAgICAgICRmb3VuZCA9IDA7CiAgICAgICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIFdIRVJFIHByb2R1Y3RfaWQgPSA/IEFORCBmaWVsZGRlZl9pZCA9ID8nOwogICAgICAgICAgICAkZGJyID0gJGRiLT5HZXRSb3coJHF1ZXJ5LGFycmF5KCRwcm9kdWN0X2lkLCRxb2hfZmllbGRfaWQpKTsKICAgICAgICAgICAgaWYoICRkYnIgKSB7CiAgICAgICAgICAgICAgICAkY3VyX3ZhbCA9IChpbnQpJGRiclsndmFsdWUnXTsKICAgICAgICAgICAgICAgICRmb3VuZCA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGN1cl92YWwgLT0gKGludCkkaXRlbS0+Z2V0X3F1YW50aXR5KCk7CiAgICAgICAgICAgIGlmKCAhJGZvdW5kICkgewogICAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIChwcm9kdWN0X2lkLGZpZWxkZGVmX2lkLHZhbHVlLGNyZWF0ZV9kYXRlLG1vZGlmaWVkX2RhdGUpIFZBTFVFUyAoPyw/LD8sTk9XKCksTk9XKCkpJzsKICAgICAgICAgICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRwcm9kdWN0X2lkLCRxb2hfZmllbGRfaWQsJGN1cl92YWwpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgU0VUIHZhbHVlID0gPywgbW9kaWZpZWRfZGF0ZSA9IE5PVygpIFdIRVJFIHByb2R1Y3RfaWQgPSA/IEFORCBmaWVsZGRlZl9pZCA9ID8nOwogICAgICAgICAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGN1cl92YWwsJHByb2R1Y3RfaWQsJHFvaF9maWVsZF9pZCkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAvLyBpdCBtYXkgYmUgYW4gb3B0aW9uPwogICAgICAgICAgICBpZiggaXNzZXQoJHByb2R1Y3RbJ2F0dHJpYnV0ZXMnXSkgJiYgY291bnQoJHByb2R1Y3RbJ2F0dHJpYnV0ZXMnXSkgKSB7CiAgICAgICAgICAgICAgICBmb3JlYWNoKCAkcHJvZHVjdFsnYXR0cmlidXRlcyddIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoICRvbmVbJ3NrdSddID09ICRza3UgJiYgJG9uZVsnaWQnXSA+IDAgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvdW5kIHRoZSBvcHRpb24KICAgICAgICAgICAgICAgICAgICAgICAgJGN1cl92YWwgPSAoaW50KSAkb25lWydxb2gnXSAtIChpbnQpICRpdGVtLT5nZXRfcXVhbnRpdHkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnMgU0VUIHFvaCA9ID8gV0hFUkUgaWQgPSA/JzsKICAgICAgICAgICAgICAgICAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGN1cl92YWwsKGludCkgJG9uZVsnaWQnXSkpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPkF1ZGl0KCRwcm9kdWN0X2lkLCR0aGlzLT5HZXROYW1lKCksJ1VwZGF0ZWQgcXVhbnRpdHkgb2YgYXZhaWxhYmxlIHByb2R1Y3QgdG8gJy4kY3VyX3ZhbCk7CiAgICB9Cn0KCi8vIHNldHVwIGZvciBhbm90aGVyIG9yZGVyLi4uIHNob3VsZG4ndCBoYXBwZW4sIGJ1dCBqdXN0IGluIGNhc2UuCmNnZV90bXBkYXRhOjplcmFzZShfX0ZJTEVfXyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_categories_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpICkgZXhpdDsKCiNQdXQgdG9nZXRoZXIgYSBsaXN0IG9mIGN1cnJlbnQgY2F0ZWdvcmllcy4uLgokZW50cnlhcnJheSA9IGFycmF5KCk7CgokcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMgT1JERVIgQlkgbmFtZSI7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoKJHJvd2NsYXNzID0gJ3JvdzEnOwokdGhlbWUgPSBjbXNfdXRpbHM6OmdldF90aGVtZV9vYmplY3QoKTsKd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSB7CiAgICAkb25lcm93ID0gbmV3IHN0ZENsYXNzKCk7CgogICAgJG9uZXJvdy0+aWQgPSAkcm93WydpZCddOwogICAgJG9uZXJvdy0+bmFtZSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXRjYXRlZ29yeScsICRyZXR1cm5pZCwgJHJvd1snbmFtZSddLCBhcnJheSgnY2F0aWQnPT4kcm93WydpZCddKSk7CgogICAgJG9uZXJvdy0+ZmllbGRzbGluayA9ICR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdlZGl0Y2F0ZWdvcnlmaWVsZHMnLCRyZXR1cm5pZCwKICAgICAgICAgICAgICAgICR0aGlzLT5MYW5nKCdlZGl0X2NhdGVnb3J5X2ZpZWxkcycpLAogICAgICAgICAgICAgICAgJ2RhdGFiYXNlX2VkaXQucG5nJywKICAgICAgICAgICAgICAgIGFycmF5KCdjYXRpZCc9PiRyb3dbJ2lkJ10pKTsKCiAgICAkb25lcm93LT5jb3B5bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2NvcHljYXRlZ29yeScsICRyZXR1cm5pZCwgJHRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9jb3B5LmdpZicsICR0aGlzLT5MYW5nKCdjb3B5JyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2NhdGlkJz0+JHJvd1snaWQnXSkpOwogICAgJG9uZXJvdy0+ZWRpdGxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0Y2F0ZWdvcnknLCAkcmV0dXJuaWQsICR0aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLCAkdGhpcy0+TGFuZygnZWRpdCcpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdjYXRpZCc9PiRyb3dbJ2lkJ10pKTsKCiAgICAkb25lcm93LT5kZWxldGVsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGVsZXRlY2F0ZWdvcnknLCAkcmV0dXJuaWQsICR0aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsICR0aGlzLT5MYW5nKCdkZWxldGUnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnY2F0aWQnPT4kcm93WydpZCddKSwgJHRoaXMtPkxhbmcoJ2FyZXlvdXN1cmUnKSk7CgogICAgJG9uZXJvdy0+cm93Y2xhc3MgPSAkcm93Y2xhc3M7CgogICAgJGVudHJ5YXJyYXlbXSA9ICRvbmVyb3c7CgogICAgKCRyb3djbGFzcz09InJvdzEiPyRyb3djbGFzcz0icm93MiI6JHJvd2NsYXNzPSJyb3cxIik7CiAgfQoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignaXRlbXMnLCAkZW50cnlhcnJheSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaXRlbWNvdW50JywgY291bnQoJGVudHJ5YXJyYXkpKTsKCiNTZXR1cCBsaW5rcwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FkZGxpbmsnLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZGRjYXRlZ29yeScsICRyZXR1cm5pZCwgJHRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdmb2xkZXIuZ2lmJywgJHRoaXMtPkxhbmcoJ2FkZGNhdGVnb3J5JyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoKSwgJycsIGZhbHNlLCBmYWxzZSwgJycpIC4nICcuICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkZGNhdGVnb3J5JywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWRkY2F0ZWdvcnknKSwgYXJyYXkoKSwgJycsIGZhbHNlLCBmYWxzZSwgJ2NsYXNzPSJwYWdlb3B0aW9ucyInKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhdGVnb3J5dGV4dCcsICR0aGlzLT5MYW5nKCdjYXRlZ29yeScpKTsKCiNEaXNwbGF5IHRlbXBsYXRlCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnY2F0ZWdvcnlsaXN0LnRwbCcpOwoKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_fielddefs_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSApIGV4aXQ7CgokZW50cnlhcnJheSA9IGFycmF5KCk7CgokbWF4ID0gJGRiLT5HZXRPbmUoIlNFTEVDVCBtYXgoaXRlbV9vcmRlcikgYXMgbWF4X2l0ZW1fb3JkZXIgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyIpOwoKJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMgT1JERVIgQlkgaXRlbV9vcmRlciI7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoKJHJvd2NsYXNzID0gJ3JvdzEnOwokdGhlbWUgPSBjbXNfdXRpbHM6OmdldF90aGVtZV9vYmplY3QoKTsKd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSB7CiAgICAkb25lcm93ID0gbmV3IHN0ZENsYXNzKCk7CgogICAgJG9uZXJvdy0+aWQgPSAkcm93WydpZCddOwogICAgJG9uZXJvdy0+bmFtZSA9ICRyb3dbJ25hbWUnXTsKICAgICRvbmVyb3ctPnR5cGUgPSAkcm93Wyd0eXBlJ107CiAgICAkb25lcm93LT5tYXhfbGVuZ3RoID0gJHJvd1snbWF4X2xlbmd0aCddOwogICAgJG9uZXJvdy0+aXRlbV9vcmRlciA9ICRyb3dbJ2l0ZW1fb3JkZXInXTsKICAgICRvbmVyb3ctPmRvd25saW5rID0gJyc7CiAgICAkb25lcm93LT51cGxpbmsgPSAnJzsKICAgICRvbmVyb3ctPmVkaXRfdXJsID0gJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCdlZGl0ZmllbGRkZWYnLCRyZXR1cm5pZCxhcnJheSgnZmRpZCc9PiRyb3dbJ2lkJ10pKTsKCiAgICBpZiAoJG9uZXJvdy0+aXRlbV9vcmRlciA+IDApICB7CiAgICAgICAgJG9uZXJvdy0+dXBsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnbW92ZWZpZWxkZGVmJywgJHJldHVybmlkLCAkdGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2Fycm93LXUuZ2lmJywgJHRoaXMtPkxhbmcoJ3VwJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2ZkaWQnPT4kcm93WydpZCddLCAnZGlyJz0+J3VwJykpOwogICAgfQogICAgaWYgKCRtYXggPiAkb25lcm93LT5pdGVtX29yZGVyKSB7CiAgICAgICAgJG9uZXJvdy0+ZG93bmxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdtb3ZlZmllbGRkZWYnLCAkcmV0dXJuaWQsICR0aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vYXJyb3ctZC5naWYnLCAkdGhpcy0+TGFuZygnZG93bicpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmZGlkJz0+JHJvd1snaWQnXSwgJ2Rpcic9Pidkb3duJykpOwogICAgfQoKICAgICRvbmVyb3ctPmVkaXRsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdGZpZWxkZGVmJywgJHJldHVybmlkLCAkdGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywgJHRoaXMtPkxhbmcoJ2VkaXQnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZmRpZCc9PiRyb3dbJ2lkJ10pKTsKCiAgICAkb25lcm93LT5kZWxldGVsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGVsZXRlZmllbGRkZWYnLCAkcmV0dXJuaWQsICR0aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsICR0aGlzLT5MYW5nKCdkZWxldGUnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZmRpZCc9PiRyb3dbJ2lkJ10pLCAkdGhpcy0+TGFuZygnYXJleW91c3VyZScpKTsKCiAgICAkZW50cnlhcnJheVtdID0gJG9uZXJvdzsKfQoKJHNtYXJ0eS0+YXNzaWduKCdmaWVsZHR5cGVzJyxwcm9kdWN0X3V0aWxzOjpnZXRfZmllbGRfdHlwZXMoKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2l0ZW1zJywgJGVudHJ5YXJyYXkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2l0ZW1jb3VudCcsIGNvdW50KCRlbnRyeWFycmF5KSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FkZGxpbmsnLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZGRmaWVsZGRlZicsICRyZXR1cm5pZCwgJHRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdmb2xkZXIuZ2lmJywgJHRoaXMtPkxhbmcoJ2FkZGZpZWxkZGVmJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoKSwgJycsIGZhbHNlLCBmYWxzZSwgJycpIC4nICcuICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkZGZpZWxkZGVmJywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWRkZmllbGRkZWYnKSwgYXJyYXkoKSwgJycsIGZhbHNlLCBmYWxzZSwgJ2NsYXNzPSJwYWdlb3B0aW9ucyInKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZpZWxkZGVmdGV4dCcsICR0aGlzLT5MYW5nKCdmaWVsZGRlZicpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0eXBldGV4dCcsICR0aGlzLT5MYW5nKCd0eXBlJykpOwoKI0Rpc3BsYXkgdGVtcGxhdGUKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdmaWVsZGRlZmxpc3QudHBsJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_hierarchy_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpICkgZXhpdDsKCiRlbnRyeWFycmF5ID0gaGllcmFyY2h5X29wczo6Z2V0X2ZsYXRfbGlzdCgpOwokc21hcnR5LT5hc3NpZ24oJ2VudHJpZXMnLCRlbnRyeWFycmF5KTsKJHNtYXJ0eS0+YXNzaWduKCdhZGRfaGllcmFyY2h5X2xpbmsnLAoJCSR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdhZG1pbl9hZGRfaGllcmFyY2h5X2l0ZW0nLAoJCQkJICAgICAgICRyZXR1cm5pZCwKCQkJCSAgICAgICAkdGhpcy0+TGFuZygnYWRkX2hpZXJhcmNoeV9pdGVtJyksCgkJCQkgICAgICAgJ2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJywKCQkJCSAgICAgICBhcnJheSgpLCcnLCcnLGZhbHNlKSk7CgppZiggY291bnQoJGVudHJ5YXJyYXkpID4gMSApCiAgewogICAgJHNtYXJ0eS0+YXNzaWduKCdyZW9yZGVyX2xpbmsnLAoJCSAgICAkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnYWRtaW5fcmVvcmRlcl9oaWVyYXJjaHknLAoJCQkJCSAgICRyZXR1cm5pZCwKCQkJCQkgICAkdGhpcy0+TGFuZygncmVvcmRlcl9oaWVyYXJjaHknKSwKCQkJCQkgICAnaWNvbnMvc3lzdGVtL3Jlb3JkZXIuZ2lmJywKCQkJCQkgICBhcnJheSgpLCcnLCcnLGZhbHNlKSk7CiAgfQoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9oaWVyYXJjaHlfdGFiLnRwbCcpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_prefstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCAhaXNzZXQoJGdDbXMpICkgcmV0dXJuOwoKJGNvbnRlbnRvcHMgPSAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKJHNvcnRvcmRlciA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzb3J0b3JkZXInLCdhc2MnKTsKJHNvcnRieSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzb3J0YnknLCdwcm9kdWN0X25hbWUnKTsKCiRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fc2F2ZXByZWZzJywkcmV0dXJuaWQpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdCcsJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9kZXRhaWxwYWdlJywkdGhpcy0+TGFuZygncHJvbXB0X2RldGFpbHBhZ2UnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfZGV0YWlscGFnZScsCSRjb250ZW50b3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGV0YWlscGFnZScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkLidkZXRhaWxwYWdlJykpOwoKJHN0YXR1c2VzID0gYXJyYXkoJHRoaXMtPkxhbmcoJ3B1Ymxpc2hlZCcpPT4ncHVibGlzaGVkJywKCQkgICR0aGlzLT5MYW5nKCdkcmFmdCcpPT4nZHJhZnQnLAoJCSAgJHRoaXMtPkxhbmcoJ2Rpc2FibGVkJyk9PidkaXNhYmxlZCcpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3N0YXR1cycsCgkJJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdzdGF0dXMnLAoJCQkJCSAgICRzdGF0dXNlcywtMSwKCQkJCQkgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9zdGF0dXMnLCdwdWJsaXNoZWQnKSkpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3RheGFibGUnLAoJCS8vCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCd0YXhhYmxlJywwKS4KCQkkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ3RheGFibGUnLDEsCgkJCQkJICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfdGF4YWJsZScsMSkpKTsKCiRzb3J0b3JkZXJzID0gYXJyYXkoJHRoaXMtPkxhbmcoJ2FzY2VuZGluZycpPT4nYXNjJywKCQkgICAgJHRoaXMtPkxhbmcoJ2Rlc2NlbmRpbmcnKT0+J2Rlc2MnKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfc3VtbWFyeXNvcnRvcmRlcicsJHRoaXMtPkxhbmcoJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3N1bW1hcnlzb3J0b3JkZXInLAoJCSR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnc29ydG9yZGVyJywkc29ydG9yZGVycywtMSwkc29ydG9yZGVyKSk7CgppZiggIWNsYXNzX2V4aXN0cygnY2dfZWNvbW0nKSApCiAgewogICAgJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfY3VycmVuY3lzeW1ib2wnLCR0aGlzLT5MYW5nKCdwcm9tcHRfY3VycmVuY3lzeW1ib2wnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X2N1cnJlbmN5c3ltYm9sJywKCQkgICAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2N1cnJlbmN5c3ltYm9sJywKCQkJCQkgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJvZHVjdHNfY3VycmVuY3lzeW1ib2wnKSkpOwoKICAgICRzbWFydHktPmFzc2lnbigncHJvbXB0X3dlaWdodHVuaXRzJywkdGhpcy0+TGFuZygncHJvbXB0X3dlaWdodHVuaXRzJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF93ZWlnaHR1bml0cycsCgkJICAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCd3ZWlnaHR1bml0cycsCgkJCQkJICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Byb2R1Y3RzX3dlaWdodHVuaXRzJykpKTsKCiAgICAkc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9sZW5ndGh1bml0cycsJHRoaXMtPkxhbmcoJ3Byb21wdF9sZW5ndGh1bml0cycpKTsKICAgICRvcHRzID0gYXJyYXkoJHRoaXMtPkxhbmcoJ2luY2hlcycpPT4naW4nLAoJCSAgJHRoaXMtPkxhbmcoJ2NlbnRpbWV0ZXJzJyk9PidjbScpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9sZW5ndGh1bml0cycsCgkJICAgICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnbGVuZ3RodW5pdHMnLCRvcHRzLC0xLAoJCQkJCSAgICAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJvZHVjdHNfbGVuZ3RodW5pdHMnKSkpOwogIH0KCgokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2FsbG93ZWRfaW1hZ2V0eXBlcycsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2FsbG93ZWRfaW1hZ2V0eXBlcycsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd2VkX2ltYWdldHlwZXMnKSw1MCwyNTUpKTsKCiRzbWFydHktPmFzc2lnbignaW5wdXRfYWxsb3dlZF9maWxldHlwZXMnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdhbGxvd2VkX2ZpbGV0eXBlcycsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd2VkX2ZpbGV0eXBlcycpLDUwLDI1NSkpOwoKJHNtYXJ0eS0+YXNzaWduKCd1cmxwcmVmaXgnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmxwcmVmaXgnLCcnKSk7Cgokb3B0cyA9IGFycmF5KCk7CiRvcHRzWyR0aGlzLT5MYW5nKCdub25lJyldID0gJ25vbmUnOwokb3B0c1skdGhpcy0+TGFuZygnYXV0b21hdGljJyldID0gJ2F1dG8nOwokb3B0c1skdGhpcy0+TGFuZygnYWRqdXN0YWJsZScpXSA9ICdhZGp1c3RhYmxlJzsKJHNtYXJ0eS0+YXNzaWduKCdzdW1tYXJ5X25ld2RlZmF1bHQnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzdW1tYXJ5X25ld2RlZmF1bHQnLDApKTsKJHNtYXJ0eS0+YXNzaWduKCdzdW1tYXJ5X3BhZ2VsaW1pdCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3N1bW1hcnlfcGFnZWxpbWl0JywxMDApKTsKCiRzb3J0aW5ncyA9IGFycmF5KCR0aGlzLT5MYW5nKCdwcm9kdWN0bmFtZScpPT4ncHJvZHVjdF9uYW1lJywKCQkgICR0aGlzLT5MYW5nKCdwcmljZScpPT4ncHJpY2UnLAoJCSAgJHRoaXMtPkxhbmcoJ2NyZWF0ZWRkYXRlJyk9PidjcmVhdGVfZGF0ZScsCgkJICAkdGhpcy0+TGFuZygnbW9kaWZpZWRkYXRlJyk9Pidtb2RpZmllZF9kYXRlJywKCQkgICR0aGlzLT5MYW5nKCdyYW5kb20nKT0+J3JhbmRvbScsCgkJICAkdGhpcy0+TGFuZygnc3RhdHVzJyk9PidzdGF0dXMnKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfc3VtbWFyeXNvcnRpbmcnLCR0aGlzLT5MYW5nKCdwcm9tcHRfc3VtbWFyeXNvcnRpbmcnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfc3VtbWFyeXNvcnRpbmcnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnc29ydGJ5Jywkc29ydGluZ3MsLTEsJHNvcnRieSkpOwoKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9kZWxldGVwcm9kdWN0ZmlsZXMnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFllc05vRHJvcGRvd24oJGlkLCdkZWxldGVwcm9kdWN0ZmlsZXMnLAoJCQkJCQkkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVsZXRlcHJvZHVjdGZpbGVzJykpKTsKCiRzbWFydHktPmFzc2lnbignaW5wdXRfdXNlaGllcnBhdGh1cmxzJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRZZXNOb0Ryb3Bkb3duKCRpZCwndXNlaGllcnBhdGh1cmxzJywKCQkJCQkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZWhpZXJwYXRodXJscycsMCkpKTsKCiRzbWFydHktPmFzc2lnbignaW5wdXRfdXNlX2RldGFpbHBhZ2VfZm9yX3NlYXJjaCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0WWVzTm9Ecm9wZG93bigkaWQsJ3VzZV9kZXRhaWxwYWdlX2Zvcl9zZWFyY2gnLAoJCQkJCQkkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXNlX2RldGFpbHBhZ2VfZm9yX3NlYXJjaCcsMCkpKTsKCiRzbWFydHktPmFzc2lnbignaW5wdXRfaGllcnBhZ2UnLAoJCSRjb250ZW50b3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaGllcnBhZ2UnKSwKCQkJCQkgICAgICAgJGlkLidoaWVycGFnZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdwcmV0dHloaWVydXJscycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3ByZXR0eWhpZXJ1cmxzJywwKSk7Cgokbm90Zm91bmRfb3B0cyA9IGFycmF5KCk7CiRub3Rmb3VuZF9vcHRzWydkbzQwNCddID0gJHRoaXMtPkxhbmcoJ3Byb21wdF9ub3Rmb3VuZF80MDQnKTsKJG5vdGZvdW5kX29wdHNbJ2RvMzAxJ10gPSAkdGhpcy0+TGFuZygncHJvbXB0X25vdGZvdW5kXzMwMScpOwokbm90Zm91bmRfb3B0c1snZG9tc2cnXSA9ICR0aGlzLT5MYW5nKCdwcm9tcHRfbm90Zm91bmRfZXJyb3Jtc2cnKTsKJHNtYXJ0eS0+YXNzaWduKCdub3Rmb3VuZF9vcHRzJywkbm90Zm91bmRfb3B0cyk7CiRzbWFydHktPmFzc2lnbigncHJvZG5vdGZvdW5kJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJvZG5vdGZvdW5kJywnZG9tc2cnKSk7CiRzbWFydHktPmFzc2lnbigncHJvZG5vdGZvdW5kbXNnJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJvZG5vdGZvdW5kbXNnJywkdGhpcy0+TGFuZygnZXJyb3JfcHJvZHVjdF9ub3Rmb3VuZCcpKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfcHJvZG5vdGZvdW5kcGFnZScsCgkJJGNvbnRlbnRvcHMtPkNyZWF0ZUhpZXJhcmNoeURyb3Bkb3duKCcnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwcm9kbm90Zm91bmRwYWdlJywtMSksJGlkLidwcm9kbm90Zm91bmRwYWdlJykpOwokc21hcnR5LT5hc3NpZ24oJ3NrdXJlcXVpcmVkJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc2t1cmVxdWlyZWQnLDApKTsKJHNtYXJ0eS0+YXNzaWduKCdzbHVndGVtcGxhdGUnLCR0aGlzLT5HZXRUZW1wbGF0ZSgnc2x1Z3RlbXBsYXRlJykpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdwcmVmcy50cGwnKTsKCi8vIEVPRgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/function.admin_productstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSApIHJldHVybjsKCi8vCi8vIFNldHVwCi8vCiRwYWdlbGltaXRzID0gYXJyYXkoJzInPT4yLCc1Jz0+NSwnMjUnPT4yNSwnMTAwJz0+MTAwLCc1MDAnPT41MDApOwokc29ydGl0ZW1zID0gYXJyYXkoKTsKJHNvcnRpdGVtc1skdGhpcy0+TGFuZygncHJvZHVjdG5hbWUnKV0gPSAncHJvZHVjdF9uYW1lJzsKJHNvcnRpdGVtc1skdGhpcy0+TGFuZygncHJpY2UnKV0gPSAncHJpY2UnOwokc29ydGl0ZW1zWyR0aGlzLT5MYW5nKCd3ZWlnaHQnKV0gPSAnd2VpZ2h0JzsKJHNvcnRpdGVtc1skdGhpcy0+TGFuZygnc2t1JyldID0gJ3NrdSc7CiRzb3J0aXRlbXNbJHRoaXMtPkxhbmcoJ2NyZWF0ZWRkYXRlJyldID0gJ3AuY3JlYXRlX2RhdGUnOwokc29ydGl0ZW1zWyR0aGlzLT5MYW5nKCdtb2RpZmllZGRhdGUnKV0gPSAncC5tb2RpZmllZF9kYXRlJzsKJHNvcnRvcmRlcnMgPSBhcnJheSgpOwokc29ydG9yZGVyc1skdGhpcy0+TGFuZygnYXNjZW5kaW5nJyldID0gJ2FzYyc7CiRzb3J0b3JkZXJzWyR0aGlzLT5MYW5nKCdkZXNjZW5kaW5nJyldID0gJ2Rlc2MnOwokdWlkID0gZ2V0X3VzZXJpZChmYWxzZSk7CiRiYXJlX2ZpbHRlciA9IGFycmF5KCdwcm9kdWN0bmFtZSc9PicnLCdza3UnPT4nJywnaGllcmFyY2h5Jz0+JycsJ2NoaWxkcmVuJz0+MCwncGFnZWxpbWl0Jz0+MjUsJ3NvcnRieSc9PidwLmNyZWF0ZV9kYXRlJywKCQkgICAgICdzb3J0b3JkZXInPT4nZGVzYycsJ2NhdGVnb3JpZXMnPT5hcnJheSgpLCdleGNsdWRlY2F0cyc9PjAsJ2N1c3RvbV9maWVsZHMnPT5hcnJheSgpKTsKJGZpbHRlciA9ICRiYXJlX2ZpbHRlcjsKJHRtcCA9IGNtc191c2VycHJlZnM6OmdldCgncHJvZHVjdHNfZmlsdGVyJyk7CmlmKCAkdG1wICkgewogICAgJHRtcCA9IHVuc2VyaWFsaXplKCR0bXApOwogICAgJGZpbHRlciA9IGFycmF5X21lcmdlKCRiYXJlX2ZpbHRlciwkdG1wKTsKfQoKLy8gJGhpZXJhcmNoeSA9ICcnOwovLyAkY2hpbGRyZW4gID0gMDsKLy8gJHBhZ2VsaW1pdCA9IDI1OwovLyAkc29ydGJ5ICAgID0gJ2NyZWF0ZV9kYXRlJzsKLy8gJHNvcnRvcmRlciA9ICdkZXNjJzsKJHBhZ2VudW1iZXIgPSAxOwokZmllbGRzX3ZpZXdhYmxlID0gYXJyYXkoKTsKJGZpZWxkX25hbWVzID0gYXJyYXkoKTsKCmlmKCBpc3NldCgkcGFyYW1zWydyZXNldCddKSApIHsKICAgICRmaWx0ZXIgPSAkYmFyZV9maWx0ZXI7CiAgICBjbXNfdXNlcnByZWZzOjpyZW1vdmUoJ3Byb2R1Y3RzX2ZpbHRlcicpOwogICAgdW5zZXQoJF9TRVNTSU9OWydwcm9kdWN0c19zZWxfcGFnZW51bSddKTsKfQoKLy8KLy8gR2V0IHByZWZlcmVuY2VzCi8vCgovLwovLyBIYW5kbGUgR2V0IHBhcmFtZXRlcnMKLy8KaWYoIGlzc2V0KCRfU0VTU0lPTlsncHJvZHVjdHNfc2VsX3BhZ2VudW0nXSkgKSAkcGFnZW51bWJlciA9IChpbnQpJF9TRVNTSU9OWydwcm9kdWN0c19zZWxfcGFnZW51bSddOwppZiggaXNzZXQoJHBhcmFtc1sncGFnZW51bWJlciddKSApICRwYWdlbnVtYmVyID0gKGludCkkcGFyYW1zWydwYWdlbnVtYmVyJ107CiRwYWdlbnVtYmVyID0gbWF4KDEsJHBhZ2VudW1iZXIpOwppZiggJHBhZ2VudW1iZXIgPiAxICkgJF9TRVNTSU9OWydwcm9kdWN0c19zZWxfcGFnZW51bSddID0gJHBhZ2VudW1iZXI7CgovLwovLyBIYW5kbGUgZm9ybSBzdWJtaXQKLy8KaWYoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSApIHsKICAgICRmaWx0ZXJbJ3Byb2R1Y3RuYW1lJ10gPSB0cmltKCRwYXJhbXNbJ2lucHV0X3Byb2R1Y3RuYW1lJ10pOwogICAgJGZpbHRlclsnc2t1J10gPSB0cmltKCRwYXJhbXNbJ2lucHV0X3NrdSddKTsKICAgIGlmKCAkZmlsdGVyWydwcm9kdWN0bmFtZSddICkgJGZpbHRlclsnc2t1J10gPSAnJzsgLy8gb25lLCBvciB0aGUgb3RoZXIuLiBidXQgbm90IGJvdGguCiAgICAkZmlsdGVyWydoaWVyYXJjaHknXSA9IHRyaW0oJHBhcmFtc1snaW5wdXRfaGllcmFyY2h5J10pOwogICAgJGZpbHRlclsnY2hpbGRyZW4nXSA9IChpbnQpJHBhcmFtc1snaW5wdXRfY2hpbGRyZW4nXTsKICAgICRmaWx0ZXJbJ3BhZ2VsaW1pdCddID0gKGludCkkcGFyYW1zWydpbnB1dF9wYWdlbGltaXQnXTsKICAgICRmaWx0ZXJbJ3BhZ2VsaW1pdCddID0gbWF4KDEsbWluKDUwMCwkZmlsdGVyWydwYWdlbGltaXQnXSkpOwogICAgJGZpbHRlclsnc29ydGJ5J10gPSB0cmltKCRwYXJhbXNbJ2lucHV0X3NvcnRieSddKTsKICAgICRmaWx0ZXJbJ3NvcnRvcmRlciddID0gdHJpbSgkcGFyYW1zWydpbnB1dF9zb3J0b3JkZXInXSk7CiAgICAkZmlsdGVyWydjdXN0b21fZmllbGRzJ10gPSBhcnJheSgpOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2N1c3RvbV9maWVsZHMnXSkgKSAkZmlsdGVyWydjdXN0b21fZmllbGRzJ10gPSAkcGFyYW1zWydjdXN0b21fZmllbGRzJ107CiAgICAkZmlsdGVyWydjYXRlZ29yaWVzJ10gPSBhcnJheSgpOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3JpZXMnXSkgKSAkZmlsdGVyWydjYXRlZ29yaWVzJ10gPSAkcGFyYW1zWydjYXRlZ29yaWVzJ107CiAgICAkZmlsdGVyWydleGNsdWRlY2F0cyddID0gKGludCljZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdpbnB1dF9leGNsdWRlY2F0cycpOwoKICAgIGNtc191c2VycHJlZnM6OnNldCgncHJvZHVjdHNfZmlsdGVyJyxzZXJpYWxpemUoJGZpbHRlcikpOwogICAgdW5zZXQoJF9TRVNTSU9OWydwcm9kdWN0c19zZWxfcGFnZW51bSddKTsKICAgICRwYWdlbnVtYmVyID0gMTsKfQoKLy8KLy8gQmVnaW4gdGhlIGZvcm0KLy8KJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgncHJvZHVjdGxpc3QudHBsJyk7CiR0bXAgPSAkdGhpcy0+R2V0Q2F0ZWdvcmllcygpOwppZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgKSB7CiAgICAkY2F0ZWdvcnlfbGlzdCA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCAkdG1wIGFzICRvbmUgKSB7CiAgICAgICAgJGNhdGVnb3J5X2xpc3RbJG9uZS0+aWRdID0gJG9uZS0+bmFtZTsKICAgIH0KICAgICR0cGwtPmFzc2lnbignY2F0ZWdvcnlfbGlzdCcsJGNhdGVnb3J5X2xpc3QpOwp9CgokZmllbGRkZWZzID0gcHJvZHVjdF91dGlsczo6Z2V0X2ZpZWxkZGVmcygpOwpmb3JlYWNoKCAkZmllbGRkZWZzIGFzICRvbmVkZWYgKSB7CiAgICBzd2l0Y2goICRvbmVkZWYtPnR5cGUgKSB7CiAgICBjYXNlICd0ZXh0Ym94JzoKICAgICAgICAkc29ydGl0ZW1zWyRvbmVkZWYtPnByb21wdF0gPSAnRjo6Jy4kb25lZGVmLT5pZDsKICAgICAgICAkc29ydGl0ZW1zWyRvbmVkZWYtPnByb21wdC4nICgnLiR0aGlzLT5MYW5nKCdudW1lcmljJykuJyknXSA9ICdGOjonLiRvbmVkZWYtPmlkLic6Ok4nOwogICAgICAgIGJyZWFrOwogICAgY2FzZSAnZHJvcGRvd24nOgogICAgICAgICRzb3J0aXRlbXNbJG9uZWRlZi0+cHJvbXB0XSA9ICdGOjonLiRvbmVkZWYtPmlkOwogICAgICAgIGJyZWFrOwogICAgfQp9CgokYWxsX2ZpZWxkcyA9IHByb2R1Y3Rfb3BzOjpnZXRfZmllbGRzKCk7CmlmKCBpc19hcnJheSgkYWxsX2ZpZWxkcykgKSB7CiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkYWxsX2ZpZWxkcyk7ICRpKysgKSB7CiAgICAgICAgc3dpdGNoKCAkYWxsX2ZpZWxkc1skaV1bJ3R5cGUnXSApIHsKICAgICAgICBjYXNlICd0ZXh0YXJlYSc6CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICRmaWVsZHNfdmlld2FibGVbJGFsbF9maWVsZHNbJGldWydpZCddXSA9ICRhbGxfZmllbGRzWyRpXVsncHJvbXB0J107CiAgICAgICAgICAgICRmaWVsZF9uYW1lc1skYWxsX2ZpZWxkc1skaV1bJ2lkJ11dID0gJGFsbF9maWVsZHNbJGldWyduYW1lJ107CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIGlmKCBjb3VudCgkZmllbGRzX3ZpZXdhYmxlKSApIHsKICAgICAgICAvLyBub3cgdHJpbSBkb3duIHRoZSBjdXN0b20gZmllbGRzCiAgICAgICAgLy8gdG8gbWFrZSBzdXJlIHRoYXQgc29tZXRoaW5nIGhhc24ndCBiZWVuIGRlbGV0ZWQuCiAgICAgICAgJHRtcCA9IGFycmF5KCk7CiAgICAgICAgZm9yZWFjaCggJGZpbHRlclsnY3VzdG9tX2ZpZWxkcyddIGFzICRmaWQgKSB7CiAgICAgICAgICAgIGlmKCBpbl9hcnJheSgkZmlkLGFycmF5X2tleXMoJGZpZWxkc192aWV3YWJsZSkpICkgJHRtcFtdID0gJGZpZDsKICAgICAgICB9CiAgICAgICAgJGZpbHRlclsnY3VzdG9tX2ZpZWxkcyddID0gJHRtcDsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRmaWx0ZXJbJ2N1c3RvbV9maWVsZHMnXSA9IGFycmF5KCk7CiAgICB9Cn0KJGFsbF9maWVsZHMgPSBjZ2VfYXJyYXk6OnRvX2hhc2goJGFsbF9maWVsZHMsJ25hbWUnKTsKCiRmaWx0ZXJpbnVzZSA9ICgkZmlsdGVyID09ICRiYXJlX2ZpbHRlcik/RkFMU0U6VFJVRTsKJHRwbC0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2RlZmF1bHRhZG1pbicpKTsKJHRwbC0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKaWYoIGNvdW50KCRmaWVsZHNfdmlld2FibGUpICkgewogICAgJHRwbC0+YXNzaWduKCdmaWVsZHNfdmlld2FibGUnLCRmaWVsZHNfdmlld2FibGUpOwogICAgJHRwbC0+YXNzaWduKCdmaWVsZF9uYW1lcycsJGZpZWxkX25hbWVzKTsKfQokdHBsLT5hc3NpZ24oJ2ZpbHRlcicsJGZpbHRlcik7CiR0cGwtPmFzc2lnbignaW5wdXRfaGllcmFyY2h5JywkdGhpcy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJGlkLCdpbnB1dF9oaWVyYXJjaHknLCRmaWx0ZXJbJ2hpZXJhcmNoeSddKSk7CiR0cGwtPmFzc2lnbignaW5wdXRfY2hpbGRyZW4nLCR0aGlzLT5DcmVhdGVJbnB1dFllc05vRHJvcGRvd24oJGlkLCdpbnB1dF9jaGlsZHJlbicsJGZpbHRlclsnY2hpbGRyZW4nXSkpOwokdHBsLT5hc3NpZ24oJ2lucHV0X3NvcnRieScsJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdpbnB1dF9zb3J0YnknLCRzb3J0aXRlbXMsLTEsJGZpbHRlclsnc29ydGJ5J10pKTsKJHRwbC0+YXNzaWduKCdpbnB1dF9zb3J0b3JkZXInLCR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnaW5wdXRfc29ydG9yZGVyJywkc29ydG9yZGVycywtMSwkZmlsdGVyWydzb3J0b3JkZXInXSkpOwokdHBsLT5hc3NpZ24oJ2lucHV0X3BhZ2VsaW1pdCcsJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdpbnB1dF9wYWdlbGltaXQnLCRwYWdlbGltaXRzLC0xLCRmaWx0ZXJbJ3BhZ2VsaW1pdCddKSk7CiR0cGwtPmFzc2lnbignaW5wdXRfZXhjbHVkZWNhdHMnLCR0aGlzLT5DcmVhdGVJbnB1dFllc05vRHJvcGRvd24oJGlkLCdpbnB1dF9leGNsdWRlY2F0cycsJGZpbHRlclsnZXhjbHVkZWNhdHMnXSkpOwoKLy8KLy8gQnVpbGQgdGhlIHF1ZXJ5Ci8vCiRmaWVsZHMgPSBhcnJheSgpOwokZmllbGRzW10gPSAnRElTVElOQ1QgcC4qJzsKJHByZWZpeDEgPSAiU0VMRUNUIDxGSUVMRFM+IEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0cyBwICI7CiRwcmVmaXgyID0gIlNFTEVDVCBjb3VudChwLmlkKSBBUyBjb3VudCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgcCAnOwokd2hlcmUgPSBhcnJheSgpOwokam9pbnMgPSBhcnJheSgpOwokcXBhcm1zID0gYXJyYXkoKTsKCmlmKCAkZmlsdGVyWydwcm9kdWN0bmFtZSddICkgewogICAgJHRtcCA9ICRmaWx0ZXJbJ3Byb2R1Y3RuYW1lJ107CiAgICAkdG1wID0gc3RyX3JlcGxhY2UoJyonLCclJywkdG1wKTsKICAgIGlmKCBzdHJwb3MoJyUnLCR0bXApID09PSBGQUxTRSApICR0bXAgPSAkdG1wIC4gJyUnOwogICAgJHRtcCA9IHN0cl9yZXBsYWNlKCclJScsJyUnLCR0bXApOwogICAgJHdoZXJlW10gPSAncC5wcm9kdWN0X25hbWUgTElLRSA/JzsKICAgICRxcGFybXNbXSA9ICR0bXA7Cn0KZWxzZSBpZiggJGZpbHRlclsnc2t1J10gKSB7CiAgICAkdG1wID0gJGZpbHRlclsnc2t1J107CiAgICAkdG1wID0gc3RyX3JlcGxhY2UoJyonLCclJywkdG1wKTsKICAgIGlmKCBzdHJwb3MoJyUnLCR0bXApID09PSBGQUxTRSApICR0bXAgPSAkdG1wIC4gJyUnOwogICAgJHRtcCA9IHN0cl9yZXBsYWNlKCclJScsJyUnLCR0bXApOwogICAgJGpvaW5zW10gPSAnTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlicyBQQSBPTiBwLmlkID0gUEEucHJvZHVjdF9pZCc7CiAgICAkd2hlcmVbXSA9ICcocC5za3UgTElLRSA/IE9SIFBBLnNrdSBMSUtFID8pJzsKICAgICRxcGFybXNbXSA9ICR0bXA7CiAgICAkcXBhcm1zW10gPSAkdG1wOwp9CgppZiggY291bnQoJGZpbHRlclsnY3VzdG9tX2ZpZWxkcyddKSAmJiBjb3VudCgkZmllbGRzX3ZpZXdhYmxlKSApIHsKICAgIGZvciggJGogPSAwOyAkaiA8IGNvdW50KCRmaWx0ZXJbJ2N1c3RvbV9maWVsZHMnXSk7ICRqKysgKSB7CiAgICAgICAgJGZpZCA9ICRmaWx0ZXJbJ2N1c3RvbV9maWVsZHMnXVskal07CiAgICAgICAgJGZpZWxkc1tdID0gIkZ2eyRqfS52YWx1ZSBBUyAnRmxkX197JGZpZWxkX25hbWVzWyRmaWRdfSciOwogICAgICAgICRqb2luc1tdID0gJ0xFRlQgT1VURVIgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyBGdnskan0gT04gRnZ7JGp9LnByb2R1Y3RfaWQgPSBwLmlkIEFORCBGdnskan0uZmllbGRkZWZfaWQgPSA/IjsKICAgICAgICAkcXBhcm1zW10gPSAkZmlsdGVyWydjdXN0b21fZmllbGRzJ11bJGpdOwogICAgfQp9CgppZiggIWVtcHR5KCRmaWx0ZXJbJ2hpZXJhcmNoeSddKSApIHsKICAgICR0cXVlcnkgPSAnU0VMRUNUIGxvbmdfbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IFdIRVJFIGlkID0gPyc7CiAgICAkbG9uZ19uYW1lID0gJGRiLT5HZXRPbmUoJHRxdWVyeSxhcnJheSgkZmlsdGVyWydoaWVyYXJjaHknXSkpOwoKICAgICRqb2luc1tdID0gJ0xFRlQgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hpZXIgcGggT04gcGgucHJvZHVjdF9pZCA9IHAuaWQnOwogICAgJGpvaW5zW10gPSAnTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IGggT04gaC5pZCA9IHBoLmhpZXJhcmNoeV9pZCc7CiAgICAkd2hlcmVbXSA9ICdoLmxvbmdfbmFtZSBMSUtFID8nOwogICAgaWYoICRmaWx0ZXJbJ2NoaWxkcmVuJ10gKSB7CiAgICAgICAgJHFwYXJtc1tdID0gJGxvbmdfbmFtZS4nJSc7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkcXBhcm1zW10gPSAkbG9uZ19uYW1lOwogICAgfQp9CgppZiggY291bnQoJGZpbHRlclsnY2F0ZWdvcmllcyddKSA+IDAgKSB7CiAgICAkam9pbnNbXSA9ICdMRUZUIE9VVEVSIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdWN0X2NhdGVnb3JpZXMgcGMgT04gcC5pZCA9IHBjLnByb2R1Y3RfaWQnOwogICAgaWYoICRmaWx0ZXJbJ2V4Y2x1ZGVjYXRzJ10gKSB7CiAgICAgICAgJHdoZXJlW10gPSAnQ09BTEVTQ0UocGMuY2F0ZWdvcnlfaWQsLTEpIE5PVCBJTiAoJy5pbXBsb2RlKCcsJywkZmlsdGVyWydjYXRlZ29yaWVzJ10pLicpJzsKICAgIH0KICAgIGVsc2UgewogICAgICAgICR3aGVyZVtdID0gJ3BjLmNhdGVnb3J5X2lkIElOICgnLmltcGxvZGUoJywnLCRmaWx0ZXJbJ2NhdGVnb3JpZXMnXSkuJyknOwogICAgfQp9CgovLyBoYW5kbGUgZnVua3kgY3VzdG9tIGZpZWxkIHNvcnQgb3JkZXJzCmlmKCBzdGFydHN3aXRoKCRmaWx0ZXJbJ3NvcnRieSddLCdGOjonKSApIHsKICAgIGxpc3QoJGp1bmssJGZpZCwkbnVtZXJpYykgPSBleHBsb2RlKCc6OicsJGZpbHRlclsnc29ydGJ5J10sMyk7CiAgICAkam9pbnNbXSA9ICdMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgZnYgT04gZnYucHJvZHVjdF9pZCA9IHAuaWQnOwogICAgJHdoZXJlW10gPSAnZnYuZmllbGRkZWZfaWQgPSA/JzsKICAgICRxcGFybXNbXSA9ICRmaWQ7CiAgICBpZiggJG51bWVyaWMgKSB7CiAgICAgICAgJG9yZGVyID0gIiBPUkRFUiBCWSBDQVNUKGZ2LnZhbHVlIEFTIERFQ0lNQUwoMTIsMykpIHskZmlsdGVyWydzb3J0b3JkZXInXX0iOwogICAgfSBlbHNlIHsKICAgICAgICAkb3JkZXIgPSAiIE9SREVSIEJZIGZ2LnZhbHVlIHskZmlsdGVyWydzb3J0b3JkZXInXX0iOwogICAgfQp9CmVsc2UgewogICAgJG9yZGVyID0gIiBPUkRFUiBCWSB7JGZpbHRlclsnc29ydGJ5J119IHskZmlsdGVyWydzb3J0b3JkZXInXX0iOwp9Cgokc3RyID0gaW1wbG9kZSgnICcsJGpvaW5zKTsKaWYoIGNvdW50KCR3aGVyZSkgKSB7CiAgICAkc3RyIC49ICcgV0hFUkUgJyAuIGltcGxvZGUoJyBBTkQgJywkd2hlcmUpIC4gJG9yZGVyOwp9CmVsc2UgewogICAgJHN0ciAuPSAkb3JkZXI7Cn0KJHF1ZXJ5MSA9IHN0cl9yZXBsYWNlKCc8RklFTERTPicsaW1wbG9kZSgnLCcsJGZpZWxkcyksJHByZWZpeDEpIC4gJHN0cjsKJHF1ZXJ5MiA9ICRwcmVmaXgyIC4gJHN0cjsKCi8vCi8vIFNldHVwIHN0YXJ0IGVsZW1lbnQsIGFuZCBjb3VudCBwYWdlcwovLwokdG90YWxjb3VudCA9ICRkYi0+R2V0T25lKCRxdWVyeTIsJHFwYXJtcyk7CiRwYWdlY291bnQgPSAoaW50KSgkdG90YWxjb3VudC8kZmlsdGVyWydwYWdlbGltaXQnXSk7CmlmKCAoJHRvdGFsY291bnQgJSAkZmlsdGVyWydwYWdlbGltaXQnXSkgIT0gMCApICRwYWdlY291bnQrKzsKJHN0YXJ0ZWxlbWVudCA9ICgkcGFnZW51bWJlci0xKSAqICRmaWx0ZXJbJ3BhZ2VsaW1pdCddOwoKLy8KLy8gQmVnaW4gdGhlIG91dHB1dAovLwokdHBsLT5hc3NpZ24oJ3RvdGFscHJvZHVjdHMnLCRkYi0+R2V0T25lKCdTRUxFQ1QgQ09VTlQoaWQpIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cycpKTsKJHRwbC0+YXNzaWduKCdwYWdlbnVtYmVyJywkcGFnZW51bWJlcik7CiR0cGwtPmFzc2lnbigncGFnZWNvdW50JywkcGFnZWNvdW50KTsKJHRwbC0+YXNzaWduKCd0b3RhbHJvd3MnLCR0b3RhbGNvdW50KTsKaWYoICRwYWdlbnVtYmVyID4gMSApIHsKICAgICRwYXJtcyA9IGFycmF5KCdwYWdlbnVtYmVyJz0+MSk7CiAgICAkdHBsLT5hc3NpZ24oJ2ZpcnN0cGFnZV91cmwnLCAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnZGVmYXVsdGFkbWluJywnJywkcGFybXMpKTsKICAgICRwYXJtcyA9IGFycmF5KCdwYWdlbnVtYmVyJz0+JHBhZ2VudW1iZXIgLTEpOwogICAgJHRwbC0+YXNzaWduKCdwcmV2cGFnZV91cmwnLCAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnZGVmYXVsdGFkbWluJywnJywkcGFybXMpKTsKfQppZiggJHBhZ2VudW1iZXIgPCAkcGFnZWNvdW50ICkgewogICAgJHBhcm1zID0gYXJyYXkoJ3BhZ2VudW1iZXInPT4kcGFnZW51bWJlciArIDEpOwogICAgJHRwbC0+YXNzaWduKCduZXh0cGFnZV91cmwnLCAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnZGVmYXVsdGFkbWluJywnJywkcGFybXMpKTsKICAgICRwYXJtcyA9IGFycmF5KCdwYWdlbnVtYmVyJz0+JHBhZ2Vjb3VudCk7CiAgICAkdHBsLT5hc3NpZ24oJ2xhc3RwYWdlX3VybCcsICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLCRwYXJtcykpOwp9CiRlbnRyeWFycmF5ID0gYXJyYXkoKTsKJGRicmVzdWx0ID0gJGRiLT5TZWxlY3RMaW1pdCgkcXVlcnkxLCRmaWx0ZXJbJ3BhZ2VsaW1pdCddLCRzdGFydGVsZW1lbnQsJHFwYXJtcyk7CiR0aGVtZSA9IGNtc191dGlsczo6Z2V0X3RoZW1lX29iamVjdCgpOwp3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpIHsKICAgIGZvcmVhY2goICRyb3cgYXMgJGtleSA9PiAkdmFsdWUgKSB7CiAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJGtleSwnRmxkX18nKSApIHsKICAgICAgICAgICAgdW5zZXQoJHJvd1ska2V5XSk7CiAgICAgICAgICAgICRrZXkgPSBzdWJzdHIoJGtleSxzdHJsZW4oJ0ZsZF9fJykpOwogICAgICAgICAgICAkcm93WyRrZXldID0gJHZhbHVlOwoKICAgICAgICAgICAgJHRtcCA9IEB1bnNlcmlhbGl6ZSgkdmFsdWUpOwogICAgICAgICAgICBpZiggJHRtcCAhPT0gRkFMU0UgKSB7CiAgICAgICAgICAgICAgICAkcm93WyRrZXldID0gcHJvZHVjdF91dGlsczo6Z2V0X2Rpc3BsYXlhYmxlX2ZpZWxkdmFsKCRrZXksJHRtcCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkcm93WyRrZXldID0gcHJvZHVjdF91dGlsczo6Z2V0X2Rpc3BsYXlhYmxlX2ZpZWxkdmFsKCRrZXksJHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAkcm93WydlZGl0X3VybCddID0gJHRoaXMtPkNyZWF0ZVVSTCgkaWQsJ2VkaXRwcm9kdWN0JywkcmV0dXJuaWQsIGFycmF5KCdjb21waWQnPT4kcm93WydpZCddKSk7CiAgICAkcm93WydlZGl0bGluayddID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdHByb2R1Y3QnLCAkcmV0dXJuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsICR0aGlzLT5MYW5nKCdlZGl0JyksJycsJycsJ3N5c3RlbWljb24nKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgnY29tcGlkJz0+JHJvd1snaWQnXSkpOwogICAgJHJvd1snY29weWxpbmsnXSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2NvcHlwcm9kdWN0JywgJHJldHVybmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vY29weS5naWYnLCAkdGhpcy0+TGFuZygnY29weV9wcm9kdWN0JyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2NvbXBpZCc9PiRyb3dbJ2lkJ10pKTsKICAgICRyb3dbJ2RlbGV0ZWxpbmsnXSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlbGV0ZXByb2R1Y3QnLCAkcmV0dXJuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+TGFuZygnZGVsZXRlJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2NvbXBpZCc9PiRyb3dbJ2lkJ10pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkxhbmcoJ2FyZXlvdXN1cmVfZGVsZXRlcHJvZHVjdCcpKTsKICAgICRlbnRyeWFycmF5W10gPSAkcm93Owp9CgokdHBsLT5hc3NpZ24oJ2l0ZW1zJywgJGVudHJ5YXJyYXkpOwokdHBsLT5hc3NpZ24oJ2l0ZW1jb3VudCcsIGNvdW50KCRlbnRyeWFycmF5KSk7CgokdHBsLT5hc3NpZ24oJ2ltcG9ydGxpbmsnLAogICAgICAgICAgICAgJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ2ltcG9ydHByb2R1Y3RzJywkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ2ltcG9ydF9mcm9tX2NzdicpLCAnaWNvbnMvc3lzdGVtL2ltcG9ydC5naWYnLGFycmF5KCksJycsJycsZmFsc2UpKTsKCiR0cGwtPmFzc2lnbignZXhwb3J0bGluaycsCiAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnZXhwb3J0Y3N2JywkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ2V4cG9ydF90b19jc3YnKSwgJ2ljb25zL3N5c3RlbS9leHBvcnQuZ2lmJyxhcnJheSgpLCcnLCcnLGZhbHNlKSk7CiR0cGwtPmFzc2lnbignYWRkbGluaycsCiAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZGRwcm9kdWN0JywgJHJldHVybmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdmb2xkZXIuZ2lmJywgJHRoaXMtPkxhbmcoJ2FkZHByb2R1Y3QnKSwnJywnJywnc3lzdGVtaWNvbicpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkoJ2hpZXJhcmNoeSc9PiRmaWx0ZXJbJ2hpZXJhcmNoeSddKSwgJycsIGZhbHNlLCBmYWxzZSwgJycpIC4nICcuCiAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZGRwcm9kdWN0JywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWRkcHJvZHVjdCcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkoJ2hpZXJhcmNoeSc9PiRmaWx0ZXJbJ2hpZXJhcmNoeSddKSwgJycsIGZhbHNlLCBmYWxzZSwgJ2NsYXNzPSJwYWdlb3B0aW9ucyInKSk7CgokdHBsLT5hc3NpZ24oJ2lkdGV4dCcsJHRoaXMtPkxhbmcoJ2lkJykpOwokdHBsLT5hc3NpZ24oJ3Byb2R1Y3R0ZXh0JywgJHRoaXMtPkxhbmcoJ3Byb2R1Y3QnKSk7CiR0cGwtPmFzc2lnbigncHJpY2V0ZXh0JywgJHRoaXMtPkxhbmcoJ3ByaWNlJykpOwokdHBsLT5hc3NpZ24oJ3dlaWdodF91bml0cycscHJvZHVjdF9vcHM6OmdldF93ZWlnaHRfdW5pdHMoKSk7CiR0cGwtPmFzc2lnbignd2VpZ2h0dGV4dCcsJHRoaXMtPkxhbmcoJ3dlaWdodCcpKTsKJHRwbC0+YXNzaWduKCdmb3Jtc3RhcnQyJywkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fYnVsa2FjdGlvbicsJHJldHVybmlkKSk7CiR0cGwtPmFzc2lnbignZm9ybWVuZDInLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokdHBsLT5hc3NpZ24oJ2ZpbHRlcmludXNlJywkZmlsdGVyaW51c2UpOwokYnVsa2FjdGlvbnMgPSBhcnJheSgpOwokYnVsa2FjdGlvbnNbJ2RlbGV0ZSddID0gJHRoaXMtPkxhbmcoJ2RlbGV0ZScpOwokYnVsa2FjdGlvbnNbJ3NldGRyYWZ0J10gPSAkdGhpcy0+TGFuZygnc2V0ZHJhZnQnKTsKJGJ1bGthY3Rpb25zWydzZXRkaXNhYmxlZCddID0gJHRoaXMtPkxhbmcoJ3NldGRpc2FibGVkJyk7CiRidWxrYWN0aW9uc1snc2V0cHVibGlzaGVkJ10gPSAkdGhpcy0+TGFuZygnc2V0cHVibGlzaGVkJyk7CiR0cGwtPmFzc2lnbignYnVsa2FjdGlvbnMnLCRidWxrYWN0aW9ucyk7CgovLyBEaXNwbGF5IHRlbXBsYXRlCiR0cGwtPmRpc3BsYXkoKTsKCi8vIEVPRgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/function.admin_templatestabs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdCgpOwoKaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oICdNb2RpZnkgVGVtcGxhdGVzJyApICkKewogIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdzdW1tYXJ5X3RlbXBsYXRlJywgJHBhcmFtcyk7CiAgewogICAgZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsJHJldHVybmlkLCdzdW1tYXJ5XycsCgkJCQkgUFJPRFVDVFNfUFJFRl9ORVdTVU1NQVJZX1RFTVBMQVRFLAoJCQkJICdzdW1tYXJ5X3RlbXBsYXRlJywKCQkJCSBQUk9EVUNUU19QUkVGX0RGTFRTVU1NQVJZX1RFTVBMQVRFLAoJCQkJICR0aGlzLT5MYW5nKCdzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCcpKTsKICB9CiAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CgoKICBlY2hvICR0aGlzLT5TdGFydFRhYignZGV0YWlsX3RlbXBsYXRlJywgJHBhcmFtcyk7CiAgewogICAgZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsJHJldHVybmlkLCdkZXRhaWxfJywKCQkJCSBQUk9EVUNUU19QUkVGX05FV0RFVEFJTF9URU1QTEFURSwKCQkJCSAnZGV0YWlsX3RlbXBsYXRlJywKCQkJCSBQUk9EVUNUU19QUkVGX0RGTFRERVRBSUxfVEVNUExBVEUsCgkJCQkgJHRoaXMtPkxhbmcoJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnKSk7CiAgfQogIGVjaG8gJHRoaXMtPkVuZFRhYigpOwoKCiAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2J5aGllcmFyY2h5X3RlbXBsYXRlJywgJHBhcmFtcyk7CiAgewogICAgZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsJHJldHVybmlkLCdieWhpZXJhcmNoeV8nLAoJCQkJIFBST0RVQ1RTX1BSRUZfTkVXQllISUVSQVJDSFlfVEVNUExBVEUsCgkJCQkgJ2J5aGllcmFyY2h5X3RlbXBsYXRlJywKCQkJCSBQUk9EVUNUU19QUkVGX0RGTFRCWUhJRVJBUkNIWV9URU1QTEFURSwKCQkJCSAkdGhpcy0+TGFuZygnYnloaWVyYXJjaHl0ZW1wbGF0ZV9hZGRlZGl0JykpOwogIH0KICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKCgogIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdjYXRlZ29yeWxpc3RfdGVtcGxhdGUnLCAkcGFyYW1zKTsKICB7CiAgICBlY2hvICR0aGlzLT5TaG93VGVtcGxhdGVMaXN0KCRpZCwkcmV0dXJuaWQsJ2NhdGVnb3J5bGlzdF8nLAoJCQkJIFBST0RVQ1RTX1BSRUZfTkVXQ0FURUdPUllMSVNUX1RFTVBMQVRFLAoJCQkJICdjYXRlZ29yeWxpc3RfdGVtcGxhdGUnLAoJCQkJIFBST0RVQ1RTX1BSRUZfREZMVENBVEVHT1JZTElTVF9URU1QTEFURSwKCQkJCSAkdGhpcy0+TGFuZygnY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCcpKTsKICB9CiAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CgoKICBlY2hvICR0aGlzLT5TdGFydFRhYignc2VhcmNoX3RlbXBsYXRlJywgJHBhcmFtcyk7CiAgewogICAgZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsJHJldHVybmlkLCdzZWFyY2hfJywKCQkJCSBQUk9EVUNUU19QUkVGX05FV1NFQVJDSF9URU1QTEFURSwKCQkJCSAnc2VhcmNoX3RlbXBsYXRlJywKCQkJCSBQUk9EVUNUU19QUkVGX0RGTFRTRUFSQ0hfVEVNUExBVEUsCgkJCQkgJHRoaXMtPkxhbmcoJ3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnKSk7CiAgfQogIGVjaG8gJHRoaXMtPkVuZFRhYigpOwoKCiAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2RlZmF1bHRfdGVtcGxhdGVzJyk7CiAgewogICAgJGlucHV0X3N1bW1hcnl0ZW1wbGF0ZSA9CiAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXU1VNTUFSWV9URU1QTEFURSk7CiAgICAkaW5wdXRfZGV0YWlsdGVtcGxhdGUgPQogICAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV0RFVEFJTF9URU1QTEFURSk7CiAgICAkaW5wdXRfYnloaWVyYXJjaHl0ZW1wbGF0ZSA9CiAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXQllISUVSQVJDSFlfVEVNUExBVEUpOwogICAgJGlucHV0X2NhdGVnb3J5bGlzdHRlbXBsYXRlID0KICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ORVdDQVRFR09SWUxJU1RfVEVNUExBVEUpOwogICAgJGlucHV0X3NlYXJjaHRlbXBsYXRlID0KICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ORVdTRUFSQ0hfVEVNUExBVEUpOwoKICAgICRzbWFydHktPmFzc2lnbignaW5mb19kZmx0X3RlbXBsYXRlJywKCQkgICAgJHRoaXMtPkxhbmcoJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJykpOwoKICAgICRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywKCQkgICAgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX3NldGRmbHR0ZW1wbGF0ZXMnLAoJCQkJCSAgICRyZXR1cm5pZCkpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywKCQkgICAgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CgogICAgJHNtYXJ0eS0+YXNzaWduKCdsZWdlbmRfc3VtbWFyeXRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkxhbmcoJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfc3VtbWFyeXRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkxhbmcoJ3Byb21wdF90ZW1wbGF0ZScpKTsKICAgICRzbWFydHktPmFzc2lnbignaW5wdXRfc3VtbWFyeXRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCRpZCwkaW5wdXRfc3VtbWFyeXRlbXBsYXRlLAoJCQkJCSAgJ2lucHV0X3N1bW1hcnl0ZW1wbGF0ZScpKTsKICAgICRzbWFydHktPmFzc2lnbignc3VibWl0X3N1bW1hcnl0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdF9zdW1tYXJ5dGVtcGxhdGUnLAoJCQkJCSAgICAgJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3Jlc2V0X3N1bW1hcnl0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3Jlc2V0X3N1bW1hcnl0ZW1wbGF0ZScsCgkJCQkJICAgICAkdGhpcy0+TGFuZygncmVzZXR0b2ZhY3RvcnknKSkpOwoKICAgICRzbWFydHktPmFzc2lnbignbGVnZW5kX2RldGFpbHRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkxhbmcoJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9kZXRhaWx0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5MYW5nKCdwcm9tcHRfdGVtcGxhdGUnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X2RldGFpbHRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCRpZCwkaW5wdXRfZGV0YWlsdGVtcGxhdGUsCgkJCQkJICAnaW5wdXRfZGV0YWlsdGVtcGxhdGUnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdF9kZXRhaWx0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdF9kZXRhaWx0ZW1wbGF0ZScsCgkJCQkJICAgICAkdGhpcy0+TGFuZygnc3VibWl0JykpKTsKICAgICRzbWFydHktPmFzc2lnbigncmVzZXRfZGV0YWlsdGVtcGxhdGUnLAoJCSAgICAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdyZXNldF9kZXRhaWx0ZW1wbGF0ZScsCgkJCQkJICAgICAkdGhpcy0+TGFuZygncmVzZXR0b2ZhY3RvcnknKSkpOwoKCiAgICAkc21hcnR5LT5hc3NpZ24oJ2xlZ2VuZF9ieWhpZXJhcmNoeXRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkxhbmcoJ3RpdGxlX2J5aGllcmFyY2h5X2RmbHR0ZW1wbGF0ZScpKTsKICAgICRzbWFydHktPmFzc2lnbigncHJvbXB0X2J5aGllcmFyY2h5dGVtcGxhdGUnLAoJCSAgICAkdGhpcy0+TGFuZygncHJvbXB0X3RlbXBsYXRlJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9ieWhpZXJhcmNoeXRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCRpZCwkaW5wdXRfYnloaWVyYXJjaHl0ZW1wbGF0ZSwKCQkJCQkgICdpbnB1dF9ieWhpZXJhcmNoeXRlbXBsYXRlJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXRfYnloaWVyYXJjaHl0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdF9ieWhpZXJhcmNoeXRlbXBsYXRlJywKCQkJCQkgICAgICR0aGlzLT5MYW5nKCdzdWJtaXQnKSkpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdyZXNldF9ieWhpZXJhcmNoeXRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwncmVzZXRfYnloaWVyYXJjaHl0ZW1wbGF0ZScsCgkJCQkJICAgICAkdGhpcy0+TGFuZygncmVzZXR0b2ZhY3RvcnknKSkpOwoKCiAgICAkc21hcnR5LT5hc3NpZ24oJ2xlZ2VuZF9jYXRlZ29yeWxpc3R0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5MYW5nKCd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfY2F0ZWdvcnlsaXN0dGVtcGxhdGUnLAoJCSAgICAkdGhpcy0+TGFuZygncHJvbXB0X3RlbXBsYXRlJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9jYXRlZ29yeWxpc3R0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwkaWQsJGlucHV0X2NhdGVnb3J5bGlzdHRlbXBsYXRlLAoJCQkJCSAgJ2lucHV0X2NhdGVnb3J5bGlzdHRlbXBsYXRlJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXRfY2F0ZWdvcnlsaXN0dGVtcGxhdGUnLAoJCSAgICAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdzdWJtaXRfY2F0ZWdvcnlsaXN0dGVtcGxhdGUnLAoJCQkJCSAgICAgJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3Jlc2V0X2NhdGVnb3J5bGlzdHRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwncmVzZXRfY2F0ZWdvcnlsaXN0dGVtcGxhdGUnLAoJCQkJCSAgICAgJHRoaXMtPkxhbmcoJ3Jlc2V0dG9mYWN0b3J5JykpKTsKCiAgICAkc21hcnR5LT5hc3NpZ24oJ2xlZ2VuZF9zZWFyY2h0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5MYW5nKCd0aXRsZV9zZWFyY2hfZGZsdHRlbXBsYXRlJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfc2VhcmNodGVtcGxhdGUnLAoJCSAgICAkdGhpcy0+TGFuZygncHJvbXB0X3RlbXBsYXRlJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zZWFyY2h0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwkaWQsJGlucHV0X3NlYXJjaHRlbXBsYXRlLAoJCQkJCSAgJ2lucHV0X3NlYXJjaHRlbXBsYXRlJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXRfc2VhcmNodGVtcGxhdGUnLAoJCSAgICAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdzdWJtaXRfc2VhcmNodGVtcGxhdGUnLAoJCQkJCSAgICAgJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3Jlc2V0X3NlYXJjaHRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwncmVzZXRfc2VhcmNodGVtcGxhdGUnLAoJCQkJCSAgICAgJHRoaXMtPkxhbmcoJ3Jlc2V0dG9mYWN0b3J5JykpKTsKCiAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2RmbHRfdGVtcGxhdGVzLnRwbCcpOwogIH0KICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKCn0KCi8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/functions.admin_tools.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmZ1bmN0aW9uIHByb2R1Y3RzX1NlYXJjaFJlaW5kZXgoJiRtb2QsJG1vZHVsZSkKewogICRwYWdlID0gMTsKICAkZG9uZSA9IEZBTFNFOwogIHdoaWxlKCAhJGRvbmUgKSB7CgkkcGFybXMgPSBhcnJheSgnc3RhdHVzJz0+J3B1Ymxpc2hlZCcsJ2xpbWl0Jz0+MjUwLCdwYWdlJz0+JHBhZ2UpOwoJJHF1ZXJ5ID0gbmV3IHByb2R1Y3RzX3F1ZXJ5KCRwYXJtcyk7CgkkcnMgPSAkcXVlcnktPmV4ZWN1dGUoKTsKCXdoaWxlKCAhJHJzLT5FT0YoKSApIHsKCSAgJHRtcCA9ICRycy0+Z2V0X3Byb2R1Y3QoRkFMU0UsVFJVRSk7CgkgICR3b3JkcyA9ICRtb2QtPkdldFNlYXJjaGFibGVUZXh0KCR0bXApOwoJICBpZiggaXNfYXJyYXkoJHdvcmRzKSAmJiBjb3VudCgkd29yZHMpICkgJG1vZHVsZS0+QWRkV29yZHMoJG1vZC0+R2V0TmFtZSgpLCR0bXBbJ2lkJ10sJ3Byb2R1Y3QnLGltcGxvZGUoJyAnLCR3b3JkcykpOwoJICAkcnMtPk1vdmVOZXh0KCk7Cgl9CglpZiggJHBhZ2UgPT0gJHJzLT5udW1wYWdlcyApIHsKCSAgJGRvbmUgPSBUUlVFOwoJICBicmVhazsKCX0KCSRwYWdlKys7CiAgfQp9CgpmdW5jdGlvbiBwcm9kdWN0c19CdWlsZEhpZXJhcmNoeUxpc3QoJiRtb2QpCnsKICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKICAkaGllcmFyY2h5X2l0ZW1zID0gYXJyYXkoKTsKICAkaGllcmFyY2h5X2l0ZW1zWyRtb2QtPkxhbmcoJ25vbmUnKV0gPSAtMTsKICAkcXVlcnkgPSAnU0VMRUNUIGhpZXJhcmNoeSwgbG9uZ19uYW1lIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkgV0hFUkUgaWQgPSAtMSc7CiAgJGRiciA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5ICk7CiAgJGxvbmduYW1lID0gJyc7CiAgd2hpbGUoICRkYnIgJiYgKCRyb3cgPSAkZGJyLT5GZXRjaFJvdygpKSApCiAgICB7CiAgICAgICRsb25nbmFtZSA9ICRyb3dbJ2hpZXJhcmNoeSddIC4gJyUnOwogICAgfQogICRxdWVyeSA9ICdTRUxFQ1QgaWQsIGxvbmdfbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5CiAgICAgICAgICAgV0hFUkUgaGllcmFyY2h5IE5PVCBMSUtFID8KICAgICAgICAgICBPUkRFUiBCWSBoaWVyYXJjaHknOwogICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRsb25nbmFtZSkpOwogIHdoaWxlKCAkZGJyICYmICgkcm93ID0gJGRici0+RmV0Y2hSb3coKSkgKQogICAgewogICAgICAkaGllcmFyY2h5X2l0ZW1zWyRyb3dbJ2xvbmdfbmFtZSddXSA9ICRyb3dbJ2lkJ107CiAgICB9CgogIHJldHVybiAkaGllcmFyY2h5X2l0ZW1zOwp9CgoKZnVuY3Rpb24gcHJvZHVjdHNfR2V0VHlwZXNEcm9wZG93biggJiRtb2QsICRpZCwgJG5hbWUsICRzZWxlY3RlZCA9ICcnLCAkYWRkdGV4dCA9ICcnLAoJCQkJICAgICRzZWxlY3RvbmUgPSBmYWxzZSApCnsKICAkaXRlbXMgPSBwcm9kdWN0X3V0aWxzOjpnZXRfZmllbGRfdHlwZXMoJHNlbGVjdG9uZSk7CgogIC8vIENyZWF0ZUlucHV0RHJvcGRvd24gd2FudHMgdGhlIGxhYmVscyBmaXJzdCBmb3Igc29tZSByZWFzb24uCiAgJGl0ZW1zID0gYXJyYXlfZmxpcCgkaXRlbXMpOwoKICByZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICRuYW1lLCAkaXRlbXMsIC0xLCAkc2VsZWN0ZWQsJGFkZHRleHQpOwp9CgoKZnVuY3Rpb24gcHJvZHVjdHNfSGFuZGxlVXBsb2FkZWRJbWFnZSgmJG1vZCwkaWQsJG5hbWUsJGRlc3RkaXIsJiRlcnJvcnMsJHN1YmZpZWxkPScnLCR3bWxvY2F0aW9uPScnLCRvdmVyd3JpdGU9ZmFsc2UpCnsKICAgIGNnZV9kaXI6Om1rZGlycigkZGVzdGRpcik7CiAgICBpZiggIWlzX2RpcigkZGVzdGRpcikgKSByZXR1cm4gRkFMU0U7CgogICAgJGhhbmRsZXIgPSBjZ2Vfc2V0dXA6OmdldF91cGxvYWRlcigkaWQsJGRlc3RkaXIpOwoJJGhhbmRsZXItPnNldF9hY2NlcHRlZF9maWxldHlwZXMoJG1vZC0+R2V0UHJlZmVyZW5jZSgnYWxsb3dlZF9maWxldHlwZXMnKSk7CiAgICAkaGFuZGxlci0+c2V0X2FjY2VwdGVkX2ltYWdldHlwZXMoJG1vZC0+R2V0UHJlZmVyZW5jZSgnYWxsb3dlZF9pbWFnZXR5cGVzJykpOwogICAgJGhhbmRsZXItPnNldF9hbGxvd19vdmVyd3JpdGUoJG92ZXJ3cml0ZSk7CgkkaGFuZGxlci0+c2V0X2RlbGV0ZV9vcmlnKGZhbHNlKTsKCSRoYW5kbGVyLT5zZXRfcHJldmlldyhmYWxzZSk7CgkkaGFuZGxlci0+c2V0X3ByZXZpZXdfc2l6ZSgwKTsKICAgICRoYW5kbGVyLT5zZXRfdGh1bWJuYWlsKGZhbHNlKTsKICAgICRoYW5kbGVyLT5zZXRfd2F0ZXJtYXJrKGZhbHNlKTsKICAgICRyZXMgPSAkaGFuZGxlci0+aGFuZGxlX3VwbG9hZCgkbmFtZSwnJywkc3ViZmllbGQpOwogICAgJGVyciA9ICRoYW5kbGVyLT5nZXRfZXJyb3IoKTsKCiAgICBpZiggISRyZXMgJiYgJGVyciAhPSBjZ19maWxldXBsb2FkOjpOT0ZJTEUgKSB7CgkJLy8gdXBsb2FkIGVycm9yCgkJJGVycm9yc1tdID0gc3ByaW50ZigiJXMgJXM6ICVzIiwkbW9kLT5MYW5nKCdmaWVsZCcpLCRuYW1lLAoJCQkJCQkJJG1vZC0+R2V0VXBsb2FkRXJyb3JNZXNzYWdlKCRlcnIpLicgLSAnLiRoYW5kbGVyLT5nZXRfZXJyb3Jtc2coKSk7CgkJcmV0dXJuIEZBTFNFOwogICAgfQogICAgaWYoIGVtcHR5KCRyZXMpIHx8ICRyZXMgPT09IGZhbHNlICkgewoJCS8vIG5vIGZpbGUgd2FzIHVwbG9hZGVkCgkJLy8gZG8gbm90aGluZwoJCXJldHVybiBUUlVFOwogICAgfQoKICAgICRmaWxlbmFtZSA9ICRyZXM7CiAgICByZXR1cm4gJGZpbGVuYW1lOwp9CgoKZnVuY3Rpb24gcHJvZHVjdHNfRGVsZXRlUHJvZHVjdCgmJG1vZCwkcHJvZHVjdF9pZCwkdXBkYXRlX3NlYXJjaD10cnVlKQp7CiAgJGdDbXMgPSBjbXNtcygpOwogICRkYiA9ICRnQ21zLT5HZXREYigpOwoKICAvLyBHZXQgdGhlIGNhdGVnb3J5IGRldGFpbHMKICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzIFdIRVJFIGlkID0gPyc7CiAgJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJHByb2R1Y3RfaWQpKTsKCiAgLy9Ob3cgcmVtb3ZlIHRoZSBjYXRlZ29yeQogICRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzIFdIRVJFIGlkID0gPyI7CiAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHByb2R1Y3RfaWQpKTsKCiAgLy9BbmQgcmVtb3ZlIGl0IGZyb20gYW55IGN1c3RvbSBmaWVsZHMKICAkcXVlcnkgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgV0hFUkUgcHJvZHVjdF9pZCA9ID8iOwogICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwcm9kdWN0X2lkKSk7CgogIC8vQW5kIHJlbW92ZSBpdCBmcm9tIGFueSBjYXRlZ29yaWVzCiAgJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzIFdIRVJFIHByb2R1Y3RfaWQgPSA/IjsKICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcHJvZHVjdF9pZCkpOwoKICAvLyBhbmQgcmVtb3ZlIHRoZSBoaWVyYXJjaHkgc3R1ZmYKICAkcXVlcnkgPSAnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdG9oaWVyIFdIRVJFIHByb2R1Y3RfaWQgPSA/JzsKICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcHJvZHVjdF9pZCkpOwoKICAvLyBhbmQgcmVtb3ZlIHRoZSBhdHRyaWJzIHN0dWZmCiAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlicyBXSEVSRSBwcm9kdWN0X2lkID0gPyc7CiAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHByb2R1Y3RfaWQpKTsKCiAgLy8gYW5kIChvcHRpb25hbGx5KSByZW1vdmUgYWxsIGZpbGVzCiAgaWYoICRtb2QtPkdldFByZWZlcmVuY2UoJ2RlbGV0ZXByb2R1Y3RmaWxlcycpICkgewogICAgICAkZGlyID0gcHJvZHVjdF91dGlsczo6Z2V0X3Byb2R1Y3RfdXBsb2FkX3BhdGgoJHByb2R1Y3RfaWQpOwogICAgICBjZ2VfZGlyOjpyZWN1cnNpdmVfcmVtb3ZlX2RpcmVjdG9yeSgkZGlyKTsKICB9CgogIC8vVXBkYXRlIHNlYXJjaCBpbmRleAogIGlmKCAkdXBkYXRlX3NlYXJjaCApIHsKICAgICAgJG1vZHVsZSA9IGNtc191dGlsczo6Z2V0X3NlYXJjaF9tb2R1bGUoKTsKICAgICAgaWYgKCRtb2R1bGUgIT0gRkFMU0UpICRtb2R1bGUtPkRlbGV0ZVdvcmRzKCRtb2QtPkdldE5hbWUoKSwgJHByb2R1Y3RfaWQsICdwcm9kdWN0Jyk7CiAgfQp9CgoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/help.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+CiAgPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgYSB3YXkgdG8gY29sbGVjdCwgb3JnYW5pemUsIGFuZCBkaXNwbGF5IGluZm9ybWF0aW9uIGFib3V0IHByb2R1Y3RzIGFuZCB0aGVpciBjYXRlZ29yaWVzLiAgVGhpcyBtb2R1bGUgY2FuIHN0YW5kIG9uIGl0cyBvd24sIG9yIGJlIHBhcnQgb2YgYW4gZS1jb21tZXJjZSBzb2x1dGlvbiBpZiB5b3Ugd2lzaC4gIFRoZSBtb2R1bGUgc3VwcG9ydHMgYW4gaXRlbSBleGlzdGluZyBpbiBtb3JlIHRoYW4gb25lIGNhdGVnb3J5LCBzdXBwb3J0cyBpdGVtIHdlaWdodCwgcHJpY2UsIGFuZCBvcHRpb24uICBFYWNoIGl0ZW0gb3B0aW9uIGNhbiBoYXZlIGEgcHJpY2UgYWRqdXN0bWVudC4gIEVhY2ggaXRlbSBjYW4gYmUgc2V0IGFzIHRheGFibGUsIG9yIG5vbiB0YXhhYmxlLjwvcD4KICA8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBtdWx0aXBsZSBjdXN0b20gZmllbGQgZGVmaW5pdGlvbnMsIGFuZCBmb3IgdGhlIGFiaWxpdHkgdG8gZGlzY3JpbWluYXRlIHByaXZhdGUgZnJvbSBwdWJsaWMgZGF0YS48L3A+CjxoMz5GZWF0dXJlczo8L2gzPgo8dWw+CiAgPGxpPk51bWVyb3VzIFZpZXdzPC9saT4KICAgIDx1bD4KICAgICAgPGxpPlN1bW1hcnkgdmlldzwvbGk+CiAgICAgIDxsaT5DYXRlZ29yeSBMaXN0IFZpZXc8L2xpPgogICAgICA8bGk+RGV0YWlsIHZpZXc8L2xpPgogICAgICA8bGk+SGllcmFyY2h5IERyaWxsLWRvd24gVmlldzwvbGk+CiAgICA8L3VsPgogIDxsaT5FbnRpcmVseSBkYXRhYmFzZSB0ZW1wbGF0ZSBkcml2ZW4KICAgIDxwPk51bWVyb3VzIHRlbXBsYXRlcyBvZiBlYWNoIHR5cGUgY2FuIGJlIGRlZmluZWQsIGRlZmF1bHRzIHNwZWNpZmllZCBmb3IgZWFjaCB0eXBlLCBhbmQgdGhlIHRlbXBsYXRlIHVzZWQgZm9yIGVhY2ggcGFydGljdWxhciB2aWV3IGNhbiBiZSBzcGVjaWZpZWQgYXMgYSBwYXJhbWV0ZXI8L3A+CiAgPC9saT4KICA8bGk+U29ydGluZyBhbmQgcGFnaW5hdGlvbiBpbiB0aGUgc3VtbWFyeSB2aWV3PC9saT4KICA8bGk+UHJvZHVjdHMgY2FuIGV4aXN0IGluIG11bHRpcGxlIGNhdGVnb3JpZXM8L2xpPgogIDxsaT5OdW1lcm91cyBjdXN0b20gZmllbGRzIGNhbiBiZSBkZWZpbmVkLCBpbmNsdWRpbmcgaW1hZ2VzPC9saT4KICA8bGk+QXV0b21hdGljIHRodW1ibmFpbCBjcmVhdGlvbjwvbGk+CiAgPGxpPkFkbWluIGRlZmluZWQgZmllbGRzPC9saT4KICA8bGk+UHJvZHVjdCBvcHRpb25zIChpbmNsdWRpbmcgcHJpY2UgYWRqdXN0bWVudCk8L2xpPgogIDxsaT5XZWlnaHQgYW5kIHRheGFibGUgZmllbGRzIChmb3IgdXNlIGluIGUtY29tbWVyY2Ugc29sdXRpb25zKTwvbGk+CiAgPGxpPlByb2R1Y3RzIGNhbiBoYXZlIGEgc3RhdHVzIChwdWJsaXNoZWQgb3IgZHJhZnQpIGluIG9yZGVyIHRvIGhpZGUgcHJvZHVjdHMgZnJvbSBwdWJsaWMgZGlzcGxheSBhdCBhbnkgdGltZTwvbGk+CiAgPGxpPlByZXR0eSBVUkwgU3VwcG9ydDwvbGk+CiAgPGxpPjxzdHJvbmc+TW9yZS4uLjwvc3Ryb25nPjwvbGk+CjwvdWw+Cgo8aDM+SG93IERvIEkgVXNlIEl0OjwvaDM+CjxvbD4KPGxpPlNldCBwcmVmZXJlbmNlcwogIDxwPlVzdWFsbHkgdGhpcyBpcyBqdXN0IGEgZm9ybWFsaXR5LiAgWW91IHNob3VsZCBzcGVjaWZ5IHlvdXIgZGVmYXVsdCB3ZWlnaHQgdW5pdHMsIGFuZCB5b3VyIGRlZmF1bHQgY3VycmVuY3kgc3ltYm9sIGZvciB5b3VyIGxvY2FsIGVudmlyb25tZW50LjwvcD4KPC9saT4KPGxpPlNldHVwIHVzZXJzIGFuZCBwZXJtaXNzaW9ucwogIDxwPlRoaXMgbW9kdWxlIHVzZXMgdGhlICdNb2RpZnkgVGVtcGxhdGVzJyBwZXJtaXNzaW9uIHRvIGFsbG93IHVzZXJzIHRvIGJlIGFibGUgdG8gbW9kaWZ5IHRoZSB2YXJpb3VzIHRlbXBsYXRlcyB0aGF0IGNhbiBiZSB1c2VkIGJ5IHRoaXMgbW9kdWxlLiAgQXMgd2VsbCwgdGhlICdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycgcGVybWlzc2lvbiBpcyBuZWVkZWQgdG8gYmUgYWJsZSB0byBhZGp1c3QgdGhlIG1vZHVsZXMgcHJlZmVyZW5jZXMuICBJbiBvcmRlciB0byBoYXZlIHRoZSBhYmlsaXR5IHRvIG1vZGlmeSBmaWVsZCBkZWZpbml0aW9ucywgY2F0ZWdvcmllcywgb3IgcHJvZHVjdHMsIHlvdXIgdXNlcnMgd2lsbCBuZWVkIHRoZSAnTW9kaWZ5IFByb2R1Y3RzJyBwZXJtaXNzaW9uLjwvcD4KPC9saT4KPGxpPihvcHRpb25hbCkgRGVmaW5lIG9uZSBvciBtb3JlIGNhdGVnb3JpZXMKICA8cD5UaGlzIGlzIGFuIG9wdGlvbmFsIHN0ZXAsIGJ1dCB5b3Ugd2lsbCBwcm9iYWJseSB3YW50IHRvIGRvIHRoaXMgZWFybHkgdG8gcHJldmVudCBoYXZpbmcgdG8gZ28gYmFjayB0byBtb2RpZnkgZWFjaCBhbmQgZXZlcnkgcHJvZHVjdCBsYXRlci4gIEFkZGluZyBhIGNhdGVnb3J5IGlzIGFzIHNpbXBsZSBhcyBjbGlja2luZyBvbiB0aGUgJ0NhdGVnb3JpZXMnIHRhYiBpbiB0aGUgUHJvZHVjdCBNYW5hZ2VycyBhZG1pbiBzZWN0aW9uLCBhbmQgY2xpY2tpbmcgJ0FkZCBBIENhdGVnb3J5Jy4gIEZyb20gdGhlcmUgeW91IHdpbGwgYmUgcHJvbXB0ZWQgZm9yIGEgY2F0ZWdvcnkgbmFtZS48L3A+CjwvbGk+CjxsaT4ob3B0aW9uYWwpIERlZmluZSBhIHByb2R1Y3QgaGllcmFyY2h5LgogIDxwPllvdSBjYW4gb3JnYW5pemUgeW91ciBwcm9kdWN0cyBpbnRvIGEgaGllcmFyY2h5LiAgVGhlIGhpZXJhcmNoeSBpcyBzaW1pbGFyIHRvIGNhdGVnb3JpZXMgZXhjZXB0IHRoYXQgZWFjaCBub2RlIGluIHRoZSBoaWVyYXJjaHkgY2FuIGhhdmUgemVybyBvciBtb3JlIGNoaWxkcmVybi4gIEEgcHJvZHVjdCBjYW4gb25seSBiZWxvbmcgdG8gb25lIHBsYWNlIGluIHRoZSBoaWVyYXJjaHkuPC9wPgo8L2xpPgo8bGk+KG9wdGlvbmFsKSBEZWZpbmUgb25lIG9yIG1vcmUgY3VzdG9tIGZpZWxkcwogIDxwPlRoaXMgaXMgYW4gb3B0aW9uYWwgc3RlcC4gIEN1c3RvbSBmaWVsZHMgYXJlIG5vdCBuZWVkZWQgaWYgdGhpcyBtb2R1bGUgc3VpdHMgeW91IGV4YWN0bHkgYXMgaXQgaXMuICBIb3dldmVyIGlmIHlvdSB3b3VsZCBsaWtlIHRvIHN0b3JlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gZm9yIGVhY2ggb2YgeW91ciBwcm9kdWN0cyB5b3UgY2FuIGNyZWF0ZSBjdXN0b20gZmllbGRzLiAgQ3JlYXRpbmcgY3VzdG9tIGZpZWxkcyBpcyBzaW1pbGFyIHRvIGNyZWF0aW5nIGNhdGVnb3JpZXMsIGV4Y2VwdCB0aGF0IG1vcmUgZGF0YSBpcyByZXF1ZXN0ZWQuPC9wPgo8cD5DdXJyZW50bHkgYSBudW1iZXIgb2YgdHlwZXMgb2YgY3VzdG9tIGZpZWxkcyBhcmUgYXZhaWxhYmxlLCBpbmNsdWRpbmc6ICd0ZXh0Ym94JywnY2hlY2tib3gnLGFuZCAndGV4dGFyZWEnLCAnZHJvcGRvd24nLCBhbmQgJ2ZpbGUnLiAgU2VsZWN0IG9uZSBvZiB0aGVzZSwgZ2l2ZSB5b3VyIG5ldyBmaWVsZCBhIG5hbWUsIGFuZCBpbmRpY2F0ZSB3ZXRoZXIgdGhhdCBmaWVsZCBzaG91bGQgYmUgdmlzaWJsZSB0byB0aGUgcHVibGljIGluIHRoZSB2YXJpb3VzIHZpZXdzLiAgVGhlbiBoaXQgc3VibWl0PC9wPgo8L2xpPgo8bGk+Q3JlYXRlIG9uZSBvciBtb3JlIHByb2R1Y3RzPC9saT4KPHA+WW91IHNob3VsZCBjcmVhdGUgb25lIG9yIG1vcmUgcHJvZHVjdHMgdG8gZGlzcGxheSBpbiB5b3VyIHdlYnNpdGUgY29udGVudC4gIEdpdmUgZWFjaCBwcm9kdWN0IGEgbmFtZSwgYSBwcmljZSAob3B0aW9uYWwpIGEgd2VpZ2h0IChvcHRpb25hbCksIGEgc3RhdHVzIChkcmFmdCBvciBwdWJsaXNoZWQpLCBhbmQgc29tZSBpbmZvcm1hdGlvbi4gIEFkZGl0aW9uYWxseSwgeW91IGNhbiBhbHNvIHNwZWNpZnkgaWYgdGhlIHByb2R1Y3QgaXMgdGF4YWJsZS48L3A+CjxwPklmIGNhdGVnb3JpZXMgYXJlIGRlZmluZWQsIHRoZW4gYSBtdWx0aXNlbGVjdCBmaWVsZCB3aWxsIGFwcGVhciBhbGxvd2luZyB5b3UgdG8gc2VsZWN0IHRoZSBjYXRlZ29yaWVzIGZvciB0aGUgaXRlbS48L3A+CjxwPklmIGN1c3RvbSBmaWVsZHMgYXJlIGRlZmluZWQsIHRoZW4gaW5wdXQgZmllbGRzIGFwcHJvcHJpYXRlIHRvIHRoZSB0eXBlIG9mIGN1c3RvbSBmaWVsZCB3aWxsIGFwcGVhciBhbmQgYWxsb3cgeW91IHRvIHNwZWNpZnkgZGF0YSBmb3IgZWFjaCBvZiB0aGVtLiAgVGhpcyBkYXRhIGlzIG9wdGlvbmFsLjwvcD4KPGxpPkFkZCB0aGUgYXBwcm9wcmlhdGUgdGFncyBpbnRvIHlvdXIgcGFnZSB0ZW1wbGF0ZXMgb3IgcGFnZSBjb250ZW50PC9saT4KPHA+VGhpcyBjYW4gYmUgYXMgc2ltcGxlIGFzIGFkZGluZyB0aGUgPHN0cm9uZz57UHJvZHVjdHN9PC9zdHJvbmc+IHRhZyBpbnRvIHRoZSBjb250ZW50IGFyZWEgb2Ygb25lIG9mIHlvdXIgcGFnZXMsIG9yIGludG8geW91ciBwYWdlIHRlbXBsYXRlLjwvcD4KPHA+SWYgeW91IHdpc2ggdG8gYWx0ZXIgdGhlIGJlaGF2aW91ciBvZiB0aGlzIGFwcGxpY2F0aW9uIGZyb20gaXRzIGRlZmF1bHQsIHlvdSBjYW4gZG8gdGhhdCBieSBhZGRpbmcgb25lIG9yIG1vcmUgcGFyYW1ldGVycyB0byB0aGUgPHN0cm9uZz57UHJvZHVjdHN9PC9zdHJvbmc+IHRhZy4gIFRoZSBjb21wbGV0ZSBsaXN0IG9mIHBhcmFtZXRlcnMgYW5kIHRoZWlyIGJlaGF2aW91ciBpcyBsaXN0ZWQgYmVsb3cuICBCdXQgZm9yIGV4YW1wbGUsIHRvIGRpc3BsYXkgYSBsaXN0IG9mIGl0ZW1zIGluIGEgc2luZ2xlLCBleGlzdGluZyBjYXRlZ29yeSwgeW91IGNvdWxkIHVzZSBhIHRhZyBsaWtlIDxjb2RlPntQcm9kdWN0cyBjYXRlZ29yeT0nY2F0ZWdvcnluYW1lJ308L2NvZGU+PC9wPgo8L29sPgoKPGgzPlByZXR0eSBVUkxTPC9oMz4KPHA+SWYgeW91IGhhdmUgZW5hYmxlZCBwcmV0dHkgVVJMUyBpbiB0aGUgQ01TTVMgY29uZmlnIGZpbGUgPGVtPihlaXRoZXIgbW9kX3Jld3JpdGUsIG9yIGludGVybmFsIHByZXR0eSBVUkxTKTwvZW0+IFRoZW4gdGhpcyBtb2R1bGUgaXMgY2FwYWJsZSBvZiBnZW5lcmF0aW5nIHByZXR0eSBVUkxTIGZvciB2YXJpb3VzIGxpbmtzIHRvIHByb2R1Y3Qgdmlld3MuICBUaGVyZSBpcyBhbHNvIHRoZSBwb3dlciB0byBjb21wbGV0ZWx5IGN1c3RvbWl6ZSB0aGUgVVJMIHRvIGEgcHJvZHVjdCBkZXRhaWwgdmlldy4gIFRoZXJlIGFyZSBhIGZldyBzZXR0aW5ncyBpbiB0aGUgbW9kdWxlJ3MgYWRtaW4gcGFuZWxzIHRvIGNvbmZpZ3VyZS48L3A+CjxoND5VUkwgU2x1Z3M6PC9oND4KPHA+VVJMIFNsdWdzIGFyZSBwb3J0aW9ucyBvZiBhIFVSTCB0aGF0IGFyZSBhcHBlbmRlZCB0byB0aGUgcm9vdCB1cmwgKGFsb25nIHdpdGggdGhlIFVSTCBwcmVmaXggZGVzY3JpYmVkIGJlbG93KSB0byBhbGxvdyB1bmlxdWVseSBzcGVjaWZ5aW5nIGEgVVJMIHRvIGFuIGluZGl2aWR1YWwgcHJvZHVjdC4gIFVSTCBTbHVncyAoYmFzaWNhbGx5IGZpeGVkIHN0cmluZyByb3V0ZXMpIG11c3QgYmUgdW5pcXVlIGFjcm9zcyB0aGUgZW50aXJlIHdlYnNpdGUsIGFuZCBhbiBlcnJvciB3aWxsIGJlIGdlbmVyYXRlZCBpZiB0aGUgc2x1ZyBwcm92aWRlZCBpcyBhbHJlYWR5IGluIHVzZS48L3A+CjxwPldoZW4gYSBuZXcgcHJvZHVjdCBpcyBjcmVhdGVkLCBvciBhIHByb2R1Y3Qgd2l0aG91dCBhIFVSTCBzbHVnIGlzIGVkaXRlZCwgdGhlIHN5c3RlbSB3aWxsIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBVUkwgc2x1ZyBiYXNlZCBvbiB0aGUgcHJvZHVjdCBuYW1lLCB0aGUgc2VsZWN0ZWQgaGllcmFyY2h5IGxldmVsLCB0aGUgc2VsZWN0ZWQgY2F0ZWdvcmllcywgYW5kIHRoZSBzbHVnIHRlbXBsYXRlIGluIHRoZSBwcmVmZXJlbmNlcyBwYW5lbC4gIFlvdSBtYXkgYWxzbyBlbnRlciB5b3VyIG93biBVUkwgc2x1ZyBpbiB0aGUgYXBwcm9wcmlhdGUgZmllbGQgb2YgdGhlIGZvcm0uPC9wPgo8cD5UaGUgc3lzdGVtIHdpbGwgbmV2ZXIgYXV0b210aWNhbGx5IGFkanVzdCBhbiBleGlzdGluZyBVUkwgc2x1ZywgZXZlbiBpZiB5b3UgbW92ZSB0aGUgcHJvZHVjdCB0byBhIGRpZmZlcmVudCBsZXZlbCBvZiB0aGUgaGllcmFyY2h5LCBvciBjaGFuZ2UgdGhlIHNsdWcgdGVtcGxhdGUuICBBZGp1c3RpbmcgYSBVUkwgc2x1ZyBtdXN0IGludm9sdmUgYW4gYXV0aG9yaXplZCBhZG1pbmlzdHJhdG9yLCBhbmQgc2hvdWxkIGJlIGRvbmUgd2l0aCBjYXV0aW9uIGZvciBTRU8gcHVycG9zZXMuPC9wPgoKPGg0Pk9wdGlvbnM6PC9oND4KPHVsPgogIDxsaT5EZWZhdWx0IERldGFpbCBQYWdlICA8c3Ryb25nPipyZXF1aXJlZCo8L3N0cm9uZz46CiAgICA8cD5XaGVuIHVzaW5nIHByZXR0eSBVUkxTLCBhbmQgZWl0aGVyIGEgVVJMIHNsdWcgZXhpc3RzLCBvciB0aGUgJnF1b3Q7VXNlIEhpZXJhcmNoeSBQYXRoJnF1b3Q7IHByZWZlcmVuY2UgPGVtPihkZXNjcmliZWQgYmVsb3cpIGlzIGVuYWJsZWQsIGEgcGFnZSBpZCB3aWxsIG5vdCBiZSBzcGVjaWZpZWQgb24gdGhlIFVSTC4gIEZvciB0aGlzIHB1cnBvc2UgaXQgaXMgbmNlc3NhcnkgdG8gdGVsbCB0aGUgbW9kdWxlIHdoaWNoIGNvbnRlbnQgcGFnZSB0aGUgZGV0YWlsIHZpZXcgc2hvdWxkIGJlIGRpc3BsYXllZCBvbi48L3A+CiAgPC9saT4KCiAgPGxpPlByZWZpeCB0byB1c2Ugb24gYWxsIFVSTFMgdGFyZ2V0ZWQgdG8gdGhpcyB0aGlzIG1vZHVsZToKICAgICA8cD5UaGlzIHByZWZlcmVuY2UgaXMgYW4gb3B0aW9uYWwgc3RyaW5nIHRoYXQgd2lsbCBiZSBwcmVwZW5kZWQgdG8gZWFjaCBhbmQgZXZlcnkgcHJldHR5IFVSTCBnZW5lcmF0ZWQgYnkgdGhlIHByb2R1Y3RzIG1vZHVsZS4gIFRoaXMgbWF5IGJlIG5lY2Vzc2FyeSB0byBlbnN1cmUgdW5pcXVlbmVzcyBhY3Jvc3MgdGhlIHdlYnNpdGUsIGFuZCBmb3Igb3JnYW5pemF0aW9uYWwgcHVycG9zZXMuPC9wPgogIDwvbGk+CgogIDxsaT5Vc2UgSGllcmFyY2h5IFBhdGggaW4gSXRlbSBEZXRhaWwgVVJMUzoKICAgIDxwPlRoaXMgYm9vbGVhbiBwcmVmZXJlbmNlIGluZGljYXRlcyB0aGF0IHdoZW4gY3JlYXRpbmcgYSBkZXRhaWwgVVJMIHRvIGEgcHJvZHVjdCwgYW5kIG5vIFVSTCBzbHVncyBhcmUgcHJlc2VudCBhbiBhdHRlbXB0IHNob3VsZCBiZSBtYWRlIHRvIHVzZSB0aGUgaGllcmFyY2h5IHBhdGggaW4gdGhlIFVSTC48L3A+CiAgICA8cD5UaGlzIGlzIHByb2JsZW1hdGljIHNvbHV0aW9uIHJlbWFpbmluZyBvbmx5IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBwdXJwb3NlcywgYXMgaWYgYSBwcm9kdWN0IGlzIGV2ZXIgbW92ZWQgdG8gYSBkaWZmZXJlbnQgcGxhY2UgaW4gdGhlIGhpZXJhcmNoeSB0cmVlLCBvciBldmVuIGlmIHRoZSBzcGVsbGluZyBvZiBvbmUgb2YgdGhlIHBhdGhzIGluIHRoZSBoaWVyYXJjaHkgcGF0aCBjaGFuZ2VzLCB0aGUgVVJMIHdvdWxkIGNoYW5nZS4gIFRoaXMgaXMgbm90IGEgZ29vZCBzb2x1dGlvbiBmb3IgU0VPIHB1cnBvc2VzLCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkLjwvcD4KICA8L2xpPgo8L3VsPgoKPGgzPlNLVSBhbmQgUXVhbnRpdHkgSGFuZGxpbmc8L2gzPgo8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBhIHVuaXF1ZSBmaWVsZCBmb3IgZWFjaCBpdGVtIDxlbT4oYW5kIGl0ZW0gb3B0aW9uKTwvZW0+LiAgVGhlIFNLVSB2YWx1ZSBjYW4gYmUgdXNlZCB0byB1bmlxdWVseSBpZGVudGlmeSBhbiBpdGVtIG9yIG9wdGlvbi4gIFdoZW4gdXNpbmcgdGhpcyBzeXN0ZW0gYXMgYW4gZS1jb21tZXJjZSBzeXN0ZW0gZWFjaCBpdGVtIGFuZCBvcHRpb24gaXMgcmVxdWlyZWQgdG8gaGF2ZSBhIFNLVS48L3A+CjxoMz5Qcm9kdWN0IE9wdGlvbnM8L2gzPgo8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyB0aGUgY2FwYWJpbGl0eSBvZiBoYW5kbGluZyA8ZW0+KG9wdGlvbnMpPC9lbT4gdG8gYmFzZSBpdGVtcy4gIE9wdGlvbnMgY2FuIGJlIHVzZWQgZm9yIG1ha2luZyBkaWZmZXJlbnQgc2l6ZXMsIG9yIGNvbG9ycyBvZiBhbiBpdGVtIGF2YWlsYWJsZSBpbiB0aGUgY2FydC4gICBFYWNoIG9wdGlvbiBjYW4gaGF2ZSBhIGRlc2NyaXB0aW9uLCBhIHByaWNlIDxlbT4ob3IgcHJpY2UgYWRqdXN0bWVudCk8L2VtPiBhbmQgYSBTS1UgZm9yIGUtY29tbWVyY2UgcHVycG9zZXMuPC9wPgo8aDQ+UHJvZHVjdCBBdHRyaWJ1dGVzPC9oND4KPHA+T2xkZXIgdmVyc2lvbnMgb2YgdGhlIHByb2R1Y3RzIG1vZHVsZSBoYWQgYSBjb25jZXB0IG9mIGl0ZW0gJnF1b3Q7YXR0cmlidXRlcyZxdW90Oy4gIFRoZXJlIHdhcyB0aGUgY29uY2VwdCBvZiBtdWx0aXBsZSBhdHRyaWJ1dGVzLCBhbmQgZWFjaCBhdHRyaWJ1dGUgY291bGQgaGF2ZSBudW1lcm91cyBvcHRpb25zLiAgIFRoaXMgZnVuY3Rpb25hbGl0eSBoYXMgYmVlbiByZW1vdmVkIGFuZCByZXBsYWNlZCB3aXRoIGl0ZW0gb3B0aW9ucy4gICBUaGVyZSB3aWxsIGJlIHNvbWUgZGlmZmljdWx0eSB3aXRoIHRoZSB1cGdyYWRlIHByb2Nlc3MgYmVjYXVzZSBvZiB0aGlzLjwvcD4KPGgzPlNtYXJ0eSBQbHVnaW5zPC9oMz4KPHA+VGhpcyBtb2R1bGUgYWxzbyByZWdpc3RlcnMgb25lIG9yIG1vcmUgc21hcnR5IHBsdWdpbnMgdG8gYWlkZSBpbiByZXRyaWV2aW5nIHZhcmlvdXMgcHJvZHVjdHMgcmVsYXRlZCBpbmZvcm1hdGlvbiB3aGVuIGRlc2lnbmluZyBwcm9kdWN0cyBtb2R1bGUgdGVtcGxhdGVzOjwvcD4KPHVsPgogIDxsaT57cHJvZHVjdHNfZ2V0Y2F0ZWdvcnkgY2F0ZWdvcnlpZD0nOTknIFthc3NpZ249J3RtcCddfQogIDxwPlRoaXMgcGx1Z2luIGFsbG93cyByZXRyaWV2aW5nIGFsbCBvZiB0aGUgaW5mb3JtYXRpb24gZm9yIGEgc3BlY2lmaWMgY2F0ZWdvcnkgaWQgYW5kIG9wdGlvbmFsbHkgYXNzaWduaW5nIGl0IHRvIHRoZSBuYW1lZCBzbWFydHkgdmFyaWFibGUuICBUaGUgcmV0dXJuZWQgaXMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgYWxsIG9mIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBhIGNhdGVnb3J5LCBpbmNsdWRpbmcgaXRzIGZpZWxkIHZhbHVlcy48YnIvPmkuZTouIDxjb2RlPntwcm9kdWN0c19nZXRjYXRlZ29yeSBjYXRlZ29yeWlkPTEgYXNzaWduPSd0bXAnfUNhdGVnb3J5IG5hbWUgPSB7XCR0bXAtPm5hbWV9PC9jb2RlPjwvcD4KICA8L2xpPgogIDxsaT57cHJvZHVjdHNfaGllcmFyY2h5X2JyZWFkY3J1bWIgaGllcmFyY2h5aWQ9Jzk5JyBbcGFnZWlkPWFsaWFzXSBbZGVsaW09JyAmcmFxdW8gJ11bYXNzaWduPSd0bXAnXX0KICA8cD5UaGlzIHBsdWdpbiBhbGxvd3MgcmV0cmlldmluZyB0aGUgYnJlYWRjcnVtYiBwYXRoIHRvIGEgcGFydGljdWxhciBoaWVyYXJjaHkgaWQgYW5kIG9wdGlvbmFsbHkgYXNzaWduaW5nIGl0IHRvIHRoZSBuYW1lZCBzbWFydHkgdmFyaWFibGUuICBUaGlzIHBsdWdpbiB3aWxsIG91dHB1dCB6ZXJvIG9yIG1vcmUgbGlua3MgdG8gaGllcmFyY2h5IHZpZXdzIHdpdGggb25lIGxpbmsgZm9yIGVhY2ggbGV2ZWwgaW4gdGhlIGhpZXJhcmNoeS4gIFRvIHNwZWNpZnkgYSBkaWZmZXJlbnQgZGVsaW1pdGVyIHVzZSB0aGUgImRlbGltIiBhcmd1bWVudC4gIElmIGFuIGVtcHR5IGRlbGltaXRlciBpcyBzcGVjaWZpZWQsIHRoZW4gYW4gYXJyYXkgb2YgbGlua3Mgd2lsbCBiZSByZXR1cm5lZCByYXRoZXIgdGhhbiBvbmUgY29uaW51b3VzIGh0bWwgc2VnbWVudC4gIFRvIHNwZWNpZnkgYSBkaWZmZXJlbnQgcGFnZSBpZCBmb3J0aGUgbGlua3MsIHVzZSB0aGUgcGFnZWlkIGF0dHJpYnV0ZS4gICBJZiB0aGUgcGFnZWlkIGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCBhbmQgdGhlIGhpZXJhcmNoeSBpZCBwcmVmZXJlbmNlIGlzIHNldCBpdCB3aWxsIGJlIHVzZWQuICBPdGhlcndpc2UgdGhlIGN1cnJlbnQgcGFnZSBpZCB3aWxsIGJlIHVzZWQuPC9wPgogIDwvbGk+CiAgPGxpPntwcm9kdWN0c19oaWVyYXJjaHlfcGFyZW50IGhpZXJhcmNoeWlkPTk5IFthc3NpZ249J3RtcCddfQogIDxwPlRoaXMgcGx1Z2luIHdpbGwgcmV0dXJuIHRoZSBwYXJlbnQgaGllcmFyY2h5IGlkIGZvciBhIGdpdmVuIGhpZXJhcmNoeSBpZC4gIElmIHRoZSBzcGVjaWZpZWQgaGllcmFyY2h5IGlkIGRvZXMgbm90IGV4aXN0LCB0aGVuIG5vdGhpbmcgd2lsbCBiZSByZXR1cm5lZC4gIGlmIHRoZSBzcGVjaWZpZWQgaGllcmFyY2h5IGlkIGRvZXMgbm90IGhhdmUgYSBwYXJlbnQgdGhpcyBwbHVnaW4gd2lsbCByZXR1cm4gLTEuPC9wPgogIDwvbGk+CjwvdWw+CjxoMz5UaGUgPGVtPmFqYXhfcHJvcHZhbDwvZW0+IEFjdGlvbjwvaDM+CiAgPHA+VGhlIDxlbT5hamF4X3Byb3B2YWw8L2VtPiBpcyBhIHNwZWNpYWwgYWN0aW9uIHRoYXQgaXMgdXNlZCB0byByZXR1cm4gdGhlIGRpc3RpbmN0IHZhbHVlcyBvZiBhIGN1c3RvbSBmaWVsZCwgb3IgYSBwcm9wZXJ0eSB2aWEganNvbi4gIFR5cGljYWxseSB0aGlzIGFjdGlvbiBpcyB1c2VkIHRvIHBlcmZvcm0gYXV0b2NvbXBsZXRlIGFjdGlvbnMsIGFuZCB1c3VhbGx5IGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIHNlYXJjaCBhY3Rpb24uICBUaGlzIGFjdGlvbiBhY2NlcHRzIHRoZSBwYXJhbWV0ZXJzOiBmaWVsZCBmb3IgdGhlIG5hbWUgb2YgdGhlIGZpZWxkLCBhbmQgZmllbGR2YWwgZm9yIGluZGljYXRpbmcgYSBzdGFydGluZyB2YWx1ZS4gIE5vbmUgb2YgdGhlIHBhcmFtZXRlcnMgY2FuIGJlIGVtcHR5LiAgQmVsb3cgeW91IHdpbGwgZmluZCBhIHNpbXBsZSBleGFtcGxlIG9mIHVzaW5nIHRoZSBhamF4X3Byb3B2YWwgYWN0aW9uIHRvIHBlcmZvcm0gYXV0b2NvbXBsZXRlIGZvciBpdGVtIG5hbWVzIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIHNlYXJjaCB0ZW1wbGF0ZS48L3A+CjxwcmU+PGNvZGU+Jmx0O3NjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiJmd0O3tsaXRlcmFsfQokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogIHZhciBhamF4X3VybCA9ICd7L2xpdGVyYWx9PHNwYW4gc3R5bGU9ImNvbG9yOiBncmVlbjsiPnttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPVByb2R1Y3RzIGFjdGlvbj1hamF4X3Byb3B2YWwgdXJsb25seT0xIGpzZnJpZW5kbHk9MX08L3NwYW4+e2xpdGVyYWx9JzsKICBhamF4X3VybCA9IGFqYXhfdXJsICsgPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4nJnNob3d0ZW1wbGF0ZT1mYWxzZSc8L3NwYW4+OwoKICAkKDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPicjcHJvZHVjdG5hbWUnPC9zcGFuPikuYXV0b2NvbXBsZXRlKHsKICAgIHNvdXJjZTogZnVuY3Rpb24ocmVxLGFkZCl7CiAgICAgIHZhciB0bXAgPSAgYWpheF91cmwrPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4nJmNudG50MDFmaWVsZD06Om5hbWU6OiZjbnRudDAxZmllbGR2YWw9Jzwvc3Bhbj4rcmVxLnRlcm07CiAgICAgICQuZ2V0SlNPTih0bXAsZnVuY3Rpb24oanNvbil7CiAgICAgICAgaWYoIGpzb24uc3RhdHVzID09ICdPSycgJiYganNvbi5kYXRhLmxlbmd0aCA+IDApIHsKICAgICAgICAgIGFkZChqc29uLmRhdGEpOwogICAgICAgIH0KICAgICAgfSkKICAgIH0KICB9KTsKfSk7CnsvbGl0ZXJhbH0mbHQ7L3NjcmlwdCZndDsKPC9jb2RlPjwvcHJlPgo8cD5BcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBhYm92ZSBjb2RlIHNuaXBwZXQuLiB0aGUge21vZHVsZV9hY3Rpb25fbGlua30gcGx1Z2luIGZyb20gQ0dTaW1wbGVTbWFydHkgaXMgdXNlZCB0byBnZW5lcmF0ZSBhIHVybCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgYWpheF9wcm9wdmFsIGFjdGlvbi4gIEFmdGVyIHRoYXQgVVJMIGlzIHJldHJpZXZlZCwgdGhlIHNob3d0ZW1wbGF0ZT1mYWxzZSBwYXJhbWV0ZXIgaXMgYWRkZWQgdG8gdGhlIFVSTC4gICBXaGVuIHNldHRpbmcgdXAgdGhlIGF1dG9jb21wbGV0ZSBwbHVnaW4sIHRoZSBjYWxsYmFjayB1c2VkIHRvIGZpbGwgaW4gdGhlIGRhdGEgdmFsdWVzIGZvciB0aGUgZmllbGQgdXNlcyBhamF4LiAgV2UgdGFrZSB0aGUgYWpheF91cmwgYWxyZWFkeSBwcmVwYXJlZCBhbmQgYWRkIHRoZSBmaWVsZD06Om5hbWU6OiBhbmQgZmllbGR2YWw9cmVxLnRlcm0gcGFyYW1ldGVycyB0byB0aGUgVVJMLiAgVGhlIHRlcm0gaXMgYXV0b21hdGljYWxseSBwcm92aWRlZCBieSB0aGUgYXV0b2NvbXBsZXRlIHBsdWdpbiBpbiB0aGUgcmVxLnRlcm0gdmFyaWlhYmxlLjwvcD4KPHA+VG8gdXNlIHRoaXMgZXhhbXBsZSwgdGhlIHVzZXIgd291bGQgbmVlZCB0byBlbnN1cmUgdGhhdCBqcXVlcnkgaXMgbG9hZGVkLCBhbG9uZyB3aXRoIHRoZSBqcXVlcnkgdWkgKGluY2x1ZGluZyBhdXRvY29tcGxldGUpLCBhbmQgYW55IHJlcXVpcmVkIHN0eWxlc2hlZXRzLiAgVGhpcyBjb3VsZCBiZSBkb25lIGVpdGhlciBpbiB0aGUgcGFnZSBzcGVjaWZpYyBtZXRhZGF0YSBmaWVsZCB3aGVuIGVkaXRpbmcgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgc2VhcmNoIGZvcm0sIG9yIGluIHRoZSBwYWdlIHRlbXBsYXRlIGl0c2VsZi48L3A+CjxoMz5JbXBvcnRpbmcgZnJvbSBBU0NJSTwvaDM+CjxwPlRoaXMgbW9kdWxlIGluY2x1ZGVzIGEgZmxleGlibGUgbWVjaGFuaXNtIG9mIGltcG9ydGluZyBhbmQgdXBkYXRpbmcgaXRlbSBpbmZvcm1hdGlvbiBmcm9tIEFTQ0lJIGZpbGVzLiAgVGhlIHN5c3RlbSBoYW5kbGVzIG11bHRpLWxpbmUgcmVjb3JkcyB3aXRoIGRpZmZlcmVudCBsaW5lIGVuZGluZ3MgKFVuaXgvTUFDL0RPUykgYW5kIGRpZmZlcmVudCBmaWVsZCBkZWxpbWl0ZXJzLiAgQ2F0ZWdvcmllcywgaGllcmFyY2h5IGluZm9ybWF0aW9uLCBhbmQgY3VzdG9tIGZpZWxkIGluZm9ybWF0aW9uIGNhbiBiZSBpbXBvcnRlZCBmb3IgZWFjaCBpdGVtLjwvcD4KPHA+VGhlIGltcG9ydCBzeXN0ZW0gaXMgY2FwYWJsZSBvZiBjcmVhdGluZyBuZXcgaXRlbXMsIG9yIHVwZGF0aW5nIGV4aXN0aW5nIG9uZXMsIGNyZWF0aW5nIHVua25vd24gY2F0ZWdvcmllcywgaGllcmFyY2hpZXMsIG9yIGN1c3RvbSBmaWVsZHMsIGFuZCBhdHRhY2hpbmcgaW1hZ2VzIHRvIHVwbG9hZGVkIGZpbGVzLjwvcD4KPGg0PkltYWdlczwvaDQ+CjxwPkltYWdlcyBjYW4gb3B0aW9uYWxseSBiZSBhc3NvY2lhdGVkIHdpdGggaW1wb3J0ZWQgcmVjb3JkcywgYnV0IG11c3QgYmUgcHJldmlvdXNseSB1cGxvYWRlZCB0byBhIGNlbnRyYWwgbG9jYXRpb24uICBXaGVuIGEgaW1hZ2UgZmllbGQgdmFsdWUgc3BlY2lmaWVzIGFuIGltYWdlIGZpbGVuYW1lLCBhbmQgdGhhdCBmaWxlIGV4aXN0cyBpbiB0aGUgc3BlY2lmaWVkIGRpcmVjdG9yeSAocmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyZWN0b3J5KS4gaXQgd2lsbCBiZSBjb3BpZWQgaW50byB0aGUgYXBwcm9wcmlhdGUgcGxhY2UgZm9yIGZ1dHVyZSBkaXNwbGF5IGFuZCBtYW5hZ2VtZW50LjwvcD4KCjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhlIG1vZHVsZSBhdXRob3IgaXMgaW4gbm8gd2F5IG9ibGlnYXRlZCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIHRoaXMgY29kZSBpbiBhbnkgZmFzaGlvbi4gIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5BIGJ1ZyB0cmFja2luZyBhbmQgZmVhdHVyZSByZXF1ZXN0IHN5c3RlbSBoYXMgYmVlbiBjcmVhdGVkIGZvciB0aGlzIG1vZHVsZSA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3Byb2R1Y3RzIj5oZXJlPC9hPi4gIFBsZWFzZSBiZSB2ZXJib3NlIGFuZCBkZXNjcmlwdGl2ZSB3aGVuIHN1Ym1pdHRpbmcgYnVnIHJlcG9ydHMgYW5kIGZlYXR1cmUgcmVxdWVzdHMsIGFuZCBmb3IgYnVnIHJlcG9ydHMgZW5zdXJlIHRoYXQgeW91IGhhdmUgcHJvdmlkZWQgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byByZWxpYWJseSByZXByb2R1Y2UgdGhlIGlzc3VlLjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uICBXaGVuIGRlc2NyaWJpbmcgYW4gaXNzdWUgcGxlYXNlIG1ha2UgYW4gZWZmb3J0IHRvIHByb3ZpZGUgYWxsIHJlbGF2YW50IGluZm9ybWF0aW9uLCBhIHRob3JvdWdoIGRlc2NyaXB0aW9uIG9mIHlvdXIgaXNzdWUsIGFuZCBzdGVwcyB0byByZXByb2R1Y2UgaXQgb3IgeW91ciBkaXNjdXNzaW9uIG1heSBiZSBpZ25vcmVkLjwvbGk+CjxsaT5UaGUgYXV0aG9yLCBjYWxndXkxMDAwLCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkuICBIb3dldmVyLCBwbGVhc2UgdXNlIHRoaXMgYXMgYSBsYXN0IHJlc29ydCwgYW5kIGVuc3VyZSB0aGF0IHlvdSBoYXZlIGZvbGxvd2VkIGFsbCBhcHBsaWNhYmxlIGluc3RydWN0aW9ucyBvbiB0aGUgZm9yZ2UsIGluIHRoZSBmb3J1bXMsIGV0Yy48L2xpPgo8L3VsPgoKPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAwOCwgUm9iZXJ0IENhbXBiZWwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPiZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+CjxwPkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwpNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4Kc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLApidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgpNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCmFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCk9yIHJlYWQgaXQgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5vbmxpbmU8L2E+PC9wPgo=]]></data>
	</file>
	<file>
	  <filename>/icons/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/icons/database_edit.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKRSURBVDjLhVNLTBNRFD3TTju1FCcBaxuaQEr94ydiZIHGpcFISBOi0YREZWHCVoyRxKUxxq0LXcACQyLsjO6KjSEiDfHDz0S0CLSxlFKd2g7MTDudGd+bMAQCxJucuXfuu+fcO/PeYwzDALVoNMqRuI3guq7rR4g/SEBC/Svxc8T3EUTD4bCGTcZQAUI+RvxLr9d70u/3o6KiAm63G3Qtn89DFEUkk0lks9lRkrvW3t6e2lCgRZFI5F0ikaDtjN1MVVVjYmLCGBoa6qccC7Z1kQafz4f/WSAQAGlyaXOOpQ+SNNUymQxcLhc4joPD4TBzkiRBEASkUimEQiGzdlcBlmWRy+WgKIr5Xi6XUSgUUCwWzTVN+IAzeOOde71orP0eAaOkbrDWf6Cw2+3mBLSYgny3KULXPOUY2BUB/hMd4IOn8XfhMGYjvU+2TECLLRLDMNA0zYw5JYa6Ghke/hyEn9/gZEqo3OuHp7qW3yJgESjoNPSdlb8gWCOCr29BMT0Ip5tBYnIWqlL6o8irzVsEaHcKSqQCen4cweok+FAblNRz2JxlODx1cEkzGWmVbTl7Z/jHhgCF1Z3GYjIKf+U8+ANhQn4Gm6OMUiGI9MhHg5Gl1sbu8UnKNc8B7Ui3ipxEcwvlpVFw6hz2N1xGabkXdqeBYqEOmfefEZWac4e6xz9Z22hbn+BmLBZbi8fjEBdG4NF/QdUDSM88hQ4FawKJR6cxLDZl86qzZdtdoDYwMBAkQg/2LL/ovNLVh++Dd7G0OAau9hTkrKgnnE39GW3f/Z6enpUdBSx7ePu4eq+zi4VNw+TbV0gsxFd5b9X5i4+mpnY63tsErl6okhvrfWzT0SAMR3FMXsnean08Pb/b/fgHqpjCspi90kkAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/icons/table_relationship.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIpSURBVDjLpZP7T1JhGMfPn9RaznVZa7Zhl1WoOI1ZtNlmq5Wrma1jMTSG5li1ahWSFJKmjuhEYzVJCDGQUNJI7WYX7ALnhFwiKFvn2zkHKw6d33y27y/v830+++5535cAQCxHhN7+AR23I9Ba30EzMIeTva9BWl4+ljJbRhLqHk9i/trDOLpdDLoeMCAyuZ8oVtP1WVYKYPYsfCv2Eqd9bdB61dB4SJxwNQuHjcZnkAKY3F+Efu/0VZjDV9A9eVFoiIo37L88JQkwDjNCv7CIPm8MheINey+ERIC6/kpFtXkbdhjKUdtVIfITVn9URGRSOajOBv8ClH1yRZVpK9s63IL2kVbIz20RBvkaGI3mAVQgBmosCsd4FG8+p7Gzc0wA1Fi2KyqMm1nyfhNqjHKsP1WKct1GDPpisPLy0/8nePUxhWqdD1xkJReZbXY0oqxjLbtOU7JJf2ceqewibAFa8FKBJYCQgktg49Rg3QMuMupv1uGw/QA26Faza9SrZHyidtt7JDOLsAdp3B3Pixh6QiOd/bdZVY8SGjeJg1QDH5ktbVkp+7OPtsG3SHz9gXuhfALnJPeQHBM0ClVrqOIjg4uMkuMrZIW3oe6fEwBD3KBzScQtPy3awfNIEiq9T/IdkDdeYIEDuJ4ygtcd5gD8QLF2dT76JQU4ap5FPP0ddDKHT/EsInQGRKXWi2KVHXNSUoAjppnRQ4ZwZt+lKdSfD2H3meDyvjKv3+cfGcwF4FggAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMjIEEKJGxhbmdbJ2FiYnJfaGVpZ2h0J10gPSAiSCI7CiRsYW5nWydhYmJyX2xlbmd0aCddID0gIkwiOwokbGFuZ1snYWJicl93aWR0aCddID0gIlciOwokbGFuZ1snYWRkJ10gPSAiQWRkIjsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAiQWRkIEEgQ2F0ZWdvcnkiOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICJBZGQgQSBGaWVsZCI7CiRsYW5nWydhZGRvcHRpb24nXSA9ICdBZGQgYW4gT3B0aW9uJzsKJGxhbmdbJ2FkZHByb2R1Y3QnXSA9ICJBZGQgYW4gSXRlbSI7CiRsYW5nWydhZGRfYXR0cmliX3NldCddID0gIkFkZCBBdHRyaWJ1dGUiOwokbGFuZ1snYWRkX2NhdGVnb3J5X2ZpZWxkJ10gPSAiQXNzb2NpYXRlIEZpZWxkIHdpdGggQ2F0ZWdvcnk6ICZxdW90OyVzJnF1b3Q7IjsKJGxhbmdbJ2FkZF9oaWVyYXJjaHlfaXRlbSddID0gIkFkZCBIaWVyYXJjaHkgSXRlbSI7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAiQWRkIEF0dHJpYnV0ZSBPcHRpb24iOwokbGFuZ1snYWRqdXN0YWJsZSddID0gIkFkanVzdGFibGUiOwokbGFuZ1snYWRtaW5fb25seSddID0gIkNhbiBvbmx5IGFkbWlucyBzZWUgdGhpcyBhdHRyaWJ1dGU/IjsKJGxhbmdbJ2FkdmFuY2VkJ10gPSAiQWR2YW5jZWQiOwokbGFuZ1snYWxpZ25fbGMnXSA9ICJCb3R0b20gQ2VudGVyIjsKJGxhbmdbJ2FsaWduX2xsJ10gPSAiQm90dG9tIExlZnQiOwokbGFuZ1snYWxpZ25fbHInXSA9ICJCb3R0b20gUmlnaHQiOwokbGFuZ1snYWxpZ25fbWMnXSA9ICJDZW50ZXIiOwokbGFuZ1snYWxpZ25fbWwnXSA9ICJNaWRkbGUgTGVmdCI7CiRsYW5nWydhbGlnbl9tciddID0gIk1pZGRsZSBSaWdodCI7CiRsYW5nWydhbGlnbl91YyddID0gIlRvcCBDZW50ZXIiOwokbGFuZ1snYWxpZ25fdWwnXSA9ICJUb3AgTGVmdCI7CiRsYW5nWydhbGlnbl91ciddID0gIlRvcCBSaWdodCI7CiRsYW5nWydhbGwnXSA9ICJBbGwiOwokbGFuZ1snYWxsY2F0ZWdvcmllcyddID0gIkFsbCBDYXRlZ29yaWVzIjsKJGxhbmdbJ2FueSddID0gIkFueSI7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAiQXJlIFlvdSBTdXJlPyI7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZXByb2R1Y3QnXSA9ICJBcmUgeW91IHN1cmUgeW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGl0ZW0sIGFuZCBhbGwgb2YgdGhlIGFjY29tcGFueWluZyBpbmZvcm1hdGlvbiBmb3IgaXQ/IjsKJGxhbmdbJ2FzY2VuZGluZyddID0gIkFzY2VuZGluZyI7CiRsYW5nWydhdHRyaWJ1dGVfbmFtZSddID0gIkF0dHJpYnV0ZSBOYW1lIjsKJGxhbmdbJ2F0dHJpYl90ZXh0J10gPSAiVGV4dCI7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICJBdXRvbWF0aWMiOwoKIyMgQgokbGFuZ1snYnRuX3NldGVjb21oYW5kbGVycyddID0gIlNldCBFY29tbWVyY2UgRXZlbnQgSGFuZGxlcnMiOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZXMnXSA9ICJIaWVyYXJjaHkgUmVwb3J0IFRlbXBsYXRlcyI7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICJBZGQvRWRpdCBIaWVyYXJjaHkgUmVwb3J0IFRlbXBsYXRlIjsKCiMjIEMKJGxhbmdbJ2NhbmNlbCddID0gIkNhbmNlbCI7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAiQ2F0ZWdvcmllcyI7CiRsYW5nWydjYXRlZ29yeSddID0gIkNhdGVnb3J5IjsKJGxhbmdbJ2NhdGVnb3J5ZXhpc3RzJ10gPSAiQSBjYXRlZ29yeSBieSB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMiOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVzJ10gPSAiQ2F0ZWdvcnlMaXN0IFRlbXBsYXRlcyI7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAiQWRkL0VkaXQgQSBDYXRlZ29yeUxpc3QgVGVtcGxhdGUiOwokbGFuZ1snY2RfYXV0b2NvbXBsZXRlJ10gPSAiVHlwZSB0aGUgc3RhcnQgb2YgYSBjb21wYW55IG5hbWUiOwokbGFuZ1snY2VudGltZXRlcnMnXSA9ICJDZW50aW1ldGVycyI7CiRsYW5nWydjaGVja2JveCddID0gIkNoZWNrYm94IjsKJGxhbmdbJ2NvbXBhbnlkaXJfcmVmZXJlbmNlJ10gPSAiQ29tcGFueURpcmVjdG9yeSBDb21wYW55IElkIjsKJGxhbmdbJ2NvbmZpcm1fY29weW9wdGlvbnMnXSA9ICJBbnkgZXhpc3Rpbmcgb3B0aW9ucyBmb3IgdGhpcyBpdGVtIHdpbGwgYmUgcmVwbGFjZWQuIEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjb250aW51ZT8iOwokbGFuZ1snY29uZmlybV9kZWxldGVhbGxvcHRpb25zJ10gPSAiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBhbGwgb3B0aW9ucyBmb3IgdGhpcyBwcm9kdWN0PyI7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9oaWVyYXJjaHlfbm9kZSddID0gIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBub2RlPyAgQW55IGl0ZW1zIHRoYXQgYXJlIHVzaW5nIHRoaXMgbm9kZSB3aWxsIGJlIHNldCB0byBubyBoaWVyYXJjaHkiOwokbGFuZ1snY29uZmlybV9lZGl0b3B0aW9ucyddID0gIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBhYmFuZG9uIHRoaXMgZm9ybSBhbmQgZWRpdCB0aGUgb3B0aW9ucyBmb3IgdGhpcyBwcm9kdWN0PyI7CiRsYW5nWydjb25maXJtX2ltcG9ydCddID0gIkFyZSB5b3Ugc3VyZSB5b3UgcmVhbGx5IHdhbnQgdG8gZG8gdGhpcz9cblxuSW1wcm9wZXIgc2V0dGluZ3MsIG9yIGFuIGludmFsaWQgY29uZmlnIGZpbGUgY291bGQgY29tcGxldGVseSBjb3JydXB0IGEgY3VycmVudGx5IHZhbGlkIGFuZCB3b3JraW5nIHN5c3RlbS4iOwokbGFuZ1snY29weSddID0gIkNvcHkiOwokbGFuZ1snY29weV9hdHRyaWJ1dGUnXSA9ICJDb3B5IFByb2R1Y3QgT3B0aW9uIjsKJGxhbmdbJ2NvcHlfYXR0cmliX3NldHMnXSA9ICJDb3B5IEF0dHJpYnV0ZSBTZXRzIjsKJGxhbmdbJ2NvcHlfY2F0ZWdvcnknXSA9ICJDb3B5IENhdGVnb3J5IjsKJGxhbmdbJ2NvcHlfb3B0aW9uc19mcm9tJ10gPSAiQ29weSBhbGwgb3B0aW9ucyBmcm9tIjsKJGxhbmdbJ2NvcHlfcHJvZHVjdCddID0gIkNvcHkgdGhpcyBpdGVtIjsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAiQ3JlYXRlZCBEYXRlIjsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICJDdXJyZW50IFZhbHVlIjsKJGxhbmdbJ2NyZWF0ZXNsdWdfZSddID0gJ0NyZWF0ZSBzbHVnIFVSTCAoaWYgZW1wdHkpJzsKCiMjIEQKJGxhbmdbJ2RhdGEnXSA9ICJEYXRhIjsKJGxhbmdbJ2RlZmF1bHQnXSA9ICJEZWZhdWx0IjsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICJQcm90b3R5cGUgVGVtcGxhdGVzIjsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAiPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBwcm90b3R5cGUgdGVtcGxhdGVzIGFyZSB1c2VkIHRvIGRldGVybWluZSB0aGUgZGVmYXVsdCBjb250ZW50IG9mIHRlbXBsYXRlcyB3aGVuIHlvdSBjbGljayAmcXVvdDtBZGQgVGVtcGxhdGUmcXVvdDsgaW4gdGhlIGFwcHJvcHJpYXRlIHRlbXBsYXRlIHRhYi4gIEVkaXRpbmcgb25lIG9mIHRoZXNlIHRleHQgYXJlYXMgd2lsbCBoYXZlIG5vIGltbWVkaWF0ZSBlZmZlY3Qgb24geW91ciB3ZWJzaXRlLiI7CiRsYW5nWydkZWxldGUnXSA9ICJEZWxldGUiOwokbGFuZ1snZGVsZXRlX2FsbCddID0gIkRlbGV0ZSBBbGwiOwokbGFuZ1snZGVsZXRlX2F0dHJpYnV0ZSddID0gIkRlbGV0ZSBBdHRyaWJ1dGUiOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAiRGVsZXRlIEhpZXJhcmNoeSBJdGVtIjsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICJEZXNjZW5kaW5nIjsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAiRGVzY3JpcHRpb24iOwokbGFuZ1snZGVzdGluYXRpb24nXSA9ICJEZXN0aW5hdGlvbiI7CiRsYW5nWydkZXByZWNhdGVkJ10gPSAnRGVwcmVjYXRlZCc7CiRsYW5nWydkZXRhaWxzJ10gPSAiRGV0YWlscyI7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICJEZXRhaWwgVGVtcGxhdGVzIjsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICJBZGQvRWRpdCBBIERldGFpbCBUZW1wbGF0ZSI7CiRsYW5nWydkaW1lbnNpb25zJ10gPSAiRGltZW5zaW9ucyI7CiRsYW5nWydkaXNhYmxlZCddID0gIkRpc2FibGVkIjsKJGxhbmdbJ2Rvd24nXSA9ICJNb3ZlIERvd24iOwokbGFuZ1snZHJhZnQnXSA9ICJEcmFmdCI7CiRsYW5nWydkcm9wZG93biddID0gIkRyb3Bkb3duIjsKJGxhbmdbJ2Ryb3Bkb3duX29wdGlvbnMnXSA9ICJEcm9wZG93biBPcHRpb25zIDxlbT4oYXBwbGljYWJsZSBvbmx5IGZvciBkcm9wZG93biBmaWVsZHMpPC9lbT48YnIvPjxici8+PGVtPihvbmUgZW50cnkgcGVyIGxpbmUpPC9lbT4iOwoKIyMgRQokbGFuZ1snZWRpdCddID0gIkVkaXQiOwokbGFuZ1snZWRpdF9hdHRyaWJzZXQnXSA9ICJFZGl0IEF0dHJpYnV0ZSI7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICJFZGl0IEF0dHJpYnV0ZSBTZXRzIjsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0c19mb3InXSA9ICJFZGl0IEF0dHJpYnV0ZSBTZXRzIEZvciI7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICJFZGl0IEF0dHJpYnV0ZXMiOwokbGFuZ1snZWRpdF9jYXRlZ29yeSddID0gIkVkaXQgQ2F0ZWdvcnkiOwokbGFuZ1snZWRpdF9jYXRlZ29yeV9maWVsZHMnXSA9ICJFZGl0IENhdGVnb3J5IEZpZWxkcyBmb3IgJnF1b3Q7JXMmcXVvdDsiOwokbGFuZ1snZWRpdF9oaWVyYXJjaHlfaXRlbSddID0gIkVkaXQgSGllcmFyY2h5IEl0ZW0iOwokbGFuZ1snZWRpdF9ub3RlcyddID0gIkVkaXQgTm90ZXMiOwokbGFuZ1snZWRpdF9vcHRpb25zJ10gPSAiRWRpdCBQcm9kdWN0IE9wdGlvbnMiOwokbGFuZ1snZWRpdF9vcHRpb25fbm90ZXMnXSA9ICJFZGl0IE9wdGlvbiBOb3RlcyI7CiRsYW5nWydlZGl0X3Byb2R1Y3QnXSA9ICJFZGl0IEl0ZW0gIjsKJGxhbmdbJ2Vyb3JyX3FvaF9uZWdhdGl2ZV9hdHJvdyddID0gIlF1YW50aXR5IG9uIGhhbmQgY2Fubm90IGJlIG5lZ2F0aXZlIGF0IHJvdyAlZCI7CiRsYW5nWydlcnJvcnMnXSA9ICJFcnJvcnMiOwokbGFuZ1snZXJyb3JfYXR0cmlic2V0X2V4aXN0cyddID0gIkFuIGF0dHJpYnV0ZSB3aXRoIHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cyI7CiRsYW5nWydlcnJvcl9kYmVycm9yJ10gPSAiRGF0YWJhc2UgZXJyb3IiOwokbGFuZ1snZXJyb3JfZGVsZXRlX2xhc3Ryb3cnXSA9ICJUaGUgbGFzdCByb3cgY2Fubm90IGJlIGRlbGV0ZWQgdGhpcyB3YXkiOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX3NrdSddID0gIkR1cGxpY2F0ZSBTS1UgdmFsdWUgZm91bmQiOwokbGFuZ1snZXJyb3JfZmllbGR2YWx1ZV9lbXB0eSddID0gIlRoZSBmaWVsZCB2YWx1ZSBjYW5ub3QgYmUgZW1wdHkiOwokbGFuZ1snZXJyb3JfZmlsZWZvcm1hdCddID0gIkZpbGUgRm9ybWF0IFByb2JsZW0iOwokbGFuZ1snZXJyb3JfZmlsZW5vdGZvdW5kJ10gPSAiRmlsZSBOb3QgRm91bmQiOwokbGFuZ1snZXJyb3JfZmlsZW9wZW4nXSA9ICJQcm9ibGVtIG9wZW5pbmcgZmlsZSAlcyI7CiRsYW5nWydlcnJvcl9pbnZhbGlkY2R2YWx1ZSddID0gIkludmFsaWQgQ29tcGFueURpcmVjdG9yeSBjb21wYW55IGlkIHNwZWNpZmllZCI7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyYW1jb3VudCddID0gIkludmFsaWQgKG9yIG5vdCBtYXRjaGluZykgcGFyYW1ldGVyIGNvdW50IjsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJlbnQnXSA9ICJJbnZhbGlkIFBhcmVudCAoYSBoaWVyYXJjaHkgbm9kZSBjYW5ub3QgYmUgaXQncyBvd24gcGFyZW50KSI7CiRsYW5nWydlcnJvcl9pbnZhbGlkX25hbWUnXSA9ICJUaGUgY3VzdG9tIGZpZWxkIHZhbHVlIGVudGVyZWQgaXMgaW52YWxpZCAoY29udGFpbnMgbm9uIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzKSI7CiRsYW5nWydlcnJvcl9pbnZhbGlkX3ZhbHVlJ10gPSAiSW52YWxpZCB2YWx1ZSBzcGVjaWZpZWQiOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAiQSByZXF1aXJlZCBwYXJhbWV0ZXIgaXMgbWlzc2luZyBvciBpbnZhbGlkIjsKJGxhbmdbJ2Vycm9yX25hbWV1c2VkJ10gPSAiQW4gaXRlbSBieSB0aGF0IG5hbWUgaXMgYWxyZWFkeSBpbiB1c2UiOwokbGFuZ1snZXJyb3JfbmVlZHR3b3Jvd3MnXSA9ICJBIG1pbmltdW0gb2YgdHdvIHJvd3MgaXMgcmVxdXJpZWQiOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICJQbGVhc2Ugc2VsZWN0IGEgZmllbGQgdHlwZSI7CiRsYW5nWydlcnJvcl9ub25hbWUnXSA9ICJZb3UgbXVzdCBzdXBwbHkgYSBuYW1lIjsKJGxhbmdbJ2Vycm9yX29uZXF1YW50aXR5ZmllbGQnXSA9ICJPbmx5IG9uZSBxdWFudGl0eSBmaWVsZCBpcyBhbGxvd2VkIjsKJGxhbmdbJ2Vycm9yX29uZXN1YnNjcmlwdGlvbmZpZWxkJ10gPSAiT25seSBvbmUgc3Vic2NyaXB0aW9uIGZpZWxkIGlzIGFsbG93ZWQiOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbmRlbmllZCddID0gIlBlcm1pc3Npb24gRGVuaWVkIjsKJGxhbmdbJ2Vycm9yX3ByaWNlX2FkanVzdG1lbnQnXSA9ICJJbnZhbGlkIHByaWNlIGFkanVzdG1lbnQgdmFsdWUgZm9yIGl0ZW0gJXMiOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9hbGlhc3VzZWQnXSA9ICJUaGUgYWxpYXMgc3BlY2lmaWVkIGlzIGFscmVhZHkgaW4gdXNlIjsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICJBbiBpdGVtIGJ5IHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cyI7CiRsYW5nWydlcnJvcl9wcm9kdWN0X25vdGZvdW5kJ10gPSAiVGhlIHJlcXVlc3RlZCBpdGVtIGNvdWxkIG5vdCBiZSBmb3VuZCI7CiRsYW5nWydlcnJvcl9wcm9kdWN0X3NrdXVzZWQnXSA9ICJUaGF0IFNLVSB2YWx1ZSBpcyBhbHJlYWR5IGluIHVzZSBieSBhbm90aGVyIGl0ZW0iOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9za3V1c2VkX2F0cm93J10gPSAiVGhhdCBTS1UgdmFsdWUgYXQgcm93ICVkIGlzIGFscmVhZHkgaW4gdXNlIGJ5IGFub3RoZXIgaXRlbSI7CiRsYW5nWydlcnJvcl9za3VfcmVxdWlyZWQnXSA9ICJQbGVhc2UgZW50ZXIgYSB1bmlxdWUgU0tVIjsKJGxhbmdbJ2Vycm9yX3NrdV9yZXF1aXJlZF9hdHJvdyddID0gIlBsZWFzZSBlbnRlciBhIHVuaXF1ZSBTS1Ugb24gcm93ICVkIjsKJGxhbmdbJ2Vycm9yX3RleHRfZW1wdHlfYXRyb3cnXSA9ICJUaGUgdGV4dCBmaWVsZCBhdCByb3cgJWQgY2Fubm90IGJlIGVtcHR5IjsKJGxhbmdbJ2Vycm9yX3VwbG9hZF9mYWlsZWQnXSA9ICJVcGxvYWQgZmFpbGVkOiAlcyI7CiRsYW5nWydleGNsdWRlX2NhdGVnb3JpZXMnXSA9ICJFeGNsdWRlIGl0ZW1zIGluIHRoZSBzZWxlY3RlZCBjYXRlZ29yaWVzIGZyb20gdGhlIHJlc3VsdHMiOwokbGFuZ1snZXhwaXJlX29uZV95ZWFyJ10gPSAiQWZ0ZXIgT25lIFllYXIiOwokbGFuZ1snZXhwaXJlX3NpeF9tb250aHMnXSA9ICJBZnRlciBTaXggTW9udGhzIjsKJGxhbmdbJ2V4cGlyZV90d29feWVhciddID0gIkFmdGVyIFR3byBZZWFycyI7CiRsYW5nWydleHBvcnRjYXRzJ10gPSAiRXhwb3J0IGNhdGVnb3JpZXMiOwokbGFuZ1snZXhwb3J0ZGVsaW0nXSA9ICJFeHBvcnQgZmllbGQgRGVsaW1pdGVyIjsKJGxhbmdbJ2V4cG9ydGRyYWZ0J10gPSAiRXhwb3J0IERyYWZ0IEl0ZW1zIjsKJGxhbmdbJ2V4cG9ydGZpZWxkcyddID0gIkV4cG9ydCBDdXN0b20gRmllbGRzIjsKJGxhbmdbJ2V4cG9ydG9wdGlvbnMnXSA9ICJFeHBvcnQgUHJvZHVjdCBPcHRpb25zIjsKJGxhbmdbJ2V4cG9ydF90b19jc3YnXSA9ICJFeHBvcnQgdG8gQ1NWIjsKJGxhbmdbJ2V4dHJhMSddID0gIkV4dHJhIEZpZWxkIDEiOwokbGFuZ1snZXh0cmEyJ10gPSAiRXh0cmEgRmllbGQgMiI7CgojIyBGCiRsYW5nWydmaWVsZCddID0gIkZpZWxkIjsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAiRmllbGQgRGVmaW5pdGlvbiI7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICJGaWVsZCBEZWZpbml0aW9ucyI7CiRsYW5nWydmaWVsZHMnXSA9ICJGaWVsZHMiOwokbGFuZ1snZmlsZSddID0gIkZpbGUiOwokbGFuZ1snZmlsdGVyJ10gPSAiRmlsdGVyIjsKJGxhbmdbJ2ZpbHRlcmludXNlJ10gPSAiaW4gZWZmZWN0IjsKJGxhbmdbJ2ZpbHRlcnMnXSA9ICJGaWx0ZXJzIjsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gIiZsdDsmbHQ7IjsKCiMjIEcKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICJHZW5lcmFsIFNldHRpbmdzIjsKJGxhbmdbJ2dvJ10gPSAiR28iOwoKIyMgSAokbGFuZ1snaGllcmFyY2h5J10gPSAiSGllcmFyY2h5IjsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gIkhpZXJhcmNoeSBQb3NpdGlvbiI7CiRsYW5nWydoaWVyYXJjaHlfc2V0dGluZ3MnXSA9ICJIaWVyYXJjaHkgU2V0dGluZ3MiOwoKIyMgSQokbGFuZ1snaWQnXSA9ICJJZCI7CiRsYW5nWydpbWFnZXRleHQnXSA9ICJJbWFnZSI7CiRsYW5nWydpbWFnZV9oYW5kbGluZ19zZXR0aW5ncyddID0gIkltYWdlIEhhbmRsaW5nIFNldHRpbmdzIjsKJGxhbmdbJ2ltcG9ydF9mcm9tX2NzdiddID0gIkltcG9ydCBpdGVtcyBmcm9tIENTViBmaWxlIjsKJGxhbmdbJ2luY2hlcyddID0gIkluY2hlcyI7CiRsYW5nWydpbmNsdWRlX2NoaWxkcmVuJ10gPSAiSW5jbHVkZSBDaGlsZHJlbj8iOwokbGFuZ1snaW5mb19hbG51bW9ubHknXSA9ICJPbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLiBObyB3aGl0ZXNwYWNlLCBxdW90ZXMsIG9yIG5vbiBsZXR0ZXIvbnVtYmVyIGNvbWJpbmF0aW9ucyI7CiRsYW5nWydpbmZvX2F0dHJpYnRlbXBsYXRlJ10gPSAnUG9zc2libGUgdmFyaWFibGVzIGFyZTogeyRhdHRyaWJfdGV4dH0seyRhdHRyaWJfYWRqdXN0fSx7JGN1cnJlbmN5X3N5bWJvbH0nOwokbGFuZ1snaW5mb19hdHRyaWJ1dGVzX2NvcGllZCddID0gIkF0dHJpYnV0ZXMgQ29waWVkIjsKJGxhbmdbJ2luZm9fYmF0Y2hzaXplJ10gPSAiU2V0IHRoZSBudW1iZXIgb2YgbGluZXMgdG8gcHJvY2VzcyBwZXIgJnF1b3Q7YmF0Y2gmcXVvdDsuICBBZnRlciBhIGJhdGNoIGlzIGNvbXBsZXRlLCB0aGUgaW1wb3J0ZXIgd2lsbCByZWRpcmVjdCwgYW5kIHJlc3VtZSBvcGVyYXRpb25zLiAgSWYgeW91IGFyZSBleHBlcmllbmNpbmcgbWVtb3J5IGVycm9ycywgb3IgdGltZW91dCBwcm9ibGVtcyBkdWUgdG8gbGFyZ2UgYW1vdW50cyBvZiBwcm9jZXNzaW5nLCB5b3UgbWF5IG5lZWQgdG8gY29uc3VsdCB5b3VyIGhvc3QgcHJvdmlkZXIsIG9yIHJlZHVjZSB0aGlzIG51bWJlciI7CiRsYW5nWydpbmZvX2NhcnRfbW9kdWxlX3BhcmFtcyddID0gIlRoZXNlIHBhcmFtZXRlcnMgYXJlIGdpdmVuIHRvIHRoZSBzZWxlY3RlZCBjYXJ0IG1vZHVsZSBmcm9tIHRoZSBpdGVtIGRldGFpbCBhbmQgc3VtbWFyeSBkaXNwbGF5cyI7CiRsYW5nWydpbmZvX2NsZWFyYXR0cmlicyddID0gIk9ubHkgYXBwbGljYWJsZSB3aGVuIHVwZGF0aW5nIGV4aXN0aW5nIGl0ZW1zLCB0aGlzIHdpbGwgY2xlYXIgYWxsIGF0dHJpYnV0ZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBkYXRhYmFzZSBmb3IgaXRlbXMgYmVmb3JlIGNyZWF0aW5nIG5ldyBvbmVzIjsKJGxhbmdbJ2luZm9fY2xlYXJjYXRlZ29yaWVzJ10gPSAiT25seSBhcHBsaWNhYmxlIHdoZW4gdXBkYXRpbmcgZXhpc3RpbmcgaXRlbXMsIHRoaXMgd2lsbCBjbGVhciBhbGwgY2F0ZWdvcnkgbWVtYmVyc2hpcHMgYmVmb2UgY3JlYXRpbmcgbmV3IG9uZXMiOwokbGFuZ1snaW5mb19jbGVhcmZpZWxkcyddID0gIk9ubHkgYXBwbGljYWJsZSB3aGVuIHVwZGF0aW5nIGV4aXN0aW5nIGl0ZW1zLCB0aGlzIHdpbGwgY2xlYXIgYWxsIGZpZWxkcyBiZWZvZSBjcmVhdGluZyBmaWVsZCB2YWx1ZXMiOwokbGFuZ1snaW5mb19jb3B5X2F0dHJpYnNldHMnXSA9ICJUaGlzIGFjdGlvbiB3aWxsIGNvcHkgQXR0cmlidXRlIFNldHMgKGV4Y2x1ZGluZyBza3UgdmFsdWVzKSBmcm9tIGFub3RoZXIgaXRlbS4iOwokbGFuZ1snaW5mb19jcmVhdGVjYXRlZ29yaWVzJ10gPSAiQXV0b21hdGljYWxseSBjcmVhdGUgaXRlbSBjYXRlZ29yaWVzIHRvIG1hdGNoIHRob3NlIG9mIHRoZSBDU1YgZmlsZSwgaWYgaXQgZG9lcyBub3QgYWxyZWFkeSBleGlzdCI7CiRsYW5nWydpbmZvX2NyZWF0ZWZpZWxkcyddID0gIkNyZWF0ZSB1bmtub3duIGl0ZW0gZmllbGRzIGF1dG9tYXRpY2FsbHk/IDxlbT4oVGhleSB3aWxsIGJlIGNyZWF0ZWQgYXMgdGV4dCBmaWVsZHMpPC9lbT4iOwokbGFuZ1snaW5mb19jcmVhdGVoaWVyYXJjaHknXSA9ICJBdXRvbWF0aWNhbGx5IGNyZWF0ZSBpdGVtIGhpZXJhcmNoaWVzIHRvIG1hdGNoIHRob3NlIG9mIHRoZSBDU1YgZmlsZSBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0IjsKJGxhbmdbJ2luZm9fZGVjaW1hbF91bml0cyddID0gIlRoaXMgc3lzdGVtIHVuZGVyc3RhbmRzICguKSBhcyB0aGUgZGVjaW1hbCBwb2ludCBzZXBhcmF0b3IuIGkuZS46IDxzdHJvbmc+NS4yNTwvc3Ryb25nPiI7CiRsYW5nWydpbmZvX2RlbGltaXRlciddID0gIlNwZWNpZnkgdGhlIGNoYXJhY3RlciAob3IgY2hhcmFjdGVycykgdGhhdCBzZXBlcmF0ZSBlYWNoIGZpZWxkIjsKJGxhbmdbJ2luZm9fZHJvcGRvd25fb3B0aW9ucyddID0gIlNlcGFyYXRlIHZhbHVlcyBmcm9tIGxhYmVscyBmb3Igb3B0aW9ucyBieSBzZXBhcmF0aW5nIHRoZW0gd2l0aCBhIHBpcGUgfCBjaGFyYWN0ZXIuICBpLmU6IGZ8RmVtYWxlLiAgT25lIG9wdGlvbiBwZXIgbGluZS4iOwokbGFuZ1snaW5mb19kdXBsaWNhdGVwcm9kdWN0cyddID0gIlNwZWNpZnkgaG93IHRoZSBzeXN0ZW0gc2hvdWxkIGhhbmRsZSBhbiBpdGVtIHdob3MgbmFtZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgQ1NWIGZpbGUiOwokbGFuZ1snaW5mb19lZGl0X3Byb2R1Y3Rfb3B0aW9ucyddID0gJ1NwZWNpZnkgb3B0aW9uIHRleHQgZm9yIGVhY2ggb3B0aW9uICh0ZXh0IG11c3QgYmUgZGlmZmVyZW50IGluIGVhY2ggb3B0aW9uKS4gIElmIGEgU0tVIGlzIGVudGVyZWQsIGl0IG11c3QgYmUgdW5pcXVlIHRocm91Z291dCB0aGUgcHJvZHVjdHMgbW9kdWxlLiAgUm93cyBjYW4gYmUgcmUtb3JkZXJlZCB0byBzcGVjaWZ5IHRoZWlyIGFwcGVhcmFuY2UgaW4gdGhlIGNhcnQgZHJvcGRvd24uJzsKJGxhbmdbJ2luZm9fZmllbGRkZWZzX3RhYiddID0gIjxzdHJvbmc+Tm90ZTogPC9zdHJvbmc+IEFsbCBGaWVsZHMgZGVmaW5lZCBoZXJlIGFyZSBhdmFpbGFibGUgdG8gYWxsIGl0ZW1zLiI7CiRsYW5nWydpbmZvX2ZpZWxkcHJvYmxlbXMnXSA9ICJQcm9ibGVtcyB3ZXJlIGVuY291bnRlcmVkIHdoZW4gZGVhbGluZyB3aXRoIG9uZSBvciBtb3JlIGN1c3RvbSBmaWVsZHMuICBUaGUgYWN0aW9uIGhhcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LCBob3dldmVyIHlvdSBzaG91bGQgaW52ZXN0aWdhdGUgYW5kIGNvcnJlY3QgdGhlc2UgcHJvYmxlbXMiOwokbGFuZ1snaW5mb19maWx0ZXJfcHJvZHVjdG5hbWUnXSA9ICJFbnRlciBhIHByb2R1Y3QgbmFtZSBzdWJzdHJpbmcuICBXaWxkY2FyZCBjaGFyYWN0ZXJzIGFyZSAlIGFuZCAqIjsKJGxhbmdbJ2luZm9fZmlsdGVyX3NrdSddID0gIkVudGVyIGEgc2t1IHN1YnN0cmluZy4gIFdpbGRjYXJkIGNoYXJhY3RlcnMgYXJlICUgYW5kICouICBJZiB0aGUgcHJvZHVjdCBuYW1lIGZpZWxkIGlzIG5vdCBlbXB0eSwgdGhpcyBmaWVsZCB3aWxsIGJlIGlnbm9yZWQuIjsKJGxhbmdbJ2luZm9faGFuZGxlaW1hZ2VzJ10gPSAiVXBvbiBpbXBvcnQsIGlmIGFuIGltYWdlIGZpbGVuYW1lIGlzIGZvdW5kIGluIGEgZmllbGQgY29sdW1uLCBzaG91bGQgaXQgYmUgbW92ZWQgZnJvbSB0aGUgc291cmNlIGxvY2F0aW9uLCBhbmQgdGhlIGZpZWxkIHR5cGUgY2hhbmdlZCB0byAmcXVvdDtpbWFnZSZxdW90OyI7CiRsYW5nWydpbmZvX2hpZXJwYWdlJ10gPSAiVXNlIHRoaXMgcGFnZSBmb3IgaGllcmFyY2h5IHZpZXdzLiAgVGhlIHBhZ2VpZCB3aWxsIG5vdCBiZSBzcGVmaXJpZWQgb24gdGhlIFVSTC4iOwokbGFuZ1snaW5mb19pbWFnZXBhdGgnXSA9ICJUaGUgcGF0aCAocmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyZWN0b3J5KSB3aGVyZSBpbWFnZXMgcmVmZXJyZWQgdG8gaW4gdGhlIGltcG9ydCBmaWxlLCBjYW4gYmUgZm91bmQiOwokbGFuZ1snaW5mb19pbWFnZXN0dWZmX2RlcHJlY2F0ZWQnXSA9ICJJbWFnZSBwcm9jZXNzaW5nIGZ1bmN0aW9ucyBhcmUgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24uICBVc2UgQ0dTbWFydEltYWdlIGZvciBpbmxpbmUgaW1hZ2UgcHJvY2Vzc2luZy4iOwokbGFuZ1snaW5mb19pbXBvcnRfdGVzdF9wYXNzZWQnXSA9ICJBIGJyaWVmIHRlc3QgYXMgYmVlbiBwZXJmb3JtZWQgb24gdGhlIGlucHV0IGZpbGUgc3BlY2lmaWVkLCBhbmQgZXZlcnl0aGluZyBhcHBlYXJzIHRvIGJlIGNvcnJlY3QuPGJyLz5UaGlzIGlzIG5vIGluZGljYXRpb24gdGhhdCB0aGVyZSBhcmUgbm8gZXJyb3JzIGluIHRoZSBmaWxlLiI7CiRsYW5nWydpbmZvX3ByZXR0eWhpZXJ1cmxzJ10gPSAiSW5jbHVkZSB0aGUgaGllcmFyY2h5IGl0ZW0gbmFtZSBvbiB0aGUgVVJMIjsKJGxhbmdbJ2luZm9fcHJvZG5vdGZvdW5kJ10gPSAiVGhpcyBvcHRpb24gZGV0ZXJtaW5lcyB0aGUgYmVoYXZpb3VyIG9mIHRoZSB3ZWJzaXRlIGlmIGFuIGl0ZW0gZGV0YWlsIHZpZXcgaXMgYWNjZXNzZWQgZGlyZWN0bHkgYnkgVVJMLCBhbmQgdGhhdCBpdGVtIGZvciB3aGF0ZXZlciByZWFzb24gKGRpc2FibGVkLCBkZWxldGVkLCBldGMpIGNhbm5vdCBiZSBhY2Nlc3NlZC4iOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gIlB1YmxpYyBmaWVsZHMgYXJlIGF2YWlsYWJsZSBmb3IgdGhlIHB1YmxpYyB0byBzZWUiOwokbGFuZ1snaW5mb19yZW9yZGVyX2NvbnRlbnQnXSA9ICJUaGlzIG9wZXJhdGlvbiBhbGxvd3MgZHJhZ2dpbmcgdGhlIGluZGl2aWR1YWwgbm9kZXMgaW4gdGhlIHRyZWUgdG8gYWRqdXN0IHRoZSBvcmRlciB0aGF0IHRoZXkgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gaW4gdGhlIGhpZXJhcmNoeSB2aWV3IjsKJGxhbmdbJ2luZm9fc2V0ZWNvbWhhbmRsZXJzJ10gPSAiVGhpcyBidXR0b24gd2lsbCBlbnN1cmUgdGhhdCBldmVudCBoYW5kbGVycyBmb3IgZWNvbW1lcmNlIGV2ZW50cyBhcmUgaW4gcGxhY2UuICBUaGlzIGlzIHVzZWZ1bCBpZiBhc2tpbmcgdGhlIGl0ZW1zIG1vZHVsZSB0byBrZWVwIHRyYWNrIG9mIGEgcXVhbnRpdHkgb24gaGFuZCwgYnV0IHRoZSBldmVudCBoYW5kbGVycyBkaWQgbm90IGdldCBjcmVhdGVkIGR1cmluZyBpbnN0YWxsIG9yIHVwZ3JhZGUiOwokbGFuZ1snaW5mb19zbHVndGVtcGxhdGUnXSA9IDw8PEVPVAo8ZGl2PlRoaXMgdGVtcGxhdGUgY29udHJvbHMgaG93IFVSTCBzbHVncyB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgZ2VuZXJhdGVkIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBwcm9kdWN0LiAgVGhlIG91dHB1dCBtdXN0IGJlIGEgcGFydGlhbCBVUkwgKG5vdCBhIGNvbXBsZXRlIHNpdGUgVVJMKSwgYW5kIG11c3Qgbm90IGNvbnRhaW4gSFRNTC4gIFRoZSBhdmFpbGFibGUgdmFyaWFibGVzIGluY2x1ZGU6PGJyLz4KPHVsPgogIDxsaT48Y29kZT5cJG5hbWU8L2NvZGU+IC0gc3RyaW5nIC0gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgcHJvZHVjdCBuYW1lIGluIGEgVVJMIHNhZmUgbWFubmVyLjwvbGk+CiAgPGxpPjxjb2RlPlwkaGllcl9wYXJ0czwvY29kZT4gLSBzdHJpbmdbXSAtIEFuIGFycmF5IG9mIGFsbCBvZiB0aGUgcGFydHMgb2YgdGhlIGhpZXJhcmNoeSAobm8gbWF0dGVyIGhvdyBkZWVwKSBvZiB0aGUgcHJvZHVjdC48L2xpPgogIDxsaT48Y29kZT5cJGhpZXJhcmNoeTwvY29kZT4gLSBzdHJpbmcgLSBBIHN0cmluZyBjb250YWluaW5nIHRoZSBoaWVyYXJjaHkgb2YgdGhlIHByb2R1Y3QgcmVwcmVzZW50ZWQgYXMgYSBwYXJ0aWFsIFVSTCBzbHVnLiBpLmU6ICAvQ2xvdGhlcy9Xb21lbi9XaW50ZXIvSmFja2V0cy9GdWxsLWxlbmd0aDwvbGk+CiAgPGxpPjxjb2RlPlwkaGllcmFyY2h5MzwvY29kZT4gLSBzdHJpbmcgLSBBIHN0cmluZyBjb250YWluaW5nIGF0IG1vc3QgdGhlIGZpcnN0IDMgbGV2ZWxzIG9mIHRoZSBoaWVyYXJjaHkgb2YgdGhlIHByb2R1Y3QgcmVwcmVzZW50ZWQgYXMgYSBwYXJ0aWFsIFVSTCBzbHVnLiBpLmU6ICAvQ2xvdGhlcy9Xb21lbi9XaW50ZXI8L2xpPgogIDxsaT48Y29kZT5cJGNhdGVnb3J5X3BhcnRzPC9jb2RlPiAtIHN0cmluZ1tdIC0gQW4gYXJyYXkgb2YgYWxsIG9mIHRoZSBjdXJyZW50IGNhdGVnb3JpZXMgb2YgdGhlIHByb2R1Y3QuPC9saT4KICA8bGk+PGNvZGU+XCRmaXJzdF9jYXRlZ29yeTwvY29kZT4gLSBzdHJpbmcgLSBBIHN0cmluZyBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBmaXJzdCBjYXRlZ29yeSB0aGF0IHRoaXMgcHJvZHVjdCBjdXJyZW50bHkgYmVsb25ncyB0by48L2xpPgo8L3VsPgpBIHNhbXBsZSBVUkwgc2x1ZyB0ZW1wbGF0ZSBpczogPGNvZGU+e2lmIFwkaGllcmFyY2h5MyA9PSAnJ317XCRuYW1lfXtlbHNlfXtcJGhpZXJhcmNoeTN9L3tcJG5hbWV9ey9pZn08L2NvZGU+CjwvZGl2PgpFT1Q7CiRsYW5nWydpbmZvX3NrdSddID0gJ1RoZSBTS1UgPGVtPihTdG9jayBLZWVwaW5nIFVuaXQpPC9lbT4gaWYgZW50ZXJlZCwgbXVzdCBiZSB1bmlxdWUgYWNyb3NzIGFsbCBwcm9kdWN0cyBhbmQgcHJvZHVjdCBvcHRpb25zLic7CiRsYW5nWydpbmZvX3VybF9hbGlhcyddID0gJ0EgZmllbGQgdG8gcHJvdmlkZSBhIHVuaXF1ZSBhbGlhcyBmb3IgdGhpcyBwcm9kdWN0IGZvciBTRU8gcHVycG9zZXMuICA8ZW0+KGRlcHJlY2F0ZWQpPC9lbT4nOwokbGFuZ1snaW5mb191cmxfc2x1ZyddID0gJ1RoaXMgZmllbGQgY29udGFpbnMgYW4gb3B0aW9uYWwgVVJMIHNsdWcgdG8gdW5pcXVlbHkgaWRlbnRpZnkgdGhpcyBwcm9kdWN0LiAgVG8gaGF2ZSB0aGlzIGZpZWxkIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgZnJvbSB0aGUgdXNlciBlbnRlcmVkIHByb2R1Y3QgaW5mb3JtYXRpb24gaXQgbXVzdCBub3QgaGF2ZSBiZWVuIG1hbnVhbGx5IGVkaXRlZCc7CgojIyBMCiRsYW5nWydsYWJlbCddID0gIkxhYmVsIjsKJGxhbmdbJ2xhYmVsX292ZXJ3cml0ZSddID0gIk92ZXJ3cml0ZSI7CiRsYW5nWydsYWJlbF9za2lwJ10gPSAiU2tpcCI7CiRsYW5nWydsYWJlbF91cGRhdGUnXSA9ICJVcGRhdGUiOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICImZ3Q7Jmd0OyI7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAiTGFzdCBNb2RpZmllZCI7CiRsYW5nWydsb2dvdGV4dCddID0gIlNlY29uZCBJbWFnZSI7CgojIyBNCiRsYW5nWydtYXhsZW5ndGgnXSA9ICJNYXhpbXVtIGxlbmd0aCA8ZW0+KGFwcGxpY2FibGUgb25seSBvbiB0ZXh0Ym94IGZpZWxkcyk8L2VtPiI7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICJNb2RpZmllZCBEYXRlIjsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gIkEgbW9kdWxlIGZvciBtYW5hZ2luZyBhIGNhdGFsb2cgb2YgaXRlbXMsIHRoZWlyIHByaWNlLCBpbWFnZXMsIGV0YywgYW5kIGZvciBhbGxvd2luZyB1c2VycyB0byBidWlsZCBhIGNhcnQiOwokbGFuZ1snbW92ZV9kb3duJ10gPSAiTW92ZSBEb3duIjsKJGxhbmdbJ21vdmVfdXAnXSA9ICJNb3ZlIFVwIjsKJGxhbmdbJ21zZ19jYXRlZ29yeV9kZWxldGVkJ10gPSAiQ2F0ZWdvcnkgRGVsZXRlZCI7CiRsYW5nWydtc2dfZXZlbnRoYW5kbGVyc19jcmVhdGVkJ10gPSAiRXZlbnQgaGFuZGxlcnMgY3JlYXRlZCI7CiRsYW5nWydtc2dfb3B0aW9uc2NvcGllZCddID0gIlByb2R1Y3Qgb3B0aW9ucyBjb3BpZWQgKGJ1dCBub3Qgc2F2ZWQgeWV0KSI7CiRsYW5nWydtc2dfb3B0aW9uc19kZWxldGVkJ10gPSAiUHJvZHVjdCBvcHRpb25zIGRlbGV0ZWQgZm9yIHByb2R1Y3QgJWQiOwokbGFuZ1snbXNnX29wdGlvbnNfc2F2ZWQnXSA9ICJQcm9kdWN0IG9wdGlvbnMgc2F2ZWQiOwokbGFuZ1snbXNnX3Byb2R1Y3Rjb3BpZWQnXSA9ICJJdGVtIHN1Y2Nlc3NmdWxseSBjb3BpZWQuICBZb3UgYXJlIG5vdyBlZGl0aW5nIHRoZSBjb3B5LiAgQW55IHNrdSBpbmZvcm1hdGlvbiBpbiB0aGUgaXRlbSwgYW5kL29yIGF0dHJpYnV0ZXMgaGFzIGJlZW4gY2xlYXJlZCI7CgojIyBOCiRsYW5nWyduYW1lJ10gPSAiTmFtZSI7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gIllvdSBkbyBub3QgaGF2ZSB0aGUgcmVxdWlyZWQgcGVybWlzc2lvbjogJXMiOwokbGFuZ1snbmV3X2NhdGVnb3J5X25hbWUnXSA9ICJOZXcgQ2F0ZWdvcnkgTmFtZSI7CiRsYW5nWyduZXh0cGFnZSddID0gIiZndDsiOwokbGFuZ1snbm8nXSA9ICJObyI7CiRsYW5nWydub25hbWVnaXZlbiddID0gIk5vIG5hbWUgd2FzIHN1cHBsaWVkIjsKJGxhbmdbJ25vbmUnXSA9ICJOb25lIjsKJGxhbmdbJ25vdGVzJ10gPSAiTm90ZXMiOwokbGFuZ1snbm90aGluZ19zZWxlY3RkJ10gPSAiTm90aGluZyBzZWxlY3RlZCI7CiRsYW5nWydudW1lcmljJ10gPSAiTnVtZXJpYyI7CgojIyBPCiRsYW5nWydvZiddID0gIk9mIjsKJGxhbmdbJ29rJ10gPSAiT2siOwokbGFuZ1snb3BlcmF0aW9uX2NhbmNlbGxlZCddID0gIk9wZXJhdGlvbiBDYW5jZWxsZWQiOwokbGFuZ1snb3BlcmF0aW9uX2NvbXBsZXRlJ10gPSAiT3BlcmF0aW9uIENvbXBsZXRlIjsKJGxhbmdbJ29wdGlvbnMnXSA9ICdPcHRpb25zJzsKCiMjIFAKJGxhbmdbJ3BhZ2UnXSA9ICJQYWdlIjsKJGxhbmdbJ3BhZ2VfbGltaXQnXSA9ICJQYWdlIExpbWl0IjsKJGxhbmdbJ3BhZ2Vfb2YnXSA9ICJQYWdlICVzIG9mICVzIjsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gIlNwZWNpZnkgdGhlIGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGFyZToKPHVsPgogIDxsaT5oaWVyYXJjaHkgLS0gRGlzcGxheSBhbiBpdGVtIGxpc3QgYnkgaGllcmFyY2h5PC9saT4KICA8bGk+Y2F0ZWdvcnlsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgaXRlbSBjYXRlZ29yaWVzPC9saT4KICA8bGk+PGVtPmRlZmF1bHQ8L2VtPiAtIERpc3BsYXkgYSBzdW1tYXJ5IG9mIGl0ZW1zPC9saT4KICA8bGk+ZGV0YWlscyAtIERpc3BsYXkgYSBkZXRhaWwgdmlldyBvZiBhIHNpbmdsZSBpdGVtPC9saT4KICA8bGk+ZmllbGRsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgdmFsdWVzIGZyb20gYSBzcGVjaWZpZWQgZmllbGQuCiAgICAgPHA+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOy0gVGhpcyBhY3Rpb24gY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGEgbmF2aWdhdGlvbiBmcm9tIHRoZSB2YWx1ZXMgb2YgYSBzcGVjaWZpYyBmaWVsZC4gIGkuZTogIHlvdSBjb3VsZCBjcmVhdGUgYSBjdXN0b20gZHJvcGRvd24gZmllbGQgY2FsbGVkICZxdW90O2NvbG9yJnF1b3Q7IGFuZCB0aGVuIGNyZWF0ZSBhIG5hdmlnYXRpb24gYmFzZWQgb24gdGhlIGRpZmZlcmVudCBjb2xvcnMuCiAgICAgPC9wPgogIDwvbGk+CiAgPGxpPnNlYXJjaCAtIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IHNlYXJjaGluZyBpdGVtcyBvbiB2YXJpb3VzIGNyaXRlcml1bTwvbGk+CjxsaT5hamF4X3Byb3B2YWwgLSBSZXR1cm4gYSBqc29uIGVuY29kZWQgbGlzdCBvZiBwcm9wZXJ0eSB2YWx1ZXMgbWF0Y2hpbmcgdGhlIGNyaXRlcmlhIHNwZWNpZmllZC4gIFRoaXMgYWN0aW9uIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgdmlhIGFqYXgsIGFuZCBzaG91bGQgYmUgY2FsbGVkIHdpdGggdGhlIHNob3d0ZW1wbGF0ZT1mYWxzZSBwYXJhbWV0ZXIgb24gdGhlIFVSTC48L2xpPgo8L3VsPiI7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gIldoZW4gdXNlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyLCB3aGljaCBzaG91bGQgbWF0Y2ggdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgY2F0ZWdvcnkgd2lsbCBiZSB1c2VkIHRvIGRpc3BsYXkgb25seSB0aG9zZSBpdGVtcyB0aGF0IGFyZSBpbiB0aGF0IGNhdGVnb29yeS4gKGEgY29tbWEgc2VwZXJhdGVkIGxpc3QgY2FuIGJlIHN1cHBsaWVkKS4gIFRoaXMgcGFyYW1ldGVyIGNhbiBhbHNvIGJlIHVzZWQgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbiB0byBsaW1pdCB0aGUgb3V0cHV0IHRvIHRoZSBzcGVjaWZpZWQgaXRlbSBjYXRlZ29yaWVzLiI7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWZpZWxkJ10gPSAiQXBwbGljYWJsZSBvbmx5IHRvIHRoZSAmcXVvdDtjYXRlZ29yeWxpc3QmcXVvdDsgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBjYW4gYmUgdXNlZCB0byBmaWx0ZXIgY2F0ZWdvcmllcyBiYXNlZCBvbiB0aGUgdmFsdWUgb2YgYSBjYXRlZ29yeSBmaWVsZC4gIEl0IHdpbGwgbm90IHdvcmsgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgJnF1b3Q7Y2F0ZWdvcnkmcXVvdDsgb3IgJnF1b3Q7Y2F0ZWdvcnlfaWQmcXVvdDsgcGFyYW1ldGVycy4gICBUaGUgc3ludGF4IG9mIHRoaXMgcGFyYW1ldGVyIGlzIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZmllbGQgbmFtZXMsIGFuZCBmaWVsZCB2YWx1ZXMuICBpLmU6ICBjYXRlZ29yeWxpc3Q9JnF1b3Q7ZmllbGQgbmFtZTp2YWx1ZSxmaWVsZCBuYW1lIDI6dmFsdWUgMiZxdW90OyI7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3RkdGx0ZW1wbGF0ZSddID0gIlVzZWZ1bCBvbmx5IHdpdGggdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkaXNwbGF5IG9mIHRoZSBjYXRlZ29yeSBkZXRhaWxzLiAgVGhpcyB1c2VzIGEgY2F0ZWdvcnkgbGlzdCB0ZW1wbGF0ZS4uICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLiI7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gIlVzZWZ1bCBvbmx5IHdpdGggdGhlIGNhdGVnb3J5bGlzdCBhbmQgZmllbGRsaXN0IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLiI7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAiVGhpcyBzcGVjaWZpZXMgdGhlIHBhZ2VpZCBvciBhbGlhcyB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIGRldGFpbCByZXBvcnQuICBJdCBjYW4gYmUgdXNlZCB3aXRoIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IG9yIHNlYXJjaCBhY3Rpb25zLiAgVGhpcyBvcHRpb24gaXMgbm90IGNvbXBhdGlibGUgd2l0aCBwcmV0dHkgdXJscyBvZiBhbnkgc29ydC4iOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICJUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkZXRhaWwgbW9kZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuICBUaGlzIHBhcmFtZXRlciBoYXMgbm8gZWZmZWN0IHdoZW4gcHJldHR5IHVybHMgYXJlIGVuYWJsZWQuIjsKJGxhbmdbJ3BhcmFtX2V4Y2x1ZGVjYXQnXSA9ICJBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgKHN1bW1hcnkpIHZpZXcsIHRoaXMgcGFyYW1ldGVyIHdpbGwgYWxsb3cgZXhjbHVkaW5nIGl0ZW1zIHRoYXQgYXJlIGluIGEgc3BlY2lmaWMgY2F0ZWdvcnkgZnJvbSB0aGUgcmVzdWx0LiBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGNhdGVnb3J5IG5hbWVzIGlzIGFsbG93ZWQuIFRoaXMgcGFyYW1ldGVyIGNhbiB3b3JrIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGNhdGVnb3J5IHBhcmFtZXRlciB0byBwcm92aWRlIGEgbGlzdCBvZiB0aGUgaXRlbXMgdGhhdCBhcmUgaW4gdGhpcyBjYXRlZ29yeSwgYnV0IG5vdCBpbiB0aGF0IGNhdGVnb3J5IjsKJGxhbmdbJ3BhcmFtX2ZpZWxkJ10gPSAiVXNlZCBpbiB0aGUgPGVtPmZpZWxkbGlzdDwvZW0+IGFuZCB0aGUgPGVtPmFqYXhfcHJvcHZhbDwvZW0+IGFjdGlvbnMuIEluIHRoZSBmaWVsZGxpc3QgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBpcyByZXF1aXJlZCB0byBzcGVjaWZ5IHRoZSBuYW1lIG9mIGEgdXNlciBkZWZpbmVkIHByb3BlcnR5IHRvIGNyZWF0ZSBhIGxpc3QgZnJvbS4gIEluIHRoZSBhamF4X3Byb3B2YWwgYWN0aW9uIHRoaXMgcGFyYW1ldGVyIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGljaCBmaWVsZCB0byB1c2UgdG8gZXh0cmFjdCBhIGxpc3Qgb2YgdmFsdWVzLiAgQW55IHZhbGlkIGZpZWxkIG5hbWVzIGFyZSBhY2NlcHRlZCAodGhvdWdoIG9ubHkgdGV4dCBmaWVsZCBhbmQgZHJvcGRvd24gZmllbGQgbmFtZXMgd2lsbCB3b3JrIHByb3Blcmx5LiAgQWRkaXRpb25hbGx5IHRoZSBzcGVjaWFsIHZhbHVlcyA6Om5hbWU6OiwgOjpza3U6OiwgYW5kIDo6YWxpYXM6OiBjYW4gYmUgc3BlY2lmaWVkIHRvIHJldHVybiB2YWx1ZXMgZnJvbSB0aGUgaXRlbSBuYW1lLCBza3UgYW5kIGFsaWFzIHJlc3BlY3RpdmVseS4iOwokbGFuZ1sncGFyYW1fZmllbGRpZCddID0gJ1VzZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLiAgVGhpcyBwYXJhbWV0ZXIgd29ya3MgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgZmllbGR2YWwgcGFyYW1ldGVyIHRvIGFsbG93IGZpbHRlcmluZyBwcm9kdWN0cyBiYXNlZCBvbiB0aGUgdmFsdWUgb2YgYSBjdXN0b20gZmllbGQuICBOb3RlOiAgT25seSBjdXN0b20gZmllbGRzIHRoYXQgc3VwcG9ydCBhIHNpbmdsZSB2YWx1ZSB3aWxsIHdvcmsuJzsKJGxhbmdbJ3BhcmFtX2ZpZWxkdmFsJ10gPSAiVXNlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhbmQgPGVtPmFqYXhfcHJvcHZhbDwvZW0+IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgZmllbGQgdmFsdWUgdG8gbGltaXQgcmVzdWx0cyBieS4gIEluIHRoZSBkZWZhdWx0IGFjdGlvbiB0aGVzZSBzcGVjaWFsIHZhbHVlcyBhcmUgYWNjZXB0ZWQ6ICZxdW90Ozo6bnVsbDo6JnF1b3Q7ICZxdW90Ozo6bm90bnVsbDo6JnF1b3Q7IGFuZCB3aWxkY2FyZCBjaGFycyAoKiBvciAlKS4gSW4gdGhlIGFqYXhfcHJvcHZhbCBhY3Rpb24gdGhpcyBmaWVsZCBpcyBleHBlY3RlZCB0byBjb250YWluIG9ubHkgYSBmZXcgbGV0dGVycywgdG8gaW5kaWNhdGUgYSBzbWFsbCBmaWx0ZXIuICBpLmU6IGZpZWxkdmFsPWIgdG8gcmV0dXJuIGFsbCBmaWVsZCB2YWx1ZXMgdGhhdCBiZWdpbiB3aXRoIHRoZSBsZXR0ZXIgYi4iOwokbGFuZ1sncGFyYW1faGllcmFyY2h5J10gPSAiVXNlZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYW5kIGhpZXJhY2h5IGFjdGlvbnMgdGhpcyBwYXJhbWV0ZXIgaGFzIHR3byB1c2VzLiAgV2hlbiB1c2VkIGluIHRoZSBkZWZhdWx0IChzdW1tYXJ5KSBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGF0IG9ubHkgaXRlbXMgaW4gdGhhdCBsb2NhdGlvbiBvZiB0aGUgaGllcmFyY2h5IHNob3VsZCBiZSBkaXNwbGF5ZWQuICBXaWxkY2FyZCBjaGFyYWN0ZXIgY2FuIGJlIHVzZWQgc28gdGhhdCB5b3UgY2FuIHNwZWNpZnkgcGFyZW50L2NoaWxkIHJlbGF0aW9uc2hpcHMgYXMgd2VsbC4gIGkuZSB7UHJvZHVjdHMgaGllcmFyY2h5PSd0cnVja3MqJ30gd2lsbCBjcmVhdGUgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBpbmNsdWRpbmcgdGhlIGNoaWxkcmVuIGluIHRoZSBoaWVyYXJjaHkuICBTaW1pbGFybHksIHtQcm9kdWN0cyBoaWVyYXJjaHk9Jyp0cnVja3MnfSB3aWxsIGRpc3BsYXkgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBhbmQgYWxsIGl0ZW1zIGJlbG9naW5nIHRvIGFueSBwYXJlbnQgaW4gdGhlIGhpZXJhcmNoeS4gIEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZXhwcmVzc2lvbnMgY2FuIGJlIHN1cHBsaWVkLiAgaS5lOiB7UHJvZHVjdHMgYWN0aW9uPWhpZXJhcmNoeSBoaWVyYXJjaHk9J3RydWNrcyxjYXJzJ30iOwokbGFuZ1sncGFyYW1faGllcmFyY2h5cGFnZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgaGllcmFyY2h5IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgKGJ5IHBhZ2UgaWQgb3IgYWxpYXMpIGEgcGFnZSB0byB1c2UgZm9yIGNoaWxkIGhpZXJhcmNoeSBsaW5rcyc7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZSddID0gIlRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGhpZXJhcmNoeSBkaXNwbGF5LiBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4iOwokbGFuZ1sncGFyYW1faW5saW5lJ10gPSAiVXNlZnVsIG9ubHkgd2l0aCB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgdGhlIG91dHB1dCBvZiB0aGUgc3VtbWFyeSB2aWV3IHNob3VsZCBiZSBkaXNwbGF5ZWQgaW5saW5lIjsKJGxhbmdbJ3BhcmFtX25vdHByZXR0eSddID0gIlRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGFjdGlvbnMgdG8gd2hpY2ggcHJldHR5IHVybHMgc2hvdWxkIG5vdCBiZSBnZW5lcmF0ZWQuICBpLmU6IG5vdHByZXR0eT1oaWVyYXJjaHksZGVmYXVsdCB3aWxsIG5vdCBnZW5lcmF0ZSBwcmV0dHkgdXJscyB0byBoaWVyYXJjaHksIG9yIHN1bW1hcnkgKGRlZmF1bHQpIGFjdGlvbnMsIGJ1dCB3aWxsIGFsbG93IGdlbmVyYXRpb24gb2YgcHJldHR5IHVybHMgdG8gZGV0YWlsIHZpZXdzLiAgQXMgYSBzcGVjaWFsIHZhbHVlICZxdW90O2FsbCZxdW90OyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoYXQgbm8gcHJldHR5IHVybHMgc2hvdWxkIGJlIGdlbmVyYXRlZCI7CiRsYW5nWydwYXJhbV9wYWdlbGltaXQnXSA9ICJVc2VmdWwgb25seSB3aXRoIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IG9yIHNlYXJjaCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIGxpc3RlZCBvbiBlYWNoIHBhZ2UuIjsKJGxhbmdbJ3BhcmFtX3BhcmVudCddID0gJ0FwcGxpY2FibGUgb25seSBpbiB0aGUgPGVtPmhpZXJhcmNoeTwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBpbnRlZ2VyIGhpZXJhcmNoeSBpZCBvZiB0aGUgc3RhcnRpbmcgbG9jYXRpb24gb2YgdGhlIHJlcG9ydC4gIElmIHRoaXMgcGFyYW1ldGVyIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgJGFjdGl2ZV9oaWVyYXJjaHkgc21hcnR5IHZhcmlhYmxlIHdpbGwgYmUgaWdub3JlZC4gIElmIG5laXRoZXIgaXMgc2V0LCB0aGVuIHRoZSBoaWVyYXJjaHkgdmlldyB3aWxsIHN0YXJ0IGZyb20gdGhlIHJvb3QuJzsKJGxhbmdbJ3BhcmFtX3BhcmVudHMnXSA9ICJVc2VmdWwgb25seSBpbiB0aGUgPGVtPmhpZXJhcmNoeTwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgaGllcmFyY2h5IG5hbWVzIHRoYXQgc3BlY2lmeSB0byBjcmVhdGUgbnVtZXJvdXMgaGVpcmFyY2h5IHRyZWVzIGZyb20gdGhlIHNwZWNpZmllZCBsb2NhdGlvbihzKS4gIEhpZXJhcmNoeSBuYW1lcyBtdXN0IGJlIHVuaXF1ZSwgYW5kIG5vdCBjb250YWluIGFueSBzcGVjaWFsIGNoYXJzLiI7CiRsYW5nWydwYXJhbV9wcm9kdWN0aWQnXSA9ICJVc2VmdWwgb25seSB3aXRoIHRoZSBkZXRhaWwgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgd2hhdCBpdGVtIHRvIHVzZSBmb3IgdGhlIGRpc3BsYXkuIjsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RsaXN0J10gPSAiQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IChzdW1tYXJ5KSB2aWV3LCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGludGVnZXIgcHJvZHVjdCBpZHMgdG8gZGlzcGxheS4gIE5vIHBhZ2luYXRpb24gb3Igc29ydGluZyBpcyBwZXJmb3JtZWQgb24gdGhlc2UgdmFsdWVzLCBhbmQgaWYgc3BlY2lmaWVkIHRoZSBvdGhlciBmaWx0ZXJpbmcgcGFyYW1ldGVycyB0byB0aGUgc3VtbWFyeSB2aWV3IGFyZSBpZ25vcmVkLiI7CiRsYW5nWydwYXJhbV9yZXN1bHRwYWdlJ10gPSAiQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBzZWFyY2gsIGFuZCBjYXRlZ29yeSBsaXN0IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBhIHBhZ2UgaWQgb3IgYWxpYXMgdG8gdXNlIHRvIGRpc3BsYXkgdGhlIHN1bW1hcnkgcmVzdWx0cy4gIElmIHNwZWNpZmllZCwgdGhpcyB3aWxsIG92ZXJyaWRlIHRoZSBpbmxpbmUgcGFyYW1ldGVyLiI7CiRsYW5nWydwYXJhbV9zZWFyY2hmaWVsZCddID0gIjxlbT4oZGVwcmVjYXRlZCk8L2VtPiBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIG1heSBjb250YWluIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZmllbGQgbmFtZXMgdG8gaW5jbHVkZSBpbiB0aGUgc2VhcmNoIjsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZvcm10ZW1wbGF0ZSddID0gIkFwcGxpY2FibGUgb25seSB0byB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpc3BhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG5vbiBkZWZhdWx0IHNlYXJjaCBmb3JtIHRlbXBsYXRlIjsKJGxhbmdbJ3BhcmFtX3Nob3dhbGwnXSA9ICJBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGNhdGVnb3J5bGlzdCBhbmQgZmllbGRsaXN0IGFjdGlvbnMsIGlmIHRoaXMgcGFyYW1ldGVyIGlzIHNldCB0byBhIG5vbiAwIGludGVnZXIgdmFsdWUgYWxsIGNhdGVnb3JpZXMgKGV2ZW4gdGhvc2Ugd2l0aG91dCBpdGVtcykgd2lsbCBiZSBkaXNwbGF5ZWQuIjsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gIkFwcGxpY2FibGUgaW4gdGhlIHN1bW1hcnksIGNhdGVnb3J5bGlzdCBvciBzZWFyY2ggYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgZGV0ZXJtaW5lcyB0aGUgc29ydGluZyBvZiB0aGUgb3V0cHV0LiAgUG9zc2libGUgdmFsdWVzIGFyZToKPHVsPgogIDxsaT48c3Ryb25nPnByb2R1Y3RfbmFtZTwvc3Ryb25nPjwvbGk+CiAgPGxpPmlkIC0tIFRoZSBpdGVtIGlkPC9saT4KICA8bGk+d2VpZ2h0IC0tIFRoZSBpdGVtIHdlaWdodDwvbGk+CiAgPGxpPnByaWNlIC0tIFRoZSBpdGVtIGJhc2UgcHJpY2U8L2xpPgogIDxsaT5zdGF0dXMgLS0gRHJhZnQgb3IgcHVibGlzaGVkPC9saT4KICA8bGk+cmFuZG9tIC0tIERpc3BsYXkgaW4gcmFuZG9tIG9yZGVyIG9uIGVhY2ggcmVxdWVzdDwvbGk+CiAgPGxpPmNyZWF0ZWQgLS0gVGhlIGNyZWF0aW9uIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPgogIDxsaT5tb2RpZmllZCAtLSBUaGUgbW9kaWZpZWQgZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+CiAgPGxpPmY6ZmllbGRuYW1lIC0tIEFsbG93cyBzb3J0aW5nIGJ5IHZhbHVlcyBvZiBjdXN0b20gZmllbGRzLjwvbGk+CjwvdWw+CjxwPkEgcHJlZmVyZW5jZSBleGlzdHMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgc29ydGJ5IHZhbHVlLjwvcD4KPHA+VGhlIGNhdGVnb3J5IGxpc3QgdmlldyBzdXBwb3J0cyBvbmx5IGEgZmV3IHNwZWNpZmljIHNvcnRpbmcgb3B0aW9uczo8L3A+Cjx1bD4KICA8bGk+aWQgLS0gVGhlIGNhdGVnb3J5IGlkLjwvbGk+CiAgPGxpPjxzdHJvbmc+bmFtZTwvc3Ryb25nPiAtLSBUaGUgY2F0ZWdvcnkgbmFtZS48L2xpPgo8L3VsPiI7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICJTcGVjaWZ5IHRoZSBvcmRlciBvZiBzb3J0ZWQgZmllbGRzIGluIHN1bW1hcnkgKGluY2x1ZGluZyBhZnRlciBhIHNlYXJjaCkgdmlldy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6Cjx1bD4KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4KICA8bGk+ZGVzYyAtLSBEZXNjZW5kaW5nIG9yZGVyPC9saT4KPC91bD4KPHA+QSBwcmVmZXJlbmNlIGV4aXN0cyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBzb3J0b3JkZXIgdmFsdWUuPC9wPiI7CgokbGFuZ1sncGFyYW1fc29ydHR5cGUnXSA9ICJBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgc3VtbWFyeSB2aWV3LCB0aGlzIHBhcmFtZXRlciBpcyB1c2VkIHRvIGNvbnZlcnQgdGhlIHZhbHVlcyB0byBhbm90aGVyIHR5cGUgZm9yIHNvcnRpbmcuICB2YWxpZCB2YWx1ZXMgYXJlIFNUUklORyxTSUdORUQgYW5kIFVOU0lHTkVELiAgSWYgbm90IHN1cHBsaWVkIHRoZSBkZWZhdWx0IFNUUklORyB0eXBlIGlzIGFzc3VtZWQuIjsKJGxhbmdbJ3BhcmFtX3N1bW1hcnlwYWdlJ10gPSAiQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBhY3Rpb249aGllcmFyY2h5LCBhbGxvd3Mgc3BlY2lmeWluZyBhIHBhZ2UgaWQgb3IgYWxpYXMgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIGFueSBsaW5rcyB0byBzdW1tYXJ5IHZpZXciOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAiVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgc3VtbWFyeSBtb2RlIGRpc3BsYXkuICBJdCBpcyBhbHNvIGFjY2VwdGVkIGluIHRoZSBzZWFyY2ggYWN0aW9uLiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuIjsKJGxhbmdbJ3BhcmVudCddID0gIlBhcmVudCI7CiRsYW5nWydwaF9vcHRpb250ZXh0J10gPSAnRW50ZXIgdW5pcXVlIG9wdGlvbiB0ZXh0JzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAiVGhlIFByb2R1Y3RzIG1vZHVsZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW5zdGFsbGVkIjsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICJUaGUgUHJvZHVjdHMgbW9kdWxlIGhhcyBiZWVuIHJlbW92ZWQgYWxvbmcgd2l0aCBhbGwgYXNzb2NpYXRlZCBkYXRhIjsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAiUHJlZmVyZW5jZXMiOwokbGFuZ1sncHJlZml4X2NvcHlvZiddID0gIkNvcHkgT2YiOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAiUmVtb3ZpbmcgdGhpcyBtb2R1bGUgd2lsbCBhbHNvIHJlbW92ZSBhbGwgYXNzb2NpYXRlZCBkYXRhLCBhcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcHJvY2VlZD8iOwokbGFuZ1sncHJldnBhZ2UnXSA9ICImbHQ7IjsKJGxhbmdbJ3ByaWNlJ10gPSAiUHJpY2UiOwokbGFuZ1sncHJpY2VfYWRqdXN0bWVudCddID0gIlByaWNlIEFkanVzdG1lbnQiOwokbGFuZ1sncHJvZHVjdCddID0gIkl0ZW0iOwokbGFuZ1sncHJvZHVjdG5hbWUnXSA9ICJJdGVtIE5hbWUiOwokbGFuZ1sncHJvZHVjdHMnXSA9ICJJdGVtcyI7CiRsYW5nWydwcm9kdWN0X2RldGFpbF9zZXR0aW5ncyddID0gIkl0ZW0gRGV0YWlsIFNldHRpbmdzIjsKJGxhbmdbJ3Byb2R1Y3RfZWRpdGluZ19zZXR0aW5ncyddID0gIkl0ZW0gRWRpdGluZyBTZXR0aW5ncyI7CiRsYW5nWydwcm9kdWN0X2hpZXJhcmNoeSddID0gIkl0ZW0gSGllcmFyY2h5IjsKJGxhbmdbJ3Byb2R1Y3RfaW5mbyddID0gIkl0ZW0gSW5mb3JtYXRpb24iOwokbGFuZ1sncHJvZHVjdF9tYW5hZ2VyJ10gPSAiUHJvZHVjdCBNYW5hZ2VyIjsKJGxhbmdbJ3Byb2R1Y3Rfc3VtbWFyeV9zZXR0aW5ncyddID0gIkl0ZW0gU3VtbWFyeSBTZXR0aW5ncyI7CiRsYW5nWydwcm9ncmVzcyddID0gIlByb2dyZXNzIjsKJGxhbmdbJ3Byb21wdCddID0gIlByb21wdCI7CiRsYW5nWydwcm9tcHRfYWRkX2F0dHJpYnNldCddID0gIkFkZC9FZGl0IEF0dHJpYnV0ZSBTZXQiOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfZmlsZXR5cGVzJ10gPSAiQWxsb3cgdXBsb2FkIG9mIGZpbGVzIHdpdGggdGhlc2UgZXh0ZW5zaW9ucyAoZm9yIGFsbCB1cGxvYWQgZmllbGRzKSI7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZXR5cGVzJ10gPSAiQWxsb3cgcHJvY2Vzc2luZyBvZiBpbWFnZXMgd2l0aCB0aGVzZSBleHRlbnNpb25zIChmb3IgaW1hZ2UgdHlwZSBmaWVsZHMpIjsKJGxhbmdbJ3Byb21wdF9hcHBsaWNhYmxlJ10gPSAiRW5hYmxlIGJ5IGRlZmF1bHQgZm9yIGFsbCBuZXcgaXRlbXMiOwokbGFuZ1sncHJvbXB0X2F0dHJpYnRlbXBsYXRlJ10gPSAiVGVtcGxhdGUgZm9yIGRpc3BsYXkgb2YgaXRlbSBhdHRyaWJ1dGUgdmFsdWVzIGluIGRyb3Bkb3duIjsKJGxhbmdbJ3Byb21wdF9iYXRjaHNpemUnXSA9ICJCYXRjaCBTaXplIjsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZSddID0gIkNhcnQgTW9kdWxlIjsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICJDYXJ0IE1vZHVsZSBQYXJhbWV0ZXJzIjsKJGxhbmdbJ3Byb21wdF9jbGVhcmF0dHJpYnMnXSA9ICJDbGVhciBPcHRpb25zIG9uIHVwZGF0ZSI7CiRsYW5nWydwcm9tcHRfY2xlYXJjYXRlZ29yaWVzJ10gPSAiQ2xlYXIgY2F0ZWdvcmllcyBvbiB1cGRhdGUiOwokbGFuZ1sncHJvbXB0X2NsZWFyZmllbGRzJ10gPSAiQ2xlYXIgZmllbGRzIG9uIHVwZGF0ZSI7CiRsYW5nWydwcm9tcHRfY3JlYXRlY2F0ZWdvcmllcyddID0gIkNyZWF0ZSBDYXRlZ29yaWVzIjsKJGxhbmdbJ3Byb21wdF9jcmVhdGVmaWVsZHMnXSA9ICJDcmVhdGUgSXRlbSBGaWVsZHM/IjsKJGxhbmdbJ3Byb21wdF9jcmVhdGVoaWVyYXJjaHknXSA9ICJDcmVhdGUgSXRlbSBIaWVyYXJjaHkiOwokbGFuZ1sncHJvbXB0X2NzdmZpbGUnXSA9ICJVcGxvYWQgQ1NWIEZpbGUiOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5Y29kZSddID0gIkN1cnJlbmN5IENvZGUiOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAiQ3VycmVuY3kgU3ltYm9sIjsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0X3N0YXR1cyddID0gIkJ5IGRlZmF1bHQgYWxsIG5ldyBpdGVtcyBoYXZlIHRoaXMgc3RhdHVzIjsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0X3RheGFibGUnXSA9ICJCeSBkZWZhdWx0IGFsbCBuZXcgaXRlbXMgYXJlIHRheGFibGUiOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gIkRlbGV0ZSBhbnkgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBpdGVtIHdoZW4gdGhlIGl0ZW0gaXMgZGVsZXRlZD8iOwokbGFuZ1sncHJvbXB0X2RlbGltaXRlciddID0gIkZpZWxkIERlbGltaXRlciI7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gIkRlZmF1bHQgRGV0YWlsIFBhZ2UiOwokbGFuZ1sncHJvbXB0X2RldGFpbHNmb3InXSA9ICJEZXRhaWxzIGZvciAlcyI7CiRsYW5nWydwcm9tcHRfZHVwbGljYXRlcHJvZHVjdHMnXSA9ICJIb3cgdG8gaGFuZGxlIGR1cGxpY2F0ZSBpdGVtcz8iOwokbGFuZ1sncHJvbXB0X2ZhbHNlJ10gPSAiRmFsc2UiOwokbGFuZ1sncHJvbXB0X2hhbmRsZWltYWdlcyddID0gIkhhbmRsZSBpbWFnZXM/IjsKJGxhbmdbJ3Byb21wdF9oaWVycGFnZSddID0gIkRlZmF1bHQgUGFnZSBmb3IgSGllcmFyY2h5IFZpZXciOwokbGFuZ1sncHJvbXB0X2ltYWdlcGF0aCddID0gIkltYWdlIFBhdGgiOwokbGFuZ1sncHJvbXB0X2xlbmd0aHVuaXRzJ10gPSAiTGVuZ3RoIFVuaXRzIjsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF8zMDEnXSA9ICJHZW5lcmF0ZSBhIDMwMSByZWRpcmVjdCI7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfNDA0J10gPSAiR2VuZXJhdGUgYSA0MDQgZXJyb3IiOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX2JlaGF2aW9yJ10gPSAiV2hhdCBhY3Rpb24gc2hvdWxkIGJlIHRha2VuIHdoZW4gYW4gaXRlbSBjYW5ub3QgYmUgZGlzcGxheWVkPyI7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfZXJyb3Jtc2cnXSA9ICJEaXNwbGF5IGFuIGVycm9yIG1lc3NhZ2UiOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX21zZyddID0gIkVycm9yIG1lc3NhZ2UgZm9yIHdoZW4gYW4gaXRlbSBjYW5ub3QgYmUgZm91bmQiOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX3BhZ2UnXSA9ICJQYWdlIHRvIGRvIHBlcm1hbmVudCByZWRpcmVjdCB0bz8iOwokbGFuZ1sncHJvbXB0X3ByZXR0eWhpZXJ1cmxzJ10gPSAiVXNlIFByZXR0eSBVUkxTIHRvIEhpZXJhcmNoeSBWaWV3cyI7CiRsYW5nWydwcm9tcHRfcHJvZHVjdHNfbWF0Y2hpbmcnXSA9ICJJdGVtcyBtYXRjaGluZyAlcyI7CiRsYW5nWydwcm9tcHRfcHJvZF9kZXRhaWxwYWdlJ10gPSAiRGVmYXVsdCBQYWdlIGZvciBJdGVtIERldGFpbCBWaWV3cyI7CiRsYW5nWydwcm9tcHRfc2t1X3JlcXVpcmVkJ10gPSAiU0tVIGlzIHJlcXVpcmVkIGZvciBhbGwgaXRlbXMgYW5kIGF0dHJpYnV0ZXMiOwokbGFuZ1sncHJvbXB0X3NsdWd0ZW1wbGF0ZSddID0gJ1VSTCBTbHVnIFRlbXBsYXRlJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5cGFnZWxpbWl0J10gPSAiRGVmYXVsdCBwYWdlIGxpbWl0IGluIHN1bW1hcnkgbW9kZSI7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICJEZWZhdWx0IFNvcnQgRmllbGQgaW4gc3VtbWFyeSBtb2RlIjsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAiRGVmYXVsdCBTb3J0IE9yZGVyIGluIHN1bW1hcnkgbW9kZSI7CiRsYW5nWydwcm9tcHRfc3VtbWFyeV9uZXdkZWZhdWx0J10gPSAiVXNlIG5ldyBzdW1tYXJ5IHZpZXciOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAiVGVtcGxhdGUgU291cmNlIjsKJGxhbmdbJ3Byb21wdF90cnVlJ10gPSAiVHJ1ZSI7CiRsYW5nWydwcm9tcHRfdXJscHJlZml4J10gPSAiUHJlZml4IHRvIHVzZSBvbiBhbGwgVVJMUyB0YXJnZXRlZCB0byB0aGlzIHRoaXMgbW9kdWxlIjsKJGxhbmdbJ3Byb21wdF91c2VoaWVycGF0aHVybHMnXSA9ICJVc2UgSGllcmFyY2h5IFBhdGggaW4gSXRlbSBEZXRhaWwgVVJMUyI7CiRsYW5nWydwcm9tcHRfdXNlX2RldGFpbHBhZ2VfZm9yX3NlYXJjaCddID0gIlVzZSB0aGlzIHBhZ2UgZm9yIHNlYXJjaCByZXN1bHRzIHRvbyA8ZW0+KG92ZXJyaWRlcyB0aGUgc2VhcmNocmVzdWx0cyBwYWdlIHBhcmFtZXRlciBpbiB0aGUgc2VhcmNoIG1vZHVsZSk8L2VtPiI7CiRsYW5nWydwcm9tcHRfd2VpZ2h0dW5pdHMnXSA9ICJXZWlnaHQgVW5pdHMiOwokbGFuZ1sncHVibGljJ10gPSAiSXMgdGhpcyBhIHB1YmxpYyBmaWVsZD8iOwokbGFuZ1sncHVibGlzaGVkJ10gPSAiUHVibGlzaGVkIjsKCiMjIFEKJGxhbmdbJ3F1YW50aXR5X29uX2hhbmQnXSA9ICJRdWFudGl0eSBvbiBIYW5kIjsKCiMjIFIKJGxhbmdbJ3JhbmRvbSddID0gIlJhbmRvbSI7CiRsYW5nWydyZW9yZGVyJ10gPSAnUmVvcmRlcic7CiRsYW5nWydyZW9yZGVyX2hpZXJhcmNoeSddID0gIlJlb3JkZXIgSGllcmFyY2h5IjsKJGxhbmdbJ3Jlc2V0J10gPSAiUmVzZXQiOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICJSZXNldCB0byBGYWN0b3J5IFZhbHVlcyI7CiRsYW5nWydyZXR1cm4nXSA9ICJSZXR1cm4iOwokbGFuZ1sncmV0dXJuX3RvX3RvcCddID0gIlJldHVybiB0byB0aGUgdG9wIG9mIHRoZSB2aWV3IjsKJGxhbmdbJ3Jvb3QnXSA9ICJSb290IjsKCiMjIFMKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlcyddID0gIlNlYXJjaCBUZW1wbGF0ZXMiOwokbGFuZ1snc2VhcmNodGVtcGxhdGVfYWRkZWRpdCddID0gIkFkZC9FZGl0IFNlYXJjaCBGb3JtIFRlbXBsYXRlIjsKJGxhbmdbJ3NlYXJjaF9kZXNjcmlwdGlvbiddID0gIlNlYXJjaCBQcm9wZXJ0eSBEZXNjcmlwdGlvbiI7CiRsYW5nWydzZWFyY2hfZXhwciddID0gIlNob3VsZCB0aGUgcXVlcnkgbWF0Y2ggYWxsLCBvciBhbnkgb2YgdGhlIHRlc3RzIGJlbG93PyI7CiRsYW5nWydzZWFyY2hfbmFtZSddID0gIlNlYXJjaCBQcm9wZXJ0eSBOYW1lIjsKJGxhbmdbJ3NlYXJjaF9wcmljZSddID0gIlByaWNlIFJhbmdlIjsKJGxhbmdbJ3NlbGVjdF9hbGwnXSA9ICJTZWxlY3QgQWxsIjsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICJTZWxlY3QgT25lIjsKJGxhbmdbJ3NldGRpc2FibGVkJ10gPSAiU2V0IGFzIERpc2FibGVkIjsKJGxhbmdbJ3NldGRyYWZ0J10gPSAiU2V0IGFzIERyYWZ0IjsKJGxhbmdbJ3NldHB1Ymxpc2hlZCddID0gIlNldCBhcyBQdWJsaXNoZWQiOwokbGFuZ1snc2t1J10gPSAiU0tVIjsKJGxhbmdbJ3NvcnRfYnknXSA9ICJTb3J0IEJ5IjsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICJTb3J0IE9yZGVyIjsKJGxhbmdbJ3NvdXJjZSddID0gIlNvdXJjZSI7CiRsYW5nWydzdGF0dXMnXSA9ICJTdGF0dXMiOwokbGFuZ1snc3VibWl0J10gPSAiU3VibWl0IjsKJGxhbmdbJ3N1YnNjcmlwdGlvbiddID0gIlN1YnNjcmlwdGlvbiI7CiRsYW5nWydzdWJzY3JfZGVscGVyaW9kJ10gPSAiRGVsaXZlcnkgRnJlcXVlbmN5IjsKJGxhbmdbJ3N1YnNjcl9kZWxwZXJpb2QyJ10gPSAiRGVsaWV2ZXJlZCI7CiRsYW5nWydzdWJzY3JfZXhwaXJ5J10gPSAiRXhwaXJ5IjsKJGxhbmdbJ3N1YnNjcl9leHBpcnkyJ10gPSAiRXhwaXJlcyI7CiRsYW5nWydzdWJzY3JfbW9udGhseSddID0gIk1vbnRobHkiOwokbGFuZ1snc3Vic2NyX3BheXBlcmlvZCddID0gIlBheW1lbnQgRnJlcXVlbmN5IjsKJGxhbmdbJ3N1YnNjcl9wYXlwZXJpb2QyJ10gPSAiUGFpZCI7CiRsYW5nWydzdWJzY3JfcXVhcnRlcmx5J10gPSAiUXVhcnRlcmx5IjsKJGxhbmdbJ3N1YnNjcl9zZW1pYW51YWxseSddID0gIlNlbWkgQW51YWxseSI7CiRsYW5nWydzdWJzY3JfeWVhcmx5J10gPSAiWWVhcmx5IjsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICJTdW1tYXJ5IFRlbXBsYXRlcyI7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gIkFkZC9FZGl0IEEgU3VtbWFyeSBUZW1wbGF0ZSI7CgojIyBUCiRsYW5nWyd0YXhhYmxlJ10gPSAiVGF4YWJsZSI7CiRsYW5nWyd0ZXN0J10gPSAiVGVzdCI7CiRsYW5nWyd0ZXh0YXJlYSddID0gIlRleHQgQXJlYSI7CiRsYW5nWyd0ZXh0Ym94J10gPSAiVGV4dCBJbnB1dCI7CiRsYW5nWyd0aXRsZV9hZGp1c3RtZW50J10gPSAiVmFsaWQgdmFsdWVzIGFyZSBbb3BlcmF0b3JdW3ZhbHVlXS4gVmFsaWQgb3BlcmF0b3JzIGFyZSArLSo9IElmIG5vIG9wZXJhdG9yIGlzIHNwZWNpZmllZCwgKyBpcyBhc3N1bWVkLiAgVmFsdWVzIG11c3QgYmUgaW4gdGhlIGZvcm1hdCAjLiMjIChkb3QgaXMgdGhlIGRlY2ltYWwgc2VwYXJhdG9yKSI7CiRsYW5nWyd0aXRsZV9hdHRyaWJ1dGVfdGV4dCddID0gIkVudGVyIGEgYnJpZWYgZGVzY3JpcHRpb24gZm9yIHRoaXMgcHJvZHVjdCBvcHRpb24uICBUaGUgdGV4dCBtdXN0IGJlIHVuaXF1ZSBhbW9uZ3N0IGFsbCBvZiB0aGUgb3B0aW9ucyBmb3IgdGhpcyBwcm9kdWN0LiI7CiRsYW5nWyd0aXRsZV9ieWhpZXJhcmNoeV9kZmx0dGVtcGxhdGUnXSA9ICJQcm90b3R5cGUgSGllcmFyY2h5IFJlcG9ydCBUZW1wbGF0ZSI7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAiUHJvdG90eXBlIENhdGVnb3J5TGlzdCBUZW1wbGF0ZSI7CiRsYW5nWyd0aXRsZV9jZGF1dG9jb21wbGV0ZSddID0gIlRoaXMgZmllbGQgZXhwZWN0cyBhbiBpbnRlZ2VyIGNvbXBhbnkgSUQuICBJdCBpcyBhbiBhdXRvY29tcGxldGUgZmllbGQuIEVudGVyIHRoZSBmaXJzdCBmZXcgY2hhcmFjdGVycyBvZiBhIGNvbXBhbnkgbmFtZSBhbmQgc2VsZWN0IHRoZSBkZXNpcmVkIGVudHJ5IGZyb20gdGhlIG1hdGNoaW5nIGl0ZW1zLiAgVGhlIG1vcmUgY2hhcmFjdGVycyBlbnRlcmVkIHRoZSBmZXdlciByZXN1bHRzIHJldHVybmVkLiI7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAiUHJvdG90eXBlIERldGFpbCBUZW1wbGF0ZSI7CiRsYW5nWyd0aXRsZV9xb2gnXSA9ICJPcHRpb25hbGx5IHNwZWNpZnkgYSBxdWFudGl0eSBvbiBoYW5kIGZvciB0aGlzIHByb2R1Y3Qgb3B0aW9uLiAgTm90ZSBmb3IgcXVhbnRpdHkgYWRqdXN0bWVudHMgdG8gYmUgYXV0b21hdGljIHRoZSBTS1UgZmllbGQgbXVzdCBhbHNvIGJlIHBvcHVsYXRlZCI7CiRsYW5nWyd0aXRsZV9zZWFyY2hfZGZsdHRlbXBsYXRlJ10gPSAiUHJvdG90eXBlIFNlYXJjaCBUZW1wbGF0ZSI7CiRsYW5nWyd0aXRsZV9za3UnXSA9ICJUaGUgU0tVIGlzIHVzZWQgZm9yIG1hbmFnaW5nIHF1YW50aXR5IG9uIGhhbmQsIGFuZCBwcm9tb3Rpb25zIGZvciBwcm9kdWN0IG9wdGlvbnMuICBUaGUgU0tVIG11c3QgYmUgdW5pcXVlIGFjcm9zcyBhbGwgcHJvZHVjdHMgYW5kIG9wdGlvbnMgaW4gdGhlIHN5c3RlbS4iOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICJQcm90b3R5cGUgU3VtbWFyeSBUZW1wbGF0ZSI7CiRsYW5nWyd0eXBlJ10gPSAiVHlwZSI7CgojIyBVCiRsYW5nWyd1cCddID0gIk1vdmUgVXAiOwokbGFuZ1sndXBkYXRlJ10gPSAiVXBkYXRlIjsKJGxhbmdbJ3VwbG9hZCddID0gIlNlbGVjdCBhIGZpbGUgdG8gdXBsb2FkIjsKJGxhbmdbJ3VybF9hbGlhcyddID0gIlVSTCBBbGlhcyI7CiRsYW5nWyd1cmxfc2x1ZyddID0gJ1VSTCBTbHVnJzsKCiMjIFYKJGxhbmdbJ3ZhbGlkJ10gPSAiVmFsaWQiOwokbGFuZ1sndmFsdWUnXSA9ICJWYWx1ZSI7CiRsYW5nWyd2YWx1ZXMnXSA9ICJWYWx1ZXMiOwokbGFuZ1sndmlldyddID0gIlZpZXciOwokbGFuZ1sndmlld2FibGVfZmllbGRzJ10gPSAiU2VsZWN0IGN1c3RvbSBmaWVsZHMgdG8gdmlldyBpbiB0aGUgdGFibGUiOwoKIyMgVwokbGFuZ1snd2Fybl9lZGl0X3Byb2R1Y3Rfb3B0aW9ucyddID0gIkVhY2ggcHJvZHVjdCBvcHRpb24gbXVzdCBoYXZlIGEgdW5pcXVlIHN0cmluZy4gIElmIFNLVSBpcyByZXF1aXJlZCB0aGVuIGl0IG11c3QgYmUgdW5pcXVlIGFjcm9zcyB0aGUgZW50aXJlIHN5c3RlbS4iOwokbGFuZ1snd2F0ZXJtYXJrX2xvY2F0aW9uJ10gPSAiV2F0ZXJtYXJrIExvY2F0aW9uIjsKJGxhbmdbJ3dlaWdodCddID0gIldlaWdodCI7CiRsYW5nWyd3aXRoX3NlbGVjdGVkJ10gPSAiV2l0aCBTZWxlY3RlZCI7CgojIyBZCiRsYW5nWyd5ZXMnXSA9ICJZZXMiOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/cs_CZ.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZCddID0gJ1DFmWlkYXQnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdQxZlpZGF0IGthdGVnb3JpaSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ1DFmWlkYXQgcG9sZSc7CiRsYW5nWydhZGRwcm9kdWN0J10gPSAnUMWZaWRhdCBwcm9kdWt0JzsKJGxhbmdbJ2FkZF9hdHRyaWJfc2V0J10gPSAnUMWZaWRhdCB2bGFzdG5vc3QnOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnQWRkIEhpZXJhcmNoeSBJdGVtJzsKJGxhbmdbJ2FkZF9vcHRpb24nXSA9ICdQxZlpZGF0IGhvZG5vdHUgdmxhc3Rub3N0aSc7CiRsYW5nWydhZG1pbl9vbmx5J10gPSAnTSZhYWN1dGU7IHR1dG8gdmxhc3Rub3N0IHZpZMSbdCBwb3V6ZSBzcHImYWFjdXRlO3ZjZT8nOwokbGFuZ1snYWxsY2F0ZWdvcmllcyddID0gJ1Ymc2Nhcm9uO2VjaG55IGthdGVnb3JpZSc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnSnN0ZSBzaSBqaXN0aT8nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVwcm9kdWN0J10gPSAnQXJlIHlvdSBzdXJlIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBwcm9kdWN0LCBhbmQgYWxsIG9mIHRoZSBhY2NvbXBhbnlpbmcgaW5mb3JtYXRpb24gZm9yIGl0Pyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdWemVzdHVwbmUnOwokbGFuZ1snYXR0cmlidXRlX25hbWUnXSA9ICdOJmFhY3V0ZTt6ZXYgdmxhc3Rub3N0aSc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlcyddID0gJ0hpZXJhcmNoeSBSZXBvcnQgVGVtcGxhdGVzJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IEhpZXJhcmNoeSBSZXBvcnQgVGVtcGxhdGUnOwokbGFuZ1snY2FuY2VsJ10gPSAnWnJ1JnNjYXJvbjtpdCc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnS2F0ZWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnS2F0ZWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5ZXhpc3RzJ10gPSAnS2F0ZWdvcmllIHMgdCZpYWN1dGU7bXRvIG4mYWFjdXRlO3p2ZW0gdcW+IGV4aXN0dWplJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0NhdGVnb3J5TGlzdCBUZW1wbGF0ZXMnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IEEgQ2F0ZWdvcnlMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnQ2hlY2tib3gnOwokbGFuZ1snY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm9kZT8gIEFueSBwcm9kdWN0cyB0aGF0IGFyZSB1c2luZyB0aGlzIG5vZGUgd2lsbCBiZSBzZXQgdG8gbm8gaGllcmFyY2h5JzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRGF0dW0gdnl0dm/FmWVuJmlhY3V0ZTsnOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ0FrdHUmYWFjdXRlO2xuJmlhY3V0ZTsgZGF0dW0nOwokbGFuZ1snZGVmYXVsdHRlbXBsYXRlcyddID0gJ1YmeWFjdXRlO2Nob3omaWFjdXRlOyAmc2Nhcm9uO2FibG9uYSc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlX25vdGljZSddID0gJzxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhlIGNvbnRlbnRzIG9mIHRoZXNlIHRleHQgYXJlYXMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGNvbnRlbnQgb2YgdGVtcGxhdGVzIHdoZW4geW91IGNsaWNrICZxdW90O0FkZCBUZW1wbGF0ZSZxdW90OyBpbiB0aGUgYXBwcm9wcmlhdGUgdGVtcGxhdGUgdGFiLiAgRWRpdGluZyBvbmUgb2YgdGhlc2UgdGV4dCBhcmVhcyB3aWxsIGhhdmUgbm8gaW1tZWRpYXRlIGVmZmVjdCBvbiB5b3VyIHdlYnNpdGUuJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1Z5bWF6YXQnOwokbGFuZ1snZGVsZXRlX2F0dHJpYnNldCddID0gJ1pydSZzY2Fyb247aXQgdmxhc3Rub3N0JzsKJGxhbmdbJ2RlbGV0ZV9oaWVyYXJjaHlfaXRlbSddID0gJ0RlbGV0ZSBIaWVyYXJjaHkgSXRlbSc7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnU2VzdHVwbsSbJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnUG9waXMnOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFpbHknOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAnJlNjYXJvbjthYmxvbmEgZGV0YWlsdSc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnUMWZaWRhdC9VcHJhdml0ICZzY2Fyb247YWJsb251IGRldGFpbHUnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdOZWFrdGl2biZpYWN1dGU7JzsKJGxhbmdbJ2RyYWZ0J10gPSAnTiZhYWN1dGU7dnJoJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24nOwokbGFuZ1snZHJvcGRvd25fb3B0aW9ucyddID0gJ0Ryb3Bkb3duIE9wdGlvbnMgPGVtPihhcHBsaWNhYmxlIG9ubHkgZm9yIGRyb3Bkb3duIGZpZWxkcyk8L2VtPjxici8+PGJyLz48ZW0+KG9uZSBlbnRyeSBwZXIgbGluZSk8L2VtPic7CiRsYW5nWydlZGl0J10gPSAnRWRpdCc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICdFZGl0IEF0dHJpYnV0ZSBTZXRzJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0c19mb3InXSA9ICdFZGl0IEF0dHJpYnV0ZSBTZXRzIEZvcic7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdFZGl0IEF0dHJpYnV0ZXMnOwokbGFuZ1snZWRpdF9oaWVyYXJjaHlfaXRlbSddID0gJ0VkaXQgSGllcmFyY2h5IEl0ZW0nOwokbGFuZ1snZXJyb3JfYXR0cmlic2V0X2V4aXN0cyddID0gJ0FuIGF0dHJpYnV0ZSB3aXRoIHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnSW52YWxpZCBQYXJlbnQgKGEgaGllcmFyY2h5IG5vZGUgY2Fubm90IGJlIGl0JiMwMzk7cyBvd24gcGFyZW50KSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX25hbWUnXSA9ICdUaGUgY3VzdG9tIGZpZWxkIHZhbHVlIGVudGVyZWQgaXMgaW52YWxpZCAoY29udGFpbnMgbm9uIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzKSc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdBIHJlcXVpcmVkIHBhcmFtZXRlciBpcyBtaXNzaW5nIG9yIGludmFsaWQnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9uYW1ldXNlZCddID0gJ1Byb2R1a3QgcyB0JmlhY3V0ZTttdG8gbiZhYWN1dGU7enZlbSB1xb4gZXhpc3R1amUnOwokbGFuZ1snZXJyb3JfcHJpY2VfYWRqdXN0bWVudCddID0gJ0ludmFsaWQgcHJpY2UgYWRqdXN0bWVudCB2YWx1ZSBmb3IgaXRlbSAlcyc7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnVXBsb2FkIGZhaWxlZDogJXMnOwokbGFuZ1snZmllbGQnXSA9ICdQb2xlJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRGVmaW5pY2UgcG9sZSc7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdEZWZpbmljZSBwb2wmaWFjdXRlOyc7CiRsYW5nWydmaWxlJ10gPSAnU291Ym9yJzsKJGxhbmdbJ2ZpbHRlcnMnXSA9ICdGaWx0cnknOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snaGllcmFyY2h5J10gPSAnSGllcmFyY2h5JzsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gJ0hpZXJhcmNoeSBQb3NpdGlvbic7CiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ09iciZhYWN1dGU7emVrJzsKJGxhbmdbJ2luY2x1ZGVfY2hpbGRyZW4nXSA9ICdJbmNsdWRlIENoaWxkcmVuPyc7CiRsYW5nWydpbmZvX2FsbnVtb25seSddID0gJ09ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMuIE5vIHdoaXRlc3BhY2UsIHF1b3Rlcywgb3Igbm9uIGxldHRlci9udW1iZXIgY29tYmluYXRpb25zJzsKJGxhbmdbJ2luZm9fZmllbGRwcm9ibGVtcyddID0gJ1Byb2JsZW1zIHdlcmUgZW5jb3VudGVyZWQgd2hlbiBkZWFsaW5nIHdpdGggb25lIG9yIG1vcmUgY3VzdG9tIGZpZWxkcy4gIFRoZSBhY3Rpb24gaGFzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHksIGhvd2V2ZXIgeW91IHNob3VsZCBpbnZlc3RpZ2F0ZSBhbmQgY29ycmVjdCB0aGVzZSBwcm9ibGVtcyc7CiRsYW5nWydpbmZvX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdWYWxpZCB2YWx1ZXMgYXJlICstKiMuIyMnOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gJ1B1YmxpYyBmaWVsZHMgYXJlIGF2YWlsYWJsZSBmb3IgdGhlIHB1YmxpYyB0byBzZWUnOwokbGFuZ1snbGFiZWwnXSA9ICdQb3Bpcyc7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xhc3RfbW9kaWZpZWQnXSA9ICdQb3NsZWRuJmlhY3V0ZTsgem3Em25hJzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnRHJ1aCZ5YWN1dGU7IG9iciZhYWN1dGU7emVrJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ01heGltdW0gbGVuZ3RoIDxlbT4oYXBwbGljYWJsZSBvbmx5IG9uIHRleHRib3ggZmllbGRzKTwvZW0+JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ1ptxJtuxJtubyBkbmUnOwokbGFuZ1snbW9kdWxlX2Rlc2NyaXB0aW9uJ10gPSAnQSBtb2R1bGUgZm9yIG1hbmFnaW5nIGEgY2F0YWxvZyBvZiBwcm9kdWN0cywgdGhlaXIgcHJpY2UsIGltYWdlcywgZXRjLCBhbmQgZm9yIGFsbG93aW5nIHVzZXJzIHRvIGJ1aWxkIGEgY2FydCc7CiRsYW5nWyduYW1lJ10gPSAnTiZhYWN1dGU7emV2JzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnTmVtJmFhY3V0ZTt0ZSBwb8W+YWRvdmFuJmVhY3V0ZTsgb3ByJmFhY3V0ZTt2bsSbbiZpYWN1dGU7OiAlcyc7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICdObyBuYW1lIHdhcyBzdXBwbGllZCc7CiRsYW5nWydub25lJ10gPSAnTm9uZSc7CiRsYW5nWydvZiddID0gJ3onOwokbGFuZ1sncGFnZSddID0gJ1N0ciZhYWN1dGU7bmthJzsKJGxhbmdbJ3BhZ2Vfb2YnXSA9ICdTdHImYWFjdXRlO25rYSAlcyB6ICVzJzsKJGxhbmdbJ3BhZ2VfbGltaXQnXSA9ICdQYWdlIExpbWl0JzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ1NwZWNpZnkgdGhlIGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPmhpZXJhcmNoeSAtLSBEaXNwbGF5IGEgcHJvZHVjdCBsaXN0IGJ5IGhpZXJhcmNoeTwvbGk+DQogIDxsaT5jYXRlZ29yeWxpc3QgLSBEaXNwbGF5IGEgbGlzdCBvZiBwcm9kdWN0IGNhdGVnb3JpZXM8L2xpPg0KICA8bGk+PGVtPmRlZmF1bHQ8L2VtPiAtIERpc3BsYXkgYSBzdW1tYXJ5IG9mIHByb2R1Y3RzPC9saT4NCiAgPGxpPmRldGFpbCAtIERpc3BsYXkgYSBkZXRhaWwgdmlldyBvZiBhIHNpbmdsZSBwcm9kdWN0PC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnV2hlbiB1c2VkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIsIHdoaWNoIHNob3VsZCBtYXRjaCB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyBjYXRlZ29yeSB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBvbmx5IHRob3NlIGNvbXBhbmllcyB0aGF0IGFyZSBpbiB0aGF0IGNhdGVnb29yeS4gKGEgY29tbWEgc2VwZXJhdGVkIGxpc3QgY2FuIGJlIHN1cHBsaWVkKSc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnVGhpcyBzcGVjaWZpZXMgdGhlIHBhZ2VpZCBvciBhbGlhcyB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIGRldGFpbCByZXBvcnQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGV0YWlsIG1vZGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHknXSA9ICdVc2VmdWwgb25seSBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGF0IG9ubHkgaXRlbXMgaW4gdGhhdCBsb2NhdGlvbiBvZiB0aGUgaGllcmFyY2h5IHNob3VsZCBiZSBkaXNwbGF5ZWQuICBXaWxkY2FyZCBjaGFyYWN0ZXIgY2FuIGJlIHVzZWQgc28gdGhhdCB5b3UgY2FuIHNwZWNpZnkgcGFyZW50L2NoaWxkIHJlbGF0aW9uc2hpcHMgYXMgd2VsbC4gIGkuZSB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5O3RydWNrcyomIzAzOTt9IHdpbGwgY3JlYXRlIGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgaW5jbHVkaW5nIHRoZSBjaGlsZHJlbiBpbiB0aGUgaGllcmFyY2h5LiAgU2ltaWxhcmx5LCB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5Oyp0cnVja3MmIzAzOTt9IHdpbGwgZGlzcGxheSBhIHN1bW1hcnkgcmVwb3J0IG9mIGFsbCB0cnVja3MsIGFuZCBhbGwgcHJvZHVjdHMgYmVsb2dpbmcgdG8gYW55IHBhcmVudCBpbiB0aGUgaGllcmFyY2h5Lic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGhpZXJhcmNoeSBkaXNwbGF5LiBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1fcGFnZWxpbWl0J10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBob3cgbWFueSBpdGVtcyBzaG91bGQgYmUgbGlzdGVkIG9uIGVhY2ggcGFnZS4nOwokbGFuZ1sncGFyYW1fcGFyZW50J10gPSAnVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5oaWVyYXJjaHk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgaGllcmFyY2h5IGlkIG9mIHRoZSBzdGFydGluZyBsb2NhdGlvbiBvZiB0aGUgcmVwb3J0Lic7CiRsYW5nWydwYXJhbV9wcm9kdWN0aWQnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSBkZXRhaWwgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgd2hhdCBwcm9kdWN0IHRvIHVzZSBmb3IgdGhlIGRpc3BsYXkuJzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ1NwZWNpZnkgdGhlIG9yZGVyIG9mIHNvcnRlZCBmaWVsZHMgaW4gc3VtbWFyeSB2aWV3LiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIEFzY2VuZGluZyBvcmRlcjwvbGk+DQogIDxsaT5kZXNjIC0tIERlc2NlbmRpbmcgb3JkZXI8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnQXBwbGljYWJsZSBvbmx5IGluIHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgZGV0ZXJtaW5lcyB0aGUgc29ydGluZyBvZiB0aGUgb3V0cHV0IGNvbXBhbmllcy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPnByb2R1Y3RfbmFtZTwvc3Ryb25nPjwvbGk+DQogIDxsaT5wcmljZSAtLSBUaGUgcHJvZHVjdCBiYXNlIHByaWNlPC9saT4NCiAgPGxpPnN0YXR1cyAtLSBEcmFmdCBvciBwdWJsaXNoZWQ8L2xpPg0KICA8bGk+cmFuZG9tIC0tIERpc3BsYXkgaW4gcmFuZG9tIG9yZGVyIG9uIGVhY2ggcmVxdWVzdDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIHN1bW1hcnkgbW9kZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmVudCddID0gJ1BhcmVudCc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1RoZSBQcm9kdWN0cyBtb2R1bGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZCc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnVGhlIFByb2R1Y3RzIG1vZHVsZSBoYXMgYmVlbiByZW1vdmVkIGFsb25nIHdpdGggYWxsIGFzc29jaWF0ZWQgZGF0YSc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1ByZWZlcmVuY2VzJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ1JlbW92aW5nIHRoaXMgbW9kdWxlIHdpbGwgYWxzbyByZW1vdmUgYWxsIGFzc29jaWF0ZWQgZGF0YSwgYXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHByb2NlZWQ/JzsKJGxhbmdbJ3ByaWNlJ10gPSAnQ2VuYSc7CiRsYW5nWydwcmljZV9hZGp1c3RtZW50J10gPSAnTmFzdGF2ZW4maWFjdXRlOyBjZW55JzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCc7CiRsYW5nWydwcm9kdWN0J10gPSAnUHJvZHVrdCc7CiRsYW5nWydwcm9kdWN0bmFtZSddID0gJ04mYWFjdXRlO3pldiBwcm9kdWt0dSc7CiRsYW5nWydwcm9kdWN0cyddID0gJ1Byb2R1a3R5JzsKJGxhbmdbJ3Byb2R1Y3RfaGllcmFyY2h5J10gPSAnUHJvZHVjdCBIaWVyYXJjaHknOwokbGFuZ1sncHJvZHVjdF9tYW5hZ2VyJ10gPSAnUHJvZHVjdCBNYW5hZ2VyJzsKJGxhbmdbJ3Byb21wdCddID0gJ1Byb21wdCc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnXSA9ICdBbGxvdyB1cGxvYWQgb2YgZmlsZXMgd2l0aCB0aGVzZSBleHRlbnNpb25zIChmb3IgZmlsZSB0eXBlIGZpZWxkcyknOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2V0eXBlcyddID0gJ0FsbG93IHVwbG9hZCBvZiBpbWFnZXMgd2l0aCB0aGVzZSBleHRlbnNpb25zIChmb3IgaW1hZ2UgdHlwZSBmaWVsZHMpJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsJ10gPSAnQXV0b21hdGljYWxseSBjcmVhdGUgdGh1bWJuYWlscyBvZiBpbWFnZXMnOwokbGFuZ1sncHJvbXB0X2FwcGxpY2FibGUnXSA9ICdFbmFibGUgYnkgZGVmYXVsdCBmb3IgYWxsIG5ldyBwcm9kdWN0cyc7CiRsYW5nWydwcm9tcHRfY3VycmVuY3lzeW1ib2wnXSA9ICdTeW1ib2wgbcSbbnknOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gJ0RlbGV0ZSBhbnkgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm9kdWN0IHdoZW4gdGhlIHByb2R1Y3QgaXMgZGVsZXRlZD8nOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdEZWZhdWx0IERldGFpbCBQYWdlJzsKJGxhbmdbJ3Byb21wdF90YXhyYXRlJ10gPSAnViZ5YWN1dGU7JnNjYXJvbjtlIGRhbsSbJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnRGVmYXVsdCBTb3J0IE9yZGVyIGluIHN1bW1hcnkgbW9kZSc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICdEZWZhdWx0IFNvcnQgRmllbGQgaW4gc3VtbWFyeSBtb2RlJzsKJGxhbmdbJ3Byb21wdF90YXgxJ10gPSAnUHJ2biZpYWN1dGU7IGRhxYgnOwokbGFuZ1sncHJvbXB0X3RheDInXSA9ICdEcnVoJmFhY3V0ZTsgZGHFiCc7CiRsYW5nWydwcm9tcHRfdGF4bmFtZSddID0gJ04mYWFjdXRlO3pldiBkYW7Emyc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBTb3VyY2UnOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnSmVkbm90a2EgdiZhYWN1dGU7aHknOwokbGFuZ1sncHVibGljJ10gPSAnSXMgdGhpcyBhIHB1YmxpYyBmaWVsZD8nOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnWnZlxZllam7Em25vJzsKJGxhbmdbJ3JhbmRvbSddID0gJ1JhbmRvbSc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1Jlc2V0IHRvIEZhY3RvcnkgVmFsdWVzJzsKJGxhbmdbJ3Jvb3QnXSA9ICdSb290JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlY3QgT25lJzsKJGxhbmdbJ3NvcnRfYnknXSA9ICfFmGF6ZW5vIHBvZGxlJzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdTb3J0IE9yZGVyJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyc7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJyZTY2Fyb247YWJsb25hIHDFmWVobGVkdSc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IEEgU3VtbWFyeSBUZW1wbGF0ZSc7CiRsYW5nWyd0YXhhYmxlJ10gPSAnWmRhbml0ZWxuJmVhY3V0ZTsnOwokbGFuZ1sndGF4X21vZHVsZSddID0gJ1RheCBNb2R1bGUnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZXh0IEFyZWEnOwokbGFuZ1sndGV4dGJveCddID0gJ1RleHQgSW5wdXQnOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBOZXcgSGllcmFyY2h5IFJlcG9ydCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBOZXcgQ2F0ZWdvcnlMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdOb3YmYWFjdXRlOyB2JnlhY3V0ZTtjaG96JmlhY3V0ZTsgJnNjYXJvbjthYmxvbmEgZGV0YWlsdSc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ05vdiZhYWN1dGU7IHYmeWFjdXRlO2Nob3omaWFjdXRlOyAmc2Nhcm9uO2FibG9uYSBwxZllaGxlZHUnOwokbGFuZ1sndHlwZSddID0gJ1R5cCc7CiRsYW5nWyd1cGRhdGUnXSA9ICdBa3R1YWxpem92YXQnOwokbGFuZ1sndXBsb2FkJ10gPSAnVnliZXJ0ZSBzb3Vib3IgayBuYWhyJmFhY3V0ZTtuJmlhY3V0ZTsnOwokbGFuZ1sndmFsdWUnXSA9ICdIb2Rub3RhJzsKJGxhbmdbJ3ZhbHVlcyddID0gJ0hvZG5vdHknOwokbGFuZ1snd2VpZ2h0J10gPSAnViZhYWN1dGU7aGEnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xODEyNDQ2OTI3LjEyMDEyNTAyMzAuMTIxMDkzMDYwOC4xMjEwOTM2NzE0LjI5JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIxMDUzOTQwNS4yNS4xOC51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9ZWxla3Ryb2tvbXBsZXguY29tfHV0bWNjdD0vY21zL2FkbWluL2FkZGNvbnRlbnQucGhwfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/da_DK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZCddID0gJ1RpbGYmb3NsYXNoO2onOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdUaWxmJm9zbGFzaDtqIGVuIGthdGVnb3JpJzsKJGxhbmdbJ2FkZGZpZWxkZGVmJ10gPSAnVGlsZiZvc2xhc2g7aiBldCBmZWx0JzsKJGxhbmdbJ2FkZHByb2R1Y3QnXSA9ICdUaWxmJm9zbGFzaDtqIGV0IHByb2R1a3QnOwokbGFuZ1snYWRkX2F0dHJpYl9zZXQnXSA9ICdUaWxmJm9zbGFzaDtqIGVuIGVnZW5za2FiJzsKJGxhbmdbJ2FkZF9oaWVyYXJjaHlfaXRlbSddID0gJ0Ymb3NsYXNoO2ogZXQgZWxlbWVudCB0aWwgaGllcmFya2lldCc7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAnRiZvc2xhc2g7aiBlbiB2YWxnbXVsaWdoZWQgdGlsIGVuIGVnZW5za2FiJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdFciBkZXQga3VuIGFkbWluaXN0cmF0b3Jlciwgc29tIG0mYXJpbmc7IHNlIGRlbm5lIGVnZW5za2FiPyc7CiRsYW5nWydhbGxjYXRlZ29yaWVzJ10gPSAnQWxsZSBrYXRlZ29yaWVyJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdFciBkdSBzaWtrZXI/JzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlcHJvZHVjdCddID0gJ0VyIGR1IGhlbHQgc2lra2VyIHAmYXJpbmc7LCBhdCBkdSB2aWwgc2xldHRlIGRldHRlIHByb2R1a3Qgc2FtdCBhbGxlIGRlIGluZm9ybWF0aW9uZXIsIHNvbSBlciBrbnl0dGV0IHRpbCBkZXQ/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ1N0aWdlbmRlIG9yZGVuJzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnRWdlbnNrYWJlbnMgbmF2bic7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlcyddID0gJ1NrYWJlbG9uIHRpbCBoaWVyYXJraS1yYXBwb3J0JzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVfYWRkZWRpdCddID0gJ1RpbGYmb3NsYXNoO2ovcmV0IHNrYWJlbG9uIHRpbCBoaWVyYXJraS1yYXBwb3J0JzsKJGxhbmdbJ2NhbmNlbCddID0gJ0ZvcnRyeWQnOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpZXInOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdLYXRlZ29yaSc7CiRsYW5nWydjYXRlZ29yeWV4aXN0cyddID0gJ0RlciBmaW5kZXMgYWxsZXJlZGUgZW4ga2F0ZWdvcmkgbWVkIGRldCBuYXZuJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0thdGVnb3JpbGlzdGUtc2thYmVsb25lcic7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnVGlsZiZvc2xhc2g7ai9yZXQga2F0ZWdvcmlsaXN0ZS1za2FiZWxvbic7CiRsYW5nWydjaGVja2JveCddID0gJ1RqZWtib2tzJzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX2hpZXJhcmNoeV9ub2RlJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7LCBhdCBkdSB2aWwgc2xldHRlIGRldHRlIHB1bmt0PyBQcm9kdWt0ZXIgc29tIGgmb3NsYXNoO3JlciBpbmQgdW5kZXIgZGV0dGUgcHVua3QgdmlsIGhlbHQgbWlzdGUgZGVyZXMgcGxhZHMgaSBoaWVyYXJraWV0JzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnT3ByZXR0ZWxzZXNkYXRvJzsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICdOdXYmYWVsaWc7cmVuZGUgdiZhZWxpZztyZGknOwokbGFuZ1snZGVmYXVsdHRlbXBsYXRlcyddID0gJ1N0YW5kYXJkc2thYmVsb25lcic7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlX25vdGljZSddID0gJzxzdHJvbmc+QmVtJmFlbGlnO3JrOjwvc3Ryb25nPiBJbmRob2xkZXQgYWYgZGlzc2UgdGVrc3Rib2tzZSBicnVnZXMgdGlsIGF0IGJlc3RlbW1lIGRldCBpbmRob2xkIHNvbSB2aXNlcyBpIHNrYWJlbG9uZW4sIG4mYXJpbmc7ciBkdSBrbGlra2VyIHAmYXJpbmc7ICZxdW90O1RpbGYmb3NsYXNoO2ogc2thYmVsb24mcXVvdDsgaSBkZW4gZ2l2bmUgc2thYmVsb25mYW5lLiAgUmV0dGVsc2VyIGkgZW4gYWYgZGlzc2UgdGVrc3Rib2tzZSB2aWwgaWtrZSBoYXZlIG5vZ2VuIHVtaWRkZWxiYXIgYmV0eWRuaW5nIGZvciBkaW4gaGplbW1lc2lkZS4nOwokbGFuZ1snZGVsZXRlJ10gPSAnU2xldCc7CiRsYW5nWydkZWxldGVfYXR0cmlic2V0J10gPSAnU2xldCBlZ2Vuc2thYic7CiRsYW5nWydkZWxldGVfaGllcmFyY2h5X2l0ZW0nXSA9ICdGamVybiBlbGVtZW50IGZyYSBoaWVyYXJraWV0JzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdGYWxkZW5kZSc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Jlc2tyaXZlbHNlJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdEZXRhbGplcic7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdEZXRhbGplLXNrYWJlbG9uJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdUaWxmJm9zbGFzaDtqL3JldCBlbiBkZXRhbGplLXNrYWJlbG9uJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnU2wmYXJpbmc7ZXQgZnJhJzsKJGxhbmdbJ2RyYWZ0J10gPSAnS2xhZGRlJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnVmFsZ2Jva3MnOwokbGFuZ1snZHJvcGRvd25fb3B0aW9ucyddID0gJ1ZhbGdtdWxpZ2hlZGVyIDxlbT4oYW52ZW5kZXMga3VuIGkgdmFsZ2Jva3NlKTwvZW0+PGJyLz48YnIvPjxlbT4oZW4gdmFsZ211bGlnaGVkIHBlciBsaW5qZSk8L2VtPic7CiRsYW5nWydlZGl0J10gPSAnUmV0JzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0cyddID0gJ1JldCBlZ2Vuc2thYnNzJmFlbGlnO3QnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzX2ZvciddID0gJ1JldCBlZ2Vuc2thYnNzJmFlbGlnO3QgZm9yJzsKJGxhbmdbJ2VkaXRfYXR0cmlidXRlcyddID0gJ1JldCBlZ2Vuc2thYmVyJzsKJGxhbmdbJ2VkaXRfaGllcmFyY2h5X2l0ZW0nXSA9ICdSZXQgZWxlbWVudCBpIGhpZXJhcmtpZXQnOwokbGFuZ1snZXJyb3JfYXR0cmlic2V0X2V4aXN0cyddID0gJ0RlciBmaW5kZXMgYWxsZXJlZGUgZW4gZWdlbnNrYWIgbWVkIGRldCBuYXZuJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJlbnQnXSA9ICdJbnZhbGlkIFBhcmVudCAoYSBoaWVyYXJjaHkgbm9kZSBjYW5ub3QgYmUgaXQmIzAzOTtzIG93biBwYXJlbnQpJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfbmFtZSddID0gJ0RlbiBpbmR0YXN0ZWRlIHYmYWVsaWc7cmRpIGkgZGV0IGJydWdlcmRlZmluZXJlZGUgZmVsdCBlciB1Z3lsZGlnIChhbGxlIHRlZ24gc2thbCB2JmFlbGlnO3JlIGFsZmFudW1lcmlza2UpJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0VuIHAmYXJpbmc7a3ImYWVsaWc7dmV0IHBhcmFtZXRlciBtYW5nbGVyIGVsbGVyIGVyIHVneWxkaWcnOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdWJmFlbGlnO2xnIHZlbmxpZ3N0IGVuIGZlbHR0eXBlJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdEZXIgZmluZGVzIGFsbGVyZWRlIGV0IHByb2R1a3QgbWVkIGRldCBuYXZuJzsKJGxhbmdbJ2Vycm9yX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdWJmFlbGlnO3JkaWVuIHRpbCBqdXN0ZXJpbmcgYWYgcHJpc2VuIGZvciBlbGVtZW50ZXQgJXMgZXIgdWd5bGRpZyc7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnVXBsb2FkIG1pc2x5a2tlZGVzOiAlcyc7CiRsYW5nWydmaWVsZCddID0gJ0ZlbHQnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdGZWx0ZGVmaW5pdGlvbic7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdGZWx0ZGVmaW5pdGlvbmVyJzsKJGxhbmdbJ2ZpbGUnXSA9ICdGaWwnOwokbGFuZ1snZmlsdGVycyddID0gJ0ZpbHRyZSc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICcmYW1wO2x0OyZhbXA7bHQ7JzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0hpZXJhcmtpJzsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gJ0hpZXJhcmtpLXBsYWNlcmluZyc7CiRsYW5nWydpZCddID0gJ0lEJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ0JpbGxlZGUnOwokbGFuZ1snaW5jbHVkZV9jaGlsZHJlbiddID0gJ1NrYWwgdW5kZXJwdW5rdGVyIGlua2x1ZGVyZXM/JzsKJGxhbmdbJ2luZm9fYWxudW1vbmx5J10gPSAnS3VuIGFscGhhbnVtbWVyaXNrZSB0ZWduLiBJbmdlbiBtZWxsZW1ydW0sIGcmYXJpbmc7c2Umb3NsYXNoO2puZSwgZWxsZXIga29tYmluYXRpb25lciBhZiBpa2tlLWJvZ3N0YXZlci90YWwnOwokbGFuZ1snaW5mb19maWVsZHByb2JsZW1zJ10gPSAnRGVyIG9wc3RvZCBwcm9ibGVtZXIgdmVkciZvc2xhc2g7cmVuZGUgZXQgZWxsZXIgZmxlcmUgYnJ1Z2VyZGVmaW5lcmVkZSBmZWx0ZXIuIFNlbHZvbSBoYW5kbGluZ2VuIGVyIGJsZXZldCB1ZGYmb3NsYXNoO3J0LCBiJm9zbGFzaDtyIGR1IHVuZGVycyZvc2xhc2g7Z2Ugb2cgcmV0dGUgZGlzc2UgcHJvYmxlbWVyJzsKJGxhbmdbJ2luZm9fcHJpY2VfYWRqdXN0bWVudCddID0gJ0d5bGRpZ2UgdiZhZWxpZztyZGllciBvbWZhdHRlciArLSojLiMjJzsKJGxhbmdbJ2luZm9fcHVibGljZmllbGQnXSA9ICdPZmZlbnRsaWdlIGZlbHRlciBrYW4gc2VzIGFmIG9mZmVudGxpZ2hlZGVuJzsKJGxhbmdbJ2xhYmVsJ10gPSAnRXRpa2V0JzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnJmFtcDtndDsmYW1wO2d0Oyc7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnU2VuZXN0ICZhZWxpZztuZHJldCc7CiRsYW5nWydsb2dvdGV4dCddID0gJ0JpbGxlZCBuci4gdG8nOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4aW11bSB0ZWduIDxlbT4oZyZhZWxpZztsZGVyIGt1biBmb3IgdGVrc3Rib2tzZSk8L2VtPic7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICcmQUVsaWc7bmRyaW5nc2RhdG8nOwokbGFuZ1snbW9kdWxlX2Rlc2NyaXB0aW9uJ10gPSAnRXQgbW9kdWwgdGlsIGgmYXJpbmc7bmR0ZXJpbmcgYWYgcHJvZHVrdGVyIGkgZXQga2F0YWxvZyAtIHByaXNlciwgYmlsbGVkZXIsIGV0Yy4gLSBvZyB0aWwgYXQgZ2l2ZSBicnVnZXJlIG11bGlnaGVkIGZvciBhdCBrJm9zbGFzaDtiZSBpbmQnOwokbGFuZ1snbmFtZSddID0gJ05hdm4nOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdEdSBoYXIgaWtrZSBkZW4gcCZhcmluZztrciZhZWxpZzt2ZWRlIHRpbGxhZGVsc2U6ICVzJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnJmFtcDtndDsnOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICdEZXIgYmxldiBpa2tlIGFuZ2l2ZXQgbm9nZXQgbmF2bic7CiRsYW5nWydub25lJ10gPSAnSW5nZW4nOwokbGFuZ1snb2YnXSA9ICdBZic7CiRsYW5nWydwYWdlJ10gPSAnU2lkZSc7CiRsYW5nWydwYWdlX29mJ10gPSAnU2lkZSAlcyBhZiAlcyc7CiRsYW5nWydwYWdlX2xpbWl0J10gPSAnTWF4LiBwZXIgc2lkZSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcGVjaWZpY2VyIGh2b3JkYW4gbW9kdWxldCBza2FsIHZpc2UgcHJvZHVrdGVybmUuIE11bGlnZSB2JmFlbGlnO3JkaWVyIGVyOg0KPHVsPg0KICA8bGk+aGllcmFyY2h5IC0tIFZpcyBlbiBoaWVyYXJraXNrIHByb2R1a3RsaXN0ZTwvbGk+DQogIDxsaT5jYXRlZ29yeWxpc3QgLSBWaXMgZW4gbGlzdGUgb3ZlciBwcm9kdWt0a2F0ZWdvcmllcjwvbGk+DQogIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gVmlzIHByb2R1a3RyZXN1bWVlciAoc3RhbmRhcmQpPC9saT4NCiAgPGxpPmRldGFpbCAtIFZpcyBkZW4gZnVsZGUgYmVza3JpdmVsc2UgYWYgZXQgcHJvZHVrdDwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ1ZlZCBhbnZlbmRlbHNlIHNhbW1lbiBtZWQgcHJvZHVrdHJlc3VtZWVyIChodmlsa2V0IGVyIHN0YW5kYXJkdmlzbmluZ3N0eXBlbiksIHZpbCBkZXR0ZSBwYXJhbWV0ZXIsIHNvbSBiJm9zbGFzaDtyIHN0ZW1tZSBvdmVyZW5zIG1lZCBlbiBla3Npc3RlcmVuZGUga2F0ZWdvcmksIGJsaXZlIGJydWd0IHRpbCBrdW4gYXQgdmlzZSBkZSBwcm9kdWt0ZXIsIHNvbSBiZWZpbmRlciBzaWcgaSBkZW4gYW5naXZuZSBrYXRlZ29yaS4gKEthdGVnb3JpZXIga2FuIGFuZ2l2ZXMgcCZhcmluZzsgZW4gbGlzdGUgYWRza2lsdCBhZiBrb21tYWVyKSc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJ0RldHRlIHBhcmFtZXRlciwgc29tIGt1biBrYW4gYnJ1Z2VzIHNhbW1lbiBtZWQgdmlzbmluZyBhZiBrYXRlZ29yaWxpc3RlLCBhbmdpdmVyIGh2aWxrZW4gc2thYmVsb24gZGVyIHNrYWwgYnJ1Z2VzIGkgZm9yYmluZGVsc2UgbWVkIHZpc25pbmdlbi4gQW5naXZlcyBkZXIgaW5nZW4gdiZhZWxpZztyZGkgYnJ1Z2VzIGRlbiBzdGFuZGFyZHNrYWJlbG9uLCBzb20gcC50LiBlciB2YWxndCBmb3IgdmlzbmluZ3N0eXBlbi4nOwokbGFuZ1sncGFyYW1fZGV0YWlscGFnZSddID0gJ0RldHRlIGFuZ2l2ZXIgaWQgZWxsZXIgYWxpYXMgcCZhcmluZzsgZGVuIHNpZGUsIHNvbSBza2FsIGJydWdlcyB0aWwgdmlzbmluZyBhZiBkZW4gZnVsZGUgYmVza3JpdmVsc2UgYWYgZXQgcHJvZHVrdC4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdEZXR0ZSBwYXJhbWV0ZXIgYW5naXZlciwgaHZpbGtlbiBza2FiZWxvbiBkZXIgc2thbCBicnVnZXMgdGlsIHZpc25pbmcgYWYgZGVuIGZ1bGRlIHByb2R1a3RiZXNrcml2ZWxzZS4gIEFuZ2l2ZXMgZGVyIGluZ2VuIHYmYWVsaWc7cmRpIGJydWdlcyBkZW4gc3RhbmRhcmRza2FiZWxvbiwgc29tIHAudC4gZXIgdmFsZ3QgZm9yIHZpc25pbmdzdHlwZW4uJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeSddID0gJ0RldHRlIHBhcmFtZXRlciwgc29tIGt1biBrYW4gYnJ1Z2VzIHNhbW1lbiBtZWQgcHJvZHVrdHJlc3VtZWVyIChzdGFuZGFyZHZpc25pbmcpLCBzcGVjaWZpY2VyZXIgYXQga3VuIGRlIGVsZW1lbnRlciwgc29tIGJlZmluZGVyIHNpZyBwJmFyaW5nOyBkZXR0ZSBiZXN0ZW10ZSBzdGVkIGkgaGllcmFya2lldCwgc2thbCB2aXNlcy4gRGVyIGthbiBhbnZlbmRlcyBqb2tlcnRlZ24sIHMmYXJpbmc7bGVkZXMgYXQgZHUgb2dzJmFyaW5nOyBrYW4gc3BlY2lmaWNlcmUgYmVzdGVtdGUgcmVsYXRpb25lciBtZWxsZW0gaG92ZWQgLW9nIHVuZGVycHVua3Rlci4gRi5la3MuIHZpbCB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5O2xhc3RiaWxlciomIzAzOTt9IHJlc3VsdGVyZSBpIGVuIG9wc3VtbWVyaW5nc3JhcHBvcnQsIGRlciB2aXNlciBhbGxlIGxhc3RiaWxlci4gUmFwcG9ydGVuIGlua2x1ZGVyZXIgdW5kZXJwdW5rdGVyIGkgaGllcmFya2lldC4gTGlnZXMmYXJpbmc7IHZpbCB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5OypsYXN0YmlsZXImIzAzOTt9IHJlc3VsdGVyZSBpIGVuIHJhcHBvcnQgb3ZlciBhbGxlIGxhc3RiaWxlciBvZyBwcm9kdWt0ZXIsIHNvbSB0aWxoJm9zbGFzaDtyZXIgZXQgaHZpbGtldCBzb20gaGVsc3QgaG92ZWRwdW5rdCBpIGhpZXJhcmtpZXQuJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeXRlbXBsYXRlJ10gPSAnRGV0dGUgcGFyYW1ldGVyIGFuZ2l2ZXIgZGVuIHNrYWJlbG9uLCBzb20gc2thbCBicnVnZXMgdGlsIGhpZXJhcmtpdmlzbmluZy4gQW5naXZlcyBkZXIgaW5nZW4gdiZhZWxpZztyZGkgYnJ1Z2VzIGRlbiBzdGFuZGFyZHNrYWJlbG9uLCBzb20gcC50LiBlciB2YWxndCBmb3IgdmlzbmluZ3N0eXBlbi4nOwokbGFuZ1sncGFyYW1fcGFnZWxpbWl0J10gPSAnS2FuIGt1biBicnVnZXMgc2FtbWVuIG1lZCBwcm9kdWt0cmVzdW0mZWFjdXRlO3Zpc25pbmcgKHN0YW5kYXJkKSBvZyBhbmdpdmVyLCBodm9yIG1hbmdlIGVsZW1lbnRlciBkZXIgc2thbCB2aXNlcyBwZXIgc2lkZS4nOwokbGFuZ1sncGFyYW1fcGFyZW50J10gPSAnS3VuIGJydWdiYXIgdmVkIDxlbT5oaWVyYXJraXZpc25pbmc8L2VtPi4gUGFyYW1ldHJldCBhbmdpdmVyIGlkJiMwMzk7ZXQgZm9yIGRldCBoaWVyYXJraSBzb20gc2thbCB1ZGcmb3NsYXNoO3JlIGJlZ3luZGVsc2VzcHVua3RldCBmb3Igb3ZlcnNpZ3Rlbi4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGlkJ10gPSAnS3VuIGJydWdiYXIgdmVkIHZpc25pbmcgYWYgZnVsZCBwcm9kdWt0YmVza3JpdmVsc2UuIERldHRlIHBhcmFtZXRlciBmb3J0JmFlbGlnO2xsZXIsIGh2aWxrZXQgcHJvZHVrdCBkZXIgc2thbCBicnVnZXMgdmVkIHZpc25pbmdlbi4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnQW5naXYgZGVuIG9yZGVuIGkgaHZpbGtlbiBzb3J0ZXJlZGUgZmVsdGVyIHNrYWwgb3B0ciZhZWxpZztkZSBpIHJlc3VtJmVhY3V0ZTt2aXNuaW5nLiAgTXVsaWdoZWRlcm5lIGVyOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gU3RpZ2VuZGUgb3JkZW48L2xpPg0KICA8bGk+ZGVzYyAtLSBGYWxkZW5kZSBvcmRlbjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdEZXR0ZSBwYXJhbWV0ZXIsIHNvbSBrdW4ga2FuIGJydWdlcyBpIGZvcmJpbmRlbHNlIG1lZCByZXN1bSZlYWN1dGU7dmlzbmluZywgYmVzdGVtbWVyIGh2b3JkYW4gcHJvZHVrdGVybmUgc2thbCBzb3J0ZXJlcy4gTXVsaWdlIHYmYWVsaWc7cmRpZXIgZXI6DQo8dWw+DQogIDxsaT48c3Ryb25nPnByb2R1Y3RfbmFtZTwvc3Ryb25nPiBQcm9kdWt0bmF2bjwvbGk+DQogIDxsaT5wcmljZSAtLSBCYXNpc3ByaXM8L2xpPg0KICA8bGk+c3RhdHVzIC0tIEtsYWRkZSBlbGxlciBvZmZlbnRsaWc8L2xpPg0KICA8bGk+cmFuZG9tIC0tIFZpcyBpIHRpbGYmYWVsaWc7bGRpZyBvcmRlbiB2ZWQgaHZlciBmb3Jlc3Amb3NsYXNoO3Jnc2VsPC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gRGVuIGRhdG8gaHZvciBkZXR0ZSBmaXJtYSBibGV2IG9wcmV0dGV0IHNvbSBlbiBwb3N0IGkgZGF0YWJhc2VuPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIERhdG9lbiBmb3Igc2VuZXN0ZSBvcGRhdGVyaW5nIGFmIGZpcm1hZXQgaSBkYXRhYmFzZW48L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnRGV0dGUgcGFyYW1ldGVyIGFuZ2l2ZXIgaHZpbGtlbiBza2FiZWxvbiwgZGVyIHNrYWwgYnJ1Z2VzIHRpbCByZXN1bSZlYWN1dGU7dmlzbmluZy4gQW5naXZlcyBkZXIgaW5nZW4gdiZhZWxpZztyZGkgYnJ1Z2VzIGRlbiBzdGFuZGFyZHNrYWJlbG9uLCBzb20gcC50LiBlciB2YWxndCBmb3IgdmlzbmluZ3N0eXBlbi4nOwokbGFuZ1sncGFyZW50J10gPSAnT3Zlcm9yZG5ldCBwdW5rdCc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ01vZHVsZXQgUHJvZHVjdHMgYmxldiBpbnN0YWxsZXJldCc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnTW9kdWxldCBQcm9kdWN0cyBlciBibGV2ZXQgZmplcm5ldCBzYW1tZW4gbWVkIGFsbGUgdGlsaCZvc2xhc2g7cmVuZGUgZGF0YSc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ0luZHN0aWxsaW5nZXInOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnVmVkIGZqZXJuZWxzZSBhZiBkZXR0ZSBtb2R1bCBmamVybmVzIG9ncyZhcmluZzsgYWxsZSBkZSB0aWxoJm9zbGFzaDtyZW5kZSBkYXRhLiBFciBkdSBzaWtrZXIgcCZhcmluZzssIGF0IGR1IHZpbCBmb3J0cyZhZWxpZzt0dGU/JzsKJGxhbmdbJ3ByaWNlJ10gPSAnUHJpcyc7CiRsYW5nWydwcmljZV9hZGp1c3RtZW50J10gPSAnUHJpc3JlZ3VsZXJpbmcnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICcmYW1wO2x0Oyc7CiRsYW5nWydwcm9kdWN0J10gPSAnUHJvZHVrdCc7CiRsYW5nWydwcm9kdWN0bmFtZSddID0gJ1Byb2R1a3RuYXZuJzsKJGxhbmdbJ3Byb2R1Y3RzJ10gPSAnUHJvZHVrdGVyJzsKJGxhbmdbJ3Byb2R1Y3RfaGllcmFyY2h5J10gPSAnUHJvZHVrdC1oaWVyYXJraSc7CiRsYW5nWydwcm9kdWN0X21hbmFnZXInXSA9ICdQcm9kdWt0aCZhcmluZztuZHRlcmluZyc7CiRsYW5nWydwcm9tcHQnXSA9ICdGb3Jlc3Amb3NsYXNoO3Jnc2VsJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ZpbGV0eXBlcyddID0gJ1RpbGxhZCB1cGxvYWQgYWYgZGlzc2UgZmlsdHlwZXIgKHRpbCBmaWx0eXBlLWZlbHRlciknOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2V0eXBlcyddID0gJ1RpbGxhZCB1cGxvYWQgYWYgZiZvc2xhc2g7bGdlbmRlIGJpbGxlZGZpbHR5cGVyICh0aWwgYmlsbGVkdHlwZS1mZWx0ZXIpJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsJ10gPSAnRGFuIGF1dG9tYXRpc2sgc20mYXJpbmc7IHVkZ2F2ZXIgYWYgYmlsbGVkZXIgKHRodW1ibmFpbHMpJzsKJGxhbmdbJ3Byb21wdF9hcHBsaWNhYmxlJ10gPSAnU2wmYXJpbmc7ZXQgdGlsIHNvbSBzdGFuZGFyZCBmb3IgYWxsZSBueWUgcHJvZHVrdGVyJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeWNvZGUnXSA9ICdWYWx1dGFrb2RlJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeXN5bWJvbCddID0gJ1ZhbHV0YXN5bWJvbCc7CiRsYW5nWydwcm9tcHRfZGVsZXRlcHJvZHVjdGZpbGVzJ10gPSAnU2xldCBhbGxlIGZpbGVyLCBzb20gZXIgZm9yYnVuZGV0IG1lZCBwcm9kdWt0ZXQsIG4mYXJpbmc7ciBwcm9kdWt0ZXQgc2xldHRlcz8nOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdTdGFuZGFyZHNpZGUgdGlsIGZ1bGRlIHByb2R1a3RiZXNrcml2ZWxzZXInOwokbGFuZ1sncHJvbXB0X3RheHJhdGUnXSA9ICdNb21zJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnU3RhbmRhcmQgc29ydGVyaW5nc29yZGVuIGkgcmVzdW0mZWFjdXRlO3Zpc25pbmcnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnRmVsdCBkZXIgc29tIHN0YW5kYXJkIHNrYWwgc29ydGVyZXMgcCZhcmluZzsgaSByZXN1bSZlYWN1dGU7dmlzbmluZyc7CiRsYW5nWydwcm9tcHRfdGF4MSddID0gJ1NrYXQsIGFmZ2lmdCwgbW9tcyc7CiRsYW5nWydwcm9tcHRfdGF4MiddID0gJ0ZsZXJlIHNrYXR0ZXIsIGFmZ2lmdGVyLCBtb21zJzsKJGxhbmdbJ3Byb21wdF90YXhuYW1lJ10gPSAnQWZnaWZ0c25hdm4nOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnU2thYmVsb25raWxkZSc7CiRsYW5nWydwcm9tcHRfd2VpZ2h0dW5pdHMnXSA9ICdWJmFlbGlnO2d0ZW5oZWQnOwokbGFuZ1sncHVibGljJ10gPSAnU2thbCBkZXR0ZSBmZWx0IHYmYWVsaWc7cmUgdGlsZyZhZWxpZztuZ2VsaWd0IGZvciBvZmZlbnRsaWdoZWRlbj8nOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnT2ZmZW50bGlnZ2pvcnQnOwokbGFuZ1sncmFuZG9tJ10gPSAnVGlsZiZhZWxpZztsZGlnJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnR2VuZGFuIHN0YW5kYXJkdiZhZWxpZztyZGllcic7CiRsYW5nWydyb290J10gPSAnUm9kJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdWJmFlbGlnO2xnIGVuJzsKJGxhbmdbJ3NvcnRfYnknXSA9ICdTb3J0ZXIgZWZ0ZXInOwokbGFuZ1snc29ydF9vcmRlciddID0gJ1NvcnRlcmluZ3NyJmFlbGlnO2trZWYmb3NsYXNoO2xnZSc7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF0dXMnOwokbGFuZ1snc3VibWl0J10gPSAnSW5kc2VuZCc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVzJ10gPSAnUmVzdW0mZWFjdXRlO3NrYWJlbG9uZXInOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdUaWxmJm9zbGFzaDtqL3JldCBlbiByZXN1bSZlYWN1dGU7c2thYmVsb24nOwokbGFuZ1sndGF4YWJsZSddID0gJ1NrYXR0ZXBsaWd0aWcnOwokbGFuZ1sndGF4X21vZHVsZSddID0gJ1NrYXR0ZW1vZHVsJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnVGVrc3Rib2tzJzsKJGxhbmdbJ3RleHRib3gnXSA9ICdUZWtzdGZlbHQnOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhcmRza2FiZWxvbiBmb3IgbnllIGhpZXJhcmtpcmFwcG9ydGVyJzsKJGxhbmdbJ3RpdGxlX2NhdGVnb3J5bGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZHNrYWJlbG9uIGZvciBueWUga2F0ZWdvcmlsaXN0ZXInOwokbGFuZ1sndGl0bGVfZGV0YWlsX2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkc2thYmVsb24gZm9yIG55ZSBmdWxkZSBwcm9kdWt0YmVza3JpdmVsc2VyJzsKJGxhbmdbJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhcmRza2FiZWxvbiBmb3IgbnllIHByb2R1a3RyZXN1bWVlcic7CiRsYW5nWyd0eXBlJ10gPSAnVHlwZSc7CiRsYW5nWyd1cGRhdGUnXSA9ICdPcGRhdGVyJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1YmYWVsaWc7bGcgZW4gZmlsIGF0IHVwbG9hZGUnOwokbGFuZ1sndmFsdWUnXSA9ICdWJmFlbGlnO3JkaSc7CiRsYW5nWyd2YWx1ZXMnXSA9ICdWJmFlbGlnO3JkaWVyJzsKJGxhbmdbJ3dlaWdodCddID0gJ1YmYWVsaWc7Z3QnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xMDk0MTE0NDA0LjEyMDY2MzU2MDMuMTIxNjkwNjg1NC4xMjE2OTA5ODgyLjQ4JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIxNjgzMDc1NC40MC4zMS51dG1jc3I9Z29vZ2xlfHV0bWNjbj0ob3JnYW5pYyl8dXRtY21kPW9yZ2FuaWN8dXRtY3RyPWNtcyBtYWRlIHNpbXBsZSc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfaGVpZ2h0J10gPSAnSCc7CiRsYW5nWydhYmJyX2xlbmd0aCddID0gJ0wnOwokbGFuZ1snYWJicl93aWR0aCddID0gJ0InOwokbGFuZ1snYWRkJ10gPSAnSGluenVmw7xnZW4nOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdFaW5lIEthdGVnb3JpZSBoaW56dWbDvGdlbic7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0VpbiBGZWxkIGhpbnp1ZsO8Z2VuJzsKJGxhbmdbJ2FkZG9wdGlvbiddID0gJ09wdGlvbiBoaW56dWbDvGdlbic7CiRsYW5nWydhZGRwcm9kdWN0J10gPSAnRWluZW4gQXJ0aWtlbCBoaW56dWbDvGdlbic7CiRsYW5nWydhZGRfYXR0cmliX3NldCddID0gJ0VpbiBBdHRyaWJ1dCBoaW56dWbDvGdlbic7CiRsYW5nWydhZGRfY2F0ZWdvcnlfZmllbGQnXSA9ICdEYXMgRmVsZCBtaXQgZGVyIEthdGVnb3JpZSAiJXMiIHZlcmtuw7xwZmVuJzsKJGxhbmdbJ2FkZF9oaWVyYXJjaHlfaXRlbSddID0gJ0VpbiBIaWVyYXJjaGllLUVsZW1lbnQgaGluenVmw7xnZW4nOwokbGFuZ1snYWRkX29wdGlvbiddID0gJ0F0dHJpYnV0LU9wdGlvbiBoaW56dWbDvGdlbic7CiRsYW5nWydhZGp1c3RhYmxlJ10gPSAnQW5wYXNzYmFyJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdTb2xsZW4gbnVyIEFkbWluaXN0cmF0b3JlbiBkaWVzZXMgQXR0cmlidXQgc2VoZW4ga8O2bm5lbj8nOwokbGFuZ1snYWR2YW5jZWQnXSA9ICdFcndlaXRlcnQnOwokbGFuZ1snYWxpZ25fbGMnXSA9ICdVbnRlbiBNaXR0ZSc7CiRsYW5nWydhbGlnbl9sbCddID0gJ1VudGVuIExpbmtzJzsKJGxhbmdbJ2FsaWduX2xyJ10gPSAnVW50ZW4gUmVjaHRzJzsKJGxhbmdbJ2FsaWduX21jJ10gPSAnTWl0dGUgTWl0dGUnOwokbGFuZ1snYWxpZ25fbWwnXSA9ICdNaXR0ZSBMaW5rcyc7CiRsYW5nWydhbGlnbl9tciddID0gJ01pdHRlIFJlY2h0cyc7CiRsYW5nWydhbGlnbl91YyddID0gJ09iZW4gTWl0dGUnOwokbGFuZ1snYWxpZ25fdWwnXSA9ICdPYmVuIExpbmtzJzsKJGxhbmdbJ2FsaWduX3VyJ10gPSAnT3BlbiBSZWNodHMnOwokbGFuZ1snYWxsJ10gPSAnQWxsZSc7CiRsYW5nWydhbGxjYXRlZ29yaWVzJ10gPSAnQWxsZSBLYXRlZ29yaWVuJzsKJGxhbmdbJ2FueSddID0gJ0lyZ2VuZCBlaW5lcyc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnU2luZCBTaWUgc2ljaGVyPyc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZXByb2R1Y3QnXSA9ICdXb2xsZW4gU2llIHdpcmtsaWNoIGRpZXNlbiBBcnRpa2VsIHVuZCBhbGxlIGRhbWl0IHZlcmtuw7xwZnRlbiBJbmZvcm1hdGlvbmVuIGzDtnNjaGVuPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdBdWZzdGVpZ2VuZCc7CiRsYW5nWydhdHRyaWJ1dGVfbmFtZSddID0gJ0F0dHJpYnV0bmFtZSc7CiRsYW5nWydhdHRyaWJfdGV4dCddID0gJ1RleHQnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzY2gnOwokbGFuZ1snYnRuX3NldGVjb21oYW5kbGVycyddID0gJ0UtQ29tbWVyY2UtRXJlaWduaXNzdGV1ZXJ1bmcgc2V0emVuJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVzJ10gPSAnSGllcmFyY2hpZS1CZXJpY2h0c3ZvcmxhZ2VuJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0VpbmUgSGllcmFyY2hpZS1CZXJpY2h0c3ZvcmxhZ2UgaGluenVmw7xnZW4vw6RuZGVybic7CiRsYW5nWydjYW5jZWwnXSA9ICdBYmJyZWNoZW4nOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpZW4nOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdLYXRlZ29yaWUnOwokbGFuZ1snY2F0ZWdvcnlleGlzdHMnXSA9ICdFaW5lIEthdGVnb3JpZSBtaXQgZGllc2VtIE5hbWVuIGV4aXN0aWVydCBiZXJlaXRzJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0thdGVnb3JpZWxpc3RlbnZvcmxhZ2UnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0VpbmUgS2F0ZWdvcmllbGlzdGVudm9ybGFnZSBoaW56dWbDvGdlbi/DpG5kZXJuJzsKJGxhbmdbJ2NkX2F1dG9jb21wbGV0ZSddID0gJ0JlZ2lubiBlaW5lcyBGaXJtZW5uYW1lbiBlaW5nZWJlbic7CiRsYW5nWydjZW50aW1ldGVycyddID0gJ1plbnRpbWV0ZXInOwokbGFuZ1snY2hlY2tib3gnXSA9ICdLb250cm9sbGvDpHN0Y2hlbic7CiRsYW5nWydjb25maXJtX2NvcHlvcHRpb25zJ10gPSAnQW55IGV4aXN0aW5nIG9wdGlvbnMgZm9yIHRoaXMgaXRlbSB3aWxsIGJlIHJlcGxhY2VkLiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY29udGludWU/JzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlYWxsb3B0aW9ucyddID0gJ1NpbmQgU2llIHNpY2hlciwgZGFzcyBTaWUgYWxsZSBPcHRpb25lbiBmw7xyIGRpZXNlcyBQcm9kdWt0cyBsw7ZzY2hlbiBtw7ZjaHRlbj8nOwokbGFuZ1snY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnXSA9ICdNw7ZjaHRlbiBTaWUgZGllc2VuIEtub3RlbiB3aXJrbGljaCBsw7ZzY2hlbj8gQWxsZSBBcnRpa2VsLCBkaWUgZGllc2VuIEtub3RlbiBudXR6ZW4sIHdlcmRlbiBhdWYgIm5vIGhpZXJhcmNoeSIgZ2VzZXR6dCc7CiRsYW5nWydjb25maXJtX2ltcG9ydCddID0gJ1dvbGxlbiBTaWUgZGllcyBXSVJLTElDSD9cblxuRmFsc2NoZSBFaW5zdGVsbHVuZ2VuIG9kZXIgZWluZSB1bmfDvGx0aWdlIEtvbmZpZ3VyYXRpb25zZGF0ZWkga8O2bm5lbiBlaW4gYmlzbGFuZyBmdW5rdGlvbmllcmVuZGVzIFN5c3RlbSBrb21wbGV0dCB6ZXJzdMO2cmVuLic7CiRsYW5nWydjb3B5J10gPSAnS29waWVyZW4nOwokbGFuZ1snY29weV9hdHRyaWJ1dGUnXSA9ICdQcm9kdWt0b3B0aW9uIGtvcGllcmVuJzsKJGxhbmdbJ2NvcHlfYXR0cmliX3NldHMnXSA9ICdBdHRyaWJ1dGdydXBwZW4ga29waWVyZW4nOwokbGFuZ1snY29weV9jYXRlZ29yeSddID0gJ0thdGVnb3JpZSBrb3BpZXJlbic7CiRsYW5nWydjb3B5X29wdGlvbnNfZnJvbSddID0gJ0FsbGUgT3B0aW9uZW4ga29waWVyZW4gdm9uJzsKJGxhbmdbJ2NvcHlfcHJvZHVjdCddID0gJ0RpZXNlbiBBcnRpa2VsIGtvcGllcmVuJzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRXJzdGVsbHVuZ3NkYXR1bSc7CiRsYW5nWydjdXJyZW50X3ZhbHVlJ10gPSAnQWt0dWVsbGVyIFdlcnQnOwokbGFuZ1snZGF0YSddID0gJ0RhdGVuJzsKJGxhbmdbJ2RlZmF1bHQnXSA9ICdTdGFuZGFyZGVpbnN0ZWxsdW5nJzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdTdGFuZGFyZHZvcmxhZ2VuJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5BY2h0dW5nOjwvc3Ryb25nPiBEaWUgSW5oYWx0ZSBkaWVzZXIgVGV4dGZlbGRlciB3ZXJkZW4gZ2VudXR6dCwgdW0gZGllIHZvcmVpbmdlc3RlbGx0ZW4gSW5oYWx0ZSBkZXIgVGVtcGxhdGVzIGZlc3R6dWxlZ2VuLCB3ZW5uICJUZW1wbGF0ZSBoaW56dWbDvGdlbiIgaW4gZGVyIGpld2VpbGlnZW4gVGVtcGxhdGUtUmVnaXN0ZXJrYXJ0ZSBnZWtsaWNrdCB3aXJkLiBEaWUgVmVyw6RuZGVydW5nIGVpbmVzIEZlbGRlcyBoYXQga2VpbmVuIGRpcmVrdGVuIEVmZmVrdCBhdWYgZGllIFdlYnNlaXRlLic7CiRsYW5nWydkZWxldGUnXSA9ICdMw7ZzY2hlbic7CiRsYW5nWydkZWxldGVfYWxsJ10gPSAnQWxsZSBsw7ZzY2hlbic7CiRsYW5nWydkZWxldGVfYXR0cmlidXRlJ10gPSAnQXR0cmlidXQgbMO2c2NoZW4nOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAnSGllcmFyY2hpZS1FbGVtZW50IGzDtnNjaGVuJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdBYnN0ZWlnZW5kJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnQmVzY2hyZWlidW5nJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uJ10gPSAnQmVzdGltbXVuZ3NvcnQnOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFpbHMnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAnRGV0YWlsdm9ybGFnZW4nOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ0VpbmUgRGV0YWlsLXZvcmxhZ2UgaGluenVmw7xnZW4vw6RuZGVybic7CiRsYW5nWydkaW1lbnNpb25zJ10gPSAnQWJtZXNzdW5nZW4nOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdEZWFrdGl2aWVydCc7CiRsYW5nWydkb3duJ10gPSAnTmFjaCB1bnRlbic7CiRsYW5nWydkcmFmdCddID0gJ0VudHd1cmYnOwokbGFuZ1snZHJvcGRvd24nXSA9ICdMaXN0ZW5mZWxkJzsKJGxhbmdbJ2Ryb3Bkb3duX29wdGlvbnMnXSA9ICdMaXN0ZW5mZWxkLU9wdGlvbmVuIDxlbT4obnVyIGluIExpc3RlbmZlbGQtTWVuw7xzIGVpbnNldHpiYXIpPC9lbT48YnIvPjxici8+PGVtPihlaW4gRWludHJhZyBwcm8gWmVpbGUpPC9lbT4nOwokbGFuZ1snZWRpdCddID0gJ8OEbmRlcm4nOwokbGFuZ1snZWRpdF9hdHRyaWJzZXQnXSA9ICdBdHRyaWJ1dGUgYmVhcmJlaXRlbic7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICdBdHRyaWJ1dGVpbnN0ZWxsdW5nZW4gYmVhcmJlaXRlbic7CiRsYW5nWydlZGl0X2F0dHJpYnNldHNfZm9yJ10gPSAnQXR0cmlidXRlaW5zdGVsbHVuZ2VuIGJlYXJiZWl0ZW4gZsO8cic7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdBdHRyaWJ1dGUgYmVhcmJlaXRlbic7CiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAnS2F0ZWdvcmllIGJlYXJiZWl0ZW4nOwokbGFuZ1snZWRpdF9jYXRlZ29yeV9maWVsZHMnXSA9ICdLYXRlZ29yaWVuZmVsZGVyIGJlYXJiZWl0ZW4nOwokbGFuZ1snZWRpdF9ub3RlcyddID0gJ0JlbWVya3VuZ2VuIGJlYXJiZWl0ZW4nOwokbGFuZ1snZWRpdF9vcHRpb25zJ10gPSAnUHJvZHVrdG9wdGlvbmVuIGJlYXJiZWl0ZW4nOwokbGFuZ1snZWRpdF9vcHRpb25fbm90ZXMnXSA9ICdFZGl0IE9wdGlvbiBOb3Rlcyc7CiRsYW5nWydlZGl0X3Byb2R1Y3QnXSA9ICdBcnRpa2VsIGJlYXJiZWl0ZW4nOwokbGFuZ1snZXJvcnJfcW9oX25lZ2F0aXZlX2F0cm93J10gPSAnUXVhbnRpdHkgb24gaGFuZCBjYW5ub3QgYmUgbmVnYXRpdmUgYXQgcm93ICVkJzsKJGxhbmdbJ2Vycm9ycyddID0gJ0ZlaGxlcic7CiRsYW5nWydlcnJvcl9hdHRyaWJzZXRfZXhpc3RzJ10gPSAnRWluIEF0dHJpYnV0IG1pdCBkaWVzZW0gTmFtZW4gZXhpc3RpZXJ0IGJlcmVpdHMuJzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdEYXRlbmJhbmtmZWhsZXInOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX3NrdSddID0gJ0RvcHBlbHRlIEFydGlrZWxudW1tZXIgZ2VmdW5kZW4nOwokbGFuZ1snZXJyb3JfZmllbGR2YWx1ZV9lbXB0eSddID0gJ0RlciBXZXJ0IGRlcyBGZWxkZXMgZGFyZiBuaWNodCBsZWVyIHNlaW4nOwokbGFuZ1snZXJyb3JfZmlsZWZvcm1hdCddID0gJ1Byb2JsZW0gbWl0IGRlbSBEYXRlaS1Gb3JtYXQnOwokbGFuZ1snZXJyb3JfZmlsZW5vdGZvdW5kJ10gPSAnRGllIERhdGVpIHd1cmRlIG5pY2h0IGdlZnVuZGVuJzsKJGxhbmdbJ2Vycm9yX2ZpbGVvcGVuJ10gPSAnUHJvYmxlbSBiZWltIMOWZmZuZW4gZGVyIERhdGVpICVzJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJhbWNvdW50J10gPSAnSW52YWxpZCAob3Igbm90IG1hdGNoaW5nKSBwYXJhbWV0ZXIgY291bnQnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmVudCddID0gJ1VuZ8O8bHRpZ2VzLCDDvGJlcmdlb3JkbmV0ZXMgRWxlbWVudCAoZWluIEhpZXJhcmNoaWVlbGVtZW50IGthbm4gbmljaHQgc2VpbiBlaWdlbmVzIMO8YmVyZ2VvcmRuZXRlcyBFbGVtZW50IHNlaW4pJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfbmFtZSddID0gJ0RlciBlaW5nZWdlYmVuZSBXZXJ0IGltIGJlbnV0emVyZGVmaW5pZXJ0ZW4gRm9ybXVsYXItRmVsZCBpc3QgdW5nw7xsdGlnIChiZWluaGFsdGV0IG5pY2h0LWFscGhhbnVtZXJpc2NoZW4gWmVpY2hlbiknOwokbGFuZ1snZXJyb3JfaW52YWxpZF92YWx1ZSddID0gJ1VuZ8O8bHRpZ2VyIFdlcnQgYW5nZWdlYmVuJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0VpbiBiZW7DtnRpZ3RlciBQYXJhbWV0ZXIgZmVobHQgb2RlciBpc3QgdW5nw7xsdGlnJzsKJGxhbmdbJ2Vycm9yX25hbWV1c2VkJ10gPSAnQW4gRWxlbWVudCBtaXQgZGllc2VtIE5hbWVuIGV4aXN0aWVydCBiZXJlaXRzJzsKJGxhbmdbJ2Vycm9yX25lZWR0d29yb3dzJ10gPSAnQSBtaW5pbXVtIG9mIHR3byByb3dzIGlzIHJlcXVyaWVkJzsKJGxhbmdbJ2Vycm9yX25vZmllbGR0eXBlJ10gPSAnQml0dGUgd8OkaGxlbiBTaWUgZWluZW4gRmVsZHR5cCc7CiRsYW5nWydlcnJvcl9ub25hbWUnXSA9ICdTaWUgbcO8c3NlbiBlaW5lbiBOYW1lbiBhbmdlYmVuJzsKJGxhbmdbJ2Vycm9yX29uZXF1YW50aXR5ZmllbGQnXSA9ICdPbmx5IG9uZSBxdWFudGl0eSBmaWVsZCBpcyBhbGxvd2VkJzsKJGxhbmdbJ2Vycm9yX29uZXN1YnNjcmlwdGlvbmZpZWxkJ10gPSAnRXMga2FubiBudXIgZWluIEFib25uZW1lbnQtRmVsZCBhbmdlbGVndCB3ZXJkZW4nOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbmRlbmllZCddID0gJ0JlcmVjaHRpZ3VuZyB2ZXJ3ZWlnZXJ0JzsKJGxhbmdbJ2Vycm9yX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdVbmfDvGx0aWdlIFByZWlzLUFuZ2FiZW4gZsO8ciBkYXMgRWxlbWVudCAlcyc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X2FsaWFzdXNlZCddID0gJ0RlciBlaW5nZWdlYmVuZSBBbGlhcyB3aXJkIGJlcmVpdHMgdmVyd2VuZGV0JzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdFaW4gQXJ0aWtlbCBtaXQgZGllc2VtIE5hbWVuIGV4aXN0aWVydCBiZXJlaXRzJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3Rfbm90Zm91bmQnXSA9ICdEYXMgYW5nZWZyYWd0ZSBQcm9kdWt0IGtvbm50ZSBuaWNodCBnZWZ1bmRlbiB3ZXJkZW4nOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9za3V1c2VkJ10gPSAnRGllc2UgQXJ0aWtlbG51bW1lciB3aXJkIGJlcmVpdHMgdm9uIGVpbmVtIGFuZGVyZW4gQXJ0aWtlbCB2ZXJ3ZW5kZXQnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9za3V1c2VkX2F0cm93J10gPSAnVGhhdCBTS1UgdmFsdWUgYXQgcm93ICVkIGlzIGFscmVhZHkgaW4gdXNlIGJ5IGFub3RoZXIgaXRlbSc7CiRsYW5nWydlcnJvcl9za3VfcmVxdWlyZWQnXSA9ICdCaXR0ZSBlaW5lIGVpbmRldXRpZ2UgQXJ0aWtlbG51bW1lciBlaW5nZWJlbic7CiRsYW5nWydlcnJvcl9za3VfcmVxdWlyZWRfYXRyb3cnXSA9ICdQbGVhc2UgZW50ZXIgYSB1bmlxdWUgU0tVIG9uIHJvdyAlZCc7CiRsYW5nWydlcnJvcl90ZXh0X2VtcHR5X2F0cm93J10gPSAnVGhlIHRleHQgZmllbGQgYXQgcm93ICVkIGNhbm5vdCBiZSBlbXB0eSc7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnRGFzIEhvY2hsYWRlbiBpc3QgZmVobGdlc2NobGFnZW46ICVzJzsKJGxhbmdbJ2V4Y2x1ZGVfY2F0ZWdvcmllcyddID0gJ1Byb2R1a3RlIGF1cyBkZW4gZ2V3w6RobHRlbiBLYXRlZ29yaWVlbiBuaWNodCBpbSBFcmdlYm5pcyBhbnplaWdlbic7CiRsYW5nWydleHBpcmVfb25lX3llYXInXSA9ICdOYWNoIGVpbmVtIEphaHInOwokbGFuZ1snZXhwaXJlX3NpeF9tb250aHMnXSA9ICdOYWNoIHNlY2hzIE1vbmF0ZW4nOwokbGFuZ1snZXhwaXJlX3R3b195ZWFyJ10gPSAnTmFjaCB6d2VpIEphaHJlbic7CiRsYW5nWydleHBvcnRhdHRyaWJzJ10gPSAnQXR0cmlidXRlIGV4cG9ydGllcmVuJzsKJGxhbmdbJ2V4cG9ydGNhdHMnXSA9ICdLYXRlZ29yaWVuIGV4cG9ydGllcmVuJzsKJGxhbmdbJ2V4cG9ydGRlbGltJ10gPSAnRXhwb3J0IGZpZWxkIERlbGltaXRlcic7CiRsYW5nWydleHBvcnRkcmFmdCddID0gJ0FydGlrZWwgaW0gRW50d3VyZiBleHBvcnRpZXJlbic7CiRsYW5nWydleHBvcnRmaWVsZHMnXSA9ICdFeHBvcnQgQ3VzdG9tIEZpZWxkcyc7CiRsYW5nWydleHBvcnRfdG9fY3N2J10gPSAnQWxzIENTViBleHBvcnRpZXJlbic7CiRsYW5nWydleHRyYTEnXSA9ICdFeHRyYWZlbGQgMSc7CiRsYW5nWydleHRyYTInXSA9ICdFeHRyYWZlbGQgMic7CiRsYW5nWydmaWVsZCddID0gJ0ZlbGQnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdGZWxkZGVmaW5pdGlvbic7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdGZWxkZGVmaW5pdGlvbmVuJzsKJGxhbmdbJ2ZpZWxkcyddID0gJ0ZlbGRlcic7CiRsYW5nWydmaWxlJ10gPSAnRGF0ZWknOwokbGFuZ1snZmlsdGVyJ10gPSAnRmlsdGVyJzsKJGxhbmdbJ2ZpbHRlcmludXNlJ10gPSAnaW4gZWZmZWN0JzsKJGxhbmdbJ2ZpbHRlcnMnXSA9ICdGaWx0ZXInOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snZ2VuZXJhbF9zZXR0aW5ncyddID0gJ0FsbGdlbWVpbmUgRWluc3RlbGx1bmdlbic7CiRsYW5nWydnbyddID0gJ0xvcyc7CiRsYW5nWydoaWVyYXJjaHknXSA9ICdIaWVyYXJjaGllJzsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gJ0hpZXJhcmNoaWVwb3NpdGlvbic7CiRsYW5nWydoaWVyYXJjaHlfc2V0dGluZ3MnXSA9ICdIaWVyYXJjaGllZWluc3RlbGx1bmdlbic7CiRsYW5nWydpZCddID0gJ0lEJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ0JpbGQnOwokbGFuZ1snaW1hZ2VfaGFuZGxpbmdfc2V0dGluZ3MnXSA9ICdFaW5zdGVsbHVuZ2VuIGbDvHIgZGllIEJpbGRlcnZlcndhbHR1bmcnOwokbGFuZ1snaW1wb3J0X2Zyb21fY3N2J10gPSAnUHJvZHVrdGUgYXVzIGVpbmVyIENTVi1EYXRlaSBpbXBvcnRpZXJlbic7CiRsYW5nWydpbmNoZXMnXSA9ICdab2xsJzsKJGxhbmdbJ2luY2x1ZGVfY2hpbGRyZW4nXSA9ICdFaW5zY2hsaWXDn2xpY2ggVW50ZXJwdW5rdGU/JzsKJGxhbmdbJ2luZm9fYWxudW1vbmx5J10gPSAnTnVyIGFscGhhbnVtZXJpc2NoZSBaZWljaGVuLiBLZWluZSBMZWVyemVpY2hlbiwgWml0YXRlIG9kZXIgQnVjaHN0YWJlbi9OdW1tZXJuLUtvbWJpbmF0aW9uZW4nOwokbGFuZ1snaW5mb19hdHRyaWJ0ZW1wbGF0ZSddID0gJ03DtmdsaWNoZSBWYXJpYWJsZW4gc2luZDogeyRhdHRyaWJfdGV4dH0seyRhdHRyaWJfYWRqdXN0fSx7JGN1cnJlbmN5X3N5bWJvbH0nOwokbGFuZ1snaW5mb19hdHRyaWJ1dGVzX2NvcGllZCddID0gJ0F0cmlidXRlIGtvcGllcnQnOwokbGFuZ1snaW5mb19hdXRvd2F0ZXJtYXJrJ10gPSAnRXMgd2VyZGVuIGRpZSBXYXNzZXJ6ZWljaGVuLUVpbnN0ZWxsdW5nZW4gZGVzIENHRXh0ZW5zaW9ucy1Nb2R1bHMgdmVyd2VuZGV0JzsKJGxhbmdbJ2luZm9fYmF0Y2hzaXplJ10gPSAnR2ViZW4gU2llIGRpZSBBbnphaGwgZGVyIFplaWxlbiBhbiwgZGllIHBybyAiQmxvY2siIHZlcmFyYmVpdGV0IHdlcmRlbiBzb2xsZW4uIE5hY2hkZW0gZWluIEJsb2NrIGFiZ2VhcmJlaXRldCBpc3QsIHdpcmQgZGVyIEltcG9ydCB3ZWl0ZXJnZWxlaXRldCB1bmQgdmVyYXJiZWl0ZXQgZGVuIG7DpGNoc3RlbiBCbG9jay4gIFdlbm4gYmVpIElobmVuIFNwZWljaGVyZmVobGVyIG9kZXIgWmVpdMO8YmVyc2NocmVpdHVuZ2VuIGF1ZmdydW5kIGRlciBHcsO2w59lIGRlciB2ZXJhcmJlaXRldGVuIERhdGVubWVuZ2UgYXVmdHJldGVuLCB3ZW5kZW4gU2llIHNpY2ggYW4gSWhyZW4gSG9zdGluZy1Qcm92aWRlciBvZGVyIHZlcmtsZWluZXJuIFNpZSBkaWUgWmVpbGVuYW56YWhsJzsKJGxhbmdbJ2luZm9fY2FydF9tb2R1bGVfcGFyYW1zJ10gPSAnRGllc2UgUGFyYW1ldGVyIHdlcmRlbiB2ZXJ3ZW5kZXQsIHVtIGVpbiBXYXJlbmtvcmItTW9kdWwgZsO8ciBkaWUgQXJ0aWtlbC1EZXRhaWwtIHVuZCAtTGlzdGVuYW5zaWNodCBhdXN6dXfDpGhsZW4uJzsKJGxhbmdbJ2luZm9fY2xlYXJhdHRyaWJzJ10gPSAnT25seSBhcHBsaWNhYmxlIHdoZW4gdXBkYXRpbmcgZXhpc3RpbmcgaXRlbXMsIHRoaXMgd2lsbCBjbGVhciBhbGwgYXR0cmlidXRlIGluZm9ybWF0aW9uIGZyb20gdGhlIGRhdGFiYXNlIGZvciBpdGVtcyBiZWZvcmUgY3JlYXRpbmcgbmV3IG9uZXMnOwokbGFuZ1snaW5mb19jbGVhcmNhdGVnb3JpZXMnXSA9ICdPbmx5IGFwcGxpY2FibGUgd2hlbiB1cGRhdGluZyBleGlzdGluZyBpdGVtcywgdGhpcyB3aWxsIGNsZWFyIGFsbCBjYXRlZ29yeSBtZW1iZXJzaGlwcyBiZWZvZSBjcmVhdGluZyBuZXcgb25lcyc7CiRsYW5nWydpbmZvX2NsZWFyZmllbGRzJ10gPSAnT25seSBhcHBsaWNhYmxlIHdoZW4gdXBkYXRpbmcgZXhpc3RpbmcgaXRlbXMsIHRoaXMgd2lsbCBjbGVhciBhbGwgZmllbGRzIGJlZm9lIGNyZWF0aW5nIGZpZWxkIHZhbHVlcyc7CiRsYW5nWydpbmZvX2NvcHlfYXR0cmlic2V0cyddID0gJ0hpZXJtaXQga29waWVyZW4gU2llIGRlbiBBdHRyaWJ1dHNhdHogKG9obmUgQXJ0aWtlbG51bW1lcikgZWluZXMgYW5kZXJlbiBBcnRpa2Vscy4nOwokbGFuZ1snaW5mb19jcmVhdGVjYXRlZ29yaWVzJ10gPSAnSW4gZGVyIENTVi1EYXRlaSBhbmdlZ2ViZW5lLCBhYmVyIGJpc2hlciBmZWhsZW5kZSBBcnRpa2Vsa2F0ZWdvcmllbiBhdXRvbWF0aXNjaCBlcnpldWdlbic7CiRsYW5nWydpbmZvX2NyZWF0ZWZpZWxkcyddID0gJ1VuYmVrYW5udGUgQXJ0aWtlbGZlbGRlciBhdXRvbWF0aXNjaCBlcnN0ZWxsZW4/IDxlbT4od2VyZGVuIGFscyBUZXh0ZmVsZGVyIGVyc3RlbGx0KTwvZW0+JzsKJGxhbmdbJ2luZm9fY3JlYXRlaGllcmFyY2h5J10gPSAnSW4gZGVyIENTVi1EYXRlaSBhbmdlZ2ViZW5lLCBhYmVyIGJpc2hlciBmZWhsZW5kZSBBcnRpa2VsaGllcmFyY2hpZW4gYXV0b21hdGlzY2ggZXJ6ZXVnZW4nOwokbGFuZ1snaW5mb19kZWNpbWFsX3VuaXRzJ10gPSAnRGllc2VzIFN5c3RlbSB2ZXJzdGVodCAoLikgYWxzIERlemltYWxzdGVsbGVuLVRyZW5uemVpY2hlbiwgei5CLjogPHN0cm9uZz41LjI1PC9zdHJvbmc+JzsKJGxhbmdbJ2luZm9fZGVsaW1pdGVyJ10gPSAnTGVnZW4gU2llIGhpZXIgZGFzIChvZGVyIGRpZSkgWmVpY2hlbiBmZXN0LCBkaWUgZGllIEZlbGRlciB2b25laW5hbmRlciB0cmVubmVuJzsKJGxhbmdbJ2luZm9fZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdMZWdlbiBTaWUgZmVzdCB3aWUgQXJ0aWtlbCBiZWhhbmRlbHQgd2VyZGVuLCBkZXJlbiBOYW1lIHNjaG9uIGluIGRlciBDU1YgRGF0ZWkgdm9yaGFuZGVuIGlzdCc7CiRsYW5nWydpbmZvX2ZpZWxkZGVmc190YWInXSA9ICc8c3Ryb25nPkFjaHR1bmc6IDwvc3Ryb25nPiBBbGxlIEZlbGRlciwgZGllIGhpZXIgZGVmaW5pZXJ0IHdlcmRlbiwgc2luZCBmw7xyIGFsbGUgQXJ0aWtlbCB2ZXJmw7xnYmFyLic7CiRsYW5nWydpbmZvX2ZpZWxkcHJvYmxlbXMnXSA9ICdCZWkgZWluZW0gb2RlciBtZWhyZXJlbiBiZW51dHplcmRlZmluaWVydGVuIEZlbGRlcm4gd3VyZGVuIFByb2JsZW1lIGZlc3RnZXN0ZWxsdC4gRGllIEFrdGlvbiB3dXJkZSBlcmZvbGdyZWljaCBhYmdlc2NobG9zc2VuLCBTaWUgc29sbHRlbiBqZWRvY2ggZGllIFVyc2FjaGUgZGVyIFByb2JsZW1lIGhlcmF1c2ZpbmRlbi4nOwokbGFuZ1snaW5mb19oYW5kbGVpbWFnZXMnXSA9ICdTb2xsZW4gYmVpbSBJbXBvcnQgaW4gZWluZXIgU3BhbHRlIGdlZnVuZGVuZSBCaWxkZGF0ZWllbiB2b24gZGVyIFF1ZWxscG9zaXRpb24gdmVyc2Nob2JlbiwgbWl0IFdhc3NlcnplaWNoZW4gdmVyc2VoZW4gdW5kIGVpbiBWb3JzY2hhdWJpbGQgZXJzdGVsbHQgdW5kIGRlciBGZWxkdHlwIGF1ZiAiQmlsZCIgZ2VzZXR6dCB3ZXJkZW4nOwokbGFuZ1snaW5mb19oaWVycGFnZSddID0gJ0RpZXNlIFNlaXRlIGbDvHIgSGllcmFyY2hpZWFuc2ljaHRlbiB2ZXJ3ZW5kZW4uICBEaWUgU2VpdGVuLUlEIHdpcmQgaW4gZGVyIFVSTCBuaWNodCB2ZXJ3ZW5kZXQuJzsKJGxhbmdbJ2luZm9faW1hZ2VwYXRoJ10gPSAnRWluIFBmYWQgKHJlbGF0aXYgenVtIFVwbG9hZHMgVmVyemVpY2huaXMpIGluIGRlbSBkaWUgaW4gZGVyIEltcG9ydGRhdGVpIGFuZ2VnZWJlbmVuIEJpbGRlciBsaWVnZW4nOwokbGFuZ1snaW5mb19pbWFnZXN0dWZmX2RlcHJlY2F0ZWQnXSA9ICdJbWFnZSBwcm9jZXNzaW5nIGZ1bmN0aW9ucyBhcmUgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24uICBVc2UgQ0dTbWFydEltYWdlIGZvciBpbmxpbmUgaW1hZ2UgcHJvY2Vzc2luZy4nOwokbGFuZ1snaW5mb19pbXBvcnRfdGVzdF9wYXNzZWQnXSA9ICdEaWUgYW5nZWdlYmVuZSBFaW5nYWJlZGF0ZWkgd3VyZGUgZWluZW0gS3VyenRlc3QgdW50ZXJ6b2dlbiB1bmQgYWxsZXMgc2NoZWludCBpbiBPcmRudW5nIHp1IHNlaW4uPGJyLz5EaWVzIGlzdCBrZWluIEluZGl6IGRhZsO8ciwgZGFzIGRpZSBEYXRlaSBmZWhsZXJmcmVpIGlzdC4nOwokbGFuZ1snaW5mb19wcmV0dHloaWVydXJscyddID0gJ0RlbiBIaWVyYXJjaGllbmFtZW4gaW4gZGllIFVSTCBlaW5mw7xnZW4nOwokbGFuZ1snaW5mb19wcm9kbm90Zm91bmQnXSA9ICdXaWUgd2lyZCBlaW4gZGlyZWt0ZXIgQXVmcnVmIGVpbmVyIEFydGlrZWxkZXRhaWxzZWl0ZSBwZXIgVVJMIGJlaGFuZGVsdCwgd2VubiBkZXIgQXJ0aWtlbCAtIGF1cyB3ZWxjaGVuIEdyw7xuZGVuIGF1Y2ggaW1tZXIgKGRlYWt0aXZpZXJ0LCBnZWzDtnNjaHQsIHVzdykgLSBuaWNodCB2ZXJmw7xnYmFyIGlzdC4nOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gJ8OWZmZlbnRsaWNoZSBGZWxkZXIgc2luZCBhdWYgZGVyIFdlYnNlaXRlIGbDvHIgamVkZW4gc2ljaHRiYXIuJzsKJGxhbmdbJ2luZm9fcmVvcmRlcl9jb250ZW50J10gPSAnVGhpcyBvcGVyYXRpb24gYWxsb3dzIGRyYWdnaW5nIHRoZSBpbmRpdmlkdWFsIG5vZGVzIGluIHRoZSB0cmVlIHRvIGFkanVzdCB0aGUgb3JkZXIgdGhhdCB0aGV5IHdpbGwgYmUgZGlzcGxheWVkIGluIGluIHRoZSBoaWVyYXJjaHkgdmlldyc7CiRsYW5nWydpbmZvX3NldGVjb21oYW5kbGVycyddID0gJ1RoaXMgYnV0dG9uIHdpbGwgZW5zdXJlIHRoYXQgZXZlbnQgaGFuZGxlcnMgZm9yIGVjb21tZXJjZSBldmVudHMgYXJlIGluIHBsYWNlLiAgVGhpcyBpcyB1c2VmdWwgaWYgYXNraW5nIHRoZSBpdGVtcyBtb2R1bGUgdG8ga2VlcCB0cmFjayBvZiBhIHF1YW50aXR5IG9uIGhhbmQsIGJ1dCB0aGUgZXZlbnQgaGFuZGxlcnMgZGlkIG5vdCBnZXQgY3JlYXRlZCBkdXJpbmcgaW5zdGFsbCBvciB1cGdyYWRlJzsKJGxhbmdbJ2xhYmVsJ10gPSAnQmVzY2hyaWZ0dW5nJzsKJGxhbmdbJ2xhYmVsX292ZXJ3cml0ZSddID0gJ8OcYmVyc2NocmVpYmVuJzsKJGxhbmdbJ2xhYmVsX3NraXAnXSA9ICfDnGJlcnNwcmluZ2VuJzsKJGxhbmdbJ2xhYmVsX3VwZGF0ZSddID0gJ0FrdHVhbGlzaWVyZW4nOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnTGV0enRlIMOEbmRlcnVuZyc7CiRsYW5nWydsb2dvdGV4dCddID0gJ1p3ZWl0ZXMgQmlsZCc7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYXhpbWFsZSBMw6RuZ2UgPGVtPihudXIgYXVmIFRleHQtRmVsZGVyIGFud2VuZGJhcik8L2VtPic7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICfDhG5kZXJ1bmdzLURhdHVtJzsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gJ0VpbiBNb2R1bCwgdW0gZWluZW4gS2F0YWxvZyB2b24gQXJ0aWtlbG4sIGRlcmVuIFByZWlzZSwgQmlsZGVyLCBldGMuIHp1IHZlcndhbHRlbiB1bmQgQmVudXR6ZXJuIHp1IGVybGF1YmVuLCBkaWVzZSBhbiBlaW5lbiBXYXJlbmtvcmIgenUgw7xiZXJnZWJlbi4nOwokbGFuZ1snbW92ZV9kb3duJ10gPSAnTmFjaCB1bnRlbic7CiRsYW5nWydtb3ZlX3VwJ10gPSAnTmFjaCBvYmVuJzsKJGxhbmdbJ21zZ19jYXRlZ29yeV9kZWxldGVkJ10gPSAnS2F0ZWdvcmllIGdlbMO2c2NodCc7CiRsYW5nWydtc2dfZXZlbnRoYW5kbGVyc19jcmVhdGVkJ10gPSAnRXJlaWduaXNzdGV1ZXJ1bmcgZXJzdGVsbHQnOwokbGFuZ1snbXNnX29wdGlvbnNjb3BpZWQnXSA9ICdQcm9kdWt0b3B0aW9uZW4ga29waWVydCAoYWJlciBub2NoIG5pY2h0IGdlc3BlaWNoZXJ0KSc7CiRsYW5nWydtc2dfb3B0aW9uc19kZWxldGVkJ10gPSAnUHJvZHVrdG9wdGlvbmVuIGbDvHIgZGFzIFByb2R1a3QgJWQgZ2Vsw7ZzY2h0JzsKJGxhbmdbJ21zZ19vcHRpb25zX3NhdmVkJ10gPSAnUHJvZHVrdG9wdGlvbmVuIGdlc3BlaWNoZXJ0JzsKJGxhbmdbJ21zZ19wcm9kdWN0Y29waWVkJ10gPSAnSXRlbSBzdWNjZXNzZnVsbHkgY29waWVkLiAgWW91IGFyZSBub3cgZWRpdGluZyB0aGUgY29weS4gIEFueSBza3UgaW5mb3JtYXRpb24gaW4gdGhlIGl0ZW0sIGFuZC9vciBhdHRyaWJ1dGVzIGhhcyBiZWVuIGNsZWFyZWQnOwokbGFuZ1snbmFtZSddID0gJ05hbWUnOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdTaWUgaGFiZW4gbmljaHQgZGllIGVyZm9yZGVybGljaGUgQmVyZWNodGlndW5nOiAlcyc7CiRsYW5nWyduZXdfY2F0ZWdvcnlfbmFtZSddID0gJ05ldWVyIEthdGVnb3JpZW4tTmFtZSc7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbm8nXSA9ICdOZWluJzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnRXMgd3VyZGUga2VpbiBOYW1lIGFuZ2VnZWJlbic7CiRsYW5nWydub25lJ10gPSAnS2VpbmVzJzsKJGxhbmdbJ25vdGVzJ10gPSAnQmVtZXJrdW5nZW4nOwokbGFuZ1snbm90aGluZ19zZWxlY3RkJ10gPSAnTmljaHRzIGF1c2dld8OkaGx0JzsKJGxhbmdbJ251bWVyaWMnXSA9ICdudW1tZXJpc2NoJzsKJGxhbmdbJ29mJ10gPSAnVm9uJzsKJGxhbmdbJ29rJ10gPSAnT0snOwokbGFuZ1snb3BlcmF0aW9uX2NhbmNlbGxlZCddID0gJ1ZvcmdhbmcgYWJnZWJyb2NoZW4nOwokbGFuZ1snb3BlcmF0aW9uX2NvbXBsZXRlJ10gPSAnVm9yZ2FuZyBhYmdlc2NobG9zc2VuJzsKJGxhbmdbJ3BhZ2UnXSA9ICdTZWl0ZSc7CiRsYW5nWydwYWdlX2xpbWl0J10gPSAnU2VpdGVuYW56YWhsJzsKJGxhbmdbJ3BhZ2Vfb2YnXSA9ICdTZWl0ZSAlcyB2b24gJXMnOwokbGFuZ1sncGFyYW1fYWN0aW9uJ10gPSAnTGVnZW4gU2llIGRhcyBWZXJoYWx0ZW4gZGVzIE1vZHVscyBmZXN0LiBNw7ZnbGljaGUgV2VydGUgc2luZDoNCjx1bD4NCiAgPGxpPmhpZXJhcmNoeSAtLSB6ZWlndCBlaW5lIEFydGlrZWwtTGlzdGUgbmFjaCBkZXIgSGllcmFyY2hpZSBhbjwvbGk+DQogIDxsaT5jYXRlZ29yeWxpc3QgLSB6ZWlndCBlaW5lIExpc3RlIGRlciBQcm9kdWt0a2F0ZWdvcmllbiBhbjwvbGk+DQogIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gemVpZ3QgZWluZSBadXNhbW1lbmZhc3N1bmcgZGVyIFByb2R1a3RlIGFuPC9saT4NCiAgPGxpPmRldGFpbHMgLSB6ZWlndCBkaWUgRGV0YWlsYW5zaWNodCBlaW5lcyBlaW56ZWxuZW4gQXJ0aWtlbHMgYW48L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdXZW5uIGRpZXNlciBQYXJhbWV0ZXIgaW4gZGVyIDxlbT5kZWZhdWx0PC9lbT4gTGlzdGVuYW5zaWNodCB2ZXJ3ZW5kZXQgd2lyZCwgd2VyZGVuIG51ciBBcnRpa2VsIHp1ciBhbmdlZ2ViZW5lbiBLYXRlZ29yaWUgYW5nZXplaWd0LiBNZWhyZXJlIEthdGVnb3JpZW4ga8O2bm5lbiBkdXJjaCBLb21tYXMgZ2V0cmVubnQgYW5nZWdlYmVuIHdlcmRlbi4gRGVyIFBhcmFtZXRlci1OYW1lIHNvbGx0ZSBuaWNodCDDvGJlcmVpbnN0aW1tZW4gbWl0IGRlbSBOYW1lbiBlaW5lciBleGlzdGllcmVuZGVuIEthdGVnb3JpZS4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlmaWVsZCddID0gJ0RpZXNlciBQYXJhbWV0ZXIgaXN0IG51ciBpbiBkZXIgS2F0ZWdvcmllLUF1c2dhYmUgc2lubnZvbGwuIE1pdCBpaG0ga8O2bm5lbiBLYXRlZ29yaWVuIGFuaGFuZCBlaW5lcyBLYXRlZ29yaWVmZWxkZXMgZ2VmaWx0ZXJ0IHdlcmRlbi4gIERpZSBGaWx0ZXJ1bmcgZnVua3Rpb25pZXJ0IG5pY2h0IHdlbm4gZ2xlaWNoemVpdGlnIGVpbiAiY2F0ZWdvcnkiIG9kZXIgImNhdGVnb3J5X2lkIiBQYXJhbWV0ZXIgYW5nZWdlYmVuIHdpcmQuICBHZWJlbiBTaWUgZWluZSBrb21tYWdldHJlbm50ZSBMaXN0ZSB2b24gS2F0ZWdvcmllZmVsZG5hbWVuIHVuZCAtd2VydGVuIGFuLiAgQnNwLjogIGNhdGVnb3J5bGlzdD0iRmVsZG5hbWU6V2VydCxXZWl0ZXJlciBGZWxkbmFtZTpXZXJ0Iic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3RkdGx0ZW1wbGF0ZSddID0gJ0RpZXNlciBQYXJhbWV0ZXIgaXN0IG51ciBpbiBkZXIgS2F0ZWdvcmllLUF1c2dhYmUgc2lubnZvbGwuICBFciBnaWJ0IGRhcyBLYXRlZ29yaWVsaXN0ZW4tVGVtcGxhdGUgYW4sIGRhcyBmw7xyIGRpZSBBbnplaWdlIHZvbiBLYXRlZ29yaWVkZXRhaWxzIHZlcndlbmRldCB3ZXJkZW4gc29sbC4gIFdlbm4ga2VpbiBXZXJ0IGFuZ2VnZWJlbiBpc3QsIHdpcmQgZGFzIFN0YW5kYXJkLVRlbXBsYXRlIHZlcndlbmRldC4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICdEaWVzZXIgUGFyYW1ldGVyIGlzdCBudXIgaW4gZGVyIEthdGVnb3JpZS1BdXNnYWJlIHNpbm52b2xsLiBFciB3aXJkIGJlbnV0enQsIHVtIGRhcyBUZW1wbGF0ZSBhbnp1Z2ViZW4sIHdlbGNoZXMgdmVyd2VuZGV0IHdlcmRlbiBzb2xsLiBXZW5uIGtlaW4gV2VydCBhbmdlZ2ViZW4gaXN0LCB3aXJkIGRhcyBEZWZhdWx0LVRlbXBsYXRlIHZlcndlbmRldC4nOwokbGFuZ1sncGFyYW1fZGV0YWlscGFnZSddID0gJ0RpZXMgbGVndCBkaWUgU2VpdGVuLUlEIChwYWdlaWQpIG9kZXIgZGVuIEFsaWFzIChhbGlhcykgZmVzdCwgd2VsY2hlKHIpIGJlbnV0enQgd2VyZGVuIHNvbGwsIHVtIGRpZSBEZXRhaWxhbnNpY2h0IGF1c3p1Z2ViZW4uJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnRGllc2VyIFBhcmFtZXRlciB3aXJkIHZlcndlbmRldCwgdW0gZGFzIFRlbXBsYXRlIGZlc3R6dWxlZ2VuLCB3ZWxjaGVzIGbDvHIgZGllIEFydGlrZWwtRGV0YWlsYW5zaWNodCB2ZXJ3ZW5kZXQgd2VyZGVuIHNvbGwuIE9obmUgVm9yZ2FiZSB3aXJkIGRhcyBTdGFuZGFyZC1UZW1wbGF0ZSB2ZXJ3ZW5kZXQuJzsKJGxhbmdbJ3BhcmFtX2V4Y2x1ZGVjYXQnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgKHN1bW1hcnkpIHZpZXcsIHRoaXMgcGFyYW1ldGVyIHdpbGwgYWxsb3cgZXhjbHVkaW5nIHByb2R1Y3RzIHRoYXQgYXJlIGluIGEgc3BlY2lmaWMgY2F0ZWdvcnkgZnJvbSB0aGUgcmVzdWx0LiBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGNhdGVnb3J5IG5hbWVzIGlzIGFsbG93ZWQuIFRoaXMgcGFyYW1ldGVyIGNhbiB3b3JrIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGNhdGVnb3J5IHBhcmFtZXRlciB0byBwcm92aWRlIGEgbGlzdCBvZiB0aGUgcHJvZHVjdHMgdGhhdCBhcmUgaW4gdGhpcyBjYXRlZ29yeSwgYnV0IG5vdCBpbiB0aGF0IGNhdGVnb3J5JzsKJGxhbmdbJ3BhcmFtX2ZpZWxkJ10gPSAnVXNlZCBvbmx5IGluIHRoZSA8ZW0+ZmllbGRsaXN0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBpcyByZXF1aXJlZCB0byBzcGVjaWZ5IHRoZSBuYW1lIG9mIGEgdXNlciBkZWZpbmVkIHByb3BlcnR5IHRvIGNyZWF0ZSBhIGxpc3QgZnJvbS4nOwokbGFuZ1sncGFyYW1fZmllbGR2YWwnXSA9ICdVc2VkIG9ubHkgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGZpZWxkIHZhbHVlIHRvIGxpbWl0IHJlc3VsdHMgYnkuICBTcGVjaWFsIHZhbHVlcyBmb3IgdGhpcyBmaWVsZCBhcmUgIjo6bnVsbDo6IiAiOjpub3RudWxsOjoiJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeSddID0gJ0RpZXNlciBQYXJhbWV0ZXIgaXN0IG51ciBpbiBkZXIgPGVtPmRlZmF1bHQ8L2VtPi1BbnNpY2h0IHNpbm52b2xsLiBFciB3aXJkIHZlcndlbmRldCwgdW0gbnVyIEFydGlrZWwgYW56dXplaWdlbiwgZGllIGVpbmVyIGJlc3RpbW10ZW4gSGllcmFyY2hpZSBhbmdlaMO2cmVuLiBEYWJlaSBrw7ZubmVuIFdpbGRjYXJkcyB2ZXJ3ZW5kZXQgd2VyZGVuLCB1bSDDvGJlcmdlb3JkbmV0ZS91bnRlcmdlb3JkbmV0ZSBCZXppZWh1bmdlbiBlYmVuZmFsbHMgYW56dXplaWdlbi4gWi5CLiBnaWJ0IHtQcm9kdWN0cyBoaWVyYXJjaHk9XCdMS1dzKlwnfSBlaW5lIFp1c2FtbWVuZmFzc3VuZyBhbGxlciBMS1dzIGF1cywgZWluc2NobGllw59saWNoIGFsbGVyIHVudGVyZ2VvcmRuZXRlbiBFbGVtZW50ZSBkZXIgSGllcmFyY2hpZS4gR2VuYXVzbyBnaWJ0IHtQcm9kdWN0cyBoaWVyYXJjaHk9XCcqTEtXc1wnfSBlaW5lIFp1c2FtbWVuZmFzc3VuZyBhbGxlciBMS1dzIGF1cywgZWluc2NobGllw59saWNoIGRlciDDvGJlcmdlb3JkbmV0ZW4gRWxlbWVudGUgaW4gZGVyIEhpZXJhcmNoaWUuJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeXRlbXBsYXRlJ10gPSAnRGllc2VyIFBhcmFtZXRlciB3aXJkIHZlcndlbmRldCwgdW0gZGFzIFRlbXBsYXRlIGZlc3R6dWxlZ2VuLCB3ZWxjaGVzIGbDvHIgZGllIEhpZXJhcmNoaWVhbnNpY2h0IHZlcndlbmRldCB3ZXJkZW4gc29sbC4gT2huZSBWb3JnYWJlIHdpcmQgZGFzIFN0YW5kYXJkLVRlbXBsYXRlIHZlcndlbmRldC4nOwokbGFuZ1sncGFyYW1faW5saW5lJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgdGhlIG91dHB1dCBvZiB0aGUgc3VtbWFyeSB2aWV3IHNob3VsZCBiZSBkaXNwbGF5ZWQgaW5saW5lJzsKJGxhbmdbJ3BhcmFtX25vdHByZXR0eSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGFjdGlvbnMgdG8gd2hpY2ggcHJldHR5IHVybHMgc2hvdWxkIG5vdCBiZSBnZW5lcmF0ZWQuICBpLmU6IG5vdHByZXR0eT1oaWVyYXJjaHksZGVmYXVsdCB3aWxsIG5vdCBnZW5lcmF0ZSBwcmV0dHkgdXJscyB0byBoaWVyYXJjaHksIG9yIHN1bW1hcnkgKGRlZmF1bHQpIGFjdGlvbnMsIGJ1dCB3aWxsIGFsbG93IGdlbmVyYXRpb24gb2YgcHJldHR5IHVybHMgdG8gZGV0YWlsIHZpZXdzLiAgQXMgYSBzcGVjaWFsIHZhbHVlICJhbGwiIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhhdCBubyBwcmV0dHkgdXJscyBzaG91bGQgYmUgZ2VuZXJhdGVkJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ0RpZXNlciBQYXJhbWV0ZXIgaXN0IG51ciBpbiBkZXIgPGVtPmRlZmF1bHQ8L2VtPi1BdXNnYWJlIHNpbm52b2xsLiBFciBsZWd0IGZlc3QsIHdpZSB2aWVsZSBFbGVtZW50ZSBwcm8gU2VpdGUgYW5nZXplaWd0IHdlcmRlbiBzb2xsZW4uJzsKJGxhbmdbJ3BhcmFtX3BhcmVudCddID0gJ0RpZXNlciBQYXJhbWV0ZXIgaXN0IG51ciBpbiBkZXIgPGVtPmhpZXJhcmNoeTwvZW0+LUF1c2dhYmUgc2lubnZvbGwuIEVyIGxlZ3QgZGllIEhpZXJhcmNoaWUtSUQgZmVzdCwgYWIgd2VsY2hlciBkaWUgQXJ0aWtlbCBhdXNnZWdlYmVuIHdlcmRlbiBzb2xsZW4uJzsKJGxhbmdbJ3BhcmFtX3BhcmVudHMnXSA9ICdVc2VmdWwgb25seSBpbiB0aGUgPGVtPmhpZXJhcmNoeTwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgaGllcmFyY2h5IG5hbWVzIHRoYXQgc3BlY2lmeSB0byBjcmVhdGUgbnVtZXJvdXMgaGVpcmFyY2h5IHRyZWVzIGZyb20gdGhlIHNwZWNpZmllZCBsb2NhdGlvbihzKS4gIEhpZXJhcmNoeSBuYW1lcyBtdXN0IGJlIHVuaXF1ZSwgYW5kIG5vdCBjb250YWluIGFueSBzcGVjaWFsIGNoYXJzLic7CiRsYW5nWydwYXJhbV9wcm9kdWN0aWQnXSA9ICdEaWVzZXIgUGFyYW1ldGVyIGlzdCBudXIgaW4gZGVyIDxlbT5kZXRhaWw8L2VtPiBBcnRpa2VsYW5zaWNodCBzaW5udm9sbC4gRXIgbGVndCBmZXN0LCB3ZWxjaGVyIEFydGlrZWwgYW5nZXplaWd0IHdlcmRlbiBzb2xsLic7CiRsYW5nWydwYXJhbV9wcm9kdWN0bGlzdCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCAoc3VtbWFyeSkgdmlldywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBpbnRlZ2VyIHByb2R1Y3QgaWRzIHRvIGRpc3BsYXkuICBObyBwYWdpbmF0aW9uIG9yIHNvcnRpbmcgaXMgcGVyZm9ybWVkIG9uIHRoZXNlIHZhbHVlcywgYW5kIGlmIHNwZWNpZmllZCB0aGUgb3RoZXIgZmlsdGVyaW5nIHBhcmFtZXRlcnMgdG8gdGhlIHN1bW1hcnkgdmlldyBhcmUgaWdub3JlZC4nOwokbGFuZ1sncGFyYW1fcmVzdWx0cGFnZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgc2VhcmNoLCBhbmQgY2F0ZWdvcnkgbGlzdCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgYSBwYWdlIGlkIG9yIGFsaWFzIHRvIHVzZSB0byBkaXNwbGF5IHRoZSBzdW1tYXJ5IHJlc3VsdHMnOwokbGFuZ1sncGFyYW1fc2VhcmNoZmllbGQnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIG1heSBjb250YWluIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZmllbGQgbmFtZXMgdG8gaW5jbHVkZSBpbiB0aGUgc2VhcmNoJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZvcm10ZW1wbGF0ZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpc3BhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG5vbiBkZWZhdWx0IHNlYXJjaCBmb3JtIHRlbXBsYXRlJzsKJGxhbmdbJ3BhcmFtX3Nob3dhbGwnXSA9ICdEaWVzZXIgUGFyYW1ldGVyIGlzdCBudXIgaW4gZGVyIDxlbT5jYXRlZ29yeWxpc3Q8L2VtPiBLYXRlZ29yaWVsaXN0ZW5hbnNpY2h0IHNpbm52b2xsLiBJc3QgZGllc2VyIFdlcnQgZ3LDtsOfZXIgYWxzIDAsIHdlcmRlbiBhbGxlIEthdGVnaWVuIGFuZ2V6ZWlndCAoYXXDn2VyIGRlbmVuLCBkaWUgbm9jaCBrZWluZSBBcnRpa2VsIGVudGhhbHRlbikuJzsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gJ0RpZXNlciBQYXJhbWV0ZXIgaXN0IG51ciBpbiBkZXIgTGlzdGVuYW5zaWNodCBzaW5udm9sbC4gRXIgbGVndCBkaWUgU29ydGllcnVuZyBkZXIgQXJ0aWtlbCBmZXN0LiBNw7ZnbGljaGUgV2VydGUgc2luZDoNCjx1bD4NCiAgPGxpPjxzdHJvbmc+cHJvZHVjdF9uYW1lPC9zdHJvbmc+IC0tIGRlciBBcnRpa2VsbmFtZTwvbGk+DQogIDxsaT5pZCAtLSBkaWUgQXJ0aWtlbC1JRDwvbGk+DQogIDxsaT53ZWlnaHQgLS0gZGFzIEdld2ljaHQgZGVzIEFydGlrZWxzPC9saT4NCiAgPGxpPnByaWNlIC0tIGRlciBQcmVpcyBkZXMgQXJ0aWtlbHM8L2xpPg0KICA8bGk+c3RhdHVzIC0tIFN0YXR1cyAoRW50d3VyZiBvZGVyIFZlcsO2ZmZlbnRsaWNodCk8L2xpPg0KICA8bGk+cmFuZG9tIC0tIHZlcndlbmRldCBiZWkgamVkZXIgQW5mcmFnZSBlaW5lIHp1ZsOkbGxpZ2UgUmVpaGVuZm9sZ2U8L2xpPg0KICA8bGk+Y3JlYXRlZCAtLSBkYXMgRXJzdGVsbHVuZ3NkYXR1bSBkZXMgQXJ0aWtlbHMvbGk+DQogIDxsaT5tb2RpZmllZCAtLSBkYXMgw4RuZGVydW5nc2RhdHVtIGRlcyBBcnRpa2VsczwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdMZWd0IGRpZSBSZWloZW5mb2xnZSBkZXIgRmVsZC1Tb3J0aWVydW5nIGluIGRlciBMaXN0ZW5hbnNpY2h0IGZlc3QuIE3DtmdsaWNoZSBXZXJ0ZSBzaW5kOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXVmc3RlaWdlbmRlIFJlaWhlbmZvbGdlPC9saT4NCiAgPGxpPmRlc2MgLS0gQWJzdGVpZ2VuZGUgUmVpaGVuZm9sZ2U8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydHR5cGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgc3VtbWFyeSB2aWV3LCB0aGlzIHBhcmFtZXRlciBpcyB1c2VkIHRvIGNvbnZlcnQgdGhlIHZhbHVlcyB0byBhbm90aGVyIHR5cGUgZm9yIHNvcnRpbmcuICB2YWxpZCB2YWx1ZXMgYXJlIFNUUklORyxTSUdORUQgYW5kIFVOU0lHTkVELiAgSWYgbm90IHN1cHBsaWVkIHRoZSBkZWZhdWx0IFNUUklORyB0eXBlIGlzIGFzc3VtZWQuJzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnlwYWdlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBhY3Rpb249aGllcmFyY2h5LCBhbGxvd3Mgc3BlY2lmeWluZyBhIHBhZ2UgaWQgb3IgYWxpYXMgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIGFueSBsaW5rcyB0byBzdW1tYXJ5IHZpZXcnOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnRGllc2VyIFBhcmFtZXRlciB3aXJkIHZlcndlbmRldCwgdW0gZGFzIFRlbXBsYXRlIGZlc3R6dWxlZ2VuLCB3ZWxjaGVzIGbDvHIgZGllIFp1c2FtbWVuZmFzc3VuZ3NhbnNpY2h0IHZlcndlbmRldCB3ZXJkZW4gc29sbC4gT2huZSBWb3JnYWJlIHdpcmQgZGFzIFN0YW5kYXJkLVRlbXBsYXRlIHZlcndlbmRldC4nOwokbGFuZ1sncGFyZW50J10gPSAnw5xiZXJnZW9yZG5ldGVzIEVsZW1lbnQnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdEYXMgUHJvZHVjdHMtTW9kdWwgd3VyZGUgIGluc3RhbGxpZXJ0Lic7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnRGFzIFByb2R1Y3RzLU1vZHVsIHd1cmRlIGVpbnNjaGxpZcOfbGljaCBhbGxlciB6dWdlaMO2cmlnZW4gRGF0ZW4gZW50ZmVybnQuJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnRWluc3RlbGx1bmdlbic7CiRsYW5nWydwcmVmaXhfY29weW9mJ10gPSAnS29waWUgdm9uJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ1dlbm4gU2llIGRpZXNlcyBNb2R1bCBlbnRmZXJuZW4sIHdlcmRlbiBhdWNoIGFsbGUgenVnZWjDtnJpZ2VuIERhdGVuIGdlbMO2c2NodC4gV29sbGVuIFNpZSBkYXMgd2lya2xpY2g/JzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCc7CiRsYW5nWydwcmljZSddID0gJ1ByZWlzJzsKJGxhbmdbJ3ByaWNlX2FkanVzdG1lbnQnXSA9ICdQcmVpcy1FaW5zdGVsbHVuZyc7CiRsYW5nWydwcm9kdWN0J10gPSAnQXJ0aWtlbCc7CiRsYW5nWydwcm9kdWN0bmFtZSddID0gJ0FydGlrZWwtTmFtZSc7CiRsYW5nWydwcm9kdWN0cyddID0gJ0FydGlrZWwnOwokbGFuZ1sncHJvZHVjdF9kZXRhaWxfc2V0dGluZ3MnXSA9ICdBcnRpa2VsZGV0YWlsLUVpbnN0ZWxsdW5nZW4nOwokbGFuZ1sncHJvZHVjdF9lZGl0aW5nX3NldHRpbmdzJ10gPSAnUHJvZHVrdGJlYXJiZWl0dW5nc29wdGlvbmVuJzsKJGxhbmdbJ3Byb2R1Y3RfaGllcmFyY2h5J10gPSAnQXJ0aWtlbGhpZXJhcmNoaWUnOwokbGFuZ1sncHJvZHVjdF9pbmZvJ10gPSAnQXJ0aWtlbGluZm9ybWF0aW9uJzsKJGxhbmdbJ3Byb2R1Y3RfbWFuYWdlciddID0gJ0FydGlrZWx2ZXJ3YWx0dW5nJzsKJGxhbmdbJ3Byb2R1Y3Rfc3VtbWFyeV9zZXR0aW5ncyddID0gJ1Byb2R1a3TDvGJlcnNpY2h0IEVpbnN0ZWxsdW5nZW4nOwokbGFuZ1sncHJvZ3Jlc3MnXSA9ICdGb3J0c2Nocml0dCc7CiRsYW5nWydwcm9tcHQnXSA9ICdFaW5nYWJlJzsKJGxhbmdbJ3Byb21wdF9hZGRfYXR0cmlic2V0J10gPSAnQXR0cmlidXRlaW5zdGVsbHVuZ2VuIGhpbnp1ZsO8Z2VuL2JlYXJiZWl0ZW4nOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfZmlsZXR5cGVzJ10gPSAnRGFzIEhvY2hsYWRlbiB2b24gRGF0ZWllbiBtaXQgZGllc2VuIEVuZHVuZ2VuIChmw7xyIEZlbGRlciBkZXMgVHlwcyBcJ2ZpbGVcJykgZXJsYXViZW4nOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2V0eXBlcyddID0gJ0RhcyBIb2NobGFkZW4gdm9uIEJpbGRlcm4gbWl0IGRpZXNlbiBFbmR1bmdlbiAoZsO8ciBGZWxkZXIgZGVzIFR5cHMgXCdpbWFnZVwnKSBlcmxhdWJlbic7CiRsYW5nWydwcm9tcHRfYXBwbGljYWJsZSddID0gJ0FrdGl2aWVydW5nIHBlciBWb3JlaW5zdGVsbHVuZyBmw7xyIGFsbGUgbmV1ZW4gQXJ0aWtlbCc7CiRsYW5nWydwcm9tcHRfYXR0cmlidGVtcGxhdGUnXSA9ICdWb3JsYWdlIGbDvHIgZGllIEFuemVpZ2Ugdm9uIFByb2R1a3QgQXR0cmlidXR3ZXJ0ZSBpbiBEcm9wZG93bic7CiRsYW5nWydwcm9tcHRfYXV0b3ByZXZpZXdpbWcnXSA9ICdBdXRvbWF0aXNjaCBWb3JzY2hhdWJpbGRlciBkZXIgQmlsZGVyIGVyc3RlbGxlbic7CiRsYW5nWydwcm9tcHRfYXV0b3ByZXZpZXdpbWdfc2l6ZSddID0gJ01heGltYWxlIEdyw7bDn2UgKGdyw7bDn3RlIEF1c2RlaG51bmcpIGRlcyBWb3JzY2hhdWJpbGRlcy4nOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWwnXSA9ICdWb3JzY2hhdWJpbGRlciBhdXRvbWF0aXNjaCBlcnpldWdlbic7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbF9zaXplJ10gPSAnTWF4aW1hbGUgR3LDtsOfZSBkZXIgVm9yc2NoYXViaWxkZXIuJzsKJGxhbmdbJ3Byb21wdF9hdXRvd2F0ZXJtYXJrJ10gPSAnQXV0b21hdGlzY2ggV2Fzc2VyemVpY2hlbiBhdWYgZGVuIEJpbGRlcm4gZXJ6ZXVnZW4nOwokbGFuZ1sncHJvbXB0X2JhdGNoc2l6ZSddID0gJ0Jsb2NrZ3LDtsOfZSc7CiRsYW5nWydwcm9tcHRfY2FydF9tb2R1bGUnXSA9ICdDYXJ0LU1vZHVsJzsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdDYXJ0LU1vZHVsLVBhcmFtZXRlcic7CiRsYW5nWydwcm9tcHRfY2xlYXJhdHRyaWJzJ10gPSAnT3B0aW9uZW4gYmVpbSBBa3R1YWxpc2llcmVuIGxlZXJlbic7CiRsYW5nWydwcm9tcHRfY2xlYXJjYXRlZ29yaWVzJ10gPSAnS2F0ZWdvcmllbiBiZWltIEFrdHVhbGlzaWVyZW4gbGVlcmVuJzsKJGxhbmdbJ3Byb21wdF9jbGVhcmZpZWxkcyddID0gJ0ZlbGRlciBiZWltIEFrdHVhbGlzaWVyZW4gbGVlcmVuJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVjYXRlZ29yaWVzJ10gPSAnS2F0ZWdvcmllbiBlcnN0ZWxsZW4nOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWZpZWxkcyddID0gJ0FydGlrZWxmZWxkZXIgZXJzdGVsbGVuPyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlaGllcmFyY2h5J10gPSAnRWluZSBBcnRpa2VsaGllcmFyY2hpZSBlcnN0ZWxsZW4nOwokbGFuZ1sncHJvbXB0X2NzdmZpbGUnXSA9ICdFaW5lIENTVi1EYXRlaSBob2NobGFkZW4nOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5Y29kZSddID0gJ1fDpGhydW5nc3NjaGzDvHNzZWwnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAnV8OkaHJ1bmdzc3ltYm9sJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0X3N0YXR1cyddID0gJ1ZvcmVpbmdlc3RlbGx0IGhhYmVuIGFsbGUgbmV1ZW4gQXJ0aWtlbCBkaWVzZW4gU3RhdHVzJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0X3RheGFibGUnXSA9ICdWb3JlaW5nZXN0ZWxsdCBlbnRoYWx0ZW4gYWxsZSBuZXVlbiBBcnRpa2VsIGVpbmVuIFN0ZXVlcmFudGVpbCc7CiRsYW5nWydwcm9tcHRfZGVsZXRlcHJvZHVjdGZpbGVzJ10gPSAnQWxsZSB6dW0gQXJ0aWtlbCBnZWjDtnJlbmRlbiBEYXRlaWVuIGzDtnNjaGVuLCB3ZW5uIGRlciBBcnRpa2VsIGdlbMO2c2NodCB3aXJkPyc7CiRsYW5nWydwcm9tcHRfZGVsaW1pdGVyJ10gPSAnRmVsZHRyZW5uZXInOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdWb3JlaW5nZXN0ZWxsdGUgRGV0YWlsLVNlaXRlJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxzZm9yJ10gPSAnRGV0YWlscyBmw7xyICVzJzsKJGxhbmdbJ3Byb21wdF9kdXBsaWNhdGVwcm9kdWN0cyddID0gJ1dpZSBzb2xsZW4gZG9wcGVsdGUgUHJvZHVrdGUgZ2VoYW5kaGFidCB3ZXJkZW4/JzsKJGxhbmdbJ3Byb21wdF9mYWxzZSddID0gJ05laW4nOwokbGFuZ1sncHJvbXB0X2hhbmRsZWltYWdlcyddID0gJ0JpbGRlciB2ZXJhcmJlaXRlbj8nOwokbGFuZ1sncHJvbXB0X2hpZXJwYWdlJ10gPSAnVm9yZWluZ2VzdGVsbHRlIFNlaXRlIGbDvHIgSGllcmFyY2hpZS1MaXN0ZW5hbnNpY2h0JzsKJGxhbmdbJ3Byb21wdF9pbWFnZXBhdGgnXSA9ICdCaWxkZXJwZmFkJzsKJGxhbmdbJ3Byb21wdF9sZW5ndGh1bml0cyddID0gJ0zDpG5nZW5laW5oZWl0ZW4nOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzMwMSddID0gJ0VpbmUgMzAxZXIgV2VpdGVybGVpdHVuZyBlcnpldWdlbic7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfNDA0J10gPSAnRWluZW4gNDA0ZXIgRmVobGVyIGVyemV1Z2VuJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9iZWhhdmlvciddID0gJ1dlbGNoZSBBa3Rpb24gc29sbCBhdXNnZWbDvGhydCB3ZXJkZW4sIHdlbm4gZWluIEFydGlrZWwgbmljaHQgYW5nZXplaWd0IHdlcmRlbiBrb25udGU/JzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9lcnJvcm1zZyddID0gJ0VpbmUgRmVobGVybWVsZHVuZyBhbnplaWdlbic7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfbXNnJ10gPSAnRmVobGVybWVsZHVuZywgd2VubiBlaW4gQXJ0aWtlbCBuaWNodCBnZWZ1bmRlbiB3ZXJkZW4ga29ubnRlJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9wYWdlJ10gPSAnU2VpdGUgZsO8ciBkYXVlcmhhZnRlIFVtbGVpdHVuZz8nOwokbGFuZ1sncHJvbXB0X3ByZXR0eWhpZXJ1cmxzJ10gPSAnU3VjaG1hc2NoaW5lbmZyZXVuZGxpY2hlIFVSTHMgKFByZXR0eSBVUkxTKSBmw7xyIEhpZXJhcmNoaWVhbnNpY2h0ZW4gdmVyd2VuZGVuJzsKJGxhbmdbJ3Byb21wdF9wcm9kdWN0c19tYXRjaGluZyddID0gJ1Byb2R1a3RlIHBhc3NlbmQgJXMnOwokbGFuZ1sncHJvbXB0X3Byb2RfZGV0YWlscGFnZSddID0gJ1N0YW5kYXJkc2VpdGUgZsO8ciBQcm9kdWt0IERldGFpbGFuc2ljaHQnOwokbGFuZ1sncHJvbXB0X3NrdV9yZXF1aXJlZCddID0gJ0FydC4tTnIgaXN0IGVpbiBQZmxpY2h0ZmVsZCAobXVzcyBiZWkgYWxsZW4gQXJ0aWtlbG4gYW5nZWdlYmVuIHdlcmRlbiknOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlwYWdlbGltaXQnXSA9ICdWb3JlaW5nZXN0ZWxsdGVzIFByb2R1a3RsaW1pdCBpbiBkZXIgTGlzdGVuYW5zaWNodCc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICdWb3JlaW5nZXN0ZWxsdGVzIFNvcnRpZXItRmVsZCBpbiBkZXIgTGlzdGVuYW5zaWNodCc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRvcmRlciddID0gJ1ZvcmVpbmdlc3RlbGx0ZSBTb3J0aWVyLVJlaWhlbmZvbGdlIGluIGRlciBMaXN0ZW5hbnNpY2h0JzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5X25ld2RlZmF1bHQnXSA9ICdOZXVlIExpc3RlbmFuc2ljaHQgdmVyd2VuZGVuJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlLVF1ZWxsZSc7CiRsYW5nWydwcm9tcHRfdHJ1ZSddID0gJ0phJzsKJGxhbmdbJ3Byb21wdF91cmxwcmVmaXgnXSA9ICdEaWVzZSBaZWljaGVua2V0dGUgaW4gYWxsZSBVUkxzIGVpbmbDvGdlbiwgZGllIHNpY2ggYXVmIGRpZXNlcyBNb2R1bCBiZXppZWhlbic7CiRsYW5nWydwcm9tcHRfdXNlaGllcnBhdGh1cmxzJ10gPSAnRGllIEhpZXJhcmNoaWVuYW1lbiBpbiBkaWUgVVJMIHZvbiBBcnRpa2VsZGV0YWlscyBlaW5mw7xnZW4nOwokbGFuZ1sncHJvbXB0X3VzZV9kZXRhaWxwYWdlX2Zvcl9zZWFyY2gnXSA9ICdEaWVzZSBTZWl0ZSBhdWNoIGbDvHIgU3VjaGVyZ2Vibmlzc2UgdmVyd2VuZGVuIDxlbT4oRXJzZXR6dCBkZW4gPGNvZGU+cmVzdWx0cGFnZTwvY29kZT4gUGFyYW1ldGVyIGRlcyBTdWNoZSBNb2R1bHMpPC9lbT4nOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnR2V3aWNodHMtRWluaGVpdCc7CiRsYW5nWydwdWJsaWMnXSA9ICdJc3QgZGllcyBlaW4gw7ZmZmVudGxpY2hlcyBGZWxkPyc7CiRsYW5nWydwdWJsaXNoZWQnXSA9ICdWZXLDtmZmZW50bGljaHQnOwokbGFuZ1sncXVhbnRpdHlfb25faGFuZCddID0gJ1ZlcmbDvGdiYXJlIE1lbmdlJzsKJGxhbmdbJ3JhbmRvbSddID0gJ1p1ZsOkbGxpZyc7CiRsYW5nWydyZW9yZGVyJ10gPSAnTmV1IG9yZG5lbic7CiRsYW5nWydyZW9yZGVyX2hpZXJhcmNoeSddID0gJ0hpZXJhcmNoaWUgbmV1IG9yZG5lbic7CiRsYW5nWydyZXNldCddID0gJ1p1csO8Y2tzZXR6ZW4nOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdBdWYgZGllIHByb2dyYW1tc2VpdGlnZW4gVm9yZWluc3RlbGx1bmdlbiB6dXLDvGNrc2V0emVuJzsKJGxhbmdbJ3JldHVybiddID0gJ1p1csO8Y2snOwokbGFuZ1sncmV0dXJuX3RvX3RvcCddID0gJ1p1csO8Y2sgbmFjaCBvYmVuJzsKJGxhbmdbJ3Jvb3QnXSA9ICdXdXJ6ZWx2ZXJ6ZWljaG5pcyc7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZXMnXSA9ICdTdWNoZm9ybXVsYXIgVGVtcGxhdGVzJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdIaW56dWbDvGdlbi9CZWFyYmVpdGVuIFN1Y2hmb3JtdWxhciBUZW1wbGF0ZSc7CiRsYW5nWydzZWFyY2hfZGVzY3JpcHRpb24nXSA9ICdTdWNoZSBuYWNoIEVpZ2Vuc2NoYWZ0IEJlc2NocmVpYnVuZyc7CiRsYW5nWydzZWFyY2hfZXhwciddID0gJ1NvbGx0ZSBkaWUgQWJmcmFnZSBmw7xyIGFsbGUgb2RlciBlaW5lbiBkZXIgVGVzdHMgdW50ZW4gZW50c3ByZWNoZW4/JzsKJGxhbmdbJ3NlYXJjaF9uYW1lJ10gPSAnU3VjaGUgbmFjaCBFaWdlbnNjaGFmdCBOYW1lJzsKJGxhbmdbJ3NlYXJjaF9wcmljZSddID0gJ1ByZWlzc3Bhbm5lJzsKJGxhbmdbJ3NlbGVjdF9hbGwnXSA9ICdBbGxlIGF1c3fDpGhsZW4nOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ0JpdHRlIGF1c3fDpGhsZW4nOwokbGFuZ1snc2V0ZGlzYWJsZWQnXSA9ICdTdGF0dXMgYXVmIOKAnkRlYWt0aXZpZXJ04oCcIHNldHplbic7CiRsYW5nWydzZXRkcmFmdCddID0gJ1N0YXR1cyBhdWYg4oCeRW50dXJm4oCcIHNldHplbic7CiRsYW5nWydzZXRwdWJsaXNoZWQnXSA9ICdTdGF0dXMgYXVmIOKAnlZlcsO2ZmZlbnRsaWNodOKAnCBzZXR6ZW4nOwokbGFuZ1snc2t1J10gPSAnQXJ0Li1Oci4nOwokbGFuZ1snc29ydF9ieSddID0gJ1NvcnRpZXJ0IG5hY2gnOwokbGFuZ1snc29ydF9vcmRlciddID0gJ1NvcnRpZXItUmVpaGVuZm9sZ2UnOwokbGFuZ1snc291cmNlJ10gPSAnUXVlbGxlJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyc7CiRsYW5nWydzdWJtaXQnXSA9ICdBYnNlbmRlbic7CiRsYW5nWydzdWJzY3JpcHRpb24nXSA9ICdBYm9ubmVtZW50JzsKJGxhbmdbJ3N1YnNjcl9kZWxwZXJpb2QnXSA9ICdMaWVmZXJow6R1Zmlna2VpdCc7CiRsYW5nWydzdWJzY3JfZGVscGVyaW9kMiddID0gJ0dlbGllZmVydCc7CiRsYW5nWydzdWJzY3JfZXhwaXJ5J10gPSAnVmVyZmFsbCc7CiRsYW5nWydzdWJzY3JfZXhwaXJ5MiddID0gJ1ZlcmbDpGxsdCc7CiRsYW5nWydzdWJzY3JfbW9udGhseSddID0gJ01vbmF0bGljaCc7CiRsYW5nWydzdWJzY3JfcGF5cGVyaW9kJ10gPSAnWmFobHVuZ3Now6R1Zmlna2VpdCc7CiRsYW5nWydzdWJzY3JfcGF5cGVyaW9kMiddID0gJ0JlemFobHQnOwokbGFuZ1snc3Vic2NyX3F1YXJ0ZXJseSddID0gJ1ZpZXJ0ZWxqw6RocmxpY2gnOwokbGFuZ1snc3Vic2NyX3NlbWlhbnVhbGx5J10gPSAnSGFsYmrDpGhybGljaCc7CiRsYW5nWydzdWJzY3JfeWVhcmx5J10gPSAnSsOkaHJsaWNoJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdadXNhbW1lbmZhc3N1bmdzLVRlbXBsYXRlcyc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0VpbiBadXNhbW1lbmZhc3N1bmdzLVRlbXBsYXRlIGhpbnp1ZsO8Z2VuL8OkbmRlcm4nOwokbGFuZ1sndGF4YWJsZSddID0gJ013U3QuJzsKJGxhbmdbJ3Rlc3QnXSA9ICdUZXN0JzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnTWVocnplaWxpZ2VzIFRleHRmZWxkJzsKJGxhbmdbJ3RleHRib3gnXSA9ICdFaW56ZWlsaWdlcyBUZXh0ZmVsZCc7CiRsYW5nWyd0aXRsZV9hZGp1c3RtZW50J10gPSAnRW50ZXIgYW4gYWRqdXN0bWVudCBmcm9tIHRoZSBiYXNlIHByaWNlIGZvciB0aGUgcHJvZHVjdCBvcHRpb25zLiAgU3ludGF4IGlzIFsrLV0jLiMjJzsKJGxhbmdbJ3RpdGxlX2F0dHJpYnV0ZV90ZXh0J10gPSAnRW50ZXIgYSBicmllZiBkZXNjcmlwdGlvbiBmb3IgdGhpcyBwcm9kdWN0IG9wdGlvbic7CiRsYW5nWyd0aXRsZV9ieWhpZXJhcmNoeV9kZmx0dGVtcGxhdGUnXSA9ICdWb3JlaW5zdGVsbHVuZyBOZXVlcyBIaWVyYXJjaGllIEF1c2dhYmUgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1ZvcmVpbnN0ZWxsdW5nIE5ldWVzIEthdGVnb3JpZS1BdXNnYWJlIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdWb3JlaW5zdGVsbHVuZyBOZXVlcyBBcnRpa2VsLURldGFpbGFuc2ljaHQgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfcW9oJ10gPSAnT3B0aW9uYWxseSBzcGVjaWZ5IGEgcXVhbnRpdHkgb24gaGFuZCBmb3IgdGhpcyBwcm9kdWN0IG9wdGlvbi4gIE5vdGUgZm9yIHF1YW50aXR5IGFkanVzdG1lbnRzIHRvIGJlIGF1dG9tYXRpYyB0aGUgU0tVIGZpZWxkIG11c3QgYWxzbyBiZSBwb3B1bGF0ZWQnOwokbGFuZ1sndGl0bGVfc2VhcmNoX2RmbHR0ZW1wbGF0ZSddID0gJ1ZvcmVpbnN0ZWxsdW5nIE5ldWVzIFN1Y2hmb3JtdWxhciBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9za3UnXSA9ICdUaGUgU0tVIGlzIHVzZWQgZm9yIG1hbmFnaW5nIHF1YW50aXR5IG9uIGhhbmQsIGFuZCBwcm9tb3Rpb25zIGZvciBwcm9kdWN0IG9wdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJ10gPSAnVm9yZWluc3RlbGx1bmcgTmV1ZXMgQXJ0aWtlbC1MaXN0ZW5hbnNpY2h0IFRlbXBsYXRlJzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXAnOwokbGFuZ1sndXAnXSA9ICdOYWNoIG9iZW4nOwokbGFuZ1sndXBkYXRlJ10gPSAnQWt0dWFsaXNpZXJlbic7CiRsYW5nWyd1cGxvYWQnXSA9ICdIb2NoenVsYWRlbmRlIERhdGVpIGF1c3fDpGhsZW4nOwokbGFuZ1sndXJsX2FsaWFzJ10gPSAnVVJMLUFsaWFzJzsKJGxhbmdbJ3ZhbGlkJ10gPSAnR8O8bHRpZyc7CiRsYW5nWyd2YWx1ZSddID0gJ1dlcnQnOwokbGFuZ1sndmFsdWVzJ10gPSAnV2VydGUnOwokbGFuZ1sndmlldyddID0gJ0FuemVpZ2VuJzsKJGxhbmdbJ3ZpZXdhYmxlX2ZpZWxkcyddID0gJ1fDpGhsZW4gU2llIGJlbnV0emVyZGVmaW5pZXJ0ZSBGZWxkZXIgaW4gZGVyIFRhYmVsbGVuYW5zaWNodCc7CiRsYW5nWyd3YXJuX2VkaXRfcHJvZHVjdF9vcHRpb25zJ10gPSAnRWFjaCBwcm9kdWN0IG9wdGlvbiBtdXN0IGhhdmUgYSB1bmlxdWUgc3RyaW5nLiAgSWYgU0tVIGlzIHJlcXVpcmVkIHRoZW4gaXQgbXVzdCBiZSB1bmlxdWUgYWNyb3NzIHRoZSBlbnRpcmUgc3lzdGVtLic7CiRsYW5nWyd3YXRlcm1hcmtfbG9jYXRpb24nXSA9ICdQbGF0emllcnVuZyBkZXMgV2Fzc2VyemVpY2hlbnMnOwokbGFuZ1snd2VpZ2h0J10gPSAnR2V3aWNodCc7CiRsYW5nWyd3aXRoX3NlbGVjdGVkJ10gPSAnQXVzZ2V3w6RobHRlIEVpbnRyw6RnZSc7CiRsYW5nWyd5ZXMnXSA9ICdKYSc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/et_EE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZCddID0gJ0xpc2EnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdMaXNhIGthdGVnb29yaWEnOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdMaXNhIHYmYXVtbDtsaSc7CiRsYW5nWydhZGp1c3RhYmxlJ10gPSAnTXV1ZGV0YXYnOwokbGFuZ1snYWRkcHJvZHVjdCddID0gJ0xpc2EgdG9vZGUnOwokbGFuZ1snYWRkX2F0dHJpYl9zZXQnXSA9ICdMaXNhIGF0dHJpYnV1dCc7CiRsYW5nWydhZGRfY2F0ZWdvcnlfZmllbGQnXSA9ICdTZW8gdiZhdW1sO2xpIGthdGVnb29yaWFnYTogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnTGlzYSBoaWVyYXJoaWEgZWxlbWVudCc7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAnTGlzYSBhdHRyaWJ1dWRpIHZhbGlrJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdLYXMgYWludWx0IGFkbWlubmlkIHNhYXZhZCBuJmF1bWw7aGEgc2VkYSBhdHRyaWJ1dXRpPyc7CiRsYW5nWydhbGlnbl91bCddID0gJyZVdW1sO2xlcyB2YXNha3VsZSc7CiRsYW5nWydhbGlnbl91YyddID0gJyZVdW1sO2xlcyBrZXNrZWxlJzsKJGxhbmdbJ2FsaWduX3VyJ10gPSAnJlV1bWw7bGVzIHBhcmVtYWxlJzsKJGxhbmdbJ2FsaWduX21sJ10gPSAnVmFzYWt1bGUga2Vza2VsZSc7CiRsYW5nWydhbGlnbl9tYyddID0gJ0tlc2tlbGUnOwokbGFuZ1snYWxpZ25fbXInXSA9ICdQYXJlbWFsZSBrZXNrZWxlJzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnQWxsYSB2YXNha3VsZSc7CiRsYW5nWydhbGlnbl9sYyddID0gJ0FsbGEga2Vza2VsZSc7CiRsYW5nWydhbGlnbl9sciddID0gJ0FsbGEgcGFyZW1hbGUnOwokbGFuZ1snYWxsY2F0ZWdvcmllcyddID0gJ0smb3RpbGRlO2lrIGthdGVnb29yaWFkJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdPbGVkIHNhIGtpbmRlbD8nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVwcm9kdWN0J10gPSAnT2xlZCBzYSBraW5kZWwsIGV0IHNvb3ZpZCBrdXN0dXRhZGEgc2VsbGUgdG9vdGUgamEgayZvdGlsZGU7aWsgc2VsbGVnYSBzZW9zdHV2YSBpbmZvcm1hdHNpb29uaT8nOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAnS2FzdmF2YWx0JzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnQXR0cmlidXVkaSBuaW1pJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYWF0bmUnOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZXMnXSA9ICdIaWVyYXJjaHkgUmVwb3J0IFRlbXBsYXRlcyc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBIaWVyYXJjaHkgUmVwb3J0IFRlbXBsYXRlJzsKJGxhbmdbJ2NhbmNlbCddID0gJ1QmdXVtbDtoaXN0YSc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnS2F0ZWdvb3JpYWQnOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdLYXRlZ29vcmlhJzsKJGxhbmdbJ2NhdGVnb3J5ZXhpc3RzJ10gPSAnU2VsbGlzZSBuaW1lZ2Ega2F0ZWdvb3JpYSBla3Npc3RlZXJpYiBqdWJhJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0NhdGVnb3J5TGlzdCBUZW1wbGF0ZXMnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IEEgQ2F0ZWdvcnlMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnQ2hlY2tib3gnOwokbGFuZ1snY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnXSA9ICdPbGVkIHNhIGtpbmRlbCwgZXQgc29vdmlkIGt1c3R1dGFkYSBzZWxsZSBlbGVtZW5kaT8gSyZvdGlsZGU7aWsgdG9vdGVkLCBtaXMga2FzdXRhdmFkIHNlZGEgZWxlbWVudGksIHNlYXRha3NlIHB1dWR1dmFrcyBoaWVyYXJoaWFrcyc7CiRsYW5nWydjb25maXJtX2ltcG9ydCddID0gJ09sZWQgc2Ega2luZGVsLCBldCBzYSB0Jm90aWxkZTtlc3RpIHNvb3ZpZCBzZWRhIHRlaGE/XG5cbkViYWtvcnJla3RzZWQgc2VhZGVkIHYmb3RpbGRlO2kgdmFsZSBrb25maWd1cmF0c2lvb25pIGZhaWwgdiZvdGlsZGU7aXZhZCB0JmF1bWw7aWVzdGkgcmlra3VkYSBwcmFlZ3VzZSB0b2ltaXZhIHMmdXVtbDtzdGVlbWkuJzsKJGxhbmdbJ2NvcHknXSA9ICdLb3BlZXJpJzsKJGxhbmdbJ2NvcHlfY2F0ZWdvcnknXSA9ICdLb3BlZXJpIGthdGVnb29yaWEnOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdMb29kdWQnOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ0hldGtldiZhdW1sOyZhdW1sO3J0dXMnOwokbGFuZ1snZGF0YSddID0gJ0FuZG1lZCc7CiRsYW5nWydkZWZhdWx0J10gPSAnVmFpa2ltaXNpJzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdWYWlraW1pc2kgbWFsbGlkJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGUgY29udGVudHMgb2YgdGhlc2UgdGV4dCBhcmVhcyBhcmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIGRlZmF1bHQgY29udGVudCBvZiB0ZW1wbGF0ZXMgd2hlbiB5b3UgY2xpY2sgJnF1b3Q7QWRkIFRlbXBsYXRlJnF1b3Q7IGluIHRoZSBhcHByb3ByaWF0ZSB0ZW1wbGF0ZSB0YWIuICBFZGl0aW5nIG9uZSBvZiB0aGVzZSB0ZXh0IGFyZWFzIHdpbGwgaGF2ZSBubyBpbW1lZGlhdGUgZWZmZWN0IG9uIHlvdXIgd2Vic2l0ZS4nOwokbGFuZ1snZGVsZXRlJ10gPSAnS3VzdHV0YSc7CiRsYW5nWydkZWxldGVfYXR0cmlic2V0J10gPSAnS3VzdHV0YSBhdHRyaWJ1dXQnOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAnS3VzdHV0YSBoaWVyYXJoaWEgZWxlbWVudCc7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnS2FoYW5ldmFsdCc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0tpcmplbGR1cyc7CiRsYW5nWydkZXRhaWxzJ10gPSAnRGV0YWlsaWQnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAnRGV0YWlsaWRlIG1hbGwnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ0xpc2EvTXV1ZGEgZGV0YWlsaWRlIG1hbGwnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdEaXNhYmxlZCc7CiRsYW5nWydkcmFmdCddID0gJ011c3RhbmQnOwokbGFuZ1snZHJvcGRvd24nXSA9ICdEcm9wZG93bic7CiRsYW5nWydkcm9wZG93bl9vcHRpb25zJ10gPSAnRHJvcGRvd24gT3B0aW9ucyA8ZW0+KGFwcGxpY2FibGUgb25seSBmb3IgZHJvcGRvd24gZmllbGRzKTwvZW0+PGJyLz48YnIvPjxlbT4ob25lIGVudHJ5IHBlciBsaW5lKTwvZW0+JzsKJGxhbmdbJ2VkaXQnXSA9ICdNdXVkYSc7CiRsYW5nWydlZGl0X2F0dHJpYnNldCddID0gJ011dWRhIGF0dHJpYnV1dGknOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzJ10gPSAnTXV1ZGEgYXR0cmlidXVkaSBzZWFkZWlkJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0c19mb3InXSA9ICdFZGl0IEF0dHJpYnV0ZSBTZXRzIEZvcic7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdNdXVkYSBhdHRyaWJ1dXRlJzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnknXSA9ICdNdXVkYSBrYXRlZ29vcmlhdCc7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ011dWRhIGthdGVnb29yaWEgdiZhdW1sO2xqdSc7CiRsYW5nWydlZGl0X2hpZXJhcmNoeV9pdGVtJ10gPSAnTXV1ZGEgaGllcmFyaGlhIGVsZW1lbnRpJzsKJGxhbmdbJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnXSA9ICdTZWxsaXNlIG5pbWVnYSBhdHRyaWJ1dXQgb24ganViYSBvbGVtYXMnOwokbGFuZ1snZXJyb3JfZmllbGR2YWx1ZV9lbXB0eSddID0gJ1YmYXVtbDtsamEgdiZhdW1sOyZhdW1sO3J0dXMgZWkgc2FhIG9sbGEgdCZ1dW1sO2hpJzsKJGxhbmdbJ2Vycm9yX2ZpbGVmb3JtYXQnXSA9ICdGYWlsaSBmb3JtYWFkaSBwcm9ibGVlbSc7CiRsYW5nWydlcnJvcl9maWxlbm90Zm91bmQnXSA9ICdGYWlsaSBlaSBsZWl0dWQnOwokbGFuZ1snZXJyb3JfZmlsZW9wZW4nXSA9ICdQcm9ibGVlbSBmYWlsaSAlcyBhdmFtaXNlbCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnVmFsZSB2YW5lbSAoaGllcmFyaGlhIGVsZW1lbnQgZWkgc2FhIG9sbGEgaXNlZW5kYSB2YW5lbSknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9uYW1lJ10gPSAnVGhlIGN1c3RvbSBmaWVsZCB2YWx1ZSBlbnRlcmVkIGlzIGludmFsaWQgKGNvbnRhaW5zIG5vbiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyknOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnQSByZXF1aXJlZCBwYXJhbWV0ZXIgaXMgbWlzc2luZyBvciBpbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX25hbWV1c2VkJ10gPSAnQW4gaXRlbSBieSB0aGF0IG5hbWUgaXMgYWxyZWFkeSBpbiB1c2UnOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdQbGVhc2Ugc2VsZWN0IGEgZmllbGQgdHlwZSc7CiRsYW5nWydlcnJvcl9ub25hbWUnXSA9ICdZb3UgbXVzdCBzdXBwbHkgYSBuYW1lJzsKJGxhbmdbJ2Vycm9yX3Blcm1pc3Npb25kZW5pZWQnXSA9ICdQZXJtaXNzaW9uIERlbmllZCc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X25hbWV1c2VkJ10gPSAnU2VsbGlzZSBuaW1lIHRvb2RlIG9uIGp1YmEgb2xlbWFzJzsKJGxhbmdbJ2Vycm9yX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdWYWxlIGhpbm5hIG11dWRhdHVzZSB2JmF1bWw7JmF1bWw7cnR1cyBlbGVtZW5kaWxlICVzJzsKJGxhbmdbJ2Vycm9yX3VwbG9hZF9mYWlsZWQnXSA9ICcmVXVtbDtsZXNsYWFkaW1pbmUgZWJhJm90aWxkZTtubmVzdHVzOiAlcyc7CiRsYW5nWydleHRyYTEnXSA9ICdFa3N0cmEgdiZhdW1sO2xpIDEnOwokbGFuZ1snZXh0cmEyJ10gPSAnRWtzdHJhIHYmYXVtbDtsaSAyJzsKJGxhbmdbJ2ZpZWxkJ10gPSAnViZhdW1sO2xpJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnViZhdW1sO2xqYSBkZWZpbml0c2lvb24nOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnViZhdW1sO2xqYSBkZWZpbml0c2lvb25pZCc7CiRsYW5nWydmaWxlJ10gPSAnRmFpbCc7CiRsYW5nWydmaWx0ZXJzJ10gPSAnRmlsdHJpZCc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICc8PCc7CiRsYW5nWydnZW5lcmFsX3NldHRpbmdzJ10gPSAnUGVhbWlzZWQgc2VhZGVkJzsKJGxhbmdbJ2dvJ10gPSAnTWluZSc7CiRsYW5nWydoaWVyYXJjaHknXSA9ICdIaWVyYXJoaWEnOwokbGFuZ1snaGllcmFyY2h5X3Bvc2l0aW9uJ10gPSAnSGllcmFyaGlhIHBvc2l0c2lvb24nOwokbGFuZ1snaWQnXSA9ICdJZCc7CiRsYW5nWydpbWFnZXRleHQnXSA9ICdQaWx0JzsKJGxhbmdbJ2ltYWdlX2hhbmRsaW5nX3NldHRpbmdzJ10gPSAnUGlsZGkgayZhdW1sO2l0bGVtaXNlIHNlYWRlZCc7CiRsYW5nWydpbXBvcnRfZnJvbV9jc3YnXSA9ICdJbXBvcnQgUHJvZHVjdHMgZnJvbSBDU1YgZmlsZSc7CiRsYW5nWydpbmNsdWRlX2NoaWxkcmVuJ10gPSAnSW5jbHVkZSBDaGlsZHJlbj8nOwokbGFuZ1snaW5mb19hbG51bW9ubHknXSA9ICdPbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLiBObyB3aGl0ZXNwYWNlLCBxdW90ZXMsIG9yIG5vbiBsZXR0ZXIvbnVtYmVyIGNvbWJpbmF0aW9ucyc7CiRsYW5nWydpbmZvX2F1dG93YXRlcm1hcmsnXSA9ICdXYXRlcm1hcmsgc2V0dGluZ3MgYXJlIHRha2VuIGZyb20gdGhlIENHRXh0ZW5zaW9ucyBNb2R1bGUnOwokbGFuZ1snaW5mb19iYXRjaHNpemUnXSA9ICdTZXQgdGhlIG51bWJlciBvZiBsaW5lcyB0byBwcm9jZXNzIHBlciAmcXVvdDtiYXRjaCZxdW90Oy4gIEFmdGVyIGEgYmF0Y2ggaXMgY29tcGxldGUsIHRoZSBpbXBvcnRlciB3aWxsIHJlZGlyZWN0LCBhbmQgcmVzdW1lIG9wZXJhdGlvbnMuICBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBtZW1vcnkgZXJyb3JzLCBvciB0aW1lb3V0IHByb2JsZW1zIGR1ZSB0byBsYXJnZSBhbW91bnRzIG9mIHByb2Nlc3NpbmcsIHlvdSBtYXkgbmVlZCB0byBjb25zdWx0IHlvdXIgaG9zdCBwcm92aWRlciwgb3IgcmVkdWNlIHRoaXMgbnVtYmVyJzsKJGxhbmdbJ2luZm9fY2FydF9tb2R1bGVfcGFyYW1zJ10gPSAnVGhlc2UgcGFyYW1ldGVycyBhcmUgZ2l2ZW4gdG8gdGhlIHNlbGVjdGVkIGNhcnQgbW9kdWxlIGZyb20gdGhlIHByb2R1Y3QgZGV0YWlsIGFuZCBzdW1tYXJ5IGRpc3BsYXlzJzsKJGxhbmdbJ2luZm9fY3JlYXRlZmllbGRzJ10gPSAnQ3JlYXRlIHVua25vd24gcHJvZHVjdCBmaWVsZHMgYXV0b21hdGljYWxseT8gPGVtPihUaGV5IHdpbGwgYmUgY3JlYXRlZCBhcyB0ZXh0IGZpZWxkcyk8L2VtPic7CiRsYW5nWydpbmZvX2NyZWF0ZWNhdGVnb3JpZXMnXSA9ICdBdXRvbWF0aWNhbGx5IGNyZWF0ZSBwcm9kdWN0IGNhdGVnb3JpZXMgdG8gbWF0Y2ggdGhvc2Ugb2YgdGhlIENTViBmaWxlLCBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0JzsKJGxhbmdbJ2luZm9fY3JlYXRlaGllcmFyY2h5J10gPSAnQXV0b21hdGljYWxseSBjcmVhdGUgcHJvZHVjdCBoaWVyYXJjaGllcyB0byBtYXRjaCB0aG9zZSBvZiB0aGUgQ1NWIGZpbGUgaWYgaXQgZG9lcyBub3QgYWxyZWFkeSBleGlzdCc7CiRsYW5nWydpbmZvX2RlY2ltYWxfdW5pdHMnXSA9ICdUaGlzIHN5c3RlbSB1bmRlcnN0YW5kcyAoLikgYXMgdGhlIGRlY2ltYWwgcG9pbnQgc2VwYXJhdG9yLiBpLmUuOiA8c3Ryb25nPjUuMjU8L3N0cm9uZz4nOwokbGFuZ1snaW5mb19kZWxpbWl0ZXInXSA9ICdTcGVjaWZ5IHRoZSBjaGFyYWN0ZXIgKG9yIGNoYXJhY3RlcnMpIHRoYXQgc2VwZXJhdGUgZWFjaCBmaWVsZCc7CiRsYW5nWydpbmZvX2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnU3BlY2lmeSBob3cgdGhlIHN5c3RlbSBzaG91bGQgaGFuZGxlIGEgcHJvZHVjdCB3aG9zIG5hbWUgYWxyZWFkeSBleGlzdHMgaW4gdGhlIENTViBmaWxlJzsKJGxhbmdbJ2luZm9fZmllbGRkZWZzX3RhYiddID0gJzxzdHJvbmc+Tm90ZTogPC9zdHJvbmc+IEFsbCBGaWVsZHMgZGVmaW5lZCBoZXJlIGFyZSBhdmFpbGFibGUgdG8gYWxsIHByb2R1Y3RzLic7CiRsYW5nWydpbmZvX2ZpZWxkcHJvYmxlbXMnXSA9ICdQcm9ibGVtcyB3ZXJlIGVuY291bnRlcmVkIHdoZW4gZGVhbGluZyB3aXRoIG9uZSBvciBtb3JlIGN1c3RvbSBmaWVsZHMuICBUaGUgYWN0aW9uIGhhcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LCBob3dldmVyIHlvdSBzaG91bGQgaW52ZXN0aWdhdGUgYW5kIGNvcnJlY3QgdGhlc2UgcHJvYmxlbXMnOwokbGFuZ1snaW5mb19oYW5kbGVpbWFnZXMnXSA9ICdVcG9uIGltcG9ydCwgaWYgYW4gaW1hZ2UgZmlsZW5hbWUgaXMgZm91bmQgaW4gYSBmaWVsZCBjb2x1bW4sIHNob3VsZCBpdCBiZSBtb3ZlZCBmcm9tIHRoZSBzb3VyY2UgbG9jYXRpb24sIHdhdGVybWFya2VkLCB0aHVtYm5haWxlZCwgYW5kIHRoZSBmaWVsZCB0eXBlIGNoYW5nZWQgdG8gJnF1b3Q7aW1hZ2UmcXVvdDsnOwokbGFuZ1snaW5mb19pbWFnZXBhdGgnXSA9ICdUaGUgcGF0aCAocmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyZWN0b3J5KSB3aGVyZSBpbWFnZXMgcmVmZXJyZWQgdG8gaW4gdGhlIGltcG9ydCBmaWxlLCBjYW4gYmUgZm91bmQnOwokbGFuZ1snaW5mb19pbXBvcnRfdGVzdF9wYXNzZWQnXSA9ICdBIGJyaWVmIHRlc3QgYXMgYmVlbiBwZXJmb3JtZWQgb24gdGhlIGlucHV0IGZpbGUgc3BlY2lmaWVkLCBhbmQgZXZlcnl0aGluZyBhcHBlYXJzIHRvIGJlIGNvcnJlY3QuPGJyLz5UaGlzIGlzIG5vIGluZGljYXRpb24gdGhhdCB0aGVyZSBhcmUgbm8gZXJyb3JzIGluIHRoZSBmaWxlLic7CiRsYW5nWydpbmZvX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdWYWxpZCB2YWx1ZXMgYXJlICstKiMuIyMnOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gJ1B1YmxpYyBmaWVsZHMgYXJlIGF2YWlsYWJsZSBmb3IgdGhlIHB1YmxpYyB0byBzZWUnOwokbGFuZ1snbGFiZWwnXSA9ICdMYWJlbCc7CiRsYW5nWydsYWJlbF9za2lwJ10gPSAnU2tpcCc7CiRsYW5nWydsYWJlbF9vdmVyd3JpdGUnXSA9ICdPdmVyd3JpdGUnOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnVmlpbWF0aSBtdXVkZXR1ZCc7CiRsYW5nWydsb2dvdGV4dCddID0gJ1RlaW5lIHBpbHQnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4aW11bSBsZW5ndGggPGVtPihhcHBsaWNhYmxlIG9ubHkgb24gdGV4dGJveCBmaWVsZHMpPC9lbT4nOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnbXV1ZGV0dWQnOwokbGFuZ1snbW9kdWxlX2Rlc2NyaXB0aW9uJ10gPSAnQSBtb2R1bGUgZm9yIG1hbmFnaW5nIGEgY2F0YWxvZyBvZiBwcm9kdWN0cywgdGhlaXIgcHJpY2UsIGltYWdlcywgZXRjLCBhbmQgZm9yIGFsbG93aW5nIHVzZXJzIHRvIGJ1aWxkIGEgY2FydCc7CiRsYW5nWyduYW1lJ10gPSAnTmltaSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ1lvdSBkbyBub3QgaGF2ZSB0aGUgcmVxdWlyZWQgcGVybWlzc2lvbjogJXMnOwokbGFuZ1snbmV3X2NhdGVnb3J5X25hbWUnXSA9ICdVdXMga2F0ZWdvb3JpYSBuaW1pJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydubyddID0gJ0VpJzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnTmltZSBlaSBlc2l0YXR1ZCc7CiRsYW5nWydub25lJ10gPSAnUG9sZSc7CiRsYW5nWydvZiddID0gJ2tva2t1JzsKJGxhbmdbJ3BhZ2UnXSA9ICdMZWhlayZ1dW1sO2xnJzsKJGxhbmdbJ3BhZ2Vfb2YnXSA9ICdMZWhlayZ1dW1sO2xnICVzICVzJiMwMzk7c3QnOwokbGFuZ1sncGFnZV9saW1pdCddID0gJ0xlaGVrJnV1bWw7bGplIGxpbWlpdCc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcGVjaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5oaWVyYXJjaHkgLS0gRGlzcGxheSBhIHByb2R1Y3QgbGlzdCBieSBoaWVyYXJjaHk8L2xpPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdCBjYXRlZ29yaWVzPC9saT4NCiAgPGxpPjxlbT5kZWZhdWx0PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyeSBvZiBwcm9kdWN0czwvbGk+DQogIDxsaT5kZXRhaWxzIC0gRGlzcGxheSBhIGRldGFpbCB2aWV3IG9mIGEgc2luZ2xlIHByb2R1Y3Q8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdXaGVuIHVzZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciwgd2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBuYW1lIG9mIGFuIGV4aXN0aW5nIGNhdGVnb3J5IHdpbGwgYmUgdXNlZCB0byBkaXNwbGF5IG9ubHkgdGhvc2UgcHJvZHVjdHMgdGhhdCBhcmUgaW4gdGhhdCBjYXRlZ29vcnkuIChhIGNvbW1hIHNlcGVyYXRlZCBsaXN0IGNhbiBiZSBzdXBwbGllZCknOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1fZGV0YWlscGFnZSddID0gJ1RoaXMgc3BlY2lmaWVzIHRoZSBwYWdlaWQgb3IgYWxpYXMgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBkZXRhaWwgcmVwb3J0Lic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRldGFpbCBtb2RlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1faGllcmFyY2h5J10gPSAnVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhhdCBvbmx5IGl0ZW1zIGluIHRoYXQgbG9jYXRpb24gb2YgdGhlIGhpZXJhcmNoeSBzaG91bGQgYmUgZGlzcGxheWVkLiAgV2lsZGNhcmQgY2hhcmFjdGVyIGNhbiBiZSB1c2VkIHNvIHRoYXQgeW91IGNhbiBzcGVjaWZ5IHBhcmVudC9jaGlsZCByZWxhdGlvbnNoaXBzIGFzIHdlbGwuICBpLmUge1Byb2R1Y3RzIGhpZXJhcmNoeT0mIzAzOTt0cnVja3MqJiMwMzk7fSB3aWxsIGNyZWF0ZSBhIHN1bW1hcnkgcmVwb3J0IG9mIGFsbCB0cnVja3MsIGluY2x1ZGluZyB0aGUgY2hpbGRyZW4gaW4gdGhlIGhpZXJhcmNoeS4gIFNpbWlsYXJseSwge1Byb2R1Y3RzIGhpZXJhcmNoeT0mIzAzOTsqdHJ1Y2tzJiMwMzk7fSB3aWxsIGRpc3BsYXkgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBhbmQgYWxsIHByb2R1Y3RzIGJlbG9naW5nIHRvIGFueSBwYXJlbnQgaW4gdGhlIGhpZXJhcmNoeS4nOwokbGFuZ1sncGFyYW1faGllcmFyY2h5dGVtcGxhdGUnXSA9ICdUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBoaWVyYXJjaHkgZGlzcGxheS4gSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIGxpc3RlZCBvbiBlYWNoIHBhZ2UuJzsKJGxhbmdbJ3BhcmFtX3BhcmVudCddID0gJ1VzZWZ1bCBvbmx5IGluIHRoZSA8ZW0+aGllcmFyY2h5PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIGhpZXJhcmNoeSBpZCBvZiB0aGUgc3RhcnRpbmcgbG9jYXRpb24gb2YgdGhlIHJlcG9ydC4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGlkJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgZGV0YWlsIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHdoYXQgcHJvZHVjdCB0byB1c2UgZm9yIHRoZSBkaXNwbGF5Lic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcGVjaWZ5IHRoZSBvcmRlciBvZiBzb3J0ZWQgZmllbGRzIGluIHN1bW1hcnkgdmlldy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBBc2NlbmRpbmcgb3JkZXI8L2xpPg0KICA8bGk+ZGVzYyAtLSBEZXNjZW5kaW5nIG9yZGVyPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gJ0FwcGxpY2FibGUgb25seSBpbiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyIGRldGVybWluZXMgdGhlIHNvcnRpbmcgb2YgdGhlIG91dHB1dCBwcm9kdWN0cy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPnByb2R1Y3RfbmFtZTwvc3Ryb25nPjwvbGk+DQogIDxsaT5pZCAtLSBUaGUgcHJvZHVjdCBpZDwvbGk+DQogIDxsaT53ZWlnaHQgLS0gVGhlIHByb2R1Y3Qgd2VpZ2h0PC9saT4NCiAgPGxpPnByaWNlIC0tIFRoZSBwcm9kdWN0IGJhc2UgcHJpY2U8L2xpPg0KICA8bGk+c3RhdHVzIC0tIERyYWZ0IG9yIHB1Ymxpc2hlZDwvbGk+DQogIDxsaT5yYW5kb20gLS0gRGlzcGxheSBpbiByYW5kb20gb3JkZXIgb24gZWFjaCByZXF1ZXN0PC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gVGhlIGNyZWF0aW9uIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KICA8bGk+bW9kaWZpZWQgLS0gVGhlIG1vZGlmaWVkIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgc3VtbWFyeSBtb2RlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyZW50J10gPSAnRWVsbWluZSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1Rvb2RldGUgbW9vZHVsIG9uIGVkdWthbHQgcGFpZ2FsZGF0dWQnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1Rvb2RldGUgbW9vZHVsIG9uIGVlbWxkYXR1ZCBrb29zIGsmb3RpbGRlO2lraWRlIHNlb3R1ZCBhbmRtZXRlZ2EnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdFZWxpc3R1c2VkJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ1NlbGxlIG1vb2R1bGkgZWVtYWxkYW1pbmUgZWVtYWxkYWIga2EgayZvdGlsZGU7aWsgc2VvdHVkIGFuZG1lZCwgb2xlZCBzYSBraW5kZWwsIGV0IHNvb3ZpZCBqJmF1bWw7dGthdGE/JzsKJGxhbmdbJ3ByaWNlJ10gPSAnSGluZCc7CiRsYW5nWydwcmljZV9hZGp1c3RtZW50J10gPSAnSGlubmEgbXV1ZGF0dXMnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb2R1Y3QnXSA9ICdUb29kZSc7CiRsYW5nWydwcm9kdWN0bmFtZSddID0gJ1Rvb3RlIG5pbWknOwokbGFuZ1sncHJvZHVjdHMnXSA9ICdUb290ZWQnOwokbGFuZ1sncHJvZHVjdF9oaWVyYXJjaHknXSA9ICdUb290ZSBoaWVyYXJoaWEnOwokbGFuZ1sncHJvZHVjdF9tYW5hZ2VyJ10gPSAnVG9vdGUgaGFsZHVyJzsKJGxhbmdbJ3Byb2dyZXNzJ10gPSAnUHJvZ3Jlc3MnOwokbGFuZ1sncHJvbXB0J10gPSAnUHJvbXB0JzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ZpbGV0eXBlcyddID0gJ0FsbG93IHVwbG9hZCBvZiBmaWxlcyB3aXRoIHRoZXNlIGV4dGVuc2lvbnMgKGZvciBmaWxlIHR5cGUgZmllbGRzKSc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZXR5cGVzJ10gPSAnQWxsb3cgdXBsb2FkIG9mIGltYWdlcyB3aXRoIHRoZXNlIGV4dGVuc2lvbnMgKGZvciBpbWFnZSB0eXBlIGZpZWxkcyknOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWwnXSA9ICdBdXRvbWF0aWNhbGx5IGNyZWF0ZSB0aHVtYm5haWxzIG9mIGltYWdlcyc7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbF9zaXplJ10gPSAnTWF4aW11bSBzaXplIChsYXJnZXN0IGRpbWVuc2lvbikgb2YgdGhlIHRodW1ibmFpbC4nOwokbGFuZ1sncHJvbXB0X2F1dG9wcmV2aWV3aW1nJ10gPSAnQXV0b21hdGljYWxseSBjcmVhdGUgcHJldmlldyBpbWFnZXMgb2YgaW1hZ2VzJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZ19zaXplJ10gPSAnTWF4aW11bSBzaXplIChsYXJnZXN0IGRpbWVuc2lvbikgb2YgdGhlIHByZXZpZXcgaW1hZ2UuJzsKJGxhbmdbJ3Byb21wdF9hdXRvd2F0ZXJtYXJrJ10gPSAnQXV0b21hdGljYWxseSBwbGFjZSB3YXRlcm1hcmtzIG9uIGltYWdlcyc7CiRsYW5nWydwcm9tcHRfYXBwbGljYWJsZSddID0gJ0VuYWJsZSBieSBkZWZhdWx0IGZvciBhbGwgbmV3IHByb2R1Y3RzJzsKJGxhbmdbJ3Byb21wdF9iYXRjaHNpemUnXSA9ICdCYXRjaCBTaXplJzsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZSddID0gJ0NhcnQgTW9kdWxlJzsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdDYXJ0IE1vZHVsZSBQYXJhbWV0ZXJzJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVjYXRlZ29yaWVzJ10gPSAnTG9vIGthdGVnb29yaWFpZCc7CiRsYW5nWydwcm9tcHRfY3JlYXRlZmllbGRzJ10gPSAnTG9vIHRvb3RlIHYmYXVtbDtsamFzaWQ/JzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVoaWVyYXJjaHknXSA9ICdMb28gdG9vdGUgaGllcmFyaGlhJzsKJGxhbmdbJ3Byb21wdF9jc3ZmaWxlJ10gPSAnVXBsb2FkIENTViBGaWxlJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeWNvZGUnXSA9ICdWYWx1dXRhIGtvb2QnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAnVmFsdXV0YSBzJnV1bWw7bWJvbCc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF9zdGF0dXMnXSA9ICdWYWlraW1pc2kgayZvdGlsZGU7aWtpZGVsIHV1dGVsIHRvb2RldGVsIG9uIHNlZSBvbGVrJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0X3RheGFibGUnXSA9ICdWYWlraW1pc2kgayZvdGlsZGU7aWsgdXVlZCB0b290ZWQgb24gbWFrc3VzdGF2YWQnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gJ0t1c3R1dGEgayZvdGlsZGU7aWsgdG9vdGVnYSBzZW90dWQgZmFpbGlkLCBrdWkgdG9vZGUga3VzdHV0YXRha3NlPyc7CiRsYW5nWydwcm9tcHRfZGVsaW1pdGVyJ10gPSAnViZhdW1sO2xqYSBlcmFsZGFqYSc7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ1ZhaWtpbWlzaSBkZXRhaWxpIGxlaHQnOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnSG93IHRvIGhhbmRsZSBkdXBsaWNhdGUgcHJvZHVjdHM/JzsKJGxhbmdbJ3Byb21wdF9oYW5kbGVpbWFnZXMnXSA9ICdIYW5kbGUgaW1hZ2VzPyc7CiRsYW5nWydwcm9tcHRfaW1hZ2VwYXRoJ10gPSAnSW1hZ2UgUGF0aCc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRvcmRlciddID0gJ0RlZmF1bHQgU29ydCBPcmRlciBpbiBzdW1tYXJ5IG1vZGUnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnRGVmYXVsdCBTb3J0IEZpZWxkIGluIHN1bW1hcnkgbW9kZSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBTb3VyY2UnOwokbGFuZ1sncHJvbXB0X3VybHByZWZpeCddID0gJ1ByZWZpeCB0byB1c2Ugb24gYWxsIFVSTFMgdGFyZ2V0ZWQgdG8gdGhpcyB0aGlzIG1vZHVsZSc7CiRsYW5nWydwcm9tcHRfd2VpZ2h0dW5pdHMnXSA9ICdLYWFsdSAmdXVtbDtoaWt1ZCc7CiRsYW5nWydwdWJsaWMnXSA9ICdLYXMgc2VlIG9uIGF2YWxpayB2JmF1bWw7bGk/Pyc7CiRsYW5nWydwdWJsaXNoZWQnXSA9ICdBdmFsZGF0dWQnOwokbGFuZ1sncmFuZG9tJ10gPSAnU3V2YWxpbmUnOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdUYWFzdGEgdGVoYXNlIHYmYXVtbDsmYXVtbDtydHVzZWQnOwokbGFuZ1sncmV0dXJuJ10gPSAnVGFnYXNpJzsKJGxhbmdbJ3JldHVybl90b190b3AnXSA9ICdUYWdhc2kgdmFhdGUgdGlwcHUnOwokbGFuZ1sncm9vdCddID0gJ0p1dXInOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1ZhbGkgJnV1bWw7a3MnOwokbGFuZ1snc29ydF9ieSddID0gJ1NvcnRlZXJpJzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdTb3J0ZWVyaSBqJmF1bWw7cmpla29yZCc7CiRsYW5nWydzdGF0dXMnXSA9ICdPbGVrJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1NhYWRhJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdLb2trdXYmb3RpbGRlO3R0ZSBtYWxsJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGlzYS9NdXVkYSBrb2trdXYmb3RpbGRlO3R0ZSBtYWxsJzsKJGxhbmdbJ3RheGFibGUnXSA9ICdNYWtzdXN0YXRhdic7CiRsYW5nWyd0ZXN0J10gPSAnVGVzdCc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ1RleHQgQXJlYSc7CiRsYW5nWyd0ZXh0Ym94J10gPSAnVGV4dCBJbnB1dCc7CiRsYW5nWyd0aXRsZV9ieWhpZXJhcmNoeV9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IE5ldyBIaWVyYXJjaHkgUmVwb3J0IFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NhdGVnb3J5bGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IE5ldyBDYXRlZ29yeUxpc3QgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfZGV0YWlsX2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgTmV3IERldGFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgTmV3IFN1bW1hcnkgVGVtcGxhdGUnOwokbGFuZ1sndHlwZSddID0gJ1QmdXVtbDsmdXVtbDtwJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ1V1ZW5kYSc7CiRsYW5nWyd1cGxvYWQnXSA9ICdWYWxpIGZhaWwgJnV1bWw7bGVzbGFhZGltaXNla3MnOwokbGFuZ1sndmFsaWQnXSA9ICdLZWh0aXYnOwokbGFuZ1sndmFsdWUnXSA9ICdWJmF1bWw7JmF1bWw7cnR1cyc7CiRsYW5nWyd2YWx1ZXMnXSA9ICdWJmF1bWw7JmF1bWw7cnR1c2VkJzsKJGxhbmdbJ3dhdGVybWFya19sb2NhdGlvbiddID0gJ1Zlc2lwaWxkaSBhc3Vrb2h0JzsKJGxhbmdbJ3dlaWdodCddID0gJ0thYWwnOwokbGFuZ1sneWVzJ10gPSAnSmFoJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMzIxNTU0NTI2NjczMjAxOTAwMC4xMjQxMDkxNzg3LjEyNTU1MjgzMzAuMTI1NTYwMjI5MC4xNjUnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjU0NDY5MDgzLjE0NS4yOC51dG1jY249KG9yZ2FuaWMpfHV0bWNzcj1nb29nbGV8dXRtY3RyPWNtc21zIHJlcXVpcmVtZW50c3x1dG1jbWQ9b3JnYW5pYyc7CiRsYW5nWydxY2EnXSA9ICcxMjQwNjgzNjE1LTU4NDA5OTczLTc5OTE1MzAzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMuMS4xMC4xMjU1NjAyMjkwJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fi_FI.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfbGVuZ3RoJ10gPSAnTCc7CiRsYW5nWydhYmJyX3dpZHRoJ10gPSAnVyc7CiRsYW5nWydhYmJyX2hlaWdodCddID0gJ0gnOwokbGFuZ1snYWRkJ10gPSAnTGlzJmF1bWw7JmF1bWw7JzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnTGlzJmF1bWw7JmF1bWw7IGthdGVnb3JpYSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0xpcyZhdW1sOyZhdW1sOyBrZW50dCZhdW1sOyc7CiRsYW5nWydhZGp1c3RhYmxlJ10gPSAnUyZhdW1sOyZhdW1sO2RldHQmYXVtbDt2JmF1bWw7JzsKJGxhbmdbJ2FkZHByb2R1Y3QnXSA9ICdMaXMmYXVtbDsmYXVtbDsgdHVvdGUnOwokbGFuZ1snYWRkX2F0dHJpYl9zZXQnXSA9ICdMaXMmYXVtbDsmYXVtbDsgYXR0cmlidXV0dGknOwokbGFuZ1snYWRkX2NhdGVnb3J5X2ZpZWxkJ10gPSAnTGlpdCZhdW1sOyBrZW50dCZhdW1sOyBrYXRlZ29yaWFhbjogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnTGlzJmF1bWw7JmF1bWw7IGhpZXJhcmtpYSc7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAnTGlzJmF1bWw7JmF1bWw7IGF0dHJpYnV1dHRpIG9wdGlvJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdOJmF1bWw7a3l2eXlzIHBlbGsmYXVtbDtzdCZhdW1sOyZhdW1sO24gYWRtaW5laWxsZSB0JmF1bWw7aCZhdW1sO24gYXR0cmlidXV0dGlpbj8nOwokbGFuZ1snYWR2YW5jZWQnXSA9ICdLZWhpdHR5bnl0JzsKJGxhbmdbJ2FsaWduX3VsJ10gPSAnWWwmb3VtbDtzIHZhc2VtbWFsbGUnOwokbGFuZ1snYWxpZ25fdWMnXSA9ICdZbCZvdW1sO3Mga2Vza2VsbGUnOwokbGFuZ1snYWxpZ25fdXInXSA9ICdZbCZvdW1sO3Mgb2lrZWFsbGUnOwokbGFuZ1snYWxpZ25fbWwnXSA9ICdLZXNrZWxsZSB2YXNlbW1hbGxlJzsKJGxhbmdbJ2FsaWduX21jJ10gPSAnS2Vza2VsbGUnOwokbGFuZ1snYWxpZ25fbXInXSA9ICdLZXNrZWxsZSBvaWtlYWxsZSc7CiRsYW5nWydhbGlnbl9sbCddID0gJ0FsYXMgdmFzZW1tYWxsZSc7CiRsYW5nWydhbGlnbl9sYyddID0gJ0FsYXMga2Vza2VsbGUnOwokbGFuZ1snYWxpZ25fbHInXSA9ICdBbGFzIG9pa2VhbGxlJzsKJGxhbmdbJ2FsbCddID0gJ0thaWtraSc7CiRsYW5nWydhbGxjYXRlZ29yaWVzJ10gPSAnS2Fpa2tpIGthdGVnb3JpYXQnOwokbGFuZ1snYW55J10gPSAnTWlrJmF1bWw7IHRhaGFuc2EnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ09sZXRrbyB2YXJtYT8nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVwcm9kdWN0J10gPSAnT2xldGtvIHZhcm1hLCBldHQmYXVtbDsgaGFsdWF0IHBvaXN0YWEgdCZhdW1sO20mYXVtbDtuIHR1b3R0ZWVuIGphIHNlbiB0aWVkb3Q/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ05vdXNldmEnOwokbGFuZ1snYXR0cmlidXRlX25hbWUnXSA9ICdBdHRyaWJ1dXRpbiBuaW1pJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYWF0dGluZW4nOwokbGFuZ1snYnRuX3NldGVjb21oYW5kbGVycyddID0gJ0FzZXRhIHZlcmtrb2thdXBhbiB0YXBhaHR1bWFrJmF1bWw7c2l0dGVsaWomYXVtbDt0JzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVzJ10gPSAnSGllcmFya2lhIHJhcG9ydHRpcG9oamF0JzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0xpcyZhdW1sOyZhdW1sOy9tdW9ra2FhIEhpZXJhcmtpYSByYXBvcnR0aXBvaGphYSc7CiRsYW5nWydjYW5jZWwnXSA9ICdQZXJ1dXRhJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdLYXRlZ29yaWF0JzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnS2F0ZWdvcmlhJzsKJGxhbmdbJ2NhdGVnb3J5ZXhpc3RzJ10gPSAnVCZhdW1sO20mYXVtbDtuIG5pbWluZW4ga2F0ZWdvcmlhIG9uIGpvIGx1b3R1JzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0thdGVnb3JpYWxpc3RhIHBvaGphdCc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGlzJmF1bWw7JmF1bWw7L211b2trYWEga2F0ZWdvcmlhbGlzdGEgcG9oamFhJzsKJGxhbmdbJ2NlbnRpbWV0ZXJzJ10gPSAnU2VudHRpbWV0cml0JzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnVmFsaW50YWxhYXRpa2tvJzsKJGxhbmdbJ2NvbmZpcm1fY29weWF0dHJpYnV0ZXMnXSA9ICdLYWlra2kgYXNldGV0dXQgYXR0cmlidXV0aXQgdCZhdW1sO2xsZSB0dW90dGVlbGxlIHBvaXN0ZXRhYW4uIE9sZXRrbyB2YXJtYSBldHQmYXVtbDsgaGFsdWF0IGphdGthYT8nOwokbGFuZ1snY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnXSA9ICdPbGV0a28gdmFybWEsIGV0dCZhdW1sOyBoYWx1YXQgcG9pc3RhYSB0JmF1bWw7bSZhdW1sO24gbm9kZW4/IEthaWtraSB0dW90dGVldCwgam90a2EgayZhdW1sO3l0dCZhdW1sO3YmYXVtbDt0IHQmYXVtbDt0JmF1bWw7IG5vZGVhIGFzZXRldGFhbiB0aWxhYW4gJnF1b3Q7ZWkgaGllcmFya2lhYSZxdW90Oy4nOwokbGFuZ1snY29uZmlybV9pbXBvcnQnXSA9ICdPbGV0a28gdmFybWEsIGV0dCZhdW1sOyBoYWx1YXQgdGVoZCZhdW1sOyB0JmF1bWw7bSZhdW1sO24/XG5cblYmYXVtbDsmYXVtbDtyJmF1bWw7dCBhc2V0dWtzZXQgdGFpIHZpcmhlZWxsaW5lbiBjb25maWctdGllZG9zdG8gdm9pIHB5c3l2JmF1bWw7c3RpIGtvcnJ1cHRvaWRhIHRvaW1pdmFuIHN5c3RlZW1pbic7CiRsYW5nWydjb3B5J10gPSAnS29waW9pJzsKJGxhbmdbJ2NvcHlfcHJvZHVjdCddID0gJ0tvcGlvaSB0JmF1bWw7bSZhdW1sOyB0dW90ZSc7CiRsYW5nWydjb3B5X2F0dHJpYl9zZXRzJ10gPSAnS29waW9pIGF0dHJpYnV1dGluIGFzZXR1a3NldCc7CiRsYW5nWydjb3B5X2NhdGVnb3J5J10gPSAnS29waW9pJzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnTHVvbnRpcCZhdW1sO2l2JmF1bWw7JzsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICdOeWt5aW5lbiBhcnZvJzsKJGxhbmdbJ2RhdGEnXSA9ICdUaWV0byc7CiRsYW5nWydkZWZhdWx0J10gPSAnT2xldHVzJzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdPbGV0dXNwb2hqYXQnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPkh1b206PC9zdHJvbmc+IE4mYXVtbDtpZGVuIHRla3N0aWtlbnR0aWVuIHNpcyZhdW1sO2xsJm91bWw7aWxsJmF1bWw7IG0mYXVtbDsmYXVtbDtyaXRldCZhdW1sOyZhdW1sO24gb2xldHVzc2lzJmF1bWw7bHQmb3VtbDsgcG9oamlsbGUsIGpvc3NhIGx1b3QgdXVkZW4gcG9oamFuIGtsaWtrYWFtYWxsYSAmYW1wO3F1b3Q7TGlzJmF1bWw7JmF1bWw7IHBvaGphJmFtcDtxdW90Oy4gVCZhdW1sO25uZSB0ZWhkeXQgbXV1dG9rc2V0IGVpdiZhdW1sO3QgdmFpa3V0YSBzdW9yYWFuIHNpdnVpbGxhIG4mYXVtbDtreXYmYXVtbDsmYXVtbDtuIHNpcyZhdW1sO2x0Jm91bWw7Jm91bWw7biAodmFpbiBvbGV0dXNwb2hqaWluKS4nOwokbGFuZ1snZGVsZXRlJ10gPSAnUG9pc3RhJzsKJGxhbmdbJ2RlbGV0ZV9hdHRyaWJzZXQnXSA9ICdQb2lzdGEgYXR0cmlidXV0dGknOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAnUG9pc3RhIGhpZXJhcmtpYSBuaW1pa2UnOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ0xhc2tldmEnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdLdXZhdXMnOwokbGFuZ1snZGVzdGluYXRpb24nXSA9ICdLb2hkZSc7CiRsYW5nWydkZXRhaWxzJ10gPSAnVGllZG90JzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ1lrc2l0eWlza29odGFpbmVuIHBvaGphdCc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGlzJmF1bWw7JmF1bWw7L211b2trYWEgeWtzaXR5aXNrb2h0YWlzdGEgcG9oamFhJzsKJGxhbmdbJ2RpbWVuc2lvbnMnXSA9ICdNaXRhdCc7CiRsYW5nWydkaXNhYmxlZCddID0gJ0FrdGl2b2l0dSc7CiRsYW5nWydkb3duJ10gPSAnU2lpcnImYXVtbDsgYWxhcyc7CiRsYW5nWydkcmFmdCddID0gJ0x1b25ub3MnOwokbGFuZ1snZHJvcGRvd24nXSA9ICdQdWRvdHVzdmFsaWtrbyc7CiRsYW5nWydkcm9wZG93bl9vcHRpb25zJ10gPSAnUHVkb3R1c3ZhbGlrb24gYXNldHVrc2V0IDxlbT4oc292ZWxsZXRhYW4gdmFpbiBwdWRvdHVzdmFsaWtvbiBrZW50dGlpbik8L2VtPjxici8+PGJyLz48ZW0+KHlrc2kga2VudHQmYXVtbDsgLyByaXZpKTwvZW0+JzsKJGxhbmdbJ2VkaXQnXSA9ICdNdW9ra2FhJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0J10gPSAnTXVva2thYSBhdHRyaWJ1dXR0aWEnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzJ10gPSAnTXVva2thYSBhdHRyaWJ1dXRpbiBhc2V0dWtzaWEnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzX2ZvciddID0gJ011b2trYWEgYXR0cmlidXV0aW4gYXNldHVrc2lhJzsKJGxhbmdbJ2VkaXRfYXR0cmlidXRlcyddID0gJ011b2trYWEgYXR0cmlidXV0dGVqYSc7CiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAnTGlzJmF1bWw7JmF1bWw7IGthdGVnb3JpYSc7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ011b2trYWEga2F0ZWdvcmlhIGtlbnR0aSZhdW1sOyAmcXVvdDslcyZxdW90OzpsbGUnOwokbGFuZ1snZWRpdF9oaWVyYXJjaHlfaXRlbSddID0gJ011b2trYWEgaGllcmFya2lhIGl0ZW1pJmF1bWw7JzsKJGxhbmdbJ2Vycm9ycyddID0gJ1ZpcmhlZXQnOwokbGFuZ1snZXJyb3JfYXR0cmlic2V0X2V4aXN0cyddID0gJ1NhbWFubmltaW5lbiBhdHRyaWJ1dXR0aSBvbiBqbyBsdW90dSc7CiRsYW5nWydlcnJvcl9kYmVycm9yJ10gPSAnVGlldG9rYW50YSB2aXJoZSc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfc2t1J10gPSAnRHVibGlrYWF0dGkgU0tVIGFydm8gbCZvdW1sO3lkZXR0eSc7CiRsYW5nWydlcnJvcl9maWVsZHZhbHVlX2VtcHR5J10gPSAnS2VudHQmYXVtbDsgZWkgdm9pIG9sbGEgdHloaiZhdW1sOyc7CiRsYW5nWydlcnJvcl9maWxlZm9ybWF0J10gPSAnVGllZG9zdG9mb3JtYWF0dGktb25nZWxtYSc7CiRsYW5nWydlcnJvcl9maWxlbm90Zm91bmQnXSA9ICdUaWVkb3N0b2EgZWkgbCZvdW1sO3lkeSc7CiRsYW5nWydlcnJvcl9maWxlb3BlbiddID0gJ1ZpcmhlIGF2YXR0YWVzc2EgdGllZG9zdG9hICVzJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJlbnQnXSA9ICdJbnZhbGlkIFBhcmVudCAoYSBoaWVyYXJjaHkgbm9kZSBjYW5ub3QgYmUgaXQmIzAzOTtzIG93biBwYXJlbnQpJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfbmFtZSddID0gJ1RoZSBjdXN0b20gZmllbGQgdmFsdWUgZW50ZXJlZCBpcyBpbnZhbGlkIChjb250YWlucyBub24gYWxwaGFudW1lcmljIGNoYXJhY3RlcnMpJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfdmFsdWUnXSA9ICdJbnZhbGlkIHZhbHVlIHNwZWNpZmllZCc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdBIHJlcXVpcmVkIHBhcmFtZXRlciBpcyBtaXNzaW5nIG9yIGludmFsaWQnOwokbGFuZ1snZXJyb3JfbmFtZXVzZWQnXSA9ICdBbiBpdGVtIGJ5IHRoYXQgbmFtZSBpcyBhbHJlYWR5IGluIHVzZSc7CiRsYW5nWydlcnJvcl9ub2ZpZWxkdHlwZSddID0gJ1BsZWFzZSBzZWxlY3QgYSBmaWVsZCB0eXBlJzsKJGxhbmdbJ2Vycm9yX25vbmFtZSddID0gJ1lvdSBtdXN0IHN1cHBseSBhIG5hbWUnOwokbGFuZ1snZXJyb3Jfb25lcXVhbnRpdHlmaWVsZCddID0gJ09ubHkgb25lIHF1YW50aXR5IGZpZWxkIGlzIGFsbG93ZWQnOwokbGFuZ1snZXJyb3Jfb25lc3Vic2NyaXB0aW9uZmllbGQnXSA9ICdPbmx5IG9uZSBzdWJzY3JpcHRpb24gZmllbGQgaXMgYWxsb3dlZCc7CiRsYW5nWydlcnJvcl9wZXJtaXNzaW9uZGVuaWVkJ10gPSAnUGVybWlzc2lvbiBEZW5pZWQnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9hbGlhc3VzZWQnXSA9ICdUaGUgYWxpYXMgc3BlY2lmaWVkIGlzIGFscmVhZHkgaW4gdXNlJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdBbiBpdGVtIGJ5IHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cyc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X25vdGZvdW5kJ10gPSAnVGhlIHJlcXVlc3RlZCBpdGVtIGNvdWxkIG5vdCBiZSBmb3VuZCc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X3NrdXVzZWQnXSA9ICdUaGF0IFNLVSB2YWx1ZSBpcyBhbHJlYWR5IGluIHVzZSBieSBhbm90aGVyIGl0ZW0nOwokbGFuZ1snZXJyb3JfcHJpY2VfYWRqdXN0bWVudCddID0gJ0ludmFsaWQgcHJpY2UgYWRqdXN0bWVudCB2YWx1ZSBmb3IgaXRlbSAlcyc7CiRsYW5nWydlcnJvcl9za3VfcmVxdWlyZWQnXSA9ICdQbGVhc2UgZW50ZXIgYSB1bmlxdWUgU0tVJzsKJGxhbmdbJ2Vycm9yX3VwbG9hZF9mYWlsZWQnXSA9ICdVcGxvYWQgZmFpbGVkOiAlcyc7CiRsYW5nWydleGNsdWRlX2NhdGVnb3JpZXMnXSA9ICdFeGNsdWRlIGl0ZW1zIGluIHRoZSBzZWxlY3RlZCBjYXRlZ29yaWVzIGZyb20gdGhlIHJlc3VsdHMnOwokbGFuZ1snZXhwaXJlX3NpeF9tb250aHMnXSA9ICdLdXVkZW4ga3V1a2F1ZGVuIGomYXVtbDtsa2Vlbic7CiRsYW5nWydleHBpcmVfb25lX3llYXInXSA9ICdZaGRlbiB2dW9kZW4gaiZhdW1sO2xrZWVuJzsKJGxhbmdbJ2V4cGlyZV90d29feWVhciddID0gJ0thaGRlbiB2dW9kZW4gaiZhdW1sO2xrZWVuJzsKJGxhbmdbJ2V4cG9ydF90b19jc3YnXSA9ICdMdW8gQ1NWJzsKJGxhbmdbJ2V4cG9ydGF0dHJpYnMnXSA9ICdWaWUgYXR0cmlidXV0aXQnOwokbGFuZ1snZXhwb3J0Y2F0cyddID0gJ1ZpZSBrYWVvcmlhdCc7CiRsYW5nWydleHBvcnRkZWxpbSddID0gJ1ZpZSBrZW50JmF1bWw7biBlcm90dGltZXQnOwokbGFuZ1snZXhwb3J0ZHJhZnQnXSA9ICdWaWUgbHVvbm5va3NldCc7CiRsYW5nWydleHBvcnRmaWVsZHMnXSA9ICdWaWUga2VudCZhdW1sO3QnOwokbGFuZ1snZXh0cmExJ10gPSAnRXh0cmEta2VudHQmYXVtbDsgMSc7CiRsYW5nWydleHRyYTInXSA9ICdFeHRyYS1rZW50dCZhdW1sOyAyJzsKJGxhbmdbJ2ZpZWxkJ10gPSAnS2VudHQmYXVtbDsnOwokbGFuZ1snZmllbGRzJ10gPSAnS2VudCZhdW1sO3QnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdLZW50JmF1bWw7biBtJmF1bWw7JmF1bWw7cml0eWtzZXQnOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnS2VudHRpZW4gbSZhdW1sOyZhdW1sO3JpdHlrc2V0JzsKJGxhbmdbJ2ZpbGUnXSA9ICdUaWVkb3N0byc7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0dGVyaSc7CiRsYW5nWydmaWx0ZXJpbnVzZSddID0gJ1ZvaW1hc3NhJzsKJGxhbmdbJ2ZpbHRlcnMnXSA9ICdGaWx0dGVyaXQnOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snZ2VuZXJhbF9zZXR0aW5ncyddID0gJ1lsZWlzZXQgYXNldHVrc2V0JzsKJGxhbmdbJ2dvJ10gPSAnTWVuZSc7CiRsYW5nWydoaWVyYXJjaHknXSA9ICdIaWVyYXJraWEnOwokbGFuZ1snaGllcmFyY2h5X3Bvc2l0aW9uJ10gPSAnSGllcmFya2lhbiBzaWphaW50aSc7CiRsYW5nWydoaWVyYXJjaHlfc2V0dGluZ3MnXSA9ICdIaWVyYXJraWFuIGFzZXR1a3NldCc7CiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ0t1dmEnOwokbGFuZ1snaW1hZ2VfaGFuZGxpbmdfc2V0dGluZ3MnXSA9ICdLdXZhbiBrJmF1bWw7c2l0dGVseWFzZXR1a3NldCc7CiRsYW5nWydpbXBvcnRfZnJvbV9jc3YnXSA9ICdUdW8gdHVvdHRlZXQgQ1NWLXRpZWRvc3Rvc3RhJzsKJGxhbmdbJ2luY2hlcyddID0gJ1R1dW1hdCc7CiRsYW5nWydpbmNsdWRlX2NoaWxkcmVuJ10gPSAnSW5jbHVkZSBDaGlsZHJlbj8nOwokbGFuZ1snaW5mb19hbG51bW9ubHknXSA9ICdPbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLiBObyB3aGl0ZXNwYWNlLCBxdW90ZXMsIG9yIG5vbiBsZXR0ZXIvbnVtYmVyIGNvbWJpbmF0aW9ucyc7CiRsYW5nWydpbmZvX2F0dHJpYnRlbXBsYXRlJ10gPSAnUG9zc2libGUgdmFyaWFibGVzIGFyZTogeyRhdHRyaWJfdGV4dH0seyRhdHRyaWJfYWRqdXN0fSx7JGN1cnJlbmN5X3N5bWJvbH0nOwokbGFuZ1snaW5mb19hdHRyaWJ1dGVzX2NvcGllZCddID0gJ0F0dHJpYnV1dHRpIGtvcGlvaXR1JzsKJGxhbmdbJ2luZm9fYXV0b3dhdGVybWFyayddID0gJ1dhdGVybWFyayBzZXR0aW5ncyBhcmUgdGFrZW4gZnJvbSB0aGUgQ0dFeHRlbnNpb25zIE1vZHVsZSc7CiRsYW5nWydpbmZvX2JhdGNoc2l6ZSddID0gJ1NldCB0aGUgbnVtYmVyIG9mIGxpbmVzIHRvIHByb2Nlc3MgcGVyICZxdW90O2JhdGNoJnF1b3Q7LiAgQWZ0ZXIgYSBiYXRjaCBpcyBjb21wbGV0ZSwgdGhlIGltcG9ydGVyIHdpbGwgcmVkaXJlY3QsIGFuZCByZXN1bWUgb3BlcmF0aW9ucy4gIElmIHlvdSBhcmUgZXhwZXJpZW5jaW5nIG1lbW9yeSBlcnJvcnMsIG9yIHRpbWVvdXQgcHJvYmxlbXMgZHVlIHRvIGxhcmdlIGFtb3VudHMgb2YgcHJvY2Vzc2luZywgeW91IG1heSBuZWVkIHRvIGNvbnN1bHQgeW91ciBob3N0IHByb3ZpZGVyLCBvciByZWR1Y2UgdGhpcyBudW1iZXInOwokbGFuZ1snaW5mb19jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdUaGVzZSBwYXJhbWV0ZXJzIGFyZSBnaXZlbiB0byB0aGUgc2VsZWN0ZWQgY2FydCBtb2R1bGUgZnJvbSB0aGUgaXRlbSBkZXRhaWwgYW5kIHN1bW1hcnkgZGlzcGxheXMnOwokbGFuZ1snaW5mb19jb3B5X2F0dHJpYnNldHMnXSA9ICdUaGlzIGFjdGlvbiB3aWxsIGNvcHkgQXR0cmlidXRlIFNldHMgKGV4Y2x1ZGluZyBza3UgdmFsdWVzKSBmcm9tIGFub3RoZXIgaXRlbS4nOwokbGFuZ1snaW5mb19jbGVhcmF0dHJpYnMnXSA9ICdPbmx5IGFwcGxpY2FibGUgd2hlbiB1cGRhdGluZyBleGlzdGluZyBpdGVtcywgdGhpcyB3aWxsIGNsZWFyIGFsbCBhdHRyaWJ1dGUgaW5mb3JtYXRpb24gZnJvbSB0aGUgZGF0YWJhc2UgZm9yIGl0ZW1zIGJlZm9yZSBjcmVhdGluZyBuZXcgb25lcyc7CiRsYW5nWydpbmZvX2NsZWFyY2F0ZWdvcmllcyddID0gJ09ubHkgYXBwbGljYWJsZSB3aGVuIHVwZGF0aW5nIGV4aXN0aW5nIGl0ZW1zLCB0aGlzIHdpbGwgY2xlYXIgYWxsIGNhdGVnb3J5IG1lbWJlcnNoaXBzIGJlZm9lIGNyZWF0aW5nIG5ldyBvbmVzJzsKJGxhbmdbJ2luZm9fY2xlYXJmaWVsZHMnXSA9ICdPbmx5IGFwcGxpY2FibGUgd2hlbiB1cGRhdGluZyBleGlzdGluZyBpdGVtcywgdGhpcyB3aWxsIGNsZWFyIGFsbCBmaWVsZHMgYmVmb2UgY3JlYXRpbmcgZmllbGQgdmFsdWVzJzsKJGxhbmdbJ2luZm9fY3JlYXRlZmllbGRzJ10gPSAnQ3JlYXRlIHVua25vd24gaXRlbSBmaWVsZHMgYXV0b21hdGljYWxseT8gPGVtPihUaGV5IHdpbGwgYmUgY3JlYXRlZCBhcyB0ZXh0IGZpZWxkcyk8L2VtPic7CiRsYW5nWydpbmZvX2NyZWF0ZWNhdGVnb3JpZXMnXSA9ICdBdXRvbWF0aWNhbGx5IGNyZWF0ZSBpdGVtIGNhdGVnb3JpZXMgdG8gbWF0Y2ggdGhvc2Ugb2YgdGhlIENTViBmaWxlLCBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0JzsKJGxhbmdbJ2luZm9fY3JlYXRlaGllcmFyY2h5J10gPSAnQXV0b21hdGljYWxseSBjcmVhdGUgaXRlbSBoaWVyYXJjaGllcyB0byBtYXRjaCB0aG9zZSBvZiB0aGUgQ1NWIGZpbGUgaWYgaXQgZG9lcyBub3QgYWxyZWFkeSBleGlzdCc7CiRsYW5nWydpbmZvX2RlY2ltYWxfdW5pdHMnXSA9ICdUaGlzIHN5c3RlbSB1bmRlcnN0YW5kcyAoLikgYXMgdGhlIGRlY2ltYWwgcG9pbnQgc2VwYXJhdG9yLiBpLmUuOiA8c3Ryb25nPjUuMjU8L3N0cm9uZz4nOwokbGFuZ1snaW5mb19kZWxpbWl0ZXInXSA9ICdTcGVjaWZ5IHRoZSBjaGFyYWN0ZXIgKG9yIGNoYXJhY3RlcnMpIHRoYXQgc2VwZXJhdGUgZWFjaCBmaWVsZCc7CiRsYW5nWydpbmZvX2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnU3BlY2lmeSBob3cgdGhlIHN5c3RlbSBzaG91bGQgaGFuZGxlIGFuIGl0ZW0gd2hvcyBuYW1lIGFscmVhZHkgZXhpc3RzIGluIHRoZSBDU1YgZmlsZSc7CiRsYW5nWydpbmZvX2ZpZWxkZGVmc190YWInXSA9ICc8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBBbGwgRmllbGRzIGRlZmluZWQgaGVyZSBhcmUgYXZhaWxhYmxlIHRvIGFsbCBpdGVtcy4nOwokbGFuZ1snaW5mb19maWVsZHByb2JsZW1zJ10gPSAnUHJvYmxlbXMgd2VyZSBlbmNvdW50ZXJlZCB3aGVuIGRlYWxpbmcgd2l0aCBvbmUgb3IgbW9yZSBjdXN0b20gZmllbGRzLiAgVGhlIGFjdGlvbiBoYXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSwgaG93ZXZlciB5b3Ugc2hvdWxkIGludmVzdGlnYXRlIGFuZCBjb3JyZWN0IHRoZXNlIHByb2JsZW1zJzsKJGxhbmdbJ2luZm9faGFuZGxlaW1hZ2VzJ10gPSAnVXBvbiBpbXBvcnQsIGlmIGFuIGltYWdlIGZpbGVuYW1lIGlzIGZvdW5kIGluIGEgZmllbGQgY29sdW1uLCBzaG91bGQgaXQgYmUgbW92ZWQgZnJvbSB0aGUgc291cmNlIGxvY2F0aW9uLCB3YXRlcm1hcmtlZCwgdGh1bWJuYWlsZWQsIGFuZCB0aGUgZmllbGQgdHlwZSBjaGFuZ2VkIHRvICZxdW90O2ltYWdlJnF1b3Q7JzsKJGxhbmdbJ2luZm9faGllcnBhZ2UnXSA9ICdVc2UgdGhpcyBwYWdlIGZvciBoaWVyYXJjaHkgdmlld3MuICBUaGUgcGFnZWlkIHdpbGwgbm90IGJlIHNwZWZpcmllZCBvbiB0aGUgVVJMLic7CiRsYW5nWydpbmZvX2ltYWdlcGF0aCddID0gJ1RoZSBwYXRoIChyZWxhdGl2ZSB0byB0aGUgdXBsb2FkcyBkaXJlY3RvcnkpIHdoZXJlIGltYWdlcyByZWZlcnJlZCB0byBpbiB0aGUgaW1wb3J0IGZpbGUsIGNhbiBiZSBmb3VuZCc7CiRsYW5nWydpbmZvX2ltYWdlc3R1ZmZfZGVwcmVjYXRlZCddID0gJ0ltYWdlIHByb2Nlc3NpbmcgZnVuY3Rpb25zIGFyZSBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi4gIFVzZSBDR1NtYXJ0SW1hZ2UgZm9yIGlubGluZSBpbWFnZSBwcm9jZXNzaW5nLic7CiRsYW5nWydpbmZvX2ltcG9ydF90ZXN0X3Bhc3NlZCddID0gJ0EgYnJpZWYgdGVzdCBhcyBiZWVuIHBlcmZvcm1lZCBvbiB0aGUgaW5wdXQgZmlsZSBzcGVjaWZpZWQsIGFuZCBldmVyeXRoaW5nIGFwcGVhcnMgdG8gYmUgY29ycmVjdC48YnIvPlRoaXMgaXMgbm8gaW5kaWNhdGlvbiB0aGF0IHRoZXJlIGFyZSBubyBlcnJvcnMgaW4gdGhlIGZpbGUuJzsKJGxhbmdbJ2luZm9fcHJldHR5aGllcnVybHMnXSA9ICdJbmNsdWRlIHRoZSBoaWVyYXJjaHkgaXRlbSBuYW1lIG9uIHRoZSBVUkwnOwokbGFuZ1snaW5mb19wcmljZV9hZGp1c3RtZW50J10gPSAnVmFsaWQgdmFsdWVzIGFyZSArLSojLiMjJzsKJGxhbmdbJ2luZm9fcHJvZG5vdGZvdW5kJ10gPSAnVGhpcyBvcHRpb24gZGV0ZXJtaW5lcyB0aGUgYmVoYXZpb3VyIG9mIHRoZSB3ZWJzaXRlIGlmIGFuIGl0ZW0gZGV0YWlsIHZpZXcgaXMgYWNjZXNzZWQgZGlyZWN0bHkgYnkgVVJMLCBhbmQgdGhhdCBpdGVtIGZvciB3aGF0ZXZlciByZWFzb24gKGRpc2FibGVkLCBkZWxldGVkLCBldGMpIGNhbm5vdCBiZSBhY2Nlc3NlZC4nOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gJ1B1YmxpYyBmaWVsZHMgYXJlIGF2YWlsYWJsZSBmb3IgdGhlIHB1YmxpYyB0byBzZWUnOwokbGFuZ1snaW5mb19yZW9yZGVyX2NvbnRlbnQnXSA9ICdUaGlzIG9wZXJhdGlvbiBhbGxvd3MgZHJhZ2dpbmcgdGhlIGluZGl2aWR1YWwgbm9kZXMgaW4gdGhlIHRyZWUgdG8gYWRqdXN0IHRoZSBvcmRlciB0aGF0IHRoZXkgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gaW4gdGhlIGhpZXJhcmNoeSB2aWV3JzsKJGxhbmdbJ2luZm9fc2V0ZWNvbWhhbmRsZXJzJ10gPSAnVGhpcyBidXR0b24gd2lsbCBlbnN1cmUgdGhhdCBldmVudCBoYW5kbGVycyBmb3IgZWNvbW1lcmNlIGV2ZW50cyBhcmUgaW4gcGxhY2UuICBUaGlzIGlzIHVzZWZ1bCBpZiBhc2tpbmcgdGhlIGl0ZW1zIG1vZHVsZSB0byBrZWVwIHRyYWNrIG9mIGEgcXVhbnRpdHkgb24gaGFuZCwgYnV0IHRoZSBldmVudCBoYW5kbGVycyBkaWQgbm90IGdldCBjcmVhdGVkIGR1cmluZyBpbnN0YWxsIG9yIHVwZ3JhZGUnOwokbGFuZ1snbGFiZWwnXSA9ICdPdHNpa2tvJzsKJGxhbmdbJ2xhYmVsX3NraXAnXSA9ICdPaGl0YSc7CiRsYW5nWydsYWJlbF9vdmVyd3JpdGUnXSA9ICdZbGlraXJqb2l0YSc7CiRsYW5nWydsYWJlbF91cGRhdGUnXSA9ICdQJmF1bWw7aXYmYXVtbDt0JmF1bWw7JzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnPj4nOwokbGFuZ1snbGFzdF9tb2RpZmllZCddID0gJ1ZpaW1lZWtzaSBtdW9rYXR0dSc7CiRsYW5nWydsb2dvdGV4dCddID0gJ1RvaW5lbiBrdXZhJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ01heGltdW0gbGVuZ3RoIDxlbT4oYXBwbGljYWJsZSBvbmx5IG9uIHRleHRib3ggZmllbGRzKTwvZW0+JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ011b2trYXVzcCZhdW1sO2l2JmF1bWw7bSZhdW1sOyZhdW1sO3ImYXVtbDsnOwokbGFuZ1snbW9kdWxlX2Rlc2NyaXB0aW9uJ10gPSAnQSBtb2R1bGUgZm9yIG1hbmFnaW5nIGEgY2F0YWxvZyBvZiBpdGVtcywgdGhlaXIgcHJpY2UsIGltYWdlcywgZXRjLCBhbmQgZm9yIGFsbG93aW5nIHVzZXJzIHRvIGJ1aWxkIGEgY2FydCc7CiRsYW5nWydtb3ZlX2Rvd24nXSA9ICdTaWlyciZhdW1sOyBhbGFzJzsKJGxhbmdbJ21vdmVfdXAnXSA9ICdTaWlyciZhdW1sOyB5bCZvdW1sO3MnOwokbGFuZ1snbXNnX2V2ZW50aGFuZGxlcnNfY3JlYXRlZCddID0gJ0V2ZW50IEhhbmRsZXJzIENyZWF0ZWQnOwokbGFuZ1snbXNnX3Byb2R1Y3Rjb3BpZWQnXSA9ICdJdGVtIHN1Y2Nlc3NmdWxseSBjb3BpZWQuICBZb3UgYXJlIG5vdyBlZGl0aW5nIHRoZSBjb3B5LiAgQW55IHNrdSBpbmZvcm1hdGlvbiBpbiB0aGUgaXRlbSwgYW5kL29yIGF0dHJpYnV0ZXMgaGFzIGJlZW4gY2xlYXJlZCc7CiRsYW5nWyduYW1lJ10gPSAnTmltaSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ1NpbnVsbGEgZWkgb2xlIHRhcnZpdHRhdmlhIG9pa2V1a3NpYTogJXMnOwokbGFuZ1snbmV3X2NhdGVnb3J5X25hbWUnXSA9ICdVdXNpIGthdGVnb3JpYW4gbmltaSc7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbm8nXSA9ICdFaSc7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ05pbWUmYXVtbDsgZWkgYW5uZXR0dSc7CiRsYW5nWydub25lJ10gPSAnRWkgeWh0JmF1bWw7JmF1bWw7bic7CiRsYW5nWydub3RoaW5nX3NlbGVjdGQnXSA9ICdNaXQmYXVtbDsmYXVtbDtuIGVpIHZhbGl0dHUnOwokbGFuZ1snb2YnXSA9ICdPZic7CiRsYW5nWydvcGVyYXRpb25fY2FuY2VsbGVkJ10gPSAnT3BlcmFhdGlvIHBlcnV1dGV0dHUnOwokbGFuZ1snb3BlcmF0aW9uX2NvbXBsZXRlJ10gPSAnT3BlcmFhdGlvIHN1b3JpdGV0dHUnOwokbGFuZ1sncGFnZSddID0gJ1BhZ2UnOwokbGFuZ1sncGFnZV9vZiddID0gJ1NpdnUgJXMgb2YgJXMnOwokbGFuZ1sncGFnZV9saW1pdCddID0gJ1NpdnVyYWpvaXR1cyc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcGVjaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5oaWVyYXJjaHkgLS0gRGlzcGxheSBhbiBpdGVtIGxpc3QgYnkgaGllcmFyY2h5PC9saT4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtIERpc3BsYXkgYSBsaXN0IG9mIGl0ZW0gY2F0ZWdvcmllczwvbGk+DQogIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gRGlzcGxheSBhIHN1bW1hcnkgb2YgaXRlbXM8L2xpPg0KICA8bGk+ZGV0YWlscyAtIERpc3BsYXkgYSBkZXRhaWwgdmlldyBvZiBhIHNpbmdsZSBpdGVtPC9saT4NCiAgPGxpPmZpZWxkbGlzdCAtIERpc3BsYXkgYSBsaXN0IG9mIHZhbHVlcyBmcm9tIGEgc3BlY2lmaWVkIGZpZWxkLg0KICAgICA8cD4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOy0gVGhpcyBhY3Rpb24gY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGEgbmF2aWdhdGlvbiBmcm9tIHRoZSB2YWx1ZXMgb2YgYSBzcGVjaWZpYyBmaWVsZC4gIGkuZTogIHlvdSBjb3VsZCBjcmVhdGUgYSBjdXN0b20gZHJvcGRvd24gZmllbGQgY2FsbGVkICZxdW90O2NvbG9yJnF1b3Q7IGFuZCB0aGVuIGNyZWF0ZSBhIG5hdmlnYXRpb24gYmFzZWQgb24gdGhlIGRpZmZlcmVudCBjb2xvcnMuDQogICAgIDwvcD4NCiAgPC9saT4NCiAgPGxpPnNlYXJjaCAtIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IHNlYXJjaGluZyBpdGVtcyBvbiB2YXJpb3VzIGNyaXRlcml1bTwvbGk+DQo8bGk+YWpheF9wcm9wdmFsIC0gUmV0dXJuIGEganNvbiBlbmNvZGVkIGxpc3Qgb2YgcHJvcGVydHkgdmFsdWVzIG1hdGNoaW5nIHRoZSBjcml0ZXJpYSBzcGVjaWZpZWQuICBUaGlzIGFjdGlvbiBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIHZpYSBhamF4LCBhbmQgc2hvdWxkIGJlIGNhbGxlZCB3aXRoIHRoZSBzaG93dGVtcGxhdGU9ZmFsc2UgcGFyYW1ldGVyIG9uIHRoZSBVUkwuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnV2hlbiB1c2VkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIsIHdoaWNoIHNob3VsZCBtYXRjaCB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyBjYXRlZ29yeSB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBvbmx5IHRob3NlIGl0ZW1zIHRoYXQgYXJlIGluIHRoYXQgY2F0ZWdvb3J5LiAoYSBjb21tYSBzZXBlcmF0ZWQgbGlzdCBjYW4gYmUgc3VwcGxpZWQpLiAgVGhpcyBwYXJhbWV0ZXIgY2FuIGFsc28gYmUgdXNlZCB3aXRoIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uIHRvIGxpbWl0IHRoZSBvdXRwdXQgdG8gdGhlIHNwZWNpZmllZCBpdGVtIGNhdGVnb3JpZXMuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5ZmllbGQnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlICZxdW90O2NhdGVnb3J5bGlzdCZxdW90OyBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGZpbHRlciBjYXRlZ29yaWVzIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiBhIGNhdGVnb3J5IGZpZWxkLiAgSXQgd2lsbCBub3Qgd29yayBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAmcXVvdDtjYXRlZ29yeSZxdW90OyBvciAmcXVvdDtjYXRlZ29yeV9pZCZxdW90OyBwYXJhbWV0ZXJzLiAgIFRoZSBzeW50YXggb2YgdGhpcyBwYXJhbWV0ZXIgaXMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBmaWVsZCBuYW1lcywgYW5kIGZpZWxkIHZhbHVlcy4gIGkuZTogIGNhdGVnb3J5bGlzdD0mcXVvdDtmaWVsZCBuYW1lOnZhbHVlLGZpZWxkIG5hbWUgMjp2YWx1ZSAyJnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFuZCBmaWVsZGxpc3QgYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdGR0bHRlbXBsYXRlJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRpc3BsYXkgb2YgdGhlIGNhdGVnb3J5IGRldGFpbHMuICBUaGlzIHVzZXMgYSBjYXRlZ29yeSBsaXN0IHRlbXBsYXRlLi4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdUaGlzIHNwZWNpZmllcyB0aGUgcGFnZWlkIG9yIGFsaWFzIHRoYXQgc2hvdWxkIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgZGV0YWlsIHJlcG9ydC4gIEl0IGNhbiBiZSB1c2VkIHdpdGggdGhlIDxlbT5kZWZhdWx0PC9lbT4gb3Igc2VhcmNoIGFjdGlvbnMuICBUaGlzIG9wdGlvbiBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHByZXR0eSB1cmxzIG9mIGFueSBzb3J0Lic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRldGFpbCBtb2RlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4gIFRoaXMgcGFyYW1ldGVyIGhhcyBubyB1c2Ugd2hlbiBwcmV0dHkgdXJscyBhcmUgZW5hYmxlZC4nOwokbGFuZ1sncGFyYW1fZXhjbHVkZWNhdCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCAoc3VtbWFyeSkgdmlldywgdGhpcyBwYXJhbWV0ZXIgd2lsbCBhbGxvdyBleGNsdWRpbmcgaXRlbXMgdGhhdCBhcmUgaW4gYSBzcGVjaWZpYyBjYXRlZ29yeSBmcm9tIHRoZSByZXN1bHQuIEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgY2F0ZWdvcnkgbmFtZXMgaXMgYWxsb3dlZC4gVGhpcyBwYXJhbWV0ZXIgY2FuIHdvcmsgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgY2F0ZWdvcnkgcGFyYW1ldGVyIHRvIHByb3ZpZGUgYSBsaXN0IG9mIHRoZSBpdGVtcyB0aGF0IGFyZSBpbiB0aGlzIGNhdGVnb3J5LCBidXQgbm90IGluIHRoYXQgY2F0ZWdvcnknOwokbGFuZ1sncGFyYW1fZmllbGQnXSA9ICdVc2VkIGluIHRoZSA8ZW0+ZmllbGRsaXN0PC9lbT4gYW5kIHRoZSA8ZW0+YWpheF9wcm9wdmFsPC9lbT4gYWN0aW9ucy4gSW4gdGhlIGZpZWxkbGlzdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIHRvIHNwZWNpZnkgdGhlIG5hbWUgb2YgYSB1c2VyIGRlZmluZWQgcHJvcGVydHkgdG8gY3JlYXRlIGEgbGlzdCBmcm9tLiAgSW4gdGhlIGFqYXhfcHJvcHZhbCBhY3Rpb24gdGhpcyBwYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoaWNoIGZpZWxkIHRvIHVzZSB0byBleHRyYWN0IGEgbGlzdCBvZiB2YWx1ZXMuICBBbnkgdmFsaWQgZmllbGQgbmFtZXMgYXJlIGFjY2VwdGVkICh0aG91Z2ggb25seSB0ZXh0IGZpZWxkIGFuZCBkcm9wZG93biBmaWVsZCBuYW1lcyB3aWxsIHdvcmsgcHJvcGVybHkuICBBZGRpdGlvbmFsbHkgdGhlIHNwZWNpYWwgdmFsdWVzIDo6bmFtZTo6LCA6OnNrdTo6LCBhbmQgOjphbGlhczo6IGNhbiBiZSBzcGVjaWZpZWQgdG8gcmV0dXJuIHZhbHVlcyBmcm9tIHRoZSBpdGVtIG5hbWUsIHNrdSBhbmQgYWxpYXMgcmVzcGVjdGl2ZWx5Lic7CiRsYW5nWydwYXJhbV9maWVsZHZhbCddID0gJ1VzZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYW5kIDxlbT5hamF4X3Byb3B2YWw8L2VtPiBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGZpZWxkIHZhbHVlIHRvIGxpbWl0IHJlc3VsdHMgYnkuICBJbiB0aGUgZGVmYXVsdCB2YWx1ZSB0aGVzZSBzcGVjaWFsIHZhbHVlcyBhcmUgYWNjZXB0ZWQ6ICZxdW90Ozo6bnVsbDo6JnF1b3Q7ICZxdW90Ozo6bm90bnVsbDo6JnF1b3Q7LiBJbiB0aGUgYWpheF9wcm9wdmFsIGFjdGlvbiB0aGlzIGZpZWxkIGlzIGV4cGVjdGVkIHRvIGNvbnRhaW4gb25seSBhIGZldyBsZXR0ZXJzLCB0byBpbmRpY2F0ZSBhIHNtYWxsIGZpbHRlci4gIGkuZTogZmllbGR2YWw9YiB0byByZXR1cm4gYWxsIGZpZWxkIHZhbHVlcyB0aGF0IGJlZ2luIHdpdGggdGhlIGxldHRlciBiLic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHknXSA9ICdVc2VlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhbmQgaGllcmFjaHkgYWN0aW9ucyB0aGlzIHBhcmFtZXRlciBoYXMgdHdvIHVzZXMuICBXaGVuIHVzZWQgaW4gdGhlIGRlZmF1bHQgKHN1bW1hcnkpIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgb25seSBpdGVtcyBpbiB0aGF0IGxvY2F0aW9uIG9mIHRoZSBoaWVyYXJjaHkgc2hvdWxkIGJlIGRpc3BsYXllZC4gIFdpbGRjYXJkIGNoYXJhY3RlciBjYW4gYmUgdXNlZCBzbyB0aGF0IHlvdSBjYW4gc3BlY2lmeSBwYXJlbnQvY2hpbGQgcmVsYXRpb25zaGlwcyBhcyB3ZWxsLiAgaS5lIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7dHJ1Y2tzKiYjMDM5O30gd2lsbCBjcmVhdGUgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBpbmNsdWRpbmcgdGhlIGNoaWxkcmVuIGluIHRoZSBoaWVyYXJjaHkuICBTaW1pbGFybHksIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7KnRydWNrcyYjMDM5O30gd2lsbCBkaXNwbGF5IGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgYW5kIGFsbCBpdGVtcyBiZWxvZ2luZyB0byBhbnkgcGFyZW50IGluIHRoZSBoaWVyYXJjaHkuICBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGV4cHJlc3Npb25zIGNhbiBiZSBzdXBwbGllZC4gIGkuZToge1Byb2R1Y3RzIGFjdGlvbj1oaWVyYXJjaHkgaGllcmFyY2h5PSYjMDM5O3RydWNrcyxjYXJzJiMwMzk7fSc7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGhpZXJhcmNoeSBkaXNwbGF5LiBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1faW5saW5lJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgdGhlIG91dHB1dCBvZiB0aGUgc3VtbWFyeSB2aWV3IHNob3VsZCBiZSBkaXNwbGF5ZWQgaW5saW5lJzsKJGxhbmdbJ3BhcmFtX25vdHByZXR0eSddID0gJ1RoaWUgcGFyYW1ldGVyIHNwZWNpZmllcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGFjdGlvbnMgdG8gd2hpY2ggcHJldHR5IHVybHMgc2hvdWxkIG5vdCBiZSBnZW5lcmF0ZWQuICBpLmU6IG5vdHByZXR0eT1oaWVyYXJjaHksZGVmYXVsdCB3aWxsIG5vdCBnZW5lcmF0ZSBwcmV0dHkgdXJscyB0byBoaWVyYXJjaHksIG9yIHN1bW1hcnkgKGRlZmF1bHQpIGFjdGlvbnMsIGJ1dCB3aWxsIGFsbG93IGdlbmVyYXRpb24gb2YgcHJldHR5IHVybHMgdG8gZGV0YWlsIHZpZXdzLiAgQXMgYSBzcGVjaWFsIHZhdWUgJnF1b3Q7YWxsJnF1b3Q7IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhhdCBubyBwcmV0dHkgdXJscyBzaG91bGQgYmUgZ2VuZXJhdGVkJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIDxlbT5kZWZhdWx0PC9lbT4gb3Igc2VhcmNoIGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBob3cgbWFueSBpdGVtcyBzaG91bGQgYmUgbGlzdGVkIG9uIGVhY2ggcGFnZS4nOwokbGFuZ1sncGFyYW1fcGFyZW50J10gPSAnVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5oaWVyYXJjaHk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgaGllcmFyY2h5IGlkIG9mIHRoZSBzdGFydGluZyBsb2NhdGlvbiBvZiB0aGUgcmVwb3J0Lic7CiRsYW5nWydwYXJhbV9wYXJlbnRzJ10gPSAnVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5oaWVyYXJjaHk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGhpZXJhcmNoeSBuYW1lcyB0aGF0IHNwZWNpZnkgdG8gY3JlYXRlIG51bWVyb3VzIGhlaXJhcmNoeSB0cmVlcyBmcm9tIHRoZSBzcGVjaWZpZWQgbG9jYXRpb24ocykuICBIaWVyYXJjaHkgbmFtZXMgbXVzdCBiZSB1bmlxdWUsIGFuZCBub3QgY29udGFpbiBhbnkgc3BlY2lhbCBjaGFycy4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGlkJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgZGV0YWlsIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHdoYXQgaXRlbSB0byB1c2UgZm9yIHRoZSBkaXNwbGF5Lic7CiRsYW5nWydwYXJhbV9wcm9kdWN0bGlzdCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCAoc3VtbWFyeSkgdmlldywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBpbnRlZ2VyIHByb2R1Y3QgaWRzIHRvIGRpc3BsYXkuICBObyBwYWdpbmF0aW9uIG9yIHNvcnRpbmcgaXMgcGVyZm9ybWVkIG9uIHRoZXNlIHZhbHVlcywgYW5kIGlmIHNwZWNpZmllZCB0aGUgb3RoZXIgZmlsdGVyaW5nIHBhcmFtZXRlcnMgdG8gdGhlIHN1bW1hcnkgdmlldyBhcmUgaWdub3JlZC4nOwokbGFuZ1sncGFyYW1fcmVzdWx0cGFnZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgc2VhcmNoLCBhbmQgY2F0ZWdvcnkgbGlzdCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgYSBwYWdlIGlkIG9yIGFsaWFzIHRvIHVzZSB0byBkaXNwbGF5IHRoZSBzdW1tYXJ5IHJlc3VsdHMnOwokbGFuZ1sncGFyYW1fc2VhcmNoZmllbGQnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIG1heSBjb250YWluIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZmllbGQgbmFtZXMgdG8gaW5jbHVkZSBpbiB0aGUgc2VhcmNoJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZvcm10ZW1wbGF0ZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpc3BhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG5vbiBkZWZhdWx0IHNlYXJjaCBmb3JtIHRlbXBsYXRlJzsKJGxhbmdbJ3BhcmFtX3Nob3dhbGwnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGNhdGVnb3J5bGlzdCBhbmQgZmllbGRsaXN0IGFjdGlvbnMsIGlmIHRoaXMgcGFyYW1ldGVyIGlzIHNldCB0byBhIG5vbiAwIGludGVnZXIgdmFsdWUgYWxsIGNhdGVnb3JpZXMgKGV2ZW4gdGhvc2Ugd2l0aG91dCBpdGVtcykgd2lsbCBiZSBkaXNwbGF5ZWQuJzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ1NwZWNpZnkgdGhlIG9yZGVyIG9mIHNvcnRlZCBmaWVsZHMgaW4gc3VtbWFyeSAoaW5jbHVkaW5nIGFmdGVyIGEgc2VhcmNoKSB2aWV3LiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIEFzY2VuZGluZyBvcmRlcjwvbGk+DQogIDxsaT5kZXNjIC0tIERlc2NlbmRpbmcgb3JkZXI8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnQXBwbGljYWJsZSBpbiB0aGUgc3VtbWFyeSwgY2F0ZWdvcnlsaXN0IG9yIHNlYXJjaCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5pdGVtX25hbWU8L3N0cm9uZz48L2xpPg0KICA8bGk+aWQgLS0gVGhlIGl0ZW0gaWQ8L2xpPg0KICA8bGk+d2VpZ2h0IC0tIFRoZSBpdGVtIHdlaWdodDwvbGk+DQogIDxsaT5wcmljZSAtLSBUaGUgaXRlbSBiYXNlIHByaWNlPC9saT4NCiAgPGxpPnN0YXR1cyAtLSBEcmFmdCBvciBwdWJsaXNoZWQ8L2xpPg0KICA8bGk+cmFuZG9tIC0tIERpc3BsYXkgaW4gcmFuZG9tIG9yZGVyIG9uIGVhY2ggcmVxdWVzdDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPmY6ZmllbGRuYW1lIC0tIEFsbG93cyBzb3J0aW5nIGJ5IHZhbHVlcyBvZiBjdXN0b20gZmllbGRzLjwvbGk+DQo8L3VsPg0KPHA+VGhlIGNhdGVnb3J5IGxpc3QgdmlldyBzdXBwb3J0cyBvbmx5IGEgZmV3IHNwZWNpZmljIHNvcnRpbmcgb3B0aW9uczo8L3A+DQo8dWw+DQogIDxsaT5pZCAtLSBUaGUgY2F0ZWdvcnkgaWQuPC9saT4NCiAgPGxpPjxzdHJvbmc+bmFtZTwvc3Ryb25nPiAtLSBUaGUgY2F0ZWdvcnkgbmFtZS48L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydHR5cGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgc3VtbWFyeSB2aWV3LCB0aGlzIHBhcmFtZXRlciBpcyB1c2VkIHRvIGNvbnZlcnQgdGhlIHZhbHVlcyB0byBhbm90aGVyIHR5cGUgZm9yIHNvcnRpbmcuICB2YWxpZCB2YWx1ZXMgYXJlIFNUUklORyxTSUdORUQgYW5kIFVOU0lHTkVELiAgSWYgbm90IHN1cHBsaWVkIHRoZSBkZWZhdWx0IFNUUklORyB0eXBlIGlzIGFzc3VtZWQuJzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnlwYWdlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBhY3Rpb249aGllcmFyY2h5LCBhbGxvd3Mgc3BlY2lmeWluZyBhIHBhZ2UgaWQgb3IgYWxpYXMgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIGFueSBsaW5rcyB0byBzdW1tYXJ5IHZpZXcnOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgc3VtbWFyeSBtb2RlIGRpc3BsYXkuICBJdCBpcyBhbHNvIGFjY2VwdGVkIGluIHRoZSBzZWFyY2ggYWN0aW9uLiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmVudCddID0gJ1BhcmVudCc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1Byb2R1Y3RzIG1vZHV1bGkgb24gb25uaXN0dW5lZXN0aSBhc2VubmV0dHUnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1RoZSBQcm9kdWN0cyBtb2R1bGUgaGFzIGJlZW4gcmVtb3ZlZCBhbG9uZyB3aXRoIGFsbCBhc3NvY2lhdGVkIGRhdGEnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdBc2V0dWtzZXQnOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnUmVtb3ZpbmcgdGhpcyBtb2R1bGUgd2lsbCBhbHNvIHJlbW92ZSBhbGwgYXNzb2NpYXRlZCBkYXRhLCBhcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcHJvY2VlZD8nOwokbGFuZ1sncHJpY2UnXSA9ICdIaW50YSc7CiRsYW5nWydwcmljZV9hZGp1c3RtZW50J10gPSAnUHJpY2UgQWRqdXN0bWVudCc7CiRsYW5nWydwcmVmaXhfY29weW9mJ10gPSAnS29waW8nOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb2R1Y3QnXSA9ICdUdW90ZSc7CiRsYW5nWydwcm9kdWN0bmFtZSddID0gJ1R1b3R0ZWVuIG5pbWknOwokbGFuZ1sncHJvZHVjdHMnXSA9ICdUdW90ZWV0JzsKJGxhbmdbJ3Byb2R1Y3RfZGV0YWlsX3NldHRpbmdzJ10gPSAnVHVvdGVlbiBhc2V0dWtzZXQnOwokbGFuZ1sncHJvZHVjdF9lZGl0aW5nX3NldHRpbmdzJ10gPSAnVHVvdGVlbiBtdW9ra2F1c2FzZXR1a3NldCc7CiRsYW5nWydwcm9kdWN0X3N1bW1hcnlfc2V0dGluZ3MnXSA9ICdUdW90dGVlbiBrb29vc3RlYXNldHVrc2V0JzsKJGxhbmdbJ3Byb2R1Y3RfaGllcmFyY2h5J10gPSAnVHVvdGVoaWVyYXJraWEnOwokbGFuZ1sncHJvZHVjdF9pbmZvJ10gPSAnVHVvdGV0aWVkb3QnOwokbGFuZ1sncHJvZHVjdF9tYW5hZ2VyJ10gPSAnUHJvZHVjdCBNYW5hZ2VyJzsKJGxhbmdbJ3Byb2dyZXNzJ10gPSAnUHJvZ3Jlc3MnOwokbGFuZ1sncHJvbXB0J10gPSAnUHJvbXB0JzsKJGxhbmdbJ3Byb21wdF9hZGRfYXR0cmlic2V0J10gPSAnQWRkL0VkaXQgQXR0cmlidXRlIFNldCc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnXSA9ICdBbGxvdyB1cGxvYWQgb2YgZmlsZXMgd2l0aCB0aGVzZSBleHRlbnNpb25zIChmb3IgYWxsIHVwbG9hZCBmaWVsZHMpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ltYWdldHlwZXMnXSA9ICdBbGxvdyBwcm9jZXNzaW5nIG9mIGltYWdlcyB3aXRoIHRoZXNlIGV4dGVuc2lvbnMgKGZvciBpbWFnZSB0eXBlIGZpZWxkcyknOwokbGFuZ1sncHJvbXB0X2F0dHJpYnRlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIGRpc3BsYXkgb2YgaXRlbSBhdHRyaWJ1dGUgdmFsdWVzIGluIGRyb3Bkb3duJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsJ10gPSAnQXV0b21hdGljYWxseSBjcmVhdGUgdGh1bWJuYWlscyBvZiBpbWFnZXMnOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWxfc2l6ZSddID0gJ01heGltdW0gc2l6ZSAobGFyZ2VzdCBkaW1lbnNpb24pIG9mIHRoZSB0aHVtYm5haWwuJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZyddID0gJ0F1dG9tYXRpY2FsbHkgY3JlYXRlIHByZXZpZXcgaW1hZ2VzIG9mIGltYWdlcyc7CiRsYW5nWydwcm9tcHRfYXV0b3ByZXZpZXdpbWdfc2l6ZSddID0gJ01heGltdW0gc2l6ZSAobGFyZ2VzdCBkaW1lbnNpb24pIG9mIHRoZSBwcmV2aWV3IGltYWdlLic7CiRsYW5nWydwcm9tcHRfYXV0b3dhdGVybWFyayddID0gJ0F1dG9tYXRpY2FsbHkgcGxhY2Ugd2F0ZXJtYXJrcyBvbiBpbWFnZXMnOwokbGFuZ1sncHJvbXB0X2FwcGxpY2FibGUnXSA9ICdFbmFibGUgYnkgZGVmYXVsdCBmb3IgYWxsIG5ldyBpdGVtcyc7CiRsYW5nWydwcm9tcHRfYmF0Y2hzaXplJ10gPSAnRXImYXVtbDtuIGtva28nOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlJ10gPSAnQ2FydCBNb2R1bGUnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ0NhcnQgTW9kdWxlIFBhcmFtZXRlcnMnOwokbGFuZ1sncHJvbXB0X2NsZWFyYXR0cmlicyddID0gJ0NsZWFyIGF0dHJpYnV0ZXMgb24gdXBkYXRlJzsKJGxhbmdbJ3Byb21wdF9jbGVhcmNhdGVnb3JpZXMnXSA9ICdDbGVhciBjYXRlZ29yaWVzIG9uIHVwZGF0ZSc7CiRsYW5nWydwcm9tcHRfY2xlYXJmaWVsZHMnXSA9ICdDbGVhciBmaWVsZHMgb24gdXBkYXRlJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVjYXRlZ29yaWVzJ10gPSAnQ3JlYXRlIENhdGVnb3JpZXMnOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWZpZWxkcyddID0gJ0NyZWF0ZSBJdGVtIEZpZWxkcz8nOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWhpZXJhcmNoeSddID0gJ0NyZWF0ZSBJdGVtIEhpZXJhcmNoeSc7CiRsYW5nWydwcm9tcHRfY3N2ZmlsZSddID0gJ1R1byBDU1YgdGllZG9zdG8nOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5Y29kZSddID0gJ1ZhbHV1dHRha29vZGknOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAnVmFsdXV0YW4gc3ltYm9saSc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF9zdGF0dXMnXSA9ICdCeSBkZWZhdWx0IGFsbCBuZXcgaXRlbXMgaGF2ZSB0aGlzIHN0YXR1cyc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF90YXhhYmxlJ10gPSAnQnkgZGVmYXVsdCBhbGwgbmV3IGl0ZW1zIGFyZSB0YXhhYmxlJzsKJGxhbmdbJ3Byb21wdF9kZWxldGVwcm9kdWN0ZmlsZXMnXSA9ICdEZWxldGUgYW55IGZpbGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgaXRlbSB3aGVuIHRoZSBpdGVtIGlzIGRlbGV0ZWQ/JzsKJGxhbmdbJ3Byb21wdF9kZWxpbWl0ZXInXSA9ICdGaWVsZCBEZWxpbWl0ZXInOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdEZWZhdWx0IERldGFpbCBQYWdlJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxzZm9yJ10gPSAnRGV0YWlscyBmb3IgJXMnOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnSG93IHRvIGhhbmRsZSBkdXBsaWNhdGUgaXRlbXM/JzsKJGxhbmdbJ3Byb21wdF9mYWxzZSddID0gJ0VwJmF1bWw7dG9zaSc7CiRsYW5nWydwcm9tcHRfaGFuZGxlaW1hZ2VzJ10gPSAnSGFuZGxlIGltYWdlcz8nOwokbGFuZ1sncHJvbXB0X2ltYWdlcGF0aCddID0gJ0t1dmFuIHRpZWRvc3RvcG9sa3UnOwokbGFuZ1sncHJvbXB0X2xlbmd0aHVuaXRzJ10gPSAnTGVuZ3RoIFVuaXRzJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9iZWhhdmlvciddID0gJ1doYXQgYWN0aW9uIHNob3VsZCBiZSB0YWtlbiB3aGVuIGFuIGl0ZW0gY2Fubm90IGJlIGRpc3BsYXllZD8nOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzQwNCddID0gJ0dlbmVyYXRlIGEgNDA0IGVycm9yJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF8zMDEnXSA9ICdHZW5lcmF0ZSBhIDMwMSByZWRpcmVjdCc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfZXJyb3Jtc2cnXSA9ICdEaXNwbGF5IGFuIGVycm9yIG1lc3NhZ2UnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX21zZyddID0gJ0Vycm9yIG1lc3NhZ2UgZm9yIHdoZW4gYW4gaXRlbSBjYW5ub3QgYmUgZm91bmQnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX3BhZ2UnXSA9ICdQYWdlIHRvIGRvIHBlcm1hbmVudCByZWRpcmVjdCB0bz8nOwokbGFuZ1sncHJvbXB0X2hpZXJwYWdlJ10gPSAnRGVmYXVsdCBQYWdlIGZvciBIaWVyYXJjaHkgVmlldyc7CiRsYW5nWydwcm9tcHRfcHJldHR5aGllcnVybHMnXSA9ICdVc2UgUHJldHR5IFVSTFMgdG8gSGllcmFyY2h5IFZpZXdzJzsKJGxhbmdbJ3Byb21wdF9wcm9kX2RldGFpbHBhZ2UnXSA9ICdEZWZhdWx0IFBhZ2UgZm9yIEl0ZW0gRGV0YWlsIFZpZXdzJzsKJGxhbmdbJ3Byb21wdF9wcm9kdWN0c19tYXRjaGluZyddID0gJ0l0ZW1zIG1hdGNoaW5nICVzJzsKJGxhbmdbJ3Byb21wdF9za3VfcmVxdWlyZWQnXSA9ICdTS1UgaXMgcmVxdWlyZWQgZm9yIGFsbCBpdGVtcyBhbmQgYXR0cmlidXRlcyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeV9uZXdkZWZhdWx0J10gPSAnVXNlIG5ldyBzdW1tYXJ5IHZpZXcnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlwYWdlbGltaXQnXSA9ICdEZWZhdWx0IHBhZ2UgbGltaXQgaW4gc3VtbWFyeSBtb2RlJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnRGVmYXVsdCBTb3J0IE9yZGVyIGluIHN1bW1hcnkgbW9kZSc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICdEZWZhdWx0IFNvcnQgRmllbGQgaW4gc3VtbWFyeSBtb2RlJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIFNvdXJjZSc7CiRsYW5nWydwcm9tcHRfdHJ1ZSddID0gJ1Rvc2knOwokbGFuZ1sncHJvbXB0X3VybHByZWZpeCddID0gJ1ByZWZpeCB0byB1c2Ugb24gYWxsIFVSTFMgdGFyZ2V0ZWQgdG8gdGhpcyB0aGlzIG1vZHVsZSc7CiRsYW5nWydwcm9tcHRfdXNlX2RldGFpbHBhZ2VfZm9yX3NlYXJjaCddID0gJ1VzZSB0aGlzIHBhZ2UgZm9yIHNlYXJjaCByZXN1bHRzIHRvbyA8ZW0+KG92ZXJyaWRlcyB0aGUgc2VhcmNocmVzdWx0cyBwYWdlIHBhcmFtZXRlciBpbiB0aGUgc2VhcmNoIG1vZHVsZSk8L2VtPic7CiRsYW5nWydwcm9tcHRfdXNlaGllcnBhdGh1cmxzJ10gPSAnVXNlIEhpZXJhcmNoeSBQYXRoIGluIEl0ZW0gRGV0YWlsIFVSTFMnOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnUGFpbm9uIG1pdHRheWtzaWtrJm91bWw7JzsKJGxhbmdbJ3B1YmxpYyddID0gJ0lzIHRoaXMgYSBwdWJsaWMgZmllbGQ/JzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ0p1bGthaXN0dSc7CiRsYW5nWydxdWFudGl0eV9vbl9oYW5kJ10gPSAnUXVhbnRpdHkgb24gSGFuZCc7CiRsYW5nWydyYW5kb20nXSA9ICdTYXR1bm5haW5lbic7CiRsYW5nWydyZW9yZGVyX2hpZXJhcmNoeSddID0gJ0omYXVtbDtyamVzdCZhdW1sOyBoaWVyYXJraWEnOwokbGFuZ1sncmVzZXQnXSA9ICdOb2xsYXRhJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnUGFsYXV0YSB0ZWhkYXNhc2V0dWtzZXQnOwokbGFuZ1sncmV0dXJuJ10gPSAnUGFsYWEnOwokbGFuZ1sncmV0dXJuX3RvX3RvcCddID0gJ1BhbGFhIHAmYXVtbDsmYXVtbDtuJmF1bWw7a3ltJmF1bWw7JmF1bWw7bic7CiRsYW5nWydyb290J10gPSAnUm9vdCc7CiRsYW5nWydzZWFyY2hfZGVzY3JpcHRpb24nXSA9ICdTZWFyY2ggUHJvcGVydHkgRGVzY3JpcHRpb24nOwokbGFuZ1snc2VhcmNoX2V4cHInXSA9ICdTaG91bGQgdGhlIHF1ZXJ5IG1hdGNoIGFsbCwgb3IgYW55IG9mIHRoZSB0ZXN0cyBiZWxvdz8nOwokbGFuZ1snc2VhcmNoX25hbWUnXSA9ICdTZWFyY2ggUHJvcGVydHkgTmFtZSc7CiRsYW5nWydzZWFyY2hfcHJpY2UnXSA9ICdIaW50YXJhamEnOwokbGFuZ1snc2VhcmNodGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IFNlYXJjaCBGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlcyddID0gJ1NlYXJjaCBUZW1wbGF0ZXMnOwokbGFuZ1snc2VsZWN0X2FsbCddID0gJ1ZhbGl0c2Uga2Fpa2tpJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdWYWxpdHNlIHlrc2knOwokbGFuZ1snc2V0ZHJhZnQnXSA9ICdBc2V0YSBsdW9ubm9rc2Vrc2knOwokbGFuZ1snc2V0cHVibGlzaGVkJ10gPSAnQXNldGEganVsa2lzZWtzaSc7CiRsYW5nWydza3UnXSA9ICdTS1UnOwokbGFuZ1snc29ydF9ieSddID0gJ0omYXVtbDtyamVzdCZhdW1sOyc7CiRsYW5nWydzb3J0X29yZGVyJ10gPSAnU29ydCBPcmRlcic7CiRsYW5nWydzb3VyY2UnXSA9ICdMJmF1bWw7aGRlJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1RpbGEnOwokbGFuZ1snc3VibWl0J10gPSAnU3VibWl0JzsKJGxhbmdbJ3N1YnNjcmlwdGlvbiddID0gJ1N1YnNjcmlwdGlvbic7CiRsYW5nWydzdWJzY3JfZXhwaXJ5J10gPSAnRXhwaXJ5JzsKJGxhbmdbJ3N1YnNjcl9leHBpcnkyJ10gPSAnRXhwaXJlcyc7CiRsYW5nWydzdWJzY3JfbW9udGhseSddID0gJ01vbnRobHknOwokbGFuZ1snc3Vic2NyX2RlbHBlcmlvZCddID0gJ0RlbGl2ZXJ5IEZyZXF1ZW5jeSc7CiRsYW5nWydzdWJzY3JfZGVscGVyaW9kMiddID0gJ0RlbGlldmVyZWQnOwokbGFuZ1snc3Vic2NyX3BheXBlcmlvZCddID0gJ1BheW1lbnQgRnJlcXVlbmN5JzsKJGxhbmdbJ3N1YnNjcl9wYXlwZXJpb2QyJ10gPSAnTWFrc2V0dHUnOwokbGFuZ1snc3Vic2NyX3F1YXJ0ZXJseSddID0gJ1F1YXJ0ZXJseSc7CiRsYW5nWydzdWJzY3Jfc2VtaWFudWFsbHknXSA9ICdTZW1pIEFudWFsbHknOwokbGFuZ1snc3Vic2NyX3llYXJseSddID0gJ1llYXJseSc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVzJ10gPSAnU3VtbWFyeSBUZW1wbGF0ZXMnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBBIFN1bW1hcnkgVGVtcGxhdGUnOwokbGFuZ1sndGF4YWJsZSddID0gJ1RheGFibGUnOwokbGFuZ1sndGVzdCddID0gJ1Rlc3QnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZXh0IEFyZWEnOwokbGFuZ1sndGV4dGJveCddID0gJ1RleHQgSW5wdXQnOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBOZXcgSGllcmFyY2h5IFJlcG9ydCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBOZXcgQ2F0ZWdvcnlMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IE5ldyBEZXRhaWwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfc2VhcmNoX2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgTmV3IFNlYXJjaCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgTmV3IFN1bW1hcnkgVGVtcGxhdGUnOwokbGFuZ1sndHlwZSddID0gJ1R5cGUnOwokbGFuZ1sndXAnXSA9ICdNb3ZlIFVwJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ1VwZGF0ZSc7CiRsYW5nWyd1cGxvYWQnXSA9ICdTZWxlY3QgYSBmaWxlIHRvIHVwbG9hZCc7CiRsYW5nWyd1cmxfYWxpYXMnXSA9ICdVUkwgQWxpYXMnOwokbGFuZ1sndmFsaWQnXSA9ICdWYWxpZCc7CiRsYW5nWyd2YWx1ZSddID0gJ1ZhbHVlJzsKJGxhbmdbJ3ZhbHVlcyddID0gJ1ZhbHVlcyc7CiRsYW5nWyd2aWV3J10gPSAnVmlldyc7CiRsYW5nWyd2aWV3YWJsZV9maWVsZHMnXSA9ICdTZWxlY3QgY3VzdG9tIGZpZWxkcyB0byB2aWV3IGluIHRoZSB0YWJsZSc7CiRsYW5nWyd3YXRlcm1hcmtfbG9jYXRpb24nXSA9ICdXYXRlcm1hcmsgTG9jYXRpb24nOwokbGFuZ1snd2VpZ2h0J10gPSAnV2VpZ2h0JzsKJGxhbmdbJ3dpdGhfc2VsZWN0ZWQnXSA9ICdXaXRoIFNlbGVjdGVkJzsKJGxhbmdbJ3llcyddID0gJ1llcyc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjEwNjYwOTE4MzguMTM0OTI4NTQxNC4xMzQ5Mjg1NDE0LjEzNDkyODU0MTQuMSc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTM0OTI4NTQxNC4xLjEudXRtY2NuPShkaXJlY3QpfHV0bWNzcj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfbGVuZ3RoJ10gPSAnTGFyZy4nOwokbGFuZ1snYWJicl93aWR0aCddID0gJ0xvbmcuJzsKJGxhbmdbJ2FiYnJfaGVpZ2h0J10gPSAnSGF1dC4nOwokbGFuZ1snYWRkJ10gPSAnQWpvdXRlcic7CiRsYW5nWydhZGRjYXRlZ29yeSddID0gJ0Fqb3V0ZXIgdW5lIGNhdCZlYWN1dGU7Z29yaWUnOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdBam91dGVyIHVuIGNoYW1wJzsKJGxhbmdbJ2FkanVzdGFibGUnXSA9ICdBanVzdGFibGUnOwokbGFuZ1snYWRkcHJvZHVjdCddID0gJ0Fqb3V0ZXIgdW4gcHJvZHVpdCc7CiRsYW5nWydhZGRfYXR0cmliX3NldCddID0gJ0Fqb3V0ZXIgdW4gYXR0cmlidXQnOwokbGFuZ1snYWRkX2NhdGVnb3J5X2ZpZWxkJ10gPSAnQXNzb2NpZSB1biBjaGFtcCAmYWdyYXZlOyBsYSBjYXQmZWFjdXRlO2dvcmllIDogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnQWpvdXRlIHVuZSBoaSZlYWN1dGU7cmFyY2hpZSBkJiMwMzk7YXJ0aWNsZSc7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAnQWpvdXRlciB1bmUgb3B0aW9uIGQmIzAzOTthdHRyaWJ1dCc7CiRsYW5nWydhZG1pbl9vbmx5J10gPSAnU2V1bHMgbGVzIGFkbWluaXN0cmF0ZXVycyBwZXV2ZW50IHZvaXIgY2V0IGF0dHJpYnV0ID8nOwokbGFuZ1snYWR2YW5jZWQnXSA9ICdBdmFuYyZlYWN1dGU7JzsKJGxhbmdbJ2FsaWduX3VsJ10gPSAnSGF1dCBnYXVjaGUnOwokbGFuZ1snYWxpZ25fdWMnXSA9ICdIYXV0IGNlbnRyZSc7CiRsYW5nWydhbGlnbl91ciddID0gJ0hhdXQgZHJvaXQnOwokbGFuZ1snYWxpZ25fbWwnXSA9ICdNaWxpZXUgZ2F1Y2hlJzsKJGxhbmdbJ2FsaWduX21jJ10gPSAnQ2VudHJlJzsKJGxhbmdbJ2FsaWduX21yJ10gPSAnTWlsaWV1IGRyb2l0JzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnQmFzIGdhdWNoZSc7CiRsYW5nWydhbGlnbl9sYyddID0gJ0JhcyBjZW50cmUnOwokbGFuZ1snYWxpZ25fbHInXSA9ICdCYXMgZHJvaXQnOwokbGFuZ1snYWxsJ10gPSAnVG91cyc7CiRsYW5nWydhbGxjYXRlZ29yaWVzJ10gPSAnVG91dGVzIGxlcyBjYXQmZWFjdXRlO2dvcmllcyc7CiRsYW5nWydhbnknXSA9ICdBdWN1bic7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnJkVjaXJjO3Rlcy12b3VzIHMmdWNpcmM7ciA/JzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlcHJvZHVjdCddID0gJyZFY2lyYzt0ZXMtdm91cyBzJnVjaXJjO3IgZGUgdm91bG9pciBzdXBwcmltZXIgY2UgcHJvZHVpdCwgZXQgdG91dGUgbCYjMDM5O2luZm9ybWF0aW9uIGwmIzAzOTthY2NvbXBhZ25hbnQgPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdBc2NlbmRhbnQnOwokbGFuZ1snYXR0cmlidXRlX25hbWUnXSA9ICdOb20gZGUgbCYjMDM5O2F0dHJpYnV0JzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpcXVlJzsKJGxhbmdbJ2J0bl9zZXRlY29taGFuZGxlcnMnXSA9ICdJbnN0YWxsZXIgbGVzIGdlc3Rpb25uYWlyZXMgZCYjMDM5OyZlYWN1dGU7diZlZ3JhdmU7bmVtZW50cyBFLWNvbW1lcmNlJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVzJ10gPSAnR2FiYXJpdHMgZGUgaGkmZWFjdXRlO3JhcmNoaWUnOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWpvdXRlci9FZGl0ZXIgdW4gZ2FiYXJpdCBkZSBoaSZlYWN1dGU7cmFyY2hpZSc7CiRsYW5nWydjYW5jZWwnXSA9ICdBbm51bGVyJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXQmZWFjdXRlO2dvcmllcyc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0NhdCZlYWN1dGU7Z29yaWUnOwokbGFuZ1snY2F0ZWdvcnlleGlzdHMnXSA9ICdVbmUgY2F0JmVhY3V0ZTtnb3JpZSBkdSBtJmVjaXJjO21lIG5vbSBleGlzdGUgZCZlYWN1dGU7aiZhZ3JhdmU7JzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0dhYmFyaXRzIGRlIGxhIGxpc3RlIGRlcyBjYXQmZWFjdXRlO2dvcmllcyc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWpvdXQgb3UgJmVhY3V0ZTtkaXRpb24gZCYjMDM5O3VuIGdhYmFyaXQgZGUgbGlzdGUgZGUgY2F0JmVhY3V0ZTtnb3JpZXMnOwokbGFuZ1snY2VudGltZXRlcnMnXSA9ICdDZW50aW0mZWdyYXZlO3RyZXMnOwokbGFuZ1snY2hlY2tib3gnXSA9ICdDYXNlICZhZ3JhdmU7IGNvY2hlcic7CiRsYW5nWydjb25maXJtX2NvcHlhdHRyaWJ1dGVzJ10gPSAnVG91cyBsZXMgamV1eCBkJiMwMzk7YXR0cmlidXRzIGRlIGNlIHByb2R1aXQgdm9udCAmZWNpcmM7dHJlIHN1cHByaW0mZWFjdXRlO3MuICZFY2lyYzt0ZXMtdm91cyBzJnVjaXJjO3IgPyc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9oaWVyYXJjaHlfbm9kZSddID0gJ0NvbmZpcm1lei12b3VzIGxhIHN1cHByZXNzaW9uIGRlIGNldCAmZWFjdXRlO2wmZWFjdXRlO21lbnQgPyBUb3VzIGxlcyBwcm9kdWl0cyBxdWkgbCYjMDM5O3V0aWxpc2VudCBuZSBmaWd1cmVyb250IHBsdXMgZGFucyBsYSBoaSZlYWN1dGU7cmFyY2hpZS4nOwokbGFuZ1snY29uZmlybV9pbXBvcnQnXSA9ICdWb3VsZXotdm91cyByJmVhY3V0ZTtlbGxlbWVudCBlZmZlY3R1ZXIgY2V0dGUgYWN0aW9uID9cblxuRGVzIHBhcmFtJmVncmF2ZTt0cmVzIGluY29ycmVjdHMgb3UgdW4gZmljaGllciBkZSBjb25maWd1cmF0aW9uIGludmFsaWRlIHBldXZlbnQgY29ycm9tcHJlIGxlIGNhdGFsb2d1ZSBkZSBwcm9kdWl0cyBldCBsZSByZW5kcmUgaW51dGlsaXNhYmxlLic7CiRsYW5nWydjb3B5J10gPSAnQ29waWVyJzsKJGxhbmdbJ2NvcHlfYXR0cmliX3NldHMnXSA9ICdDb3BpZXIgbGVzIGpldXggZCYjMDM5O2F0dHJpYnV0cyc7CiRsYW5nWydjb3B5X2NhdGVnb3J5J10gPSAnQ29waWVyIGxhIGNhdCZlYWN1dGU7Z29yaWUnOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdEYXRlIGRlIGNyJmVhY3V0ZTthdGlvbic7CiRsYW5nWydjdXJyZW50X3ZhbHVlJ10gPSAnVmFsZXVyIGFjdHVlbGxlJzsKJGxhbmdbJ2RhdGEnXSA9ICdEb25uJmVhY3V0ZTtlcyc7CiRsYW5nWydkZWZhdWx0J10gPSAnRCZlYWN1dGU7ZmF1dCc7CiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAnR2FiYXJpdHMgcGFyIGQmZWFjdXRlO2ZhdXQnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPk5vdGU6PC9zdHJvbmc+TGUgY29udGVudSBkZSBjZXMgem9uZXMgZCYjMDM5OyZlYWN1dGU7ZGl0aW9uIHNvbnQgdXRpbGlzJmVhY3V0ZTtzIHBvdXIgZCZlYWN1dGU7dGVybWluZXIgbGUgY29udGVudSBwYXIgZCZlYWN1dGU7ZmF1dCBkZXMgZ2FiYXJpdHMgcXVhbmQgdm91cyBjbGlxdWV6IHN1ciAmcXVvdDtBam91dCBkJiMwMzk7dW4gbm91dmVhdSBnYWJhcml0JnF1b3Q7IGRhbnMgbCYjMDM5O29uZ2xldCBjb3JyZXNwb25kYW50LiBMYSBtb2RpZmljYXRpb24gZHUgY29udGVudSBkYW5zIGNlcyB6b25lcyBkJiMwMzk7JmVhY3V0ZTtkaXRpb24gbiYjMDM5O2F1cmEgcGFzIGQmIzAzOTtlZmZldCBpbW0mZWFjdXRlO2RpYXQgc3VyIHZvdHJlIHNpdGUnOwokbGFuZ1snZGVsZXRlJ10gPSAnU3VwcHJpbWVyJzsKJGxhbmdbJ2RlbGV0ZV9hdHRyaWJzZXQnXSA9ICdTdXBwcmltZXIgbCYjMDM5O2F0dHJpYnV0JzsKJGxhbmdbJ2RlbGV0ZV9oaWVyYXJjaHlfaXRlbSddID0gJ1N1cHByaW1lciB1biAmZWFjdXRlO2wmZWFjdXRlO21lbnQgZGUgaGkmZWFjdXRlO3JhcmNoaWUnOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ0Rlc2NlbmRhbnQnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdEZXNjcmlwdGlvbiAnOwokbGFuZ1snZGVzdGluYXRpb24nXSA9ICdEZXN0aW5hdGlvbiAnOwokbGFuZ1snZGV0YWlscyddID0gJ0QmZWFjdXRlO3RhaWxzJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ0dhYmFyaXRzIGQmZWFjdXRlO3RhaWxzJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBam91dCBvdSAmZWFjdXRlO2RpdGlvbiBkJiMwMzk7dW4gZ2FiYXJpdCBkJmVhY3V0ZTt0YWlscyc7CiRsYW5nWydkaW1lbnNpb25zJ10gPSAnRGltZW5zaW9ucyAnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdEJmVhY3V0ZTtzYWN0aXYmZWFjdXRlOyc7CiRsYW5nWydkb3duJ10gPSAnRGVzY2VuZHJlJzsKJGxhbmdbJ2RyYWZ0J10gPSAnJkVhY3V0ZTtiYXVjaGUnOwokbGFuZ1snZHJvcGRvd24nXSA9ICdNZW51IGQmZWFjdXRlO3JvdWxhbnQnOwokbGFuZ1snZHJvcGRvd25fb3B0aW9ucyddID0gJ09wdGlvbnMgZHUgbWVudSBkJmVhY3V0ZTtyb3VsYW50IDxlbT4odW5pcXVlbWVudCBwb3VyIGxlcyBjaGFtcHMgZGUgdHlwZSBNZW51IGQmZWFjdXRlO3JvdWxhbnQpPC9lbT48YnIvPjxici8+PGVtPih1bmUgb3B0aW9uIGRlIG1lbnUgcGFyIGxpZ25lKTwvZW0+JzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0ZXInOwokbGFuZ1snZWRpdF9hdHRyaWJzZXQnXSA9ICdFZGl0ZXIgbGVzIEF0dHJpYnV0cyc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICcmRWFjdXRlO2RpdGVyIGxlcyBqZXV4IGQmIzAzOTthdHRyaWJ1dHMnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzX2ZvciddID0gJyZFYWN1dGU7ZGl0ZXIgbGVzIGpldXggZCYjMDM5O2F0dHJpYnV0cyBwb3VyJzsKJGxhbmdbJ2VkaXRfYXR0cmlidXRlcyddID0gJyZFYWN1dGU7ZGl0ZXIgbGVzIGF0dHJpYnV0cyc7CiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAnRWRpdGVyIGxhIGNhdCZlYWN1dGU7Z29yaWUnOwokbGFuZ1snZWRpdF9jYXRlZ29yeV9maWVsZHMnXSA9ICdFZGl0ZXIgbGVzIGNoYW1wcyBkZSBsYSBjYXQmZWFjdXRlO2dvcmllJzsKJGxhbmdbJ2VkaXRfaGllcmFyY2h5X2l0ZW0nXSA9ICdFZGl0ZXIgbCYjMDM5OyZlYWN1dGU7bCZlYWN1dGU7bWVudCBkZSBoaSZlYWN1dGU7cmFyY2hpZSc7CiRsYW5nWydlcnJvcl9hdHRyaWJzZXRfZXhpc3RzJ10gPSAnSWwgeSBhIGQmZWFjdXRlO2omYWdyYXZlOyB1biBhdHRyaWJ1dCBkdSBtJmVjaXJjO21lIG5vbSc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfc2t1J10gPSAnUGx1c2lldXJzIHZhbGV1cnMgU0tVIGlkZW50aXF1ZXMgdHJvdXYmZWFjdXRlO2VzJzsKJGxhbmdbJ2Vycm9yX2ZpZWxkdmFsdWVfZW1wdHknXSA9ICdVbmUgdmFsZXVyIGRvaXQgJmVjaXJjO3RyZSBpbmRpcXUmZWFjdXRlO2UnOwokbGFuZ1snZXJyb3JfZmlsZWZvcm1hdCddID0gJ1Byb2JsJmVncmF2ZTttZSBkZSBmb3JtYXQgZGUgZmljaGllcic7CiRsYW5nWydlcnJvcl9maWxlbm90Zm91bmQnXSA9ICdGaWNoaWVyIGludHJvdXZhYmxlJzsKJGxhbmdbJ2Vycm9yX2ZpbGVvcGVuJ10gPSAnRXJyZXVyICZhZ3JhdmU7IGwmIzAzOTtvdXZlcnR1cmUgZHUgZmljaGllciAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnUGFyZW50IGludmFsaWRlICh1biBlbGVtZW50IGRlIGhpJmVhY3V0ZTtyYXJjaGllIG5lIHBldXQgJmVjaXJjO3RyZSBzb24gcHJvcHJlIHBhcmVudCknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9uYW1lJ10gPSAnTGEgdmFsZXVyIGR1IGNoYW1wIHBlcnNvbm5hbGlzJmVhY3V0ZTsgZXN0IGludmFsaWRlIChzZXVscyBsZXMgY2FyYWN0JmVncmF2ZTtyZXMgYWxwaGFudW0mZWFjdXRlO3JpcXVlcyBzb250IGF1dG9yaXMmZWFjdXRlO3MpJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfdmFsdWUnXSA9ICdWYWxldXIgaW5jb3JyZWN0ZSBlbnRyJmVhY3V0ZTtlJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ1VuIHBhcmFtJmVncmF2ZTt0cmUgcmVxdWlzIGVzdCBtYW5xdWFudCBvdSBpbnZhbGlkZSc7CiRsYW5nWydlcnJvcl9uYW1ldXNlZCddID0gJ1VuICZlYWN1dGU7bCZlYWN1dGU7bWVudCBwb3J0YW50IGNlIG5vbSBleGlzdGUgZCZlYWN1dGU7aiZhZ3JhdmU7JzsKJGxhbmdbJ2Vycm9yX25vZmllbGR0eXBlJ10gPSAnQ2hvaXNpc3NlciBsZSB0eXBlIGR1IGNoYW1wJzsKJGxhbmdbJ2Vycm9yX25vbmFtZSddID0gJ1VuIG5vbSBkb2l0ICZlY2lyYzt0cmUgaW5kaXF1JmVhY3V0ZTsnOwokbGFuZ1snZXJyb3Jfb25lcXVhbnRpdHlmaWVsZCddID0gJ1NldWwgdW4gY2hhbXAgZGUgcXVhbnRpdCZlYWN1dGU7IGVzdCBhdXRvcmlzJmVhY3V0ZTsnOwokbGFuZ1snZXJyb3Jfb25lc3Vic2NyaXB0aW9uZmllbGQnXSA9ICdVbiBzZXVsIGNoYW1wcyBkZSBzb3VzY3JpcHRpb24gZXN0IGF1dG9yaXMmZWFjdXRlOyc7CiRsYW5nWydlcnJvcl9wZXJtaXNzaW9uZGVuaWVkJ10gPSAnUGVybWlzc2lvbiByZWZ1cyZlYWN1dGU7ZSc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X2FsaWFzdXNlZCddID0gJ0wmIzAzOTthbGlhcyBzcCZlYWN1dGU7Y2lmaSZlYWN1dGU7IGVzdCBkJmVhY3V0ZTtqJmFncmF2ZTsgdXRpbGlzJmVhY3V0ZTsnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9uYW1ldXNlZCddID0gJ1VuIHByb2R1aXQgcG9ydGFudCBjZSBub20gZXhpc3RlIGQmZWFjdXRlO2omYWdyYXZlOyc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X25vdGZvdW5kJ10gPSAnTGUgcHJvZHVpdCBkJmVhY3V0ZTtzaXImZWFjdXRlOyBuJiMwMzk7YSBwYXMgcHUgJmVjaXJjO3RyZSByZXRyb3V2JmVhY3V0ZTsnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9za3V1c2VkJ10gPSAnQ2V0dGUgdmFsZXVyIFNLVSBlc3QgZCZlYWN1dGU7aiZhZ3JhdmU7IHV0aWxpcyZlYWN1dGU7ZSBwYXIgdW4gYXV0cmUgcHJvZHVpdCc7CiRsYW5nWydlcnJvcl9wcmljZV9hZGp1c3RtZW50J10gPSAnTGEgdmFsZXVyIGQmIzAzOTthanVzdGVtZW50IGR1IHByaXggZXN0IGludmFsaWRlIHBvdXIgbCYjMDM5O29iamV0ICVzJzsKJGxhbmdbJ2Vycm9yX3NrdV9yZXF1aXJlZCddID0gJ01lcmNpIGQmIzAzOTtlbnRyZXIgdW4gU0tVIHVuaXF1ZSc7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnTCYjMDM5O2Vudm9pIGR1IGZpY2hpZXIgYSAmZWFjdXRlO2Nob3UmZWFjdXRlOyA6ICVzJzsKJGxhbmdbJ2V4Y2x1ZGVfY2F0ZWdvcmllcyddID0gJ0V4Y2x1cmUgbGVzIHByb2R1aXRzIGRlcyBjYXQmZWFjdXRlO2dvcmllcyBzJmVhY3V0ZTtsZWN0aW9ubiZlYWN1dGU7ZXMgZGVzIHImZWFjdXRlO3N1bHRhdHMnOwokbGFuZ1snZXhwaXJlX3NpeF9tb250aHMnXSA9ICdBcHImZWdyYXZlO3Mgc2l4IG1vaXMnOwokbGFuZ1snZXhwaXJlX29uZV95ZWFyJ10gPSAnQXByJmVncmF2ZTtzIHVuIGFuJzsKJGxhbmdbJ2V4cGlyZV90d29feWVhciddID0gJ0FwciZlZ3JhdmU7cyBkZXV4IGFucyc7CiRsYW5nWydleHRyYTEnXSA9ICdDaGFtcCBzdXBwbCZlYWN1dGU7bWVudGFpcmUgMSc7CiRsYW5nWydleHRyYTInXSA9ICdDaGFtcCBzdXBwbCZlYWN1dGU7bWVudGFpcmUgMic7CiRsYW5nWydmaWVsZCddID0gJ0NoYW1wJzsKJGxhbmdbJ2ZpZWxkcyddID0gJ0NoYW1wcyc7CiRsYW5nWydmaWVsZGRlZiddID0gJ0QmZWFjdXRlO2Zpbml0aW9uIGQmIzAzOTt1biBjaGFtcCc7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdEJmVhY3V0ZTtmaW5pdGlvbnMgZGVzIGNoYW1wcyc7CiRsYW5nWydmaWxlJ10gPSAnRmljaGllcic7CiRsYW5nWydmaWx0ZXJzJ10gPSAnRmlsdHJlcyc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICcmYW1wO2x0OyZhbXA7bHQ7JzsKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdQYXJhbSZlZ3JhdmU7dHJlcyBnJmVhY3V0ZTtuJmVhY3V0ZTtyYXV4JzsKJGxhbmdbJ2dvJ10gPSAnRW52b3llcic7CiRsYW5nWydoaWVyYXJjaHknXSA9ICdIaWVyYXJjaGllJzsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gJ1Bvc2l0aW9uIGRhbnMgbGEgaGkmZWFjdXRlO3JhcmNoaWUnOwokbGFuZ1snaGllcmFyY2h5X3NldHRpbmdzJ10gPSAnUGFyYW0mZWdyYXZlO3RyZXMgZGUgaGkmZWFjdXRlO3JhcmNoaWUnOwokbGFuZ1snaWQnXSA9ICdJZCAnOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnSW1hZ2UgJzsKJGxhbmdbJ2ltYWdlX2hhbmRsaW5nX3NldHRpbmdzJ10gPSAnUGFyYW0mZWdyYXZlO3RyZXMgZGUgbWFuaXB1bGF0aW9uIGRlcyBpbWFnZXMnOwokbGFuZ1snaW1wb3J0X2Zyb21fY3N2J10gPSAnSW1wb3J0ZXIgbGVzIHByb2R1aXRzIGRlcHVpcyB1biBmaWNoaWVyIENTVic7CiRsYW5nWydpbmNoZXMnXSA9ICdQb3VjZXMnOwokbGFuZ1snaW5jbHVkZV9jaGlsZHJlbiddID0gJ0F2ZWMgbGVzIGRlc2NlbmRhbnRzID8nOwokbGFuZ1snaW5mb19hbG51bW9ubHknXSA9ICdDYXJhY3QmZWdyYXZlO3JlcyBhbHBoYW51bSZlYWN1dGU7cmlxdWVzIHVuaXF1ZW1lbnQuIFBhcyBkJiMwMzk7ZXNwYWNlcywgZGUgZ3VpbGxlbWV0cyBvdSBkZSBjb21iaW5haXNvbnMgYXV0cmVzIHF1ZSBsZXR0cmVzIGV0IGNoaWZmcmVzLic7CiRsYW5nWydpbmZvX2F0dHJpYnRlbXBsYXRlJ10gPSAnTGVzIHZhcmlhYmxlcyBwb3NzaWJsZXMgc29udCA6IHskYXR0cmliX3RleHR9LHskYXR0cmliX2FkanVzdH0seyRjdXJyZW5jeV9zeW1ib2x9JzsKJGxhbmdbJ2luZm9fYXR0cmlidXRlc19jb3BpZWQnXSA9ICdBdHRyaWJ1dHMgY29waSZlYWN1dGU7cyc7CiRsYW5nWydpbmZvX2F1dG93YXRlcm1hcmsnXSA9ICdMYSBjb25maWd1cmF0aW9uIGRlcyBmaWxpZ3JhbmVzIGVzdCBjZWxsZSBkdSBtb2R1bGUgQ0dFeHRlbnNpb25zJzsKJGxhbmdbJ2luZm9fYmF0Y2hzaXplJ10gPSAnSW5kaXF1ZXogbGUgbm9tYnJlIGRlIGxpZ25lcyAmYWdyYXZlOyB0cmFpdGVyICZhZ3JhdmU7IGNoYXF1ZSBpdCZlYWN1dGU7cmF0aW9uLiBEJmVncmF2ZTtzIHF1JiMwMzk7dW5lIGl0JmVhY3V0ZTtyYXRpb24gZXN0IHRlcm1pbiZlYWN1dGU7ZSwgbGUgc3lzdCZlZ3JhdmU7bWUgZCYjMDM5O2ltcG9ydGF0aW9uIGQmZWFjdXRlO21hcnJlIGxhIHN1aXZhbnRlLiBTaSBkZXMgcHJvYmwmZWdyYXZlO21lcyBkZSBtJmVhY3V0ZTttb2lyZSBvdSBkZSB0ZW1wcyBkJiMwMzk7ZXgmZWFjdXRlO2N1dGlvbiBzZSBwcm9kdWlzZW50LCByJmVhY3V0ZTtkdWlzZXogY2V0dGUgdmFsZXVyLCBvdSBjb25zdWx0ZXogbGUgZm91cm5pc3NldXIgZGUgdm90cmUgaCZlYWN1dGU7YmVyZ2VtZW50Lic7CiRsYW5nWydpbmZvX2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ0NlcyBwYXJhbSZlZ3JhdmU7dHJlcyBzb250IHBhc3MmZWFjdXRlO3MgYXUgbW9kdWxlIHBhbmllciBzJmVhY3V0ZTtsZWN0aW9ubiZlYWN1dGU7LCAmYWdyYXZlOyBwYXJ0aXIgZGUgbGEgZGVzY3JpcHRpb24gZXQgZHUgciZlYWN1dGU7c3VtJmVhY3V0ZTsgZHUgcHJvZHVpdC4nOwokbGFuZ1snaW5mb19jb3B5X2F0dHJpYnNldHMnXSA9ICdDZXR0ZSBhY3Rpb24gY29waWUgbGVzIGpldXggZCYjMDM5O2F0dHJpYnV0cyAoaG9ycyB2YWxldXJzIFNLVSkgZGVwdWlzIHVuIGF1dHJlIHByb2R1aXQuJzsKJGxhbmdbJ2luZm9fY3JlYXRlZmllbGRzJ10gPSAnQ3ImZWFjdXRlO2VyIGF1dG9tYXRpcXVlbWVudCBsZXMgY2hhbXBzIGluY29ubnVzID8gPGVtPihjciZlYWN1dGU7YXRpb24gZGUgY2hhbXBzIGRlIHR5cGUgdGV4dGUpPC9lbT4nOwokbGFuZ1snaW5mb19jcmVhdGVjYXRlZ29yaWVzJ10gPSAnQ3ImZWFjdXRlO2VyIGF1dG9tYXRpcXVlbWVudCBsZXMgY2F0JmVhY3V0ZTtnb3JpZXMgZGUgcHJvZHVpdHMgcHImZWFjdXRlO3NlbnRlcyBkYW5zIGxlIGZpY2hpZXIgQ1NWLCBzaSBlbGxlcyBuJiMwMzk7ZXhpc3RlbnQgcGFzIGQmZWFjdXRlO2omYWdyYXZlOyc7CiRsYW5nWydpbmZvX2NyZWF0ZWhpZXJhcmNoeSddID0gJ0NyJmVhY3V0ZTtlciBhdXRvbWF0aXF1ZW1lbnQgbGVzICZlYWN1dGU7bCZlYWN1dGU7bWVudHMgZGUgaGkmZWFjdXRlO3JhcmNoaWUgZGUgcHJvZHVpdHMgcHImZWFjdXRlO3NlbnRlcyBkYW5zIGxlIGZpY2hpZXIgQ1NWLCBzaSBpbHMgbiYjMDM5O2V4aXN0ZW50IHBhcyBkJmVhY3V0ZTtqJmFncmF2ZTsnOwokbGFuZ1snaW5mb19kZWNpbWFsX3VuaXRzJ10gPSAnVXRpbGlzZXIgbGUgcG9pbnQgKC4pIGNvbW1lIHMmZWFjdXRlO3BhcmF0ZXVyIGQmZWFjdXRlO2NpbWFsLiBFeGVtcGxlOiAgPHN0cm9uZz41LjI1PC9zdHJvbmc+JzsKJGxhbmdbJ2luZm9fZGVsaW1pdGVyJ10gPSAnSW5kaXF1ZXIgbGUgY2F0YWN0JmVncmF2ZTtyZSAob3UgbGVzIGNhcmFjdCZlZ3JhdmU7cmVzKSBzJmVhY3V0ZTtwYXJhdGV1cnMgZGUgY2hhbXBzJzsKJGxhbmdbJ2luZm9fZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdUcmFpdGVtZW50IGEgYXBwbGlxdWVyIGF1eCBwcm9kdWl0cyBkb250IGxlIG5vbSBleGlzdGUgZCZlYWN1dGU7aiZhZ3JhdmU7IGRhbnMgbGUgZmljaGllciBDU1YnOwokbGFuZ1snaW5mb19maWVsZGRlZnNfdGFiJ10gPSAnPHN0cm9uZz5Ob3RlOiA8L3N0cm9uZz4gTGVzIGNoYW1wcyBkJmVhY3V0ZTtmaW5pcyBpY2kgc29udCBjb21tdW5zICZhZ3JhdmU7IHRvdXMgbGVzIHByb2R1aXRzJzsKJGxhbmdbJ2luZm9fZmllbGRwcm9ibGVtcyddID0gJ1VuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZHUgdHJhaXRlbWVudCBkJiMwMzk7dW4gb3UgcGx1c2lldXJzIGNoYW1wcyBwZXJzb25uYWxpcyZlYWN1dGU7cy4gTCYjMDM5O2FjdGlvbiBzJiMwMzk7ZXN0IHRlcm1pbiZlYWN1dGU7ZSBjb3JyZWN0ZW1lbnQsIG1haXMgdm91cyBkZXZyaWV6IGNoZXJjaGVyIGxhIGNhdXNlIGRlIGwmIzAzOTtlcnJldXIuJzsKJGxhbmdbJ2luZm9faGFuZGxlaW1hZ2VzJ10gPSAnTG9ycyBkZSBsJiMwMzk7aW1wb3J0YXRpb24sIHNpIHVuIG5vbSBkZSBmaWNoaWVyIGltYWdlIGVzdCB0cm91diZlYWN1dGU7IGRhbnMgdW5lIGNvbG9ubmUsIGZhdXQtaWwgbGUgZCZlYWN1dGU7cGxhY2VyIGRlIHNvbiByJmVhY3V0ZTtwZXJ0b2lyZSBkJiMwMzk7b3JpZ2luZSwgbHVpIGFqb3V0ZXIgdW4gZmlsaWdyYW5lLCBjciZlYWN1dGU7ZXIgdW5lIG1pbmlhdHVyZSwgZXQgY2hhbmdlciBsZSB0eXBlIGR1IGNoYW1wIGFzc29jaSZlYWN1dGU7IGVuIGNoYW1wICZxdW90O2ltYWdlJnF1b3Q7ID8nOwokbGFuZ1snaW5mb19oaWVycGFnZSddID0gJ1BhciBkJmVhY3V0ZTtmYXV0LCB1dGlsaXNlciBjZXR0ZSBwYWdlIHBvdXIgbGEgdnVlIGRlIGhpZXJhcmNoaWUuIEwmIzAzOTtJRCBkZSBsYSBwYWdlIG5lIHNlcmEgcGFzIHNwJmVhY3V0ZTtjaWZpJmVhY3V0ZTsgZGFucyBsJiMwMzk7VVJMLic7CiRsYW5nWydpbmZvX2ltYWdlcGF0aCddID0gJ0NoZW1pbiAocmVsYXRpZiBhdSByJmVhY3V0ZTtwZXJ0b2lyZSB1cGxvYWRzKSBkZXMgaW1hZ2VzIHImZWFjdXRlO2YmZWFjdXRlO3JlbmMmZWFjdXRlO2VzIHBhciBsZSBmaWNoaWVyIGltcG9ydCZlYWN1dGU7ICc7CiRsYW5nWydpbmZvX2ltYWdlc3R1ZmZfZGVwcmVjYXRlZCddID0gJ0xlcyBmb25jdGlvbnMgZGUgdHJhaXRlbWVudCBkJiMwMzk7aW1hZ2VzIHNvbnQgZCZlYWN1dGU7cHImZWFjdXRlO2NpJmVhY3V0ZTtlcyBldCB2b250ICZlY2lyYzt0cmUgc3VwcHJpbSZlYWN1dGU7ZXMgZGFucyB1bmUgZnV0dXJlIHZlcnNpb24uIFV0aWxpc2V6IGxlIG1vZHVsZSBDR1NtYXJ0SW1hZ2UgcG91ciBsZSB0cmFpdGVtZW50IGQmIzAzOTtpbWFnZXMuJzsKJGxhbmdbJ2luZm9faW1wb3J0X3Rlc3RfcGFzc2VkJ10gPSAnQXByJmVncmF2ZTtzIHVuIGV4YW1lbiBwciZlYWN1dGU7bGltaW5haXJlLCBsZSBmaWNoaWVyIHNlbWJsZSBjb3JyZWN0Ljxici8+Q2VwZW5kYW50LCBpbCBzZSBwZXV0IHF1JiMwMzk7aWwgY29udGllbm5lIHRvdXQgZGUgbSZlY2lyYzttZSBkZXMgZXJyZXVycyBxdWkgbmUgcG91cnJvbnQgJmVjaXJjO3RyZSBkJmVhY3V0ZTt0ZWN0JmVhY3V0ZTtlcyBxdWUgbG9ycyBkZSBsJiMwMzk7aW1wb3J0YXRpb24uJzsKJGxhbmdbJ2luZm9fcHJldHR5aGllcnVybHMnXSA9ICdJbmNsdXJlIGxlIG5vbSBkZSBsYSBoaSZlYWN1dGU7cmFyY2hpZSBkYW5zIGwmIzAzOTtVUkwnOwokbGFuZ1snaW5mb19wcmljZV9hZGp1c3RtZW50J10gPSAnTGVzIHZhbGV1cnMgdmFsaWRlcyBzb250ICstKiMuIyMnOwokbGFuZ1snaW5mb19wcm9kbm90Zm91bmQnXSA9ICdDZXR0ZSBvcHRpb24gcGFyYW0mZWdyYXZlO3RyZSBsZSBjb21wb3J0ZW1lbnQgZHUgc2l0ZSBsb3JzcXUmIzAzOTt1bmUgZmljaGUgcHJvZHVpdCBlc3QgYWZmaWNoJmVhY3V0ZTtlIGRpcmVjdGVtZW50ICZhZ3JhdmU7IGxhIHNhaXNpZSBkJiMwMzk7dW5lIFVSTCwgZXQgcXVlIGNlIHByb2R1aXQgbmUgcGV1dCAmZWNpcmM7dHJlIGFmZmljaCZlYWN1dGU7IChwb3VyIHRvdXRlcyByYWlzb25zIDogZCZlYWN1dGU7c2FjdGl2JmVhY3V0ZTssIHN1cHByaW0mZWFjdXRlOywgZXRjLikuJzsKJGxhbmdbJ2luZm9fcHVibGljZmllbGQnXSA9ICdMZXMgY2hhbXBzIHB1YmxpY3Mgc29udCB2aXNpYmxlcyBwYXIgbGVzIHV0aWxpc2F0ZXVycy4nOwokbGFuZ1snaW5mb19yZW9yZGVyX2NvbnRlbnQnXSA9ICdUaGlzIG9wZXJhdGlvbiBhbGxvd3MgZHJhZ2dpbmcgdGhlIGluZGl2aWR1YWwgbm9kZXMgaW4gdGhlIHRyZWUgdG8gYWRqdXN0dGggb3JkZXIgdGhhdCB0aGV5IHdpbGwgYmUgZGlzcGxheWVkIGluIGluIHRoZSBoaWVyYXJjaHkgdmlldyc7CiRsYW5nWydpbmZvX3NldGVjb21oYW5kbGVycyddID0gJ0NldHRlIGZvbmN0aW9uIHZhIHMmIzAzOTthc3N1cmVyIHF1ZSB0b3VzIGxlcyBnZXN0aW9ubmFpcmVzIGQmIzAzOTsmZWFjdXRlO3YmZWdyYXZlO25lbWVudHMgRS1jb21tZXJjZSBzb250IGluc3RhbGwmZWFjdXRlO3MuIENlY2kgZXN0IHV0aWxlIGxvcnNxdWUgdm91cyBzb3VoYWl0ZXogZyZlYWN1dGU7cmVyIGxlcyBzdG9ja3MgLyBxdWFudGl0JmVhY3V0ZTtzIGV0IHF1ZSBsZXMgZ2VzdGlvbm5haXJlcyBuJiMwMzk7b250IHBhcyAmZWFjdXRlO3QmZWFjdXRlO3MgbWlzIGVuIHBsYWNlIGxvcnMgZGUgbCYjMDM5O2luc3RhbGxhdGlvbiBvdSBsYSBtaXNlICZhZ3JhdmU7IGpvdXIuJzsKJGxhbmdbJ2xhYmVsJ10gPSAnJkVhY3V0ZTt0aXF1ZXR0ZSc7CiRsYW5nWydsYWJlbF9za2lwJ10gPSAnSWdub3Jlcic7CiRsYW5nWydsYWJlbF9vdmVyd3JpdGUnXSA9ICdFY3Jhc2VyJzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnJmFtcDtndDsmYW1wO2d0Oyc7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnRGVybmkmZWdyYXZlO3JlIG1vZGlmaWNhdGlvbic7CiRsYW5nWydsb2dvdGV4dCddID0gJ0xvZ28gJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ0xvbmdldXIgTWF4aW1hbGUgPGVtPihhcHBsaWNhYmxlIHNldWxlbWVudCBhdXggY2hhbXBzIHRleHRib3gpPC9lbT4nOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnRGF0ZSBkZSBtb2RpZmljYXRpb24nOwokbGFuZ1snbW9kdWxlX2Rlc2NyaXB0aW9uJ10gPSAnVW4gbW9kdWxlIGRlIGdlc3Rpb24gZCYjMDM5O3VuIGNhdGFsb2d1ZSBkZSBwcm9kdWl0cywgZGUgbGV1cnMgcHJpeCwgaW1hZ2VzLCBldGMuIFBlcm1ldCBhdXNzaSBhdXggdXRpbGlzYXRldXJzIGRlIHJlbXBsaXIgdW4gcGFuaWVyIGQmIzAzOTthY2hhdC4nOwokbGFuZ1snbW92ZV9kb3duJ10gPSAnRGVzY2VuZHJlJzsKJGxhbmdbJ21vdmVfdXAnXSA9ICdSZW1vbnRlcic7CiRsYW5nWydtc2dfZXZlbnRoYW5kbGVyc19jcmVhdGVkJ10gPSAnR2VzdGlvbm5haXJlcyBkJiMwMzk7JmVhY3V0ZTt2JmVncmF2ZTtuZW1lbnRzIGNyJmVhY3V0ZTtlcyc7CiRsYW5nWyduYW1lJ10gPSAnTm9tJzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnVm91cyBuJiMwMzk7YXZleiBwYXMgbGEgcGVybWlzc2lvbiByZXF1aXNlJm5ic3A7OiAlcyc7CiRsYW5nWyduZXdfY2F0ZWdvcnlfbmFtZSddID0gJ05vdXZlYXUgbm9tIGRlIGNhdCZlYWN1dGU7Z29yaWUnOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICcmYW1wO2d0Oyc7CiRsYW5nWydubyddID0gJ05vbic7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ1ZvdXMgbiYjMDM5O2F2ZXogcGFzIGRvbm4mZWFjdXRlOyBkZSBub20nOwokbGFuZ1snbm9uZSddID0gJ0F1Y3VuJzsKJGxhbmdbJ25vdGhpbmdfc2VsZWN0ZCddID0gJ1ZvdXMgbiYjMDM5O2F2ZXogcmllbiBzJmVhY3V0ZTtsZWN0aW9ubiZlYWN1dGU7JzsKJGxhbmdbJ29mJ10gPSAnZGUnOwokbGFuZ1snb3BlcmF0aW9uX2NhbmNlbGxlZCddID0gJ09wJmVhY3V0ZTtyYXRpb24gYW5udWwmZWFjdXRlO2UnOwokbGFuZ1snb3BlcmF0aW9uX2NvbXBsZXRlJ10gPSAnT3AmZWFjdXRlO3JhdGlvbiByJmVhY3V0ZTthbGlzJmVhY3V0ZTtlJzsKJGxhbmdbJ3BhZ2UnXSA9ICdQYWdlICc7CiRsYW5nWydwYWdlX29mJ10gPSAnUGFnZSAlcyBzdXIgJXMnOwokbGFuZ1sncGFnZV9saW1pdCddID0gJ0VsJmVhY3V0ZTttZW50cyBwYXIgcGFnZSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcCZlYWN1dGU7Y2lmaWUgbGUgY29tcG9ydGVtZW50IGR1IG1vZHVsZS4gTGVzIHZhbGV1cnMgcG9zc2libGVzIHNvbnQmbmJzcDs6DQo8dWw+DQogIDxsaT5oaWVyYXJjaHkgLSBBZmZpY2hlciBsYSBoaSZlYWN1dGU7cmFyY2hpZSBkZSBwcm9kdWl0czwvbGk+DQogIDxsaT5jYXRlZ29yeWxpc3QgLSBBZmZpY2hlciB1bmUgbGlzdGUgZGUgY2F0JmVhY3V0ZTtnb3JpZXMgZGUgcHJvZHVpdHM8L2xJDQogIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gQWZmaWNoZSBsZSBzb21tYWlyZSBkZXMgcHJvZHVpdHM8L2xpPg0KICA8bGk+ZGV0YWlscyAtIEFmZmljaGUgbGUgZCZlYWN1dGU7dGFpbCBkJiMwMzk7dW4gcHJvZHVpdCBkb25uJmVhY3V0ZTs8L2xpPg0KICA8bGk+ZmllbGRsaXN0IC0gQWZmaWNoZSBsYSBsaXN0ZSBkZXMgdmFsZXVycyBkdSBjaGFtcCBzcCZlYWN1dGU7Y2lmaSZlYWN1dGU7Lg0KICAgICA8cD4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOy0gQ2V0dGUgYWN0aW9uIHBldXQgJmVjaXJjO3RyZSB1dGlsaXMmZWFjdXRlO2UgcG91ciBjciZlYWN1dGU7ZXIgdW5lIG5hdmlnYXRpb24gJmFncmF2ZTsgcGFydGlyIGRlcyB2YWxldXJzIGQmIzAzOTt1biBjaGFtcCBzcCZlYWN1dGU7Y2lmaXF1ZS4gUGFyIGV4ZW1wbGUsIHZvdXMgcG91dmV6IGNyJmVhY3V0ZTtlciB1bmUgbGlzdGUgZCZlYWN1dGU7cm91bGFudGUgcGVyc29ubmFsaXMmZWFjdXRlO2UgYXBwZWwmZWFjdXRlO2UgJnF1b3Q7Q291bGV1ciZxdW90OyBldCBhbG9ycyBjciZlYWN1dGU7ZXIgdW5lIG5hdmlnYXRpb24gYmFzJmVhY3V0ZTtlIHN1ciBsZXMgZGlmZiZlYWN1dGU7cmVudGVzIGNvdWxldXJzLg0KICAgICA8L3A+DQogIDwvbGk+DQogIDxsaT5zZWFyY2ggLSBBZmZpY2hlciB1biBmb3JtdWxhaXJlIGRlIHJlY2hlcmNoZSBkZSBwcm9kdWl0cyBtdWx0aS1jcml0JmVncmF2ZTtyZXM8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdMb3JzIGRlIGwmIzAzOTt1dGlsaXNhdGlvbiBlbiBtb2RlIHNvbW1haXJlICg8ZW0+ZGVmYXVsdDwvZW0+KSwgY2UgcGFyYW0mZWdyYXZlO3RyZSwgcXVpIGRldnJhaXQgY29ycmVzcG9uZHJlIGF1IG5vbSBkJiMwMzk7dW5lIGNhdCZlYWN1dGU7Z29yaWUgZXhpc3RhbnRlLCBzZXJhIHV0aWxpcyZlYWN1dGU7IHBvdXIgYWZmaWNoZXIgc2V1bGVtZW50IGxlcyBlbnRyJmVhY3V0ZTtlcyBxdWkgc29udCBkYW5zIGNldHRlIGNhdCZlYWN1dGU7Z29yaWUgKHVuZSBsaXN0ZSBzJmVhY3V0ZTtwYXImZWFjdXRlO2UgcGFyIGRlcyB2aXJndWxlcyBwZXV0ICZlY2lyYzt0cmUgZm91cm5pZSknOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlmaWVsZCddID0gJ1V0aWxpcyZlYWN1dGU7IHNldWxlbWVudCBhY3Rpb24gbCYjMDM5O2FjdGlvbiA8ZW0+Y2F0ZWdvcnlsaXN0PC9lbT4sIGNlIHBhcmFtJmVncmF2ZTt0cmUgcGV1dCAmZWNpcmM7dHJlIHV0aWxpcyZlYWN1dGU7IHBvdXIgZmlsdHJlciBsZXMgY2F0JmVhY3V0ZTtnb3JpZXMgZW4gc2UgYmFzYW50IHN1ciB1bmUgdmFsZXVyIGQmIzAzOTt1biBjaGFtcCBkZSBjYXQmZWFjdXRlO2dvcmllLiBJbCBuZSBmb25jdGlvbm5lcmEgcGFzIGF2ZWMgbGVzIHBhcmFtJmVncmF2ZTt0cmVzIDxlbT5jYXRlZ29yeTwvZW0+IG91IDxlbT5jYXRlZ29yeV9pZDwvZW0+LiBMYSBzeW50YXhlIGRlIGNlIHBhcmFtJmVncmF2ZTt0cmUgZXN0IHVuZSBsaXN0ZSBkZSBub21zIGRlIGNoYW1wcyBldCBkZSB2YWxldXJzIHMmZWFjdXRlO3BhciZlYWN1dGU7ZXMgcGFyIGRlcyB2aXJndWxlcy4gIFBhciBleGVtcGxlIDogY2F0ZWdvcnlsaXN0PSZxdW90O25vbV9jaGFtcDp2YWxldXIsbm9tX2NoYW1wMjp2YWxldXJfMiZxdW90Oyc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJ1V0aWxpcyZlYWN1dGU7IHNldWxlbWVudCBhdmVjIGwmIzAzOTthY3Rpb24gPGVtPmNhdGVnb3J5bGlzdDwvZW0+LCBjZSBwYXJhbSZlZ3JhdmU7dHJlIGluZGlxdWUgcXVlbCBnYWJhcml0IGRvaXQgJmVjaXJjO3RyZSB1dGlsaXMmZWFjdXRlOyBwb3VyIGwmIzAzOTthZmZpY2hhZ2UuIFNpIGF1Y3VuZSB2YWxldXIgbiYjMDM5O2VzdCBmb3VybmllLCBsZSBnYWJhcml0IHBhciBkJmVhY3V0ZTtmYXV0IGFjdHVlbCBkZSBjZSB0eXBlIGVzdCB1dGlsaXMmZWFjdXRlOy4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0ZHRsdGVtcGxhdGUnXSA9ICdVdGlsaXMmZWFjdXRlOyBzZXVsZW1lbnQgYXZlYyBsJiMwMzk7YWN0aW9uIDxlbT5jYXRlZ29yeWxpc3Q8L2VtPiwgY2UgcGFyYW0mZWdyYXZlO3RyZSBpbmRpcXVlIHF1ZWwgZ2FiYXJpdCBkb2l0ICZlY2lyYzt0cmUgdXRpbGlzJmVhY3V0ZTsgcG91ciBsJiMwMzk7YWZmaWNoYWdlIGR1IGQmZWFjdXRlO3RhaWwgZCYjMDM5O3VuZSBjYXQmZWFjdXRlO2dvcmllLiBDZSBwYXJhbSZlZ3JhdmU7dHJlIHV0aWxpc2UgdW4gZ2FiYXJpdCBkZSBsaXN0ZSBkZSBjYXQmZWFjdXRlO2dvcmllcy4uLiBTaSBhdWN1bmUgdmFsZXVyIG4mIzAzOTtlc3Qgc3AmZWFjdXRlO2NpZmkmZWFjdXRlO2UsIGMmIzAzOTtlc3QgbGUgZ2FiYXJpdCBwYXIgZCZlYWN1dGU7ZmF1dCBkZSBjZSB0eXBlIHF1aSBlc3QgdXRpbGlzJmVhY3V0ZTsuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdTcCZlYWN1dGU7Y2lmaWUgbCYjMDM5O2lkIG91IGwmIzAzOTthbGlhcyBkZSBsYSBwYWdlIHF1aSBkb2l0ICZlY2lyYzt0cmUgdXRpbGlzJmVhY3V0ZTtlIHBvdXIgYWZmaWNoZXIgbGUgZCZlYWN1dGU7dGFpbC4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdDZSBwYXJhbSZlZ3JhdmU7dHJlIHNwJmVhY3V0ZTtjaWZpZSBxdWVsIGdhYmFyaXQgZGV2cmFpdCAmZWNpcmM7dHJlIHV0aWxpcyZlYWN1dGU7IHBvdXIgbCYjMDM5O2FmZmljaGFnZSBlbiBtb2RlIGQmZWFjdXRlO3RhaWxzLiBTaSBhdWN1bmUgdmFsZXVyIG4mIzAzOTtlc3QgZm91cm5pZSwgbGUgZ2FiYXJpdCBwYXIgZCZlYWN1dGU7ZmF1dCBhY3R1ZWwgZGUgY2UgdHlwZSBlc3QgdXRpbGlzJmVhY3V0ZTsuJzsKJGxhbmdbJ3BhcmFtX2V4Y2x1ZGVjYXQnXSA9ICdVdGlsaXMmZWFjdXRlOyBzZXVsZW1lbnQgYXZlYyBsJiMwMzk7YWN0aW9uIHBhciBkJmVhY3V0ZTtmYXV0IChzdW1tYXJ5KSwgY2UgcGFyYW0mZWdyYXZlO3RyZSB2b3VzIHBlcm1ldCBkJiMwMzk7ZXhjbHVyZSBsZXMgcHJvZHVpdHMgZGUgY2VydGFpbmVzIGNhdCZlYWN1dGU7Z29yaWVzIGR1IHImZWFjdXRlO3N1bHRhdC4gVm91cyBwb3V2ZXogdXRpbGlzZXIgdW5lIGxpc3RlIGRlIG5vbXMgZGUgY2F0JmVhY3V0ZTtnb3JpZXMgcyZlYWN1dGU7cGFyJmVhY3V0ZTtzIHBhciBkZXMgdmlyZ3VsZXMuIENlIHBhcmFtJmVncmF2ZTt0cmUgcGV1dCBmb25jdGlvbm5lciBlbiBjb25qb25jdGlvbiBhdmVjIGxlIHBhcmFtJmVncmF2ZTt0cmUgPGVtPmNhdGVnb3J5PC9lbT4gcG91ciBhZmZpY2hlciB1bmUgbGlzdGUgZGUgcHJvZHVpdHMgcXVpIHNvbnQgZGFucyB1bmUgY2F0JmVhY3V0ZTtnb3JpZSBtYWlzIHBhcyBkYW5zIGQmIzAzOTthdXRyZXMuJzsKJGxhbmdbJ3BhcmFtX2ZpZWxkJ10gPSAnVXRpbGlzJmVhY3V0ZTsgc2V1bGVtZW50IGF2ZWMgbCYjMDM5O2FjdGlvbiA8ZW0+ZmllbGRsaXN0PC9lbT4sIGNlIHBhcmFtJmVncmF2ZTt0cmUgZXN0IG9ibGlnYXRvaXJlIHBvdXIgcHImZWFjdXRlO2Npc2VyIGxlIG5vbSBkdSBjaGFtcCBwcm9kdWl0ICZhZ3JhdmU7IHV0aWxpc2VyIHBvdXIgY3ImZWFjdXRlO2VyIGxhIGxpc3RlIGQmZWFjdXRlO3JvdWxhbnRlLic7CiRsYW5nWydwYXJhbV9maWVsZHZhbCddID0gJ1V0aWxpcyZlYWN1dGU7IHNldWxlbWVudCBhdmVjIGwmIzAzOTthY3Rpb24gPGVtPmRlZmF1bHQ8L2VtPiwgY2UgcGFyYW0mZWdyYXZlO3RyZSBwZXJtZXQgZGUgc3AmZWFjdXRlO2NpZmllciBsYSB2YWxldXIgZCYjMDM5O3VuIGNoYW1wIHBvdXIgbGltaXRlciBsZXMgciZlYWN1dGU7c3VsdGF0cyBhZmZpY2gmZWFjdXRlO3MuIFZhbGV1cnMgc3AmZWFjdXRlO2NpYWxlcyBwb3NzaWJsZXMgOiAmcXVvdDs6Om51bGw6OiZxdW90OyAtICZxdW90Ozo6bm90bnVsbDo6JnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeSddID0gJ1V0aWxpcyZlYWN1dGU7IHNldWxlbWVudCBhdmVjIGwmIzAzOTthY3Rpb24gPGVtPmRlZmF1bHQ8L2VtPiwgY2UgcGFyYW0mZWdyYXZlO3RyZSBpbmRpcXVlIHF1ZSBzZXVscyBsZXMgcHJvZHVpdHMgYXBwYXJ0ZW5hbnQgJmFncmF2ZTsgY2V0ICZlYWN1dGU7bCZlYWN1dGU7bWVudCBkZSBoaSZlYWN1dGU7cmFyY2hpZSBkb2l2ZW50ICZlY2lyYzt0cmUgYWZmaWNoJmVhY3V0ZTtzLiAgRGVzIGpva2VycyBwZXV2ZW50ICZlY2lyYzt0cmUgdXRpbGlzJmVhY3V0ZTtzIHBvdXIgJmVhY3V0ZTt0ZW5kcmUgbCYjMDM5O2FmZmljaGFnZSBhdXggcGFyZW50IG91IGVuZmFudHMgZGUgbCYjMDM5OyZlYWN1dGU7bCZlYWN1dGU7bWVudCBkZSBoaSZlYWN1dGU7cmFyY2hpZSBpbmRpcXUmZWFjdXRlOy4gIFBhciBleGVtcGxlIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7cG90aXJvbnMqJiMwMzk7fSBhZmZpY2hlIHVuIHNvbW1haXJlIGRlIHRvdXMgbGVzIHBvdGlyb25zLCBldCBkZXMgcHJvZHVpdHMgYXBwYXJ0ZW5hbnQgYXV4IGRlc2NlbmRhbnRzIGRlIGwmIzAzOTsmZWFjdXRlO2wmZWFjdXRlO21lbnQgZGUgaGkmZWFjdXRlO3JhcmNoaWUgJiMwMzk7cG90aXJvbnMmIzAzOTsuICBEZSBtJmVjaXJjO21lLCB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5Oypwb3Rpcm9ucyYjMDM5O30gYWZmaWNoZSB1biBzb21tYWlyZSBkZSB0b3VzIGxlcyBwb3Rpcm9ucywgZXQgZGVzIHByb2R1aXRzIGFwcGFydGVuYW50IGF1eCBwYXJlbnRzIGRlIGwmIzAzOTsmZWFjdXRlO2wmZWFjdXRlO21lbnQgZGUgaGkmZWFjdXRlO3JhcmNoaWUgJiMwMzk7cG90aXJvbnMmIzAzOTsnOwokbGFuZ1sncGFyYW1faGllcmFyY2h5dGVtcGxhdGUnXSA9ICdDZSBwYXJhbSZlZ3JhdmU7dHJlIGluZGlxdWUgbGUgZ2FiYXJpdCAmYWdyYXZlOyB1dGlsaXNlciBsb3JzIGRlIGwmIzAzOTthZmZpY2hhZ2UgZGUgbGEgaGkmZWFjdXRlO3JhcmNoaWUuIExlIGdhYmFyaXQgZGUgaGkmZWFjdXRlO3JhcmNoaWUgcGFyIGQmZWFjdXRlO2ZhdXQgZXN0IHV0aWxpcyZlYWN1dGU7IHNpIGNlIHBhcmFtJmVncmF2ZTt0cmUgZXN0IGFic2VudCBvdSB2aWRlLic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdVdGlsaXMmZWFjdXRlOyBzZXVsZW1lbnQgYXZlYyBsJiMwMzk7YWN0aW9uIDxlbT5zZWFyY2g8L2VtPiwgY2UgcGFyYW0mZWdyYXZlO3RyZSBzcCZlYWN1dGU7Y2lmaWUgcXVlIGxhIHBhZ2UgZGUgciZlYWN1dGU7c3VsdGF0cyBhZmZpY2gmZWFjdXRlO2UgZG9pdCAmZWNpcmM7dHJlIGFmZmljaCZlYWN1dGU7ZSAmcXVvdDtlbiBsaWduZSZxdW90OyBvdSBub24uJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ1V0aWxpcyZlYWN1dGU7IHNldWxlbWVudCBhdmVjIGwmIzAzOTthY3Rpb24gPGVtPmRlZmF1bHQ8L2VtPiwgY2UgcGFyYW0mZWdyYXZlO3RyZSBzcCZlYWN1dGU7Y2lmaWUgY29tYmllbiBkJiMwMzk7YXJ0aWNsZXMgZG9pdmVudCAmZWNpcmM7dHJlIGxpc3QmZWFjdXRlO3Mgc3VyIGNoYXF1ZSBwYWdlLic7CiRsYW5nWydwYXJhbV9wYXJlbnQnXSA9ICdVdGlsaXMmZWFjdXRlOyBzZXVsZW1lbnQgYXZlYyBsJiMwMzk7YWN0aW9uIDxlbT5oaWVyYXJjaHk8L2VtPiwgY2UgcGFyYW0mZWdyYXZlO3RyZSBpbmRpcXVlIHF1ZWwgZXN0ICBsJiMwMzk7SUQgZHUgcHJlbWllciAmZWFjdXRlO2wmZWFjdXRlO21lbnQgZGUgbGEgaGkmZWFjdXRlO3JhcmNoaWUgJmFncmF2ZTsgYWZmaWNoZXInOwokbGFuZ1sncGFyYW1fcHJvZHVjdGlkJ10gPSAnVXRpbGlzJmVhY3V0ZTsgc2V1bGVtZW50IGF2ZWMgbCYjMDM5O2FjdGlvbiBkJmVhY3V0ZTt0YWlsLCBjZSBwYXJhbSZlZ3JhdmU7dHJlIGluZGlxdWUgcXVlbHMgcHJvZHVpdHMgdXRpbGlzZXIgcG91ciBsJiMwMzk7YWZmaWNoYWdlLic7CiRsYW5nWydwYXJhbV9wcm9kdWN0bGlzdCddID0gJ1V0aWxpcyZlYWN1dGU7IHNldWxlbWVudCBhdmVjIGwmIzAzOTthY3Rpb24gPGVtPmRlZmF1bHQ8L2VtPiwgY2UgcGFyYW0mZWdyYXZlO3RyZSBwZXJtZXQgZGUgc3AmZWFjdXRlO2NpZmllciB1bmUgbGlzdGUgZGVzIHByb2R1aXRzICZhZ3JhdmU7IGFmZmljaGVyIHZpYSBsZXVycyBJRHMgKCZlYWN1dGU7bCZlYWN1dGU7bWVudHMgcyZlYWN1dGU7cGFyJmVhY3V0ZTtzIHBhciBkZXMgdmlyZ3VsZXMpLg0KQXVjdW5lIHBhZ2luYXRpb24gb3UgdHJpIG4mIzAzOTtlc3QgciZlYWN1dGU7YWxpcyZlYWN1dGU7IGVuIHNlIGJhc2FudCBzdXIgY2VzIHZhbGV1cnMsIGFuZCBpZiBzcGVjaWZpZWQgdGhlIG90aGVyIGZpbHRlcmluZyBwYXJhbWV0ZXJzIHRvIHRoZSBzdW1tYXJ5IHZpZXcgYXJlIGlnbm9yZWQuJzsKJGxhbmdbJ3BhcmFtX3Jlc3VsdHBhZ2UnXSA9ICdVdGlsaXMmZWFjdXRlOyBzZXVsZW1lbnQgYXZlYyBsZXMgYWN0aW9ucyA8ZW0+c2VhcmNoPC9lbT4gZXQgPGVtPmNhdGVnb3J5bGlzdDwvZW0+LCBjZSBwYXJhbSZlZ3JhdmU7dHJlIHNwJmVhY3V0ZTtjaWZpZSBsJiMwMzk7SUQgb3UgbCYjMDM5O2FsaWFzIGRlIHBhZ2UgJmFncmF2ZTsgdXRpbGlzZXIgcG91ciBhZmZpY2hlciBsYSBsaXN0ZSBkZXMgciZlYWN1dGU7c3VsdGF0cy4nOwokbGFuZ1sncGFyYW1fc2VhcmNoZmllbGQnXSA9ICdVdGlsaXMmZWFjdXRlOyBzZXVsZW1lbnQgYXZlYyBsJiMwMzk7YWN0aW9uIDxlbT5zZWFyY2g8L2VtPiwgY2UgcGFyYW0mZWdyYXZlO3RyZSBwZXV0IGNvbnRlbmlyIHVuZSBsaXN0ZSBzJmVhY3V0ZTtwYXImZWFjdXRlO2UgcGFyIGRlcyB2aXJndWxlcyBkZSBub21zIGRlIGNoYW1wcyAmYWdyYXZlOyBpbmNsdXJlIGRhbnMgbGEgcmVjaGVyY2hlLic7CiRsYW5nWydwYXJhbV9zZWFyY2hmb3JtdGVtcGxhdGUnXSA9ICdVdGlsaXMmZWFjdXRlOyBzZXVsZW1lbnQgYXZlYyBsJiMwMzk7YWN0aW9uIDxlbT5zZWFyY2g8L2VtPiwgY2UgcGFyYW0mZWdyYXZlO3RyZSBwZXJtZXQgZGUgZCZlYWN1dGU7ZmluaXIgbGUgZ2FiYXJpdCBkdSBmb3JtdWxhaXJlIGRlIHJlY2hlcmNoZS4nOwokbGFuZ1sncGFyYW1fc2hvd2FsbCddID0gJ1V0aWxpcyZlYWN1dGU7IHNldWxlbWVudCBhdmVjIGxlcyBhY3Rpb25zIDxlbT5maWVsZGxpc3Q8L2VtPiBldCA8ZW0+Y2F0ZWdvcnlsaXN0PC9lbT4sIHNpIGNlIHBhcmFtJmVncmF2ZTt0cmUgZXN0IHVuIGVudGllciBkaWZmJmVhY3V0ZTtyZW50IGRlIDAsIHRvdXRlcyBsZXMgY2F0JmVhY3V0ZTtnb3JpZXMgKG0mZWNpcmM7bWUgY2VsbGVzIHNhbnMgcHJvZHVpdHMpIHNlcm9udCBhZmZpY2gmZWFjdXRlO2VzLic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcCZlYWN1dGU7Y2lmaWUgbCYjMDM5O29yZHJlIGRlcyBjaGFtcHMgdHJpJmVhY3V0ZTtzIGVuIG1vZGUgc29tbWFpcmUuIExlcyB2YWxldXJzIHBvc3NpYmxlcyBzb250Og0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gT3JkcmUgYXNjZW5kYW50PC9saT4NCiAgPGxpPmRlc2MgLS0gT3JkZXIgZGVzY2VuZGFudDwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdVdGlsaXMmZWFjdXRlOyBzZXVsZW1lbnQgYXZlYyBsZXMgYWN0aW9ucyA8ZW0+c3VtbWFyeTwvZW0+LCA8ZW0+Y2F0ZWdvcnlsaXN0PC9lbT4gZXQgPGVtPnNlYXJjaDwvZW0+LCBjZSBwYXJhbSZlZ3JhdmU7dHJlIGQmZWFjdXRlO3Rlcm1pbmUgbGUgdHJpIGRlcyBlbnRyJmVhY3V0ZTtlcy4gTGVzIHZhbGV1cnMgcG9zc2libGVzIGRlIHRyaSBzb250IDoNCjx1bD4NCiAgPGxpPjxzdHJvbmc+cHJvZHVjdF9uYW1lPC9zdHJvbmc+IC0tIG5vbSBkZSBwcm9kdWl0PC9saT4NCiAgPGxpPmlkIC0tIElEPC9saT4NCiAgPGxpPndlaWdodCAtLSBQb2lkcyBkdSBwcm9kdWl0PC9saT4NCiAgPGxpPnByaWNlIC0tIFByaXggZGUgYmFzZSBkdSBwcm9kdWl0PC9saT4NCiAgPGxpPnN0YXR1cyAtLSBTdGF0dXQgOiA8ZW0+ZHJhZnQ8L2VtPiAoJmVhY3V0ZTtiYXVjaGUpIG91IDxlbT5wdWJsaXNoZWQ8L2VtPiAocHVibGkmZWFjdXRlOyk8L2xpPg0KICA8bGk+cmFuZG9tIC0tIEFmZmljaGUgdW5lIGxpc3RlIGFsJmVhY3V0ZTthdG9pcmUgJmFncmF2ZTsgY2hhcXVlIGFmZmljaGFnZTwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIERhdGUgZGUgY3ImZWFjdXRlO2F0aW9uIGRlIGwmIzAzOTsmZWFjdXRlO2wmZWFjdXRlO21lbnQ8L2xpPg0KICA8bGk+bW9kaWZpZWQgLS0gRGF0ZSBkZSBtb2RpZmljYXRpb24gZGUgbCYjMDM5OyZlYWN1dGU7bCZlYWN1dGU7bWVudDwvbGk+DQogIDxsaT5mOmZpZWxkbmFtZSAtLSBUcmkgc2Vsb24gbGVzIHZhbGV1cnMgZGVzIGNoYW1wcyBwZXJzb25uYWxpcyZlYWN1dGU7cy4gRXhlbXBsZSA6IDxlbT5mOmNvdWxldXI8L2VtPiBvJnVncmF2ZTsgJnF1b3Q7Y291bGV1ciZxdW90OyBlc3QgdW4gY2hhbXAgcGVyc29ubmFsaXMmZWFjdXRlOzwvbGk+DQo8L3VsPg0KPHA+TGEgdnVlIGRlIGxpc3RlIGRlIGNhdCZlYWN1dGU7Z29yaWVzIHBldXQgcHJlbmRyZSBlbiBjb21wdGUgZCYjMDM5O2F1dHJlcyBvcHRpb25zIGRlIHRyaSA6DQo8dWw+DQogIDxsaT5pZCAtLSBJRCBkZSBjYXQmZWFjdXRlO2dvcmllPC9saT4NCiAgPGxpPjxzdHJvbmc+bmFtZTwvc3Ryb25nPiAtLSBOb20gZGUgY2F0JmVhY3V0ZTtnb3JpZTwvbGk+DQo8L3VsPjwvcD4nOwokbGFuZ1sncGFyYW1fc29ydHR5cGUnXSA9ICdVdGlsaXMmZWFjdXRlOyBzZXVsZW1lbnQgYXZlYyBsJiMwMzk7YWN0aW9uIDxlbT5kZWZhdWx0PC9lbT4sIGNlIHBhcmFtJmVncmF2ZTt0cmUgZXN0IHV0aWxpcyZlYWN1dGU7IHBvdXIgY29udmVydGlyIGRlcyB2YWxldXJzIGQmIzAzOTthdXRyZXMgdHlwZXMgcG91ciBsZSB0cmkuIExlcyB2YWxldXJzIHZhbGlkZXMgc29udCA6IFNUUklORywgU0lHTkVEIGV0IFVOU0lHTkVELiBTaSBub24gcHImZWFjdXRlO2NpcyZlYWN1dGU7LCBsZSB0eXBlIFNUUklORyBlc3QgdXRpbGlzJmVhY3V0ZTsgcGFyIGQmZWFjdXRlO2ZhdXQuJzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnlwYWdlJ10gPSAnVXRpbGxpcyZlYWN1dGU7IHNldWxlbWVudCBhdmVjIGwmIzAzOTthY3Rpb24gPGVtPmhpZXJhcmNoeTwvZW0+LCBjZSBwYXJhbSZlZ3JhdmU7dHJlIHBlcm1ldCBkZSBwciZlYWN1dGU7Y2lzZXIgbCYjMDM5O0lEIG91IEFsaWFzIGRlIHBhZ2UgJmFncmF2ZTsgdXRpbGlzZXIgcG91ciBsZXMgbGllbnMgdmVycyBsYSBsaXN0ZSBkZXMgcHJvZHVpdHMgZCYjMDM5O3VuICZlYWN1dGU7bCZlYWN1dGU7bWVudCAgZGUgaGkmZWFjdXRlO3JhcmNoaWUuJzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ0NlIHBhcmFtJmVncmF2ZTt0cmUgc3AmZWFjdXRlO2NpZmllIHF1ZWwgZ2FiYXJpdCBkb2l0ICZlY2lyYzt0cmUgdXRpbGlzJmVhY3V0ZTsgZW4gYWZmaWNoYWdlIG1vZGUgc29tbWFpcmUuIFNpIGF1Y3VuZSB2YWxldXIgbiYjMDM5O2VzdCBmb3VybmllLCBsZSBnYWJhcml0IHBhciBkJmVhY3V0ZTtmYXV0IGFjdHVlbCBkZSBjZSB0eXBlIGVzdCB1dGlsaXMmZWFjdXRlOy4nOwokbGFuZ1sncGFyZW50J10gPSAnUGFyZW50ICc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0xlIG1vZHVsZSBQcm9kdWl0cyBhICZlYWN1dGU7dCZlYWN1dGU7IGluc3RhbGwmZWFjdXRlOyBhdmVjIHN1Y2MmZWdyYXZlO3MnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0xlIG1vZHVsZSBQcm9kdWl0cyBhICZlYWN1dGU7dCZlYWN1dGU7IHN1cHByaW0mZWFjdXRlOywgYWluc2kgcXVlIHRvdXRlcyBsZXMgZG9ubiZlYWN1dGU7ZXMgYXNzb2NpJmVhY3V0ZTtlcy4nOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQciZlYWN1dGU7ZiZlYWN1dGU7cmVuY2VzJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ1N1cHByaW1lciBjZSBtb2R1bGUgdmEgYXVzc2kgc3VwcHJpbWVyIHRvdXRlcyBsZXMgZG9ubiZlYWN1dGU7ZXMgYXNzb2NpJmVhY3V0ZTtlcywgJmVjaXJjO3Rlcy12b3VzIHMmdWNpcmM7ciBkZSB2b3Vsb2lyIGNvbnRpbnVlcj8nOwokbGFuZ1sncHJpY2UnXSA9ICdQcml4JzsKJGxhbmdbJ3ByaWNlX2FkanVzdG1lbnQnXSA9ICdBanVzdGVtZW50IGRlIHByaXgnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICcmYW1wO2x0Oyc7CiRsYW5nWydwcm9kdWN0J10gPSAnUHJvZHVpdCc7CiRsYW5nWydwcm9kdWN0bmFtZSddID0gJ05vbSBkdSBwcm9kdWl0JzsKJGxhbmdbJ3Byb2R1Y3RzJ10gPSAnR2VzdGlvbm5haXJlIGRlIHByb2R1aXRzJzsKJGxhbmdbJ3Byb2R1Y3RfZGV0YWlsX3NldHRpbmdzJ10gPSAnUGFyYW0mZWdyYXZlO3RyZXMgRCZlYWN1dGU7dGFpbHMgZHUgcHJvZHVpdCc7CiRsYW5nWydwcm9kdWN0X2VkaXRpbmdfc2V0dGluZ3MnXSA9ICdQYXJhbSZlZ3JhdmU7dHJlcyBkJiMwMzk7JmVhY3V0ZTtkaXRpb24gZGUgcHJvZHVpdCc7CiRsYW5nWydwcm9kdWN0X3N1bW1hcnlfc2V0dGluZ3MnXSA9ICdQYXJhbSZlZ3JhdmU7dHJlcyBkZXMgbGlzdGVzIGRlIHByb2R1aXRzJzsKJGxhbmdbJ3Byb2R1Y3RfaGllcmFyY2h5J10gPSAnSGllcmFyY2hpZSBkZSBwcm9kdWl0cyc7CiRsYW5nWydwcm9kdWN0X2luZm8nXSA9ICdJbmZvcm1hdGlvbiBwcm9kdWl0JzsKJGxhbmdbJ3Byb2R1Y3RfbWFuYWdlciddID0gJ0dlc3Rpb25uYWlyZSBkZSBwcm9kdWl0cyc7CiRsYW5nWydwcm9ncmVzcyddID0gJ1Byb2dyZXNzaW9uJzsKJGxhbmdbJ3Byb21wdCddID0gJ0xpYmVsbCZlYWN1dGU7JzsKJGxhbmdbJ3Byb21wdF9hZGRfYXR0cmlic2V0J10gPSAnQWpvdXRlci9Nb2RpZmllciBsZXMgcGFyYW0mZWdyYXZlO3RyZXMgZGVzIGF0dHJpYnV0cyc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnXSA9ICdFeHRlbnNpb25zIGRlIGZpY2hpZXJzIGF1dG9yaXMmZWFjdXRlO2VzIChwb3VyIGxlcyBjaGFtcHMgZGUgdHlwZSBmaWNoaWVyKSAnOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2V0eXBlcyddID0gJ0V4dGVuc2lvbnMgZGUgZmljaGllcnMgaW1hZ2UgYXV0b3JpcyZlYWN1dGU7ZXMgKHBvdXIgbGVzIGNoYW1wcyBkZSB0eXBlIGltYWdlKSAnOwokbGFuZ1sncHJvbXB0X2F0dHJpYnRlbXBsYXRlJ10gPSAnR2FiYXJpdCBkJiMwMzk7YWZmaWNoYWdlIGRlcyB2YWxldXJzIGQmIzAzOTthdHRyaWJ1dHMgZGUgcHJvZHVpdHMgZGFucyBsYSBsaXN0ZSBkJmVhY3V0ZTtyb3VsYW50ZSc7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbCddID0gJ0NyJmVhY3V0ZTtlciBhdXRvbWF0aXF1ZW1lbnQgbGVzIG1pbmlhdHVyZXMgZGVzIGltYWdlcyc7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbF9zaXplJ10gPSAnVGFpbGxlIG1heGltdW0gKGMmb2NpcmM7dCZlYWN1dGU7IGxlIHBsdXMgbG9uZykgZGUgbGEgbWluaWF0dXJlLic7CiRsYW5nWydwcm9tcHRfYXV0b3ByZXZpZXdpbWcnXSA9ICdDciZlYWN1dGU7ZXIgYXV0b21hdGlxdWVtZW50IHVuZSBwciZlYWN1dGU7dmlzdWFsaXNhdGlvbiBkZSBsJiMwMzk7aW1hZ2UnOwokbGFuZ1sncHJvbXB0X2F1dG9wcmV2aWV3aW1nX3NpemUnXSA9ICdUYWlsbGUgbWF4aW11bSAoYyZvY2lyYzt0JmVhY3V0ZTsgbGUgcGx1cyBsb25nKSBkZSBsYSBwciZlYWN1dGU7dmlzdWFsaXNhdGlvbiBkZSBsJiMwMzk7aW1hZ2UuJzsKJGxhbmdbJ3Byb21wdF9hdXRvd2F0ZXJtYXJrJ10gPSAnUGxhY2VyIGF1dG9tYXRpcXVlbWVudCB1biBmaWxpZ3JhbmUgZGFucyBsZXMgaW1hZ2VzJzsKJGxhbmdbJ3Byb21wdF9hcHBsaWNhYmxlJ10gPSAnQWN0aXZlciBwYXIgZCZlYWN1dGU7ZmF1dCBwb3VyIHRvdXMgbGVzIG5vdXZlYXV4IHByb2R1aXRzJzsKJGxhbmdbJ3Byb21wdF9iYXRjaHNpemUnXSA9ICdOb21icmUgZGUgbGlnbmVzIGltcG9ydCZlYWN1dGU7ZXMgJmFncmF2ZTsgY2hhcXVlIGl0JmVhY3V0ZTtyYXRpb24nOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlJ10gPSAnTW9kdWxlIFBhbmllciAoQ2FydCknOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ1BhcmFtJmVncmF2ZTt0cmUgZHUgbW9kdWxlIHBhbmllcic7CiRsYW5nWydwcm9tcHRfY3JlYXRlY2F0ZWdvcmllcyddID0gJ0NyJmVhY3V0ZTtlciBkZXMgY2F0JmVhY3V0ZTtnb3JpZXMnOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWZpZWxkcyddID0gJ0NyJmVhY3V0ZTtlciBsZXMgY2hhbXBzIGRlcyBwcm9kdWl0cyA/JzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVoaWVyYXJjaHknXSA9ICdDciZlYWN1dGU7ZXIgdW5lIGhpJmVhY3V0ZTtyYXJjaGllIGRlIHByb2R1aXRzJzsKJGxhbmdbJ3Byb21wdF9jc3ZmaWxlJ10gPSAnRW52b3llciB1biBmaWNoaWVyIENTVic7CiRsYW5nWydwcm9tcHRfY3VycmVuY3ljb2RlJ10gPSAnQ29kZSBtb24mZWFjdXRlO3RhaXJlJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeXN5bWJvbCddID0gJ01vbm5haWUnOwokbGFuZ1sncHJvbXB0X2RlZmF1bHRfc3RhdHVzJ10gPSAnU3RhdHV0IHBhciBkJmVhY3V0ZTtmYXV0IGRlcyBub3V2ZWF1eCBwcm9kdWl0cyc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF90YXhhYmxlJ10gPSAnVG91cyBsZXMgcHJvZHVpdHMgc29udCB0YXgmZWFjdXRlO3MgcGFyIGQmZWFjdXRlO2ZhdXQnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gJ0VmZmFjZXIgbGVzIGZpY2hpZXJzIGF0dGFjaCZlYWN1dGU7cyBhdSBwcm9kdWl0IGxvcnMgZGUgc2Egc3VwcHJlc3Npb24gPyc7CiRsYW5nWydwcm9tcHRfZGVsaW1pdGVyJ10gPSAnUyZlYWN1dGU7cGFyYXRldXIgZGUgY2hhbXBzJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnUGFnZSBkJmVhY3V0ZTt0YWlsIHBhciBkJmVhY3V0ZTtmYXV0JzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxzZm9yJ10gPSAnRCZlYWN1dGU7dGFpbHMgcG91ciAlcyc7CiRsYW5nWydwcm9tcHRfZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdNb2RlIGRlIGdlc3Rpb24gZGVzIHByb2R1aXRzIGVuIGRvdWJsb24gPyc7CiRsYW5nWydwcm9tcHRfZmFsc2UnXSA9ICdGYXV4JzsKJGxhbmdbJ3Byb21wdF9oYW5kbGVpbWFnZXMnXSA9ICdHJmVhY3V0ZTtyZXIgbGVzIGltYWdlcyA/JzsKJGxhbmdbJ3Byb21wdF9pbWFnZXBhdGgnXSA9ICdDaGVtaW4gZGVzIGltYWdlcyc7CiRsYW5nWydwcm9tcHRfbGVuZ3RodW5pdHMnXSA9ICdVbml0JmVhY3V0ZTtzIGRlIGxvbmd1ZXVyJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9iZWhhdmlvciddID0gJ1F1ZWxsZSBhY3Rpb24gZG9pdCAmZWNpcmM7dHJlIHImZWFjdXRlO2FsaXMmZWFjdXRlO2UgbG9yc3F1JiMwMzk7dW4gcHJvZHVpdCBuZSBwZXV0ICZlY2lyYzt0cmUgYWZmaWNoJmVhY3V0ZTsgJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF80MDQnXSA9ICdHJmVhY3V0ZTtuJmVhY3V0ZTtyZXIgdW5lIGVycmV1ciA0MDQnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzMwMSddID0gJ0cmZWFjdXRlO24mZWFjdXRlO3JlciB1bmUgcmVkaXJlY3Rpb24gMzAxJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9lcnJvcm1zZyddID0gJ0FmZmljaGVyIHVuIG1lc3NhZ2UgZCYjMDM5O2VycmV1cic7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfbXNnJ10gPSAnTWVzc2FnZSBkJiMwMzk7ZXJyZXVyIGxvcnNxdSYjMDM5O3VuIHByb2R1aXQgbiYjMDM5O2VzdCBwYXMgdHJvdXYmZWFjdXRlOyAnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX3BhZ2UnXSA9ICdQYWdlIHBvdXIgZmFpcmUgbGVzIHJlZGlyZWN0aW9ucyBwZXJtYW5lbnRlcyAnOwokbGFuZ1sncHJvbXB0X2hpZXJwYWdlJ10gPSAnUGFnZSBwYXIgZCZlYWN1dGU7ZmF1dCBwb3VyIGxhIHZ1ZSBkZSBoaSZlYWN1dGU7cmFyY2hpZSAnOwokbGFuZ1sncHJvbXB0X3ByZXR0eWhpZXJ1cmxzJ10gPSAnVXRpbGlzZXIgbGVzIFVybHMgciZlYWN1dGU7JmVhY3V0ZTtjcml0ZXMgcG91ciBsZXMgdnVlcyBkZSBoaSZlYWN1dGU7cmFyY2hpZSAnOwokbGFuZ1sncHJvbXB0X3Byb2RfZGV0YWlscGFnZSddID0gJ1BhZ2UgcGFyIGQmZWFjdXRlO2ZhdXQgcG91ciB2b2lyIGxlIGQmZWFjdXRlO3RhaWwgZGVzIHByb2R1aXRzICc7CiRsYW5nWydwcm9tcHRfcHJvZHVjdHNfbWF0Y2hpbmcnXSA9ICdQcm9kdWl0cyBjb3JyZXNwb25kYW50ICZhZ3JhdmU7ICVzJzsKJGxhbmdbJ3Byb21wdF9za3VfcmVxdWlyZWQnXSA9ICdMZSBTS1UgKFVHUyAtIFVuaXQmZWFjdXRlOyBkZSBnZXN0aW9uIGRlcyBzdG9ja3MpIGVzdCByZXF1aXMgcG91ciB0b3VzIGxlcyBwcm9kdWl0cyBldCBhdHRyaWJ1dHMnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlwYWdlbGltaXQnXSA9ICdOb21icmUgZGUgcHJvZHVpdHMgcGFyIGQmZWFjdXRlO2ZhdXQgZXQgcGFyIHBhZ2UgZW4gbW9kZSBTb21tYWlyZSAnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdPcmRyZSBkZSB0cmkgcGFyIGQmZWFjdXRlO2ZhdXQgZW4gbW9kZSBzb21tYWlyZSAnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnQ2hhbXAgZGUgdHJpIHBhciBkJmVhY3V0ZTtmYXV0IGVuIG1vZGUgc29tbWFpcmUgJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1NvdXJjZSBkdSBnYWJhcml0JzsKJGxhbmdbJ3Byb21wdF90cnVlJ10gPSAnVnJhaSc7CiRsYW5nWydwcm9tcHRfdXJscHJlZml4J10gPSAnUHImZWFjdXRlO2ZpeGUgJmFncmF2ZTsgdXRpbGlzZXIgc3VyIHRvdXRlcyBsZXMgVVJMIGNpYmwmZWFjdXRlO2VzIGRlIGNlIG1vZHVsZSc7CiRsYW5nWydwcm9tcHRfdXNlX2RldGFpbHBhZ2VfZm9yX3NlYXJjaCddID0gJ1V0aWxpc2VyIGNldHRlIHBhZ2UgcG91ciBsZXMgciZlYWN1dGU7c3VsdGF0cyBkZSByZWNoZXJjaGU8ZW0+KHJlbXBsYWNlIGxlIHBhcmFtJmVncmF2ZTt0cmUgJiMwMzk7cGFnZSBkZXMgciZlYWN1dGU7c3VsdGF0cyBkZSBsYSByZWNoZXJjaGUmIzAzOTsgZGFucyBsZSBtb2R1bGUgc2VhcmNoKTwvZW0+JzsKJGxhbmdbJ3Byb21wdF91c2VoaWVycGF0aHVybHMnXSA9ICdVdGlsaXNlciBsZSBjaGVtaW4gZGUgaGkmZWFjdXRlO3JhcmNoaWUgZGFucyBsZXMgdXJscyBkZXMgZCZlYWN1dGU7dGFpbHMgZGUgcHJvZHVpdCc7CiRsYW5nWydwcm9tcHRfd2VpZ2h0dW5pdHMnXSA9ICdVbml0JmVhY3V0ZTtzIGRlIHBvaWRzJzsKJGxhbmdbJ3B1YmxpYyddID0gJ0VzdC1jZSB1biBjaGFtcCBwdWJsaWMgPyc7CiRsYW5nWydwdWJsaXNoZWQnXSA9ICdQdWJsaSZlYWN1dGU7JzsKJGxhbmdbJ3F1YW50aXR5X29uX2hhbmQnXSA9ICdRdWFudGl0JmVhY3V0ZTsgZW4gc3RvY2snOwokbGFuZ1sncmFuZG9tJ10gPSAnQXUgaGFzYXJkJzsKJGxhbmdbJ3Jlb3JkZXJfaGllcmFyY2h5J10gPSAnUiZlYWN1dGU7b3Jkb25uZXIgbGEgaGkmZWFjdXRlO3JhcmNoaWUnOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdSJmVhY3V0ZTtpbml0aWFsaXNlciBhdXggdmFsZXVycyBwYXIgZCZlYWN1dGU7ZmF1dCc7CiRsYW5nWydyZXR1cm4nXSA9ICdSZXRvdXInOwokbGFuZ1sncmV0dXJuX3RvX3RvcCddID0gJ1JldG91ciBlbiBoYXV0IGRlIHBhZ2UnOwokbGFuZ1sncm9vdCddID0gJ1JhY2luZSc7CiRsYW5nWydzZWFyY2hfZGVzY3JpcHRpb24nXSA9ICdEZXNjcmlwdGlvbic7CiRsYW5nWydzZWFyY2hfZXhwciddID0gJ0xhIHJlcXUmZWNpcmM7dGUgZGV2cmEgZWxsZSBjb3JyZXNwb25kZW50ICZhZ3JhdmU7IGxhIHRvdGFsaXQmZWFjdXRlOywgb3UgYXUgbW9pbnMgJmFncmF2ZTsgbCYjMDM5O3VuIGRlcyB0ZXN0cyBjaS1kZXNzb3VzPyc7CiRsYW5nWydzZWFyY2hfbmFtZSddID0gJ05vbSBkZSBwcm9kdWl0JzsKJGxhbmdbJ3NlYXJjaF9wcmljZSddID0gJ0dhbW1lIGRlIHByaXgnOwokbGFuZ1snc2VhcmNodGVtcGxhdGVfYWRkZWRpdCddID0gJ0Fqb3V0ZXIvTW9kaWZpZXIgbGUgZ2FiYXJpdCBkZSBmb3JtdWxhaXJlIGRlIHJlY2hlcmNoZSc7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZXMnXSA9ICdHYWJhcml0IGRlIHJlY2hlcmNoZSc7CiRsYW5nWydzZWxlY3RfYWxsJ10gPSAnVG91dCBzJmVhY3V0ZTtsZWN0aW9ubmVyJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdDaG9pc2lyLi4uJzsKJGxhbmdbJ3NldGRyYWZ0J10gPSAnRCZlYWN1dGU7ZmluaXIgJmFncmF2ZTsgQnJvdWlsbG9uJzsKJGxhbmdbJ3NldHB1Ymxpc2hlZCddID0gJ0QmZWFjdXRlO2ZpbmlyICZhZ3JhdmU7IFB1YmxpJmVhY3V0ZTsnOwokbGFuZ1snc2t1J10gPSAnU0tVIChpZGVudGlmaWFudCBkZSBxdWFudGl0JmVhY3V0ZTsgZW4gc3RvY2spJzsKJGxhbmdbJ3NvcnRfYnknXSA9ICdUcmkgcGFyJzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdPcmRyZSBkZSB0cmknOwokbGFuZ1snc291cmNlJ10gPSAnU291cmNlICc7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF0dXQnOwokbGFuZ1snc3VibWl0J10gPSAnU291bWV0dHJlJzsKJGxhbmdbJ3N1YnNjcmlwdGlvbiddID0gJ0Fib25uZW1lbnQnOwokbGFuZ1snc3Vic2NyX2V4cGlyeSddID0gJ0V4cGlyJmVhY3V0ZTsnOwokbGFuZ1snc3Vic2NyX2V4cGlyeTInXSA9ICdFeHBpciZlYWN1dGU7cyc7CiRsYW5nWydzdWJzY3JfbW9udGhseSddID0gJ01lbnN1ZWwnOwokbGFuZ1snc3Vic2NyX2RlbHBlcmlvZCddID0gJ0ZyJmVhY3V0ZTtxdWVuY2UgZGUgbGl2cmFpc29uJzsKJGxhbmdbJ3N1YnNjcl9kZWxwZXJpb2QyJ10gPSAnTGl2ciZlYWN1dGU7JzsKJGxhbmdbJ3N1YnNjcl9wYXlwZXJpb2QnXSA9ICdGciZlYWN1dGU7cXVlbmNlIGRlIHBhaWVtZW50JzsKJGxhbmdbJ3N1YnNjcl9wYXlwZXJpb2QyJ10gPSAnUGF5JmVhY3V0ZTsnOwokbGFuZ1snc3Vic2NyX3F1YXJ0ZXJseSddID0gJ1RyaW1lc3RyaWVsJzsKJGxhbmdbJ3N1YnNjcl9zZW1pYW51YWxseSddID0gJ1NlbWktQW5udWVsJzsKJGxhbmdbJ3N1YnNjcl95ZWFybHknXSA9ICdBbm51ZWwnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ0dhYmFyaXRzIGRlIHNvbW1haXJlJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWpvdXQgb3UgJmVhY3V0ZTtkaXRpb24gZCYjMDM5O3VuIGdhYmFyaXQgZGUgc29tbWFpcmUnOwokbGFuZ1sndGF4YWJsZSddID0gJ1RheGFibGUgJzsKJGxhbmdbJ3Rlc3QnXSA9ICdUZXN0ICc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ1pvbmUgZGUgdGV4dGUnOwokbGFuZ1sndGV4dGJveCddID0gJ0NoYW1wIHRleHRlJzsKJGxhbmdbJ3RpdGxlX2J5aGllcmFyY2h5X2RmbHR0ZW1wbGF0ZSddID0gJ0dhYmFyaXQgZGUgaGkmZWFjdXRlO3JhcmNoaWUgcGFyIGQmZWFjdXRlO2ZhdXQnOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ0dhYmFyaXQgcGFyIGQmZWFjdXRlO2ZhdXQgcG91ciB1bmUgbm91dmVsbGUgbGlzdGUgZGUgY2F0JmVhY3V0ZTtnb3JpZXMnOwokbGFuZ1sndGl0bGVfZGV0YWlsX2RmbHR0ZW1wbGF0ZSddID0gJ0dhYmFyaXQgcGFyIGQmZWFjdXRlO2ZhdXQgcG91ciBsJiMwMzk7YWZmaWNoYWdlIGR1IGQmZWFjdXRlO3RhaWwnOwokbGFuZ1sndGl0bGVfc2VhcmNoX2RmbHR0ZW1wbGF0ZSddID0gJ0dhYmFyaXQgcGFyIGQmZWFjdXRlO2ZhdXQgZGVzIE5vdXZlbGxlcyByZWNoZXJjaGVzJzsKJGxhbmdbJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJ10gPSAnR2FiYXJpdCBwYXIgZCZlYWN1dGU7ZmF1dCBwb3VyIGwmIzAzOTthZmZpY2hhZ2UgZHUgc29tbWFpcmUnOwokbGFuZ1sndHlwZSddID0gJ1R5cGUgJzsKJGxhbmdbJ3VwJ10gPSAnUmVtb250ZXInOwokbGFuZ1sndXBkYXRlJ10gPSAnTWlzZSAmYWdyYXZlOyBqb3VyJzsKJGxhbmdbJ3VwbG9hZCddID0gJ0Nob2lzaXNzZXogbGUgZmljaGllciAmYWdyYXZlOyBlbnZveWVyJzsKJGxhbmdbJ3VybF9hbGlhcyddID0gJ0FsaWFzIFVSTCAnOwokbGFuZ1sndmFsaWQnXSA9ICdWYWxpZGUnOwokbGFuZ1sndmFsdWUnXSA9ICdWYWxldXInOwokbGFuZ1sndmFsdWVzJ10gPSAnVmFsZXVycyc7CiRsYW5nWyd2aWV3J10gPSAnVnVlJzsKJGxhbmdbJ3ZpZXdhYmxlX2ZpZWxkcyddID0gJ1MmZWFjdXRlO2xlY3Rpb25uZXIgbGVzIGNoYW1wcyBwZXJzb25uYWxpcyZlYWN1dGU7cyAmYWdyYXZlOyBhZmZpY2hlciBkYW5zIGxhIGxpc3RlJzsKJGxhbmdbJ3dhdGVybWFya19sb2NhdGlvbiddID0gJ0VtcGxhY2VtZW50IGR1IGZpbGlncmFuZSc7CiRsYW5nWyd3ZWlnaHQnXSA9ICdQb2lkcyc7CiRsYW5nWyd3aXRoX3NlbGVjdGVkJ10gPSAnUHJvZHVpdHMgcyZlYWN1dGU7bGVjdGlvbm4mZWFjdXRlO3MnOwokbGFuZ1sneWVzJ10gPSAnT3VpJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMjA2NTY4MDU3LjEzMTc2MjgwNTMuMTMxNzYyODA1My4xMzE3NjI4MDUzLjEnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEzMTc2MjgwNTMuMS4xLnV0bWNjbj0oZGlyZWN0KXx1dG1jc3I9KGRpcmVjdCl8dXRtY21kPShub25lKSc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/it_IT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfbGVuZ3RoJ10gPSAnUCc7CiRsYW5nWydhYmJyX3dpZHRoJ10gPSAnTCc7CiRsYW5nWydhYmJyX2hlaWdodCddID0gJ0EnOwokbGFuZ1snYWRkJ10gPSAnQWdnaXVuZ2VyZSc7CiRsYW5nWydhZGRjYXRlZ29yeSddID0gJ0FnZ2l1bmdlcmUgdW5hIGNhdGVnb3JpYSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0FnZ2l1bmdlcmUgdW4gY2FtcG8nOwokbGFuZ1snYWRqdXN0YWJsZSddID0gJ01vZGlmaWNhYmlsZSc7CiRsYW5nWydhZGRwcm9kdWN0J10gPSAnQWdnaXVuZ2VyZSB1biBQcm9kb3R0byc7CiRsYW5nWydhZGRfYXR0cmliX3NldCddID0gJ0FnZ2l1bmdlcmUgdW4gYXR0cmlidXRvJzsKJGxhbmdbJ2FkZF9jYXRlZ29yeV9maWVsZCddID0gJ0Fzc29jaWEgY2FtcG8gY29uIGNhdGVnb3JpYTogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnQWdnaXVuZ2VyZSB1biBJdGVtIGdlcmFyY2hpY28nOwokbGFuZ1snYWRkX29wdGlvbiddID0gJ0FnZ2l1bmdlcmUgdW5hIG9wemlvbmUgYXR0cmlidXRvJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdTb2xvIGwmIzAzOTthZG1pbiBwdSZvZ3JhdmU7IHZlcmUgcXVlc3RvIGF0dHJpYnV0bz8nOwokbGFuZ1snYWxpZ25fdWwnXSA9ICdBbHRvIFNpbmlzdHJvJzsKJGxhbmdbJ2FsaWduX3VjJ10gPSAnQWx0byBDZW50cmF0byc7CiRsYW5nWydhbGlnbl91ciddID0gJ0FsdG8gRGVzdHJvJzsKJGxhbmdbJ2FsaWduX21sJ10gPSAnTWVkaW8gU2luaXN0cm8nOwokbGFuZ1snYWxpZ25fbWMnXSA9ICdDZW50cmF0byc7CiRsYW5nWydhbGlnbl9tciddID0gJ01lZGlvIERlc3Rybyc7CiRsYW5nWydhbGlnbl9sbCddID0gJ0Jhc3NvIFNpbmlzdHJvJzsKJGxhbmdbJ2FsaWduX2xjJ10gPSAnQmFzc28gQ2VudHJhdG8nOwokbGFuZ1snYWxpZ25fbHInXSA9ICdCYXNzbyBEZXN0cm8nOwokbGFuZ1snYWxsJ10gPSAnVHV0dGknOwokbGFuZ1snYWxsY2F0ZWdvcmllcyddID0gJ1R1dHRlIGxlIGNhdGVnb3JpZSc7CiRsYW5nWydhbnknXSA9ICdRdWFsc2lhc2knOwokbGFuZ1snYXJleW91c3VyZSddID0gJ1NpZXRlIHNpY3VyaT8nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVwcm9kdWN0J10gPSAnU2lldGUgc2ljdXJvIGRpIHZvbGVyIHByb3ByaW8gY2FuY2VsbGFyZSBxdWVzdG8gcHJvZG90dG8gZSB0dXR0ZSBsZSBpbmZvcm1hemlvbmkgY29ycmVsYXRlPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdBc2NlbmRlbnRlJzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnTm9tZSBhdHRyaWJ1dG8nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGljbyc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlcyddID0gJ01vZGVsbGkgUmVwb3J0IGdlcmFyY2hpY2knOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWdnaXVuZ2VyZS9Nb2RpZmljYSB1biBNb2RlbGxvIFJlcG9ydCBnZXJhcmNoaWNvJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbGxhJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yaWUnOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdDYXRlZ29yaWEnOwokbGFuZ1snY2F0ZWdvcnlleGlzdHMnXSA9ICdVbmEgY2F0ZWdvcmlhIGNvbiBxdWVsIG5vbWUgZ2kmYWdyYXZlOyBlc2lzdGUnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVzJ10gPSAnTW9kZWxsaSBMaXN0YSBjYXRlZ29yaWUnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FnZ2l1bmdlcmUvTW9kaWZpY2EgdW4gTW9kZWxsbyBMaXN0YUNhdGVnb3JpZSc7CiRsYW5nWydjZW50aW1ldGVycyddID0gJ0NlbnRpbWV0cmknOwokbGFuZ1snY2hlY2tib3gnXSA9ICdDaGVja2JveCAnOwokbGFuZ1snY29uZmlybV9jb3B5YXR0cmlidXRlcyddID0gJ1R1dHRpIGwmIzAzOTtpbnNpZW1lIGRpIGF0dHJpYnV0aSBwZXIgcXVlc3RvIHByb2RvdHRvIHNhciZhZ3JhdmU7IHJpbW9zc28uIFNpZXRlIHNpY3VybyBkaSB2b2xlciBjb250aW51YXJlPyc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9oaWVyYXJjaHlfbm9kZSddID0gJ1NpZXRlIHNpY3VybyBkaSB2b2xlciBwcm9wcmlvIGNhbmNlbGxhcmUgcXVlc3RvIG5vZG8/IFR1dHRpIGkgcHJvZG90dGkgY2hlIHN0YW5ubyB1c2FuZG8gcXVlc3RvIG5vZG8gbm9uIHNhcmFubm8gcGkmdWdyYXZlOyBnZXJhcmNoaWNpJzsKJGxhbmdbJ2NvbmZpcm1faW1wb3J0J10gPSAnU2lldGUgdmVyYW1lbnRlIHNpY3VyaSBkaSB2b2xlciBmYXJlIHF1ZXN0bz9cblxuQ29uZmlndXJhemlvbmkgbm9uIGNvcnJldHRlIG8gdW4gZmlsZSBkaSBjb25maWd1cmF6aW9uZSBub24gdmFsaWRvIHBvdHJlYmJlcm8gY29ycm9tcGVyZSBpbCBzaXN0ZW1hLic7CiRsYW5nWydjb3B5J10gPSAnQ29waWEnOwokbGFuZ1snY29weV9hdHRyaWJfc2V0cyddID0gJ0NvcGlhIGwmIzAzOTtpbnNpZW1lIGRlZ2xpIEF0dHJpYnV0aSc7CiRsYW5nWydjb3B5X2NhdGVnb3J5J10gPSAnQ29waWEgQ2F0ZWdvcmlhJzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRGF0YSBkaSBjcmVhemlvbmUnOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ1ZhbG9yZSBjb3JyZW50ZSc7CiRsYW5nWydkYXRhJ10gPSAnRGF0YSAnOwokbGFuZ1snZGVmYXVsdCddID0gJ1ByZWRlZmluaXRvJzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdNb2RlbGxpIHByZWRlZmluaXRpJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5Ob3RhOjwvc3Ryb25nPiBJbCBjb250ZW51dG8gZGkgcXVlc3RlIGFyZWUgdGVzdG8gc29ubyB1c2F0ZSBwZXIgZGV0ZXJtaW5hcmUgaWwgY29udGVudXRvIHByZWRlZmluaXRvIGRlaSBNb2RlbGxpIHF1YW5kbyBzY2VnbGlldGUgJnF1b3Q7QWdnaXVuZ2VyZSBNb2RlbGxvJnF1b3Q7IG5lbGwmIzAzOTthcHByb3ByaWF0byB0YWIuIE1vZGlmaWNhbmRvIHVuYSBkaSBxdWVzdGUgYXJlZSB0ZXN0byBub24gYXZyYW5ubyBuZXNzdW4gZWZmZXR0byBzdWwgdm9zdHJvIHNpdG8uJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0NhbmNlbGxhJzsKJGxhbmdbJ2RlbGV0ZV9hdHRyaWJzZXQnXSA9ICdDYW5jZWxsYSBhdHRyaWJ1dG8nOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAnQ2FuY2VsbGEgdW4gSXRlbSBnZXJhcmNoaWNvJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdEaXNjZW5kZW50ZSc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXppb25lJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uJ10gPSAnRGVzdGluYXppb25lJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdEZXR0YWdsaSc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdNb2RlbGxpIERldHRhZ2xpbyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWdnaXVuZ2VyZS9Nb2RpZmljYSB1biBNb2RlbGxvIERldHRhZ2xpbyc7CiRsYW5nWydkaW1lbnNpb25zJ10gPSAnRGltZW5zaW9uaSc7CiRsYW5nWydkaXNhYmxlZCddID0gJ0Rpc2FiaWxpdGF0byc7CiRsYW5nWydkb3duJ10gPSAnTXVvdmkgZ2kmdWdyYXZlOyc7CiRsYW5nWydkcmFmdCddID0gJ0JvenphJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnVGVuZGluYSc7CiRsYW5nWydkcm9wZG93bl9vcHRpb25zJ10gPSAnT3B6aW9uaSBUZW5kaW5hIDxlbT4oYXBwbGljYWJpbGUgc29sbyBwZXIgY2FtcGkgZHJvcGRvd24pPC9lbT48YnIvPjxici8+PGVtPih1biB0ZXJtaW5lIHBlciBvZ25pIHJpZ2EpPC9lbT4nOwokbGFuZ1snZWRpdCddID0gJ01vZGlmaWNhJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0J10gPSAnTW9kaWZpY2EgQXR0cmlidXRvJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0cyddID0gJ01vZGlmaWNhIHNldHRhZ2dpIEF0dHJpYnV0byc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHNfZm9yJ10gPSAnTW9kaWZpY2Egc2V0dGFnZ2kgQXR0cmlidXRvIHBlcic7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdNb2RpZmljYSBBdHRyaWJ1dGknOwokbGFuZ1snZWRpdF9jYXRlZ29yeSddID0gJ01vZGlmaWNhIENhdGVnb3JpYSc7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ01vZGlmaWNhIGNhbXBpIGRlbGxhIENhdGVnb3JpYSc7CiRsYW5nWydlZGl0X2hpZXJhcmNoeV9pdGVtJ10gPSAnTW9kaWZpY2EgdW4gSXRlbSBnZXJhcmNoaWNvJzsKJGxhbmdbJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnXSA9ICdVbiBhdHRyaWJ1dG8gY29uIHF1ZWwgbm9tZSBnaSZhZ3JhdmU7IGVzaXN0ZSc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfc2t1J10gPSAnRHVwbGljYSBpbCB2YWxvcmUgU0tVIHRyb3ZhdG8nOwokbGFuZ1snZXJyb3JfZmllbGR2YWx1ZV9lbXB0eSddID0gJ0lsIHZhbG9yZSBkZWwgY2FtcG8gbm9uIHB1Jm9ncmF2ZTsgZXNzZXJlIHZ1b3RvJzsKJGxhbmdbJ2Vycm9yX2ZpbGVmb3JtYXQnXSA9ICdQcm9ibGVtYSBuZWwgZm9ybWF0byBGaWxlJzsKJGxhbmdbJ2Vycm9yX2ZpbGVub3Rmb3VuZCddID0gJ0ZpbGUgbm9uIHRyb3ZhdG8nOwokbGFuZ1snZXJyb3JfZmlsZW9wZW4nXSA9ICdQcm9ibGVtYSBuZWxsJiMwMzk7YXBlcnR1cmEgZGVsIEZpbGUgJXMnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmVudCddID0gJ1BhcmVudCBpbnZhbGlkbyAodW4gbm9kbyBnZXJhcmNoaWNvIG5vbiBwdSZvZ3JhdmU7IGVzc2VyZSBpbCBwcm9wcmlvIHBhcmVudCknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9uYW1lJ10gPSAnSWwgdmFsb3JlIGRlbCBjYW1wbyBwZXJzb25hbGl6emF0byBub24gJmVncmF2ZTsgdmFsaWRvIChjb250aWVuZSBjYXJhdHRlcmkgbm9uIGFsZmFudW1lcmljaSknOwokbGFuZ1snZXJyb3JfaW52YWxpZF92YWx1ZSddID0gJ1ZhbHVlIHNwZWNpZmljYXRvIG5vbiB2YWxpZG8nOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnVW4gcGFyYW1ldHJvIHJpY2hpZXN0byAmZWdyYXZlOyBtYW5jYW50ZSBvIG5vbiB2YWxpZG8nOwokbGFuZ1snZXJyb3JfbmFtZXVzZWQnXSA9ICdVbiBpdGVtIGNvbiBxdWVsIG5vbWUgJmVncmF2ZTsgZ2kmYWdyYXZlOyBpbiB1c28nOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdTaSBwcmVnYSBzaSBzZWxlemlvbmFyZSBpbCB0aXBvIGRpIGNhbXBvJzsKJGxhbmdbJ2Vycm9yX25vbmFtZSddID0gJ1R1IGRldmkgYWdnaXVuZ2VyZSB1biBub21lJzsKJGxhbmdbJ2Vycm9yX29uZXN1YnNjcmlwdGlvbmZpZWxkJ10gPSAnU29sbyB1biBjYW1wbyBkaSBzb3R0b3Njcml6aW9uZSAmZWdyYXZlOyBwZXJtZXNzbyc7CiRsYW5nWydlcnJvcl9wZXJtaXNzaW9uZGVuaWVkJ10gPSAnUGVybWVzc28gbmVnYXRvJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfYWxpYXN1c2VkJ10gPSAnTG8gc3BlY2lmaWNhdG8gYWxpYXMgJmVncmF2ZTsgZ2kmYWdyYXZlOyBpbiB1c28nOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9uYW1ldXNlZCddID0gJ1VuIFByb2RvdHRvIGNvbiBxdWVsIG5vbWUgZ2kmYWdyYXZlOyBlc2lzdGUnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9ub3Rmb3VuZCddID0gJ2lsIHByb2RvdHRvIHJpY2hpZXN0byBub24gcHUmb2dyYXZlOyBlc3NlcmUgdHJvdmF0byc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X3NrdXVzZWQnXSA9ICdJbCB2YWxvcmUgZGkgU0tVICZlZ3JhdmU7IGdpJmFncmF2ZTsgaW4gdXNvIGRhIHVuJiMwMzk7YWx0cm8gcHJvZG90dG8nOwokbGFuZ1snZXJyb3JfcHJpY2VfYWRqdXN0bWVudCddID0gJ1ZhbG9yZSBkZWwgcHJlenpvIGRpIGFkZWd1YW1lbnRvIG5vbiB2YWxpZG8gcGVyIGlsIHRlcm1pbmUgJXMnOwokbGFuZ1snZXJyb3JfdXBsb2FkX2ZhaWxlZCddID0gJ1VwbG9hZCBmYWxsaXRvOiAlcyc7CiRsYW5nWydleHBpcmVfc2l4X21vbnRocyddID0gJ0RvcG8gNiBNZXNpJzsKJGxhbmdbJ2V4cGlyZV9vbmVfeWVhciddID0gJ0RvcG8gMSBhbm5vJzsKJGxhbmdbJ2V4cGlyZV90d29feWVhciddID0gJ0RvcG8gMiBhbm5pJzsKJGxhbmdbJ2V4dHJhMSddID0gJ0NhbXBvIEV4dHJhIDEnOwokbGFuZ1snZXh0cmEyJ10gPSAnQ2FtcG8gRXh0cmEgMic7CiRsYW5nWydmaWVsZCddID0gJ0NhbXBvJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRGVmaW5pemlvbmUgQ2FtcG8nOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnRGVmaW5pemlvbmkgQ2FtcG8nOwokbGFuZ1snZmlsZSddID0gJ0ZpbGUgJzsKJGxhbmdbJ2ZpbHRlcnMnXSA9ICdGaWx0cmknOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snZ2VuZXJhbF9zZXR0aW5ncyddID0gJ0NvbmZpZ3VyYXppb25pIGdlbmVyYWxpJzsKJGxhbmdbJ2dvJ10gPSAnVmFpJzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0dlcmFyY2hpYSc7CiRsYW5nWydoaWVyYXJjaHlfcG9zaXRpb24nXSA9ICdQb3NpemlvbmUgZ2VyYXJjaGlhJzsKJGxhbmdbJ2hpZXJhcmNoeV9zZXR0aW5ncyddID0gJ0NvbmZpZ3VyYXppb25pIGRlbGxhIEdlcmFyY2hpYSc7CiRsYW5nWydpZCddID0gJ0lEJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ0ltbWFnaW5lJzsKJGxhbmdbJ2ltYWdlX2hhbmRsaW5nX3NldHRpbmdzJ10gPSAnQ29uZmlndXJhemlvbmUgSW1tYWdpbmknOwokbGFuZ1snaW1wb3J0X2Zyb21fY3N2J10gPSAnUHJvZG90dGkgaW1wb3J0YXRpIGRhIGZpbGUgQ1NWJzsKJGxhbmdbJ2luY2hlcyddID0gJ1BvbGxpY2knOwokbGFuZ1snaW5jbHVkZV9jaGlsZHJlbiddID0gJ0luY2x1ZG8gRmlnbGk/JzsKJGxhbmdbJ2luZm9fYWxudW1vbmx5J10gPSAnU29sbyBjYXJhdHRlcmkgYWxmYW51bWVyaWNpLiBObyBzcGF6aSwgdmlyZ29sZXR0ZSwgYXBpY2kgbyBjb21iaW5hemlvbmkgbGV0dGVyZS9udW1lcmknOwokbGFuZ1snaW5mb19hdHRyaWJ0ZW1wbGF0ZSddID0gJ1ZhbG9yaSBwb3NzaWJpbGkgc29ubzogeyRhdHRyaWJfdGV4dH0seyRhdHRyaWJfYWRqdXN0fSx7JGN1cnJlbmN5X3N5bWJvbH0nOwokbGFuZ1snaW5mb19hdHRyaWJ1dGVzX2NvcGllZCddID0gJ0F0dHJpYnV0aSBDb3BpYXRpJzsKJGxhbmdbJ2luZm9fYXV0b3dhdGVybWFyayddID0gJ0NvbmZpZ3VyYXppb25lIGRlaSBXYXRlcm1hcmsgc29ubyBwcmVzZSBkYWwgbW9kdWxvIENHRXh0ZW5zaW9ucyc7CiRsYW5nWydpbmZvX2JhdGNoc2l6ZSddID0gJ1NldCB0aGUgbnVtYmVyIG9mIGxpbmVzIHRvIHByb2Nlc3MgcGVyICZxdW90O2JhdGNoJnF1b3Q7LiAgQWZ0ZXIgYSBiYXRjaCBpcyBjb21wbGV0ZSwgdGhlIGltcG9ydGVyIHdpbGwgcmVkaXJlY3QsIGFuZCByZXN1bWUgb3BlcmF0aW9ucy4gIElmIHlvdSBhcmUgZXhwZXJpZW5jaW5nIG1lbW9yeSBlcnJvcnMsIG9yIHRpbWVvdXQgcHJvYmxlbXMgZHVlIHRvIGxhcmdlIGFtb3VudHMgb2YgcHJvY2Vzc2luZywgeW91IG1heSBuZWVkIHRvIGNvbnN1bHQgeW91ciBob3N0IHByb3ZpZGVyLCBvciByZWR1Y2UgdGhpcyBudW1iZXInOwokbGFuZ1snaW5mb19jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdRdWVzdGkgcGFyYW1ldHJpIHNvbm8gZGF0aSBhbCBtb2R1bG8gQ2FycmVsbG8gc2VsZXppb25hdG8gZGFsIGRldHRhZ2xpbyBwcm9kb3R0aSBlIHZpc3VhbGl6emF6aW9uZSBzb21tYXJpbyc7CiRsYW5nWydpbmZvX2NvcHlfYXR0cmlic2V0cyddID0gJ1F1ZXN0YSBhemlvbmUgY29waWVyJmFncmF2ZTsgbCYjMDM5O2luc2llbWUgZGVnbGkgQXR0cmlidXRpIChlc2NsdWRlbmRvIGkgdmFsb3JpIHNrdSkgZGEgdW4gYWx0cm8gcHJvZG90dG8uJzsKJGxhbmdbJ2luZm9fY3JlYXRlZmllbGRzJ10gPSAnQ3JlbyBhdXRvbWF0aWNhbWVudGUgY2FtcGkgcHJvZG90dGkgc2VuemEgbm9tZT8gPGVtPihTYXJhbm5vIGNyZWF0aSBjb21lIGNhbXBpIHRlc3RvKTwvZW0+JzsKJGxhbmdbJ2luZm9fY3JlYXRlY2F0ZWdvcmllcyddID0gJ0F1dG9tYXRpY2FtZW50ZSBjcmVvIGNhdGVnb3JpZSBwcm9kdXR0byBjaGUgY29pbmNpZG9ubyBjb24gcXVlbGxlIGRlbCBmaWxlIENTViwgc2Ugbm9uIGVzaXN0b25vIGFuY29yYSc7CiRsYW5nWydpbmZvX2NyZWF0ZWhpZXJhcmNoeSddID0gJ0F1dG9tYXRpY2FtZW50ZSBjcmVvIGdlcmFyY2hpZSBwcm9kdXR0byBjaGUgY29pbmNpZG9ubyBjb24gcXVlbGxlIGRlbCBmaWxlIENTViwgc2Ugbm9uIGVzaXN0b25vIGFuY29yYSc7CiRsYW5nWydpbmZvX2RlY2ltYWxfdW5pdHMnXSA9ICdRdWVzdG8gc2lzdGVtYSBjYXBpc2NlIGlsIHB1bnRvICguKSBjb21lIHNlcGFyYXRvcmUgZGVjaW1hbGUuIGFkIGVzZW1waW86IDxzdHJvbmc+NS4yNTwvc3Ryb25nPic7CiRsYW5nWydpbmZvX2RlbGltaXRlciddID0gJ1NwZWNpZmljYSBpbCBjYXJhdHRlcmUgKG8gY2FyYXR0ZXJpKSBjaGUgc2VwYXJhbm8gY2lhc2N1biBjYW1wbyc7CiRsYW5nWydpbmZvX2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnU3BlY2lmaWNhIGNvbWUgaWwgc2lzdGVtYSBkb3ZyZWJiZSB0ZW5lcmUgdW4gcHJvZG90dG8gcXVhbmRvIGlsIG5vbWUgc2VtcHJlIGVzaXN0ZSBuZWwgZmlsZSBDU1YnOwokbGFuZ1snaW5mb19maWVsZGRlZnNfdGFiJ10gPSAnPHN0cm9uZz5Ob3RhOjwvc3Ryb25nPiBUdXR0aSBpIENhbXBpIHF1YSBkZWZpbml0aSBzb25vIHV0aWxpenphYmlsaSBwZXIgdHV0dGkgaSBwcm9kb3R0aS4nOwokbGFuZ1snaW5mb19maWVsZHByb2JsZW1zJ10gPSAnUHJvYmxlbWEgY29uIHVubyBvIHBpJnVncmF2ZTsgZGVpIGNhbXBpIHBlcnNvbmFsaXp6YXRpLiBMJiMwMzk7YXppb25lIGhhIHRlcm1pbmF0byBjb24gc3VjY2Vzc28sIHR1dHRhdmlhIHZvaSBkb3ZyZXN0ZSBpbnZlc3RpZ2FyZSBlIGNvcnJlZ2dlcmUgcXVlc3RpIHByb2JsZW1pJzsKJGxhbmdbJ2luZm9faGFuZGxlaW1hZ2VzJ10gPSAnVXBvbiBpbXBvcnQsIGlmIGFuIGltYWdlIGZpbGVuYW1lIGlzIGZvdW5kIGluIGEgZmllbGQgY29sdW1uLCBzaG91bGQgaXQgYmUgbW92ZWQgZnJvbSB0aGUgc291cmNlIGxvY2F0aW9uLCB3YXRlcm1hcmtlZCwgdGh1bWJuYWlsZWQsIGFuZCB0aGUgZmllbGQgdHlwZSBjaGFuZ2VkIHRvICZxdW90O2ltYWdlJnF1b3Q7JzsKJGxhbmdbJ2luZm9faGllcnBhZ2UnXSA9ICdVc2EgcXVlc3RhIHBhZ2luYSBwZXIgbGEgdmlzdWFsaXp6YXppb25lIGdlcmFyY2hpY2EuICBJbCBwYWdlaWQgbm9uIHNhciZhZ3JhdmU7IHNwZWNpZmljYXRvIG5lbGwmIzAzOTtVUkwuJzsKJGxhbmdbJ2luZm9faW1hZ2VwYXRoJ10gPSAnSWwgcGF0aCAocmVsYXRpdm8gYWxsYSBkaXJlY3RvcnkgZGkgdXBsb2FkcykgZG92ZSBsZSBpbW1hZ2luaSwgcmlmZXJpdGUgYWwgZmlsZSBkaSBpbXBvcnRhemlvbmUsIHBvc3Nvbm8gZXNzZXJlIHRyb3ZhdGUnOwokbGFuZ1snaW5mb19pbXBvcnRfdGVzdF9wYXNzZWQnXSA9ICdBIGJyaWVmIHRlc3QgYXMgYmVlbiBwZXJmb3JtZWQgb24gdGhlIGlucHV0IGZpbGUgc3BlY2lmaWVkLCBhbmQgZXZlcnl0aGluZyBhcHBlYXJzIHRvIGJlIGNvcnJlY3QuPGJyLz5UaGlzIGlzIG5vIGluZGljYXRpb24gdGhhdCB0aGVyZSBhcmUgbm8gZXJyb3JzIGluIHRoZSBmaWxlLic7CiRsYW5nWydpbmZvX3ByZXR0eWhpZXJ1cmxzJ10gPSAnSW5jbHVkZSB0aGUgaGllcmFyY2h5IGl0ZW0gbmFtZSBvbiB0aGUgVVJMJzsKJGxhbmdbJ2luZm9fcHJpY2VfYWRqdXN0bWVudCddID0gJ1ZhbG9yaSB2YWxpZGkgc29ubyArLSojLiMjJzsKJGxhbmdbJ2luZm9fcHJvZG5vdGZvdW5kJ10gPSAnVGhpcyBvcHRpb24gZGV0ZXJtaW5lcyB0aGUgYmVoYXZpb3VyIG9mIHRoZSB3ZWJzaXRlIGlmIGEgcHJvZHVjdCBkZXRhaWwgdmlldyBpcyBhY2Nlc3NlZCBkaXJlY3RseSBieSBVUkwsIGFuZCB0aGF0IHByb2R1Y3QgZm9yIHdoYXRldmVyIHJlYXNvbiAoZGlzYWJsZWQsIGRlbGV0ZWQsIGV0YykgY2Fubm90IGJlIGFjY2Vzc2VkLic7CiRsYW5nWydpbmZvX3B1YmxpY2ZpZWxkJ10gPSAnQ2FtcGkgcHViYmxpY2kgc29ubyB1dGlsaXp6YWJpbGkgcGVyIGlsIHB1YmJsaWNvIGRhIHZlZGVyZSc7CiRsYW5nWydsYWJlbCddID0gJ0V0aWNoZXR0YSc7CiRsYW5nWydsYWJlbF9za2lwJ10gPSAnU2FsdGEnOwokbGFuZ1snbGFiZWxfb3ZlcndyaXRlJ10gPSAnU292cmFzY3Jpdm8nOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnVWx0aW1hIG1vZGlmaWNhJzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnU2Vjb25kYSBpbW1hZ2luZSc7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYXNzaW1hIGx1bmdoZXp6YSA8ZW0+KGFwcGxpY2FiaWxlIHNvbG8gc3UgY2FtcGkgdGV4dGJveCk8L2VtPic7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICdEYXRhIGRpIG1vZGlmaWNhJzsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gJ1VuIG1vZHVsbyBwZXIgZ2VzdGlyZSB1biBjYXRhbG9nbyBkaSBwcm9kb3R0aSwgbG9ybyBwcmV6emksIGltbWFnaW5pLCBldGMsIGUgcGVybWV0dGUgYWdsaSB1dGVudGkgZGkgY29zdHJ1aXJlIHVuIGNhcnJlbGxvJzsKJGxhbmdbJ21vdmVfZG93biddID0gJ011b3ZpIGdpJnVncmF2ZTsnOwokbGFuZ1snbW92ZV91cCddID0gJ011b3ZpIHN1JzsKJGxhbmdbJ25hbWUnXSA9ICdOb21lJzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnTm9uIGF2ZXRlIGkgcGVybWVzc2kgcmljaGllc3RpOiAlcyc7CiRsYW5nWyduZXdfY2F0ZWdvcnlfbmFtZSddID0gJ051b3ZvIG5vbWUgQ2F0ZWdvcmlhJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydubyddID0gJ05vICc7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ05lc3N1biBub21lIGluc2VyaXRvJzsKJGxhbmdbJ25vbmUnXSA9ICdOZXNzdW5vJzsKJGxhbmdbJ29mJ10gPSAnZGknOwokbGFuZ1sncGFnZSddID0gJ1BhZ2luYSc7CiRsYW5nWydwYWdlX29mJ10gPSAnUGFnaW5hICVzIGRpICVzJzsKJGxhbmdbJ3BhZ2VfbGltaXQnXSA9ICdMaW1pdGUgcGFnaW5hJzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ1NwZWNpZnkgdGhlIGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPmhpZXJhcmNoeSAtLSBEaXNwbGF5IGEgcHJvZHVjdCBsaXN0IGJ5IGhpZXJhcmNoeTwvbGk+DQogIDxsaT5jYXRlZ29yeWxpc3QgLSBEaXNwbGF5IGEgbGlzdCBvZiBwcm9kdWN0IGNhdGVnb3JpZXM8L2xpPg0KICA8bGk+PGVtPmRlZmF1bHQ8L2VtPiAtIERpc3BsYXkgYSBzdW1tYXJ5IG9mIHByb2R1Y3RzPC9saT4NCiAgPGxpPmRldGFpbHMgLSBEaXNwbGF5IGEgZGV0YWlsIHZpZXcgb2YgYSBzaW5nbGUgcHJvZHVjdDwvbGk+DQogIDxsaT5maWVsZGxpc3QgLSBEaXNwbGF5IGEgbGlzdCBvZiB2YWx1ZXMgZnJvbSBhIHNwZWNpZmllZCBmaWVsZC4NCiAgICAgPHA+DQogLSBUaGlzIGFjdGlvbiBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYSBuYXZpZ2F0aW9uIGZyb20gdGhlIHZhbHVlcyBvZiBhIHNwZWNpZmljIGZpZWxkLiAgaS5lOiAgeW91IGNvdWxkIGNyZWF0ZSBhIGN1c3RvbSBkcm9wZG93biBmaWVsZCBjYWxsZWQgJnF1b3Q7Y29sb3ImcXVvdDsgYW5kIHRoZW4gY3JlYXRlIGEgbmF2aWdhdGlvbiBiYXNlZCBvbiB0aGUgZGlmZmVyZW50IGNvbG9ycy4NCiAgICAgPC9wPg0KICA8L2xpPg0KICA8bGk+c2VhcmNoIC0gRGlzcGxheSBhIGZvcm0gdG8gYWxsb3cgc2VhcmNoaW5nIHByb2R1Y3RzIG9uIHZhcmlvdXMgY3JpdGVyaXVtPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnUXVhbmRvIHVzYXRvIG5lbCBtb2RvIDxlbT5kZWZhdWx0PC9lbT4gc29tbWFyaW8sIHF1ZXN0byBwYXJhbWV0cm8sIGRvdnJlYmJlIGNvcnJpc3BvbmRlcmUgY29sIG5vbWUgZGkgdW5hIGNhdGVnb3JpYSBlc2lzdGVudGUgdXNhdGEgcGVyIHZpc3VhbGl6emFyZSBzb2xvIHF1ZWkgdGVybWluaSBjaGUgc29ubyBpbiBxdWVsbGEgY2F0ZWdvcmlhLiAocHUmb2dyYXZlOyBlc3NlcmUgZm9ybml0YSB1bmEgbGlzdGEgc2VwYXJhdGEgZGEgdmlyZ29sYSknOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICdVdGlsZSBzb2xvIGNvbiBsJiMwMzk7YXppb25lIGNhdGVnb3J5bGlzdCwgcXVlc3RvIHBhcmFtZXRybyBpbmRpY2EgaWwgTW9kZWxsbyBjaGUgZG92cmViYmUgZXNzZXJlIHV0aWxpenphdG8gcGVyIGxhIHZpc3VhbGl6emF6aW9uZS4gU2UgbmVzc3VuIHZhbG9yZSAmZWdyYXZlOyBzcGVjaWZpY2F0byBhbGxvcmEgJmVncmF2ZTsgdXNhdG8gaWwgTW9kZWxsbyBwcmVkZWZpbml0byBjb3JyZW50ZSBkaSBxdWVsIHRpcG8uJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdGR0bHRlbXBsYXRlJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRpc3BsYXkgb2YgdGhlIGNhdGVnb3J5IGRldGFpbHMuICBUaGlzIHVzZXMgYSBjYXRlZ29yeSBsaXN0IHRlbXBsYXRlLi4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdRdWVzdG8gc3BlY2lmaWNhIGlsIElEIGRpIHBhZ2luYSBvIGFsaWFzIGNoZSBkb3ZyZWJiZSBlc3NlcmUgdXNhdG8gcGVyIHZpc3VhbGl6emFyZSBpbCByZXBvcnQgZGV0dGFnbGlvLic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ1F1ZXN0byBwYXJhbWV0cm8gc3BlY2lmaWNhIGlsIE1vZGVsbG8gY2hlIGRvdnJlYmJlIGVzc2VyZSB1c2F0byBwZXIgbGEgdmlzdWFsaXp6YXppb25lIGRldHRhZ2xpby4gU2UgbmVzc3VuIHZhbG9yZSAmZWdyYXZlOyBzcGVjaWZpY2F0bywgYWxsb3JhIHNhciZhZ3JhdmU7IHVzYXRvIGlsIE1vZGVsbG8gcHJlZGVmaW5pdG8gZGVsIHRpcG8gY29ycmVudGUuJzsKJGxhbmdbJ3BhcmFtX2ZpZWxkJ10gPSAnVXNhdG8gc29sbyBuZWwgPGVtPmZpZWxkbGlzdDwvZW0+IHF1ZXN0byBwYXJhbWV0cm8gJmVncmF2ZTsgcmljaGllc3RvIHBlciBzcGVjaWZpY2FyZSBpbCBub21lIGRpIHVuIHVzZXIgZGVmaW5lZCBwcm9wZXJ0eSBwZXIgY3JlYXJlIHVuYSBsaXN0YS4nOwokbGFuZ1sncGFyYW1fZmllbGR2YWwnXSA9ICdVc2VkIG9ubHkgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGZpZWxkIHZhbHVlIHRvIGxpbWl0IHJlc3VsdHMgYnkuICBTcGVjaWFsIHZhbHVlcyBmb3IgdGhpcyBmaWVsZCBhcmUgJnF1b3Q7OjpudWxsOjomcXVvdDsgJnF1b3Q7Ojpub3RudWxsOjomcXVvdDsnOwokbGFuZ1sncGFyYW1faGllcmFyY2h5J10gPSAnVXRpbGUgc29sbyBjb24gbCYjMDM5O2F6aW9uZSA8ZW0+ZGVmYXVsdDwvZW0+LCBxdWVzdG8gcGFyYW1ldHJvIHNwZWNpZmljYSBjaGUgc29sb2kgdGVybWluaSBuZWxsYSBsb2NhemlvbmUgZ2VyYXJjaGljYSBkb3ZyZWJiZXJvIGVzc2VyZSB2aXN1YWxpenphdGkuIENhcmF0dGVyaSB3aWxkY2FyZCBwb3Nzb25vIGVzc2VyZSB1c2F0aSBjb3MmaWdyYXZlOyBjaGUgdm9pIHBvdGV0ZSBzcGVjaWZpY2FyZSByZWxhemlvbmkgcGFyZW50L2ZpZ2xpLiBQZXIgZXNlbXBpbyB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5O3RydWNrcyomIzAzOTt9IGNyZWEgdW4gcmVwb3J0IHNvbW1hcmlvIGRpIHR1dHRpIGkgdHJ1Y2tzLCBpbmNsdXNvIGkgZmlnbGkgbmVsbGEgZ2VyYXJjaGlhLiBTaW1pbG1lbnRlLCB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5Oyp0cnVja3MmIzAzOTt9IHZpc3VhbGl6emEgdW4gcmVwb3J0IHNvbW1hcmlvIGRpIHR1dHRpIGkgdHJ1Y2tzIGUgdHV0dGkgaSBwcm9kb3R0aSB0ZW51dGkgZGEgb2duaSBwYXJlbnQgbmVsbGEgZ2VyYXJjaGlhLic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZSddID0gJ1F1ZXN0byBwYXJhbWV0cm8gc3BlY2lmaWNhIGlsIE1vZGVsbG8gY2hlIGRvdnJlYmJlIGVzc2VyZSB1c2F0byBwZXIgbGEgdmlzdWFsaXp6YXppb25lIGdlcmFyY2hpYS4gU2UgbmVzc3VuIHZhbG9yZSAmZWdyYXZlOyBzcGVjaWZpY2F0bywgYWxsb3JhIHNhciZhZ3JhdmU7IHVzYXRvIGlsIE1vZGVsbG8gcHJlZGVmaW5pdG8gZGkgcXVlbCB0aXBvLic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhhdCB0aGUgb3V0cHV0IG9mIHRoZSBzdW1tYXJ5IHZpZXcgc2hvdWxkIGJlIGRpc3BsYXllZCBpbmxpbmUnOwokbGFuZ1sncGFyYW1fcGFnZWxpbWl0J10gPSAnVXRpbGUgc29sbyBjb24gbCYjMDM5O2F6aW9uZSA8ZW0+ZGVmYXVsdDwvZW0+LCBxdWVzdG8gcGFyYW1ldHJvIHNwZWNpZmljYSBxdWFudGkgdGVybWluaSBkb3ZyZWJiZXJvIGVzc2VyZSB2aXN1YWxpenphdGkgc3UgY2lhc2N1bmEgcGFnaW5hLic7CiRsYW5nWydwYXJhbV9wYXJlbnQnXSA9ICdVdGlsZSBzb2xvIGNvbiBsJiMwMzk7YXppb25lIDxlbT5nZXJhcmNoaWE8L2VtPiwgcXVlc3RvIHBhcmFtZXRybyBzcGVjaWZpY2EgbCYjMDM5O2lkIGRlbGxhIGdlcmFyY2hpYSBkZWxsYSBsb2NhemlvbmUgZGkgcGFydGVuemEgZGVsIHJlcG9ydC4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGlkJ10gPSAnVXRpbGUgc29sbyBjb24gbCYjMDM5O2F6aW9uZSBkZXR0YWdsaW8sIHF1ZXN0byBwYXJhbWV0cm8gaW5kaWNhIGlsIHByb2RvdHRvIGNoZSBkb3ZyZWJiZSBlc3NlcmUgdXRpbGl6emF0byBwZXIgbGEgdmlzdWFsaXp6YXppb25lLic7CiRsYW5nWydwYXJhbV9wcm9kdWN0bGlzdCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCAoc3VtbWFyeSkgdmlldywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBpbnRlZ2VyIHByb2R1Y3QgaWRzIHRvIGRpc3BsYXkuICBObyBwYWdpbmF0aW9uIG9yIHNvcnRpbmcgaXMgcGVyZm9ybWVkIG9uIHRoZXNlIHZhbHVlcywgYW5kIGlmIHNwZWNpZmllZCB0aGUgb3RoZXIgZmlsdGVyaW5nIHBhcmFtZXRlcnMgdG8gdGhlIHN1bW1hcnkgdmlldyBhcmUgaWdub3JlZC4nOwokbGFuZ1sncGFyYW1fcmVzdWx0cGFnZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgc2VhcmNoLCBhbmQgY2F0ZWdvcnkgbGlzdCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgYSBwYWdlIGlkIG9yIGFsaWFzIHRvIHVzZSB0byBkaXNwbGF5IHRoZSBzdW1tYXJ5IHJlc3VsdHMnOwokbGFuZ1sncGFyYW1fc2VhcmNoZmllbGQnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIG1heSBjb250YWluIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZmllbGQgbmFtZXMgdG8gaW5jbHVkZSBpbiB0aGUgc2VhcmNoJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZvcm10ZW1wbGF0ZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpc3BhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG5vbiBkZWZhdWx0IHNlYXJjaCBmb3JtIHRlbXBsYXRlJzsKJGxhbmdbJ3BhcmFtX3Nob3dhbGwnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGNhdGVnb3J5bGlzdCBhbmQgZmllbGRsaXN0IGFjdGlvbnMsIGlmIHRoaXMgcGFyYW1ldGVyIGlzIHNldCB0byBhIG5vbiAwIGludGVnZXIgdmFsdWUgYWxsIGNhdGVnb3JpZXMgKGV2ZW4gdGhvc2Ugd2l0aG91dCBwcm9kdWN0cykgd2lsbCBiZSBkaXNwbGF5ZWQuJzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ1NwZWNpZnkgdGhlIG9yZGVyIG9mIHNvcnRlZCBmaWVsZHMgaW4gc3VtbWFyeSB2aWV3LiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIEFzY2VuZGluZyBvcmRlcjwvbGk+DQogIDxsaT5kZXNjIC0tIERlc2NlbmRpbmcgb3JkZXI8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnQXBwbGljYWJsZSBvbmx5IGluIHRoZSBzdW1tYXJ5IG9yIHNlYXJjaCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQgcHJvZHVjdHMuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5wcm9kdWN0X25hbWU8L3N0cm9uZz48L2xpPg0KICA8bGk+aWQgLS0gVGhlIHByb2R1Y3QgaWQ8L2xpPg0KICA8bGk+d2VpZ2h0IC0tIFRoZSBwcm9kdWN0IHdlaWdodDwvbGk+DQogIDxsaT5wcmljZSAtLSBUaGUgcHJvZHVjdCBiYXNlIHByaWNlPC9saT4NCiAgPGxpPnN0YXR1cyAtLSBEcmFmdCBvciBwdWJsaXNoZWQ8L2xpPg0KICA8bGk+cmFuZG9tIC0tIERpc3BsYXkgaW4gcmFuZG9tIG9yZGVyIG9uIGVhY2ggcmVxdWVzdDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPmY6ZmllbGRuYW1lIC0tIEFsbG93cyBzb3J0aW5nIGJ5IHZhbHVlcyBvZiBjdXN0b20gZmllbGRzLjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0dHlwZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCBzdW1tYXJ5IHZpZXcsIHRoaXMgcGFyYW1ldGVyIGlzIHVzZWQgdG8gY29udmVydCB0aGUgdmFsdWVzIHRvIGFub3RoZXIgdHlwZSBmb3Igc29ydGluZy4gIHZhbGlkIHZhbHVlcyBhcmUgU1RSSU5HLFNJR05FRCBhbmQgVU5TSUdORUQuICBJZiBub3Qgc3VwcGxpZWQgdGhlIGRlZmF1bHQgU1RSSU5HIHR5cGUgaXMgYXNzdW1lZC4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXBhZ2UnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGFjdGlvbj1oaWVyYXJjaHksIGFsbG93cyBzcGVjaWZ5aW5nIGEgcGFnZSBpZCBvciBhbGlhcyB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgYW55IGxpbmtzIHRvIHN1bW1hcnkgdmlldyc7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdRdWVzdG8gcGFyYW1ldHJvIHNwZWNpZmljYSBpbCBNb2RlbGxvIGNoZSBzYXImYWdyYXZlOyB1dGlsaXp6YXRvIHBlciBsYSB2aXN1YWxpenphemlvbmUgZGVsIG1vZG8gc29tbWFyaW8uIFNlIG5lc3N1biB2YWxvcmUgJmVncmF2ZTsgc3BlY2lmaWNhdG8sIGFsbG9yYSBpbCBzYXImYWdyYXZlOyB1dGlsaXp6YXRvIGlsIE1vZGVsbG8gcHJlZGVmaW5pdG8gZGkgcXVlbCB0aXBvLic7CiRsYW5nWydwYXJlbnQnXSA9ICdQYWRyZSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0lsIG1vZHVsbyBQcm9kdWN0cyAmZWdyYXZlOyBzdGF0byBpbnN0YWxsYXRvIGNvbiBzdWNjZXNzbyc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnSWwgbW9kdWxvIFByb2R1Y3RzICZlZ3JhdmU7IHN0YXRvIHJpbW9zc28gY29uIHR1dHRpIGkgZGF0aSBhc3NvY2lhdGknOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQcmVmZXJlbnplJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ1JpbXVvdmVyZSBxdWVzdG8gbW9kdWxvIHJpbXVvdmVyJmFncmF2ZTsgYW5jaGUgdHV0dGkgaSBkYXRpIGFzc29jaWF0aSwgc2lldGUgc2ljdXJpIGRpIHZvbGVyIHByb2NlZGVyZT8nOwokbGFuZ1sncHJpY2UnXSA9ICdQcmV6em8nOwokbGFuZ1sncHJpY2VfYWRqdXN0bWVudCddID0gJ1ByZXp6byBkaSBhZGVndWFtZW50byc7CiRsYW5nWydwcmV2cGFnZSddID0gJzwnOwokbGFuZ1sncHJvZHVjdCddID0gJ1Byb2RvdHRvJzsKJGxhbmdbJ3Byb2R1Y3RuYW1lJ10gPSAnTm9tZSBQcm9kb3R0byc7CiRsYW5nWydwcm9kdWN0cyddID0gJ0dlc3Rpb25lIFByb2RvdHRvJzsKJGxhbmdbJ3Byb2R1Y3RfZGV0YWlsX3NldHRpbmdzJ10gPSAnQ29uZmlndXJhemlvbmkgZGV0dGFnbGlvIFByb2RvdHRpJzsKJGxhbmdbJ3Byb2R1Y3RfZWRpdGluZ19zZXR0aW5ncyddID0gJ1Byb2R1Y3QgRWRpdGluZyBTZXR0aW5ncyc7CiRsYW5nWydwcm9kdWN0X3N1bW1hcnlfc2V0dGluZ3MnXSA9ICdQcm9kdWN0IFN1bW1hcnkgU2V0dGluZ3MnOwokbGFuZ1sncHJvZHVjdF9oaWVyYXJjaHknXSA9ICdHZXJhcmNoaWEgUHJvZG90dG8nOwokbGFuZ1sncHJvZHVjdF9tYW5hZ2VyJ10gPSAnR2VzdG9yZSBQcm9kb3R0byc7CiRsYW5nWydwcm9ncmVzcyddID0gJ0F2YW56YW1lbnRvJzsKJGxhbmdbJ3Byb21wdCddID0gJ1Byb21wdCAnOwokbGFuZ1sncHJvbXB0X2FkZF9hdHRyaWJzZXQnXSA9ICdBZ2dpdW5nZXJlL01vZGlmaWNhIEF0dHJpYnV0aSc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnXSA9ICdQZXJtZXR0ZXJlIGwmIzAzOTt1cGxvYWQgZGkgZmlsZXMgY29uIHF1ZXN0ZSBlc3RlbnNpb25pIChwZXIgY2FtcGkgdGlwbyBmaWxlKSc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZXR5cGVzJ10gPSAnUGVybWV0dGVyZSBsJiMwMzk7dXBsb2FkIGRpIGltbWFnaW5pIGNvbiBxdWVzdGUgZXN0ZW5zaW9uaSAgKHBlciBjYW1waSB0aXBvIGltbWFnaW5lKSc7CiRsYW5nWydwcm9tcHRfYXR0cmlidGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3IgZGlzcGxheSBvZiBwcm9kdWN0IGF0dHJpYnV0ZSB2YWx1ZXMgaW4gZHJvcGRvd24nOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWwnXSA9ICdBdXRvbWF0aWNhbWVudGUgY3JlYSBtaW5pYXR1cmUgZGkgaW1tYWdpbmknOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWxfc2l6ZSddID0gJ0RpbWVuc2lvbmUgbWFzc2ltYSAobGEgcGkmdWdyYXZlOyBncmFuZGUpIGRlbGxhIG1pbmlhdHVyYS4nOwokbGFuZ1sncHJvbXB0X2F1dG9wcmV2aWV3aW1nJ10gPSAnQXV0b21hdGljYW1lbnRlIGNyZWEgaW1tYWdpbmkgZGkgYW50ZXByaW1hIGRlbGxlIGltbWFnaW5pJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZ19zaXplJ10gPSAnRGltZW5zaW9uZSBtYXNzaW1hIChsYSBwaSZ1Z3JhdmU7IGdyYW5kZSkgZGVsbGEgaW1tYWdpbmUgZGkgYW50ZXByaW1hLic7CiRsYW5nWydwcm9tcHRfYXV0b3dhdGVybWFyayddID0gJ0F1dG9tYXRpY2FtZW50ZSBwb3NpemlvbmEgd2F0ZXJtYXJrcyBzdWxsZSBpbW1hZ2luaSc7CiRsYW5nWydwcm9tcHRfYXBwbGljYWJsZSddID0gJ0FiaWxpdGF0byBwZXIgdHV0dGkgaSBudW92aSBwcm9kb3R0aSc7CiRsYW5nWydwcm9tcHRfYmF0Y2hzaXplJ10gPSAnQmF0Y2ggU2l6ZSc7CiRsYW5nWydwcm9tcHRfY2FydF9tb2R1bGUnXSA9ICdNb2R1bG8gQ2FydCc7CiRsYW5nWydwcm9tcHRfY2FydF9tb2R1bGVfcGFyYW1zJ10gPSAnUGFyYW1ldHJpIGRlbCBtb2R1bG8gQ2FydCc7CiRsYW5nWydwcm9tcHRfY3JlYXRlY2F0ZWdvcmllcyddID0gJ0NyZWEgQ2F0ZWdvcmllJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVmaWVsZHMnXSA9ICdDcmVvIGNhbXBpIFByb2RvdHRvPyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlaGllcmFyY2h5J10gPSAnQ3JlYSBnZXJhcmNoaWEgUHJvZG90dG8nOwokbGFuZ1sncHJvbXB0X2NzdmZpbGUnXSA9ICdVcGxvYWQgZmlsZSBDU1YnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5Y29kZSddID0gJ0NvZGljZSBwZXIgbGEgdmFsdXRhJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeXN5bWJvbCddID0gJ1NpbWJvbG8gZGkgdmFsdXRhJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0X3N0YXR1cyddID0gJ0lsIHByZWRlZmluaXRvICZlZ3JhdmU7IGNoZSB0dXR0aSBpIG51b3ZpIHByb2RvdHRpIGhhbm5vIHF1ZXN0byBzdGF0byc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF90YXhhYmxlJ10gPSAnSWwgcHJlZGVmaW5pdG8gJmVncmF2ZTsgY2hlIHR1dHRpIGkgbnVvdmkgcHJvZG90dGkgaGFubm8gbGEgdGFzc2EnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gJ0NhbmNlbGxhIGkgZmlsZXMgYXNzb2NpYXRpIGNvbiBpbCBwcm9kb3R0byBxdWFuZG8gdmllbmUgY2FuY2VsbGF0bz8nOwokbGFuZ1sncHJvbXB0X2RlbGltaXRlciddID0gJ0NhbXBvIGRlbGltaXRhdG9yZSc7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ1BhZ2luYSBkZXR0YWdsaW8gcHJlZGVmaW5pdGEnOwokbGFuZ1sncHJvbXB0X2RldGFpbHNmb3InXSA9ICdEZXR0YWdsaW8gcGVyICVzJzsKJGxhbmdbJ3Byb21wdF9kdXBsaWNhdGVwcm9kdWN0cyddID0gJ0NvbWUgZGV2byB0ZW5lcmUgcHJvZG90dGkgZHVwbGljYXRpPyc7CiRsYW5nWydwcm9tcHRfZmFsc2UnXSA9ICdGYWxzbyc7CiRsYW5nWydwcm9tcHRfaGFuZGxlaW1hZ2VzJ10gPSAnTWFuZWdnaWFyZSBsZSBpbW1hZ2luaT8nOwokbGFuZ1sncHJvbXB0X2ltYWdlcGF0aCddID0gJ1BhdGggaW1tYWdpbmUnOwokbGFuZ1sncHJvbXB0X2xlbmd0aHVuaXRzJ10gPSAnVW5pdCZhZ3JhdmU7IGRpIGx1bmdoZXp6YSc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfYmVoYXZpb3InXSA9ICdRdWFsZSBhemlvbmUgZG92cmViYmUgZXNzZXJlIGVzZWd1aXRhIHF1YW5kbyB1biBwcm9kb3R0byBub24gcHUmb2dyYXZlOyBlc3NlcmUgdmlzdWFsaXp6YXRvPyc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfNDA0J10gPSAnR2VuZXJhIHVuIGVycm9yZSA0MDQnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzMwMSddID0gJ0dlbmVyYSB1bmEgcmVkaXJlemlvbmUgMzAxJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9lcnJvcm1zZyddID0gJ1Zpc3VhbGl6emEgdW4gbWVzc2FnZ2lvIGRpIGVycm9yZSc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfbXNnJ10gPSAnTWVzc2FnZ2lvIGRpIGVycm9yZSBxdWFuZG8gdW4gcHJvZG90dG8gbm9uIHB1Jm9ncmF2ZTsgZXNzZXJlIHRyb3ZhdG8nOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX3BhZ2UnXSA9ICdQYWdpbmEgcGVyIGZhcmUgdW5hIHJlZGlyZXppb25lIHBlcm1hbmVudGU/JzsKJGxhbmdbJ3Byb21wdF9oaWVycGFnZSddID0gJ0RlZmF1bHQgUGFnZSBmb3IgSGllcmFyY2h5IFZpZXcnOwokbGFuZ1sncHJvbXB0X3ByZXR0eWhpZXJ1cmxzJ10gPSAnVXNlIFByZXR0eSBVUkxTIHRvIEhpZXJhcmNoeSBWaWV3cyc7CiRsYW5nWydwcm9tcHRfcHJvZF9kZXRhaWxwYWdlJ10gPSAnUGFnaW5hIHByZWRlZmluaXRhIHBlciBsYSBWaXN1YWxpenphemlvbmUgRGV0dGFnbGlvIFByb2R1dHRvJzsKJGxhbmdbJ3Byb21wdF9wcm9kdWN0c19tYXRjaGluZyddID0gJ1Byb2RvdHRpIGNoZSBjb21iYWNpYW5vIGNvbiAlcyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXBhZ2VsaW1pdCddID0gJ0RlZmF1bHQgcGFnZSBsaW1pdCBpbiBzdW1tYXJ5IG1vZGUnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdPcmRpbmUgcHJlZGVmaW5pdG8gbmVsIG1vZG8gc29tbWFyaW8nOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnQ2FtcG8gZGVsbCYjMDM5O29yZGluZSBwcmVkZWZpbml0byBuZWwgbW9kbyBzb21tYXJpbyc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdNb2RlbGxvIHNvcmdlbnRlJzsKJGxhbmdbJ3Byb21wdF90cnVlJ10gPSAnVmVybyc7CiRsYW5nWydwcm9tcHRfdXJscHJlZml4J10gPSAnUHJlZml4IHRvIHVzZSBvbiBhbGwgVVJMUyB0YXJnZXRlZCB0byB0aGlzIHRoaXMgbW9kdWxlJzsKJGxhbmdbJ3Byb21wdF91c2VfZGV0YWlscGFnZV9mb3Jfc2VhcmNoJ10gPSAnVXNlIHRoaXMgcGFnZSBmb3Igc2VhcmNoIHJlc3VsdHMgdG9vIDxlbT4ob3ZlcnJpZGVzIHRoZSBzZWFyY2hyZXN1bHRzIHBhZ2UgcGFyYW1ldGVyIGluIHRoZSBzZWFyY2ggbW9kdWxlKTwvZW0+JzsKJGxhbmdbJ3Byb21wdF91c2VoaWVycGF0aHVybHMnXSA9ICdVc2UgSGllcmFyY2h5IFBhdGggaW4gUHJvZHVjdCBEZXRhaWwgVVJMUyc7CiRsYW5nWydwcm9tcHRfd2VpZ2h0dW5pdHMnXSA9ICdVbml0JmFncmF2ZTsgZGkgcGVzbyc7CiRsYW5nWydwdWJsaWMnXSA9ICdFJiMwMzk7IHVuIGNhbXBvIHB1YmJsaWNvPyc7CiRsYW5nWydwdWJsaXNoZWQnXSA9ICdQdWJibGljYXRvJzsKJGxhbmdbJ3JhbmRvbSddID0gJ1JhbmRvbSAnOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdBenplcmEgYWkgdmFsb3JpIGluaXppYWxpJzsKJGxhbmdbJ3JldHVybiddID0gJ1JpdG9ybmEnOwokbGFuZ1sncmV0dXJuX3RvX3RvcCddID0gJ1JpdG9ybmEgYWxsJiMwMzk7aW5pemlvJzsKJGxhbmdbJ3Jvb3QnXSA9ICdSYWRpY2UnOwokbGFuZ1snc2VhcmNoX2Rlc2NyaXB0aW9uJ10gPSAnU2VhcmNoIFByb3BlcnR5IERlc2NyaXB0aW9uJzsKJGxhbmdbJ3NlYXJjaF9leHByJ10gPSAnU2hvdWxkIHRoZSBxdWVyeSBtYXRjaCBhbGwsIG9yIGFueSBvZiB0aGUgdGVzdHMgYmVsb3c/JzsKJGxhbmdbJ3NlYXJjaF9uYW1lJ10gPSAnQ2VyY2Egbm9tZSBkZWxsYSBwcm9wcmlldCZhZ3JhdmU7JzsKJGxhbmdbJ3NlYXJjaF9wcmljZSddID0gJ0ludGVydmFsbG8gZGkgcHJlenpvJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZ2dpdWdlL01vZGlmaWNhIE1vZHVsbyBTZWFyY2ggVGVtcGxhdGUnOwokbGFuZ1snc2VhcmNodGVtcGxhdGVzJ10gPSAnVGVtcGxhdGUgZGkgUmljZXJjYSc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2VsZXppb25hIHVubyc7CiRsYW5nWydza3UnXSA9ICdTS1UgJzsKJGxhbmdbJ3NvcnRfYnknXSA9ICdPcmRpbmUgcGVyJzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdUaXBvIG9yZGluZSc7CiRsYW5nWydzb3VyY2UnXSA9ICdTb3JnZW50ZSc7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF0byc7CiRsYW5nWydzdWJtaXQnXSA9ICdJbnZpbyc7CiRsYW5nWydzdWJzY3JpcHRpb24nXSA9ICdTb3R0b3Njcml6aW9uZSc7CiRsYW5nWydzdWJzY3JfZXhwaXJ5J10gPSAnU2NhZGVuemEnOwokbGFuZ1snc3Vic2NyX2V4cGlyeTInXSA9ICdTY2FkdXRpJzsKJGxhbmdbJ3N1YnNjcl9tb250aGx5J10gPSAnTWVuc2lsbWVudGUnOwokbGFuZ1snc3Vic2NyX2RlbHBlcmlvZCddID0gJ0ZyZXF1ZW56YSBkaSBkaXN0cmlidXppb25lJzsKJGxhbmdbJ3N1YnNjcl9kZWxwZXJpb2QyJ10gPSAnRGlzdHJpYnV6aW9uZSc7CiRsYW5nWydzdWJzY3JfcGF5cGVyaW9kJ10gPSAnRnJlcXVlbnphIGRpIHBhZ2FtZW50byc7CiRsYW5nWydzdWJzY3JfcGF5cGVyaW9kMiddID0gJ1BhZ2FtZW50byc7CiRsYW5nWydzdWJzY3JfcXVhcnRlcmx5J10gPSAnUXVhZGltZXN0cmFsZSc7CiRsYW5nWydzdWJzY3Jfc2VtaWFudWFsbHknXSA9ICdTZW1lc3RyYWxlJzsKJGxhbmdbJ3N1YnNjcl95ZWFybHknXSA9ICdBbm51YWxlJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdNb2RlbGxpIFNvbW1hcmlvJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWdnaXVuZ2VyZS9Nb2RpZmljYSB1biBNb2RlbGxvIFNvbW1hcmlvJzsKJGxhbmdbJ3RheGFibGUnXSA9ICdJbXBvbmliaWxlJzsKJGxhbmdbJ3Rlc3QnXSA9ICdUZXN0ICc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ1RleHQgYXJlYSc7CiRsYW5nWyd0ZXh0Ym94J10gPSAnVGV4dCBpbnB1dCc7CiRsYW5nWyd0aXRsZV9ieWhpZXJhcmNoeV9kZmx0dGVtcGxhdGUnXSA9ICdNb2RlbGxvIG51b3ZvIFJlcG9ydCBnZXJhcmNoaWNvJzsKJGxhbmdbJ3RpdGxlX2NhdGVnb3J5bGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdNb2RlbGxvIG51b3ZvIExpc3RhIGNhdGVnb3JpZSBwcmVkZWZpbml0byc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnTW9kZWxsbyBudW92byBkZXR0YWdsaW8gcHJlZGVmaW5pdG8nOwokbGFuZ1sndGl0bGVfc2VhcmNoX2RmbHR0ZW1wbGF0ZSddID0gJ051b3ZvIFNlYXJjaCBUZW1wbGF0ZSBwcmVkZWZpbml0byc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ01vZGVsbG8gbnVvdm8gc29tbWFyaW8gcHJlZGVmaW5pdG8nOwokbGFuZ1sndHlwZSddID0gJ1RpcG8nOwokbGFuZ1sndXAnXSA9ICdNdW92aSBzdSc7CiRsYW5nWyd1cGRhdGUnXSA9ICdBZ2dpb3JuYSc7CiRsYW5nWyd1cGxvYWQnXSA9ICdTZWxlemlvbmEgdW4gZmlsZSBwZXIgdXBsb2FkJzsKJGxhbmdbJ3VybF9hbGlhcyddID0gJ1VSTCBhbGlhcyc7CiRsYW5nWyd2YWxpZCddID0gJ1ZhbGlkbyc7CiRsYW5nWyd2YWx1ZSddID0gJ1ZhbG9yZSc7CiRsYW5nWyd2YWx1ZXMnXSA9ICdWYWxvcmknOwokbGFuZ1sndmlldyddID0gJ1Zpc3VhbGl6emEnOwokbGFuZ1sndmlld2FibGVfZmllbGRzJ10gPSAnQ2FtcGkgU2VsZWN0IGNhc3RvbWl6emF0aSBwZXIgdmlzdWFsaXp6YXJlIGluIHVuYSB0YWJlbGxhJzsKJGxhbmdbJ3dhdGVybWFya19sb2NhdGlvbiddID0gJ0xvY2F6aW9uZSBkZWwgV2F0ZXJtYXJrJzsKJGxhbmdbJ3dlaWdodCddID0gJ1Blc28nOwokbGFuZ1sneWVzJ10gPSAnUyZpZ3JhdmU7JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuOTc0MzQ5MTU1LjEyOTkwNzI0NjguMTI5OTA3MjQ2OC4xMjk5MDc0NTU0LjInOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyOTkwNzI0NjguMS4xLnV0bWNjbj0oZGlyZWN0KXx1dG1jc3I9KGRpcmVjdCl8dXRtY21kPShub25lKSc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/lt_LT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZCddID0gJ1ByaWTEl3RpJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnUHJpZMSXdGkga2F0ZWdvcmlqxIUnOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdQcmlkxJd0aSBsYXVrxIUnOwokbGFuZ1snYWRqdXN0YWJsZSddID0gJ0FkanVzdGFibGUnOwokbGFuZ1snYWRkcHJvZHVjdCddID0gJ1ByaWTEl3RpIHByb2R1a3TEhSc7CiRsYW5nWydhZGRfYXR0cmliX3NldCddID0gJ1ByaWTEl3RpIGF0cmlidXTEhSc7CiRsYW5nWydhZGRfY2F0ZWdvcnlfZmllbGQnXSA9ICdBc3NvY2lhdGUgRmllbGQgd2l0aCBDYXRlZ29yeTogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnUHJpZMSXdGkgaGllcmFyY2hpam9zIHB1bmt0xIUnOwokbGFuZ1snYWRkX29wdGlvbiddID0gJ1ByaWTEl3RpIGF0cmlidXRvIHNhdnlixJknOwokbGFuZ1snYWRtaW5fb25seSddID0gJ0FyIHRpayBhZG1pbmlzdHJhdG9yaXVzIGdhbGkgbWF0eXRpICZzY2Fyb247xK8gYXRyaWJ1dMSFPyc7CiRsYW5nWydhbGlnbl91bCddID0gJ1RvcCBMZWZ0JzsKJGxhbmdbJ2FsaWduX3VjJ10gPSAnVG9wIENlbnRlcic7CiRsYW5nWydhbGlnbl91ciddID0gJ1RvcCBSaWdodCc7CiRsYW5nWydhbGlnbl9tbCddID0gJ01pZGRsZSBMZWZ0JzsKJGxhbmdbJ2FsaWduX21jJ10gPSAnQ2VudGVyJzsKJGxhbmdbJ2FsaWduX21yJ10gPSAnTWlkZGxlIFJpZ2h0JzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnQm90dG9tIExlZnQnOwokbGFuZ1snYWxpZ25fbGMnXSA9ICdCb3R0b20gQ2VudGVyJzsKJGxhbmdbJ2FsaWduX2xyJ10gPSAnQm90dG9tIFJpZ2h0JzsKJGxhbmdbJ2FsbGNhdGVnb3JpZXMnXSA9ICdWaXNvcyBrYXRlZ29yaWpvcyc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnQXIgSsWrcyDEr3NpdGlraW7EmXM/JzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlcHJvZHVjdCddID0gJ0FyIHRpa3JhaSBub3JpdGUgaSZzY2Fyb247dHJpbnRpICZzY2Fyb247xK8gcHJvZHVrdMSFIGlyIHZpc8SFIHN1IGp1byBzdXNpanVzacSFIGluZm9ybWFjaWrEhT8nOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAnRGlkxJdqYW7EjWlhaSc7CiRsYW5nWydhdHRyaWJ1dGVfbmFtZSddID0gJ0F0cmlidXRvIHBhdmFkaW5pbWFzJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpYyc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlcyddID0gJ0hpZXJhcmNoaW7El3MgYXRhc2thaXRvcyAmc2Nhcm9uO2FibG9uYXMnOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnUHJpZMSXdGkva2Vpc3RpIGhpZXJhcmNoaW7El3MgYXRhc2thaXRvcyAmc2Nhcm9uO2FibG9uxIUnOwokbGFuZ1snY2FuY2VsJ10gPSAnQXQmc2Nhcm9uO2F1a3RpJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdLYXRlZ29yaWpvcyc7CiRsYW5nWydjYXRlZ29yeSddID0gJ2thdGVnb3JpamEnOwokbGFuZ1snY2F0ZWdvcnlleGlzdHMnXSA9ICdLYXRlZ29yaWphIHRva2kgcGF2YWRpbmltdSBqYXUgeXJhJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0thdGVnb3JpasWzIHPEhXJhJnNjYXJvbjtvICZzY2Fyb247YWJsb25hcyc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnUHJpZMSXdGkva2Vpc3RpIGthdGVnb3JpasWzIHPEhXJhJnNjYXJvbjtvICZzY2Fyb247YWJsb27EhSc7CiRsYW5nWydjaGVja2JveCddID0gJ1Zhcm5lbMSXJzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX2hpZXJhcmNoeV9ub2RlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vZGU/ICBBbnkgcHJvZHVjdHMgdGhhdCBhcmUgdXNpbmcgdGhpcyBub2RlIHdpbGwgYmUgc2V0IHRvIG5vIGhpZXJhcmNoeSc7CiRsYW5nWydjb3B5J10gPSAnQ29weSc7CiRsYW5nWydjb3B5X2NhdGVnb3J5J10gPSAnQ29weSBDYXRlZ29yeSc7CiRsYW5nWydjcmVhdGVkZGF0ZSddID0gJ1N1a8WrcmltbyBkYXRhJzsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICdQYXN0YXJvamkgcmVpayZzY2Fyb247bcSXJzsKJGxhbmdbJ2RhdGEnXSA9ICdEYXRhJzsKJGxhbmdbJ2RlZmF1bHQnXSA9ICdEZWZhdWx0JzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdOdW1hdHl0aWVqaSAmc2Nhcm9uO2FibG9uYWknOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZSBjb250ZW50cyBvZiB0aGVzZSB0ZXh0IGFyZWFzIGFyZSB1c2VkIHRvIGRldGVybWluZSB0aGUgZGVmYXVsdCBjb250ZW50IG9mIHRlbXBsYXRlcyB3aGVuIHlvdSBjbGljayAmcXVvdDtBZGQgVGVtcGxhdGUmcXVvdDsgaW4gdGhlIGFwcHJvcHJpYXRlIHRlbXBsYXRlIHRhYi4gIEVkaXRpbmcgb25lIG9mIHRoZXNlIHRleHQgYXJlYXMgd2lsbCBoYXZlIG5vIGltbWVkaWF0ZSBlZmZlY3Qgb24geW91ciB3ZWJzaXRlLic7CiRsYW5nWydkZWxldGUnXSA9ICdUcmludGknOwokbGFuZ1snZGVsZXRlX2F0dHJpYnNldCddID0gJ1RyaW50aSBhdHJpYnV0xIUnOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAnVHJpbnRpIGhpZXJhcmNoaWpvcyBwdW5rdMSFJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdNYcW+xJdqYW7EjWlhaSc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0FwaWLFq2RpbmltYXMnOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFsxJdzJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ0RldGFsacWzICZzY2Fyb247YWJsb25hcyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnUHJpZMSXdGkva2Vpc3RpIGRldGFsacWzICZzY2Fyb247YWJsb27EhSc7CiRsYW5nWydkaXNhYmxlZCddID0gJ0kmc2Nhcm9uO2p1bmd0YXMnOwokbGFuZ1snZHJhZnQnXSA9ICdKdW9kcmEmc2Nhcm9uO3Rpcyc7CiRsYW5nWydkcm9wZG93biddID0gJ0kmc2Nhcm9uO2tyZW50YW50aXMgbWVuaXUnOwokbGFuZ1snZHJvcGRvd25fb3B0aW9ucyddID0gJ0Ryb3Bkb3duIE9wdGlvbnMgPGVtPihhcHBsaWNhYmxlIG9ubHkgZm9yIGRyb3Bkb3duIGZpZWxkcyk8L2VtPjxici8+PGJyLz48ZW0+KG9uZSBlbnRyeSBwZXIgbGluZSk8L2VtPic7CiRsYW5nWydlZGl0J10gPSAnS2Vpc3RpJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0cyddID0gJ0tlaXN0aSBhdHJpYnV0xbMgcmlua2luxK8nOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzX2ZvciddID0gJ0tlaXN0aSBhdHJpYnV0xbMgcmlua2luxK8gKGthbT8pJzsKJGxhbmdbJ2VkaXRfYXR0cmlidXRlcyddID0gJ0tlaXN0aSBhdHJpYnV0dXMnOwokbGFuZ1snZWRpdF9jYXRlZ29yeSddID0gJ1JlZGFndW90aSBrYXRlZ29yaWrEhSc7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ0VkaXQgQ2F0ZWdvcnkgRmllbGRzJzsKJGxhbmdbJ2VkaXRfaGllcmFyY2h5X2l0ZW0nXSA9ICdLZWlzdGkgaGllcmFyY2hpam9zIHB1bmt0xIUnOwokbGFuZ1snZXJyb3JfYXR0cmlic2V0X2V4aXN0cyddID0gJ0F0cmlidXRhcyB0b2tpdSB2YXJkdSBqYXUgeXJhJzsKJGxhbmdbJ2Vycm9yX2ZpZWxkdmFsdWVfZW1wdHknXSA9ICdUaGUgRmllbGQgVmFsdWUgY2Fubm90IGJlIGVtcHR5JzsKJGxhbmdbJ2Vycm9yX2ZpbGVub3Rmb3VuZCddID0gJ0ZpbGUgTm90IEZvdW5kJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJlbnQnXSA9ICdJbnZhbGlkIFBhcmVudCAoYSBoaWVyYXJjaHkgbm9kZSBjYW5ub3QgYmUgaXQmIzAzOTtzIG93biBwYXJlbnQpJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfbmFtZSddID0gJ1RoZSBjdXN0b20gZmllbGQgdmFsdWUgZW50ZXJlZCBpcyBpbnZhbGlkIChjb250YWlucyBub24gYWxwaGFudW1lcmljIGNoYXJhY3RlcnMpJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ1Ryxatrc3RhIGFyYmEgbmV0ZWlzaW5nYXMgcHJpdmFsb21hcyBwYXJhbWV0cmFzJzsKJGxhbmdbJ2Vycm9yX25hbWV1c2VkJ10gPSAnQW4gaXRlbSBieSB0aGF0IG5hbWUgaXMgYWxyZWFkeSBpbiB1c2UnOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdQYXNpcmlua2l0ZSBsYXVrbyB0aXDEhSc7CiRsYW5nWydlcnJvcl9ub25hbWUnXSA9ICdZb3UgbXVzdCBzdXBwbHkgYSBuYW1lJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdQcm9kdWt0YXMgdG9raXUgcGF2YWRpbmltdSBqYXUgeXJhJzsKJGxhbmdbJ2Vycm9yX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdOZXRlaXNpbmdhIGthaW5vcyBwYWtlaXRpbW8gcmVpayZzY2Fyb247bcSXICAmc2Nhcm9uO2lhbSDEr3JhJnNjYXJvbjt1aTogJXMnOwokbGFuZ1snZXJyb3JfdXBsb2FkX2ZhaWxlZCddID0gJ8Sua8SXbGltYXMgbmVwYXZ5a286ICVzJzsKJGxhbmdbJ2ZpZWxkJ10gPSAnTGF1a2FzJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnTGF1a28gYXBpYnLEl8W+aW1hcyc7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdMYXVrbyBhcGlicsSXxb5pbWFpJzsKJGxhbmdbJ2ZpbGUnXSA9ICdCeWxhJzsKJGxhbmdbJ2ZpbHRlcnMnXSA9ICdGaWx0cmFpJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8JzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0hpZXJhcmNoaWphJzsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gJ0hpZXJhcmNoaWpvcyBwb3ppY2lqYSc7CiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ1BhdmVpa3NsYXMnOwokbGFuZ1snaW5jbHVkZV9jaGlsZHJlbiddID0gJ8SudHJhdWt0aSB2aWRpbmVzPyc7CiRsYW5nWydpbmZvX2FsbnVtb25seSddID0gJ09ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMuIE5vIHdoaXRlc3BhY2UsIHF1b3Rlcywgb3Igbm9uIGxldHRlci9udW1iZXIgY29tYmluYXRpb25zJzsKJGxhbmdbJ2luZm9fYXV0b3RodW1ibmFpbCddID0gJ1RodW1ibmFpbCBzZXR0aW5ncyBhcmUgdGFrZW4gZnJvbSB0aGUgQ0dFeHRlbnNpb25zIE1vZHVsZSc7CiRsYW5nWydpbmZvX2F1dG93YXRlcm1hcmsnXSA9ICdXYXRlcm1hcmsgc2V0dGluZ3MgYXJlIHRha2VuIGZyb20gdGhlIENHRXh0ZW5zaW9ucyBNb2R1bGUnOwokbGFuZ1snaW5mb19jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdUaGVzZSBwYXJhbWV0ZXJzIGFyZSBnaXZlbiB0byB0aGUgc2VsZWN0ZWQgY2FydCBtb2R1bGUgZnJvbSB0aGUgcHJvZHVjdCBkZXRhaWwgYW5kIHN1bW1hcnkgZGlzcGxheXMnOwokbGFuZ1snaW5mb19kZWNpbWFsX3VuaXRzJ10gPSAnVGhpcyBzeXN0ZW0gdW5kZXJzdGFuZHMgKC4pIGFzIHRoZSBkZWNpbWFsIHBvaW50IHNlcGFyYXRvci4gaS5lLjogPHN0cm9uZz41LjI1PC9zdHJvbmc+JzsKJGxhbmdbJ2luZm9fZmllbGRkZWZzX3RhYiddID0gJzxzdHJvbmc+Tm90ZTogPC9zdHJvbmc+IEFsbCBGaWVsZHMgZGVmaW5lZCBoZXJlIGFyZSBhdmFpbGFibGUgdG8gYWxsIHByb2R1Y3RzLic7CiRsYW5nWydpbmZvX2ZpZWxkcHJvYmxlbXMnXSA9ICdQcm9ibGVtcyB3ZXJlIGVuY291bnRlcmVkIHdoZW4gZGVhbGluZyB3aXRoIG9uZSBvciBtb3JlIGN1c3RvbSBmaWVsZHMuICBUaGUgYWN0aW9uIGhhcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LCBob3dldmVyIHlvdSBzaG91bGQgaW52ZXN0aWdhdGUgYW5kIGNvcnJlY3QgdGhlc2UgcHJvYmxlbXMnOwokbGFuZ1snaW5mb19wcmljZV9hZGp1c3RtZW50J10gPSAnR2FsaW1vcyB0aWsgdG9raW9zIHZlcnTEl3M6ICstKiMuIyMnOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gJ1ZpZSZzY2Fyb247aSBsYXVrYWkgeXJhIHZpZSZzY2Fyb247YWkgbWF0b21pJzsKJGxhbmdbJ2xhYmVsJ10gPSAnRXRpa2V0xJcnOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnUGFza3V0aW7ElyBtb2RpZmlrYWNpamEnOwokbGFuZ1snbG9nb3RleHQnXSA9ICdBbnRyYXMgcGF2ZWlrc2xhcyc7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYWtzaW1hbHVzIGlsZ2lzPGVtPih0YWlrb21hIHRpayAmcXVvdDt0ZXh0Ym94JnF1b3Q7IGxhdWt1aSk8L2VtPic7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICdNb2RpZmlrYXZpbW8gZGF0YSc7CiRsYW5nWydtb2R1bGVfZGVzY3JpcHRpb24nXSA9ICdBIG1vZHVsZSBmb3IgbWFuYWdpbmcgYSBjYXRhbG9nIG9mIHByb2R1Y3RzLCB0aGVpciBwcmljZSwgaW1hZ2VzLCBldGMsIGFuZCBmb3IgYWxsb3dpbmcgdXNlcnMgdG8gYnVpbGQgYSBjYXJ0JzsKJGxhbmdbJ25hbWUnXSA9ICdQYXZhZGluaW1hcyc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ0rFq3MgbmV0dXJpdGUgcmVpa2lhbcWzIGxlaWRpbcWzOiAlcyc7CiRsYW5nWyduZXdfY2F0ZWdvcnlfbmFtZSddID0gJ05ldyBDYXRlZ29yeSBOYW1lJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ0pva3MgdmFyZGFzIG5lcGF0ZWlrdGFzJzsKJGxhbmdbJ25vbmUnXSA9ICdKb2tpbyc7CiRsYW5nWydvZiddID0gJ09mJzsKJGxhbmdbJ3BhZ2UnXSA9ICdQdXNsYXBpcyc7CiRsYW5nWydwYWdlX29mJ10gPSAnUHVzbGFwaXMgJXMgaSZzY2Fyb247ICVzJzsKJGxhbmdbJ3BhZ2VfbGltaXQnXSA9ICfErnJhJnNjYXJvbjvFsyBza2FpxI1pdXMgcHVzbGFweWplJzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ1NwZWNpZnkgdGhlIGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPmhpZXJhcmNoeSAtLSBEaXNwbGF5IGEgcHJvZHVjdCBsaXN0IGJ5IGhpZXJhcmNoeTwvbGk+DQogIDxsaT5jYXRlZ29yeWxpc3QgLSBEaXNwbGF5IGEgbGlzdCBvZiBwcm9kdWN0IGNhdGVnb3JpZXM8L2xpPg0KICA8bGk+PGVtPmRlZmF1bHQ8L2VtPiAtIERpc3BsYXkgYSBzdW1tYXJ5IG9mIHByb2R1Y3RzPC9saT4NCiAgPGxpPmRldGFpbCAtIERpc3BsYXkgYSBkZXRhaWwgdmlldyBvZiBhIHNpbmdsZSBwcm9kdWN0PC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnV2hlbiB1c2VkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIsIHdoaWNoIHNob3VsZCBtYXRjaCB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyBjYXRlZ29yeSB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBvbmx5IHRob3NlIHByb2R1Y3RzIHRoYXQgYXJlIGluIHRoYXQgY2F0ZWdvb3J5LiAoYSBjb21tYSBzZXBlcmF0ZWQgbGlzdCBjYW4gYmUgc3VwcGxpZWQpJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdUaGlzIHNwZWNpZmllcyB0aGUgcGFnZWlkIG9yIGFsaWFzIHRoYXQgc2hvdWxkIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgZGV0YWlsIHJlcG9ydC4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkZXRhaWwgbW9kZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeSddID0gJ1VzZWZ1bCBvbmx5IGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgb25seSBpdGVtcyBpbiB0aGF0IGxvY2F0aW9uIG9mIHRoZSBoaWVyYXJjaHkgc2hvdWxkIGJlIGRpc3BsYXllZC4gIFdpbGRjYXJkIGNoYXJhY3RlciBjYW4gYmUgdXNlZCBzbyB0aGF0IHlvdSBjYW4gc3BlY2lmeSBwYXJlbnQvY2hpbGQgcmVsYXRpb25zaGlwcyBhcyB3ZWxsLiAgaS5lIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7dHJ1Y2tzKiYjMDM5O30gd2lsbCBjcmVhdGUgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBpbmNsdWRpbmcgdGhlIGNoaWxkcmVuIGluIHRoZSBoaWVyYXJjaHkuICBTaW1pbGFybHksIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7KnRydWNrcyYjMDM5O30gd2lsbCBkaXNwbGF5IGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgYW5kIGFsbCBwcm9kdWN0cyBiZWxvZ2luZyB0byBhbnkgcGFyZW50IGluIHRoZSBoaWVyYXJjaHkuJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeXRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgaGllcmFyY2h5IGRpc3BsYXkuIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9wYWdlbGltaXQnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBsaXN0ZWQgb24gZWFjaCBwYWdlLic7CiRsYW5nWydwYXJhbV9wYXJlbnQnXSA9ICdVc2VmdWwgb25seSBpbiB0aGUgPGVtPmhpZXJhcmNoeTwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBoaWVyYXJjaHkgaWQgb2YgdGhlIHN0YXJ0aW5nIGxvY2F0aW9uIG9mIHRoZSByZXBvcnQuJzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RpZCddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGRldGFpbCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB3aGF0IHByb2R1Y3QgdG8gdXNlIGZvciB0aGUgZGlzcGxheS4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmeSB0aGUgb3JkZXIgb2Ygc29ydGVkIGZpZWxkcyBpbiBzdW1tYXJ5IHZpZXcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4NCiAgPGxpPmRlc2MgLS0gRGVzY2VuZGluZyBvcmRlcjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIG9ubHkgaW4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQgcHJvZHVjdHMuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5wcm9kdWN0X25hbWU8L3N0cm9uZz48L2xpPg0KICA8bGk+cHJpY2UgLS0gVGhlIHByb2R1Y3QgYmFzZSBwcmljZTwvbGk+DQogIDxsaT5zdGF0dXMgLS0gRHJhZnQgb3IgcHVibGlzaGVkPC9saT4NCiAgPGxpPnJhbmRvbSAtLSBEaXNwbGF5IGluIHJhbmRvbSBvcmRlciBvbiBlYWNoIHJlcXVlc3Q8L2xpPg0KICA8bGk+Y3JlYXRlZCAtLSBUaGUgY3JlYXRpb24gZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQogIDxsaT5tb2RpZmllZCAtLSBUaGUgbW9kaWZpZWQgZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBzdW1tYXJ5IG1vZGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJlbnQnXSA9ICdUxJd2YXMnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdQcm9kdWN0cyBtb2R1bGlzIGluc3RhbGl1b3RhcyBzxJdrbWluZ2FpJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdUaGUgUHJvZHVjdHMgbW9kdWxlIGhhcyBiZWVuIHJlbW92ZWQgYWxvbmcgd2l0aCBhbGwgYXNzb2NpYXRlZCBkYXRhJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnUGFzaXJpbmtpbWFpJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ1JlbW92aW5nIHRoaXMgbW9kdWxlIHdpbGwgYWxzbyByZW1vdmUgYWxsIGFzc29jaWF0ZWQgZGF0YSwgYXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHByb2NlZWQ/JzsKJGxhbmdbJ3ByaWNlJ10gPSAnS2FpbmEnOwokbGFuZ1sncHJpY2VfYWRqdXN0bWVudCddID0gJ0thaW5vcyBwYWtlaXRpbWFzJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCc7CiRsYW5nWydwcm9kdWN0J10gPSAnUHJvZHVrdGFzJzsKJGxhbmdbJ3Byb2R1Y3RuYW1lJ10gPSAnUHJvZHVrdG8gcGF2YWRpbmltYXMnOwokbGFuZ1sncHJvZHVjdHMnXSA9ICdQcm9kdWt0YWknOwokbGFuZ1sncHJvZHVjdF9oaWVyYXJjaHknXSA9ICdQcm90dWt0xbMgaGllcmFyY2hpamEnOwokbGFuZ1sncHJvZHVjdF9tYW5hZ2VyJ10gPSAnUHJvZHVrdMWzIHR2YXJreW1hcyc7CiRsYW5nWydwcm9tcHQnXSA9ICdVxb51b21pbmEnOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfZmlsZXR5cGVzJ10gPSAnTGVpc3RpIHRpayB0b2tpbyBmb3JtYXRvIHBhdmVpa3NsxbMgxK9rxJdsaW3EhSBieWzFsyB0aXBvIGxhdWt1b3NlJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ltYWdldHlwZXMnXSA9ICdMZWlzdGkgdGlrIHRva2lvIGZvcm1hdG8gcGF2ZWlrc2zFsyDEr2vEl2xpbcSFIHBhdmVpa3NsxbMgdGlwbyBsYXVrdW9zZSc7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbCddID0gJ0F1dG9tYXRpJnNjYXJvbjtrYWkgZ2VuZXJ1b3RpIHBhdmVpa3NsxbMgbWluaWF0acWrcmFzJzsKJGxhbmdbJ3Byb21wdF9hdXRvd2F0ZXJtYXJrJ10gPSAnQXV0b21hdGljYWxseSBwbGFjZSB3YXRlcm1hcmtzIG9uIGltYWdlcyc7CiRsYW5nWydwcm9tcHRfYXBwbGljYWJsZSddID0gJ0xlaXN0aSBwYWdhbCBudXR5bMSXamltxIUgdmlzaWVtcyBuYXVqaWVtcyBwcm9kdWt0YW1zJzsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZSddID0gJ0NhcnQgTW9kdWxlJzsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdDYXJ0IE1vZHVsZSBQYXJhbWV0ZXJzJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeWNvZGUnXSA9ICdWYWxpdXRvcyBrb2Rhcyc7CiRsYW5nWydwcm9tcHRfY3VycmVuY3lzeW1ib2wnXSA9ICdWYWxpdXRvcyBzaW1ib2xpcyc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF9zdGF0dXMnXSA9ICdCeSBkZWZhdWx0IGFsbCBuZXcgcHJvZHVjdHMgaGF2ZSB0aGlzIHN0YXR1cyc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF90YXhhYmxlJ10gPSAnQnkgZGVmYXVsdCBhbGwgbmV3IHByb2R1Y3RzIGFyZSB0YXhhYmxlJzsKJGxhbmdbJ3Byb21wdF9kZWxldGVwcm9kdWN0ZmlsZXMnXSA9ICdJJnNjYXJvbjt0cmludGkgYnlsYXMgc3VzaWp1c2lhcyBzdSBwcm9kdWt0YWlzLCBrYWkgJnNjYXJvbjtpZSB5cmEgaSZzY2Fyb247dHJpbmFtaT8nOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdOdW1hdHl0YXNpcyBkZXRhbGnFsyBwdXNsYXBpcyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRvcmRlciddID0gJ051bWF0eXRvamkgcsWrJnNjYXJvbjtpYXZpbW8gdHZhcmthIHNhbnRyYXVrb3MgbW9kb2plJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ051bWF0eXRhc2lzIHLFqyZzY2Fyb247aWF2aW1vIGxhdWthcyBzYW50cmF1a29zIG1vZG9qZSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICcmU2Nhcm9uO2FibG9ubyAmc2Nhcm9uO2FsdGluaXMnOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnU3ZvcmlvIHZpZW5ldGFpJzsKJGxhbmdbJ3B1YmxpYyddID0gJ0FyICZzY2Fyb247aXMgbGF1a2FzIHZpZSZzY2Fyb247YXM/JzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ1Bhc2tlbGJ0YSc7CiRsYW5nWydyYW5kb20nXSA9ICdBdHNpdGlrdGlpbmFpJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnR3LEhcW+aW50aSBnYW15a2xpbmVzIHJlaWsmc2Nhcm9uO21lcyc7CiRsYW5nWydyZXR1cm4nXSA9ICdSZXR1cm4nOwokbGFuZ1sncmV0dXJuX3RvX3RvcCddID0gJ1JldHVybiB0byB0aGUgdG9wIG9mIHRoZSB2aWV3JzsKJGxhbmdbJ3Jvb3QnXSA9ICdSb290JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdQYXNpcmlua2l0ZSB2aWVuxIUnOwokbGFuZ1snc29ydF9ieSddID0gJ1LFqyZzY2Fyb247aXVvdGkgcGFnYWwnOwokbGFuZ1snc29ydF9vcmRlciddID0gJ1LFqyZzY2Fyb247aWF2aW1vIHR2YXJrYSc7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF0dXNhcyc7CiRsYW5nWydzdWJtaXQnXSA9ICdQYXRlaWt0aSc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVzJ10gPSAnU2FudHJhdWtvcyAmc2Nhcm9uO2FibG9uYXMnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdQcmlkxJd0aS9rZWlzdGkgc2FudHJhdWtvcyAmc2Nhcm9uO2FibG9uxIUnOwokbGFuZ1sndGF4YWJsZSddID0gJ0FwbW9rZXN0aW5hbWEnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZWtzdGluxJcgc3JpdGlzJzsKJGxhbmdbJ3RleHRib3gnXSA9ICdUZWtzdG8gxK92ZXN0aXMnOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnTnVtYXR5dGFzaXMgbmF1am9zIGhpZXJhcmNoaW7El3MgYXRhc2thaXRvcyAmc2Nhcm9uO2FibG9uYXMnOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ051bWF0eXRhc2lzIG5hdWpvIGthdGVnb3JpasWzIHPEhXJhJnNjYXJvbjtvICZzY2Fyb247YWJsb25hcyc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnTnVtYXR5dGFzaXMgbmF1asWzIGRldGFsacWzICZzY2Fyb247YWJsb25hcyc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ051bWF0eXRhc2lzIG5hdWpvcyBzYW50cmF1a29zICZzY2Fyb247YWJsb25hcyc7CiRsYW5nWyd0eXBlJ10gPSAnVGlwYXMnOwokbGFuZ1sndXBkYXRlJ10gPSAnTmF1amludGknOwokbGFuZ1sndXBsb2FkJ10gPSAnUGFzaXJpbmt0aSBieWzEhSDEr2vEl2xpbXVpJzsKJGxhbmdbJ3ZhbGlkJ10gPSAnVmFsaWQnOwokbGFuZ1sndmFsdWUnXSA9ICdSZWlrJnNjYXJvbjttxJcnOwokbGFuZ1sndmFsdWVzJ10gPSAnUmVpayZzY2Fyb247bcSXcyc7CiRsYW5nWyd3YXRlcm1hcmtfbG9jYXRpb24nXSA9ICdXYXRlcm1hcmsgTG9jYXRpb24nOwokbGFuZ1snd2VpZ2h0J10gPSAnU3ZvcmlzJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMzMwMTE1NTMwNTc2MjU3OTAwMC4xMjIwMzQ1MDcwLjEyMjg5MDI4NDcuMTIyODk4NjM1MS4yMCc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMjg5ODYzNTEuMjAuMTUudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWZvcnVtLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vaW5kZXgucGhwL3RvcGljLDI4MjE5LjAuaHRtbHx1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfbGVuZ3RoJ10gPSAnTCAnOwokbGFuZ1snYWJicl93aWR0aCddID0gJ0IgJzsKJGxhbmdbJ2FiYnJfaGVpZ2h0J10gPSAnSCAnOwokbGFuZ1snYWRkJ10gPSAnTGVnZyB0aWwnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdMZWdnIHRpbCBlbiBrYXRlZ29yaSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0xlZ2cgdGlsIGZlbHQnOwokbGFuZ1snYWRqdXN0YWJsZSddID0gJ0pzdXRlcmJhcnQnOwokbGFuZ1snYWRkcHJvZHVjdCddID0gJ0xlZ2cgdGlsIHByb2R1a3QnOwokbGFuZ1snYWRkX2F0dHJpYl9zZXQnXSA9ICdMZWdnIHRpbCBhdHRyaWJ1dHQnOwokbGFuZ1snYWRkX2NhdGVnb3J5X2ZpZWxkJ10gPSAnQXNzb3NpZXIgRmVsdCBtZWQgS2F0ZWdvcmk6ICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2FkZF9oaWVyYXJjaHlfaXRlbSddID0gJ0xlZ2cgdGlsIGhpZXJhcmtpIGFydGlra2VsJzsKJGxhbmdbJ2FkZF9vcHRpb24nXSA9ICdMZWdnIHRpbCBhdHRyaWJ1dHQgdmFsZyc7CiRsYW5nWydhZG1pbl9vbmx5J10gPSAnS2FuIGt1biBhZG1pbmlzdHJhdG9yZXIgc2UgZGVubmUgYXR0cmlidXR0ZW4/JzsKJGxhbmdbJ2FkdmFuY2VkJ10gPSAnQXZhbnNlcnQnOwokbGFuZ1snYWxpZ25fdWwnXSA9ICdUb3BwIHZlbnN0cmUnOwokbGFuZ1snYWxpZ25fdWMnXSA9ICdUb3BwIHNlbnRlcic7CiRsYW5nWydhbGlnbl91ciddID0gJ1RvcHAgaCZvc2xhc2g7eXJlJzsKJGxhbmdbJ2FsaWduX21sJ10gPSAnTWlkdGVuIHZlbnN0cmUnOwokbGFuZ1snYWxpZ25fbWMnXSA9ICdTZW50ZXInOwokbGFuZ1snYWxpZ25fbXInXSA9ICdNaWR0ZW4gaCZvc2xhc2g7eXJlJzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnQnVubiB2ZW5zdHJlJzsKJGxhbmdbJ2FsaWduX2xjJ10gPSAnQnVubiBzZW50ZXInOwokbGFuZ1snYWxpZ25fbHInXSA9ICdCdW5uIGgmb3NsYXNoO3lyZSc7CiRsYW5nWydhbGwnXSA9ICdBbGxlJzsKJGxhbmdbJ2FsbGNhdGVnb3JpZXMnXSA9ICdBbGxlIGthdGVnb3JpZXInOwokbGFuZ1snYW55J10gPSAnTm9lbic7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnRXIgZHUgc2lra2VyPyc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZXByb2R1Y3QnXSA9ICdFciBkdSB2aXJrZWxpZyBzaWtrZXIgcCZhcmluZzsgYXQgZHUgdmlsIHNsZXR0ZSBkZXR0ZSBwcm9kdWt0ZXQgb2cgYWxsIGRldHMgdGlsaCZvc2xhc2g7cmVuZGUgaW5mb3JtYXNqb24/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ1N0aWdlbmRlJzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnQXR0cmlidXR0IG5hdm4nOwokbGFuZ1snYXR0cmliX3RleHQnXSA9ICdUZWtzdCc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aXNrJzsKJGxhbmdbJ2J0bl9zZXRlY29taGFuZGxlcnMnXSA9ICdTZXR0IEVjb21tZXJjZSBoZW5kZWxzZXMgYmVoYW5kbGVyZSc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlcyddID0gJ0hpZXJhcmtpIHJhcHBvcm1hbGVyJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0xlZ2cgdGlsL3JlZGlnZXIgSGllcmFya2kgcmFwcG9ybWFsJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0F2YnJ5dCc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnS2F0ZWdvcmllcic7CiRsYW5nWydjYXRlZ29yeSddID0gJ0thdGVnb3JpJzsKJGxhbmdbJ2NhdGVnb3J5ZXhpc3RzJ10gPSAnRW4ga2F0ZWdvcmkgbWVkIGRldCBuYXZuZXQgZWtzaXN0ZXJlciBhbGxlcmVkZSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdLYXRlZ29yaWxpc3RlIG1hbGVyJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbC9yZWRpZ2VyIGthdGVnb3JpIExpc3RlbWFsJzsKJGxhbmdbJ2NlbnRpbWV0ZXJzJ10gPSAnQ2VudGltZXRlcic7CiRsYW5nWydjaGVja2JveCddID0gJ0F2a3J5c25pbmdzYm9rcyc7CiRsYW5nWydjb25maXJtX2NvcHlvcHRpb25zJ10gPSAnQWxsZSBla3Npc3RlcmVuZGUgdmFsZyBmb3IgZGV0dGUgcHJvZHVrdGV0IHZpbCBibGkgZXJzdGF0dGV0LiBFciBkdSBzaWtrZXIgcCZhcmluZzsgYXQgZHUgdmlsIGZvcnRzZXR0ZT8nOwokbGFuZ1snY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnXSA9ICdFciBkdSBzaWtrZXIgcCZhcmluZzsgYXQgZHUgdmlsIHNsZXR0ZSBkZW5uZSBub2Rlbj8gQWxsZSBwcm9kdWt0ZXIgc29tIGJydWtlciBkZW5uZSBub2RlbiB2aWwgYmxpIHNhdHQgdGlsIGluZ2VuIGhpZXJhcmtpJzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlYWxsb3B0aW9ucyddID0gJ0VyIGR1IHNpa2tlciBwJmFyaW5nOyBhdCBkdSB2aWwgc2xldHRlIGFsbGUgdmFsZyBmb3IgZGV0dGUgcHJvZHVrdGV0Pyc7CiRsYW5nWydjb25maXJtX2ltcG9ydCddID0gJ0VyIGR1IGhlbHQgc2lra2VyIHAmYXJpbmc7IGF0IGR1IHZpbCBnaiZvc2xhc2g7cmUgZGV0dGU/XG5cbkZlaWwgaW5uc3RpbGxpbmdlciBlbGxlciBlbiB1Z3lsZGlnIGtvbmZpZ3VyYXNqb25zZmlsIGthbiBmdWxsc3RlbmRpZyAmb3NsYXNoO2RlbGVnZ2UgZXQgbiZhcmluZzsgZ3lsZGlnIG9nIGZ1bmdlcmVuZGUgc3lzdGVtLic7CiRsYW5nWydjb3B5J10gPSAnS29waWVyJzsKJGxhbmdbJ2NvcHlfcHJvZHVjdCddID0gJ0tvcGllciBkZXR0ZSBwcm9kdWt0ZXQnOwokbGFuZ1snY29weV9hdHRyaWJ1dGUnXSA9ICdLb3BpZXIgcHJvZHVrdCBhbHRlcm5hdGl2JzsKJGxhbmdbJ2NvcHlfYXR0cmliX3NldHMnXSA9ICdLb3BpZXIgYXR0cmlidXR0c2V0dGVuZSc7CiRsYW5nWydjb3B5X2NhdGVnb3J5J10gPSAnS29waWVyIGthdGVnb3JpJzsKJGxhbmdbJ2NvcHlfb3B0aW9uc19mcm9tJ10gPSAnS29waWVyIGFsbGUgdmFsZyBmcmEnOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdPcHByZXR0ZXQgZGF0byc7CiRsYW5nWydjdXJyZW50X3ZhbHVlJ10gPSAnTiZhcmluZzt2JmFlbGlnO3JlbmRlIHZlcmRpJzsKJGxhbmdbJ2RhdGEnXSA9ICdEYXRhICc7CiRsYW5nWydkZWZhdWx0J10gPSAnU3RhbmRhcmQnOwokbGFuZ1snZGVmYXVsdHRlbXBsYXRlcyddID0gJ1N0YW5kYXJkIG1hbGVyJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5NZXJrOjwvc3Ryb25nPiBJbm5ob2xkZXQgaSBkaXNzZSB0ZWtzb21yJmFyaW5nO2RlbmUgYmVueXR0ZXMgZm9yICZhcmluZzsgbGFnZSBzdGFuZGFyZGlubmhvbGQgaSBtYWxlbmUgbiZhcmluZztyIGR1IGtsaWtrZXIgJiMwMzk7TGVnZyB0aWwgbWFsJiMwMzk7IGkgZGVuIGFrdHVlbGxlIG1hbGZhbmVuLiAmQXJpbmc7IHJlZGlnZXJlIGVuIGF2IGRpc3NlIHRla3N0b21yJmFyaW5nO2RlbmUgdmlsIGlra2UgaGEgdW1pZGRlbGJhciBlZmZla3QgcCZhcmluZzsgZGl0dCBuZXR0c3RlZC4nOwokbGFuZ1snZGVsZXRlJ10gPSAnU2xldHQnOwokbGFuZ1snZGVsZXRlX2FsbCddID0gJ1NsZXR0IGFsbGUnOwokbGFuZ1snZGVsZXRlX2F0dHJpYnNldCddID0gJ1NsZXR0IGF0dHJpYnV0dCc7CiRsYW5nWydkZWxldGVfaGllcmFyY2h5X2l0ZW0nXSA9ICdTbGV0dCBoaWVyYXJraSBhcnRpa2tlbCc7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnU3lua2VuZGUnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdCZXNrcml2ZWxzZSc7CiRsYW5nWydkZXN0aW5hdGlvbiddID0gJ00mYXJpbmc7bCc7CiRsYW5nWydkZXRhaWxzJ10gPSAnRGV0YWxqZXInOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAnRGV0YWxqbWFsZXInOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ0xlZ2cgdGlsL3JlZGlnZXIgZW4gZGV0YWxqbWFsJzsKJGxhbmdbJ2RpbWVuc2lvbnMnXSA9ICdNJmFyaW5nO2wnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdEZWFrdGl2ZXJ0JzsKJGxhbmdbJ2Rvd24nXSA9ICdGbHl0dCBuZWQnOwokbGFuZ1snZHJhZnQnXSA9ICdLbGFkZCc7CiRsYW5nWydkcm9wZG93biddID0gJ05lZHRyZWtrJzsKJGxhbmdbJ2Ryb3Bkb3duX29wdGlvbnMnXSA9ICdOZWR0cmVra3N2YWxnIDxlbT4oa3VuIGd5bGRpZyBmb3IgbmVkdHJla2tzZmVsdCk8L2VtPjxici8+PGJyLz48ZW0+KGVuIHBvc3QgcHIgbGluamUpPC9lbT4nOwokbGFuZ1snZWRpdCddID0gJ1JlZGlnZXInOwokbGFuZ1snZWRpdF9hdHRyaWJzZXQnXSA9ICdSZWRpZ2VyIGF0dHJpYnV0dCc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICdSZWRpZ2VyIGF0dHJpYnV0dCBzZXR0JzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0c19mb3InXSA9ICdSZWRpZ2VyIGF0dHJpYnV0dCBzZXR0IGZvcic7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdSZWRpZ2VyIGF0dHJpYnV0dGVyJzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnknXSA9ICdSZWRpZ2VyIEthdGVnb3JpJzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnlfZmllbGRzJ10gPSAnUmVkaWdlciBLYXRlZ29yaSBmZWx0ZXInOwokbGFuZ1snZWRpdF9oaWVyYXJvY2h5X2l0ZW0nXSA9ICdSZWRpZ2VyIGhpZXJhcmtpIGFydGlra2VsJzsKJGxhbmdbJ2VkaXRfbm90ZXMnXSA9ICdSZWRpZ2VyIG5vdGF0ZXInOwokbGFuZ1snZWRpdF9vcHRpb25fbm90ZXMnXSA9ICdSZWRpZ2VyIHZhbGcgbm90ZXInOwokbGFuZ1snZWRpdF9vcHRpb25zJ10gPSAnUmVkaWdlciBwcm9kdWt0IHZhbGcnOwokbGFuZ1snZWRpdF9wcm9kdWN0J10gPSAnUmVkaWdlciBwcm9kdWt0JzsKJGxhbmdbJ2Vycm9ycyddID0gJ0ZlaWwnOwokbGFuZ1snZXJyb3JfYXR0cmlic2V0X2V4aXN0cyddID0gJ0VuIGF0dHJpYnV0dCBtZWQgZGV0IG5hdm5ldCBla3Npc3RlcmVyIGFsbGVyZWRlJzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdEYXRhYmFzZWZlaWwnOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX3NrdSddID0gJ0R1cGxpa2F0IFYubnIuKFNLVSkgZnVubmV0JzsKJGxhbmdbJ2Vycm9yX2ZpZWxkdmFsdWVfZW1wdHknXSA9ICdGZWx0dmVyZGllbiBrYW4gaWtrZSB2JmFlbGlnO3JlIHRvbSc7CiRsYW5nWydlcnJvcl9maWxlZm9ybWF0J10gPSAnRmlsZm9ybWF0IHJwb2JsZW0nOwokbGFuZ1snZXJyb3JfZmlsZW5vdGZvdW5kJ10gPSAnRmlsIGlra2UgZnVubmV0JzsKJGxhbmdbJ2Vycm9yX2ZpbGVvcGVuJ10gPSAnUHJvYmxlbSBtZWQgJmFyaW5nOyAmYXJpbmc7cG5lIGZpbGVuICVzJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJhbWNvdW50J10gPSAnVWd5bGRpZyAoZWxsZXIgaWtrZSBzYW1zdmFyZW5kZSkgcGFyYW1ldGVyIHRlbGxlcic7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnVWd5bGRpZyBmb3JlbGRyZSAoZW4gaGllcmFya2kgbm9kZSBrYW4gaWtrZSB2JmFlbGlnO3JlIHNpbiBlZ2VuIGZvcmVsZHJlKSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX25hbWUnXSA9ICdFa3N0cmEoY3VzdG9tKSBmZWx0dmVyZGllbiBzb20gYmxlIG9wcGdpdHQgZXIgdWd5bGRpZyAoaW5uZWhvbGRlciBpa2tlLWFsZmFudW1tZXJpc2tlIHRlZ24pJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfdmFsdWUnXSA9ICdVZ3lsZGlnIHZlcmRpIG9wcGdpdHQnOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnRW4gbiZvc2xhc2g7ZHZlbmRpZyBwYXJhbWV0ZXIgbWFuZ2xlciBlbGxlciBlciB1Z3lsZGlnJzsKJGxhbmdbJ2Vycm9yX25hbWV1c2VkJ10gPSAnRW4gYXJ0aWtrZWwgbWVkIGRldCBuYXZuZXQgZWtzaXN0ZXJlciBhbGxlcmVkZSc7CiRsYW5nWydlcnJvcl9uZWVkdHdvcm93cyddID0gJ0V0IG1pbmltdW0gYXYgdG8gcmFkZXIgZXIgcCZhcmluZztrcmV2ZCc7CiRsYW5nWydlcnJvcl9ub2ZpZWxkdHlwZSddID0gJ1Zlbm5saWdzdCB2ZWxnIGVuIGZlbHR0eXBlJzsKJGxhbmdbJ2Vycm9yX25vbmFtZSddID0gJ0R1IG0mYXJpbmc7IG9wcGdpIGV0IG5hdm4nOwokbGFuZ1snZXJyb3Jfb25lcXVhbnRpdHlmaWVsZCddID0gJ0t1biBldCBtZW5nZGUtZmVsdCB0aWxsYXR0JzsKJGxhbmdbJ2Vycm9yX29uZXN1YnNjcmlwdGlvbmZpZWxkJ10gPSAnQmFyZSBldHQgYWJvbm5lbWVudCBmZWx0IGVyIHRpbGxhdHQnOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbmRlbmllZCddID0gJ1RpbGdhbmcgbmVrdGV0JzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfYWxpYXN1c2VkJ10gPSAnQWxpYXMgc29tIGJsZSBvcHBnaXR0IGVyIGFsbGVyZWRlIGkgYnJ1ayc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X25hbWV1c2VkJ10gPSAnRXQgcHJvZHVrdCBtZWQgZGV0IG5hdm5ldCBla3Npc3RlcmVyIGFsbGVyZWRlJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3Rfbm90Zm91bmQnXSA9ICdQcm9kdWt0ZXQgYmxlIGlra2UgZnVubmV0JzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3Rfc2t1dXNlZCddID0gJ0RldHRlIFYubnIuKFNLVSkgZXIgYWxsZXJlZGUgaSBicnVrIGF2IGV0IGFubmV0IHByb2R1a3QnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9za3V1c2VkX2F0cm93J10gPSAnRGVubmUgU0tVL3ZhcmVudW1tZXIgdmVyZGkgcCZhcmluZzsgcmFkICVkIGVyIGFsbGVyZWRlIGkgYnJ1ayBhdiBldCBhbm5ldCBwcm9kdWt0JzsKJGxhbmdbJ2Vycm9yX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdVZ3lsZGlnIHByaXNqdXN0ZXJpbmdzdmVyZGkgZm9yIGVuaGV0ICVzJzsKJGxhbmdbJ2Vyb3JyX3FvaF9uZWdhdGl2ZV9hdHJvdyddID0gJ0FudGFsbCBwJmFyaW5nOyBoJmFyaW5nO25kZW4ga2FuIGlra2UgdiZhZWxpZztyZSBuZWdhdGl2IHAmYXJpbmc7IHJhZCAlZCc7CiRsYW5nWydlcnJvcl9za3VfcmVxdWlyZWQnXSA9ICdWZW5ubGlnc3Qgb3BwZ2l0IGV0IHVuaWt0IFYubnIuKFNLVSkgJzsKJGxhbmdbJ2Vycm9yX3NrdV9yZXF1aXJlZF9hdHJvdyddID0gJ1Zlbm5saWdzdCBvcHBnaSBlbiB1bmlrIFNLVS92YXJlbnVtbWVyIHAmYXJpbmc7IHJhZCAlZCc7CiRsYW5nWydlcnJvcl90ZXh0X2VtcHR5X2F0cm93J10gPSAnVGVrc3RmZWx0ZXQgcCZhcmluZzsgcmFkICVkIGthbiBpa2tlIHYmYWVsaWc7cmUgdG9tdCc7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnT3BwbGFzdGluZyBmZWlsZXQ6ICVzJzsKJGxhbmdbJ2V4Y2x1ZGVfY2F0ZWdvcmllcyddID0gJ0Vrc2tsdWRlciBwcm9kdWt0ZXIgaSBkZSB2YWxndGUga2F0ZWdvcmllbmUgZnJhIHJlc3VsdGF0ZW5lJzsKJGxhbmdbJ2V4cGlyZV9zaXhfbW9udGhzJ10gPSAnRXR0ZXIgc2VrcyBtJmFyaW5nO25lZGVyJzsKJGxhbmdbJ2V4cGlyZV9vbmVfeWVhciddID0gJ0V0dGVyIGV0dCAmYXJpbmc7cic7CiRsYW5nWydleHBpcmVfdHdvX3llYXInXSA9ICdFdHRlciB0byAmYXJpbmc7cic7CiRsYW5nWydleHBvcnRfdG9fY3N2J10gPSAnRWtzcG9ydCB0aWwgQ1NWJzsKJGxhbmdbJ2V4cG9ydGF0dHJpYnMnXSA9ICdFa3Nwb3J0IGF0cmlidXR0ZXInOwokbGFuZ1snZXhwb3J0Y2F0cyddID0gJ0Vrc3BvcnQga2F0ZWdvcmllcic7CiRsYW5nWydleHBvcnRkZWxpbSddID0gJ0Vrc3BvcnQgZmVsdHNraWxsZXRlZ24nOwokbGFuZ1snZXhwb3J0ZHJhZnQnXSA9ICdFa3Nwb3J0IGtsYWRkIHByb2R1a3Rlcic7CiRsYW5nWydleHBvcnRmaWVsZHMnXSA9ICdFa3Nwb3J0IGVnZW5kZWZpbmVydGUgZmVsdGVyJzsKJGxhbmdbJ2V4dHJhMSddID0gJ0Vrc3RyYWZlbHQgMSc7CiRsYW5nWydleHRyYTInXSA9ICdFa3N0cmFmZWx0IDInOwokbGFuZ1snZmllbGQnXSA9ICdGZWx0JzsKJGxhbmdbJ2ZpZWxkcyddID0gJ0ZlbHRlcic7CiRsYW5nWydmaWVsZGRlZiddID0gJ0ZlbHRkZWZpbmlzam9uJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0ZlbHRkZWZpbmlzam9uZXInOwokbGFuZ1snZmlsZSddID0gJ0ZpbCc7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0ZXIgJzsKJGxhbmdbJ2ZpbHRlcmludXNlJ10gPSAnYWt0aXZlcnQnOwokbGFuZ1snZmlsdGVycyddID0gJ0ZpbHRyZSc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICc8PCAnOwokbGFuZ1snZ2VuZXJhbF9zZXR0aW5ncyddID0gJ0dlbmVyZWxsZSBpbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ2dvJ10gPSAnU3RhcnQnOwokbGFuZ1snaGllcmFyY2h5J10gPSAnSGllcmFya2knOwokbGFuZ1snaGllcmFyY2h5X3Bvc2l0aW9uJ10gPSAnSGllcmFya2kgcG9zaXNqb24nOwokbGFuZ1snaGllcmFyY2h5X3NldHRpbmdzJ10gPSAnSGllcmFya2kgaW5uc3RpbGxpbmdlcic7CiRsYW5nWydpZCddID0gJ0lkICc7CiRsYW5nWydpbWFnZXRleHQnXSA9ICdCaWxkZSc7CiRsYW5nWydpbWFnZV9oYW5kbGluZ19zZXR0aW5ncyddID0gJ0JpbGRlYmVoYW5kbGluZ3Npbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ2ltcG9ydF9mcm9tX2NzdiddID0gJ0ltcG9ydGVyIHByb2R1a3RlciBmcmEgQ1NWIGZpbCc7CiRsYW5nWydpbmNoZXMnXSA9ICdUb21tZXInOwokbGFuZ1snaW5jbHVkZV9jaGlsZHJlbiddID0gJ0lua2x1ZGVyIGJhcm4/JzsKJGxhbmdbJ2luZm9fYWxudW1vbmx5J10gPSAnS3VuIGFsZmFudW1tZXJpc2tlIHRlZ24uIEluZ2VuIG1lbGxvbXJvbSwgYW5mJm9zbGFzaDtyc2Vsc3RlZ24gZWxsZXIgaWtrZS1ib2tzdGF2L3RhbGwga29tYmluYXNqb25lcic7CiRsYW5nWydpbmZvX2F0dHJpYnRlbXBsYXRlJ10gPSAnTXVsaWdlIHZhcmlhYmxlciBlcjogKCRhdHRyaWJfdGV4dCksICgkYXR0cmliX2FkanVzdCksICgkY3VycmVuY3lfc3ltYm9sKSc7CiRsYW5nWydpbmZvX2F0dHJpYnV0ZXNfY29waWVkJ10gPSAnQXRyaWJ1dHRlciBrb3BpZXJ0JzsKJGxhbmdbJ2luZm9fYXV0b3dhdGVybWFyayddID0gJ1Zhbm5tZXJrZSBpbm5zdGlsbGluZ2VuZSBlciBoZW50ZXQgZnJhIENHRXh0ZW5zaW9ucyBNb2R1bGVuJzsKJGxhbmdbJ2luZm9fYmF0Y2hzaXplJ10gPSAnU2V0dCBldCBhbnRhbGwgbGluamVyIHNvbSBza2FsIHByb3Nlc3NlcmVzIHBlciAmcXVvdDtiYXRjaCZxdW90Oy4gRXR0ZXIgaHZlciBiYXRjaCBlciBmZXJkaWcsIHZpbCBpbXBvcnRlcmVyZW4gb21kaXJpZ2VyZSwgb2cgZm9ydHNldHRlIG9wZXJhc2pvbmVuZS4gT20gZHUgb3BwbGV2ZXIgbWlubmUgZmVpbCBlbGxlciB0aWRzYXZicnVkZCBwcm9ibGVtZXIgcCZhcmluZzsgZ3J1bm4gYXYgc3RvcmUgbWVuZ2RlciBpIHByb3Nlc3NlcmluZywgc28gYiZvc2xhc2g7ciBkdSBrYW5za2plIGtvbnRha3RlIGRpbiBkaW4gbmV0dHN0ZWRzdmVydCwgZWxsZXIgcmVkdXNlcmUgZGV0dGUgYW50YWxsZXQnOwokbGFuZ1snaW5mb19jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdEaXNzZSBwYXJhbWV0ZXJlIGdpcyB0aWwgZGVuIHZhbGd0ZSBoYW5kbGVrdXJ2KGNhcnQpIG1vZHVsZW4gZnJhIHByb2R1a3QtZGV0YWxqIG9nIC1zYW1tZW5kcmFnc3Zpc25pbmdlbmUnOwokbGFuZ1snaW5mb19jb3B5X2F0dHJpYnNldHMnXSA9ICdEZW5uZSBoYW5kbGluZ2VuIHZpbCBrb3BpZXJlIGF0dHJpYnV0dHNldHQgKHVubnRhdHQgc2t1IHZlcmRpZXIpIGZyYSBldCBhbm5ldCBwcm9kdWt0Lic7CiRsYW5nWydpbmZvX2NsZWFyYXR0cmlicyddID0gJ0dqZWxkZXIgYmFyZSBuJmFyaW5nO3IgZHUgb3BwZGF0ZXJlciBla3Npc3RlcmVuZGUgcHJvZHVrdGVyLCBkZXR0ZSB2aWwgZmplcm5lIGFsbCBhdHRyaWJ1dHQgaW5mb3JtYXNqb24gZnJhIGRhdGFiYXNlbiBmb3IgcHJvZHVrdGVyIGYmb3NsYXNoO3Igb3BwcmV0dGluZyBhdiBueWUnOwokbGFuZ1snaW5mb19jbGVhcmNhdGVnb3JpZXMnXSA9ICdHamVsZGVyIGJhcmUgbiZhcmluZztyIGR1IG9wcGRhdGVyZXIgZWtzaXN0ZXJlbmRlIHByb2R1a3RlciwgdmlsIGRldHRlIGZqZXJuZSBhbGxlIGthdGVnb3JpIG1lZGxlbXNrYXAgZiZvc2xhc2g7ciBueWUgb3BwcmV0dGVzJzsKJGxhbmdbJ2luZm9fY2xlYXJmaWVsZHMnXSA9ICdHamVsZGVyIGJhcmUgbiZhcmluZztyIGR1IG9wcGRhdGVyZXIgZWtzaXN0ZXJlbmRlIHByb2R1a3RlciwgdmlsIGRldHRlIGZqZXJuZSBhbGxlIGZlbHQgZiZvc2xhc2g7ciBueWUgZmVsdHZlcmRpZXIgb3BwcmV0dGVzJzsKJGxhbmdbJ2luZm9fY3JlYXRlZmllbGRzJ10gPSAnT3BwcmV0dCB1a2plbnRlIHByb2R1a3RmZWx0ZXIgYXV0b21hdGlzaz8gPGVtPihEZSB2aWwgYmxpIG9wcHJldHRldCBzb20gdGVrc3RmZWx0ZXIpPC9lbT4nOwokbGFuZ1snaW5mb19jcmVhdGVjYXRlZ29yaWVzJ10gPSAnT3BwcmV0dCBhdXRvbWF0aXNrIHByb2R1a3RrYXRlZ29yaWVyIGZvciAmYXJpbmc7IHNhbXN2YXJlIG1lZCBkZSBzb20gZXIgaSBDU1YgZmlsZW4sIG9tIGRlIGlra2UgYWxsZXJlZGUgZWtzaXN0ZXJlcic7CiRsYW5nWydpbmZvX2NyZWF0ZWhpZXJhcmNoeSddID0gJ09wcHJldHQgcHJvZHVrdGhpZXJhcmtpZXIgYXV0b21hdGlzayBmb3IgJmFyaW5nOyBzYW1zdmFyZSBtZWQgZGUgc29tIGVyIGkgQ1NWIGZpbGVuLCBvbSBkZSBpa2tlIGFsbGVyZWRlIGVrc2lzdGVyZXInOwokbGFuZ1snaW5mb19kZWNpbWFsX3VuaXRzJ10gPSAnU3lzdGVtZXQgZm9yc3QmYXJpbmc7ciAoLikgc29tIGRlc2ltYWxzZXBhcmF0b3IgKGlra2Uga29tbWEhKS4gRi5la3MuOiA8c3Ryb25nPjUuMjU8L3N0cm9uZz4nOwokbGFuZ1snaW5mb19kZWxpbWl0ZXInXSA9ICdTcGVzaWZpc2VyIGJva3N0YXZlbiAoZWxsZXIgYm9rc3RhdmVuZSkgc29tIHNlcGFyZXJlciBodmVydCBmZWx0JzsKJGxhbmdbJ2luZm9fZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdTcGVzaWZpc2VyIGh2b3JkYW4gc3lzdGVtZXQgc2thbCBiZWhhbmRsZSBldCBwcm9kdWt0IHNvbSBoYXIgZXQgbmF2biBzb20gYWxsZXJlZGUgZWtzaXN0ZXJlciBpIENTViBmaWxlbic7CiRsYW5nWydpbmZvX2ZpZWxkZGVmc190YWInXSA9ICc8c3Ryb25nPk1lcms6IDwvc3Ryb25nPiBBbGxlIGZlbHRlciBkZWZpbmVydCBoZXIgZXIgdGlsZ2plbmdqZWxpZ2UgZm9yIGFsbGUgcHJvZHVrdGVyLic7CiRsYW5nWydpbmZvX2ZpZWxkcHJvYmxlbXMnXSA9ICdQcm9ibGVtZXIgYmxlIG9wcGRhZ2V0IHVuZGVyIGgmYXJpbmc7bmR0ZXJpbmcgYXYgZXQgZWxsZXIgZmxlcmUgZWtzdHJhKGN1c3RvbSkgZmVsdGVyLiBIYW5kbGluZ2VuIGVyIHZlbGx5a2tldCBmdWxsZiZvc2xhc2g7cnQsIG1lbiBkdSBiJm9zbGFzaDtyIHVuZGVycyZvc2xhc2g7a2Ugb2cga29ycmlnZXJlIGRpc3NlIHByb2JsZW1lbmUnOwokbGFuZ1snaW5mb19oYW5kbGVpbWFnZXMnXSA9ICdWZWQgaW1wb3J0LCBvbSBldCBiaWxkZSBmaWxuYXZuIGJsaXIgZnVubmV0IGkgZW4gZmVsdGtvbG9ubmUsIHNrYWwgZGV0IGJsaSBmbHl0dGV0IGZyYSBraWxkZSBsb2thc2pvbmVuLCB2YW5ubWVya2V0LCBtaW5pYXR5cmJpbGRldCwgb2cgZmVsdHR5cGVuIGVuZHJlcyB0aWwgJnF1b3Q7aW1hZ2UmcXVvdDsnOwokbGFuZ1snaW5mb19oaWVycGFnZSddID0gJ0JydWsgZGVubmUgc2lkZW4gZm9yIGhpZXJhcmtpdmlzbmluZ2VyLiBEZW5lIHNpZGVJRCB2aWwgaWtrZSBibGkgc3Blc2lmaXNlcnQgcCZhcmluZzsgd2ViYWRyZXNzZW4uJzsKJGxhbmdbJ2luZm9faW1hZ2VwYXRoJ10gPSAnU3RpZW4gKHJlbGF0aXZ0IHRpbCB1cGxvYWRzIGthdGFsb2dlbikgaHZvciBiaWxkZXIgcmVmZXJlcnQgdGlsIGkgaW1wb3J0ZmlsZW4sIGthbiBibGkgZnVubmV0JzsKJGxhbmdbJ2luZm9faW1hZ2VzdHVmZl9kZXByZWNhdGVkJ10gPSAnQmlsZGViZWhhbmRsaW5nc2Z1bmtzam9uZXIgZXIgZm9yZWxkZXQgb2cgdmlsIGJsaSBmamVybmV0IGkgZW4gZnJlbXRpZGlnIHZlcnNqb24uIEJydWsgQ0dTbWFydEltYWdlIGZvciBpbmxpbmUgYmlsZGViZWhhbmRsaW5nLic7CiRsYW5nWydpbmZvX2ltcG9ydF90ZXN0X3Bhc3NlZCddID0gJ0VuIGtvcnQgdGVzdCBoYXIgYmxpdHQgdXRmJm9zbGFzaDtydCBwJmFyaW5nOyBkZW4gc3Blc2lmaXNlcnRlIGlubmZpbGVuLCBvZyBhbHQgc2VyIHV0IHRpbCAmYXJpbmc7IHYmYWVsaWc7cmUgaSBvcmRlbi48YnIvPkRldHRlIGVyIGlra2UgZW4gaW5kaWthc2pvbiBwJmFyaW5nOyBhdCBkZXQgaWtrZSBrYW4gdiZhZWxpZztyZSBmZWlsIGkgZmlsZW4uJzsKJGxhbmdbJ2luZm9fcHJldHR5aGllcnVybHMnXSA9ICdJbmtsdWRlciBoaWVyYXJraSBlbGVtZW50bmF2bmV0IHAmYXJpbmc7IFVSTGVuJzsKJGxhbmdbJ2luZm9fcHJpY2VfYWRqdXN0bWVudCddID0gJ0d5bGRpZ2UgdmVyZGllciBlciArLSojLiMjJzsKJGxhbmdbJ2luZm9fcHJvZG5vdGZvdW5kJ10gPSAnRGV0dGUgYWx0ZXJuYXRpdmV0IGJlc3RlbW1lciBvcHBmJm9zbGFzaDtyc2VsZW4gdGlsIG5ldHRzdGVkZXQgaHZpcyBlbiBoYXIgZyZhcmluZzt0dCByZXR0IHRpbCBwcm9kdWt0LWRldGFsanZpc25pbmcgdmlhIGVuIG5ldHRhZHJlc3NlLCBvZyBhdCBwcm9kdWt0ZXQgYXYgZW4gZWxsZXIgYW5uZW4gZ3J1bm4gKGRlYWt0aXZlcnQsIHNsZXR0ZXQsIG9zdi4pIGlra2Uga2FuICZhcmluZztwbmVzLic7CiRsYW5nWydpbmZvX3B1YmxpY2ZpZWxkJ10gPSAnT2ZmZW50bGlnZSBmZWx0IGVyIHRpbGdqZW5nZWxpZ2UgJmFyaW5nOyBzZSBmb3IgYWxsZSc7CiRsYW5nWydpbmZvX3Jlb3JkZXJfY29udGVudCddID0gJ0Rlbm5lIG9wZXJhc2pvbmVuIHRpbGxhdGVyICZhcmluZzsgZHJhIGRlIGVua2VsdGUgbm9kZXIgaSB0cmVldCBmb3IgJmFyaW5nOyBlbmRyZSByZWtrZWYmb3NsYXNoO2xnZW4gZGUgdmlzZXMgcCZhcmluZzsgaSBoaWVyYXJraXZpc25pbmcnOwokbGFuZ1snaW5mb19zZXRlY29taGFuZGxlcnMnXSA9ICdEZW5uZSBrbmFwcGVuIHZpbCBzaWtyZSBhdCBoZW5kZWxzZXNiZWhhbmRsZXJuZSBmb3IgZS1oYW5kZWwgaGVuZGVsc2VyIGVyIHAmYXJpbmc7IHBsYXNzLiBEZXR0ZSBlciBueXR0aWcgb20gZW4gYmVyIFByb2R1a3Rtb2R1bGVuIG9tICZhcmluZzsgaG9sZGUgc3R5ciBwJmFyaW5nOyBtZW5nZGUgdGlsZ2plbmdlbGlnLCBtZW4gaGVuZGluZ3Nha3RpdmF0b3JlciBpa2tlIGJsZSBvcHByZXR0ZXQgdW5kZXIgaW5zdGFsbGFzam9uIGVsbGVyIG9wcGdyYWRlcmluZyc7CiRsYW5nWydsYWJlbCddID0gJ0V0aWtldHQnOwokbGFuZ1snbGFiZWxfc2tpcCddID0gJ0hvcHAgb3Zlcic7CiRsYW5nWydsYWJlbF9vdmVyd3JpdGUnXSA9ICdPdmVyc2tyaXYnOwokbGFuZ1snbGFiZWxfdXBkYXRlJ10gPSAnT3BwZGF0ZXInOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICcgPj4nOwokbGFuZ1snbGFzdF9tb2RpZmllZCddID0gJ1Npc3QgZW5kcmV0JzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnQW5kcmUgYmlsZGUnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWFrc2ltdW0gbGVuZ2RlIDxlbT4oa2FuIGJlbnl0dGVzIGt1biBwJmFyaW5nOyB0ZWtzdGJva3MgZmVsdGVyKTwvZW0+JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ0VuZHJldCBkYXRvJzsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gJ0VuIG1vZHVsIGZvciAmYXJpbmc7IGJlaGFuZGxlIGVuIGthdGFsb2cgbWVkIHByb2R1a3RlciwgZGV0cyBwcmlzLCBiaWxkZXIsIG9zdiwgb2cgZm9yICZhcmluZzsgdGlsbGF0ZSBicnVrZXJlICZhcmluZzsgYnlnZ2UgZW4gaGFuZGxla3Vydic7CiRsYW5nWydtb3ZlX2Rvd24nXSA9ICdGbHl0dCBuZWQnOwokbGFuZ1snbW92ZV91cCddID0gJ0ZseXR0IG9wcCc7CiRsYW5nWydtc2dfZXZlbnRoYW5kbGVyc19jcmVhdGVkJ10gPSAnSGVuZGVsc2VzYmVoYW5kbGVyZSBvcHByZXR0ZXQnOwokbGFuZ1snbXNnX29wdGlvbnNjb3BpZWQnXSA9ICdQcm9kdWt0IHZhbGcga29waWVydCAobWVuIGlra2UgbGFncmV0IGVubiZhcmluZzspJzsKJGxhbmdbJ21zZ19vcHRpb25zX2RlbGV0ZWQnXSA9ICdQcm9kdWt0IHZhbGcgc2xldHRldCBmb3IgcHJvZHVrdCAlZCc7CiRsYW5nWydtc2dfb3B0aW9uc19zYXZlZCddID0gJ1Byb2R1a3QgdmFsZyBsYWdyZXQnOwokbGFuZ1snbXNnX3Byb2R1Y3Rjb3BpZWQnXSA9ICdQcm9kdWt0ZXQgYmxlIGtvcGllcnQuIER1IHJlZGlnZXJlciBuJmFyaW5nOyBrb3BpZW4uIEVuaHZlciBza3UvdmFyZW51bW1lciBpbmZvcm1hc2pvbiBpIHByb2R1a3RldCwgb2cvZWxsZXIgYXR0cmlidXR0ZXIgZXIgZmplcm5ldCc7CiRsYW5nWyduYW1lJ10gPSAnTmF2bic7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ0R1IGhhciBpa2tlIGRlbiBuJm9zbGFzaDtkdmVuZGlnZSByZXR0aWdoZXRlbjogJXMnOwokbGFuZ1snbmV3X2NhdGVnb3J5X25hbWUnXSA9ICdOeXR0IGthdGVnb3JpIG5hdm4nOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICcgPic7CiRsYW5nWydubyddID0gJ05laSc7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ0luZ2VuIG5hdm4gb3BwZ2l0dCc7CiRsYW5nWydub25lJ10gPSAnSW5nZW4nOwokbGFuZ1snbm90ZXMnXSA9ICdNZXJrbmFkZXInOwokbGFuZ1snbm90aGluZ19zZWxlY3RkJ10gPSAnSW5nZW50aW5nIHZhbGd0JzsKJGxhbmdbJ29mJ10gPSAnYXYnOwokbGFuZ1snb2snXSA9ICdPSyc7CiRsYW5nWydvcGVyYXRpb25fY2FuY2VsbGVkJ10gPSAnT3BlcmFzam9uIGF2YnJ1dHQnOwokbGFuZ1snb3BlcmF0aW9uX2NvbXBsZXRlJ10gPSAnT3BlcmFzam9uIGZlcmRpZyc7CiRsYW5nWydwYWdlJ10gPSAnU2lkZSc7CiRsYW5nWydwYWdlX29mJ10gPSAnU2lkZSAlcyBhdiAlcyc7CiRsYW5nWydwYWdlX2xpbWl0J10gPSAnU2lkZSBiZWdyZW5zbmluZyc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcGVjaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5oaWVyYXJjaHkgLS0gRGlzcGxheSBhIHByb2R1Y3QgbGlzdCBieSBoaWVyYXJjaHk8L2xpPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdCBjYXRlZ29yaWVzPC9saT4NCiAgPGxpPjxlbT5kZWZhdWx0PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyeSBvZiBwcm9kdWN0czwvbGk+DQogIDxsaT5kZXRhaWxzIC0gRGlzcGxheSBhIGRldGFpbCB2aWV3IG9mIGEgc2luZ2xlIHByb2R1Y3Q8L2xpPg0KICA8bGk+ZmllbGRsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgdmFsdWVzIGZyb20gYSBzcGVjaWZpZWQgZmllbGQuDQogICAgIDxwPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7LSBUaGlzIGFjdGlvbiBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYSBuYXZpZ2F0aW9uIGZyb20gdGhlIHZhbHVlcyBvZiBhIHNwZWNpZmljIGZpZWxkLiAgaS5lOiAgeW91IGNvdWxkIGNyZWF0ZSBhIGN1c3RvbSBkcm9wZG93biBmaWVsZCBjYWxsZWQgJmFtcDtxdW90O2NvbG9yJmFtcDtxdW90OyBhbmQgdGhlbiBjcmVhdGUgYSBuYXZpZ2F0aW9uIGJhc2VkIG9uIHRoZSBkaWZmZXJlbnQgY29sb3JzLg0KICAgICA8L3A+DQogIDwvbGk+DQogIDxsaT5zZWFyY2ggLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBzZWFyY2hpbmcgcHJvZHVjdHMgb24gdmFyaW91cyBjcml0ZXJpdW08L2xpPg0KPGxpPmFqYXhfcHJvcHZhbCAtIFJldHVybiBhIGpzb24gZW5jb2RlZCBsaXN0IG9mIHByb3BlcnR5IHZhbHVlcyBtYXRjaGluZyB0aGUgY3JpdGVyaWEgc3BlY2lmaWVkLiAgVGhpcyBhY3Rpb24gaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB2aWEgYWpheCwgYW5kIHNob3VsZCBiZSBjYWxsZWQgd2l0aCB0aGUgc2hvd3RlbXBsYXRlPWZhbHNlIHBhcmFtZXRlciBvbiB0aGUgVVJMLjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ04mYXJpbmc7ciBiZW55dHRldCBtZWQgPGVtPnN0YW5kYXJkPC9lbT4gc2FtbWVuZHJhZ3Ntb2R1cyB2aWwgZGVubmUgcGFyYW1ldGVyLCBzb20gc2thbCB2JmFlbGlnO3JlIGxpayBuYXZuZXQgcCZhcmluZzsgZW4gZWtzaXN0ZXJlbmRlIGthdGVnb3JpLCBibGkgYmVueXR0ZXQgZm9yICZhcmluZzsgdmlzZSBrdW4gZGUgcHJvZHVrdGVuZSBzb20gZXIgaSBkZW5uZSBrYXRlZ29yaWVuLiAoZW4ga29tbWFzZXBhcmVydCBsaXN0ZSBrYW4gb3BwZ2lzKSBEZW5uZSBwYXJhbWV0ZXJlbiBrYW4gb2dzJmFyaW5nOyBiZW55dHRlcyBtZWQgY2F0ZWdvcnlsaXN0IGhhbmRsaW5nZW4gZm9yICZhcmluZzsgYmVncmVuc2UgdXRkYXRhIHRpbCBkZSBzcGVzaWZpc2VydGUgcHJvZHVrdGthdGFnb3JpZW5lLic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWZpZWxkJ10gPSAnR2plbGRlciBrdW4gdGlsICZxdW90O2NhdGVnb3J5bGlzdCZxdW90OyBoYW5kbGluZywgaHZvciBkZW5uZSBwYXJhbWV0ZXJlbiBrYW4gYnJ1a2VzIHRpbCAmYXJpbmc7IGZpbHRyZXJlIGthdGVnb3JpZXIgYmFzZXJ0IHAmYXJpbmc7IHZlcmRpZW4gYXYgZXQga2F0ZWdvcmlmZWx0LiBEZXR0ZSB2aWwgaWtrZSBmdW5nZXJlIGkgZm9yYmluZGVsc2UgbWVkICZxdW90O2thdGVnb3JpJnF1b3Q7IGVsbGVyICZxdW90O2NhdGVnb3J5X2lkJnF1b3Q7IHBhcmFtZXRlcmUuIFN5bnRha3NlbiBmb3IgZGVubmUgcGFyYW1ldGVyZW4gZXIgZW4ga29tbWFzZXBhcmVydCBsaXN0ZSBtZWQgZmVsdG5hdm4sIG9nIGZlbHR2ZXJkaWVyLiBkdnMuOiBjYXRlZ29yeWxpc3Q9JmFtcDtxdW90O2ZlbHRuYXZuZXQ6dmVyZGksZmVsdG5hdm4yOnZlcmRpZW4gMiZhbXA7cXVvdDsnOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICdNZWQga2F0ZWdvcmlsaXN0ZSAgb2cgZmllbGRsaXN0IGhhbmRsaW5nZW5lLCB2aWwgZGVubmUgcGFyYW1ldGVyIGluZGlrZXJlIG1hbGVuIHNvbSBza2FsIGJlbnl0dGVzIGZvciB2aXNuaW5nLiBPbSBpbmdlbiB2ZXJkaSBlciBvcHBnaXR0IHZpbCBuJmFyaW5nO3YmYWVsaWc7cmVuZGUgc3RhbmRhcmQgbWFsIGF2IGRlbm5lIHR5cGUgYmxpIGJlbnl0dGV0Lic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3RkdGx0ZW1wbGF0ZSddID0gJ0thbiBrdW4gYmVueXR0ZXMgbWVkIGNhdGVnb3J5bGlzdCBoYW5kbGluZ2VuZSwgaHZvciBkZW5uZSBwYXJhbWV0ZXJlbiBpbmRpa2VyZXIgbWFsZW4gc29tIHNrYWwgYmVueXR0ZXMgZm9yIHZpc25pbmcgYXYga2F0ZWdvcmlkZXRhbGplci4gRGV0dGUgYmVueXR0ZXIgZW4ga2F0YWdvcmlsaXN0ZW1hbC4uIE9tIGluZ2VuIHZlcmRpIGVyIHNwZXNpZmlzZXJ0IHMmYXJpbmc7IHZpbCBuJmFyaW5nO3YmYWVsaWc7cmVuZGUgc3RhbmRhcmRtYWwgYXYgZGVubmUgdHlwZW4gYmxpIGJlbnl0dGV0Lic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnRGV0dGUgc3Blc2lmaXNlcmVyIHNpZGVpZCYjMDM5O2VuIGVsbGVyIHNpZGVhbGlhcyBzb20gc2thbCBiZW55dHRlcyBmb3IgJmFyaW5nOyB2aXNlIGRldGFsanJhcHBvcnRlbi4gRGV0dGUga2FuIGJlbnl0dGVzIG1lZCA8ZW0+ZGVmYXVsdDwvZW0+IGVsbGVyIHMmb3NsYXNoO2sgaGFuZGxpbmdlbmUuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnRGVubmUgcGFyYW1ldGVyIHNwZXNpZmlzZXJlciBtYWxlbiBzb20gc2thbCBiZW55dHRlcyBmb3IgZGV0YWxqbW9kdXMgdmlzbmluZy4gT20gaW5nZW4gdmVyZGkgZXIgb3BwZ2l0dCB2aWwgbiZhcmluZzt2JmFlbGlnO3JlbmRlIHN0YW5kYXJkIG1hbCBhdiBkZW5uZSB0eXBlIGJsaSBiZW55dHRldC4gRGVubmUgcGFyYW1ldGVyIGhhciBpbmdlbiB2aXJrbmluZyBuJmFyaW5nO3IgdmFrcmUgdXJsZXIgZXIgcCZhcmluZztzbCZhcmluZzt0dC4nOwokbGFuZ1sncGFyYW1fZXhjbHVkZWNhdCddID0gJ0dqZWxkZXIga3VuIHRpbCBzdGFuZGFyZCAoc2FtbWVuZHJhZykgdmlzbmluZywgaHZvciBkZW5uZSBwYXJhbWV0ZXJlbiB2aWwgdGlsbGF0ZSB1bm50YWsgYXYgcHJvZHVrdGVyIHNvbSBlciBpIGVuIGJlc3RlbXQga2F0ZWdvcmkgZnJhIHJlc3VsdGF0ZXQuIEVuIGtvbW1hc2VwYXJlcnQgbGlzdGUgbWVkIGthdGVnb3JpbmF2biBlciB0aWxsYXR0LiBEZW5uZSBwYXJhbWV0ZXJlbiBrYW4gZnVuZ2VyZSBzYW1tZW4gbWVkIGthdGVnb3JpLXBhcmFtZXRlcmVuIGZvciAmYXJpbmc7IGdpIGVuIGxpc3RlIG92ZXIgcHJvZHVrdGVyIHNvbSBlciBpIGRlbm5lIGthdGVnb3JpZW4sIG1lbiBpa2tlIGkgZGVuIGthdGVnb3JpZW4nOwokbGFuZ1sncGFyYW1fZmllbGQnXSA9ICdVc2VkIGluIHRoZSA8ZW0+ZmllbGRsaXN0PC9lbT4gYW5kIHRoZSA8ZW0+YWpheF9wcm9wdmFsPC9lbT4gYWN0aW9ucy4gSW4gdGhlIGZpZWxkbGlzdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIHRvIHNwZWNpZnkgdGhlIG5hbWUgb2YgYSB1c2VyIGRlZmluZWQgcHJvcGVydHkgdG8gY3JlYXRlIGEgbGlzdCBmcm9tLiAgSW4gdGhlIGFqYXhfcHJvcHZhbCBhY3Rpb24gdGhpcyBwYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoaWNoIGZpZWxkIHRvIHVzZSB0byBleHRyYWN0IGEgbGlzdCBvZiB2YWx1ZXMuICBBbnkgdmFsaWQgZmllbGQgbmFtZXMgYXJlIGFjY2VwdGVkICh0aG91Z2ggb25seSB0ZXh0IGZpZWxkIGFuZCBkcm9wZG93biBmaWVsZCBuYW1lcyB3aWxsIHdvcmsgcHJvcGVybHkuICBBZGRpdGlvbmFsbHkgdGhlIHNwZWNpYWwgdmFsdWVzIDo6bmFtZTo6LCA6OnNrdTo6LCBhbmQgOjphbGlhczo6IGNhbiBiZSBzcGVjaWZpZWQgdG8gcmV0dXJuIHZhbHVlcyBmcm9tIHRoZSBwcm9kdWN0IG5hbWUsIHNrdSBhbmQgYWxpYXMgcmVzcGVjdGl2ZWx5Lic7CiRsYW5nWydwYXJhbV9maWVsZHZhbCddID0gJ1VzZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYW5kIDxlbT5hamF4X3Byb3B2YWw8L2VtPiBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGZpZWxkIHZhbHVlIHRvIGxpbWl0IHJlc3VsdHMgYnkuICBJbiB0aGUgZGVmYXVsdCB2YWx1ZSB0aGVzZSBzcGVjaWFsIHZhbHVlcyBhcmUgYWNjZXB0ZWQ6ICZhbXA7cXVvdDs6Om51bGw6OiZhbXA7cXVvdDsgJmFtcDtxdW90Ozo6bm90bnVsbDo6JmFtcDtxdW90Oy4gSW4gdGhlIGFqYXhfcHJvcHZhbCBhY3Rpb24gdGhpcyBmaWVsZCBpcyBleHBlY3RlZCB0byBjb250YWluIG9ubHkgYSBmZXcgbGV0dGVycywgdG8gaW5kaWNhdGUgYSBzbWFsbCBmaWx0ZXIuICBpLmU6IGZpZWxkdmFsPWIgdG8gcmV0dXJuIGFsbCBmaWVsZCB2YWx1ZXMgdGhhdCBiZWdpbiB3aXRoIHRoZSBsZXR0ZXIgYi4nOwokbGFuZ1sncGFyYW1faGllcmFyY2h5J10gPSAnS2FuIGt1biBiZW55dHRlcyBpIDxlbT5kZWZhdWx0PC9lbT4gb2cgaGllcmFya2kgaGFuZGxpbmdlci4gRGVubmUgcGFyYW1ldGVyIGhhciB0byBvcHBnYXZlciAtIGRlbiBzcGVzaWZpc2VyZXIgYXQga3VuIGFydGlrbGVyIGkgZGVubmUgbG9rYXNqb25lbiBpIGhpZXJhcmtpZXQgc2thbCB2aXNlcy4gIEpva2VydGVnbiBrYW4gYmVueXR0ZXMgcyZhcmluZzsgZHUgb2dzJmFyaW5nOyBrYW4gc3Blc2lmaXNlcmUgZm9yZWxkcmUvYmFybiByZWxhc2pvbmVyLiBGLmVrcy4ge1Byb2R1Y3RzIGhpZXJhcmNoeT0mIzAzOTt0cnVja3MqJiMwMzk7fSB2aWwgbGFnZSBlbiBzYW1tZW5kcmFnc3JhcHBvcnQgbWVkIGFsbGUgdHJ1Y2tzLCBpbmtsdWRlcnQgYmFybmEgaSBoaWVyYXJraWV0LiAgUCZhcmluZzsgc2FtbWUgbSZhcmluZzt0ZSwge1Byb2R1Y3RzIGhpZXJhcmNoeT0mIzAzOTsqdHJ1Y2tzJiMwMzk7fSB2aWwgdmlzZSBlbiBzYW1tZW5kcmFnc3JhcHBvcnQgbWVkIGFsbGUgdHJ1Y2tzIG9nIGFsbGUgcHJvZHVrdGVyIHRpbGgmb3NsYXNoO3JlbmRlIGVuaHZlciBmb3JlbGRyZSBpIGhpZXJhcmtpZXQuIE4mYXJpbmc7ciBiZW55dHRldCBtZWQgaGllcmFya2loYW5kbGluZ2VuIHMmYXJpbmc7IGthbiBkZW5uZSBwYXJhbWV0ZXIgZ2kgZW4gbGlzdGUgbWVkIGhpZXJhcmtpbmF2biBmb3IgJmFyaW5nOyB2aXNlIGFra3VyYXQgZGlzc2UuIEYuZWtzLiB7UHJvZHVjdHMgYWN0aW9uPWhpZXJhcmNoeSBoaWVyYXJjaHk9JiMwMzk7dHJ1Y2tzLGNhcnMmIzAzOTt9JzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeXRlbXBsYXRlJ10gPSAnRGVubmUgcGFyYW1ldGVyIHNwZXNpZmlzZXJlciBtYWxlbiBzb20gc2thbCBicnVrZXMgZm9yIGhpZXJhcmtpIHZpc25pbmcuIE9tIGluZ2VuIHZlcmRpIGVyIHNhdHQgdmlsIHN0YW5kYXJkIG1hbCBhdiBkZW4gdHlwZW4gYmxpIGJlbnl0dGV0Lic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdLdW4gbnl0dGlnIGZvciBzJm9zbGFzaDtrLWhhbmRsaW5nZW4sIGRlciBkZW5uZSBwYXJhbWV0ZXJlbiBzcGVzaWZpc2VyZXIgYXQgdXRkYXRhIGZvciBzYW1tZW5kcmFnZXN2aXNuaW5nZW4gc2thbCB2aXNlcyBpbmxpbmUnOwokbGFuZ1sncGFyYW1fbm90cHJldHR5J10gPSAnRGVubmUgcGFyYW1ldGVyIGFuZ2lyIGVuIGtvbW1hc2VwYXJlcnQgbGlzdGUgb3ZlciBoYW5kbGluZ2VyIHNvbSB2YWtyZSB3ZWJhZHJlc3NlciBpa2tlIGImb3NsYXNoO3IgZ2VuZXJlcmVzIGZvciBmLmVrcy46IG5vdHByZXR0eT1oaWVyYXJjaHksIGRlZmF1bHQgdmlsIGlra2UgZ2VuZXJlcmUgdmFrcmUgdXJsZXIgdGlsIGhpZXJhcmNoeSwgZWxsZXIgc3VtbWFyeSAoc3RhbmRhcmQpIGhhbmRsaW5nZW5lLCBtZW4gdmlsIHRpbGxhdGUgZ2VuZXJlcmluZyBhdiB2YWtyZSB3ZWJhZHJlc3NlciB0aWwgZGV0YWxqdmlzbmluZy4gU29tIGVuIHNwZXNpZWxsIHZlcmRpICZxdW90O2FsbCZxdW90OyBrYW4gYnJ1a2VzIHRpbCAmYXJpbmc7IGFuZ2kgYXQgaW5nZW4gcGVuZSB1cmxlciBza2FsIGdlbmVyZXJlcyc7CiRsYW5nWydwYXJhbV9wYWdlbGltaXQnXSA9ICdCZW55dHRldCBtZWQgPGVtPnN0YW5kYXJkPC9lbT4gaGFuZGxpbmdlbiB2aWwgZGVubmUgcGFyYW1ldGVyIHNwZXNpZmlzZXJlIGh2b3IgbWFuZ2UgcHJvZHVrdGVyIHNvbSBza2FsIGxpc3RlcyBwJmFyaW5nOyBodmVyIHNpZGUuJzsKJGxhbmdbJ3BhcmFtX3BhcmVudCddID0gJ0thbiBrdW4gYmVueXR0ZXMgaSA8ZW0+aGllcmFyY2h5PC9lbT4gaGFuZGxpbmdlbi4gRGVubmUgcGFyYW1ldGVyIHNwZXNpZmlzZXJlciBoaWVyYXJraSBpZCB0aWwgc3RhcnQgcG9zaXNqb25lbiBpIHJhcHBvcnRlbi4nOwokbGFuZ1sncGFyYW1fcGFyZW50cyddID0gJ055dHRpZyBiYXJlIGkgPGVtPmhpZXJhcmNoeTwvZW0+IGhhbmRsaW5nZW4sIGFuZ2lyIGRlbm5lIHBhcmFtZXRlcmVuIGVuIGtvbW1hc2VwYXJlcnQgbGlzdGUgbWVkIGhpZXJhcmtpIG5hdm4gc29tIHNwZXNpZmlzZXJlciBmb3Igb3BwcmV0dGluZyBlbiByZWtrZSBoaWVyYXJraSB0ciZhZWxpZztyIGZyYSBkZW4vZGUgYW5naXR0ZSBwbGFzc2VyaW5nKGVuZSkuIEhpZXJhcmtpIG5hdm4gbSZhcmluZzsgdiZhZWxpZztyZSB1bmlrZSwgb2cgaWtrZSBpbm5laG9sZGUgc3Blc2lhbHRlZ24uJzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RpZCddID0gJ0Jlbnl0dGV0IG1lZCBkZXRhbGogaGFuZGxpbmdlbiB2aWwgZGVubmUgcGFyYW1ldGVyIGluZGlrZXJlIGh2aWxrZXQgcHJvZHVrdCBzb20gc2thbCB2aXNlcyBwJmFyaW5nOyBzaWRlbi4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGxpc3QnXSA9ICdHamVsZGVyIGt1biB0aWwgc3RhbmRhcmQgKHNhbW1lbmRyYWcpIHZpc25pbmcsIGh2b3IgZGVubmUgcGFyYW1ldGVyZW4ga2FuIGFuZ2kgZW4ga29tbWFzZXBhcmVydCBsaXN0ZSBtZWQgaGVsdGFsbCBwcm9kdWt0LUlEZXIgJmFyaW5nOyB2aXNlLiBJbmdlbiBwYWdpbmVyaW5nIGVsbGVyIHNvcnRlcmluZyB1dGYmb3NsYXNoO3JlcyBkYSBwJmFyaW5nOyBkaXNzZSB2ZXJkaWVuZS4gQW5kcmUgc3Blc2lmaXNlcnRlIGZpbHRyZXJpbmdzcGFyYW1ldGVyZSwgb20gZGV0dGUgZXIgc3Blc2lmaXNlcnQgZm9yIHNhbW1lbmRyYWdzdmlzbmluZ2VuLCB2aWwgb2dzJmFyaW5nOyBpZ25vcmVyZXMuJzsKJGxhbmdbJ3BhcmFtX3Jlc3VsdHBhZ2UnXSA9ICdLdW4gZ3lsZGlnIGZvciBzJm9zbGFzaDtrIGhhbmRsaW5nZW4sIGh2b3IgZGVubmUgcGFyYW1ldGVyZW4gc3Blc2lmaXNlcmVyIGVuIHNpZGUtaWQgZWxsZXIgYWxpYXMgJmFyaW5nOyBiZW55dHRlIGZvciAmYXJpbmc7IHZpc2UgcyZvc2xhc2g7a2VyZXN1bHRhdGVuZSc7CiRsYW5nWydwYXJhbV9zZWFyY2hmaWVsZCddID0gJ0t1biBneWxkaWcgZm9yIHMmb3NsYXNoO2sgaGFuZGxpbmdlbiwgaHZvciBkZW5uZSBwYXJhbWV0ZXJlbiBrYW4gaW5uZWhvbGRlIGVuIGtvbW1hc2VwYXJlcnQgbGlzdGUgbWVkIGZlbHRuYXZuICZhcmluZzsgaW5rbHVkZXJlIGkgcyZvc2xhc2g7a2V0JzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZvcm10ZW1wbGF0ZSddID0gJ0t1biBneWxkaWcgZm9yIHMmb3NsYXNoO2sgaGFuZGxpbmdlbiwgaHZvciBkZW5uZSBwYXJhbWV0ZXJlbiB0aWxsYXRlciAmYXJpbmc7IHNwZXNpZmlzZXJlIGVuIGlra2Utc3RhbmRhcmQgcyZvc2xhc2g7a2Vza2plbWFtYWwnOwokbGFuZ1sncGFyYW1fc2hvd2FsbCddID0gJ0dqZWxkZXIga3VuIHRpbCBjYXRlZ29yeWxpc3Qgb2cgZmllbGRsaXN0IGhhbmRsaW5nZW5lLCBkZXJzb20gZGVubmUgcGFyYW1ldGVyZW4gZXIgc2F0dCB0aWwgZW4gaWtrZSAwIGhlbHRhbGxzdmVyZGkgdmlsIGFsbGUga2F0ZWdvcmllciAob2dzJmFyaW5nOyBkZSB1dGVuIHByb2R1a3RlcikgYmxpIHZpc3QuJzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ1NwZWNpZnkgdGhlIG9yZGVyIG9mIHNvcnRlZCBmaWVsZHMgaW4gc3VtbWFyeSB2aWV3LiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIEFzY2VuZGluZyBvcmRlcjwvbGk+DQogIDxsaT5kZXNjIC0tIERlc2NlbmRpbmcgb3JkZXI8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnQXBwbGljYWJsZSBpbiB0aGUgc3VtbWFyeSwgY2F0ZWdvcnlsaXN0IG9yIHNlYXJjaCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5wcm9kdWN0X25hbWU8L3N0cm9uZz48L2xpPg0KICA8bGk+aWQgLS0gVGhlIHByb2R1Y3QgaWQ8L2xpPg0KICA8bGk+d2VpZ2h0IC0tIFRoZSBwcm9kdWN0IHdlaWdodDwvbGk+DQogIDxsaT5wcmljZSAtLSBUaGUgcHJvZHVjdCBiYXNlIHByaWNlPC9saT4NCiAgPGxpPnN0YXR1cyAtLSBEcmFmdCBvciBwdWJsaXNoZWQ8L2xpPg0KICA8bGk+cmFuZG9tIC0tIERpc3BsYXkgaW4gcmFuZG9tIG9yZGVyIG9uIGVhY2ggcmVxdWVzdDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPmY6ZmllbGRuYW1lIC0tIEFsbG93cyBzb3J0aW5nIGJ5IHZhbHVlcyBvZiBjdXN0b20gZmllbGRzLjwvbGk+DQo8L3VsPg0KPHA+VGhlIGNhdGVnb3J5IGxpc3QgdmlldyBzdXBwb3J0cyBvbmx5IGEgZmV3IHNwZWNpZmljIHNvcnRpbmcgb3B0aW9uczo8L3A+DQo8dWw+DQogIDxsaT5pZCAtLSBUaGUgY2F0ZWdvcnkgaWQuPC9saT4NCiAgPGxpPjxzdHJvbmc+bmFtZTwvc3Ryb25nPiAtLSBUaGUgY2F0ZWdvcnkgbmFtZS48L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydHR5cGUnXSA9ICdEZW5uZSBwYXJhbWV0ZXJlbiBlciBrdW4gZ3lsZGlnIGZvciBzdGFuZGFyZCBzYW1lbW5kcmFnc3Zpc25pbmdlbiwgaHZvciBkZW5uZSBwYXJhbWV0ZXJlbiBiZW55dHRlcyB0aWwgJmFyaW5nOyBrb252ZXJ0ZXJlIHZlcmRpZW5lIHRpbCBlbiBhbm5lbiB0eXBlIHMmYXJpbmc7IGRlIGthbiBiZW55dHRlcyB0aWwgc29ydGVyaW5nLiBHeWxkaWdlIHZlcmRpZXIgZXIgU1RSSU5HLFNJR05FRCBvZyBVTlNJR05FRC4gT20gZGV0dGUgaWtrZSBlciBzYXR0IGhlciBzJmFyaW5nOyB2aWwgc3RhbmRhcmR0eXBlbiBTVFJJTkcgYmxpIGJlbnl0dGV0Lic7CiRsYW5nWydwYXJhbV9zdW1tYXJ5cGFnZSddID0gJ0Rlbm5lIHBhcmFtZXRlciBlciBrdW4gYWt0dWVsbCBmb3IgYWN0aW9uPWhpZXJhcmNoeSwgaHZvciBkZW4gdGlsbGF0ZXIgJmFyaW5nOyBzcGVzaWZpc2VyZSBlbiBzaWRlSUQgZWxsZXIgYWxpYXMgc29tIHZpbCBibGkgYmVueXR0ZXQgZm9yIGFsbGUgbGVua2VyIGZvciBzYW1tZW5kcmFnc3Zpc25pbmcnOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnRGVubmUgcGFyYW1ldGVyIHNwZXNpZmlzZXJlciBtYWxlbiBzb20gc2thbCBiZW55dHRlcyBmb3Igc2FtbWVuZHJhZ3Ntb2R1cyB2aXNuaW5nZW4uIE9tIGluZ2VuIHZlcmRpIGVyIG9wcGdpdHQgdmlsIG4mYXJpbmc7diZhZWxpZztyZW5kZSBzdGFuZGFyZCBtYWwgYXYgZGVubmUgdHlwZSBibGkgYmVueXR0ZXQuJzsKJGxhbmdbJ3BhcmVudCddID0gJ0ZvcmVsZHJlJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnUHJvZHVjdHMgbW9kdWxlbiBoYXIgYmxpdHQgaW5zdGFsbGVydCc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnUHJvZHVjdHMgbW9kdWxlbiBvZyBhbGxlIGFzc29zaWVydGUgZGF0YSBoYXIgYmxpdHQgZmplcm5ldCc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1ByZWZlcmFuc2VyJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJyZBcmluZzsgZmplcm5lIGRlbm5lIG1vZHVsZW4gdmlsIG9ncyZhcmluZzsgZmplcm5lIGFsbGUgYXNzb3NpZXJ0ZSBkYXRhLCBlciBkdSBzaWtrZXIgcCZhcmluZzsgYXQgZHUgdmlsIGZvcnRzZXR0ZT8nOwokbGFuZ1sncHJpY2UnXSA9ICdQcmlzJzsKJGxhbmdbJ3ByaWNlX2FkanVzdG1lbnQnXSA9ICdQcmlzanVzdGVyaW5nJzsKJGxhbmdbJ3ByZWZpeF9jb3B5b2YnXSA9ICdLb3BpIGF2ICc7CiRsYW5nWydwcmV2cGFnZSddID0gJzwgJzsKJGxhbmdbJ3Byb2R1Y3QnXSA9ICdQcm9kdWt0JzsKJGxhbmdbJ3Byb2R1Y3RuYW1lJ10gPSAnUHJvZHVrdG5hdm4nOwokbGFuZ1sncHJvZHVjdHMnXSA9ICdQcm9kdWt0IGFkbWluaXN0cmFzam9uJzsKJGxhbmdbJ3Byb2R1Y3RfZGV0YWlsX3NldHRpbmdzJ10gPSAnUHJvZHVrdCBkZXRhbGppbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ3Byb2R1Y3RfZWRpdGluZ19zZXR0aW5ncyddID0gJ1Byb2R1a3RyZWRpZ2VyaW5ncyBpbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ3Byb2R1Y3Rfc3VtbWFyeV9zZXR0aW5ncyddID0gJ1Byb2R1a3RzYW1tZW5kcmFnIGlubnN0aWxsaW5nZXInOwokbGFuZ1sncHJvZHVjdF9oaWVyYXJjaHknXSA9ICdQcm9kdWt0IGhpZXJhcmtpJzsKJGxhbmdbJ3Byb2R1Y3RfaW5mbyddID0gJ1Byb2R1a3RpbmZvcm1hc2pvbic7CiRsYW5nWydwcm9kdWN0X21hbmFnZXInXSA9ICdQcm9kdWt0IGJlaGFuZGxlcic7CiRsYW5nWydwcm9ncmVzcyddID0gJ0ZyZW1kcmlmdCc7CiRsYW5nWydwcm9tcHQnXSA9ICdFdGlrZXR0IChzcCZvc2xhc2g7cnNtJmFyaW5nO2wvcHJvbXB0KSc7CiRsYW5nWydwcm9tcHRfYWRkX2F0dHJpYnNldCddID0gJ0xlZ2cgdGlsL3JlZGlnZXIgYXRyaWJ1dHRzZXR0JzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ZpbGV0eXBlcyddID0gJ1RpbGxhdCBvcHBsYXN0aW5nIGF2IGZpbGUgbWVkIGRpc3NlIGZpbGVuZGVsc2VyIChmb3IgZmlsIHR5cGUgZmVsdGVyKSc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZXR5cGVzJ10gPSAnVGlsbGF0IG9wcGxhc3RpbmcgYXYgYmlsZGVyIG1lZCBkaXNzZSBmaWxlbmRlbHNlciAoZm9yIGJpbGRlIHR5cGUgZmVsdGVyKSc7CiRsYW5nWydwcm9tcHRfYXR0cmlidGVtcGxhdGUnXSA9ICdNYWwgZm9yIHZpc25pbmcgYXYgcHJvZHVrdGV0cyBhdHRyaWJ1dHR2ZXJkaWVyIGkgbmVkdHJla2snOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWwnXSA9ICdPcHByZXR0IG1pbmlhdHlyYmlsZGVyIGF1dG9tYXRpc2sgZnJhIGJpbGRlcic7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbF9zaXplJ10gPSAnTWFrc2ltdW0gc3Qmb3NsYXNoO3JyZWxzZSAoc3Qmb3NsYXNoO3JzdGUgZGltZW5zam9uKSBmb3IgbWluaWF0eXJiaWxkZXQuJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZyddID0gJ0xhZyBmb3JoJmFyaW5nO25kc3Zpc25pbmdzYmlsZGVyIGF1dG9tYXRpc2sgYXYgYmlsZGVuZSc7CiRsYW5nWydwcm9tcHRfYXV0b3ByZXZpZXdpbWdfc2l6ZSddID0gJ01ha3NpbXVtIHN0Jm9zbGFzaDtycmVsc2UgKHN0Jm9zbGFzaDtyc3RlIGRpbWVuc2pvbikgZm9yIGZvcmgmYXJpbmc7bmRzdmlzbmluZ3NiaWxkZXQuJzsKJGxhbmdbJ3Byb21wdF9hdXRvd2F0ZXJtYXJrJ10gPSAnUGxhc3NlciB2YW5ubWVya2VyIHAmYXJpbmc7IGJpbGRlciBhdXRvbWF0aXNrJzsKJGxhbmdbJ3Byb21wdF9hcHBsaWNhYmxlJ10gPSAnU2wmYXJpbmc7IHAmYXJpbmc7IHNvbSBzdGFuZGFyZCBmb3IgYWxsZSBueWUgcHJvZHVrdGVyJzsKJGxhbmdbJ3Byb21wdF9iYXRjaHNpemUnXSA9ICdCYXRjaCBzdCZvc2xhc2g7cnJlbHNlJzsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZSddID0gJ0hhbmRsZWt1cnYoY2FydCkgbW9kdWwnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ0hhbmRsZWt1cnYoY2FydCkgbW9kdWwgcGFyYW1ldGVyZSc7CiRsYW5nWydwcm9tcHRfY2xlYXJhdHRyaWJzJ10gPSAnUmVucyBhdHRyaWJ1dHRlciB2ZWQgb3BwZGF0ZXJpbmcnOwokbGFuZ1sncHJvbXB0X2NsZWFyY2F0ZWdvcmllcyddID0gJ1JlbnMga2F0ZWdvcmllciB2ZWQgb3BwZGF0ZXJpbmcnOwokbGFuZ1sncHJvbXB0X2NsZWFyZmllbGRzJ10gPSAnUmVucyBmZWx0ZXIgdmVkIG9wcGRhdGVyaW5nJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVjYXRlZ29yaWVzJ10gPSAnT3BwcmV0dCBrYXRlZ29yaWVyJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVmaWVsZHMnXSA9ICdPcHByZXR0IHByb2R1a3RrYXRlZ29yaWVyPyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlaGllcmFyY2h5J10gPSAnT3BwcmV0dCBwcm9kdWt0a2F0ZWdvcmknOwokbGFuZ1sncHJvbXB0X2NzdmZpbGUnXSA9ICdMYXN0IG9wcCBDU1YgZmlsJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeWNvZGUnXSA9ICdWYWx1dGFrb2RlJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeXN5bWJvbCddID0gJ1ZhbHV0YXN5bWJvbCc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF9zdGF0dXMnXSA9ICdTb20gc3RhbmRhcmQgaGFyIGFsbGUgbnllIHByb2R1a3RlciBkZW5uZSBzdGF0dXNlbic7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF90YXhhYmxlJ10gPSAnU29tIHN0YW5kYXJkIGVyIGFsbGUgbnllIHByb2R1a3RlciBhdmdpZnRzcGxpa3RpZ2UnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gJ1NsZXR0IGFsbGUgZmlsZXIgdGlsa255dHRldCBwcm9kdWt0ZXQgbiZhcmluZztyIHByb2R1a3RldCBzbGV0dGVzPyc7CiRsYW5nWydwcm9tcHRfZGVsaW1pdGVyJ10gPSAnRmVsdCBza2lsbGV0ZWduJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnU3RhbmRhcmQgZGV0YWxqc2lkZSc7CiRsYW5nWydwcm9tcHRfZGV0YWlsc2ZvciddID0gJ0RldGFsamVyIGZvICVzJzsKJGxhbmdbJ3Byb21wdF9kdXBsaWNhdGVwcm9kdWN0cyddID0gJ0h2b3JkYW4gc2thbCBkdXBsaWthdGUgcHJvZHVrdGVyIGJlaGFuZGxlcz8nOwokbGFuZ1sncHJvbXB0X2ZhbHNlJ10gPSAnVXNhbm4nOwokbGFuZ1sncHJvbXB0X2hhbmRsZWltYWdlcyddID0gJ0JlaGFuZGxlIGJpbGRlcj8nOwokbGFuZ1sncHJvbXB0X2ltYWdlcGF0aCddID0gJ0JpbGRlc3RpJzsKJGxhbmdbJ3Byb21wdF9sZW5ndGh1bml0cyddID0gJ0xlbmdkZWVuaGV0ZXInOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX2JlaGF2aW9yJ10gPSAnSHZpbGtlbiBoYW5kbGluZyBza2FsIHV0ZiZvc2xhc2g7cmVzIG9tIGV0IHByb2R1a3QgaWtrZSBrYW4gdmlzZXM/JzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF80MDQnXSA9ICdHZW5lcmVyIGVuIDQwNCBmZWlsJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF8zMDEnXSA9ICdHZW5lcmVyIGVuIDMwMSBvbWRpcmlnZXJpbmcnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX2Vycm9ybXNnJ10gPSAnVmlzIGVuIGZlaWxtZWxkaW5nJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9tc2cnXSA9ICdGZWlsbWVsZGluZyBmb3IgbiZhcmluZztyIGV0IHByb2R1a3QgaWtrZSBibGlyIGZ1bm5ldCc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfcGFnZSddID0gJ1NpZGUgJmFyaW5nOyBvbWRpcmlnZXJlIHRpbCBwZXJtYW5lbnQ/JzsKJGxhbmdbJ3Byb21wdF9oaWVycGFnZSddID0gJ1N0YW5kYXJkc2lkZSBmb3IgaGllcmFya2l2aXNuaW5nJzsKJGxhbmdbJ3Byb21wdF9wcmV0dHloaWVydXJscyddID0gJ0Jlbnl0dCB2YWtyZSBVUkxlciBmb3IgaGllcmFya2l2aXNuaW5nZW5lJzsKJGxhbmdbJ3Byb21wdF9wcm9kX2RldGFpbHBhZ2UnXSA9ICdTdGFuZGFyZHNpZGUgZm9yIFByb2R1Y3QgZGV0YWxqdmlzbmluZyc7CiRsYW5nWydwcm9tcHRfcHJvZHVjdHNfbWF0Y2hpbmcnXSA9ICdQcm9kdWt0ZXIgc29tIHBhc3NlciAlcyc7CiRsYW5nWydwcm9tcHRfc2t1X3JlcXVpcmVkJ10gPSAnVi5uci4oU0tVKSBlciBwJmFyaW5nO2tyZXZkIGZvciBhbGxlIHByb2R1a3RlciBvZyBhdHRyaWJ1dHRlcic7CiRsYW5nWydwcm9tcHRfc3VtbWFyeV9uZXdkZWZhdWx0J10gPSAnQmVueXR0IG55IHNhbWVuZHJhZ3N2aXNuaW5nJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5cGFnZWxpbWl0J10gPSAnU3RhbmRhcmQgc2lkZWdyZW5zZSBpIHNhbW1lbmRyYWdzbW9kdXMnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdTdGFuZGFyZCBzb3J0ZXJpbmcgaSBzYW1tZW5kcmFnc21vZHVzJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ1N0YW5kYXJkIHNvcnRlcmluZ3NmZWx0IGkgc2FtbWVuZHJhZ3Ntb2R1cyc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdNYWxraWxkZSc7CiRsYW5nWydwcm9tcHRfdHJ1ZSddID0gJ1Nhbm4nOwokbGFuZ1sncHJvbXB0X3VybHByZWZpeCddID0gJ1ByZWZpa3MgdGlsIGJydWsgcCZhcmluZzsgYWxsZSBuZXR0YWRyZXNzZXIgbSZhcmluZztscmV0dGV0IHRpbCBkZW5uZSBkZW5uZSBtb2R1bGVuJzsKJGxhbmdbJ3Byb21wdF91c2VfZGV0YWlscGFnZV9mb3Jfc2VhcmNoJ10gPSAnQmVueXR0IGRlbm5lIHNpZGVuIGZvciBzJm9zbGFzaDtrZXJlc3VsdGF0ZXIgb2dzJmFyaW5nOyA8ZW0+KG92ZXJzdHlyZXIgc2VhcmNocmVzdWx0cyBzaWRlcGFyYW1ldGVyZW4gaSBzJm9zbGFzaDtrZW1vZHVsZW4pPC9lbT4nOwokbGFuZ1sncHJvbXB0X3VzZWhpZXJwYXRodXJscyddID0gJ0Jlbnl0dCBoaWVyYWtpc3RpIGkgUHJvZHVjdCBkZXRhbGogVVJMZXInOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnVmVrdGVuaGV0ZXInOwokbGFuZ1sncHVibGljJ10gPSAnRXIgZGV0dGUgZXQgb2ZmZW50bGlnIGZlbHQ/JzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ1B1Ymxpc2VydCc7CiRsYW5nWydxdWFudGl0eV9vbl9oYW5kJ10gPSAnTWVuZ2RlIHRpbGdqZW5nZWxpZyc7CiRsYW5nWydyYW5kb20nXSA9ICdUaWxmZWxkaWcnOwokbGFuZ1sncmVvcmRlcl9oaWVyYXJjaHknXSA9ICdPbW9yZ2FuaXNlciBoaWVyYXJraSc7CiRsYW5nWydyZXNldCddID0gJ051bGxzdGlsbCc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1NldHQgdGlsYmFrZSB0aWwgZmFicmlra2lubnN0aWxsaW5nZXInOwokbGFuZ1sncmV0dXJuJ10gPSAnVGlsYmFrZSc7CiRsYW5nWydyZXR1cm5fdG9fdG9wJ10gPSAnUmV0dXJuZXIgdGlsIHRvcHBlbiBhdiB2aXNuaW5nZW4nOwokbGFuZ1sncm9vdCddID0gJ1JvdGEnOwokbGFuZ1snc2VhcmNoX2Rlc2NyaXB0aW9uJ10gPSAnUyZvc2xhc2g7a2VlZ2Vuc2thcCBiZXNrcml2ZWxzZSc7CiRsYW5nWydzZWFyY2hfZXhwciddID0gJ1NrYWwgc3Amb3NsYXNoO3JyaW5nZW4gcGFzc2UgYWxsZSBlbGxlciBub2VuIGF2IGtyaXRlcmllbmUgbmVkZW5mb3I/JzsKJGxhbmdbJ3NlYXJjaF9uYW1lJ10gPSAnUyZvc2xhc2g7a2VlZ2Vuc2thcHNuYXZuJzsKJGxhbmdbJ3NlYXJjaF9wcmljZSddID0gJ1ByaXNpbnRlcnZhbGwnOwokbGFuZ1snc2VhcmNodGVtcGxhdGVfYWRkZWRpdCddID0gJ0xlZ2cgdGlsL3JlZGlnZXIgUyZvc2xhc2g7a2Vza2plbWFtYWwnOwokbGFuZ1snc2VhcmNodGVtcGxhdGVzJ10gPSAnUyZvc2xhc2g7a2UgbWFsZXInOwokbGFuZ1snc2VsZWN0X2FsbCddID0gJ1ZlbGcgYWxsZSc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnVmVsZyBlbic7CiRsYW5nWydzZXRkcmFmdCddID0gJ1NldHQgc29tIGtsYWRkJzsKJGxhbmdbJ3NldHB1Ymxpc2hlZCddID0gJ1NldHQgc29tIHB1Ymxpc2VydCc7CiRsYW5nWydza3UnXSA9ICdWLm5yLihTS1UpJzsKJGxhbmdbJ3NvcnRfYnknXSA9ICdTb3J0ZXIgZXR0ZXInOwokbGFuZ1snc29ydF9vcmRlciddID0gJ1NvcnRlcmluZ3NyZWtrZWYmb3NsYXNoO2xnZSc7CiRsYW5nWydzb3VyY2UnXSA9ICdLaWxkZSc7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF0dXMgJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1V0ZiZvc2xhc2g7cic7CiRsYW5nWydzdWJzY3JpcHRpb24nXSA9ICdBYm9ubmVtZW50JzsKJGxhbmdbJ3N1YnNjcl9leHBpcnknXSA9ICdVdGwmb3NsYXNoO3Blcic7CiRsYW5nWydzdWJzY3JfZXhwaXJ5MiddID0gJ1V0bCZvc2xhc2g7cGVyJzsKJGxhbmdbJ3N1YnNjcl9tb250aGx5J10gPSAnTSZhcmluZztuZWRsaWcnOwokbGFuZ1snc3Vic2NyX2RlbHBlcmlvZCddID0gJ0RldmVyaW5nc2ZyZWt2ZW5zJzsKJGxhbmdbJ3N1YnNjcl9kZWxwZXJpb2QyJ10gPSAnTGV2ZXJ0JzsKJGxhbmdbJ3N1YnNjcl9wYXlwZXJpb2QnXSA9ICdCZXRhbGluZ3NmcmVrdmVucyc7CiRsYW5nWydzdWJzY3JfcGF5cGVyaW9kMiddID0gJ0JldGFsdCc7CiRsYW5nWydzdWJzY3JfcXVhcnRlcmx5J10gPSAnS3ZhcnRhbHN2aXMnOwokbGFuZ1snc3Vic2NyX3NlbWlhbnVhbGx5J10gPSAnSGFsdiZhcmluZztybGlnJzsKJGxhbmdbJ3N1YnNjcl95ZWFybHknXSA9ICcmQXJpbmc7cmxpZyc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVzJ10gPSAnU2FtbWVuZHJhZ3NtYWwnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbC9yZWRpZ2VyIHNhbW1lbmRyYWdzbWFsJzsKJGxhbmdbJ3RheGFibGUnXSA9ICdLYW4gaWxlZ2dlcyBhdmdpZnQnOwokbGFuZ1sndGVzdCddID0gJ1Rlc3QgJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnVGVrc3RvbXImYXJpbmc7ZGUnOwokbGFuZ1sndGV4dGJveCddID0gJ1Rla3N0IGlubnNrcml2aW5nJzsKJGxhbmdbJ3RpdGxlX2FkanVzdG1lbnQnXSA9ICdTa3JpdiBpbm4gZW4ganVzdGVyaW5nIGZyYSBncnVubnByaXNlbiBmb3IgcHJvZHVrdGFsdGVybmF0aXZldC4gU3ludGFrcyBlciBbKy1dIy4jIyc7CiRsYW5nWyd0aXRsZV9hdHRyaWJ1dGVfdGV4dCddID0gJ1Nrcml2IGlubiBlbiBrb3J0IGJlc2tyaXZlbHNlIGF2IGRldHRlIHByb2R1a3QgYWx0ZXJuYXRpdmV0JzsKJGxhbmdbJ3RpdGxlX2J5aGllcmFyY2h5X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkIEhpZXJhcmtpIHJhcHBvcnRtYWwnOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkIG55IGthdGVnb3JpbGlzdGVtYWwnOwokbGFuZ1sndGl0bGVfZGV0YWlsX2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkIG55IGRldGFsam1hbCc7CiRsYW5nWyd0aXRsZV9xb2gnXSA9ICdFdmVudHVlbHQgYW5naSBldCBrdmFudHVtIHRpbGdqZW5nZWxpZyBmb3IgZGV0dGUgcHJvZHVrdGFsdGVybmF0aXZldC4gTWVyayAtICBGb3IgYXQgbWVuZ2RlIGp1c3RlcmluZ2VyIHNrYWwgdiZhZWxpZztyZSBhdXRvbWF0aXNrIG0mYXJpbmc7IFNLVSBmZWx0ZXQgbSZhcmluZzsgb2dzJmFyaW5nOyBmeWxsZXMgdXQnOwokbGFuZ1sndGl0bGVfc2VhcmNoX2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkIG55IHMmb3NsYXNoO2tlbWFsJzsKJGxhbmdbJ3RpdGxlX3NrdSddID0gJ0Rlbm5lIFNLVSBicnVrZXMgZm9yICZhcmluZzsgYWRtaW5pc3RyZXJlIGt2YW50aXRldCB0aWxnamVuZ2VsaWcsIG9nIGthbXBhbmplciBmb3IgcHJvZHVrdCBhbHRlcm5hdGl2ZXIuJzsKJGxhbmdbJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhcmQgbnkgc2FtbWVuZHJhZ3NtYWwnOwokbGFuZ1sndHlwZSddID0gJ1R5cGUgJzsKJGxhbmdbJ3VwJ10gPSAnRmx5dHQgb3BwJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ09wcGRhdGVyJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1ZlbGcgZW4gZmlsICZhcmluZzsgbGFzdGUgb3BwJzsKJGxhbmdbJ3VybF9hbGlhcyddID0gJ1VSTCBhbGlhcyc7CiRsYW5nWyd2YWxpZCddID0gJ0d5bGRpZyc7CiRsYW5nWyd2YWx1ZSddID0gJ1ZlcmRpJzsKJGxhbmdbJ3ZhbHVlcyddID0gJ1ZlcmRpZXInOwokbGFuZ1sndmlldyddID0gJ1Zpcyc7CiRsYW5nWyd2aWV3YWJsZV9maWVsZHMnXSA9ICdWZWxnIGJydWtlcmRlZmluZXJ0ZSBmZWx0ZXIgc29tIHNrYWwgdmlzZXMgaSB0YWJlbGxlbic7CiRsYW5nWyd3YXJuX2VkaXRfcHJvZHVjdF9vcHRpb25zJ10gPSAnSHZlcnQgcHJvZHVrdCB2YWxnIG0mYXJpbmc7IGhhIGVuIHVuaWsgc3RyZW5nLiBPbSBTS1UvdmFyZW51bW1lciBlciBwJmFyaW5nO2tyZXZkIHMmYXJpbmc7IG0mYXJpbmc7IGRldCB2JmFlbGlnO3JlIHVuaWt0IHAmYXJpbmc7IHR2ZXJzIGF2IGhlbGUgc3lzdGVtZXQuJzsKJGxhbmdbJ3dhdGVybWFya19sb2NhdGlvbiddID0gJ1Zhbm5tZXJrZSBsb2thc2pvbic7CiRsYW5nWyd3ZWlnaHQnXSA9ICdWZWt0JzsKJGxhbmdbJ3dpdGhfc2VsZWN0ZWQnXSA9ICdNZWQgdmFsZ3RlJzsKJGxhbmdbJ3llcyddID0gJ0phJzsKJGxhbmdbJ3FjYSddID0gJ1AwLTUzNjg0OTExNS0xMzA3OTgzNDk1MjEwJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTM3NTE2OTg2LjEzNzQ0MjM0NDYuMTM3NDc3MTQ3MS4xMzc0Nzc5MjgyLjEyJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTM3NDQyMzQ0Ni4xLjEudXRtY3NyPShkaXJlY3QpfHV0bWNjbj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfaGVpZ2h0J10gPSAnSGcnOwokbGFuZ1snYWJicl9sZW5ndGgnXSA9ICdMJzsKJGxhbmdbJ2FiYnJfd2lkdGgnXSA9ICdCcic7CiRsYW5nWydhZGQnXSA9ICdWb2VnIHRvZSc7CiRsYW5nWydhZGRjYXRlZ29yeSddID0gJ1ZvZWcgY2F0ZWdvcmllIHRvZSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ1ZvZWcgdmVsZCB0b2UnOwokbGFuZ1snYWRkb3B0aW9uJ10gPSAnVm9lZyBvcHRpZSB0b2UnOwokbGFuZ1snYWRkcHJvZHVjdCddID0gJ1ZvZWcgcHJvZHVjdCB0b2UnOwokbGFuZ1snYWRkX2F0dHJpYl9zZXQnXSA9ICdWb2VnIGF0dHJpYnV1dCB0b2UnOwokbGFuZ1snYWRkX2NhdGVnb3J5X2ZpZWxkJ10gPSAnS29wcGVsIHZlbGQgbWV0IGNhdGVnb3JpZTogIiVzIic7CiRsYW5nWydhZGRfaGllcmFyY2h5X2l0ZW0nXSA9ICdWb2VnIGVlbiBoaWVyYXJjaGllIHN0YXAgdG9lJzsKJGxhbmdbJ2FkZF9vcHRpb24nXSA9ICdWb2VnIGF0dHJpYnV1dG9wdGllIHRvZSc7CiRsYW5nWydhZGp1c3RhYmxlJ10gPSAnQWFucGFzYmFhcic7CiRsYW5nWydhZG1pbl9vbmx5J10gPSAnS2FuIGFsbGVlbiBkZSBhZG1pbmlzdHJhdG9yIGRpdCBhdHRyaWJ1dXQgemllbj8nOwokbGFuZ1snYWR2YW5jZWQnXSA9ICdHZWF2YW5jZWVyZCc7CiRsYW5nWydhbGlnbl9sYyddID0gJ09uZGVyIE1pZGRlbic7CiRsYW5nWydhbGlnbl9sbCddID0gJ09uZGVyIExpbmtzJzsKJGxhbmdbJ2FsaWduX2xyJ10gPSAnT25kZXIgUmVjaHRzJzsKJGxhbmdbJ2FsaWduX21jJ10gPSAnTWlkZGVuJzsKJGxhbmdbJ2FsaWduX21sJ10gPSAnTWlkZGVuIExpbmtzJzsKJGxhbmdbJ2FsaWduX21yJ10gPSAnTWlkZGVuIFJlY2h0cyc7CiRsYW5nWydhbGlnbl91YyddID0gJ0JvdmVuIE1pZGRlbic7CiRsYW5nWydhbGlnbl91bCddID0gJ0JvdmVuIExpbmtzJzsKJGxhbmdbJ2FsaWduX3VyJ10gPSAnQm92ZW4gUmVjaHRzJzsKJGxhbmdbJ2FsbCddID0gJ0FsbGUnOwokbGFuZ1snYWxsY2F0ZWdvcmllcyddID0gJ0FsbGUgY2F0ZWdvcmllw6tuJzsKJGxhbmdbJ2FueSddID0gJ0VuaWdlJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdXZWV0IHUgZGl0IHpla2VyPyc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZXByb2R1Y3QnXSA9ICdXZWV0IHUgemVrZXIgZGF0IHUgZGl0IHByb2R1Y3QgZW4gYWxsZSBiaWpiZWhvcmVuZGUgaW5mb3JtYXRpZSB3aWx0IHZlcndpamRlcmVuPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdPcGxvcGVuZCc7CiRsYW5nWydhdHRyaWJ1dGVfbmFtZSddID0gJ0F0dHJpYnV1dCBOYWFtJzsKJGxhbmdbJ2F0dHJpYl90ZXh0J10gPSAnVGVrc3QnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzY2gnOwokbGFuZ1snYnRuX3NldGVjb21oYW5kbGVycyddID0gJ0UtQ29tbWVyY2UgR2ViZXVydGVuaXNzZW4gaW5zdGVsbGVuJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVzJ10gPSAnSGllcmFyY2hpZSBTamFibG9uZW4nOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnSGllcmFyY2hpZSBTamFibG9vbiB0b2V2b2VnZW4vYWFucGFzc2VuJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0FubnVsZXJlbic7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnQ2F0ZWdvcmllw6tuJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnQ2F0ZWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5ZXhpc3RzJ10gPSAnRXIgYmVzdGFhdCBhbCBlZW4gY2F0ZWdvcmllIG1ldCBkZXplIG5hYW0nOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVzJ10gPSAnQ2F0ZWdvcmllIExpanN0IFNqYWJsb25lbic7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQ2F0ZWdvcmllIExpanN0IFNqYWJsb29uIHRvZXZvZWdlbi9hYW5wYXNzZW4nOwokbGFuZ1snY2RfYXV0b2NvbXBsZXRlJ10gPSAnVHlwZSBkZSBlZXJzdGUgbGV0dGVycyB2YW4gZGUgYmVkcmlqZnNuYWFtJzsKJGxhbmdbJ2NlbnRpbWV0ZXJzJ10gPSAnQ2VudGltZXRlcic7CiRsYW5nWydjaGVja2JveCddID0gJ1Zpbmt2YWtqZSc7CiRsYW5nWydjb21wYW55ZGlyX3JlZmVyZW5jZSddID0gJ0NvbXBhbnkgRGlyZWN0b3J5IEl0ZW0gSWQnOwokbGFuZ1snY29uZmlybV9kZWxldGVhbGxvcHRpb25zJ10gPSAnV2VldCB1IHpla2VyIGRhdCB1IGFsbGUgb3B0aWVzIHZvb3IgZGl0IHByb2R1Y3Qgd2lsdCB2ZXJ3aWpkZXJlbj8nOwokbGFuZ1snY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnXSA9ICdCZW50IHUgemVrZXIgZGF0IHUgZGV6ZSBub2RlIHdpbHQgdmVyd2lqZGVyZW4/ICBFbGsgcHJvZHVjdCB3YXQgZ2VicnVpayBtYWFrdCB2YW4gZGV6ZSBub2RlIHphbCBuaWV0IG1lZXIgb25kZXIgZWVuIGhpw6tyYXJjaGllIHZhbGxlbi4nOwokbGFuZ1snY29uZmlybV9pbXBvcnQnXSA9ICdCZW50IHUgemVrZXIgZGF0IHUgZGl0IHdpbHQgdWl0dm9lcmVuP1xuXG5WZXJrZWVyZGUgaW5zdGVsbGluZ2VuIG9mIGVlbiB2ZXJrZWVyZCBjb25maWd1cmF0aWViZXN0YW5kIGthbiBoZXQgaGVsZSBzeXN0ZWVtIGluIGRlIHdhciBicmVuZ2VuLiBXYXQgcmVzdWx0ZWVydCBpbiBlZW4gbmlldCB3ZXJrZW5kZSBwcm9kdWN0ZW4gbW9kdWxlLic7CiRsYW5nWydjb3B5J10gPSAnS29waWUnOwokbGFuZ1snY29weV9hdHRyaWJ1dGUnXSA9ICdLb3BpZWVyIFByb2R1Y3QgT3B0aWVzJzsKJGxhbmdbJ2NvcHlfYXR0cmliX3NldHMnXSA9ICdLb3BpZWVyIGF0dHJpYnV0ZW5zZXQnOwokbGFuZ1snY29weV9jYXRlZ29yeSddID0gJ0NhdGVnb3JpZSBrb3BpZXJlbic7CiRsYW5nWydjb3B5X29wdGlvbnNfZnJvbSddID0gJ0tvcGllZXIgYWxsZSBvcHRpZXMgdmFuJzsKJGxhbmdbJ2NvcHlfcHJvZHVjdCddID0gJ0tvcGllZXIgZGl0IGl0ZW0nOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdBYW5nZW1hYWt0IG9wJzsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICdIdWlkaWdlIHdhYXJkZSc7CiRsYW5nWydkYXRhJ10gPSAnR2VnZXZlbnMnOwokbGFuZ1snZGVmYXVsdCddID0gJ1N0YW5kYWFyZCc7CiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAnU3RhbmRhYXJkIFNqYWJsb25lbic7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlX25vdGljZSddID0gJzxzdHJvbmc+T3BtZXJraW5nOjwvc3Ryb25nPiBEZSBpbmhvdWQgdmFuIGRlemUgdGVrc3RibG9ra2VuIHdvcmRlbiBnZWJydWlrdCBvbSBkZSBzdGFuZGFhcmQgd2FhcmRlbiB2YW4gZWVuIHRlbXBsYXRlIG9wIHRlIHNsYWFuLiBBbHMgdSBvcCBkZSBrbm9wICJWb2VnIHRlbXBsYXRlIHRvZSIga2xpa3QgZGFuIHp1bGxlbiBkZXplIHN0YW5kYWFyZCB3YWFyZGVuIGluIGhldCBuaWV1d2UgdGVtcGxhdGUgd29yZGVuIG9wZ2Vub21lbi4nOwokbGFuZ1snZGVsZXRlJ10gPSAnVmVyd2lqZGVyZW4nOwokbGFuZ1snZGVsZXRlX2FsbCddID0gJ1ZlcndpamRlciBhbGxlcyc7CiRsYW5nWydkZWxldGVfYXR0cmlidXRlJ10gPSAnVmVyd2lqZGVyIEF0dHJpYnV1dCc7CiRsYW5nWydkZWxldGVfaGllcmFyY2h5X2l0ZW0nXSA9ICdWZXJ3aWpkZXIgSGllcmFyY2hpZSBJdGVtJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdBZmxvcGVuZCc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ09tc2NocmlqdmluZyc7CiRsYW5nWydkZXN0aW5hdGlvbiddID0gJ0Jlc3RlbW1pbmcnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAnRGV0YWlsIFNqYWJsb25lbic7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnVG9ldm9lZ2VuL3dpanppZ2VuIERldGFpbCBTamFibG9vbic7CiRsYW5nWydkaW1lbnNpb25zJ10gPSAnRGltZW5zaWUnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdVaXRnZXNjaGFrZWxkJzsKJGxhbmdbJ2Rvd24nXSA9ICdOYWFyIGJlbmVkZW4nOwokbGFuZ1snZHJhZnQnXSA9ICdDb25jZXB0JzsKJGxhbmdbJ2Ryb3Bkb3duX29wdGlvbnMnXSA9ICdEcm9wZG93biBvcHRpZXMgPGVtPih3b3JkdCBhbGxlZW4gdG9lZ2VwYXN0IG9wIHZlbGRlbik8L2VtPjxiciAvPjxiciAvPjxlbT4oMSBpbnZvZXIgcGVyIHJlZ2VsKTwvZW0+JzsKJGxhbmdbJ2VkaXQnXSA9ICdBYW5wYXNzZW4nOwokbGFuZ1snZWRpdF9hdHRyaWJzZXQnXSA9ICdXaWp6aWcgYXR0cmlidXV0JzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0cyddID0gJ0F0dHJpYnV1dCBHcm9lcGVuIGFhbnBhc3Nlbic7CiRsYW5nWydlZGl0X2F0dHJpYnNldHNfZm9yJ10gPSAnQXR0cmlidXV0IEdyb2VwIGFhbnBhc2VuIHZvb3InOwokbGFuZ1snZWRpdF9hdHRyaWJ1dGVzJ10gPSAnQXR0cmlidXV0IGFhbnBhc3Nlbic7CiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAnQ2F0ZWdvcmllIGFhbnBhc3Nlbic7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ0NhdGVnb3JpZSBWZWxkZW4gYWFucGFzc2VuJzsKJGxhbmdbJ2VkaXRfaGllcmFyY2h5X2l0ZW0nXSA9ICdXaWp6aWcgSGllcmFyY2hpZSBJdGVtJzsKJGxhbmdbJ2VkaXRfbm90ZXMnXSA9ICdXaWp6aWcgT3BtZXJraW5nZW4nOwokbGFuZ1snZWRpdF9vcHRpb25zJ10gPSAnV2lqemlnIFByb2R1Y3QgT3B0aWVzJzsKJGxhbmdbJ2VkaXRfb3B0aW9uX25vdGVzJ10gPSAnV2lqemlnIE9wdGllIE9wbWVya2luZ2VuJzsKJGxhbmdbJ2VkaXRfcHJvZHVjdCddID0gJ1dpanppZyBJdGVtJzsKJGxhbmdbJ2Vyb3JyX3FvaF9uZWdhdGl2ZV9hdHJvdyddID0gJ1Zvb3JyYWFkIGhvZXZlZWxoZWlkIGthbiBuaWV0IG5lZ2V0aWVmIHppam4gYmlqICVkJzsKJGxhbmdbJ2Vycm9ycyddID0gJ0ZvdXRlbic7CiRsYW5nWydlcnJvcl9hdHRyaWJzZXRfZXhpc3RzJ10gPSAnRXIgYmVzdGFhdCBhbCBlZW4gYXR0cmlidXV0IG1ldCBkZXplIG5hYW0nOwokbGFuZ1snZXJyb3JfZGJlcnJvciddID0gJ0RhdGFiYXNlIGZvdXQnOwokbGFuZ1snZXJyb3JfZGVsZXRlX2xhc3Ryb3cnXSA9ICdEZSBsYWF0c3RlIHJlZ2VsIGthbiB6byBuaWV0IHdvcmRlbiB2ZXJ3aWpkZXJkJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZV9za3UnXSA9ICdEdWJiZWxlIFVpdGxldmVyZWVuaGVpZCB3YWFyZGUgZ2V2b25kZW4nOwokbGFuZ1snZXJyb3JfZmllbGR2YWx1ZV9lbXB0eSddID0gJ0RlIFZlbGQgV2FhcmRlIG1hZyBuaWV0IGxlZWcgemlqbic7CiRsYW5nWydlcnJvcl9maWxlZm9ybWF0J10gPSAnQmVzdGFuZCBGb3JtYXQgcHJvYmxlZW0nOwokbGFuZ1snZXJyb3JfZmlsZW5vdGZvdW5kJ10gPSAnQmVzdGFuZCBuaWV0IGdldm9uZGVuJzsKJGxhbmdbJ2Vycm9yX2ZpbGVvcGVuJ10gPSAnUHJvYmxlZW0gbWV0IG9wZW5lbiB2YW4gYmVzdGFuZCAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnT25nZWxkaWdlIE91ZGVyIChlZW4gaGllcmFyY2hpZSBub2RlIGthbiBuaWV0IHppam4gZWlnZW4gb3VkZXIgemlqbiknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9uYW1lJ10gPSAnRGUgYWFuZ2VwYXN0ZSB2ZWxkIHdhYXJkZSBkaWUgdSBoZWVmdCBpbmdldm9lcmQga2xvcHQgbmlldCAoZXIgc3RhYW4gb29rIG5pZXQgYWxmbnVtZXJpZWtlIGthcmFrdGVycyBpbiknOwokbGFuZ1snZXJyb3JfaW52YWxpZF92YWx1ZSddID0gJ09uZ2VsZGlnZSB3YWFyZGUgb3BnZWdldmVuJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0VlbiBiZW5vZGlnZGUgcGFyYW1ldGVyIG1pc3Qgb2YgaXMgbmlldCBnZWxkaWcnOwokbGFuZ1snZXJyb3JfbmFtZXVzZWQnXSA9ICdFZW4gaXRlbSBtZXQgZGV6ZSBuYWFtIGlzIGFsIGluIGdlYnJ1aWsnOwokbGFuZ1snZXJyb3JfbmVlZHR3b3Jvd3MnXSA9ICdNaW5pbWFhbCB0d2VlIHJlZ2VscyBpcyB2ZXJwbGljaHQnOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdTZWxlY3RlZXIgYS51LmIuIGVlbiB2ZWxkdHlwZSc7CiRsYW5nWydlcnJvcl9ub25hbWUnXSA9ICdVIG1vZXQgZWVuIG5hYW0gaW52b2VyZW4nOwokbGFuZ1snZXJyb3Jfb25lcXVhbnRpdHlmaWVsZCddID0gJ0VyIGlzIHNsZWNodHMgZWVuIHZlbGQgbWV0IGRlIGhvZXZlZWxoZWlkIHRvZWdlc3RhYW4nOwokbGFuZ1snZXJyb3Jfb25lc3Vic2NyaXB0aW9uZmllbGQnXSA9ICdFciBpcyDDqcOpbiBsaWRtYWF0c2NoYXB2ZWxkIHRvZWdlc3RhYW4nOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbmRlbmllZCddID0gJ1RvZWdhbmcgZ2V3ZWlnZXJkJzsKJGxhbmdbJ2Vycm9yX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdPbmdlbGRpZ2UgcHJpanMgYWFucGFzc2luZyB2YW4gaXRlbSAlcyc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X2FsaWFzdXNlZCddID0gJ0RlIGdlbm9lbWRlIGFsaWFzIGlzIGFsIGluIGdlYnJ1aWsnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9uYW1ldXNlZCddID0gJ0VyIGJlc3RhYXQgYWwgZWVuIHByb2R1Y3QgbWV0IGRlemUgbmFhbSc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X25vdGZvdW5kJ10gPSAnSGV0IGdldnJhYWdkZSBwcm9kdWN0IGthbiBuaWV0IHdvcmRlbiBnZXZvbmRlbic7CiRsYW5nWydlcnJvcl9wcm9kdWN0X3NrdXVzZWQnXSA9ICdEZXplIFVpdGxldmVyZWVuaGVpZCBpcyBhbCBpbiBnZWJydWlrIGRvb3IgZWVuIGFuZGVyIHByb2R1Y3QnOwokbGFuZ1snZXJyb3Jfc2t1X3JlcXVpcmVkJ10gPSAnVm9lciBlZW4gdW5pZWtlIFNLVSBpbic7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnVXBsb2FkIG1pc2x1a3Q6ICVzJzsKJGxhbmdbJ2V4Y2x1ZGVfY2F0ZWdvcmllcyddID0gJ1NsdWl0IHByb2R1Y3RlbiBpbiBkZSBnZXNlbGVjdGVlcmRlIGNhdGVnb3Jpw6tuIHVpdCB2YW4gZGUgcmVzdWx0YXRlbic7CiRsYW5nWydleHBpcmVfb25lX3llYXInXSA9ICdOYSBlZW4gamFhcic7CiRsYW5nWydleHBpcmVfc2l4X21vbnRocyddID0gJ05hIHplcyBtYWFuZGVuJzsKJGxhbmdbJ2V4cGlyZV90d29feWVhciddID0gJ05hIHR3ZWUgamFhcic7CiRsYW5nWydleHBvcnRjYXRzJ10gPSAnRXhwb3J0IENhdGVnb3Jpw6tuJzsKJGxhbmdbJ2V4cG9ydF90b19jc3YnXSA9ICdFeHBvcnQgbmFhciBDU1YnOwokbGFuZ1snZXh0cmExJ10gPSAnRXh0cmEgdmVsZCAxJzsKJGxhbmdbJ2V4dHJhMiddID0gJ0V4dHJhIHZlbGQgMic7CiRsYW5nWydmaWVsZCddID0gJ1ZlbGQnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdWZWxkZGVmaW5pdGllJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ1ZlbGRkZWZpbml0aWVzJzsKJGxhbmdbJ2ZpZWxkcyddID0gJ1ZlbGRlbic7CiRsYW5nWydmaWxlJ10gPSAnQmVzdGFuZCc7CiRsYW5nWydmaWx0ZXJpbnVzZSddID0gJ2luIHdlcmtpbmcnOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snZ2VuZXJhbF9zZXR0aW5ncyddID0gJ0FsZ2VtZW5lIGluc3RlbGxpbmdlbic7CiRsYW5nWydnbyddID0gJ0dhIG5hYXInOwokbGFuZ1snaGllcmFyY2h5J10gPSAnSGllcmFyY2hpZSc7CiRsYW5nWydoaWVyYXJjaHlfcG9zaXRpb24nXSA9ICdIaWVyYXJjaGllIFBvc2l0aWUnOwokbGFuZ1snaGllcmFyY2h5X3NldHRpbmdzJ10gPSAnSGllcmFjaGllIGluc3RlbGxpbmdlbic7CiRsYW5nWydpZCddID0gJ0lEJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ0FmYmVlbGRpbmcnOwokbGFuZ1snaW1hZ2VfaGFuZGxpbmdfc2V0dGluZ3MnXSA9ICdJbnN0ZWxsaW5nZW4gYWZiZWVsZGluZyBhZmhhbmRlbGluZyc7CiRsYW5nWydpbXBvcnRfZnJvbV9jc3YnXSA9ICdJbXBvcnRlZXIgcHJvZHVjdGVuIHZhbnVpdCBlZW4gQ1NWIGZpbGUnOwokbGFuZ1snaW5jaGVzJ10gPSAnaW5jaGVzJzsKJGxhbmdbJ2luY2x1ZGVfY2hpbGRyZW4nXSA9ICdJbmNsdXNpZWYgb25kZXJsaWdnZW5kZW4/JzsKJGxhbmdbJ2luZm9fYWxudW1vbmx5J10gPSAnQWxsZWVuIGFsZmFudW1lcmlla2Uga2FyYWt0ZXJzLiBHZWVuIHdpdHJ1aW10ZSwgYWFuaGFsaW5nc3Rla2VucyBvZiBsZXR0ZXIvbnVtbWVyIGNvbWJpbmF0aWVzJzsKJGxhbmdbJ2luZm9fYXR0cmlidGVtcGxhdGUnXSA9ICdNb2dlbGlqa2Ugd2FhcmRlbiB6aWpuOiB7JGF0dHJpYl90ZXh0fSwgeyRhdHRyaWJfYWRqdXN0fSwgeyRjdXJyZW5jeV9zeW1ib2x9JzsKJGxhbmdbJ2luZm9fYXR0cmlidXRlc19jb3BpZWQnXSA9ICdBdHRyaWJ1dGVuIGdla29waWVlcmQnOwokbGFuZ1snaW5mb19iYXRjaHNpemUnXSA9ICdTdGVsIGhldCBhYW50YWwgcmVnZWxzIG9tIHVpdCB0ZSB2b2VyZW4gcGVyIFwnYmF0Y2hcJyBpbi4gTmFkYXQgZWVuIGJhdGNoIGlzIHZvbHRvb2lkLCB6YWwgZGUgaW1wb3J0ZXIgd29yZGVuIGRvb3J2ZXJ3ZXplbiBlbiBkb29yZ2FhbiBtZXQgZGUgb3BlcmF0aWUuIEFscyB1IHZlcndhY2h0IGRhdCBlciBtb2dlbGlqayBnZWhldWdlbmZvdXRlbiBnYWFuIG9udHN0YWFuIG9mIHRpbWUtb3V0cHJvYmxlbWVuIGRvb3IgaGV0IGhvZ2UgYWFudGFsIHJlZ2VscyBwZXIga2VlciwgZGFuIGt1bnQgdSBiZXRlciBjb250YWN0IG9wbmVtZW4gbWV0IHV3IGhvc3Rpbmdwcm92aWRlciBvZiBkaXQgbnVtbWVyIGxhZ2VyIGluc3RlbGxlbi4nOwokbGFuZ1snaW5mb19jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdEZXplIHBhcmFtZXRlcnMgd29yZGVuIGRvb3JnZWdldmVuIGFhbiBkZSBnZXNlbGVjdGVlcmRlIGNhcnQgbW9kdWxlIHZhbnVpdCBoZXQgIHByb2R1Y3QgdWl0Z2VicmVpZCBlbiBvcHNvbW1pbmcgZGlzcGxheXMnOwokbGFuZ1snaW5mb19jb3B5X2F0dHJpYnNldHMnXSA9ICdEZXplIGFjdGllIHphbCBkZSBhdHRyaWJ1dGVuc2V0cyBrb3BpZcOrcmVuIChleGNsdXNpZWYgc2t1IHdhYXJkZXMpIHZhbiBlZW4gYW5kZXIgcHJvZHVjdCc7CiRsYW5nWydpbmZvX2NyZWF0ZWNhdGVnb3JpZXMnXSA9ICdNYWFrIGF1dG9tYXRpc2NoIGVlbiBwcm9kdWN0Y2F0ZWdvcmllIGFhbiBkaWUgdm9vcmtvbXQgaW4gaGV0IENTViBmaWxlIGFscyBkZXplIG5vZyBuaWV0IGJlc3RhYXQnOwokbGFuZ1snaW5mb19jcmVhdGVmaWVsZHMnXSA9ICdNYWFrIG9uYmVrZW5kZSBwcm9kdWN0dmVsZGVuIGF1dG9tYXRpc2NoIGFhbj8gPGVtPihaZSB3b3JkZW4gZGFuIGFhbmdlbWFha3QgYWxzIHRla3N0dmVsZCk8L2VtPic7CiRsYW5nWydpbmZvX2NyZWF0ZWhpZXJhcmNoeSddID0gJ01hYWsgYXV0b21hdGlzY2ggZWVuIHByb2R1Y3QgaGnDq3JhcmNoaWUgYWFuIGRpZSB2b29ya29tdCBpbiBoZXQgQ1NWIGZpbGUgYWxzIGRlemUgbm9nIG5pZXQgYmVzdGFhbic7CiRsYW5nWydpbmZvX2RlY2ltYWxfdW5pdHMnXSA9ICdEZSBtb2R1bGUgZ2VicnVpa3QgZWVuIHB1bnQgKC4pIGFscyBoZXQgZGVjaW1hbGUgc2NoZWlkaW5nc3Rla2VuIGIudi46IDxzdHJvbmc+NS4yNTwvc3Ryb25nPic7CiRsYW5nWydpbmZvX2RlbGltaXRlciddID0gJ1NwZWNpZmljZWVyIGhldCBrYXJha3RlcihzKSBkYXQgZ2VicnVpa3QgbW9ldCB3b3JkZW4gb20gdmVsZGVuIHRlIHNjaGVpZGVuJzsKJGxhbmdbJ2luZm9fZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdTcGVjaWZpY2VlciBob2UgaGV0IHN5c3RlZW0gbW9ldCBoYW5kZWxlbiBhbHMgZXIgZWVuIHByb2R1Y3Qgdm9vcmtvbXQgbWV0IGRlemVsZmRlIG5hYW0gaW4gaGV0IENTViBmaWxlJzsKJGxhbmdbJ2luZm9fZmllbGRkZWZzX3RhYiddID0gJzxzdHJvbmc+T3BtZXJraW5nOjwvc3Ryb25nPiBEZSBoaWVyIGFhbndlemlnZSB2ZWxkZW4gemlqbiBiZXNjaGlrYmFhciB2b29yIGFsbGUgcHJvZHVjdGVuLic7CiRsYW5nWydpbmZvX2ZpZWxkcHJvYmxlbXMnXSA9ICdFciBpcyBwcm9ibGVlbSBvbnRzdGFhbiBtZXQgaGV0IHZlcndlcmtlbiB2YW4gZWVuIG9mIG1lZXIgYWFuZ2VtYWFrdGUgdmVsZGVuLiAgRGV6ZSBhY3RpZSBpcyBjb3JyZWN0IHVpdGdldm9lcmQuIG1hYXIgaGV0IGlzIHZlcnN0YW5kaWcgYWxsZXMgdGUgY29udHJvbGVyZW4gZW4gZXZlbnR1ZWVsIHRlIGhlcnN0ZWxsZW4uJzsKJGxhbmdbJ2luZm9faGFuZGxlaW1hZ2VzJ10gPSAnQWxzIGJpaiBlZW4gaW1wb3J0IGVlbiBiZXN0YW5kc25hYW0gdmFuIGVlbiBhZmJlZWxkaW5nIHdvcmR0IGdldm9uZGVuLCBtb2V0IGhldCBkYW4gdmVycGxhYXRzdCB3b3JkZW4gdmFuIGRlIGJyb25sb2NhdGllLCB3b3JkZW4gZ2V3YXRlcm1lcmt0LCBnZXRodW1uYWlsZWQgb2YgaGV0IGJlc3RhbmRzdHlwZSB3b3JkZW4gZ2V3aWp6aWdkIG5hYXIgImltYWdlIi4nOwokbGFuZ1snaW5mb19oaWVycGFnZSddID0gJ0dlYnJ1aWsgZGV6ZSBwYWdpbmEgdm9vciBkZSBoaWXDpHJjaGlzY2hlIHdlZXJnYXZlLiBEZSBwYWdpbmFpZCB6YWwgbmlldCB3b3JkZW4gd2VlcmdlZ2V2ZW4gaW4gZGUgVVJMLic7CiRsYW5nWydpbmZvX2ltYWdlcGF0aCddID0gJ0luIGRpdCBwYWQgKGdlemllbiB2YW5hZiBkZSB1cGxvYWRzLW1hcCkga3VubmVuIGRlIGFmYmVlbGRpbmdlbiB3b3JkZW4gZ2V2b25kZW4gZGllIHppam4gb3BnZWdldmVuIGluIGhldCBnZcOvbXBvcnRlZXJkZSBiZXN0YW5kLic7CiRsYW5nWydpbmZvX2ltYWdlc3R1ZmZfZGVwcmVjYXRlZCddID0gJ0RlIGZ1bmN0aWVzIHZlcndlcmtlbiB2YW4gYWZiZWVsZGluZ2VuIHppam4gdmVybG9wZW4gZW4genVsbGVuIHdvcmRlbiB2ZXJ3aWpkZXJkIGluIHRvZWtvbXN0aWdlIHZlcnNpZXMuIEdlYnJ1aWsgQ0dTbWFydEltYWdlIHZvb3IgaGV0IHZlcndlcmtlbiB2YW4gYWZiZWVsZGluZ2VuLic7CiRsYW5nWydpbmZvX2ltcG9ydF90ZXN0X3Bhc3NlZCddID0gJ0VlbiBrb3J0ZSB0ZXN0IGhlZWZ0IHBsYWF0c2dldm9uZGVuIG9wIGhldCBnZXNlbGVjdGVlcmRlIGdlc2VsZWN0ZWVyZGUgYmVzdGFuZCBlbiBhbGxlcyBsaWprdCBpbiBvcmRlLjxici8+RGl0IGlzIGVjaHRlciBnZWVuIGdhcmFudGllIGRhdCBlciBnZWVuIGZvdXRlbiBpbiBoZXQgYmVzdGFuZCBhYW53ZXppZyB6aWpuLic7CiRsYW5nWydpbmZvX3ByZXR0eWhpZXJ1cmxzJ10gPSAnVm9lZyBkZSBoaWXDpHJjaGllIG5hYW0gdG9lIGFhbiBkZSBVUkwnOwokbGFuZ1snaW5mb19wcm9kbm90Zm91bmQnXSA9ICdEZXplIG9wdGllIGJlcGFhbGQgaGV0IGdlZHJhZyB2YW4gZGUgd2Vic2l0ZSB3YW5uZWVyIGVlbiBkZXRhaWx3ZWVyZ2F2ZSB2YW4gZWVuIHByb2R1Y3QgcmVjaHRzdHJlZWtzIHdvcmR0IGJlem9jaHQgbWV0IGVlbiBVUkwgZW4gZGF0IHByb2R1Y3Qgb20gZWVuIGJlcGFhbGRlIHJlZGVuICh1aXRnZXNjaGFrZWxkLCB2ZXJ3aWpkZXJkLCBldGMuKSBuaWV0IGthbiB3b3JkZW4gYmV6b2NodC4nOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gJ1B1YmxpZWtlIHZlbGRlbiB6aWpuIHppY2h0YmFhciB2b29yIGhldCBwdWJsaWVrJzsKJGxhbmdbJ2luZm9fcmVvcmRlcl9jb250ZW50J10gPSAnRGV6ZSBhY3RpZSBzdGFhdCBoZXQgc2xlcGVuIHZhbiBpbmRpdmlkdWVsZSBpdGVtcyBpbiBkZSBib29tc3RydWN0dXVyIHRvZS4gWm8ga3VudCB1IGRlIHZvbGdvcmRlIGFhbnBhc3NlbiB3YWFyaW4gZGUgaXRlbXMgd29yZGVuIHdlZXJnZXZlbiBpbiBkZSBoacOrcmFyY2hpc2NoZSB3ZWVyZ2F2ZS4nOwokbGFuZ1snaW5mb19zZXRlY29taGFuZGxlcnMnXSA9ICdEZXplIGtub3AgZ2FyYW5kZWVydCBkYXQgZGUgZ2ViZXVydGVuaXNzZW4gdm9vciBlLWNvbW1lcmNlYWN0aXZpdGVpdGVuIGp1aXN0IHppam4gZ2XDr25zdGFsbGVlcmQuIERpdCBpcyBoYW5kaWcgd2FubmVlciBkZSBwcm9kdWN0ZW5tb2R1bGUgZGUgYmVzY2hpa2JhcmUgaG9ldmVlbGhlZGVuIGJpaiB3aWwgaG91ZGVuLCBtYWFyIGRlIGdlYmV1cnRlbmlzaGFuZGxlcnMgbmlldCB6aWpuIGFhbmdlbWFha3QgdGlqZGVuIGRlIGluc3RhbGxhdGllIG9mIHVwZ3JhZGUuJzsKJGxhbmdbJ2xhYmVsX292ZXJ3cml0ZSddID0gJ092ZXJzY2hyaWp2ZW4nOwokbGFuZ1snbGFiZWxfc2tpcCddID0gJ1NsYSBvdmVyJzsKJGxhbmdbJ2xhYmVsX3VwZGF0ZSddID0gJ0Jpandlcmtlbic7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xhc3RfbW9kaWZpZWQnXSA9ICdMYWF0c3QgYWFuZ2VwYXN0IG9wJzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnVHdlZWRlIEFmYmVlbGRpbmcnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4aW1hbGUgbGVuZ3RlIDxlbT4oYWxsZWVuIHZhbiB0b2VwYXNzaW5nIG9wIGhldCB0ZWtzdHZlbGQpPC9lbT4nOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnQWFuZ2VwYXN0IG9wJzsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gJ0VlbiBtb2R1bGUgdm9vciBoZXQgbWFuYWdlbiB2YW4gZWVuIHByb2R1Y3RjYXRhbG9ndXMuIERlIHByb2R1Y3RlbiB6aWpuIHZvb3J6aWVuIHZhbiBlZW4gcHJpanMsIGVlbiBmb3RvLCBldGMuIE9vayBpcyBlciBlZW4gbW9nZWxpamtoZWlkIHZvb3IgZWVuIHdpbmtlbHdhZ2VuIHRlIG1ha2VuLic7CiRsYW5nWydtb3ZlX2Rvd24nXSA9ICdWZXJzY2h1aWYgbmFhciBiZW5lZGVuJzsKJGxhbmdbJ21vdmVfdXAnXSA9ICdWZXJzY2h1aWYgbmFhciBib3Zlbic7CiRsYW5nWydtc2dfY2F0ZWdvcnlfZGVsZXRlZCddID0gJ0NhdGVnb3JpZSB2ZXJ3aWpkZXJkJzsKJGxhbmdbJ21zZ19ldmVudGhhbmRsZXJzX2NyZWF0ZWQnXSA9ICdHZWJldXJ0ZW5pc2hhbmRsZXJzIGdlY3JlZcOrcmQuJzsKJGxhbmdbJ21zZ19vcHRpb25zX3NhdmVkJ10gPSAnUHJvZHVjdCBvcHRpZXMgb3BnZXNsYWdlbic7CiRsYW5nWyduYW1lJ10gPSAnTmFhbSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ1UgaGVlZnQgbmlldCBkZSB2ZXJlaXN0ZSByZWNodGVuOiAlcyc7CiRsYW5nWyduZXdfY2F0ZWdvcnlfbmFtZSddID0gJ05pZXV3ZSBDYXRlZ29yaWUgTmFhbSc7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbm8nXSA9ICdOZWUnOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICdFciBpcyBnZWVuIG5hYW0gaW5nZXZ1bGQnOwokbGFuZ1snbm9uZSddID0gJ0dlZW4nOwokbGFuZ1snbm90ZXMnXSA9ICdPcG1lcmtpbmdlbic7CiRsYW5nWydub3RoaW5nX3NlbGVjdGQnXSA9ICdOaWV0cyBnZXNlbGVjdGVlcmQnOwokbGFuZ1snbnVtZXJpYyddID0gJ051bWVyaWVrJzsKJGxhbmdbJ29mJ10gPSAnVmFuJzsKJGxhbmdbJ29rJ10gPSAnT2vDqSc7CiRsYW5nWydvcGVyYXRpb25fY2FuY2VsbGVkJ10gPSAnQWN0aWUgZ2Vhbm51bGVlcmQnOwokbGFuZ1snb3BlcmF0aW9uX2NvbXBsZXRlJ10gPSAnT3BlcmF0aWUgdWl0Z2V2b2VyZCc7CiRsYW5nWydwYWdlJ10gPSAnUGFnaW5hJzsKJGxhbmdbJ3BhZ2VfbGltaXQnXSA9ICdQYWdpbmEgTGltaWV0JzsKJGxhbmdbJ3BhZ2Vfb2YnXSA9ICdQYWdpbmEgJXMgdmFuICVzJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5ZmllbGQnXSA9ICdBbGxlZW4gdmFuIHRvZXBhc3Npbmcgb3AgZGUgImNhdGVnb3J5bGlzdCIgYWN0aWUsIGRlemUgcGFyYW1ldGVyIGthbiBnZWJydWlrdCB3b3JkZW4gb20gY2F0ZWdvcmnDq24gdGUgZmlsdGVyZW4gb3AgYmFzaXMgdmFuIGRlIHdhYXJkZSB2YW4gaGV0IGNhdGVnb3JpZXZlbGQuIEhldCB3ZXJrdCBuaWV0IGluIGNvbWJpbmF0aWUgbWV0IGRlICJjYXRlZ29yeSIgb2YgZGUgImNhdGVnb3J5X2lkIiBwYXJhbWV0ZXJzLiBEZSBzeW50YXggdmFuIGRlemUgcGFyYW1ldGVyIGlzIGVlbiBrb21tYWdlc2NoZWlkZW4gbGlqc3QgbWV0IHZlbGRuYW1lbiBlbiB2ZWxkd2FhcmRlbi4gIEJpanZvb3JiZWVsZDogIGNhdGVnb3J5bGlzdD0idmVsZG5hYW06d2FhcmRlLHZlbGRuYWFtIDI6d2FhcmRlIDIiJzsKJGxhbmdbJ3BhcmFtX2V4Y2x1ZGVjYXQnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgKHN1bW1hcnkpIHZpZXcsIHRoaXMgcGFyYW1ldGVyIHdpbGwgYWxsb3cgZXhjbHVkaW5nIHByb2R1Y3RzIHRoYXQgYXJlIGluIGEgc3BlY2lmaWMgY2F0ZWdvcnkgZnJvbSB0aGUgcmVzdWx0LiBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGNhdGVnb3J5IG5hbWVzIGlzIGFsbG93ZWQuIFRoaXMgcGFyYW1ldGVyIGNhbiB3b3JrIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGNhdGVnb3J5IHBhcmFtZXRlciB0byBwcm92aWRlIGEgbGlzdCBvZiB0aGUgcHJvZHVjdHMgdGhhdCBhcmUgaW4gdGhpcyBjYXRlZ29yeSwgYnV0IG5vdCBpbiB0aGF0IGNhdGVnb3J5JzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RpZCddID0gJ0hlZWZ0IGFsbGVlbiB6aW4gaW4gZGUgdWl0Z2VicmVpZGUgc2phYmxvb24uIERlemUgcGFyYW1ldGVyIGdlZWZ0IGFhbiB3ZWxrIHByb2R1Y3QgdGUgZ2VicnVpa2VuIGJpaiBoZXQgd2VlcmdldmVuLic7CiRsYW5nWydwYXJhbV9yZXN1bHRwYWdlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgYSBwYWdlIGlkIG9yIGFsaWFzIHRvIHVzZSB0byBkaXNwbGF5IHRoZSBzZWFyY2ggcmVzdWx0cyc7CiRsYW5nWydwYXJhbV9zZWFyY2hmaWVsZCddID0gJ0FsbGVlbiB2YW4gdG9lcGFzc2luZyBvcCBkZSB6b2VrYWN0aWVzLCBkZXplIHBhcmFtZXRlciBrYW4gZWVuIGtvbW1hZ2VzY2hlaWRlbiBsaWpzdCBiZXZhdHRlbiBtZXQgZGFhcmluIHZlbGRuYW1lbiBkaWUga3VubmVuIHdvcmRlbiB0b2VnZXZvZWdkIGluIGRlIHpvZWthY3RpZS4nOwokbGFuZ1sncGFyYW1fc2VhcmNoZm9ybXRlbXBsYXRlJ10gPSAnQWxsZWVuIHZhbiB0b2VwYXNzaW5nIG9wIGRlIHpvZWthY3RpZXMsIGRlemUgcGFyYW1ldGVyIHN0YWF0IG51IG9tIGVlbiBuaWV0IHN0YW5kYWFyZCB6b2Vrc2phYmxvb24gdGUgZ2VicnVpa2VuJzsKJGxhbmdbJ3BhcmFtX3Nob3dhbGwnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb24sIGlmIHRoaXMgcGFyYW1ldGVyIGlzIHNldCB0byBhIG5vbiAwIGludGVnZXIgdmFsdWUgYWxsIGNhdGVnb3JpZXMgKGV2ZW4gdGhvc2Ugd2l0aG91dCBwcm9kdWN0cykgd2lsbCBiZSBkaXNwbGF5ZWQuJzsKJGxhbmdbJ3BhcmFtX3NvcnR0eXBlJ10gPSAnQWxsZWVuIHZhbiB0b2VwYXNzaW5nIG9wIGRlIHN0YW5kYWFyZCBzYW1lbnZhdHRpbmdzd2VlcmdhdmUsIGRlemUgcGFyYW1ldGVyIGthbiB3b3JkZW4gZ2VicnVpa3Qgb20gd2FhcmRlcyBvbSB0ZSB6ZXR0ZW4gbmFhciBlZW4gYW5kZXIgdHlwZSB2b29yIHNvcnRlcmluZy4gIEdlbGRpZ2Ugd2FhcmRlbiB6aWpuIFNUUklORywgU0lHTkVEIGVuIFVOU0lHTkVELiBBbHMgZGl0IG5pZXQgaXMgb3BnZWdldmVuIGRhbiB6YWwgc3RhbmRhYXJkIFNUUklORyB3b3JkZW4gZ2Vrb3plbi4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXBhZ2UnXSA9ICdBbGxlZW4gdmFuIHRvZXBhc3Npbmcgb3AgYWN0aW9uPWhpZXJhcmNoeSwgc3RhYXQgdG9lIG9wIGVlbiBwYWdpbmEgaWQgb2YgYWxpYXMgb3AgdGUgZ2V2ZW4gZGllIG1vZXQgd29yZGVuIGdlYnJ1aWt0IHZvb3IgZGUgbGlua3MgaW4gZGUgc2FtZW52YXR0aW5nc3dlZXJnYXZlLic7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdEZXplIHBhcmFtZXRlciBnZWVmdCBhYW4gd2Vsa2Ugb3Bzb21taW5nIHNqYWJsb29uIGVyIGdlYnJ1aWt0IG1vZXQgd29yZGVuLiBBbHMgZXIgZ2VlbiBnZXNlbGVjdGVlcmQgd29yZHQgZGFuIHdvcmQgZGUgc3RhbmRhYXJkIHNqYWJsb29uIGdlYnJ1aWt0Lic7CiRsYW5nWydwYXJlbnQnXSA9ICdCb3ZlbmxpZ2dlbmRlJzsKJGxhbmdbJ3BoX29wdGlvbnRleHQnXSA9ICdWb2VyIGVlbiB1bmlla2Ugb3B0aWUgdGVrc3QgdG9lJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnRGUgUHJvZHVjdHMgbW9kdWxlIGlzIGdlaW5zdGFsbGVlcmQnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0RlIFByb2R1Y3RzIG1vZHVsZSBpcyB2ZXJ3aWpkZXJkIGluY2x1c2llZiBhbGxlIGJpamJlaG9yZW5kZSBkYXRhJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnVm9vcmtldXJlbic7CiRsYW5nWydwcmVmaXhfY29weW9mJ10gPSAnS29waWVlciB2YW4nOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnQWxzIGRlIG1vZHVsZSB3b3JkdCB2ZXJ3aWpkZXJkIGRhbiB3b3JkIG9vayBhbGxlIGFhbndlemlnZSBkYXRhIGdld2lzdC4gQmVudCB1IHpla2VyIGRhdCB1IHdpbHQgdmVyZGVyZ2Fhbj8nOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3ByaWNlJ10gPSAnUHJpanMnOwokbGFuZ1sncHJpY2VfYWRqdXN0bWVudCddID0gJ1ByaWpzd2lqemlnaW5nJzsKJGxhbmdbJ3Byb2R1Y3QnXSA9ICdQcm9kdWN0JzsKJGxhbmdbJ3Byb2R1Y3RuYW1lJ10gPSAnUHJvZHVjdG5hYW0nOwokbGFuZ1sncHJvZHVjdHMnXSA9ICdQcm9kdWN0ZW4nOwokbGFuZ1sncHJvZHVjdF9kZXRhaWxfc2V0dGluZ3MnXSA9ICdQcm9kdWN0IERldGFpbCBJbnN0ZWxsaW5nZW4nOwokbGFuZ1sncHJvZHVjdF9lZGl0aW5nX3NldHRpbmdzJ10gPSAnUHJvZHVjdCBXaWp6aWdlbiBpbnN0ZWxsaW5nZW4nOwokbGFuZ1sncHJvZHVjdF9oaWVyYXJjaHknXSA9ICdQcm9kdWN0aGllcmFyY2hpZSc7CiRsYW5nWydwcm9kdWN0X2luZm8nXSA9ICdQcm9kdWN0aW5mb3JtYXRpZSc7CiRsYW5nWydwcm9kdWN0X21hbmFnZXInXSA9ICdQcm9kdWN0bWFuYWdlcic7CiRsYW5nWydwcm9kdWN0X3N1bW1hcnlfc2V0dGluZ3MnXSA9ICdQcm9kdWN0c2FtZW52YXR0aW5nIGluc3RlbGxpbmdlbic7CiRsYW5nWydwcm9ncmVzcyddID0gJ1Zvb3J0Z2FuZyc7CiRsYW5nWydwcm9tcHRfYWRkX2F0dHJpYnNldCddID0gJ1RvZXZvZWdlbi9XaWp6aWdlbiBBdHRyaWJ1dGVuIFNldCc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnXSA9ICdTdGEgaGV0IHVwbG9hZGVuIHZhbiBiZXN0YW5kZW4gdG9lIG1ldCBkZXplIGV4dGVuc2llcyAodm9vciBuaWV0LWFmYmVlbGRpbmdlbiknOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2V0eXBlcyddID0gJ1N0YSBoZXQgdXBsb2FkZW4gdmFuIGJlc3RhbmRlbiB0b2UgbWV0IGRlemUgZXh0ZW5zaWVzICh2b29yIGFmYmVlbGRpbmdlbiknOwokbGFuZ1sncHJvbXB0X2FwcGxpY2FibGUnXSA9ICdTY2hha2VsIHN0YW5kYWFyZCBpbiB2b29yIGFsbGUgbmlldXdlIHByb2R1Y3Rlbic7CiRsYW5nWydwcm9tcHRfYXR0cmlidGVtcGxhdGUnXSA9ICdTamFibG9vbiB2b29yIGhldCwgaW4gZWVuIGRyb3Bkb3duIHRvbmVuIHZhbiBwcm9kdWN0IGF0dHJpYnV0ZW4nOwokbGFuZ1sncHJvbXB0X2JhdGNoc2l6ZSddID0gJ1ZvbHVtZSBncm9vdHRlJzsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZSddID0gJ0NhcnQgTW9kdWxlJzsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdDYXJ0IE1vZHVsZSBQYXJhbWV0ZXJzJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVjYXRlZ29yaWVzJ10gPSAnTWFhayBjYXRlZ29yacOrbic7CiRsYW5nWydwcm9tcHRfY3JlYXRlZmllbGRzJ10gPSAnTWFhayBwcm9kdWN0IHZlbGRlbj8nOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWhpZXJhcmNoeSddID0gJ01hYWsgcHJvZHVjdCBoacOrcmFyY2hpZSc7CiRsYW5nWydwcm9tcHRfY3N2ZmlsZSddID0gJ1VwbG9hZCBlZW4gQ1NWIGJlc3RhbmQnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5Y29kZSddID0gJ1ZhbHV0YWNvZGUnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAnVmFsdXRhdGVrZW4nOwokbGFuZ1sncHJvbXB0X2RlZmF1bHRfc3RhdHVzJ10gPSAnU3RhbmRhYXJkIGhlYmJlbiBhbGxlIG5pZXV3ZSBwcm9kdWN0ZW4gZGV6ZSBzdGF0dXMnOwokbGFuZ1sncHJvbXB0X2RlZmF1bHRfdGF4YWJsZSddID0gJ1N0YW5kYWFyZCB6aWpuIGFsbGUgcHJvZHVjdGVuIGJlbGFzdGJhYXInOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gJ0FscyBlZW4gcHJvZHVjdCB3b3JkdCB2ZXJ3aWpkZXJkLCBtb2V0ZW4gYWxsZSBiZXN0YW5kZW4gZGllIGVyIGFhbiBnZWtvcHBlbGQgemlqbiBvb2sgd29yZGVuIHZlcndpamRlcmQ/JzsKJGxhbmdbJ3Byb21wdF9kZWxpbWl0ZXInXSA9ICdWZWxkIHNjaGVpZGluZ3N0ZWtlbic7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ1N0YW5kYWFyZCBkZXRhaWxwYWdpbmEnOwokbGFuZ1sncHJvbXB0X2RldGFpbHNmb3InXSA9ICdEZXRhaWxzIHZvb3IgJXMnOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnSG9lIG9tIHRlIGdhYW4gbWV0IGRlemVsZmRlIHByb2R1Y3Rlbj8nOwokbGFuZ1sncHJvbXB0X2ZhbHNlJ10gPSAnTmlldCc7CiRsYW5nWydwcm9tcHRfaGFuZGxlaW1hZ2VzJ10gPSAnVmVyd2VyayBhZmJlZWxkaW5nZW4/JzsKJGxhbmdbJ3Byb21wdF9oaWVycGFnZSddID0gJ1N0YW5kYWFyZCBwYWdpbmEgdm9vciBoaWVyYXJjaGlzY2hlIHdlZXJnYXZlJzsKJGxhbmdbJ3Byb21wdF9pbWFnZXBhdGgnXSA9ICdBZmJlZWxkaW5nIHBhZCc7CiRsYW5nWydwcm9tcHRfbGVuZ3RodW5pdHMnXSA9ICdMZW5ndGUgRWVuaGVkZW4nOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzMwMSddID0gJ0dlbmVyZWVyIGVlbiAzMDEtcmVkaXJlY3QnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzQwNCddID0gJ0dlbmVyZWVyIGVlbiA0MDQtbWVsZGluZyc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfYmVoYXZpb3InXSA9ICdXYXQgbW9ldCBlciB3b3JkZW4gZ2VkYWFuIGFscyBlZW4gcHJvZHVjdCBuaWV0IGdldm9uZGVuIHdvcmR0Pyc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfZXJyb3Jtc2cnXSA9ICdUb29uIGVlbiBmb3V0bWVsZGluZyc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfbXNnJ10gPSAnRm91dG1lbGRpbmcgYWxzIGVlbiBwcm9kdWN0IG5pZXQgZ2V2b25kZW4gaXMnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX3BhZ2UnXSA9ICdQYWdpbmEgb20gcGVybWFuZW50IG5hYXIgdGUgdmVyd2lqemVuPyc7CiRsYW5nWydwcm9tcHRfcHJldHR5aGllcnVybHMnXSA9ICdHZWJydWlrIFByZXR0eSBVUkxcJ3Mgdm9vciBkZSBoaWXDpHJjaGlzY2hlIHdlZXJnYXZlJzsKJGxhbmdbJ3Byb21wdF9wcm9kdWN0c19tYXRjaGluZyddID0gJ1Byb2R1Y3RlbiBnZWxpamsgYWFuICVzJzsKJGxhbmdbJ3Byb21wdF9wcm9kX2RldGFpbHBhZ2UnXSA9ICdTdGFuZGFhcmQgUGFnaW5hIHZvb3IgUHJvZHVjdCBEZXRhaWwgT3ZlcnppY2h0ZW4nOwokbGFuZ1sncHJvbXB0X3NrdV9yZXF1aXJlZCddID0gJ0VlbiBTS1UgaXMgdmVyZWlzdCB2b29yIGFsbGUgcHJvZHVjdGVuIGVuIGF0dHJpYnV0ZW4nOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlwYWdlbGltaXQnXSA9ICdTdGFuZGFhcmQgcGFnaW5hbGltaWV0IGluIHNhbWVudmF0dGluZ3Ntb2R1cyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICdTdGFuZGFhcmQgdmVsZHZvbGdvcmRlIGluIHNhbWVudmF0dGluZ3Ntb2R1cyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRvcmRlciddID0gJ1N0YW5kYWFyZCBzb3J0ZWVydm9sZ29yZGUgaW4gc2FtZW52YXR0aW5nc21vZHVzJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5X25ld2RlZmF1bHQnXSA9ICdHZWJydWlrIGVlbiBuaWV1d2Ugc2FtZW52YXR0aW5nIHNjaGVybSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdTamFibG9vbiBCcm9uJzsKJGxhbmdbJ3Byb21wdF90cnVlJ10gPSAnV2VsJzsKJGxhbmdbJ3Byb21wdF91cmxwcmVmaXgnXSA9ICdUZSBnZWJydWlrZW4gcHJlZml4IHZvb3IgYWxsZSBVUkxzIGRpZSBkZXplIG1vZHVsZSBnZWJydWlrdCc7CiRsYW5nWydwcm9tcHRfdXNlaGllcnBhdGh1cmxzJ10gPSAnR2VicnVpayBQYWQgSGllcmFyY2hpZSBpbiBkZSBQcm9kdWN0IERldGFpbCBVcmxcJ3MnOwokbGFuZ1sncHJvbXB0X3VzZV9kZXRhaWxwYWdlX2Zvcl9zZWFyY2gnXSA9ICdHZWJydWlrIGRlemUgcGFnaW5hIG9vayB2b29yIHpvZWtyZXN1bHRhdGVuIDxlbT4ob3ZlcnNjaHJpamZ0IGRlIHpvZWtyZXN1bHRhdGVuIHBhZ2luYSBwYXJhbWV0ZXIgaW4gZGUgWm9layBtb2R1bGUpPC9lbT4nOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnR2V3aWNodGVlbmhlaWQnOwokbGFuZ1sncHVibGljJ10gPSAnSXMgZGl0IGVlbiBwdWJsaWVrIHZlbGQ/JzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ0dlcHVibGljZWVyZCc7CiRsYW5nWydxdWFudGl0eV9vbl9oYW5kJ10gPSAnQmVzY2hpa2JhcmUgaG9ldmVlbGhlaWQnOwokbGFuZ1sncmFuZG9tJ10gPSAnV2lsbGVrZXVyaWcnOwokbGFuZ1sncmVvcmRlciddID0gJ0hlcm9yZGVyJzsKJGxhbmdbJ3Jlb3JkZXJfaGllcmFyY2h5J10gPSAnSGVyb3JkZXIgaGllcmFyY2hpZSc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1Jlc2V0IG5hYXIgc3RhbmRhYXJkaW5zdGVsbGluZ2VuJzsKJGxhbmdbJ3JldHVybiddID0gJ0tlZXIgdGVydWcnOwokbGFuZ1sncmV0dXJuX3RvX3RvcCddID0gJ0dhIHRlcnVnIG5hYXIgZGUgYm92ZW5rYW50IHZhbiBkZSBwYWdpbmEnOwokbGFuZ1sncm9vdCddID0gJ1N0YXJ0JzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlcyddID0gJ1pvZWsgU2phYmxvbmVuJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdUb2V2b2VnZW4vd2lqemlnZW4gWm9la2Zvcm11bGllciBzamFibG9vbic7CiRsYW5nWydzZWFyY2hfZGVzY3JpcHRpb24nXSA9ICdab2VrZWlnZW5zY2hhcCBPbXNjaHJpanZpbmcnOwokbGFuZ1snc2VhcmNoX2V4cHInXSA9ICdNb2V0IGRlIHpvZWtvcGRyYWNodCB2b2xkb2VuIGFhbiDDqcOpbiwgb2YgYWFuIGFsbGUgdGVzdGVuIGhpZXJvbmRlcj8nOwokbGFuZ1snc2VhcmNoX25hbWUnXSA9ICdab2VrZWlnZW5zY2hhcCBOYWFtJzsKJGxhbmdbJ3NlYXJjaF9wcmljZSddID0gJ1ByaWpzIG1hcmdlJzsKJGxhbmdbJ3NlbGVjdF9hbGwnXSA9ICdTZWxlY3RlZXIgYWxsZXMnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ0tpZXMgw6nDqW4nOwokbGFuZ1snc2V0ZGlzYWJsZWQnXSA9ICdNYXJrZWVyIGFscyBVaXRnZXNjaGFrZWxkJzsKJGxhbmdbJ3NldGRyYWZ0J10gPSAnTWFya2VlciBhbHMgY29uY2VwdCc7CiRsYW5nWydzZXRwdWJsaXNoZWQnXSA9ICdNYXJrZWVyIGFscyBnZXB1YmxpY2VlcmQnOwokbGFuZ1snc2t1J10gPSAnVWl0bGV2ZXJlZW5oZWlkJzsKJGxhbmdbJ3NvcnRfYnknXSA9ICdTb3J0ZWVyIG9wJzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdTb3J0ZWVydm9sZ29yZGUnOwokbGFuZ1snc291cmNlJ10gPSAnQnJvbic7CiRsYW5nWydzdWJtaXQnXSA9ICdWZXJzdHVyZW4nOwokbGFuZ1snc3Vic2NyaXB0aW9uJ10gPSAnTGlkbWFhdHNjaGFwJzsKJGxhbmdbJ3N1YnNjcl9kZWxwZXJpb2QnXSA9ICdVaXRsZXZlcmZyZXF1ZW50aWUnOwokbGFuZ1snc3Vic2NyX2RlbHBlcmlvZDInXSA9ICdVaXRnZWxldmVyZCc7CiRsYW5nWydzdWJzY3JfZXhwaXJ5J10gPSAnVmVybG9wZW4nOwokbGFuZ1snc3Vic2NyX2V4cGlyeTInXSA9ICdWZXJsb29wdCc7CiRsYW5nWydzdWJzY3JfbW9udGhseSddID0gJ01hYW5kZWxpamtzJzsKJGxhbmdbJ3N1YnNjcl9wYXlwZXJpb2QnXSA9ICdCZXRhbGluZ3NmcmVxdWVudGllJzsKJGxhbmdbJ3N1YnNjcl9wYXlwZXJpb2QyJ10gPSAnQmV0YWFsZCc7CiRsYW5nWydzdWJzY3JfcXVhcnRlcmx5J10gPSAnUGVyIGt3YXJ0YWFsJzsKJGxhbmdbJ3N1YnNjcl9zZW1pYW51YWxseSddID0gJ09tIGhldCBqYWFyJzsKJGxhbmdbJ3N1YnNjcl95ZWFybHknXSA9ICdKYWFybGlqa3MnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ1NhbWVudmF0dGluZ3NzYWJsb25lbic7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ1RvZXZvZWdlbi93aWp6aWdlbiBTYW1lbnZhdHRpbmcgU2phYmxvb24nOwokbGFuZ1sndGF4YWJsZSddID0gJ0JlbGFzdGJhYXInOwokbGFuZ1sndGVzdCddID0gJ1Rlc3Rlbic7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ1Rla3N0cnVpbXRlJzsKJGxhbmdbJ3RleHRib3gnXSA9ICdUZWtzdCBJbnZvZXInOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhYXJkIG5pZXV3IEhpZXJhY2hpZSBTamFibG9vbic7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhYXJkIG5pZXV3IENhdGVnb3JpZWxpanN0IFNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFhcmQgbmlldXcgRGV0YWlsIFNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFhcmQgbmlldXcgWm9layBTamFibG9vbic7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYWFyZCBuaWV1d2UgU2FtZW52YXR0aW5nIFNqYWJsb29uJzsKJGxhbmdbJ3VwJ10gPSAnT21ob29nJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0Jpandlcmtlbic7CiRsYW5nWyd1cGxvYWQnXSA9ICdTZWxlY3RlZXIgZWVuIGJlc3RhbmQgb20gdGUgdXBsb2FkZW4nOwokbGFuZ1sndXJsX2FsaWFzJ10gPSAnQWxpYXMgaW4gcGFnaW5hIHVybCc7CiRsYW5nWyd2YWxpZCddID0gJ0NvcnJlY3QnOwokbGFuZ1sndmFsdWUnXSA9ICdXYWFyZGUnOwokbGFuZ1sndmFsdWVzJ10gPSAnV2FhcmRlbic7CiRsYW5nWyd2aWV3J10gPSAnQmVraWprJzsKJGxhbmdbJ3ZpZXdhYmxlX2ZpZWxkcyddID0gJ1NlbGVjdGVlciB2ZWxkZW4gb20gaW4gaGV0IHRhYmVsIHRlIHRvbmVuJzsKJGxhbmdbJ3dhdGVybWFya19sb2NhdGlvbiddID0gJ1BsYWF0cyBXYXRlcm1lcmsnOwokbGFuZ1snd2VpZ2h0J10gPSAnR2V3aWNodCc7CiRsYW5nWyd3aXRoX3NlbGVjdGVkJ10gPSAnTWV0IGdlc2VsZWN0ZWVyZGVuJzsKJGxhbmdbJ3llcyddID0gJ0phJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pl_PL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfbGVuZ3RoJ10gPSAnTCc7CiRsYW5nWydhYmJyX3dpZHRoJ10gPSAnVyc7CiRsYW5nWydhYmJyX2hlaWdodCddID0gJ0gnOwokbGFuZ1snYWRkJ10gPSAnRG9kYWonOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdEb2RhaiBrYXRlZ29yacSZJzsKJGxhbmdbJ2FkZGZpZWxkZGVmJ10gPSAnRG9kYWogcG9sZSc7CiRsYW5nWydhZGp1c3RhYmxlJ10gPSAnWm1pZW5pYWxueSc7CiRsYW5nWydhZGRwcm9kdWN0J10gPSAnRG9kYWogcHJvZHVrdCc7CiRsYW5nWydhZGRfYXR0cmliX3NldCddID0gJ0RvZGFqIGF0cnlidXQnOwokbGFuZ1snYWRkX2NhdGVnb3J5X2ZpZWxkJ10gPSAnUHJ6eXBpc2HEhyBwb2xlIGRvIGthdGVnb3JpaTogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnRG9kYWogZWxlbWVudCBoaWVyYXJjaGlpJzsKJGxhbmdbJ2FkZF9vcHRpb24nXSA9ICdEb2RhaiBvcGNqxJkgYXRyeWJ1dHUnOwokbGFuZ1snYWRtaW5fb25seSddID0gJ0N6eSB0eWxrbyBhZG1pbmlzdHJhdG9yenkgbW9nxIUgd2lkemllxIcgdGVuIGF0cnlidXQ/JzsKJGxhbmdbJ2FkdmFuY2VkJ10gPSAnWmFhd2Fuc293YW5lJzsKJGxhbmdbJ2FsaWduX3VsJ10gPSAnRyZvYWN1dGU7cm55IGxld3knOwokbGFuZ1snYWxpZ25fdWMnXSA9ICdHJm9hY3V0ZTtybnkgxZtyb2Rlayc7CiRsYW5nWydhbGlnbl91ciddID0gJ0cmb2FjdXRlO3JueSBwcmF3eSc7CiRsYW5nWydhbGlnbl9tbCddID0gJ8Wacm9kZWsgbGV3eSc7CiRsYW5nWydhbGlnbl9tYyddID0gJ8Wacm9kZWsnOwokbGFuZ1snYWxpZ25fbXInXSA9ICfFmnJvZGVrIHByYXd5JzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnRCZvYWN1dGU7xYIgbGV3eSc7CiRsYW5nWydhbGlnbl9sYyddID0gJ0Qmb2FjdXRlO8WCIMWbcm9kZWsnOwokbGFuZ1snYWxpZ25fbHInXSA9ICdEJm9hY3V0ZTvFgiBwcmF3eSc7CiRsYW5nWydhbGwnXSA9ICdXc3p5c3RraWUnOwokbGFuZ1snYWxsY2F0ZWdvcmllcyddID0gJ1dzenlzdGtpZSBrYXRlZ29yaWUnOwokbGFuZ1snYW55J10gPSAnSmFraWtvbHdpZWsnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0N6eSBuYSBwZXdubyB1c3VuxIXEhz8nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVwcm9kdWN0J10gPSAnQ3p5IG5hcGV3bm8gY2hjZXN6IHVzdW7EhcSHIHRlbiBwcm9kdWt0IG9yYXogd3N6eXN0a2llIGRvZGF0a293ZSBpbmZvcm1hY2plIG5hIGplZ28gdGVtYXQ/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ1Jvc27EhWNvJzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnTmF6d2EgYXRyeWJ1dHUnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdHljem5pZSc7CiRsYW5nWydidG5fc2V0ZWNvbWhhbmRsZXJzJ10gPSAnU2V0IEVjb21tZXJjZSBFdmVudCBIYW5kbGVycyc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlcyddID0gJ1N6YWJsb255IHJhcG9ydCZvYWN1dGU7dyBoaWVyYXJjaGlpJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0RvZGFqL0VkeXR1aiBzemFibG9uIHJhcG9ydHUgaGllcmFyY2hpaSc7CiRsYW5nWydjYW5jZWwnXSA9ICdBbnVsdWonOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpZSc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0thdGVnb3JpYSc7CiRsYW5nWydjYXRlZ29yeWV4aXN0cyddID0gJ0thdGVnb3JpYSBvIHRlaiBuYXp3aWUganXFvCBpc3RuaWVqZSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdTemFibG9ueSBsaXN0eSBrYXRlZ29yaWknOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0RvZGFqL0VkeXR1aiBzemFibG9uIGxpc3R5IGthdGVnb3JpaSc7CiRsYW5nWydjZW50aW1ldGVycyddID0gJ0NlbnR5bWV0cnknOwokbGFuZ1snY2hlY2tib3gnXSA9ICdDaGVja2JveCc7CiRsYW5nWydjb25maXJtX2NvcHlhdHRyaWJ1dGVzJ10gPSAnQW55IGV4aXN0aW5nIGF0dHJpYnV0ZSBzZXRzIGZvciB0aGlzIHByb2R1Y3Qgd2lsbCBiZSByZW1vdmVkLiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY29udGludWU/JzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX2hpZXJhcmNoeV9ub2RlJ10gPSAnQ3p5IG5hcGV3bm8gY2hjZXN6IHVzdW7EhcSHIHRlbiBlbGVtZW50IGhpZXJhcmNoaWk/IFdzenlzdGtpZSBwcm9kdWt0eSB1xbx5d2FqxIVjZSB0ZWdvIGVsZW1lbnR1IG5pZSBixJlkxIUgcHJ6eXBpc2FuZSBkbyDFvGFkbmVqIGhpZXJhcmNoaWknOwokbGFuZ1snY29uZmlybV9pbXBvcnQnXSA9ICdBcmUgeW91IHN1cmUgeW91IHJlYWxseSB3YW50IHRvIGRvIHRoaXM/XG5cbkltcHJvcGVyIHNldHRpbmdzLCBvciBhbiBpbnZhbGlkIGNvbmZpZyBmaWxlIGNvdWxkIGNvbXBsZXRlbHkgY29ycnVwdCBhIGN1cnJlbnRseSB2YWxpZCBhbmQgd29ya2luZyBzeXN0ZW0uJzsKJGxhbmdbJ2NvcHknXSA9ICdTa29waXVqJzsKJGxhbmdbJ2NvcHlfYXR0cmliX3NldHMnXSA9ICdDb3B5IEF0dHJpYnV0ZSBTZXRzJzsKJGxhbmdbJ2NvcHlfY2F0ZWdvcnknXSA9ICdTa29waXVqIGthdGVnb3JpxJknOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdEYXRhIHV0d29yemVuaWEnOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ0FrdHVhbG5hIHdhcnRvxZvEhyc7CiRsYW5nWydkYXRhJ10gPSAnRGFuZSc7CiRsYW5nWydkZWZhdWx0J10gPSAnRG9tecWbbG55JzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdTemFibG9ueSBkb215xZtsbmUnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPlV3YWdhOjwvc3Ryb25nPiBaYXdhcnRvxZvEhyB0eWNoIHAmb2FjdXRlO2wgdGVrc3Rvd3ljaCBqZXN0IHXFvHl3YW5hIGRvIG9rcmXFm2xlbmlhIGRvbXnFm2xuZWogemF3YXJ0b8WbY2kgc3phYmxvbiZvYWN1dGU7dyB3IG1vbWVuY2llIHd5YnJhbmlhIG9wY2ppICZhbXA7cXVvdDtEb2RhaiBzemFibG9uJmFtcDtxdW90OyBuYSBvZHBvd2llZG5pZWogemFrxYJhZGNlLiBFZHljamEgdHljaCBwJm9hY3V0ZTtsIG5pZSB3cMWCeXdhIGJlenBvxZtyZWRuaW8gbmEgaXN0bmllasSFY2Ugc3phYmxvbnkuJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1NrYXN1aic7CiRsYW5nWydkZWxldGVfYXR0cmlic2V0J10gPSAnU2thc3VqIGF0cnlidXQnOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAnU2thc3VqIGVsZW1lbnQgaGllcmFyY2hpaSc7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnTWFsZWrEhWNvJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnT3Bpcyc7CiRsYW5nWydkZXN0aW5hdGlvbiddID0gJ0Rlc3RpbmF0aW9uJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdTemN6ZWcmb2FjdXRlO8WCeSc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdTemFibG9ueSBzemN6ZWcmb2FjdXRlO8WCb3dlJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdEb2Rhai9lZHl0dWogc3phYmxvbiBzemN6ZWcmb2FjdXRlO8WCb3d5JzsKJGxhbmdbJ2RpbWVuc2lvbnMnXSA9ICdXeW1pYXJ5JzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnV3nFgsSFY3pvbnknOwokbGFuZ1snZG93biddID0gJ1ByemVzdcWEIHcgZCZvYWN1dGU7xYInOwokbGFuZ1snZHJhZnQnXSA9ICdLb3BpYSByb2JvY3phJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnTGlzdGEgcm96d2lqYWxuYSc7CiRsYW5nWydkcm9wZG93bl9vcHRpb25zJ10gPSAnT3BjamVsaXN0eSByb3p3aWphbG5laiA8ZW0+KGF0byBwb2xlIGplc3QgdcW8eXdhbmUgdHlsa28gcHJ6eSBsaXN0YWNoIHJvendpamFsbnljaCk8L2VtPjxici8+PGJyLz48ZW0+KGplZG5hIGxpbmlhIHRvIGplZG5hIG9wY2phKTwvZW0+JzsKJGxhbmdbJ2VkaXQnXSA9ICdFZHl0dWonOwokbGFuZ1snZWRpdF9hdHRyaWJzZXQnXSA9ICdFZHl0dWogYXRyeWJ1dCc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICdFZHl0dWogemVzdGF3IGF0cnlidXQmb2FjdXRlO3cnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzX2ZvciddID0gJ0VkeXR1aiBhdHJ5YnV0eSBkbGEnOwokbGFuZ1snZWRpdF9hdHRyaWJ1dGVzJ10gPSAnRWR5dHVqIGF0cnlidXR5JzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnknXSA9ICdFZHl0dWoga2F0ZWdvcmnEmSc7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ0VkeXR1aiBwb2xhIGthdGVnb3JpaSc7CiRsYW5nWydlZGl0X2hpZXJhcmNoeV9pdGVtJ10gPSAnRWR5dHVqIGVsZW1lbnQgaGllcmFyY2hpaSc7CiRsYW5nWydlcnJvcl9hdHRyaWJzZXRfZXhpc3RzJ10gPSAnQXRyeWJ1dCB6IHRha8SFIG5henfEhSBqdcW8IGlzdG5pZWplJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZV9za3UnXSA9ICdabmFsZXppb25vIHpkdXBsaWtvd2FuxIUgd2FydG/Fm8SHIFNLVSc7CiRsYW5nWydlcnJvcl9maWVsZHZhbHVlX2VtcHR5J10gPSAnV2FydG/Fm8SHIHBvbGEgbmllIG1vxbxlIGJ5xIcgcHVzdGEnOwokbGFuZ1snZXJyb3JfZmlsZWZvcm1hdCddID0gJ1Byb2JsZW0geiBmb3JtYXRlbSBwbGlrdSc7CiRsYW5nWydlcnJvcl9maWxlbm90Zm91bmQnXSA9ICdOaWUgb2RuYWxlemlvbm8gcGxpa3UnOwokbGFuZ1snZXJyb3JfZmlsZW9wZW4nXSA9ICdQcm9ibGVtIHBvZGN6YXMgb3R3aWVyYW5pYSBwbGlrdSAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnTmllcHJhd2lkxYJvd3kgZWxlbWVudCBuYWRyesSZZG55IChnYcWCxIXFuiBoaWVyYXJjaGlpIG5pZSBtb8W8ZSBiecSHIHN3b2ltIHfFgmFzbnltIGVsZW1lbnRlbSBuYWRyesSZZG55bSknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9uYW1lJ10gPSAnV2FydG/Fm8SHIHBvbGEgamVzdCBuaWVwb3ByYXduYSAobW/FvGUgemF3aWVyYcSHIHR5bGtvIHpuYWtpIGFsZmFudW1lcnljem5lKSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX3ZhbHVlJ10gPSAnSW52YWxpZCB2YWx1ZSBzcGVjaWZpZWQnOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnV1ltYWdhbnkgcGFyYW1ldHIgamVzdCBuaWVwcmF3aWTFgm93eSBsdWIgcHVzdHknOwokbGFuZ1snZXJyb3JfbmFtZXVzZWQnXSA9ICdFbGVtZW50IHogdGFrxIUgbmF6d8SFIGp1xbwgaXN0bmllamUnOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdQcm9zesSZIHd5YnJhxId0eXAgcG9sYSc7CiRsYW5nWydlcnJvcl9ub25hbWUnXSA9ICdNdXNpc3ogd3Bpc2HEhyBuYXp3xJknOwokbGFuZ1snZXJyb3Jfb25lcXVhbnRpdHlmaWVsZCddID0gJ09ubHkgb25lIHF1YW50aXR5IGZpZWxkIGlzIGFsbG93ZWQnOwokbGFuZ1snZXJyb3Jfb25lc3Vic2NyaXB0aW9uZmllbGQnXSA9ICdPbmx5IG9uZSBzdWJzY3JpcHRpb24gZmllbGQgaXMgYWxsb3dlZCc7CiRsYW5nWydlcnJvcl9wZXJtaXNzaW9uZGVuaWVkJ10gPSAnRG9zdMSZcCB6YWJyb25pb255JzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfYWxpYXN1c2VkJ10gPSAnT2tyZcWbbG9ueSBhbGlhcyBqZXN0IGp1xbwgdcW8eXR5JzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdQcm9kdWt0IHogdGFrxIUgbmF6d8SFIGp1xbwgaXN0bmllamUnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9ub3Rmb3VuZCddID0gJ1RoZSByZXF1ZXN0ZWQgcHJvZHVjdCBjb3VsZCBub3QgYmUgZm91bmQnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9za3V1c2VkJ10gPSAnVGEgd2FydG/Fm8SHIFNLVSBqZXN0IGp1xbwgcHJ6eXBpc2FuYSBpbm5lbXUgcHJvZHVrdG93aSc7CiRsYW5nWydlcnJvcl9wcmljZV9hZGp1c3RtZW50J10gPSAnTmllcHJhd2lkxYJvd2Egem1pYW5hIHdhcnRvxZtjaSBjZW55IGRsYSBlbGVtZW50dSAlcyc7CiRsYW5nWydlcnJvcl9za3VfcmVxdWlyZWQnXSA9ICdXcGlzeiB1bmlrYWxuZSBTS1UnOwokbGFuZ1snZXJyb3JfdXBsb2FkX2ZhaWxlZCddID0gJ1phxYJhZG93YW5pZSBwbGlrdSBuaWUgcG93aW9kxYJvIHNpxJk6ICVzJzsKJGxhbmdbJ2V4Y2x1ZGVfY2F0ZWdvcmllcyddID0gJ0V4Y2x1ZGUgcHJvZHVjdHMgaW4gdGhlIHNlbGVjdGVkIGNhdGVnb3JpZXMgZnJvbSB0aGUgcmVzdWx0cyc7CiRsYW5nWydleHBpcmVfc2l4X21vbnRocyddID0gJ1BvIHN6ZcWbY2l1IG1pZXNpxIVjYWNoJzsKJGxhbmdbJ2V4cGlyZV9vbmVfeWVhciddID0gJ1BvIHJva3UnOwokbGFuZ1snZXhwaXJlX3R3b195ZWFyJ10gPSAnUG8gZHcmb2FjdXRlO2NoIGxhdGFjaCc7CiRsYW5nWydleHRyYTEnXSA9ICdQb2xlIEV4dHJhIDEnOwokbGFuZ1snZXh0cmEyJ10gPSAnUG9sZSBFeHRyYSAyJzsKJGxhbmdbJ2ZpZWxkJ10gPSAnUG9sZSc7CiRsYW5nWydmaWVsZHMnXSA9ICdQb2xhJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRGVmaW5pY2phIHBvbGEnOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnRGVmaW5pY2plIHAmb2FjdXRlO2wnOwokbGFuZ1snZmlsZSddID0gJ1BsaWsnOwokbGFuZ1snZmlsdGVycyddID0gJ0ZpbHRyeSc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICc8PCc7CiRsYW5nWydnZW5lcmFsX3NldHRpbmdzJ10gPSAnVXN0YXdpZW5pYSc7CiRsYW5nWydnbyddID0gJ0dvJzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0hpZXJhcmNoaWEnOwokbGFuZ1snaGllcmFyY2h5X3Bvc2l0aW9uJ10gPSAnUG96eWNqYSB3IGhpZXJhcmNoaWknOwokbGFuZ1snaGllcmFyY2h5X3NldHRpbmdzJ10gPSAnVXN0YXdpZW5pYSBoaWVyYXJjaGlpJzsKJGxhbmdbJ2lkJ10gPSAnSUQnOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnT2JyYXplayc7CiRsYW5nWydpbWFnZV9oYW5kbGluZ19zZXR0aW5ncyddID0gJ1VzdGF3aWVuaWEgb2JzxYJ1Z2kgb2JyYXprJm9hY3V0ZTt3JzsKJGxhbmdbJ2ltcG9ydF9mcm9tX2NzdiddID0gJ1phaW1wb3J0dWogUHJvZHVrdHkgeiBwbGlrdSBDU1YnOwokbGFuZ1snaW5jaGVzJ10gPSAnQ2FsZSc7CiRsYW5nWydpbmNsdWRlX2NoaWxkcmVuJ10gPSAnRG/FgsSFY3p5xIcgZWxlbWVudHkgcG9kcnrEmWRuZT8nOwokbGFuZ1snaW5mb19hbG51bW9ubHknXSA9ICdUeWxrbyB6bmFraSBhbGZhbnVtZXJ5Y3puZSAoYmV6IHNwYWNqaSwgYXBvc3Ryb2Ymb2FjdXRlO3csIGN1ZHp5c8WCb3cmb2FjdXRlO3csIHBvbHNraWNoIHpuYWsmb2FjdXRlO3cpJzsKJGxhbmdbJ2luZm9fYXR0cmlidGVtcGxhdGUnXSA9ICdNb8W8bGl3ZSB3YXJ0b8WbY2kgdG86IHskYXR0cmliX3RleHR9LHskYXR0cmliX2FkanVzdH0seyRjdXJyZW5jeV9zeW1ib2x9JzsKJGxhbmdbJ2luZm9fYXR0cmlidXRlc19jb3BpZWQnXSA9ICdBdHJ5YnV0eSBza29waW93YW5lJzsKJGxhbmdbJ2luZm9fYXV0b3dhdGVybWFyayddID0gJ1VzdGF3aWVuaWEgem5hayZvYWN1dGU7dyB3b2RueWNoIHPEhSBwb2JpZXJhbmUgeiBtb2R1xYJ1IENHRXh0ZW5zaW9ucyc7CiRsYW5nWydpbmZvX2JhdGNoc2l6ZSddID0gJ1NldCB0aGUgbnVtYmVyIG9mIGxpbmVzIHRvIHByb2Nlc3MgcGVyICZxdW90O2JhdGNoJnF1b3Q7LiAgQWZ0ZXIgYSBiYXRjaCBpcyBjb21wbGV0ZSwgdGhlIGltcG9ydGVyIHdpbGwgcmVkaXJlY3QsIGFuZCByZXN1bWUgb3BlcmF0aW9ucy4gIElmIHlvdSBhcmUgZXhwZXJpZW5jaW5nIG1lbW9yeSBlcnJvcnMsIG9yIHRpbWVvdXQgcHJvYmxlbXMgZHVlIHRvIGxhcmdlIGFtb3VudHMgb2YgcHJvY2Vzc2luZywgeW91IG1heSBuZWVkIHRvIGNvbnN1bHQgeW91ciBob3N0IHByb3ZpZGVyLCBvciByZWR1Y2UgdGhpcyBudW1iZXInOwokbGFuZ1snaW5mb19jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdUaGVzZSBwYXJhbWV0ZXJzIGFyZSBnaXZlbiB0byB0aGUgc2VsZWN0ZWQgY2FydCBtb2R1bGUgZnJvbSB0aGUgcHJvZHVjdCBkZXRhaWwgYW5kIHN1bW1hcnkgZGlzcGxheXMnOwokbGFuZ1snaW5mb19jb3B5X2F0dHJpYnNldHMnXSA9ICdUaGlzIGFjdGlvbiB3aWxsIGNvcHkgQXR0cmlidXRlIHNldHMgKGV4Y2x1ZGluZyBza3UgdmFsdWVzKSBmcm9tIGFub3RoZXIgcHJvZHVjdC4nOwokbGFuZ1snaW5mb19jcmVhdGVmaWVsZHMnXSA9ICdDcmVhdGUgdW5rbm93biBwcm9kdWN0IGZpZWxkcyBhdXRvbWF0aWNhbGx5PyA8ZW0+KFRoZXkgd2lsbCBiZSBjcmVhdGVkIGFzIHRleHQgZmllbGRzKTwvZW0+JzsKJGxhbmdbJ2luZm9fY3JlYXRlY2F0ZWdvcmllcyddID0gJ0F1dG9tYXRpY2FsbHkgY3JlYXRlIHByb2R1Y3QgY2F0ZWdvcmllcyB0byBtYXRjaCB0aG9zZSBvZiB0aGUgQ1NWIGZpbGUsIGlmIGl0IGRvZXMgbm90IGFscmVhZHkgZXhpc3QnOwokbGFuZ1snaW5mb19jcmVhdGVoaWVyYXJjaHknXSA9ICdBdXRvbWF0aWNhbGx5IGNyZWF0ZSBwcm9kdWN0IGhpZXJhcmNoaWVzIHRvIG1hdGNoIHRob3NlIG9mIHRoZSBDU1YgZmlsZSBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0JzsKJGxhbmdbJ2luZm9fZGVjaW1hbF91bml0cyddID0gJ1RoaXMgc3lzdGVtIHVuZGVyc3RhbmRzICguKSBhcyB0aGUgZGVjaW1hbCBwb2ludCBzZXBhcmF0b3IuIGkuZS46IDxzdHJvbmc+NS4yNTwvc3Ryb25nPic7CiRsYW5nWydpbmZvX2RlbGltaXRlciddID0gJ1NwZWNpZnkgdGhlIGNoYXJhY3RlciAob3IgY2hhcmFjdGVycykgdGhhdCBzZXBlcmF0ZSBlYWNoIGZpZWxkJzsKJGxhbmdbJ2luZm9fZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdTcGVjaWZ5IGhvdyB0aGUgc3lzdGVtIHNob3VsZCBoYW5kbGUgYSBwcm9kdWN0IHdob3MgbmFtZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgQ1NWIGZpbGUnOwokbGFuZ1snaW5mb19maWVsZGRlZnNfdGFiJ10gPSAnPHN0cm9uZz5Vd2FnYTogPC9zdHJvbmc+IFdzenlzdGtpZSBwb2xhIHpkZWZpbmlvd2FuZSB0dXRhaiBzxIUgZG9zdMSZcG5lIGRsYSB3c3p5c3RraWNoIHByb2R1a3Qmb2FjdXRlO3cuJzsKJGxhbmdbJ2luZm9fZmllbGRwcm9ibGVtcyddID0gJ1d5c3TEhXBpxYJ5IHByb2JsZW15IHogb2JzxYJ1Z8SFIGplZG5lZ28gbHViIHdpxJljZWogcCZvYWN1dGU7bCB6ZGVmaW5pb3dhbnljaC4gQWtjamEgem9zdGHFgmEgcHJ6ZXByb3dhZHpvbmEgcG9wcmF3bmllLCBqZWRuYWsgcG93aW5pZW5lxZsgc3ByYXdkemnEhyBjenkgd3N6eXN0a28gamVzdCB3IHBvcnrEhWRrdSc7CiRsYW5nWydpbmZvX2hhbmRsZWltYWdlcyddID0gJ1Vwb24gaW1wb3J0LCBpZiBhbiBpbWFnZSBmaWxlbmFtZSBpcyBmb3VuZCBpbiBhIGZpZWxkIGNvbHVtbiwgc2hvdWxkIGl0IGJlIG1vdmVkIGZyb20gdGhlIHNvdXJjZSBsb2NhdGlvbiwgd2F0ZXJtYXJrZWQsIHRodW1ibmFpbGVkLCBhbmQgdGhlIGZpZWxkIHR5cGUgY2hhbmdlZCB0byAmcXVvdDtpbWFnZSZxdW90Oyc7CiRsYW5nWydpbmZvX2hpZXJwYWdlJ10gPSAnVXNlIHRoaXMgcGFnZSBmb3IgaGllcmFyY2h5IHZpZXdzLiAgVGhlIHBhZ2VpZCB3aWxsIG5vdCBiZSBzcGVmaXJpZWQgb24gdGhlIFVSTC4nOwokbGFuZ1snaW5mb19pbWFnZXBhdGgnXSA9ICdUaGUgcGF0aCAocmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyZWN0b3J5KSB3aGVyZSBpbWFnZXMgcmVmZXJyZWQgdG8gaW4gdGhlIGltcG9ydCBmaWxlLCBjYW4gYmUgZm91bmQnOwokbGFuZ1snaW5mb19pbWFnZXN0dWZmX2RlcHJlY2F0ZWQnXSA9ICdLb253ZXJ0b3dhbmllIG9icmF6ayZvYWN1dGU7dyBqZXN0IHByemVzdGFyemHFgmUgaSB6b3N0YW5pZSB1c3VuacSZdGUgdyBub3dzenljaCB3ZXJzamFjaC4gVcW8eWogQ0dTbWFydEltYWdlIGRsYSBrb253ZXJ0b3dhbmlhIG9icmF6ayZvYWN1dGU7dyB3IGxvY2llLic7CiRsYW5nWydpbmZvX2ltcG9ydF90ZXN0X3Bhc3NlZCddID0gJ0EgYnJpZWYgdGVzdCBhcyBiZWVuIHBlcmZvcm1lZCBvbiB0aGUgaW5wdXQgZmlsZSBzcGVjaWZpZWQsIGFuZCBldmVyeXRoaW5nIGFwcGVhcnMgdG8gYmUgY29ycmVjdC48YnIvPlRoaXMgaXMgbm8gaW5kaWNhdGlvbiB0aGF0IHRoZXJlIGFyZSBubyBlcnJvcnMgaW4gdGhlIGZpbGUuJzsKJGxhbmdbJ2luZm9fcHJldHR5aGllcnVybHMnXSA9ICdJbmNsdWRlIHRoZSBoaWVyYXJjaHkgaXRlbSBuYW1lIG9uIHRoZSBVUkwnOwokbGFuZ1snaW5mb19wcmljZV9hZGp1c3RtZW50J10gPSAnUG9wcmF3bmUgd2FydG/Fm2NpIHBvbGEgdG8gKy0qIy4jIyc7CiRsYW5nWydpbmZvX3Byb2Rub3Rmb3VuZCddID0gJ1RoaXMgb3B0aW9uIGRldGVybWluZXMgdGhlIGJlaGF2aW91ciBvZiB0aGUgd2Vic2l0ZSBpZiBhIHByb2R1Y3QgZGV0YWlsIHZpZXcgaXMgYWNjZXNzZWQgZGlyZWN0bHkgYnkgVVJMLCBhbmQgdGhhdCBwcm9kdWN0IGZvciB3aGF0ZXZlciByZWFzb24gKGRpc2FibGVkLCBkZWxldGVkLCBldGMpIGNhbm5vdCBiZSBhY2Nlc3NlZC4nOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gJ1BvbGEgcHVibGljem5lIHPEhSB3aWRvY3puZSBkbGEgd3N6eXN0a2ljaCc7CiRsYW5nWydpbmZvX3Jlb3JkZXJfY29udGVudCddID0gJ1RoaXMgb3BlcmF0aW9uIGFsbG93cyBkcmFnZ2luZyB0aGUgaW5kaXZpZHVhbCBub2RlcyBpbiB0aGUgdHJlZSB0byBhZGp1c3QgdGhlIG9yZGVyIHRoYXQgdGhleSB3aWxsIGJlIGRpc3BsYXllZCBpbiBpbiB0aGUgaGllcmFyY2h5IHZpZXcnOwokbGFuZ1snaW5mb19zZXRlY29taGFuZGxlcnMnXSA9ICdUaGlzIGJ1dHRvbiB3aWxsIGVuc3VyZSB0aGF0IGV2ZW50IGhhbmRsZXJzIGZvciBlY29tbWVyY2UgZXZlbnRzIGFyZSBpbiBwbGFjZS4gIFRoaXMgaXMgdXNlZnVsIGlmIGFza2luZyB0aGUgcHJvZHVjdHMgbW9kdWxlIHRvIGtlZXAgdHJhY2sgb2YgYSBxdWFudGl0eSBvbiBoYW5kLCBidXQgdGhlIGV2ZW50IGhhbmRsZXJzIGRpZCBub3QgZ2V0IGNyZWF0ZWQgZHVyaW5nIGluc3RhbGwgb3IgdXBncmFkZSc7CiRsYW5nWydsYWJlbCddID0gJ0V0eWtpZXRhJzsKJGxhbmdbJ2xhYmVsX3NraXAnXSA9ICdQb21pxYQnOwokbGFuZ1snbGFiZWxfb3ZlcndyaXRlJ10gPSAnTmFkcGlzeic7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xhc3RfbW9kaWZpZWQnXSA9ICdPc3RhdG5pYSBtb2R5ZmlrYWNqYSc7CiRsYW5nWydsb2dvdGV4dCddID0gJ0RydWdpIG9icmF6ZWsnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWFrc3ltYWxuYSBkxYJ1Z2/Fm8SHIDxlbT4oZG90eWN6eSB0eWxrbyBwJm9hY3V0ZTtsIHRla3N0b3d5Y2gpPC9lbT4nOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnRGF0YSBtb2R5ZmlrYWNqaSc7CiRsYW5nWydtb2R1bGVfZGVzY3JpcHRpb24nXSA9ICdNb2R1xYIgcG96d2FsYWrEhWN5IG5hIHN0d29yemVuaWUga2F0YWxvZ3UgcHJvZHVrdCZvYWN1dGU7dyB6IGNlbmFtaSwgemRqxJljaWFtaSBpdHAuIFBvendhbGEgdGFrxbxlIG5hIHR3b3J6ZW5pZSBrb3N6eWthLic7CiRsYW5nWydtb3ZlX2Rvd24nXSA9ICdQcnplc3XFhCB3IGQmb2FjdXRlO8WCJzsKJGxhbmdbJ21vdmVfdXAnXSA9ICdQcnplc3XFhCB3IGcmb2FjdXRlO3LEmSc7CiRsYW5nWydtc2dfZXZlbnRoYW5kbGVyc19jcmVhdGVkJ10gPSAnT2JzxYJ1Z2EgemRhcnplxYQgc3R3b3J6b25hJzsKJGxhbmdbJ25hbWUnXSA9ICdOYXp3YSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ05pZSBwb3NpYWRhc3ogd3ltYWdhbmVnbyB1cHJhd25pZW5pYTogJXMnOwokbGFuZ1snbmV3X2NhdGVnb3J5X25hbWUnXSA9ICdOb3dhIG5hendhIGthdGVnb3JpaSc7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbm8nXSA9ICdOaWUnOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICdOaWUgcG9kYW5vIG5hend5JzsKJGxhbmdbJ25vbmUnXSA9ICdCcmFrJzsKJGxhbmdbJ25vdGhpbmdfc2VsZWN0ZCddID0gJ05pYyBuaWUgemF6bmFjem9ubyc7CiRsYW5nWydvZiddID0gJ3onOwokbGFuZ1snb3BlcmF0aW9uX2NhbmNlbGxlZCddID0gJ09wZXJhY2phIGFudWxvd2FuYSc7CiRsYW5nWydvcGVyYXRpb25fY29tcGxldGUnXSA9ICdPcGVyYWNqYSB6YWtvxYRjem9uYSc7CiRsYW5nWydwYWdlJ10gPSAnU3Ryb25hJzsKJGxhbmdbJ3BhZ2Vfb2YnXSA9ICdTdHJvbmEgJXMgeiAlcyc7CiRsYW5nWydwYWdlX2xpbWl0J10gPSAnTGltaXQgbmEgc3Ryb27EmSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTU3BlY2lmeSB0aGUgYmVoYXZpb3VyIG9mIHRoZSBtb2R1bGUuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+aGllcmFyY2h5IC0tIERpc3BsYXkgYSBwcm9kdWN0IGxpc3QgYnkgaGllcmFyY2h5PC9saT4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtIERpc3BsYXkgYSBsaXN0IG9mIHByb2R1Y3QgY2F0ZWdvcmllczwvbGk+DQogIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gRGlzcGxheSBhIHN1bW1hcnkgb2YgcHJvZHVjdHM8L2xpPg0KICA8bGk+ZGV0YWlscyAtIERpc3BsYXkgYSBkZXRhaWwgdmlldyBvZiBhIHNpbmdsZSBwcm9kdWN0PC9saT4NCiAgPGxpPmZpZWxkbGlzdCAtIERpc3BsYXkgYSBsaXN0IG9mIHZhbHVlcyBmcm9tIGEgc3BlY2lmaWVkIGZpZWxkLg0KICAgICA8cD4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOy0gVGhpcyBhY3Rpb24gY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGEgbmF2aWdhdGlvbiBmcm9tIHRoZSB2YWx1ZXMgb2YgYSBzcGVjaWZpYyBmaWVsZC4gIGkuZTogIHlvdSBjb3VsZCBjcmVhdGUgYSBjdXN0b20gZHJvcGRvd24gZmllbGQgY2FsbGVkICZhbXA7cXVvdDtjb2xvciZhbXA7cXVvdDsgYW5kIHRoZW4gY3JlYXRlIGEgbmF2aWdhdGlvbiBiYXNlZCBvbiB0aGUgZGlmZmVyZW50IGNvbG9ycy4NCiAgICAgPC9wPg0KICA8L2xpPg0KICA8bGk+c2VhcmNoIC0gRGlzcGxheSBhIGZvcm0gdG8gYWxsb3cgc2VhcmNoaW5nIHByb2R1Y3RzIG9uIHZhcmlvdXMgY3JpdGVyaXVtPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnV2hlbiB1c2VkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIsIHdoaWNoIHNob3VsZCBtYXRjaCB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyBjYXRlZ29yeSB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBvbmx5IHRob3NlIHByb2R1Y3RzIHRoYXQgYXJlIGluIHRoYXQgY2F0ZWdvb3J5LiAoYSBjb21tYSBzZXBlcmF0ZWQgbGlzdCBjYW4gYmUgc3VwcGxpZWQpLiAgVGhpcyBwYXJhbWV0ZXIgY2FuIGFsc28gYmUgdXNlZCB3aXRoIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uIHRvIGxpbWl0IHRoZSBvdXRwdXQgdG8gdGhlIHNwZWNpZmllZCBwcm9kdWN0IGNhdGVnb3JpZXMuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5ZmllbGQnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlICZxdW90O2NhdGVnb3J5bGlzdCZxdW90OyBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGZpbHRlciBjYXRlZ29yaWVzIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiBhIGNhdGVnb3J5IGZpZWxkLiAgSXQgd2lsbCBub3Qgd29yayBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAmcXVvdDtjYXRlZ29yeSZxdW90OyBvciAmcXVvdDtjYXRlZ29yeV9pZCZxdW90OyBwYXJhbWV0ZXJzLiAgIFRoZSBzeW50YXggb2YgdGhpcyBwYXJhbWV0ZXIgaXMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBmaWVsZCBuYW1lcywgYW5kIGZpZWxkIHZhbHVlcy4gIGkuZTogIGNhdGVnb3J5bGlzdD0mcXVvdDtmaWVsZCBuYW1lOnZhbHVlLGZpZWxkIG5hbWUgMjp2YWx1ZSAyJnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdGR0bHRlbXBsYXRlJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRpc3BsYXkgb2YgdGhlIGNhdGVnb3J5IGRldGFpbHMuICBUaGlzIHVzZXMgYSBjYXRlZ29yeSBsaXN0IHRlbXBsYXRlLi4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdUaGlzIHNwZWNpZmllcyB0aGUgcGFnZWlkIG9yIGFsaWFzIHRoYXQgc2hvdWxkIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgZGV0YWlsIHJlcG9ydC4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkZXRhaWwgbW9kZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2V4Y2x1ZGVjYXQnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgKHN1bW1hcnkpIHZpZXcsIHRoaXMgcGFyYW1ldGVyIHdpbGwgYWxsb3cgZXhjbHVkaW5nIHByb2R1Y3RzIHRoYXQgYXJlIGluIGEgc3BlY2lmaWMgY2F0ZWdvcnkgZnJvbSB0aGUgcmVzdWx0LiBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGNhdGVnb3J5IG5hbWVzIGlzIGFsbG93ZWQuIFRoaXMgcGFyYW1ldGVyIGNhbiB3b3JrIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGNhdGVnb3J5IHBhcmFtZXRlciB0byBwcm92aWRlIGEgbGlzdCBvZiB0aGUgcHJvZHVjdHMgdGhhdCBhcmUgaW4gdGhpcyBjYXRlZ29yeSwgYnV0IG5vdCBpbiB0aGF0IGNhdGVnb3J5JzsKJGxhbmdbJ3BhcmFtX2ZpZWxkJ10gPSAnVXNlZCBvbmx5IGluIHRoZSA8ZW0+ZmllbGRsaXN0PC9lbT4gdGhpcyBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgdG8gc3BlY2lmeSB0aGUgbmFtZSBvZiBhIHVzZXIgZGVmaW5lZCBwcm9wZXJ0eSB0byBjcmVhdGUgYSBsaXN0IGZyb20uJzsKJGxhbmdbJ3BhcmFtX2ZpZWxkdmFsJ10gPSAnVXNlZCBvbmx5IGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBmaWVsZCB2YWx1ZSB0byBsaW1pdCByZXN1bHRzIGJ5LiAgU3BlY2lhbCB2YWx1ZXMgZm9yIHRoaXMgZmllbGQgYXJlICZxdW90Ozo6bnVsbDo6JnF1b3Q7ICZxdW90Ozo6bm90bnVsbDo6JnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeSddID0gJ1VzZWZ1bCBvbmx5IGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgb25seSBpdGVtcyBpbiB0aGF0IGxvY2F0aW9uIG9mIHRoZSBoaWVyYXJjaHkgc2hvdWxkIGJlIGRpc3BsYXllZC4gIFdpbGRjYXJkIGNoYXJhY3RlciBjYW4gYmUgdXNlZCBzbyB0aGF0IHlvdSBjYW4gc3BlY2lmeSBwYXJlbnQvY2hpbGQgcmVsYXRpb25zaGlwcyBhcyB3ZWxsLiAgaS5lIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7dHJ1Y2tzKiYjMDM5O30gd2lsbCBjcmVhdGUgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBpbmNsdWRpbmcgdGhlIGNoaWxkcmVuIGluIHRoZSBoaWVyYXJjaHkuICBTaW1pbGFybHksIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7KnRydWNrcyYjMDM5O30gd2lsbCBkaXNwbGF5IGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgYW5kIGFsbCBwcm9kdWN0cyBiZWxvZ2luZyB0byBhbnkgcGFyZW50IGluIHRoZSBoaWVyYXJjaHkuJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeXRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgaGllcmFyY2h5IGRpc3BsYXkuIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhhdCB0aGUgb3V0cHV0IG9mIHRoZSBzdW1tYXJ5IHZpZXcgc2hvdWxkIGJlIGRpc3BsYXllZCBpbmxpbmUnOwokbGFuZ1sncGFyYW1fcGFnZWxpbWl0J10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBvciBzZWFyY2ggYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBsaXN0ZWQgb24gZWFjaCBwYWdlLic7CiRsYW5nWydwYXJhbV9wYXJlbnQnXSA9ICdVc2VmdWwgb25seSBpbiB0aGUgPGVtPmhpZXJhcmNoeTwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBoaWVyYXJjaHkgaWQgb2YgdGhlIHN0YXJ0aW5nIGxvY2F0aW9uIG9mIHRoZSByZXBvcnQuJzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RpZCddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGRldGFpbCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB3aGF0IHByb2R1Y3QgdG8gdXNlIGZvciB0aGUgZGlzcGxheS4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGxpc3QnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgKHN1bW1hcnkpIHZpZXcsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgaW50ZWdlciBwcm9kdWN0IGlkcyB0byBkaXNwbGF5LiAgTm8gcGFnaW5hdGlvbiBvciBzb3J0aW5nIGlzIHBlcmZvcm1lZCBvbiB0aGVzZSB2YWx1ZXMsIGFuZCBpZiBzcGVjaWZpZWQgdGhlIG90aGVyIGZpbHRlcmluZyBwYXJhbWV0ZXJzIHRvIHRoZSBzdW1tYXJ5IHZpZXcgYXJlIGlnbm9yZWQuJzsKJGxhbmdbJ3BhcmFtX3Jlc3VsdHBhZ2UnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCwgYW5kIGNhdGVnb3J5IGxpc3QgYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGEgcGFnZSBpZCBvciBhbGlhcyB0byB1c2UgdG8gZGlzcGxheSB0aGUgc3VtbWFyeSByZXN1bHRzJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZpZWxkJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBtYXkgY29udGFpbiBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGZpZWxkIG5hbWVzIHRvIGluY2x1ZGUgaW4gdGhlIHNlYXJjaCc7CiRsYW5nWydwYXJhbV9zZWFyY2hmb3JtdGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXNwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCBzZWFyY2ggZm9ybSB0ZW1wbGF0ZSc7CiRsYW5nWydwYXJhbV9zaG93YWxsJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBjYXRlZ29yeWxpc3QgYW5kIGZpZWxkbGlzdCBhY3Rpb25zLCBpZiB0aGlzIHBhcmFtZXRlciBpcyBzZXQgdG8gYSBub24gMCBpbnRlZ2VyIHZhbHVlIGFsbCBjYXRlZ29yaWVzIChldmVuIHRob3NlIHdpdGhvdXQgcHJvZHVjdHMpIHdpbGwgYmUgZGlzcGxheWVkLic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcGVjaWZ5IHRoZSBvcmRlciBvZiBzb3J0ZWQgZmllbGRzIGluIHN1bW1hcnkgdmlldy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBBc2NlbmRpbmcgb3JkZXI8L2xpPg0KICA8bGk+ZGVzYyAtLSBEZXNjZW5kaW5nIG9yZGVyPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gJ0FwcGxpY2FibGUgaW4gdGhlIHN1bW1hcnksIGNhdGVnb3J5bGlzdCBvciBzZWFyY2ggYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgZGV0ZXJtaW5lcyB0aGUgc29ydGluZyBvZiB0aGUgb3V0cHV0LiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+cHJvZHVjdF9uYW1lPC9zdHJvbmc+PC9saT4NCiAgPGxpPmlkIC0tIFRoZSBwcm9kdWN0IGlkPC9saT4NCiAgPGxpPndlaWdodCAtLSBUaGUgcHJvZHVjdCB3ZWlnaHQ8L2xpPg0KICA8bGk+cHJpY2UgLS0gVGhlIHByb2R1Y3QgYmFzZSBwcmljZTwvbGk+DQogIDxsaT5zdGF0dXMgLS0gRHJhZnQgb3IgcHVibGlzaGVkPC9saT4NCiAgPGxpPnJhbmRvbSAtLSBEaXNwbGF5IGluIHJhbmRvbSBvcmRlciBvbiBlYWNoIHJlcXVlc3Q8L2xpPg0KICA8bGk+Y3JlYXRlZCAtLSBUaGUgY3JlYXRpb24gZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQogIDxsaT5tb2RpZmllZCAtLSBUaGUgbW9kaWZpZWQgZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQogIDxsaT5mOmZpZWxkbmFtZSAtLSBBbGxvd3Mgc29ydGluZyBieSB2YWx1ZXMgb2YgY3VzdG9tIGZpZWxkcy48L2xpPg0KPC91bD4NCjxwPlRoZSBjYXRlZ29yeSBsaXN0IHZpZXcgc3VwcG9ydHMgb25seSBhIGZldyBzcGVjaWZpYyBzb3J0aW5nIG9wdGlvbnM6PC9wPg0KPHVsPg0KICA8bGk+aWQgLS0gVGhlIGNhdGVnb3J5IGlkLjwvbGk+DQogIDxsaT48c3Ryb25nPm5hbWU8L3N0cm9uZz4gLS0gVGhlIGNhdGVnb3J5IG5hbWUuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnR0eXBlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IHN1bW1hcnkgdmlldywgdGhpcyBwYXJhbWV0ZXIgaXMgdXNlZCB0byBjb252ZXJ0IHRoZSB2YWx1ZXMgdG8gYW5vdGhlciB0eXBlIGZvciBzb3J0aW5nLiAgdmFsaWQgdmFsdWVzIGFyZSBTVFJJTkcsU0lHTkVEIGFuZCBVTlNJR05FRC4gIElmIG5vdCBzdXBwbGllZCB0aGUgZGVmYXVsdCBTVFJJTkcgdHlwZSBpcyBhc3N1bWVkLic7CiRsYW5nWydwYXJhbV9zdW1tYXJ5cGFnZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgYWN0aW9uPWhpZXJhcmNoeSwgYWxsb3dzIHNwZWNpZnlpbmcgYSBwYWdlIGlkIG9yIGFsaWFzIHRoYXQgd2lsbCBiZSB1c2VkIGZvciBhbnkgbGlua3MgdG8gc3VtbWFyeSB2aWV3JzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIHN1bW1hcnkgbW9kZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmVudCddID0gJ0VsZW1lbnQgbmFkcnrEmWRueSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ01vZHXFgiBLYXRhbG9nIHByb2R1a3Qmb2FjdXRlO3cgem9zdGHFgiBwb215xZtsbmllIHphaW5zdGFsb3dhbnknOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ01vZHXFgiBLYXRhbG9nIHByb2R1a3Qmb2FjdXRlO3cgem9zdGHFgiBvZGluc3RhbG93YW55Lic7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1VzdGF3aWVuaWEnOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnVXN1bmnEmWNpZSB0ZWdvIG1vZHXFgnUgc3Bvd29kdWplIHVzdW5pxJljaWUgd3N6eXN0a2ljaCBkYW55Y2gga2F0YWxvZ3UuIEN6eSBuYXBld25vIGNoY2VzeiBrb250eW51b3dhxIc/JzsKJGxhbmdbJ3ByaWNlJ10gPSAnQ2VuYSc7CiRsYW5nWydwcmljZV9hZGp1c3RtZW50J10gPSAnWm1pYW5hIGNlbnknOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb2R1Y3QnXSA9ICdQcm9kdWt0JzsKJGxhbmdbJ3Byb2R1Y3RuYW1lJ10gPSAnTmF6d2EgcHJvZHVrdHUnOwokbGFuZ1sncHJvZHVjdHMnXSA9ICdQcm9kdWt0eSc7CiRsYW5nWydwcm9kdWN0X2RldGFpbF9zZXR0aW5ncyddID0gJ1VzdGF3aWVuaWEgc3pjemVnJm9hY3V0ZTvFgiZvYWN1dGU7dyBwcm9kdWt0Jm9hY3V0ZTt3JzsKJGxhbmdbJ3Byb2R1Y3RfZWRpdGluZ19zZXR0aW5ncyddID0gJ1VzdGF3aWVuaWEgZWR5Y2ppIHByb2R1a3Qmb2FjdXRlO3cnOwokbGFuZ1sncHJvZHVjdF9zdW1tYXJ5X3NldHRpbmdzJ10gPSAnVXN0YXdpZW5pYSB3aWRva3Ugb2cmb2FjdXRlO2xuZWdvJzsKJGxhbmdbJ3Byb2R1Y3RfaGllcmFyY2h5J10gPSAnSGllcmFyY2hpYSBwcm9kdWt0Jm9hY3V0ZTt3JzsKJGxhbmdbJ3Byb2R1Y3RfaW5mbyddID0gJ0luZm9ybWFjamUgbyBwcm9kdWtjaWUnOwokbGFuZ1sncHJvZHVjdF9tYW5hZ2VyJ10gPSAnS2F0YWxvZyBwcm9kdWt0Jm9hY3V0ZTt3JzsKJGxhbmdbJ3Byb2dyZXNzJ10gPSAnUHJvZ3Jlc3MnOwokbGFuZ1sncHJvbXB0J10gPSAnWmFjaMSZdGEnOwokbGFuZ1sncHJvbXB0X2FkZF9hdHRyaWJzZXQnXSA9ICdBZGQvRWRpdCBBdHRyaWJ1dGUgU2V0JzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ZpbGV0eXBlcyddID0gJ1Bvencmb2FjdXRlO2wgbmEgdXBsb2FkIHBsaWsmb2FjdXRlO3cgdGVnbyB0eXB1IChkbGEgcCZvYWN1dGU7bCB0eXB1IHBsaWspJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ltYWdldHlwZXMnXSA9ICdQb3p3Jm9hY3V0ZTtsIG5hIHVwbG9hZCBvYnJhemsmb2FjdXRlO3cgdGVnbyB0eXB1IChkbGEgcCZvYWN1dGU7bCB0eXB1IG9icmF6ZWspJzsKJGxhbmdbJ3Byb21wdF9hdHRyaWJ0ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGZvciBkaXNwbGF5IG9mIHByb2R1Y3QgYXR0cmlidXRlIHZhbHVlcyBpbiBkcm9wZG93bic7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbCddID0gJ1R3Jm9hY3V0ZTtyeiBhdXRvbWF0eWN6bmllIG1pbmlhdHVyeSBvYnJhemsmb2FjdXRlO3cnOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWxfc2l6ZSddID0gJ01ha3N5bWFsbnkgcm96bWlhciAobmFqZMWCdcW8c3p5IGJvaykgbWluaWF0dXJraS4nOwokbGFuZ1sncHJvbXB0X2F1dG9wcmV2aWV3aW1nJ10gPSAnQXV0b21hdHljem5pZSB0dyZvYWN1dGU7cnogb2JyYXpraSBwb2dsxIVkb3dlJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZ19zaXplJ10gPSAnTWFrc3ltYWxueSByb3ptaWFyIChuYWpkxYJ1xbxzenkgYm9rKSBvYnJhemthIHBvZ2zEhWRvd2Vnby4nOwokbGFuZ1sncHJvbXB0X2F1dG93YXRlcm1hcmsnXSA9ICdBdXRvbWF0eWN6bmllIG5ha8WCYWRhaiB6bmFraSB3b2RuZSBuYSDFgmFkb3dhbmUgb2JyYXpraSc7CiRsYW5nWydwcm9tcHRfYXBwbGljYWJsZSddID0gJ1fFgsSFY3ogZG9tecWbbG5pZSBkbGEgbm93eWNoIHByb2R1a3Qmb2FjdXRlO3cnOwokbGFuZ1sncHJvbXB0X2JhdGNoc2l6ZSddID0gJ0JhdGNoIFNpemUnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlJ10gPSAnQ2FydCBNb2R1bGUnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ0NhcnQgTW9kdWxlIFBhcmFtZXRlcnMnOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWNhdGVnb3JpZXMnXSA9ICdDcmVhdGUgQ2F0ZWdvcmllcyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlZmllbGRzJ10gPSAnQ3JlYXRlIFByb2R1Y3QgRmllbGRzPyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlaGllcmFyY2h5J10gPSAnQ3JlYXRlIFByb2R1Y3QgSGllcmFyY2h5JzsKJGxhbmdbJ3Byb21wdF9jc3ZmaWxlJ10gPSAnV2dyYWogcGxpayBDU1YnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5Y29kZSddID0gJ0tvZCB3YWx1dHknOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAnU3ltYm9sIHdhbHV0eSc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF9zdGF0dXMnXSA9ICdEb215xZtsbnkgc3RhdHVzIHdzenlzdGtpY2ggbm93eWNoIHByb2R1a3Qmb2FjdXRlO3cnOwokbGFuZ1sncHJvbXB0X2RlZmF1bHRfdGF4YWJsZSddID0gJ0RvbXnFm2xuaWUgd3N6eXN0a2llIG5vd2UgcHJvZHVrdHkgc8SFIG9wb2RhdGtvd2FuZSc7CiRsYW5nWydwcm9tcHRfZGVsZXRlcHJvZHVjdGZpbGVzJ10gPSAnU2thc293YcSHIHdzenlzdGtpZSBwbGlraSB6d2nEhXphbmUgeiBwcm9kdWt0ZW0gZ2R5IGplc3Qgb24ga2Fzb3dhbnk/JzsKJGxhbmdbJ3Byb21wdF9kZWxpbWl0ZXInXSA9ICdGaWVsZCBEZWxpbWl0ZXInOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdEb215xZtsbmEgc3Ryb25hIHdpZG9rdSBzemN6ZWcmb2FjdXRlO8WCb3dlZ28nOwokbGFuZ1sncHJvbXB0X2RldGFpbHNmb3InXSA9ICdEZXRhaWxzIGZvciAlcyc7CiRsYW5nWydwcm9tcHRfZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdIb3cgdG8gaGFuZGxlIGR1cGxpY2F0ZSBwcm9kdWN0cz8nOwokbGFuZ1sncHJvbXB0X2ZhbHNlJ10gPSAnRmHFgnN6JzsKJGxhbmdbJ3Byb21wdF9oYW5kbGVpbWFnZXMnXSA9ICdIYW5kbGUgaW1hZ2VzPyc7CiRsYW5nWydwcm9tcHRfaW1hZ2VwYXRoJ10gPSAnSW1hZ2UgUGF0aCc7CiRsYW5nWydwcm9tcHRfbGVuZ3RodW5pdHMnXSA9ICdKZWRub3N0a2kgbWlhcnknOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX2JlaGF2aW9yJ10gPSAnQ28genJvYmnEhywgamXFvGVsaSBwcm9kdWt0IG5pZSBtb8W8ZSB6b3N0YcSHIHd5xZt3aWV0bG9ueT8nOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzQwNCddID0gJ0dlbmVydWogYsWCxIVkIDQwNCc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfMzAxJ10gPSAnR2VuZXJ1aiBwcnpla2llcm93YW5pZSAzMDEnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX2Vycm9ybXNnJ10gPSAnV3nFm3dpZXRsIHdpYWRvbW/Fm8SHIG8gYsWCxJlkemllJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9tc2cnXSA9ICdFcnJvciBtZXNzYWdlIGZvciB3aGVuIGEgcHJvZHVjdCBjYW5ub3QgYmUgZm91bmQnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX3BhZ2UnXSA9ICdQYWdlIHRvIGRvIHBlcm1hbmVudCByZWRpcmVjdCB0bz8nOwokbGFuZ1sncHJvbXB0X2hpZXJwYWdlJ10gPSAnRG9tecWbbG5hIHN0cm9uYSBkbGEgd2lkb2t1IGhpZXJhcmNoaWknOwokbGFuZ1sncHJvbXB0X3ByZXR0eWhpZXJ1cmxzJ10gPSAnVXNlIFByZXR0eSBVUkxTIHRvIEhpZXJhcmNoeSBWaWV3cyc7CiRsYW5nWydwcm9tcHRfcHJvZF9kZXRhaWxwYWdlJ10gPSAnRGVmYXVsdCBQYWdlIGZvciBQcm9kdWN0IERldGFpbCBWaWV3cyc7CiRsYW5nWydwcm9tcHRfcHJvZHVjdHNfbWF0Y2hpbmcnXSA9ICdQcm9kdWN0cyBtYXRjaGluZyAlcyc7CiRsYW5nWydwcm9tcHRfc2t1X3JlcXVpcmVkJ10gPSAnU0tVIGlzIHJlcXVpcmVkIGZvciBhbGwgcHJvZHVjdHMgYW5kIGF0dHJpYnV0ZXMnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlwYWdlbGltaXQnXSA9ICdEb215xZtsbnkgbGltaXQgc3Ryb24gdyB3aWRva3UgcG9kc3Vtb3dhbmlhJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnRG9tecWbbG5hIGtvbGVqbm/Fm8SHIHNvcnRvd2FuaWEgdyB3aWRva3UgbGlzdHknOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnRG9tecWbbG5lIHBvbGUgdcW8eXdhbmUgZG8gc29ydG93YW5pYSB3IHdpZG9rdSBsaXN0eSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICfFuXImb2FjdXRlO2TFgm8gc3phYmxvbnUnOwokbGFuZ1sncHJvbXB0X3RydWUnXSA9ICdQcmF3ZGEnOwokbGFuZ1sncHJvbXB0X3VybHByZWZpeCddID0gJ1ByZWZpeCB0byB1c2Ugb24gYWxsIFVSTFMgdGFyZ2V0ZWQgdG8gdGhpcyB0aGlzIG1vZHVsZSc7CiRsYW5nWydwcm9tcHRfdXNlX2RldGFpbHBhZ2VfZm9yX3NlYXJjaCddID0gJ1VzZSB0aGlzIHBhZ2UgZm9yIHNlYXJjaCByZXN1bHRzIHRvbyA8ZW0+KG92ZXJyaWRlcyB0aGUgc2VhcmNocmVzdWx0cyBwYWdlIHBhcmFtZXRlciBpbiB0aGUgc2VhcmNoIG1vZHVsZSk8L2VtPic7CiRsYW5nWydwcm9tcHRfdXNlaGllcnBhdGh1cmxzJ10gPSAnVXNlIEhpZXJhcmNoeSBQYXRoIGluIFByb2R1Y3QgRGV0YWlsIFVSTFMnOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnSmVkbm9zdGkgd2FnaSc7CiRsYW5nWydwdWJsaWMnXSA9ICdDenkgdG8gamVzdCBwb2xlIGRvc3TEmXBuZSBkbGEgd3N6eXN0a2ljaD8nOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnT3B1Ymxpa293YW55JzsKJGxhbmdbJ3F1YW50aXR5X29uX2hhbmQnXSA9ICdEb3N0xJlwbmEgaWxvxZvEhyB3IG1hZ2F6eW5pZSc7CiRsYW5nWydyYW5kb20nXSA9ICdMb3Nvd3knOwokbGFuZ1sncmVvcmRlcl9oaWVyYXJjaHknXSA9ICdabWllxYQga29sZWpub8WbxIcgaGllcmFyY2hpaSc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1Byenl3ciZvYWN1dGU7xIcgd2FydG/Fm2NpIGRvbXnFm2xuZSc7CiRsYW5nWydyZXR1cm4nXSA9ICdQb3dyJm9hY3V0ZTt0JzsKJGxhbmdbJ3JldHVybl90b190b3AnXSA9ICdSZXR1cm4gdG8gdGhlIHRvcCBvZiB0aGUgdmlldyc7CiRsYW5nWydyb290J10gPSAnR8WCJm9hY3V0ZTt3bnknOwokbGFuZ1snc2VhcmNoX2Rlc2NyaXB0aW9uJ10gPSAnU2VhcmNoIFByb3BlcnR5IERlc2NyaXB0aW9uJzsKJGxhbmdbJ3NlYXJjaF9leHByJ10gPSAnU2hvdWxkIHRoZSBxdWVyeSBtYXRjaCBhbGwsIG9yIGFueSBvZiB0aGUgdGVzdHMgYmVsb3c/JzsKJGxhbmdbJ3NlYXJjaF9uYW1lJ10gPSAnU2VhcmNoIFByb3BlcnR5IE5hbWUnOwokbGFuZ1snc2VhcmNoX3ByaWNlJ10gPSAnUHJpY2UgUmFuZ2UnOwokbGFuZ1snc2VhcmNodGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IFNlYXJjaCBGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlcyddID0gJ1NlYXJjaCBUZW1wbGF0ZXMnOwokbGFuZ1snc2VsZWN0X2FsbCddID0gJ1phem5hY3ogd3N6eXN0a2llJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdXeWJpZXJ6IG9wY2rEmSc7CiRsYW5nWydzZXRkcmFmdCddID0gJ1VzdGF3IGpha28ga29waWEgcm9ib2N6YSc7CiRsYW5nWydzZXRwdWJsaXNoZWQnXSA9ICdVc3RhdyBqYWtvIG9wdWJsaWtvd2FuZSc7CiRsYW5nWydza3UnXSA9ICdTS1UgJzsKJGxhbmdbJ3NvcnRfYnknXSA9ICdTb3J0dWogcG8nOwokbGFuZ1snc29ydF9vcmRlciddID0gJ0tvbGVqbm/Fm8SHIHNvcnRvd2FuaWEnOwokbGFuZ1snc291cmNlJ10gPSAnU291cmNlJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyAnOwokbGFuZ1snc3VibWl0J10gPSAnWmFwaXN6JzsKJGxhbmdbJ3N1YnNjcmlwdGlvbiddID0gJ1N1YnNjcmlwdGlvbic7CiRsYW5nWydzdWJzY3JfZXhwaXJ5J10gPSAnRXhwaXJ5JzsKJGxhbmdbJ3N1YnNjcl9leHBpcnkyJ10gPSAnRXhwaXJlcyc7CiRsYW5nWydzdWJzY3JfbW9udGhseSddID0gJ01vbnRobHknOwokbGFuZ1snc3Vic2NyX2RlbHBlcmlvZCddID0gJ0RlbGl2ZXJ5IEZyZXF1ZW5jeSc7CiRsYW5nWydzdWJzY3JfZGVscGVyaW9kMiddID0gJ0RlbGlldmVyZWQnOwokbGFuZ1snc3Vic2NyX3BheXBlcmlvZCddID0gJ1BheW1lbnQgRnJlcXVlbmN5JzsKJGxhbmdbJ3N1YnNjcl9wYXlwZXJpb2QyJ10gPSAnUGFpZCc7CiRsYW5nWydzdWJzY3JfcXVhcnRlcmx5J10gPSAnUXVhcnRlcmx5JzsKJGxhbmdbJ3N1YnNjcl9zZW1pYW51YWxseSddID0gJ1NlbWkgQW51YWxseSc7CiRsYW5nWydzdWJzY3JfeWVhcmx5J10gPSAnWWVhcmx5JzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdTemFibG9ueSBsaXN0JzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnRG9kYWovZWR5dHVqIHN6YWJsb24gbGlzdHknOwokbGFuZ1sndGF4YWJsZSddID0gJ09wb2RhdGtvd2FueSc7CiRsYW5nWyd0ZXN0J10gPSAnVGVzdCc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ1BvbGUgdGVrc3Rvd2UgKHRleHRhcmVhKSc7CiRsYW5nWyd0ZXh0Ym94J10gPSAnUG9sZSB0ZWtzdG93ZSc7CiRsYW5nWyd0aXRsZV9ieWhpZXJhcmNoeV9kZmx0dGVtcGxhdGUnXSA9ICdEb215xZtsbnkgbm93eSBzemFibG9uIHJhcG9ydHUgaGllcmFyY2hpaSc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnRG9tecWbbG55IG5vd3kgc3phYmxvbiBsaXN0eSBrYXRlZ29yaWknOwokbGFuZ1sndGl0bGVfZGV0YWlsX2RmbHR0ZW1wbGF0ZSddID0gJ0RvbXnFm2xueSBub3d5IHN6YWJsb24gd2lkb2t1IHN6Y3plZyZvYWN1dGU7xYJvd2Vnbyc7CiRsYW5nWyd0aXRsZV9zZWFyY2hfZGZsdHRlbXBsYXRlJ10gPSAnRG9tecWbbG55IG5vd3kgc3phYmxvbiB3eXN6dWtpd2Fya2knOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdEb215xZtsbnkgbm93eSBzemFibG9uIHdpZG9rdSBsaXN0eSc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwJzsKJGxhbmdbJ3VwJ10gPSAnUHJ6ZXN1xYQgZG8gZyZvYWN1dGU7cnknOwokbGFuZ1sndXBkYXRlJ10gPSAnQWt0dWFsaXp1aic7CiRsYW5nWyd1cGxvYWQnXSA9ICdXeWJpZXJ6IHBsaWsnOwokbGFuZ1sndXJsX2FsaWFzJ10gPSAnQWxpYXMgVVJMJzsKJGxhbmdbJ3ZhbGlkJ10gPSAnUG9wcmF3bnknOwokbGFuZ1sndmFsdWUnXSA9ICdXYXJ0b8WbxIcnOwokbGFuZ1sndmFsdWVzJ10gPSAnV2FydG/Fm2NpJzsKJGxhbmdbJ3ZpZXcnXSA9ICdab2JhY3onOwokbGFuZ1sndmlld2FibGVfZmllbGRzJ10gPSAnU2VsZWN0IGN1c3RvbSBmaWVsZHMgdG8gdmlldyBpbiB0aGUgdGFibGUnOwokbGFuZ1snd2F0ZXJtYXJrX2xvY2F0aW9uJ10gPSAnxZpjaWXFvGthIGRvIHBsaWt1IHplIHpuYWtpZW0gd29kbnltJzsKJGxhbmdbJ3dlaWdodCddID0gJ1dhZ2EnOwokbGFuZ1snd2l0aF9zZWxlY3RlZCddID0gJ1phem5hY3pvbmUnOwokbGFuZ1sneWVzJ10gPSAnVGFrJzsKJGxhbmdbJ3FjYSddID0gJ1AwLTEzMTgyMTM3MzktMTI3NTY2ODM3MTMwMyc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjE4NzM0OTYyODMuMTI5NDM0MDc2Mi4xMjk0MzQwNzYyLjEyOTQzNDA3NjIuMSc7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pt_PT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfbGVuZ3RoJ10gPSAnTCAnOwokbGFuZ1snYWJicl93aWR0aCddID0gJ1cgJzsKJGxhbmdbJ2FiYnJfaGVpZ2h0J10gPSAnSCAnOwokbGFuZ1snYWRkJ10gPSAnQWRpY2lvbmFyJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnQWRpY2lvbmFyIENhdGVnb3JpYSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0FkaWNpb25hciBDYW1wbyc7CiRsYW5nWydhZGp1c3RhYmxlJ10gPSAnQWRqdXN0JmFhY3V0ZTt2ZWwnOwokbGFuZ1snYWRkcHJvZHVjdCddID0gJ0FkaWNpb25hciBQcm9kdXRvJzsKJGxhbmdbJ2FkZF9hdHRyaWJfc2V0J10gPSAnQWRpY2lvbmFyIEF0cmlidXRvJzsKJGxhbmdbJ2FkZF9jYXRlZ29yeV9maWVsZCddID0gJ0NhbXBvIEFzc29jaSZhYWN1dGU7dmVsIGNvbSBhIENhdGVnb3JpYTogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnQWRpY2lvbmFyIEl0ZW0gJmFncmF2ZTsgSGllcmFycXVpYSc7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAnQWRpY2lvbmFyIE9wJmNjZWRpbDsmYXRpbGRlO28gZGUgQXRyaWJ1dG8nOwokbGFuZ1snYWRtaW5fb25seSddID0gJ1Mmb2FjdXRlOyBhcGVuYXMgQWRtaW4mIzAzOTtzIHBvZGVtIHZpc3VhbGl6YXIgZXN0ZSBhdHJpYnV0bz8nOwokbGFuZ1snYWxpZ25fdWwnXSA9ICdUb3BvIEVzcXVlcmRhJzsKJGxhbmdbJ2FsaWduX3VjJ10gPSAnVG9wbyBDZW50cm8nOwokbGFuZ1snYWxpZ25fdXInXSA9ICdUb3BvIERpcmVpdGEnOwokbGFuZ1snYWxpZ25fbWwnXSA9ICdNZWlvIEVzcXVlcmRhJzsKJGxhbmdbJ2FsaWduX21jJ10gPSAnQ2VudHJvJzsKJGxhbmdbJ2FsaWduX21yJ10gPSAnTWVpbyBEaXJlaXRhJzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnQmFpeG8gRXNxdWVyZGEnOwokbGFuZ1snYWxpZ25fbGMnXSA9ICdCYWl4byBDZW50cm8nOwokbGFuZ1snYWxpZ25fbHInXSA9ICdCYWl4byBEaXJlaXRhJzsKJGxhbmdbJ2FsbCddID0gJ1RvZG9zJzsKJGxhbmdbJ2FsbGNhdGVnb3JpZXMnXSA9ICdUb2RhcyBhcyBDYXRlZ29yaWFzJzsKJGxhbmdbJ2FueSddID0gJ1F1YWxxdWVyJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdUZW0gYSBjZXJ0ZXphPyc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZXByb2R1Y3QnXSA9ICdUZW0gY2VydGV6YSBxdWUgZGVzZWphIGFwYWdhciBlc3RlIHByb2R1dG8sIGJlbSBjb21vIG8gYWNvbXBhbmhhbWVudG8gZGUgdG9kYXMgYXMgaW5mb3JtYSZjY2VkaWw7Jm90aWxkZTtlcyByZWZlcmVudGVzIGFvIG1lc21vPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdBc2NlbmRlbnRlJzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnQXRyaWJ1dG8gTm9tZSc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbSZhYWN1dGU7dGljbyc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlcyddID0gJ0hpZXJhcnF1aWEgUmVsYXQmb2FjdXRlO3JpbyB0ZW1wbGF0ZXMnOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRpY2lvbmFyL0VkaXRhciBIaWVyYXJxdWlhIFJlbGF0Jm9hY3V0ZTtyaW8gdGVtcGxhdGVzJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbGFyJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yaWFzJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnQ2F0ZWdvcmlhJzsKJGxhbmdbJ2NhdGVnb3J5ZXhpc3RzJ10gPSAnTyBub21lIGRhIGNhdGVnb3JpYSBqJmFhY3V0ZTsgZXhpc3RlJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ1RlbXBsYXRlcyBMaXN0YSBkZSBDYXRlZ29yaWFzJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGljaW9uYXIvRWRpdGFyIFRlbXBsYXRlcyBMaXN0YSBkZSBDYXRlZ29yaWFzJzsKJGxhbmdbJ2NlbnRpbWV0ZXJzJ10gPSAnQ2VudCZpYWN1dGU7bWV0cm9zJzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnQ2FpeGEgZGUgVmVyaWZpY2EmY2NlZGlsOyZhdGlsZGU7byc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9oaWVyYXJjaHlfbm9kZSddID0gJ1RlbSBjZXJ0ZXphIGRlIHF1ZSBkZXNlamEgZXhjbHVpciBlc3RlIG4mb2FjdXRlOz8gUXVhbHF1ZXIgcHJvZHV0byBxdWUgZXN0ZWphIGEgdXNhciBlc3RlIG4mb2FjdXRlOyBzZXImYWFjdXRlOyBjb25maWd1cmFkbyBwYXJhIG4mYXRpbGRlO28gdXNhcmVtIGhpZXJhcnF1aWEnOwokbGFuZ1snY29uZmlybV9pbXBvcnQnXSA9ICdUZW0gY2VydGV6YSBkZSBxdWUgcmVhbG1lbnRlIHF1ZXIgZmF6ZXIgaXNzbz9cblxuQ29uZmlndXJhJmNjZWRpbDsmb3RpbGRlO2VzIGltcHJvcHJpYXMgb3UgaW52JmFhY3V0ZTtsaWRhcyBwb2RlciZhYWN1dGU7IGhhdmVyIGNvbXBsZXRhbWVudGUgdW1hIGNvcnJ1cCZjY2VkaWw7JmF0aWxkZTtvIG5vIHNpc3RlbWEgYWN0dWFsbWVudGUgZW0gdmlnb3IuJzsKJGxhbmdbJ2NvcHknXSA9ICdDb3BpYXInOwokbGFuZ1snY29weV9jYXRlZ29yeSddID0gJ0NvcGlhciBDYXRlZ29yaWEnOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdEYXRhIGRhIENyaWEmY2NlZGlsOyZhdGlsZGU7byc7CiRsYW5nWydjdXJyZW50X3ZhbHVlJ10gPSAnVmFsb3IgQWN0dWFsJzsKJGxhbmdbJ2RhdGEnXSA9ICdEYXRhICc7CiRsYW5nWydkZWZhdWx0J10gPSAnUGFkciZhdGlsZGU7byc7CiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAnVGVtcGxhdGVzIFBhZHImYXRpbGRlO28nOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPk5vdGE6PC9zdHJvbmc+IE8gY29udGUmdWFjdXRlO2RvIGRlc3RhcyAmYWFjdXRlO3JlYXMgdGV4dG9zICBzJmF0aWxkZTtvIHVzYWRhcyBwYXJhIGRldGVybWluYXIgbyBjb250ZSZ1YWN1dGU7ZG8gZG9zIHRlbXBsYXRlcyBwYWRyJmF0aWxkZTtvIHF1YW5kbyBjbGljYXIgZW0gJnF1b3Q7QWRpY2lvbmFyIFRlbXBsYXRlJnF1b3Q7IG5hIFRhYiBhcHJvcHJpYWRhLiBFZGl0YW5kbyB1bWEgZGVzdGFzICZhYWN1dGU7cmVhcyBkZSB0ZXh0byBuJmF0aWxkZTtvIHRlciZhYWN1dGU7IGVmZWl0b3MgaW1lZGlhdG9zIG5vIHNldSBzaXRlLic7CiRsYW5nWydkZWxldGUnXSA9ICdFbGltaW5hcic7CiRsYW5nWydkZWxldGVfYXR0cmlic2V0J10gPSAnRWxpbWluYXIgQXRyaWJ1dG8nOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAnRWxpbWluYXIgSGllcmFycXVpYSBJdGVtJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdEZXNjZW5kZW50ZSc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Rlc2NyaSZjY2VkaWw7JmF0aWxkZTtvJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdEZXRhbGhlcyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdUZW1wbGF0ZXMgRGV0YWxoZXMnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkaWNpb25hci9FZGl0YXIgVGVtcGxhdGVzIERldGFsaGVzJzsKJGxhbmdbJ2RpbWVuc2lvbnMnXSA9ICdEaW1lbnMmb3RpbGRlO2VzJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnRGVzYXRpdmFkbyc7CiRsYW5nWydkcmFmdCddID0gJ1Jhc2N1bmhvJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnTWVudSBNJnVhY3V0ZTtsdGlwbG8gKERyb3Bkb3duKSc7CiRsYW5nWydkcm9wZG93bl9vcHRpb25zJ10gPSAnTWVudSBNJnVhY3V0ZTtsdGlwbG8gKERyb3Bkb3duKSA8ZW0+KGFwbGljYXIgcyZvYWN1dGU7IGNhbXBvcyBNZW51IE0mdWFjdXRlO2x0aXBsbyAoRHJvcGRvd24pICk8L2VtPjxici8+PGJyLz48ZW0+KHVtYSBlbnRyYWRhIHBvciBsaW5oYSk8L2VtPic7CiRsYW5nWydlZGl0J10gPSAnRWRpdGFyICc7CiRsYW5nWydlZGl0X2F0dHJpYnNldCddID0gJ0VkaXRhciBBdHJpYnV0byc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICdFZGl0YXIgRGVmaW5pJmNjZWRpbDsmb3RpbGRlO2VzIGRlIEF0cmlidXRvcyc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHNfZm9yJ10gPSAnRWRpdGFyIERlZmluaSZjY2VkaWw7Jm90aWxkZTtlcyBkZSBBdHJpYnV0b3MgUGFyYSc7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdFZGl0YXIgQXRyaWJ1dG9zJzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnknXSA9ICdFZGl0YXIgQ2F0ZWdvcmlhJzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnlfZmllbGRzJ10gPSAnRWRpdGFyIENhdGVnb3JpYSBDYW1wb3MnOwokbGFuZ1snZWRpdF9oaWVyYXJjaHlfaXRlbSddID0gJ0VkaXRhciBIaWVyYXJxdWlhIEl0ZW0nOwokbGFuZ1snZXJyb3JfYXR0cmlic2V0X2V4aXN0cyddID0gJ1VtIGF0cmlidXRvIGNvbSBlc3NlIG5vbWUgaiZhYWN1dGU7IGV4aXN0ZSc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfc2t1J10gPSAnVmFsb3IgU0tVIGR1cGxpY2FkbyBmb2kgZW5jb250cmFkbyc7CiRsYW5nWydlcnJvcl9maWVsZHZhbHVlX2VtcHR5J10gPSAnTyB2YWxvciBkbyBDYW1wbyBuJmF0aWxkZTtvIHBvZGUgZXN0YXIgdmF6aW8nOwokbGFuZ1snZXJyb3JfZmlsZWZvcm1hdCddID0gJ1Byb2JsZW1hIGNvbSBvIGZvcm1hdG8gZG8gZmljaGVpcm8nOwokbGFuZ1snZXJyb3JfZmlsZW5vdGZvdW5kJ10gPSAnRmljaGVpcm8gTiZhdGlsZGU7byBFbmNvbnRyYWRvJzsKJGxhbmdbJ2Vycm9yX2ZpbGVvcGVuJ10gPSAnUHJvYmxlbWEgYW8gYWJyaXIgbyBmaWNoZWlybyAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnUGFyZW50ZSBJbnYmYWFjdXRlO2xpZG8gIChvIG5vZGUgZGUgSGllcmFycXVpYSAgbiZhdGlsZGU7byBwb2RlIHNlciwgJmVhY3V0ZTsgbyBwciZvYWN1dGU7cHJpbyknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9uYW1lJ10gPSAnTyB2YWxvciBkbyBjYW1wbyBwZXJzb25hbGl6YWRvIGRpZ2l0YWRvICZlYWN1dGU7IGludiZhYWN1dGU7bGlkbyAobiZhdGlsZGU7byBjb250JmVhY3V0ZTttIGNhcmFjdGVyZXMgYWxmYW51bSZlYWN1dGU7cmljb3MpJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ1VtIHBhciZhY2lyYzttZXRybyBvYnJpZ2F0Jm9hY3V0ZTtyaW8gZXN0JmFhY3V0ZTsgYXVzZW50ZSBvdSAmZWFjdXRlOyBpbnYmYWFjdXRlO2xpZG8nOwokbGFuZ1snZXJyb3JfbmFtZXVzZWQnXSA9ICdVbSBpdGVtIGNvbSBlc3NlIG5vbWUgaiZhYWN1dGU7IGVzdCZhYWN1dGU7IGVtIHVzbyc7CiRsYW5nWydlcnJvcl9ub2ZpZWxkdHlwZSddID0gJ1BvciBGYXZvciBzZWxlY2lvbmUgdW0gdGlwbyBkZSBjYW1wbyc7CiRsYW5nWydlcnJvcl9ub25hbWUnXSA9ICdZb3UgZGV2ZSBmb3JuZWNlciB1bSBub21lJzsKJGxhbmdbJ2Vycm9yX3Blcm1pc3Npb25kZW5pZWQnXSA9ICdQZXJtaXNzJmF0aWxkZTtvIE5lZ2FkYSc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X2FsaWFzdXNlZCddID0gJ08gYWxpYXMgZXNwZWNpZmljYWRvIGomYWFjdXRlOyBlc3QmYWFjdXRlOyBlbSB1c28nOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9uYW1ldXNlZCddID0gJ1VtIHByb2R1dG8gcG9yIGVzc2Ugbm9tZSBqJmFhY3V0ZTsgZXhpc3RlJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3Rfbm90Zm91bmQnXSA9ICdPIHByb2R1dG8gc29saWNpdGFkbyBuJmF0aWxkZTtvIHAmb2NpcmM7ZGUgc2VyIGVuY29udHJhZG8nOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9za3V1c2VkJ10gPSAnU0tVIGNvbSBlc3RlIHZhbG9yIGomYWFjdXRlOyBlc3QmYWFjdXRlOyBlbSB1c28gZW0gdW0gb3V0cm8gcHJvZHV0byc7CiRsYW5nWydlcnJvcl9wcmljZV9hZGp1c3RtZW50J10gPSAnTyB2YWxvciBhanVzdGFkbyBkbyBwcmUmY2NlZGlsO28gJmVhY3V0ZTsgaW52JmFhY3V0ZTtsaWRvIHBhcmEgbyBpdGVtICVzJzsKJGxhbmdbJ2Vycm9yX3VwbG9hZF9mYWlsZWQnXSA9ICdDYXJyZWdhbWVudG8gZmFsaG91OiAlcyc7CiRsYW5nWydleHRyYTEnXSA9ICdDYW1wbyBFeHRyYSAxJzsKJGxhbmdbJ2V4dHJhMiddID0gJ0NhbXBvIEV4dHJhIDInOwokbGFuZ1snZmllbGQnXSA9ICdDYW1wbyc7CiRsYW5nWydmaWVsZGRlZiddID0gJ0RlZmluaSZjY2VkaWw7JmF0aWxkZTtvIGRvIENhbXBvJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0RlZmluaSZjY2VkaWw7Jm90aWxkZTtlcyBkb3MgQ2FtcG9zJzsKJGxhbmdbJ2ZpbGUnXSA9ICdBcnF1aXZvJzsKJGxhbmdbJ2ZpbHRlcnMnXSA9ICdGaWx0cm9zJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8JzsKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdDb25maWd1cmEmY2NlZGlsOyZvdGlsZGU7ZXMgR2VyYWlzJzsKJGxhbmdbJ2dvJ10gPSAnSXInOwokbGFuZ1snaGllcmFyY2h5J10gPSAnSGllcmFycXVpYSc7CiRsYW5nWydoaWVyYXJjaHlfcG9zaXRpb24nXSA9ICdQb3NpJmNjZWRpbDsmYXRpbGRlO28gcG9yIEhpZXJhcnF1aWEgJzsKJGxhbmdbJ2lkJ10gPSAnSUQnOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnSW1hZ2VtJzsKJGxhbmdbJ2ltYWdlX2hhbmRsaW5nX3NldHRpbmdzJ10gPSAnRGVmaW5pJmNjZWRpbDsmb3RpbGRlO2VzIERlIEltYWdlJzsKJGxhbmdbJ2ltcG9ydF9mcm9tX2NzdiddID0gJ0ltcG9ydGEmY2NlZGlsOyZhdGlsZGU7byBkZSBQcm9kdXRvcyBwb3IgQ1NWJzsKJGxhbmdbJ2luY2hlcyddID0gJ1BvbGVnYWRhcyc7CiRsYW5nWydpbmNsdWRlX2NoaWxkcmVuJ10gPSAnSW5jbHVpciBGaWxob3M/JzsKJGxhbmdbJ2luZm9fYWxudW1vbmx5J10gPSAnU29tZW50ZSBjYXJhY3RlcmVzIGFsZmFudW0mZWFjdXRlO3JpY29zLiBOJmF0aWxkZTtvIGFjZWl0YSBlc3BhJmNjZWRpbDtvcyBlbSBicmFuY28sIGFzcGFzLCBvdSBsZXRyYS9uJnVhY3V0ZTttZXJvIHNlbSBjb21iaW5hJmNjZWRpbDsmb3RpbGRlO2VzJzsKJGxhbmdbJ2luZm9fYXR0cmlidGVtcGxhdGUnXSA9ICdQb3NzJmlhY3V0ZTt2ZWlzIHZhcmkmYWFjdXRlO3ZlaXMgcyZhdGlsZGU7bzogeyRhdHRyaWJfdGV4dH0seyRhdHRyaWJfYWRqdXN0fSx7JGN1cnJlbmN5X3N5bWJvbH0nOwokbGFuZ1snaW5mb19hdXRvd2F0ZXJtYXJrJ10gPSAnRGVmaW5pJmNjZWRpbDsmb3RpbGRlO2VzIFdhdGVybWFyayBzJmF0aWxkZTtvIHJlYWxpemFkYXMgYSBwYXJ0aXIgZG8gTSZvYWN1dGU7ZHVsbyBDR0V4dGVuc2lvbnMnOwokbGFuZ1snaW5mb19iYXRjaHNpemUnXSA9ICdEZWZpbmlyIG8gbiZ1YWN1dGU7bWVybyBkZSBsaW5oYXMgYSBwcm9jZXNzbyBwb3IgJnF1b3Q7bG90ZSZxdW90Oy4gT3BlcmEmY2NlZGlsOyZvdGlsZGU7ZXMgYXAmb2FjdXRlO3MgdW0gbG90ZSBzZXIgY29tcGxldG8sIG8gaW1wb3J0YWRvciBpciZhYWN1dGU7IHJlZGlyZWNjaW9uYXIsIGUgcmV0b21hciBhcyBvcGVyYSZjY2VkaWw7Jm90aWxkZTtlcy4gU2UgZXN0JmFhY3V0ZTsgY29tIGVycm9zIGRlIG1lbSZvYWN1dGU7cmlhLCBvdSBwcm9ibGVtYXMgZGUgJnF1b3Q7dGltZW91dCZxdW90OyBkZXZpZG8gYSBncmFuZGUgcXVhbnRpZGFkZSBkZSBwcm9jZXNzYW1lbnRvLCBwb2RlIHByZWNpc2FyIGRlIGNvbnN1bHRhciBvIHNldSBwcm92ZWRvciBkZSBob3NwZWRhZ2VtLCBvdSByZWR1emlyIGVzdGUgbiZ1YWN1dGU7bWVybyc7CiRsYW5nWydpbmZvX2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ0Vzc2VzIHBhciZhY2lyYzttZXRyb3MgcyZhdGlsZGU7byBpbmRpY2Fkb3MgcGFyYSBvIG0mb2FjdXRlO2R1bG8gQ2FycmluaG8gc2VsZWNjaW9uYWRvIGRvIHByb2R1dG8gZGV0YWxoZSBlIGV4aWJlIHN1bSZhYWN1dGU7cmlvJzsKJGxhbmdbJ2luZm9fY3JlYXRlZmllbGRzJ10gPSAnQ3JpYXIgY2FtcG9zIGRlIHByb2R1dG8gZGVzY29uaGVjaWRvIGF1dG9tYXRpY2FtZW50ZT8gPGVtPiAoRWxlcyBzZXImYXRpbGRlO28gY3JpYWRvcyBjb21vIGNhbXBvcyBkZSB0ZXh0bykgPC9lbT4nOwokbGFuZ1snaW5mb19jcmVhdGVjYXRlZ29yaWVzJ10gPSAnQ3JpYXIgYXV0b21hdGljYW1lbnRlIGFzIGNhdGVnb3JpYXMgZGUgcHJvZHV0b3MgcGFyYSBjb2luY2lkaXIgY29tIGFzIGRvIGFycXVpdm8gQ1NWLCBzZSBuJmF0aWxkZTtvIGV4aXN0aXIgYWluZGEnOwokbGFuZ1snaW5mb19jcmVhdGVoaWVyYXJjaHknXSA9ICdDcmlhciBhdXRvbWF0aWNhbWVudGUgYXMgIGhpZXJhcnF1aWFzIGRlIHByb2R1dG9zIHBhcmEgY29pbmNpZGlyIGNvbSBhcyBkbyBhcnF1aXZvIENTViwgc2UgbiZhdGlsZGU7byBleGlzdGlyIGFpbmRhJzsKJGxhbmdbJ2luZm9fZGVjaW1hbF91bml0cyddID0gJ0VzdGUgc2lzdGVtYSBjb21wcmVlbmRlICguKSBDb21vIG8gcG9udG8gZGVjaW1hbCBzZXBhcmFkb3IuIG91IHNlamE6IDxzdHJvbmc+IDUuMjUgPC9zdHJvbmc+JzsKJGxhbmdbJ2luZm9fZGVsaW1pdGVyJ10gPSAnRXNwZWNpZmlxdWUgbyBjYXImYWFjdXRlO2N0ZXIgKG91IGNhcmFjdGVyZXMpIHF1ZSBzZXBhcmFtIGNhZGEgY2FtcG8nOwokbGFuZ1snaW5mb19kdXBsaWNhdGVwcm9kdWN0cyddID0gJ0VzcGVjaWZpY2FyIGNvbW8gbyBzaXN0ZW1hIGRldmUgdHJhdGFyIHVtIHByb2R1dG8gZW0gcXVlIG8gbm9tZSBqJmFhY3V0ZTsgZXhpc3RlIG5vIGFycXVpdm8gQ1NWJzsKJGxhbmdbJ2luZm9fZmllbGRkZWZzX3RhYiddID0gJzxzdHJvbmc+Tm90YTogPC9zdHJvbmc+VG9kb3Mgb3MgY2FtcG9zIGRlZmluaWRvcyBlc3QmYXRpbGRlO28gYXF1aSBkaXNwb24maWFjdXRlO3ZlaXMgcGFyYSB0b2RvcyBvcyBwcm9kdXRvcy4nOwokbGFuZ1snaW5mb19maWVsZHByb2JsZW1zJ10gPSAnRm9yYW0gZW5jb250cmFkb3MgcHJvYmxlbWFzIHF1YW5kbyBzZSB0cmF0YSBkZSB1bSBvdSBtYWlzIGNhbXBvcyBwZXJzb25hbGl6YWRvcy4gQSBhYyZjY2VkaWw7JmF0aWxkZTtvIGZvaSBjb25jbHUmaWFjdXRlO2RhIGNvbSBzdWNlc3NvLCBubyBlbnRhbnRvIHZvYyZlY2lyYzsgZGV2ZXImYWFjdXRlOyBpbnZlc3RpZ2FyIGUgY29ycmlnaXIgZXN0ZXMgcHJvYmxlbWFzJzsKJGxhbmdbJ2luZm9faGFuZGxlaW1hZ2VzJ10gPSAnQXAmb2FjdXRlO3MgYSBpbXBvcnRhJmNjZWRpbDsmYXRpbGRlO28sIHNlIHVtIGFycXVpdm8gZGUgaW1hZ2VtIGZvciBlbmNvbnRyYWRhIGVtIHVtYSBjb2x1bmEgZGUgY2FtcG8sIGVsYSBkZXZlIHNlciB0cmFuc2ZlcmlkYSBkbyBsb2NhbCBkZSBvcmlnZW0sIG1hcmNhIGRlICZhYWN1dGU7Z3VhLCBtaW5pYXR1cmFzLCBlIG8gdGlwbyBkZSBjYW1wbyBhbHRlcmFkbyBwYXJhIGEgJnF1b3Q7aW1hZ2VtJnF1b3Q7JzsKJGxhbmdbJ2luZm9faW1hZ2VwYXRoJ10gPSAnTyBjYW1pbmhvIChyZWxhdGl2byBhbyBkaXJlY3Qmb2FjdXRlO3JpbyBkZSAvdXBsb2FkcykgZW0gcXVlIGFzIGltYWdlbnMgcmVmZXJpZGFzIG5vIGFycXVpdm8gZGUgaW1wb3J0YSZjY2VkaWw7JmF0aWxkZTtvLCBwb2RlbSBzZXIgZW5jb250cmFkYXMnOwokbGFuZ1snaW5mb19pbXBvcnRfdGVzdF9wYXNzZWQnXSA9ICdVbSB0ZXN0ZSBicmV2ZSAgZm9pIHJlYWxpemFkbyBuYSBlbnRyYWRhIGRvIGNhbXBvIGVzcGVjaWZpY2FkbywgZSB0dWRvIHBhcmVjZSBlc3RhciBjb3JyZXRvLiA8YnIvPiBFc3RlIG4mYXRpbGRlO28gJmVhY3V0ZTsgdW0gaW5kJmlhY3V0ZTtjaW8gZGUgcXVlIG4mYXRpbGRlO28gaCZhYWN1dGU7IGVycm9zIG5vIGFycXVpdm8uJzsKJGxhbmdbJ2luZm9fcHJpY2VfYWRqdXN0bWVudCddID0gJ1ZhbG9yZXMgViZhYWN1dGU7bGlkb3MgcyZhdGlsZGU7byArLSojLiMjJzsKJGxhbmdbJ2luZm9fcHJvZG5vdGZvdW5kJ10gPSAnRXN0YSBvcCZjY2VkaWw7JmF0aWxkZTtvIGRldGVybWluYSBvIGNvbXBvcnRhbWVudG8gZG8gc2l0ZSwgc2UgdW0gZGV0YWlsIHZpZXcgZG8gcHJvZHV0byAmZWFjdXRlOyBhY2VzcyZpYWN1dGU7dmVsIGRpcmVjdGFtZW50ZSBwZWxhIFVSTCwgZSBxdWUgbyBwcm9kdXRvIHBvciBxdWFscXVlciBtb3Rpdm8gKGRlc2FiaWxpdGFkbywgZXhjbHUmaWFjdXRlO2RvLCBldGMpIG4mYXRpbGRlO28gcG9kZW0gc2VyIGFjZXNzJmlhY3V0ZTt2ZWlzLic7CiRsYW5nWydpbmZvX3B1YmxpY2ZpZWxkJ10gPSAnJkFhY3V0ZTtyZWFzIHAmdWFjdXRlO2JsaWNhcyBlc3QmYXRpbGRlO28gZGlzcG9uJmlhY3V0ZTt2ZWlzIHBhcmEgc2VyZW0gdmlzdWFsaXphZGFzJzsKJGxhbmdbJ2xhYmVsJ10gPSAnQmxvY28gKExhYmVsKSc7CiRsYW5nWydsYWJlbF9za2lwJ10gPSAnU2FsdGFyJzsKJGxhbmdbJ2xhYmVsX292ZXJ3cml0ZSddID0gJ1N1YnN0aXR1aXInOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnJlVhY3V0ZTtsdGltYSBNb2RpZmljYSZjY2VkaWw7JmF0aWxkZTtvJzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnU2VndW5kYSBJbWFnZW0nOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnQ29tcHJpbWVudG8gbSZhYWN1dGU7eGltbyA8ZW0+KGFwbGljJmFhY3V0ZTt2ZWwgc29tZW50ZSBub3MgY2FtcG9zIGNhaXhhcyBkZSB0ZXh0byApPC9lbT4nOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnRGF0YSBkYSBtb2RpZmljYSZjY2VkaWw7JmF0aWxkZTtvJzsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gJ1VtIG0mb2FjdXRlO2R1bG8gZGUgZ2VzdCZhdGlsZGU7byBkZSB1bSBjYXQmYWFjdXRlO2xvZ28gZGUgcHJvZHV0b3MsIG9zIHNldXMgcHJlJmNjZWRpbDtvcywgaW1hZ2VucywgZXRjLCBlIHBhcmEgcGVybWl0aXIgcXVlIG9zIHVzdSZhYWN1dGU7cmlvcyB0ZW5oYW0gdW0gY2FycmluaG8nOwokbGFuZ1snbW92ZV9kb3duJ10gPSAnRGVzY2VyJzsKJGxhbmdbJ21vdmVfdXAnXSA9ICdTdWJpcic7CiRsYW5nWyduYW1lJ10gPSAnTm9tZSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ04mYXRpbGRlO28gdGVtIGEgYXV0b3JpemEmY2NlZGlsOyZhdGlsZGU7byBuZWNlc3MmYWFjdXRlO3JpYTogJXMnOwokbGFuZ1snbmV3X2NhdGVnb3J5X25hbWUnXSA9ICdOb3ZhIENhdGVnb3JpYSBOb21lJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydubyddID0gJ04mYXRpbGRlO28nOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICdOZW5odW0gbm9tZSBmb2kgZm9ybmVjaWRvJzsKJGxhbmdbJ25vbmUnXSA9ICdOJmF0aWxkZTtvJzsKJGxhbmdbJ29mJ10gPSAnZGUnOwokbGFuZ1sncGFnZSddID0gJ1AmYWFjdXRlO2dpbmEnOwokbGFuZ1sncGFnZV9vZiddID0gJ1AmYWFjdXRlO2dpbmEgJXMgZGUgJXMnOwokbGFuZ1sncGFnZV9saW1pdCddID0gJ1AmYWFjdXRlO2dpbmEgTCZpYWN1dGU7bWl0ZSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcGVjaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5oaWVyYXJjaHkgLS0gRGlzcGxheSBhIHByb2R1Y3QgbGlzdCBieSBoaWVyYXJjaHk8L2xpPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdCBjYXRlZ29yaWVzPC9saT4NCiAgPGxpPjxlbT5kZWZhdWx0PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyeSBvZiBwcm9kdWN0czwvbGk+DQogIDxsaT5kZXRhaWxzIC0gRGlzcGxheSBhIGRldGFpbCB2aWV3IG9mIGEgc2luZ2xlIHByb2R1Y3Q8L2xpPg0KICA8bGk+ZmllbGRsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgdmFsdWVzIGZyb20gYSBzcGVjaWZpZWQgZmllbGQuDQogICAgIDxwPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7LSBUaGlzIGFjdGlvbiBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYSBuYXZpZ2F0aW9uIGZyb20gdGhlIHZhbHVlcyBvZiBhIHNwZWNpZmljIGZpZWxkLiAgaS5lOiAgeW91IGNvdWxkIGNyZWF0ZSBhIGN1c3RvbSBkcm9wZG93biBmaWVsZCBjYWxsZWQgJmFtcDtxdW90O2NvbG9yJmFtcDtxdW90OyBhbmQgdGhlbiBjcmVhdGUgYSBuYXZpZ2F0aW9uIGJhc2VkIG9uIHRoZSBkaWZmZXJlbnQgY29sb3JzLg0KICAgICA8L3A+DQogIDwvbGk+DQogIDxsaT5zZWFyY2ggLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBzZWFyY2hpbmcgcHJvZHVjdHMgb24gdmFyaW91cyBjcml0ZXJpdW08L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdRdWFuZG8gdXRpbGl6YWRvIGVtIDxlbT4gcGFkciZhdGlsZGU7byA8LyBlbT4gbW9kbyBzdW0mYWFjdXRlO3JpbywgZXN0ZSBwYXImYWNpcmM7bWV0cm8sIGRldmUgc2VyIGlndWFsIGFvIG5vbWUgZGUgdW1hIGNhdGVnb3JpYSBleGlzdGVudGUgc2VyJmFhY3V0ZTsgdXRpbGl6YWRvIHBhcmEgZXhpYmlyIGFwZW5hcyBhcyBlbXByZXNhcyBxdWUgZXN0JmF0aWxkZTtvIG5lc3NhIGNhdGVnb3JpYS4gKFVtYSBsaXN0YSBzZXBhcmFkYSBwb3IgdiZpYWN1dGU7cmd1bGFzIHBvZGUgc2VyIGZvcm5lY2lkYSknOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICcmVWFjdXRlO3RpbCBhcGVuYXMgY29tIG8gbGlzdGFzIGRlIGNhdGVnb3JpYXMsIGVzdGUgcGFyJmFjaXJjO21ldHJvIGluZGljYSBvIHRlbXBsYXRlIHF1ZSBkZXZlIHNlciB1dGlsaXphZG8gcGFyYSBhIGV4aWJpJmNjZWRpbDsmYXRpbGRlO28uIFNlIG5lbmh1bSB2YWxvciBmb3IgZXNwZWNpZmljYWRvLCBlbnQmYXRpbGRlO28gbyBhY3R1YWwgdGVtcGxhdGUgcGFkciZhdGlsZGU7byAmZWFjdXRlOyB1c2Fkby4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0ZHRsdGVtcGxhdGUnXSA9ICcmVWFjdXRlO3RpbCBhcGVuYXMgY29tIGFzIGEmY2NlZGlsOyZvdGlsZGU7ZXMgJnF1b3Q7Y2F0ZWdvcnlsaXN0JnF1b3Q7ICwgZXN0ZSBwYXImYWNpcmM7bWV0cm8gaW5kaWNhIG8gdGVtcGxhdGUgcXVlIGRldmUgc2VyIHV0aWxpemFkbyBwYXJhIGEgZXhpYmkmY2NlZGlsOyZhdGlsZGU7byBkbyBkZXRhbGhlIGRhIGNhdGVnb3JpYS4gU2UgbmVuaHVtIHZhbG9yIGZvciBlc3BlY2lmaWNhZG8sIGVudCZhdGlsZGU7byBvIGFjdHVhbCB0ZW1wbGF0ZSBwYWRyJmF0aWxkZTtvICZlYWN1dGU7IHVzYWRvLic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnRXNwZWNpZmljYSBvIHBhZ2VpZCBvdSBhbGlhcyBxdWUgZGV2ZSBzZXIgdXNhZG8gcGFyYSBleGliaXIgbyByZWxhdCZvYWN1dGU7cmlvIGRlIGRldGFsaGVzIC4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdFc3RlIHBhciZhY2lyYzttZXRybyBlc3BlY2lmaWNhIG8gdGVtcGxhdGUgcXVlIGRldmUgc2VyIHV0aWxpemFkbyBwYXJhIG8gZGV0YWxoZS4gU2UgbmVuaHVtIHZhbG9yIGZvciBlc3BlY2lmaWNhZG8sIG8gdGVtcGxhdGUgcGFkciZhdGlsZGU7byAmZWFjdXRlOyB1c2Fkby4nOwokbGFuZ1sncGFyYW1fZmllbGQnXSA9ICdVc2FkbyBzJm9hY3V0ZTsgZW0gPGVtPmZpZWxkbGlzdDwvZW0+IGFjJmNjZWRpbDsmYXRpbGRlO28sIG5lc3RlIHBhciZhY2lyYzttZXRybyAmZWFjdXRlOyBuZWNlc3MmYWFjdXRlO3JpbyBlc3BlY2lmaWNhciBvIG5vbWUgZGUgdW1hIHByb3ByaWVkYWRlIGRlZmluaWRhIHBlbG8gdXRpbGl6YWRvciBwYXJhIGNyaWFyIHVtYSBsaXN0YSBkZSBkZS4nOwokbGFuZ1sncGFyYW1faGllcmFyY2h5J10gPSAnJlVhY3V0ZTt0ZWlzIGFwZW5hcyBubyA8ZW0+IHBhZHImYXRpbGRlO28gPC9lbT4sIGVzdGUgcGFyJmFjaXJjO21ldHJvIGVzcGVjaWZpY2EgcXVlIGFwZW5hcyBvcyBpdGVucyBlbSBxdWUgYSBsb2NhbGl6YSZjY2VkaWw7JmF0aWxkZTtvIGRhIGhpZXJhcnF1aWEgZGV2ZSBzZXIgZXhpYmlkby4gV2lsZGNhcmQgcG9kZW0gc2VyIHV0aWxpemFkb3MgZGUgbW9kbyBxdWUgcG9kZSBlc3BlY2lmaWNhciBtJmF0aWxkZTtlL2ZpbGhvIHJlbGFjaW9uYW1lbnRvcy4gRS5YLiB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5O3RydWNrcyomIzAzOTt9IGlyJmFhY3V0ZTsgY3JpYXIgdW1hIHMmaWFjdXRlO250ZXNlIGRlIHRvZG9zIG9zIGNhbWkmb3RpbGRlO2VzLCBpbmNsdWluZG8gb3MgZmlsaG9zIG5hIGhpZXJhcnF1aWEuIERhIG1lc21hIG1hbmVpcmEsIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7KnRydWNrcyYjMDM5O30gZXhpYmlyJmFhY3V0ZTsgdW0gcmVsYXQmb2FjdXRlO3Jpby1zJmlhY3V0ZTtudGVzZSBkZSB0b2RvcyBvcyBjYW1pJm90aWxkZTtlcywgZSB0b2RvcyBvcyBwcm9kdXRvcyBwZXJ0ZW5jZW50ZXMgYSBxdWFscXVlciBwYWkgbmEgaGllcmFycXVpYS4nOwokbGFuZ1sncGFyYW1faGllcmFyY2h5dGVtcGxhdGUnXSA9ICdFc3RlIHBhciZhY2lyYzttZXRybyBlc3BlY2lmaWNhIG8gdGVtcGxhdGUgcXVlIGRldmUgc2VyIHVzYWRvIHBhcmEgZXhpYmlyIGEgaGllcmFycXVpYS4gU2UgbmVuaHVtIHZhbG9yIGZvciBlc3BlY2lmaWNhZG8sIGVudCZhdGlsZGU7byBvIGFjdHVhbCB0ZW1wbGF0ZSBwYWRyJmF0aWxkZTtvIGRvIHRpcG8gcXVlIGVzdCZhYWN1dGU7IHNlciB1c2Fkby4nOwokbGFuZ1sncGFyYW1faW5saW5lJ10gPSAnJlVhY3V0ZTt0aWwgYXBlbmFzIGNvbSBhIGFjJmNjZWRpbDsmYXRpbGRlO28gZGUgcGVzcXVpc2EsIGVzdGUgcGFyJmFjaXJjO21ldHJvIGVzcGVjaWZpY2EgcXVlIGEgc2EmaWFjdXRlO2RhIGRhIGV4aWJpJmNjZWRpbDsmYXRpbGRlO28gZGUgc3VtbSZhYWN1dGU7cmlvIGRldmUgc2VyIGV4aWJpZG8gJnF1b3Q7aW5saW5lJnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJyZVYWN1dGU7dGlsIGFwZW5hcyBjb20gYSBhYyZjY2VkaWw7JmF0aWxkZTtvICA8ZW0+cGFkciZhdGlsZGU7bzwvZW0+ICwgZXN0ZSBwYXImYWNpcmM7bWV0cm8gZXNwZWNpZmljYSBxdWFudG9zIGl0ZW5zIGRldmVtIHNlciBsaXN0YWRvcyBlbSBjYWRhIHAmYWFjdXRlO2dpbmEuJzsKJGxhbmdbJ3BhcmFtX3BhcmVudCddID0gJyZVYWN1dGU7dGVpcyBhcGVuYXMgbmEgPGVtPiBoaWVyYXJxdWlhIDwvZW0+LCBlc3RlIHBhciZhY2lyYzttZXRybyBlc3BlY2lmaWNhIGEgaGllcmFycXVpYSBpZCBkYSBwYXJ0aWRhIGRhIGxvY2FsaXphJmNjZWRpbDsmYXRpbGRlO28gZG8gcmVsYXQmb2FjdXRlO3Jpby4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGlkJ10gPSAnJlVhY3V0ZTt0aWwgYXBlbmFzIGNvbSBhIGFjJmNjZWRpbDsmYXRpbGRlO28gZGUgZGV0YWxoZSAsIGVzdGUgcGFyJmFjaXJjO21ldHJvIGluZGljYSBvIHByb2R1dG8gcXVlIHByZXRlbmRlIGV4aWJpci4nOwokbGFuZ1sncGFyYW1fcmVzdWx0cGFnZSddID0gJ0FwbGljJmFhY3V0ZTt2ZWwgYXBlbmFzICZhZ3JhdmU7IGFjJmNjZWRpbDsmYXRpbGRlO28gZGUgcGVzcXVpc2EsIGVzdGUgcGFyJmFjaXJjO21ldHJvIGVzcGVjaWZpY2EgdW1hICZxdW90O3BhZ2VJRCZxdW90OyAgb3UgJnF1b3Q7YWxpYXMmcXVvdDsgYSBzZXIgdXNhZG8gcGFyYSBleGliaXIgb3MgcmVzdWx0YWRvcyBkZSBwZXNxdWlzYSc7CiRsYW5nWydwYXJhbV9zZWFyY2hmaWVsZCddID0gJ0FwbGljJmFhY3V0ZTt2ZWwgYXBlbmFzICZhZ3JhdmU7IGFjJmNjZWRpbDsmYXRpbGRlO28gZGUgcGVzcXVpc2EsIGVzdGUgcGFyJmFjaXJjO21ldHJvIHBvZGUgY29udGVyIHVtYSBsaXN0YSBzZXBhcmFkYSBwb3IgdiZpYWN1dGU7cmd1bGFzIGRlIG5vbWVzIGRlIGNhbXBvcyBwYXJhIGluY2x1aXIgbmEgcGVzcXVpc2EnOwokbGFuZ1sncGFyYW1fc2VhcmNoZm9ybXRlbXBsYXRlJ10gPSAnQXBsaWMmYWFjdXRlO3ZlbCBhcGVuYXMgJmFncmF2ZTsgYWMmY2NlZGlsOyZhdGlsZGU7byBkZSBwZXNxdWlzYSwgZXN0ZSBwYXImYWNpcmM7bWV0cm8gcGVybWl0ZSBlc3BlY2lmaWNhciB1bSwgIHRlbXBsYXRlIG4mYXRpbGRlO28gcGFkciZhdGlsZGU7byBkZSBvIGZvcm11bCZhYWN1dGU7cmlvIGRhIHBlc3F1aXNhICc7CiRsYW5nWydwYXJhbV9zaG93YWxsJ10gPSAnQXBsaWMmYWFjdXRlO3ZlbCBhcGVuYXMgJmFncmF2ZTsgYWMmY2NlZGlsOyZhdGlsZGU7byBjYXRlZ29yeWxpc3QsIHNlIGVzdGUgcGFyJmFjaXJjO21ldHJvIGZvciBkZWZpbmlkbyBwYXJhIHVtIHZhbG9yIG4mYXRpbGRlO28gaW50ZWlybyAwLCB0b2RhcyBhcyBjYXRlZ29yaWFzIChtZXNtbyBhcXVlbGVzIHNlbSBwcm9kdXRvcykgc2VyJmF0aWxkZTtvIGV4aWJpZGFzLic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdFc3BlY2lmaWNhciBhIG9yZGVtIGRvcyBjYW1wb3Mgb3JkZW5hZG9zIG5vIHN1bSZhYWN1dGU7cmlvLiBPcyB2YWxvcmVzIHBvc3MmaWFjdXRlO3ZlaXMgcyZhdGlsZGU7bzoNCjx1bD4NCiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIEFzY2VuZGluZyBvcmRlcjwvbGk+DQogIDxsaT5kZXNjIC0tIERlc2NlbmRpbmcgb3JkZXI8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnQXBsaWMmYWFjdXRlO3ZlbCBhcGVuYXMgZW0gbW9kbyBzdW0mYWFjdXRlO3JpbywgZXN0ZSBwYXImYWNpcmM7bWV0cm8gZGV0ZXJtaW5hIGEgdHJpYWdlbSBkYXMgZW1wcmVzYXMgZGUgc2EmaWFjdXRlO2RhLiBPcyB2YWxvcmVzIHBvc3MmaWFjdXRlO3ZlaXMgcyZhdGlsZGU7bzoNCjx1bD4NCiAgPGxpPjxzdHJvbmc+cHJvZHVjdF9uYW1lPC9zdHJvbmc+PC9saT4NCiAgPGxpPmlkIC0tIFRoZSBwcm9kdWN0IGlkPC9saT4NCiAgPGxpPndlaWdodCAtLSBUaGUgcHJvZHVjdCB3ZWlnaHQ8L2xpPg0KICA8bGk+cHJpY2UgLS0gVGhlIHByb2R1Y3QgYmFzZSBwcmljZTwvbGk+DQogIDxsaT5zdGF0dXMgLS0gRHJhZnQgb3IgcHVibGlzaGVkPC9saT4NCiAgPGxpPnJhbmRvbSAtLSBEaXNwbGF5IGluIHJhbmRvbSBvcmRlciBvbiBlYWNoIHJlcXVlc3Q8L2xpPg0KICA8bGk+Y3JlYXRlZCAtLSBUaGUgY3JlYXRpb24gZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQogIDxsaT5tb2RpZmllZCAtLSBUaGUgbW9kaWZpZWQgZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQogIDxsaT5mOmZpZWxkbmFtZSAtLSBBbGxvd3Mgc29ydGluZyBieSB2YWx1ZXMgb2YgY3VzdG9tIGZpZWxkcy48L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydHR5cGUnXSA9ICdBcGxpYyZhYWN1dGU7dmVsIGFwZW5hcyBhbyBzdW1tYXJ5IHZpZXcgcGFkciZhdGlsZGU7bywgZXNzZSBwYXImYWNpcmM7bWV0cm8gJmVhY3V0ZTsgdXNhZG8gcGFyYSBjb252ZXJ0ZXIgb3MgdmFsb3JlcyBwYXJhIG91dHJvIHRpcG8gZGUgb3JkZW5hJmNjZWRpbDsmYXRpbGRlO28uIFZhbG9yZXMgdiZhYWN1dGU7bGlkb3MgcyZhdGlsZGU7bzogU1RSSU5HLFNJR05FRCBlIFVOU0lHTkVELiBTZSBuJmF0aWxkZTtvIGZvciBmb3JuZWNpZG8gcXVhbHF1ZXIgZGFkbywgbyB0aXBvIFNUUklORyAmZWFjdXRlOyBhc3N1bWlkbyBwb3IgcGFkciZhdGlsZGU7by4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXBhZ2UnXSA9ICdBcGxpYyZhYWN1dGU7dmVsIGFwZW5hcyAmYWdyYXZlOyAmcXVvdDthY3Rpb249aGllcmFyY2h5JnF1b3Q7LCBwZXJtaXRlIGVzcGVjaWZpY2FyIHVtYSBpZCBkYSBwJmFhY3V0ZTtnaW5hIG91IGFsaWFzIHF1ZSBzZXImYWFjdXRlOyB1dGlsaXphZG8gcGFyYSBxdWFpc3F1ZXIgbGlua3MgcGFyYSB2ZXIgc3VtbWFyeSc7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdFc3RlIHBhciZhY2lyYzttZXRybyBlc3BlY2lmaWNhIG5vIHRlbXBsYXRlIHF1ZSBkZXZlIHNlciB1dGlsaXphZG8gcGFyYSBhIGV4aWJpJmNjZWRpbDsmYXRpbGRlO28gZG8gc3VtJmFhY3V0ZTtyaW8uIFNlIG5lbmh1bSB2YWxvciBmb3IgZXNwZWNpZmljYWRvLCBvIHBhZHImYXRpbGRlO28gYWN0dWFsICZlYWN1dGU7IHVzYWRvLic7CiRsYW5nWydwYXJhbV91c2VvbGRoaWVyYXJjaHknXSA9ICdVc2FyIG8gbW9kbyBhbnRpZ2EgZGEgaGllcmFycXVpYSBxdWUgZ2VyYSB1bWEgbGlzdGEgZml4YSBkZSBoaWVyYXJxdWlhcyBhYmFpeG8gZG8gbiZpYWN1dGU7dmVsIGFjdHVhbC4gRXN0YSBtb2RhbGlkYWRlIGVzdCZhYWN1dGU7IG9ic29sZXRhIGUgc2VyJmFhY3V0ZTsgcmVtb3ZpZGEgZW0gdW1hIGRhdGEgcG9zdGVyaW9yLic7CiRsYW5nWydwYXJlbnQnXSA9ICdQYXJlbnRlJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTSZvYWN1dGU7ZHVsbyBQcm9kdXRvcyBmb2kgaW5zdGFsYWRvIGNvbSBzdWNlc3NvJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdPIG0mb2FjdXRlO2R1bG8gUHJvZHV0b3MgZm9pIHJlbW92aWRvIGp1bnRhbWVudGUgY29tIHRvZG9zIG9zIGRhZG9zIGFzc29jaWFkb3MnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQcmVmZXImZWNpcmM7bmNpYXMnOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnUmVtb3ZlbmRvIGVzdGUgbSZvYWN1dGU7ZHVsbyB0YW1iJmVhY3V0ZTttIGlyJmFhY3V0ZTsgcmVtb3ZlciB0b2RvcyBvcyBkYWRvcyBhc3NvY2lhZG9zLCB0ZW0gY2VydGV6YSBkZSBxdWUgZGVzZWphIHByb3NzZWd1aXI/JzsKJGxhbmdbJ3ByaWNlJ10gPSAnUHJlJmNjZWRpbDtvJzsKJGxhbmdbJ3ByaWNlX2FkanVzdG1lbnQnXSA9ICdBanVzdGVzIGRlIHByZSZjY2VkaWw7b3MnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb2R1Y3QnXSA9ICdQcm9kdWN0byc7CiRsYW5nWydwcm9kdWN0bmFtZSddID0gJ1Byb2R1Y3RvIE5vbWUnOwokbGFuZ1sncHJvZHVjdHMnXSA9ICdHZXN0JmF0aWxkZTtvIGRvIFByb2R1Y3RvJzsKJGxhbmdbJ3Byb2R1Y3RfZGV0YWlsX3NldHRpbmdzJ10gPSAnQ29uZmlndXJhJmNjZWRpbDsmYXRpbGRlO28gRGV0YWxoZSBkbyBQcm9kdXRvJzsKJGxhbmdbJ3Byb2R1Y3RfaGllcmFyY2h5J10gPSAnSGllcmFycXVpYSBQcm9kdWN0byc7CiRsYW5nWydwcm9kdWN0X21hbmFnZXInXSA9ICdHZXN0JmF0aWxkZTtvIGRlIFByb2R1dG9zJzsKJGxhbmdbJ3Byb2dyZXNzJ10gPSAnUHJvZ3Jlc3NvJzsKJGxhbmdbJ3Byb21wdCddID0gJ0NvbWFuZG8nOwokbGFuZ1sncHJvbXB0X2FkZF9hdHRyaWJzZXQnXSA9ICdBZGljaW5hci9FZGl0YXIgQ29uanVudG8gZGUgYXRyaWJ1dG9zJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ZpbGV0eXBlcyddID0gJ1Blcm1pdGlyIGNhcnJlZ2FyIGFycXVpdm9zIGNvbSBhcyBleHRlbnMmb3RpbGRlO2VzIChwYXJhIG8gdGlwbyBjYW1wb3MgZGUgYXJxdWl2byApJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ltYWdldHlwZXMnXSA9ICdQZXJtaXRpciBjYXJyZWdhciBpbWFnZW5zIGNvbSBlc3NhcyBleHRlbnMmb3RpbGRlO2VzIChwYXJhIG8gdGlwbyBjYW1wb3MgZGUgaW1hZ2VtKSc7CiRsYW5nWydwcm9tcHRfYXR0cmlidGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBwYXJhIGFwcmVzZW50YSZjY2VkaWw7JmF0aWxkZTtvIGRlIHZhbG9yZXMgZG9zIGF0cmlidXRvcyBkbyBwcm9kdXRvIGVtIG1lbnUgc3VzcGVuc28nOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWwnXSA9ICdDcmlhciBhdXRvbWF0aWNhbWVudGUgbWluaWF0dXJhcyBkYXMgaW1hZ2Vucyc7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbF9zaXplJ10gPSAnVGFtYW5obyBtJmFhY3V0ZTt4aW1vIChtYWlvciBkaW1lbnMmYXRpbGRlO28pIGRhIG1pbmlhdHVyYS4nOwokbGFuZ1sncHJvbXB0X2F1dG9wcmV2aWV3aW1nJ10gPSAnQ3JpYXIgYXV0b21hdGljYW1lbnRlIGltYWdlbnMgZGUgdmlzdWFsaXphJmNjZWRpbDsmYXRpbGRlO28nOwokbGFuZ1sncHJvbXB0X2F1dG9wcmV2aWV3aW1nX3NpemUnXSA9ICdUYW1hbmhvIG0mYWFjdXRlO3hpbW8gKG1haW9yIGRpbWVucyZhdGlsZGU7bykgZGEgaW1hZ2VtIGRlIHZpc3VhbGl6YSZjY2VkaWw7JmF0aWxkZTtvLic7CiRsYW5nWydwcm9tcHRfYXV0b3dhdGVybWFyayddID0gJ0x1Z2FyIGF1dG9tJmFhY3V0ZTt0aWNvIGRhcyBtYXJjYXMgZCYjMDM5OyZhYWN1dGU7Z3VhIGVtIGltYWdlbnMnOwokbGFuZ1sncHJvbXB0X2FwcGxpY2FibGUnXSA9ICdBY3RpdmFyIHBvciBwYWRyJmF0aWxkZTtvIHBhcmEgdG9kb3Mgb3Mgbm92b3MgcHJvZHV0b3MnOwokbGFuZ1sncHJvbXB0X2JhdGNoc2l6ZSddID0gJ1RhbWFuaG8gZG8gTG90ZSc7CiRsYW5nWydwcm9tcHRfY2FydF9tb2R1bGUnXSA9ICdDYXJyaW5obyBNJm9hY3V0ZTtkdWxvJzsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdDYXJyaW5obyBNJm9hY3V0ZTtkdWxvIFBhciZhY2lyYzttZXRyb3MnOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWNhdGVnb3JpZXMnXSA9ICdDcmlhciBDYXRlZ29yaWFzJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVmaWVsZHMnXSA9ICdDcmlhciBDYW1wb3Mgbm8gUHJvZHV0bz8nOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWhpZXJhcmNoeSddID0gJ0NyaWFyIHVtIFByb2R1Y3RvIEhpZXJhcnF1aWEnOwokbGFuZ1sncHJvbXB0X2NzdmZpbGUnXSA9ICdDYXJyZWdhciBmaWNoZWlybyBDU1YnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5Y29kZSddID0gJ0Mmb2FjdXRlO2RpZ28gZG8gUyZpYWN1dGU7bWJvbG8nOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAnUyZpYWN1dGU7bWJvbG8gZGEgbW9lZGEnOwokbGFuZ1sncHJvbXB0X2RlZmF1bHRfc3RhdHVzJ10gPSAnUG9yIGRlZmVpdG8sIHRvZG9zIG9zIG5vdm9zIHByb2R1dG9zIHQmZWNpcmM7bSBlc3RlIGVzdGFkbyc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF90YXhhYmxlJ10gPSAnUG9yIGRlZmVpdG8sIHRvZG9zIG9zIG5vdm9zIHByb2R1dG9zIHMmYXRpbGRlO28gdHJpYnV0JmFhY3V0ZTt2ZWlzJzsKJGxhbmdbJ3Byb21wdF9kZWxldGVwcm9kdWN0ZmlsZXMnXSA9ICdFeGNsdWEgcXVhaXNxdWVyIGFycXVpdm9zIGFzc29jaWFkb3MgY29tIG8gcHJvZHV0bywgcXVhbmRvIG8gcHJvZHV0byBmb3IgZXhjbHUmaWFjdXRlO2RvPyc7CiRsYW5nWydwcm9tcHRfZGVsaW1pdGVyJ10gPSAnRGVsaW1pdGFkb3IgZGUgQ2FtcG8nOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdQJmFhY3V0ZTtnaW5hIERldGFsaGUgUGFkciZhdGlsZGU7byc7CiRsYW5nWydwcm9tcHRfZGV0YWlsc2ZvciddID0gJ0RldGFpbGhlcyBwYXJhICVzJzsKJGxhbmdbJ3Byb21wdF9kdXBsaWNhdGVwcm9kdWN0cyddID0gJ0NvbW8gbGlkYXIgY29tIHByb2R1dG9zIGR1cGxpY2Fkb3M/JzsKJGxhbmdbJ3Byb21wdF9oYW5kbGVpbWFnZXMnXSA9ICdNYW5pcHVsYXIgaW1hZ2Vucz8nOwokbGFuZ1sncHJvbXB0X2ltYWdlcGF0aCddID0gJ0NhbWluaG8gZGEgSW1hZ2VtJzsKJGxhbmdbJ3Byb21wdF9sZW5ndGh1bml0cyddID0gJ1VuaWRhZGVzIGRlIGNvbXByaW1lbnRvJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9iZWhhdmlvciddID0gJ1F1ZSBhYyZjY2VkaWw7JmF0aWxkZTtvIGRldmUgc2VyIHRvbWFkYSBxdWFuZG8gdW0gcHJvZHV0byBuJmF0aWxkZTtvIHBvZGUgc2VyIGV4aWJpZG8/JzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF80MDQnXSA9ICdHZXJhciB1bSBlcnJvIDQwNCc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfMzAxJ10gPSAnR2VyYXIgdW0gcmVkaXJlY2lvbmFtZW50byAzMDEnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX2Vycm9ybXNnJ10gPSAnRXhpYmlyIHVtYSBtZW5zYWdlbSBkZSBlcnJvJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9tc2cnXSA9ICdNZW5zYWdlbSBkZSBlcnJvIHBhcmEgcXVhbmRvIHVtIHByb2R1dG8gbiZhdGlsZGU7byBwb2RlIHNlciBlbmNvbnRyYWRvJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9wYWdlJ10gPSAnUCZhYWN1dGU7Z2luYSBkZSBmYXplciByZWRpcmVjaW9uYW1lbnRvIHBlcm1hbmVudGUgcGFyYT8nOwokbGFuZ1sncHJvbXB0X3Byb2RfZGV0YWlscGFnZSddID0gJ1AmYWFjdXRlO2dpbmEgcGFkciZhdGlsZGU7byBwYXJhIG9zIFZpZXdzIFByb2R1Y3QgRGV0YWlsJzsKJGxhbmdbJ3Byb21wdF9wcm9kdWN0c19tYXRjaGluZyddID0gJ1Byb2R1dG9zIHF1ZSBjb3JyZXNwb25kZW0gICVzJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnT3JkZW5hJmNjZWRpbDsmYXRpbGRlO28gUGFkciZhdGlsZGU7byBkbyBzdW0mYWFjdXRlO3Jpbyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICdPcmRlbmEmY2NlZGlsOyZhdGlsZGU7byBQYWRyJmF0aWxkZTtvIGRvcyBjYW1wb3Mgbm8gc3VtJmFhY3V0ZTtyaW8nOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgRm9udGUnOwokbGFuZ1sncHJvbXB0X3VybHByZWZpeCddID0gJ1ByZWZpeG8gYSBzZXIgdXNhZG8gZW0gdG9kYXMgYXMgVVJMcyBkaXJlY2lvbmFkb3MgcGFyYSBlc3RlIG0mb2FjdXRlO2R1bG8nOwokbGFuZ1sncHJvbXB0X3VzZV9kZXRhaWxwYWdlX2Zvcl9zZWFyY2gnXSA9ICdVc2UgZXN0YSBwJmFhY3V0ZTtnaW5hIHBhcmEgcmVzdWx0YWRvcyBkZSBwZXNxdWlzYSB0YW1iJmVhY3V0ZTttIDxlbT4oc3Vic3RpdHVpIG8gcGFyJmFjaXJjO21ldHJvIGRhIHAmYWFjdXRlO2dpbmEgU2VhcmNocmVzdWx0cyBubyBtJm9hY3V0ZTtkdWxvIGRlIHBlc3F1aXNhKTwvZW0+JzsKJGxhbmdbJ3Byb21wdF91c2VoaWVycGF0aHVybHMnXSA9ICdVc2FyIENhbWluaG8gcGFyYSBhIEhpZXJhcnF1aWEgbm8gZGV0YWxoZSBkYXMgVVJMUyc7CiRsYW5nWydwcm9tcHRfd2VpZ2h0dW5pdHMnXSA9ICdVbmlkYWRlcyBkZSBQZXNvICc7CiRsYW5nWydwdWJsaWMnXSA9ICcmRWFjdXRlOyB1bSBjYW1wbyBwJnVhY3V0ZTtibGljbz8nOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnUCZ1YWN1dGU7YmxpY2Fkbyc7CiRsYW5nWydyYW5kb20nXSA9ICdBbGlhdCZvYWN1dGU7cmlvJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnUmVkZWZlbmlyIHBhcmEgb3MgdmFsb3JlcyBQYWRyJmF0aWxkZTtvJzsKJGxhbmdbJ3JldHVybiddID0gJ1ZvbHRhcic7CiRsYW5nWydyZXR1cm5fdG9fdG9wJ10gPSAnVm9sdGFyIHBhcmEgbyB0b3BvIGRhIHZpc3RhJzsKJGxhbmdbJ3Jvb3QnXSA9ICdSYWl6IChSb290KSc7CiRsYW5nWydzZWFyY2hfZGVzY3JpcHRpb24nXSA9ICdQZXNxdWlzYSBQcm9wcmllZGFkZSBEZXNjcmkmY2NlZGlsOyZhdGlsZGU7byc7CiRsYW5nWydzZWFyY2hfZXhwciddID0gJ1BvZGUgYSBjb25zdWx0YSBjb3JyZXNwb25kZXIgYSB0b2Rhcywgb3UgcXVhbHF1ZXIgdW0gZG9zIHRlc3RlcyBhYmFpeG8/JzsKJGxhbmdbJ3NlYXJjaF9uYW1lJ10gPSAnUGVzcXVpc2EgTm9tZSBkYSBwcm9wcmllZGFkZSc7CiRsYW5nWydzZWFyY2hfcHJpY2UnXSA9ICdPcmRlbmEmY2NlZGlsOyZhdGlsZGU7byBQcmUmY2NlZGlsO28nOwokbGFuZ1snc2VhcmNodGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkaWNpb25hci9FZGl0YXIgUGVzcXVpc2EgRm9ybXVsJmFhY3V0ZTtyaW8gVGVtcGxhdGUnOwokbGFuZ1snc2VhcmNodGVtcGxhdGVzJ10gPSAnVGVtcGxhdGUgUGVzcXVpc2EnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1NlbGVjY2lvbmFyIFVtJzsKJGxhbmdbJ3NrdSddID0gJ1NLVSAnOwokbGFuZ1snc29ydF9ieSddID0gJ09yZGVuYXIgUG9yJzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdPcmRlbSBkYSBPcmRlbmEmY2NlZGlsOyZhdGlsZGU7byc7CiRsYW5nWydzdGF0dXMnXSA9ICdFc3RhZG8nOwokbGFuZ1snc3VibWl0J10gPSAnUHJvY2Vzc2FyJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdTdW0mYWFjdXRlO3JpbyBUZW1wbGF0ZXMnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGljaW9uYXIvRWRpdGFyICBTdW0mYWFjdXRlO3JpbyBUZW1wbGF0ZXMnOwokbGFuZ1sndGF4YWJsZSddID0gJ1RyaWJ1dCZhYWN1dGU7dmVpcyc7CiRsYW5nWyd0ZXN0J10gPSAnVGVzdGUnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICcmQWFjdXRlO3JlYSBkZSBUZXh0byc7CiRsYW5nWyd0ZXh0Ym94J10gPSAnQ2FtcG8gZGUgVGV4dG8nOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnSGllcmFycXVpYSBQYWRyJmF0aWxkZTtvIG5vdm8gdGVtcGxhdGUgZGUgcmVsYXQmb2FjdXRlO3Jpbyc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnTm92byBUZW1wbGF0ZSBQYWRyJmF0aWxkZTtvIENhdGVnb3JpYSBMaXN0YSc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnTm92byBUZW1wbGF0ZSBQYWRyJmF0aWxkZTtvIERldGFsaGVzJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaF9kZmx0dGVtcGxhdGUnXSA9ICdOb3ZvIFRlbXBsYXRlIFBhZHImYXRpbGRlO28gUGVzcXVpc2EnOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdOb3ZvIFRlbXBsYXRlIFBhZHImYXRpbGRlO28gU3VtJmFhY3V0ZTtyaW8nOwokbGFuZ1sndHlwZSddID0gJ1RpcG8nOwokbGFuZ1sndXBkYXRlJ10gPSAnQWN0dWFsaXphcic7CiRsYW5nWyd1cGxvYWQnXSA9ICdTZWxlY2Npb25lIHVtIGFycXVpdm8gYSBjYXJyZWdhcic7CiRsYW5nWyd1cmxfYWxpYXMnXSA9ICdVUkwgQWxpYXMgJzsKJGxhbmdbJ3ZhbGlkJ10gPSAnViZhYWN1dGU7bGlkbyc7CiRsYW5nWyd2YWx1ZSddID0gJ1ZhbG9yJzsKJGxhbmdbJ3ZhbHVlcyddID0gJ1ZhbG9yZXMnOwokbGFuZ1sndmlldyddID0gJ1Zpc3RhJzsKJGxhbmdbJ3ZpZXdhYmxlX2ZpZWxkcyddID0gJ1NlbGVjaW9uYXIgY2FtcG9zIHBlcnNvbmFsaXphZG9zIHBhcmEgdmVyIG5hIHRhYmVsYSc7CiRsYW5nWyd3YXRlcm1hcmtfbG9jYXRpb24nXSA9ICdXYXRlcm1hcmsgTG9jYWxpemEmY2NlZGlsOyZhdGlsZGU7byc7CiRsYW5nWyd3ZWlnaHQnXSA9ICdQZXNvJzsKJGxhbmdbJ3llcyddID0gJ1NpbSc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjk3OTczNTQ0Mi4xMjcyMzI1Nzk2LjEyNzQwMzQ0NTMuMTI3NDEzMDYxOS4yMSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyNzMwNTk2NDkuMTMuNC51dG1jc3I9ZGV2LmNtc21hZGVzaW1wbGUub3JnfHV0bWNjbj0ocmVmZXJyYWwpfHV0bWNtZD1yZWZlcnJhbHx1dG1jY3Q9L3Byb2plY3QvZmlsZXMvNjknOwokbGFuZ1sncWNhJ10gPSAnUDAtMTk4MzY1MDQwMS0xMjcyMzI1Nzk2NjQ1JzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ru_RU.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfbGVuZ3RoJ10gPSAn0JQnOwokbGFuZ1snYWJicl93aWR0aCddID0gJ9CoJzsKJGxhbmdbJ2FiYnJfaGVpZ2h0J10gPSAn0JInOwokbGFuZ1snYWRkJ10gPSAn0JTQvtCx0LDQstC40YLRjCc7CiRsYW5nWydhZGRjYXRlZ29yeSddID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0LrQsNGC0LXQs9C+0YDQuNGOJzsKJGxhbmdbJ2FkZGZpZWxkZGVmJ10gPSAn0JTQvtCx0LDQstC40YLRjCDQv9C+0LvQtSc7CiRsYW5nWydhZGp1c3RhYmxlJ10gPSAn0JLRgNGD0YfQvdGD0Y4nOwokbGFuZ1snYWRkcHJvZHVjdCddID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0L/RgNC+0LTRg9C60YInOwokbGFuZ1snYWRkX2F0dHJpYl9zZXQnXSA9ICfQlNC+0LHQsNCy0LjRgtGMINCw0YLRgNC40LHRg9GCJzsKJGxhbmdbJ2FkZF9jYXRlZ29yeV9maWVsZCddID0gJ0Fzc29jaWF0ZSBGaWVsZCB3aXRoIENhdGVnb3J5OiAiJXMiJzsKJGxhbmdbJ2FkZF9oaWVyYXJjaHlfaXRlbSddID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0Y3Qu9C10LzQtdC90YIg0LIg0LjQtdGA0LDRgNGF0LjRjic7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAn0JTQvtCx0LDQstC40YLRjCDQstCw0YDQuNCw0L3RgiDQsNGC0YDQuNCx0YPRgtCwJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICfQkNGC0YDQuNCx0YPRgtGLINC00L7RgdGC0YPQv9C90Ysg0YLQvtC70YzQutC+INCw0LTQvNC40L3Rgz8nOwokbGFuZ1snYWxpZ25fdWwnXSA9ICfQktCy0LXRgNGF0YMg0YHQu9C10LLQsCc7CiRsYW5nWydhbGlnbl91YyddID0gJ9CS0LLQtdGA0LfRgyDQsiDRhtC10L3RgtGA0LUnOwokbGFuZ1snYWxpZ25fdXInXSA9ICfQktCy0LXRgNGF0YMg0YHQv9GA0LDQstCwJzsKJGxhbmdbJ2FsaWduX21sJ10gPSAn0J/QvtGB0LXRgNC10LTQuNC90LUg0YHQu9C10LLQsCc7CiRsYW5nWydhbGlnbl9tYyddID0gJ9CSINGG0LXQvdGC0YDQtSc7CiRsYW5nWydhbGlnbl9tciddID0gJ9Cf0L7RgdC10YDQtdC00LjQvdC1INGB0L/RgNCw0LLQsCc7CiRsYW5nWydhbGlnbl9sbCddID0gJ9CS0L3QuNC30YMg0YHQu9C10LLQsCc7CiRsYW5nWydhbGlnbl9sYyddID0gJ9CS0L3QuNC30YMg0LIg0YbQtdC90YLRgNC1JzsKJGxhbmdbJ2FsaWduX2xyJ10gPSAn0JLQvdC40LfRgyDRgdC/0YDQsNCy0LAnOwokbGFuZ1snYWxsJ10gPSAn0JLRgdC1JzsKJGxhbmdbJ2FsbGNhdGVnb3JpZXMnXSA9ICfQktGB0LUg0LrQsNGC0LXQs9C+0YDQuNC4JzsKJGxhbmdbJ2FueSddID0gJ9Cb0Y7QsdC+0LknOwokbGFuZ1snYXJleW91c3VyZSddID0gJ9CS0Ysg0YPQstC10YDQtdC90Ys/JzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlcHJvZHVjdCddID0gJ9CS0Ysg0YPQstC10YDQtdC90YssINGH0YLQviDRhdC+0YLQuNGC0LUg0YPQtNCw0LvQuNGC0Ywg0Y3RgtC+0YIg0YLQvtCy0LDRgCwg0Lgg0LLRgdGOINC40L3RhNC+0YDQvNCw0YbQuNGOINC+INC90LXQvD8nOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAn0J/QviDQstC+0LfRgNCw0YHRgtCw0L3QuNGOJzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAn0J3QsNC30LLQsNC90LjQtSDQsNGC0YDQuNCx0YPRgtCwJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ9CQ0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4JzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVzJ10gPSAn0KjQsNCx0LvQvtC90Ysg0LjQtdGA0LDRgNGF0LjQuCc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICfQlNC+0LHQsNCy0LjRgtGML9CY0LfQvNC10L3QuNGC0Ywg0YjQsNCx0LvQvtC9INCy0YvQstC+0LTQsCDQuNC10YDQsNGA0YXQuNC4JzsKJGxhbmdbJ2NhbmNlbCddID0gJ9Ce0YLQvNC10L3QsCc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAn0JrQsNGC0LXQs9C+0YDQuNC4JzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAn0JrQsNGC0LXQs9C+0YDQuNGPJzsKJGxhbmdbJ2NhdGVnb3J5ZXhpc3RzJ10gPSAn0JrQsNGC0LXQs9C+0YDQuNGPINGBINGC0LDQutC40Lwg0LjQvNC10L3QtdC8INGD0LbQtSDRgdGD0YnQtdGB0YLQstGD0LXRgic7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICfQqNCw0LHQu9C+0L0g0YHQv9C40YHQutCwINC60LDRgtC10LPQvtGA0LjQuSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAn0JTQvtCx0LDQstC40YLRjC/QoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDRiNCw0LHQu9C+0L0g0YHQv9C40YHQutCwINC60LDRgtC10LPQvtGA0LjQuSc7CiRsYW5nWydjZW50aW1ldGVycyddID0gJ9Ch0LDQvdGC0LjQvNC10YLRgNGLJzsKJGxhbmdbJ2NoZWNrYm94J10gPSAn0KfQtdC60LHQvtC60YEnOwokbGFuZ1snY29uZmlybV9jb3B5YXR0cmlidXRlcyddID0gJ9CS0YHQtSDRgdGD0YnQtdGB0YLQstGD0Y7RidC40LUg0LDRgtGA0LjQsdGD0YLRiyDQv9GA0L7QtNGD0LrRgtGLINCx0YPQtNGD0YIg0YPQtNCw0LvQtdC90YsuINCS0Ysg0YPQstC10YDQtdC90YssINGH0YLQviDRhdC+0YLQuNGC0LUg0L/RgNC+0LTQvtC70LbQuNGC0Yw/JzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX2hpZXJhcmNoeV9ub2RlJ10gPSAn0JLRiyDRg9Cy0LXRgNC10L3Riywg0YfRgtC+INGF0L7RgtC40YLQtSDRg9C00LDQu9C40YLRjCDRjdGC0L7RgiDRg9C30LXQuz8g0JLRgdC1INC/0YDQvtC00YPQutGC0YssINC90LDRhdC+0LTQtdGJ0LjQtdGB0Y8g0LIg0YPQt9C70LUg0LHRg9C00YPRgiDQv9C10YDQtdC80LXRidC10L3RiyDQsiDQutC+0YDQtdC90YwnOwokbGFuZ1snY29uZmlybV9pbXBvcnQnXSA9ICfQktGLINGD0LLQtdGA0LXQvdGLLCDRh9GC0L4g0YXQvtGC0LjRgtC1INGD0LTQsNC70LjRgtGMP1xcblxcbtCd0LXQstC10YDQvdGL0LUg0L3QsNGB0YLRgNC+0LnQutC4INC40LvQuCDQutC+0L3RhNC40LPRg9GA0LDRhtC40Y8g0LzQvtC20LXRgiDQv9C+0LvQvdC+0YHRgtGM0Y4g0L3QsNGA0YPRiNC40YLRjCDRgNCw0LHQvtGC0L7RgdC/0L7RgdC+0LHQvdC+0YHRgtGMINCS0LDRiNC10LPQviDRgdCw0LnRgtCwLic7CiRsYW5nWydjb3B5J10gPSAn0JrQvtC/0LjRgNC+0LLQsNGC0YwnOwokbGFuZ1snY29weV9hdHRyaWJfc2V0cyddID0gJ9Ch0LrQvtC/0LjRgNC+0LLQsNGC0Ywg0LDRgtGA0LjQsdGD0YLRiyDQv9GA0L7QtNGD0LrRgtCwJzsKJGxhbmdbJ2NvcHlfY2F0ZWdvcnknXSA9ICfQmtC+0L/QuNGA0L7QstCw0YLRjCDQutCw0YLQtdCz0L7RgNC40Y4nOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICfQodC+0LfQtNCw0L0nOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ9CX0L3QsNGH0LXQvdC40LUnOwokbGFuZ1snZGF0YSddID0gJ9CU0LDRgtCwJzsKJGxhbmdbJ2RlZmF1bHQnXSA9ICfQn9C+INGD0LzQvtC70YfQsNC90LjRjic7CiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAn0KjQsNCx0LvQvtC90Ysg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4nOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZSBjb250ZW50cyBvZiB0aGVzZSB0ZXh0IGFyZWFzIGFyZSB1c2VkIHRvIGRldGVybWluZSB0aGUgZGVmYXVsdCBjb250ZW50IG9mIHRlbXBsYXRlcyB3aGVuIHlvdSBjbGljayAiQWRkIFRlbXBsYXRlIiBpbiB0aGUgYXBwcm9wcmlhdGUgdGVtcGxhdGUgdGFiLiAgRWRpdGluZyBvbmUgb2YgdGhlc2UgdGV4dCBhcmVhcyB3aWxsIGhhdmUgbm8gaW1tZWRpYXRlIGVmZmVjdCBvbiB5b3VyIHdlYnNpdGUuJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ9Cj0LTQsNC70LjRgtGMJzsKJGxhbmdbJ2RlbGV0ZV9hdHRyaWJzZXQnXSA9ICfQo9C00LDQu9C40YLRjCDQsNGC0YDQuNCx0YPRgic7CiRsYW5nWydkZWxldGVfaGllcmFyY2h5X2l0ZW0nXSA9ICfQo9C00LDQu9C40YLRjCDQrdC70LXQvNC10L3RgiDQmNC10YDQsNGA0YXQuNC4JzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICfQn9C+INGD0LHRi9Cy0LDQvdC40Y4nOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICfQntC/0LjRgdCw0L3QuNC1JzsKJGxhbmdbJ2Rlc3RpbmF0aW9uJ10gPSAn0J3QsNC30L3QsNGH0LXQvdC40LUnOwokbGFuZ1snZGV0YWlscyddID0gJ9Ce0L/QuNGB0LDQvdC40LUnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAn0KjQsNCx0LvQvtC9INCa0LDRgNGC0L7Rh9C60Lgg0YLQvtCy0LDRgNCwJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICfQlNC+0LHQsNCy0LjRgtGML9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINGI0LDQsdC70L7QvSDQutCw0YDRgtC+0YfQutC4INGC0L7QstCw0YDQsCc7CiRsYW5nWydkaW1lbnNpb25zJ10gPSAn0KDQsNC30LzQtdGA0YsnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICfQntGC0LrQu9GO0YfQtdC90L4nOwokbGFuZ1snZG93biddID0gJ9Cf0LXRgNC10LTQstC40L3Rg9GC0Ywg0LLQvdC40LcnOwokbGFuZ1snZHJhZnQnXSA9ICfQp9C10YDQvdC+0LLQuNC6JzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAn0JLRi9C/0LDQtNCw0Y7RidC40Lkg0YHQv9C40YHQvtC6JzsKJGxhbmdbJ2Ryb3Bkb3duX29wdGlvbnMnXSA9ICfQrdC70LXQvNC10L3RgtGLINCy0YvQv9Cw0LTQsNGO0YnQtdCz0L4g0YHQv9C40YHQutCwIDxlbT4o0L/RgNC40LzQtdC90LjQvNC+INGC0L7Qu9GM0LrQviDQtNC70Y8g0L/QvtC70LXQuSDRgtC40L/QsCAi0LLRi9C/0LDQtNCw0Y7RidC40Lkg0YHQv9C40YHQvtC6Iik8L2VtPjxici8+PGJyLz48ZW0+KNCy0YHQtSDRjdC70LXQvNC10L3RgtGLINCyINGA0LDQt9C90YvRhSDRgdGC0YDQvtC60LDRhSk8L2VtPic7CiRsYW5nWydlZGl0J10gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0YwnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXQnXSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQsNGC0YDQuNCx0YPRgic7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQvdCw0LHQvtGAINCw0YLRgNC40LHRg9GC0L7Qsic7CiRsYW5nWydlZGl0X2F0dHJpYnNldHNfZm9yJ10gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0L3QsNCx0L7RgCDQsNGC0YDQuNCx0YPRgtC+0LIg0LTQu9GPJzsKJGxhbmdbJ2VkaXRfYXR0cmlidXRlcyddID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINCw0YLRgNC40LHRg9GC0YsnOwokbGFuZ1snZWRpdF9jYXRlZ29yeSddID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC60LDRgtC10LPQvtGA0LjRjic7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC/0L7Qu9GPINC60LDRgtC10LPQvtGA0LjQuCc7CiRsYW5nWydlZGl0X2hpZXJhcmNoeV9pdGVtJ10gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0Y3Qu9C10LzQtdC90YIg0LjQtdGA0LDRgNGF0LjQuCc7CiRsYW5nWydlcnJvcl9hdHRyaWJzZXRfZXhpc3RzJ10gPSAn0JDRgtGA0LjQsdGD0YIg0YEg0Y3RgtC40Lwg0LjQvNC10L3QtdC8INGD0LbQtSDRgdGD0YnQtdGB0YLQstGD0LXRgic7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfc2t1J10gPSAn0JTRg9Cx0LvQuNGA0YPQtdGC0YHRjyDQt9C90LDRh9C10L3QuNC1IFNLVSc7CiRsYW5nWydlcnJvcl9maWVsZHZhbHVlX2VtcHR5J10gPSAn0J3QtdC+0LHRhdC+0LTQuNC80L4g0LfQsNC/0L7Qu9C90LjRgtGMINC/0L7Qu9C1JzsKJGxhbmdbJ2Vycm9yX2ZpbGVmb3JtYXQnXSA9ICfQntGI0LjQsdC60LAg0YTQvtGA0LzQsNGC0LAg0YTQsNC50LvQsCc7CiRsYW5nWydlcnJvcl9maWxlbm90Zm91bmQnXSA9ICfQpNCw0LnQuyDQvdC1INC90LDQudC00LXQvSc7CiRsYW5nWydlcnJvcl9maWxlb3BlbiddID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L7RgtC60YDRi9GC0Ywg0YTQsNC50LsgJXMnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmVudCddID0gJ0ludmFsaWQgUGFyZW50IChhIGhpZXJhcmNoeSBub2RlIGNhbm5vdCBiZSBpdFwncyBvd24gcGFyZW50KSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX25hbWUnXSA9ICdUaGUgY3VzdG9tIGZpZWxkIHZhbHVlIGVudGVyZWQgaXMgaW52YWxpZCAoY29udGFpbnMgbm9uIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzKSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX3ZhbHVlJ10gPSAn0KPQutCw0LfQsNC90L4g0L3QtdCy0LXRgNC90L7QtSDQt9C90LDRh9C10L3QuNC1JzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ9Ce0LHRj9C30LDRgtC10LvRjNC90YvQuSDQv9Cw0YDQsNC80LXRgtGAINC/0YDQvtC/0YPRidC10L0g0LjQu9C4INGD0LrQsNC30LDQvSDQvdC10LLQtdGA0L3Qvic7CiRsYW5nWydlcnJvcl9uYW1ldXNlZCddID0gJ9Ci0L7QstCw0YAg0YEg0YLQsNC60LjQvCDQvdCw0LfQstCw0L3QuNC10Lwg0YPQttC1INGB0YPRidC10YHRgtCy0YPQtdGCJzsKJGxhbmdbJ2Vycm9yX25vZmllbGR0eXBlJ10gPSAn0J/QvtC20LDQu9GD0LnRgdGC0LAg0YPQutCw0LbQuNGC0LUg0YLQuNC/INC/0L7Qu9GPJzsKJGxhbmdbJ2Vycm9yX25vbmFtZSddID0gJ9CS0Ysg0LTQvtC70LbQvdGLINGD0LrQsNC30LDRgtGMINC40LzRjyc7CiRsYW5nWydlcnJvcl9vbmVzdWJzY3JpcHRpb25maWVsZCddID0gJ09ubHkgb25lIHN1YnNjcmlwdGlvbiBmaWVsZCBpcyBhbGxvd2VkJzsKJGxhbmdbJ2Vycm9yX3Blcm1pc3Npb25kZW5pZWQnXSA9ICfQlNC+0YHRgtGD0L8g0LfQsNC/0YDQtdGJ0LXQvSc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X2FsaWFzdXNlZCddID0gJ9Cj0LrQsNC30LDQvdGL0Lkg0LDQu9C40LDRgSDRg9C20LUg0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICfQotC+0LLQsNGAINGBINGC0LDQutC40Lwg0L3QsNC30LLQsNC90LjQtdC8INGD0LbQtSDRgdGD0YnQtdGB0YLQstGD0LXRgic7CiRsYW5nWydlcnJvcl9wcm9kdWN0X25vdGZvdW5kJ10gPSAn0JfQsNC/0YDQsNGI0LjQstCw0LXQvNGL0Lkg0YLQvtCy0LDRgCDQvdC1INC90LDQudC00LXQvSc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X3NrdXVzZWQnXSA9ICdUaGF0IFNLVSB2YWx1ZSBpcyBhbHJlYWR5IGluIHVzZSBieSBhbm90aGVyIHByb2R1Y3QnOwokbGFuZ1snZXJyb3JfcHJpY2VfYWRqdXN0bWVudCddID0gJ0ludmFsaWQgcHJpY2UgYWRqdXN0bWVudCB2YWx1ZSBmb3IgaXRlbSAlcyc7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnVXBsb2FkIGZhaWxlZDogJXMnOwokbGFuZ1snZXhwaXJlX3NpeF9tb250aHMnXSA9ICdBZnRlciBTaXggTW9udGhzJzsKJGxhbmdbJ2V4cGlyZV9vbmVfeWVhciddID0gJ0FmdGVyIE9uZSBZZWFyJzsKJGxhbmdbJ2V4cGlyZV90d29feWVhciddID0gJ0FmdGVyIFR3byBZZWFycyc7CiRsYW5nWydleHRyYTEnXSA9ICfQlNC+0L/QvtC70L3QuNGC0LXQu9GM0L3QvtC1INC/0L7Qu9C1IDEnOwokbGFuZ1snZXh0cmEyJ10gPSAn0JTQvtC/0L7Qu9C90LjRgtC10LvRjNC90L7QtSDQv9C+0LvQtSAyJzsKJGxhbmdbJ2ZpZWxkJ10gPSAn0J/QvtC70LUnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdGaWVsZCBEZWZpbml0aW9uJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ9Cf0L7Qu9GPJzsKJGxhbmdbJ2ZpbGUnXSA9ICfQpNCw0LnQuyc7CiRsYW5nWydmaWx0ZXJzJ10gPSAn0KTQuNC70YzRgtGAJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8JzsKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICfQntCx0YnQuNC1INC90LDRgdGC0YDQvtC50LrQuCc7CiRsYW5nWydnbyddID0gJ0dvJzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ9CY0LXRgNCw0YDRhdC40Y8nOwokbGFuZ1snaGllcmFyY2h5X3Bvc2l0aW9uJ10gPSAn0J/QvtC30LjRhtC40Y8g0LIg0LjQtdGA0LDRgNGF0LjQuCc7CiRsYW5nWydoaWVyYXJjaHlfc2V0dGluZ3MnXSA9ICdIaWVyYXJjaHkgU2V0dGluZ3MnOwokbGFuZ1snaWQnXSA9ICcg0JrQvtC0JzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ9CY0LfQvtCx0YDQsNC20LXQvdC40LUnOwokbGFuZ1snaW1hZ2VfaGFuZGxpbmdfc2V0dGluZ3MnXSA9ICdJbWFnZSBIYW5kbGluZyBTZXR0aW5ncyc7CiRsYW5nWydpbXBvcnRfZnJvbV9jc3YnXSA9ICfQmNC80L/QvtGA0YIg0L/RgNC+0LTRg9C60YLQvtCyINC40LcgQ1NWINGE0LDQudC70LAnOwokbGFuZ1snaW5jaGVzJ10gPSAnSW5jaGVzJzsKJGxhbmdbJ2luY2x1ZGVfY2hpbGRyZW4nXSA9ICfQktC60LvRjtGH0LDRgtGMINC/0L7QtNC60LDRgtC10LPQvtGA0LjQuD8nOwokbGFuZ1snaW5mb19hbG51bW9ubHknXSA9ICfQotC+0LvRjNC60L4g0LvQsNGC0LjQvdGB0LrQuNC1INCx0YPQutCy0LXQvdC90L4t0YbQuNGE0YDQvtCy0YvQtSDRgdC40LzQstC+0LvRiy4g0JHQtdC3INC/0YDQvtCx0LXQu9C+0LIsINC60LDQstGL0YfQutC4LCDQuNC70Lgg0L3QtdC/0LXRh9Cw0YLQsNC10LzRi9GFINGB0LjQvNCy0L7Qu9C+0LInOwokbGFuZ1snaW5mb19hdHRyaWJ0ZW1wbGF0ZSddID0gJ1Bvc3NpYmxlIHZhcmlhYmxlcyBhcmU6IHskYXR0cmliX3RleHR9LHskYXR0cmliX2FkanVzdH0seyRjdXJyZW5jeV9zeW1ib2x9JzsKJGxhbmdbJ2luZm9fYXR0cmlidXRlc19jb3BpZWQnXSA9ICdBdHRyaWJ1dGVzIENvcGllZCc7CiRsYW5nWydpbmZvX2F1dG93YXRlcm1hcmsnXSA9ICfQn9Cw0YDQsNC80LXRgtGA0Ysg0LLQvtC00L3Ri9GFINC30L3QsNC60L7QsiDRg9GB0YLQsNC90LDQstC70LjQstCw0Y7RgtGM0YHRjyDQuNC3IENHRXh0ZW5zaW9ucyDQvNC+0LTRg9C70Y8nOwokbGFuZ1snaW5mb19iYXRjaHNpemUnXSA9ICdTZXQgdGhlIG51bWJlciBvZiBsaW5lcyB0byBwcm9jZXNzIHBlciAiYmF0Y2giLiAgQWZ0ZXIgYSBiYXRjaCBpcyBjb21wbGV0ZSwgdGhlIGltcG9ydGVyIHdpbGwgcmVkaXJlY3QsIGFuZCByZXN1bWUgb3BlcmF0aW9ucy4gIElmIHlvdSBhcmUgZXhwZXJpZW5jaW5nIG1lbW9yeSBlcnJvcnMsIG9yIHRpbWVvdXQgcHJvYmxlbXMgZHVlIHRvIGxhcmdlIGFtb3VudHMgb2YgcHJvY2Vzc2luZywgeW91IG1heSBuZWVkIHRvIGNvbnN1bHQgeW91ciBob3N0IHByb3ZpZGVyLCBvciByZWR1Y2UgdGhpcyBudW1iZXInOwokbGFuZ1snaW5mb19jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdUaGVzZSBwYXJhbWV0ZXJzIGFyZSBnaXZlbiB0byB0aGUgc2VsZWN0ZWQgY2FydCBtb2R1bGUgZnJvbSB0aGUgcHJvZHVjdCBkZXRhaWwgYW5kIHN1bW1hcnkgZGlzcGxheXMnOwokbGFuZ1snaW5mb19jb3B5X2F0dHJpYnNldHMnXSA9ICdUaGlzIGFjdGlvbiB3aWxsIGNvcHkgQXR0cmlidXRlIHNldHMgKGV4Y2x1ZGluZyBza3UgdmFsdWVzKSBmcm9tIGFub3RoZXIgcHJvZHVjdC4nOwokbGFuZ1snaW5mb19jcmVhdGVmaWVsZHMnXSA9ICdDcmVhdGUgdW5rbm93biBwcm9kdWN0IGZpZWxkcyBhdXRvbWF0aWNhbGx5PyA8ZW0+KFRoZXkgd2lsbCBiZSBjcmVhdGVkIGFzIHRleHQgZmllbGRzKTwvZW0+JzsKJGxhbmdbJ2luZm9fY3JlYXRlY2F0ZWdvcmllcyddID0gJ0F1dG9tYXRpY2FsbHkgY3JlYXRlIHByb2R1Y3QgY2F0ZWdvcmllcyB0byBtYXRjaCB0aG9zZSBvZiB0aGUgQ1NWIGZpbGUsIGlmIGl0IGRvZXMgbm90IGFscmVhZHkgZXhpc3QnOwokbGFuZ1snaW5mb19jcmVhdGVoaWVyYXJjaHknXSA9ICdBdXRvbWF0aWNhbGx5IGNyZWF0ZSBwcm9kdWN0IGhpZXJhcmNoaWVzIHRvIG1hdGNoIHRob3NlIG9mIHRoZSBDU1YgZmlsZSBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0JzsKJGxhbmdbJ2luZm9fZGVjaW1hbF91bml0cyddID0gJ9CSINC60LDRh9C10YHRgtCy0LUg0LTQtdGB0Y/RgtC40YfQvdC+0LPQviDRgNCw0LfQtNC10LvQuNGC0LXQu9GPINC40YHQv9C+0LvRjNC30YPQudGC0LUg0YLQvtGH0LrRgyAoLikg0L3QsNC/0YDQuNC80LXRgDogPHN0cm9uZz4gNTkuOTAgPC8gU1RST05HPic7CiRsYW5nWydpbmZvX2RlbGltaXRlciddID0gJ1NwZWNpZnkgdGhlIGNoYXJhY3RlciAob3IgY2hhcmFjdGVycykgdGhhdCBzZXBlcmF0ZSBlYWNoIGZpZWxkJzsKJGxhbmdbJ2luZm9fZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdTcGVjaWZ5IGhvdyB0aGUgc3lzdGVtIHNob3VsZCBoYW5kbGUgYSBwcm9kdWN0IHdob3MgbmFtZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgQ1NWIGZpbGUnOwokbGFuZ1snaW5mb19maWVsZGRlZnNfdGFiJ10gPSAnPHN0cm9uZz7Qn9GA0LjQvNC10YfQsNC90LjQtTogPC9zdHJvbmc+INCS0YHQtSDQv9C+0LvRjyDQvtC/0YDQtdC00LXQu9GP0LXQvNGL0LUg0LfQtNC10YHRjCDQtNC+0YHRgtGD0L/QvdGLINC00LvRjyDQstGB0LXRhSDRgtC+0LLQsNGA0L7Qsi4nOwokbGFuZ1snaW5mb19maWVsZHByb2JsZW1zJ10gPSAn0JLQvtC30L3QuNC60LvQuCDQv9GA0L7QsdC70LXQvNGLINC/0YDQuCDRgNCw0LHQvtGC0LUg0YEg0L7QtNC90LjQvCDQuNC70Lgg0LHQvtC70LXQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60LjRhSDQv9C+0LvQtdC5LiDQtNC10LnRgdGC0LLQuNC1INC30LDQstC10YDRiNC10L3QviDRg9GB0L/QtdGI0L3Qviwg0L7QtNC90LDQutC+INCy0Ysg0LTQvtC70LbQvdGLINC40LfRg9GH0LjRgtGMINC4INC40YHQv9GA0LDQstC40YLRjCDRjdGC0Lgg0L/RgNC+0LHQu9C10LzRiy4nOwokbGFuZ1snaW5mb19oYW5kbGVpbWFnZXMnXSA9ICdVcG9uIGltcG9ydCwgaWYgYW4gaW1hZ2UgZmlsZW5hbWUgaXMgZm91bmQgaW4gYSBmaWVsZCBjb2x1bW4sIHNob3VsZCBpdCBiZSBtb3ZlZCBmcm9tIHRoZSBzb3VyY2UgbG9jYXRpb24sIHdhdGVybWFya2VkLCB0aHVtYm5haWxlZCwgYW5kIHRoZSBmaWVsZCB0eXBlIGNoYW5nZWQgdG8gImltYWdlIic7CiRsYW5nWydpbmZvX2hpZXJwYWdlJ10gPSAnVXNlIHRoaXMgcGFnZSBmb3IgaGllcmFyY2h5IHZpZXdzLiAgVGhlIHBhZ2VpZCB3aWxsIG5vdCBiZSBzcGVmaXJpZWQgb24gdGhlIFVSTC4nOwokbGFuZ1snaW5mb19pbWFnZXBhdGgnXSA9ICdUaGUgcGF0aCAocmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyZWN0b3J5KSB3aGVyZSBpbWFnZXMgcmVmZXJyZWQgdG8gaW4gdGhlIGltcG9ydCBmaWxlLCBjYW4gYmUgZm91bmQnOwokbGFuZ1snaW5mb19pbXBvcnRfdGVzdF9wYXNzZWQnXSA9ICdBIGJyaWVmIHRlc3QgYXMgYmVlbiBwZXJmb3JtZWQgb24gdGhlIGlucHV0IGZpbGUgc3BlY2lmaWVkLCBhbmQgZXZlcnl0aGluZyBhcHBlYXJzIHRvIGJlIGNvcnJlY3QuPGJyLz5UaGlzIGlzIG5vIGluZGljYXRpb24gdGhhdCB0aGVyZSBhcmUgbm8gZXJyb3JzIGluIHRoZSBmaWxlLic7CiRsYW5nWydpbmZvX3ByZXR0eWhpZXJ1cmxzJ10gPSAnSW5jbHVkZSB0aGUgaGllcmFyY2h5IGl0ZW0gbmFtZSBvbiB0aGUgVVJMJzsKJGxhbmdbJ2luZm9fcHJpY2VfYWRqdXN0bWVudCddID0gJ9CU0L7Qv9GD0YHRgtC40LzRi9C1INC30L3QsNGH0LXQvdC40Y8gKy0qIy4jIyc7CiRsYW5nWydpbmZvX3Byb2Rub3Rmb3VuZCddID0gJ1RoaXMgb3B0aW9uIGRldGVybWluZXMgdGhlIGJlaGF2aW91ciBvZiB0aGUgd2Vic2l0ZSBpZiBhIHByb2R1Y3QgZGV0YWlsIHZpZXcgaXMgYWNjZXNzZWQgZGlyZWN0bHkgYnkgVVJMLCBhbmQgdGhhdCBwcm9kdWN0IGZvciB3aGF0ZXZlciByZWFzb24gKGRpc2FibGVkLCBkZWxldGVkLCBldGMpIGNhbm5vdCBiZSBhY2Nlc3NlZC4nOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gJ9Cf0YPQsdC70LjRh9C90YvQtSDQv9C+0LvRjyDQtNC+0YHRgtGD0L/QvdGLINC00LvRjyDQv9GA0L7RgdC80L7RgtGA0LAg0L/QvtGB0LXRgtC40YLQtdC70Y/QvNC4JzsKJGxhbmdbJ2xhYmVsJ10gPSAn0J/QvtC00L/QuNGB0YwnOwokbGFuZ1snbGFiZWxfc2tpcCddID0gJ9Cf0YDQvtC/0YPRgdGC0LjRgtGMJzsKJGxhbmdbJ2xhYmVsX292ZXJ3cml0ZSddID0gJ9Cf0LXRgNC10LfQsNC/0LjRgdCw0YLRjCc7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xhc3RfbW9kaWZpZWQnXSA9ICfQmNC30LzQtdC90LXQvSc7CiRsYW5nWydsb2dvdGV4dCddID0gJ9CS0YLQvtGA0L7QtSDQuNC30L7QsdGA0LDQttC10L3QuNC1JzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ01heGltdW0gbGVuZ3RoIDxlbT4oYXBwbGljYWJsZSBvbmx5IG9uIHRleHRib3ggZmllbGRzKTwvZW0+JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ9CY0LfQvNC10L3QtdC9JzsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gJ0EgbW9kdWxlIGZvciBtYW5hZ2luZyBhIGNhdGFsb2cgb2YgcHJvZHVjdHMsIHRoZWlyIHByaWNlLCBpbWFnZXMsIGV0YywgYW5kIGZvciBhbGxvd2luZyB1c2VycyB0byBidWlsZCBhIGNhcnQnOwokbGFuZ1snbW92ZV9kb3duJ10gPSAnTW92ZSBEb3duJzsKJGxhbmdbJ21vdmVfdXAnXSA9ICdNb3ZlIFVwJzsKJGxhbmdbJ25hbWUnXSA9ICfQndCw0LfQstCw0L3QuNC1JzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnWW91IGRvIG5vdCBoYXZlIHRoZSByZXF1aXJlZCBwZXJtaXNzaW9uOiAlcyc7CiRsYW5nWyduZXdfY2F0ZWdvcnlfbmFtZSddID0gJ9Cd0L7QstC+0LUg0L3QsNC30LLQsNC90LjQtSDQutCw0YLQtdCz0L7RgNC40LgnOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICc+JzsKJGxhbmdbJ25vJ10gPSAn0J3QtdGCJzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnTm8gbmFtZSB3YXMgc3VwcGxpZWQnOwokbGFuZ1snbm9uZSddID0gJzzQndC10YI+JzsKJGxhbmdbJ29mJ10gPSAn0JjQtyc7CiRsYW5nWydwYWdlJ10gPSAn0KHRgtGA0LDQvdC40YbQsCc7CiRsYW5nWydwYWdlX29mJ10gPSAn0KHRgtGA0LDQvdC40YbQsCAlcyDQuNC3ICVzJzsKJGxhbmdbJ3BhZ2VfbGltaXQnXSA9ICfQn9GA0L7QtNGD0LrRgtC+0LIg0L3QsCDRgdGC0YDQsNC90LjRhtC1JzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ1NwZWNpZnkgdGhlIGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPmhpZXJhcmNoeSAtLSBEaXNwbGF5IGEgcHJvZHVjdCBsaXN0IGJ5IGhpZXJhcmNoeTwvbGk+DQogIDxsaT5jYXRlZ29yeWxpc3QgLSBEaXNwbGF5IGEgbGlzdCBvZiBwcm9kdWN0IGNhdGVnb3JpZXM8L2xpPg0KICA8bGk+PGVtPmRlZmF1bHQ8L2VtPiAtIERpc3BsYXkgYSBzdW1tYXJ5IG9mIHByb2R1Y3RzPC9saT4NCiAgPGxpPmRldGFpbHMgLSBEaXNwbGF5IGEgZGV0YWlsIHZpZXcgb2YgYSBzaW5nbGUgcHJvZHVjdDwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ1doZW4gdXNlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyLCB3aGljaCBzaG91bGQgbWF0Y2ggdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgY2F0ZWdvcnkgd2lsbCBiZSB1c2VkIHRvIGRpc3BsYXkgb25seSB0aG9zZSBwcm9kdWN0cyB0aGF0IGFyZSBpbiB0aGF0IGNhdGVnb29yeS4gKGEgY29tbWEgc2VwZXJhdGVkIGxpc3QgY2FuIGJlIHN1cHBsaWVkKSc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3RkdGx0ZW1wbGF0ZSddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkaXNwbGF5IG9mIHRoZSBjYXRlZ29yeSBkZXRhaWxzLiAgVGhpcyB1c2VzIGEgY2F0ZWdvcnkgbGlzdCB0ZW1wbGF0ZS4uICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnVGhpcyBzcGVjaWZpZXMgdGhlIHBhZ2VpZCBvciBhbGlhcyB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIGRldGFpbCByZXBvcnQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGV0YWlsIG1vZGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9maWVsZCddID0gJ1VzZWQgb25seSBpbiB0aGUgPGVtPmZpZWxkbGlzdDwvZW0+IHRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIHRvIHNwZWNpZnkgdGhlIG5hbWUgb2YgYSB1c2VyIGRlZmluZWQgcHJvcGVydHkgdG8gY3JlYXRlIGEgbGlzdCBmcm9tLic7CiRsYW5nWydwYXJhbV9maWVsZHZhbCddID0gJ1VzZWQgb25seSBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgZmllbGQgdmFsdWUgdG8gbGltaXQgcmVzdWx0cyBieS4gIFNwZWNpYWwgdmFsdWVzIGZvciB0aGlzIGZpZWxkIGFyZSAiOjpudWxsOjoiICI6Om5vdG51bGw6OiInOwokbGFuZ1sncGFyYW1faGllcmFyY2h5J10gPSAnVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhhdCBvbmx5IGl0ZW1zIGluIHRoYXQgbG9jYXRpb24gb2YgdGhlIGhpZXJhcmNoeSBzaG91bGQgYmUgZGlzcGxheWVkLiAgV2lsZGNhcmQgY2hhcmFjdGVyIGNhbiBiZSB1c2VkIHNvIHRoYXQgeW91IGNhbiBzcGVjaWZ5IHBhcmVudC9jaGlsZCByZWxhdGlvbnNoaXBzIGFzIHdlbGwuICBpLmUge1Byb2R1Y3RzIGhpZXJhcmNoeT1cJ3RydWNrcypcJ30gd2lsbCBjcmVhdGUgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBpbmNsdWRpbmcgdGhlIGNoaWxkcmVuIGluIHRoZSBoaWVyYXJjaHkuICBTaW1pbGFybHksIHtQcm9kdWN0cyBoaWVyYXJjaHk9XCcqdHJ1Y2tzXCd9IHdpbGwgZGlzcGxheSBhIHN1bW1hcnkgcmVwb3J0IG9mIGFsbCB0cnVja3MsIGFuZCBhbGwgcHJvZHVjdHMgYmVsb2dpbmcgdG8gYW55IHBhcmVudCBpbiB0aGUgaGllcmFyY2h5Lic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGhpZXJhcmNoeSBkaXNwbGF5LiBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1faW5saW5lJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgdGhlIG91dHB1dCBvZiB0aGUgc3VtbWFyeSB2aWV3IHNob3VsZCBiZSBkaXNwbGF5ZWQgaW5saW5lJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIGxpc3RlZCBvbiBlYWNoIHBhZ2UuJzsKJGxhbmdbJ3BhcmFtX3BhcmVudCddID0gJ1VzZWZ1bCBvbmx5IGluIHRoZSA8ZW0+aGllcmFyY2h5PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIGhpZXJhcmNoeSBpZCBvZiB0aGUgc3RhcnRpbmcgbG9jYXRpb24gb2YgdGhlIHJlcG9ydC4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGlkJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgZGV0YWlsIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHdoYXQgcHJvZHVjdCB0byB1c2UgZm9yIHRoZSBkaXNwbGF5Lic7CiRsYW5nWydwYXJhbV9wcm9kdWN0bGlzdCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCAoc3VtbWFyeSkgdmlldywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBpbnRlZ2VyIHByb2R1Y3QgaWRzIHRvIGRpc3BsYXkuICBObyBwYWdpbmF0aW9uIG9yIHNvcnRpbmcgaXMgcGVyZm9ybWVkIG9uIHRoZXNlIHZhbHVlcywgYW5kIGlmIHNwZWNpZmllZCB0aGUgb3RoZXIgZmlsdGVyaW5nIHBhcmFtZXRlcnMgdG8gdGhlIHN1bW1hcnkgdmlldyBhcmUgaWdub3JlZC4nOwokbGFuZ1sncGFyYW1fcmVzdWx0cGFnZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgc2VhcmNoLCBhbmQgY2F0ZWdvcnkgbGlzdCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgYSBwYWdlIGlkIG9yIGFsaWFzIHRvIHVzZSB0byBkaXNwbGF5IHRoZSBzdW1tYXJ5IHJlc3VsdHMnOwokbGFuZ1sncGFyYW1fc2VhcmNoZmllbGQnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIG1heSBjb250YWluIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZmllbGQgbmFtZXMgdG8gaW5jbHVkZSBpbiB0aGUgc2VhcmNoJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZvcm10ZW1wbGF0ZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpc3BhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG5vbiBkZWZhdWx0IHNlYXJjaCBmb3JtIHRlbXBsYXRlJzsKJGxhbmdbJ3BhcmFtX3Nob3dhbGwnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGNhdGVnb3J5bGlzdCBhbmQgZmllbGRsaXN0IGFjdGlvbnMsIGlmIHRoaXMgcGFyYW1ldGVyIGlzIHNldCB0byBhIG5vbiAwIGludGVnZXIgdmFsdWUgYWxsIGNhdGVnb3JpZXMgKGV2ZW4gdGhvc2Ugd2l0aG91dCBwcm9kdWN0cykgd2lsbCBiZSBkaXNwbGF5ZWQuJzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ1NwZWNpZnkgdGhlIG9yZGVyIG9mIHNvcnRlZCBmaWVsZHMgaW4gc3VtbWFyeSB2aWV3LiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIEFzY2VuZGluZyBvcmRlcjwvbGk+DQogIDxsaT5kZXNjIC0tIERlc2NlbmRpbmcgb3JkZXI8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnQXBwbGljYWJsZSBvbmx5IGluIHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgZGV0ZXJtaW5lcyB0aGUgc29ydGluZyBvZiB0aGUgb3V0cHV0IHByb2R1Y3RzLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+cHJvZHVjdF9uYW1lPC9zdHJvbmc+PC9saT4NCiAgPGxpPmlkIC0tIFRoZSBwcm9kdWN0IGlkPC9saT4NCiAgPGxpPndlaWdodCAtLSBUaGUgcHJvZHVjdCB3ZWlnaHQ8L2xpPg0KICA8bGk+cHJpY2UgLS0gVGhlIHByb2R1Y3QgYmFzZSBwcmljZTwvbGk+DQogIDxsaT5zdGF0dXMgLS0gRHJhZnQgb3IgcHVibGlzaGVkPC9saT4NCiAgPGxpPnJhbmRvbSAtLSBEaXNwbGF5IGluIHJhbmRvbSBvcmRlciBvbiBlYWNoIHJlcXVlc3Q8L2xpPg0KICA8bGk+Y3JlYXRlZCAtLSBUaGUgY3JlYXRpb24gZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQogIDxsaT5tb2RpZmllZCAtLSBUaGUgbW9kaWZpZWQgZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0dHlwZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCBzdW1tYXJ5IHZpZXcsIHRoaXMgcGFyYW1ldGVyIGlzIHVzZWQgdG8gY29udmVydCB0aGUgdmFsdWVzIHRvIGFub3RoZXIgdHlwZSBmb3Igc29ydGluZy4gIHZhbGlkIHZhbHVlcyBhcmUgU1RSSU5HLFNJR05FRCBhbmQgVU5TSUdORUQuICBJZiBub3Qgc3VwcGxpZWQgdGhlIGRlZmF1bHQgU1RSSU5HIHR5cGUgaXMgYXNzdW1lZC4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXBhZ2UnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGFjdGlvbj1oaWVyYXJjaHksIGFsbG93cyBzcGVjaWZ5aW5nIGEgcGFnZSBpZCBvciBhbGlhcyB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgYW55IGxpbmtzIHRvIHN1bW1hcnkgdmlldyc7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBzdW1tYXJ5IG1vZGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJlbnQnXSA9ICfQoNC+0LTQuNGC0LXQu9GMJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnVGhlIFByb2R1Y3RzIG1vZHVsZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW5zdGFsbGVkJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdUaGUgUHJvZHVjdHMgbW9kdWxlIGhhcyBiZWVuIHJlbW92ZWQgYWxvbmcgd2l0aCBhbGwgYXNzb2NpYXRlZCBkYXRhJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAn0J3QsNGB0YLRgNC+0LnQutC4JzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ1JlbW92aW5nIHRoaXMgbW9kdWxlIHdpbGwgYWxzbyByZW1vdmUgYWxsIGFzc29jaWF0ZWQgZGF0YSwgYXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHByb2NlZWQ/JzsKJGxhbmdbJ3ByaWNlJ10gPSAn0KbQtdC90LAnOwokbGFuZ1sncHJpY2VfYWRqdXN0bWVudCddID0gJ9Ca0L7RgNGA0LXQutGC0LjRgNC+0LLQutCwINGG0LXQvSc7CiRsYW5nWydwcmV2cGFnZSddID0gJzwnOwokbGFuZ1sncHJvZHVjdCddID0gJ9Ci0L7QstCw0YAnOwokbGFuZ1sncHJvZHVjdG5hbWUnXSA9ICfQndCw0LfQstCw0L3QuNC1JzsKJGxhbmdbJ3Byb2R1Y3RzJ10gPSAn0KLQvtCy0LDRgNGLJzsKJGxhbmdbJ3Byb2R1Y3RfZGV0YWlsX3NldHRpbmdzJ10gPSAnUHJvZHVjdCBEZXRhaWwgU2V0dGluZ3MnOwokbGFuZ1sncHJvZHVjdF9lZGl0aW5nX3NldHRpbmdzJ10gPSAnUHJvZHVjdCBFZGl0aW5nIFNldHRpbmdzJzsKJGxhbmdbJ3Byb2R1Y3Rfc3VtbWFyeV9zZXR0aW5ncyddID0gJ1Byb2R1Y3QgU3VtbWFyeSBTZXR0aW5ncyc7CiRsYW5nWydwcm9kdWN0X2hpZXJhcmNoeSddID0gJ9CY0LXRgNCw0YDRhdC40Y8g0JrQsNGC0LDQu9C+0LPQsCc7CiRsYW5nWydwcm9kdWN0X21hbmFnZXInXSA9ICfQo9C/0YDQsNCy0LvQtdC90LjQtSDQv9GA0L7QtNGD0LrRgtCw0LzQuCc7CiRsYW5nWydwcm9ncmVzcyddID0gJ1Byb2dyZXNzJzsKJGxhbmdbJ3Byb21wdCddID0gJ9Cf0L7QtNGB0LrQsNC30LrQsCc7CiRsYW5nWydwcm9tcHRfYWRkX2F0dHJpYnNldCddID0gJ0FkZC9FZGl0IEF0dHJpYnV0ZSBTZXQnOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfZmlsZXR5cGVzJ10gPSAn0KDQsNC30YDQtdGI0LjRgtGMINC30LDQs9GA0YPQttCw0YLRjCDRhNCw0LnQu9GLINGBINGA0LDRgdGI0LjRgNC10L3QuNGP0LzQuCAo0LTQu9GPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQuNGFINC/0L7Qu9C10Lkg0YLQuNC/0LAgItGE0LDQudC7IiknOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2V0eXBlcyddID0gJ9Cg0LDQt9GA0LXRiNC40YLRjCDQt9Cw0LPRgNGD0LbQsNGC0Ywg0LjQt9C+0LHRgNCw0LbQtdC90LjRjyDRgSDRjdGC0LjQvNC4INGA0LDRgdGI0LjRgNC10L3QuNGP0LzQuCAo0LTQu9GPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQuNGFINC/0L7Qu9C10Lkg0YLQuNC/0LAgItC40LfQvtCx0YDQsNC20LXQvdC40LUiKSc7CiRsYW5nWydwcm9tcHRfYXR0cmlidGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3IgZGlzcGxheSBvZiBwcm9kdWN0IGF0dHJpYnV0ZSB2YWx1ZXMgaW4gZHJvcGRvd24nOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWwnXSA9ICfQkNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuCDRgdC+0LfQtNCw0LLQsNGC0Ywg0Y3RgdC60LjQt9GLINC40LfQvtCx0YDQsNC20LXQvdC40LknOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWxfc2l6ZSddID0gJ01heGltdW0gc2l6ZSAobGFyZ2VzdCBkaW1lbnNpb24pIG9mIHRoZSB0aHVtYm5haWwuJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZyddID0gJ0F1dG9tYXRpY2FsbHkgY3JlYXRlIHByZXZpZXcgaW1hZ2VzIG9mIGltYWdlcyc7CiRsYW5nWydwcm9tcHRfYXV0b3ByZXZpZXdpbWdfc2l6ZSddID0gJ01heGltdW0gc2l6ZSAobGFyZ2VzdCBkaW1lbnNpb24pIG9mIHRoZSBwcmV2aWV3IGltYWdlLic7CiRsYW5nWydwcm9tcHRfYXV0b3dhdGVybWFyayddID0gJ9CQ0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4INGB0YLQsNCy0LjRgtGMINCy0L7QtNGP0L3Ri9C1INC30L3QsNC60Lgg0L3QsCDQuNC30L7QsdGA0LDQttC10L3QuNGP0YUnOwokbGFuZ1sncHJvbXB0X2FwcGxpY2FibGUnXSA9ICdFbmFibGUgYnkgZGVmYXVsdCBmb3IgYWxsIG5ldyBwcm9kdWN0cyc7CiRsYW5nWydwcm9tcHRfYmF0Y2hzaXplJ10gPSAnQmF0Y2ggU2l6ZSc7CiRsYW5nWydwcm9tcHRfY2FydF9tb2R1bGUnXSA9ICfQnNC+0LTRg9C70Ywg0LrQvtGA0LfQuNC90YsnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ9Cf0LDRgNC80LXRgtGA0Ysg0LzQvtC00YPQu9GPINC60L7RgNC30LjQvdGLJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVjYXRlZ29yaWVzJ10gPSAnQ3JlYXRlIENhdGVnb3JpZXMnOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWZpZWxkcyddID0gJ0NyZWF0ZSBQcm9kdWN0IEZpZWxkcz8nOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWhpZXJhcmNoeSddID0gJ0NyZWF0ZSBQcm9kdWN0IEhpZXJhcmNoeSc7CiRsYW5nWydwcm9tcHRfY3N2ZmlsZSddID0gJ9CX0LDQs9GA0YPQt9C40YLRjCBDVlMg0YTQsNC50LsnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5Y29kZSddID0gJ9Ca0L7QtCDQstCw0LvRjtGC0YsnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAn0KHQuNC80LLQvtC7INCy0LDQu9GO0YLRiyc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF9zdGF0dXMnXSA9ICfQn9C+INGD0LzQvtC70YfQsNC90LjRjiDQstGB0LUg0L3QvtCy0YvQtSDQv9GA0L7QtNGD0LrRgtGLINC40LzQtdGO0YIg0YHRgtCw0YLRg9GBJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0X3RheGFibGUnXSA9ICfQn9C+INGD0LzQvtC70YfQsNC90LjRjiDQstGB0LUg0L3QvtCy0YvQtSDQv9GA0L7QtNGD0LrRgtGLINC+0LHQu9Cw0LPQsNGO0YLRgdGPINC90LDQu9C+0LPQvtC8JzsKJGxhbmdbJ3Byb21wdF9kZWxldGVwcm9kdWN0ZmlsZXMnXSA9ICfQo9C00LDQu9GP0YLRjCDQstGB0LUg0YTQsNC50LvRiywg0YHQstGP0LfQsNC90L3Ri9C1INGBINC/0YDQvtC00YPQutGC0L7QvCwg0LrQvtCz0LTQsCDQv9GA0L7QtNGD0LrRgiDQsdGD0LTQtdGCINGD0LTQsNC70LXQvT8nOwokbGFuZ1sncHJvbXB0X2RlbGltaXRlciddID0gJ0ZpZWxkIERlbGltaXRlcic7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ9Ch0YLRgNCw0L3QuNGG0LAg0L7Qv9C40YHQsNC90LjRjyDRgtC+0LLQsNGA0LAg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4nOwokbGFuZ1sncHJvbXB0X2RldGFpbHNmb3InXSA9ICdEZXRhaWxzIGZvciAlcyc7CiRsYW5nWydwcm9tcHRfZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdIb3cgdG8gaGFuZGxlIGR1cGxpY2F0ZSBwcm9kdWN0cz8nOwokbGFuZ1sncHJvbXB0X2ZhbHNlJ10gPSAnRmFsc2UnOwokbGFuZ1sncHJvbXB0X2hhbmRsZWltYWdlcyddID0gJ0hhbmRsZSBpbWFnZXM/JzsKJGxhbmdbJ3Byb21wdF9pbWFnZXBhdGgnXSA9ICdJbWFnZSBQYXRoJzsKJGxhbmdbJ3Byb21wdF9sZW5ndGh1bml0cyddID0gJ0xlbmd0aCBVbml0cyc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfYmVoYXZpb3InXSA9ICdXaGF0IGFjdGlvbiBzaG91bGQgYmUgdGFrZW4gd2hlbiBhIHByb2R1Y3QgY2Fubm90IGJlIGRpc3BsYXllZD8nOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzQwNCddID0gJ0dlbmVyYXRlIGEgNDA0IGVycm9yJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF8zMDEnXSA9ICdHZW5lcmF0ZSBhIDMwMSByZWRpcmVjdCc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfZXJyb3Jtc2cnXSA9ICdEaXNwbGF5IGFuIGVycm9yIG1lc3NhZ2UnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX21zZyddID0gJ0Vycm9yIG1lc3NhZ2UgZm9yIHdoZW4gYSBwcm9kdWN0IGNhbm5vdCBiZSBmb3VuZCc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfcGFnZSddID0gJ1BhZ2UgdG8gZG8gcGVybWFuZW50IHJlZGlyZWN0IHRvPyc7CiRsYW5nWydwcm9tcHRfaGllcnBhZ2UnXSA9ICdEZWZhdWx0IFBhZ2UgZm9yIEhpZXJhcmNoeSBWaWV3JzsKJGxhbmdbJ3Byb21wdF9wcmV0dHloaWVydXJscyddID0gJ1VzZSBQcmV0dHkgVVJMUyB0byBIaWVyYXJjaHkgVmlld3MnOwokbGFuZ1sncHJvbXB0X3Byb2RfZGV0YWlscGFnZSddID0gJ0RlZmF1bHQgUGFnZSBmb3IgUHJvZHVjdCBEZXRhaWwgVmlld3MnOwokbGFuZ1sncHJvbXB0X3Byb2R1Y3RzX21hdGNoaW5nJ10gPSAnUHJvZHVjdHMgbWF0Y2hpbmcgJXMnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlwYWdlbGltaXQnXSA9ICdEZWZhdWx0IHBhZ2UgbGltaXQgaW4gc3VtbWFyeSBtb2RlJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAn0J/QvtGA0Y/QtNC+0Log0YHQvtGA0YLQuNGA0L7QstC60Lgg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LIg0YHRg9C80LzQsNGA0L3QvtC8INGA0LXQttC40LzQtSc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICfQn9C+0LvRjyDRgdC+0YDRgtC40YDQvtCy0LrQuCDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQsiDRgdGD0LzQvNCw0YDQvdC+0Lwg0YDQtdC20LjQvNC1JzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIFNvdXJjZSc7CiRsYW5nWydwcm9tcHRfdHJ1ZSddID0gJ1RydWUnOwokbGFuZ1sncHJvbXB0X3VybHByZWZpeCddID0gJ1ByZWZpeCB0byB1c2Ugb24gYWxsIFVSTFMgdGFyZ2V0ZWQgdG8gdGhpcyB0aGlzIG1vZHVsZSc7CiRsYW5nWydwcm9tcHRfdXNlX2RldGFpbHBhZ2VfZm9yX3NlYXJjaCddID0gJ1VzZSB0aGlzIHBhZ2UgZm9yIHNlYXJjaCByZXN1bHRzIHRvbyA8ZW0+KG92ZXJyaWRlcyB0aGUgc2VhcmNocmVzdWx0cyBwYWdlIHBhcmFtZXRlciBpbiB0aGUgc2VhcmNoIG1vZHVsZSk8L2VtPic7CiRsYW5nWydwcm9tcHRfdXNlaGllcnBhdGh1cmxzJ10gPSAnVXNlIEhpZXJhcmNoeSBQYXRoIGluIFByb2R1Y3QgRGV0YWlsIFVSTFMnOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAn0JXQtNC40L3QuNGG0LAg0LLQtdGB0LAnOwokbGFuZ1sncHVibGljJ10gPSAn0K/QstC70Y/QtdGC0YHRjyDQu9C4INGN0YLQviDQv9C+0LvQtSDQv9GD0LHQu9C40YfQvdGL0Lw/JzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ9Ce0L/Rg9Cx0LvQuNC60L7QstCw0L0nOwokbGFuZ1sncmFuZG9tJ10gPSAnUmFuZG9tJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnUmVzZXQgdG8gRmFjdG9yeSBWYWx1ZXMnOwokbGFuZ1sncmV0dXJuJ10gPSAn0J3QsNC30LDQtCc7CiRsYW5nWydyZXR1cm5fdG9fdG9wJ10gPSAnUmV0dXJuIHRvIHRoZSB0b3Agb2YgdGhlIHZpZXcnOwokbGFuZ1sncm9vdCddID0gJ9Ca0LDRgtCw0LvQvtCzJzsKJGxhbmdbJ3NlYXJjaF9kZXNjcmlwdGlvbiddID0gJ1NlYXJjaCBQcm9wZXJ0eSBEZXNjcmlwdGlvbic7CiRsYW5nWydzZWFyY2hfZXhwciddID0gJ1Nob3VsZCB0aGUgcXVlcnkgbWF0Y2ggYWxsLCBvciBhbnkgb2YgdGhlIHRlc3RzIGJlbG93Pyc7CiRsYW5nWydzZWFyY2hfbmFtZSddID0gJ1NlYXJjaCBQcm9wZXJ0eSBOYW1lJzsKJGxhbmdbJ3NlYXJjaF9wcmljZSddID0gJ1ByaWNlIFJhbmdlJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBTZWFyY2ggRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZXMnXSA9ICdTZWFyY2ggVGVtcGxhdGVzJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlY3QgT25lJzsKJGxhbmdbJ3NrdSddID0gJ1NLVSc7CiRsYW5nWydzb3J0X2J5J10gPSAn0KHQvtGA0YLQuNGA0L7QstCw0YLRjCDQv9C+JzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICfQn9C+0YDRj9C00L7QuiDRgdC+0YDRgtC40YDQvtCy0LrQuCc7CiRsYW5nWydzb3VyY2UnXSA9ICdTb3VyY2UnOwokbGFuZ1snc3RhdHVzJ10gPSAn0KHRgtCw0YLRg9GBJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ9Ce0YLQv9GA0LDQstC40YLRjCc7CiRsYW5nWydzdWJzY3JpcHRpb24nXSA9ICdTdWJzY3JpcHRpb24nOwokbGFuZ1snc3Vic2NyX2V4cGlyeSddID0gJ0V4cGlyeSc7CiRsYW5nWydzdWJzY3JfZXhwaXJ5MiddID0gJ0V4cGlyZXMnOwokbGFuZ1snc3Vic2NyX21vbnRobHknXSA9ICdNb250aGx5JzsKJGxhbmdbJ3N1YnNjcl9kZWxwZXJpb2QnXSA9ICdEZWxpdmVyeSBGcmVxdWVuY3knOwokbGFuZ1snc3Vic2NyX2RlbHBlcmlvZDInXSA9ICdEZWxpZXZlcmVkJzsKJGxhbmdbJ3N1YnNjcl9wYXlwZXJpb2QnXSA9ICdQYXltZW50IEZyZXF1ZW5jeSc7CiRsYW5nWydzdWJzY3JfcGF5cGVyaW9kMiddID0gJ1BhaWQnOwokbGFuZ1snc3Vic2NyX3F1YXJ0ZXJseSddID0gJ1F1YXJ0ZXJseSc7CiRsYW5nWydzdWJzY3Jfc2VtaWFudWFsbHknXSA9ICdTZW1pIEFudWFsbHknOwokbGFuZ1snc3Vic2NyX3llYXJseSddID0gJ1llYXJseSc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVzJ10gPSAn0KHRg9C80LzQsNGA0L3Ri9C5INGI0LDQsdC70L7QvSc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ9CU0L7QsdCw0LLQuNGC0Ywv0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0YHRg9C80LzQsNGA0L3Ri9C5INGI0LDQsdC70L7QvSc7CiRsYW5nWyd0YXhhYmxlJ10gPSAn0J7QsdC70LDQs9Cw0LXQvNGL0Lkg0L3QsNC70L7Qs9C+0LwnOwokbGFuZ1sndGVzdCddID0gJ9Cf0YDQvtCy0LXRgNC60LAnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICfQotC10LrRgdGC0L7QstCw0Y8g0L7QsdC70LDRgdGC0YwnOwokbGFuZ1sndGV4dGJveCddID0gJ9Ci0LXQutGB0YLQvtCy0LDRjyDRgdGC0YDQvtC60LAnOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAn0KjQsNCx0LvQvtC9INC40LXRgNCw0YDRhdC40Lgg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4nOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ9Co0LDQsdC70L7QvSDRgdC/0LjRgdC60LAg0LrQsNGC0LXQs9C+0YDQuNC5INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICfQqNCw0LHQu9C+0L0g0LrQsNGA0YLQvtGH0LrQuCDRgtC+0LLQsNGA0LAg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4nOwokbGFuZ1sndGl0bGVfc2VhcmNoX2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgTmV3IFNlYXJjaCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ9Ch0YPQvNC80LDRgNC90YvQuSDRiNCw0LHQu9C+0L0g0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4nOwokbGFuZ1sndHlwZSddID0gJ9Ci0LjQvyc7CiRsYW5nWyd1cCddID0gJ01vdmUgVXAnOwokbGFuZ1sndXBkYXRlJ10gPSAn0J7QsdC90L7QstC40YLRjCc7CiRsYW5nWyd1cGxvYWQnXSA9ICfQktGL0LHQtdGA0LjRgtC1INGE0LDQudC7INC00LvRjyDQt9Cw0LPRgNGD0LfQutC4JzsKJGxhbmdbJ3VybF9hbGlhcyddID0gJ1VSTCBBbGlhcyc7CiRsYW5nWyd2YWxpZCddID0gJ1ZhbGlkJzsKJGxhbmdbJ3ZhbHVlJ10gPSAn0JfQvdCw0YfQtdC90LjQtSc7CiRsYW5nWyd2YWx1ZXMnXSA9ICfQl9C90LDRh9C10L3QuNGPJzsKJGxhbmdbJ3ZpZXcnXSA9ICdWaWV3JzsKJGxhbmdbJ3ZpZXdhYmxlX2ZpZWxkcyddID0gJ1NlbGVjdCBjdXN0b20gZmllbGRzIHRvIHZpZXcgaW4gdGhlIHRhYmxlJzsKJGxhbmdbJ3dhdGVybWFya19sb2NhdGlvbiddID0gJ9Cg0LDRgdC/0L7Qu9C+0LbQtdC90LjQtSDQstC+0LTRj9C90YvRhSDQt9C90LDQutC+0LIo0L/QvtC00L/QuNGB0Lgg0L3QsCDQuNC30L7QsdGA0LDQttC10L3QuNC1KSc7CiRsYW5nWyd3ZWlnaHQnXSA9ICfQktC10YEnOwokbGFuZ1sneWVzJ10gPSAn0JTQsCc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjE1ODYyNTIxNzQuMTMwMjU1NDExMi4xMzAyNTU0MTEyLjEzMDI1NTQxMTIuMSc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjQuOS4xMzAyNTU0NjIzNDUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMzAyNTU0MTEyLjEuMS51dG1jc3I9eWFuZGV4fHV0bWNjbj0ob3JnYW5pYyl8dXRtY21kPW9yZ2FuaWN8dXRtY3RyPWNtcyBtYWRlIHNpbXBsZSc7CiRsYW5nWydxY2EnXSA9ICdQMC01NDc1NzAyNS0xMzAyNTU0MTEyMDk4JzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sk_SK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZCddID0gJ1ByaWRhxaUnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdQcmlkYcWlIGthdGVnJm9hY3V0ZTtyaXUnOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdQcmlkYcWlIHBvbGUnOwokbGFuZ1snYWRqdXN0YWJsZSddID0gJ05hc3Rhdml0ZcS+biZlYWN1dGU7JzsKJGxhbmdbJ2FkZHByb2R1Y3QnXSA9ICdQcmlkYcWlIHByb2R1a3QnOwokbGFuZ1snYWRkX2F0dHJpYl9zZXQnXSA9ICdQcmlkYcWlIGF0cmliJnVhY3V0ZTt0JzsKJGxhbmdbJ2FkZF9jYXRlZ29yeV9maWVsZCddID0gJ1ByaXBvamnFpSAgcG9sZSBrdSBrYXRlZyZvYWN1dGU7cmlpOiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydhZGRfaGllcmFyY2h5X2l0ZW0nXSA9ICdQcmlkYcWlIHBvbG/Fvmt1IHYgaGllcmFyY2hpaSc7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAnUHJpZGHFpSBhdHJpYiZ1YWN1dGU7dCB2b8S+YnknOwokbGFuZ1snYWRtaW5fb25seSddID0gJ00mb2NpcmM7xb51IHRlbnRvIGF0cmliJnVhY3V0ZTt0IHZpZGllxaUgbGVuIGFkbWluaXN0ciZhYWN1dGU7dG9yaT8nOwokbGFuZ1snYWxpZ25fdWwnXSA9ICdWxL5hdm8gaG9yZSc7CiRsYW5nWydhbGlnbl91YyddID0gJ1Ygc3RyZWRlIGhvcmUnOwokbGFuZ1snYWxpZ25fdXInXSA9ICdWcHJhdm8gaG9yZSc7CiRsYW5nWydhbGlnbl9tbCddID0gJ1Ygc3RyZWRlIHbEvmF2byc7CiRsYW5nWydhbGlnbl9tYyddID0gJ1Ygc3RyZWRlJzsKJGxhbmdbJ2FsaWduX21yJ10gPSAnViBzdHJlZGUgdnByYXZvJzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnRG9sZSB2xL5hdm8nOwokbGFuZ1snYWxpZ25fbGMnXSA9ICdEb2xlIHYgc3RyZWRlJzsKJGxhbmdbJ2FsaWduX2xyJ10gPSAnRG9sZSB2cHJhdm8nOwokbGFuZ1snYWxsY2F0ZWdvcmllcyddID0gJ1Ymc2Nhcm9uO2V0a3kga2F0ZWcmb2FjdXRlO3JpZSc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnU3RlIHNpIGlzdCZ5YWN1dGU7Pyc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZXByb2R1Y3QnXSA9ICdTdGUgc2kgaXN0JnlhY3V0ZTssLCDFvmUgY2hjZXRlIHNrdXRvxI1uZSBvZHN0ciZhYWN1dGU7bmnFpSB0ZW50byBwcm9kdWt0LCB2ciZhYWN1dGU7dGFuZSB2JnNjYXJvbjtldGt5Y2ggcHJpZHJ1xb5lbiZ5YWN1dGU7Y2ggaW5mb3JtJmFhY3V0ZTtjaWk/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ1Z6b3N0dXBuZSc7CiRsYW5nWydhdHRyaWJ1dGVfbmFtZSddID0gJ04mYWFjdXRlO3pvdiBhdHJpYiZ1YWN1dGU7dHUnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGljayZ5YWN1dGU7JzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVzJ10gPSAnJlNjYXJvbjthYmwmb2FjdXRlO25hIHYmeWFjdXRlO3Bpc3UgdiBoaWVyYXJjaGlpJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVfYWRkZWRpdCddID0gJ1ByaWRhxaUvVXByYXZpxaUgJnNjYXJvbjthYmwmb2FjdXRlO25hIHYmeWFjdXRlO3Bpc3UgdiBoaWVyYXJjaGlpJzsKJGxhbmdbJ2NhbmNlbCddID0gJ1pydSZzY2Fyb247acWlJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdLYXRlZyZvYWN1dGU7cmllJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnS2F0ZWcmb2FjdXRlO3JpYSc7CiRsYW5nWydjYXRlZ29yeWV4aXN0cyddID0gJ0thdGVnJm9hY3V0ZTtyaWEgcyB0JnlhY3V0ZTttdG8gbiZhYWN1dGU7enZvbSB1xb4gZXhpc3R1amUnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVzJ10gPSAnJlNjYXJvbjthYmwmb2FjdXRlO25hICB6b3puYW11IGthdGVnJm9hY3V0ZTtyaWknOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ1ByaWRhxaUvVXByYXZpxaUgJnNjYXJvbjthYmwmb2FjdXRlO251IHpvem5hbXUga2F0ZWcmb2FjdXRlO3JpaSc7CiRsYW5nWydjaGVja2JveCddID0gJ1phJnNjYXJvbjtrcnQmYWFjdXRlO3ZhY2llIHBvbGUnOwokbGFuZ1snY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnXSA9ICdTdGUgc2kgaXN0JnlhY3V0ZTssIMW+ZSBjaGNldGUgb2RzdHImYWFjdXRlO25pxaUgdCZ1YWN1dGU7dG8gJnVhY3V0ZTtyb3ZlxYg/ICBQcm9kdWt0eSB2IHRlanRvICZ1YWN1dGU7cm92bmkgIHByJmlhY3V0ZTtkdSBhdXRvbWF0aWNreSBvIHphcmFkZW5pZSB2IGhpZXJhcmNoaWknOwokbGFuZ1snY29weSddID0gJ0tvcCZpYWN1dGU7cm92YcWlJzsKJGxhbmdbJ2NvcHlfY2F0ZWdvcnknXSA9ICdLb3AmaWFjdXRlO3JvdmHFpSBrYXRlZyZvYWN1dGU7cml1JzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRCZhYWN1dGU7dHVtIHZ5dHZvcmVuaWEnOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ1MmdWFjdXRlO8SNYXNuJmFhY3V0ZTsgaG9kbm90YSc7CiRsYW5nWydkYXRhJ10gPSAnRCZhYWN1dGU7dGEnOwokbGFuZ1snZGVmYXVsdCddID0gJ1ByZWRuYXN0YXZlbiZlYWN1dGU7JzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdQcmVkYXN0YXZlbiZlYWN1dGU7ICZzY2Fyb247YWJsJm9hY3V0ZTtueSc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlX25vdGljZSddID0gJzxzdHJvbmc+UG96biZhYWN1dGU7bWthOjwvc3Ryb25nPiBPYnNhaHkgdCZ5YWN1dGU7Y2h0byB0ZXh0b3YmeWFjdXRlO2NoIG9ibGFzdCZpYWN1dGU7IHNhIHBvdcW+JmlhY3V0ZTt2YWomdWFjdXRlOyBuYSB2eXR2b3JlbmllIHByZWRuYXN0YXZlbiZlYWN1dGU7aG8gb2JzYWh1ICZzY2Fyb247YWJsJm9hY3V0ZTtuIHByZSBqZWRub3RsaXYmZWFjdXRlOyAmc2Nhcm9uO2FsYiZvYWN1dGU7bnkuIEljaCAmdWFjdXRlO3ByYXZvdm91IG5lc3Amb2NpcmM7c29iJmlhY3V0ZTt0ZSDFvmlhZGVuIGVmZWt0IG5hIHMmdWFjdXRlO8SNYXNuZSB2eXR2b3JlbiZlYWN1dGU7ICZzY2Fyb247YWJsJm9hY3V0ZTtueS4nOwokbGFuZ1snZGVsZXRlJ10gPSAnT2RzdHImYWFjdXRlO25pxaUnOwokbGFuZ1snZGVsZXRlX2F0dHJpYnNldCddID0gJ09kc3RyJmFhY3V0ZTtuacWlIGF0cmliJnVhY3V0ZTt0JzsKJGxhbmdbJ2RlbGV0ZV9oaWVyYXJjaHlfaXRlbSddID0gJ09kc3RyJmFhY3V0ZTtuacWlIHBvbG/Fvmt1IHYgaGllcmFyY2hpaSc7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnWm9zdHVwbmUnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdQb3Bpcyc7CiRsYW5nWydkZXRhaWxzJ10gPSAnRGV0YWlseSc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICcmU2Nhcm9uO2FibCZvYWN1dGU7bmEgZGV0YWlseSAnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ1ByaWRhxaUvdXByYXZpxaUgJnNjYXJvbjthYmwmb2FjdXRlO251IGRldGFpbHUnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdWeXBuJnVhY3V0ZTvFpSc7CiRsYW5nWydkcmFmdCddID0gJ04mYWFjdXRlO3ZyaCc7CiRsYW5nWydkcm9wZG93biddID0gJ1YmeWFjdXRlO2Jlcm92JmVhY3V0ZTsgcG9sZSc7CiRsYW5nWydkcm9wZG93bl9vcHRpb25zJ10gPSAnSG9kbm90eSB2JnlhY3V0ZTtiZXJvdiZlYWN1dGU7aG8gcG/EvmEgPGVtPihidWQmdWFjdXRlOyBwb3XFvml0JmVhY3V0ZTsgaWJhIHByZSB2JnlhY3V0ZTtiZXJvdiZlYWN1dGU7IHBvbGlhKTwvZW0+PGJyLz48YnIvPjxlbT4obm92JmFhY3V0ZTsgcG9sb8W+a2EgbmEgbm92JnlhY3V0ZTsgcmlhZG9rKTwvZW0+JzsKJGxhbmdbJ2VkaXQnXSA9ICdVcHJhdmnFpSc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICdVcHJhdmnFpSBzZXR5IGF0cmliJnVhY3V0ZTt0b3YnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzX2ZvciddID0gJ1VwcmF2acWlIHNldHkgYXRyaWImdWFjdXRlO3RvdiBwcmUnOwokbGFuZ1snZWRpdF9hdHRyaWJ1dGVzJ10gPSAnVXByYXZpxaUgYXRyaWImdWFjdXRlO3R5JzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnknXSA9ICdVcHJhdmnFpSBrYXRlZyZvYWN1dGU7cml1JzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnlfZmllbGRzJ10gPSAnVXByYXZpxaUgcG9saWEga2F0ZWcmb2FjdXRlO3JpZSc7CiRsYW5nWydlZGl0X2hpZXJhcmNoeV9pdGVtJ10gPSAnVXByYXZpxaUgcG9sb8W+a3UgdiBoaWVyYXJjaGlpJzsKJGxhbmdbJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnXSA9ICdBdHJpYiZ1YWN1dGU7xaUgcyB0JnlhY3V0ZTttdG8gbiZhYWN1dGU7enZvbSB1xb4gZXhpc3R1amUnOwokbGFuZ1snZXJyb3JfZmllbGR2YWx1ZV9lbXB0eSddID0gJ0hvZG5vdGEgbmVtJm9jaXJjO8W+ZSBiecWlIHByJmFhY3V0ZTt6ZG5hJzsKJGxhbmdbJ2Vycm9yX2ZpbGVub3Rmb3VuZCddID0gJ1MmdWFjdXRlO2JvciBuZW4mYWFjdXRlO2pkZW4meWFjdXRlOyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnTmVwbGF0biZ5YWN1dGU7IHJvZGnEjSAocHJ2b2sgdiBoaWVyYXJjaGlpIG5lbSZvY2lyYzvFvmUgYnnFpSBzdm9qIHZsYXN0biZ5YWN1dGU7IHJvZGnEjSknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9uYW1lJ10gPSAnSG9kbm90YSB2bGFzdG4mZWFjdXRlO2hvIHBvxL5hIG9ic2FodWplIG5lcG92b2xlbiZlYWN1dGU7IHpuYWt5IChwb3ZvbGVuJmVhY3V0ZTsgcyZ1YWN1dGU7IGxlbiBhbGZhbnVtZXJpY2smZWFjdXRlOyknOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnUG92aW5uJnlhY3V0ZTsgcGFyYW1ldGVyIG5lYm9sIHZ5cGxuZW4mZWFjdXRlOywgYWxlIGJvbCB2eXBsbmVuJnlhY3V0ZTsgbmVzcHImYWFjdXRlO3ZuZSc7CiRsYW5nWydlcnJvcl9uYW1ldXNlZCddID0gJ1BvbG/FvmthIHMgdCZ5YWN1dGU7bXRvIG4mYWFjdXRlO3p2b20gZXhpc3R1amUnOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdQcm9zJmlhY3V0ZTttIHZ5YmVydGUgdHlwIHBvxL5hJzsKJGxhbmdbJ2Vycm9yX25vbmFtZSddID0gJ011cyZpYWN1dGU7dGUgdnlwbG5pxaUgbiZhYWN1dGU7em92JzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdQcm9kdWt0IHMgdCZ5YWN1dGU7bXRvIG4mYWFjdXRlO3p2b20gZXhpc3R1amUnOwokbGFuZ1snZXJyb3JfcHJpY2VfYWRqdXN0bWVudCddID0gJ05lcGxhdG4mYWFjdXRlOyBob2Rub3RhIHVwcmF2ZW5laiBjZW55IHByZSBwb2xvxb5rdSAgJXMnOwokbGFuZ1snZXJyb3JfdXBsb2FkX2ZhaWxlZCddID0gJ05haHImYWFjdXRlO3ZhbmllIHpseWhhbG86ICVzJzsKJGxhbmdbJ2ZpZWxkJ10gPSAnUG9sZSc7CiRsYW5nWydmaWVsZGRlZiddID0gJ0RlZmluJmlhY3V0ZTtjaWEgcG/EvmEnOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnRGVmaW4maWFjdXRlO2NpYSBwb2wmaWFjdXRlOyc7CiRsYW5nWydmaWxlJ10gPSAnUyZ1YWN1dGU7Ym9yJzsKJGxhbmdbJ2ZpbHRlcnMnXSA9ICdGaWx0cmUnOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snaGllcmFyY2h5J10gPSAnSGllcmFyY2hpYSc7CiRsYW5nWydoaWVyYXJjaHlfcG9zaXRpb24nXSA9ICdQb3omaWFjdXRlO2NpYSB2IGhpZXJhcmNoaWknOwokbGFuZ1snaWQnXSA9ICdJZCc7CiRsYW5nWydpbWFnZXRleHQnXSA9ICdPYnImYWFjdXRlO3pvayc7CiRsYW5nWydpbmNsdWRlX2NoaWxkcmVuJ10gPSAnVnImYWFjdXRlO3RhbmUgcG9kJnVhY3V0ZTtyb3ZuZT8nOwokbGFuZ1snaW5mb19hbG51bW9ubHknXSA9ICdJYmEgYWxmYW51bWVyaWNrJmVhY3V0ZTsgem5hbWt5LCBiZXogbWVkemllciwgJnVhY3V0ZTt2b2R6b3ZpZWssIGEgb3N0YXRuJnlhY3V0ZTtjaCB6bmFrb3YgbWltbyDEjSZpYWN1dGU7c2llbCBhIHAmaWFjdXRlO3NtZW4uJzsKJGxhbmdbJ2luZm9fYXV0b3RodW1ibmFpbCddID0gJ05hc3RhdmVuaWUgbiZhYWN1dGU7aMS+YWRvdiZ5YWN1dGU7Y2ggb2JyJmFhY3V0ZTt6a292IHMmdWFjdXRlOyB6IG1vZHVsdSBDR0V4dGVuc2lvbnMnOwokbGFuZ1snaW5mb19hdXRvd2F0ZXJtYXJrJ10gPSAnTmFzdGF2ZW5pYSB2b2Rvem5ha3UgcyZ1YWN1dGU7ICB6IG1vZHVsdSBDR0V4dGVuc2lvbnMnOwokbGFuZ1snaW5mb19maWVsZGRlZnNfdGFiJ10gPSAnPHN0cm9uZz5Qb3puJmFhY3V0ZTtta2E6IDwvc3Ryb25nPiBWJnNjYXJvbjtldGt5IHBvbGlhIHR1IHMmdWFjdXRlOyBkb3N0dXBuJmVhY3V0ZTsgcHJlIHYmc2Nhcm9uO2V0a3kgcHJvZHVrdHknOwokbGFuZ1snaW5mb19maWVsZHByb2JsZW1zJ10gPSAnUHJvYmxlbXMgd2VyZSBlbmNvdW50ZXJlZCB3aGVuIGRlYWxpbmcgd2l0aCBvbmUgb3IgbW9yZSBjdXN0b20gZmllbGRzLiAgVGhlIGFjdGlvbiBoYXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSwgaG93ZXZlciB5b3Ugc2hvdWxkIGludmVzdGlnYXRlIGFuZCBjb3JyZWN0IHRoZXNlIHByb2JsZW1zJzsKJGxhbmdbJ2luZm9fcHJpY2VfYWRqdXN0bWVudCddID0gJ1Bvdm9sZW4mZWFjdXRlOyB6bmFreSBzJnVhY3V0ZTsgKy0qIy4jIyc7CiRsYW5nWydpbmZvX3B1YmxpY2ZpZWxkJ10gPSAnVmVyZWpuJmVhY3V0ZTsgcG9saWEgcyZ1YWN1dGU7IHZpZGl0ZcS+biZlYWN1dGU7IHByZSB2JnNjYXJvbjtldGs9eWNoJzsKJGxhbmdbJ2xhYmVsJ10gPSAnWm5hxI1rYSc7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xhc3RfbW9kaWZpZWQnXSA9ICdQb3NsZWRuJmFhY3V0ZTsgem1lbmEnOwokbGFuZ1snbG9nb3RleHQnXSA9ICdEcnVoJnlhY3V0ZTsgb2JyJmFhY3V0ZTt6b2snOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4aW0mYWFjdXRlO2xuYSBkxLrFvmxhIDxlbT4ocGxhdG4mZWFjdXRlOyBpYmEgdiB0ZXh0b3ZvbSBwb2xpKTwvZW0+JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ0QmYWFjdXRlO3R1bSAmdWFjdXRlO3ByYXZ5JzsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gJ01vZHVsIHByZSBzcHImYWFjdXRlO3Z1IHByb2R1a3RvdiwgaWNoIGNpZW4sIG9iciZhYWN1dGU7emtvdiwgYXTEjy4gTSZvY2lyYzvFvm5vc8WlIHBvdcW+acWlIHYga29tYmluJmFhY3V0ZTtjaWkgcyBtb2R1bG9tIG4mYWFjdXRlO2t1cG4mZWFjdXRlO2hvIGtvJnNjYXJvbjsmaWFjdXRlO2thIChDYXJ0KSBhIG1vZHVsb20gb2JqZWRuJmFhY3V0ZTt2b2sgKE9yZGVycyknOwokbGFuZ1snbmFtZSddID0gJ04mYWFjdXRlO3pvdic7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ05lbSZhYWN1dGU7dGUgcG90cmVibiZlYWN1dGU7IHByJmFhY3V0ZTt2YTogJXMnOwokbGFuZ1snbmV3X2NhdGVnb3J5X25hbWUnXSA9ICdOJmFhY3V0ZTt6b3Ygbm92ZWoga2F0ZWcmb2FjdXRlO3JpZSc7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICfFvWlhZG55IG4mYWFjdXRlO3pvdiBuZWJvbCB6YWRhbiZ5YWN1dGU7JzsKJGxhbmdbJ25vbmUnXSA9ICfFvWlhZG5lJzsKJGxhbmdbJ29mJ10gPSAneic7CiRsYW5nWydwYWdlJ10gPSAnU3RyYW5hJzsKJGxhbmdbJ3BhZ2Vfb2YnXSA9ICdTdHJhbmEgJXMgeiAlcyc7CiRsYW5nWydwYWdlX2xpbWl0J10gPSAnTWF4LiBuYSBzdHImYWFjdXRlO25rdSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcGVjaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5oaWVyYXJjaHkgLS0gRGlzcGxheSBhIHByb2R1Y3QgbGlzdCBieSBoaWVyYXJjaHk8L2xpPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdCBjYXRlZ29yaWVzPC9saT4NCiAgPGxpPjxlbT5kZWZhdWx0PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyeSBvZiBwcm9kdWN0czwvbGk+DQogIDxsaT5kZXRhaWwgLSBEaXNwbGF5IGEgZGV0YWlsIHZpZXcgb2YgYSBzaW5nbGUgcHJvZHVjdDwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ1doZW4gdXNlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyLCB3aGljaCBzaG91bGQgbWF0Y2ggdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgY2F0ZWdvcnkgd2lsbCBiZSB1c2VkIHRvIGRpc3BsYXkgb25seSB0aG9zZSBwcm9kdWN0cyB0aGF0IGFyZSBpbiB0aGF0IGNhdGVnb29yeS4gKGEgY29tbWEgc2VwZXJhdGVkIGxpc3QgY2FuIGJlIHN1cHBsaWVkKSc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnVGhpcyBzcGVjaWZpZXMgdGhlIHBhZ2VpZCBvciBhbGlhcyB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIGRldGFpbCByZXBvcnQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGV0YWlsIG1vZGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHknXSA9ICdVc2VmdWwgb25seSBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGF0IG9ubHkgaXRlbXMgaW4gdGhhdCBsb2NhdGlvbiBvZiB0aGUgaGllcmFyY2h5IHNob3VsZCBiZSBkaXNwbGF5ZWQuICBXaWxkY2FyZCBjaGFyYWN0ZXIgY2FuIGJlIHVzZWQgc28gdGhhdCB5b3UgY2FuIHNwZWNpZnkgcGFyZW50L2NoaWxkIHJlbGF0aW9uc2hpcHMgYXMgd2VsbC4gIGkuZSB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5O3RydWNrcyomIzAzOTt9IHdpbGwgY3JlYXRlIGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgaW5jbHVkaW5nIHRoZSBjaGlsZHJlbiBpbiB0aGUgaGllcmFyY2h5LiAgU2ltaWxhcmx5LCB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5Oyp0cnVja3MmIzAzOTt9IHdpbGwgZGlzcGxheSBhIHN1bW1hcnkgcmVwb3J0IG9mIGFsbCB0cnVja3MsIGFuZCBhbGwgcHJvZHVjdHMgYmVsb2dpbmcgdG8gYW55IHBhcmVudCBpbiB0aGUgaGllcmFyY2h5Lic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGhpZXJhcmNoeSBkaXNwbGF5LiBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1fcGFnZWxpbWl0J10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBob3cgbWFueSBpdGVtcyBzaG91bGQgYmUgbGlzdGVkIG9uIGVhY2ggcGFnZS4nOwokbGFuZ1sncGFyYW1fcGFyZW50J10gPSAnVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5oaWVyYXJjaHk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgaGllcmFyY2h5IGlkIG9mIHRoZSBzdGFydGluZyBsb2NhdGlvbiBvZiB0aGUgcmVwb3J0Lic7CiRsYW5nWydwYXJhbV9wcm9kdWN0aWQnXSA9ICdQb3XFviZpYWN1dGU7dmEgc2EgdiZ5YWN1dGU7aHJhZG5lIHByaSBtJm9hY3V0ZTtkZSBkZXRhaWwsYSB6b2JyYXp1amUgZGV0YWlsIHByb2R1a3R1JzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ1NwZWNpZnkgdGhlIG9yZGVyIG9mIHNvcnRlZCBmaWVsZHMgaW4gc3VtbWFyeSB2aWV3LiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIEFzY2VuZGluZyBvcmRlcjwvbGk+DQogIDxsaT5kZXNjIC0tIERlc2NlbmRpbmcgb3JkZXI8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnUG91xb4maWFjdXRlO3ZhIHNhIHYmeWFjdXRlO2hyYWRuZSB2IG0mb2FjdXRlO2RlIHByZWjEvmFkdSAoc3VtbWFyeSkgYSB6YWJlenBlxI11amUgdHJpZWRlbmllIHByb2R1a3RvdiBuYSB2JnlhY3V0ZTtzdHVwZS4gTW/Fvm4mZWFjdXRlOyBob2Rub3R5IHBhcmFtZXRyYToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+cHJvZHVjdF9uYW1lPC9zdHJvbmc+PC9saT4NCiAgPGxpPnByaWNlIC0tIHomYWFjdXRlO2tsYWRuJmFhY3V0ZTsgY2VuYSBwcm9kdWt0dTwvbGk+DQogIDxsaT5zdGF0dXMgLS0gRHJhZnQgYWxlYm8gcHVibGlzaGVkPC9saT4NCiAgPGxpPnJhbmRvbSAtLSBuJmFhY3V0ZTtob2RuJnlhY3V0ZTsgdiZ5YWN1dGU7YmVyPC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gZCZhYWN1dGU7dHVtIHZ5dHZvcnJlbmlhPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIGQmYWFjdXRlO3R1bSBwb3NsZWRuZWogJnVhY3V0ZTtwcmF2eTwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdUZW50byBwYXJhbWV0ZXIgJnNjYXJvbjtwZWNpZmlrdWplICZzY2Fyb247YWJsJm9hY3V0ZTtudSBwcmUgcHJlIG0mb2FjdXRlO2QgcHJlaMS+YWR5ICZxdW90O3N1bW1hcnkmcXVvdDsuIEFrIG5pZWplIHphZGFuJnlhY3V0ZTssIHBvdcW+aWplIHNhIHByZWRuYXN0YXZlbiZhYWN1dGU7ICZzY2Fyb247YWJsJm9hY3V0ZTtuYS4nOwokbGFuZ1sncGFyZW50J10gPSAnUm9kacSNJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTW9kdWwgYm9sICZ1YWN1dGU7c3BlJnNjYXJvbjtuZSBuYWluJnNjYXJvbjt0YWxvdmFuJnlhY3V0ZTsnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1Byb2R1a3RvdiZ5YWN1dGU7IG1vZHVsIGJvbCBvZHN0ciZhYWN1dGU7bmVuJnlhY3V0ZTsgc28gdiZzY2Fyb247ZXRrJnlhY3V0ZTttaSBkJmFhY3V0ZTt0YW1pdSc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ05hc3RhdmVuaWEnOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnT2RzdHImYWFjdXRlO25lbiZpYWN1dGU7bSBtb2R1bHUgc3RyYXQmaWFjdXRlO3RlIHYmc2Nhcm9uO2V0a3kgZCZhYWN1dGU7dGEgcyBuJmlhY3V0ZTttIHMmdWFjdXRlO3Zpc2VqJnVhY3V0ZTtjZSwgY2hjZXRlIHBva3JhxI1vdmHFpT8nOwokbGFuZ1sncHJpY2UnXSA9ICdDZW5hJzsKJGxhbmdbJ3ByaWNlX2FkanVzdG1lbnQnXSA9ICdQcmlwJm9jaXJjO3NvYmVuaWUgY2VueSc7CiRsYW5nWydwcmV2cGFnZSddID0gJzwnOwokbGFuZ1sncHJvZHVjdCddID0gJ1Byb2R1a3QnOwokbGFuZ1sncHJvZHVjdG5hbWUnXSA9ICdOJmFhY3V0ZTt6b3YgcHJvZHVrdHUnOwokbGFuZ1sncHJvZHVjdHMnXSA9ICdQcm9kdWt0eSc7CiRsYW5nWydwcm9kdWN0X2hpZXJhcmNoeSddID0gJ0hpZXJhcmNoaWEgcHJvZHVrdG92JzsKJGxhbmdbJ3Byb2R1Y3RfbWFuYWdlciddID0gJ1Byb2R1a3RvdiZ5YWN1dGU7IG1vZHVsJzsKJGxhbmdbJ3Byb21wdCddID0gJ0hsJmFhY3V0ZTsmc2Nhcm9uO2thJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ZpbGV0eXBlcyddID0gJ1Bvdm9sacWlIG5haHImYWFjdXRlO3ZhxaUgcyZ1YWN1dGU7Ym9yeSBzIHQmeWFjdXRlO21pdG8ga29uY292a2FtaSAocHJlIHBvbGUgcyZ1YWN1dGU7Ym9yKSc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZXR5cGVzJ10gPSAnUG92b2xpxaUgbmFociZhYWN1dGU7dmHFpSBvYnImYWFjdXRlO3preSBzIHQmeWFjdXRlO21pIGtvbmNvdmthbWkgKHByZSBwb2xlIG9iciZhYWN1dGU7em9rKSc7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbCddID0gJ0F1dG9tYXRpY2t5IHZ5dHZvcmnFpSBuYWjEvmFkIG9iciZhYWN1dGU7emthJzsKJGxhbmdbJ3Byb21wdF9hdXRvd2F0ZXJtYXJrJ10gPSAnQXV0b21hdGlja3kgdmxvxb5pxaUgdm9kb3puYWsgZG8gb2JyJmFhY3V0ZTt6a292JzsKJGxhbmdbJ3Byb21wdF9hcHBsaWNhYmxlJ10gPSAnWmFwbiZ1YWN1dGU7xaUgYWtvIHByZWRuYXN0YXZlbiZlYWN1dGU7IHByZSB2JnNjYXJvbjtldGt5IG5vdiZlYWN1dGU7IHByb2R1a3R5JzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeWNvZGUnXSA9ICdTJnVhY3V0ZTvEjWFzbiZ5YWN1dGU7IGsmb2FjdXRlO2QnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAnUyZ1YWN1dGU7xI1hc24meWFjdXRlOyBzeW1ib2wnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gJ09kc3RyYW5pxaUgdiZzY2Fyb247ZXRreSBzJnVhY3V0ZTtib3J5IHNwb2plbiZlYWN1dGU7IHMgdCZ5YWN1dGU7bXRvIHByb2R1a3RvbSBwcmkgamVobyBvZHN0ciZhYWN1dGU7bmVuJmlhY3V0ZTs/JzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnUHJlZG5hc3RhdmVuJmFhY3V0ZTsgc3RyJmFhY3V0ZTtua2EgZGV0YWlsdSc7CiRsYW5nWydwcm9tcHRfdGF4cmF0ZSddID0gJ1NhZHpiYSBkYW5lJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnUHJlZG5hc3RhdmVuJmVhY3V0ZTsgdHJpZWRlbmllIHYgbSZvYWN1dGU7ZGUgcHJlaMS+YWR1IChzdW1tYXJ5KSc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICdQcmVkbmFzdGF2ZW4mZWFjdXRlOyB0cmllZGVuaWUgdiBtJm9hY3V0ZTtkZSBwcmVoxL5hZHUgKHN1bW1hcnkpJzsKJGxhbmdbJ3Byb21wdF90YXgxJ10gPSAnUHJ2JmFhY3V0ZTsgZGHFiCc7CiRsYW5nWydwcm9tcHRfdGF4MiddID0gJ0RydWgmYWFjdXRlOyBkYcWIJzsKJGxhbmdbJ3Byb21wdF90YXhuYW1lJ10gPSAnTiZhYWN1dGU7em92IGRhbmUnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnWmRyb2ogJnNjYXJvbjthYmwmb2FjdXRlO255JzsKJGxhbmdbJ3Byb21wdF93ZWlnaHR1bml0cyddID0gJ0plZG5vdGt5IGhtb3Rub3N0aSc7CiRsYW5nWydwdWJsaWMnXSA9ICdKZSB0b3RvIHZlcmVqbiZlYWN1dGU7IHBvbGU/JzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ1B1Ymxpa292YW4mZWFjdXRlOyc7CiRsYW5nWydyYW5kb20nXSA9ICdOJmFhY3V0ZTtob2RuZSc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1ByZWRuYXN0YXZpxaUgbmEgcHJlZHZvbGVuJmVhY3V0ZTsgaG9kbm90eSc7CiRsYW5nWydyb290J10gPSAnUm9kacSNb3ZzayZ5YWN1dGU7IGFkcmVzJmFhY3V0ZTtyJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdWeWJlcnRlIGplZG51JzsKJGxhbmdbJ3NvcnRfYnknXSA9ICdab3RyaWVkacWlIHBvZMS+YSc7CiRsYW5nWydzb3J0X29yZGVyJ10gPSAnUG9yYWRpZSc7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF2JzsKJGxhbmdbJ3N1Ym1pdCddID0gJ09kb3NsYcWlJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICcmU2Nhcm9uO2FibCZvYWN1dGU7bnkgcHJlaMS+YWRvdiAoc3VtbWFyeSknOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdQcmlkYcWlL3VwcmF2acWlICZzY2Fyb247YWJsJm9hY3V0ZTtudSBwcmVoxL5hZHUnOwokbGFuZ1sndGF4YWJsZSddID0gJ1pkYW5lbiZlYWN1dGU7JzsKJGxhbmdbJ3RheF9tb2R1bGUnXSA9ICdNb2R1bCBwcmUgZGFuZSc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ1RleHRvdiZhYWN1dGU7IG9ibGFzxaUnOwokbGFuZ1sndGV4dGJveCddID0gJ1RleHRvdiZlYWN1dGU7IHBvbGUnOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnUHJlZG5hc3RhdmVuJmFhY3V0ZTsgJnNjYXJvbjthYmwmb2FjdXRlO25hIHYmeWFjdXRlO3Bpc3UgdiBoaWVyYXJjaGkmaWFjdXRlOyc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnUHJlZG5hc3RhdmVuJmFhY3V0ZTsgJnNjYXJvbjthYmwmb2FjdXRlO25hIHYmeWFjdXRlO3Bpc3Uga2F0ZWcmb2FjdXRlO3JpaSc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnUHJlZG5hc3RhdmVuJmFhY3V0ZTsgJnNjYXJvbjthYmwmb2FjdXRlO25hIGRldGFpbHUnOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdQcmVkbmFzdGF2ZW4mYWFjdXRlOyAmc2Nhcm9uO2FibCZvYWN1dGU7bmEgcyZ1YWN1dGU7aHJudSc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ1VwcmF2acWlJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1Z5YnJhxaUgcyZ1YWN1dGU7Ym9yIHByZSBuYWhyYXRpZSc7CiRsYW5nWyd2YWxpZCddID0gJ1NwciZhYWN1dGU7dm5lJzsKJGxhbmdbJ3ZhbHVlJ10gPSAnSG9kbm90YSc7CiRsYW5nWyd2YWx1ZXMnXSA9ICdIb2Rub3R5JzsKJGxhbmdbJ3dhdGVybWFya19sb2NhdGlvbiddID0gJ0FkcmVzYSB2b2Rvem5ha3UnOwokbGFuZ1snd2VpZ2h0J10gPSAnViZhYWN1dGU7aGEnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjI0NzYxMTA3LjM4OC4yNi51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9dmFzc2FsZ3ltLnNrfHV0bWNjdD0vYWRtaW4vbGlzdGNvbnRlbnQucGhwfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjQzMDA3NDI2ODkyNzU2MDE0MDAuMTIxMzI1Njk1My4xMjI1MTEwMjgwLjEyMjUxMTQ0NDEuMzk5JzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1My41LjEwLjEyMjUxMTQ0NDEnOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sl_SI.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZCddID0gJ0RvZGFqJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnRG9kYWoga2F0ZWdvcmlqbyc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0RvZGFqIHBvbGplJzsKJGxhbmdbJ2FkanVzdGFibGUnXSA9ICdOYXN0YXZsaml2byc7CiRsYW5nWydhZGRwcm9kdWN0J10gPSAnRG9kYWogYXJ0aWtlbCc7CiRsYW5nWydhZGRfYXR0cmliX3NldCddID0gJ0RvZGFqIGF0cmlidXQnOwokbGFuZ1snYWRkX2NhdGVnb3J5X2ZpZWxkJ10gPSAnRG9kZWxpIHBvbGplIGthdGVnb3Jpamk6ICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2FkZF9oaWVyYXJjaHlfaXRlbSddID0gJ0RvZGFqIGVsZW1lbnQgaGllcmFyaGlqZSc7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAnRG9kYWogbW/Fvm5vc3QgYXRyaWJ1dGEnOwokbGFuZ1snYWRtaW5fb25seSddID0gJ0FsaSBsYWhrbyBzYW1vIGFkbWluaXN0cmF0b3JqaSB2aWRpam8gdGEgYXRyaWJ1dD8nOwokbGFuZ1snYWxpZ25fdWwnXSA9ICdaZ29yYWogbGV2byc7CiRsYW5nWydhbGlnbl91YyddID0gJ1pnb3JhaiBzcmVkaW5hJzsKJGxhbmdbJ2FsaWduX3VyJ10gPSAnWmdvcmFqIGRlc25vJzsKJGxhbmdbJ2FsaWduX21sJ10gPSAnU3JlZGluYSBsZXZvJzsKJGxhbmdbJ2FsaWduX21jJ10gPSAnU3JlZGluYSc7CiRsYW5nWydhbGlnbl9tciddID0gJ1NyZWRpbmEgZGVzbm8nOwokbGFuZ1snYWxpZ25fbGwnXSA9ICdTcG9kYWogbGV2byc7CiRsYW5nWydhbGlnbl9sYyddID0gJ1Nwb2RhaiBzcmVkaW5hJzsKJGxhbmdbJ2FsaWduX2xyJ10gPSAnU3BvZGFqIGRlc25vJzsKJGxhbmdbJ2FsbGNhdGVnb3JpZXMnXSA9ICdWc2Uga2F0ZWdvcmlqZSc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnU3RlIHByZXByacSNYW5pPyc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZXByb2R1Y3QnXSA9ICdTdGUgcHJlcHJpxI1hbmksIGRhIMW+ZWxpdGUgaXpicmlzYXRpIHRhIGFydGlrZWwgdGVyIHZzZSBpbmZvcm1hY2lqZSwga2kgc28geiBuamltIHBvdmV6YW5lPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdOYXJhJnNjYXJvbjvEjWFqb8SNZSc7CiRsYW5nWydhdHRyaWJ1dGVfbmFtZSddID0gJ0ltZSBhdHJpYnV0YSc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdnRvbWF0acSNbm8nOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZXMnXSA9ICdQcmVkbG9nZSB6YSBwb3JvxI1pbG8gaGllcmFyaGlqZSc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdEb2Rhai91cmVkaSBwcmVkbG9nbyBwb3JvxI1pbGEgaGllcmFyaGlqZSc7CiRsYW5nWydjYW5jZWwnXSA9ICdQcmVrbGnEjWknOwokbGFuZ1snY2FydF9tb2R1bGUnXSA9ICdNb2R1bCB6YSB2b3ppxI1layc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnS2F0ZWdvcmlqZSc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0thdGVnb3JpamEnOwokbGFuZ1snY2F0ZWdvcnlleGlzdHMnXSA9ICdLYXRlZ29yaWphIHMgdGVtIGltZW5vbSDFvmUgb2JzdGFqYSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdQcmVkbG9nZSB6YSBwcmVnbGVkIGthdGVnb3Jpaic7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnRG9kYWovdXJlZGkgcHJlZGxvZ28gemEgcHJlZ2xlZCBrYXRlZ29yaWonOwokbGFuZ1snY2hlY2tib3gnXSA9ICdDaGVja2JveCc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9oaWVyYXJjaHlfbm9kZSddID0gJ1N0ZSBwcmVwcmnEjWFuaSwgZGEgxb5lbGl0ZSBpemJyaXNhdGkgdGEgbml2bz8gVnNpIGFydGlrbGksIGtpIHVwb3JhYmxqYWpvIHRhIG5pdm8gYm9kbyBvZHN0cmFuamVuaSBpeiBoaWVyYXJoaWplLic7CiRsYW5nWydjb3B5J10gPSAnS29waXJhaic7CiRsYW5nWydjb3B5X2NhdGVnb3J5J10gPSAnS29waXJhaiBrYXRlZ29yaWpvJzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRGF0dW0gdm5vc2EnOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ1RyZW51dG5hIHZyZWRub3N0JzsKJGxhbmdbJ2RhdGEnXSA9ICdQb2RhdGtpJzsKJGxhbmdbJ2RlZmF1bHQnXSA9ICdQcml2emV0byc7CiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAnUHJpdnpldGUgcHJlZGxvZ2UnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPlBvem9yOjwvc3Ryb25nPiBWc2ViaW5hIHRlaCBwb2xqIGplIHVwb3JhYmxqZW5hIHphIGRvbG/EjWFuamUgcHJpdnpldGUgdnNlYmluZSBwcmVkbG9nLCBrbyBrbGlrbmV0ZSAmcXVvdDtEb2RhaiBwcmVkbG9nbyZxdW90OyB2IHVzdHJlem5lbSB6YXZpaGt1IHMgcHJlZGxvZ2FtaS4gU3ByZW1pbmphbmplIHZzZWJpbmUgdGVoIHBvbCBuZSBibyB2cGxpdmFsbyBuYSB2YSZzY2Fyb247byBzcGxldG5vIHN0cmFuLic7CiRsYW5nWydkZWxldGUnXSA9ICdJemJyaSZzY2Fyb247aSc7CiRsYW5nWydkZWxldGVfYXR0cmlic2V0J10gPSAnSXpicmkmc2Nhcm9uO2kgYXRyaWJ1dCc7CiRsYW5nWydkZWxldGVfaGllcmFyY2h5X2l0ZW0nXSA9ICdJemJyaSZzY2Fyb247aSBlbGVtZW50IGhpZXJhcmhpamUnOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ1BhZGFqb8SNZSc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ09waXMnOwokbGFuZ1snZGV0YWlscyddID0gJ1BvZHJvYm5vc3RpJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ1ByZWRsb2dlIHphIHBvZHJvYm5vc3QnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ0RvZGFqL3VyZWRpIHByZWRsb2dvIHphIHBvZHJvYm5vc3QnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdPbmVtb2dvxI1lbm8nOwokbGFuZ1snZHJhZnQnXSA9ICdPc251dGVrJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnSXp2bGXEjW5pIG1lbmknOwokbGFuZ1snZHJvcGRvd25fb3B0aW9ucyddID0gJ01vxb5ub3N0aSBpenZsZcSNbmVnYSBtZW5pamEgPGVtPihzYW1vIHByaSBpenZsZcSNbmloIHBvbGppaCk8L2VtPjxici8+PGJyLz48ZW0+KGVuIHphcGlzIG5hIHZyc3RpY28pPC9lbT4nOwokbGFuZ1snZWRpdCddID0gJ1VyZWRpJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0cyddID0gJ1VyZWphbmplIG5hYm9yb3YgYXRyaWJ1dG92JzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0c19mb3InXSA9ICdVcmVqYW5qZSBuYWJvcm92IGF0cmlidXRvdiB6YSc7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdVcmVqYW5qZSBhdHJpYnV0b3YnOwokbGFuZ1snZWRpdF9jYXRlZ29yeSddID0gJ1VyZWphbmplIGthdGVnb3JpamUnOwokbGFuZ1snZWRpdF9jYXRlZ29yeV9maWVsZHMnXSA9ICdVcmVqYW5qZSBwb2xqIGthdGVnb3JpamUnOwokbGFuZ1snZWRpdF9oaWVyYXJjaHlfaXRlbSddID0gJ1VyZWphbmplIGVsZW1lbnRhIGhpZXJhcmhpamUnOwokbGFuZ1snZXJyb3JfYXR0cmlic2V0X2V4aXN0cyddID0gJ0F0cmlidXQgcyB0ZW0gaW1lbm9tIMW+ZSBvYnN0YWphJzsKJGxhbmdbJ2Vycm9yX2ZpZWxkdmFsdWVfZW1wdHknXSA9ICdWcmVkbm9zdCBwb2xqYSBuZSBtb3JlIGJpdGkgcHJhem5hJzsKJGxhbmdbJ2Vycm9yX2ZpbGVub3Rmb3VuZCddID0gJ0RhdG90ZWthIG5lIG9ic3RhamEnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmVudCddID0gJ05hcGHEjWVuIG5hZHJlamVuaSBlbGVtZW50IChlbGVtZW50IGhpZXJhcmhpamUgbmUgbW9yZSBiaXRpIG5hZHJlamVuIHNhbWVtdSBzZWJpKSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX25hbWUnXSA9ICdWcmVkbm9zdCBwcmlsYWdvamVuZWdhIHBvbGphIGplIG5hcGHEjW5hICh2c2VidWplIHBvc2VibmUgem5ha2UpJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ09idmV6ZW4gcGFyYW1ldGVyIG5lIG9ic3RhamEgYWxpIHBhIGplIG5hcGHEjWVuJzsKJGxhbmdbJ2Vycm9yX25hbWV1c2VkJ10gPSAnRWxlbWVudCBzIHRlbSBpbWVub20gxb5lIG9ic3RhamEnOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdQcm9zaW1vLCBpemJlcml0ZSB0aXAgcG9samEnOwokbGFuZ1snZXJyb3Jfbm9uYW1lJ10gPSAnVnBpc2F0aSBtb3JhdGUgaW1lJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdBcnRpa2VsIHMgdGVtIGltZW5vbSDFvmUgb2JzdGFqYSc7CiRsYW5nWydlcnJvcl9wcmljZV9hZGp1c3RtZW50J10gPSAnTmFwYcSNbmEgdnJlZG5vc3QgY2VuZSB6YSBhcnRpa2VsICVzJzsKJGxhbmdbJ2Vycm9yX3VwbG9hZF9mYWlsZWQnXSA9ICdQcmVub3MgbmkgdXNwZSZzY2Fyb247ZW46ICVzJzsKJGxhbmdbJ2ZpZWxkJ10gPSAnUG9samUnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdEZWZpbmljaWphIHBvbGphJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0RlZmluaWNpamUgcG9saic7CiRsYW5nWydmaWxlJ10gPSAnRGF0b3Rla2EnOwokbGFuZ1snZmlsdGVycyddID0gJ0ZpbHRyaSc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICc8PCc7CiRsYW5nWydoaWVyYXJjaHknXSA9ICdIaWVyYXJoaWphJzsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gJ1BvbG/FvmFqIHYgaGllcmFyaGlqaSc7CiRsYW5nWydpZCddID0gJ0lEJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ1NsaWthJzsKJGxhbmdbJ2luY2x1ZGVfY2hpbGRyZW4nXSA9ICdWa2xqdcSNaSBwb2RyZWplbmU/JzsKJGxhbmdbJ2luZm9fYWxudW1vbmx5J10gPSAnU2FtbyBhbGZhbnVtZXJpxI1uaSB6bmFraS4gQnJleiBwcmVzbGVka292LCBuYXJla292YWpldiwgJnNjYXJvbjt1bW5pa292IGluIHBvc2VibmloIHpuYWtvdi4nOwokbGFuZ1snaW5mb19hdXRvdGh1bWJuYWlsJ10gPSAnTmFzdGF2aXR2ZSBwb21hbmomc2Nhcm9uO2FuaWggc2xpayBuYXN0YXZpdGUgdiBtb2R1bHUgQ0dFeHRlbnNpb25zJzsKJGxhbmdbJ2luZm9fYXV0b3dhdGVybWFyayddID0gJ05hc3Rhdml0dmUgdm9kbmVnYSDFvmlnYSBuYXN0YXZpdGUgdiBtb2R1bHUgQ0dFeHRlbnNpb25zJzsKJGxhbmdbJ2luZm9fZmllbGRkZWZzX3RhYiddID0gJzxzdHJvbmc+T3Bvem9yaWxvOiA8L3N0cm9uZz4gVnNhIHR1a2FqIGRlZmluaXJhbmEgcG9samEgc28gbmEgdm9sam8gdnNlbSBhcnRpa2xvbS4nOwokbGFuZ1snaW5mb19maWVsZHByb2JsZW1zJ10gPSAnUHJpJnNjYXJvbjtsbyBqZSBkbyB0ZcW+YXYgcHJpIHVwcmF2bGphbmp1IHogZW5pbSBhbGkgdmXEjSBwcmlsYWdvamVuaWggcG9sai4gQWtjaWphIGplIGJpbGEgdXNwZSZzY2Fyb247bm8gemFrbGp1xI1lbmEsIHZlbmRhciBwcmV2ZXJpdGUgaW4gb2RwcmF2aXRlIG5hcGFrZS4nOwokbGFuZ1snaW5mb19wcmljZV9hZGp1c3RtZW50J10gPSAnRG92b2xqZW5lIHZyZWRub3N0aSBzbyArLSojLiMjJzsKJGxhbmdbJ2luZm9fcHVibGljZmllbGQnXSA9ICdKYXZuYSBwb2xqYSBsYWhrbyB2aWRpam8gdnNpJzsKJGxhbmdbJ2xhYmVsJ10gPSAnTmF6aXYnOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnWmFkbmphIHNwcmVtZW1iYSc7CiRsYW5nWydsb2dvdGV4dCddID0gJ0RydWdhIHNsaWthJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ05hanZlxI1qYSBkb2zFvmluYSA8ZW0+KHNhbW8gcHJpIHRleHRib3ggcG9samloKTwvZW0+JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ0RhdHVtIHNwcmVtZW1iZSc7CiRsYW5nWydtb2R1bGVfZGVzY3JpcHRpb24nXSA9ICdNb2R1bCB6YSB1cHJhdmxqYW5qZSBzIGthdGFsb2dvbSBhcnRpa2xvdiwgY2VuYW1pLCBzbGlrYW1pIGl0ZC4nOwokbGFuZ1snbmFtZSddID0gJ0ltZSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ05pbWF0ZSB6YWRvc3RuaWggcHJhdmljOiAlcyc7CiRsYW5nWyduZXdfY2F0ZWdvcnlfbmFtZSddID0gJ0ltZSBub3ZlIGthdGVnb3JpamUnOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICc+JzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnSW1lIG5pIGJpbG8gcG9kYW5vJzsKJGxhbmdbJ25vbmUnXSA9ICdOb2Jlbic7CiRsYW5nWydvZiddID0gJ29kJzsKJGxhbmdbJ3BhZ2UnXSA9ICdTdHJhbic7CiRsYW5nWydwYWdlX29mJ10gPSAnU3RyYW4gJXMgb2QgJXMnOwokbGFuZ1sncGFnZV9saW1pdCddID0gJ09tZWppdGV2IHN0cmFuaSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcGVjaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5oaWVyYXJjaHkgLS0gRGlzcGxheSBhIHByb2R1Y3QgbGlzdCBieSBoaWVyYXJjaHk8L2xpPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdCBjYXRlZ29yaWVzPC9saT4NCiAgPGxpPjxlbT5kZWZhdWx0PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyeSBvZiBwcm9kdWN0czwvbGk+DQogIDxsaT5kZXRhaWxzIC0gRGlzcGxheSBhIGRldGFpbCB2aWV3IG9mIGEgc2luZ2xlIHByb2R1Y3Q8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdXaGVuIHVzZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciwgd2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBuYW1lIG9mIGFuIGV4aXN0aW5nIGNhdGVnb3J5IHdpbGwgYmUgdXNlZCB0byBkaXNwbGF5IG9ubHkgdGhvc2UgcHJvZHVjdHMgdGhhdCBhcmUgaW4gdGhhdCBjYXRlZ29vcnkuIChhIGNvbW1hIHNlcGVyYXRlZCBsaXN0IGNhbiBiZSBzdXBwbGllZCknOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1fZGV0YWlscGFnZSddID0gJ1RoaXMgc3BlY2lmaWVzIHRoZSBwYWdlaWQgb3IgYWxpYXMgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBkZXRhaWwgcmVwb3J0Lic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRldGFpbCBtb2RlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1faGllcmFyY2h5J10gPSAnVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhhdCBvbmx5IGl0ZW1zIGluIHRoYXQgbG9jYXRpb24gb2YgdGhlIGhpZXJhcmNoeSBzaG91bGQgYmUgZGlzcGxheWVkLiAgV2lsZGNhcmQgY2hhcmFjdGVyIGNhbiBiZSB1c2VkIHNvIHRoYXQgeW91IGNhbiBzcGVjaWZ5IHBhcmVudC9jaGlsZCByZWxhdGlvbnNoaXBzIGFzIHdlbGwuICBpLmUge1Byb2R1Y3RzIGhpZXJhcmNoeT0mIzAzOTt0cnVja3MqJiMwMzk7fSB3aWxsIGNyZWF0ZSBhIHN1bW1hcnkgcmVwb3J0IG9mIGFsbCB0cnVja3MsIGluY2x1ZGluZyB0aGUgY2hpbGRyZW4gaW4gdGhlIGhpZXJhcmNoeS4gIFNpbWlsYXJseSwge1Byb2R1Y3RzIGhpZXJhcmNoeT0mIzAzOTsqdHJ1Y2tzJiMwMzk7fSB3aWxsIGRpc3BsYXkgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBhbmQgYWxsIHByb2R1Y3RzIGJlbG9naW5nIHRvIGFueSBwYXJlbnQgaW4gdGhlIGhpZXJhcmNoeS4nOwokbGFuZ1sncGFyYW1faGllcmFyY2h5dGVtcGxhdGUnXSA9ICdUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBoaWVyYXJjaHkgZGlzcGxheS4gSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIGxpc3RlZCBvbiBlYWNoIHBhZ2UuJzsKJGxhbmdbJ3BhcmFtX3BhcmVudCddID0gJ1VzZWZ1bCBvbmx5IGluIHRoZSA8ZW0+aGllcmFyY2h5PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIGhpZXJhcmNoeSBpZCBvZiB0aGUgc3RhcnRpbmcgbG9jYXRpb24gb2YgdGhlIHJlcG9ydC4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGlkJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgZGV0YWlsIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHdoYXQgcHJvZHVjdCB0byB1c2UgZm9yIHRoZSBkaXNwbGF5Lic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcGVjaWZ5IHRoZSBvcmRlciBvZiBzb3J0ZWQgZmllbGRzIGluIHN1bW1hcnkgdmlldy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBBc2NlbmRpbmcgb3JkZXI8L2xpPg0KICA8bGk+ZGVzYyAtLSBEZXNjZW5kaW5nIG9yZGVyPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gJ0FwcGxpY2FibGUgb25seSBpbiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyIGRldGVybWluZXMgdGhlIHNvcnRpbmcgb2YgdGhlIG91dHB1dCBwcm9kdWN0cy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPnByb2R1Y3RfbmFtZTwvc3Ryb25nPjwvbGk+DQogIDxsaT5wcmljZSAtLSBUaGUgcHJvZHVjdCBiYXNlIHByaWNlPC9saT4NCiAgPGxpPnN0YXR1cyAtLSBEcmFmdCBvciBwdWJsaXNoZWQ8L2xpPg0KICA8bGk+cmFuZG9tIC0tIERpc3BsYXkgaW4gcmFuZG9tIG9yZGVyIG9uIGVhY2ggcmVxdWVzdDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIHN1bW1hcnkgbW9kZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmVudCddID0gJ05hZHJlamVuaSBlbGVtZW50JzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTW9kdWwgUHJvZHVrdGkgamUgYmlsIHVzcGUmc2Nhcm9uO25vIG5hbWUmc2Nhcm9uO8SNZW4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ01vZHVsIFByb2R1a3RpIGplIGJpbCB1c3BlJnNjYXJvbjtubyBvZHN0cmFuamVuIHogdnNlbWkgcG9kYXRraSc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ05hc3Rhdml0dmUnOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnxIxlIG9kc3RyYW5pdGUgdGEgbW9kdWwsIGJvc3RlIG9kc3RyYW5pbGkgdHVkaSB2c2UgcG9kYXRrZSwga2kgbXUgcHJpcGFkYWpvLiBTdGUgcHJlcHJpxI1hbmksIGRhIMW+ZWxpdGUgbmFkYWxqZXZhdGk/JzsKJGxhbmdbJ3ByaWNlJ10gPSAnQ2VuYSc7CiRsYW5nWydwcmljZV9hZGp1c3RtZW50J10gPSAnTmFzdGF2aXRldiBjZW5lJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCc7CiRsYW5nWydwcm9kdWN0J10gPSAnQXJ0aWtlbCc7CiRsYW5nWydwcm9kdWN0bmFtZSddID0gJ0ltZSBhcnRpa2xhJzsKJGxhbmdbJ3Byb2R1Y3RzJ10gPSAnUHJvZHVrdGknOwokbGFuZ1sncHJvZHVjdF9oaWVyYXJjaHknXSA9ICdIaWVyYXJoaWphIHByb2R1a3Rvdic7CiRsYW5nWydwcm9kdWN0X21hbmFnZXInXSA9ICdVcHJhdml0ZWxqIHByb2R1a3Rvdic7CiRsYW5nWydwcm9tcHQnXSA9ICdWcHJhJnNjYXJvbjthbmplJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ZpbGV0eXBlcyddID0gJ0Rvdm9saSBuYWxhZ2FuamUgZGF0b3RlayBzIHRlbWkga29uxI1uaWNhbWkgKHphIHBvbGphIHRpcGEgZGF0b3Rla2EpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ltYWdldHlwZXMnXSA9ICdEb3ZvbGkgbmFsYWdhbmplIGRhdG90ZWsgcyB0ZW1pIGtvbsSNbmljYW1pICh6YSBwb2xqYSB0aXBhIHNsaWthKSc7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbCddID0gJ0F2dG9tYXRpxI1ubyB1c3R2YXJpIHBvbWFuaiZzY2Fyb247YW5lIHNsaWtlJzsKJGxhbmdbJ3Byb21wdF9hdXRvd2F0ZXJtYXJrJ10gPSAnQXZ0b21hdGnEjW5vIHZzdGF2aSB2b2RuaSDFvmlnIG5hIHNsaWtlJzsKJGxhbmdbJ3Byb21wdF9hcHBsaWNhYmxlJ10gPSAnT21vZ2/EjWkgcHJpdnpldG8gemEgdnNlIG5vdmUgYXJ0aWtsZSc7CiRsYW5nWydwcm9tcHRfY3VycmVuY3ljb2RlJ10gPSAnJlNjYXJvbjtpZnJhIHZhbHV0ZSc7CiRsYW5nWydwcm9tcHRfY3VycmVuY3lzeW1ib2wnXSA9ICdTaW1ib2wgdmFsdXRlJzsKJGxhbmdbJ3Byb21wdF9kZWxldGVwcm9kdWN0ZmlsZXMnXSA9ICdJemJyaSZzY2Fyb247ZW0gdnNlIGRhdG90ZWtlLCBraSBzbyBwb3ZlemFuZSB6IGFydGlrbG9tLCBrbyBpemJyaSZzY2Fyb247ZW0gYXJ0aWtlbD8nOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdQcml2emV0YSBzdHJhbiBzIHBvZHJvYm5vc3RtaSc7CiRsYW5nWydwcm9tcHRfdGF4cmF0ZSddID0gJ1N0b3BuamEgZGF2a2EnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdQcml2emV0YSBzbWVyIHJhenZyJnNjYXJvbjvEjWFuamEgYXJ0aWtsb3YgdiBwb3Z6ZXRrdSc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICdQcml2emV0byBwb2xqZSB6YSByYXp2ciZzY2Fyb247xI1hbmplIGFydGlrbG92IHYgcG92emV0a3UnOwokbGFuZ1sncHJvbXB0X3RheDEnXSA9ICdQcnZpIGRhdmVrJzsKJGxhbmdbJ3Byb21wdF90YXgyJ10gPSAnRHJ1Z2kgZGF2ZWsnOwokbGFuZ1sncHJvbXB0X3RheG5hbWUnXSA9ICdJbWUgZGF2a2EnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnS29kYSBwcmVkbG9nZSc7CiRsYW5nWydwcm9tcHRfd2VpZ2h0dW5pdHMnXSA9ICdFbm90YSB0ZcW+ZSc7CiRsYW5nWydwdWJsaWMnXSA9ICdKZSB0byBwb2xqZSBqYXZubz8nOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnT2JqYXZsamVubyc7CiRsYW5nWydyYW5kb20nXSA9ICdOYWtsanXEjW5vJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnUG9uYXN0YXZpIG5hIHRvdmFybmkmc2Nhcm9uO2tlIG5hc3Rhdml0dmUnOwokbGFuZ1sncm9vdCddID0gJ0tvcmVuJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdJemJlcml0ZSBlbm8nOwokbGFuZ1snc29ydF9ieSddID0gJ1JhenZyc3RpIHBvJzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdTbWVyIHJhenZyJnNjYXJvbjvEjWFuamEnOwokbGFuZ1snc3RhdHVzJ10gPSAnU3RhdHVzJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1BvJnNjYXJvbjtsamknOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ1ByZWRsb2dlIHphIHBvdnpldGVrJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnRG9kYWovdXJlZGkgcHJlZGxvZ28gemEgcG92emV0ZWsnOwokbGFuZ1sndGF4YWJsZSddID0gJ09iZGF2xI1lbm8nOwokbGFuZ1sndGF4X21vZHVsZSddID0gJ01vZHVsIHphIGRhdmVrJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnVGVrc3Rvdm5vIHBvZHJvxI1qZSc7CiRsYW5nWyd0ZXh0Ym94J10gPSAnVGVrc3Rvdm5pIHZub3MnOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnUHJpdnpldG8gemEgbm92ZSBwcmVkbG9nZSBoaWVyYXJoaWplJzsKJGxhbmdbJ3RpdGxlX2NhdGVnb3J5bGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdQcml2emV0byB6YSBub3ZlIHByZWRsb2dlIHByZWdsZWRhIGthdGVnb3Jpaic7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnUHJpdnpldG8gemEgbm92ZSBwcmVkbG9nZSBwb2Ryb2Jub3N0aSc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1ByaXZ6ZXRvIHphIG5vdmUgcHJlZGxvZ2UgcG92emV0a2EnOwokbGFuZ1sndHlwZSddID0gJ1RpcCc7CiRsYW5nWyd1cGRhdGUnXSA9ICdQb3NvZG9iaSc7CiRsYW5nWyd1cGxvYWQnXSA9ICdJemJlcml0ZSBkYXRvdGVrbyB6YSBuYWxhZ2FuamUnOwokbGFuZ1sndmFsaWQnXSA9ICdWZWxqYXZubyc7CiRsYW5nWyd2YWx1ZSddID0gJ1ZyZWRub3N0JzsKJGxhbmdbJ3ZhbHVlcyddID0gJ1ZyZWRub3N0aSc7CiRsYW5nWyd3YXRlcm1hcmtfbG9jYXRpb24nXSA9ICdMb2thY2lqYSB2b2RuZWdhIMW+aWdhJzsKJGxhbmdbJ3dlaWdodCddID0gJ1Rlxb5hJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuNTg3OTU5Mjc3LjEyMTc0MzM1OTUuMTIyMjU4ODIxNi4xMjI2Njc3MTY3LjIxJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIyMjU4ODIxNi4yMC4xMS51dG1jc3I9Z29vZ2xlfHV0bWNjbj0ob3JnYW5pYyl8dXRtY21kPW9yZ2FuaWN8dXRtY3RyPWNtcyBtYWRlIHNpbXBsZSc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sv_SE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfbGVuZ3RoJ10gPSAnTCc7CiRsYW5nWydhYmJyX3dpZHRoJ10gPSAnVyc7CiRsYW5nWydhYmJyX2hlaWdodCddID0gJ0gnOwokbGFuZ1snYWRkJ10gPSAnTCZhdW1sO2dnIHRpbGwnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdMJmF1bWw7Z2cgdGlsbCBlbiBrYXRlZ29yaSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0wmYXVtbDtnZyB0aWxsIGV0dCBmJmF1bWw7bHQnOwokbGFuZ1snYWRqdXN0YWJsZSddID0gJ0p1c3RlcmJhcic7CiRsYW5nWydhZGRwcm9kdWN0J10gPSAnTCZhdW1sO2dnIHRpbGwgZW4gcHJvZHVrdCc7CiRsYW5nWydhZGRfYXR0cmliX3NldCddID0gJ0wmYXVtbDtnZyB0aWxsIGF0dHJpYnV0JzsKJGxhbmdbJ2FkZF9jYXRlZ29yeV9maWVsZCddID0gJ0Fzc29jaWVyYW5kZSBmJmF1bWw7bHQgbWVkIGthdGVnb3JpOiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydhZGRfaGllcmFyY2h5X2l0ZW0nXSA9ICdMJmF1bWw7Z2cgdGlsbCBoaWVyYXJraSBvYmpla3QnOwokbGFuZ1snYWRkX29wdGlvbiddID0gJ0wmYXVtbDtnZyB0aWxsIGV0dCBhdHRyaWJ1dCBhbHRlcm5hdGl2JzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdEZXR0YSBhdHRyaWJ1dCBrYW4gZW5kYXN0IHNlcyBhdiBhZG1pbj8nOwokbGFuZ1snYWxpZ25fdWwnXSA9ICdUb3BwZW4gdGlsbCB2JmF1bWw7bnN0ZXInOwokbGFuZ1snYWxpZ25fdWMnXSA9ICdUb3BwZW4gY2VudHJlcmF0JzsKJGxhbmdbJ2FsaWduX3VyJ10gPSAnVG9wcGVuIGgmb3VtbDtnZXInOwokbGFuZ1snYWxpZ25fbWwnXSA9ICdNaXR0ZW4gdGlsbCB2JmF1bWw7bnN0ZXInOwokbGFuZ1snYWxpZ25fbWMnXSA9ICdDZW50cmVyYXQnOwokbGFuZ1snYWxpZ25fbXInXSA9ICdNaXR0ZW4gdGlsbCBoJm91bWw7Z2VyJzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnTmVkZXJzdCB0aWxsIHYmYXVtbDtuc3Rlcic7CiRsYW5nWydhbGlnbl9sYyddID0gJ05lZGVyc3QgQ2VudHJlcmF0JzsKJGxhbmdbJ2FsaWduX2xyJ10gPSAnTmVkZXJzdCB0aWxsIGgmb3VtbDtnZXInOwokbGFuZ1snYWxsJ10gPSAnQWxsYSc7CiRsYW5nWydhbGxjYXRlZ29yaWVzJ10gPSAnQWxsYSBrYXRlZ29yaWVyJzsKJGxhbmdbJ2FueSddID0gJ1ZpbGtlbic7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnJkF1bWw7ciBkdSBzJmF1bWw7a2VyPyc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZXByb2R1Y3QnXSA9ICcmQXVtbDtyIGR1IHMmYXVtbDtrZXIgcCZhcmluZzsgYXR0IGR1IHZlcmtsaWdlbiB2aWxsIHRhIGJvcnQgZGVuIGgmYXVtbDtyIHByb2R1a3Rlbiwgb2NoIGFsbGEgZGUga29tcGxldHRlcmFuZGUgaW5mb3JtYXRpb24gZiZvdW1sO3IgZGVuPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdTdGlnYW5kZSc7CiRsYW5nWydhdHRyaWJ1dGVfbmFtZSddID0gJ0F0dHJpYnV0IG5hbW4nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlza3QnOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZXMnXSA9ICdIaWVyYXJraW1hbGxhcic7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMJmF1bWw7Z2cgdGlsbC9SZWRpZ2VyYSBIaWVyYXJraW1hbGwnOwokbGFuZ1snY2FuY2VsJ10gPSAnQXZicnl0JzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdLYXRlZ29yaWVyJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnS2F0ZWdvcmknOwokbGFuZ1snY2F0ZWdvcnlleGlzdHMnXSA9ICdFbiBrYXRlZ29yaSBtZWQgZGV0IG5hbW5ldCBmaW5ucyByZWRhbic7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdLYXRlZ29yaW1hbGxhcic7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTCZhdW1sO2dnIHRpbGwvcmVkaWdlcmEga2F0ZWdvcmltYWxsJzsKJGxhbmdbJ2NlbnRpbWV0ZXJzJ10gPSAnQ2VudGltZXRlcic7CiRsYW5nWydjaGVja2JveCddID0gJ0tyeXNzcnV0YSc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9oaWVyYXJjaHlfbm9kZSddID0gJyZBdW1sO3IgZHUgcyZhdW1sO2tlciBwJmFyaW5nOyBhdHQgZHUgdmlsbCB0YSBib3J0IGRlbm5hIG5vZD8gQWxsYSBwcm9kdWt0ZXIgc29tIGFudiZhdW1sO25kZXIgZGVubmEgbm9kIGtvbW1lciBpbnRlIGF0dCB0aWxsaCZvdW1sO3JhIG4mYXJpbmc7Z29uIGhpZXJhcmtpJzsKJGxhbmdbJ2NvbmZpcm1faW1wb3J0J10gPSAnJkF1bWw7ciBkdSBzJmF1bWw7a2VyIHAmYXJpbmc7IGF0dCBkdSB2ZXJrbGlnZW4gdmlsbCBnJm91bWw7cmEgZGV0dGE/IFwgbiBcIG5JbXByb3BlciBpbnN0JmF1bWw7bGxuaW5nYXIsIGVsbGVyIGVuIG9naWx0aWd0IGtvbmZpZ3VyYXRpb25zZmlsIGt1bmRlIGhlbHQgZiZvdW1sO3JkJmF1bWw7cnZhdCBmdW5nZXJhbmRlIHN5c3RlbS4nOwokbGFuZ1snY29weSddID0gJ0tvcGllcmEnOwokbGFuZ1snY29weV9jYXRlZ29yeSddID0gJ0tvcGllcmEgS2F0ZWdvcmknOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdTa2FwYWQgZGF0dW0nOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ051dmFyYW5kZSB2JmF1bWw7cmRlJzsKJGxhbmdbJ2RhdGEnXSA9ICdEYXRhICc7CiRsYW5nWydkZWZhdWx0J10gPSAnU3RhbmRhcmQnOwokbGFuZ1snZGVmYXVsdHRlbXBsYXRlcyddID0gJ1N0YW5kYXJkbWFsbGFyJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5Ob3Rpczo8L3N0cm9uZz4gSW5uZWgmYXJpbmc7bGxldCBpIGRlc3NhIHRleHQgb21yJmFyaW5nO2RlbiBhbnYmYXVtbDtuZHMgZiZvdW1sO3IgYXR0IGJlc3QmYXVtbDttbWEgc3RhbmRhcmRpbm5laCZhcmluZztsbCBhdiBkaW5hIG1hbGxhciBuJmF1bWw7ciBkdSBrbGlja2FyIHAmYXJpbmc7ICZxdW90O0wmYXVtbDtnZyB0aWxsIG1hbGwmcXVvdDsgaSBsJmF1bWw7bXBsaWcgbWFsbCBmbGlrLiBSZWRpZ2VyaW5nIGF2IGVuIHRleHQgaSBkZXNzYSBvbXImYXJpbmc7ZGVuIGtvbW1lciBhdHQgaGEgb21lZGVsYmFyIGVmZmVrdCBwJmFyaW5nOyBkaW4gd2ViYnBsYXRzLic7CiRsYW5nWydkZWxldGUnXSA9ICdSYWRlcmEnOwokbGFuZ1snZGVsZXRlX2F0dHJpYnNldCddID0gJ1JhZGVyYSBhdHRyaWJ1dCc7CiRsYW5nWydkZWxldGVfaGllcmFyY2h5X2l0ZW0nXSA9ICdSYWRlcmEgaGllcmFya2kgb2JqZWt0ZXQnOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ0ZhbGxhbmRlJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnQmVza3Jpdm5pbmcnOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFsamVyJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ0RldGFsam1hbGwnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ0wmYXVtbDtnZyB0aWxsL3JlZGlnZXJhIGVuIGRldGFsam1hbGwnOwokbGFuZ1snZGltZW5zaW9ucyddID0gJ0RpbWVuc2lvbmVyJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnSW5ha3RpdmVyYWQnOwokbGFuZ1snZHJhZnQnXSA9ICdVdGthc3QnOwokbGFuZ1snZHJvcGRvd24nXSA9ICdOZWRydWxsbmluZ3NiYXInOwokbGFuZ1snZHJvcGRvd25fb3B0aW9ucyddID0gJ0Ryb3Bkb3duIFZhbCA8ZW0+KGcmYXVtbDtsbGVyIGVuZGFzdCBmJm91bWw7ciBkcm9wZG93biBvbXImYXJpbmc7ZGVuKTwvZW0+PGJyLz48YnIvPjxlbT4oZW4gcG9zdCBwZXIgcmFkKTwvZW0+JzsKJGxhbmdbJ2VkaXQnXSA9ICdSZWRpZ2VyYSc7CiRsYW5nWydlZGl0X2F0dHJpYnNldCddID0gJ1JlZGlnZXJhIGF0dHJpYnV0JzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0cyddID0gJ1JlZGlnZXJhIGF0dHJpYnV0dXBwcyZhdW1sO3R0bmluZ2FyJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0c19mb3InXSA9ICdSZWRpZ2VyYSBhdHRyaWJ1dHVwcHMmYXVtbDt0dG5pbmdhciBmJm91bWw7cic7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdSZWRpZ2VyYSBhdHRyaWJ1dGVyJzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnknXSA9ICdSZWRpZ2VyYSBrYXRlZ29yaSc7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ1JlZGlnZXJhIGthdGVnb3JpIGYmYXVtbDtsdGV0JzsKJGxhbmdbJ2VkaXRfaGllcmFyY2h5X2l0ZW0nXSA9ICdSZWRpZ2VyYSBoaWVyYWtpIG9iamVrdGV0JzsKJGxhbmdbJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnXSA9ICdFbiBhdHRyaWJ1dCBtZWQgZGV0IG5hbW5ldCBmaW5ucyByZWRhbic7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfc2t1J10gPSAnRGV0dGEgU0tVIHYmYXVtbDtyZGV0IGZpbm5zIHJlZGFuJzsKJGxhbmdbJ2Vycm9yX2ZpZWxkdmFsdWVfZW1wdHknXSA9ICdGJmF1bWw7bHRldHMgdiZhdW1sO3JkZSBrYW4gaW50ZSB2YXJhIHRvbXQnOwokbGFuZ1snZXJyb3JfZmlsZWZvcm1hdCddID0gJ0ZpbGZvcm1hdHNwcm9ibGVtJzsKJGxhbmdbJ2Vycm9yX2ZpbGVub3Rmb3VuZCddID0gJ0ZpbGVuIGhpdHRhZGVzIGludGUnOwokbGFuZ1snZXJyb3JfZmlsZW9wZW4nXSA9ICdQcm9ibGVtIGF0dCAmb3VtbDtwcG5hIGZpbCUgcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnSW52YWxpZCBQYXJlbnQgKGEgaGllcmFyY2h5IG5vZGUgY2Fubm90IGJlIGl0JiMwMzk7cyBvd24gcGFyZW50KSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX25hbWUnXSA9ICdGJmF1bWw7bHRldHMgdiZhdW1sO3JkZSAmYXVtbDtyIG9naWx0aWcgKGlubmVoJmFyaW5nO2xsZXIgaWNrZSBhbGZhbnVtZXJpc2thIHRlY2tlbiknOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnRW4gbiZvdW1sO2R2JmF1bWw7bmRpZyBwYXJhbWV0ZXIgc2FrbmFzIGVsbGVyICZhdW1sO3Igb2dpbHRpZyc7CiRsYW5nWydlcnJvcl9uYW1ldXNlZCddID0gJ0V0dCBvYmpla3QgbWVkIGRldCBuYW1uZXQgYW52JmF1bWw7bmRzIHJlZGFuJzsKJGxhbmdbJ2Vycm9yX25vZmllbGR0eXBlJ10gPSAnViZhdW1sO2xqIGYmYXVtbDtsdCB0eXAnOwokbGFuZ1snZXJyb3Jfbm9uYW1lJ10gPSAnRHUgbSZhcmluZztzdGUgdXBwZ2UgZXR0IG5hbW4nOwokbGFuZ1snZXJyb3Jfb25lc3Vic2NyaXB0aW9uZmllbGQnXSA9ICdPbmx5IG9uZSBzdWJzY3JpcHRpb24gZmllbGQgaXMgYWxsb3dlZCc7CiRsYW5nWydlcnJvcl9wZXJtaXNzaW9uZGVuaWVkJ10gPSAnTmVrYXQgdGlsbHN0JmFyaW5nO25kJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfYWxpYXN1c2VkJ10gPSAnRGV0IHNwZWNpZmljZXJhZGUgYWxpYXMgYW52JmF1bWw7bmRzIHJlZGFuJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdFbiBwcm9kdWt0IG1lZCBkZXQgbmFtbmV0IGZpbm5zIHJlZGFuJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3Rfbm90Zm91bmQnXSA9ICdEZW4gYmVnJmF1bWw7cmRhIHByb2R1a3RlbiBrdW5kZSBpbnRlIGhpdHRhcyc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X3NrdXVzZWQnXSA9ICdTS1UtdiZhdW1sO3JkZXQgYW52JmF1bWw7bmRzIHJlZGFuIGF2IGVuIGFubmFuIHByb2R1a3QnOwokbGFuZ1snZXJyb3JfcHJpY2VfYWRqdXN0bWVudCddID0gJ09naWx0aWcgcHJpc2p1c3RlcmluZ3MgdiZhdW1sO3JkZSBmJm91bWw7ciBvYmpla3RldCAlcyc7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnVXBwbGFkZG5pbmdzIGZlbDogJXMnOwokbGFuZ1snZXhwaXJlX3NpeF9tb250aHMnXSA9ICdFZnRlciA2IG0mYXJpbmc7bmFkZXInOwokbGFuZ1snZXhwaXJlX29uZV95ZWFyJ10gPSAnRWZ0ZXIgMSAmYXJpbmc7cic7CiRsYW5nWydleHBpcmVfdHdvX3llYXInXSA9ICdFZnRlciAyICZhcmluZztyJzsKJGxhbmdbJ2V4dHJhMSddID0gJ0V4dHJhIGYmYXVtbDtsdCAxJzsKJGxhbmdbJ2V4dHJhMiddID0gJ0V4dHJhIGYmYXVtbDtsdCAyJzsKJGxhbmdbJ2ZpZWxkJ10gPSAnRiZhdW1sO2x0JzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRiZhdW1sO2x0ZGVmaW5pdGlvbic7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdGJmF1bWw7bHRkZWZpbml0aW9uZXInOwokbGFuZ1snZmlsZSddID0gJ0ZpbCc7CiRsYW5nWydmaWx0ZXJzJ10gPSAnRmlsdGVyJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8JzsKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdTdGFuZGFyZCBpbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1snZ28nXSA9ICdWaWRhcmUnOwokbGFuZ1snaGllcmFyY2h5J10gPSAnSGllcmFya2knOwokbGFuZ1snaGllcmFyY2h5X3Bvc2l0aW9uJ10gPSAnSGllcmFya2kgcG9zaXRpb24nOwokbGFuZ1snaWQnXSA9ICdJRCc7CiRsYW5nWydpbWFnZXRleHQnXSA9ICdCaWxkJzsKJGxhbmdbJ2ltYWdlX2hhbmRsaW5nX3NldHRpbmdzJ10gPSAnQmlsZGhhbnRlcmluZ3MgaW5zdCZhdW1sO2xsbmluZ2FyJzsKJGxhbmdbJ2ltcG9ydF9mcm9tX2NzdiddID0gJ0ltcG9ydGVyYSBwcm9kdWt0ZXIgZnImYXJpbmc7biBDU1YtZmlsJzsKJGxhbmdbJ2luY2hlcyddID0gJ1R1bSc7CiRsYW5nWydpbmNsdWRlX2NoaWxkcmVuJ10gPSAnSW5rbHVkZXJhIGNoaWxkcmVuPyc7CiRsYW5nWydpbmZvX2FsbnVtb25seSddID0gJ0VuZGFzdCBhbGZhbnVtZXJpc2thIHRlY2tlbi4gSW5nYSBibGFua3N0ZWcsIGNpdGF0dGVja2VuIGVsbGVyIGlja2Ugc2tyaXZlbHNlIC8gbnVtbWVyIGtvbWJpbmF0aW9uZXInOwokbGFuZ1snaW5mb19hdHRyaWJ0ZW1wbGF0ZSddID0gJ00mb3VtbDtqbGlnYSB2YXJpYWJsZXIgJmF1bWw7cjogeyRhdHRyaWJfdGV4dH0seyRhdHRyaWJfYWRqdXN0fSx7JGN1cnJlbmN5X3N5bWJvbH0nOwokbGFuZ1snaW5mb19hdXRvd2F0ZXJtYXJrJ10gPSAnVmF0dGVuc3QmYXVtbDttcGVscyBpbnN0JmF1bWw7bGxuaW5nYXJuYSAmYXVtbDtyIGgmYXVtbDttdGFkZSBmciZhcmluZztuIENHRXh0ZW5zaW9ucyBNb2R1bGUnOwokbGFuZ1snaW5mb19iYXRjaHNpemUnXSA9ICdTZXQgdGhlIG51bWJlciBvZiBsaW5lcyB0byBwcm9jZXNzIHBlciAmcXVvdDtiYXRjaCZxdW90Oy4gIEFmdGVyIGEgYmF0Y2ggaXMgY29tcGxldGUsIHRoZSBpbXBvcnRlciB3aWxsIHJlZGlyZWN0LCBhbmQgcmVzdW1lIG9wZXJhdGlvbnMuICBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBtZW1vcnkgZXJyb3JzLCBvciB0aW1lb3V0IHByb2JsZW1zIGR1ZSB0byBsYXJnZSBhbW91bnRzIG9mIHByb2Nlc3NpbmcsIHlvdSBtYXkgbmVlZCB0byBjb25zdWx0IHlvdXIgaG9zdCBwcm92aWRlciwgb3IgcmVkdWNlIHRoaXMgbnVtYmVyJzsKJGxhbmdbJ2luZm9fY2FydF9tb2R1bGVfcGFyYW1zJ10gPSAnRGVzc2EgcGFyYW1ldHJhciBmaW5ucyB0aWxsIGRlbiB2YWxkYSBrdW5kdmFnbnNtb2R1bGVuIGZyJmFyaW5nO24gcHJvZHVrdGRldGFsaiBvY2ggc2FtbWFuZmF0dG5pbmcnOwokbGFuZ1snaW5mb19jcmVhdGVmaWVsZHMnXSA9ICdTa2FwYSBhdXRvbWF0aXNrdCBldHQgb2smYXVtbDtudCBwcm9kdWt0ZiZhdW1sO2x0PyA8ZW0+IChEZSBrb21tZXIgYXR0IHNrYXBhcyBzb20gdGV4dGYmYXVtbDtsdCkgPC8gZW0+JzsKJGxhbmdbJ2luZm9fY3JlYXRlY2F0ZWdvcmllcyddID0gJ0F1dG9tYXRpc2t0IHNrYXBhIHByb2R1a3RrYXRlZ29yaWVyIGYmb3VtbDtyIGF0dCBtYXRjaGEgZGVtIGkgQ1NWLWZpbGVuLCBvbSBkZXQgaW50ZSByZWRhbiBmaW5ucyc7CiRsYW5nWydpbmZvX2NyZWF0ZWhpZXJhcmNoeSddID0gJ0F1dG9tYXRpc2t0IHNrYXBhIHByb2R1a3QgaGllcmFya2llciBmJm91bWw7ciBhdHQgbWF0Y2hhIGRlbSBpIENTVi1maWxlbiBvbSBkZXQgaW50ZSByZWRhbiBmaW5ucyc7CiRsYW5nWydpbmZvX2RlY2ltYWxfdW5pdHMnXSA9ICdEZXR0YSBzeXN0ZW0gZiZvdW1sO3JzdCZhcmluZztyICguKSBzb20gZGVjaW1hbHRlY2tlbnNlcGFyYXRvci4gZHZzOiA8c3Ryb25nPjUsMjU8L3N0cm9uZz4nOwokbGFuZ1snaW5mb19kZWxpbWl0ZXInXSA9ICdBbmdlIHZpbGtldCB0ZWNrZW4gKGVsbGVyIHRlY2tlbikgc29tIHNlcGFyZXJhIHZhcmplIGYmYXVtbDtsdCc7CiRsYW5nWydpbmZvX2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnQW5nZSBodXIgc3lzdGVtZXQgc2thIGhhbnRlcmEgZW4gcHJvZHVrdCB2aWxrZXRzIG5hbW4gcmVkYW4gZmlubnMgaSBDU1YtZmlsZW4nOwokbGFuZ1snaW5mb19maWVsZGRlZnNfdGFiJ10gPSAnPHN0cm9uZz5Ob3RpczogPC9zdHJvbmc+IEFsbGEgZiZhdW1sO2x0IHNvbSBkZWZpbmllcmFzIGgmYXVtbDtyICZhdW1sO3IgdGlsbGcmYXVtbDtuZ2xpZ2EgZiZvdW1sO3IgYWxsYSBwcm9kdWt0ZXIuJzsKJGxhbmdbJ2luZm9fZmllbGRwcm9ibGVtcyddID0gJ1Byb2JsZW0gdXBwc3RvZCBuJmF1bWw7ciBtYW4gaGFyIGF0dCBnJm91bWw7cmEgbWVkIGVuIGVsbGVyIGZsZXJhIGVnbmEgZiZhdW1sO2x0LiAmQXJpbmc7dGcmYXVtbDtyZGVuICZhdW1sO3Iga2xhciwgbWVuIGR1IGImb3VtbDtyIHVuZGVycyZvdW1sO2thIG9jaCByJmF1bWw7dHRhIHRpbGwgZGVzc2EgcHJvYmxlbSc7CiRsYW5nWydpbmZvX2hhbmRsZWltYWdlcyddID0gJ1Vwb24gaW1wb3J0LCBpZiBhbiBpbWFnZSBmaWxlbmFtZSBpcyBmb3VuZCBpbiBhIGZpZWxkIGNvbHVtbiwgc2hvdWxkIGl0IGJlIG1vdmVkIGZyb20gdGhlIHNvdXJjZSBsb2NhdGlvbiwgd2F0ZXJtYXJrZWQsIHRodW1ibmFpbGVkLCBhbmQgdGhlIGZpZWxkIHR5cGUgY2hhbmdlZCB0byAmcXVvdDtpbWFnZSZxdW90Oyc7CiRsYW5nWydpbmZvX2ltYWdlcGF0aCddID0gJ1YmYXVtbDtnZW4gKGkgZiZvdW1sO3JoJmFyaW5nO2xsYW5kZSB0aWxsIGlubGFnZGEga2F0YWxvZ2VuKSB2YXIgYmlsZGVybmEgc29tIGF2c2VzIGkgaW1wb3J0ZmlsZW4sIGZpbm5zJzsKJGxhbmdbJ2luZm9faW1wb3J0X3Rlc3RfcGFzc2VkJ10gPSAnQSBicmllZiB0ZXN0IGFzIGJlZW4gcGVyZm9ybWVkIG9uIHRoZSBpbnB1dCBmaWxlIHNwZWNpZmllZCwgYW5kIGV2ZXJ5dGhpbmcgYXBwZWFycyB0byBiZSBjb3JyZWN0Ljxici8+VGhpcyBpcyBubyBpbmRpY2F0aW9uIHRoYXQgdGhlcmUgYXJlIG5vIGVycm9ycyBpbiB0aGUgZmlsZS4nOwokbGFuZ1snaW5mb19wcmljZV9hZGp1c3RtZW50J10gPSAnR2lsdGlnYSB2JmF1bWw7cmRlbiAmYXVtbDtyICstKiMuIyMnOwokbGFuZ1snaW5mb19wcm9kbm90Zm91bmQnXSA9ICdUaGlzIG9wdGlvbiBkZXRlcm1pbmVzIHRoZSBiZWhhdmlvdXIgb2YgdGhlIHdlYnNpdGUgaWYgYSBwcm9kdWN0IGRldGFpbCB2aWV3IGlzIGFjY2Vzc2VkIGRpcmVjdGx5IGJ5IFVSTCwgYW5kIHRoYXQgcHJvZHVjdCBmb3Igd2hhdGV2ZXIgcmVhc29uIChkaXNhYmxlZCwgZGVsZXRlZCwgZXRjKSBjYW5ub3QgYmUgYWNjZXNzZWQuJzsKJGxhbmdbJ2luZm9fcHVibGljZmllbGQnXSA9ICdPZmZlbnRsaWdhIGYmYXVtbDtsdCBzb20gJmF1bWw7ciB0aWxsZyZhdW1sO25nbGlnYSBmJm91bWw7ciBhbGxtJmF1bWw7bmhldGVuIGF0dCBzZSc7CiRsYW5nWydsYWJlbCddID0gJ0V0aWtldHQnOwokbGFuZ1snbGFiZWxfc2tpcCddID0gJ0hvcHBhICZvdW1sO3Zlcic7CiRsYW5nWydsYWJlbF9vdmVyd3JpdGUnXSA9ICdTa3JpdiAmb3VtbDt2ZXInOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnU2VuYXN0IHVwcGRhdGVyYWQnOwokbGFuZ1snbG9nb3RleHQnXSA9ICdBbmRyYSBiaWxkJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ01heGltYWwgbCZhdW1sO25nZCA8ZW0+KHRpbGwmYXVtbDttcGFzIGVuZGFzdCBwJmFyaW5nOyB0ZXh0cnV0YW5zIG9tciZhcmluZztkZW4pPC9lbT4nOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnJkF1bWw7bmRyYXQgZGF0dW0nOwokbGFuZ1snbW9kdWxlX2Rlc2NyaXB0aW9uJ10gPSAnRW4gbW9kdWwgZiZvdW1sO3IgYXR0IGhhbnRlcmEgZXR0IHNvcnRpbWVudCBhdiBwcm9kdWt0ZXIsIGRlcmFzIHByaXMsIGJpbGRlciwgZXRjLCBvY2ggZyZvdW1sO3JhIGRldCBtJm91bWw7amxpZ3QgZiZvdW1sO3IgYW52JmF1bWw7bmRhcmUgYXR0IGJ5Z2dhIGVuIGt1bmR2YWduJzsKJGxhbmdbJ21vdmVfZG93biddID0gJ0ZseXR0YSBuZXInOwokbGFuZ1snbW92ZV91cCddID0gJ0ZseXR0YSB1cHAnOwokbGFuZ1snbmFtZSddID0gJ1Byb2R1a3RuYW1uJzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnRHUgaGFyIGludGUgciZhdW1sO3R0aWdoZXRlciBmJm91bWw7cjogJXMnOwokbGFuZ1snbmV3X2NhdGVnb3J5X25hbWUnXSA9ICdOeXR0IGthdGVnb3JpbmFtbic7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbm8nXSA9ICdOZWonOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICdJbmdldCBwcm9kdWt0bmFtbiBoYXIgdXBwZ2V0dHMnOwokbGFuZ1snbm9uZSddID0gJ0luZ2VuJzsKJGxhbmdbJ29mJ10gPSAnQXYnOwokbGFuZ1sncGFnZSddID0gJ1NpZGEnOwokbGFuZ1sncGFnZV9vZiddID0gJ1NpZGEgJXMgb2YgJXMnOwokbGFuZ1sncGFnZV9saW1pdCddID0gJ01heCBhbnRhbCBzaWRvcic7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcGVjaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5oaWVyYXJjaHkgLS0gRGlzcGxheSBhIHByb2R1Y3QgbGlzdCBieSBoaWVyYXJjaHk8L2xpPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdCBjYXRlZ29yaWVzPC9saT4NCiAgPGxpPjxlbT5kZWZhdWx0PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyeSBvZiBwcm9kdWN0czwvbGk+DQogIDxsaT5kZXRhaWxzIC0gRGlzcGxheSBhIGRldGFpbCB2aWV3IG9mIGEgc2luZ2xlIHByb2R1Y3Q8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdXaGVuIHVzZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciwgd2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBuYW1lIG9mIGFuIGV4aXN0aW5nIGNhdGVnb3J5IHdpbGwgYmUgdXNlZCB0byBkaXNwbGF5IG9ubHkgdGhvc2UgcHJvZHVjdHMgdGhhdCBhcmUgaW4gdGhhdCBjYXRlZ29vcnkuIChhIGNvbW1hIHNlcGVyYXRlZCBsaXN0IGNhbiBiZSBzdXBwbGllZCknOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICdBbnYmYXVtbDtuZGJhciBlbmRhc3QgbWVkIGthdGVnb3JpbGlzdGFucyAmYXJpbmc7dGcmYXVtbDtyZGVyLCBkZW4gaCZhdW1sO3IgcGFyYW1ldGVybiBhbmdlciBkZW4gbWFsbCBzb20gc2thIGFudiZhdW1sO25kYXMgZiZvdW1sO3IgaHVyIGxpc3RhbiBza2EgdmlzYXMuIE9tIGluZ2V0IHYmYXVtbDtyZGUgYW5nZXMga29tbWVyIGRlbiBudXZhcmFuZGUgc3RhbmRhcmRtYWxsIGF2IGRlbm5hIHR5cCBhbnYmYXVtbDtuZGFzLic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3RkdGx0ZW1wbGF0ZSddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkaXNwbGF5IG9mIHRoZSBjYXRlZ29yeSBkZXRhaWxzLiAgVGhpcyB1c2VzIGEgY2F0ZWdvcnkgbGlzdCB0ZW1wbGF0ZS4uICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnRGV0dGEgYW5nZXIgcGFnZWlkIGVsbGVyIGFsaWFzIHNvbSBiJm91bWw7ciBhbnYmYXVtbDtuZGFzIGYmb3VtbDtyIGF0dCB2aXNhIGVuIGRldGFsaiByYXBwb3J0Lic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ0RlbiBoJmF1bWw7ciBwYXJhbWV0ZXJuIGFuZ2VyIGRlbiBtYWxsIHNvbSBza2EgYW52JmF1bWw7bmRhcyBmJm91bWw7ciBodXIgZGV0YWxqLWwmYXVtbDtnZSB2aXNhcy4gT20gaW5nZXQgdiZhdW1sO3JkZSBhbmdlcywgZCZhcmluZzsga29tbWVyIGRlbiBudXZhcmFuZGUgc3RhbmRhcmRtYWxsIGF2IGRlbm5hIHR5cCBhdHQgYW52JmF1bWw7bmRhcy4nOwokbGFuZ1sncGFyYW1fZmllbGQnXSA9ICdVc2VkIG9ubHkgaW4gdGhlIDxlbT5maWVsZGxpc3Q8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIHRvIHNwZWNpZnkgdGhlIG5hbWUgb2YgYSB1c2VyIGRlZmluZWQgcHJvcGVydHkgdG8gY3JlYXRlIGEgbGlzdCBmcm9tLic7CiRsYW5nWydwYXJhbV9maWVsZHZhbCddID0gJ1VzZWQgb25seSBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgZmllbGQgdmFsdWUgdG8gbGltaXQgcmVzdWx0cyBieS4gIFNwZWNpYWwgdmFsdWVzIGZvciB0aGlzIGZpZWxkIGFyZSAmcXVvdDs6Om51bGw6OiZxdW90OyAmcXVvdDs6Om5vdG51bGw6OiZxdW90Oyc7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHknXSA9ICdVc2VmdWwgb25seSBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGF0IG9ubHkgaXRlbXMgaW4gdGhhdCBsb2NhdGlvbiBvZiB0aGUgaGllcmFyY2h5IHNob3VsZCBiZSBkaXNwbGF5ZWQuICBXaWxkY2FyZCBjaGFyYWN0ZXIgY2FuIGJlIHVzZWQgc28gdGhhdCB5b3UgY2FuIHNwZWNpZnkgcGFyZW50L2NoaWxkIHJlbGF0aW9uc2hpcHMgYXMgd2VsbC4gIGkuZSB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5O3RydWNrcyomIzAzOTt9IHdpbGwgY3JlYXRlIGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgaW5jbHVkaW5nIHRoZSBjaGlsZHJlbiBpbiB0aGUgaGllcmFyY2h5LiAgU2ltaWxhcmx5LCB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5Oyp0cnVja3MmIzAzOTt9IHdpbGwgZGlzcGxheSBhIHN1bW1hcnkgcmVwb3J0IG9mIGFsbCB0cnVja3MsIGFuZCBhbGwgcHJvZHVjdHMgYmVsb2dpbmcgdG8gYW55IHBhcmVudCBpbiB0aGUgaGllcmFyY2h5Lic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZSddID0gJ0RlbiBoJmF1bWw7ciBwYXJhbWV0ZXJuIGFuZ2VyIGRlbiBtYWxsIHNvbSBza2EgYW52JmF1bWw7bmRhcyBmJm91bWw7ciBoaWVyYXJraW4gZGlzcGxheWVuLiBPbSBpbmdldCB2JmF1bWw7cmRlIGFuZ2VzLCBkJmFyaW5nOyBrb21tZXIgZGVuIG51dmFyYW5kZSBzdGFuZGFyZG1hbGwgYXYgZGVubmEgdHlwIGF0dCBhbnYmYXVtbDtuZGFzLic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhhdCB0aGUgb3V0cHV0IG9mIHRoZSBzdW1tYXJ5IHZpZXcgc2hvdWxkIGJlIGRpc3BsYXllZCBpbmxpbmUnOwokbGFuZ1sncGFyYW1fcGFnZWxpbWl0J10gPSAnQW52JmF1bWw7bmRiYXIgZW5kYXN0IG1lZCA8ZW0+IHN0YW5kYXJkIDwvIGVtPiAmYXJpbmc7dGcmYXVtbDtyZGVyLCBkZW5uYSBwYXJhbWV0ZXIgYW5nZXIgaHVyIG0mYXJpbmc7bmdhIG9iamVrdCBza2EgYW5nZXMgcCZhcmluZzsgdmFyamUgc2lkYS4nOwokbGFuZ1sncGFyYW1fcGFyZW50J10gPSAnQW52JmF1bWw7bmRiYXIgZW5kYXN0IGkgPGVtPiBoaWVyYXJraSA8LyBlbT4gJmFyaW5nO3RnJmF1bWw7cmRlciwgZGVubmEgcGFyYW1ldGVyIGFuZ2VyIGhpZXJhcmtpbiBpZCBiJm91bWw7cmphbnMgcGxhdHMgaSByYXBwb3J0ZW4uJzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RpZCddID0gJ0FudiZhdW1sO25kYmFyIGVuZGFzdCBtZWQgZGV0YWxqICZhcmluZzt0ZyZhdW1sO3JkZXIsIGRlbiBoJmF1bWw7ciBwYXJhbWV0ZXJuIGFuZ2VyIHZpbGtlbiBwcm9kdWt0IHNvbSBza2EgYW52JmF1bWw7bmRhcyBmJm91bWw7ciB2aXNuaW5nLic7CiRsYW5nWydwYXJhbV9yZXN1bHRwYWdlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBzZWFyY2gsIGFuZCBjYXRlZ29yeSBsaXN0IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBhIHBhZ2UgaWQgb3IgYWxpYXMgdG8gdXNlIHRvIGRpc3BsYXkgdGhlIHN1bW1hcnkgcmVzdWx0cyc7CiRsYW5nWydwYXJhbV9zZWFyY2hmaWVsZCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgbWF5IGNvbnRhaW4gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBmaWVsZCBuYW1lcyB0byBpbmNsdWRlIGluIHRoZSBzZWFyY2gnOwokbGFuZ1sncGFyYW1fc2VhcmNoZm9ybXRlbXBsYXRlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbm9uIGRlZmF1bHQgc2VhcmNoIGZvcm0gdGVtcGxhdGUnOwokbGFuZ1sncGFyYW1fc2hvd2FsbCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbiwgaWYgdGhpcyBwYXJhbWV0ZXIgaXMgc2V0IHRvIGEgbm9uIDAgaW50ZWdlciB2YWx1ZSBhbGwgY2F0ZWdvcmllcyAoZXZlbiB0aG9zZSB3aXRob3V0IHByb2R1Y3RzKSB3aWxsIGJlIGRpc3BsYXllZC4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmeSB0aGUgb3JkZXIgb2Ygc29ydGVkIGZpZWxkcyBpbiBzdW1tYXJ5IHZpZXcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4NCiAgPGxpPmRlc2MgLS0gRGVzY2VuZGluZyBvcmRlcjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIG9ubHkgaW4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQgcHJvZHVjdHMuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5wcm9kdWN0X25hbWU8L3N0cm9uZz48L2xpPg0KICA8bGk+cHJpY2UgLS0gVGhlIHByb2R1Y3QgYmFzZSBwcmljZTwvbGk+DQogIDxsaT5zdGF0dXMgLS0gRHJhZnQgb3IgcHVibGlzaGVkPC9saT4NCiAgPGxpPnJhbmRvbSAtLSBEaXNwbGF5IGluIHJhbmRvbSBvcmRlciBvbiBlYWNoIHJlcXVlc3Q8L2xpPg0KICA8bGk+Y3JlYXRlZCAtLSBUaGUgY3JlYXRpb24gZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQogIDxsaT5tb2RpZmllZCAtLSBUaGUgbW9kaWZpZWQgZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0dHlwZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCBzdW1tYXJ5IHZpZXcsIHRoaXMgcGFyYW1ldGVyIGlzIHVzZWQgdG8gY29udmVydCB0aGUgdmFsdWVzIHRvIGFub3RoZXIgdHlwZSBmb3Igc29ydGluZy4gIHZhbGlkIHZhbHVlcyBhcmUgU1RSSU5HLFNJR05FRCBhbmQgVU5TSUdORUQuICBJZiBub3Qgc3VwcGxpZWQgdGhlIGRlZmF1bHQgU1RSSU5HIHR5cGUgaXMgYXNzdW1lZC4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXBhZ2UnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGFjdGlvbj1oaWVyYXJjaHksIGFsbG93cyBzcGVjaWZ5aW5nIGEgcGFnZSBpZCBvciBhbGlhcyB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgYW55IGxpbmtzIHRvIHN1bW1qYXJ5IHZpZXcnOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnRGVuIGgmYXVtbDtyIHBhcmFtZXRlcm4gYW5nZXIgZGVuIG1hbGwgc29tIHNrYSBhbnYmYXVtbDtuZGFzIGYmb3VtbDtyIHNhbW1hbmZhdHRuaW5ncyBsJmF1bWw7Z2UuIE9tIGluZ2V0IHYmYXVtbDtyZGUgYW5nZXMsIGQmYXJpbmc7IGtvbW1lciBkZW4gbnV2YXJhbmRlIHN0YW5kYXJkbWFsbCBhdiBkZW5uYSB0eXAgYXR0IGFudiZhdW1sO25kYXMuJzsKJGxhbmdbJ3BhcmVudCddID0gJ0Ymb3VtbDtyZWcmYXJpbmc7ZW5kZSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1Byb2R1Y3RzIG1vZHVsZW4gJmF1bWw7ciBudSBpbnN0YWxsZXJhZCc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnUHJvZHVjdHMgbW9kdWxlbiAmYXVtbDtyIG51IGJvcnR0YWdlbiBzYW10IGFsbCB0aWxsaCZvdW1sO3JhbmRlIGRhdGEnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdJbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnR2Vub20gYXR0IHRhIGJvcnQgZGVuIGgmYXVtbDtyIG1vZHVsZW4gcyZhcmluZzsga29tbWVyIG9ja3MmYXJpbmc7IGF0dCBhbGwgdGlsbGgmb3VtbDtyYW5kZSBkYXRhIHRhcyBib3J0LCAmYXVtbDtyIGR1IHMmYXVtbDtrZXIgcCZhcmluZzsgYXR0IGR1IHZpbGwgZm9ydHMmYXVtbDt0dGE/JzsKJGxhbmdbJ3ByaWNlJ10gPSAnUHJpcyc7CiRsYW5nWydwcmljZV9hZGp1c3RtZW50J10gPSAnUHJpc2p1c3RlcmluZyc7CiRsYW5nWydwcmV2cGFnZSddID0gJzwnOwokbGFuZ1sncHJvZHVjdCddID0gJ1Byb2R1a3QnOwokbGFuZ1sncHJvZHVjdG5hbWUnXSA9ICdQcm9kdWt0bmFtbic7CiRsYW5nWydwcm9kdWN0cyddID0gJ1Byb2R1a3Rlcic7CiRsYW5nWydwcm9kdWN0X2RldGFpbF9zZXR0aW5ncyddID0gJ1Byb2R1a3QgRGV0YWxqaW5zdCZhdW1sO2xsbmluZ2FyJzsKJGxhbmdbJ3Byb2R1Y3RfaGllcmFyY2h5J10gPSAnUHJvZHVrdCBIaWVyYXJraSc7CiRsYW5nWydwcm9kdWN0X21hbmFnZXInXSA9ICdQcm9kdWt0IE1hbmFnZXInOwokbGFuZ1sncHJvZ3Jlc3MnXSA9ICdGcmFtc3RlZyc7CiRsYW5nWydwcm9tcHQnXSA9ICdVcHBtYW5hJzsKJGxhbmdbJ3Byb21wdF9hZGRfYXR0cmlic2V0J10gPSAnTCZhdW1sO2dnIHRpbGwgLyByZWRpZ2VyYSBhdHRyaWJ1dHVwcHMmYXVtbDt0dG5pbmcnOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfZmlsZXR5cGVzJ10gPSAnVGlsbCZhcmluZzt0IGF0dCBsYWRkYSB1cHAgZmlsZXIgbWVkIGRlc3NhIGYmb3VtbDtybCZhdW1sO25nbmluZ2FyIChmJm91bWw7ciBmaWx0eXBlbiBmJmF1bWw7bHQpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ltYWdldHlwZXMnXSA9ICdUaWxsJmFyaW5nO3QgdXBwbGFkZG5pbmcgYXYgYmlsZGVyIG1lZCBkZXNzYSBmaWx0JmF1bWw7bmRlbHNlcihmJm91bWw7ciBiaWxkZiZhdW1sO2x0ZW4pJzsKJGxhbmdbJ3Byb21wdF9hdHRyaWJ0ZW1wbGF0ZSddID0gJ01hbGwgZiZvdW1sO3IgdmlzbmluZyBhdiBwcm9kdWt0YXR0cmlidXRlciBpIGVuIGRyb3Bkb3duJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsJ10gPSAnQXV0b21hdGlza3Qgc2thcGEgdHVtbmFnZWxiaWxkICh0aHVtYm5haWwpIGF2IGJpbGRlcic7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbF9zaXplJ10gPSAnTWF4aW1hbCBzdG9ybGVrIHAmYXJpbmc7IHR1bW5hZ2VsYmlsZCAodGh1bWJuYWlsKSc7CiRsYW5nWydwcm9tcHRfYXV0b3ByZXZpZXdpbWcnXSA9ICdBdXRvbWF0aXNrdCBza2FwYSBmJm91bWw7cmhhbmRzZ3JhbnNrbmluZ3NiaWxkZXIgYXYgYmlsZGVyJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZ19zaXplJ10gPSAnTWF4aW1hbCBzdG9ybGVrIHAmYXJpbmc7IGYmb3VtbDtyaGFuZHNncmFuc2tuaW5nc2JpbGQnOwokbGFuZ1sncHJvbXB0X2F1dG93YXRlcm1hcmsnXSA9ICdBdXRvbWF0aXNrdCBwbGFjZXJhIHZhdHRlbm0mYXVtbDtya2UgcCZhcmluZzsgYmlsZGVyJzsKJGxhbmdbJ3Byb21wdF9hcHBsaWNhYmxlJ10gPSAnQWt0aXZlcmEgYXV0b21hdGlza3QgZiZvdW1sO3IgYWxsYSBueWEgcHJvZHVrdGVyJzsKJGxhbmdbJ3Byb21wdF9iYXRjaHNpemUnXSA9ICdQYXJ0aXN0b3JsZWsnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlJ10gPSAnS3VuZHZhZ25zbW9kdWwnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ1BhcmFtZXRyYXIgZiZvdW1sO3IgS3VuZHZhZ25zbW9kdWwnOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWNhdGVnb3JpZXMnXSA9ICdTa2FwYSBrYXRlZ29yaWVyJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVmaWVsZHMnXSA9ICdTa2FwYSBwcm9kdWt0ZiZhdW1sO2x0Pyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlaGllcmFyY2h5J10gPSAnU2thcGEgcHJvZHVrdGhpcmFya2knOwokbGFuZ1sncHJvbXB0X2NzdmZpbGUnXSA9ICdMYWRkYSB1cHAgQ1NWLWZpbCc7CiRsYW5nWydwcm9tcHRfY3VycmVuY3ljb2RlJ10gPSAnVmFsdXRha29kJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeXN5bWJvbCddID0gJ1ZhbHV0YXN5bWJvbCc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF9zdGF0dXMnXSA9ICdTb20gc3RhbmRhcmQgaGFyIGFsbGEgbnlhIHByb2R1a3RlciBkZW5uYSBzdGF0dXMnOwokbGFuZ1sncHJvbXB0X2RlZmF1bHRfdGF4YWJsZSddID0gJ1NvbSBzdGFuZGFyZCAmYXVtbDtyIGFsbGEgbiB5YSBwcm9kdWt0ZXIgYmVza2F0dG5pbmdzYmFyYSc7CiRsYW5nWydwcm9tcHRfZGVsZXRlcHJvZHVjdGZpbGVzJ10gPSAnVGEgYm9ydCBhbGxhIGZpbGVyIGkgc2FtYmFuZCBtZWQgcHJvZHVrdGVuIG4mYXVtbDtyIHByb2R1a3RlbiBza2FsbCByYWRlcmFzPyc7CiRsYW5nWydwcm9tcHRfZGVsaW1pdGVyJ10gPSAnRiZhdW1sO2x0IGF2Z3ImYXVtbDtuc2FyZSc7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ1N0YW5kYXJkIGRldGFsanNpZGEnOwokbGFuZ1sncHJvbXB0X2RldGFpbHNmb3InXSA9ICdEZXRhbGplciBmJm91bWw7ciAlcyc7CiRsYW5nWydwcm9tcHRfZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdIdXIgbWFuIGhhbnRlcmFyIGR1cGxpa2F0IHByb2R1a3Rlcj8nOwokbGFuZ1sncHJvbXB0X2ZhbHNlJ10gPSAnRmFsc2snOwokbGFuZ1sncHJvbXB0X2hhbmRsZWltYWdlcyddID0gJ0hhbnRlcmEgYmlsZGVyPyc7CiRsYW5nWydwcm9tcHRfaW1hZ2VwYXRoJ10gPSAnQmlsZHMmb3VtbDtrdiZhdW1sO2cnOwokbGFuZ1sncHJvbXB0X2xlbmd0aHVuaXRzJ10gPSAnTCZhdW1sO25nZGVuaGV0ZXInOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX2JlaGF2aW9yJ10gPSAnVmFkIHNrYSBoJmF1bWw7bmRhIG4mYXVtbDtyIGVuIHByb2R1a3QgaW50ZSBrYW4gdmlzYXM/JzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF80MDQnXSA9ICdHZW5lcmVyYSBldHQgNDA0LWZlbCc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfMzAxJ10gPSAnR2VuZXJlcmEgZXR0IDMwMS1vbWRpcmlnZXJpbmcnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX2Vycm9ybXNnJ10gPSAnVmlzYSBldHQgZmVsbWVkZGVsYW5kZSc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfbXNnJ10gPSAnRmVsbWVkZGVsYW5kZSBmJm91bWw7ciBuJmF1bWw7ciBlbiBwcm9kdWt0IGludGUga2FuIGhpdHRhcyc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfcGFnZSddID0gJ1NpZGEgYXR0IGcmb3VtbDtyYSBwZXJtYW5lbnQgb21kaXJpZ2VyaW5nIHRpbGw/JzsKJGxhbmdbJ3Byb21wdF9wcm9kX2RldGFpbHBhZ2UnXSA9ICdTdGFuZGFyZHNpZGEgZiZvdW1sO3IgUHJvZHVrdCBkZXRhbGp2eWVyJzsKJGxhbmdbJ3Byb21wdF9wcm9kdWN0c19tYXRjaGluZyddID0gJ1Byb2R1a3RlciBtYXRjaGFyICVzJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnU3RhbmRhcmQgc29ydGVyaW5nc29yZG5pbmcgaSBzYW1tYW5kcmFncyBsJmF1bWw7Z2UnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnU3RhbmRhcmQgc29ydGVyaW5nc29yZG5pbmcgaSBmJmF1bWw7bHRlbnMgc2FtbWFuZHJhZ3MgbCZhdW1sO2dlJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ01hbGxlbnMgayZhdW1sO2xsYSc7CiRsYW5nWydwcm9tcHRfdHJ1ZSddID0gJ1Nhbm4nOwokbGFuZ1sncHJvbXB0X3VybHByZWZpeCddID0gJ1ByZWZpeCBhdHQgYW52JmF1bWw7bmRhIHAmYXJpbmc7IGFsbGEgd2ViYmFkcmVzc2VyIHNvbSAmYXVtbDtyIGlucmlrdGFkIHAmYXJpbmc7IGRlbm5hIG1vZHVsZW4nOwokbGFuZ1sncHJvbXB0X3VzZV9kZXRhaWxwYWdlX2Zvcl9zZWFyY2gnXSA9ICdBbnYmYXVtbDtuZCBkZW4gaCZhdW1sO3Igc2lkYW4gZiZvdW1sO3IgcyZvdW1sO2tyZXN1bHRhdCBmJm91bWw7ciA8ZW0+ICgmYXJpbmc7c2lkb3MmYXVtbDt0dGVyIHMmb3VtbDtrcmVzdWx0YXQgc2lkcGFyYW1ldGVybiBpIG1vZHVsZW4pIDwvIGVtPic7CiRsYW5nWydwcm9tcHRfdXNlaGllcnBhdGh1cmxzJ10gPSAnVXNlIEhpZXJhcmNoeSBQYXRoIGluIFByb2R1Y3QgRGV0YWlsIFVSTFMnOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnVmlrdCBlbmhldGVyJzsKJGxhbmdbJ3B1YmxpYyddID0gJyZBdW1sO3IgZGV0dGEgZXR0IG9mZmVudGxpZ3QgZiZhdW1sO2x0Pyc7CiRsYW5nWydwdWJsaXNoZWQnXSA9ICdQdWJsaWNlcmFkJzsKJGxhbmdbJ3JhbmRvbSddID0gJ1NsdW1wdmlzJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnJkFyaW5nO3RlcnN0JmF1bWw7bGwgdGlsbCBmYWJyaWtzaW5zdCZhdW1sO2xsbmluZ2FyJzsKJGxhbmdbJ3JldHVybiddID0gJyZBcmluZzt0ZXJ2JmF1bWw7bmQnOwokbGFuZ1sncmV0dXJuX3RvX3RvcCddID0gJyZBcmluZzt0ZXJ2JmF1bWw7bmQgdGlsbCB0b3BwZW4nOwokbGFuZ1sncm9vdCddID0gJ1JPT1QnOwokbGFuZ1snc2VhcmNoX2Rlc2NyaXB0aW9uJ10gPSAnU2VhcmNoIFByb3BlcnR5IERlc2NyaXB0aW9uJzsKJGxhbmdbJ3NlYXJjaF9leHByJ10gPSAnU2thIGZyJmFyaW5nO2dhbiBtYXRjaGEgYWxsYSBlbGxlciBuJmFyaW5nO2dvbiBhdiB0ZXN0ZW4gbmVkYW4/JzsKJGxhbmdbJ3NlYXJjaF9uYW1lJ10gPSAnU2VhcmNoIFByb3BlcnR5IE5hbWUnOwokbGFuZ1snc2VhcmNoX3ByaWNlJ10gPSAnUHJpc2ludGVydmFsbCc7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTCZhdW1sO2dnIHRpbGwgLyByZWRpZ2VyYSBTJm91bWw7ayBmb3JtdWwmYXVtbDtyc21hbGwnOwokbGFuZ1snc2VhcmNodGVtcGxhdGVzJ10gPSAnUyZvdW1sO2sgbWFsbCc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnViZhdW1sO2xqIGVuJzsKJGxhbmdbJ3NrdSddID0gJ1NLVSc7CiRsYW5nWydzb3J0X2J5J10gPSAnU29ydGVyYSc7CiRsYW5nWydzb3J0X29yZGVyJ10gPSAnU29ydGVyaW5nc29yZGVyJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyAnOwokbGFuZ1snc3VibWl0J10gPSAnU3BhcmEnOwokbGFuZ1snc3Vic2NyaXB0aW9uJ10gPSAnU3Vic2NyaXB0aW9uJzsKJGxhbmdbJ3N1YnNjcl9leHBpcnknXSA9ICdFeHBpcnknOwokbGFuZ1snc3Vic2NyX2V4cGlyeTInXSA9ICdFeHBpcmVzJzsKJGxhbmdbJ3N1YnNjcl9tb250aGx5J10gPSAnTW9udGhseSc7CiRsYW5nWydzdWJzY3JfZGVscGVyaW9kJ10gPSAnRGVsaXZlcnkgRnJlcXVlbmN5JzsKJGxhbmdbJ3N1YnNjcl9kZWxwZXJpb2QyJ10gPSAnTGV2ZXJlcmFkJzsKJGxhbmdbJ3N1YnNjcl9wYXlwZXJpb2QnXSA9ICdQYXltZW50IEZyZXF1ZW5jeSc7CiRsYW5nWydzdWJzY3JfcGF5cGVyaW9kMiddID0gJ0JldGFsZCc7CiRsYW5nWydzdWJzY3JfcXVhcnRlcmx5J10gPSAnUXVhcnRlcmx5JzsKJGxhbmdbJ3N1YnNjcl9zZW1pYW51YWxseSddID0gJ1NlbWkgQW51YWxseSc7CiRsYW5nWydzdWJzY3JfeWVhcmx5J10gPSAnJkFyaW5nO3JsaWcnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ1N1bW1lcmluZ3NtYWxsYXInOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMJmF1bWw7Z2cgdGlsbC9yZWRpZ2VyYSBlbiBzdW1tZXJpbmdzbWFsbCc7CiRsYW5nWyd0YXhhYmxlJ10gPSAnQmVza2F0dG5pbmdzYmFyYSc7CiRsYW5nWyd0ZXN0J10gPSAnVGVzdCAnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZXh0LUFyZWEnOwokbGFuZ1sndGV4dGJveCddID0gJ1RleHQtSW5wdXQnOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhcmRoaWVyYXJraW1hbGwnOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJka2F0ZWdvcmltYWxsJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZGRldGFsam1hbGwnOwokbGFuZ1sndGl0bGVfc2VhcmNoX2RmbHR0ZW1wbGF0ZSddID0gJ055IHN0YW5kYXJkIHMmb3VtbDtrbWFsbCc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkc2FtbWFuZmF0dG5pbmdzbWFsbCc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ1VwcGRhdGVyYSc7CiRsYW5nWyd1cGxvYWQnXSA9ICdWJmF1bWw7bGogZW4gZmlsIHNvbSBza2EgbGFkZGFzIHVwcCc7CiRsYW5nWyd1cmxfYWxpYXMnXSA9ICdVcmwgQWxpYXMnOwokbGFuZ1sndmFsaWQnXSA9ICdHaWx0aWcnOwokbGFuZ1sndmFsdWUnXSA9ICdWJmF1bWw7cmRlJzsKJGxhbmdbJ3ZhbHVlcyddID0gJ1YmYXVtbDtyZGVuJzsKJGxhbmdbJ3ZpZXcnXSA9ICdHcmFuc2thJzsKJGxhbmdbJ3ZpZXdhYmxlX2ZpZWxkcyddID0gJ1YmYXVtbDtsaiBhbnBhc3NhZGUgZiZhdW1sO2x0IGYmb3VtbDtyIGF0dCB2aXNhIGkgdGFiZWxsZW4nOwokbGFuZ1snd2F0ZXJtYXJrX2xvY2F0aW9uJ10gPSAnVmF0dGVubSZhdW1sO3JrZXRzIHBsYWNlcmluZyc7CiRsYW5nWyd3ZWlnaHQnXSA9ICdWaWt0JzsKJGxhbmdbJ3llcyddID0gJ0phPyc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjYyMjYxMzI5MC4xMjgyMDY4ODAxLjEyODU2MTg2MjguMTI4NTYyMTM3MC4xOSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyODQ2NTIzMTQuMTQuNC51dG1jc3I9ZmVlZGJ1cm5lcnx1dG1jY249RmVlZDogY21zbWFkZXNpbXBsZS9ibG9nIChDTVMgTWFkZSBTaW1wbGUpfHV0bWNtZD1mZWVkJzsKJGxhbmdbJ3FjYSddID0gJ1AwLTEyNjcyMTgzNjgtMTI4MjA2ODgwMTc4OCc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMuMi4xMC4xMjg1NjIxMzcwJzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/tr_TR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZCddID0gJ0VrbGUnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdLYXRlZ29yaSBFa2xlJzsKJGxhbmdbJ2FkZGZpZWxkZGVmJ10gPSAnQWxhbiBFa2xlJzsKJGxhbmdbJ2FkanVzdGFibGUnXSA9ICdVeWFybGFuYWJpbGlyJzsKJGxhbmdbJ2FkZHByb2R1Y3QnXSA9ICcmVXVtbDtyJnV1bWw7biBFa2xlJzsKJGxhbmdbJ2FkZF9hdHRyaWJfc2V0J10gPSAnTml0ZWxpayBFa2xlJzsKJGxhbmdbJ2FkZF9jYXRlZ29yeV9maWVsZCddID0gJ0Fzc29jaWF0ZSBGaWVsZCB3aXRoIENhdGVnb3J5OiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydhZGRfaGllcmFyY2h5X2l0ZW0nXSA9ICdBZGQgSGllcmFyY2h5IEl0ZW0nOwokbGFuZ1snYWRkX29wdGlvbiddID0gJ0FkZCBBdHRyaWJ1dGUgT3B0aW9uJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdDYW4gb25seSBhZG1pbnMgc2VlIHRoaXMgYXR0cmlidXRlPyc7CiRsYW5nWydhbGlnbl91bCddID0gJyZVdW1sO3N0IFNvbCc7CiRsYW5nWydhbGlnbl91YyddID0gJyZVdW1sO3N0IE9ydGEnOwokbGFuZ1snYWxpZ25fdXInXSA9ICcmVXVtbDtzdCBTYcSfJzsKJGxhbmdbJ2FsaWduX21sJ10gPSAnT3J0YSBTb2wnOwokbGFuZ1snYWxpZ25fbWMnXSA9ICdPcnRhJzsKJGxhbmdbJ2FsaWduX21yJ10gPSAnT3J0YSBTYcSfJzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnQWx0IFNvbCc7CiRsYW5nWydhbGlnbl9sYyddID0gJ0FsdCBPcnRhJzsKJGxhbmdbJ2FsaWduX2xyJ10gPSAnQWx0IFNhxJ8nOwokbGFuZ1snYWxsY2F0ZWdvcmllcyddID0gJ1QmdXVtbDttIEthdGVnb3JpbGVyJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdBcmUgWW91IFN1cmU/JzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlcHJvZHVjdCddID0gJ0FyZSB5b3Ugc3VyZSB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgcHJvZHVjdCwgYW5kIGFsbCBvZiB0aGUgYWNjb21wYW55aW5nIGluZm9ybWF0aW9uIGZvciBpdD8nOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAnQXNjZW5kaW5nJzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnQXR0cmlidXRlIE5hbWUnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGljJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVzJ10gPSAnSGllcmFyY2h5IFJlcG9ydCBUZW1wbGF0ZXMnOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgSGllcmFyY2h5IFJlcG9ydCBUZW1wbGF0ZSc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWwnOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0NhdGVnb3JpZXMnOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdDYXRlZ29yeSc7CiRsYW5nWydjYXRlZ29yeWV4aXN0cyddID0gJ0EgY2F0ZWdvcnkgYnkgdGhhdCBuYW1lIGFscmVhZHkgZXhpc3RzJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0NhdGVnb3J5TGlzdCBUZW1wbGF0ZXMnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IEEgQ2F0ZWdvcnlMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnQ2hlY2tib3gnOwokbGFuZ1snY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm9kZT8gIEFueSBwcm9kdWN0cyB0aGF0IGFyZSB1c2luZyB0aGlzIG5vZGUgd2lsbCBiZSBzZXQgdG8gbm8gaGllcmFyY2h5JzsKJGxhbmdbJ2NvbmZpcm1faW1wb3J0J10gPSAnQXJlIHlvdSBzdXJlIHlvdSByZWFsbHkgd2FudCB0byBkbyB0aGlzP1xuXG5JbXByb3BlciBzZXR0aW5ncywgb3IgYW4gaW52YWxpZCBjb25maWcgZmlsZSBjb3VsZCBjb21wbGV0ZWx5IGNvcnJ1cHQgYSBjdXJyZW50bHkgdmFsaWQgYW5kIHdvcmtpbmcgc3lzdGVtLic7CiRsYW5nWydjb3B5J10gPSAnQ29weSc7CiRsYW5nWydjb3B5X2NhdGVnb3J5J10gPSAnQ29weSBDYXRlZ29yeSc7CiRsYW5nWydjcmVhdGVkZGF0ZSddID0gJ0NyZWF0ZWQgRGF0ZSc7CiRsYW5nWydjdXJyZW50X3ZhbHVlJ10gPSAnQ3VycmVudCBWYWx1ZSc7CiRsYW5nWydkYXRhJ10gPSAnRGF0YSc7CiRsYW5nWydkZWZhdWx0J10gPSAnRGVmYXVsdCc7CiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAnRGVmYXVsdCBUZW1wbGF0ZXMnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZSBjb250ZW50cyBvZiB0aGVzZSB0ZXh0IGFyZWFzIGFyZSB1c2VkIHRvIGRldGVybWluZSB0aGUgZGVmYXVsdCBjb250ZW50IG9mIHRlbXBsYXRlcyB3aGVuIHlvdSBjbGljayAmcXVvdDtBZGQgVGVtcGxhdGUmcXVvdDsgaW4gdGhlIGFwcHJvcHJpYXRlIHRlbXBsYXRlIHRhYi4gIEVkaXRpbmcgb25lIG9mIHRoZXNlIHRleHQgYXJlYXMgd2lsbCBoYXZlIG5vIGltbWVkaWF0ZSBlZmZlY3Qgb24geW91ciB3ZWJzaXRlLic7CiRsYW5nWydkZWxldGUnXSA9ICdEZWxldGUnOwokbGFuZ1snZGVsZXRlX2F0dHJpYnNldCddID0gJ0RlbGV0ZSBBdHRyaWJ1dGUnOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAnRGVsZXRlIEhpZXJhcmNoeSBJdGVtJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdEZXNjZW5kaW5nJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnRGVzY3JpcHRpb24nOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFpbHMnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAnRGV0YWlsIFRlbXBsYXRlcyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgQSBEZXRhaWwgVGVtcGxhdGUnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdEaXNhYmxlZCc7CiRsYW5nWydkcmFmdCddID0gJ0RyYWZ0JzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24nOwokbGFuZ1snZHJvcGRvd25fb3B0aW9ucyddID0gJ0Ryb3Bkb3duIE9wdGlvbnMgPGVtPihhcHBsaWNhYmxlIG9ubHkgZm9yIGRyb3Bkb3duIGZpZWxkcyk8L2VtPjxici8+PGJyLz48ZW0+KG9uZSBlbnRyeSBwZXIgbGluZSk8L2VtPic7CiRsYW5nWydlZGl0J10gPSAnRWRpdCc7CiRsYW5nWydlZGl0X2F0dHJpYnNldCddID0gJ0VkaXQgQXR0cmlidXRlJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0cyddID0gJ0VkaXQgQXR0cmlidXRlIFNldHMnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzX2ZvciddID0gJ0VkaXQgQXR0cmlidXRlIFNldHMgRm9yJzsKJGxhbmdbJ2VkaXRfYXR0cmlidXRlcyddID0gJ0VkaXQgQXR0cmlidXRlcyc7CiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAnRWRpdCBDYXRlZ29yeSc7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ0VkaXQgQ2F0ZWdvcnkgRmllbGRzJzsKJGxhbmdbJ2VkaXRfaGllcmFyY2h5X2l0ZW0nXSA9ICdFZGl0IEhpZXJhcmNoeSBJdGVtJzsKJGxhbmdbJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnXSA9ICdBbiBhdHRyaWJ1dGUgd2l0aCB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snZXJyb3JfZmllbGR2YWx1ZV9lbXB0eSddID0gJ1RoZSBGaWVsZCBWYWx1ZSBjYW5ub3QgYmUgZW1wdHknOwokbGFuZ1snZXJyb3JfZmlsZWZvcm1hdCddID0gJ0ZpbGUgRm9ybWF0IFByb2JsZW0nOwokbGFuZ1snZXJyb3JfZmlsZW5vdGZvdW5kJ10gPSAnRmlsZSBOb3QgRm91bmQnOwokbGFuZ1snZXJyb3JfZmlsZW9wZW4nXSA9ICdQcm9ibGVtIG9wZW5pbmcgZmlsZSAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnSW52YWxpZCBQYXJlbnQgKGEgaGllcmFyY2h5IG5vZGUgY2Fubm90IGJlIGl0JiMwMzk7cyBvd24gcGFyZW50KSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX25hbWUnXSA9ICdUaGUgY3VzdG9tIGZpZWxkIHZhbHVlIGVudGVyZWQgaXMgaW52YWxpZCAoY29udGFpbnMgbm9uIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzKSc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdBIHJlcXVpcmVkIHBhcmFtZXRlciBpcyBtaXNzaW5nIG9yIGludmFsaWQnOwokbGFuZ1snZXJyb3JfbmFtZXVzZWQnXSA9ICdBbiBpdGVtIGJ5IHRoYXQgbmFtZSBpcyBhbHJlYWR5IGluIHVzZSc7CiRsYW5nWydlcnJvcl9ub2ZpZWxkdHlwZSddID0gJ1BsZWFzZSBzZWxlY3QgYSBmaWVsZCB0eXBlJzsKJGxhbmdbJ2Vycm9yX25vbmFtZSddID0gJ1lvdSBtdXN0IHN1cHBseSBhIG5hbWUnOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbmRlbmllZCddID0gJ1Blcm1pc3Npb24gRGVuaWVkJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdBIHByb2R1Y3QgYnkgdGhhdCBuYW1lIGFscmVhZHkgZXhpc3RzJzsKJGxhbmdbJ2Vycm9yX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdJbnZhbGlkIHByaWNlIGFkanVzdG1lbnQgdmFsdWUgZm9yIGl0ZW0gJXMnOwokbGFuZ1snZXJyb3JfdXBsb2FkX2ZhaWxlZCddID0gJ1VwbG9hZCBmYWlsZWQ6ICVzJzsKJGxhbmdbJ2V4dHJhMSddID0gJ0V4dHJhIEZpZWxkIDEnOwokbGFuZ1snZXh0cmEyJ10gPSAnRXh0cmEgRmllbGQgMic7CiRsYW5nWydmaWVsZCddID0gJ0ZpZWxkJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRmllbGQgRGVmaW5pdGlvbic7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdGaWVsZCBEZWZpbml0aW9ucyc7CiRsYW5nWydmaWxlJ10gPSAnRmlsZSc7CiRsYW5nWydmaWx0ZXJzJ10gPSAnRmlsdGVycyc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICc8PCc7CiRsYW5nWydnZW5lcmFsX3NldHRpbmdzJ10gPSAnR2VuZXJhbCBTZXR0aW5ncyc7CiRsYW5nWydnbyddID0gJ0dvJzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0hpZXJhcmNoeSc7CiRsYW5nWydoaWVyYXJjaHlfcG9zaXRpb24nXSA9ICdIaWVyYXJjaHkgUG9zaXRpb24nOwokbGFuZ1snaWQnXSA9ICdJZCc7CiRsYW5nWydpbWFnZXRleHQnXSA9ICdJbWFnZSc7CiRsYW5nWydpbWFnZV9oYW5kbGluZ19zZXR0aW5ncyddID0gJ0ltYWdlIEhhbmRsaW5nIFNldHRpbmdzJzsKJGxhbmdbJ2ltcG9ydF9mcm9tX2NzdiddID0gJ0ltcG9ydCBQcm9kdWN0cyBmcm9tIENTViBmaWxlJzsKJGxhbmdbJ2luY2x1ZGVfY2hpbGRyZW4nXSA9ICdJbmNsdWRlIENoaWxkcmVuPyc7CiRsYW5nWydpbmZvX2FsbnVtb25seSddID0gJ09ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMuIE5vIHdoaXRlc3BhY2UsIHF1b3Rlcywgb3Igbm9uIGxldHRlci9udW1iZXIgY29tYmluYXRpb25zJzsKJGxhbmdbJ2luZm9fYXV0b3dhdGVybWFyayddID0gJ1dhdGVybWFyayBzZXR0aW5ncyBhcmUgdGFrZW4gZnJvbSB0aGUgQ0dFeHRlbnNpb25zIE1vZHVsZSc7CiRsYW5nWydpbmZvX2JhdGNoc2l6ZSddID0gJ1NldCB0aGUgbnVtYmVyIG9mIGxpbmVzIHRvIHByb2Nlc3MgcGVyICZxdW90O2JhdGNoJnF1b3Q7LiAgQWZ0ZXIgYSBiYXRjaCBpcyBjb21wbGV0ZSwgdGhlIGltcG9ydGVyIHdpbGwgcmVkaXJlY3QsIGFuZCByZXN1bWUgb3BlcmF0aW9ucy4gIElmIHlvdSBhcmUgZXhwZXJpZW5jaW5nIG1lbW9yeSBlcnJvcnMsIG9yIHRpbWVvdXQgcHJvYmxlbXMgZHVlIHRvIGxhcmdlIGFtb3VudHMgb2YgcHJvY2Vzc2luZywgeW91IG1heSBuZWVkIHRvIGNvbnN1bHQgeW91ciBob3N0IHByb3ZpZGVyLCBvciByZWR1Y2UgdGhpcyBudW1iZXInOwokbGFuZ1snaW5mb19jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdUaGVzZSBwYXJhbWV0ZXJzIGFyZSBnaXZlbiB0byB0aGUgc2VsZWN0ZWQgY2FydCBtb2R1bGUgZnJvbSB0aGUgcHJvZHVjdCBkZXRhaWwgYW5kIHN1bW1hcnkgZGlzcGxheXMnOwokbGFuZ1snaW5mb19jcmVhdGVmaWVsZHMnXSA9ICdDcmVhdGUgdW5rbm93biBwcm9kdWN0IGZpZWxkcyBhdXRvbWF0aWNhbGx5PyA8ZW0+KFRoZXkgd2lsbCBiZSBjcmVhdGVkIGFzIHRleHQgZmllbGRzKTwvZW0+JzsKJGxhbmdbJ2luZm9fY3JlYXRlY2F0ZWdvcmllcyddID0gJ0F1dG9tYXRpY2FsbHkgY3JlYXRlIHByb2R1Y3QgY2F0ZWdvcmllcyB0byBtYXRjaCB0aG9zZSBvZiB0aGUgQ1NWIGZpbGUsIGlmIGl0IGRvZXMgbm90IGFscmVhZHkgZXhpc3QnOwokbGFuZ1snaW5mb19jcmVhdGVoaWVyYXJjaHknXSA9ICdBdXRvbWF0aWNhbGx5IGNyZWF0ZSBwcm9kdWN0IGhpZXJhcmNoaWVzIHRvIG1hdGNoIHRob3NlIG9mIHRoZSBDU1YgZmlsZSBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0JzsKJGxhbmdbJ2luZm9fZGVjaW1hbF91bml0cyddID0gJ1RoaXMgc3lzdGVtIHVuZGVyc3RhbmRzICguKSBhcyB0aGUgZGVjaW1hbCBwb2ludCBzZXBhcmF0b3IuIGkuZS46IDxzdHJvbmc+NS4yNTwvc3Ryb25nPic7CiRsYW5nWydpbmZvX2RlbGltaXRlciddID0gJ1NwZWNpZnkgdGhlIGNoYXJhY3RlciAob3IgY2hhcmFjdGVycykgdGhhdCBzZXBlcmF0ZSBlYWNoIGZpZWxkJzsKJGxhbmdbJ2luZm9fZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdTcGVjaWZ5IGhvdyB0aGUgc3lzdGVtIHNob3VsZCBoYW5kbGUgYSBwcm9kdWN0IHdob3MgbmFtZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgQ1NWIGZpbGUnOwokbGFuZ1snaW5mb19maWVsZGRlZnNfdGFiJ10gPSAnPHN0cm9uZz5Ob3RlOiA8L3N0cm9uZz4gQWxsIEZpZWxkcyBkZWZpbmVkIGhlcmUgYXJlIGF2YWlsYWJsZSB0byBhbGwgcHJvZHVjdHMuJzsKJGxhbmdbJ2luZm9fZmllbGRwcm9ibGVtcyddID0gJ1Byb2JsZW1zIHdlcmUgZW5jb3VudGVyZWQgd2hlbiBkZWFsaW5nIHdpdGggb25lIG9yIG1vcmUgY3VzdG9tIGZpZWxkcy4gIFRoZSBhY3Rpb24gaGFzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHksIGhvd2V2ZXIgeW91IHNob3VsZCBpbnZlc3RpZ2F0ZSBhbmQgY29ycmVjdCB0aGVzZSBwcm9ibGVtcyc7CiRsYW5nWydpbmZvX2hhbmRsZWltYWdlcyddID0gJ1Vwb24gaW1wb3J0LCBpZiBhbiBpbWFnZSBmaWxlbmFtZSBpcyBmb3VuZCBpbiBhIGZpZWxkIGNvbHVtbiwgc2hvdWxkIGl0IGJlIG1vdmVkIGZyb20gdGhlIHNvdXJjZSBsb2NhdGlvbiwgd2F0ZXJtYXJrZWQsIHRodW1ibmFpbGVkLCBhbmQgdGhlIGZpZWxkIHR5cGUgY2hhbmdlZCB0byAmcXVvdDtpbWFnZSZxdW90Oyc7CiRsYW5nWydpbmZvX2ltYWdlcGF0aCddID0gJ1RoZSBwYXRoIChyZWxhdGl2ZSB0byB0aGUgdXBsb2FkcyBkaXJlY3RvcnkpIHdoZXJlIGltYWdlcyByZWZlcnJlZCB0byBpbiB0aGUgaW1wb3J0IGZpbGUsIGNhbiBiZSBmb3VuZCc7CiRsYW5nWydpbmZvX2ltcG9ydF90ZXN0X3Bhc3NlZCddID0gJ0EgYnJpZWYgdGVzdCBhcyBiZWVuIHBlcmZvcm1lZCBvbiB0aGUgaW5wdXQgZmlsZSBzcGVjaWZpZWQsIGFuZCBldmVyeXRoaW5nIGFwcGVhcnMgdG8gYmUgY29ycmVjdC48YnIvPlRoaXMgaXMgbm8gaW5kaWNhdGlvbiB0aGF0IHRoZXJlIGFyZSBubyBlcnJvcnMgaW4gdGhlIGZpbGUuJzsKJGxhbmdbJ2luZm9fcHJpY2VfYWRqdXN0bWVudCddID0gJ1ZhbGlkIHZhbHVlcyBhcmUgKy0qIy4jIyc7CiRsYW5nWydpbmZvX3B1YmxpY2ZpZWxkJ10gPSAnUHVibGljIGZpZWxkcyBhcmUgYXZhaWxhYmxlIGZvciB0aGUgcHVibGljIHRvIHNlZSc7CiRsYW5nWydsYWJlbCddID0gJ0xhYmVsJzsKJGxhbmdbJ2xhYmVsX3NraXAnXSA9ICdTa2lwJzsKJGxhbmdbJ2xhYmVsX292ZXJ3cml0ZSddID0gJ092ZXJ3cml0ZSc7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xhc3RfbW9kaWZpZWQnXSA9ICdMYXN0IE1vZGlmaWVkJzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnU2Vjb25kIEltYWdlJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ01heGltdW0gbGVuZ3RoIDxlbT4oYXBwbGljYWJsZSBvbmx5IG9uIHRleHRib3ggZmllbGRzKTwvZW0+JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ01vZGlmaWVkIERhdGUnOwokbGFuZ1snbW9kdWxlX2Rlc2NyaXB0aW9uJ10gPSAnQSBtb2R1bGUgZm9yIG1hbmFnaW5nIGEgY2F0YWxvZyBvZiBwcm9kdWN0cywgdGhlaXIgcHJpY2UsIGltYWdlcywgZXRjLCBhbmQgZm9yIGFsbG93aW5nIHVzZXJzIHRvIGJ1aWxkIGEgY2FydCc7CiRsYW5nWyduYW1lJ10gPSAnTmFtZSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ1lvdSBkbyBub3QgaGF2ZSB0aGUgcmVxdWlyZWQgcGVybWlzc2lvbjogJXMnOwokbGFuZ1snbmV3X2NhdGVnb3J5X25hbWUnXSA9ICdOZXcgQ2F0ZWdvcnkgTmFtZSc7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbm8nXSA9ICdObyc7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ05vIG5hbWUgd2FzIHN1cHBsaWVkJzsKJGxhbmdbJ25vbmUnXSA9ICdOb25lJzsKJGxhbmdbJ29mJ10gPSAnT2YnOwokbGFuZ1sncGFnZSddID0gJ1BhZ2UnOwokbGFuZ1sncGFnZV9vZiddID0gJ1BhZ2UgJXMgb2YgJXMnOwokbGFuZ1sncGFnZV9saW1pdCddID0gJ1BhZ2UgTGltaXQnOwokbGFuZ1sncGFyYW1fYWN0aW9uJ10gPSAnU3BlY2lmeSB0aGUgYmVoYXZpb3VyIG9mIHRoZSBtb2R1bGUuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+aGllcmFyY2h5IC0tIERpc3BsYXkgYSBwcm9kdWN0IGxpc3QgYnkgaGllcmFyY2h5PC9saT4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtIERpc3BsYXkgYSBsaXN0IG9mIHByb2R1Y3QgY2F0ZWdvcmllczwvbGk+DQogIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gRGlzcGxheSBhIHN1bW1hcnkgb2YgcHJvZHVjdHM8L2xpPg0KICA8bGk+ZGV0YWlscyAtIERpc3BsYXkgYSBkZXRhaWwgdmlldyBvZiBhIHNpbmdsZSBwcm9kdWN0PC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnV2hlbiB1c2VkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIsIHdoaWNoIHNob3VsZCBtYXRjaCB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyBjYXRlZ29yeSB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBvbmx5IHRob3NlIHByb2R1Y3RzIHRoYXQgYXJlIGluIHRoYXQgY2F0ZWdvb3J5LiAoYSBjb21tYSBzZXBlcmF0ZWQgbGlzdCBjYW4gYmUgc3VwcGxpZWQpJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdUaGlzIHNwZWNpZmllcyB0aGUgcGFnZWlkIG9yIGFsaWFzIHRoYXQgc2hvdWxkIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgZGV0YWlsIHJlcG9ydC4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkZXRhaWwgbW9kZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeSddID0gJ1VzZWZ1bCBvbmx5IGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgb25seSBpdGVtcyBpbiB0aGF0IGxvY2F0aW9uIG9mIHRoZSBoaWVyYXJjaHkgc2hvdWxkIGJlIGRpc3BsYXllZC4gIFdpbGRjYXJkIGNoYXJhY3RlciBjYW4gYmUgdXNlZCBzbyB0aGF0IHlvdSBjYW4gc3BlY2lmeSBwYXJlbnQvY2hpbGQgcmVsYXRpb25zaGlwcyBhcyB3ZWxsLiAgaS5lIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7dHJ1Y2tzKiYjMDM5O30gd2lsbCBjcmVhdGUgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBpbmNsdWRpbmcgdGhlIGNoaWxkcmVuIGluIHRoZSBoaWVyYXJjaHkuICBTaW1pbGFybHksIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7KnRydWNrcyYjMDM5O30gd2lsbCBkaXNwbGF5IGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgYW5kIGFsbCBwcm9kdWN0cyBiZWxvZ2luZyB0byBhbnkgcGFyZW50IGluIHRoZSBoaWVyYXJjaHkuJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeXRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgaGllcmFyY2h5IGRpc3BsYXkuIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9wYWdlbGltaXQnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBsaXN0ZWQgb24gZWFjaCBwYWdlLic7CiRsYW5nWydwYXJhbV9wYXJlbnQnXSA9ICdVc2VmdWwgb25seSBpbiB0aGUgPGVtPmhpZXJhcmNoeTwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBoaWVyYXJjaHkgaWQgb2YgdGhlIHN0YXJ0aW5nIGxvY2F0aW9uIG9mIHRoZSByZXBvcnQuJzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RpZCddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGRldGFpbCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB3aGF0IHByb2R1Y3QgdG8gdXNlIGZvciB0aGUgZGlzcGxheS4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmeSB0aGUgb3JkZXIgb2Ygc29ydGVkIGZpZWxkcyBpbiBzdW1tYXJ5IHZpZXcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4NCiAgPGxpPmRlc2MgLS0gRGVzY2VuZGluZyBvcmRlcjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIG9ubHkgaW4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQgcHJvZHVjdHMuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5wcm9kdWN0X25hbWU8L3N0cm9uZz48L2xpPg0KICA8bGk+aWQgLS0gVGhlIHByb2R1Y3QgaWQ8L2xpPg0KICA8bGk+d2VpZ2h0IC0tIFRoZSBwcm9kdWN0IHdlaWdodDwvbGk+DQogIDxsaT5wcmljZSAtLSBUaGUgcHJvZHVjdCBiYXNlIHByaWNlPC9saT4NCiAgPGxpPnN0YXR1cyAtLSBEcmFmdCBvciBwdWJsaXNoZWQ8L2xpPg0KICA8bGk+cmFuZG9tIC0tIERpc3BsYXkgaW4gcmFuZG9tIG9yZGVyIG9uIGVhY2ggcmVxdWVzdDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIHN1bW1hcnkgbW9kZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmVudCddID0gJ1BhcmVudCc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1RoZSBQcm9kdWN0cyBtb2R1bGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZCc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnVGhlIFByb2R1Y3RzIG1vZHVsZSBoYXMgYmVlbiByZW1vdmVkIGFsb25nIHdpdGggYWxsIGFzc29jaWF0ZWQgZGF0YSc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1ByZWZlcmVuY2VzJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ1JlbW92aW5nIHRoaXMgbW9kdWxlIHdpbGwgYWxzbyByZW1vdmUgYWxsIGFzc29jaWF0ZWQgZGF0YSwgYXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHByb2NlZWQ/JzsKJGxhbmdbJ3ByaWNlJ10gPSAnUHJpY2UnOwokbGFuZ1sncHJpY2VfYWRqdXN0bWVudCddID0gJ1ByaWNlIEFkanVzdG1lbnQnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb2R1Y3QnXSA9ICdQcm9kdWN0JzsKJGxhbmdbJ3Byb2R1Y3RuYW1lJ10gPSAnUHJvZHVjdCBOYW1lJzsKJGxhbmdbJ3Byb2R1Y3RzJ10gPSAnUHJvZHVjdHMnOwokbGFuZ1sncHJvZHVjdF9oaWVyYXJjaHknXSA9ICdQcm9kdWN0IEhpZXJhcmNoeSc7CiRsYW5nWydwcm9kdWN0X21hbmFnZXInXSA9ICdQcm9kdWN0IE1hbmFnZXInOwokbGFuZ1sncHJvZ3Jlc3MnXSA9ICdQcm9ncmVzcyc7CiRsYW5nWydwcm9tcHQnXSA9ICdQcm9tcHQnOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfZmlsZXR5cGVzJ10gPSAnQWxsb3cgdXBsb2FkIG9mIGZpbGVzIHdpdGggdGhlc2UgZXh0ZW5zaW9ucyAoZm9yIGZpbGUgdHlwZSBmaWVsZHMpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ltYWdldHlwZXMnXSA9ICdBbGxvdyB1cGxvYWQgb2YgaW1hZ2VzIHdpdGggdGhlc2UgZXh0ZW5zaW9ucyAoZm9yIGltYWdlIHR5cGUgZmllbGRzKSc7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbCddID0gJ0F1dG9tYXRpY2FsbHkgY3JlYXRlIHRodW1ibmFpbHMgb2YgaW1hZ2VzJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsX3NpemUnXSA9ICdNYXhpbXVtIHNpemUgKGxhcmdlc3QgZGltZW5zaW9uKSBvZiB0aGUgdGh1bWJuYWlsLic7CiRsYW5nWydwcm9tcHRfYXV0b3ByZXZpZXdpbWcnXSA9ICdBdXRvbWF0aWNhbGx5IGNyZWF0ZSBwcmV2aWV3IGltYWdlcyBvZiBpbWFnZXMnOwokbGFuZ1sncHJvbXB0X2F1dG9wcmV2aWV3aW1nX3NpemUnXSA9ICdNYXhpbXVtIHNpemUgKGxhcmdlc3QgZGltZW5zaW9uKSBvZiB0aGUgcHJldmlldyBpbWFnZS4nOwokbGFuZ1sncHJvbXB0X2F1dG93YXRlcm1hcmsnXSA9ICdBdXRvbWF0aWNhbGx5IHBsYWNlIHdhdGVybWFya3Mgb24gaW1hZ2VzJzsKJGxhbmdbJ3Byb21wdF9hcHBsaWNhYmxlJ10gPSAnRW5hYmxlIGJ5IGRlZmF1bHQgZm9yIGFsbCBuZXcgcHJvZHVjdHMnOwokbGFuZ1sncHJvbXB0X2JhdGNoc2l6ZSddID0gJ0JhdGNoIFNpemUnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlJ10gPSAnQ2FydCBNb2R1bGUnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ0NhcnQgTW9kdWxlIFBhcmFtZXRlcnMnOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWNhdGVnb3JpZXMnXSA9ICdDcmVhdGUgQ2F0ZWdvcmllcyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlZmllbGRzJ10gPSAnQ3JlYXRlIFByb2R1Y3QgRmllbGRzPyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlaGllcmFyY2h5J10gPSAnQ3JlYXRlIFByb2R1Y3QgSGllcmFyY2h5JzsKJGxhbmdbJ3Byb21wdF9jc3ZmaWxlJ10gPSAnVXBsb2FkIENTViBGaWxlJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeWNvZGUnXSA9ICdDdXJyZW5jeSBDb2RlJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeXN5bWJvbCddID0gJ0N1cnJlbmN5IFN5bWJvbCc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF9zdGF0dXMnXSA9ICdCeSBkZWZhdWx0IGFsbCBuZXcgcHJvZHVjdHMgaGF2ZSB0aGlzIHN0YXR1cyc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF90YXhhYmxlJ10gPSAnQnkgZGVmYXVsdCBhbGwgbmV3IHByb2R1Y3RzIGFyZSB0YXhhYmxlJzsKJGxhbmdbJ3Byb21wdF9kZWxldGVwcm9kdWN0ZmlsZXMnXSA9ICdEZWxldGUgYW55IGZpbGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJvZHVjdCB3aGVuIHRoZSBwcm9kdWN0IGlzIGRlbGV0ZWQ/JzsKJGxhbmdbJ3Byb21wdF9kZWxpbWl0ZXInXSA9ICdGaWVsZCBEZWxpbWl0ZXInOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdEZWZhdWx0IERldGFpbCBQYWdlJzsKJGxhbmdbJ3Byb21wdF9kdXBsaWNhdGVwcm9kdWN0cyddID0gJ0hvdyB0byBoYW5kbGUgZHVwbGljYXRlIHByb2R1Y3RzPyc7CiRsYW5nWydwcm9tcHRfaGFuZGxlaW1hZ2VzJ10gPSAnSGFuZGxlIGltYWdlcz8nOwokbGFuZ1sncHJvbXB0X2ltYWdlcGF0aCddID0gJ0ltYWdlIFBhdGgnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdEZWZhdWx0IFNvcnQgT3JkZXIgaW4gc3VtbWFyeSBtb2RlJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ0RlZmF1bHQgU29ydCBGaWVsZCBpbiBzdW1tYXJ5IG1vZGUnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgU291cmNlJzsKJGxhbmdbJ3Byb21wdF91cmxwcmVmaXgnXSA9ICdQcmVmaXggdG8gdXNlIG9uIGFsbCBVUkxTIHRhcmdldGVkIHRvIHRoaXMgdGhpcyBtb2R1bGUnOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnV2VpZ2h0IFVuaXRzJzsKJGxhbmdbJ3B1YmxpYyddID0gJ0lzIHRoaXMgYSBwdWJsaWMgZmllbGQ/JzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ1B1Ymxpc2hlZCc7CiRsYW5nWydyYW5kb20nXSA9ICdSYW5kb20nOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdSZXNldCB0byBGYWN0b3J5IFZhbHVlcyc7CiRsYW5nWydyZXR1cm4nXSA9ICdSZXR1cm4nOwokbGFuZ1sncmV0dXJuX3RvX3RvcCddID0gJ1JldHVybiB0byB0aGUgdG9wIG9mIHRoZSB2aWV3JzsKJGxhbmdbJ3Jvb3QnXSA9ICdSb290JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlY3QgT25lJzsKJGxhbmdbJ3NvcnRfYnknXSA9ICdTb3J0IEJ5JzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdTb3J0IE9yZGVyJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyc7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ1N1bW1hcnkgVGVtcGxhdGVzJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgQSBTdW1tYXJ5IFRlbXBsYXRlJzsKJGxhbmdbJ3RheGFibGUnXSA9ICdUYXhhYmxlJzsKJGxhbmdbJ3Rlc3QnXSA9ICdUZXN0JzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnVGV4dCBBcmVhJzsKJGxhbmdbJ3RleHRib3gnXSA9ICdUZXh0IElucHV0JzsKJGxhbmdbJ3RpdGxlX2J5aGllcmFyY2h5X2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgTmV3IEhpZXJhcmNoeSBSZXBvcnQgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgTmV3IENhdGVnb3J5TGlzdCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBOZXcgRGV0YWlsIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBOZXcgU3VtbWFyeSBUZW1wbGF0ZSc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwZSc7CiRsYW5nWyd1cGRhdGUnXSA9ICdVcGRhdGUnOwokbGFuZ1sndXBsb2FkJ10gPSAnU2VsZWN0IGEgZmlsZSB0byB1cGxvYWQnOwokbGFuZ1sndmFsaWQnXSA9ICdWYWxpZCc7CiRsYW5nWyd2YWx1ZSddID0gJ1ZhbHVlJzsKJGxhbmdbJ3ZhbHVlcyddID0gJ1ZhbHVlcyc7CiRsYW5nWyd3YXRlcm1hcmtfbG9jYXRpb24nXSA9ICdXYXRlcm1hcmsgTG9jYXRpb24nOwokbGFuZ1snd2VpZ2h0J10gPSAnV2VpZ2h0JzsKJGxhbmdbJ3llcyddID0gJ1llcyc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjg5NjE4NzYzMS4xMjM2Njc2MTIxLjEyNDI5MDQwODkuMTI0MjkxMDIyMC4yNSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyNDI5MDQwODkuMjQuOS51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9ZGV2LmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vcHJvamVjdC9saXN0fHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.hierarchy_ops.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIGhpZXJhcmNoeV9vcHMKewogICAgcHJpdmF0ZSBzdGF0aWMgJF9hbGxoaWVyYXJjaHk7CgogICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX3VwZGF0ZV9oaWVyYXJjaHlfY291bnRzKCYkZGF0YSwkcGFyZW50X2lkID0gLTEpCiAgICB7CiAgICAgICAgJG4gPSAwOwogICAgICAgIGZvcmVhY2goICRkYXRhIGFzICYkcmVjICkgewogICAgICAgICAgICBpZiggIWlzc2V0KCRyZWNbJ2RpcmVjdF9jb3VudCddKSApIGNvbnRpbnVlOwogICAgICAgICAgICBpZiggJHJlY1sncGFyZW50X2lkJ10gIT0gJHBhcmVudF9pZCApIGNvbnRpbnVlOwogICAgICAgICAgICAkcmVjWydjb3VudCddID0gJHJlY1snZGlyZWN0X2NvdW50J107CiAgICAgICAgICAgICRyZWNbJ2NvdW50J10gKz0gc2VsZjo6X3VwZGF0ZV9oaWVyYXJjaHlfY291bnRzKCRkYXRhLCRyZWNbJ2lkJ10pOwogICAgICAgICAgICAkbiArPSAkcmVjWydjb3VudCddOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG47CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfYWxsX2hpZXJhcmNoeV9pbmZvKCRjb3VudCA9IEZBTFNFLCAkYWxsID0gVFJVRSkKICAgIHsKICAgICAgICBpZiggIWlzX2FycmF5KHNlbGY6OiRfYWxsaGllcmFyY2h5KSApIHNlbGY6OiRfYWxsaGllcmFyY2h5ID0gYXJyYXkoKTsKCiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICBpZiggISRjb3VudCApIHsKICAgICAgICAgICAgJGtleSA9ICdub2NvdW50JzsKCiAgICAgICAgICAgIGlmKCAhaXNzZXQoc2VsZjo6JF9hbGxoaWVyYXJjaHlbJGtleV0pICkgewogICAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHknOwogICAgICAgICAgICAgICAgJHRtcCA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKICAgICAgICAgICAgICAgIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApICR0bXAgPSBjZ2VfYXJyYXk6OnRvX2hhc2goJHRtcCwnaWQnKTsKICAgICAgICAgICAgICAgIHNlbGY6OiRfYWxsaGllcmFyY2h5WyRrZXldID0gJHRtcDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgLy8gYWxsIGlzIG9ubHkgYXBwbGljYWJsZSBoZXJlLgogICAgICAgICAgICAka2V5ID0gJ2NvdW50JzsKICAgICAgICAgICAgaWYoICFpc3NldChzZWxmOjokX2FsbGhpZXJhcmNoeVska2V5XSkgKSB7CiAgICAgICAgICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBwaC4qLGNvdW50KHByLmlkKSBBUyBkaXJlY3RfY291bnQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBwaAogICAgICAgICAgICAgICAgICBMRUZUIE9VVEVSIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdG9oaWVyIHB0aAogICAgICAgICAgICAgICAgICBPTiBwaC5pZCA9IHB0aC5oaWVyYXJjaHlfaWQKICAgICAgICAgICAgICAgICAgTEVGVCBPVVRFUiBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgcHIKICAgICAgICAgICAgICAgICAgT04gcHRoLnByb2R1Y3RfaWQgPSBwci5pZCc7CiAgICAgICAgICAgICAgICBpZiggISRhbGwgKSAkcXVlcnkgLj0gJyBBTkQgcHIuc3RhdHVzID0gJy4kZGItPnFzdHIoJ3B1Ymxpc2hlZCcpOwogICAgICAgICAgICAgICAgJHF1ZXJ5IC49ICcgR1JPVVAgQlkgcGguaWQgT1JERVIgQlkgcGguaGllcmFyY2h5JzsKICAgICAgICAgICAgICAgICR0bXAgPSAkZGItPkdldEFsbCgkcXVlcnkpOwogICAgICAgICAgICAgICAgaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgJHRtcCA9IGNnZV9hcnJheTo6dG9faGFzaCgkdG1wLCdpZCcpOwogICAgICAgICAgICAgICAgc2VsZjo6X3VwZGF0ZV9oaWVyYXJjaHlfY291bnRzKCR0bXApOwogICAgICAgICAgICAgICAgc2VsZjo6JF9hbGxoaWVyYXJjaHlbJGtleV0gPSAkdG1wOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBzZWxmOjokX2FsbGhpZXJhcmNoeVska2V5XTsKICAgIH0KCgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfaGllcmFyY2h5X2luZm8oJGhpZXJhcmNoeV9pZCkKICAgIHsKICAgICAgICAkYWxsaW5mbyA9IHNlbGY6OmdldF9hbGxfaGllcmFyY2h5X2luZm8oKTsKICAgICAgICBpZiggaXNfYXJyYXkoJGFsbGluZm8pICYmIGNvdW50KCRhbGxpbmZvKSApIHsKICAgICAgICAgICAgaWYoIGlzc2V0KCRhbGxpbmZvWyRoaWVyYXJjaHlfaWRdKSApIHJldHVybiAkYWxsaW5mb1skaGllcmFyY2h5X2lkXTsKICAgICAgICB9CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2hpZXJhcmNoeV9wYXRoKCRoaWVyX2lkKQogICAgewogICAgICAgICRvdXQgPSBhcnJheSgpOwogICAgICAgIHdoaWxlKCAkaGllcl9pZCA+IDAgKSB7CiAgICAgICAgICAgICRvdXRbXSA9ICRoaWVyX2lkOwoKICAgICAgICAgICAgJGhpZXJfaW5mbyA9IHNlbGY6OmdldF9oaWVyYXJjaHlfaW5mbygkaGllcl9pZCk7CiAgICAgICAgICAgIGlmKCAhJGhpZXJfaW5mbyApIGJyZWFrOwoKICAgICAgICAgICAgJGhpZXJfaWQgPSAkaGllcl9pbmZvWydwYXJlbnRfaWQnXTsKICAgICAgICAgICAgaWYoICRoaWVyX2lkIDwgMCApIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGFycmF5X3JldmVyc2UoJG91dCk7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2JyZWFkY3J1bWIoJGlkLCRoaWVyX2lkLCRoaWVycGFnZSwkZGVsaW0gPSAnICZyYXF1bzsgJykKICAgIHsKICAgICAgICAkaGllcmFyY2h5X3BhdGggPSBzZWxmOjpnZXRfaGllcmFyY2h5X3BhdGgoJGhpZXJfaWQpOwogICAgICAgIGlmKCAhJGhpZXJhcmNoeV9wYXRoICkgcmV0dXJuIEZBTFNFOwoKICAgICAgICAkbW9kdWxlID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9QUk9EVUNUUyk7CiAgICAgICAgJHRtcCA9IGFycmF5KCk7CiAgICAgICAgZm9yZWFjaCggJGhpZXJhcmNoeV9wYXRoIGFzICRvbmUgKSB7CiAgICAgICAgICAgICRpbmZvID0gaGllcmFyY2h5X29wczo6Z2V0X2hpZXJhcmNoeV9pbmZvKCRvbmUpOwogICAgICAgICAgICAkbGluayA9ICRtb2R1bGUtPkNyZWF0ZVByZXR0eUxpbmsoJGlkLCdoaWVyYXJjaHknLCRoaWVycGFnZSwkaW5mb1snbmFtZSddLGFycmF5KCdwYXJlbnQnPT4kaW5mb1snaWQnXSkpOwogICAgICAgICAgICAkdG1wW10gPSAkbGluazsKICAgICAgICB9CiAgICAgICAgaWYoICRkZWxpbSAhPSAnJyApIHJldHVybiBpbXBsb2RlKCRkZWxpbSwkdG1wKTsKICAgICAgICByZXR1cm4gJHRtcDsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9mbGF0X2xpc3QoJGZ1bGwgPSBUUlVFLCRpZCA9ICdwcm9kJywkcmV0dXJuZGlkID0gJycpCiAgICB7CiAgICAgICAgaWYoICFmdW5jdGlvbl9leGlzdHMoJ19faGllcnRyZWVfY2InKSApIHsKICAgICAgICAgICAgZnVuY3Rpb24gX19oaWVydHJlZV9jYigmJHJvdykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZ2xvYmFsICRpZCwkcmV0dXJuaWQsJGVudHJ5YXJyYXk7CiAgICAgICAgICAgICAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9QUk9EVUNUUyk7CiAgICAgICAgICAgICAgICBpZiggaXNfb2JqZWN0KCRtb2QpICkgewogICAgICAgICAgICAgICAgICAgICRyb3dbJ2VkaXRfdXJsJ10gPSAkbW9kLT5DcmVhdGVVUkwoJGlkLCdhZG1pbl9lZGl0X2hpZXJhcmNoeV9pdGVtJywgJHJldHVybmlkLCBhcnJheSgnaGllcmFyY2h5X2lkJz0+JHJvd1snaWQnXSkpOwogICAgICAgICAgICAgICAgICAgICRyb3dbJ2RlcHRoJ10gPSBjb3VudChleHBsb2RlKCcuJywgJHJvd1snaGllcmFyY2h5J10pKSAtIDE7CiAgICAgICAgICAgICAgICAgICAgJHJvd1snZWRpdF9saW5rJ10gPSAkbW9kLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdhZG1pbl9lZGl0X2hpZXJhcmNoeV9pdGVtJywgJHJldHVybmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtb2QtPkxhbmcoJ2VkaXRfaGllcmFyY2h5X2l0ZW0nKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgnaGllcmFyY2h5X2lkJz0+JHJvd1snaWQnXSkpOwogICAgICAgICAgICAgICAgICAgICRyb3dbJ2RlbGV0ZV9saW5rJ10gPSAkbW9kLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdhZG1pbl9kZWxldGVfaGllcmFyY2h5X2l0ZW0nLCAkcmV0dXJuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbW9kLT5MYW5nKCdkZWxldGVfaGllcmFyY2h5X2l0ZW0nKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgnaGllcmFyY2h5X2lkJz0+JHJvd1snaWQnXSksJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbW9kLT5MYW5nKCdjb25maXJtX2RlbGV0ZV9oaWVyYXJjaHlfbm9kZScpKTsKCiAgICAgICAgICAgICAgICAgICAgJGVudHJ5YXJyYXlbXSA9ICRyb3c7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGZ1bmN0aW9uIF9faGllcnRyZWVfZmxhdHRlbigkdHJlZSwmJGVudHJ5YXJyYXkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKCBpc19hcnJheSgkdHJlZSkgJiYgY291bnQoJHRyZWUpICkgewogICAgICAgICAgICAgICAgICAgIGZvcmVhY2goICR0cmVlIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRjb3B5ID0gJG9uZTsKICAgICAgICAgICAgICAgICAgICAgICAgdW5zZXQoJGNvcHlbJ2NoaWxkcmVuJ10pOwogICAgICAgICAgICAgICAgICAgICAgICAkZW50cnlhcnJheVtdID0gJGNvcHk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBpc3NldCgkb25lWydjaGlsZHJlbiddKSApIF9faGllcnRyZWVfZmxhdHRlbigkb25lWydjaGlsZHJlbiddLCRlbnRyeWFycmF5KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gLy8gZnVuY3Rpb24uCiAgICAgICAgfQoKICAgICAgICAkZW50cnlhcnJheSA9IGFycmF5KCk7CiAgICAgICAgJGNiID0gJyc7CiAgICAgICAgaWYoICRmdWxsICkgJGNiID0gJ19faGllcnRyZWVfY2InOwogICAgICAgICR0cmVlID0gcHJvZHVjdF91dGlsczo6aGllcmFyY2h5X2dldF90cmVlKC0xLDAsJGNiKTsKICAgICAgICBfX2hpZXJ0cmVlX2ZsYXR0ZW4oJHRyZWUsJGVudHJ5YXJyYXkpOwogICAgICAgIHJldHVybiAkZW50cnlhcnJheTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.importImageHandler.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIGltcG9ydEltYWdlSGFuZGxlcgp7CiAgdmFyICRfbW9kdWxlOwogIHZhciAkX3NyY3BhdGg7CiAgdmFyICRfZGVzdHBhdGg7CiAgdmFyICRfdW5pcXVlX25hbWVzOwoKICBmdW5jdGlvbiBpbXBvcnRJbWFnZUhhbmRsZXIoJiRtb2QpCiAgewogICAgJHRoaXMtPl9tb2R1bGUgPSAkbW9kOwogICAgJHRoaXMtPl91bmlxdWVfbmFtZXMgPSAwOwogIH0KCgogIGZ1bmN0aW9uIHNldFVuaXF1ZU5hbWVzKCR2YWx1ZSA9IDEpCiAgewogICAgJHRoaXMtPl91bmlxdWVfbmFtZXMgPSAoaW50KSR2YWx1ZTsKICB9CgoKICBmdW5jdGlvbiBzZXRTb3VyY2VMb2NhdGlvbigkcGF0aCkKICB7CiAgICBpZiggaXNfZGlyKCRwYXRoKSApCiAgICAgIHsKCSR0aGlzLT5fc3JjcGF0aCA9ICRwYXRoOwogICAgICB9CiAgfQoKCiAgZnVuY3Rpb24gc2V0RGVzdGluYXRpb25CYXNlKCRwYXRoKQogIHsKICAgICR0aGlzLT5fZGVzdHBhdGggPSAkcGF0aDsKICB9CgoKICBmdW5jdGlvbiBoYW5kbGVJbWFnZSgkcHJvZHVjdF9pZCwkZmlsZW5hbWUpCiAgewogICAgJGRlc3RwYXRoID0gY21zX2pvaW5fcGF0aCgkdGhpcy0+X2Rlc3RwYXRoLCdwcm9kdWN0XycuJHByb2R1Y3RfaWQpOwogICAgJG1vZCA9JiAkdGhpcy0+X21vZHVsZTsKICAgIGNnZV9kaXI6Om1rZGlycigkZGVzdHBhdGgpOwogICAgaWYoICFpc19kaXIoJGRlc3RwYXRoKSApIHJldHVybiBGQUxTRTsKCiAgICAkZXh0ID0gc3Vic3RyKCRmaWxlbmFtZSwgc3RycnBvcygkZmlsZW5hbWUsICcuJykgKyAxKTsKICAgICRhbGxvd2VkID0gZXhwbG9kZSgnLCcsJG1vZC0+R2V0UHJlZmVyZW5jZSgnYWxsb3dlZF9pbWFnZXR5cGVzJykpOwogICAgaWYoICFpbl9hcnJheSgkZXh0LCRhbGxvd2VkKSApIHJldHVybiBGQUxTRTsKCiAgICAkc3Jjc3BlYyA9IGNtc19qb2luX3BhdGgoJHRoaXMtPl9zcmNwYXRoLCRmaWxlbmFtZSk7CiAgICBpZiggIWZpbGVfZXhpc3RzKCRzcmNzcGVjKSApIHJldHVybiBGQUxTRTsKCiAgICAkcG9zdGZpeCA9IDA7CiAgICAkZm5hbWUgPSBzdWJzdHIoJGZpbGVuYW1lLDAsc3RybGVuKCRmaWxlbmFtZSktc3RybGVuKCRleHQpKTsKICAgICRkZXN0c3BlYyA9IGNtc19qb2luX3BhdGgoJGRlc3RwYXRoLCRmaWxlbmFtZSk7CiAgICB3aGlsZSggZmlsZV9leGlzdHMoJGRlc3RzcGVjKSAmJiAkdGhpcy0+X3VuaXF1ZV9uYW1lcyAmJiAoJHBvc3RmaXggPCAxMDApICkKICAgICAgewoJJHBvc3RmaXgrKzsKCSRkZXN0c3BlYyA9IGNtc19qb2luX3BhdGgoJGRlc3RwYXRoLCRmbmFtZS4nXycuJHBvc3RmaXguJGV4dCk7CiAgICAgIH0KICAgIGlmKCBmaWxlX2V4aXN0cygkZGVzdHNwZWMpICkgcmV0dXJuIEZBTFNFOwoKICAgIC8vIHdlIGhhdmUgdGhlIHNvdXJjZSBuYW1lLCBhbmQgZGVzdGluYXRpb24gbmFtZQogICAgLy8gY29weSB0aGUgZmlsZQogICAgQGNvcHkoJHNyY3NwZWMsJGRlc3RzcGVjKTsKICAgIGlmKCAhZmlsZV9leGlzdHMoJGRlc3RzcGVjKSApIHJldHVybiBGQUxTRTsKICAgIHJldHVybiBiYXNlbmFtZSgkZGVzdHNwZWMpOwogIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.productsCsvImporter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmZpbmFsIGNsYXNzIHByb2R1Y3RzQ3N2SW1wb3J0ZXIKewogICAgdmFyICRfZGVmc19ieW5hbWU7CiAgICB2YXIgJF9kZWZzX2J5aW5kZXg7CiAgICB2YXIgJF9yZWNvcmQ7CiAgICB2YXIgJF9saW5lbnVtOwogICAgdmFyICRfbGluZTsKICAgIHZhciAkX2RlbGltOwogICAgdmFyICRfZXJyb3JzOwogICAgdmFyICRfbW9kdWxlOwogICAgdmFyICRfZmllbGRfbWFwOwogICAgdmFyICRfY2F0ZWdvcnlfbWFwOwogICAgdmFyICRfaGllcmFyY2h5X21hcDsKICAgIHZhciAkX3BvbGljeTsKICAgIHZhciAkX2ltYWdlSGFuZGxlcjsKCgogICAgcHVibGljIGZ1bmN0aW9uIHByb2R1Y3RzQ3N2SW1wb3J0ZXIoJiRtb2QpCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2R1bGUgPSAkbW9kOwogICAgICAgICR0aGlzLT5fbGluZW51bSA9IDA7CiAgICAgICAgJHRoaXMtPl9kZWxpbSA9ICd8JzsKICAgICAgICAkdGhpcy0+X3BvbGljeSA9IGFycmF5KCk7CiAgICB9CgoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRJbWFnZUhhbmRsZXIoJiRoYW5kbGVyKQogICAgewogICAgICAgIGlmKCAhaXNfb2JqZWN0KCRoYW5kbGVyKSApIHJldHVybiBGQUxTRTsKICAgICAgICAkdGhpcy0+X2ltYWdlSGFuZGxlciA9ICRoYW5kbGVyOwogICAgICAgIHJldHVybiBUUlVFOwogICAgfQoKCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0UG9saWN5VmFsdWUoJGtleSwkdmFsdWUpCiAgICB7CiAgICAgICAgJHRoaXMtPl9wb2xpY3lbJGtleV0gPSAkdmFsdWU7CiAgICB9CgoKICAgIHByaXZhdGUgZnVuY3Rpb24gX2dldFBvbGljeVZhbHVlKCRrZXksJGRmbHQgPSBGQUxTRSkKICAgIHsKICAgICAgICBpZiggIWlzc2V0KCR0aGlzLT5fcG9saWN5WyRrZXldKSApIHJldHVybiAkZGZsdDsKICAgICAgICByZXR1cm4gJHRoaXMtPl9wb2xpY3lbJGtleV07CiAgICB9CgoKICAgIHByaXZhdGUgZnVuY3Rpb24gX3NldEVycm9yKCR0bXApCiAgICB7CiAgICAgICAgaWYoICFpc19hcnJheSgkdGhpcy0+X2Vycm9ycykgKSAkdGhpcy0+X2Vycm9ycyA9IGFycmF5KCk7CiAgICAgICAgJHRoaXMtPl9lcnJvcnNbXSA9ICR0aGlzLT5fbGluZW51bS4nOiAnLiR0bXA7CiAgICB9CgoKICAgIHB1YmxpYyBmdW5jdGlvbiBjbGVhckVycm9ycygpCiAgICB7CiAgICAgICAgJHRoaXMtPl9lcnJvcnMgPSBhcnJheSgpOwogICAgfQoKCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0RXJyb3JzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9lcnJvcnM7CiAgICB9CgoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXREZWxpbSgkZGVsaW0pCiAgICB7CiAgICAgICAgaWYoIGVtcHR5KCRkZWxpbSkgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgJHRoaXMtPl9kZWxpbSA9ICRkZWxpbTsKICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KCgogICAgcHVibGljIGZ1bmN0aW9uIHNldEZpZWxkRGVmc0J5TmFtZSgkdG1wKQogICAgewogICAgICAgIGlmKCAhaXNfYXJyYXkoJHRtcCkgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgJHRoaXMtPl9kZWZzX2J5bmFtZSA9ICR0bXA7CiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CgoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRGaWVsZERlZnNCeUluZGV4KCR0bXApCiAgICB7CiAgICAgICAgaWYoICFpc19hcnJheSgkdG1wKSApIHJldHVybiBGQUxTRTsKICAgICAgICAkdGhpcy0+X2RlZnNfYnlpbmRleCA9ICR0bXA7CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9zZXRMaW5lKCR0bXApCiAgICB7CiAgICAgICAgJHRoaXMtPl9saW5lID0gJHRtcDsKICAgICAgICAkdGhpcy0+X2xpbmVudW0rKzsKICAgICAgICAkdGhpcy0+X3JlY29yZCA9IGNnZV9hcnJheTo6c21hcnRfZXhwbG9kZSgkdGhpcy0+X2xpbmUsJHRoaXMtPl9kZWxpbSk7CiAgICAgICAgaWYoIGVuZHN3aXRoKCR0bXAsJHRoaXMtPl9kZWxpbSkgKSAkdGhpcy0+X3JlY29yZFtdID0gJyc7CiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CgoKICAgIHByaXZhdGUgZnVuY3Rpb24gX2dldEZpZWxkSWQoJG5hbWUpCiAgICB7CiAgICAgICAgaWYoICFpc19hcnJheSgkdGhpcy0+X2ZpZWxkX21hcCkgKSB7CiAgICAgICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgaWQsbmFtZSx0eXBlIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMnOwogICAgICAgICAgICAkdG1wID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgICAgICAgICBpZiggaXNfYXJyYXkoJHRtcCkgKSAkdGhpcy0+X2ZpZWxkX21hcCA9IGNnZV9hcnJheTo6dG9faGFzaCgkdG1wLCduYW1lJyk7CiAgICAgICAgfQogICAgICAgIGlmKCBpc19hcnJheSgkdGhpcy0+X2ZpZWxkX21hcCkgJiYgaXNzZXQoJHRoaXMtPl9maWVsZF9tYXBbJG5hbWVdKSApIHJldHVybiAkdGhpcy0+X2ZpZWxkX21hcFskbmFtZV1bJ2lkJ107CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9nZXRGaWVsZFR5cGUoJG5hbWUpCiAgICB7CiAgICAgICAgaWYoICFpc19hcnJheSgkdGhpcy0+X2ZpZWxkX21hcCkgKSAkdG1wID0gJHRoaXMtPl9nZXRGaWVsZElkKCRuYW1lKTsKICAgICAgICBpZiggaXNfYXJyYXkoJHRoaXMtPl9maWVsZF9tYXApICYmIGlzc2V0KCR0aGlzLT5fZmllbGRfbWFwWyRuYW1lXSkgKSByZXR1cm4gJHRoaXMtPl9maWVsZF9tYXBbJG5hbWVdWyd0eXBlJ107CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9zZXRGaWVsZFZhbHVlKCRwcm9kdWN0X2lkLCRmaWQsJHZhbCkKICAgIHsKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgdmFsdWUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyBXSEVSRSBwcm9kdWN0X2lkID0gPyBBTkQgZmllbGRkZWZfaWQgPSA/JzsKICAgICAgICAkdG1wID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRwcm9kdWN0X2lkLCRmaWQpKTsKICAgICAgICBpZiggJHRtcCApIHsKICAgICAgICAgICAgaWYoICR2YWwgIT0gJycgKSB7CiAgICAgICAgICAgICAgICAkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIFNFVCB2YWx1ZSA9ID8gV0hFUkUgcHJvZHVjdF9pZCA9ID8gQU5EIGZpZWxkZGVmX2lkID0gPyc7CiAgICAgICAgICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkdmFsLCRwcm9kdWN0X2lkLCRmaWQpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyBXSEVSRSBwcm9kdWN0X2lkID0gPyBBTkQgZmllbGRkZWZfaWQgPSA/JzsKICAgICAgICAgICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR2YWwsJHByb2R1Y3RfaWQsJGZpZCkpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJGRiciA9IHRydWU7CiAgICAgICAgICAgIGlmKCAkdmFsICE9ICcnICkgewogICAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzICh2YWx1ZSwgcHJvZHVjdF9pZCwgZmllbGRkZWZfaWQpIFZBTFVFUyAoPyw/LD8pJzsKICAgICAgICAgICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR2YWwsJHByb2R1Y3RfaWQsJGZpZCkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmKCAhJGRiciApIHsKICAgICAgICAgICAgJHRoaXMtPl9zZXRFcnJvcignUHJvYmxlbSBpbnNlcnRpbmcgZmllbGQgdmFsdWUgZm9yIGZpZWxkICcuJGZpZCk7CiAgICAgICAgICAgIHJldHVybiBGQUxTRTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CgoKICAgIHByaXZhdGUgZnVuY3Rpb24gX2dldENhdGVnb3J5SWQoJG5hbWUpCiAgICB7CiAgICAgICAgaWYoICFpc19hcnJheSgkdGhpcy0+X2NhdGVnb3J5X21hcCkgKSB7CiAgICAgICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgaWQsbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyc7CiAgICAgICAgICAgICR0bXAgPSAkZGItPkdldEFycmF5KCRxdWVyeSk7CiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkdG1wKSApICR0aGlzLT5fY2F0ZWdvcnlfbWFwID0gY2dlX2FycmF5Ojp0b19oYXNoKCR0bXAsJ25hbWUnKTsKICAgICAgICB9CiAgICAgICAgaWYoIGlzX2FycmF5KCR0aGlzLT5fY2F0ZWdvcnlfbWFwKSAmJiBpc3NldCgkdGhpcy0+X2NhdGVnb3J5X21hcFskbmFtZV0pICkgcmV0dXJuICR0aGlzLT5fY2F0ZWdvcnlfbWFwWyRuYW1lXVsnaWQnXTsKICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgoKICAgIHByaXZhdGUgZnVuY3Rpb24gX19nZXRIaWVyYXJjaHlDYWNoZSgpCiAgICB7CiAgICAgICAgLy8gbWFrZSBzdXJlIHdlIGhhdmUgZXZlcnl0aGluZyBpbiBtZW1vcnkuCiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIGlkLGxvbmdfbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5JzsKICAgICAgICAkdG1wID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgICAgIGlmKCBpc19hcnJheSgkdG1wKSApICR0aGlzLT5faGllcmFyY2h5X21hcCA9IGNnZV9hcnJheTo6dG9faGFzaCgkdG1wLCdsb25nX25hbWUnKTsKICAgIH0KCgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfc2V0SGllcmFyY2h5SWQoJHByb2R1Y3RfaWQsJGhpZXJfaWQpCiAgICB7CiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBoaWVyYXJjaHlfaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hpZXIgV0hFUkUgcHJvZHVjdF9pZCA9ID8nOwogICAgICAgICR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHByb2R1Y3RfaWQpKTsKICAgICAgICBpZiggJHRtcCApIHsKICAgICAgICAgICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hpZXIgU0VUIGhpZXJhcmNoeV9pZCA9ID8gV0hFUkUgcHJvZHVjdF9pZCA9ID8nOwogICAgICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkaGllcl9pZCwkcHJvZHVjdF9pZCkpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHRvaGllciAocHJvZHVjdF9pZCxoaWVyYXJjaHlfaWQpIFZBTFVFUyAoPyw/KSc7CiAgICAgICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRwcm9kdWN0X2lkLCRoaWVyX2lkKSk7CiAgICAgICAgfQogICAgICAgIGlmKCAhJGRiciApIHsKICAgICAgICAgICAgJHRoaXMtPl9zZXRFcnJvcigncHJvYmxlbSBhZGp1c3RpbmcgaGllcmFyY2h5IGZvciAnLiRwcm9kdWN0X2lkKTsKICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgIH0KICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9nZXRIaWVyYXJjaHlJZCgkaGllcikKICAgIHsKICAgICAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5faGllcmFyY2h5X21hcCkgKSAkdGhpcy0+X19nZXRIaWVyYXJjaHlDYWNoZSgpOwogICAgICAgIGlmKCAkdGhpcy0+X2dldFBvbGljeVZhbHVlKCdjcmVhdGVfaGllcmFyY2h5JykgKSB7CiAgICAgICAgICAgIGlmKCAoaXNfYXJyYXkoJHRoaXMtPl9oaWVyYXJjaHlfbWFwKSAmJiAhaXNzZXQoJHRoaXMtPl9oaWVyYXJjaHlfbWFwWyRoaWVyXSkpIHx8ICFpc19hcnJheSgkdGhpcy0+X2hpZXJhcmNoeV9tYXApICkgewogICAgICAgICAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCiAgICAgICAgICAgICAgICAvLyB3ZSBoYXZlIGV2ZXJ5dGhpbmcgaW4gbWVtb3J5CiAgICAgICAgICAgICAgICAvLyBpdCdzIGp1c3Qgbm90IHRoZXJlCiAgICAgICAgICAgICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNyZWF0ZSBpdC4KICAgICAgICAgICAgICAgICRwYXRoID0gZXhwbG9kZSgnIHwgJywkaGllcik7CiAgICAgICAgICAgICAgICAkcGFyZW50ID0gLTE7CiAgICAgICAgICAgICAgICAkaXRlbV9vcmRlciA9IDE7CiAgICAgICAgICAgICAgICAkZnF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IFdIRVJFIG5hbWUgPSA/IEFORCBwYXJlbnRfaWQgPSA/JzsKICAgICAgICAgICAgICAgICRpcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkgKG5hbWUscGFyZW50X2lkKSBWQUxVRVMgKD8sPyknOwogICAgICAgICAgICAgICAgZm9yZWFjaCggJHBhdGggYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICAgICAkbmFtZSA9IHRyaW0oJG9uZSk7CiAgICAgICAgICAgICAgICAgICAgJG5hbWUgPSB0cmltKCRuYW1lLCciXCcnKTsKICAgICAgICAgICAgICAgICAgICBpZiggZW1wdHkoJG5hbWUpICkgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgJHRfaWQgPSAkZGItPkdldE9uZSgkZnF1ZXJ5LGFycmF5KCRuYW1lLCRwYXJlbnQpKTsKICAgICAgICAgICAgICAgICAgICBpZiggISR0X2lkICkgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBnb3R0YSBpbnNlcnQgaXQKICAgICAgICAgICAgICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCRpcXVlcnksYXJyYXkoJG5hbWUsJHBhcmVudCkpOwogICAgICAgICAgICAgICAgICAgICAgICAkdF9pZCA9ICRkYi0+SW5zZXJ0X0lEKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5fbW9kdWxlLT5VcGRhdGVIaWVyYXJjaHlQb3NpdGlvbnMoKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJHBhcmVudCA9ICR0X2lkOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyByZWZyZXNoIHRoZSBtZW1vcnkKICAgICAgICAgICAgJHRoaXMtPl9fZ2V0SGllcmFyY2h5Q2FjaGUoKTsKICAgICAgICB9CgogICAgICAgIC8vIHJldHVybiB0aGUgZGVzaXJlZCB2YWx1ZQogICAgICAgIGlmKCBpc19hcnJheSgkdGhpcy0+X2hpZXJhcmNoeV9tYXApICYmIGlzc2V0KCR0aGlzLT5faGllcmFyY2h5X21hcFskaGllcl0pICkgcmV0dXJuICR0aGlzLT5faGllcmFyY2h5X21hcFskaGllcl1bJ2lkJ107CgogICAgICAgIC8vIHRoaXMgaWEgcmVhbGx5IGEgcHJvYmxlbQogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfaGFzRmllbGQoJG5hbWUpCiAgICB7CiAgICAgICAgaWYoICFpc19hcnJheSgkdGhpcy0+X3JlY29yZCkgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgaWYoICFpc19hcnJheSgkdGhpcy0+X2RlZnNfYnluYW1lKSApIHJldHVybiBGQUxTRTsKICAgICAgICBpZiggIWlzc2V0KCR0aGlzLT5fZGVmc19ieW5hbWVbJG5hbWVdKSApIHJldHVybiBGQUxTRTsKICAgICAgICAkaWR4ID0gJHRoaXMtPl9kZWZzX2J5bmFtZVskbmFtZV07CiAgICAgICAgaWYoICRpZHggPj0gY291bnQoJHRoaXMtPl9yZWNvcmQpICkgcmV0dXJuIEZBTFNFOwogICAgICAgIHJldHVybiAkaWR4OwogICAgfQoKCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9nZXRGaWVsZCgkbmFtZSwkZGZsdCA9IEZBTFNFKQogICAgewogICAgICAgICRpZHggPSAkdGhpcy0+X2hhc0ZpZWxkKCRuYW1lKTsKICAgICAgICBpZiggJGlkeCA9PT0gRkFMU0UgKSByZXR1cm4gJGRmbHQ7CiAgICAgICAgJHZhbCA9IHRyaW0oJHRoaXMtPl9yZWNvcmRbJGlkeF0sJ1wnIicpOwogICAgICAgIHJldHVybiAkdmFsOwogICAgfQoKCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9nZXREZWZDb3VudCgpCiAgICB7CiAgICAgICAgcmV0dXJuIGNvdW50KCR0aGlzLT5fZGVmc19ieWluZGV4KTsKICAgIH0KCgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0RmllbGRDb3VudCgpICB7CiAgICAgICAgcmV0dXJuIGNvdW50KCR0aGlzLT5fcmVjb3JkKTsKICAgIH0KCgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0Q3VycmVuY3koJHN0cikKICAgIHsKICAgICAgICAkTG9jYWxlSW5mbyA9IGxvY2FsZWNvbnYoKTsKICAgICAgICAkY3VycmVuY3lfc3ltYm9sID0gJyQnOwogICAgICAgIGlmKCBpc3NldCgkTG9jYWxlSW5mb1snY3VycmVuY3lfc3ltYm9sJ10pICYmICRMb2NhbGVJbmZvWydjdXJyZW5jeV9zeW1ib2wnXSAhPSAnJyApICRjdXJyZW5jeV9zeW1ib2wgPSAkTG9jYWxlSW5mb1snY3VycmVuY3lfc3ltYm9sJ107CgogICAgICAgICRzdHIgPSB0cmltKCRzdHIpOwogICAgICAgICRzdHIgPSB0cmltKCRzdHIsJGN1cnJlbmN5X3N5bWJvbCk7CiAgICAgICAgJHN0ciA9IHN0cl9yZXBsYWNlKCRMb2NhbGVJbmZvWyJtb25fdGhvdXNhbmRzX3NlcCJdICwgIiIsICRzdHIpOwogICAgICAgICRzdHIgPSBzdHJfcmVwbGFjZSgkTG9jYWxlSW5mb1sibW9uX2RlY2ltYWxfcG9pbnQiXSAsICIuIiwgJHN0cik7CiAgICAgICAgJHZhbCA9IGZsb2F0dmFsKCRzdHIpOwogICAgICAgIHJldHVybiAkdmFsOwogICAgfQoKCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9nZXRGaWVsZE5hbWVzTGlrZSgkcHJlZml4KQogICAgewogICAgICAgIGlmKCAhaXNfYXJyYXkoJHRoaXMtPl9kZWZzX2J5aW5kZXgpICkgcmV0dXJuIEZBTFNFOwogICAgICAgICRyZXMgPSBhcnJheSgpOwogICAgICAgIGZvcigkaSA9IDA7ICRpIDwgY291bnQoJHRoaXMtPl9kZWZzX2J5aW5kZXgpOyAkaSsrICkgewogICAgICAgICAgICAkdG1wID0gdHJpbSh0cmltKCR0aGlzLT5fZGVmc19ieWluZGV4WyRpXSksJ1wnIicpOwogICAgICAgICAgICBpZiggc3RhcnRzd2l0aCgkdG1wLCRwcmVmaXgpICkgJHJlc1tdID0gJHRtcDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyZXM7CiAgICB9CgoKICAgIHByaXZhdGUgZnVuY3Rpb24gX2hhbmRsZUZpcnN0TGluZSgpCiAgICB7CiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICAkbm93ID0gJGRiLT5EYlRpbWVTdGFtcCh0aW1lKCkpOwoKICAgICAgICAvLyAwLiAgR2V0IHRoZSBmaWVsZCBkZWZpbml0aW9ucwogICAgICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0aGlzLT5fcmVjb3JkKTsgJGkrKyApIHsKICAgICAgICAgICAgJHRtcCA9IHRyaW0odHJpbSgkdGhpcy0+X3JlY29yZFskaV0pLCciXCcnKTsKICAgICAgICAgICAgJGJ5bmFtZVskdG1wXSA9ICRpOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+X2RlZnNfYnluYW1lID0gJGJ5bmFtZTsKICAgICAgICAkdGhpcy0+X2RlZnNfYnlpbmRleCA9ICR0aGlzLT5fcmVjb3JkOwoKCiAgICAgICAgLy8gMS4gZmlyc3QgbWFrZSBzdXJlIHdlIGhhdmUgYWxsIHRoZSByZXF1aXJlZCBmaWVsZHMuCiAgICAgICAgJHJlcXVpcmVkX2ZpZWxkcyA9IGV4cGxvZGUoJywnLCcjRkxBRywjbmFtZSwjcHJpY2UnKTsKICAgICAgICBmb3JlYWNoKCAkcmVxdWlyZWRfZmllbGRzIGFzICRvbmUgKSB7CiAgICAgICAgICAgIGlmKCAhYXJyYXlfa2V5X2V4aXN0cygkb25lLCR0aGlzLT5fZGVmc19ieW5hbWUpICkgewogICAgICAgICAgICAgICAgJHRoaXMtPl9zZXRFcnJvcignbWlzc2luZyByZXF1aXJlZCBmaWVsZCAnLiRvbmUpOwogICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyAyLiBnbyB0aHJvdWdoIGFuZCBnZXQgY2F0ZWdvcmllcwogICAgICAgIC8vIGFuZCBtYWtlIHN1cmUgdGhleSBleGlzdAogICAgICAgIGlmKCAkdGhpcy0+X2dldFBvbGljeVZhbHVlKCdjcmVhdGVfY2F0ZWdvcmllcycpICkgewogICAgICAgICAgICAkY2F0cyA9ICR0aGlzLT5fZ2V0RmllbGROYW1lc0xpa2UoJyNDQVQnKTsKICAgICAgICAgICAgaWYoIGlzX2FycmF5KCRjYXRzKSApIHsKICAgICAgICAgICAgICAgICRmcXVlcnkgPSAnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yaWVzIFdIRVJFIG5hbWUgPSA/JzsKICAgICAgICAgICAgICAgICRpcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19jYXRlZ29yaWVzIChuYW1lLGNyZWF0ZV9kYXRlLG1vZGlmaWVkX2RhdGUpIFZBTFVFUyAoPywkbm93LCRub3cpIjsKICAgICAgICAgICAgICAgIGZvcmVhY2goICRjYXRzIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICAgICAgJHRtcCA9IHRyaW0oc3Vic3RyKCRvbmUsNSkpOwogICAgICAgICAgICAgICAgICAgICR0bXAgPSB0cmltKCR0bXAsJyJcJycpOwogICAgICAgICAgICAgICAgICAgIGRlYnVnX3RvX2xvZygiaW1wb3J0IGNhdGVnb3J5OiAnLiR0bXAiKTsKICAgICAgICAgICAgICAgICAgICBpZiggZW1wdHkoJHRtcCkgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAkdF9pZCA9ICRkYi0+R2V0T25lKCRmcXVlcnksYXJyYXkoJHRtcCkpOwogICAgICAgICAgICAgICAgICAgIGlmKCAhJHRfaWQgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9vcHMsIGdvdHRhIGFkZCBpdAogICAgICAgICAgICAgICAgICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRpcXVlcnksYXJyYXkoJHRtcCkpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiggISRkYnIgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X3NldEVycm9yKCdwcm9ibGVtIGNyZWF0aW5nIGNhdGVnb3J5ICcuJHRtcCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X3NldEVycm9yKCdERUJVRzogJy4kZGItPnNxbC4nIC0tICcuJGRiLT5FcnJvck1zZygpKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gMy4gdGhlbiBmaWVsZHMKICAgICAgICAvLyBhbmQgbWFrZSBzdXJlIHRoZXkgZXhpc3QKICAgICAgICBpZiggJHRoaXMtPl9nZXRQb2xpY3lWYWx1ZSgnY3JlYXRlX2ZpZWxkcycpICkgewogICAgICAgICAgICAkZmllbGRzID0gJHRoaXMtPl9nZXRGaWVsZE5hbWVzTGlrZSgnI0ZJRUxEJyk7CiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkZmllbGRzKSApIHsKICAgICAgICAgICAgICAgICRmaWVsZF90eXBlcyA9IGFycmF5X2tleXMocHJvZHVjdF91dGlsczo6Z2V0X2ZpZWxkX3R5cGVzKCkpOwogICAgICAgICAgICAgICAgJGZxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBXSEVSRSBuYW1lID0gPyc7CiAgICAgICAgICAgICAgICAkb3F1ZXJ5ID0gJ1NFTEVDVCBtYXgoaXRlbV9vcmRlcikgKyAxIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMnOwogICAgICAgICAgICAgICAgJGlxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcwogICAgICAgICAgICAgICAgICAgICAgKG5hbWUsIHByb21wdCwgdHlwZSwgbWF4X2xlbmd0aCwgaXRlbV9vcmRlciwgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUsIHB1YmxpYykKICAgICAgICAgICAgICAgICAgIFZBTFVFUyg/LD8sPyw/LD8sJG5vdywkbm93LDEpIjsKICAgICAgICAgICAgICAgIGZvcmVhY2goICRmaWVsZHMgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICAgICAkdG1wID0gZXhwbG9kZSgnOicsJG9uZSk7CiAgICAgICAgICAgICAgICAgICAgaWYoIGNvdW50KCR0bXApICE9IDMgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAkdHlwZSA9IHRyaW0odHJpbSgkdG1wWzFdKSwnIlwnJyk7CiAgICAgICAgICAgICAgICAgICAgJG5hbWUgPSB0cmltKHRyaW0oJHRtcFsyXSksJyJcJycpOwogICAgICAgICAgICAgICAgICAgIGlmKCBlbXB0eSgkdHlwZSkgfHwgZW1wdHkoJG5hbWUpICkgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgaWYoICFpbl9hcnJheSgkdHlwZSwkZmllbGRfdHlwZXMpICkgewogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X3NldEVycm9yKCdJbnZhbGlkIGZpZWxkIHR5cGU6ICcuJHR5cGUuJyBmb3IgZmllbGQgJy4kbmFtZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGQUxTRTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJHRfaWQgPSAkZGItPkdldE9uZSgkZnF1ZXJ5LGFycmF5KCRuYW1lKSk7CiAgICAgICAgICAgICAgICAgICAgaWYoICEkdF9pZCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHByb21wdCA9IHVjd29yZHMoJG5hbWUpOwogICAgICAgICAgICAgICAgICAgICAgICAvLyBvb3BzLCBnb3R0YSBhZGQgaXQuCiAgICAgICAgICAgICAgICAgICAgICAgICRtYXggPSAkZGItPkdldE9uZSgkb3F1ZXJ5KTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICEkbWF4ICkgJG1heCA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJGlxdWVyeSxhcnJheSgkbmFtZSwkcHJvbXB0LCR0eXBlLDI1NSwkbWF4KSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAhJGRiciApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5fc2V0RXJyb3IoJ1Byb2JsZW0gY3JlYXRpbmcgZmllbGQgJy4kbmFtZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X3NldEVycm9yKCdERUJVRzogJy4kZGItPnNxbC4nIC0tICcuJGRiLT5FcnJvck1zZygpKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CgoKICAgIHByaXZhdGUgZnVuY3Rpb24gX2hhbmRsZVByb2R1Y3RMaW5lKCkKICAgIHsKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICRub3cgPSAkZGItPkRiVGltZVN0YW1wKHRpbWUoKSk7CgogICAgICAgIC8vIGdldCB0aGUgaW5mbyBmb3IgdGhlIHByb2R1Y3QKICAgICAgICAvLyBhbmQgaW5zZXJ0IGl0CiAgICAgICAgJHRub3cgPSB0cmltKCRub3csIiciKTsKICAgICAgICAkbmFtZSA9ICR0aGlzLT5fZ2V0RmllbGQoJyNuYW1lJyk7CiAgICAgICAgaWYoIGVtcHR5KCRuYW1lKSApIHsKICAgICAgICAgICAgJHRoaXMtPl9zZXRFcnJvcigiZW1wdHkgcHJvZHVjdCBuYW1lIik7CiAgICAgICAgICAgIHJldHVybiBGQUxTRTsKICAgICAgICB9CiAgICAgICAgJGZxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzIFdIRVJFIHByb2R1Y3RfbmFtZSA9ID8nOwogICAgICAgICR0X2lkID0gJGRiLT5HZXRPbmUoJGZxdWVyeSxhcnJheSgkbmFtZSkpOwogICAgICAgICRpc191cGRhdGUgPSBGQUxTRTsKICAgICAgICBpZiggJHRfaWQgKSB7CiAgICAgICAgICAgIC8vIHVoLW9oLCBpdCdzIGEgZHVwbGljYXRlIHByb2R1Y3QuCiAgICAgICAgICAgICRoYW5kbGVyID0gJHRoaXMtPl9nZXRQb2xpY3lWYWx1ZSgnb25fZHVwbGljYXRlX3Byb2R1Y3QnKTsKICAgICAgICAgICAgaWYoICRoYW5kbGVyID09ICdza2lwJyApIHsKICAgICAgICAgICAgICAgIC8vIHdvb2hvbywgd2UgZ2V0IHRvIHNraXAgdGhpcyB3aG9sZSBsaW5lCiAgICAgICAgICAgICAgICAkdGhpcy0+X3NldEVycm9yKCJkdXBsaWNhdGUgcHJvZHVjdCAkbmFtZSIpOwogICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYoICRoYW5kbGVyID09ICd1cGRhdGUnICkgewogICAgICAgICAgICAgICAgLy8gaXQncyBhbiB1cGRhdGUuLi4gbm90aGluZyBoZXJlLgogICAgICAgICAgICAgICAgJGlzX3VwZGF0ZSA9IFRSVUU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAvLyB1aC1vaCB3ZSBnb3R0YSBkZWxldGUgdGhpcyBleGlzdGluZyBwcm9kdWN0IGZpcnN0LgogICAgICAgICAgICAgICAgJHRoaXMtPl9tb2R1bGUtPkRlbGV0ZVByb2R1Y3QoJHRfaWQpOwogICAgICAgICAgICAgICAgJHRfaWQgPSBudWxsOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiggISR0X2lkICkgewogICAgICAgICAgICAkaXF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHMKICAgICAgICAgICAgICAgICAocHJvZHVjdF9uYW1lLGRldGFpbHMscHJpY2UsY3JlYXRlX2RhdGUsbW9kaWZpZWRfZGF0ZSx0YXhhYmxlLHN0YXR1cyx3ZWlnaHQsc2t1KQogICAgICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/LD8pIjsKICAgICAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkaXF1ZXJ5LGFycmF5KCR0aGlzLT5fZ2V0RmllbGQoJyNuYW1lJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X2dldEZpZWxkKCcjZGV0YWlscycsJycpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9nZXRDdXJyZW5jeSgkdGhpcy0+X2dldEZpZWxkKCcjcHJpY2UnLDApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5fZ2V0RmllbGQoJyNjcmVhdGVfZGF0ZScsJHRub3cpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9nZXRGaWVsZCgnI21vZGlmaWVkX2RhdGUnLCR0bm93KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5fZ2V0RmllbGQoJyN0YXhhYmxlJywxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5fZ2V0RmllbGQoJyNzdGF0dXMnLCdwdWJsaXNoZWQnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5fZ2V0RmllbGQoJyN3ZWlnaHQnLDApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9nZXRGaWVsZCgnI3NrdScsJycpKSk7CiAgICAgICAgICAgIGlmKCAhJGRiciApIHsKICAgICAgICAgICAgICAgICR0aGlzLT5fc2V0RXJyb3IoJ3Byb2R1Y3QgaW5zZXJ0IGZhaWxlZCcpOwogICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRwcm9kdWN0X2lkID0gJGRiLT5JbnNlcnRfSUQoKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIC8vIGl0J3MgYSBwcm9kdWN0IHVwZGF0ZS4KICAgICAgICAgICAgJHByb2R1Y3RfaWQgPSAkdF9pZDsKICAgICAgICAgICAgJHVxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cwogICAgICAgICAgICAgICAgIFNFVCBwcm9kdWN0X25hbWUgPSA/LCBkZXRhaWxzID0gPywgcHJpY2UgPSA/LCBtb2RpZmllZF9kYXRlID0gPywgdGF4YWJsZSA9ID8sIHN0YXR1cyA9ID8sIHdlaWdodCA9ID8sIHNrdSA9ID8KICAgICAgICAgICAgICAgICBXSEVSRSBpZCA9ID8nOwogICAgICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCR1cXVlcnksYXJyYXkoJHRoaXMtPl9nZXRGaWVsZCgnI25hbWUnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5fZ2V0RmllbGQoJyNkZXRhaWxzJywnJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X2dldEN1cnJlbmN5KCR0aGlzLT5fZ2V0RmllbGQoJyNwcmljZScsMCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9nZXRGaWVsZCgnI21vZGlmaWVkX2RhdGUnLCR0bm93KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5fZ2V0RmllbGQoJyN0YXhhYmxlJywxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5fZ2V0RmllbGQoJyNzdGF0dXMnLCdwdWJsaXNoZWQnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5fZ2V0RmllbGQoJyN3ZWlnaHQnLDApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9nZXRGaWVsZCgnI3NrdScsJycpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHByb2R1Y3RfaWQpKTsKICAgICAgICB9CgoKICAgICAgICAvLyBnZXQgdGhlIGhpZXJhcmNoeQogICAgICAgIC8vIGFuZCBpbnNlcnQgaXQKICAgICAgICAkaGllciA9ICR0aGlzLT5fZ2V0RmllbGQoJyNISUVSJyk7CiAgICAgICAgaWYoICRoaWVyICkgewogICAgICAgICAgICAkdG1wID0gZXhwbG9kZSgnPj4nLCRoaWVyKTsKICAgICAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKSB7CiAgICAgICAgICAgICAgICAkdG1wWyRpXSA9IHRyaW0odHJpbSgkdG1wWyRpXSksJyJcJycpOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRoaWVyID0gaW1wbG9kZSgnIHwgJywkdG1wKTsKCiAgICAgICAgICAgICRoaWQgPSAkdGhpcy0+X2dldEhpZXJhcmNoeUlkKCRoaWVyKTsKICAgICAgICAgICAgaWYoICRoaWQgKSAkdCA9ICR0aGlzLT5fc2V0SGllcmFyY2h5SWQoJHByb2R1Y3RfaWQsJGhpZCk7CiAgICAgICAgfQoKICAgICAgICAvLyBnZXQgdGhlIGluZm8gZm9yIGZpZWxkcwogICAgICAgIC8vIGFuZCBpbnNlcnQgdGhlbQogICAgICAgIGlmKCAkaXNfdXBkYXRlICYmICR0aGlzLT5fZ2V0UG9saWN5VmFsdWUoJ2NsZWFyZmllbGRzJykgKSB7CiAgICAgICAgICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyBXSEVSRSBwcm9kdWN0X2lkID0gPyc7CiAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHByb2R1Y3RfaWQpKTsKICAgICAgICB9CiAgICAgICAgJGZpZWxkcyA9ICR0aGlzLT5fZ2V0RmllbGROYW1lc0xpa2UoJyNGSUVMRCcpOwogICAgICAgIGlmKCBpc19hcnJheSgkZmllbGRzKSApIHsKICAgICAgICAgICAgZm9yZWFjaCggJGZpZWxkcyBhcyAkb25lICkgewogICAgICAgICAgICAgICAgJHRtcCA9IGV4cGxvZGUoJzonLCRvbmUpOwogICAgICAgICAgICAgICAgaWYoIGNvdW50KCR0bXApICE9IDMgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICRuYW1lID0gdHJpbSh0cmltKCR0bXBbMl0pLCciXCcnKTsKICAgICAgICAgICAgICAgICR0eXBlX2EgPSB0cmltKHRyaW0oJHRtcFsxXSksJyJcJycpOwogICAgICAgICAgICAgICAgJHZhbCA9ICR0aGlzLT5fZ2V0RmllbGQoJG9uZSk7CiAgICAgICAgICAgICAgICAkdmFsID0gdHJpbSh0cmltKCR2YWwpLCciXCcnKTsKCiAgICAgICAgICAgICAgICAkZmlkID0gJHRoaXMtPl9nZXRGaWVsZElkKCRuYW1lKTsKICAgICAgICAgICAgICAgIGlmKCAkZmlkID09PSBGQUxTRSApIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X3NldEVycm9yKCdmaWVsZCAnLiRuYW1lLicgbm90IGZvdW5kJyk7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJHR5cGUgPSAkdGhpcy0+X2dldEZpZWxkVHlwZSgkbmFtZSk7CiAgICAgICAgICAgICAgICBpZiggJHR5cGVfYSAhPSAkdHlwZSApIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X3NldEVycm9yKCdJbnZhbGlkIHR5cGUgZm9yIGZpZWxkICcuJG5hbWUpOwogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmKCAkdHlwZSA9PSAnc3Vic2NyaXB0aW9uJyApIGNvbnRpbnVlOyAgLy8gd2UgZG9uJ3QgaW1wb3J0IHRoZXNlLgoKICAgICAgICAgICAgICAgIGlmKCAkdHlwZSA9PSAnZGltZW5zaW9ucycgKSB7CiAgICAgICAgICAgICAgICAgICAgJHBhcnRzID0gZXhwbG9kZSgnLCcsJHZhbCk7CiAgICAgICAgICAgICAgICAgICAgaWYoIGNvdW50KCRwYXJ0cykgIT0gMyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9zZXRFcnJvcignSW52YWxpZCB2YWx1ZSBmb3IgZGltZW5zaW9ucyBmaWVsZCcpOwogICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJGRhdGEgPSBhcnJheSgnbGVuZ3RoJz0+JycsJ3dpZHRoJz0+JycsJ2hlaWdodCc9PicnKTsKICAgICAgICAgICAgICAgICAgICAkZXJyID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCggJHBhcnRzIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QoJGssJHYpID0gZXhwbG9kZSgnOicsJG9uZSwyKTsKICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoKCRrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2wnOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRhdGFbJ2xlbmd0aCddID0gJHY7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAndyc6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGF0YVsnd2lkdGgnXSA9ICR2OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2gnOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRhdGFbJ2hlaWdodCddID0gJHY7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5fc2V0RXJyb3IoJ0ludmFsaWQgdmFsdWUgZm9yIGRpbWVuc2lvbnMgZmllbGQnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRlcnIgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYoICRlcnIgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAkdmFsID0gc2VyaWFsaXplKCRkYXRhKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkaW5zZXJ0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGlmKCAkdHlwZSA9PSAnaW1hZ2UnKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gaXQncyBhbiBpbWFnZS4uLgogICAgICAgICAgICAgICAgICAgIGlmKCAhJHRoaXMtPl9nZXRQb2xpY3lWYWx1ZSgnaGFuZGxlX2ltYWdlcycpIHx8IGVtcHR5KCR2YWwpCiAgICAgICAgICAgICAgICAgICAgICAgIHx8IGVtcHR5KCR0aGlzLT5faW1hZ2VIYW5kbGVyKSB8fCAhaXNfb2JqZWN0KCR0aGlzLT5faW1hZ2VIYW5kbGVyKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UncmUgbm90IGhhbmRsaW5nIGltYWdlcywgb3IgdGhlIHZhbHVlIGlzIGVtcHR5LgogICAgICAgICAgICAgICAgICAgICAgICAkaW5zZXJ0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBidWlsZCBzb3VyY2UgbmFtZQogICAgICAgICAgICAgICAgICAgICAgICAkcmVzID0gJHRoaXMtPl9pbWFnZUhhbmRsZXItPmhhbmRsZUltYWdlKCRwcm9kdWN0X2lkLCR2YWwpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiggJHJlcyA9PSBGQUxTRSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5fc2V0RXJyb3IoJ3Byb2JsZW0gaGFuZGxpbmcgaW1hZ2UgJy4kdmFsKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbnNlcnQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSAkcmVzOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmKCAkaW5zZXJ0ICkgewogICAgICAgICAgICAgICAgICAgIC8vIGdvb2QgdG8gaW5zZXJ0LgogICAgICAgICAgICAgICAgICAgIGlmKCAhJHRoaXMtPl9zZXRGaWVsZFZhbHVlKCRwcm9kdWN0X2lkLCRmaWQsJHZhbCkgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSAvLyBmaWVsZHMuCiAgICAgICAgfQoKICAgICAgICAvLyBnZXQgdGhlIGluZm8gZm9yIGNhdGVnb3JpZXMKICAgICAgICAvLyBhbmQgaW5zZXJ0IHRoZW0KICAgICAgICAvLyBoZXJlIHNob3VsZCB3ZSBudWtlIGV4aXN0aW5nIGNhdGVnb3JpZXM/CiAgICAgICAgaWYoICRpc191cGRhdGUgJiYgJHRoaXMtPl9nZXRQb2xpY3lWYWx1ZSgnY2xlYXJjYXRlZ29yaWVzJykgKSB7CiAgICAgICAgICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcyBXSEVSRSBwcm9kdWN0X2lkID0gPyc7CiAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHByb2R1Y3RfaWQpKTsKICAgICAgICB9CiAgICAgICAgJGNhdHMgPSAkdGhpcy0+X2dldEZpZWxkTmFtZXNMaWtlKCcjQ0FUJyk7CiAgICAgICAgaWYoIGlzX2FycmF5KCRjYXRzKSApIHsKICAgICAgICAgICAgJGlxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcwogICAgICAgICAgICAgICAgIChwcm9kdWN0X2lkLGNhdGVnb3J5X2lkLGNyZWF0ZV9kYXRlLG1vZGlmaWVkX2RhdGUpIFZBTFVFUyAoPyw/LCRub3csJG5vdykiOwogICAgICAgICAgICBmb3JlYWNoKCAkY2F0cyBhcyAkb25lICkgewogICAgICAgICAgICAgICAgJHRtcCA9IGV4cGxvZGUoJzonLCRvbmUpOwogICAgICAgICAgICAgICAgaWYoIGNvdW50KCR0bXApICE9IDIgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICRuYW1lID0gdHJpbSh0cmltKCR0bXBbMV0pLCciXCcnKTsKICAgICAgICAgICAgICAgICR2YWwgPSAkdGhpcy0+X2dldEZpZWxkKCRvbmUpOwogICAgICAgICAgICAgICAgJHZhbCA9IHRyaW0odHJpbSgkdmFsKSwnIlwnJyk7CgogICAgICAgICAgICAgICAgJGNpZCA9ICR0aGlzLT5fZ2V0Q2F0ZWdvcnlJZCgkbmFtZSk7CiAgICAgICAgICAgICAgICBpZiggIShpbnQpJHZhbCAmJiAhJHRoaXMtPl9nZXRQb2xpY3lWYWx1ZSgnY2xlYXJjYXRlZ29yaWVzJykgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoICRjaWQgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRkcXVlcnkgPSAnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdWN0X2NhdGVnb3JpZXMgV0hFUkUgcHJvZHVjdF9pZCA9ID8gQU5EIGNhdGVnb3J5X2lkID0gPyc7CiAgICAgICAgICAgICAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkZHF1ZXJ5LGFycmF5KCRwcm9kdWN0X2lkLCRjaWQpKTsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLy8gZ2V0IHRoZSBjYXRlZ29yeSBpZCBmcm9tIGNhY2hlCiAgICAgICAgICAgICAgICBpZiggJGNpZCA9PT0gRkFMU0UgKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9zZXRFcnJvcignZmllbGQgJy4kbmFtZS4nIG5vdCBmb3VuZCcpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSBpZiggJHZhbCApIHsKICAgICAgICAgICAgICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRpcXVlcnksYXJyYXkoJHByb2R1Y3RfaWQsJGNpZCkpOwogICAgICAgICAgICAgICAgICAgIGlmKCAhJGRiciApICR0aGlzLT5fc2V0RXJyb3IoInByb2JsZW0gYXNzb2NpYXRpbmcgY2F0ZWdvcnkgJGNpZCB3aXRoIHByb2R1Y3QgJHByb2R1Y3RfaWQiKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gZ2V0IGF0dHJpYnV0ZXMKICAgICAgICAvLyBpbnNlcnQgdGhlbS4KICAgICAgICBpZiggJGlzX3VwZGF0ZSAmJiAkdGhpcy0+X2dldFBvbGljeVZhbHVlKCdjbGVhcmF0dHJpYnMnKSApIHsKICAgICAgICAgICAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlicyBXSEVSRSBwcm9kdWN0X2lkID0gPyc7CiAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHByb2R1Y3RfaWQpKTsKICAgICAgICB9CiAgICAgICAgJHRtcCA9ICR0aGlzLT5fZ2V0RmllbGQoJyNPUFRJT05TJyk7CiAgICAgICAgaWYoIGVtcHR5KCR0bXApICkgJHRtcCA9ICR0aGlzLT5fZ2V0RmllbGQoJyNBVFRSSUJTJyk7CiAgICAgICAgaWYoICFlbXB0eSgkdG1wKSApIHsKICAgICAgICAgICAgJGF0dHJpYnMgPSBleHBsb2RlKCctLScsJHRtcCk7CiAgICAgICAgICAgIGZvcmVhY2goICRhdHRyaWJzIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICAkb25lID0gdHJpbSgkb25lKTsKICAgICAgICAgICAgICAgICRvbmUgPSB0cmltKCRvbmUsJyJcJycpOwogICAgICAgICAgICAgICAgbGlzdCgkYXR0ciwkYWRqLCRza3UsJHFvaCkgPSBleHBsb2RlKCc6Jywkb25lKTsKICAgICAgICAgICAgICAgICRhdHRyID0gdHJpbSgkYXR0ciwnIlwnJyk7CiAgICAgICAgICAgICAgICAkYXR0ciA9IHRyaW0oJGF0dHIpOwogICAgICAgICAgICAgICAgJGFkaiA9IHRyaW0oJGFkaiwnIlwnJyk7CiAgICAgICAgICAgICAgICAkYWRqID0gdHJpbSgkYWRqKTsKICAgICAgICAgICAgICAgICRza3UgPSB0cmltKCRza3UsJyJcJycpOwogICAgICAgICAgICAgICAgJHNrdSA9IHRyaW0oJHNrdSk7CiAgICAgICAgICAgICAgICAkcW9oID0gdHJpbSgkcW9oLCciXCcnKTsKICAgICAgICAgICAgICAgICRxb2ggPSB0cmltKCRxb2gpOwogICAgICAgICAgICAgICAgJHFvaCA9IChpbnQpJHFvaDsKCiAgICAgICAgICAgICAgICBpZiggZW1wdHkoJGF0dHIpICkgY29udGludWU7CgogICAgICAgICAgICAgICAgLy8gYWRkIHRoZSBhdHRyaWJ1dGUgdmFsdWUKICAgICAgICAgICAgICAgIGlmKCAhJGF0dHJfaWQgKSB7CiAgICAgICAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlicwogICAgICAgICAgICAgICAgICAgIChwcm9kdWN0X2lkLHRleHQsYWRqdXN0bWVudCxza3UscW9oKSBWQUxVRVMgKD8sPyw/LD8sPyknOwogICAgICAgICAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHByb2R1Y3RfaWQsJGF0dHIsJGFkaiwkc2t1LCRxb2gpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSAvLyBmb3JlYWNoCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KCgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfdGVzdEZpcnN0TGluZSgmJG1lc3NhZ2VzKQogICAgewogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgogICAgICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0aGlzLT5fcmVjb3JkKTsgJGkrKyApIHsKICAgICAgICAgICAgJHRtcCA9IHRyaW0odHJpbSgkdGhpcy0+X3JlY29yZFskaV0pLCciXCcnKTsKICAgICAgICAgICAgJGJ5bmFtZVskdG1wXSA9ICRpOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+X2RlZnNfYnluYW1lID0gJGJ5bmFtZTsKICAgICAgICAkdGhpcy0+X2RlZnNfYnlpbmRleCA9ICR0aGlzLT5fcmVjb3JkOwoKICAgICAgICAkcmVxdWlyZWRfZmllbGRzID0gZXhwbG9kZSgnLCcsJyNGTEFHLCNuYW1lLCNwcmljZScpOwogICAgICAgIGZvcmVhY2goICRyZXF1aXJlZF9maWVsZHMgYXMgJG9uZSApIHsKICAgICAgICAgICAgaWYoICFhcnJheV9rZXlfZXhpc3RzKCRvbmUsJHRoaXMtPl9kZWZzX2J5bmFtZSkgKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+X3NldEVycm9yKCdtaXNzaW5nIHJlcXVpcmVkIGZpZWxkICcuJG9uZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICRtZXNzYWdlc1tdID0gJ2ZvdW5kIGFsbCByZXF1aXJlZCBmaWVsZHMnOwoKICAgICAgICAkY2F0cyA9ICR0aGlzLT5fZ2V0RmllbGROYW1lc0xpa2UoJyNDQVQnKTsKICAgICAgICBpZiggaXNfYXJyYXkoJGNhdHMpICkgewogICAgICAgICAgICBmb3JlYWNoKCAkY2F0cyBhcyAkb25lICkgewogICAgICAgICAgICAgICAgJGZxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMgV0hFUkUgbmFtZSA9ID8nOwoKICAgICAgICAgICAgICAgICR0bXAgPSB0cmltKHN1YnN0cigkb25lLDUpKTsKICAgICAgICAgICAgICAgICR0bXAgPSB0cmltKCR0bXAsJyJcJycpOwogICAgICAgICAgICAgICAgaWYoIGVtcHR5KCR0bXApICkgY29udGludWU7CiAgICAgICAgICAgICAgICAkdF9pZCA9ICRkYi0+R2V0T25lKCRmcXVlcnksYXJyYXkoJHRtcCkpOwogICAgICAgICAgICAgICAgaWYoICR0X2lkICkgewogICAgICAgICAgICAgICAgICAgICRtZXNzYWdlc1tdID0gJ2ZvdW5kIGV4aXN0aW5nIGNhdGVnb3J5ICcuJHRtcDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRtZXNzYWdlc1tdID0gJ3Vua25vd24gY2F0ZWdvcnkgJy4kdG1wOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkZmllbGRzID0gJHRoaXMtPl9nZXRGaWVsZE5hbWVzTGlrZSgnI0ZJRUxEJyk7CiAgICAgICAgaWYoIGlzX2FycmF5KCRmaWVsZHMpICkgewogICAgICAgICAgICAkZmllbGRfdHlwZXMgPSBhcnJheV9rZXlzKHByb2R1Y3RfdXRpbHM6OmdldF9maWVsZF90eXBlcygpKTsKICAgICAgICAgICAgJGZxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBXSEVSRSBuYW1lID0gPyc7CiAgICAgICAgICAgIGZvcmVhY2goICRmaWVsZHMgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICR0bXAgPSBleHBsb2RlKCc6Jywkb25lKTsKICAgICAgICAgICAgICAgIGlmKCBjb3VudCgkdG1wKSAhPSAzICkgY29udGludWU7CiAgICAgICAgICAgICAgICAkdHlwZSA9IHRyaW0odHJpbSgkdG1wWzFdKSwnIlwnJyk7CiAgICAgICAgICAgICAgICAkbmFtZSA9IHRyaW0odHJpbSgkdG1wWzJdKSwnIlwnJyk7CiAgICAgICAgICAgICAgICBpZiggZW1wdHkoJHR5cGUpIHx8IGVtcHR5KCRuYW1lKSApIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X3NldEVycm9yKCdJbnZhbGlkIGZpZWxkIGRlZmluaXRpb246ICcuJG9uZSk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYoICFpbl9hcnJheSgkdHlwZSwkZmllbGRfdHlwZXMpICkgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5fc2V0RXJyb3IoJ0ludmFsaWQgZmllbGQgdHlwZTogJy4kdHlwZSk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHRfaWQgPSAkZGItPkdldE9uZSgkZnF1ZXJ5LGFycmF5KCRuYW1lKSk7CiAgICAgICAgICAgICAgICBpZiggISR0X2lkICkgewogICAgICAgICAgICAgICAgICAgICRtZXNzYWdlc1tdID0gJ3Vua25vd24gZmllbGQgJy4kbmFtZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRtZXNzYWdlc1tdID0gJ2ZvdW5kIGZpZWxkICcuJG5hbWUuJyBvZiB0eXBlICcuJHR5cGU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiBUUlVFOwogICAgfQoKCiAgICBwcml2YXRlIGZ1bmN0aW9uIF90ZXN0TmV3UHJvZHVjdCgmJG1lc3NhZ2UpCiAgICB7CiAgICAgICAgLy8gbWFrZSBzdXJlIHdlIGhhdmUgdGhlIHJlcXVpcmVkIG51bWJlciBvZiBmaWVsZHMKICAgICAgICAvLyBhY2NvcmRpbmcgdG8gdGhlIGhlYWRlci4KICAgICAgICBpZiggJHRoaXMtPl9nZXRGaWVsZENvdW50KCkgPCAyICkgewogICAgICAgICAgICAkdGhpcy0+X3NldEVycm9yKCdpbnZhbGlkIGZpZWxkIGNvdW50ICgnLiR0aGlzLT5fZ2V0RmllbGRDb3VudCgpLicgb2YgZXhwZWN0ZWQgJy4kdGhpcy0+X2dldERlZkNvdW50KCkuJyknKTsKICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgIH0KICAgICAgICBpZiggJHRoaXMtPl9nZXRGaWVsZCgnI25hbWUnKSA9PSAnJyApIHsKICAgICAgICAgICAgJHRoaXMtPl9zZXRFcnJvcignbWlzc2luZyByZXF1aXJlZCBmaWVsZCAjbmFtZScpOwogICAgICAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KCgogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RMaW5lKCRsaW5lLCYkbWVzc2FnZXMpCiAgICB7CiAgICAgICAgJHBvcyA9IHN0cnBvcygkbGluZSwnLy8nKTsKICAgICAgICBpZiggJHBvcyAhPT0gRkFMU0UgKSAkbGluZSA9IHN1YnN0cigkbGluZSwwLCRwb3MpOwogICAgICAgICRsaW5lID0gdHJpbSgkbGluZSk7CiAgICAgICAgaWYoIGVtcHR5KCRsaW5lKSApIHJldHVybiBUUlVFOwoKICAgICAgICAkcmVzID0gJHRoaXMtPl9zZXRMaW5lKCRsaW5lKTsKICAgICAgICBpZiggJHJlcyA9PT0gRkFMU0UgKSByZXR1cm4gRkFMU0U7CgogICAgICAgIGlmKCAkdGhpcy0+X2xpbmVudW0gPT0gMSApIHsKICAgICAgICAgICAgJHJlcyA9ICR0aGlzLT5fdGVzdEZpcnN0TGluZSgkbWVzc2FnZXMpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJGZsYWcgPSBzdHJ0b3VwcGVyKCR0aGlzLT5fZ2V0RmllbGQoJyNGTEFHJykpOwogICAgICAgICAgICBpZiggJGZsYWcgPT0gJ1AnICkgewogICAgICAgICAgICAgICAgJHJlcyA9ICR0aGlzLT5fdGVzdE5ld1Byb2R1Y3QoJG1lc3NhZ2VzKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKCAkZmxhZyA9PSAnJyApIHsKICAgICAgICAgICAgICAgIC8vIGVtcHR5IGZsYWcsIGlnbm9yZSB0aGlzIGxpbmUuCiAgICAgICAgICAgICAgICAkcmVzID0gVFJVRTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICR0aGlzLT5fc2V0RXJyb3IoJ2ludmFsaWQgZmllbGQ6ICNGTEFHJyk7CiAgICAgICAgICAgICAgICAkcmVzID0gRkFMU0U7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyZXM7CiAgICB9CgoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVMaW5lKCRsaW5lKQogICAgewogICAgICAgIC8vIHRyaW0gb2ZmIGNvbW1lbnRzLgogICAgICAgICRwb3MxID0gc3RycG9zKCRsaW5lLCcvLycpOwogICAgICAgICRwb3MyID0gc3RycG9zKCRsaW5lLCdodHRwOi8vJyk7CiAgICAgICAgJHBvczMgPSBzdHJwb3MoJGxpbmUsJ2h0dHBzOi8vJyk7CiAgICAgICAgJHBvczQgPSBzdHJwb3MoJGxpbmUsJ2Z0cDovLycpOwogICAgICAgIGlmKCAkcG9zMSAhPSBGQUxTRSApIHsKICAgICAgICAgICAgaWYoICRwb3MyICE9PSBGQUxTRSAmJiAkcG9zMiA9PSAkcG9zMSAtIDUgKSB7CiAgICAgICAgICAgICAgICAvLyBpdHMgYW4gaHR0cCBsaW5rCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiggJHBvczMgIT09IEZBTFNFICYmICRwb3MzID09ICRwb3MxIC0gNiApIHsKICAgICAgICAgICAgICAgIC8vIGl0cyBhbiBodHRwcyBsaW5rCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiggJHBvczQgIT09IEZBTFNFICYmICRwb3M0ID09ICRwb3MxIC0gNCApIHsKICAgICAgICAgICAgICAgIC8vIGl0cyBhbiBmdHAgbGluawogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJGxpbmUgPSBzdWJzdHIoJGxpbmUsMCwkcG9zMSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJGxpbmUgPSB0cmltKCRsaW5lKTsKICAgICAgICBpZiggZW1wdHkoJGxpbmUpICkgcmV0dXJuIFRSVUU7CgogICAgICAgICRyZXMgPSAkdGhpcy0+X3NldExpbmUoJGxpbmUpOwogICAgICAgIGlmKCAkcmVzID09PSBGQUxTRSApIHJldHVybiBGQUxTRTsKICAgICAgICBpZiggJHRoaXMtPl9saW5lbnVtID09IDEgKSB7CiAgICAgICAgICAgICRyZXMgPSAkdGhpcy0+X2hhbmRsZUZpcnN0TGluZSgpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgaWYoICR0aGlzLT5fZ2V0RmllbGQoJyNGTEFHJykgPT0gJ1AnICkgewogICAgICAgICAgICAgICAgJHJlcyA9ICR0aGlzLT5fdGVzdE5ld1Byb2R1Y3QoJG1lc3NhZ2VzKTsKICAgICAgICAgICAgICAgIGlmKCAkcmVzICkgJHJlcyA9ICR0aGlzLT5faGFuZGxlUHJvZHVjdExpbmUoKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICR0aGlzLT5fc2V0RXJyb3IoJ2ludmFsaWQgZmllbGQ6ICNGTEFHJyk7CiAgICAgICAgICAgICAgICAkcmVzID0gRkFMU0U7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkcmVzOwogICAgfQoKCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gaXNfbmV3X3JlY29yZCgkbGluZSkKICAgIHsKICAgICAgICAvLyBhIGZ1bmN0aW9uIHRvIHRlc3QgaWYgdGhpcyBsaW5lIGRlbm90ZXMgdGhlIHN0YXJ0IG9mIGEgbmV3IHJlY29yZC4KICAgICAgICAkdmFsaWQgPSBhcnJheSgnI0ZMQUcnLCdQJywnIiNGTEFHIicsJyJQIicpOwoKICAgICAgICBmb3JlYWNoKCAkdmFsaWQgYXMgJG9uZSApIHsKICAgICAgICAgICAgJG9uZSAuPSAkdGhpcy0+X2RlbGltOwogICAgICAgICAgICBpZiggc3RhcnRzd2l0aCgkbGluZSwkb25lKSApIHJldHVybiBUUlVFOwogICAgICAgIH0KICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgoKICAgIHByaXZhdGUgZnVuY3Rpb24gbXlfZmdldHMoJGZoKQogICAgewogICAgICAgIGlmKCAhJGZoICkgcmV0dXJuOwogICAgICAgICRwb3MxID0gZnRlbGwoJGZoKTsKCiAgICAgICAgJGxpbmUgPSBmZ2V0cygkZmgpOwogICAgICAgIGlmKCBzdHJwb3MoJGxpbmUsIlxyIikgPT09IEZBTFNFICkgcmV0dXJuICRsaW5lOwoKICAgICAgICAvLyBsaW5lIGlzIHByb2JhYmx5IGEgY3JhcHB5IG1hYyBsaW5lLgogICAgICAgICRsZW4xID0gc3RybGVuKCRsaW5lKTsKICAgICAgICAkcG9zID0gc3RycG9zKCRsaW5lLCJcciIpOwoKICAgICAgICAkbGluZSA9IHN1YnN0cigkbGluZSwwLCRwb3MpOwogICAgICAgIGZzZWVrKCRmaCwoJGxlbjEgLSAkcG9zIC0xICkgKiAtMSxTRUVLX0NVUik7CiAgICAgICAgcmV0dXJuICRsaW5lOwogICAgfQoKCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3VucGFyc2VkX3JlY29yZCgkZmgpCiAgICB7CiAgICAgICAgJGxpbmUgPSAnJzsKICAgICAgICB3aGlsZSggIWZlb2YoJGZoKSApIHsKICAgICAgICAgICAgJHBvcyA9IGZ0ZWxsKCRmaCk7CiAgICAgICAgICAgICR0ZGF0YSA9ICR0aGlzLT5teV9mZ2V0cygkZmgpOwogICAgICAgICAgICBpZiggISR0aGlzLT5pc19uZXdfcmVjb3JkKCR0ZGF0YSkgKSB7CiAgICAgICAgICAgICAgICAkbGluZSAuPSAkdGRhdGE7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYoIHN0cmxlbigkbGluZSkgPiAwICkgewogICAgICAgICAgICAgICAgZnNlZWsoJGZoLCRwb3MpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGxpbmUgPSAkdGRhdGE7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJGxpbmU7CiAgICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.products_attrib.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmZpbmFsIGNsYXNzIHByb2R1Y3RzX2F0dHJpYiBpbXBsZW1lbnRzIEFycmF5QWNjZXNzCnsKICAgIHByaXZhdGUgc3RhdGljICRfa2V5cyA9IGFycmF5KCdpZCcsJ3Byb2R1Y3RfaWQnLCd0ZXh0JywnYWRqdXN0bWVudCcsJ3NrdScsJ3FvaCcsJ25vdGVzJywnaW9yZGVyJyk7CiAgICBwcml2YXRlICRfZGF0YSA9IGFycmF5KCdpZCc9PicnLCdwcm9kdWN0X2lkJz0+JycsJ3RleHQnPT4nJywnYWRqdXN0bWVudCc9PicnLCdza3UnPT4nJywncW9oJz0+JycsJ25vdGVzJz0+JycsJ2lvcmRlcic9Pi0xKTsKICAgIHByaXZhdGUgJF9kaXJ0eTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jbG9uZSgpCiAgICB7CiAgICAgICAgJHRoaXMtPl9kaXJ0eSA9IFRSVUU7CiAgICAgICAgJHRoaXMtPl9kYXRhWydpZCddID0gJyc7CiAgICAgICAgJHRoaXMtPl9kYXRhWydpb3JkZXInXSA9IC0xOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRHZXQoJGtleSkgewogICAgICAgIGlmKCAhaW5fYXJyYXkoJGtleSxzZWxmOjokX2tleXMpICkgewogICAgICAgICAgICB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdJbnZhbGlkIGtleSAnLiRrZXkuJyBzcGVjaWZpZWQgZm9yIHByb2R1Y3RzX2F0dHJpYiBvYmplY3QnKTsKICAgICAgICB9CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVska2V5XSkgKSByZXR1cm4gJHRoaXMtPl9kYXRhWyRrZXldOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRTZXQoJGtleSwkdmFsdWUpIHsKICAgICAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignSW52YWxpZCBrZXkgJy4ka2V5Licgc3BlY2lmaWVkIGZvciBwcm9kdWN0c19hdHRyaWIgb2JqZWN0Jyk7CiAgICAgICAgfQoKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAnaWQnOgogICAgICAgICAgICB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdpZCBjYW5ub3QgYmUgc2V0IGZvciB0aGUgcHJvZHVjdHNfYXR0cmliIG9iamVjdCcpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnaW9yZGVyJzoKICAgICAgICAgICAgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignaW9yZGVyIGNhbm5vdCBiZSBzZXQgZm9yIHRoZSBwcm9kdWN0c19hdHRyaWIgb2JqZWN0IGluIHRoaXMgbWFubmVyJyk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdwcm9kdWN0X2lkJzoKICAgICAgICAgICAgJHZhbHVlID0gKGludCkkdmFsdWU7CiAgICAgICAgICAgIGlmKCAkdmFsdWUgPCAxICkgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbigncHJvZHVjdCBpZCBjYW5ub3QgYmUgbmVnYXRpdmUgb3IgemVybyBmb3IgcHJvZHVjdHNfYXR0cmliIG9iamVjdCcpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAncW9oJzoKICAgICAgICAgICAgJHZhbHVlID0gKGludCkkdmFsdWU7CiAgICAgICAgICAgIGlmKCAkdmFsdWUgPCAwICkgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignUU9IIGNhbm5vdCBiZSBuZWdhdGl2ZSBmb3IgcHJvZHVjdHNfYXR0cmliIG9iamVjdCcpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAndGV4dCc6CiAgICAgICAgY2FzZSAnYWRqdXN0bWVudCc6CiAgICAgICAgY2FzZSAnc2t1JzoKICAgICAgICBjYXNlICdub3Rlcyc6CiAgICAgICAgICAgICR2YWx1ZSA9IHRyaW0oJHZhbHVlKTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gKHN0cmluZykkdmFsdWU7CiAgICAgICAgJHRoaXMtPl9kaXJ0eSA9IFRSVUU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIG9mZnNldFVuc2V0KCRrZXkpCiAgICB7CiAgICAgICAgaWYoICFpbl9hcnJheSgka2V5LHNlbGY6OiRfa2V5cykgKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ0ludmFsaWQga2V5ICcuJGtleS4nIHNwZWNpZmllZCBmb3IgcHJvZHVjdHNfYXR0cmliIG9iamVjdCcpOwogICAgICAgIH0KCiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2lkJzoKICAgICAgICBjYXNlICdpb3JvZGVyJzoKICAgICAgICAgICAgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbigiJGtleSBjYW5ub3QgYmUgdW5zZXQgZm9yIGEgIi5fX0NMQVNTX18uJyBvYmplY3QnKTsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB1bnNldCgkdGhpcy0+X2RhdGFbJGtleV0pOwogICAgICAgICAgICAkdGhpcy0+X2RpcnR5ID0gVFJVRTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRFeGlzdHMoJGtleSkKICAgIHsKICAgICAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignSW52YWxpZCBrZXkgJy4ka2V5Licgc3BlY2lmaWVkIGZvciBwcm9kdWN0c19hdHRyaWIgb2JqZWN0Jyk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9pbnNlcnQoKQogICAgewogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgogICAgICAgIGlmKCAkdGhpcy0+X2RhdGFbJ2lvcmRlciddIDwgMSApIHsKICAgICAgICAgICAgLy8gY2FsY3VsYXRlIGEgbmV3IGlvcmRlciBmb3IgdGhpcyBwcm9kdWN0CiAgICAgICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgTUFYKENPQUxFU0NFKGlvcmRlciwwKSkrMSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlicyBXSEVSRSBwcm9kdWN0X2lkID0gPyc7CiAgICAgICAgICAgICR0aGlzLT5fZGF0YVsnaW9yZGVyJ10gPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHRoaXMtPl9kYXRhWydwcm9kdWN0X2lkJ10pKTsKICAgICAgICB9CgogICAgICAgICRkYXRhID0gJHRoaXMtPl9kYXRhOwogICAgICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnMKICAgICAgICAgICAgICAocHJvZHVjdF9pZCx0ZXh0LGFkanVzdG1lbnQsc2t1LHFvaCxub3Rlcyxpb3JkZXIpCiAgICAgICAgICAgICAgVkFMVUVTICg/LD8sPyw/LD8sPyw/KSc7CiAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGRhdGFbJ3Byb2R1Y3RfaWQnXSwkZGF0YVsndGV4dCddLCRkYXRhWydhZGp1c3RtZW50J10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRhdGFbJ3NrdSddLCRkYXRhWydxb2gnXSwkZGF0YVsnbm90ZXMnXSwkZGF0YVsnaW9yZGVyJ10pKTsKICAgICAgICBpZiggISRkYnIgKSB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdTUUwgRVJST1I6ICcuJGRiLT5FcnJvck1zZygpLicgLS0gJy4kZGItPnNxbCk7CgogICAgICAgICR0aGlzLT5fZGF0YVsnaWQnXSA9ICRkYi0+SW5zZXJ0X0lEKCk7CiAgICAgICAgJHRoaXMtPl9kaXJ0eSA9IEZBTFNFOwogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gX3VwZGF0ZSgpCiAgICB7CiAgICAgICAgJGRhdGEgPSAkdGhpcy0+X2RhdGE7CgogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnMKICAgICAgICAgICAgICBTRVQgdGV4dCA9ID8sIGFkanVzdG1lbnQgPSA/LCBza3UgPSA/LCBxb2ggPSA/LCBub3RlcyA9ID8sIGlvcmRlciA9ID8sCiAgICAgICAgICAgICAgV0hFUkUgaWQgPSA/JzsKICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkZGF0YVsndGV4dCddLCRkYXRhWydhZGp1c3RtZW50J10sJGRhdGFbJ3NrdSddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkYXRhWydxb2gnXSwkZGF0YVsnbm90ZXMnXSwkZGF0YVsnaW9yZGVyJ10sJGRhdGFbJ2lkJ10pKTsKICAgICAgICAkdGhpcy0+X2RpcnR5ID0gRkFMU0U7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlKCkKICAgIHsKICAgICAgICBpZiggIWlzc2V0KCR0aGlzLT5fZGF0YVsncHJvZHVjdF9pZCddKSB8fCAkdGhpcy0+X2RhdGFbJ3Byb2R1Y3RfaWQnXSA8IDEgKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ0VhY2ggcHJvZHVjdHNfYXR0cmliIG9iamVjdCBuZWVkcyBhIHByb2R1Y3RfaWQnKTsKICAgICAgICB9CiAgICAgICAgaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ3RleHQnXSkgfHwgJHRoaXMtPl9kYXRhWyd0ZXh0J10gPT0gJycgKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ0VhY2ggcHJvZHVjdHNfYXR0cmliIG9iamVjdCBuZWVkcyBzb21lIHRleHQnKTsKICAgICAgICB9CiAgICAgICAgaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ2FkanVzdG1lbnQnXSkgfHwgJHRoaXMtPl9kYXRhWydhZGp1c3RtZW50J10gPT0gJycgKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ0VhY2ggcHJvZHVjdHNfYXR0cmliIG9iamVjdCBuZWVkcyBzb21lIGFkanVzdG1lbnQgdmFsdWUnKTsKICAgICAgICB9CiAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnUHJvZHVjdHMnKTsKICAgICAgICAkc2t1X3JlcXVpcmVkID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnc2t1cmVxdWlyZWQnLDApOwogICAgICAgIGlmKCAkc2t1X3JlcXVpcmVkICYmICghaXNzZXQoJHRoaXMtPl9kYXRhWydza3UnXSkgfHwgJHRoaXMtPl9kYXRhWydza3UnXSA9PSBudWxsKSApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignQSBza3UgaXMgcmVxdWlyZWQgZm9yIGEgcHJvZHVjdHNfYXR0cmliIG9iamVjdCcpOwogICAgICAgIH0KICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydza3UnXSkgJiYgJHRoaXMtPl9kYXRhWydza3UnXSAhPSAnJyApIHsKICAgICAgICAgICAgaWYoIHByb2R1Y3Rfb3BzOjpjaGVja19za3VfdXNlZCgkdGhpcy0+X2RhdGFbJ3NrdSddLCR0aGlzLT5fZGF0YVsncHJvZHVjdF9pZCddKSApIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ1NLVSAnLiR0aGlzLT5fZGF0YVsnc2t1J10uJyBpcyBhbHJlYWR5IGluIHVzZSBieSBhbm90aGVyIHByb2R1Y3QnKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2F2ZSgpCiAgICB7CiAgICAgICAgaWYoICEkdGhpcy0+X2RpcnR5ICkgcmV0dXJuOwogICAgICAgICR0aGlzLT52YWxpZGF0ZSgpOwoKICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydpZCddKSAmJiAkdGhpcy0+X2RhdGFbJ2lkJ10gIT0gJycgKSB7CiAgICAgICAgICAgICR0aGlzLT5fdXBkYXRlKCk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkdGhpcy0+X2luc2VydCgpOwogICAgICAgIH0KICAgIH0KCiAgICBwcm90ZWN0ZWQgc3RhdGljIGZ1bmN0aW9uICZsb2FkX2Zyb21fZGF0YSgkZGF0YSkKICAgIHsKICAgICAgICBmb3JlYWNoKCBzZWxmOjokX2tleXMgYXMgJGsgKSB7CiAgICAgICAgICAgIGlmKCAkayAhPSAnaWQnICYmICRrICE9ICdpb3JkZXInICYmICFpbl9hcnJheSgkayxhcnJheV9rZXlzKCRkYXRhKSkgKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCRrLicgaXMgbWlzc2luZyBmcm9tIGxvYWRlZCBhdHRyaWIgcmVjb3JkJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZm9yZWFjaCggYXJyYXlfa2V5cygkZGF0YSkgYXMgJGtleSApIHsKICAgICAgICAgICAgaWYoICFpbl9hcnJheSgka2V5LHNlbGY6OiRfa2V5cykgKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdVbmtub3duIG9yIGV4dHJhIGRhdGEgZXhpc3RzIGluIHRoZSBzdXBwbG9lZCBhdHRyaWIgcmVjb3JkJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICRvYiA9IG5ldyBwcm9kdWN0c19hdHRyaWI7CiAgICAgICAgJG9iLT5fZGF0YSA9ICRkYXRhOwogICAgICAgICRvYi0+X2RpcnR5ID0gVFJVRTsKICAgICAgICByZXR1cm4gJG9iOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbG9hZF9mcm9tX2Zvcm0oJHBhcmFtcykKICAgIHsKICAgICAgICBpZiggIWlzc2V0KCRwYXJhbXNbJ3Byb2RpZCddKSApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignTWlzc2luZyBwcm9kdWN0IGlkIHZhbHVlIGZyb20gZm9ybScpOwogICAgICAgIH0KICAgICAgICBpZiggIWlzc2V0KCRwYXJhbXNbJ3NrdSddKSAmJiAhaXNfYXJyYXkoJHBhcmFtc1snc2t1J10pICkgewogICAgICAgICAgICB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdNaXNzaW5nIFNLVSBkYXRhIGZyb20gZm9ybScpOwogICAgICAgIH0KICAgICAgICBpZiggIWlzc2V0KCRwYXJhbXNbJ3RleHQnXSkgJiYgIWlzX2FycmF5KCRwYXJhbXNbJ3RleHQnXSkgKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ01pc3NpbmcgVGV4dCBkYXRhIGZyb20gZm9ybScpOwogICAgICAgIH0KICAgICAgICBpZiggIWlzc2V0KCRwYXJhbXNbJ2FkanVzdG1lbnQnXSkgJiYgIWlzX2FycmF5KCRwYXJhbXNbJ2FkanVzdG1lbnQnXSkgKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ01pc3NpbmcgYWRqdXN0bWVudCBkYXRhIGZyb20gZm9ybScpOwogICAgICAgIH0KICAgICAgICBpZiggIWlzc2V0KCRwYXJhbXNbJ3FvaCddKSAmJiAhaXNfYXJyYXkoJHBhcmFtc1sncW9oJ10pICkgewogICAgICAgICAgICB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdNaXNzaW5nIHFvaCBpbmZvcm1hdGlvbiBmcm9tIGZvcm0nKTsKICAgICAgICB9CiAgICAgICAgaWYoICFpc3NldCgkcGFyYW1zWydub3RlcyddKSAmJiAhaXNfYXJyYXkoJHBhcmFtc1snbm90ZXMnXSkgKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ01pc3Npbmcgbm90ZXMgaW5mb3JtYXRpb24gZnJvbSBmb3JtJyk7CiAgICAgICAgfQogICAgICAgIGlmKCAoY291bnQoJHBhcmFtc1snc2t1J10pICE9IGNvdW50KCRwYXJhbXNbJ3RleHQnXSkpIHx8CiAgICAgICAgICAgIChjb3VudCgkcGFyYW1zWydza3UnXSkgIT0gY291bnQoJHBhcmFtc1snYWRqdXN0bWVudCddKSkgfHwKICAgICAgICAgICAgKGNvdW50KCRwYXJhbXNbJ3NrdSddKSAhPSBjb3VudCgkcGFyYW1zWydxb2gnXSkpIHx8CiAgICAgICAgICAgIChjb3VudCgkcGFyYW1zWydza3UnXSkgIT0gY291bnQoJHBhcmFtc1snbm90ZXMnXSkpICkgewogICAgICAgICAgICB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdJbnZhbGlkIHBhcmFtZXRlciBjb3VudCAobGVuZ3RoIG9mIHNrdSBmaWVsZCBkb2VzIG5vdCBtYXRjaCBvbmUgb2YgdGhlIG90aGVycycpOwogICAgICAgIH0KCiAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnUHJvZHVjdHMnKTsKICAgICAgICAkc2t1X3JlcXVpcmVkID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnc2t1cmVxdWlyZWQnLDApOwogICAgICAgICRpID0gMDsKICAgICAgICBmb3JlYWNoKCAkcGFyYW1zWydza3UnXSBhcyAkb25lICkgewogICAgICAgICAgICAkb25lID0gdHJpbSgkb25lKTsKICAgICAgICAgICAgaWYoICEkb25lICYmICRza3VfcmVxdWlyZWQgKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdTS1UgcmVxdWlyZWQgYXQgcm93ICcuJGkpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkaSA9IDE7CiAgICAgICAgZm9yZWFjaCggJHBhcmFtc1sndGV4dCddIGFzICRvbmUgKSB7CiAgICAgICAgICAgIGlmKCAhJG9uZSApIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ09wdGlvbiB0ZXh0IGVtcHR5IGF0IHJvdyAnLiRpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkaSsrOwogICAgICAgIH0KCiAgICAgICAgLy8gY2hlY2sgcW9oCiAgICAgICAgJGkgPSAxOwogICAgICAgIGZvcmVhY2goICRwYXJhbXNbJ3FvaCddIGFzICRvbmUgKSB7CiAgICAgICAgICAgIGlmKCAoaW50KSRvbmUgPCAwICkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignUU9IIGlzIG5lZ2F0aXZlIGF0IHJvdyAnLiRpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkaSsrOwogICAgICAgIH0KCiAgICAgICAgLy8gcHV0IGV2ZXJ5dGhpbmcgdG9nZXRoZXIuCiAgICAgICAgJG91dCA9IGFycmF5KCk7CiAgICAgICAgJGtleXMgPSBhcnJheSgndGV4dCcsJ2FkanVzdG1lbnQnLCdza3UnLCdxb2gnLCdub3RlcycpOwogICAgICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRwYXJhbXNbJ3NrdSddKTsgJGkrKyApIHsKICAgICAgICAgICAgJHJlYyA9IGFycmF5KCdwcm9kdWN0X2lkJz0+KGludCkkcGFyYW1zWydwcm9kaWQnXSk7CiAgICAgICAgICAgIGZvcmVhY2goICRrZXlzIGFzICRrZXkgKSB7CiAgICAgICAgICAgICAgICAkcmVjWyRrZXldID0gJHBhcmFtc1ska2V5XVskaV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJG9iaiA9IHNlbGY6OmxvYWRfZnJvbV9kYXRhKCRyZWMpOwogICAgICAgICAgICAkb2JqLT5fZGF0YVsnaW9yZGVyJ10gPSAkaSsxOwogICAgICAgICAgICAkb3V0W10gPSAkb2JqOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBsb2FkX2J5X3Byb2R1Y3QoJGlkKQogICAgewogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJzCiAgICAgICAgICAgICAgICAgIFdIRVJFIHByb2R1Y3RfaWQgPSA/IE9SREVSIEJZIGlvcmRlcic7CiAgICAgICAgJGRiciA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5LGFycmF5KChpbnQpJGlkKSk7CiAgICAgICAgaWYoICFpc19hcnJheSgkZGJyKSB8fCBjb3VudCgkZGJyKSA9PSAwICkgcmV0dXJuOwoKICAgICAgICAkcmVzID0gYXJyYXkoKTsKICAgICAgICBmb3JlYWNoKCAkZGJyIGFzICRvbmUgKSB7CiAgICAgICAgICAgICRyZXNbXSA9IHNlbGY6OmxvYWRfZnJvbV9kYXRhKCRvbmUpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGRlbGV0ZV9ieV9wcm9kdWN0KCRpZCkKICAgIHsKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnMKICAgICAgICAgICAgICBXSEVSRSBwcm9kdWN0X2lkID0gPyc7CiAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoKGludCkkaWQpKTsKICAgICAgICBpZiggISRkYnIgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.products_query.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIHByb2R1Y3RzX3F1ZXJ5IGltcGxlbWVudHMgQXJyYXlBY2Nlc3MKewogICAgcHJpdmF0ZSBzdGF0aWMgJF9rZXlzID0gYXJyYXkoJ3Byb2R1Y3RpZCcsJ3Byb2R1Y3RfaWQnLCdwcm9kdWN0bGlzdCcsJ2FsaWFzJywnY2F0ZWdvcnknLCdjYXRlZ29yeWlkJywnZXhjbHVkZWNhdCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGllcmFyY2h5JywnaGllcmFyY2h5aWQnLCdmaWVsZGlkJywnZmllbGR2YWwnLCdzb3J0b3JkZXInLCdza3UnLCdvcHRza3UnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2R1Y3RuYW1lbGlrZScsJ2Rlc2NsaWtlJywnc29ydGJ5Jywnc29ydHR5cGUnLCdwYWdlbGltaXQnLCdsaW1pdCcsJ3BhZ2UnLCdzdGF0dXMnLCdwcmljZXJhbmdlJywndXNlb3InLCdub2NoaWxkcmVuJyk7CiAgICBwcml2YXRlIHN0YXRpYyAkX3NvcnRpbmdzID0gYXJyYXkoJ2lkJywncHJvZHVjdF9uYW1lJywncHJpY2UnLCdjcmVhdGVfZGF0ZScsJ21vZGlmaWVkJywnc3RhdHVzJywnd2VpZ2h0JywncmFuZG9tJyk7CiAgICBwcml2YXRlICRfZGF0YSA9IGFycmF5KCk7CiAgICBwcml2YXRlICRfb3JpZ3Bhcm1zID0gbnVsbDsKICAgIHByaXZhdGUgJF9zb3J0ZmllbGQgPSAwOwogICAgcHJpdmF0ZSAkX2ZpZWxkX2V4cHJlc3Npb25zID0gYXJyYXkoKTsKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpc19rZXkoJHRlc3QpCiAgewoJaWYoIGluX2FycmF5KCR0ZXN0LHNlbGY6OiRfa2V5cykgKSByZXR1cm4gVFJVRTsKCXJldHVybiBGQUxTRTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkZGF0YSA9IGFycmF5KCkpCiAgewogICAgJHRoaXMtPl9vcmlncGFybXMgPSAkZGF0YTsKICAgICR0aGlzLT5yZXNldCgpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHJlc2V0KCkKICB7CiAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9QUk9EVUNUUyk7CiAgICAkdGhpcy0+X2RhdGFbJ3BhZ2VsaW1pdCddID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnc3VtbWFyeV9wYWdlbGltaXQnLDEwMCk7CiAgICAkdGhpcy0+X2RhdGFbJ3NvcnRieSddID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnc29ydGJ5JywncHJvZHVjdF9uYW1lJyk7CiAgICAkdGhpcy0+X2RhdGFbJ3NvcnRvcmRlciddID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnc29ydG9yZGVyJywnREVTQycpOwogICAgJHRoaXMtPl9kYXRhWydzdGF0dXMnXSA9ICdwdWJsaXNoZWQnOwoJJHRoaXMtPl9kYXRhWydwYWdlJ10gPSAxOwoJJHRoaXMtPl9maWVsZF9leHByZXNzaW9ucyA9IGFycmF5KCk7CgogICAgZm9yZWFjaCggJHRoaXMtPl9vcmlncGFybXMgYXMgJGtleSA9PiAkdmFsdWUgKSB7CiAgICAgICAgaWYoIGluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApICR0aGlzWyRrZXldID0gJHZhbHVlOwogICAgfQogIH0KCiAgcHVibGljIGZ1bmN0aW9uIG9mZnNldEdldCgka2V5KQogIHsKICAgIGlmKCAhaW5fYXJyYXkoJGtleSxzZWxmOjokX2tleXMpICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignR2V0OiBpbnZhbGlkIGtleSAnLiRrZXkuJyBzcGVjaWZpZWQgZm9yIHByb2R1Y3RzX3F1ZXJ5Jyk7CiAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWyRrZXldKSApIHJldHVybiAkdGhpcy0+X2RhdGFbJGtleV07CiAgfQoKICBwcml2YXRlIGZ1bmN0aW9uIF9yZXNldGlkZW50aWZpZXJzKCkKICB7CiAgICAgIHVuc2V0KCR0aGlzLT5fZGF0YVsncHJvZHVjdG5hbWVsaWtlJ10pOwogICAgICB1bnNldCgkdGhpcy0+X2RhdGFbJ3NrdSddKTsKICAgICAgdW5zZXQoJHRoaXMtPl9kYXRhWydvcHRza3UnXSk7CiAgICAgIHVuc2V0KCR0aGlzLT5fZGF0YVsnYWxpYXMnXSk7CiAgICAgIHVuc2V0KCR0aGlzLT5fZGF0YVsncHJvZHVjdGxpc3QnXSk7CiAgICAgIHVuc2V0KCR0aGlzLT5fZGF0YVsncHJvZHVjdF9pZCddKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRTZXQoJGtleSwkdmFsdWUpCiAgewogICAgaWYoICFpbl9hcnJheSgka2V5LHNlbGY6OiRfa2V5cykgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdTZXQ6IEludmFsaWQgS2V5ICcuJGtleS4nIHNwZWNpZmllZCBmb3IgcHJvZHVjdHNfcXVlcnknKTsKICAgIGlmKCAhJHZhbHVlICkgcmV0dXJuOwoKICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX1BST0RVQ1RTKTsKICAgIHN3aXRjaCggJGtleSApIHsKCWNhc2UgJ3N0YXR1cyc6CgkgICR2YWx1ZSA9IHN0cnRvbG93ZXIoJHZhbHVlKTsKCSAgc3dpdGNoKCAkdmFsdWUgKSB7CgkgIGNhc2UgJ2RyYWZ0JzoKCSAgY2FzZSAnZGlzYWJsZWQnOgoJICBjYXNlICdwdWJsaXNoZWQnOgoJICBjYXNlICchZHJhZnQnOgoJICBjYXNlICchZGlzYWJsZWQnOgoJICBjYXNlICchcHVibGlzaGVkJzoKCSAgY2FzZSAnKic6CgkJJHRoaXMtPl9kYXRhWydzdGF0dXMnXSA9ICR2YWx1ZTsKCQlicmVhazsKCSAgfQoJICBicmVhazsKCgljYXNlICdwcmljZXJhbmdlJzoKCSAgaWYoIHN0cnBvcygkdmFsdWUsJzonKSAhPT0gRkFMU0UgKSAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsdWU7CgkgIGJyZWFrOwoKCWNhc2UgJ3VzZW9yJzoKCSAgJHRoaXMtPl9kYXRhWyRrZXldID0gY21zX3RvX2Jvb2woJHZhbHVlKTsKCSAgYnJlYWs7CgoJY2FzZSAnZGVzY2xpa2UnOgoJICAkdGhpcy0+X2RhdGFbJGtleV0gPSB0cmltKCR2YWx1ZSk7CgkgIGJyZWFrOwoKICAgIGNhc2UgJ3Byb2R1Y3RpZCc6CiAgICBjYXNlICdwcm9kdWN0X2lkJzoKCSAgJGtleSA9ICdwcm9kdWN0X2lkJzsKCSAgLy8gZmFsbHRocm91Z2gKCWNhc2UgJ3Byb2R1Y3RuYW1lbGlrZSc6CgljYXNlICdvcHRza3UnOgoJY2FzZSAnYWxpYXMnOgoJY2FzZSAnc2t1JzoKCSAgJHRoaXMtPl9yZXNldGlkZW50aWZpZXJzKCk7CgkgICR0aGlzLT5fZGF0YVska2V5XSA9IHRyaW0oJHZhbHVlKTsKCSAgYnJlYWs7CgogICAgY2FzZSAncHJvZHVjdGxpc3QnOgoJICAkdGhpcy0+X3Jlc2V0aWRlbnRpZmllcnMoKTsKCSAgJHRtcCA9ICR2YWx1ZTsKCSAgaWYoIGlzX3N0cmluZygkdmFsdWUpICkgJHRtcCA9IGV4cGxvZGUoJywnLCR2YWx1ZSk7CiAgICAgIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKCQlmb3JlYWNoKCAkdG1wIGFzICYkb25lICkgewoJCSAgJG9uZSA9IChpbnQpJG9uZTsKCQl9CgkJJHZhbHVlID0gaW1wbG9kZSgnLCcsJHRtcCk7CgkJJHRoaXMtPl9kYXRhWyRrZXldID0gJHZhbHVlOwogICAgICB9CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ2NhdGVnb3J5JzoKICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gdHJpbSgkdmFsdWUpOwogICAgICB1bnNldCgkdGhpcy0+X2RhdGFbJ2NhdGVnb3J5aWQnXSk7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ2NhdGVnb3J5aWQnOgogICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAoaW50KSR2YWx1ZTsKICAgICAgdW5zZXQoJHRoaXMtPl9kYXRhWydjYXRlZ29yeSddKTsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnZXhjbHVkZWNhdCc6CiAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IHRyaW0oJHZhbHVlKTsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnaGllcmFyY2h5JzoKICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gdHJpbSgkdmFsdWUpOwogICAgICB1bnNldCgkdGhpcy0+X2RhdGFbJ2hpZXJhcmNoeWlkJ10pOwogICAgICBicmVhazsKCiAgICBjYXNlICdub2NoaWxkcmVuJzoKICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSBjZ2VfdXRpbHM6OnRvX2Jvb2woJHZhbHVlKTsKICAgICAgICBicmVhazsKCiAgICBjYXNlICdoaWVyYXJjaHlpZCc6CiAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IChpbnQpJHZhbHVlOwogICAgICB1bnNldCgkdGhpcy0+X2RhdGFbJ2hpZXJhcmNoeSddKTsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnZmllbGRpZCc6CiAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IChpbnQpJHZhbHVlOwogICAgICBicmVhazsKCiAgICBjYXNlICdmaWVsZHZhbCc6CiAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IHRyaW0oJHZhbHVlKTsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnc29ydG9yZGVyJzoKICAgICAgJHZhbHVlID0gc3RydG9sb3dlcih0cmltKCR2YWx1ZSkpOwogICAgICBzd2l0Y2goICR2YWx1ZSApIHsKICAgICAgY2FzZSAnYXNjJzoKICAgICAgY2FzZSAnZGVzYyc6CgkJJHRoaXMtPl9kYXRhWyRrZXldID0gJHZhbHVlOwoJCWJyZWFrOwogICAgICB9CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ3NvcnRieSc6CiAgICAgICR2YWx1ZSA9IHN0cnRvbG93ZXIodHJpbSgkdmFsdWUpKTsKCSAgc3dpdGNoKCAkdmFsdWUgKSB7CgkgIGNhc2UgJ25hbWUnOgoJCSRrZXkgPSAncHJvZHVjdF9uYW1lJzsKCQkkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsdWU7CgkJYnJlYWs7CgoJICBjYXNlICdpZCc6CgkgIGNhc2UgJ3NrdSc6CgkgIGNhc2UgJ3Byb2R1Y3RfbmFtZSc6CgkgIGNhc2UgJ3ByaWNlJzoKCSAgY2FzZSAnd2VpZ2h0JzoKCSAgY2FzZSAnc3RhdHVzJzoKCSAgY2FzZSAncmFuZG9tJzoKCSAgY2FzZSAnY3JlYXRlX2RhdGUnOgoJICBjYXNlICdtb2RpZmllZF9kYXRlJzoKICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWx1ZTsKICAgICAgICAgIGJyZWFrOwoKICAgICAgY2FzZSAnbW9kaWZpZWQnOgogICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gJ21vZGlmaWVkX2RhdGUnOwogICAgICAgICAgYnJlYWs7CgoJICBjYXNlICdjcmVhdGVkJzoKCQkkdGhpcy0+X2RhdGFbJGtleV0gPSAnY3JlYXRlX2RhdGUnOwoJCWJyZWFrOwoKCSAgZGVmYXVsdDoKCQlpZiggc3RhcnRzd2l0aCgkdmFsdWUsJ2Y6JykgKSB7CgkJICAkZmllbGRuYW1lID0gc3Vic3RyKCR2YWx1ZSxzdHJsZW4oJ2Y6JykpOwoJCSAgJGZpZWxkZGVmcyA9IHByb2R1Y3RfdXRpbHM6OmdldF9maWVsZGRlZnMoRkFMU0UsVFJVRSxUUlVFKTsKCQkgIGlmKCBpc19hcnJheSgkZmllbGRkZWZzKSAmJiBpc3NldCgkZmllbGRkZWZzWyRmaWVsZG5hbWVdKSApICR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWx1ZTsKCQl9CgkJZWxzZSB7CgkJICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdTZXQ6IGludmFsaWQgc29ydGluZyAnLiR2YWx1ZSk7CgkJfQoJICB9CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ3NvcnR0eXBlJzoKICAgICAgJHZhbHVlID0gdHJpbShzdHJ0b3VwcGVyKCR2YWx1ZSkpOwogICAgICBzd2l0Y2goICR2YWx1ZSApIHsKICAgICAgY2FzZSAnU1RSSU5HJzoKCQkkdGhpcy0+X2RhdGFbJGtleV0gPSAnJzsKCQlicmVhazsKICAgICAgY2FzZSAnU0lHTkVEJzoKICAgICAgY2FzZSAnVU5TSUdORUQnOgoJCSR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWx1ZTsKCQlicmVhazsKICAgICAgfQogICAgICBicmVhazsKCiAgICBjYXNlICdwYWdlbGltaXQnOgogICAgY2FzZSAnbGltaXQnOgogICAgICAkdmFsdWUgPSBtYXgoMSwoaW50KSR2YWx1ZSk7CiAgICAgICR0aGlzLT5fZGF0YVsncGFnZWxpbWl0J10gPSAkdmFsdWU7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ3BhZ2UnOgogICAgICAkdmFsdWUgPSBtYXgoMSwoaW50KSR2YWx1ZSk7CiAgICAgICR0aGlzLT5fZGF0YVsncGFnZSddID0gJHZhbHVlOwogICAgICBicmVhazsKICAgIH0KICB9CgogIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRFeGlzdHMoJGtleSkKICB7CiAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApIHRocm93IG5ldyBFeGNlcHRpb24oJ0V4aXN0czogSW52YWxpZCBLZXkgJy4ka2V5Licgc3BlY2lmaWVkIGZvciBwcm9kdWN0c19xdWVyeScpOwogICAgcmV0dXJuIGlzc2V0KCR0aGlzLT5fZGF0YVska2V5XSk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0VW5zZXQoJGtleSkKICB7CiAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApIHRocm93IG5ldyBFeGNlcHRpb24oJ1Vuc2V0OiBJbnZhbGlkIEtleSAnLiRrZXkuJyBzcGVjaWZpZWQgZm9yIHByb2R1Y3RzX3F1ZXJ5Jyk7CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gJmV4ZWN1dGUoKQogIHsKICAgICRycyA9IG5ldyBwcm9kdWN0c19yZXN1bHRzZXQoJHRoaXMpOwogICAgcmV0dXJuICRyczsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBhZGRfZmllbGRfZXhwcigkZmllbGQsJGV4cHIpCiAgewoJaWYoICRleHByICkgewoJICAkdGhpcy0+X2ZpZWxkX2V4cHJlc3Npb25zWyRmaWVsZF0gPSAkZXhwcjsKCX0KCWVsc2UgewoJICB1bnNldCgkdGhpcy0+X2ZpZWxkX2V4cHJlc3Npb25zWyRmaWVsZF0pOwoJfQogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9maWVsZF9leHBycygpCiAgewoJcmV0dXJuICR0aGlzLT5fZmllbGRfZXhwcmVzc2lvbnM7CiAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.products_resultset.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmZpbmFsIGNsYXNzIHByb2R1Y3RzX3Jlc3VsdHNldAp7CiAgICBwcml2YXRlICRfcXVlcnk7CiAgICBwcml2YXRlICRfcnM7CiAgICBwcml2YXRlICRfdG90YWxtYXRjaGluZ3Jvd3M7CiAgICBwcml2YXRlICRfY2F0ZWdvcnlfY2FjaGU7CiAgICBwcml2YXRlICRfZmllbGRfY2FjaGU7CiAgICBwcml2YXRlICRfYXR0cmlidXRlX2NhY2hlOwogICAgcHJpdmF0ZSAkX2RldGFpbHBhZ2U7CiAgICBwcml2YXRlICRfaGllcnBhZ2U7CiAgICBwcml2YXRlICRfY3VycGFnZTsKICAgIHByaXZhdGUgJF9ub3RwcmV0dHk7CiAgICBwcml2YXRlICRfZGV0YWlsdGVtcGxhdGU7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KHByb2R1Y3RzX3F1ZXJ5ICRxdWVyeSkKICAgIHsKICAgICAgICAkdGhpcy0+X3F1ZXJ5ID0gJHF1ZXJ5OwogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gX3dpbGRjYXJkKCRzdHIpCiAgICB7CiAgICAgICAgaWYoIHN0cnBvcygkc3RyLCcqJykgPT09IEZBTFNFICYmIHN0cnBvcygkc3RyLCclJykgPT09IEZBTFNFICkgJHN0ciA9ICclJy4kc3RyLiclJzsKICAgICAgICAkc3RyID0gc3RyX3JlcGxhY2UoJyonLCclJywkc3RyKTsKICAgICAgICAkc3RyID0gc3RyX3JlcGxhY2UoJyUlJywnJScsJHN0cik7CiAgICAgICAgcmV0dXJuICRzdHI7CiAgICB9CgogICAgLyoqCiAgICAgKiBHaXZlbiBhIHF1ZXJ5IG9iamVjdC4uLiBidWlsZCB0aGUgc3FsIHF1ZXJ5IHRvIGV4dHJhY3QgdGhlIHByb2R1Y3QgZGF0YS4KICAgICAqLwogICAgcHJpdmF0ZSBmdW5jdGlvbiBfZXhlY3V0ZSgpCiAgICB7CiAgICAgICAgaWYoICFpc19udWxsKCR0aGlzLT5fcnMpICkgcmV0dXJuOwogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgJG9iaiA9ICR0aGlzLT5fcXVlcnk7CgogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgU1FMX0NBTENfRk9VTkRfUk9XUyBDLiosUEguaGllcmFyY2h5X2lkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cyBDJzsKICAgICAgICAkd2hlcmUgPSBhcnJheSgpOwogICAgICAgICRxcGFybXMgPSBhcnJheSgpOwogICAgICAgICRqb2lucyA9IGFycmF5KCk7CgogICAgICAgICRqb2luc1tdID0gY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHRvaGllciBQSCBPTiBQSC5wcm9kdWN0X2lkID0gQy5pZCc7CgogICAgICAgIGlmKCBpc3NldCgkb2JqWydwcm9kdWN0bmFtZWxpa2UnXSkgKSB7CiAgICAgICAgICAgICR3aGVyZVtdID0gJ0MucHJvZHVjdF9uYW1lIExJS0UgPyc7CiAgICAgICAgICAgICRxcGFybXNbXSA9ICR0aGlzLT5fd2lsZGNhcmQoJG9ialsncHJvZHVjdG5hbWVsaWtlJ10pOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKCBpc3NldCgkb2JqWydwcm9kdWN0X2lkJ10pICYmICRvYmpbJ3Byb2R1Y3RfaWQnXSAhPSAnJyApIHsKICAgICAgICAgICAgJHdoZXJlW10gPSAnQy5pZCA9ID8nOwogICAgICAgICAgICAkcXBhcm1zW10gPSAkb2JqWydwcm9kdWN0X2lkJ107CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoIGlzc2V0KCRvYmpbJ2FsaWFzJ10pICYmICRvYmpbJ2FsaWFzJ10gIT0gJycgKSB7CiAgICAgICAgICAgICR3aGVyZVtdID0gJ0MuYWxpYXMgPSA/JzsKICAgICAgICAgICAgJHFwYXJtc1tdID0gJG9ialsnYWxpYXMnXTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggaXNzZXQoJG9ialsnc2t1J10pICYmICRvYmpbJ3NrdSddICE9ICcnICkgewogICAgICAgICAgICAkd2hlcmVbXSA9ICdDLnNrdSA9ID8nOwogICAgICAgICAgICAkcXBhcm1zW10gPSAkb2JqWydza3UnXTsKICAgICAgICB9CiAgICAgICAgaWYoIGlzc2V0KCRvYmpbJ29wdHNrdSddKSAmJiAkb2JqWydvcHRza3UnXSAhPSAnJyApIHsKICAgICAgICAgICAgJHN1YnF1ZXJ5ID0gJ1NFTEVDVCBESVNUSU5DVCBwcm9kdWN0X2lkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJzIFdIRVJFIHNrdSA9ID8nOwogICAgICAgICAgICAkc3VicGFybXMgPSBhcnJheSgkb2JqWydvcHRza3UnXSk7CgogICAgICAgICAgICAkcGlkID0gJGRiLT5HZXRPbmUoJHN1YnF1ZXJ5LCRzdWJwYXJtcyk7CiAgICAgICAgICAgICR3aGVyZVtdID0gJ0MuaWQgPSA/JzsKICAgICAgICAgICAgJHFwYXJtc1tdID0gJHBpZDsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggaXNzZXQoJG9ialsncHJvZHVjdGxpc3QnXSkgJiYgJG9ialsncHJvZHVjdGxpc3QnXSAhPSAnJyApIHsKICAgICAgICAgICAgJHRtcCA9ICRvYmpbJ3Byb2R1Y3RsaXN0J107CiAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoJHRtcCkgKSAkdG1wID0gZXhwbG9kZSgnLCcsJHRtcCk7CiAgICAgICAgICAgICRsaXN0ID0gYXJyYXkoKTsKICAgICAgICAgICAgZm9yZWFjaCggJHRtcCBhcyAkb25lICkgewogICAgICAgICAgICAgICAgJG9uZSA9IChpbnQpdHJpbSgkb25lKTsKICAgICAgICAgICAgICAgIGlmKCAkb25lID4gMCApICRsaXN0W10gPSAkb25lOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRsaXN0ID0gYXJyYXlfdW5pcXVlKCRsaXN0KTsKICAgICAgICAgICAgJHdoZXJlW10gPSAnQy5pZCBJTiAoJy5pbXBsb2RlKCcsJywkbGlzdCkuJyknOwogICAgICAgIH0KCiAgICAgICAgaWYoIGlzc2V0KCRvYmpbJ2Rlc2NsaWtlJ10pICYmICRvYmpbJ2Rlc2NsaWtlJ10gKSB7CiAgICAgICAgICAgICR2YWwgPSB0cmltKCRvYmpbJ2Rlc2NsaWtlJ10pOwogICAgICAgICAgICAkd2hlcmVbXSA9ICdDLmRldGFpbHMgTElLRSA/JzsKICAgICAgICAgICAgJHFwYXJtc1tdID0gJHRoaXMtPl93aWxkY2FyZCgkdmFsKTsKICAgICAgICB9CgogICAgICAgIGlmKCBpc3NldCgkb2JqWydzdGF0dXMnXSkgJiYgJG9ialsnc3RhdHVzJ10gIT0gJyonKSB7CiAgICAgICAgICAgICR2YWwgPSAkb2JqWydzdGF0dXMnXTsKICAgICAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJHZhbCwnIScpICkgewogICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnQy5zdGF0dXMgIT0gPyc7CiAgICAgICAgICAgICAgICAkdmFsID0gc3Vic3RyKCR2YWwsMSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICdDLnN0YXR1cyA9ID8nOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRxcGFybXNbXSA9ICR2YWw7CiAgICAgICAgfQoKICAgICAgICBpZiggaXNzZXQoJG9ialsncHJpY2VyYW5nZSddKSApIHsKICAgICAgICAgICAgaWYoIHN0cnBvcygkb2JqWydwcmljZXJhbmdlJ10sJzonKSAhPT0gRkFMU0UgKSB7CiAgICAgICAgICAgICAgICBsaXN0KCRtaW4sJG1heCkgPSBleHBsb2RlKCc6Jywkb2JqWydwcmljZXJhbmdlJ10pOwogICAgICAgICAgICAgICAgaWYoICRtaW4gJiYgJG1heCApIHsKICAgICAgICAgICAgICAgICAgICAkbWluID0gZmxvYXR2YWwoJG1pbik7CiAgICAgICAgICAgICAgICAgICAgJG1heCA9IGZsb2F0dmFsKCRtYXgpOwogICAgICAgICAgICAgICAgICAgIGlmKCAkbWluID4gJG1heCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHRtcCA9ICRtaW47CiAgICAgICAgICAgICAgICAgICAgICAgICRtaW4gPSAkbWF4OwogICAgICAgICAgICAgICAgICAgICAgICAkbWF4ID0gJHRtcDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnKEMucHJpY2UgQkVUV0VFTiA/IEFORCA/KSc7CiAgICAgICAgICAgICAgICAgICAgJHFwYXJtc1tdID0gJG1pbjsKICAgICAgICAgICAgICAgICAgICAkcXBhcm1zW10gPSAkbWF4OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZWlmICggJG1pbiApIHsKICAgICAgICAgICAgICAgICAgICAkbWluID0gZmxvYXR2YWwoJG1pbik7CiAgICAgICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnQy5wcmljZSA+PSA/JzsKICAgICAgICAgICAgICAgICAgICAkcXBhcm1zW10gPSAkbWluOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZWlmICggJG1heCApIHsKICAgICAgICAgICAgICAgICAgICAkbWF4ID0gZmxvYXR2YWwoJG1heCk7CiAgICAgICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnQy5wcmljZSA8PSA/JzsKICAgICAgICAgICAgICAgICAgICAkcXBhcm1zW10gPSAkbWF4OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiggaXNzZXQoJG9ialsnaGllcmFyY2h5J10pICYmICRvYmpbJ2hpZXJhcmNoeSddICE9ICcnICkgewogICAgICAgICAgICAkc3VicXVlcnkgPSAnU0VMRUNUIERJU1RJTkNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkgaCBXSEVSRSAnOwogICAgICAgICAgICAkc3VicGFybXMgPSBhcnJheSgpOwogICAgICAgICAgICAkdG1wID0gZXhwbG9kZSgnLCcsJG9ialsnaGllcmFyY2h5J10pOwogICAgICAgICAgICAkdG1wMiA9IGFycmF5KCk7CiAgICAgICAgICAgIGZvcmVhY2goICR0bXAgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgIGlmKCBzdHJzdHIoJG9uZSwnKicpICE9PSBGQUxTRSApIHsKICAgICAgICAgICAgICAgICAgICAkdG1wMltdID0gJ3VwcGVyKGgubG9uZ19uYW1lKSBMSUtFIHVwcGVyKD8pJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICR0bXAyW10gPSAndXBwZXIoaC5uYW1lKSA9IHVwcGVyKD8pJzsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkb25lID0gY21zX2h0bWxfZW50aXR5X2RlY29kZSgkb25lKTsKICAgICAgICAgICAgICAgICRvbmUgPSB0cmltKHN0cl9yZXBsYWNlKCcqJywnJScsc3RyX3JlcGxhY2UoJyInLCdfJywkb25lKSkpOwogICAgICAgICAgICAgICAgJHN1YnBhcm1zW10gPSAkb25lOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRzdWJxdWVyeSAuPSBpbXBsb2RlKCcgT1IgJywkdG1wMik7CiAgICAgICAgICAgICRoaWVyYXJjaHlfaWRzID0gJGRiLT5HZXRDb2woJHN1YnF1ZXJ5LCRzdWJwYXJtcyk7CgogICAgICAgICAgICBpZiggaXNfYXJyYXkoJGhpZXJhcmNoeV9pZHMpICYmIGNvdW50KCRoaWVyYXJjaHlfaWRzKSApIHsKICAgICAgICAgICAgICAgIC8vJGpvaW5zW10gPSBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdG9oaWVyIHBoIE9OIHBoLnByb2R1Y3RfaWQgPSBDLmlkJzsKICAgICAgICAgICAgICAgICR3aGVyZVtdID0gJ1BILmhpZXJhcmNoeV9pZCBJTiAoJy5pbXBsb2RlKCcsJywkaGllcmFyY2h5X2lkcykuJyknOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoIGlzc2V0KCRvYmpbJ2hpZXJhcmNoeWlkJ10pICkgewogICAgICAgICAgICBpZiggaXNzZXQoJG9ialsnbm9jaGlsZHJlbiddKSAmJiAkb2JqWydub2NoaWxkcmVuJ10gKSB7CiAgICAgICAgICAgICAgICAvLyBkbyBub3QgaW5jbHVkZSBjaGlsZHJlbgogICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnUEguaGllcmFyY2h5X2lkID0gPyc7CiAgICAgICAgICAgICAgICAkcXBhcm1zW10gPSAoaW50KSRvYmpbJ2hpZXJhcmNoeWlkJ107CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAvLyBpbmNsdWRlIGNoaWxkcmVuCiAgICAgICAgICAgICAgICAvLyBnZXQgdGhlIGxvbmcgbmFtZSBvZiB0aGlzIGhpZXJhcmNoeSBpZAogICAgICAgICAgICAgICAgJGluZm8gPSBoaWVyYXJjaHlfb3BzOjpnZXRfaGllcmFyY2h5X2luZm8oKGludCkkb2JqWydoaWVyYXJjaHlpZCddKTsKICAgICAgICAgICAgICAgICRzdHIgPSAnKip8anVua3wqKic7CiAgICAgICAgICAgICAgICBpZiggaXNfYXJyYXkoJGluZm8pICkgJHN0ciA9ICRpbmZvWydsb25nX25hbWUnXS4nJSc7CiAgICAgICAgICAgICAgICAkam9pbnNbXSA9IGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBIIE9OIEguaWQgPSBQSC5oaWVyYXJjaHlfaWQnOwogICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnSC5sb25nX25hbWUgTElLRSA/JzsKICAgICAgICAgICAgICAgICRxcGFybXNbXSA9ICRzdHI7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmKCBpc3NldCgkb2JqWydjYXRlZ29yeSddKSAmJiAkb2JqWydjYXRlZ29yeSddICE9ICcnICkgewogICAgICAgICAgICAvLyBnZXQgdGhlIGNhdGVnb3J5J3MKICAgICAgICAgICAgJG9jYXRzID0gcHJvZHVjdF91dGlsczo6Z2V0X2NhdGVnb3JpZXMoVFJVRSk7CiAgICAgICAgICAgICRpY2F0aWRzID0gYXJyYXkoKTsKICAgICAgICAgICAgJGljYXRzID0gZXhwbG9kZSgnLCcsJG9ialsnY2F0ZWdvcnknXSk7CiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkaWNhdHMpICYmIGNvdW50KCRpY2F0cykgKSB7CiAgICAgICAgICAgICAgICBmb3JlYWNoKCAkaWNhdHMgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICAgICAkb25lID0gdHJpbSgkb25lKTsKICAgICAgICAgICAgICAgICAgICBpZiggaXNzZXQoJG9jYXRzWyRvbmVdKSApICRpY2F0aWRzW10gPSAoaW50KSRvY2F0c1skb25lXS0+aWQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkaWNhdGlkcyA9IGFycmF5X3VuaXF1ZSgkaWNhdGlkcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoIGNvdW50KCRpY2F0aWRzKSApIHsKICAgICAgICAgICAgICAgICRqb2luc1tdID0gY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzIGNjIE9OIGNjLnByb2R1Y3RfaWQgPSBDLmlkJzsKICAgICAgICAgICAgICAgICR3aGVyZVtdID0gJ2NjLmNhdGVnb3J5X2lkIElOICgnLmltcGxvZGUoJywnLCRpY2F0aWRzKS4nKSc7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBkZWJ1Z19idWZmZXIoJ3Byb2R1Y3RzX3Jlc3VsdHNldCAtIGNhdGVnb3J5IHBhcmFtZXRlciBwcm92aWRlZCB0byBxdWVyeSAoJy4kb2JqWydjYXRlZ29yeSddLicpLCBidXQgbm8gbWF0Y2hpbmcgY2F0ZWdvcmllcyBmb3VuZCcpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoIGlzc2V0KCRvYmpbJ2NhdGVnb3J5aWQnXSkgJiYgJG9ialsnY2F0ZWdvcnlpZCddICE9ICcnICkgewogICAgICAgICAgICAkam9pbnNbXSA9IGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcyBwYyBPTiBwYy5wcm9kdWN0X2lkID0gQy5pZCc7CiAgICAgICAgICAgICR3aGVyZVtdID0gJ3BjLmNhdGVnb3J5X2lkID0gPyc7CiAgICAgICAgICAgICRxcGFybXNbXSA9ICRvYmpbJ2NhdGVnb3J5aWQnXTsKICAgICAgICB9CgogICAgICAgIGlmKCBpc3NldCgkb2JqWydleGNsdWRlY2F0J10pICYmICRvYmpbJ2V4Y2x1ZGVjYXQnXSAhPSAnJyApIHsKICAgICAgICAgICAgLy8gZ2V0IHRoZSBjYXRlb2dyeSBpZCdzIGZyb20gdGhlIG5hbWUuCiAgICAgICAgICAgICRvY2F0cyA9IHByb2R1Y3RfdXRpbHM6OmdldF9jYXRlZ29yaWVzKFRSVUUpOwogICAgICAgICAgICAkZWNhdHMgPSBleHBsb2RlKCcsJywkb2JqWydleGNsdWRlY2F0J10pOwogICAgICAgICAgICAkZXhjbHVkZV9pZHMgPSBhcnJheSgpOwogICAgICAgICAgICBmb3JlYWNoKCAkZWNhdHMgYXMgJGVjYXQgKSB7CiAgICAgICAgICAgICAgICBpZiggKGludCkkZWNhdCA+IDAgKSB7CiAgICAgICAgICAgICAgICAgICAgJGV4Y2x1ZGVfaWRzW10gPSAoaW50KSRlY2F0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgaWYoIGlzc2V0KCRvY2F0c1skZWNhdF0pICkgJGV4Y2x1ZGVfaWRzW10gPSAoaW50KSRvY2F0c1skZWNhdF0tPmlkOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCBjb3VudCgkZXhjbHVkZV9pZHMpICkgewogICAgICAgICAgICAgICAgJGpvaW5zW10gPSBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdWN0X2NhdGVnb3JpZXMgY2MgT04gY2MucHJvZHVjdF9pZCA9IEMuaWQnOwogICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnY2MuY2F0ZWdvcnlfaWQgTk9UIElOICgnLmltcGxvZGUoJywnLCRleGNsdWRlX2lkcykuJyknOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiggaXNzZXQoJG9ialsnZmllbGRpZCddKSAmJiAkb2JqWydmaWVsZGlkJ10gPiAwICYmIGlzc2V0KCRvYmpbJ2ZpZWxkdmFsJ10pICYmICRvYmpbJ2ZpZWxkdmFsJ10gIT0gJycgKSB7CiAgICAgICAgICAgIC8vIGFkZCBhIGRlZmF1bHQgZmllbGQgZXhwcmVzc2lvbgogICAgICAgICAgICAkZmllbGRpZCA9ICRvYmpbJ2ZpZWxkaWQnXTsKICAgICAgICAgICAgJGZpZWxkdmFsID0gJG9ialsnZmllbGR2YWwnXTsKICAgICAgICAgICAgJG9iai0+YWRkX2ZpZWxkX2V4cHIoJGZpZWxkaWQsJGZpZWxkdmFsKTsKICAgICAgICB9CgogICAgICAgICRzdWZmaXggPSAnQSc7CiAgICAgICAgZm9yZWFjaCggJG9iai0+Z2V0X2ZpZWxkX2V4cHJzKCkgYXMgJGZpZWxkaWQgPT4gJGZpZWxkdmFsICkgewogICAgICAgICAgICBpZiggJGZpZWxkdmFsID09ICc6Om51bGw6OicgKSB7CiAgICAgICAgICAgICAgICAvLyBoYW5kbGUgYSBjYXNlIHdoZXJlIGEgZmllbGQgaXMgbm90IHNldCBmb3IgYSBwcm9kdWN0LgogICAgICAgICAgICAgICAgJGpvaW5zW10gPSBzcHJpbnRmKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyBGVnskc3VmZml4fSBPTiBDLmlkID0gRlZ7JHN1ZmZpeH0ucHJvZHVjdF9pZCBBTkQgRlZ7JHN1ZmZpeH0uZmllbGRkZWZfaWQgPSAlZCIsJGZpZWxkaWQpOwogICAgICAgICAgICAgICAgJHdoZXJlW10gPSAiKEZWeyRzdWZmaXh9LnZhbHVlIElTIE5VTEwpIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKCAkZmllbGR2YWwgPT0gJzo6bm90bnVsbDo6JyApIHsKICAgICAgICAgICAgICAgIC8vIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSBhIGZpZWxkIGlzIHNldCBmb3IgYSBwcm9kdWN0LCBidXQgd2UgZG9uJ3QgY2FyZSBhYm91dCB0aGUgdmFsdWUuCiAgICAgICAgICAgICAgICAkam9pbnNbXSA9IHNwcmludGYoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIEZWeyRzdWZmaXh9IE9OIEMuaWQgPSBGVnskc3VmZml4fS5wcm9kdWN0X2lkIEFORCBGVnskc3VmZml4fS5maWVsZGRlZl9pZCA9ICVkIiwkZmllbGRpZCk7CiAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICIoRlZ7JHN1ZmZpeH0udmFsdWUgIT0gXCdcJykiOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYoIHN0cnBvcygkZmllbGR2YWwsJzonKSAhPT0gRkFMU0UgKSB7CiAgICAgICAgICAgICAgICAvLyBpdCdzIGEgbWluOm1heCBjYXN0IGV4cHJlc3Npb24uCiAgICAgICAgICAgICAgICBsaXN0KCRtaW4sJG1heCkgPSBleHBsb2RlKCc6JywkZmllbGR2YWwsMik7CiAgICAgICAgICAgICAgICAkbWluID0gdHJpbSgkbWluKTsgJG1heCA9IHRyaW0oJG1heCk7CiAgICAgICAgICAgICAgICBpZiggJG1pbiAmJiAkbWF4ICkgewogICAgICAgICAgICAgICAgICAgICRqb2luc1tdID0gc3ByaW50ZihjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgRlZ7JHN1ZmZpeH0gT04gQy5pZCA9IEZWeyRzdWZmaXh9LnByb2R1Y3RfaWQgQU5EIEZWeyRzdWZmaXh9LmZpZWxkZGVmX2lkID0gJWQiLCRmaWVsZGlkKTsKICAgICAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICIoQ0FTVChGVnskc3VmZml4fS52YWx1ZSBBUyBERUNJTUFMKDEyLDMpKSBCRVRXRUVOID8gQU5EID8pIjsKICAgICAgICAgICAgICAgICAgICAkbWluID0gZmxvYXR2YWwoJG1pbik7CiAgICAgICAgICAgICAgICAgICAgJG1heCA9IGZsb2F0dmFsKCRtYXgpOwogICAgICAgICAgICAgICAgICAgICRxcGFybXNbXSA9ICRtaW47CiAgICAgICAgICAgICAgICAgICAgJHFwYXJtc1tdID0gJG1heDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2VpZiAoICRtaW4gKSB7CiAgICAgICAgICAgICAgICAgICAgJGpvaW5zW10gPSBzcHJpbnRmKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyBGVnskc3VmZml4fSBPTiBDLmlkID0gRlZ7JHN1ZmZpeH0ucHJvZHVjdF9pZCBBTkQgRlZ7JHN1ZmZpeH0uZmllbGRkZWZfaWQgPSAlZCIsJGZpZWxkaWQpOwogICAgICAgICAgICAgICAgICAgICR3aGVyZVtdID0gIihDQVNUKEZWeyRzdWZmaXh9LnZhbHVlIEFTIERFQ0lNQUwoMTIsMykpID49ID8pIjsKICAgICAgICAgICAgICAgICAgICAkbWluID0gZmxvYXR2YWwoJG1pbik7CiAgICAgICAgICAgICAgICAgICAgJHFwYXJtc1tdID0gJG1pbjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2VpZiAoICRtYXggKSB7CiAgICAgICAgICAgICAgICAgICAgJGpvaW5zW10gPSBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgRlZ7JHN1ZmZpeH0gT04gQy5pZCA9IEZWeyRzdWZmaXh9LnByb2R1Y3RfaWQgQU5EIEZWeyRzdWZmaXh9LmZpZWxkZGVmX2lkID0gPyI7CiAgICAgICAgICAgICAgICAgICAgJHdoZXJlW10gPSAiKENBU1QoRlZ7JHN1ZmZpeH0udmFsdWUgQVMgREVDSU1BTCgxMiwzKSkgPD0gPykiOwogICAgICAgICAgICAgICAgICAgICRtYXggPSBmbG9hdHZhbCgkbWF4KTsKICAgICAgICAgICAgICAgICAgICAkcXBhcm1zW10gPSAkbWF4OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgLy8gbGltaXQgcmVzdWx0cyB0byBhbGwgb2YgdGhlIGl0ZW1zIHRoYXQgaGF2ZSB0aGlzIGZpZWxkLCBhbmQgZmllbGQgdmFsdWUuCiAgICAgICAgICAgICAgICAkam9pbnNbXSA9IHNwcmludGYoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIEZWeyRzdWZmaXh9IE9OIEMuaWQgPSBGVnskc3VmZml4fS5wcm9kdWN0X2lkIEFORCBGVnskc3VmZml4fS5maWVsZGRlZl9pZCA9ICVkIiwkZmllbGRpZCk7CiAgICAgICAgICAgICAgICBpZiggc3RycG9zKCRmaWVsZHZhbCwnKicpICE9PSBGQUxTRSB8fCBzdHJwb3MoJGZpZWxkdmFsLCclJykgIT09IEZBTFNFICkgewogICAgICAgICAgICAgICAgICAgICR3aGVyZVtdID0gIihGVnskc3VmZml4fS52YWx1ZSBMSUtFID8pIjsKICAgICAgICAgICAgICAgICAgICAkcXBhcm1zW10gPSAkdGhpcy0+X3dpbGRjYXJkKCRmaWVsZHZhbCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICIoRlZ7JHN1ZmZpeH0udmFsdWUgPSA/KSI7CiAgICAgICAgICAgICAgICAgICAgJHFwYXJtc1tdID0gJGZpZWxkdmFsOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICRzdWZmaXgrKzsKICAgICAgICB9CgogICAgICAgICRzb3J0YnkgPSAkb2JqWydzb3J0YnknXTsKICAgICAgICAkc29ydG9yZGVyID0gJG9ialsnc29ydG9yZGVyJ107CiAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJHNvcnRieSwnZjonKSApIHsKICAgICAgICAgICAgJHNvcnRieSA9IHN1YnN0cigkc29ydGJ5LDIpOwogICAgICAgICAgICAkZmllbGRkZWZzID0gcHJvZHVjdF91dGlsczo6Z2V0X2ZpZWxkZGVmcyhGQUxTRSxUUlVFLFRSVUUpOwogICAgICAgICAgICBpZiggaXNfYXJyYXkoJGZpZWxkZGVmcykgJiYgY291bnQoJGZpZWxkZGVmcykgJiYgaXNzZXQoJGZpZWxkZGVmc1skc29ydGJ5XSkgKSB7CiAgICAgICAgICAgICAgICAkam9pbnNbXSA9IGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyBGVlMgT04gQy5pZCA9IEZWUy5wcm9kdWN0X2lkIEFORCBGVlMuZmllbGRkZWZfaWQgPSAnLihpbnQpJGZpZWxkZGVmc1skc29ydGJ5XS0+aWQ7CiAgICAgICAgICAgICAgICAkc29ydGJ5ID0gJ0ZWUy52YWx1ZSc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkc29ydGJ5ID0gJ0MucHJvZHVjdF9uYW1lJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIGlmKCAkc29ydGJ5ID09ICdyYW5kb20nICkgewogICAgICAgICAgICAkc29ydGJ5ID0gJ1JBTkQoKSc7CiAgICAgICAgICAgICRzb3J0b3JkZXIgPSAnJzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRzb3J0YnkgPSAnQy4nLiRzb3J0Ynk7CiAgICAgICAgfQoKICAgICAgICAvLwogICAgICAgIC8vIGJ1aWxkIHRoZSBxdWVyeSBub3cuCiAgICAgICAgLy8KICAgICAgICAkZXhwciA9ICcgQU5EICc7CiAgICAgICAgaWYoIGlzc2V0KCRvYmpbJ3VzZW9yJ10pICYmICRvYmpbJ3VzZW9yJ10gKSAkZXhwciA9ICcgT1IgJzsKICAgICAgICBpZiggY291bnQoJGpvaW5zKSApICRxdWVyeSAuPSAnIExFRlQgSk9JTiAnLmltcGxvZGUoJyBMRUZUIEpPSU4gJywkam9pbnMpOwogICAgICAgIGlmKCBjb3VudCgkd2hlcmUpICkgJHF1ZXJ5IC49ICcgV0hFUkUgJy5pbXBsb2RlKCRleHByLCR3aGVyZSk7CiAgICAgICAgaWYoICRvYmpbJ3NvcnR0eXBlJ10gPT0gJycgKSB7CiAgICAgICAgICAgICRxdWVyeSAuPSAnIE9SREVSIEJZICcuJHNvcnRieS4nICcuJG9ialsnc29ydG9yZGVyJ107CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkcXVlcnkgLj0gJyBPUkRFUiBCWSBDQVNUKCcuJHNvcnRieS4nIEFTICcuJG9ialsnc29ydHR5cGUnXS4nKSAnLiRvYmpbJ3NvcnRvcmRlciddOwogICAgICAgIH0KCiAgICAgICAgJHN0YXJ0ZWxlbWVudCA9IDA7CiAgICAgICAgJGxpbWl0ID0gMTAwMDAwOwogICAgICAgIGlmKCBpc3NldCgkb2JqWydwYWdlJ10pICYmICRvYmpbJ3BhZ2UnXSA+IDAgJiYgaXNzZXQoJG9ialsncGFnZWxpbWl0J10pICYmICRvYmpbJ3BhZ2VsaW1pdCddID4gMCApIHsKICAgICAgICAgICAgJGxpbWl0ID0gKGludCkkb2JqWydwYWdlbGltaXQnXTsKICAgICAgICAgICAgJHN0YXJ0ZWxlbWVudCA9ICgoaW50KSRvYmpbJ3BhZ2UnXSAtIDEpICogJGxpbWl0OwogICAgICAgIH0KICAgICAgICAkdGhpcy0+X3JzID0gJGRiLT5TZWxlY3RMaW1pdCgkcXVlcnksJGxpbWl0LCRzdGFydGVsZW1lbnQsJHFwYXJtcyk7CiAgICAgICAgaWYoICEkdGhpcy0+X3JzICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignSU5URVJOQUwgRVJST1I6IFF1ZXJ5IGZhaWxlZCAtICcuJGRiLT5zcWwuJyAtLSAnLiRkYi0+RXJyb3JNc2coKSk7CiAgICAgICAgJHRoaXMtPl90b3RhbG1hdGNoaW5ncm93cyA9ICRkYi0+R2V0T25lKCdTRUxFQ1QgRk9VTkRfUk9XUygpJyk7CgogICAgICAgICR0aGlzLT5fcHJlbG9hZCgpOwogICAgfSAvLyBfZXhlY3V0ZQoKCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9wcmVsb2FkX2NhdGVnb3JpZXMoJHByb2R1Y3RfaWRzKQogICAgewogICAgICAgIGlmKCAhaXNfYXJyYXkoJHByb2R1Y3RfaWRzKSB8fCBjb3VudCgkcHJvZHVjdF9pZHMpID09IDAgKSByZXR1cm47CgogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBwcm9kdWN0X2lkLGNhdGVnb3J5X2lkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdWN0X2NhdGVnb3JpZXMKICAgICAgICAgICAgICBXSEVSRSBwcm9kdWN0X2lkIElOICgnLmltcGxvZGUoJywnLCRwcm9kdWN0X2lkcykuJykgT1JERVIgQlkgcHJvZHVjdF9pZCBBU0MnOwogICAgICAgICRkYnIgPSAkZGItPkdldEFycmF5KCRxdWVyeSk7CiAgICAgICAgaWYoICFpc19hcnJheSgkZGJyKSB8fCBjb3VudCgkZGJyKSA9PSAwICkgcmV0dXJuOwoKICAgICAgICAkdGhpcy0+X2NhdGVnb3J5X2NhY2hlID0gJGRicjsKICAgIH0KCgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfcHJlbG9hZF9maWVsZHMoJHByb2R1Y3RfaWRzKQogICAgewogICAgICAgIGlmKCAhaXNfYXJyYXkoJHByb2R1Y3RfaWRzKSB8fCBjb3VudCgkcHJvZHVjdF9pZHMpID09IDAgKSByZXR1cm47CgogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBwcm9kdWN0X2lkLGZpZWxkZGVmX2lkLHZhbHVlIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMKICAgICAgICAgICAgICBXSEVSRSBwcm9kdWN0X2lkIElOICgnLmltcGxvZGUoJywnLCRwcm9kdWN0X2lkcykuJykgT1JERVIgQlkgcHJvZHVjdF9pZCBBU0MnOwogICAgICAgICRkYnIgPSAkZGItPkdldEFycmF5KCRxdWVyeSk7CiAgICAgICAgaWYoICFpc19hcnJheSgkZGJyKSB8fCBjb3VudCgkZGJyKSA9PSAwICkgcmV0dXJuOwoKICAgICAgICAkdGhpcy0+X2ZpZWxkX2NhY2hlID0gJGRicjsKICAgIH0KCgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfcHJlbG9hZF9hdHRyaWJ1dGVzKCRwcm9kdWN0X2lkcykKICAgIHsKICAgICAgICBpZiggIWlzX2FycmF5KCRwcm9kdWN0X2lkcykgfHwgY291bnQoJHByb2R1Y3RfaWRzKSA9PSAwICkgcmV0dXJuOwoKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlicwogICAgICAgICAgICAgIFdIRVJFIHByb2R1Y3RfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJHByb2R1Y3RfaWRzKS4nKSBPUkRFUiBCWSBwcm9kdWN0X2lkIEFTQywgaW9yZGVyIEFTQyc7CiAgICAgICAgJGF0dHJpYnMgPSAkZGItPkdldEFycmF5KCRxdWVyeSk7CiAgICAgICAgaWYoICFpc19hcnJheSgkYXR0cmlicykgfHwgY291bnQoJGF0dHJpYnMpID09IDAgKSByZXR1cm47CgogICAgICAgICR0aGlzLT5fYXR0cmlidXRlX2NhY2hlID0gYXJyYXkoKTsKICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkYXR0cmlicyk7ICRpKysgKSB7CiAgICAgICAgICAgICRvbmVzZXQgPSYgJGF0dHJpYnNbJGldOwogICAgICAgICAgICAkcGlkID0gJG9uZXNldFsncHJvZHVjdF9pZCddOwogICAgICAgICAgICBpZiggIWlzc2V0KCR0aGlzLT5fYXR0cmlidXRlX2NhY2hlWyRwaWRdKSApICR0aGlzLT5fYXR0cmlidXRlX2NhY2hlWyRwaWRdID0gYXJyYXkoKTsKICAgICAgICAgICAgJHRoaXMtPl9hdHRyaWJ1dGVfY2FjaGVbJHBpZF1bXSA9ICRvbmVzZXQ7CiAgICAgICAgfQogICAgfQoKCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9wcmVsb2FkKCkKICAgIHsKICAgICAgICBpZiggISR0aGlzLT5fcnMgKSByZXR1cm47CgogICAgICAgICRwcm9kdWN0X2lkcyA9IGFycmF5KCk7CiAgICAgICAgJHRoaXMtPl9ycy0+TW92ZUZpcnN0KCk7CiAgICAgICAgd2hpbGUoICEkdGhpcy0+X3JzLT5FT0YgKSB7CiAgICAgICAgICAgICRwcm9kdWN0X2lkc1tdID0gJHRoaXMtPl9ycy0+ZmllbGRzWydpZCddOwogICAgICAgICAgICAkdGhpcy0+X3JzLT5Nb3ZlTmV4dCgpOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+X3JzLT5Nb3ZlRmlyc3QoKTsKCiAgICAgICAgaWYoICFjb3VudCgkcHJvZHVjdF9pZHMpICkgcmV0dXJuOwogICAgICAgICRwcm9kdWN0X2lkcyA9IGFycmF5X3VuaXF1ZSgkcHJvZHVjdF9pZHMpOwoKICAgICAgICAvLyBwcmVsb2FkIGNhdGVnb3J5IGluZm8gZm9yIHByb3VkY3QocykuCiAgICAgICAgJGFsbGNhdHMgPSBwcm9kdWN0X3V0aWxzOjpnZXRfY2F0ZWdvcmllcyhUUlVFKTsKICAgICAgICBpZiggaXNfYXJyYXkoJGFsbGNhdHMpICYmIGNvdW50KCRhbGxjYXRzKSApICR0aGlzLT5fcHJlbG9hZF9jYXRlZ29yaWVzKCRwcm9kdWN0X2lkcyk7CgogICAgICAgIC8vIHByZWxvYWQgZmllbGQgaW5mbwogICAgICAgICRhbGxmaWVsZHMgPSBwcm9kdWN0X3V0aWxzOjpnZXRfZmllbGRkZWZzKFRSVUUsVFJVRSk7CiAgICAgICAgaWYoIGlzX2FycmF5KCRhbGxmaWVsZHMpICYmIGNvdW50KCRhbGxmaWVsZHMpICkgJHRoaXMtPl9wcmVsb2FkX2ZpZWxkcygkcHJvZHVjdF9pZHMpOwoKICAgICAgICAvLyBwcmVsb2FkIGF0dHJpYnV0ZXMKICAgICAgICAkdGhpcy0+X3ByZWxvYWRfYXR0cmlidXRlcygkcHJvZHVjdF9pZHMpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBSZWNvcmRDb3VudCgpCiAgICB7CiAgICAgICAgJHRoaXMtPl9leGVjdXRlKCk7CiAgICAgICAgaWYoICR0aGlzLT5fcnMgKSByZXR1cm4gJHRoaXMtPl9ycy0+UmVjb3JkQ291bnQoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gTW92ZU5leHQoKQogICAgewogICAgICAgICR0aGlzLT5fZXhlY3V0ZSgpOwogICAgICAgIGlmKCAkdGhpcy0+X3JzICkgcmV0dXJuICR0aGlzLT5fcnMtPk1vdmVOZXh0KCk7CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBNb3ZlRmlyc3QoKQogICAgewogICAgICAgICR0aGlzLT5fZXhlY3V0ZSgpOwogICAgICAgIGlmKCAkdGhpcy0+X3JzICkgcmV0dXJuICR0aGlzLT5fcnMtPk1vdmVGaXJzdCgpOwogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gUmV3aW5kKCkKICAgIHsKICAgICAgICAkdGhpcy0+X2V4ZWN1dGUoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPk1vdmVGaXJzdCgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBNb3ZlTGFzdCgpCiAgICB7CiAgICAgICAgJHRoaXMtPl9leGVjdXRlKCk7CiAgICAgICAgaWYoICR0aGlzLT5fcnMgKSByZXR1cm4gJHRoaXMtPl9ycy0+TW92ZUxhc3QoKTsKICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIEVPRigpCiAgICB7CiAgICAgICAgJHRoaXMtPl9leGVjdXRlKCk7CiAgICAgICAgaWYoICR0aGlzLT5fcnMgKSByZXR1cm4gJHRoaXMtPl9ycy0+RU9GKCk7CiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIENsb3NlKCkKICAgIHsKICAgICAgICAkdGhpcy0+X2V4ZWN1dGUoKTsKICAgICAgICBpZiggJHRoaXMtPl9ycyApIHJldHVybiAkdGhpcy0+X3JzLT5DbG9zZSgpOwogICAgICAgIHJldHVybiBUUlVFOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgka2V5KQogICAgewogICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1Byb2R1Y3RzJyk7CgogICAgICAgIGlmKCAka2V5ID09ICdkZXRhaWxwYWdlJyApIHsKICAgICAgICAgICAgaWYoICR0aGlzLT5fZGV0YWlscGFnZSApIHJldHVybiAkdGhpcy0+X2RldGFpbHBhZ2U7CiAgICAgICAgICAgICRkZmx0cmV0dXJuaWQgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdkZXRhaWxwYWdlJywtMSk7CiAgICAgICAgICAgIGlmKCAkZGZsdHJldHVybmlkID4gMCApIHJldHVybiAkZGZsdHJldHVybmlkOwogICAgICAgICAgICBpZiggJHRoaXMtPl9jdXJwYWdlICkgcmV0dXJuICR0aGlzLT5fY3VycGFnZTsKICAgICAgICAgICAgcmV0dXJuIGNtc21zKCktPkdldENvbnRlbnRPcGVyYXRpb25zKCktPkdldERlZmF1bHRDb250ZW50KCk7CiAgICAgICAgfQogICAgICAgIGlmKCAka2V5ID09ICdkZXRhaWx0ZW1wbGF0ZScgKSByZXR1cm4gJHRoaXMtPl9kZXRhaWx0ZW1wbGF0ZTsKICAgICAgICBpZiggJGtleSA9PSAnaGllcnBhZ2UnICkgewogICAgICAgICAgICBpZiggJHRoaXMtPl9oaWVycGFnZSApIHJldHVybiAkdGhpcy0+X2hpZXJwYWdlOwogICAgICAgICAgICAkZGZsdHJldHVybmlkID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnaGllcnBhZ2UnLC0xKTsKICAgICAgICAgICAgaWYoICRkZmx0cmV0dXJuaWQgPiAwICkgcmV0dXJuICRkZmx0cmV0dXJuaWQ7CiAgICAgICAgICAgIGlmKCAkdGhpcy0+X2N1cnBhZ2UgKSByZXR1cm4gJHRoaXMtPl9jdXJwYWdlOwogICAgICAgICAgICByZXR1cm4gY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKS0+R2V0RGVmYXVsdENvbnRlbnQoKTsKICAgICAgICB9CiAgICAgICAgaWYoICRrZXkgPT0gJ2N1cnBhZ2UnICkgcmV0dXJuICR0aGlzLT5fY3VycGFnZTsKICAgICAgICBpZiggJGtleSA9PSAnbm90cHJldHR5JyApIHJldHVybiAkdGhpcy0+X25vdHByZXR0eTsKCiAgICAgICAgJHRoaXMtPl9leGVjdXRlKCk7CiAgICAgICAgaWYoICRrZXkgPT0gJ0VPRicgKSByZXR1cm4gJHRoaXMtPl9ycy0+RU9GKCk7CiAgICAgICAgaWYoICRrZXkgPT0gJ3RvdGFscm93cycgKSByZXR1cm4gJHRoaXMtPl90b3RhbG1hdGNoaW5ncm93czsKICAgICAgICBpZiggJGtleSA9PSAnZmllbGRzJyAmJiAkdGhpcy0+X3JzICYmICEkdGhpcy0+X3JzLT5FT0YoKSApIHJldHVybiAkdGhpcy0+X3JzLT5maWVsZHM7CiAgICAgICAgaWYoICRrZXkgPT0gJ251bXBhZ2VzJyApIHJldHVybiBjZWlsKCR0aGlzLT5fdG90YWxtYXRjaGluZ3Jvd3MgLyAkdGhpcy0+X3F1ZXJ5WydwYWdlbGltaXQnXSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fc2V0KCRrZXksJHZhbHVlKQogICAgewogICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1Byb2R1Y3RzJyk7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2RldGFpbHBhZ2UnOgogICAgICAgICAgICAkdG1wID0gJG1vZC0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkdmFsdWUpOwogICAgICAgICAgICBpZiggJHRtcCApICR0aGlzLT5fZGV0YWlscGFnZSA9ICR0bXA7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2hpZXJwYWdlJzoKICAgICAgICAgICAgJHRtcCA9ICRtb2QtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHZhbHVlKTsKICAgICAgICAgICAgaWYoICR0bXAgKSAkdGhpcy0+X2hpZXJwYWdlID0gJHZhbHVlOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdjdXJwYWdlJzoKICAgICAgICAgICAgJHRtcCA9ICRtb2QtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHZhbHVlKTsKICAgICAgICAgICAgaWYoICR0bXAgKSAkdGhpcy0+X2N1cnBhZ2UgPSAkdmFsdWU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ25vdHByZXR0eSc6CiAgICAgICAgICAgICR0aGlzLT5fbm90cHJldHR5ID0gdHJpbSgkdmFsdWUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdkZXRhaWx0ZW1wbGF0ZSc6CiAgICAgICAgICAgICR0aGlzLT5fZGV0YWlsdGVtcGxhdGUgPSAkdmFsdWU7CiAgICAgICAgICAgIGlmKCAkdGhpcy0+X25vdHByZXR0eSA9PSAnJyApICR0aGlzLT5fbm90cHJldHR5ID0gJ2RldGFpbHMnOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQ2Fubm90IHNldCAnLiRrZXkuJyBpbnRvIHRoaXMgb2JqZWN0Jyk7CiAgICAgICAgfQogICAgfQoKICAgIC8vIHJldHVybiB0aGUgZnVsbCBwcm9kdWN0ICh3aXRoIGZpZWxkcywgYW5kIGF0dHJpYnV0ZXMpCiAgICBwdWJsaWMgZnVuY3Rpb24gJmdldF9wcm9kdWN0KCRiYXJlID0gZmFsc2UsJGFzX2FycmF5ID0gRkFMU0UpCiAgICB7CiAgICAgICAgJHJldCA9IG51bGw7CiAgICAgICAgaWYoICEkdGhpcy0+X3JzICkgcmV0dXJuICRyZXQ7CgogICAgICAgICRvbmVyb3cgPSAkdGhpcy0+X3JzLT5maWVsZHM7CgogICAgICAgICRwcm9kdWN0X2lkID0gKGludCkgJHRoaXMtPl9ycy0+ZmllbGRzWydpZCddOwogICAgICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICAgICAkbW9kdWxlID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdQcm9kdWN0cycpOwogICAgICAgICRmaWxlZGlyID0gcHJvZHVjdF91dGlsczo6Z2V0X3Byb2R1Y3RfdXBsb2FkX3BhdGgoJHByb2R1Y3RfaWQpOwoKICAgICAgICAvLyBjYXRlZ29yaWVzCiAgICAgICAgaWYoIGlzX2FycmF5KCR0aGlzLT5fY2F0ZWdvcnlfY2FjaGUpICYmIGNvdW50KCR0aGlzLT5fY2F0ZWdvcnlfY2FjaGUpICkgewogICAgICAgICAgICAkY2F0cyA9IHByb2R1Y3RfdXRpbHM6OmdldF9mdWxsX2NhdGVnb3JpZXMoKTsKICAgICAgICAgICAgJGNhdGFycmF5ID0gYXJyYXkoKTsKICAgICAgICAgICAgJGNhdG5hbWVhcnJheSA9IGFycmF5KCk7CiAgICAgICAgICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0aGlzLT5fY2F0ZWdvcnlfY2FjaGUpOyAkaSsrICkgewogICAgICAgICAgICAgICAgaWYoICR0aGlzLT5fY2F0ZWdvcnlfY2FjaGVbJGldWydwcm9kdWN0X2lkJ10gPCAkcHJvZHVjdF9pZCApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgaWYoICR0aGlzLT5fY2F0ZWdvcnlfY2FjaGVbJGldWydwcm9kdWN0X2lkJ10gPiAkcHJvZHVjdF9pZCApIGJyZWFrOwoKICAgICAgICAgICAgICAgIGZvcmVhY2goICRjYXRzIGFzICRvbmVjYXQgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoICR0aGlzLT5fY2F0ZWdvcnlfY2FjaGVbJGldWydjYXRlZ29yeV9pZCddICE9ICRvbmVjYXQtPmlkICkgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgJGVudHJ5ID0gY2xvbmUgJG9uZWNhdDsKICAgICAgICAgICAgICAgICAgICAkZW50cnktPnZhbHVlID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAkY2F0bmFtZWFycmF5W10gPSAkZW50cnktPm5hbWU7CiAgICAgICAgICAgICAgICAgICAgJGNhdGFycmF5W10gPSAkZW50cnk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJG9uZXJvd1snY2F0ZWdvcmllcyddID0gJGNhdGFycmF5OwogICAgICAgICAgICAkb25lcm93WydjYXRuYW1lYXJyYXknXSA9ICRjYXRuYW1lYXJyYXk7CiAgICAgICAgfQoKICAgICAgICAvLyBmaWVsZHMKICAgICAgICBpZiggaXNfYXJyYXkoJHRoaXMtPl9maWVsZF9jYWNoZSkgJiYgY291bnQoJHRoaXMtPl9maWVsZF9jYWNoZSkgKSB7CiAgICAgICAgICAgICRmbGRkZWZzID0gcHJvZHVjdF91dGlsczo6Z2V0X2ZpZWxkZGVmcyhGQUxTRSxUUlVFKTsKICAgICAgICAgICAgJGZsZGFycmF5ID0gYXJyYXkoKTsKICAgICAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRoaXMtPl9maWVsZF9jYWNoZSk7ICRpKysgKSB7CiAgICAgICAgICAgICAgICBpZiggJHRoaXMtPl9maWVsZF9jYWNoZVskaV1bJ3Byb2R1Y3RfaWQnXSA8ICRwcm9kdWN0X2lkICkgY29udGludWU7CiAgICAgICAgICAgICAgICBpZiggJHRoaXMtPl9maWVsZF9jYWNoZVskaV1bJ3Byb2R1Y3RfaWQnXSA+ICRwcm9kdWN0X2lkICkgYnJlYWs7CgogICAgICAgICAgICAgICAgZm9yZWFjaCggJGZsZGRlZnMgYXMgJG9uZWRlZiApIHsKICAgICAgICAgICAgICAgICAgICBpZiggJHRoaXMtPl9maWVsZF9jYWNoZVskaV1bJ2ZpZWxkZGVmX2lkJ10gIT0gJG9uZWRlZi0+aWQgKSBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAgICAgJGVudHJ5ID0gY2xvbmUgJG9uZWRlZjsKICAgICAgICAgICAgICAgICAgICAkZW50cnktPnZhbHVlID0gJHRoaXMtPl9maWVsZF9jYWNoZVskaV1bJ3ZhbHVlJ107CiAgICAgICAgICAgICAgICAgICAgaWYoICRlbnRyeS0+dHlwZSA9PSAnZGltZW5zaW9ucycgfHwgJGVudHJ5LT50eXBlID09ICdzdWJzY3JpcHRpb24nICkgewogICAgICAgICAgICAgICAgICAgICAgICAkZW50cnktPnZhbHVlID0gdW5zZXJpYWxpemUoJGVudHJ5LT52YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoICRlbnRyeS0+dHlwZSA9PSAnaW1hZ2UnICkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiggJGVudHJ5LT52YWx1ZSAmJiBmaWxlX2V4aXN0cyhjbXNfam9pbl9wYXRoKCRmaWxlZGlyLCd0aHVtYl8nLiRlbnRyeS0+dmFsdWUpKSApICRlbnRyeS0+dGh1bWJuYWlsID0gJ3RodW1iXycuJGVudHJ5LT52YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICRlbnRyeS0+dmFsdWUgJiYgZmlsZV9leGlzdHMoY21zX2pvaW5fcGF0aCgkZmlsZWRpciwncHJldmlld18nLiRlbnRyeS0+dmFsdWUpKSApICRlbnRyeS0+cHJldmlldyA9ICdwcmV2aWV3XycuJGVudHJ5LT52YWx1ZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJGVudHJ5LT5maWVsZGRlZl9pZCA9ICRlbnRyeS0+aWQ7IC8vID8/CiAgICAgICAgICAgICAgICAgICAgJGZsZGFycmF5WyRlbnRyeS0+bmFtZV0gPSAkZW50cnk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJG9uZXJvd1snZmllbGRzJ10gPSAkZmxkYXJyYXk7CiAgICAgICAgfQoKICAgICAgICAvLyBhdHRyaWJ1dGVzL29wdGlvbnMKICAgICAgICBpZiggaXNfYXJyYXkoJHRoaXMtPl9hdHRyaWJ1dGVfY2FjaGUpICYmIGlzc2V0KCR0aGlzLT5fYXR0cmlidXRlX2NhY2hlWyRwcm9kdWN0X2lkXSkgJiYKICAgICAgICAgICAgaXNfYXJyYXkoJHRoaXMtPl9hdHRyaWJ1dGVfY2FjaGVbJHByb2R1Y3RfaWRdKSAmJgogICAgICAgICAgICBjb3VudCgkdGhpcy0+X2F0dHJpYnV0ZV9jYWNoZVskcHJvZHVjdF9pZF0pICkgewogICAgICAgICAgICAkb25lcm93WydhdHRyaWJ1dGVzJ10gPSAkdGhpcy0+X2F0dHJpYnV0ZV9jYWNoZVskcHJvZHVjdF9pZF07CiAgICAgICAgfQoKICAgICAgICBwcm9kdWN0X29wczo6c2V0X3Byb2R1Y3QoJG9uZXJvdyk7CiAgICAgICAgaWYoICRhc19hcnJheSApIHJldHVybiAkb25lcm93OwogICAgICAgICRvbmVyb3cgPSBjZ2VfYXJyYXk6OnRvX29iamVjdCgkb25lcm93KTsKICAgICAgICByZXR1cm4gJG9uZXJvdzsKICAgIH0KCgogICAgcHVibGljIGZ1bmN0aW9uICZnZXRfcHJvZHVjdF9mb3JfZGlzcGxheSgpCiAgICB7CiAgICAgICAgJHJldCA9IG51bGw7CiAgICAgICAgaWYoICEkdGhpcy0+X3JzICkgcmV0dXJuICRyZXQ7CgogICAgICAgICRvbmVyb3cgPSAkdGhpcy0+Z2V0X3Byb2R1Y3QoKTsKICAgICAgICBpZiggISRvbmVyb3cgKSByZXR1cm4gJHJldDsKCiAgICAgICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgICAgICRtb2R1bGUgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1Byb2R1Y3RzJyk7CgogICAgICAgICRvbmVyb3ctPmZpbGVfbG9jYXRpb24gPSBwcm9kdWN0X3V0aWxzOjpnZXRfcHJvZHVjdF91cGxvYWRfdXJsKCRvbmVyb3ctPmlkKTsKCiAgICAgICAgJHByZXR0eV91cmwgPSAnJzsKICAgICAgICAkcGFybXMgPSBhcnJheSgpOwogICAgICAgIGlmKCAkdGhpcy0+X25vdHByZXR0eSAhPSAnJyApICRwYXJtc1snbm90cHJldHR5J10gPSAkdGhpcy0+X25vdHByZXR0eTsKICAgICAgICBpZiggcHJvZHVjdF91dGlsczo6Y2FuX2RvX3ByZXR0eSgnZGV0YWlscycsJHBhcm1zKSApICRwcmV0dHlfdXJsID0gcHJvZHVjdF9vcHM6OnByZXR0eV91cmwoJG9uZXJvdy0+aWQsJHRoaXMtPmRldGFpbHBhZ2UpOwoKICAgICAgICAkcGFybXMgPSBhcnJheSgpOwogICAgICAgICRwYXJtc1sncHJvZHVjdGlkJ10gPSAkb25lcm93LT5pZDsKICAgICAgICBpZiggJHRoaXMtPl9kZXRhaWxwYWdlICkgJHBhcm1zWydkZXRhaWxwYWdlJ10gPSAkdGhpcy0+X2RldGFpbHBhZ2U7CiAgICAgICAgaWYoICR0aGlzLT5fZGV0YWlsdGVtcGxhdGUgKSAkcGFybXNbJ2RldGFpbHRlbXBsYXRlJ10gPSAkdGhpcy0+X2RldGFpbHRlbXBsYXRlOwogICAgICAgICRvbmVyb3ctPmRldGFpbF91cmwgPSAkbW9kdWxlLT5jcmVhdGVfdXJsKCdwcm9kJywnZGV0YWlscycsJHRoaXMtPmRldGFpbHBhZ2UsJHBhcm1zLGZhbHNlLGZhbHNlLCRwcmV0dHlfdXJsKTsKICAgICAgICBpZiggJG9uZXJvdy0+aGllcmFyY2h5X2lkICkgJG9uZXJvdy0+YnJlYWRjcnVtYiA9IGhpZXJhcmNoeV9vcHM6OmdldF9icmVhZGNydW1iKCdjbnRudDAxJywkb25lcm93LT5oaWVyYXJjaHlfaWQsJHRoaXMtPmhpZXJwYWdlKTsKCiAgICAgICAgcmV0dXJuICRvbmVyb3c7CiAgICB9IC8vIGZ1bmN0aW9uCn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/class.product_ops.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmZpbmFsIGNsYXNzIHByb2R1Y3Rfb3BzCnsKICAgIHN0YXRpYyBwcml2YXRlICRfZmllbGRkZWZzOwogICAgc3RhdGljIHByaXZhdGUgJF9wcm9kaGllcjsKICAgIHN0YXRpYyBwcml2YXRlICRfcHJvZHVjdF9jYWNoZTsKCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkge30KCiAgICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIHNldF9wcm9kdWN0KCRwcm9kdWN0KQogICAgewogICAgICAgIGlmKCAhaXNzZXQoJHByb2R1Y3RbJ2lkJ10pIHx8ICFpc3NldCgkcHJvZHVjdFsnbmFtZSddKSApIHsKICAgICAgICAgICAgc2VsZjo6JF9wcm9kdWN0X2NhY2hlWyRwcm9kdWN0WydpZCddXSA9ICRwcm9kdWN0OwogICAgICAgIH0KICAgIH0KCiAgICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIGdldF9wcm9kdWN0X2J5X3NrdSgkc2t1LCRhbnlzdGF0dXMgPSBGQUxTRSkKICAgIHsKICAgICAgICAkc2t1ID0gdHJpbSgoc3RyaW5nKSAkc2t1KTsKICAgICAgICBpZiggISRza3UgKSByZXR1cm47CiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCiAgICAgICAgLy8gZG9uJ3Qga25vdyBpZiBpdCdzIGEgcHJvZHVjdCBza3UsIG9yIGFuIG9wdGlvbiBza3UKICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cyBXSEVSRSBza3UgPSA/JzsKICAgICAgICAkdG1wID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRza3UpKTsKICAgICAgICBpZiggKGludCkgJHRtcCA+IDAgKSB7CiAgICAgICAgICAgIHJldHVybiBzZWxmOjpnZXRfcHJvZHVjdCgkdG1wKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgcHJvZHVjdF9pZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlicyBXSEVSRSBza3UgPSA/JzsKICAgICAgICAgICAgJHRtcCA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkc2t1KSk7CiAgICAgICAgICAgIGlmKCAoaW50KSAkdG1wID4gMCApIHsKICAgICAgICAgICAgICAgIHJldHVybiBzZWxmOjpnZXRfcHJvZHVjdCgkdG1wKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAvLyByZXR1cm4gbm90aGluZy4KICAgIH0KCiAgICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIGdldF9wcm9kdWN0KCRwcm9kdWN0X2lkLCRhbnlzdGF0dXMgPSBGQUxTRSkKICAgIHsKICAgICAgICAkcHJvZHVjdF9pdCA9IChpbnQpJHByb2R1Y3RfaWQ7CiAgICAgICAgaWYoIGlzX2FycmF5KHNlbGY6OiRfcHJvZHVjdF9jYWNoZSkgJiYgaXNzZXQoc2VsZjo6JF9wcm9kdWN0X2NhY2hlWyRwcm9kdWN0X2lkXSkgKSB7CiAgICAgICAgICAgIHJldHVybiBzZWxmOjokX3Byb2R1Y3RfY2FjaGVbJHByb2R1Y3RfaWRdOwogICAgICAgIH0KCiAgICAgICAgJHF1ZXJ5ID0gbmV3IHByb2R1Y3RzX3F1ZXJ5KCk7CiAgICAgICAgJHF1ZXJ5Wydwcm9kdWN0X2lkJ10gPSAoaW50KSRwcm9kdWN0X2lkOwogICAgICAgIGlmKCAkYW55c3RhdHVzICkgJHF1ZXJ5WydzdGF0dXMnXSA9ICcqJzsKICAgICAgICAkcmVzdWx0cyA9ICRxdWVyeS0+ZXhlY3V0ZSgpOwogICAgICAgIGlmKCAkcmVzdWx0cy0+dG90YWxyb3dzID4gMSApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignSU5URVJOQUwgRVJST1I6IE1vcmUgdGhhbiBvbmUgcHJvZHVjdCB3aXRoIHRoZSBpZCAnLiRwcm9kdWN0X2lkKTsKICAgICAgICB9CgogICAgICAgICRwcm9kdWN0ID0gJHJlc3VsdHMtPmdldF9wcm9kdWN0KEZBTFNFLFRSVUUpOwogICAgICAgIGlmKCAhaXNfYXJyYXkoc2VsZjo6JF9wcm9kdWN0X2NhY2hlKSApIHNlbGY6OiRfcHJvZHVjdF9jYWNoZSA9IGFycmF5KCk7CiAgICAgICAgc2VsZjo6JF9wcm9kdWN0X2NhY2hlWyRwcm9kdWN0X2lkXSA9ICRwcm9kdWN0OwogICAgICAgIHJldHVybiBzZWxmOjokX3Byb2R1Y3RfY2FjaGVbJHByb2R1Y3RfaWRdOwogICAgfQoKICAgIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gaXNfdmFsaWRfY2F0ZWdvcnkoJG5hbWUpCiAgICB7CiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yaWVzIFdIRVJFIG5hbWUgPSA/JzsKICAgICAgICAkdG1wID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRuYW1lKSk7CiAgICAgICAgaWYoICR0bXAgKSByZXR1cm4gVFJVRTsKICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXNfdmFsaWRfcHJvZHVjdF9pZCgkcGlkKQogICAgewogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgV0hFUkUgaWQgPSA/JzsKICAgICAgICAkdG1wID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkcGlkKSk7CiAgICAgICAgaWYoICR0bXAgKSByZXR1cm4gVFJVRTsKICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXNfdmFsaWRfaGllcmFyY2h5KCRzdHIpCiAgICB7CiAgICAgICAgLy8gYWNjZXB0IHN0cmluZyBvZiAibmFtZS5uYW1lLm5hbWUubmFtZSIgYW5kCiAgICAgICAgLy8gY29udmVydCBpbnRvICJuYW1lIHwgbmFtZSB8IG5hbWUgfCBuYW1lIjsKICAgICAgICAkdG1wID0gZXhwbG9kZSgnLicsJHN0cik7CiAgICAgICAgJHRtcDIgPSBhcnJheSgpOwogICAgICAgIGZvcmVhY2goICR0bXAgYXMgJG9uZSApIHsKICAgICAgICAgICAgJHRtcDJbXSA9IHRyaW0odHJpbSgkb25lLCciJykpOwogICAgICAgIH0KICAgICAgICAkdG1wMyA9IGltcGxvZGUoJyB8ICcsJHRtcDIpOwoKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBXSEVSRSBsb25nX25hbWUgPSA/JzsKICAgICAgICAkdG1wID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCR0bXAzKSk7CiAgICAgICAgaWYoICEkdG1wICkgcmV0dXJuIEZBTFNFOwogICAgICAgIHJldHVybiBUUlVFOwogICAgfQoKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNoZWNrX3NrdV91c2VkKCRza3UsJHByb2R1Y3RpZCA9ICcnLCRwcm9kdWN0b25seSA9IGZhbHNlKQogICAgewogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgV0hFUkUgc2t1ID0gPyc7CiAgICAgICAgJHBhcm1zID0gYXJyYXkoJHNrdSk7CiAgICAgICAgaWYoICFlbXB0eSgkcHJvZHVjdGlkKSApIHsKICAgICAgICAgICAgJHF1ZXJ5IC49ICcgQU5EIGlkICE9ID8nOwogICAgICAgICAgICAkcGFybXNbXSA9ICRwcm9kdWN0aWQ7CiAgICAgICAgfQogICAgICAgICR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksJHBhcm1zKTsKICAgICAgICBpZiggJHRtcCApIHJldHVybiBUUlVFOwoKICAgICAgICBpZiggISRwcm9kdWN0b25seSApIHsKICAgICAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlicyBXSEVSRSBza3UgPSA/JzsKICAgICAgICAgICAgJHRtcCA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkc2t1KSk7CiAgICAgICAgICAgIGlmKCAkdG1wICkgcmV0dXJuIFRSVUU7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgoKICAgIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gY2hlY2tfYWxpYXNfdXNlZCgkYWxpYXMsJHByb2R1Y3RpZCA9ICcnKQogICAgewogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgogICAgICAgICRwYXJtcyA9IGFycmF5KCk7CiAgICAgICAgJHBhcm1zW10gPSAkYWxpYXM7CiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgV0hFUkUgYWxpYXMgPSA/JzsKICAgICAgICBpZiggIWVtcHR5KCRwcm9kdWN0aWQpICkgewogICAgICAgICAgICAkcXVlcnkgLj0gJ0FORCBpZCAhPSA/JzsKICAgICAgICAgICAgJHBhcm1zW10gPSAoaW50KSRwcm9kdWN0aWQ7CiAgICAgICAgfQogICAgICAgICR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksJHBhcm1zKTsKICAgICAgICBpZiggISR0bXAgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CgoKICAgIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gZ2VuZXJhdGVfYWxpYXMoJHByb2R1Y3RfbmFtZSkKICAgIHsKICAgICAgICAkc3RyID0gbXVuZ2Vfc3RyaW5nX3RvX3VybCgkcHJvZHVjdF9uYW1lKTsKICAgICAgICAkcG9zdGZpeCA9ICcnOwoKICAgICAgICB3aGlsZSggJHBvc3RmaXggPCAxMDAwICkgewogICAgICAgICAgICAkYWxpYXMgPSAkc3RyLiRwb3N0Zml4OwogICAgICAgICAgICBpZiggIXNlbGY6OmNoZWNrX2FsaWFzX3VzZWQoJGFsaWFzKSApIHJldHVybiAkYWxpYXM7CiAgICAgICAgICAgIGlmKCAkcG9zdGZpeCA9PSAnJyApICRwb3N0Zml4ID0gMTsKICAgICAgICAgICAgJHBvc3RmaXgrKzsKICAgICAgICB9CgogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCgogICAgLy8gY3JlYXRlcyBhIHByb2R1Y3QgZGV0YWlsIHVybC4KICAgIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gcHJldHR5X3VybCgkcGlkLCRyZXR1cm5pZCA9ICcnKQogICAgewogICAgICAgICRtb2R1bGUgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1Byb2R1Y3RzJyk7CiAgICAgICAgJHByb2R1Y3QgPSBzZWxmOjpnZXRfcHJvZHVjdCgkcGlkKTsKICAgICAgICBpZiggISRwcm9kdWN0ICkgcmV0dXJuOwogICAgICAgICRkYiA9IENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldERCKCk7CgogICAgICAgICR1c2VyZXR1cm5pZCA9IHRydWU7CiAgICAgICAgaWYoICRyZXR1cm5pZCA9PSAtMSApIHsKICAgICAgICAgICAgJGNvbnRlbnRvcHMgPSBHZXRDb250ZW50T3BlcmF0aW9uczo6Z2V0X2luc3RhbmNlKCk7CiAgICAgICAgICAgICRyZXR1cm5pZCA9ICRjb250ZW50b3BzLT5HZXREZWZhdWx0Q29udGVudCgpOwogICAgICAgIH0KICAgICAgICAkZGZsdHJldHVybmlkID0gJG1vZHVsZS0+R2V0UHJlZmVyZW5jZSgnZGV0YWlscGFnZScsLTEpOwogICAgICAgIGlmKCAkZGZsdHJldHVybmlkID09ICRyZXR1cm5pZCB8fCAkcmV0dXJuaWQgPT0gJycgKSB7CiAgICAgICAgICAgICR1c2VyZXR1cm5pZCA9IGZhbHNlOwogICAgICAgICAgICAkcmV0dXJuaWQgPSAkZGZsdHJldHVybmlkOwogICAgICAgIH0KCiAgICAgICAgJHByZXR0eV91cmwgPSBudWxsOwogICAgICAgICRwcmVmaXggPSAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCd1cmxwcmVmaXgnKTsKICAgICAgICAkdXJsc2x1ZyAgPSAkcHJvZHVjdFsndXJsJ107CiAgICAgICAgaWYoICR1cmxzbHVnICkgewogICAgICAgICAgICAvLyBpZiB3ZSBoYXZlIGEgdXJsIHNsdWcgd2UganVzdCBwcmVwZW5kIHRoZSBwcmVmaXggKGlmIHdlIGhhdmUgYW55KQogICAgICAgICAgICAkcHJldHR5X3VybCA9ICJ7JHByZWZpeH17JHVybHNsdWd9IjsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIC8vIG5vIHVybHNsdWcsIHNvIGJ1aWxkIHRoZSB1cmwgYmFzZWQgb24gdGhlIHByZWZpeCwgdGhlIGFsaWFzLCBhbmQgdGhlIGhpZXJhcmNoeSBzdHVmZi4KICAgICAgICAgICAgJHByZXR0eV91cmwgPSAoJHByZWZpeCk/JHByZWZpeDokbW9kdWxlLT5HZXROYW1lKCk7CiAgICAgICAgICAgICRkb25lID0gZmFsc2U7CiAgICAgICAgICAgIGlmKCAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCd1c2VoaWVycGF0aHVybHMnLDApICYmICFlbXB0eSgkcHJvZHVjdFsnYWxpYXMnXSkgJiYgKGlzc2V0KCRwcm9kdWN0WydoaWVyYXJjaHlfaWQnXSkgJiYgJHByb2R1Y3RbJ2hpZXJhcmNoeV9pZCddID4gMCkgKSB7CiAgICAgICAgICAgICAgICAkaGllcl9pZCA9IHNlbGY6OmdldF9wcm9kdWN0X2hpZXJhcmNoeV9pZCgkcGlkKTsKICAgICAgICAgICAgICAgIGlmKCAkaGllcl9pZCApIHsKICAgICAgICAgICAgICAgICAgICAkdG1wID0gaGllcmFyY2h5X29wczo6Z2V0X2hpZXJhcmNoeV9pbmZvKCRoaWVyX2lkKTsKICAgICAgICAgICAgICAgICAgICBpZiggJHRtcCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHRtcDIgPSBleHBsb2RlKCcgfCAnLCR0bXBbJ2xvbmdfbmFtZSddKTsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcDIpOyAkaSsrICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRtcDJbJGldID0gbXVuZ2Vfc3RyaW5nX3RvX3VybCgkdG1wMlskaV0pOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICRwYXRoID0gaW1wbG9kZSgnLycsJHRtcDIpOwoKICAgICAgICAgICAgICAgICAgICAgICAgJHByZXR0eV91cmwgLj0gJy9kZXRhaWxzJzsKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAkdXNlcmV0dXJuaWQgKSAkcHJldHR5X3VybCAuPSAiLyRyZXR1cm5pZCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAhZW1wdHkoJHBhdGgpICkgJHByZXR0eV91cmwgLj0gIi8kcGF0aCI7CgogICAgICAgICAgICAgICAgICAgICAgICAkcHJldHR5X3VybCAuPSAiLyIuJHByb2R1Y3RbJ2FsaWFzJ107CiAgICAgICAgICAgICAgICAgICAgICAgICRkb25lID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmKCAhJGRvbmUgKSB7CiAgICAgICAgICAgICAgICAkcHJldHR5X3VybCAuPSAiLyRwaWQiOwogICAgICAgICAgICAgICAgaWYoICR1c2VyZXR1cm5pZCApICRwcmV0dHlfdXJsIC49ICIvJHJldHVybmlkIjsKICAgICAgICAgICAgICAgICRhbGlhcyA9ICRwcm9kdWN0WydhbGlhcyddOwogICAgICAgICAgICAgICAgaWYoIGVtcHR5KCRhbGlhcykgKSAkYWxpYXMgPSAkbW9kdWxlLT5tYWtlX2FsaWFzKCRwcm9kdWN0Wydwcm9kdWN0X25hbWUnXSk7CiAgICAgICAgICAgICAgICAkcHJldHR5X3VybCAuPSAiLyRhbGlhcyI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRwcmV0dHlfdXJsOwogICAgfQoKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9wcm9kdWN0X2hpZXJhcmNoeV9pZCgkcHJvZHVjdGlkKQogICAgewogICAgICAgIGlmKCAhaXNfYXJyYXkoc2VsZjo6JF9wcm9kaGllcikgfHwgIWlzc2V0KHNlbGY6OiRfcHJvZGhpZXJbJHByb2R1Y3RpZF0pICkgewogICAgICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIGhpZXJhcmNoeV9pZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHRvaGllcgogICAgICAgICAgICAgICAgV0hFUkUgcHJvZHVjdF9pZCA9ID8gTElNSVQgMSc7CiAgICAgICAgICAgICRoaWVyX2lkID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRwcm9kdWN0aWQpKTsKICAgICAgICAgICAgaWYoICRoaWVyX2lkIDw9IDAgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoc2VsZjo6JF9wcm9kaGllcikgKSBzZWxmOjokX3Byb2RoaWVyID0gYXJyYXkoKTsKICAgICAgICAgICAgc2VsZjo6JF9wcm9kaGllclskcHJvZHVjdGlkXSA9ICRoaWVyX2lkOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2VsZjo6JF9wcm9kaGllclskcHJvZHVjdGlkXTsKICAgIH0KCgogICAgLyogZGVwcmVjYXRlZCAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfcHJvZHVjdF9oaWVyYXJjaHlfcGF0aCgkcHJvZHVjdGlkKQogICAgewogICAgICAgICRoaWVyX2lkID0gc2VsZjo6Z2V0X3Byb2R1Y3RfaGllcmFyY2h5X2lkKCRwcm9kdWN0aWQpOwogICAgICAgIGlmKCAkaGllcl9pZCApIHJldHVybiBoaWVyYXJjaHlfb3BzOjpnZXRfaGllcmFyY2h5X3BhdGgoJGhpZXJfaWQpOwogICAgfQoKCiAgICAvKiBkZXByZWNhdGVkICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNyZWF0ZV9oaWVyYXJjaHlfYnJlYWRjcnVtYigkaWQsJHByb2R1Y3RfaWQsICRoaWVycGFnZSwgJGRlbGltID0gJyAmZ3Q7ICcpCiAgICB7CiAgICAgICAgJGhpZXJfaWQgPSBzZWxmOjpnZXRfcHJvZHVjdF9oaWVyYXJjaHlfaWQoJHByb2R1Y3RfaWQpOwogICAgICAgIGlmKCAkaGllcl9pZCA8PSAwICkgcmV0dXJuIEZBTFNFOwogICAgICAgIHJldHVybiBoaWVyYXJjaHlfb3BzOjpnZXRfYnJlYWRjcnVtYigkaWQsJGhpZXJfaWQsJGhpZXJwYWdlLCRkZWxpbSk7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3NlYXJjaF9yZXN1bHQoJHJldHVybmlkLCAkcHJvZHVjdGlkLCAkYXR0ciA9ICcnKQogICAgewogICAgICAgICRyZXN1bHQgPSBhcnJheSgpOwogICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1Byb2R1Y3RzJyk7CgogICAgICAgIGlmICgkYXR0ciAhPSAncHJvZHVjdCcpIHJldHVybiAkcmVzdWx0OwogICAgICAgIGlmKCAkbW9kLT5HZXRQcmVmZXJlbmNlKCd1c2VfZGV0YWlscGFnZV9mb3Jfc2VhcmNoJywwKSApICRyZXR1cm5pZCA9ICcnOwoKICAgICAgICAkZGIgPSAkbW9kLT5HZXREYigpOwogICAgICAgICRxID0gIlNFTEVDVCBwcm9kdWN0X25hbWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzIFdIRVJFIGlkID0gPyI7CiAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcSwgYXJyYXkoICRwcm9kdWN0aWQgKSApOwogICAgICAgIGlmICgkZGJyZXN1bHQpIHsKICAgICAgICAgICAgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKTsKCiAgICAgICAgICAgIC8vMCBwb3NpdGlvbiBpcyB0aGUgcHJlZml4IGRpc3BsYXllZCBpbiB0aGUgbGlzdCByZXN1bHRzLgogICAgICAgICAgICAkcmVzdWx0WzBdID0gJG1vZC0+R2V0RnJpZW5kbHlOYW1lKCk7CgogICAgICAgICAgICAvLzEgcG9zaXRpb24gaXMgdGhlIHRpdGxlCiAgICAgICAgICAgICRyZXN1bHRbMV0gPSAkcm93Wydwcm9kdWN0X25hbWUnXTsKCiAgICAgICAgICAgIC8vMiBwb3NpdGlvbiBpcyB0aGUgVVJMIHRvIHRoZSB0aXRsZS4KICAgICAgICAgICAgJHByZXR0eXVybCA9IHNlbGY6OnByZXR0eV91cmwoJHByb2R1Y3RpZCwkcmV0dXJuaWQpOwogICAgICAgICAgICAkcmVzdWx0WzJdID0gJG1vZC0+Q3JlYXRlTGluaygnY250bnQwMScsICdkZXRhaWxzJywgJHJldHVybmlkLCAnJywgYXJyYXkoJ3Byb2R1Y3RpZCcgPT4gJHByb2R1Y3RpZCkgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJywgdHJ1ZSwgZmFsc2UsICcnLCB0cnVlLCAkcHJldHR5dXJsKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgfQoKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9jdXJyZW5jeV9zeW1ib2woKQogICAgewogICAgICAgICRjZ2VjYiA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwogICAgICAgIGlmKCBjbGFzc19leGlzdHMoJ2NnX2Vjb21tJykgKSByZXR1cm4gY2dfZWNvbW06OmdldF9jdXJyZW5jeV9zeW1ib2woKTsKICAgICAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdQcm9kdWN0cycpOwogICAgICAgIHJldHVybiAkbW9kLT5HZXRQcmVmZXJlbmNlKCdwcm9kdWN0c19jdXJyZW5jeXN5bWJvbCcsJyQnKTsKICAgIH0KCgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfd2VpZ2h0X3VuaXRzKCkKICAgIHsKICAgICAgICAkY2dlY2IgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0Vjb21tZXJjZUJhc2UnKTsKICAgICAgICBpZiggY2xhc3NfZXhpc3RzKCdjZ19lY29tbScpICkgcmV0dXJuIGNnX2Vjb21tOjpnZXRfd2VpZ2h0X3VuaXRzKCk7CiAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnUHJvZHVjdHMnKTsKICAgICAgICByZXR1cm4gJG1vZC0+R2V0UHJlZmVyZW5jZSgncHJvZHVjdHNfd2VpZ2h0dW5pdHMnLCdrZycpOwogICAgfQoKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9sZW5ndGhfdW5pdHMoKQogICAgewogICAgICAgICRjZ2VjYiA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwogICAgICAgIGlmKCBjbGFzc19leGlzdHMoJ2NnX2Vjb21tJykgKSByZXR1cm4gY2dfZWNvbW06OmdldF9sZW5ndGhfdW5pdHMoKTsKICAgICAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdQcm9kdWN0cycpOwogICAgICAgIHJldHVybiAkbW9kLT5HZXRQcmVmZXJlbmNlKCdwcm9kdWN0c19sZW5ndGh1bml0cycsJ2tnJyk7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2ZpZWxkcygpCiAgICB7CiAgICAgICAgaWYoICFpc19hcnJheShzZWxmOjokX2ZpZWxkZGVmcykgKSB7CiAgICAgICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgogICAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBPUkRFUiBCWSBpdGVtX29yZGVyJzsKICAgICAgICAgICAgc2VsZjo6JF9maWVsZGRlZnMgPSAkZGItPkdldEFycmF5KCRxdWVyeSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBzZWxmOjokX2ZpZWxkZGVmczsKICAgIH0KCgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfZmllbGRfb3B0aW9ucygkdHlwZSA9ICcnKQogICAgewogICAgICAgICR0bXAgPSBzZWxmOjpnZXRfZmllbGRzKCk7CiAgICAgICAgaWYoICFpc19hcnJheSgkdG1wKSApIHJldHVybjsKCiAgICAgICAgJHJlc3VsdCA9IGFycmF5KCk7CiAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKSB7CiAgICAgICAgICAgIGlmKCAkdHlwZSA9PSAnJyB8fCAkdG1wWyRpXVsndHlwZSddID09ICR0eXBlICkgJHJlc3VsdFskdG1wWyRpXVsnaWQnXV0gPSAkdG1wWyRpXVsncHJvbXB0J107CiAgICAgICAgfQogICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgfQoKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9wcm9kdWN0X2F0dHJpYnV0ZXNfZnVsbCgkcHJvZHVjdF9pZCkKICAgIHsKICAgICAgICAkZGF0YSA9IHByb2R1Y3RzX2F0dHJpYjo6bG9hZF9ieV9wcm9kdWN0KCRwcm9kdWN0X2lkKTsKICAgICAgICBpZiggIWNvdW50KCRkYXRhKSApIHJldHVybiBmYWxzZTsKICAgICAgICByZXR1cm4gJGRhdGE7CiAgICB9Cn0gLy8gY2xhc3MKCgojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/class.product_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmZpbmFsIGNsYXNzIHByb2R1Y3RfdXRpbHMKewogIHByb3RlY3RlZCBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHt9CiAgcHJpdmF0ZSBzdGF0aWMgJF9jYXRlZ29yeV9jYWNoZTsKICBzdGF0aWMgcHJpdmF0ZSAkX2ZsZGRlZl9jYWNoZTsKCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmllbGRfdHlwZXMoJHNlbGVjdG9uZSA9IGZhbHNlKQogIHsKICAgICAgJG1vZCA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnUHJvZHVjdHMnKTsKICAgICAgJGl0ZW1zID0gYXJyYXkoKTsKICAgICAgaWYoICRzZWxlY3RvbmUgKSAkaXRlbXNbJG1vZC0+TGFuZygnc2VsZWN0X29uZScpXSA9ICcnOwogICAgICAkaXRlbXNbJG1vZC0+TGFuZygndGV4dGJveCcpXSA9ICd0ZXh0Ym94JzsKICAgICAgJGl0ZW1zWyRtb2QtPkxhbmcoJ2NoZWNrYm94JyldID0gJ2NoZWNrYm94JzsKICAgICAgJGl0ZW1zWyRtb2QtPkxhbmcoJ3RleHRhcmVhJyldID0gJ3RleHRhcmVhJzsKICAgICAgJGl0ZW1zWyRtb2QtPkxhbmcoJ2Ryb3Bkb3duJyldID0gJ2Ryb3Bkb3duJzsKICAgICAgJGl0ZW1zWyRtb2QtPkxhbmcoJ2ltYWdldGV4dCcpXSA9ICdpbWFnZSc7CiAgICAgICRpdGVtc1skbW9kLT5MYW5nKCdmaWxlJyldID0gJ2ZpbGUnOwogICAgICAkaXRlbXNbJG1vZC0+TGFuZygnZGltZW5zaW9ucycpXSA9ICdkaW1lbnNpb25zJzsKICAgICAgJGl0ZW1zWyRtb2QtPkxhbmcoJ3N1YnNjcmlwdGlvbicpXSA9ICdzdWJzY3JpcHRpb24nOwogICAgICAkaXRlbXNbJG1vZC0+TGFuZygncXVhbnRpdHlfb25faGFuZCcpXSA9ICdxdWFudGl0eSc7CiAgICAgICRjZG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ29tcGFueURpcmVjdG9yeScsJzEuMTknKTsKICAgICAgaWYoIGlzX29iamVjdCgkY2Rtb2QpICkgJGl0ZW1zWyRtb2QtPkxhbmcoJ2NvbXBhbnlkaXJfcmVmZXJlbmNlJyldID0gJ2NvbXBhbnlkaXInOwogICAgICByZXR1cm4gYXJyYXlfZmxpcCgkaXRlbXMpOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlhYmxlX2ZpZWxkdmFsKCRmaWVsZG5hbWUsJGZpZWxkdmFsKQogIHsKICAgICAgJG1vZCA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnUHJvZHVjdHMnKTsKICAgICAgJGZpZWxkcyA9IHByb2R1Y3Rfb3BzOjpnZXRfZmllbGRzKCk7CiAgICAgICRmaWVsZHMgPSBjZ2VfYXJyYXk6OnRvX2hhc2goJGZpZWxkcywnbmFtZScpOwogICAgICAkZmllbGR0eXBlID0gJGZpZWxkc1skZmllbGRuYW1lXVsndHlwZSddOwogICAgICAkcmVzID0gJGZpZWxkdmFsOwogICAgICBzd2l0Y2goICRmaWVsZHR5cGUgKSB7CiAgICAgIGNhc2UgJ2NoZWNrYm94JzoKICAgICAgICAgIGlmKCAhaXNfbnVsbCgkcmVzKSApICRyZXMgPSAkbW9kLT5MYW5nKCdwcm9tcHRfJy4kcmVzKTsKICAgICAgICAgIGJyZWFrOwogICAgICBjYXNlICd0ZXh0YXJlYSc6CiAgICAgICAgICAkcmVzID0gJyc7CiAgICAgICAgICBicmVhazsKICAgICAgY2FzZSAnZHJvcGRvd24nOgogICAgICBjYXNlICdpbWFnZSc6CiAgICAgIGNhc2UgJ2ZpbGUnOgogICAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgJ2RpbWVuc2lvbnMnOgogICAgICB7CiAgICAgICAgICBpZiggaXNfYXJyYXkoJHJlcykgJiYgJHJlc1snbGVuZ3RoJ10gPiAwICYmICRyZXNbJ3dpZHRoJ10gPiAwICYmICRyZXNbJ2hlaWdodCddID4gMCApIHsKICAgICAgICAgICAgICAkcmVzID0gc3ByaW50ZignJXM6ICVkLCAlczogJWQsICVzOiAlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1vZC0+TGFuZygnYWJicl9sZW5ndGgnKSwkcmVzWydsZW5ndGgnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbW9kLT5MYW5nKCdhYmJyX3dpZHRoJyksJHJlc1snd2lkdGgnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbW9kLT5MYW5nKCdhYmJyX2hlaWdodCcpLCRyZXNbJ2hlaWdodCddKTsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICRyZXMgPSAkbW9kLT5MYW5nKCdub25lJyk7CiAgICAgICAgICB9CiAgICAgIH0KICAgICAgYnJlYWs7CiAgICAgIGNhc2UgJ3N1YnNjcmlwdGlvbic6CiAgICAgIHsKICAgICAgICAgIGlmKCBpc19hcnJheSgkcmVzKSAmJiAkcmVzWydwYXlwZXJpb2QnXSAhPSAtMSAmJiAkcmVzWydkZWxwZXJpb2QnXSAhPSAtMSApIHsKICAgICAgICAgICAgICAkc3Vic2NyaWJlX29wdHMgPSBhcnJheSgpOwogICAgICAgICAgICAgICRzdWJzY3JpYmVfb3B0c1stMV0gPSAkbW9kLT5MYW5nKCdub25lJyk7CiAgICAgICAgICAgICAgJHN1YnNjcmliZV9vcHRzWydtb250aGx5J10gPSAkbW9kLT5MYW5nKCdzdWJzY3JfbW9udGhseScpOwogICAgICAgICAgICAgICRzdWJzY3JpYmVfb3B0c1sncXVhcnRlcmx5J10gPSAkbW9kLT5MYW5nKCdzdWJzY3JfcXVhcnRlcmx5Jyk7CiAgICAgICAgICAgICAgJHN1YnNjcmliZV9vcHRzWydzZW1pYW51YWxseSddID0gJG1vZC0+TGFuZygnc3Vic2NyX3NlbWlhbnVhbGx5Jyk7CiAgICAgICAgICAgICAgJHN1YnNjcmliZV9vcHRzWyd5ZWFybHknXSA9ICRtb2QtPkxhbmcoJ3N1YnNjcl95ZWFybHknKTsKCiAgICAgICAgICAgICAgJGV4cGlyZV9vcHRzID0gYXJyYXkoKTsKICAgICAgICAgICAgICAkZXhwaXJlX29wdHNbJG1vZC0+TGFuZygnbm9uZScpXSA9IC0xOwogICAgICAgICAgICAgICRleHBpcmVfb3B0c1skbW9kLT5MYW5nKCdleHBpcmVfc2l4X21vbnRoJyldID0gJzYnOwogICAgICAgICAgICAgICRleHBpcmVfb3B0c1skbW9kLT5MYW5nKCdleHBpcmVfb25lX3llYXInKV0gPSAnMTInOwogICAgICAgICAgICAgICRleHBpcmVfb3B0c1skbW9kLT5MYW5nKCdleHBpcmVfdHdvX3llYXInKV0gPSAnMjQnOwogICAgICAgICAgICAgICRleHBpcmVfb3B0cyA9IGFycmF5X2ZsaXAoJGV4cGlyZV9vcHRzKTsKCiAgICAgICAgICAgICAgJGV4cGlyeSA9ICdub25lJzsKICAgICAgICAgICAgICBpZiggJGZpZWxkdmFsWydleHBpcmUnXSAhPSAtMSApICRleHBpcnkgPSAkZmllbGR2YWxbJ2V4cGlyZSddOwogICAgICAgICAgICAgICRyZXMgPSBzcHJpbnRmKCclczogJXMsICVzOiAlcywgJXM6ICVzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbW9kLT5MYW5nKCdzdWJzY3JfcGF5cGVyaW9kMicpLCRmaWVsZHZhbFsncGF5cGVyaW9kJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1vZC0+TGFuZygnc3Vic2NyX2RlbHBlcmlvZDInKSwkZmllbGR2YWxbJ2RlbHBlcmlvZCddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtb2QtPkxhbmcoJ3N1YnNjcl9leHBpcnkyJyksJGV4cGlyeSk7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAkcmVzID0gJG1vZC0+TGFuZygnbm9uZScpOwogICAgICAgICAgfQogICAgICB9CiAgICAgIGJyZWFrOwogICAgICB9CgogICAgICByZXR1cm4gJHJlczsKICB9CgoKICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIGhpZXJhcmNoeV9nZXRfdHJlZSgkcGFyZW50X2lkID0gLTEsJHNob3dhbGwgPSAwLCRjYWxsYmFja19mbiA9ICcnKQogIHsKICAgICAgJGhpZXJhcmNoeV9tYXAgPSBoaWVyYXJjaHlfb3BzOjpnZXRfYWxsX2hpZXJhcmNoeV9pbmZvKFRSVUUsJHNob3dhbGwpOwogICAgICBpZiggIWlzX2FycmF5KCRoaWVyYXJjaHlfbWFwKSB8fCBjb3VudCgkaGllcmFyY2h5X21hcCkgPT0gMCApIHJldHVybiBGQUxTRTsKCiAgICAgICRvdXQgPSBhcnJheSgpOwogICAgICBmb3JlYWNoKCAkaGllcmFyY2h5X21hcCBhcyAkb25laGllciApIHsKICAgICAgICAgIGlmKCAkb25laGllclsncGFyZW50X2lkJ10gIT0gJHBhcmVudF9pZCApIGNvbnRpbnVlOwogICAgICAgICAgaWYoICRjYWxsYmFja19mbiAhPSAnJyAmJiBmdW5jdGlvbl9leGlzdHMoJGNhbGxiYWNrX2ZuKSApICRjYWxsYmFja19mbigkb25laGllcik7CiAgICAgICAgICAkdG1wID0gc2VsZjo6aGllcmFyY2h5X2dldF90cmVlKCRvbmVoaWVyWydpZCddLCRzaG93YWxsLCRjYWxsYmFja19mbik7CiAgICAgICAgICBpZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgKSAkb25laGllclsnY2hpbGRyZW4nXSA9ICR0bXA7CiAgICAgICAgICAkb3V0W10gPSAkb25laGllcjsKICAgICAgfQogICAgICByZXR1cm4gJG91dDsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHVwZGF0ZV9oaWVyYXJjaHlfcG9zaXRpb25zKCkKICB7CiAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgogICAgICAkcXVlcnkgPSAiU0VMRUNUIGlkLCBpdGVtX29yZGVyLCBuYW1lIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkiOwogICAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgICAgaWYoICEkZGJyZXN1bHQgKSB7IGVjaG8gJGRiLT5zcWwuJzxici8+JzsgZGllKCAkZGItPkVycm9yTXNnKCkgKTsgfQogICAgICB3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpIHsKICAgICAgICAgICRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbiA9ICIiOwogICAgICAgICAgJGN1cnJlbnRfbG9uZ19uYW1lID0gIiI7CiAgICAgICAgICAkY29udGVudF9pZCA9ICRyb3dbJ2lkJ107CiAgICAgICAgICAkY3VycmVudF9wYXJlbnRfaWQgPSAkcm93WydpZCddOwogICAgICAgICAgJGNvdW50ID0gMDsKCiAgICAgICAgICB3aGlsZSAoJGN1cnJlbnRfcGFyZW50X2lkID4gLTEpIHsKICAgICAgICAgICAgICAkcXVlcnkgPSAiU0VMRUNUIGlkLCBpdGVtX29yZGVyLCBuYW1lLCBwYXJlbnRfaWQgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBXSEVSRSBpZCA9ID8iOwogICAgICAgICAgICAgICRyb3cyID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSgkY3VycmVudF9wYXJlbnRfaWQpKTsKICAgICAgICAgICAgICBpZiAoJHJvdzIpIHsKICAgICAgICAgICAgICAgICAgJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uID0gc3RyX3BhZCgkcm93MlsnaXRlbV9vcmRlciddLCA1LCAnMCcsIFNUUl9QQURfTEVGVCkgLiAiLiIgLiAkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb247CiAgICAgICAgICAgICAgICAgICRjdXJyZW50X2xvbmdfbmFtZSA9ICRyb3cyWyduYW1lJ10gLiAnIHwgJyAuICRjdXJyZW50X2xvbmdfbmFtZTsKICAgICAgICAgICAgICAgICAgJGN1cnJlbnRfcGFyZW50X2lkID0gJHJvdzJbJ3BhcmVudF9pZCddOwogICAgICAgICAgICAgICAgICAkY291bnQrKzsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICRjdXJyZW50X3BhcmVudF9pZCA9IDA7CiAgICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAgICAgICAgIGlmIChzdHJsZW4oJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uKSA+IDApIHsKICAgICAgICAgICAgICAkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24gPSBzdWJzdHIoJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uLCAwLCBzdHJsZW4oJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uKSAtIDEpOwogICAgICAgICAgfQoKICAgICAgICAgIGlmIChzdHJsZW4oJGN1cnJlbnRfbG9uZ19uYW1lKSA+IDApICRjdXJyZW50X2xvbmdfbmFtZSA9IHN1YnN0cigkY3VycmVudF9sb25nX25hbWUsIDAsIHN0cmxlbigkY3VycmVudF9sb25nX25hbWUpIC0gMyk7CgogICAgICAgICAgJHF1ZXJ5ID0gIlVQREFURSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBTRVQgaGllcmFyY2h5ID0gPywgbG9uZ19uYW1lID0gPyBXSEVSRSBpZCA9ID8iOwogICAgICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uLCAkY3VycmVudF9sb25nX25hbWUsICRjb250ZW50X2lkKSk7CiAgICAgIH0KICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGhpZXJhcmNoeV9zYXZlX3RyZWUoJHRyZWUsJGRlcHRoID0gMCwkdXBkYXRlX2hpZXJhcmNoeSA9IFRSVUUpCiAgewogICAgICAkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IFNFVCBwYXJlbnRfaWQgPSA/LCBpdGVtX29yZGVyID0gPyBXSEVSRSBpZCA9ID8nOwogICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICBmb3JlYWNoKCAkdHJlZSBhcyAmJG5vZGUgKSB7CiAgICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkbm9kZVsncGFyZW50X2lkJ10sJG5vZGVbJ2l0ZW1fb3JkZXInXSwkbm9kZVsnaWQnXSkpOwogICAgICAgICAgaWYoIGlzc2V0KCRub2RlWydjaGlsZHJlbiddKSApIHNlbGY6OmhpZXJhcmNoeV9zYXZlX3RyZWUoJG5vZGVbJ2NoaWxkcmVuJ10sJGRlcHRoKzEpOwogICAgICB9CgogICAgICBpZiggJGRlcHRoID09IDAgJiYgJHVwZGF0ZV9oaWVyYXJjaHkgKSBzZWxmOjp1cGRhdGVfaGllcmFyY2h5X3Bvc2l0aW9ucygpOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2NhdGVnb3JpZXMoJGJ5X25hbWUgPSBGQUxTRSkKICB7CiAgICAgIGlmKCBpc19udWxsKHNlbGY6OiRfY2F0ZWdvcnlfY2FjaGUpICkgewogICAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyBPUkRFUiBCWSBuYW1lIEFTQyc7CiAgICAgICAgICAkdG1wID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgICAgICAgc2VsZjo6JF9jYXRlZ29yeV9jYWNoZSA9IEZBTFNFOwogICAgICAgICAgaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgewogICAgICAgICAgICAgIHNlbGY6OiRfY2F0ZWdvcnlfY2FjaGUgPSBhcnJheSgpOwogICAgICAgICAgICAgIGZvcmVhY2goICR0bXAgYXMgJHJvdyApIHsKICAgICAgICAgICAgICAgICAgJHJvdyA9IGNnZV9hcnJheTo6dG9fb2JqZWN0KCRyb3cpOwogICAgICAgICAgICAgICAgICBzZWxmOjokX2NhdGVnb3J5X2NhY2hlWyRyb3ctPmlkXSA9ICRyb3c7CiAgICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICB9CgogICAgICBpZiggISRieV9uYW1lICkgcmV0dXJuIHNlbGY6OiRfY2F0ZWdvcnlfY2FjaGU7CgogICAgICBpZiggaXNfYXJyYXkoc2VsZjo6JF9jYXRlZ29yeV9jYWNoZSkgKSB7CiAgICAgICAgICAkb3V0ID0gYXJyYXkoKTsKICAgICAgICAgIGZvcmVhY2goIHNlbGY6OiRfY2F0ZWdvcnlfY2FjaGUgYXMgJHJvdyApIHsKICAgICAgICAgICAgICAkb3V0WyRyb3ctPm5hbWVdID0gJHJvdzsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiAkb3V0OwogICAgICB9CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9mdWxsX2NhdGVnb3JpZXMoJGJ5X25hbWUgPSBGQUxTRSkKICB7CiAgICAgICRjYXRlZ29yaWVzID0gc2VsZjo6Z2V0X2NhdGVnb3JpZXMoKTsKICAgICAgaWYoICFpc19hcnJheSgkY2F0ZWdvcmllcykgfHwgY291bnQoJGNhdGVnb3JpZXMpID09IDAgKSByZXR1cm47CgogICAgICAka2V5cyA9IGFycmF5X2tleXMoJGNhdGVnb3JpZXMpOwogICAgICAkZmlkID0gJGtleXNbMF07IC8vIGZpcnN0IGZpZWxkLgogICAgICBpZiggIWlzc2V0KHNlbGY6OiRfY2F0ZWdvcnlfY2FjaGVbJGZpZF0tPmRhdGEpICkgewogICAgICAgICAgLy8gd2UncmUgZ29ubmEgdXNlIHRoZSBzYW1lIGNhY2hlIGFnYWluLi4uCiAgICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnUHJvZHVjdHMnKTsKICAgICAgICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcnlfZmllbGRzIE9SREVSIEJZIGNhdGVnb3J5X2lkLGZpZWxkX29yZGVyJzsKICAgICAgICAgICRkYnIgPSAkZGItPkdldEFycmF5KCRxdWVyeSk7CiAgICAgICAgICBmb3JlYWNoKCAka2V5cyBhcyAkb25lICkgewogICAgICAgICAgICAgICRjYXQgPSYgc2VsZjo6JF9jYXRlZ29yeV9jYWNoZVskb25lXTsKICAgICAgICAgICAgICBpZiggIWlzc2V0KCRjYXQtPmRhdGEpICkgJGNhdC0+ZGF0YSA9IGFycmF5KCk7CiAgICAgICAgICAgICAgJGNhdC0+ZmlsZV9sb2NhdGlvbiA9IHNlbGY6OmdldF9jYXRlZ29yeV91cGxvYWRfdXJsKCRjYXQtPmlkKTsKICAgICAgICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkZGJyKTsgJGkrKyApIHsKICAgICAgICAgICAgICAgICAgLy8kY2F0aWQgPSAkZGJyWyRpXVsnY2F0ZWdvcnlfaWQnXTsKICAgICAgICAgICAgICAgICAgaWYoICRjYXQtPmlkID09ICRkYnJbJGldWydjYXRlZ29yeV9pZCddICkgICRjYXQtPmRhdGFbXSA9ICRkYnJbJGldOwogICAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgfQoKICAgICAgaWYoICEkYnlfbmFtZSApIHJldHVybiBzZWxmOjokX2NhdGVnb3J5X2NhY2hlOwoKICAgICAgaWYoIGlzX2FycmF5KHNlbGY6OiRfY2F0ZWdvcnlfY2FjaGUpICkgewogICAgICAgICAgJG91dCA9IGFycmF5KCk7CiAgICAgICAgICBmb3JlYWNoKCBzZWxmOjokX2NhdGVnb3J5X2NhY2hlIGFzICRyb3cgKSB7CiAgICAgICAgICAgICAgJG91dFskcm93LT5uYW1lXSA9ICRyb3c7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gJG91dDsKICAgICAgfQogIH0KCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmllbGRkZWZzKCRhZG1pbiA9IGZhbHNlLCRwdWJsaWMgPSB0cnVlLCRhc19oYXNoID0gRkFMU0UpCiAgewogICAgICBpZiggIWlzX2FycmF5KHNlbGY6OiRfZmxkZGVmX2NhY2hlKSApIHsKICAgICAgICAgICRlbnRyeWFycmF5ID0gYXJyYXkoKTsKICAgICAgICAgICRkYiA9IGNtc21zKCktPkdldERCKCk7CgogICAgICAgICAgaWYoICRhZG1pbiA9PSB0cnVlICYmICRwdWJsaWMgPT0gdHJ1ZSApIHsKICAgICAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBPUkRFUiBCWSBpdGVtX29yZGVyJzsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgaWYoICRwdWJsaWMgPT0gdHJ1ZSApIHsKICAgICAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBXSEVSRSBwdWJsaWMgPiAwIE9SREVSIEJZIGl0ZW1fb3JkZXInOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMgV0hFUkUgYWRtaW5fb25seSA8PSAwIE9SREVSIEJZIGl0ZW1fb3JkZXInOwogICAgICAgICAgfQogICAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwoKICAgICAgICAgIGlmKCBpc19hcnJheSgkZGJyZXN1bHQpICkgewogICAgICAgICAgICAgIGZvcmVhY2goICRkYnJlc3VsdCBhcyAkcm93ICkgewogICAgICAgICAgICAgICAgICAkb25lcm93ID0gbmV3IHN0ZENsYXNzKCk7CgogICAgICAgICAgICAgICAgICAkb25lcm93LT5pZCA9ICRyb3dbJ2lkJ107CiAgICAgICAgICAgICAgICAgICRvbmVyb3ctPm5hbWUgPSAkcm93WyduYW1lJ107CiAgICAgICAgICAgICAgICAgICRvbmVyb3ctPnByb21wdCA9ICRyb3dbJ3Byb21wdCddOwogICAgICAgICAgICAgICAgICAkb25lcm93LT50eXBlID0gJHJvd1sndHlwZSddOwogICAgICAgICAgICAgICAgICAkdG1wID0gZXhwbG9kZSgiXG4iLCRyb3dbJ29wdGlvbnMnXSk7CiAgICAgICAgICAgICAgICAgICR0bXAyID0gYXJyYXkoKTsKICAgICAgICAgICAgICAgICAgZm9yZWFjaCggJHRtcCBhcyAkb25lICkgewogICAgICAgICAgICAgICAgICAgICAgJGtleSA9ICR2YWx1ZSA9ICRvbmUgPSB0cmltKCRvbmUpOwogICAgICAgICAgICAgICAgICAgICAgaWYoICEkb25lICkgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICBpZiggc3RycG9zKCRvbmUsJ3wnKSAhPT0gRkFMU0UgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCgka2V5LCR2YWx1ZSkgPSBleHBsb2RlKCd8Jywkb25lKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAka2V5ID0gdHJpbSgka2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAkdmFsdWUgPSB0cmltKCR2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAkdG1wMlska2V5XSA9ICR2YWx1ZTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAkb25lcm93LT5vcHRpb25zID0gYXJyYXlfZmxpcCgkdG1wMik7CiAgICAgICAgICAgICAgICAgICRvbmVyb3ctPm1heF9sZW5ndGggPSAkcm93WydtYXhfbGVuZ3RoJ107CgogICAgICAgICAgICAgICAgICAkZW50cnlhcnJheVtdID0gJG9uZXJvdzsKICAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBzZWxmOjokX2ZsZGRlZl9jYWNoZSA9ICRlbnRyeWFycmF5OwogICAgICB9CgogICAgICBpZiggISRhc19oYXNoICkgcmV0dXJuIHNlbGY6OiRfZmxkZGVmX2NhY2hlOwoKICAgICAgJG91dCA9IGFycmF5KCk7CiAgICAgIGZvcmVhY2goIHNlbGY6OiRfZmxkZGVmX2NhY2hlIGFzICRvbmUgKSB7CiAgICAgICAgICAkb3V0WyRvbmUtPm5hbWVdID0gJG9uZTsKICAgICAgfQogICAgICByZXR1cm4gJG91dDsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2FuX2RvX3ByZXR0eSgkYWN0aW9uLCRwYXJhbXMpIHsKICAgICAgaWYoICFpc3NldCgkcGFyYW1zWydub3RwcmV0dHknXSkgKSByZXR1cm4gVFJVRTsKICAgICAgaWYoIHN0cnBvcygkcGFyYW1zWydub3RwcmV0dHknXSwnYWxsJykgIT09IEZBTFNFIHx8IHN0cnBvcygkcGFyYW1zWydub3RwcmV0dHknXSwkYWN0aW9uKSAhPT0gRkFMU0UgKSByZXR1cm4gRkFMU0U7CiAgICAgIHJldHVybiBUUlVFOwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfYmFzZV91cGxvYWRfcGF0aCgpCiAgewogICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfUFJPRFVDVFMpOwogICAgICAkcHJlZml4ID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgndXBsb2FkX2RpcicsJG1vZC0+R2V0TmFtZSgpKTsKICAgICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgICAkcGF0aCA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJHByZWZpeCk7CiAgICAgIHJldHVybiAkcGF0aDsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2Jhc2VfdXBsb2FkX3VybCgpCiAgewogICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfUFJPRFVDVFMpOwogICAgICAkcHJlZml4ID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgndXBsb2FkX2RpcicsJG1vZC0+R2V0TmFtZSgpKTsKICAgICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgICAkdXJsID0gJGNvbmZpZ1sndXBsb2Fkc191cmwnXS4iLyRwcmVmaXgiOwogICAgICByZXR1cm4gJHVybDsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3Byb2R1Y3RfdXBsb2FkX3BhdGgoJHByb2R1Y3RfaWQgPSBudWxsKQogIHsKICAgICAgJHByb2R1Y3RfaWQgPSAoaW50KSAkcHJvZHVjdF9pZDsKICAgICAgJHBhdGggPSBzZWxmOjpnZXRfYmFzZV91cGxvYWRfcGF0aCgpOwogICAgICBpZiggJHByb2R1Y3RfaWQgPiAwICkgJHBhdGggPSBjbXNfam9pbl9wYXRoKCRwYXRoLCdwcm9kdWN0XycuJHByb2R1Y3RfaWQpOwogICAgICByZXR1cm4gJHBhdGg7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9wcm9kdWN0X3VwbG9hZF91cmwoJHByb2R1Y3RfaWQgPSBudWxsKQogIHsKICAgICAgJHByb2R1Y3RfaWQgPSAoaW50KSAkcHJvZHVjdF9pZDsKICAgICAgJHVybCA9IHNlbGY6OmdldF9iYXNlX3VwbG9hZF91cmwoKTsKICAgICAgaWYoICRwcm9kdWN0X2lkID4gMCApICR1cmwgLj0gJy9wcm9kdWN0XycuJHByb2R1Y3RfaWQ7CiAgICAgIHJldHVybiAkdXJsOwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfaGllcmFyY2h5X3VwbG9hZF9wYXRoKCkKICB7CiAgICAgICRwYXRoID0gc2VsZjo6Z2V0X2Jhc2VfdXBsb2FkX3BhdGgoKTsKICAgICAgcmV0dXJuIGNtc19qb2luX3BhdGgoJHBhdGgsJ2hpZXJhcmNoeScpOwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfaGllcmFyY2h5X3VwbG9hZF91cmwoKQogIHsKICAgICAgJHBhdGggPSBzZWxmOjpnZXRfYmFzZV91cGxvYWRfdXJsKCk7CiAgICAgIHJldHVybiAiJHBhdGgvaGllcmFyY2h5IjsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2NhdGVnb3J5X3VwbG9hZF9wYXRoKCRjYXRlZ29yeV9pZCA9IG51bGwpCiAgewogICAgICAkY2F0ZWdvcnlfaWQgPSAoaW50KSAkY2F0ZWdvcnlfaWQ7CiAgICAgICRwYXRoID0gc2VsZjo6Z2V0X2Jhc2VfdXBsb2FkX3BhdGgoKTsKICAgICAgJHBhdGggPSBjbXNfam9pbl9wYXRoKCRwYXRoLCdjYXRlZ29yaWVzJyk7CiAgICAgIGlmKCAkY2F0ZWdvcnlfaWQgPiAwICkgJHBhdGggPSBjbXNfam9pbl9wYXRoKCRwYXRoLCRjYXRlZ29yeV9pZCk7CiAgICAgIHJldHVybiAkcGF0aDsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2NhdGVnb3J5X3VwbG9hZF91cmwoJGNhdGVnb3J5X2lkID0gbnVsbCkKICB7CiAgICAgICRjYXRlZ29yeV9pZCA9IChpbnQpICRjYXRlZ29yeV9pZDsKICAgICAgJHBhdGggPSBzZWxmOjpnZXRfYmFzZV91cGxvYWRfdXJsKCk7CiAgICAgICRwYXRoID0gIiRwYXRoL2NhdGVnb3JpZXMiOwogICAgICBpZiggJGNhdGVnb3J5X2lkID4gMCApICRwYXRoID0gIiRwYXRoLyRjYXRlZ29yeV9pZCI7CiAgICAgIHJldHVybiAkcGF0aDsKICB9Cn0gLy8gcHJvZHVjdCB1dGlscwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiggdmVyc2lvbl9jb21wYXJlKHBocHZlcnNpb24oKSwnNS40LjExJykgPCAwICkgewogICAgcmV0dXJuICJNaW5pbXVtIFBIUCB2ZXJzaW9uIG9mIDUuNC4xMSByZXF1aXJlZCI7Cn0KCiRkYiA9ICR0aGlzLT5HZXREYigpOwokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CiRmbGRzID0gIgoJaWQgSSBLRVkgQVVUTywKCXByb2R1Y3RfbmFtZSBDKDI1NSkgTk9UIE5VTEwsCglkZXRhaWxzIFgsCiAgICBwcmljZSBGLAoJY3JlYXRlX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIsCgltb2RpZmllZF9kYXRlICIgLiBDTVNfQURPREJfRFQgLiAiLAogICAgdGF4YWJsZSBJLAogICAgc3RhdHVzIEMoNTApLAogICAgd2VpZ2h0IEYsCiAgICBza3UgICAgQygyNSksCiAgICBhbGlhcyAgQygyNTUpLAogICAgdXJsICAgIEMoMjU1KQoiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHMiLCRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkuJ3Byb2R1Y3RzX2lkeHVybCcsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMnLCdpZCx1cmwsc3RhdHVzJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgokZmxkcyA9ICIKCWlkIEkgS0VZIEFVVE8sCgluYW1lIEMoMjU1KSBOT1QgTlVMTCwKCWNyZWF0ZV9kYXRlICIgLiBDTVNfQURPREJfRFQgLiAiLAoJbW9kaWZpZWRfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIgoiOwoKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMiLAoJCSRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoKJGZsZHMgPSAiCglwcm9kdWN0X2lkIEkgS0VZIE5PVCBOVUxMLAoJY2F0ZWdvcnlfaWQgSSBLRVkgTk9UIE5VTEwsCgljcmVhdGVfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwKCW1vZGlmaWVkX2RhdGUgIiAuIENNU19BRE9EQl9EVDsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcyIsCgkJCQkgICRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoKJGZsZHMgPSAiCiAgICAgICAgY2F0ZWdvcnlfaWQgSSwKICAgICAgICBmaWVsZF90eXBlICBDKDIwKSwKICAgICAgICBmaWVsZF9uYW1lICBDKDI1NSksCiAgICAgICAgZmllbGRfcHJvbXB0IEMoMjU1KSwKICAgICAgICBmaWVsZF92YWx1ZSAgWCwKICAgICAgICBmaWVsZF9vcmRlciAgSQoiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcnlfZmllbGRzIiwKCQkkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCiRmbGRzID0gIgoJaWQgSSBLRVkgQVVUTywKCW5hbWUgQygyNTUpIE5PVCBOVUxMLAogICAgcHJvbXB0IEMoMjU1KSwKCXR5cGUgQyg1MCksCgltYXhfbGVuZ3RoIEksCiAgICBvcHRpb25zIFgsCgljcmVhdGVfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwKCW1vZGlmaWVkX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIsCiAgICBpdGVtX29yZGVyIEksCiAgICBwdWJsaWMgSQoiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIiwKCQkkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCiRmbGRzID0gIgoJcHJvZHVjdF9pZCBJIEtFWSwKCWZpZWxkZGVmX2lkIEkgS0VZLAoJdmFsdWUgWCwKCWNyZWF0ZV9kYXRlICIgLiBDTVNfQURPREJfRFQgLiAiLAoJbW9kaWZpZWRfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIgoiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIiwKCQkkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCi8qCiAqIG5vdCB1c2VkIGFueSBtb3JlLCBidXQgaGVyZSBmb3IgcmVmZXJlbmNlIHRlbXBvcmFyaWx5LgokZmxkcyA9ICIKICAgICAgICBhdHRyaWJfc2V0X2lkIEkgS0VZIEFVVE8sCiAgICAgICAgcHJvZHVjdF9pZCBJIEtFWSwKICAgICAgICBhdHRyaWJfc2V0X25hbWUgQygyNTUpIE5PVCBOVUxMCiI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19hdHRyaWJzZXRzIiwKCQkkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCiRmbGRzID0gIgogICAgICAgIGF0dHJpYl9pZCBJIEtFWSBBVVRPLAogICAgICAgIGF0dHJpYl9zZXRfaWQgSSBLRVksCiAgICAgICAgYXR0cmliX3RleHQgICBDKDI1NSkgS0VZLAogICAgICAgIGF0dHJpYl9hZGp1c3RtZW50IEMoNTApLAogICAgICAgIHNrdSBDKDI1KQoiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcyIsCgkJJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKKi8KCiRmbGRzID0gImlkIEkgS0VZIEFVVE8gTk9UIE5VTEwsCiAgICAgICAgIHByb2R1Y3RfaWQgSSBLRVkgTk9UIE5VTEwsCiAgICAgICAgIHRleHQgQygyNTUpIEtFWSBOT1QgTlVMTCwKICAgICAgICAgYWRqdXN0bWVudCBDKDUwKSwKICAgICAgICAgc2t1ICBDKDI1KSwKICAgICAgICAgcW9oIEksCiAgICAgICAgIG5vdGVzIFgsCiAgICAgICAgIGlvcmRlciBJIE5PVCBOVUxMIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnMnLCAkZmxkcywkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokZmxkcyA9ICJpZCBJIEtFWSBBVVRPLAogICAgICAgICBuYW1lIEMoMjU1KSBOT1QgTlVMTCwKICAgICAgICAgcGFyZW50X2lkIEksCiAgICAgICAgIGl0ZW1fb3JkZXIgSSwKICAgICAgICAgaGllcmFyY2h5IEMoMjU1KSwKICAgICAgICAgaW1hZ2UgQygyNTUpLAogICAgICAgICBsb25nX25hbWUgWCwKICAgICAgICAgZGVzY3JpcHRpb24gWCwKICAgICAgICAgZXh0cmExIEMoMjU1KSwKICAgICAgICAgZXh0cmEyIEMoMjU1KSI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHknLAoJCQkJICAkZmxkcywkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokZmxkcyA9ICJwcm9kdWN0X2lkIEkgS0VZLAogICAgICAgICBoaWVyYXJjaHlfaWQgSSBLRVkiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHRvaGllcicsCgkJCQkgICRmbGRzLCR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiMKIyBJbmRleGVzCiMKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4ncHJvZHVjdHNfbmFtZScsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMnLCdwcm9kdWN0X25hbWUnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoY21zX2RiX3ByZWZpeCgpLidwcm9kdWN0c19zdGF0dXMnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzJywnc3RhdHVzJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4ncHJvZHVjdHNfc3RhdHVzJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cycsJ2FsaWFzJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4ncHJvZHVjdHNfcHJpY2UnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzJywncHJpY2UnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoY21zX2RiX3ByZWZpeCgpLidwcm9kdWN0c19kYXRlcycsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMnLCdjcmVhdGVfZGF0ZSxtb2RpZmllZF9kYXRlJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4ncHJvZHVjdHNfY2F0X25hbWUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMnLCduYW1lJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4ncHJvZHVjdHNfcHJvZF9jYXQnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcycsJ3Byb2R1Y3RfaWQsY2F0ZWdvcnlfaWQnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoY21zX2RiX3ByZWZpeCgpLidwcm9kdWN0c19jYXRfcHJvZCcsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzJywnY2F0ZWdvcnlfaWQscHJvZHVjdF9pZCcpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkuJ3Byb2R1Y3RzX2NhdF9mbGRfbmFtZScsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcnlfZmllbGRzJywnY2F0ZWdvcnlfaWQsZmllbGRfbmFtZScpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkuJ3Byb2R1Y3RzX2ZsZGRlZl9uYW1lJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMnLCduYW1lJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4ncHJvZHVjdHNfZmxkZGVmX3R5cGUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcycsJ3R5cGUnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoY21zX2RiX3ByZWZpeCgpLidwcm9kdWN0c19mbGR2YWxfcHJvZF9kZWYnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWx2YWxzJywncHJvZHVjdF9pZCxmaWVsZGRlZl9pZCcpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkuJ3Byb2R1Y3RzX2ZsZHZhbF9kZWZfcHJvZCcsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbHZhbHMnLCdmaWVsZGRlZl9pZCxwcm9kdWN0X2lkJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4ncHJvZHVjdHNfaGllcl9uYW1lJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHknLCduYW1lJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4ncHJvZHVjdHNfaGllcl9uYW1lJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHknLCduYW1lJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4ncHJvZHVjdHNfaGllcl9wYXJlbnQnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeScsJ3BhcmVudF9pZCcpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkuJ3Byb2R1Y3RzX2hpZXJfbG9uZ25hbWUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeScsJ2xvbmdfbmFtZScpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkuJ3Byb2R1Y3RzX2hpZXJfaGllcmFyY2h5JyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHknLCdoaWVyYXJjaHknKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoY21zX2RiX3ByZWZpeCgpLidwcm9kdWN0c19uYW1lJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cycsJ3Byb2R1Y3RfYWxpYXMnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoY21zX2RiX3ByZWZpeCgpLidwcm9kdWN0c19wcm9kdWN0X2NhdHMnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcycsJ3Byb2R1Y3RfaWQsY2F0ZWdvcnlfaWQnLAoJCQkJICBhcnJheSgnVU5JUVVFJz0+MSkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoKCiMKIyBUZW1wbGF0ZXMKIwoKCiMgU2V0dXAgc3VtbWFyeSB0ZW1wbGF0ZQokZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX3N1bW1hcnlfdGVtcGxhdGUudHBsJyk7CmlmKCBmaWxlX2V4aXN0cyggJGZuICkgKQogIHsKICAgICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkZm4gKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXU1VNTUFSWV9URU1QTEFURSwkdGVtcGxhdGUpOwogICAgJHRoaXMtPlNldFRlbXBsYXRlKCdzdW1tYXJ5X1NhbXBsZScsJHRlbXBsYXRlKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVFNVTU1BUllfVEVNUExBVEUsJ1NhbXBsZScpOwogIH0KCiMgU2V0dXAgZGV0YWlsIHRlbXBsYXRlCiRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ29yaWdfZGV0YWlsX3RlbXBsYXRlLnRwbCcpOwppZiggZmlsZV9leGlzdHMoICRmbiApICkKICB7CiAgICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV0RFVEFJTF9URU1QTEFURSwkdGVtcGxhdGUpOwogICAgJHRoaXMtPlNldFRlbXBsYXRlKCdkZXRhaWxfU2FtcGxlJywkdGVtcGxhdGUpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ERkxUREVUQUlMX1RFTVBMQVRFLCdTYW1wbGUnKTsKICB9CgojIFNldHVwIGRlZmF1bHQgaGllcmFyY2h5IHJlcG9ydCB0ZW1wbGF0ZQokZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX2J5aGllcmFyY2h5X3RlbXBsYXRlLnRwbCcpOwppZiggZmlsZV9leGlzdHMoICRmbiApICkKICB7CiAgICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV0JZSElFUkFSQ0hZX1RFTVBMQVRFLCR0ZW1wbGF0ZSk7CiAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2J5aGllcmFyY2h5X1NhbXBsZScsJHRlbXBsYXRlKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVEJZSElFUkFSQ0hZX1RFTVBMQVRFLCdTYW1wbGUnKTsKICB9CgojIFNldHVwIGRlZmF1bHQgY2F0ZWdvcnkgbGlzdCB0ZW1wbGF0ZQokZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX2NhdGVnb3J5bGlzdF90ZW1wbGF0ZS50cGwnKTsKaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApCiAgewogICAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ORVdDQVRFR09SWUxJU1RfVEVNUExBVEUsJHRlbXBsYXRlKTsKICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnY2F0ZWdvcnlsaXN0X1NhbXBsZScsJHRlbXBsYXRlKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVENBVEVHT1JZTElTVF9URU1QTEFURSwnU2FtcGxlJyk7CiAgfQoKIyBTZXR1cCBkZWZhdWx0IHNlYXJjaCB0ZW1wbGF0ZQokZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX3NlYXJjaF90ZW1wbGF0ZS50cGwnKTsKaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApCiAgewogICAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ORVdTRUFSQ0hfVEVNUExBVEUsJHRlbXBsYXRlKTsKICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnc2VhcmNoX1NhbXBsZScsJHRlbXBsYXRlKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVFNFQVJDSF9URU1QTEFURSwnU2FtcGxlJyk7CiAgfQoKCiNTZXQgUGVybWlzc2lvbgokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignTW9kaWZ5IFByb2R1Y3RzJywgJ01vZGlmeSBQcm9kdWN0cycpOwoKI1ByZWZlcmVuY2VzCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwcm9kdWN0c19jdXJyZW5jeXN5bWJvbCcsJyQnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Byb2R1Y3RzX3dlaWdodHVuaXRzJywna2cnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FsbG93ZWRfaW1hZ2V0eXBlcycsJ2pwZyxqcGVnLGdpZixwbmcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FsbG93ZWRfZmlsZXR5cGVzJywncGRmLGRvYyx0eHQsanBnLGpwZWcsZ2lmLHBuZycpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGVsZXRlcHJvZHVjdGZpbGVzJywxKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VwbG9hZF9kaXInLCdfcHJvZHVjdHMnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3NsdWd0ZW1wbGF0ZScsJ3tpZiAkaGllcmFyY2h5MyA9PSAnJ317JG5hbWV9e2Vsc2V9eyRoaWVyYXJjaHkzfS97JG5hbWV9ey9pZn0nKTsKCiMgRXZlbnRzCiR0aGlzLT5BZGRFdmVudEhhbmRsZXIoJ0NHRWNvbW1lcmNlQmFzZScsJ09yZGVyVXBkYXRlZCcsRkFMU0UpOwoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgokZGIgPSAkdGhpcy0+R2V0RGIoKTsKCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoICRkYiApOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHMiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcnlfZmllbGRzIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKLyoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlic2V0cyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoqLwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlicyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19wcm9kdG9oaWVyIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokdGhpcy0+RGVsZXRlVGVtcGxhdGUoKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoKTsKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCB2ZXJzaW9uX2NvbXBhcmUocGhwdmVyc2lvbigpLCc1LjQuMTEnKSA8IDAgKSB7CiAgICByZXR1cm4gIk1pbmltdW0gUEhQIHZlcnNpb24gb2YgNS40LjExIHJlcXVpcmVkIjsKfQoKc3dpdGNoKCAkb2xkdmVyc2lvbiApCiAgewogIGNhc2UgJzEuMCc6CiAgY2FzZSAnMS4wLjEnOgogICAgewogICAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKICAgICAgJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwogICAgICAkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoKICAgICAgJGZsZHMgPSAiCiAgICAgICAgYXR0cmliX3NldF9pZCBJIEtFWSBBVVRPLAogICAgICAgIHByb2R1Y3RfaWQgSSBLRVksCiAgICAgICAgYXR0cmliX3NldF9uYW1lIEMoMjU1KQogICAgICAiOwogICAgICAkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwogICAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlic2V0cyIsCgkJCQkJJGZsZHMsICR0YWJvcHRhcnJheSk7CiAgICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiAgICAgICRmbGRzID0gIgogICAgICAgIGF0dHJpYl9zZXRfaWQgSSBLRVksCiAgICAgICAgYXR0cmliX3RleHQgICBDKDI1NSkgS0VZLAogICAgICAgIGF0dHJpYl9hZGp1c3RtZW50IEMoNTApCiAgICAgICI7CiAgICAgICR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CiAgICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19hdHRyaWJ1dGVzIiwKCQkJCQkkZmxkcywgJHRhYm9wdGFycmF5KTsKICAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgfQoKCiAgY2FzZSAnMi4wJzoKICBjYXNlICcyLjAuMSc6CiAgY2FzZSAnMi4wLjInOgogICAgewogICAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKICAgICAgJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwogICAgICAkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoKICAgICAgJGZsZHMgPSAiCiAgICAgICAgICBjYXRlZ29yeV9pZCBJLAogICAgICAgICAgZmllbGRfdHlwZSAgQygyMCksCiAgICAgICAgICBmaWVsZF9uYW1lICBDKDI1NSksCiAgICAgICAgICBmaWVsZF9wcm9tcHQgQygyNTUpLAogICAgICAgICAgZmllbGRfdmFsdWUgIFgKICAgICAgIjsKICAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcyIsCgkgICAgICRmbGRzLCAkdGFib3B0YXJyYXkpOwogICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgICB9CgogIGNhc2UgJzIuMSc6CiAgICB7CiAgICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwogICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnV0ZXMnOwogICAgICAkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiAgICAgICRkYXRhID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwoKICAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJ1dGVzJyk7CiAgICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiAgICAgICRmbGRzID0gIgogICAgICAgIGF0dHJpYl9pZCBJIEtFWSBBVVRPLAogICAgICAgIGF0dHJpYl9zZXRfaWQgSSwKICAgICAgICBhdHRyaWJfdGV4dCAgIEMoMjU1KSwKICAgICAgICBhdHRyaWJfYWRqdXN0bWVudCBDKDUwKQogICAgICAiOwogICAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcyIsCgkJJGZsZHMsICR0YWJvcHRhcnJheSk7CiAgICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiAgICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnV0ZXMKICAgICAgICAgICAgICAgIChhdHRyaWJfc2V0X2lkLCBhdHRyaWJfdGV4dCwgYXR0cmliX2FkanVzdG1lbnQpCiAgICAgICAgIAkgICAgVkFMVUVTICg/LD8sPyknOwogICAgICBmb3JlYWNoKCAkZGF0YSBhcyAkb25lICkKICAgICAgewogICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksCiAgICAgICAgICAgYXJyYXkoJG9uZVsnYXR0cmliX3NldF9pZCddLCRvbmVbJ2F0dHJpYl90ZXh0J10sJG9uZVsnYXR0cmliX2FkanVzdG1lbnQnXSkpOwogICAgICB9CiAgICB9CgogIGNhc2UgJzIuMS4yJzoKCXsKCSAgJG5ld25hbWUgPSBzdHJfcmVwbGFjZSgnLicsJ18nLCd1cGdyYWRlX3RvXycuJHRoaXMtPkdldFZlcnNpb24oKSk7CgoJICAvLyBzZXR1cCBhIG5ldyBkZWZhdWx0IHN1bW1hcnkgdGVtcGxhdGUuCgkgIC8vIGJ1dCBkb24ndCBkZXN0cm95IGFueSBvdGhlcnMuCgkgICRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ29yaWdfc3VtbWFyeV90ZW1wbGF0ZS50cGwnKTsKCSAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApCgkJewoJCSAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwoJCSAgJHRoaXMtPlNldFRlbXBsYXRlKCdzdW1tYXJ5XycuJG5ld25hbWUsJHRlbXBsYXRlKTsKCQkgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVFNVTU1BUllfVEVNUExBVEUsJG5ld25hbWUpOwoJCX0KCgkgIC8vIHNldHVwIGEgbmV3IGRlZmF1bHQgZGV0YWlsIHRlbXBsYXRlLgoJICAvLyBidXQgZG9uJ3QgZGVzdHJveSBhbnkgb3RoZXJzLgoJICAkZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX2RldGFpbF90ZW1wbGF0ZS50cGwnKTsKCSAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApCgkJewoJCSAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwoJCSAgJHRoaXMtPlNldFRlbXBsYXRlKCdkZXRhaWxfJy4kbmV3bmFtZSwkdGVtcGxhdGUpOwoJCSAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ERkxUREVUQUlMX1RFTVBMQVRFLCRuZXduYW1lKTsKCQl9CgoJICAvLyBzZXR1cCBhIG5ldyBkZWZhdWx0IGJ5aGllcmFyY2h5IHRlbXBsYXRlLgoJICAvLyBidXQgZG9uJ3QgZGVzdHJveSBhbnkgb3RoZXJzLgoJICAkZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX2J5aGllcmFyY2h5X3RlbXBsYXRlLnRwbCcpOwoJICBpZiggZmlsZV9leGlzdHMoICRmbiApICkKCQl7CgkJICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CgkJICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2J5aGllcmFyY2h5XycuJG5ld25hbWUsJHRlbXBsYXRlKTsKCQkgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVEJZSElFUkFSQ0hZX1RFTVBMQVRFLCRuZXduYW1lKTsKCQl9CgoJICAvLyBzZXR1cCBhIG5ldyBkZWZhdWx0IGNhdGVnb3J5bGlzdCB0ZW1wbGF0ZS4KCSAgLy8gYnV0IGRvbid0IGRlc3Ryb3kgYW55IG90aGVycy4KCSAgJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwndGVtcGxhdGVzJywnb3JpZ19jYXRlZ29yeWxpc3RfdGVtcGxhdGUudHBsJyk7CgkgIGlmKCBmaWxlX2V4aXN0cyggJGZuICkgKQoJCXsKCQkgICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkZm4gKTsKCQkgICR0aGlzLT5TZXRUZW1wbGF0ZSgnY2F0ZWdvcnlsaXN0XycuJG5ld25hbWUsJHRlbXBsYXRlKTsKCQkgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVENBVEVHT1JZTElTVF9URU1QTEFURSwkbmV3bmFtZSk7CgkJfQoKCX0gLy8gMi4xLjEKCiAgY2FzZSAnMi4yJzoKICBjYXNlICcyLjIuMSc6CiAgY2FzZSAnMi4yLjInOgogIGNhc2UgJzIuMi4zJzoKICBjYXNlICcyLjIuNCc6Cgl7CiAgICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwogICAgICAkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgoJICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX25hbWUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzJywncHJvZHVjdF9uYW1lJyk7CgkgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCSAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdwcm9kdWN0c19zdGF0dXMnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzJywncHJvZHVjdF9zdGF0dXMnKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX3ByaWNlJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cycsJ3Byb2R1Y3RfcHJpY2UnKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX2RhdGVzJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cycsJ2NyZWF0ZV9kYXRlLG1vZGlmaWVkX2RhdGUnKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX2NhdF9uYW1lJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yaWVzJywnbmFtZScpOwoJICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfcHJvZF9jYXQnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcycsJ3Byb2R1Y3RfaWQsY2F0ZWdvcnlfaWQnKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX2NhdF9wcm9kJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdWN0X2NhdGVnb3JpZXMnLCdjYXRlZ29yeV9pZCxwcm9kdWN0X2lkJyk7CgkgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCSAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdwcm9kdWN0c19jYXRfZmxkX25hbWUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcycsJ2NhdGVnb3J5X2lkLGZpZWxkX25hbWUnKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX2ZsZGRlZl9uYW1lJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMnLCduYW1lJyk7CgkgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCSAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdwcm9kdWN0c19mbGRkZWZfdHlwZScsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzJywndHlwZScpOwoJICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfZmxkdmFsX3Byb2RfZGVmJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsdmFscycsJ3Byb2R1Y3RfaWQsZmllbGRkZWZfaWQnKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX2ZsZHZhbF9kZWZfcHJvZCcsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbHZhbHMnLCdmaWVsZGRlZl9pZCxwcm9kdWN0X2lkJyk7CgkgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCSAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdwcm9kdWN0c19oaWVyX25hbWUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeScsJ25hbWUnKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX2hpZXJfbmFtZScsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5JywnbmFtZScpOwoJICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfaGllcl9wYXJlbnQnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeScsJ3BhcmVudF9pZCcpOwoJICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfaGllcl9sb25nbmFtZScsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5JywnbG9uZ19uYW1lJyk7CgkgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCSAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdwcm9kdWN0c19oaWVyX2hpZXJhcmNoeScsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5JywnaGllcmFyY2h5Jyk7CgkgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkgICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IiwgImV4dHJhMSBDKDI1NSksZXh0cmEyIEMoMjU1KSIpOwoJICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJfQoKICBjYXNlICcyLjMnOgogIGNhc2UgJzIuMy4xJzoKCXsKCSAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VybHByZWZpeCcsJ3Byb2R1Y3RzJyk7Cgl9CgogIGNhc2UgJzIuNCc6CiAgY2FzZSAnMi40LjEnOgogIGNhc2UgJzIuNC4yJzoKICBjYXNlICcyLjQuMyc6CiAgY2FzZSAnMi40LjQnOgogIGNhc2UgJzIuNC41JzoKICBjYXNlICcyLjQuNic6CiAgY2FzZSAnMi40LjcnOgogIGNhc2UgJzIuNC44JzoKCXsKICAgICAgJGRiID0gJHRoaXMtPkdldERiKCk7CiAgICAgICRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCgkgICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHMiLCAic2t1IEMoMjUpIik7CgkgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkgICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcyIsICJza3UgQygyNSkiKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJfQoKICBjYXNlICcyLjUnOgoJewogICAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKICAgICAgJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoKCSAgJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0cyIsICJhbGlhcyBDKDI1NSkiKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCSAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdwcm9kdWN0c19uYW1lJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cycsJ3Byb2R1Y3RfYWxpYXMnKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCX0KCiAgY2FzZSAnMi42JzoKICBjYXNlICcyLjYuMSc6CiAgY2FzZSAnMi42LjInOgogIGNhc2UgJzIuNyc6Cgl7CgkgIC8vIFNldHVwIGRlZmF1bHQgc2VhcmNoIHRlbXBsYXRlCgkgICR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXU0VBUkNIX1RFTVBMQVRFKTsKCSAgJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ERkxUU0VBUkNIX1RFTVBMQVRFKTsKCSAgJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwndGVtcGxhdGVzJywnb3JpZ19zZWFyY2hfdGVtcGxhdGUudHBsJyk7CgkgIGlmKCBmaWxlX2V4aXN0cyggJGZuICkgKQoJCXsKCQkgICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkZm4gKTsKCQkgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXU0VBUkNIX1RFTVBMQVRFLCR0ZW1wbGF0ZSk7CgkJICAkdGhpcy0+U2V0VGVtcGxhdGUoJ3NlYXJjaF9TYW1wbGUnLCR0ZW1wbGF0ZSk7CgkJICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX0RGTFRTRUFSQ0hfVEVNUExBVEUsJ1NhbXBsZScpOwoJCX0KCX0KCiAgY2FzZSAnMi43LjEnOgogIGNhc2UgJzIuNy4yJzoKICBjYXNlICcyLjcuMyc6CiAgY2FzZSAnMi43LjQnOgoJewoJICAvLyBTZXR1cCBkZWZhdWx0IHNlYXJjaCB0ZW1wbGF0ZQoJICAkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV1NFQVJDSF9URU1QTEFURSk7CgkgICR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVFNFQVJDSF9URU1QTEFURSk7CgkgICRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ29yaWdfc2VhcmNoX3RlbXBsYXRlLnRwbCcpOwoJICBpZiggZmlsZV9leGlzdHMoICRmbiApICkKCQl7CgkJICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CgkJICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV1NFQVJDSF9URU1QTEFURSwkdGVtcGxhdGUpOwoJCSAgJHRoaXMtPlNldFRlbXBsYXRlKCdzZWFyY2hfU2FtcGxlJywkdGVtcGxhdGUpOwoJCSAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ERkxUU0VBUkNIX1RFTVBMQVRFLCdTYW1wbGUnKTsKCQl9Cgl9CgoJLy8gYWRkIGEgbmV3IGZpZWxkIHRvIHRoZSBjYXRlZ29yeSBmaWVsZHMgdGFibGUuCgkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcnlfZmllbGRzIiwgImZpZWxkX29yZGVyIEkiKTsKCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkvLyBub3cgdXBkYXRlIHRoZSBjYXRlZ29yeSBmaWVsZHMgc3R1ZmYuCgkkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcwogICAgICAgICAgICAgICBPUkRFUiBCWSBjYXRlZ29yeV9pZCxmaWVsZF9uYW1lJzsKCSRkYXRhID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwoJJHByZXZfY2F0ZWdvcnlfaWQgPSAtMTsKCSRvcmRlciA9IDA7Cglmb3JlYWNoKCRkYXRhIGFzICRyb3cpCgkgIHsKCQlpZiggJHJvd1snY2F0ZWdvcnlfaWQnXSAhPSAkcHJldl9jYXRlZ29yeV9pZCApCgkJICB7CgkJCSRvcmRlciA9IDA7CgkJICB9CgoJCSRyb3dbJ2ZpZWxkX29yZGVyJ10gPSAkb3JkZXI7CgkJJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcwogICAgICAgICAgICAgICAgICAgICBTRVQgZmllbGRfb3JkZXIgPSA/IFdIRVJFIGNhdGVnb3J5X2lkID0gPyBBTkQgZmllbGRfbmFtZSA9ID8nOwoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJG9yZGVyLCRyb3dbJ2NhdGVnb3J5X2lkJ10sJHJvd1snZmllbGRfbmFtZSddKSk7CgoJCSRvcmRlcisrOwoJCSRwcmV2X2NhdGVnb3J5X2lkID0gJHJvd1snY2F0ZWdvcnlfaWQnXTsKCSAgfQoKICBjYXNlICcyLjcuNSc6CgkvLyBub3cgcmUtb3JkZXIgY2F0ZWdvcnkgZmllbGQgc3R1ZmYgYWdhaW4uCgkkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcwogICAgICAgICAgICAgICBPUkRFUiBCWSBjYXRlZ29yeV9pZCxmaWVsZF9uYW1lJzsKCSRkYXRhID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwoJJHByZXZfY2F0ZWdvcnlfaWQgPSAtMTsKCSRvcmRlciA9IDA7Cglmb3JlYWNoKCRkYXRhIGFzICRyb3cpCgkgIHsKCQlpZiggJHJvd1snY2F0ZWdvcnlfaWQnXSAhPSAkcHJldl9jYXRlZ29yeV9pZCApCgkJICB7CgkJCSRvcmRlciA9IDA7CgkJICB9CgoJCSRyb3dbJ2ZpZWxkX29yZGVyJ10gPSAkb3JkZXI7CgkJJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcwogICAgICAgICAgICAgICAgICAgICBTRVQgZmllbGRfb3JkZXIgPSA/IFdIRVJFIGNhdGVnb3J5X2lkID0gPyBBTkQgZmllbGRfbmFtZSA9ID8nOwoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJG9yZGVyLCRyb3dbJ2NhdGVnb3J5X2lkJ10sJHJvd1snZmllbGRfbmFtZSddKSk7CgoJCSRvcmRlcisrOwoJCSRwcmV2X2NhdGVnb3J5X2lkID0gJHJvd1snY2F0ZWdvcnlfaWQnXTsKCSAgfQoKICB9CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcyLjE0JykgPCAwICkKICB7CglmdW5jdGlvbiBwcm9kdWN0c19oaWVydHJlZV91cGRhdGVfb3JkZXIoJiR0cmVlKQoJewoJICAkb3JkZXIgPSAxOwoJICBmb3JlYWNoKCAkdHJlZSBhcyAmJG5vZGUgKQoJCXsKCQkgICRub2RlWydpdGVtX29yZGVyJ10gPSAkb3JkZXIrKzsKCQkgIGlmKCBpc3NldCgkbm9kZVsnY2hpbGRyZW4nXSkgKQoJCQl7CgkJCSAgcHJvZHVjdHNfaGllcnRyZWVfdXBkYXRlX29yZGVyKCRub2RlWydjaGlsZHJlbiddKTsKCQkJfQoJCX0KCX0KCgkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IiwgIml0ZW1fb3JkZXIgSSIpOwoJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCSR0cmVlID0gcHJvZHVjdF91dGlsczo6aGllcmFyY2h5X2dldF90cmVlKCk7Cglwcm9kdWN0c19oaWVydHJlZV91cGRhdGVfb3JkZXIoJHRyZWUpOwoJcHJvZHVjdF91dGlsczo6aGllcmFyY2h5X3NhdmVfdHJlZSgkdHJlZSk7CiAgfQoKCmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzIuMTQnKSA8IDAgKQogIHsKCSR0aGlzLT5BZGRFdmVudEhhbmRsZXIoJ0NHRWNvbW1lcmNlQmFzZScsJ09yZGVyVXBkYXRlZCcsRkFMU0UpOwogIH0KCmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzIuMTknKSA8IDAgKQogIHsKCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCSR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CgoJJGZsZHMgPSAiaWQgSSBLRVkgQVVUTywKICAgICAgICAgICAgIHByb2R1Y3RfaWQgSSBLRVkgTk9UIE5VTEwsCiAgICAgICAgICAgICB0ZXh0IEMoMjU1KSBLRVkgTk9UIE5VTEwsCiAgICAgICAgICAgICBhZGp1c3RtZW50IEMoNTApLAogICAgICAgICAgICAgc2t1ICBDKDI1KSwKICAgICAgICAgICAgIHFvaCBJLAogICAgICAgICAgICAgbm90ZXMgWCI7Cgkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlicycsCgkJCQkJCQkJCSAgJGZsZHMsJHRhYm9wdGFycmF5KTsKCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCglzZXRfdGltZV9saW1pdCg5OTk5KTsKCgkvLyBsb2FkIGFsbCBleGlzdGluZyBza3VzCgkkcXVlcnkgPSAnU0VMRUNUIHNrdSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgT1JERVIgQlkgc2t1JzsKCSRza3VzID0gJGRiLT5HZXRDb2woJHF1ZXJ5KTsKCWlmKCBpc19hcnJheSgkc2t1cykgKSB7CgkgICR0bXAgPSBhcnJheV91bmlxdWUoJHNrdXMpOwoJICBpZiggY291bnQoJHRtcCkgPCBjb3VudCgkc2t1cykgKSB7CgkJYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnV0FSTklORzogUHJvZHVjdHMgbW9kdWxlIHVwZ3JhZGUgZGV0ZWN0ZWQgZHVwbGljYXRlIHNrdSB2YWx1ZXMgaW4gdGhlIGRhdGFiYXNlJyk7CgkJJHNrdXMgPSAkdG1wOwoJICB9Cgl9CgogCS8vIGNvbnZlcnQgYXR0cmlic2V0cyBhbmQgYXR0cmlidXRlcyB0byAiYXR0cmlicyIKCS8vIHRleHRfZm9ybWF0ID0gc2V0X25hbWUgOiBhdHRyaWJfdGV4dCcKCSRxdWVyeSA9ICdTRUxFQ1QgUy4qLEEuKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlic2V0cyBTCiAgICAgICAgICAgICAgTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcyBBCiAgICAgICAgICAgICAgT04gUy5hdHRyaWJfc2V0X2lkID0gQS5hdHRyaWJfc2V0X2lkJzsKCgkkaXF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlicwogICAgICAgICAgICAgICAocHJvZHVjdF9pZCx0ZXh0LGFkanVzdG1lbnQsc2t1LHFvaCxub3RlcykKICAgICAgICAgICAgICAgVkFMVUVTICg/LD8sPyw/LD8sPyknOwoJJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJJG5vdGVzID0gJ1VwZ3JhZGVkIGZyb20gUHJvZHVjdHMgJy4kb2xkdmVyc2lvbi4nIGF0ICcuc3RyZnRpbWUoJyV4ICVYJykuIlxuTm90ZSwgYXR0cmlidXRlIGNvbWJpbmF0aW9ucyB3ZXJlIG5vdCBpbXBvcnRlZC4iOwoJd2hpbGUoICEkZGJyLT5FT0YgKSB7CgkgICRyb3cgPSAkZGJyLT5maWVsZHM7CgoJICAkdGV4dCA9IHNwcmludGYoJyVzIDogJXMnLHN1YnN0cigkcm93WydhdHRyaWJfc2V0X25hbWUnXSwwLDMwKSxzdWJzdHIoJHJvd1snYXR0cmliX3RleHQnXSwwLDI1NS0zMC0zKSk7CgkgICRza3UgPSAkcm93Wydza3UnXTsKCSAgaWYoIGluX2FycmF5KCRza3UsJHNrdXMpICkgewoJCSRza3UgPSAnJzsKCQlhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdXQVJOSU5HOiBQcm9kdWN0cyBtb2R1bGUgdXBncmFkZSBkZXRlY3RlZCBkdXBsaWNhdGUgc2t1IHZhbHVlcyBpbiBhdHRyaWJ1dGVzIGZvciBwcm9kdWN0ICcuJHJvd1sncHJvZHVjdF9pZCddKTs7CgkgIH0KCSAgZWxzZSB7CgkJJHNrdXNbXSA9ICRza3U7CgkgIH0KCSAgJGRicjIgPSAkZGItPkV4ZWN1dGUoJGlxdWVyeSwkcm93Wydwcm9kdWN0X2lkJ10sJHRleHQsJHJvd1snYXR0cmliX2FkanVzdG1lbnQnXSwkc2t1LDAsJG5vdGVzKTsKCSAgJGRici0+TW92ZU5leHQoKTsKCX0KCgkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnNldHMnKTsKCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnV0ZXMnKTsKCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKICB9CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcyLjE5LjInKSA8IDAgKSB7CiAgJHF1ZXJ5ID0gJ0FMVEVSIFRBQkxFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIEFERCBQUklNQVJZIEtFWSAocHJvZHVjdF9pZCxmaWVsZGRlZl9pZCknOwogICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwp9CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcyLjE5LjEwJykgPCAwICkgewogICRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX3Byb2R1Y3RfY2F0cycsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzJywncHJvZHVjdF9pZCxjYXRlZ29yeV9pZCcsCgkJCQkJCQkJCWFycmF5KCdVTklRVUUnPT4xKSk7CiAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwp9CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcyLjIwLjQnKSA8IDAgKSB7CiAgICAkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnMnLCdpb3JkZXIgSScpOwogICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAgICRxdWVyeSA9ICdTRUxFQ1QgaWQscHJvZHVjdF9pZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlicyBPUkRFUiBCWSBwcm9kdWN0X2lkLHNrdSxpZCc7CiAgICAkcmVzID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgaWYoIGlzX2FycmF5KCRyZXMpICYmIGNvdW50KCRyZXMpICkgewogICAgICAgICRwcm9kdWN0X2lkID0gLTE7CiAgICAgICAgJGlvcmRlciA9IDE7CiAgICAgICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnMgU0VUIGlvcmRlciA9ID8gV0hFUkUgaWQgPSA/JzsKICAgICAgICBmb3JlYWNoKCAkcmVzIGFzICRyb3cgKSB7CiAgICAgICAgICAgIGlmKCAkcm93Wydwcm9kdWN0X2lkJ10gIT0gJHByb2R1Y3RfaWQgKSB7CiAgICAgICAgICAgICAgICAvLyBhIG5ldyBwcm9kdWN0IGlkIHdhcyBlbmNvdW50ZXJlZC4KICAgICAgICAgICAgICAgICRwcm9kdWN0X2lkID0gJHJvd1sncHJvZHVjdF9pZCddOwogICAgICAgICAgICAgICAgJGlvcmRlciA9IDE7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRpb3JkZXIsJHJvd1snaWQnXSkpOwogICAgICAgICAgICAkaW9yZGVyKys7CiAgICAgICAgfQogICAgfQp9CmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzIuMjIuMScpIDwgMCApIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1cGxvYWRfZGlyJywnX3Byb2R1Y3RzJyk7Cn0KaWYoIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwnMi4yMycpIDwgMCApIHsKICAgICRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKICAgICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHMiLCAidXJsIEMoMjU1KSIpOwogICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkuJ3Byb2R1Y3RzX2lkeHVybCcsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMnLCdpZCx1cmwsc3RhdHVzJyk7CiAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cn0KLy8gRU9GCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/Products.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmRlZmluZSgnUFJPRFVDVFNfUFJFRl9ORVdTVU1NQVJZX1RFTVBMQVRFJywncHJvZHVjdHNfcHJlZl9uZXdzdW1tYXJ5X3RlbXBsYXRlJyk7CmRlZmluZSgnUFJPRFVDVFNfUFJFRl9ERkxUU1VNTUFSWV9URU1QTEFURScsJ3Byb2R1Y3RzX3ByZWZfZGZsdHN1bW1hcnlfdGVtcGxhdGUnKTsKZGVmaW5lKCdQUk9EVUNUU19QUkVGX05FV0RFVEFJTF9URU1QTEFURScsJ3Byb2R1Y3RzX3ByZWZfbmV3ZGV0YWlsX3RlbXBsYXRlJyk7CmRlZmluZSgnUFJPRFVDVFNfUFJFRl9ERkxUREVUQUlMX1RFTVBMQVRFJywncHJvZHVjdHNfcHJlZl9kZmx0ZGV0YWlsX3RlbXBsYXRlJyk7CmRlZmluZSgnUFJPRFVDVFNfUFJFRl9ORVdDQVRFR09SWUxJU1RfVEVNUExBVEUnLCdwcm9kdWN0c19wcmVmX25ld2NhdGVnb3J5bGlzdF90ZW1wbGF0ZScpOwpkZWZpbmUoJ1BST0RVQ1RTX1BSRUZfREZMVENBVEVHT1JZTElTVF9URU1QTEFURScsJ3Byb2R1Y3RzX3ByZWZfZGZsdGNhdGVnb3J5bGlzdF90ZW1wbGF0ZScpOwpkZWZpbmUoJ1BST0RVQ1RTX1BSRUZfTkVXQllISUVSQVJDSFlfVEVNUExBVEUnLCdwcm9kdWN0c19wcmVmX25ld2J5aGllcmFyY2h5X3RlbXBsYXRlJyk7CmRlZmluZSgnUFJPRFVDVFNfUFJFRl9ERkxUQllISUVSQVJDSFlfVEVNUExBVEUnLCdwcm9kdWN0c19wcmVmX2RmbHRieWhpZXJhcmNoeV90ZW1wbGF0ZScpOwpkZWZpbmUoJ1BST0RVQ1RTX1BSRUZfTkVXU0VBUkNIX1RFTVBMQVRFJywncHJvZHVjdHNfcHJlZl9uZXdzZWFyY2hfdGVtcGxhdGUnKTsKZGVmaW5lKCdQUk9EVUNUU19QUkVGX0RGTFRTRUFSQ0hfVEVNUExBVEUnLCdwcm9kdWN0c19wcmVmX2RmbHRzZWFyY2hfdGVtcGxhdGUnKTsKCmZpbmFsIGNsYXNzIFByb2R1Y3RzIGV4dGVuZHMgQ0dFeHRlbnNpb25zCnsKICAgIHByaXZhdGUgJF9hZG1pbl9sb2FkZWQ7CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgewogICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCk7CiAgICAgICRzbWFydHkgPSBTbWFydHlfQ01TOjpnZXRfaW5zdGFuY2UoKTsKICAgICAgaWYoICEkc21hcnR5ICkgcmV0dXJuOwoKICAgICAgJHRoaXMtPl9hZG1pbl9sb2FkZWQgPSBmYWxzZTsKICAgICAgJHRoaXMtPkFkZEltYWdlRGlyKCdpY29ucycpOwoKICAgICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ3Byb2R1Y3RzX2dldGNhdGVnb3J5JyxhcnJheSgkdGhpcywnX3NtYXJ0eV9wcm9kdWN0c19nZXRjYXRlZ29yeScpKTsKICAgICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ3Byb2R1Y3RzX2hpZXJhcmNoeV9icmVhZGNydW1iJyxhcnJheSgkdGhpcywnX3NtYXJ0eV9wcm9kdWN0c19oaWVyYXJjaHlfYnJlYWRjcnVtYicpKTsKICAgICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ3Byb2R1Y3RzX2hpZXJhcmNoeV9wYXJlbnQnLGFycmF5KCR0aGlzLCdfc21hcnR5X3Byb2R1Y3RzX2hpZXJhcmNoeV9wYXJlbnQnKSk7CgogICAgICBnbG9iYWwgJENNU19BRE1JTl9QQUdFOwogICAgICBpZiggMSApIHsKICAgICAgICAgIC8vIG1ha2luZyB0aGlzIHN0dWZmIGludG8gc3RhdGljIHJvdXRlcyB3b3VsZCBhbGxvdyBsYXp5IGxvYWRpbmcgdGhlIFByb2R1Y3RzIG1vZHVsZSBhbmQgc2F2ZSBleGFjdGx5IG9uZSBxdWVyeS4KICAgICAgICAgICRkYiA9IENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldERiKCk7CiAgICAgICAgICAkcXBhcm1zID0gYXJyYXkoJycpOwogICAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCx1cmwgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzIFdIRVJFIHVybCAhPSA/JzsKICAgICAgICAgIGlmKCAhaXNzZXQoJENNU19BRE1JTl9QQUdFKSApIHsKICAgICAgICAgICAgICAvLyBmb3Igbm9uIGFkbWluIHJlcXVlc3RzIHdlIG9ubHkgbmVlZCB0byByZWdpc3RlciByb3V0ZXMgdG8gcHVibGlzaGVkIGFydGljbGVzLgogICAgICAgICAgICAgICRxdWVyeSAuPSAnIEFORCBzdGF0dXMgPSA/JzsKICAgICAgICAgICAgICAkcXBhcm1zW10gPSAncHVibGlzaGVkJzsKICAgICAgICAgIH0KCiAgICAgICAgICAkdG1wID0gJGRiLT5HZXRBcnJheSgkcXVlcnksJHFwYXJtcyk7CiAgICAgICAgICBpZiggaXNfYXJyYXkoJHRtcCkgKSB7CiAgICAgICAgICAgICAgJGRldGFpbHBhZ2UgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGV0YWlscGFnZScsLTEpOwogICAgICAgICAgICAgIGlmKCAkZGV0YWlscGFnZSA8IDEgKSB7CiAgICAgICAgICAgICAgICAgICRjb250ZW50b3BzID0gQ29udGVudE9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpOwogICAgICAgICAgICAgICAgICAkZGV0YWlscGFnZSA9ICRjb250ZW50b3BzLT5HZXREZWZhdWx0Q29udGVudCgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmb3JlYWNoKCAkdG1wIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICAgICRwYXJtcyA9IGFycmF5KCdhY3Rpb24nPT4nZGV0YWlscycsJ3JldHVybmlkJz0+JGRldGFpbHBhZ2UsJ3Byb2R1Y3RpZCc9PiRvbmVbJ2lkJ10pOwogICAgICAgICAgICAgICAgICAkcm91dGUgPSBuZXcgQ21zUm91dGUoJG9uZVsndXJsJ10sJHRoaXMtPkdldE5hbWUoKSwkcGFybXMsVFJVRSk7CiAgICAgICAgICAgICAgICAgIGNtc19yb3V0ZV9tYW5hZ2VyOjpyZWdpc3Rlcigkcm91dGUpOwogICAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgfQogIH0KCiAgcHVibGljIGZ1bmN0aW9uIEdldE5hbWUoKSB7IHJldHVybiAnUHJvZHVjdHMnOyB9CiAgcHVibGljIGZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdwcm9kdWN0X21hbmFnZXInKTsgfQogIHB1YmxpYyBmdW5jdGlvbiBBbGxvd0F1dG9JbnN0YWxsKCkgeyByZXR1cm4gRkFMU0U7IH0KICBwdWJsaWMgZnVuY3Rpb24gQWxsb3dBdXRvVXBncmFkZSgpIHsgcmV0dXJuIEZBTFNFOyB9CiAgcHVibGljIGZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkgeyByZXR1cm4gdHJ1ZTsgfQogIHB1YmxpYyBmdW5jdGlvbiBIYXNBZG1pbigpIHsJcmV0dXJuIHRydWU7IH0KICBwdWJsaWMgZnVuY3Rpb24gR2V0VmVyc2lvbigpIHsgcmV0dXJuICcyLjI0JzsgfQogIHB1YmxpYyBmdW5jdGlvbiBNaW5pbXVtQ01TVmVyc2lvbigpIHsgcmV0dXJuICcxLjEyJzsgfQogIHB1YmxpYyBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ21vZHVsZV9kZXNjcmlwdGlvbicpOyB9CiAgcHVibGljIGZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsgfQogIHB1YmxpYyBmdW5jdGlvbiBVbmluc3RhbGxQcmVNZXNzYWdlKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3ByZXVuaW5zdGFsbCcpOyB9CiAgcHVibGljIGZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpIHsgcmV0dXJuICdjb250ZW50JzsgfQogIHB1YmxpYyBmdW5jdGlvbiBHZXRBdXRob3IoKSB7IHJldHVybiAnY2FsZ3V5MTAwMCc7IH0KICBwdWJsaWMgZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKSB7IHJldHVybiAnY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyc7IH0KICBwdWJsaWMgZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkgeyByZXR1cm4gZmlsZV9nZXRfY29udGVudHMoX19ESVJfXy4nL2NoYW5nZWxvZy5odG1sJyk7IH0KICBwdWJsaWMgZnVuY3Rpb24gR2V0RXZlbnREZXNjcmlwdGlvbiggJGV2ZW50bmFtZSApIHsgcmV0dXJuICR0aGlzLT5sYW5nKCdldmVudGRlc2MtJyAuICRldmVudG5hbWUpOyB9CiAgcHVibGljIGZ1bmN0aW9uIEdldEV2ZW50SGVscCggJGV2ZW50bmFtZSApIHsJcmV0dXJuICR0aGlzLT5sYW5nKCdldmVudGhlbHAtJyAuICRldmVudG5hbWUpOyB9CiAgcHVibGljIGZ1bmN0aW9uIEhhbmRsZXJzRXZlbnRzKCkgeyByZXR1cm4gVFJVRTsgfQogIHB1YmxpYyBmdW5jdGlvbiBBbGxvd1NtYXJ0eUNhY2hpbmcoKSB7IHJldHVybiBUUlVFOyB9CiAgcHVibGljIGZ1bmN0aW9uIExhenlMb2FkRnJvbnRlbmQoKSB7IHJldHVybiBGQUxTRTsgfQogIHB1YmxpYyBmdW5jdGlvbiBMYXp5TG9hZEFkbWluKCkgeyByZXR1cm4gVFJVRTsgfQogIHB1YmxpYyBmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKSB7IHJldHVybiAkdGhpcy0+TGFuZygncG9zdGluc3RhbGwnKTsgfQoKICBmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKQogIHsKICAgICAgcmV0dXJuIGFycmF5KCdDR0V4dGVuc2lvbnMnPT4nMS40OC40JywgJ0NHU2ltcGxlU21hcnR5Jz0+JzEuOCcsICdKUXVlcnlUb29scyc9PicxLjMuNScpOwogIH0KCiAgZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkKICB7CglyZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFByb2R1Y3RzJykgfHwKCSAgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpIHx8CgkgICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJyk7CiAgfQoKICBmdW5jdGlvbiBHZXRIZWFkZXJIVE1MKCkKICB7CiAgICAgICR0eHQgPSBwYXJlbnQ6OkdldEhlYWRlckhUTUwoKTsKICAgICAgJG9iaiA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnSlF1ZXJ5VG9vbHMnLCcxLjIuNicpOwogICAgICBpZiggaXNfb2JqZWN0KCRvYmopICkgewokdG1wbCA9IDw8PEVPVAp7SlF1ZXJ5VG9vbHMgYWN0aW9uPSdyZXF1aXJlJyBsaWI9J3RhYmxlc29ydGVyLGpxdWVyeXRvb2xzLGZhbmN5Ym94J30Ke0pRdWVyeVRvb2xzIGFjdGlvbj0ncGxhY2VtYXJrZXInfQpFT1Q7CiR0eHQgLj0gICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdG1wbCk7CiAgICAgIH0KJHR4dCAuPSA8PDxFT1QKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogICQoJ3VsLm9wdGlvbi1tZW51LWhvcml6JykubWVudSh7IHBvc2l0aW9uOiB7IG15OiAibGVmdCB0b3AiLCBhdDogImxlZnQtMSBib3R0b20rMiIgfSB9KTsKfSk7Cjwvc2NyaXB0PgpFT1Q7CiAgICAgIHJldHVybiAkdHh0OwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIEluaXRpYWxpemVGcm9udGVuZCgpCiAgewogICAgICAkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsKICAgICAgJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOwoKICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Byb2R1Y3RpZCcsQ0xFQU5fSU5UKTsKICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2RldGFpbHBhZ2UnLENMRUFOX1NUUklORyk7CiAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdjYXRlZ29yeWxpc3R0ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NhdGVnb3J5bGlzdGR0bHRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwogICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZGV0YWlsdGVtcGxhdGUnLENMRUFOX1NUUklORyk7CiAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzdW1tYXJ5dGVtcGxhdGUnLENMRUFOX1NUUklORyk7CiAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdoaWVyYXJjaHl0ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2hpZXJhcmNoeXBhZ2UnLENMRUFOX1NUUklORyk7CiAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzb3J0YnknLENMRUFOX1NUUklORyk7CiAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzb3J0b3JkZXInLENMRUFOX1NUUklORyk7CiAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzb3J0dHlwZScsQ0xFQU5fU1RSSU5HKTsKICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2V4Y2x1ZGVjYXQnLENMRUFOX1NUUklORyk7CiAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdub3RwcmV0dHknLENMRUFOX1NUUklORyk7CiAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdjYXRlZ29yeScsQ0xFQU5fU1RSSU5HKTsKICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NhdGVnb3J5bmFtZScsQ0xFQU5fU1RSSU5HKTsKICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2hpZXJhcmNoeScsQ0xFQU5fU1RSSU5HKTsKICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3BhZ2VsaW1pdCcsQ0xFQU5fSU5UKTsKICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3BhcmVudCcsQ0xFQU5fSU5UKTsKICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3BhcmVudHMnLENMRUFOX1NUUklORyk7CiAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzaG93YWxsJyxDTEVBTl9JTlQpOwogICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZmllbGQnLENMRUFOX1NUUklORyk7CiAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdmaWVsZGlkJyxDTEVBTl9JTlQpOwogICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZmllbGR2YWwnLENMRUFOX1NUUklORyk7CiAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdjYXRlZ29yeWZpZWxkJyxDTEVBTl9TVFJJTkcpOwogICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnaW5saW5lJyxDTEVBTl9JTlQpOwogICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncmVzdWx0cGFnZScsQ0xFQU5fU1RSSU5HKTsKICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NlYXJjaGZvcm10ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NlYXJjaGZpZWxkJyxDTEVBTl9TVFJJTkcpOwogICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc3VtbWFyeXBhZ2UnLENMRUFOX1NUUklORyk7CiAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdqdW5rJyxDTEVBTl9TVFJJTkcpOwogICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncGFnZScsQ0xFQU5fSU5UKTsKICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2FsaWFzJyxDTEVBTl9TVFJJTkcpOwogICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnaGllcmFyY2h5aWQnLENMRUFOX0lOVCk7CiAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdjYXRlZ29yeWlkJyxDTEVBTl9JTlQpOwogICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncHJvZHVjdGxpc3QnLENMRUFOX05PTkUpOwogICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9jaGlsZHJlbicsQ0xFQU5fSU5UKTsKICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoQ0xFQU5fUkVHRVhQLicvY2RfLiovJyxDTEVBTl9TVFJJTkcpOwoKICAgICAgLy8gRnJpZW5kbHkgVVJMIHN0dWZmCiAgICAgICRkZXRhaWxwYWdlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RldGFpbHBhZ2UnLC0xKTsKICAgICAgaWYoICRkZXRhaWxwYWdlID09IC0xICkgewogICAgICAgICAgJGNvbnRlbnRvcHMgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwogICAgICAgICAgJGRldGFpbHBhZ2UgPSAkY29udGVudG9wcy0+R2V0RGVmYXVsdFBhZ2VJRCgpOwogICAgICB9CiAgICAgICRzdHIgPSAnLycuJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VybHByZWZpeCcsJ1tQcF1yb2R1Y3RzJyk7CiAgICAgIGlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXNlaGllcnBhdGh1cmxzJykgKSB7CiAgICAgICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgkc3RyLidcL2RldGFpbHNcLyg/UDxyZXR1cm5pZD5bMC05XSspXC8oW15cL10rXC8pKyg/UDxhbGlhcz4uKikkLycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgnYWN0aW9uJz0+J2RldGFpbHMnLCdyZXR1cm5pZCc9PiRkZXRhaWxwYWdlKSk7CiAgICAgICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgkc3RyLidcL2RldGFpbHNcLyhbXlwvXStcLykrKD9QPGFsaWFzPi4qKSQvJyxhcnJheSgnYWN0aW9uJz0+J2RldGFpbHMnLCdyZXR1cm5pZCc9PiRkZXRhaWxwYWdlKSk7CiAgICAgIH0KCiAgICAgIC8vIGRldGFpbCB2aWV3CiAgICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKCRzdHIuJ1wvKD9QPHByb2R1Y3RpZD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKVwvKD9QPGp1bms+Lio/KSQvJyxhcnJheSgnYWN0aW9uJz0+J2RldGFpbHMnKSk7CiAgICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKCRzdHIuJ1wvKD9QPHByb2R1Y3RpZD5bMC05XSspXC8oP1A8anVuaz4uKj8pJC8nLCBhcnJheSgnYWN0aW9uJz0+J2RldGFpbHMnLCdyZXR1cm5pZCc9PiRkZXRhaWxwYWdlKSk7CiAgICAgIC8vICR0aGlzLT5SZWdpc3RlclJvdXRlKCRzdHIuJ1wvKD9QPHByb2R1Y3RpZD5bMC05XSspJC8nKTsgYnJva2VuPwoKICAgICAgLy8gdmlldyBjYXRlZ29yeSBsaXN0CiAgICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKCRzdHIuJ1wvdmlld2NhdGVnb3J5XC8oP1A8Y2F0ZWdvcnlpZD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKSQvJyxhcnJheSgnYWN0aW9uJz0+J2NhdGVnb3J5bGlzdCcpKTsKCiAgICAgIC8vIGRlZmF1bHQgdmlld3MuLi4uIHVzZWQ/CiAgICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKCRzdHIuJ1wvc3VtbWFyeVwvKCRQPHJldHVybmlkPlswLTldKylcLyg/UDxqdW5rPi4qPykkLycpOwogICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgkc3RyLidcL3N1bW1hcnlcLygkUDxyZXR1cm5pZD5bMC05XSspJC8nKTsKCiAgICAgIC8vIHZpZXdpbmcgc3VtbWFyeSB2aWV3IG9mIHByb2R1Y3RzIGJ5IGNhdGVnb3J5CiAgICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKCRzdHIuJ1wvYnljYXRlZ29yeVwvKD9QPGNhdGVnb3J5aWQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKylcLyg/UDxqdW5rPi4qPykkLycpOwogICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgkc3RyLidcL2J5Y2F0ZWdvcnlcLyg/UDxjYXRlZ29yeWlkPlswLTldKylcLyg/UDxyZXR1cm5pZD5bMC05XSspJC8nKTsKCiAgICAgIC8vIHZpZXdpbmcgc3VtbWFyeSB2aWV3IG9mIHByb2R1Y3RzIGJ5IGhpZXJhcmNoeQogICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgkc3RyLidcL2J5aGllcmFyY2h5XC8oP1A8aGllcmFyY2h5aWQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKylcLyg/UDxqdW5rPi4qPykkLycpOwogICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgkc3RyLidcL2J5aGllcmFyY2h5XC8oP1A8aGllcmFyY2h5aWQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKykkLycpOwoKICAgICAgLy8gZm9yIHZpZXdpbmcgdGhlIHByb2R1Y3QgaGllcmFyY2h5CiAgICAgICRoaWVycGFnZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdoaWVycGFnZScsLTEpOwogICAgICBpZiggJGhpZXJwYWdlIDw9IDAgKSAkaGllcnBhZ2UgPSAkZGV0YWlscGFnZTsKICAgICAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoJHN0ci4nXC9oaWVyYXJjaHlcLyg/UDxwYXJlbnQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKykkLycpOwogICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgkc3RyLidcL2hpZXJhcmNoeVwvKD9QPHBhcmVudD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKVwvKD9QPGp1bms+Lio/KSQvJyk7CiAgICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKCRzdHIuJ1wvaGllcmFyY2h5XC8oP1A8cGFyZW50PlswLTldKylcLyg/UDxqdW5rPi4qPykkLycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5KCdhY3Rpb24nPT4naGllcmFyY2h5JywncmV0dXJuaWQnPT4kaGllcnBhZ2UpKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBJbml0aWFsaXplQWRtaW4oKQogIHsKICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignYWN0aW9uJywnZGVmYXVsdCcsJHRoaXMtPkxhbmcoJ3BhcmFtX2FjdGlvbicpKTsKICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigncHJvZHVjdGlkJywnJywkdGhpcy0+TGFuZygncGFyYW1fcHJvZHVjdGlkJykpOwogICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdkZXRhaWxwYWdlJywnJywkdGhpcy0+TGFuZygncGFyYW1fZGV0YWlscGFnZScpKTsKICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignY2F0ZWdvcnlsaXN0dGVtcGxhdGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZScpKTsKICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignY2F0ZWdvcnlsaXN0ZHRsdGVtcGxhdGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9jYXRlZ29yeWxpc3RkdGx0ZW1wbGF0ZScpKTsKICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZGV0YWlsdGVtcGxhdGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9kZXRhaWx0ZW1wbGF0ZScpKTsKICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc3VtbWFyeXRlbXBsYXRlJywnJywkdGhpcy0+TGFuZygncGFyYW1fc3VtbWFyeXRlbXBsYXRlJykpOwogICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdoaWVyYXJjaHl0ZW1wbGF0ZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2hpZXJhcmNoeXRlbXBsYXRlJykpOwogICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdoaWVyYXJjaHlwYWdlJywnJywkdGhpcy0+TGFuZygncGFyYW1faGllcmFyY2h5cGFnZScpKTsKICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc29ydGJ5JywncHJvZHVjdF9uYW1lJywkdGhpcy0+TGFuZygncGFyYW1fc29ydGJ5JykpOwogICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzb3J0b3JkZXInLCdhc2MnLCR0aGlzLT5MYW5nKCdwYXJhbV9zb3J0b3JkZXInKSk7CiAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3NvcnR0eXBlJywnJywkdGhpcy0+TGFuZygncGFyYW1fc29ydHR5cGUnKSk7CiAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2V4Y2x1ZGVjYXQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9leGNsdWRlY2F0JykpOwogICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdub3RwcmV0dHknLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9ub3RwcmV0dHknKSk7CiAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2NhdGVnb3J5JywnJywkdGhpcy0+TGFuZygncGFyYW1fY2F0ZWdvcnknKSk7CiAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2hpZXJhcmNoeScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2hpZXJhcmNoeScpKTsKICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigncGFnZWxpbWl0JywnJywkdGhpcy0+TGFuZygncGFyYW1fcGFnZWxpbWl0JykpOwogICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdwYXJlbnQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9wYXJlbnQnKSk7CiAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3BhcmVudHMnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9wYXJlbnRzJykpOwogICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzaG93YWxsJywnJywkdGhpcy0+TGFuZygncGFyYW1fc2hvd2FsbCcpKTsKICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmllbGQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWVsZCcpKTsKICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmllbGRpZCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpZWxkaWQnKSk7CiAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZpZWxkdmFsJywnJywkdGhpcy0+TGFuZygncGFyYW1fZmllbGR2YWwnKSk7CiAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2NhdGVnb3J5ZmllbGQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9jYXRlZ29yeWZpZWxkJykpOwogICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdpbmxpbmUnLDAsJHRoaXMtPkxhbmcoJ3BhcmFtX2lubGluZScpKTsKICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigncmVzdWx0cGFnZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3Jlc3VsdHBhZ2UnKSk7CiAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3NlYXJjaGZvcm10ZW1wbGF0ZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3NlYXJjaGZvcm10ZW1wbGF0ZScpKTsKICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc2VhcmNoZmllbGQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9zZWFyY2hmaWVsZCcpKTsKICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc3VtbWFyeXBhZ2UnLCR0aGlzLT5MYW5nKCdwYXJhbV9zdW1tYXJ5cGFnZScpKTsKICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigncHJvZHVjdGxpc3QnLCR0aGlzLT5MYW5nKCdwYXJhbV9wcm9kdWN0bGlzdCcpKTsKICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbm9jaGlsZHJlbicsJHRoaXMtPkxhbmcoJ3BhcmFtX25vY2hpbGRyZW4nKSk7CiAgfQoKICBwcm90ZWN0ZWQgZnVuY3Rpb24gX2xvYWRfYWRtaW4oKQogIHsKICAgICAgaWYoICEkdGhpcy0+X2FkbWluX2xvYWRlZCApIHsKICAgICAgICAgIHJlcXVpcmVfb25jZShfX0RJUl9fLicvZnVuY3Rpb25zLmFkbWluX3Rvb2xzLnBocCcpOwogICAgICAgICAgJHRoaXMtPl9hZG1pbl9sb2FkZWQgPSB0cnVlOwogICAgICB9CiAgfQoKICAvLyBkZXByZWNhdGVkCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIEdldFR5cGVzRHJvcGRvd24oICRpZCwgJG5hbWUsICRzZWxlY3RlZCA9ICcnLCAkYWRkdGV4dCA9ICcnLCAkc2VsZWN0b25lID0gZmFsc2UgKQogIHsKICAgICAgJHRoaXMtPl9sb2FkX2FkbWluKCk7CiAgICAgIHJldHVybiBwcm9kdWN0c19HZXRUeXBlc0Ryb3Bkb3duKCR0aGlzLCRpZCwkbmFtZSwkc2VsZWN0ZWQsJGFkZHRleHQsJHNlbGVjdG9uZSk7CiAgfQoKICAvLyBkZXByZWNhdGVkCiAgZnVuY3Rpb24gJkdldENhdGVnb3J5KCRjYXRlZ29yeV9pZCwkZnVsbCA9IGZhbHNlKQogIHsKICAgICAgJGdDbXMgPSBjbXNtcygpOwogICAgICAkZGIgPSAkZ0Ntcy0+R2V0RGIoKTsKICAgICAgJGNvbmZpZyA9ICRnQ21zLT5HZXRDb25maWcoKTsKCiAgICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyBXSEVSRSBpZCA9ID8nOwogICAgICAkcXVlcnkyID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/JzsKCiAgICAgICRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJGNhdGVnb3J5X2lkKSk7CiAgICAgIGlmKCAhJHJvdyApIHJldHVybiBGQUxTRTsKCiAgICAgICRvbmVyb3cgPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgJG9uZXJvdy0+aWQgPSAkcm93WydpZCddOwogICAgICAkb25lcm93LT5uYW1lID0gJHJvd1snbmFtZSddOwogICAgICAkb25lcm93LT52YWx1ZSA9IGZhbHNlOwogICAgICAkb25lcm93LT5maWxlX2xvY2F0aW9uID0gcHJvZHVjdF91dGlsczo6Z2V0X2NhdGVnb3J5X3VwbG9hZF91cmwoJG9uZXJvdy0+aWQpOwoKICAgICAgaWYoICRmdWxsICkgewogICAgICAgICAgJHRtcDIgPSAkZGItPkdldEFycmF5KCRxdWVyeTIsYXJyYXkoJHJvd1snaWQnXSkpOwogICAgICAgICAgaWYoIGlzX2FycmF5KCR0bXAyKSApICRvbmVyb3ctPmRhdGEgPSAkdG1wMjsKICAgICAgfQoKICAgICAgcmV0dXJuICRvbmVyb3c7CiAgfQoKICAvLyBkZXByZWNhdGVkCiAgZnVuY3Rpb24gR2V0Q2F0ZWdvcmllcygkZnVsbCA9IGZhbHNlKQogIHsKICAgICAgaWYoICRmdWxsICkgcmV0dXJuIHByb2R1Y3RfdXRpbHM6OmdldF9mdWxsX2NhdGVnb3JpZXMoJGZ1bGwpOwogICAgICByZXR1cm4gcHJvZHVjdF91dGlsczo6Z2V0X2NhdGVnb3JpZXMoJGZ1bGwpOwogIH0KCiAgLy8gZGVwcmVjYXRlZAogIGZ1bmN0aW9uIEdldENhdGVnb3JpZXNGb3JQcm9kdWN0KCRwcm9kdWN0LCRicmllZiA9IGZhbHNlLCRmdWxsID0gZmFsc2UpCiAgewogICAgICAkZW50cnlhcnJheSA9IGFycmF5KCk7CgogICAgICAkZ0NtcyA9IGNtc21zKCk7CiAgICAgICRkYiA9ICRnQ21zLT5HZXREQigpOwoKICAgICAgJGVudHJ5YXJyYXkgPSAkdGhpcy0+R2V0Q2F0ZWdvcmllcygkZnVsbCk7CgogICAgICAkcXVlcnkgPSAnU0VMRUNUIGMuKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzIGMgV0hFUkUgYy5wcm9kdWN0X2lkID0gPyBPUkRFUiBCWSBjLmNhdGVnb3J5X2lkJzsKICAgICAgJHByb2RjYXRzID0gJGRiLT5HZXRBcnJheSgkcXVlcnksYXJyYXkoJHByb2R1Y3QpKTsKCiAgICAgICRyZXN1bHRzID0gYXJyYXkoKTsKICAgICAgaWYoICRicmllZiApIHsKICAgICAgICAgIGZvcmVhY2goICRwcm9kY2F0cyBhcyAkb25lcHJvZGNhdCApIHsKICAgICAgICAgICAgICBmb3JlYWNoKCAkZW50cnlhcnJheSBhcyAkZW50cnkgKSB7CiAgICAgICAgICAgICAgICAgIGlmKCAkb25lcHJvZGNhdFsnY2F0ZWdvcnlfaWQnXSA9PSAkZW50cnktPmlkICkgewogICAgICAgICAgICAgICAgICAgICAgJGVudHJ5LT52YWx1ZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0c1tdID0gJGVudHJ5OwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgIH0KICAgICAgZWxzZSBpZiggaXNfYXJyYXkoJGVudHJ5YXJyYXkpICYmIGNvdW50KCRlbnRyeWFycmF5KSApIHsKICAgICAgICAgIC8vIGZ1bGwgbGlzdCBvZiBjYXRlZ29yaWVzLAogICAgICAgICAgLy8gc2V0IHZhbHVlIHRvIHRydWUgaWYgdGhpcyBwcm9kdWN0IGlzIGEgbWVtYmVyIG9mIHRoaXMgY2F0ZWdvcnkKICAgICAgICAgIGZvcmVhY2goICRlbnRyeWFycmF5IGFzICRlbnRyeSApIHsKICAgICAgICAgICAgICAkZW50cnktPnZhbHVlID0gZmFsc2U7CiAgICAgICAgICAgICAgZm9yZWFjaCggJHByb2RjYXRzIGFzICRvbmVwcm9kY2F0ICkgewogICAgICAgICAgICAgICAgICBpZiggJG9uZXByb2RjYXRbJ2NhdGVnb3J5X2lkJ10gPT0gJGVudHJ5LT5pZCApIHsKICAgICAgICAgICAgICAgICAgICAgICRlbnRyeS0+dmFsdWUgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICRyZXN1bHRzW10gPSAkZW50cnk7CiAgICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuICRyZXN1bHRzOwogIH0KCiAgLy8gZGVwcmVjYXRlZCwgbW92ZSB0byBjbGFzcwogIGZ1bmN0aW9uIEdldEZpZWxkRGVmc0ZvclByb2R1Y3QoJGlkLCRhZG1pbiA9IGZhbHNlLCRwdWJsaWMgPSB0cnVlKQogIHsKICAgICAgJGdDbXMgPSBjbXNtcygpOwogICAgICAkZGIgPSAkZ0Ntcy0+R2V0REIoKTsKCiAgICAgICRlbnRyeWFycmF5ID0gcHJvZHVjdF91dGlsczo6Z2V0X2ZpZWxkZGVmcygkYWRtaW4sJHB1YmxpYyk7CgogICAgICAkcXVlcnkgPSAnJzsKICAgICAgaWYoICRhZG1pbiA9PSB0cnVlICYmICRwdWJsaWMgPT0gdHJ1ZSApIHsKICAgICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgZnYuKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIGZ2IFdIRVJFIGZ2LnByb2R1Y3RfaWQgPSA/JzsKICAgICAgfQogICAgICBlbHNlIGlmKCAkcHVibGljID09IHRydWUgKSB7CiAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIGIuKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIGEsICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIGIgV0hFUkUgYS5pZCA9IGIuZmllbGRkZWZfaWQgQU5EIGEucHVibGljID4gMCBhbmQgYi5wcm9kdWN0X2lkID0gPyc7CiAgICAgIH0KICAgICAgZWxzZSB7CiAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIGIuKiBGUk9NICAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBhLCAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyBiIFdIRVJFIGEuaWQgPSBiLmZpZWxkZGVmX2lkIEFORCBhLmFkbWluX29ubHkgPD0gMCBhbmQgYi5wcm9kdWN0X2lkID0gPyc7CiAgICAgIH0KICAgICAgJGRicmVzdWx0ID0gJGRiLT5HZXRBcnJheSgkcXVlcnksIGFycmF5KCRpZCkpOwoKICAgICAgJHJlcyA9IGFycmF5KCk7CiAgICAgIGlmKCBpc19hcnJheSgkZW50cnlhcnJheSkgJiYgY291bnQoJGVudHJ5YXJyYXkpICkgewogICAgICAgICAgZm9yZWFjaCggJGVudHJ5YXJyYXkgYXMgJGVudHJ5ICkgewogICAgICAgICAgICAgICRuZXdlbnRyeSA9IGNsb25lICRlbnRyeTsKICAgICAgICAgICAgICAkbmV3ZW50cnktPnZhbHVlID0gbnVsbDsKICAgICAgICAgICAgICBmb3JlYWNoICgkZGJyZXN1bHQgYXMgJHJvdykgewogICAgICAgICAgICAgICAgICBpZiAoJHJvd1snZmllbGRkZWZfaWQnXSA9PSAkbmV3ZW50cnktPmlkKSB7CiAgICAgICAgICAgICAgICAgICAgICBpZiggJG5ld2VudHJ5LT50eXBlID09ICdkaW1lbnNpb25zJyB8fCAkbmV3ZW50cnktPnR5cGUgPT0gJ3N1YnNjcmlwdGlvbicpICRyb3dbJ3ZhbHVlJ10gPSB1bnNlcmlhbGl6ZSgkcm93Wyd2YWx1ZSddKTsKICAgICAgICAgICAgICAgICAgICAgICRuZXdlbnRyeS0+dmFsdWUgPSAkcm93Wyd2YWx1ZSddOwogICAgICAgICAgICAgICAgICAgICAgJG5ld2VudHJ5LT5maWVsZGRlZl9pZCA9ICRuZXdlbnRyeS0+aWQ7IC8vID8/CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAkcmVzW10gPSAkbmV3ZW50cnk7CiAgICAgICAgICB9CiAgICAgIH0KCiAgICAgIHJldHVybiAkcmVzOwogIH0KCiAgZnVuY3Rpb24gU2VhcmNoUmVzdWx0KCRyZXR1cm5pZCwgJHByb2R1Y3RpZCwgJGF0dHIgPSAnJykKICB7CiAgICAgIHJldHVybiBwcm9kdWN0X29wczo6Z2V0X3NlYXJjaF9yZXN1bHQoJHJldHVybmlkLCRwcm9kdWN0aWQsJGF0dHIpOwogIH0KCiAgZnVuY3Rpb24gU2VhcmNoUmVpbmRleCgmJG1vZHVsZSkKICB7CiAgICAgICR0aGlzLT5fbG9hZF9hZG1pbigpOwogICAgICByZXR1cm4gcHJvZHVjdHNfU2VhcmNoUmVpbmRleCgkdGhpcywkbW9kdWxlKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBHZXRTZWFyY2hhYmxlVGV4dCgkcHJvZHVjdF9pZCkKICB7CiAgICAgICRwcm9kdWN0ID0gbnVsbDsKICAgICAgaWYoIGlzX2FycmF5KCRwcm9kdWN0X2lkKSAmJiBpc3NldCgkcHJvZHVjdF9pZFsnaWQnXSkgKSB7CiAgICAgICAgICAkcHJvZHVjdCA9ICRwcm9kdWN0X2lkOwogICAgICB9CiAgICAgIGVsc2UgaWYoIChpbnQpJHByb2R1Y3RfaWQgPiAwICkgewogICAgICAgICAgLy8gdGhlIHByb2R1Y3QgbmFtZSwgdGhlIGRlc2NyaXB0aW9uLCBhbmQgYWxsIGRhdGEgZnJvbQogICAgICAgICAgLy8gdGV4dCBmaWVsZHMsIHRleHRhcmEgZmllbGRzLCBhbmQgZHJvcGRvd25zCiAgICAgICAgICAkcHJvZHVjdCA9IHByb2R1Y3Rfb3BzOjpnZXRfcHJvZHVjdCgkcHJvZHVjdF9pZCk7CiAgICAgIH0KICAgICAgaWYoICRwcm9kdWN0WydzdGF0dXMnXSAhPSAncHVibGlzaGVkJyApIHJldHVybiBhcnJheSgpOwogICAgICAkZGVmcyA9ICR0aGlzLT5HZXRGaWVsZERlZnNGb3JQcm9kdWN0KCRwcm9kdWN0WydpZCddKTsKCiAgICAgICRyZXN1bHRzID0gYXJyYXkoKTsKICAgICAgJHJlc3VsdHNbXSA9ICRwcm9kdWN0Wydwcm9kdWN0X25hbWUnXTsKICAgICAgJHJlc3VsdHNbXSA9ICRwcm9kdWN0WydkZXRhaWxzJ107CiAgICAgICRyZXN1bHRzW10gPSAkcHJvZHVjdFsnc2t1J107CiAgICAgICRyZXN1bHRzW10gPSAkcHJvZHVjdFsnYWxpYXMnXTsKICAgICAgZm9yZWFjaCggJGRlZnMgYXMgJG9uZWRlZiApIHsKICAgICAgICAgIHN3aXRjaCggJG9uZWRlZi0+dHlwZSApIHsKICAgICAgICAgIGNhc2UgJ3RleHRib3gnOgogICAgICAgICAgY2FzZSAndGV4dGFyZWEnOgogICAgICAgICAgY2FzZSAnZHJvcGRvd24nOgogICAgICAgICAgICAgIGlmKCBpc3NldCgkb25lZGVmLT52YWx1ZSkgKSAkcmVzdWx0c1tdID0gJG9uZWRlZi0+dmFsdWU7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgIH0KICAgICAgaWYoIGlzc2V0KCRwcm9kdWN0WydhdHRyaWJ1dGVzJ10pICkgewogICAgICAgICAgZm9yZWFjaCggJHByb2R1Y3RbJ2F0dHJpYnV0ZXMnXSBhcyAkcm93ICkgewogICAgICAgICAgICAgICRyZXN1bHRzW10gPSAkcm93Wyd0ZXh0J107CiAgICAgICAgICAgICAgJHJlc3VsdHNbXSA9ICRyb3dbJ3NrdSddOwogICAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiAkcmVzdWx0czsKICB9CgogIC8vIGRlcHJlY2F0ZWQKICBmdW5jdGlvbiBHZXRQcm9kdWN0TmFtZUZyb21JZCggJGlkICkKICB7CiAgICAgICRwcm9kdWN0ID0gcHJvZHVjdF9vcHM6OmdldF9wcm9kdWN0KCRpZCk7CiAgICAgIHJldHVybiAkcHJvZHVjdFsncHJvZHVjdF9uYW1lJ107CiAgfQoKICAvLyBkZXByZWFjYXRlZAogIGZ1bmN0aW9uIGlzX3RheGFibGUoJHByb2R1Y3RfaWQpCiAgewogICAgICAkdG1wID0gcHJvZHVjdF9vcHM6OmdldF9wcm9kdWN0KCRwcm9kdWN0X2lkKTsKICAgICAgcmV0dXJuICR0bXBbJ3RheGFibGUnXTsKICB9CgogIC8vIGRlcHJlY2F0ZWQKICBmdW5jdGlvbiBpc19zaGlwcGFibGUoJHByb2R1Y3RfaWQpCiAgewogICAgICAvLyB0b2RvOiBhZGQgc29tZXRoaW5nIGhlcmUuCiAgICAgIHJldHVybiBUUlVFOwogIH0KCiAgLy8gZGVwcmVjYXRlZCwgbW92ZSB0byBvcHMKICAvLyBpbnRlcm5hbAogIHB1YmxpYyBmdW5jdGlvbiBVcGRhdGVIaWVyYXJjaHlQb3NpdGlvbnMoKQogIHsKICAgICAgcmV0dXJuIHByb2R1Y3RfdXRpbHM6OnVwZGF0ZV9oaWVyYXJjaHlfcG9zaXRpb25zKCk7CiAgfQoKICAvLyBkZXByZWNhdGVkLCBtb3ZlIHRvIG9wcwogIC8vIGludGVybmFsCiAgcHVibGljIGZ1bmN0aW9uIEJ1aWxkSGllcmFyY2h5TGlzdCgpCiAgewogICAgICAkdG1wID0gaGllcmFyY2h5X29wczo6Z2V0X2ZsYXRfbGlzdChGQUxTRSk7CiAgICAgICRsaXN0ID0gYXJyYXkoJHRoaXMtPkxhbmcoJ25vbmUnKT0+LTEpOwogICAgICBpZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgKSB7CiAgICAgICAgICBmb3JlYWNoKCAkdG1wIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgJGxpc3RbJG9uZVsnbG9uZ19uYW1lJ11dID0gJG9uZVsnaWQnXTsgLy8gYmFja3dhcmRzLgogICAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiAkbGlzdDsKICB9CgogIC8vIGRlcHJlY2F0ZWQsIG1vdmUgdG8gb3BzCiAgZnVuY3Rpb24gQ3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJGlkLCRuYW1lLCRzZWxlY3RlZHZhbHVlKQogIHsKICAgICAgJHRtcCA9ICR0aGlzLT5CdWlsZEhpZXJhcmNoeUxpc3QoKTsKICAgICAgJHRtcCA9IGFycmF5X21lcmdlKGFycmF5KCR0aGlzLT5MYW5nKCdhbnknKT0+JycpLCR0bXApOwogICAgICByZXR1cm4gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCRuYW1lLCR0bXAsLTEsJHNlbGVjdGVkdmFsdWUpOwogIH0KCiAgLy8gZGVwcmVjYXRlZC4uLiB1c2UgZ2V0X3ByZXR0eV91cmwKICBmdW5jdGlvbiBDcmVhdGVQcmV0dHlMaW5rKCRpZCwgJGFjdGlvbiwgJHJldHVybmlkPScnLCAkY29udGVudHM9JycsICRwYXJhbXM9YXJyYXkoKSwKCQkJCQkJCSR3YXJuX21lc3NhZ2U9JycsICRvbmx5aHJlZj1mYWxzZSwgJGlubGluZT1mYWxzZSwgJGFkZHRleHQ9JycsCgkJCQkJCQkkdGFyZ2V0Y29udGVudG9ubHk9ZmFsc2UsICRwcmV0dHl1cmw9JycpCiAgewogICAgICAvLyB0aGlzIG1ldGhvZCwgaWYgb3ZlcnJpZGRlbiwgc2hvdWxkIGNhbGwgQ3JlYXRlTGluayBmb3IgYWxsIHN0dWZmIGl0IGNhbid0CiAgICAgIC8vIHVuZGVyc3RhbmQKICAgICAgJHByb2R1Y3RzID0gJyc7CiAgICAgICRwcmV0dHl1cmwgPSAnJzsKCiAgICAgIGlmKCAhJGlubGluZSAmJiBwcm9kdWN0X3V0aWxzOjpjYW5fZG9fcHJldHR5KCRhY3Rpb24sJHBhcmFtcykgKSB7CiAgICAgICAgICBzd2l0Y2goICRhY3Rpb24gKSB7CiAgICAgICAgICBjYXNlICdkZXRhaWxzJzoKICAgICAgICAgICAgICAkcHJldHR5dXJsID0gcHJvZHVjdF9vcHM6OnByZXR0eV91cmwoJHBhcmFtc1sncHJvZHVjdGlkJ10sJHJldHVybmlkLCRwYXJhbXMpOwogICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgIGNhc2UgJ2RlZmF1bHQnOgogICAgICAgICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydjYXRlZ29yeWlkJ10pICkgewogICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgY2F0ZWdvcnkgaWQgcGFyYW1ldGVyIGlzIHNldCwgdXNlIGJ5Y2F0ZWdvcnkKICAgICAgICAgICAgICAgICAgJHByZXR0eXVybCA9IHNwcmludGYoIiVzL2J5Y2F0ZWdvcnkvJWQvJWQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXJscHJlZml4JywncHJvZHVjdHMnKSwgKGludCkkcGFyYW1zWydjYXRlZ29yeWlkJ10sJHJldHVybmlkKTsKICAgICAgICAgICAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5bmFtZSddKSApICRwcmV0dHl1cmwgLj0gJy8nLm11bmdlX3N0cmluZ190b191cmwoJHBhcmFtc1snY2F0ZWdvcnluYW1lJ10pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlbHNlIGlmKCBpc3NldCgkcGFyYW1zWydoaWVyYXJjaHlpZCddKSApIHsKICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGhpZXJhcmNoeSBpZCBwYXJhbWV0ZXIgaXMgc2V0LCB1c2UgYnloaWVyYXJjaHkKICAgICAgICAgICAgICAgICAgJG5vY2hpbGRyZW4gPSBjZ2VfdXRpbHM6OnRvX2Jvb2woY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnbm9jaGlsZHJlbicsMCkpOwogICAgICAgICAgICAgICAgICBpZiggJG5vY2hpbGRyZW4gKSB7CiAgICAgICAgICAgICAgICAgICAgICAvLyBkbyBub3Qgd2FudCBjaGlsZHJlbiwgbm8gcHJldHR5IHVybC4KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICRwcmV0dHl1cmwgPSBzcHJpbnRmKCIlcy9ieWhpZXJhcmNoeS8lZC8lZCIsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmxwcmVmaXgnLCdwcm9kdWN0cycpLCAoaW50KSRwYXJhbXNbJ2hpZXJhcmNoeWlkJ10sJHJldHVybmlkKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlbHNlIGlmKCBpc3NldCgkcGFyYW1zWydmaWVsZGlkJ10pICkgewogICAgICAgICAgICAgICAgICAvLyBubyBwcmV0dHkgdXJscyBmb3IgdGhpcyBhdG0uCiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UgdXNlIHN1bW1hcnkKICAgICAgICAgICAgICAgICAgJHByZXR0eXVybCA9IHNwcmludGYoIiVzL3N1bW1hcnkvJWQiLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmxwcmVmaXgnLCdwcm9kdWN0cycpLCRyZXR1cm5pZCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgIGNhc2UgJ2NhdGVnb3J5bGlzdCc6CiAgICAgICAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5aWQnXSkgJiYgIWlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5bGlzdGR0bHRlbXBsYXRlJ10pICkgewogICAgICAgICAgICAgICAgICAkcHJldHR5dXJsID0gc3ByaW50ZigiJXMvdmlld2NhdGVnb3J5LyVzLyVzIiwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VybHByZWZpeCcsJ3Byb2R1Y3RzJyksKGludCkkcGFyYW1zWydjYXRlZ29yeWlkJ10sJHJldHVybmlkKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgY2FzZSAnaGllcmFyY2h5JzoKICAgICAgICAgICAgICAkbm9jaGlsZHJlbiA9IGNnZV91dGlsczo6dG9fYm9vbChjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdub2NoaWxkcmVuJywwKSk7CiAgICAgICAgICAgICAgaWYoICEkbm9jaGlsZHJlbiApIHsKICAgICAgICAgICAgICAgICAgJHByZXR0eXVybCA9IHNwcmludGYoJyVzL2hpZXJhcmNoeS8lZCcsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmxwcmVmaXgnLCdwcm9kdWN0cycpLCAoaW50KSRwYXJhbXNbJ3BhcmVudCddKTsKICAgICAgICAgICAgICAgICAgaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdoaWVycGFnZScsLTEpID09IC0xICkgewogICAgICAgICAgICAgICAgICAgICAgLy8gdXNlIHJldHVybmlkIGluIHRoZSBsaW5rLgogICAgICAgICAgICAgICAgICAgICAgJHByZXR0eXVybCAuPSAnLycuJHJldHVybmlkOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJldHR5aGllcnVybHMnLDApICkgewogICAgICAgICAgICAgICAgICAgICAgLy8gYWRkIHRoZSBuYW1lIHRvIHRoZSB1cmwuCiAgICAgICAgICAgICAgICAgICAgICAkaW5mbyA9IGhpZXJhcmNoeV9vcHM6OmdldF9oaWVyYXJjaHlfaW5mbygkcGFyYW1zWydwYXJlbnQnXSk7CiAgICAgICAgICAgICAgICAgICAgICBpZiggaXNfYXJyYXkoJGluZm8pICkgJHByZXR0eXVybCAuPSAnLycubXVuZ2Vfc3RyaW5nX3RvX3VybCgkaW5mb1snbmFtZSddKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICB9IC8vIHN3aXRjaAogICAgICB9CgogICAgICBpZiggaXNzZXQoJHBhcmFtc1sncmV0dXJuaWQnXSkgKSB1bnNldCgkcGFyYW1zWydyZXR1cm5pZCddKTsKICAgICAgJG91dCA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwkYWN0aW9uLCRyZXR1cm5pZCwkY29udGVudHMsJHBhcmFtcywkd2Fybl9tZXNzYWdlLCAkb25seWhyZWYsJGlubGluZSwkYWRkdGV4dCwkdGFyZ2V0Y29udGVudG9ubHksJHByZXR0eXVybCk7CgogICAgICByZXR1cm4gJG91dDsKICB9CgogIC8vIGNyZWF0ZXMgYSBmb3JtLXNhZmUgYWxpYXMgc3RyaW5nCiAgZnVuY3Rpb24gbWFrZV9hbGlhcygkc3RyaW5nLCAkaXNGb3JtPWZhbHNlKQogIHsKICAgICAgJHN0cmluZyA9IG11bmdlX3N0cmluZ190b191cmwoJHN0cmluZyk7CiAgICAgICRzdHJpbmcgPSB0cmltKCRzdHJpbmcsICdfJyk7CiAgICAgIHJldHVybiBzdHJ0b2xvd2VyKCRzdHJpbmcpOwogIH0KCiAgZnVuY3Rpb24gSGFuZGxlVXBsb2FkZWRJbWFnZSgkaWQsJG5hbWUsJGRlc3RkaXIsJiRlcnJvcnMsJHN1YmZpZWxkPScnLCR3bWxvY2F0aW9uPScnLCRvdmVyd3JpdGU9ZmFsc2UpCiAgewogICAgICAkdGhpcy0+X2xvYWRfYWRtaW4oKTsKICAgICAgcmV0dXJuIHByb2R1Y3RzX0hhbmRsZVVwbG9hZGVkSW1hZ2UoJHRoaXMsJGlkLCRuYW1lLCRkZXN0ZGlyLCRlcnJvcnMsJHN1YmZpZWxkLAkkd21sb2NhdGlvbiwkb3ZlcndyaXRlKTsKICB9CgogIC8vIGRlcHJlY2F0ZWQKICBmdW5jdGlvbiBHZXRIaWVyYXJjaHlJbmZvKCRoaWVyYXJjaHlfaWQpCiAgewogICAgICByZXR1cm4gaGllcmFyY2h5X29wczo6Z2V0X2hpZXJhcmNoeV9pbmZvKCRoaWVyYXJjaHlfaWQpOwogIH0KCiAgLy8gZGVwcmVjYXRlZAogIGZ1bmN0aW9uIEdldEhpZXJhcmNoeVBhdGgoJGhpZXJhcmNoeV9pZCkKICB7CiAgICAgIHJldHVybiBoaWVyYXJjaHlfb3BzOjpnZXRfaGllcmFyY2h5X3BhdGgoJGhpZXJhcmNoeV9pZCk7CiAgfQoKICAvLyBkZXByZWNhdGVkCiAgZnVuY3Rpb24gR2V0UHJvZHVjdEhpZXJhcmNoeVBhdGgoJHByb2R1Y3RpZCkKICB7CiAgICAgIHJldHVybiBwcm9kdWN0X29wczo6Z2V0X3Byb2R1Y3RfaGllcmFyY2h5X3BhdGgoJHByb2R1Y3RpZCk7CiAgfQoKICBmdW5jdGlvbiBEZWxldGVQcm9kdWN0KCRwcm9kdWN0aWQsJHVwZGF0ZV9zZWFyY2g9dHJ1ZSkKICB7CiAgICAgICR0aGlzLT5fbG9hZF9hZG1pbigpOwogICAgICByZXR1cm4gcHJvZHVjdHNfRGVsZXRlUHJvZHVjdCgkdGhpcywkcHJvZHVjdGlkLCR1cGRhdGVfc2VhcmNoKTsKICB9CgogIGZ1bmN0aW9uIF9zbWFydHlfcHJvZHVjdHNfZ2V0Y2F0ZWdvcnkoJHBhcmFtcywmJHNtYXJ0eSkKICB7CiAgICAgIGlmKCAhaXNzZXQoJHBhcmFtc1snY2F0ZWdvcnlpZCddKSApIHJldHVybjsKCiAgICAgICRjYXRpZCA9IChpbnQpJHBhcmFtc1snY2F0ZWdvcnlpZCddOwogICAgICAkb2JqID0gJHRoaXMtPkdldENhdGVnb3J5KCRjYXRpZCx0cnVlKTsKCiAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydhc3NpZ24nXSkgKSB7CiAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJHBhcmFtc1snYXNzaWduJ10sJG9iaik7CiAgICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgcmV0dXJuICRvYmo7CiAgfQoKICBmdW5jdGlvbiBfc21hcnR5X3Byb2R1Y3RzX2hpZXJhcmNoeV9icmVhZGNydW1iKCRwYXJhbXMsJiRzbWFydHkpCiAgewogICAgICBpZiggIWlzc2V0KCRwYXJhbXNbJ2hpZXJhcmNoeWlkJ10pICkgcmV0dXJuOwogICAgICAkcmV0dXJuaWQgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaGllcnBhZ2UnKTsKICAgICAgaWYoICRyZXR1cm5pZCA8PSAwICkgJHJldHVybmlkID0gY21zX3V0aWxzOjpnZXRfY3VycmVudF9wYWdlaWQoKTsKICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ3BhZ2VpZCddKSApIHsKICAgICAgICAgICR0bXAgPSAkdGhpcy0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkcGFyYW1zWydwYWdlaWQnXSk7CiAgICAgICAgICBpZiggJHRtcCApICRyZXR1cm5pZCA9ICR0bXA7CiAgICAgIH0KICAgICAgJGRlbGltID0gJyAmcmFxdW87ICc7CiAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydkZWxpbSddKSApICRkZWxpbSA9ICRwYXJhbXNbJ2RlbGltJ107CgogICAgICAkaGllcmlkID0gKGludCkkcGFyYW1zWydoaWVyYXJjaHlpZCddOwogICAgICAkYmMgPSBoaWVyYXJjaHlfb3BzOjpnZXRfYnJlYWRjcnVtYigncHJvZCcsJGhpZXJpZCwkcmV0dXJuaWQsJGRlbGltKTsKCiAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydhc3NpZ24nXSkgKSB7CiAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJHBhcmFtc1snYXNzaWduJ10sJGJjKTsKICAgICAgICAgIHJldHVybjsKICAgICAgfQogICAgICByZXR1cm4gJGJjOwogIH0KCiAgZnVuY3Rpb24gX3NtYXJ0eV9wcm9kdWN0c19oaWVyYXJjaHlfcGFyZW50KCRwYXJhbXMsJiRzbWFydHkpCiAgewogICAgICBpZiggIWlzc2V0KCRwYXJhbXNbJ2hpZXJhcmNoeWlkJ10pICkgcmV0dXJuOwogICAgICAkaGlkID0gKGludCkkcGFyYW1zWydoaWVyYXJjaHlpZCddOwogICAgICAkaW5mbyA9IGhpZXJhcmNoeV9vcHM6OmdldF9oaWVyYXJjaHlfaW5mbygkaGlkKTsKICAgICAgaWYoICFpc19hcnJheSgkaW5mbykgKSByZXR1cm47CgogICAgICBpZiggaXNzZXQoJHBhcmFtc1snYXNzaWduJ10pICkgewogICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCRwYXJhbXNbJ2Fzc2lnbiddLCRpbmZvWydwYXJlbnRfaWQnXSk7CiAgICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgcmV0dXJuICRpbmZvWydwYXJlbnRfaWQnXTsKICB9CgogIGZ1bmN0aW9uIGdldF9wcm9kdWN0X2luZm8oJHByb2R1Y3RfaWQpCiAgewogICAgICAkdG1wID0gcHJvZHVjdF9vcHM6OmdldF9wcm9kdWN0KCRwcm9kdWN0X2lkKTsKICAgICAgaWYoICFpc19hcnJheSgkdG1wKSApIHJldHVybiBGQUxTRTsKICAgICAgcmV0dXJuICR0bXA7CiAgfQp9IC8vIGNsYXNzCgojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/skeleton.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/addcategoryfield.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdhZGRfY2F0ZWdvcnlfZmllbGQnLCRjYXRlZ29yeS5uYW1lKX08L2gzPgoKeyRmb3Jtc3RhcnR9CjxkaXY+eyRoaWRkZW4xfTwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3R5cGUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZmllbGR0eXBlfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnbmFtZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9maWVsZG5hbWV9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHQnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZmllbGRwcm9tcHR9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCd2YWx1ZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAge2lmICRmaWVsZHR5cGUgPT0gJ2ZpbGUnIHx8ICRmaWVsZHR5cGUgPT0gJ2ltYWdlJ30KICAgIHtpZiBpc3NldCgkaW5wdXRfaGlkZGVuKX08ZGl2PnskaW5wdXRfaGlkZGVufTwvZGl2PnsvaWZ9CiAgICB7JG1vZC0+TGFuZygnY3VycmVudF92YWx1ZScpfTombmJzcDt7JGZpZWxkdmFsdWV9CiAgICB7aWYgaXNzZXQoJGZpbGVleGlzdHMpfSZuYnNwO3skbW9kLT5MYW5nKCd2YWxpZCcpfXtlbHNlfTxlbT4oeyRtb2QtPkxhbmcoJ2Vycm9yX2ZpbGVub3Rmb3VuZCcpfSk8L2VtPnsvaWZ9CiAgICA8YnIvPgogIHsvaWZ9CiAgeyRpbnB1dF9maWVsZHZhbHVlfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/add_attrib_set.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdwcm9tcHRfYWRkX2F0dHJpYnNldCcpfTwvaDM+CjxoND57JG1vZC0+TGFuZygncHJvZHVjdCcpfTombmJzcDsgeyRwcm9kdWN0LnByb2R1Y3RfbmFtZX0gKHskcHJvZHVjdC5pZH0pe2lmICRwcm9kdWN0LnNrdSAhPSAnJ308YnIvPnskbW9kLT5MYW5nKCdza3UnKX06Jm5ic3A7eyRwcm9kdWN0LnNrdX17L2lmfTwvaDQ+CnskZm9ybXN0YXJ0fQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfc2V0X25hbWV9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3NldF9uYW1lfTwvcD4KPC9kaXY+Cgp7aWYgY291bnQoJHZhbHVlcyl9Cjxici8+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cjx0YWJsZT4KICA8dGhlYWQ+CiAgICA8dGg+eyRpZHRleHR9PC90aD4KICAgIDx0aD4qeyRrZXl0ZXh0fTwvdGg+CiAgICA8dGg+eyR2YWx1ZXRleHR9PGJyLz57JGluZm9fdmFsdWV0ZXh0fTwvdGg+CiAgICA8dGg+e2lmICRtb2QtPkdldFByZWZlcmVuY2UoJ3NrdXJlcXVpcmVkJyl9KnsvaWZ9eyRtb2QtPkxhbmcoJ3NrdScpfTwvdGg+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAge2ZvcmVhY2ggZnJvbT0kdmFsdWVzIGl0ZW09J29uZXZhbHVlJ30KICA8dHI+CiAgICA8dGQ+eyRvbmV2YWx1ZS0+aWR4fTwvdGQ+CiAgICA8dGQ+eyRvbmV2YWx1ZS0+a2V5fTwvdGQ+CiAgICA8dGQ+eyRvbmV2YWx1ZS0+dmFsdWV9PC90ZD4KICAgIDx0ZD57JG9uZXZhbHVlLT5za3V9PC90ZD4KICA8L3RyPgogIHsvZm9yZWFjaH0KICA8L3Rib2R5Pgo8L3RhYmxlPgo8L2Rpdj4KPGJyLz4Key9pZn0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCIgYm9yZGVyPSIwIj4KICAgICB7JGlucHV0X3VwZGF0ZX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fSZuYnNwO3skY2FuY2VsfTwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_add_hierarchy_item.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPntsaXRlcmFsfQokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogICQoJ2EucG9wdXBfaW1hZ2UnKS5mYW5jeWJveCgpOwp9KTsKey9saXRlcmFsfTwvc2NyaXB0Pgp7aWYgaXNzZXQoJGhpZXJhcmNoeV9pZCl9CjxoMz57JG1vZC0+TGFuZygnZWRpdF9oaWVyYXJjaHlfaXRlbScpfTwvaDM+CntlbHNlfQo8aDM+eyRtb2QtPkxhbmcoJ2FkZF9oaWVyYXJjaHlfaXRlbScpfTwvaDM+CnsvaWZ9Cgp7JGZvcm1zdGFydH0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCduYW1lJyl9PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfW5hbWUiIHZhbHVlPSJ7JG5hbWV9IiBzaXplPSI1MCIgbWF4bGVuZ3RoPSIyNTUiPjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncGFyZW50Jyl9PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRhY3Rpb25pZCwncGFyZW50JywkaGllcmFyY2h5X2l0ZW1zLCctMScsJHBhcmVudCl9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdkZXNjcmlwdGlvbicpfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JG1vZC0+Q3JlYXRlVGV4dEFyZWEoJ3RydWUnLCRhY3Rpb25pZCwkZGVzY3JpcHRpb24sJ2Rlc2NyaXB0aW9uJyl9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdpbWFnZXRleHQnKX08L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAge2lmIGlzc2V0KCRpbWFnZSkgJiYgIWVtcHR5KCRpbWFnZSkgJiYgJGltYWdlICE9ICcwJ317JG1vZC0+TGFuZygnY3VycmVudF92YWx1ZScpfTombmJzcDs8YSBjbGFzcz0icG9wdXBfaW1hZ2UiIGhyZWY9InskaW1hZ2VfdXJsfSI+eyRpbWFnZX08L2E+PGJyLz4KICAgICAgIHskbW9kLT5MYW5nKCdkZWxldGUnKX06PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JG1vZC0+R2V0QWN0aW9uSWQoKX1kZWxldGVpbWciIHZhbHVlPSIxIj48YnIvPgogICAgIHsvaWZ9CiAgICAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9InskYWN0aW9uaWR9ZmlsZSIgc2l6ZT0iNTAiIG1heGxlbmd0aD0iMjU1Ij4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2V4dHJhMScpfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1leHRyYTEiIHZhbHVlPSJ7JGV4dHJhMX0iIHNpemU9IjUwIiBtYXhsZW5ndGg9IjI1NSI+PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdleHRyYTInKX08L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9ZXh0cmEyIiB2YWx1ZT0ieyRleHRyYTJ9IiBzaXplPSI1MCIgbWF4bGVuZ3RoPSIyNTUiPjwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSI+Jm5ic3A7PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYW5jZWwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9Ij48L3A+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_copyattribsets.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdjb3B5X2F0dHJpYl9zZXRzJyl9PC9oMz4KPHA+eyRtb2QtPkxhbmcoJ2luZm9fY29weV9hdHRyaWJzZXRzJyl9PC9wPgp7JGZvcm1zdGFydH0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdzb3VyY2UnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfXNyY19jb21waWQiPgogICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRwcm9kdWN0X2xpc3R9CiAgICA8L3NlbGVjdD4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdkZXN0aW5hdGlvbicpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7JGRlc3RfcHJvZHVjdF9uYW1lfQogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9IiBvbmNsaWNrPSJyZXR1cm4gY29uZmlybSgneyRtb2QtPkxhbmcoJ2NvbmZpcm1fY29weWF0dHJpYnV0ZXMnKX0nKTsiLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_attribs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X29wdGlvbnMnKX08L2gzPgo8aDQ+eyRwcm9kdWN0LnByb2R1Y3RfbmFtZX0mbmJzcDsoeyRwcm9kdWN0LmlkfSk8L2g0PgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogIC8vIG1vdmUgdGhlIHNrZWwgcm93IHRvIGEgaGlkZGVuIGRpdi4KICB2YXIgZSA9ICQoJzxkaXYgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij48L2Rpdj4nKTsKICAkKCdib2R5JykuYXBwZW5kKGUpOwogIHZhciBza2VsID0gJCgnI3NrZWxfcm93Jyk7CiAgc2tlbC5yZW1vdmUoKTsKICBlLmFwcGVuZChza2VsKTsKCiAgJCgnI2F0dHJpYl90YWJsZSA+IHRib2R5Jykuc29ydGFibGUoewogICAgY3Vyc29yOiAnbW92ZScKICB9KTsKICAkKCcjYWRkX29wdGlvbicpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICB2YXIgZTIgPSBza2VsLmNsb25lKCk7CiAgICBlMi5yZW1vdmVBdHRyKCdpZCcpLnNob3coKTsKICAgICQoJyNhdHRyaWJfdGFibGUgPiB0Ym9keScpLmFwcGVuZChlMik7CiAgfSkKICAkKCcuY29weV9vcHRpb24nKS5saXZlKCdjbGljaycsZnVuY3Rpb24oKXsKICAgIC8vIGZpbmQgdGhlIHByZWNlZGluZyByb3cuLiBhbmQgY29weSBpdC4KICAgIHZhciB0ciA9ICQodGhpcykuY2xvc2VzdCgndHInKTsKICAgIHZhciBjbG9uZSA9IHRyLmNsb25lKCk7CiAgICB0ci5hZnRlcihjbG9uZSk7CiAgfSk7CiAgJCgnLmRlbF9vcHRpb24nKS5saXZlKCdjbGljaycsZnVuY3Rpb24oKXsKICAgIHZhciB0YmwgPSAkKHRoaXMpLmNsb3Nlc3QoJ3RhYmxlJyk7CiAgICB2YXIgbGVuID0gJCgndGJvZHkgdHInLHRibCkubGVuZ3RoOwogICAgJCh0aGlzKS5jbG9zZXN0KCd0cicpLnJlbW92ZSgpOwogIH0pOwogICQoJy5lZGl0X25vdGVzJykubGl2ZSgnY2xpY2snLGZ1bmN0aW9uKCl7CiAgICB2YXIgYSA9ICQodGhpcykuY2xvc2VzdCgndHInKTsKICAgIHZhciBiID0gJCgnLm5vdGVzJyxhKTsKICAgIHZhciBpZHggPSBhLnByZXZBbGwoKS5sZW5ndGg7CiAgICAkKCcjbm90ZXNfaWR4JykudmFsKGlkeCk7CiAgICAkKCcjbm90ZXNfdHh0JykudmFsKGIudmFsKCkpOwogICAgJCgnI25vdGVzX2RpYWxvZycpLmRpYWxvZyh7CiAgICAgIG1vZGFsOiB0cnVlLAogICAgICB3aWR0aDogJ2F1dG8nLAogICAgICBidXR0b25zOiBbCiAgICAgICAgeyB0ZXh0OiAieyRtb2QtPkxhbmcoJ29rJyl9IiwKICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbigpewoJICAgIHZhciB0eHQgPSAkKCcjbm90ZXNfdHh0JykudmFsKCk7CgkgICAgdmFyIGlkeCA9ICQoJyNub3Rlc19pZHgnKS52YWwoKTsKICAJICAgICQoJyNhdHRyaWJfdGFibGUgdGJvZHkgdHInKS5lcShpZHgpLmZpbmQoJy5ub3RlcycpLnZhbCh0eHQpOwogICAgICAgICAgICAkKHRoaXMpLmRpYWxvZygnY2xvc2UnKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIF0KICAgIH0pOwogIH0pOwoKICAkKGRvY3VtZW50KS5vbignY2xpY2snLCcjc3VibWl0JyxmdW5jdGlvbigpewogICAgLy8gZG9uJ3QgcmVtb3ZlIHRoZSByZXF1aXJlZCBhdHRyaWJ1dGVzLgogICAgdmFyIGwgPSAkKCcjYXR0cmliX3RhYmxlIHRib2R5IHRyJykubGVuZ3RoOwogICAgaWYoIGwgPT0gMSApIHsKICAgICAgLy8gaWYgdGhlIHRleHQgaXMgZW1wdHksIHNrdSBpcyBlbXB0eSwgYW5kIHRoZSBhZGp1c3RtZW50IGFuZCBxb2ggYXJlIDAKICAgICAgLy8gdGhlIHdlIHdpbGwgZGVsZXRlIHRoZSByb3cgYW5kIHRoZXJlIHdpbGwgYmUgbm8gb3B0aW9ucwogICAgICAvLyBvdGhlcndpc2UsIHJlcXVpcmUgdHdvIHJvd3MuCiAgICAgIHZhciByb3cgPSAkKCcjYXR0cmliX3RhYmxlID4gdGJvZHkgPiB0cjpmaXJzdCcpOwogICAgICB2YXIgc2t1ID0gJCgnaW5wdXQub3B0aW9uX3NrdScscm93KS52YWwoKTsKICAgICAgdmFyIHR4dCA9ICQoJ2lucHV0Lm9wdGlvbl90ZXh0Jyxyb3cpLnZhbCgpOwogICAgICB2YXIgYWRqID0gJCgnaW5wdXQub3B0aW9uX2Fkaicscm93KS52YWwoKTsKICAgICAgdmFyIHFvaCA9ICQoJ2lucHV0Lm9wdGlvbl9xb2gnLHJvdykudmFsKCk7CiAgICAgIGlmKCBza3UgPT0gJycgJiYgdHh0ID09ICcnICYmIChhZGogPT0gJycgfHwgYWRqID09ICcwJykgJiYgKHFvaCA9PSAnJyB8fCBxb2ggPT0gJzAnKSApIHsKICAgICAgICAvLyBlbXB0eSByb3cKCXJvdy5yZW1vdmUoKTsKICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICBhbGVydCgneyRtb2QtPkxhbmcoJ2Vycm9yX25lZWR0d29yb3dzJyl9Jyk7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICB9CiAgfSk7CgogICQoZG9jdW1lbnQpLm9uKCdjbGljaycsJyNjYW5jZWwnLGZ1bmN0aW9uKCl7CiAgICAvLyBjYW5jZWwsIHJlbW92ZSByZXF1aXJlZCBhdHRyaWJ1dGVzCiAgICAkKCc6aW5wdXQnKS5yZW1vdmVBdHRyKCdyZXF1aXJlZCcpOwogIH0pOwoKICAkKGRvY3VtZW50KS5vbignY2xpY2snLCcjY29weWF0dHJpYnMnLGZ1bmN0aW9uKCl7CiAgICAvLyBjb3B5IGZyb20gc29tZXRoaW5nIGVsc2UuCiAgICBpZiggY29uZmlybSgneyRtb2QtPkxhbmcoJ2NvbmZpcm1fY29weW9wdGlvbnMnKX0nKSApIHsKICAgICAgJCgnOmlucHV0JykucmVtb3ZlQXR0cigncmVxdWlyZWQnKTsKICAgICAgcmV0dXJuIHRydWU7CiAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfSk7Cn0pOwo8L3NjcmlwdD4KCjxkaXYgaWQ9Im5vdGVzX2RpYWxvZyIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2VkaXRfb3B0aW9uX25vdGVzJyl9Ij4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnbm90ZXMnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJub3Rlc19pZHgiIHZhbHVlPSIiLz4KICAgICAgPHRleHRhcmVhIGlkPSJub3Rlc190eHQiIHJvd3M9IjUiIGNvbHVtbnM9IjQwIj48L3RleHRhcmVhPgogICAgPC9wPgogIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iIHN0eWxlPSJkaXNwbGF5OiBibG9jazsiPnskbW9kLT5MYW5nKCdpbmZvX2VkaXRfcHJvZHVjdF9vcHRpb25zJyl9PC9kaXY+CjxkaXYgaWQ9Indhcm5fZWRpdF9wcm9kdWN0X29wdGlvbnMiIGNsYXNzPSJwYWdld2FybmluZyIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyI+eyRtb2QtPkxhbmcoJ3dhcm5fZWRpdF9wcm9kdWN0X29wdGlvbnMnKX08L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIj4KPGEgaWQ9ImFkZF9vcHRpb24iPntjZ2ltYWdlIGltYWdlPSdpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZicgYWx0PSRtb2QtPkxhbmcoJ2FkZG9wdGlvbicpIGNsYXNzPSdzeXN0ZW1pY29uJ30geyRtb2QtPkxhbmcoJ2FkZG9wdGlvbicpfTwvYT4KPC9kaXY+CnskZm9ybXN0YXJ0fQo8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSIgY2VsbHNwYWNpbmc9IjAiIGlkPSJhdHRyaWJfdGFibGUiPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPjxzcGFuIHRpdGxlPSJ7JG1vZC0+TGFuZygndGl0bGVfc2t1Jyl9Ij57aWYgJHNrdV9pc19yZXF1aXJlZH0qey9pZn17JG1vZC0+TGFuZygnc2t1Jyl9PC9zcGFuPjwvdGg+CiAgICAgIDx0aD48c3BhbiB0aXRsZT0ieyRtb2QtPkxhbmcoJ3RpdGxlX2F0dHJpYnV0ZV90ZXh0Jyl9Ij4qeyRtb2QtPkxhbmcoJ2F0dHJpYl90ZXh0Jyl9PC9zcGFuPjwvdGg+CiAgICAgIDx0aD48c3BhbiB0aXRsZT0ieyRtb2QtPkxhbmcoJ3RpdGxlX2FkanVzdG1lbnQnKX0iPnskbW9kLT5MYW5nKCdwcmljZV9hZGp1c3RtZW50Jyl9PC9zcGFuPjwvdGg+CiAgICAgIDx0aD48c3BhbiB0aXRsZT0ieyRtb2QtPkxhbmcoJ3RpdGxlX3FvaCcpfSI+eyRtb2QtPkxhbmcoJ3F1YW50aXR5X29uX2hhbmQnKX08L3NwYW4+PC90aD4KICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+PC90aD4KICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+PC90aD4KICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+PC90aD4KICAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAgICA8dHIgaWQ9InNrZWxfcm93IiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgogICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJvcHRpb25fc2t1IiBuYW1lPSJ7JGFjdGlvbmlkfXNrdVtdIiB2YWx1ZT0ieyRza2VsX3Jvdy5za3V9IiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIyNSIgIHBsYWNlaG9sZGVyPSJ7JG1vZC0+TGFuZygnc2t1Jyl9IiB7aWYgJHNrdV9pc19yZXF1aXJlZH1yZXF1aXJlZD0icmVxdWlyZWQiey9pZn0vPjwvdGQ+CiAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9Im9wdGlvbl90ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXRleHRbXSIgdmFsdWU9Inskc2tlbF9yb3cudGV4dH0iIHNpemU9IjgwIiBtYXhsZW5ndGg9IjI1NSIgcmVxdWlyZWQ9InJlcXVpcmVkIiBwbGFjZWhvbGRlcj0ieyRtb2QtPkxhbmcoJ3BoX29wdGlvbnRleHQnKX0iLz48L3RkPgogICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJvcHRpb25fYWRqIiBuYW1lPSJ7JGFjdGlvbmlkfWFkanVzdG1lbnRbXSIgdmFsdWU9Inskc2tlbF9yb3cuYWRqdXN0bWVudH0iIHNpemU9IjEwIiBtYXhsZW5ndGg9IjEwIi8+PC90ZD4KICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0ib3B0aW9uX3FvaCIgbmFtZT0ieyRhY3Rpb25pZH1xb2hbXSIgdmFsdWU9Inskc2tlbF9yb3cucW9ofSIgc2l6ZT0iNSIgbWF4bGVuZ3RoPSI1IiB2YWx1ZT0iMCIvPjwvdGQ+CiAgICAgIDx0ZD48aW5wdXQgdHlwZT0iaGlkZGVuIiBjbGFzcz0ibm90ZXMiIG5hbWU9InskYWN0aW9uaWR9bm90ZXNbXSIgdmFsdWU9Inskc2tlbF9yb3cubm90ZXN9Ii8+e2NnaW1hZ2UgaW1hZ2U9J2ljb25zL3N5c3RlbS9lZGl0LmdpZicgY2xhc3M9ImVkaXRfbm90ZXMiIGFsdD0kbW9kLT5MYW5nKCdlZGl0X25vdGVzJyl9PC90ZD4KICAgICAgPHRkPntjZ2ltYWdlIGltYWdlPSdpY29ucy9zeXN0ZW0vY29weS5naWYnIGNsYXNzPSJjb3B5X29wdGlvbiIgYWx0PSRtb2QtPkxhbmcoJ2NvcHlfYXR0cmlidXRlJyl9CiAgICAgIDx0ZD57Y2dpbWFnZSBpbWFnZT0naWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnIGNsYXNzPSJkZWxfb3B0aW9uIiBhbHQ9JG1vZC0+TGFuZygnZGVsZXRlX2F0dHJpYnV0ZScpfQogICAgPC90cj4KCiAge2ZvcmVhY2ggZnJvbT0kYXR0cmlicyBuYW1lPSdhdHRyaWInIGl0ZW09J2F0dHJpYid9CiAgICA8dHIgaWQ9ImF0dHJpYl97JGF0dHJpYi5pZH0iPgogICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJvcHRpb25fc2t1IiBuYW1lPSJ7JGFjdGlvbmlkfXNrdVtdIiB2YWx1ZT0ieyRhdHRyaWIuc2t1fSIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMjUiICBwbGFjZWhvbGRlcj0ieyRtb2QtPkxhbmcoJ3NrdScpfSIge2lmICRza3VfaXNfcmVxdWlyZWR9cmVxdWlyZWQ9InJlcXVpcmVkInsvaWZ9Lz48L3RkPgogICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJvcHRpb25fdGV4dCIgbmFtZT0ieyRhY3Rpb25pZH10ZXh0W10iIHZhbHVlPSJ7JGF0dHJpYi50ZXh0fSIgc2l6ZT0iODAiIG1heGxlbmd0aD0iMjU1IiByZXF1aXJlZD0icmVxdWlyZWQiIHBsYWNlaG9sZGVyPSJ7JG1vZC0+TGFuZygncGhfb3B0aW9udGV4dCcpfSIvPjwvdGQ+CiAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9Im9wdGlvbl9hZGoiIG5hbWU9InskYWN0aW9uaWR9YWRqdXN0bWVudFtdIiB2YWx1ZT0ieyRhdHRyaWIuYWRqdXN0bWVudH0iIHNpemU9IjEwIiBtYXhsZW5ndGg9IjEwIi8+PC90ZD4KICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0ib3B0aW9uX3FvaCIgbmFtZT0ieyRhY3Rpb25pZH1xb2hbXSIgdmFsdWU9InskYXR0cmliLnFvaH0iIHNpemU9IjUiIG1heGxlbmd0aD0iNSIvPjwvdGQ+CiAgICAgIDx0ZD48aW5wdXQgdHlwZT0iaGlkZGVuIiBjbGFzcz0ibm90ZXMiIG5hbWU9InskYWN0aW9uaWR9bm90ZXNbXSIgdmFsdWU9InskYXR0cmliLm5vdGVzfSIvPntjZ2ltYWdlIGltYWdlPSdpY29ucy9zeXN0ZW0vZWRpdC5naWYnIGNsYXNzPSJlZGl0X25vdGVzIiBhbHQ9JG1vZC0+TGFuZygnZWRpdF9ub3RlcycpfTwvdGQ+CiAgICAgIDx0ZD57Y2dpbWFnZSBpbWFnZT0naWNvbnMvc3lzdGVtL2NvcHkuZ2lmJyBjbGFzcz0iY29weV9vcHRpb24iIGFsdD0kbW9kLT5MYW5nKCdjb3B5X2F0dHJpYnV0ZScpfQogICAgICA8dGQ+e2NnaW1hZ2UgaW1hZ2U9J2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJyBjbGFzcz0iZGVsX29wdGlvbiIgYWx0PSRtb2QtPkxhbmcoJ2RlbGV0ZV9hdHRyaWJ1dGUnKX0KICAgIDwvdHI+CiAgey9mb3JlYWNofQogIDwvdGJvZHk+CjwvdGFibGU+CjxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIj4Ke2lmIGlzc2V0KCRwcm9kdWN0c193aXRoX2F0dHJpYnMpfQogIDxsYWJlbCBmb3I9ImNvcHlfYXR0cmlic19mcm9tIj57JG1vZC0+TGFuZygnY29weV9vcHRpb25zX2Zyb20nKX06PC9sYWJlbD4mbmJzcDsKICA8c2VsZWN0IGlkPSJjb3B5X2F0dHJpYnNfZnJvbSIgbmFtZT0ieyRhY3Rpb25pZH1jb3B5ZnJvbSI+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHByb2R1Y3RzX3dpdGhfYXR0cmlic30KICA8L3NlbGVjdD4mbmJzcDsKICA8aW5wdXQgdHlwZT0ic3VibWl0IiBpZD0iY29weWF0dHJpYnMiIG5hbWU9InskYWN0aW9uaWR9Y29weWF0dHJpYnMiIHZhbHVlPSJ7JG1vZC0+TGFuZygnb2snKX0iLz4Key9pZn0KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIGlkPSJzdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgaWQ9ImNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iLz4KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_hierarchy_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGNvdW50KCRlbnRyaWVzKX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSIgY2VsbHNwYWNpbmc9IjAiPgogICAgPHRoZWFkPgogICAgICA8dHI+CiAgICAgICAgPHRoIHdpZHRoPSIyJSI+eyRtb2QtPkxhbmcoJ2lkJyl9PC90aD4KICAgICAgICA8dGg+eyRtb2QtPkxhbmcoJ2hpZXJhcmNoeScpfTwvdGg+CiAgICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KICAgICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgICA8L3RyPgogICAgPC90aGVhZD4KICAgIDx0Ym9keT4KICAgIHtmb3JlYWNoIGZyb209JGVudHJpZXMgaXRlbT0nb25lZW50cnknfQogICAgICB7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIiIGFzc2lnbj0ncm93Y2xhc3MnfQogICAgICA8dHIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPgoJPHRkPnskb25lZW50cnkuaWR9PC90ZD4KICAgICAgICA8dGQ+e2NncmVwZWF0IHRleHQ9JyZuYnNwOyZndDsmbmJzcDsnIGNvdW50PSRvbmVlbnRyeS5kZXB0aH08YSBocmVmPSJ7JG9uZWVudHJ5LmVkaXRfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0X2hpZXJhcmNoeV9pdGVtJyl9Ij57JG9uZWVudHJ5Lm5hbWV9PC9hPjwvdGQ+CiAgICAgICAgPHRkPnskb25lZW50cnkuZWRpdF9saW5rfTwvdGQ+CiAgICAgICAgPHRkPnskb25lZW50cnkuZGVsZXRlX2xpbmt9PC90ZD4KICAgICAgPC90cj4KICAgIHsvZm9yZWFjaH0KICAgIDwvdGJvZHk+CiAgPC90YWJsZT4KPC9kaXY+CnsvaWZ9Cgo8cCBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICB7JGFkZF9oaWVyYXJjaHlfbGlua30mbmJzcDt7JHJlb3JkZXJfbGlua3xkZWZhdWx0OicnfQo8L3A+]]></data>
	</file>
	<file>
	  <filename>/templates/admin_reorder_hierarchy.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpmdW5jdGlvbiBwYXJzZVRyZWUodWwpIHsKCXZhciB0YWdzID0gW107Cgl1bC5jaGlsZHJlbigibGkiKS5lYWNoKGZ1bmN0aW9uKCl7CgkJdmFyIHN1YnRyZWUgPQkkKHRoaXMpLmNoaWxkcmVuKCJ1bCIpOwoJCWlmKHN1YnRyZWUuc2l6ZSgpID4gMCkKCQkJdGFncy5wdXNoKFskKHRoaXMpLmF0dHIoImlkIiksIHBhcnNlVHJlZShzdWJ0cmVlKV0pOwoJCWVsc2UKCQkJdGFncy5wdXNoKCQodGhpcykuYXR0cigiaWQiKSk7Cgl9KTsKCXJldHVybiB0YWdzOwp9CgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKICAkKCd1bC5zb3J0YWJsZScpLm5lc3RlZFNvcnRhYmxlKHsKICAgICBkaXNhYmxlTmVzdGluZzogJ25vLW5lc3QnLAogICAgIGZvcmNlUGxhY2Vob2xkZXJTaXplOiB0cnVlLAogICAgIGhhbmRsZTogJ2RpdicsCiAgICAgaXRlbXM6ICdsaScsCiAgICAgb3BhY2l0eTogNiwKICAgICBwbGFjZWhvbGRlcjogJ3BsYWNlaG9sZGVyJywKICAgICB0YWJTaXplOiAzNSwKICAgICB0b2xlcmFuY2U6ICdwb2ludGVyJywKICAgICBsaXN0VHlwZTogJ3VsJywKICAgICB0b2xlcmFuY2VFbGVtZW50OiAnPiBkaXYnCiAgfSk7CgogICQoJyNzdWJtaXRfYnRuJykubGl2ZSgnY2xpY2snLGZ1bmN0aW9uKCl7CiAgICAgdmFyIHRyZWUgPSAkLnRvSlNPTihwYXJzZVRyZWUoJCgndWwuc29ydGFibGUnKSkpOwogICAgICQoJyNvcmRlcmRhdGEnKS52YWwodHJlZSk7CiAgfSk7Cgp9KTsKPC9zY3JpcHQ+Cgp7ZnVuY3Rpb24gZHJhd19oaWVyYXJjaHkgZGVwdGg9MH0KICA8dWwgY2xhc3M9InNvcnRhYmxlTGlzdCB7aWYgJGRlcHRoPT0wfXNvcnRhYmxley9pZn0iPgogIHtmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09J2l0ZW0nfQogICAge2lmICRpdGVtLnBhcmVudF9pZCA9PSAtMX0KICAgICAge2Fzc2lnbiB2YXI9ImRlcHRoIiB2YWx1ZT0iMCJ9CiAgICB7L2lmfQogICAgPGxpIGlkPSJoaWVyX3skaXRlbS5pZH0iPjxkaXYgY2xhc3M9ImxhYmVsIj48c3Bhbj4mbmJzcDs8L3NwYW4+eyRpdGVtLm5hbWV9PC9kaXY+CiAgICAgIHtpZiBpc3NldCgkaXRlbS5jaGlsZHJlbil9CiAgICAgICAge2RyYXdfaGllcmFyY2h5IGRlcHRoPSRkZXB0aCsxIGl0ZW1zPSRpdGVtLmNoaWxkcmVufQogICAgICB7L2lmfQogICAgPC9saT4KICB7L2ZvcmVhY2h9CiAgPC91bD4Key9mdW5jdGlvbn0KCjxoMz57JG1vZC0+TGFuZygncmVvcmRlcl9oaWVyYXJjaHknKX08L2gzPgo8ZGl2IGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2luZm9fcmVvcmRlcl9jb250ZW50Jyl9PC9kaXY+CnskZm9ybXN0YXJ0fQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfW9yZGVyZGF0YSIgdmFsdWU9IiIgaWQ9Im9yZGVyZGF0YSIvPgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8ZGl2IGNsYXNzPSJyZW9yZGVyLXBhZ2VzIHBhZ2VpbnB1dCI+CiAgICB7ZHJhd19oaWVyYXJjaHkgaXRlbXM9JHRyZWV9CiAgPC9kaXY+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCBpZD0ic3VibWl0X2J0biIgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0K]]></data>
	</file>
	<file>
	  <filename>/templates/categorylist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAkKKn0KCntpZiAkaXRlbWNvdW50ID4gMH0KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD57JG1vZC0+TGFuZygnY2F0ZWdvcnknKX08L3RoPgoJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRib2R5Pgp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQoJCTx0ciBjbGFzcz0ieyRlbnRyeS0+cm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skZW50cnktPnJvd2NsYXNzfWhvdmVyJzsiIG9ubW91c2VvdXQ9InRoaXMuY2xhc3NOYW1lPSd7JGVudHJ5LT5yb3djbGFzc30nOyI+CgkJCTx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5maWVsZHNsaW5rfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5jb3B5bGlua308L3RkPgoJCQk8dGQ+eyRlbnRyeS0+ZWRpdGxpbmt9PC90ZD4KCQkJPHRkPnskZW50cnktPmRlbGV0ZWxpbmt9PC90ZD4KCQk8L3RyPgp7L2ZvcmVhY2h9Cgk8L3Rib2R5Pgo8L3RhYmxlPgp7L2lmfQoKPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPjxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRhZGRsaW5rfTwvcD48L2Rpdj4K]]></data>
	</file>
	<file>
	  <filename>/templates/copycategory.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdjb3B5X2NhdGVnb3J5Jyl9OiB7JGNhdGVnb3J5Lm5hbWV9PC9oMz4KeyRzdGFydGZvcm19CjxkaXY+eyRoaWRkZW59PC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnbmV3X2NhdGVnb3J5X25hbWUnKX08L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dG5hbWV9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH17JGNhbmNlbH08L3A+CjwvZGl2Pgp7JGVuZGZvcm19]]></data>
	</file>
	<file>
	  <filename>/templates/dflt_templates.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGluZm9fZGZsdF90ZW1wbGF0ZX08L2Rpdj4KCjxmaWVsZHNldD4KICA8bGVnZW5kPnskbGVnZW5kX3N1bW1hcnl0ZW1wbGF0ZX08L2xlZ2VuZD4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9zdW1tYXJ5dGVtcGxhdGV9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc3VtbWFyeXRlbXBsYXRlfTwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdF9zdW1tYXJ5dGVtcGxhdGV9Jm5ic3A7eyRyZXNldF9zdW1tYXJ5dGVtcGxhdGV9PC9wPgogIDwvZGl2Pgo8L2ZpZWxkc2V0PgoKPGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRsZWdlbmRfZGV0YWlsdGVtcGxhdGV9PC9sZWdlbmQ+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfZGV0YWlsdGVtcGxhdGV9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZGV0YWlsdGVtcGxhdGV9PC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0X2RldGFpbHRlbXBsYXRlfSZuYnNwO3skcmVzZXRfZGV0YWlsdGVtcGxhdGV9PC9wPgogIDwvZGl2Pgo8L2ZpZWxkc2V0PgoKPGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRsZWdlbmRfYnloaWVyYXJjaHl0ZW1wbGF0ZX08L2xlZ2VuZD4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9ieWhpZXJhcmNoeXRlbXBsYXRlfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2J5aGllcmFyY2h5dGVtcGxhdGV9PC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0X2J5aGllcmFyY2h5dGVtcGxhdGV9Jm5ic3A7eyRyZXNldF9ieWhpZXJhcmNoeXRlbXBsYXRlfTwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4KCjxmaWVsZHNldD4KICA8bGVnZW5kPnskbGVnZW5kX2NhdGVnb3J5bGlzdHRlbXBsYXRlfTwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2NhdGVnb3J5bGlzdHRlbXBsYXRlfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2NhdGVnb3J5bGlzdHRlbXBsYXRlfTwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdF9jYXRlZ29yeWxpc3R0ZW1wbGF0ZX0mbmJzcDt7JHJlc2V0X2NhdGVnb3J5bGlzdHRlbXBsYXRlfTwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4KCjxmaWVsZHNldD4KICA8bGVnZW5kPnskbGVnZW5kX3NlYXJjaHRlbXBsYXRlfTwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3NlYXJjaHRlbXBsYXRlfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3NlYXJjaHRlbXBsYXRlfTwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdF9zZWFyY2h0ZW1wbGF0ZX0mbmJzcDt7JHJlc2V0X3NlYXJjaHRlbXBsYXRlfTwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4KCnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/editcategory.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAoqfQoKe2lmIGVtcHR5KCRoaWRkZW4pfQo8aDM+eyRtb2QtPkxhbmcoJ2FkZGNhdGVnb3J5Jyl9PC9oMz4Ke2Vsc2V9CjxoMz57JG1vZC0+TGFuZygnZWRpdF9jYXRlZ29yeScpfTwvaDM+CnsvaWZ9Cgp7JHN0YXJ0Zm9ybX0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4qeyRtb2QtPkxhbmcoJ25hbWUnKX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJCSAgPGlucHV0IG5hbWU9InskYWN0aW9uaWR9bmFtZSIgdmFsdWU9InskbmFtZX0iIHNpemU9IjgwIiBtYXhsZW5ndGg9IjI1NSIvPgoJCTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij4KCQkgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgoJCSAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYW5jZWwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9Ii8+CgkJPC9wPgoJPC9kaXY+CnskZW5kZm9ybX0K]]></data>
	</file>
	<file>
	  <filename>/templates/editcategoryfields.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X2NhdGVnb3J5X2ZpZWxkcycsJGNhdGVnb3J5Lm5hbWUpfTwvaDM+CntpZiBpc3NldCgkZmllbGRzKSAmJiBjb3VudCgkZmllbGRzKX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD57JG1vZC0+TGFuZygnbmFtZScpfTwvdGg+CiAgICAgIDx0aD57JG1vZC0+TGFuZygndHlwZScpfTwvdGg+CiAgICAgIDx0aD57JG1vZC0+TGFuZygndmFsdWUnKX08L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICB7Zm9yZWFjaCAkZmllbGRzIGFzICRvbmVmaWVsZCB9CiAgICAge2N5Y2xlIHZhbHVlcz0icm93MSxyb3cyIiBhc3NpZ249J3Jvd2NsYXNzJ30KICAgICA8dHIgY2xhc3M9Inskcm93Y2xhc3N9Ij4KICAgICAgIHttb2R1bGVfYWN0aW9uX2xpbmsgYWN0aW9uPWFkZGNhdGVnb3J5ZmllbGQgY2F0aWQ9JGNhdGVnb3J5LmlkIGZsZG5hbWU9JG9uZWZpZWxkLmZpZWxkX25hbWUgdXJsb25seT0xIGFzc2lnbj0nZWRpdF91cmwnfQogICAgICAge21vZHVsZV9hY3Rpb25fbGluayBhY3Rpb249ZGVsZXRlY2F0ZWdvcnlmaWVsZCBjYXRpZD0kY2F0ZWdvcnkuaWQgZmxkbmFtZT0kb25lZmllbGQuZmllbGRfbmFtZSB1cmxvbmx5PTEgYXNzaWduPSdkZWxfdXJsJ30KICAgICAgIDx0ZD48YSBocmVmPSJ7JGVkaXRfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0Jyl9Ij57JG9uZWZpZWxkLmZpZWxkX25hbWV9PC9hPjwvdGQ+CiAgICAgICA8dGQ+eyRvbmVmaWVsZC5maWVsZF90eXBlfTwvdGQ+CiAgICAgICA8dGQ+eyRvbmVmaWVsZC5maWVsZF92YWx1ZXxzdHJpcF90YWdzfHN1bW1hcml6ZToxMH08L3RkPgogICAgICAgPHRkPgogICAgICAgICB7aWYgJG9uZWZpZWxkLmZpZWxkX29yZGVyID4gMX0KCSAgIDxhIGhyZWY9Inttb2R1bGVfYWN0aW9uX2xpbmsgYWN0aW9uPW1vdmVjYXRlZ29yeWZpZWxkIGRpcj11cCBjYXRpZD0kY2F0ZWdvcnkuaWQgZmxkbmFtZT0kb25lZmllbGQuZmllbGRfbmFtZSB1cmxvbmx5PTF9Ij57Y2dpbWFnZSBpbWFnZT0naWNvbnMvc3lzdGVtL3NvcnRfdXAuZ2lmJyBhbHQ9JG1vZC0+TGFuZygnbW92ZV91cCcpfTwvYT4KCSB7L2lmfQogICAgICAgPC90ZD4KICAgICAgIDx0ZD4KICAgICAgICAge2lmICEkb25lZmllbGRAbGFzdH0KCSAgIDxhIGhyZWY9Inttb2R1bGVfYWN0aW9uX2xpbmsgYWN0aW9uPW1vdmVjYXRlZ29yeWZpZWxkIGRpcj1kb3duIGNhdGlkPSRjYXRlZ29yeS5pZCBmbGRuYW1lPSRvbmVmaWVsZC5maWVsZF9uYW1lIHVybG9ubHk9MX0iPntjZ2ltYWdlIGltYWdlPSdpY29ucy9zeXN0ZW0vc29ydF9kb3duLmdpZicgYWx0PSRtb2QtPkxhbmcoJ21vdmVfZG93bicpfTwvYT4KCSB7L2lmfQogICAgICAgPC90ZD4KICAgICAgIDx0ZD48YSBocmVmPSJ7JGVkaXRfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0Jyl9Ij57Y2dpbWFnZSBpbWFnZT0naWNvbnMvc3lzdGVtL2VkaXQuZ2lmJyBhbHQ9Jyd9PC9hPjwvdGQ+CiAgICAgICA8dGQ+PGEgaHJlZj0ieyRkZWxfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdkZWxldGUnKX0iPntjZ2ltYWdlIGltYWdlPSdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicgYWx0PScnfTwvYT48L3RkPgogICAgIDwvdHI+CiAgey9mb3JlYWNofQogIDwvdGJvZHk+CjwvdGFibGU+CjwvZGl2Pgp7L2lmfQoKPHAgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgeyRhZGRsaW5rfSZuYnNwO3skcmV0dXJuX2xpbmt9CjwvcD4=]]></data>
	</file>
	<file>
	  <filename>/templates/editfielddef.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAkKKn0KCnskc3RhcnRmb3JtfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+KnskbW9kLT5MYW5nKCduYW1lJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0bmFtZX0mbmJzcDt7JG1vZC0+TGFuZygnaW5mb19hbG51bW9ubHknKX08L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPip7JG1vZC0+TGFuZygncHJvbXB0Jyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0cHJvbXB0fTwvcD4KPC9kaXY+Cgp7aWYgJHNob3dpbnB1dHR5cGUgZXEgdHJ1ZX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPip7JG1vZC0+TGFuZygndHlwZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dHR5cGV9PC9wPgo8L2Rpdj4Ke2Vsc2V9CiAgeyRpbnB1dHR5cGV9CnsvaWZ9Cgp7aWYgJHR5cGUgPT0gJ3RleHRib3gnfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+KnskbW9kLT5MYW5nKCdtYXhsZW5ndGgnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRtYXhsZW5ndGh9PC9wPgo8L2Rpdj4Key9pZn0KCntpZiAkdHlwZSA9PSAnZHJvcGRvd24nfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+KnskbW9kLT5MYW5nKCdkcm9wZG93bl9vcHRpb25zJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDx0ZXh0YXJlYSBuYW1lPSJ7JGFjdGlvbmlkfW9wdGlvbnMiPnskb3B0aW9uc308L3RleHRhcmVhPgogICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb19kcm9wZG93bl9vcHRpb25zJyl9CiAgPC9wPgo8L2Rpdj4Key9pZn0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4qeyR1c2Vydmlld3RleHR9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3VzZXJ2aWV3fTxici8+eyRtb2QtPkxhbmcoJ2luZm9fcHVibGljZmllbGQnKX08L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGhpZGRlbn17JHN1Ym1pdH17JGNhbmNlbH08L3A+CjwvZGl2Pgp7JGVuZGZvcm19Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/editproduct.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAoqfQoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogIHtpZiBpc3NldCgkY29tcGlkKX0KICAkKGRvY3VtZW50KS5vbignY2xpY2snLCcjZWRpdG9wdGlvbnMnLGZ1bmN0aW9uKCl7CiAgICBpZiggIWNvbmZpcm0oJ3skbW9kLT5MYW5nKCdjb25maXJtX2VkaXRvcHRpb25zJyl9JykgKSByZXR1cm4gZmFsc2U7CiAgICB3aW5kb3cubG9jYXRpb24gPSAne21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9UHJvZHVjdHMgYWN0aW9uPSdhZG1pbl9lZGl0X2F0dHJpYnMnIHByb2RpZD0kY29tcGlkIGpzZnJpZW5kbHk9MX0nOwogICAgcmV0dXJuIGZhbHNlOwogIH0pOwogIHsvaWZ9CgogIGlmKCAkLmZhbmN5Ym94ICkgJCgnLmZhbmN5Ym94JykuZmFuY3lib3goKTsKICAkKCdzcGFuLmNkYXV0b2NvbXBsZXRlID4gaW5wdXQnKS5hdXRvY29tcGxldGUoewogICAgbWluTGVuZ3RoOiAyLAogICAgc291cmNlOiBmdW5jdGlvbiggcmVxdWVzdCwgcmVzcG9uc2UgKSB7CiAgICAgICQuYWpheCh7CiAgICAgICAgdHlwZTogJ1BPU1QnLAogICAgICAgIGRhdGFUeXBlOiAnanNvbicsCiAgICAgICAgdXJsOiAne21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9J0NvbXBhbnlEaXJlY3RvcnknIGFjdGlvbj0nYWpheF9zZWxjb21wYW55JyBqc2ZyaWVuZGx5PTEgcGFnZWxpbWl0PTIwfSZzaG93dGVtcGxhdGU9ZmFsc2UnLAogICAgICAgIGRhdGE6IHsKICAgICAgICAgIGFkZGlkOiAxLAoJICB0ZXJtOiByZXF1ZXN0LnRlcm0KICAgICAgICB9LAoJc3VjY2VzczogZnVuY3Rpb24oIGRhdGEgKSB7CgkgIHJlc3BvbnNlKGRhdGEpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9CiAgfSk7Cn0pOwo8L3NjcmlwdD4KCgp7JHN0YXJ0Zm9ybX0Ke2lmIGlzc2V0KCRjb21waWQpfQo8aDM+eyRtb2QtPkxhbmcoJ2VkaXRfcHJvZHVjdCcpfSZuYnNwOyh7JGNvbXBpZH0pPC9oMz4Ke2Vsc2V9CjxoMz57JG1vZC0+TGFuZygnYWRkcHJvZHVjdCcpfTwvaDM+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaGlkZGVufQogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgICB7aWYgaXNzZXQoJGNvbXBpZCl9PGlucHV0IHR5cGU9InN1Ym1pdCIgaWQ9ImVkaXRvcHRpb25zIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2VkaXRfb3B0aW9ucycpfSIvPnsvaWZ9CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iLz4KICA8L3A+CjwvZGl2PgoKe2NnZV9zdGFydF90YWJzfQp7Y2dlX3RhYmhlYWRlciBuYW1lPSdtYWluJyBsYWJlbD0kbW9kLT5MYW5nKCdwcm9kdWN0X2luZm8nKX0Ke2lmICRjdXN0b21maWVsZHNjb3VudCBndCAwfXtjZ2VfdGFiaGVhZGVyIG5hbWU9J2ZpZWxkcycgbGFiZWw9JG1vZC0+TGFuZygnZmllbGRzJyl9ey9pZn0Ke2NnZV90YWJoZWFkZXIgbmFtZT0nYWR2YW5jZWQnIGxhYmVsPSRtb2QtPkxhbmcoJ2FkdmFuY2VkJyl9Cgp7Y2dlX3RhYmNvbnRlbnRfc3RhcnQgbmFtZT0nbWFpbid9CjxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgPGRpdiBjbGFzcz0iZ3JpZF84Ij4KICAgIDxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgICAgIDxkaXYgY2xhc3M9ImdyaWRfMiB0ZXh0LXJpZ2h0Ij57JG1vZC0+TGFuZygnbmFtZScpfTo8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZ3JpZF8xMCI+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJwcm9kdWN0X25hbWUiIG5hbWU9InskYWN0aW9uaWR9cHJvZHVjdF9uYW1lIiB2YWx1ZT0ieyRwcm9kdWN0X25hbWV9IiBzaXplPSI0MCIgbWF4bGVuZ3RoPSIyNTUiLz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgICAgIDxkaXYgY2xhc3M9ImdyaWRfMiB0ZXh0LXJpZ2h0Ij57JG1vZC0+TGFuZygncHJpY2UnKX06PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImdyaWRfMTAiPnskY3VycmVuY3lfc3ltYm9sfQogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0icHJvZHVjdF9wcmljZSIgbmFtZT0ieyRhY3Rpb25pZH1wcmljZSIgdmFsdWU9InskcHJpY2V9IiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIxMiIvPgogICAgICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fZGVjaW1hbF91bml0cycpfTwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJjX2Z1bGwiPgogICAgICA8ZGl2IGNsYXNzPSJncmlkXzIgdGV4dC1yaWdodCI+eyR0YXhhYmxldGV4dH06PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImdyaWRfMTAiPnskaW5wdXR0YXhhYmxlfTwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iY19mdWxsIj4KICAgICAgPGRpdiBjbGFzcz0iZ3JpZF8yIHRleHQtcmlnaHQiPnskZGV0YWlsc3RleHR9OjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJncmlkXzEwIj57JGlucHV0ZGV0YWlsc308L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJncmlkXzQiPnsqIHJpZ2h0IGNvbHVtbiAqfQogICAgeyogc3RhdHVzIGZpZWxkICp9CiAgICA8ZGl2IGNsYXNzPSJjX2Z1bGwiPgogICAgICA8ZGl2IGNsYXNzPSJncmlkXzIgdGV4dC1yaWdodCI+eyRzdGF0dXN0ZXh0fTo8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZ3JpZF8xMCI+eyRpbnB1dHN0YXR1c308L2Rpdj4KICAgIDwvZGl2PgoKICAgIHsqIHRoZSBoaWVyYXJjaHkgc3R1ZmYgKn0KICAgIHtpZiBjb3VudCgkaGllcmFyY2h5X2l0ZW1zKX0KICAgICAgPGRpdiBjbGFzcz0iY19mdWxsIj4KICAgICAgICA8cCBjbGFzcz0iZ3JpZF8yIHRleHQtcmlnaHQiPnskbW9kLT5MYW5nKCdoaWVyYXJjaHlfcG9zaXRpb24nKX06PC9wPgogICAgICAgIDxwIGNsYXNzPSJncmlkXzEwIj4KCSAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWhpZXJhcmNoeSIgaWQ9ImhpZXJhcmNoeSI+CgkgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPWFycmF5X2ZsaXAoJGhpZXJhcmNoeV9pdGVtcykgc2VsZWN0ZWQ9JGhpZXJhcmNoeV9wb3N9CgkgIDwvc2VsZWN0PgoJPC9wPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4KICAgIHsvaWZ9CgogICAgeyogY2F0ZWdvcmllcyAqfQogICAge2lmIGlzc2V0KCRhbGxfY2F0ZWdvcmllcyl9CiAgICAgIDxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZF8yIHRleHQtcmlnaHQiPnskbW9kLT5MYW5nKCdjYXRlZ29yaWVzJyl9OjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdyaWRfMTAiPgoJICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y2F0ZWdvcmllc1tdIiBpZD0iY2F0ZWdvcmllcyIgbXVsdGlwbGU9Im11bHRpcGxlIj4KCSAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGFsbF9jYXRlZ29yaWVzIHNlbGVjdGVkPSRzZWxfY2F0ZWdvcmllc30KCSAgPC9zZWxlY3Q+Cgk8L2Rpdj4KICAgICAgPC9kaXY+CiAgICB7L2lmfQogIDwvZGl2PgogIDxkaXYgY2xhc3M9ImNsZWFyYiI+PC9kaXY+CjwvZGl2PgoKeyogZGlzcGxheSBjdXN0b20gZmllbGRzICp9CntpZiAkY3VzdG9tZmllbGRzY291bnQgZ3QgMH0Ke2NnZV90YWJjb250ZW50X3N0YXJ0IG5hbWU9J2ZpZWxkcyd9CiAge2ZvcmVhY2ggZnJvbT0kY3VzdG9tZmllbGRzIGl0ZW09Y3VzdG9tZmllbGR9CiAgICA8ZGl2IGNsYXNzPSJjX2Z1bGwiPgogICAgICA8cCBjbGFzcz0iZ3JpZF8yIHRleHQtcmlnaHQiPntpZiBpc3NldCgkY3VzdG9tZmllbGQtPnByb21wdCl9eyRjdXN0b21maWVsZC0+cHJvbXB0fXtlbHNlfXskY3VzdG9tZmllbGQtPm5hbWV9ey9pZn06PC9wPgogICAgICA8cCBjbGFzcz0iZ3JpZF8xMCI+CiAgICAgICAge2lmIGlzc2V0KCRjdXN0b21maWVsZC0+dmFsdWUpfQogICAgICAgICAge2lmICRjdXN0b21maWVsZC0+dHlwZSA9PSAnaW1hZ2UnICYmIGlzc2V0KCRjdXN0b21maWVsZC0+aW1hZ2UpICYmIGlzc2V0KCRjdXN0b21maWVsZC0+dGh1bWJuYWlsKX0KICAgICAgICAgICAgPGEgaHJlZj0ieyRjdXN0b21maWVsZC0+aW1hZ2V9IiBjbGFzcz0iZmFuY3lib3giPjxpbWcgc3JjPSJ7JGN1c3RvbWZpZWxkLT50aHVtYm5haWx9IiBhbHQ9InskY3VzdG9tZmllbGQtPnZhbHVlfSIvPjwvYT4KICAgICAgICAgIHtlbHNlaWYgJGN1c3RvbWZpZWxkLT50eXBlICE9ICd0ZXh0YXJlYScgJiYgJGN1c3RvbWZpZWxkLT50eXBlICE9ICdkaW1lbnNpb25zJyAmJiAkY3VzdG9tZmllbGQtPnR5cGUgIT0gJ3N1YnNjcmlwdGlvbid9CgkgICAgIHskbW9kLT5MYW5nKCdjdXJyZW50X3ZhbHVlJyl9OiZuYnNwO3skY3VzdG9tZmllbGQtPnZhbHVlfTxici8+CiAgICAgICAgICB7L2lmfQoKICAgICAgICAgIHtpZiBpc3NldCgkY3VzdG9tZmllbGQtPmRlbGV0ZSl9eyRtb2QtPkxhbmcoJ2RlbGV0ZScpfSZuYnNwO3skY3VzdG9tZmllbGQtPmRlbGV0ZX08YnIvPnsvaWZ9CiAgICAgICAgey9pZn0KICAgICAgICB7aWYgaXNzZXQoJGN1c3RvbWZpZWxkLT5oaWRkZW4pfXskY3VzdG9tZmllbGQtPmhpZGRlbn17L2lmfXskY3VzdG9tZmllbGQtPmlucHV0X2JveH0KICAgICAgICB7aWYgaXNzZXQoJGN1c3RvbWZpZWxkLT5hdHRyaWJ1dGUpfTxici8+eyRjdXN0b21maWVsZC0+YXR0cmlidXRlfXsvaWZ9CiAgICAgIDwvcD4KICAgIDwvZGl2PgogIHsvZm9yZWFjaH0KICA8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2Pgp7L2lmfQoKe2NnZV90YWJjb250ZW50X3N0YXJ0IG5hbWU9J2FkdmFuY2VkJ30KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogIC8vIHZhcmlhYmxlcwogIHZhciBwaWQgPSB7JGNvbXBpZHxkZWZhdWx0OjB9OwogIHZhciBtYW51YWxfdXJsc2x1ZyA9IHBpZDsKICB2YXIgZmluaXNoZWRfc2V0dXAgPSAwOwogIHZhciBhamF4X3RpbWVvdXQ7CiAgdmFyIGFqYXhfeGhyOwoKICAvLyBzZXR1cCBjdXJzb3IgZm9yIGFqYXggc3R1ZmYKICAkKCdmb3JtJykuYWpheFN0YXJ0KGZ1bmN0aW9uKCkgewogICAgJCgnKicpLmNzcygnY3Vyc29yJywncHJvZ3Jlc3MnKTsKICB9KTsKCiAgJCgnZm9ybScpLmFqYXhTdG9wKGZ1bmN0aW9uKCkgewogICAgJCgnKicpLmNzcygnY3Vyc29yJywnYXV0bycpOwogIH0pOwoKICBmdW5jdGlvbiBfYWpheF9nZXRzbHVnKCkgewogICAgIGlmKCB0eXBlb2YgYWpheF94aHIgIT0gJ3VuZGVmaW5lZCcgJiYgYWpheF94aHIgIT0gMCApIGFqYXhfeGhyLmFib3J0KCk7CiAgICAgdmFyICRuYW1lID0gJCgnI3Byb2R1Y3RfbmFtZScpOwogICAgIHZhciBmb3JtID0gJG5hbWUuY2xvc2VzdCgnZm9ybScpOwogICAgIHZhciBwbmFtZSA9ICRuYW1lLnZhbCgpOwogICAgIGFqYXhfeGhyID0gJC5hamF4KHsKICAgICAgICB1cmw6ICd7bW9kdWxlX2FjdGlvbl91cmwgYWN0aW9uPSdhZG1pbl9hamF4X2dldHNsdWcnIGZvcmFqYXg9MX0nLAoJbWV0aG9kOiAnUE9TVCcsCglkYXRhOiB7CgkgICd7JGFjdGlvbmlkfXBpZCc6ICBwaWQsCgkgICd7JGFjdGlvbmlkfW5hbWUnOiBwbmFtZSwKCSAgJ3skYWN0aW9uaWR9aGllcic6ICQoJyNoaWVyYXJjaHknKS52YWwoKSwKCSAgJ3skYWN0aW9uaWR9Y2F0cyc6ICQoJyNjYXRlZ29yaWVzJykudmFsKCksCgl9LAoJc3VjY2VzczogZnVuY3Rpb24oIHJlcyApIHsKCSAgICQoJyN1cmxzbHVnJykudmFsKHJlcyk7CgkgICBhamF4X3hociA9IDA7Cgl9CiAgICAgfSkKICB9CgogIGZ1bmN0aW9uIGFqYXhfZ2V0c2x1ZygpIHsKICAgICBpZiggIWZpbmlzaGVkX3NldHVwICkgcmV0dXJuOwogICAgIGlmKCBtYW51YWxfdXJsc2x1ZykgcmV0dXJuOwogICAgIGlmKCBhamF4X3RpbWVvdXQgIT0gdW5kZWZpbmVkICkgY2xlYXJUaW1lb3V0KGFqYXhfdGltZW91dCk7CiAgICAgYWpheF90aW1lb3V0ID0gc2V0VGltZW91dChfYWpheF9nZXRzbHVnLDUwMCk7CiAgfQoKICAkKCcjdXJsc2x1ZycpLmtleXVwKGZ1bmN0aW9uKCl7CiAgICAgbWFudWFsX3VybHNsdWcgPSAwOwogICAgIGlmKCAkKHRoaXMpLnZhbCgpICE9ICcnICkgbWFudWFsX3VybHNsdWcgPSAxOwogIH0pOwoKICAkKCcjcHJvZHVjdF9uYW1lJykua2V5dXAoZnVuY3Rpb24oKXsKICAgICAvLyBhamF4IGNhbGwgdG8gZ2V0IGEgdXJsIHNsdWcgZ2l2ZW4gYSB0ZW1wbGF0ZQogICAgIGFqYXhfZ2V0c2x1ZygpOwogIH0pOwoKICAkKCcjaGllcmFyY2h5LCNjYXRlZ29yaWVzJykuY2hhbmdlKGZ1bmN0aW9uKCl7CiAgICAgLy8gYWpheCBjYWxsIHRvIGdldCBhIHVybCBzbHVnIGdpdmVuIGEgdGVtcGxhdGUKICAgICBhamF4X2dldHNsdWcoKTsKICB9KQoKICBmaW5pc2hlZF9zZXR1cCA9IDE7Cn0pCjwvc2NyaXB0PgoKICA8ZGl2IGNsYXNzPSJjX2Z1bGwiPgogICAgPHAgY2xhc3M9ImdyaWRfMiB0ZXh0LXJpZ2h0Ij57aWYgJG1vZC0+R2V0UHJlZmVyZW5jZSgnc2t1cmVxdWlyZWQnKX0qey9pZn17JG1vZC0+TGFuZygnc2t1Jyl9OjwvcD4KICAgIDxwIGNsYXNzPSJncmlkXzEwIj4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9c2t1IiB2YWx1ZT0ieyRza3V9IiBzaXplPSIxMiIgbWF4bGVuZ3RoPSIyNSIvPgogICAgICA8YnIvPnskbW9kLT5MYW5nKCdpbmZvX3NrdScpfTwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjX2Z1bGwiPgogICAgPHAgY2xhc3M9ImdyaWRfMiB0ZXh0LXJpZ2h0Ij57JG1vZC0+TGFuZygnd2VpZ2h0Jyl9ICh7JHdlaWdodHVuaXRzfSk6PC9wPgogICAgPHAgY2xhc3M9ImdyaWRfMTAiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH13ZWlnaHQiIHZhbHVlPSJ7JHdlaWdodH0iIHNpemU9IjgiIG1heGxlbmd0aD0iMTIiLz4KICAgICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb19kZWNpbWFsX3VuaXRzJyl9CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0iY19mdWxsIj4KICAgIDxwIGNsYXNzPSJncmlkXzIgdGV4dC1yaWdodCI+eyRtb2QtPkxhbmcoJ3VybF9zbHVnJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJncmlkXzEwIj4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJ1cmxzbHVnIiBuYW1lPSJ7JGFjdGlvbmlkfXVybHNsdWciIHZhbHVlPSJ7JHVybHNsdWd9IiBzaXplPSI4MCIvPgogICAgICA8YnIvPnskbW9kLT5MYW5nKCdpbmZvX3VybF9zbHVnJyl9CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0iY19mdWxsIj4KICAgIDxwIGNsYXNzPSJncmlkXzIgdGV4dC1yaWdodCI+eyRtb2QtPkxhbmcoJ3VybF9hbGlhcycpfTo8L3A+CiAgICA8cCBjbGFzcz0iZ3JpZF8xMCI+eyRpbnB1dGFsaWFzfTxici8+eyRtb2QtPkxhbmcoJ2luZm9fdXJsX2FsaWFzJyl9PC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9ImNsZWFyYiI+PC9kaXY+CntjZ2VfZW5kX3RhYnN9Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iLz4KICA8L3A+CjwvZGl2Pgp7JGVuZGZvcm19Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/edit_attribsets.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfYXR0cmlic2V0c19mb3J9OiZuYnNwO3skcHJvZHVjdF9uYW1lfTwvaDM+Cgp7aWYgJGl0ZW1jb3VudCA+IDB9Cjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+eyRpZHRleHR9PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnskbmFtZXRleHR9PC90aD4KCQkJPHRoPnskY291bnR0ZXh0fTwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+Cntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9Cgl7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIiIGFzc2lnbj0ncm93Y2xhc3MnfQoJCTx0ciBjbGFzcz0ieyRyb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc30nOyI+CgkJCTx0ZD57JGVudHJ5LT5hdHRyaWJfc2V0X2lkfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5hdHRyaWJfc2V0X25hbWV9PC90ZD4KCQkJPHRkPnskZW50cnktPmNvdW50fTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5lZGl0bGlua308L3RkPgoJCQk8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPgoJCTwvdHI+CnsvZm9yZWFjaH0KCTwvdGJvZHk+CjwvdGFibGU+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+CiAgeyRhZGRfbGlua30mbmJzcDt7JGNvcHlfbGlua30mbmJzcDt7JHJldHVybl9saW5rfQo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/templates/exportcsv.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdleHBvcnRfdG9fY3N2Jyl9PC9oMz4KeyRmb3Jtc3RhcnR9Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2V4cG9ydGRlbGltJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWV4cG9ydGRlbGltIiB2YWx1ZT0ieyRvcHRpb25zLmV4cG9ydGRlbGltfSIgc2l6ZT0iNSIgbWF4bGVuZ3RoPSI1Ii8+CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnZXhwb3J0ZHJhZnQnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1leHBvcnRkcmFmdCBzZWxlY3RlZD0kb3B0aW9ucy5leHBvcnRkcmFmdH0KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdleHBvcnRjYXRzJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9ZXhwb3J0Y2F0cyBzZWxlY3RlZD0kb3B0aW9ucy5leHBvcnRjYXRzfQogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2V4cG9ydGZpZWxkcycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWV4cG9ydGZpZWxkcyBzZWxlY3RlZD0kb3B0aW9ucy5leHBvcnRmaWVsZHN9CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnZXhwb3J0b3B0aW9ucycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWV4cG9ydG9wdGlvbnMgc2VsZWN0ZWQ9JG9wdGlvbnMuZXhwb3J0b3B0aW9uc30KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYW5jZWwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9Ii8+CiAgPC9wPgo8L2Rpdj4KeyRmb3JtZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/fielddeflist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAoqfQoKPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iIHN0eWxlPSJkaXNwbGF5OiBibG9jazsiPnskbW9kLT5MYW5nKCdpbmZvX2ZpZWxkZGVmc190YWInKX08L2Rpdj4KCntpZiAkaXRlbWNvdW50ID4gMH0KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD57JG1vZC0+TGFuZygnaWQnKX08L3RoPgoJCQk8dGg+eyRmaWVsZGRlZnRleHR9PC90aD4KCQkJPHRoPnskdHlwZXRleHR9PC90aD4KCQkJPHRoIGNsYXNzPSJtb3ZlIj4mbmJzcDs8L3RoPgoJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRib2R5Pgp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQoJe2N5Y2xlIHZhbHVlcz0icm93MSxyb3cyIiBhc3NpZ249J3Jvd2NsYXNzJ30KCQk8dHIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPgoJCSAgICAgICAgPHRkPnskZW50cnktPmlkfTwvdGQ+CgkJCTx0ZD48YSBocmVmPSJ7JGVudHJ5LT5lZGl0X3VybH0iIHRpdGxlPSJ7JG1vZC0+TGFuZygnZWRpdCcpfSI+eyRlbnRyeS0+bmFtZX08L2E+PC90ZD4KCQkJPHRkPnthc3NpZ24gdmFyPSd0bXAnIHZhbHVlPSRlbnRyeS0+dHlwZX17JGZpZWxkdHlwZXMuJHRtcH08L3RkPgoJCQk8dGQ+eyRlbnRyeS0+dXBsaW5rfSB7JGVudHJ5LT5kb3dubGlua308L3RkPgoJCQk8dGQ+PGEgaHJlZj0ieyRlbnRyeS0+ZWRpdF91cmx9Ij57Y2dpbWFnZSBpbWFnZT0naWNvbnMvc3lzdGVtL2VkaXQuZ2lmJyBhbHQ9JG1vZC0+TGFuZygnZWRpdCcpfTwvYT48L3RkPgoJCQk8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPgoJCTwvdHI+CnsvZm9yZWFjaH0KCTwvdGJvZHk+CjwvdGFibGU+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+PHAgY2xhc3M9InBhZ2VvcHRpb25zIj57JGFkZGxpbmt9PC9wPjwvZGl2Pgo=]]></data>
	</file>
	<file>
	  <filename>/templates/importcsv.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdpbXBvcnRfZnJvbV9jc3YnKX08L2gzPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgojZXJyb3JibG9jayB7IGRpc3BsYXk6IG5vbmU7IH0KI29wdGlvbmJsb2NrIHsgZGlzcGxheTogbm9uZTsgfQojcHJvY2Vzc2Jsb2NrIHsgZGlzcGxheTogbm9uZTsgfQojcHJvZ3Jlc3MgeyB3aWR0aDogOTAlOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KPC9zdHlsZT4KCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KJChmdW5jdGlvbigpewogICQoJyNwcm9ncmVzcycpLnByb2dyZXNzYmFyKHsgdmFsdWU6IDAgfSk7CiAgJCgnZG9jdW1lbnQnKS5vbignY2xpY2snLCcjcmV0dXJuYnRuJyxmdW5jdGlvbigpewogICAgd2luZG93LmxvY2F0aW9uID0gJ3skZG9uZXVybH0nOwogIH0pOwp9KTsKZnVuY3Rpb24gcHJvZ3Jlc3MocGN0KSB7CiAgJCgnI3Byb2dyZXNzJykucHJvZ3Jlc3NiYXIoJ3ZhbHVlJyxwY3QpOwogICQoJy51aS1wcm9ncmVzc2Jhci12YWx1ZScpLmh0bWwocGN0KyclJyk7Cn0KZnVuY3Rpb24gb25FcnJvcihzdHIpIHsKICAkKCcjZXJyb3JibG9jaycpLnNob3coKTsKICAkKCcjZXJyb3JzJykudmFsKCQoJyNlcnJvcnMnKS52YWwoKStzdHIrJ1xuJyk7Cn0KZnVuY3Rpb24gZG9uZSgpIHsKICAkKCcjb3B0aW9uYmxvY2snKS5mYWRlSW4oKTsKfQo8L3NjcmlwdD4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvZ3Jlc3MnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiIGlkPSJwcm9ncmVzcyI+PC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyIgaWQ9ImVycm9yYmxvY2siPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2Vycm9ycycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8dGV4dGFyZWEgaWQ9ImVycm9ycyI+PC90ZXh0YXJlYT4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0iYWdlb3ZlcmZsb3ciIGlkPSJvcHRpb25ibG9jayI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBpZD0icmV0dXJuYnRuIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3JldHVybicpfSIvPgogIDwvcD4KPC9kaXY+Cgo8aWZyYW1lIHNyYz0ieyRwcm9jZXNzdXJsfSIgaWQ9InByb2Nlc3NibG9jayI+PC9pZnJhbWU+]]></data>
	</file>
	<file>
	  <filename>/templates/importproducts.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW1wb3J0IHByb2R1Y3RzIGZvcm0gKn0KPGgzPnskbW9kLT5MYW5nKCdpbXBvcnRfZnJvbV9jc3YnKX08L2gzPgoKeyRmb3Jtc3RhcnR9CntpZiBpc3NldCgkbWVzc2FnZXMpfQoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KPGRpdiBzdHlsZT0ib3ZlcmZsb3c6IGF1dG87IGhlaWdodDogMTBlbTsgd2lkdGg6IDc1JTsgbWFyZ2luLWxlZnQ6IDVlbTsgYm9yZGVyOiAxcHggZGFzaGVkICNjY2M7Ii8+CntzdHJpcH0Ke2ZvcmVhY2ggZnJvbT0kbWVzc2FnZXMgaXRlbT0nb25lJ30KICB7JG9uZX08YnIvPgp7L2ZvcmVhY2h9Cnsvc3RyaXB9CjwvZGl2Pgo8L2Rpdj4KCntlbHNlaWYgaXNzZXQoJGVycm9ycyl9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CjxkaXYgc3R5bGU9Im92ZXJmbG93OiBhdXRvOyBoZWlnaHQ6IDEwZW07IHdpZHRoOiA3NSU7IG1hcmdpbi1sZWZ0OiA1ZW07IGJvcmRlcjogMXB4IGRhc2hlZCAjY2NjOyIvPgp7c3RyaXB9Cntmb3JlYWNoIGZyb209JGVycm9ycyBpdGVtPSdvbmUnfQogIHskb25lfTxici8+CnsvZm9yZWFjaH0Key9zdHJpcH0KPC9kaXY+CjwvZGl2Pgp7L2lmfQoKe2lmICFpc3NldCgkY3N2ZmlsZSl9CnsqIGRpc3BsYXkgdGhlIGZvcm0gKn0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZGVsaW1pdGVyJyl9PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9ZGVsaW1pdGVyIiB2YWx1ZT0ieyRkZWxpbWl0ZXJ9IiBzaXplPSI1IiBtYXhsZW5ndGg9IjEwIi8+CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fZGVsaW1pdGVyJyl9CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2NyZWF0ZWZpZWxkcycpfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1jcmVhdGVmaWVsZHMiPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHllc25vIHNlbGVjdGVkPSRmbGFnX2NyZWF0ZWZpZWxkc30KICAgIDwvc2VsZWN0PgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2NyZWF0ZWZpZWxkcycpfQogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9oYW5kbGVpbWFnZXMnKX08L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9aGFuZGxlaW1hZ2VzIj4KICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSR5ZXNubyBzZWxlY3RlZD0kZmxhZ19oYW5kbGVpbWFnZXN9CiAgICA8L3NlbGVjdD4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19oYW5kbGVpbWFnZXMnKX0KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfaW1hZ2VwYXRoJyl9PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9aW1hZ2VwYXRoIiB2YWx1ZT0ieyRpbWFnZXBhdGh9IiBzaXplPSI2MCIvPgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2ltYWdlcGF0aCcpfQogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9jcmVhdGVoaWVyYXJjaHknKX08L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y3JlYXRlaGllcmFyY2h5Ij4KICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSR5ZXNubyBzZWxlY3RlZD0kZmxhZ19jcmVhdGVoaWVyYXJjaHl9CiAgICA8L3NlbGVjdD4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19jcmVhdGVoaWVyYXJjaHknKX0KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfY3JlYXRlY2F0ZWdvcmllcycpfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1jcmVhdGVjYXRlZ29yaWVzIj4KICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSR5ZXNubyBzZWxlY3RlZD0kZmxhZ19jcmVhdGVjYXRlZ29yaWVzfQogICAgPC9zZWxlY3Q+CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fY3JlYXRlY2F0ZWdvcmllcycpfQogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9kdXBsaWNhdGVwcm9kdWN0cycpfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1kdXBsaWNhdGVwcm9kdWN0cyI+CiAgICAgICA8b3B0aW9uIGxhYmVsPSJ7JG1vZC0+TGFuZygnbGFiZWxfc2tpcCcpfSIgdmFsdWU9InNraXAiIHtpZiAkZmxhZ19kdXBsaWNhdGVwcm9kdWN0cyBlcSAic2tpcCJ9c2VsZWN0ZWQ9InNlbGVjdGVkInsvaWZ9PnskbW9kLT5MYW5nKCdsYWJlbF9za2lwJyl9PC9vcHRpb24+CiAgICAgICA8b3B0aW9uIGxhYmVsPSJ7JG1vZC0+TGFuZygnbGFiZWxfdXBkYXRlJyl9IiB2YWx1ZT0idXBkYXRlIiB7aWYgJGZsYWdfZHVwbGljYXRlcHJvZHVjdHMgZXEgInVwZGF0ZSJ9c2VsZWN0ZWQ9InNlbGVjdGVkInsvaWZ9PnskbW9kLT5MYW5nKCdsYWJlbF91cGRhdGUnKX08L29wdGlvbj4KICAgICAgIDxvcHRpb24gbGFiZWw9InskbW9kLT5MYW5nKCdsYWJlbF9vdmVyd3JpdGUnKX0iIHZhbHVlPSJvdmVyd3JpdGUiIHtpZiAkZmxhZ19kdXBsaWNhdGVwcm9kdWN0cyBlcSAib3ZlcndyaXRlIn1zZWxlY3RlZD0ic2VsZWN0ZWQiey9pZn0+eyRtb2QtPkxhbmcoJ2xhYmVsX292ZXJ3cml0ZScpfTwvb3B0aW9uPgogICAgPC9zZWxlY3Q+CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fZHVwbGljYXRlcHJvZHVjdHMnKX0KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfYmF0Y2hzaXplJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWJhdGNoc2l6ZSIgdmFsdWU9InskYmF0Y2hzaXplfSIgc2l6ZT0iMyIgbWF4bGVuZ3RoPSIzIi8+CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fYmF0Y2hzaXplJyl9CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2NsZWFyZmllbGRzJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9Y2xlYXJmaWVsZHMgc2VsZWN0ZWQ9JGNsZWFyZmllbGRzfQogICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb19jbGVhcmZpZWxkcycpfQogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9jbGVhcmF0dHJpYnMnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1jbGVhcmF0dHJpYnMgc2VsZWN0ZWQ9JGNsZWFyYXR0cmlic30KICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fY2xlYXJhdHRyaWJzJyl9CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2NsZWFyY2F0ZWdvcmllcycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWNsZWFyY2F0ZWdvcmllcyBzZWxlY3RlZD0kY2xlYXJjYXRlZ29yaWVzfQogICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb19jbGVhcmNhdGVnb3JpZXMnKX0KICA8L3A+CjwvZGl2PgoKey9pZn0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2NzdmZpbGUnKX08L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7aWYgaXNzZXQoJGNzdmZpbGUpfQogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3N2ZmlsZSIgdmFsdWU9InskY3N2ZmlsZX0iIHJlYWRvbmx5PXJlYWRvbmx5Lz4KICAgIHtlbHNlfQogICAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9InskYWN0aW9uaWR9Y3N2ZmlsZSIgdmFsdWU9IiIgc2l6ZT0iNjAiLz4KICAgIHsvaWZ9CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7aWYgaXNzZXQoJGNzdmZpbGUpfQogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1nbyIgdmFsdWU9InskbW9kLT5MYW5nKCdnbycpfSIgb25jbGljaz0icmV0dXJuIGNvbmZpcm0oJ3skbW9kLT5MYW5nKCdjb25maXJtX2ltcG9ydCcpfScpOyIvPgogICAge2Vsc2V9CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXRlc3QiIHZhbHVlPSJ7JG1vZC0+TGFuZygndGVzdCcpfSIvPgogICAgey9pZn0KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_byhierarchy_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGllcmFyY2h5IHJlcG9ydCB0ZW1wbGF0ZSAqfQp7aWYgIWlzc2V0KCRoZGVwdGgpICYmIGlzc2V0KCRoaWVyYXJjaHlfaXRlbSl9CjxoMz5IaWVyYXJjaHkgRGF0YSBmb3IgeyRoaWVyYXJjaHlfaXRlbS5uYW1lfSAoeyRoaWVyYXJjaHlfaXRlbS5pZH0pPC9oMz4KPHA+PGEgaHJlZj0ieyRoaWVyYXJjaHlfaXRlbS5wYXJlbnRfdXJsfSI+VXA8L2E+PC9wPgp7L2lmfQoKe2lmICFpc3NldCgkaGRlcHRoKX17YXNzaWduIHZhcj0naGRlcHRoJyB2YWx1ZT0nMCd9ey9pZn0KCnsqCiAvLyBjcmVhdGUgYSBuZXN0ZWQgc2V0IG9mIHVub3JkZXJlZCBsaXN0cwogLy8gaWYgdGhlIGFjdGl2ZV9oaWVyYXJjaHkgc21hcnR5IHZhcmlhYmxlIGV4aXN0cwogLy8gYW5kIG1hdGNoZXMgdGhlIGN1cnJlbnQgaGllcmFyY2h5IGlkCiAvLyB0aGUgYWN0aXZlIGNsYXNzIHdpbGwgYmUgZ2l2ZW4KIC8vIHRvIHRoZSB1bC4gIFlvdSBtYXkgd2FudCB0byBtb2RpZnkgeW91ciBzdW1tYXJ5IHRlbXBsYXRlCiAvLyB0byBzZXQgdGhpcyB2YXJpYWJsZQoqfQo8dWwge2lmICRoZGVwdGggPT0gMH1pZD0icHJvZHVjdHNfaGllcmFyY2h5InsvaWZ9IGNsYXNzPSJwcm9kdWN0c19oaWVyYXJjaHlfbGV2ZWx7JGhkZXB0aH0iPgp7Zm9yZWFjaCBmcm9tPSRoaWVyZGF0YSBrZXk9J2tleScgaXRlbT0naXRlbSd9CntzdHJpcH0KICB7JGNsYXNzPSdwcm9kdWN0X2hpZXInfQogIHtpZiBpc3NldCgkYWN0aXZlX2hpZXJhcmNoeSkgYW5kICRpdGVtLmlkID09ICRhY3RpdmVfaGllcmFyY2h5fXskY2xhc3M9JGNsYXNzfGNhdDonIGFjdGl2ZSd9ey9pZn0KICB7aWYgaXNzZXQoJGl0ZW0uY2hpbGRyZW4pfXskY2xhc3M9JGNsYXNzfGNhdDonIHBhcmVudCd9ey9pZn0KICA8bGl7aWYgJGNsYXNzICE9ICcnfSBjbGFzcz0ieyRjbGFzc30iey9pZn0+CgogIHtpZiBpc3NldCgkaXRlbS5jaGlsZHJlbil9CiAgICA8YSBocmVmPSJ7JGl0ZW0uZG93bl91cmx9Ij57JGl0ZW0ubmFtZX08L2E+CiAge2Vsc2V9CiAgICB7JGl0ZW0ubmFtZX0KICB7L2lmfQogICZuYnNwOyZuYnNwOwogIHtpZiAkbm9jaGlsZHJlbn0KICAgIHsqIG5vdCBkaXNwbGF5aW5nIGNoaWxkIGhpZXJhcmNoeSBwcm9kdWN0cyAqfQogICAge2lmICRpdGVtLmRpcmVjdF9jb3VudCBndCAwfQogICAgICA8YSBocmVmPSJ7JGl0ZW0udXJsfSI+VmlldyAoeyRpdGVtLmRpcmVjdF9jb3VudH0pIGl0ZW1zPC9hPgogICAge2Vsc2V9CiAgICAgIHskaXRlbS5uYW1lfSAoeyRpdGVtLmNvdW50fSkKICAgIHsvaWZ9CiAge2Vsc2VpZiAkaXRlbS5jb3VudCBndCAwfQogICAgPGEgaHJlZj0ieyRpdGVtLnVybH0iPlZpZXcgKHskaXRlbS5jb3VudH0pIGl0ZW1zPC9hPgogIHtlbHNlfQogICB7JGl0ZW0ubmFtZX0gKHskaXRlbS5jb3VudH0pCiAgey9pZn0KCiAgPC9saT4Key9zdHJpcH0Key9mb3JlYWNofQo8L3VsPg==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_categorylist_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icHJvZHVjdHNfY2F0ZWdvcnlfbGlzdCI+CntpZiBpc3NldCgkY2F0ZWdvcnlsaXN0KSAmJiBjb3VudCgkY2F0ZWdvcnlsaXN0KX0KICB7Zm9yZWFjaCBmcm9tPSRjYXRlZ29yeWxpc3QgaXRlbT0nb2JqJ30KICA8ZGl2IGNsYXNzPSJwcm9kdWN0c19jYXRlZ29yeSI+CiAgICB7KiBjYXRlZ29yeSBmaWVsZHMgYXJlIGF2YWlsYWJsZSBhcyBhbiBhcnJheSBpbiAkb2JqLT5maWVsZHMgKn0KICAgIHsqIGkuZTogJG9iai0+ZmllbGRzLmZpZWxkbmFtZS5maWVsZF92YWx1ZSAqfQogICAge2lmIGlzc2V0KCRvYmotPmZpZWxkcyl9CiAgICB7Zm9yZWFjaCBmcm9tPSRvYmotPmZpZWxkcyBrZXk9J2ZpZWxkX25hbWUnIGl0ZW09J2ZpZWxkZGF0YSd9CiAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkIj4KICAgICAgICB7JGZpZWxkZGF0YS5maWVsZF9wcm9tcHR9ID0geyRmaWVsZGRhdGEuZmllbGRfdmFsdWV9CiAgICAgIDwvZGl2PgogICAgey9mb3JlYWNofQogICAgey9pZn0KICAgIHtpZiBpc3NldCgkb2JqLT5kZXRhaWxfdXJsKX0KICAgICAgPGEgaHJlZj0ieyRvYmotPmRldGFpbF91cmx9Ij5EZXRhaWxzIEZvciB7JG9iai0+bmFtZX08L2E+Jm5ic3A7Jm5ic3A7CiAgICB7L2lmfQogICAgPGEgaHJlZj0ieyRvYmotPnN1bW1hcnlfdXJsfSI+UHJvZHVjdHMgTWF0Y2hpbmcgeyRvYmotPm5hbWV9PC9hPih7JG9iai0+Y291bnR9KQogIDwvZGl2PgogIHsvZm9yZWFjaH0Ke2Vsc2V9CiAge2NnZXJyb3J9Tm8gZGF0YSB0byBkaXNwbGF5ey9jZ2Vycm9yfQp7L2lmfQo8L2Rpdj4K]]></data>
	</file>
	<file>
	  <filename>/templates/orig_detail_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogdGhpcyBpcyBhIHNhbXBsZSBwcm9kdWN0IGRldGFpbCB0ZW1wbGF0ZSAqfQo8ZGl2IGNsYXNzPSJQcm9kdWN0RGlyZWN0b3J5SXRlbSI+Cgp7KiBzZXQgYSBjYW5vbmljYWwgdXJsICp9CntpZiAkZW50cnktPmRldGFpbF91cmwgIT0gJyd9e2Fzc2lnbiB2YXI9J2Nhbm9uaWNhbCcgc2NvcGU9Z2xvYmFsIHZhbHVlPSRlbnRyeS0+ZGV0YWlsX3VybH17L2lmfQoKeyogbm90ZToge2NvbnRlbnR9IG11c3QgYmUgY2FsbGVkIGJlZm9yZSB0aGUgaGllcmFyY2h5IHZpZXcgaXMgY2FsbGVkICp9CntpZiAkZW50cnktPmhpZXJhcmNoeV9pZCA+IDB9e2Fzc2lnbiB2YXI9J2FjdGl2ZV9oaWVyYXJjaHknIHNjb3BlLWdsb2JhbCB2YWx1ZT0kZW50cnktPmhpZXJhcmNoeV9pZH17L2lmfQoKe2lmIGlzX2FycmF5KCRlbnRyeS0+YnJlYWRjcnVtYil9CjxkaXYgY2xhc3M9InJvdyI+CiAgPGRpdiBjbGFzcz0iY29sLXNtLTIiPkJyZWFkY3J1bWI6PC9kaXY+CiAgPGRpdiBjbGFzcz0iY29sLXNtLTEwIj57aW1wbG9kZSgnID4+ICcsJGVudHJ5LT5icmVhZGNydW1iKX08L2Rpdj4KPC9kaXY+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJyb3ciPgogIDxkaXYgY2xhc3M9ImNvbC1zbS0yIj5OYW1lOjwvZGl2PgogIDxkaXYgY2xhc3M9ImNvbC1zbS0xMCI+CiAgICA8YSBuYW1lPSJwcm9kdWN0X25hbWUiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IG5vbmU7Ij57JGVudHJ5LT5wcm9kdWN0X25hbWV9PC9hPgogIDwvZGl2Pgo8L2Rpdj4KCntpZiAkZW50cnktPnByaWNlIGd0IDB9CjxkaXYgY2xhc3M9InJvdyI+CiAgPGRpdiBjbGFzcz0iY29sLXNtLTIiPnskbW9kLT5MYW5nKCdwcmljZScpfTo8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjb2wtc20tMTAiPgogICAge3Byb2R1Y3Rfb3BzOjpnZXRfY3VycmVuY3lfc3ltYm9sKCl9eyRlbnRyeS0+cHJpY2V8bnVtYmVyX2Zvcm1hdDoyfQogIDwvZGl2Pgo8L2Rpdj4KCiAgeyogdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSBpZiB0aGUgUHJvbW90aW9ucyBtb2R1bGUgaXMgaW5zdGFsbGVkICp9CiAgeyogcHJvbW9fZ2V0X3Byb2RfZGlzY291bnQgcHJvZHVjdF9pZD0kZW50cnktPmlkIGFzc2lnbj0nZm9vJyAqfQogIHtpZiBpc3NldCgkZm9vLnByb21vX2lkKX0KICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgPGRpdiBjbGFzcz0iY29sLXNtLTIiPgogICAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPkRpc2NvdW50Ojwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iY29sLXNtLTEwIj4KICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij57cHJvZHVjdF9vcHM6OmdldF9jdXJyZW5jeV9zeW1ib2woKX17JGZvby5kaXNjb3VudHxudW1iZXJfZm9ybWF0OjJ9ICh7JGZvby5wZXJjZW50YWdlfG51bWJlcl9mb3JtYXQ6Mn0lKTwvc3Bhbj4KICAgIDwvZGl2PgogIDwvZGl2PgogIHsvaWZ9CnsvaWZ9Cgp7aWYgJGVudHJ5LT53ZWlnaHQgZ3QgMH0KPGRpdiBjbGFzcz0icm93Ij4KICA8ZGl2IGNsYXNzPSJjb2wtc20tMiI+eyRtb2QtPkxhbmcoJ3dlaWdodCcpfTo8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjb2wtc20tMTAiPgogICAgeyRlbnRyeS0+d2VpZ2h0fG51bWJlcl9mb3JtYXQ6Mn0ge3Byb2R1Y3Rfb3BzOjpnZXRfd2VpZ2h0X3VuaXRzKCl9CiAgPC9kaXY+CjwvZGl2Pgp7L2lmfQoKe2lmICRlbnRyeS0+ZGV0YWlscyBuZSAnJ30KPGRpdiBjbGFzcz0icm93Ij4KICA8ZGl2IGNsYXNzPSJjb2wtc20tMiI+eyRtb2QtPkxhbmcoJ2RldGFpbHMnKX06PC9kaXY+CiAgPGRpdiBjbGFzcz0iY29sLXNtLTEwIj4KICAgIHskZW50cnktPmRldGFpbHN9CiAgPC9kaXY+CjwvZGl2Pgp7L2lmfQoKeyogYWNjZXNzaW5nIGFsbCBvZiB0aGUgZmllbGRzIGluIGEgbGlzdCAqfQp7aWYgaXNzZXQoJGVudHJ5LT5maWVsZHMpICYmIGNvdW50KCRlbnRyeS0+ZmllbGRzKX0KICA8ZmllbGRzZXQ+CiAgICA8bGVnZW5kPkN1c3RvbSBGaWVsZHM8L2xlZ2VuZD4KICAgIHtmb3JlYWNoICRlbnRyeS0+ZmllbGRzIGFzICRmaWVsZH0KICAgICAgIDxkaXYgY2xhc3M9InJvdyBwcm9kdWN0X2RldGFpbF9maWVsZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tMiI+eyRmaWVsZC0+bmFtZX06PC9kaXY+CgkgIDxkaXYgY2xhc3M9ImNvbC1zbS0xMCI+CiAgICAgICAgICAgIHskUHJvZHVjdHMtPmxhbmcoJ3R5cGUnKX06IHskZmllbGQtPnR5cGV9PGJyLz4KCSAgICB7aWYgIWlzX2FycmF5KCRmaWVsZC0+dmFsdWUpfQogICAgICAgICAgICAgIHskUHJvZHVjdHMtPmxhbmcoJ3ZhbHVlJyl9OiB7JGZpZWxkLT52YWx1ZX08YnIvPgoJICAgIHsvaWZ9CiAgICAgICAgICAgIHtpZiAkZmllbGQtPnR5cGUgPT0gJ2ltYWdlJyAmJiBpc3NldCgkZmllbGQtPnRodW1ibmFpbCl9CiAgICAgICAgICAgICAgPGltZyBzcmM9InskZW50cnktPmZpbGVfbG9jYXRpb259L3skZmllbGQtPnRodW1ibmFpbH0iIGFsdD0ieyRmaWVsZC0+dmFsdWV9Ii8+CiAgICAgICAgICAgIHsvaWZ9CgkgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgey9mb3JlYWNofQogIDwvZmllbGRzZXQ+CnsvaWZ9Cgp7KiBwcmludCBvdXQgYXR0cmlidXRlcyAqfQp7aWYgaXNzZXQoJGVudHJ5LT5hdHRyaWJ1dGVzKX0KICA8ZmllbGRzZXQ+CiAgICA8bGVnZW5kPkF0dHJpYnV0ZXM8L2xlZ2VuZD4KICAgIDx0YWJsZT4KICAgICAgPHRoZWFkPgogICAgICAgIDx0cj4KICAgICAgICAgIDx0aD5UZXh0PC90aD4KICAgICAgICAgIDx0aD5Ta3U8L3RoPgogICAgICAgICAgPHRoPkFkanVzdG1lbnQ8L3RoPgogICAgICAgIDwvdHI+CiAgICAgIDwvdGhlYWQ+CiAgICAgIDx0Ym9keT4KICAgICAge2ZvcmVhY2ggZnJvbT0kZW50cnktPmF0dHJpYnV0ZXMga2V5PSduYW1lJyBpdGVtPSdhdHRyaWInfQogICAgICAgIDx0cj4KICAgICAgICAgIDx0ZD57JGF0dHJpYi50ZXh0fTwvdGQ+CiAgICAgICAgICA8dGQ+eyRhdHRyaWIuc2t1fTwvdGQ+CiAgICAgICAgICA8dGQ+eyRhdHRyaWIuYWRqdXN0bWVudH08L3RkPgogICAgICAgICA8L3RyPgogICAgICB7L2ZvcmVhY2h9CiAgICAgIDwvdGJvZHk+CiAgICA8L3RhYmxlPgogIDwvZmllbGRzZXQ+CnsvaWZ9Cgp7KiBwcmludCBvdXQgdGhlIGNhdGVnb3JpZXMgKn0Ke2lmIGlzc2V0KCRlbnRyeS0+Y2F0ZWdvcmllcyl9CiAgPGZpZWxkc2V0PgogICAgPGxlZ2VuZD5DYXRlZ29yaWVzOjwvbGVnZW5kPgogICAge2ZvcmVhY2ggZnJvbT0kZW50cnktPmNhdGVnb3JpZXMgaXRlbT0nY2F0ZWdvcnknfQogICAgPGRpdiBjbGFzcz0icm93IHByb2R1Y3RfZGV0YWlsX2NhdGVnb3J5Ij48cD4KICAgICAge21vZHVsZV9hY3Rpb25fdXJsIGNhdGVnb3J5aWQ9JGNhdGVnb3J5LT5pZCB1cmxvbmx5PTEgYXNzaWduPSdjYXRlZ29yeV92aWV3X3VybCd9CiAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS0yIj48YSBocmVmPSJ7JGNhdGVnb3J5X3ZpZXdfdXJsfSI+eyRjYXRlZ29yeS0+bmFtZX0gPGVtPihpZD17JGNhdGVnb3J5LT5pZH0pPC9lbT48L2E+OjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tMTAiPgogICAgICAgIHsqIGlmIHRoZXJlIGFyZSBkYXRhIGZpZWxkcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBjYXRlZ29yeSwgZGlzcGxheSB0aGVtIHRvbyAqfQogICAgICAgIHtpZiBpc3NldCgkY2F0ZWdvcnktPmRhdGEpICYmIGNvdW50KCRjYXRlZ29yeS0+ZGF0YSl9CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0X2RldGFpbF9jYXRlZ29yeV9maWVsZHMiPgogICAgICAgICAgICA8c3Ryb25nPnskUHJvZHVjdHMtPkxhbmcoJ2RhdGEnKX08L3N0cm9uZz48YnIvPgogICAgICAgICAgICB7Zm9yZWFjaCBmcm9tPSRjYXRlZ29yeS0+ZGF0YSBpdGVtPSdvbmVkYXRhaXRlbSd9CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdF9kZXRhaWxfY2F0ZWdvcnlfb25lZmllbGQiPgogICAgICAgICAgICAgIHtpZiAkb25lZGF0YWl0ZW0uZmllbGRfdHlwZSA9PSAnaW1hZ2UnfQogICAgICAgICAgICAgICAgPGEgaHJlZj0ieyRjYXRlZ29yeS0+ZmlsZV9sb2NhdGlvbn0veyRvbmVkYXRhaXRlbS5maWVsZF92YWx1ZX0iPjxpbWcgc3JjPSJ7JGNhdGVnb3J5LT5maWxlX2xvY2F0aW9ufS90aHVtYl97JG9uZWRhdGFpdGVtLmZpZWxkX3ZhbHVlfSIgYWx0PSJ0aHVtYiIgLz48L2E+PGJyLz4KICAgICAgICAgICAgICB7ZWxzZWlmICRvbmVkYXRhaXRlbS5maWVsZF90eXBlID09ICdmaWxlJ30KICAgICAgICAgICAgICAgIDxhIGhyZWY9InskY2F0ZWdvcnktPmZpbGVfbG9jYXRpb259L3skb25lZGF0YWl0ZW0uZmllbGRfdmFsdWV9Ij57JG9uZWRhdGFpdGVtLmZpZWxkX3ZhbHVlfTwvYT48YnIvPgogICAgICAgICAgICAgIHtlbHNlfQogICAgICAgICAgICAgICAgPHN0cm9uZz57JG9uZWRhdGFpdGVtLmZpZWxkX3Byb21wdH08L3N0cm9uZz46IHskb25lZGF0YWl0ZW0uZmllbGRfdmFsdWV9PGJyLz4KICAgICAgICAgICAgICB7L2lmfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICB7L2ZvcmVhY2h9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICB7L2lmfQogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgey9mb3JlYWNofQogIDwvZmllbGRzZXQ+CnsvaWZ9Cgo8ZGl2PnsqIC5Qcm9kdWN0RGlyZWN0b3J5SXRlbSAqfQoKeyogZGlzcGxheSB0aGUgY2FydAp7Q2FydDIgc2t1PSRlbnRyeS0+c2t1fQoqfQoKCnsqIGNyZWF0ZSBhIGxpbmsgYmFjayB0byB0aGUgdG9wIG9mIHRoZSBwYWdlICp9CnthbmNob3IgYW5jaG9yPSdwcm9kdWN0X25hbWUnIHRleHQ9JFByb2R1Y3RzLT5MYW5nKCdyZXR1cm5fdG9fdG9wJykgdGl0bGU9JFByb2R1Y3RzLT5MYW5nKCdyZXR1cm5fdG9fdG9wJyl9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_frontendform_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2NnZXJyb3J9eyRtZXNzYWdlfXsvY2dlcnJvcn0KeyRzdGFydGZvcm19CiAgICA8ZGl2IGNsYXNzPSJwYWdlcm93Ij4KICAgIDxkaXYgY2xhc3M9InJvd3RleHQiPnskbmFtZXRleHR9PC9kaXY+Cgk8ZGl2IGNsYXNzPSJyb3dpbnB1dCI+eyRpbnB1dG5hbWV9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGFnZXJvdyI+CgkJICAgPGRpdiBjbGFzcz0icm93dGV4dCI+eyRhZGRyZXNzdGV4dH08L2Rpdj4KCQkgICA8ZGl2IGNsYXNzPSJyb3dpbnB1dCI+eyRpbnB1dGFkZHJlc3N9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGFnZXJvdyI+CgkJICAgPGRpdiBjbGFzcz0icm93dGV4dCI+eyR0ZWxlcGhvbmV0ZXh0fTwvZGl2PgoJCSAgIDxkaXYgY2xhc3M9InJvd2lucHV0Ij57JGlucHV0dGVsZXBob25lfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhZ2Vyb3ciPgoJCSAgIDxkaXYgY2xhc3M9InJvd3RleHQiPnskZmF4dGV4dH08L2Rpdj4KCQkgICA8ZGl2IGNsYXNzPSJyb3dpbnB1dCI+eyRpbnB1dGZheH08L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlcm93Ij4KCQkgICA8ZGl2IGNsYXNzPSJyb3d0ZXh0Ij57JGVtYWlsdGV4dH08L2Rpdj4KCQkgICA8ZGl2IGNsYXNzPSJyb3dpbnB1dCI+eyRpbnB1dGVtYWlsfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhZ2Vyb3ciPgoJCSAgIDxkaXYgY2xhc3M9InJvd3RleHQiPnskd2Vic2l0ZXRleHR9PC9kaXY+CgkJICAgPGRpdiBjbGFzcz0icm93aW5wdXQiPnskaW5wdXR3ZWJzaXRlfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhZ2Vyb3ciPgoJCSAgIDxkaXYgY2xhc3M9InJvd3RleHQiPnskZGV0YWlsc3RleHR9PC9kaXY+CgkJICAgPGRpdiBjbGFzcz0icm93aW5wdXQiPnskaW5wdXRkZXRhaWxzfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhZ2Vyb3ciPgoJCSAgIDxkaXYgY2xhc3M9InJvd3RleHQiPnskaW1hZ2V0ZXh0fTwvZGl2PgoJCSAgIDxkaXYgY2xhc3M9InJvd2lucHV0Ij57JGltYWdlY3VycmVudH17JGltYWdlY3VycmVudGhpZGRlbn17JGltYWdldXBsb2FkfXskZGVsZXRldGV4dH17JGltYWdlY3VycmVudGRlbGV0ZX08L2Rpdj4KICAgICAgICA8L2Rpdj4KCSAgICB7aWYgJGN1c3RvbWZpZWxkc2NvdW50IGd0IDB9CgkJICAgIHtmb3JlYWNoIGZyb209JGN1c3RvbWZpZWxkcyBpdGVtPWN1c3RvbWZpZWxkfQoJCQk8ZGl2IGNsYXNzPSJwYWdlcm93Ij4KCQkJCTxwIGNsYXNzPSJyb3d0ZXh0Ij57JGN1c3RvbWZpZWxkLT5uYW1lfTo8L3A+CgkJCQk8cCBjbGFzcz0icm93aW5wdXQiPnskY3VzdG9tZmllbGQtPmlucHV0X2JveH08L3A+CgkJCTwvZGl2PgoJCSAgICB7L2ZvcmVhY2h9CiAgCSAgICB7L2lmfQogICAJICAgIHtpZiAkY2F0ZWdvcmllc2NvdW50IGd0IDB9CgkJICB7Zm9yZWFjaCBmcm9tPSRjYXRlZ29yaWVzIGl0ZW09Y2F0ZWdvcnl9CgkJCTxkaXYgY2xhc3M9InBhZ2Vvcm93Ij4KCQkJCTxwIGNsYXNzPSJyb3d0ZXh0Ij57JGNhdGVnb3J5LT5uYW1lfTo8L3A+CgkJCQk8cCBjbGFzcz0icm93aW5wdXQiPnskY2F0ZWdvcnktPmNoZWNrYm94fTwvcD4KCQkJPC9kaXY+CgkJICB7L2ZvcmVhY2h9CgkgICAgey9pZn0KCSAgICA8ZGl2IGNsYXNzPSJwYWdlcm93Ij4KCQkgIDxwIGNsYXNzPSJyb3d0ZXh0Ij4mbmJzcDs8L3A+CgkJICA8cCBjbGFzcz0icm93aW5wdXQiPnskaGlkZGVufXskc3VibWl0fXskY2FuY2VsfTwvcD4KCSAgICA8L2Rpdj4KICAgICAgeyRlbmRmb3JtfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_search_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogc2VhcmNoIHRlbXBsYXRlICp9CnsqIHZhbGlkIGZpZWxkcyBhcmU6CiAgIHskYWN0aW9uaWR9bm90cHJldHR5ID0gKGludGV0ZXIpIHR1cm4gb2ZmIHByZXR0eSB1cmxzIGZvciBkZXRhaWwgdmlld3MuCiAgIHskYWN0aW9uaWR9cGFnZWxpbWl0IC0gKGludGVnZXIpIG92ZXJyaWRlIHBhZ2UgbGltaXQgc2V0dGluZy4gIG1heGltdW0gdmFsdWUgaXMgNTAwLiBNaW5pbXVtIHZhbHVlIGlzIDEuCiAgIHskYWN0aW9uaWR9c29ydGJ5IC0gKHN0cmluZykgU2VlIHRoZSBzb3J0YnkgcGFyYW0gaW4gdGhlIG1vZHVsZSBoZWxwIGZvciB2YWxpZCB2YWx1ZXMuCiAgIHskYWN0aW9uaWR9c29ydG9yZGVyIC0gKHN0cmluZykgU2VlIHRoZSBzb3J0b3JkZXIgcGFyYW0gaW4gdGhlIG1vZHVsZSBoZWxwIGZvciB2YWxpZCB2YWx1ZXMuCiAgIHskYWN0aW9uaWR9c3VtbWFyeXRlbXBsYXRlIC0gKHN0cmluZykgU2VlIHRoZSBzdW1tYXJ5dGVtcGxhdGUgcGFyYW0gaW4gdGhlIG1vZHVsZSBoZWxwIGZvciB2YWxpZCB2YWx1ZXMuCiAgIHskYWN0aW9uaWR9ZGV0YWlsdGVtcGxhdGUgLSAoc3RyaW5nKSBTZWUgdGhlIGRldGFpbHRlbXBsYXRlIHBhcmFtIGluIHRoZSBtb2R1bGUgaGVscCBmb3IgdmFsaWQgdmFsdWVzLiAobm90IHZhbGlkIGlmIHByZXR0eSB1cmxzIGFyZSBlbmFibGVkKQogICB7JGFjdGlvbmlkfWRldGFpbHBhZ2UgLSAoc3RyaW5nKSBTZWUgdGhlIGRldGFpbHBhZ2UgcGFyYW0gaW4gdGhlIG1vZHVsZSBoZWxwIGZvciB2YWxpZCB2YWx1ZXMuIChub3QgdmFsaWQgaWYgcHJldHR5IHVybHMgYXJlIGVuYWJsZWQpCgogICB7JGFjdGlvbmlkfWNkX3N1Ym1pdCAgICAtIChzdHJpbmcpIGZvciBhIHN1Ym1pdCBidXR0b24KICAgeyRhY3Rpb25pZH1jZF9jYW5jZWwgICAgLSAoc3RyaW5nKSBmb3IgYSBjYW5jZWwgYnV0dG9uCiAgIHskYWN0aW9uaWR9Y2RfcHJvZG5hbWUgIC0gKHN0cmluZykgZm9yIHRleHQgZmllbGQgdG8gc2VhcmNoIGFnYWluc3QgcHJvZHVjdCBuYW1lCiAgIHskYWN0aW9uaWR9Y2RfcHJvZGRlc2MgIC0gKHN0cmluZykgZm9yIHRleHQgZmllbGQgdG8gc2VhcmNoIGFnYWluc3QgcHJvZHVjdCBkZXNjcmlwdGlvbi4KICAgeyRhY3Rpb25pZH1jZF9wcm9kcHJpY2UgLSAoc2VsZWN0KSBmb3IgcHJpY2Ugc2VhcmNoaW5nLgogICAgIG9wdGlvbnMgbXVzdCBiZSBvZiB0eXBlIHN0cmluZyB3aXRoIGhpZ2ggbG93IGxpbWl0cyBzZXBhcmF0ZWQgYnkgYSA6CiAgICAgaS5lOiAgIDEwMDA6MjAwMAogICAgIGEgc3BlY2lhbCB2YWx1ZSBvZiAtMSBjYW4gYmUgdXNlZCB0byBpbmRpY2F0ZSBhbnkgcHJpY2UuCiAgIHskYWN0aW9uaWR9Y2RfcHJvZHByaWNlX21pbiAtIChzdHJpbmcpIGZvciBtaW5pbXVtIHByaWNlIHZhbHVlCiAgIHskYWN0aW9uaWR9Y2RfcHJvZHByaWNlX21heCAtIChzdHJpbmcpIGZvciBtaW5pbXVtIHByaWNlIHZhbHVlCiAgICAgbm90ZTogaWYgcHJvZHByaWNlIGlzIHNwZWNpZmllZCwgcHJvZHByaWNlX21pbiBhbmQgcHJvZHByaWNlX21heCB3aWxsIGJlIGlnbm9yZWQKICAgeyRhY3Rpb25pZH1jZF9hbGxhbnkgICAgLSAoaW50KSB0byBpbmRpY2F0ZSB3ZXRoZXIgYWxsIG9mIHRoZQogICAgIGNvbmRpdGlvbnMgbXVjaCBtYXRjaCwgb3IgaWYgYW55IG9uZSBvZiB0aGVtIG1heS4KICAgeyRhY3Rpb25pZH1jZF9wcm9kdmFsdWVbXSAtIChhcnJheSkgZmllbGQgdmFsdWVzLgogICAgIHRoZSBrZXkgZm9yIGVhY2ggZWxlbWVudCBtdXN0IGJlIHRoZSBmaWVsZCBuYW1lIChub3QgdGhlIHByb21wdCkKICAgICBpLmU6ICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9wcm9kdmFsdWVbbXlmaWVsZF0iIHNpemU9IjEwIi8+CiAgICAgdmFsdWVzIGNhbiBlaXRoZXIgYmUgc2luZ2xlIHZhbHVlcyB0byBpbmRpY2F0ZSBhbiBleGFjdCB2YWx1ZSBtYXRjaCBvciBjYW4gYmUgaW4gbnVtZXJvdXMgZm9ybWF0czoKICAgICB3aWxkY2FyZCBjaGFyYWN0ZXJzICglIG9yICopIGNhbiBiZSB1c2VkIGZvciBzdWJzdHJpbmcgbWF0Y2hlcyBvbiBmaWVsZCB2YWx1ZXMKICAgICBpLmU6ICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWNkX3Byb3B2YWxbbXlmaWVsZF0iIHZhbHVlPSIqZm9vKiIvPgoKICAgICBtaW52YWw6IC0tIHNwZWNpZnkgYSBtaW5pbXVtIG51bWVyaWMgdmFsdWUKICAgICA6bWF4dmFsIC0tIHNwZWNpZnkgYSBtYXhpbXVtIG51bWVyaWMgdmFsdWUKICAgICBtaW52YWw6bWF4dmFsIC0tIHNwZWNpZnkgYSByYW5nZSBvZiBudW1lcmljIHZhbHVlcwogICAgIDo6bnVsbDo6IC0tIHNlYXJjaCBmb3IgbnVsbCB2YWx1ZXMKICAgICA6Om5vdG51bGw6OiAtLSBzZWFyY2ggZm9yIGZpZWxkcyB0aGF0IGhhdmUgYW55IHZhbHVlCiAgICAgaS5lOiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWNkX3Byb3B2YWxbbXlmaWVsZF0iIHZhbHVlPSI1OjEwIi8+CiAgIHskYWN0aW9uaWR9Y2RfcHJvZHZhbHVlXzxmbGRuYW1lPl9taW4gLSBNaW5pbXVtIHZhbHVlIHRvIHNlYXJjaCBmb3IgaW4gdGhlIDxmbGRuYW1lPiBmaWVsZC4KICAgeyRhY3Rpb25pZH1jZF9wcm9kdmFsdWVfPGZsZG5hbWU+X21heCAtIE1heGltdW0gdmFsdWUgdG8gc2VhcmNoIGZvciBpbiB0aGUgPGZsZG5hbWU+IGZpZWxkLgogICAgIGkuZTogIFNlbGVjdCBNaW4gVmFsdWU6ICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9wcm9wdmFsX215ZmllbGRfbWluIiBzaXplPSIxMCIvPjxici8+CiAgICAgICAgICAgU2VsZWN0IE1heCBWYWx1ZTogIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX3Byb3B2YWxfbXlmaWVsZF9tYXgiIHNpemU9IjEwIi8+Cip9Cgo8ZGl2IGlkPSJwcm9kX3NlYXJjaGZvcm0iPgp7JGZvcm1zdGFydH0KCjxkaXYgY2xhc3M9InJvdyI+CiAgPHAgY2xhc3M9InJvd19wcm9tcHQiPnskbW9kLT5MYW5nKCdzZWFyY2hfZXhwcicpfTo8L3A+CiAgPHAgY2xhc3M9InJvd19pbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y2RfYWxsYW55Ij4KICAgICAgPG9wdGlvbiB2YWx1ZT0iMCI+eyRtb2QtPkxhbmcoJ2FsbCcpfTwvb3B0aW9uPgogICAgICA8b3B0aW9uIHZhbHVlPSIxIj57JG1vZC0+TGFuZygnYW55Jyl9PC9vcHRpb24+CiAgICA8L3NlbGVjdD4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icm93Ij4KICA8cCBjbGFzcz0icm93X3Byb21wdCI+eyRtb2QtPkxhbmcoJ3NlYXJjaF9uYW1lJyl9OjwvcD4KICA8cCBjbGFzcz0icm93X2lucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX3Byb2RuYW1lIiBzaXplPSI0MCIgbWF4bGVuZ3RoPSIyNTUiLz4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icm93Ij4KICA8cCBjbGFzcz0icm93X3Byb21wdCI+eyRtb2QtPkxhbmcoJ3NlYXJjaF9kZXNjcmlwdGlvbicpfTo8L3A+CiAgPHAgY2xhc3M9InJvd19pbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9wcm9kZGVzYyIgc2l6ZT0iNDAiIG1heGxlbmd0aD0iMjU1Ii8+CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InJvdyI+CiAgPHAgY2xhc3M9InJvd19wcm9tcHQiPnskbW9kLT5MYW5nKCdzZWFyY2hfcHJpY2UnKX06PC9wPgogIDxwIGNsYXNzPSJyb3dfaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWNkX3Byb2RwcmljZSI+CiAgICAgIDxvcHRpb24gdmFsdWU9Ii0xIj57JG1vZC0+TGFuZygnYW55Jyl9PC9vcHRpb24+CiAgICAgIDxvcHRpb24gdmFsdWU9IjA6OTkuOTkiPkxlc3MgVGhhbiAkMTAwPC9vcHRpb24+CiAgICAgIDxvcHRpb24gdmFsdWU9IjEwMDo5OTkuOTkiPiQxMDAgdG8gJDEwMDA8L29wdGlvbj4KICAgICAgPG9wdGlvbiB2YWx1ZT0iMTAwMDo5OTk5Ljk5Ij4kMTAwMCB0byAkMTAwMDA8L29wdGlvbj4KICAgICAgPG9wdGlvbiB2YWx1ZT0iMTAwMDA6OTk5OTk5OSI+R3JlYXRlciB0aGFuICQxMDAwMDwvb3B0aW9uPgogICAgPC9zZWxlY3Q+CiAgPC9wPgo8L2Rpdj4KCntpZiBpc3NldCgkc2VhcmNocHJvcHMpfQp7KiBidWlsZGluZyBpbnB1dHMgZm9yIGFsbCBhZGRyZXNzYWJsZSBmaWVsZHMgaW4gYSBsb29wICp9Cntmb3JlYWNoIGZyb209JHNlYXJjaHByb3BzIGtleT0nZmxkbmFtZScgaXRlbT0nb2JqJ30KPGRpdiBjbGFzcz0icm93Ij4KICA8cCBjbGFzcz0icm93X3Byb21wdCI+eyRvYmotPnByb21wdH06PC9wPgogIDxwIGNsYXNzPSJyb3dfaW5wdXQiPgogICAge2lmICRvYmotPnR5cGUgPT0gJ3RleHQnfQogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9wcm9kdmFsdWVbeyRmbGRuYW1lfV0iIHNpemU9IjQwIiBtYXhsZW5ndGg9IjQwIi8+CiAgICB7ZWxzZSBpZiAkb2JqLT50eXBlID09ICdkcm9wZG93bid9CiAgICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1jZF9wcm9kdmFsdWVbeyRmbGRuYW1lfV0iPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JG9iai0+b3B0aW9uc30KICAgICAgPC9zZWxlY3Q+CiAgICB7L2lmfQogIDwvcD4KPC9kaXY+CnsvZm9yZWFjaH0KCnsqIGFjY2Vzc2luZyBhIHNlYXJjaGFibGUgZmllbGQgYnkgbmFtZSAqfQp7aWYgaXNzZXQoJHNlYXJjaHByb3BzLm15ZmllbGQpfQogIHskb2JqPSRzZWFyY2hwcm9wcy5teWZpZWxkfQo8ZGl2IGNsYXNzPSJyb3ciPgogIDxwIGNsYXNzPSJyb3dfcHJvbXB0Ij57JG9iai0+cHJvbXB0fTo8L3A+CiAgPC9wIGNsYXNzPSJyb3dfaW5wdXQiPgogICAgTWluOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9wcm9wdmFsdWVfbXlmaWVsZF9taW4iIHNpemU9IjMiPgogICAgTWF4OiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9wcm9wdmFsdWVfbXlmaWVsZF9tYXgiIHNpemU9IjMiPgogIDwvcD4KPC9kaXY+CnsvaWZ9Cgp7L2lmfQoKPGRpdiBjbGFzcz0icm93Ij4KICA8cCBjbGFzcz0icm93X3Byb21wdCI+PC9wPgogIDxwIGNsYXNzPSJyb3dfaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX2NhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iLz4KICA8L3A+CjwvZGl2PgoKCnskZm9ybWVuZH0KPC9kaXY+eyogcHJvZF9zZWFyY2hmb3JtICp9]]></data>
	</file>
	<file>
	  <filename>/templates/orig_summary_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRwYWdlY291bnQpICYmICRwYWdlY291bnQgZ3QgMX0KeyRmaXJzdGxpbmt9Jm5ic3A7eyRwcmV2bGlua30mbmJzcDsmbmJzcDt7JHBhZ2V0ZXh0fSB7JGN1cnBhZ2V9IHskb2Z0ZXh0fSB7JHBhZ2Vjb3VudH0mbmJzcDsmbmJzcDt7JG5leHRsaW5rfSZuYnNwO3skbGFzdGxpbmt9CnsvaWZ9Cgp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQogICB7KiAKICAgICB0aGUgc3VtbWFyeSB0ZW1wbGF0ZSBoYXMgYWNjZXNzIHRvIGN1c3RvbSBmaWVsZHMgdmlhIHRoZSAkZW50cnktPmZpZWxkcyBoYXNoCiAgICAgYW5kIHRvIGNhdGVnb3JpZXMgdmlhIHRoZSAkZW50cnktPmNhdGVnb3JpZXMgYXJyYXkgb2Ygb2JqZWN0cy4gIEFsc28KICAgICBhdHRyaWJ1dGUgaW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlIHZpYSAkZW50cnktPmF0dHJpYnV0ZXMuCiAgICAgeW91IHNob3VsZCB1c2UgdGhlIGdldF90ZW1wbGF0ZV92YXJzIGFuZCB0aGUgcHJpbnRfciBtb2RpZmllciB0byBzZWUKICAgICB3aGF0IGlzIGF2YWlsYWJsZQogICAgKn0KICA8ZGl2IGNsYXNzPSJQcm9kdWN0RGlyZWN0b3J5SXRlbSI+CiAgICAgPGEgaHJlZj0ieyRlbnRyeS0+ZGV0YWlsX3VybH0iPnskZW50cnktPnByb2R1Y3RfbmFtZX08L2E+Jm5ic3A7KHskZW50cnktPndlaWdodH17JHdlaWdodF91bml0c30pJm5ic3A7Jm5ic3A7eyRjdXJyZW5jeV9zeW1ib2x9eyRlbnRyeS0+cHJpY2V9CiAgICAge2lmIGlzc2V0KCRlbnRyeS0+Y2F0ZWdvcmllcyl9CiAgICAgICBDYXRlZ29yaWVzOiZuYnNwOwogICAgICAge2ZvcmVhY2ggZnJvbT0kZW50cnktPmNhdGVnb3JpZXMgaXRlbT0nY2F0ZWdvcnknfQogICAgICAgICB7JGNhdGVnb3J5LT5uYW1lfSwmbmJzcDsKICAgICAgIHsvZm9yZWFjaH0KICAgICAgIDxici8+CiAgICAgey9pZn0gICAgIAogIDwvZGl2PgoKICB7KiBpbmNsdWRlIHRoZSBjYXJ0IAogIDxkaXY+CiAge0NhcnQyIHNrdT0kZW50cnktPnNrdX0gCiAgPC9kaXY+CiAgKn0KCnsvZm9yZWFjaH0K]]></data>
	</file>
	<file>
	  <filename>/templates/prefs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19CjxmaWVsZHNldD4KPGxlZ2VuZD57JG1vZC0+TGFuZygnZ2VuZXJhbF9zZXR0aW5ncycpfTo8L2xlZ2VuZD4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfdXJscHJlZml4Jyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH11cmxwcmVmaXgiIHNpemU9IjIwIiBtYXhsZW5ndGg9IjIwIiB2YWx1ZT0ieyR1cmxwcmVmaXh9Ii8+PC9wPgo8L2Rpdj4Ke2lmIGlzc2V0KCRpbnB1dF9jdXJyZW5jeXN5bWJvbCl9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9jdXJyZW5jeXN5bWJvbH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfY3VycmVuY3lzeW1ib2x9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3dlaWdodHVuaXRzfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF93ZWlnaHR1bml0c308L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfbGVuZ3RodW5pdHN9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2xlbmd0aHVuaXRzfTwvcD4KPC9kaXY+CnsvaWZ9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXNldGVjb21oYW5kbGVycyIgdmFsdWU9InskbW9kLT5MYW5nKCdidG5fc2V0ZWNvbWhhbmRsZXJzJyl9Ii8+CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fc2V0ZWNvbWhhbmRsZXJzJyl9CiAgPC9wPgo8L2Rpdj4KPC9maWVsZHNldD4KCjxmaWVsZHNldD4KPGxlZ2VuZD57JG1vZC0+TGFuZygncHJvZHVjdF9lZGl0aW5nX3NldHRpbmdzJyl9OjwvbGVnZW5kPgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9za3VfcmVxdWlyZWQnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT0nc2t1cmVxdWlyZWQnIHNlbGVjdGVkPSRza3VyZXF1aXJlZH0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9kZWZhdWx0X3RheGFibGUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdGF4YWJsZX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9kZWZhdWx0X3N0YXR1cycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zdGF0dXN9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfYWxsb3dlZF9maWxldHlwZXN9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZGVsZXRlcHJvZHVjdGZpbGVzJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2RlbGV0ZXByb2R1Y3RmaWxlc308L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9zbHVndGVtcGxhdGUnKX06PC9wPgogIDxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8dGV4dGFyZWEgbmFtZT0ieyRhY3Rpb25pZH1zbHVndGVtcGxhdGUiIHJvd3M9IjMiIGNvbHM9IjgwIj57JHNsdWd0ZW1wbGF0ZX08L3RleHRhcmVhPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fc2x1Z3RlbXBsYXRlJyl9CiAgPC9kaXY+CjwvZGl2Pgo8L2ZpZWxkc2V0PgoKPGZpZWxkc2V0Pgo8bGVnZW5kPnskbW9kLT5MYW5nKCdwcm9kdWN0X3N1bW1hcnlfc2V0dGluZ3MnKX06PC9sZWdlbmQ+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X3N1bW1hcnlfbmV3ZGVmYXVsdCcpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPSdzdW1tYXJ5X25ld2RlZmF1bHQnIHNlbGVjdGVkPSRzdW1tYXJ5X25ld2RlZmF1bHR9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfc3VtbWFyeXBhZ2VsaW1pdCcpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1zdW1tYXJ5X3BhZ2VsaW1pdCIgc2l6ZT0iNSIgbWF4bGVuZ3RoPSI1IiB2YWx1ZT0ieyRzdW1tYXJ5X3BhZ2VsaW1pdH0iLz4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfc3VtbWFyeXNvcnRvcmRlcn06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc3VtbWFyeXNvcnRvcmRlcn08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfc3VtbWFyeXNvcnRpbmd9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3N1bW1hcnlzb3J0aW5nfTwvcD4KPC9kaXY+CjwvZmllbGRzZXQ+Cgo8ZmllbGRzZXQ+CjxsZWdlbmQ+eyRtb2QtPkxhbmcoJ3Byb2R1Y3RfZGV0YWlsX3NldHRpbmdzJyl9OjwvbGVnZW5kPgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF91c2VoaWVycGF0aHVybHMnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgeyRpbnB1dF91c2VoaWVycGF0aHVybHN9CiAgICA8YnIvPnskbW9kLT5MYW5nKCdkZXByZWNhdGVkJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2RldGFpbHBhZ2V9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2RldGFpbHBhZ2V9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfdXNlX2RldGFpbHBhZ2VfZm9yX3NlYXJjaCcpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7JGlucHV0X3VzZV9kZXRhaWxwYWdlX2Zvcl9zZWFyY2h9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfbm90Zm91bmRfYmVoYXZpb3InKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfXByb2Rub3Rmb3VuZCI+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JG5vdGZvdW5kX29wdHMgc2VsZWN0ZWQ9JHByb2Rub3Rmb3VuZH0KICAgIDwvc2VsZWN0PgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX3Byb2Rub3Rmb3VuZCcpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X25vdGZvdW5kX3BhZ2UnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgeyRpbnB1dF9wcm9kbm90Zm91bmRwYWdlfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X25vdGZvdW5kX21zZycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8dGV4dGFyZWEgbmFtZT0ieyRhY3Rpb25pZH1wcm9kbm90Zm91bmRtc2ciIHJvd3M9IjUiPnskcHJvZG5vdGZvdW5kbXNnfTwvdGV4dGFyZWE+CiAgPC9wPgo8L2Rpdj4KPC9maWVsZHNldD4KCjxmaWVsZHNldD4KPGxlZ2VuZD57JG1vZC0+TGFuZygnaGllcmFyY2h5X3NldHRpbmdzJyl9OjwvbGVnZW5kPgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9oaWVycGFnZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9oaWVycGFnZX08YnIvPgogIHskbW9kLT5MYW5nKCdpbmZvX2hpZXJwYWdlJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfcHJldHR5aGllcnVybHMnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPntjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9J3ByZXR0eWhpZXJ1cmxzJyBzZWxlY3RlZD0kcHJldHR5aGllcnVybHN9PGJyLz4KICB7JG1vZC0+TGFuZygnaW5mb19wcmV0dHloaWVydXJscycpfQogIDwvcD4KPC9kaXY+CjwvZmllbGRzZXQ+Cgo8ZmllbGRzZXQ+CjxsZWdlbmQ+eyRtb2QtPkxhbmcoJ2ltYWdlX2hhbmRsaW5nX3NldHRpbmdzJyl9OjwvbGVnZW5kPgo8cCBzdHlsZT0iY29sb3I6IHJlZDsiPnskbW9kLT5MYW5nKCdpbmZvX2ltYWdlc3R1ZmZfZGVwcmVjYXRlZCcpfTwvcD4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfYWxsb3dlZF9pbWFnZXR5cGVzJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2FsbG93ZWRfaW1hZ2V0eXBlc308L3A+CjwvZGl2Pgo8L2ZpZWxkc2V0PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH08L3A+CjwvZGl2PgoKeyRlbmRmb3JtfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/productlist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAoqfQoKPGRpdiBpZD0iZmlsdGVyZm9ybSI+CnskZm9ybXN0YXJ0fQo8ZmllbGRzZXQgc3R5bGU9IndpZHRoOiA0OSU7IGZsb2F0OiBsZWZ0OyI+CiAgPGxlZ2VuZD57JG1vZC0+TGFuZygnZmlsdGVycycpfTombmJzcDs8L2xlZ2VuZD4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvZHVjdG5hbWUnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1pbnB1dF9wcm9kdWN0bmFtZSIgdmFsdWU9InskZmlsdGVyLnByb2R1Y3RuYW1lfSIgbWF4bGVuZ3RoPSIyNTUiLz4KICAgICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fZmlsdGVyX3Byb2R1Y3RuYW1lJyl9CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3NrdScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWlucHV0X3NrdSIgdmFsdWU9InskZmlsdGVyLnNrdX0iIG1heGxlbmd0aD0iMTAiLz4KICAgICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fZmlsdGVyX3NrdScpfQogICAgPC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdoaWVyYXJjaHknKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9oaWVyYXJjaHl9Jm5ic3A7eyRtb2QtPkxhbmcoJ2luY2x1ZGVfY2hpbGRyZW4nKX0geyRpbnB1dF9jaGlsZHJlbn08L3A+CiAgPC9kaXY+CiAge2lmIGlzc2V0KCRjYXRlZ29yeV9saXN0KX0KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnY2F0ZWdvcnknKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1jYXRlZ29yaWVzW10iIG11bHRpcGxlPSJtdWx0aXBsZSIgc2l6ZT0iNSI+CiAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRjYXRlZ29yeV9saXN0IHNlbGVjdGVkPSRmaWx0ZXIuY2F0ZWdvcmllc30KICAgICAgPC9zZWxlY3Q+CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2V4Y2x1ZGVfY2F0ZWdvcmllcycpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2V4Y2x1ZGVjYXRzfTwvcD4KICA8L2Rpdj4KICB7L2lmfQogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwYWdlX2xpbWl0Jyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfcGFnZWxpbWl0fTwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4KPGZpZWxkc2V0IHN0eWxlPSJ3aWR0aDogNDclOyBmbG9hdDogcmlnaHQ7Ij4KICA8bGVnZW5kPnskbW9kLT5MYW5nKCd2aWV3Jyl9OiZuYnNwOzwvbGVnZW5kPgogIHtpZiBpc3NldCgkZmllbGRzX3ZpZXdhYmxlKX0KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygndmlld2FibGVfZmllbGRzJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2ZpZWxkc1tdIiBzaXplPSIzIiBtdWx0aXBsZT0ibXVsdGlwbGUiPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGZpZWxkc192aWV3YWJsZSBzZWxlY3RlZD0kZmlsdGVyLmN1c3RvbV9maWVsZHN9CiAgICAgIDwvc2VsZWN0PgogICAgPC9wPgogIDwvZGl2PgogIHsvaWZ9CgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdzb3J0X2J5Jyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc29ydGJ5fTwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnc29ydF9vcmRlcicpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3NvcnRvcmRlcn08L3A+CiAgPC9kaXY+CjwvZmllbGRzZXQ+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JG1vZC0+R2V0QWN0aW9uSWQoKX1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskbW9kLT5HZXRBY3Rpb25JZCgpfXJlc2V0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3Jlc2V0Jyl9Ij4KICA8L3A+CjwvZGl2Pgo8YnIvPgp7JGZvcm1lbmR9CjwvZGl2PjwhLS0gZmlsdGVyZm9ybSAtLT4KCgo8ZGl2IGlkPSJwcm9kdWN0bGlzdCI+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij57bGl0ZXJhbH0KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAkKCcjZmlsdGVyZm9ybScpLmhpZGUoKTsKICAkKCcjZmlsdGVyYm94JykuY2xpY2soZnVuY3Rpb24oKXsKICAgICQoJyNmaWx0ZXJmb3JtJykudG9nZ2xlKCk7CiAgfSk7CiAgJCgnI3NlbGVjdF9hbGxfcHJvZHVjdHMnKS5jbGljayhmdW5jdGlvbigpewogICAgdmFyIGNoZWNrZWQgPSAkKHRoaXMpLmF0dHIoJ2NoZWNrZWQnKTsKICAgIGlmKCBjaGVja2VkID09ICdjaGVja2VkJyApIHsKICAgICAgJCgnLm11bHRpc2VsZWN0JykuYXR0cignY2hlY2tlZCcsY2hlY2tlZCk7CiAgICB9IGVsc2UgewogICAgICAkKCcubXVsdGlzZWxlY3QnKS5yZW1vdmVBdHRyKCdjaGVja2VkJyk7CiAgICB9CiAgfSk7CiAgJCgnLm11bHRpc2VsZWN0JykuY2xpY2soZnVuY3Rpb24oKXsKICAgICQoJyNzZWxlY3RfYWxsX3Byb2R1Y3RzJykucmVtb3ZlQXR0cignY2hlY2tlZCcpOwogIH0pOwogICQoJyNidWxrYWN0aW9uX3N1Ym1pdCcpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICB2YXIgbGVuID0gJCgnI3Byb2R1Y3RsaXN0IHRib2R5IGlucHV0OmNoZWNrYm94OmNoZWNrZWQnKS5sZW5ndGg7CiAgICBpZiggbGVuID09IDAgKQogICAgewogICAgICBhbGVydCgney9saXRlcmFsfXskbW9kLT5MYW5nKCdub3RoaW5nX3NlbGVjdGVkJyl9e2xpdGVyYWx9Jyk7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIHJldHVybiB0cnVlOwogIH0pOwp9KTsKey9saXRlcmFsfTwvc2NyaXB0PgoKPGRpdiBjbGFzcz0iY19mdWxsIj4KICA8ZGl2IGNsYXNzPSJncmlkXzYiIHN0eWxlPSJwYWRkaW5nLWJvdHRvbTogMC4yNWVtOyI+CiAgICA8dWwgY2xhc3M9Im9wdGlvbi1tZW51LWhvcml6Ij4KICAgICAgPGxpPgogICAgICAgIDxhIGhyZWY9Inttb2R1bGVfYWN0aW9uX3VybCBhY3Rpb249YWRkcHJvZHVjdH0iPntjZ2ltYWdlIGltYWdlPSdpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZicgYWx0PScnfSB7JG1vZC0+TGFuZygnYWRkcHJvZHVjdCcpfTwvYT4KICAgICAgPC9saT4KICAgICAgPGxpPgogICAgICAgIDxhIGhyZWY9Inttb2R1bGVfYWN0aW9uX3VybCBhY3Rpb249aW1wb3J0cHJvZHVjdHN9Ij57Y2dpbWFnZSBpbWFnZT0naWNvbnMvc3lzdGVtL2ltcG9ydC5naWYnIGFsdD0nJ30geyRtb2QtPkxhbmcoJ2ltcG9ydF9mcm9tX2NzdicpfTwvYT4KICAgICAgPC9saT4KICAgICAge2lmICRpdGVtY291bnQgZ3QgMH0KICAgICAgICA8bGk+CiAgICAgICAgPGEgaHJlZj0ie21vZHVsZV9hY3Rpb25fdXJsIGFjdGlvbj1leHBvcnRjc3Z9Ij57Y2dpbWFnZSBpbWFnZT0naWNvbnMvc3lzdGVtL2V4cG9ydC5naWYnIGFsdD0nJ30geyRtb2QtPkxhbmcoJ2V4cG9ydF90b19jc3YnKX08L2E+CiAgICAgICAgPC9saT4KICAgICAgey9pZn0KICAgICAgPGxpPjxhIGlkPSJmaWx0ZXJib3giPntjZ2ltYWdlIGltYWdlPSdpY29ucy9zeXN0ZW0vdmlldy5naWYnIGFsdD0nJ30geyRtb2QtPkxhbmcoJ2ZpbHRlcicpfTwvYT48L2xpPgogICAgPC91bD4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0iZ3JpZF82Ij4KICAgIHtpZiAkaXRlbWNvdW50IGd0IDB9CiAgICAgIDxzcGFuIHN0eWxlPSJmbG9hdDogcmlnaHQ7IHRleHQtYWxpZ246IHJpZ2h0OyI+CiAgICAgIHtpZiBpc3NldCgkZmlyc3RwYWdlX3VybCl9CiAgICAgICAgPGEgaHJlZj0ieyRmaXJzdHBhZ2VfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdmaXJzdHBhZ2UnKX0iPnskbW9kLT5MYW5nKCdmaXJzdHBhZ2UnKX08L2E+CiAgICAgICAgPGEgaHJlZj0ieyRwcmV2cGFnZV91cmx9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ3ByZXZwYWdlJyl9Ij57JG1vZC0+TGFuZygncHJldnBhZ2UnKX08L2E+CiAgICAgIHsvaWZ9CiAgICAgIHtpZiBpc3NldCgkZmlyc3RwYWdlX3VybCkgfHwgaXNzZXQoJGxhc3RwYWdlX3VybCl9CiAgICAgICAgeyRtb2QtPkxhbmcoJ3BhZ2Vfb2YnLCRwYWdlbnVtYmVyLCRwYWdlY291bnQpfQogICAgICB7L2lmfQogICAgICB7aWYgaXNzZXQoJGxhc3RwYWdlX3VybCl9CiAgICAgICAgPGEgaHJlZj0ieyRuZXh0cGFnZV91cmx9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ25leHRwYWdlJyl9Ij57JG1vZC0+TGFuZygnbmV4dHBhZ2UnKX08L2E+CiAgICAgICAgPGEgaHJlZj0ieyRsYXN0cGFnZV91cmx9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2xhc3RwYWdlJyl9Ij57JG1vZC0+TGFuZygnbGFzdHBhZ2UnKX08L2E+CiAgICAgIHsvaWZ9CiAgICAgIDwvc3Bhbj4KICAgIHsvaWZ9CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4KPC9kaXY+Cgp7aWYgJGl0ZW1jb3VudCBndCAwfQogIHskZm9ybXN0YXJ0Mn0KICA8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPgogICAgPHRoZWFkPgogICAgICA8dHI+Cgk8dGg+eyRpZHRleHR9PC90aD4KCTx0aD57JHByb2R1Y3R0ZXh0fTwvdGg+Cgk8dGg+eyRtb2QtPkxhbmcoJ3VybF9zbHVnJyl9PC90aD4KICAgICAgICA8dGg+eyRtb2QtPkxhbmcoJ3NrdScpfTwvdGg+Cgk8dGg+eyRwcmljZXRleHR9PC90aD4KCTx0aD57JHdlaWdodHRleHR9ICh7JHdlaWdodF91bml0c30pPC90aD4KCTx0aD57JG1vZC0+TGFuZygnc3RhdHVzJyl9PC90aD4KCTx0aD57JG1vZC0+TGFuZygnbGFzdF9tb2RpZmllZCcpfTwvdGg+CiAgICAgICAge2lmIGlzc2V0KCRmaWx0ZXIuY3VzdG9tX2ZpZWxkcyl9CiAgICAgICAgICB7Zm9yZWFjaCBmcm9tPSRmaWx0ZXIuY3VzdG9tX2ZpZWxkcyBpdGVtPSdmaWQnfQogICAgICAgICAgICA8dGg+eyRmaWVsZHNfdmlld2FibGUuJGZpZH08L3RoPgogICAgICAgICAgey9mb3JlYWNofQogICAgICAgIHsvaWZ9Cgk8dGggY2xhc3M9InBhZ2VpY29uIHtsaXRlcmFsfXtzb3J0ZXI6IGZhbHNlfXsvbGl0ZXJhbH0iPiZuYnNwOzwvdGg+Cgk8dGggY2xhc3M9InBhZ2VpY29uIHtsaXRlcmFsfXtzb3J0ZXI6IGZhbHNlfXsvbGl0ZXJhbH0iPiZuYnNwOzwvdGg+Cgk8dGggY2xhc3M9InBhZ2VpY29uIHtsaXRlcmFsfXtzb3J0ZXI6IGZhbHNlfXsvbGl0ZXJhbH0iPiZuYnNwOzwvdGg+Cgk8dGggY2xhc3M9InBhZ2VpY29uIHtsaXRlcmFsfXtzb3J0ZXI6IGZhbHNlfXsvbGl0ZXJhbH0iPiZuYnNwOzwvdGg+CiAgICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiB7bGl0ZXJhbH17c29ydGVyOiBmYWxzZX17L2xpdGVyYWx9Ij48aW5wdXQgdHlwZT0iY2hlY2tib3giIHRpdGxlPSJ7JG1vZC0+TGFuZygnc2VsZWN0X2FsbCcpfSIgdmFsdWU9IjEiIG5hbWU9InNlbGVjdF9hbGwiIGlkPSJzZWxlY3RfYWxsX3Byb2R1Y3RzIj48L3RoPgogICAgICA8L3RyPgogICAgPC90aGVhZD4KICAgIDx0Ym9keT4KICAgICAge2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0KCTx0ciBjbGFzcz0ie2N5Y2xlIHZhbHVlcz0ncm93MSxyb3cyJ30iPgoJPHRkPnskZW50cnkuaWR9PC90ZD4KCTx0ZD48YSBocmVmPSJ7JGVudHJ5LmVkaXRfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0Jyl9Ij57JGVudHJ5LnByb2R1Y3RfbmFtZX08L2E+PC90ZD4KCTx0ZD57JGVudHJ5LnVybH08L3RkPgoJPHRkPnskZW50cnkuc2t1fTwvdGQ+Cgk8dGQ+eyRlbnRyeS5wcmljZXxudW1iZXJfZm9ybWF0OjJ9PC90ZD4KICAgICAgICA8dGQ+eyRlbnRyeS53ZWlnaHR8bnVtYmVyX2Zvcm1hdDoyfTwvdGQ+Cgk8dGQ+e2lmICRlbnRyeS5zdGF0dXMgIT0gJ3B1Ymxpc2hlZCd9CiAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij57JG1vZC0+TGFuZygkZW50cnkuc3RhdHVzKX08L3NwYW4+CiAgICAgICAgICAgIHtlbHNlfQogICAgICAgICAgICAgICB7JG1vZC0+TGFuZygkZW50cnkuc3RhdHVzKX0KICAgICAgICAgICAgey9pZn0KICAgICAgICA8L3RkPgoJPHRkPnskZW50cnkubW9kaWZpZWRfZGF0ZXxjbXNfZGF0ZV9mb3JtYXR9PC90ZD4KICAgICAgICB7aWYgaXNzZXQoJGZpbHRlci5jdXN0b21fZmllbGRzKSAmJiBjb3VudCgkZmlsdGVyLmN1c3RvbV9maWVsZHMpfQogICAgICAgICAge2ZvcmVhY2ggZnJvbT0kZmlsdGVyLmN1c3RvbV9maWVsZHMgaXRlbT0nZmlkJ30KICAgICAgICAgICAgPHRkPntjYXB0dXJlIGFzc2lnbj0ndG1wJ317JGZpZWxkX25hbWVzLiRmaWR9ey9jYXB0dXJlfQogICAgICAgICAgICAgIHskZW50cnkuJHRtcH08L3RkPgogICAgICAgICAgey9mb3JlYWNofQogICAgICAgIHsvaWZ9Cgk8dGQ+e21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9J1Byb2R1Y3RzJyBhY3Rpb249J2FkbWluX2VkaXRfYXR0cmlicycgcHJvZGlkPSRlbnRyeS5pZCBpbWFnZT0ndGFibGVfcmVsYXRpb25zaGlwLnBuZycgdGV4dD0kbW9kLT5MYW5nKCdlZGl0X29wdGlvbnMnKSBpbWFnZW9ubHk9MX08L3RkPgoJPHRkPnskZW50cnkuZWRpdGxpbmt9PC90ZD4KCTx0ZD57JGVudHJ5LmNvcHlsaW5rfTwvdGQ+Cgk8dGQ+eyRlbnRyeS5kZWxldGVsaW5rfTwvdGQ+CiAgICAgICAgPHRkPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9Im11bHRpc2VsZWN0IiBuYW1lPSJ7JGFjdGlvbmlkfW11bHRpc2VsZWN0W10iIHZhbHVlPSJ7JGVudHJ5LmlkfSI+PC90ZD4KICAgICAgICA8L3RyPgogICAgICB7L2ZvcmVhY2h9CiAgICA8L3Rib2R5PgogIDwvdGFibGU+CgogIDxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIiBzdHlsZT0iaGVpZ2h0OiAyZW07Ij4KICAgIDxkaXYgc3R5bGU9IndpZHRoOiA0MCU7IGZsb2F0OiBsZWZ0OyBtYXJnaW4tdG9wOiAwLjVlbTsiPgogICAgICB7JGFkZGxpbmt9Jm5ic3A7eyRpbXBvcnRsaW5rfQogICAgPC9kaXY+CiAgICB7aWYgJGl0ZW1jb3VudCBndCAwfQogICAgICA8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsgd2lkdGg6IDQwJTsgZmxvYXQ6IHJpZ2h0OyBtYXJnaW4tdG9wOiAwLjVlbTsgbWFyZ2luLWJvdHRvbTogMC41ZW07Ij4KICAgICAgICB7JG1vZC0+TGFuZygnd2l0aF9zZWxlY3RlZCcpfToKICAgICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9YnVsa2FjdGlvbiI+e2h0bWxfb3B0aW9ucyBvcHRpb25zPSRidWxrYWN0aW9uc308L3NlbGVjdD4KICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBpZD0iYnVsa2FjdGlvbl9zdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2dvJyl9Ii8+CiAgICAgIDwvZGl2PgogICAgey9pZn0KICA8L2Rpdj4KeyRmb3JtZW5kMn0Key9pZn0KPC9kaXY+PCEtLSBwcm9kdWN0bGlzdCAtLT4K]]></data>
	</file>
	<file>
	  <filename>/test_import.csv</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[I0ZMQUd8I25hbWV8I3NrdXwjZGV0YWlsc3wjcHJpY2V8I3RheGFibGV8I3N0YXR1c3wjd2VpZ2h0fCNISUVSfCNDQVQ6dHJhdmVsfCNDQVQ6bWVuc3wjQ0FUOmxhZGllc3wjQ0FUOmNoaWxkcmVuc3wjRklFTEQ6dGV4dGJveDpicmFuZHwjRklFTEQ6dGV4dGJveDpuYXRpb25hbGl0eXwjRklFTEQ6dGV4dGJveDpzb3J0aW5nfCNBVFRSSUJTCnx8fHx8fHx8fHx8fHx8fHwKUHxSZWd1bGFyIFQgU2hpcnR8cDAwMDF8UXVhbGl0eSBDb3R0b24gVCBpbiBSZWR8MTIuOTl8MXxwdWJsaXNoZWR8MC41fENsb3RoaW5nID4+IFNoaXJ0c3x8MXwxfDF8YnJhbmQxfHwxfFNtYWxsOi0xOnAwMDAxLXM6NSAtLSBNZWRpdW06LTE6cDAwMDEtbTo0IJYgTGFyZ2U6LTE6cDAwMDEtbDozClB8TG9uZyBTbGVldmUgQ290dG9ufHAwMDAyfFF1YWxpdHkgTG9uZyBTbGVldmUgVCBpbiBCbHVlfDE0Ljk5fDF8cHVibGlzaGVkfDAuNXxDbG90aGluZyA+PiBTaGlydHN8fDF8MXwxfGJyYW5kMXx8MnxTbWFsbDotMTpwMDAwMS1zOjUgLS0gTWVkaXVtOi0xOnAwMDAxLW06NCCWIExhcmdlOi0xOnAwMDAxLWw6MyCWIFhMOi0xOnAwMDAxLXhsOjAKUHxXaW50ZXIgSmFja2V0fHAwMDAzfE55bG9uIHdpdGggY290dG9uIGxpbmluZ3wzNC45OXwxfHB1Ymxpc2hlZHwxfENsb3RoaW5nID4+IE91dGVyd2Vhcnx8MXwxfHxicmFuZDJ8fDN8U21hbGw6LTE6cDAwMDEtczo1IC0tIE1lZGl1bTotMTpwMDAwMS1tOjQgliBMYXJnZTotMTpwMDAwMS1sOjMKUHxGYWxsIEJvbWJlciBKYWNrZXR8cDAwMDR8Qm9tYmVyIFN0eWxlIEphY2tldHwyOS45OXwxfHB1Ymxpc2hlZHwxfENsb3RoaW5nID4+IE91dGVyd2Vhcnx8MXwxfHxicmFuZDJ8fDR8U21hbGw6LTE6cDAwMDEtczo1IC0tIE1lZGl1bTotMTpwMDAwMS1tOjQgliBMYXJnZTotMTpwMDAwMS1sOjMKUHxIZWF2eSBXaW50ZXIgSmFja2V0fHAwMDA1fE55bG9uIGV4dGVyaW9yLCBmdXIgbGluZWQgaG9vZHw1OC45OXwxfHB1Ymxpc2hlZHwxLjV8Q2xvdGhpbmcgPj4gT3V0ZXJ3ZWFyfHwxfDF8fGJyYW5kM3x8NXxTbWFsbDotMTpwMDAwMS1zOjUgLS0gTWVkaXVtOi0xOnAwMDAxLW06NCCWIExhcmdlOi0xOnAwMDAxLWw6MwpQfFRvcXVlIDF8cDAwMDZ8Q290dG9ufDUuOTl8MXxwdWJsaXNoZWR8MC4yNXxDbG90aGluZyA+PiBPdXRlcndlYXJ8fDF8MXwxfGJyYW5kNHx8NnwKUHxUb3F1ZSAyfHAwMDA2fENvdHRvbnw2LjQ5fDF8cHVibGlzaGVkfDAuMjV8Q2xvdGhpbmcgPj4gT3V0ZXJ3ZWFyfHwxfDF8MXxicmFuZDR8fDd8ClB8SGlraW5nIEJvb3RzfHAwMDA3fEdyZWF0IGZvciB0aG9zZSBsb25nIG1vdW50YWluIGhpa2VzfDQ0Ljk5fDF8cHVibGlzaGVkfDAuNzV8Q2xvdGhpbmcgPj4gRm9vdHdlYXJ8fDF8MXwxfGJyYW5kNXx8OHwKUHxXYWxraW5nIFNob2VzfHAwMDA4fExvbmcgd2Fsa3MgZG93biB0aGUgcm9hZHwyNC45OXwxfHB1Ymxpc2hlZHwwLjc1fENsb3RoaW5nID4+IEZvb3R3ZWFyfHwxfDF8fGJyYW5kNXx8OXwKUHxTbm93IEJvb3RzfHAwMDA5fENueWxvbiBleHRlcmlvciwgZmVsdCBsaW5lciwgcmVtb3ZhYmxlfDYxLjk5fDF8cHVibGlzaGVkfDEuMjV8Q2xvdGhpbmcgPj4gRm9vdHdlYXJ8fDF8MXwxfGJyYW5kNnx8MTB8Cnx8fHx8fHx8fHx8fHx8fHwKUHxDYW5hZGlhbiBGbGFnfHAwMDEwfE55bG9uIGZsYWcgbWVhc3VyZXMgMzZ4MjR8OS45NXwxfHB1Ymxpc2hlZHwwLjI1fEZsYWdzID4+IE5hdGlvbnN8MXx8fHxGbGFncyBSIFVTfENhbmFkYXwxfApwfFVTQSBGbGFnfHAwMDExfE55bG9uIGZsYWcgbWVhc3VyZXMgMzZ4MjR8OS45NXwxfHB1Ymxpc2hlZHwwLjI1fEZsYWdzID4+IE5hdGlvbnN8MXx8fHxGbGFncyBSIFVTfFVTQXwyfApQfFVLIEZsYWd8cDAwMTJ8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTmF0aW9uc3wxfHx8fEZsYWdzIFIgVVN8VUt8M3wKUHxGcmFuY2UgRmxhZ3xwMDAxM3xOeWxvbiBmbGFnIG1lYXN1cmVzIDM2eDI0fDkuOTV8MXxwdWJsaXNoZWR8MC4yNXxGbGFncyA+PiBOYXRpb25zfDF8fHx8RmxhZ3MgUiBVU3xGcmFuY2V8NHwKUHxHZXJtYW4gRmxhZ3xwMDAxNHxOeWxvbiBmbGFnIG1lYXN1cmVzIDM2eDI0fDkuOTV8MXxwdWJsaXNoZWR8MC4yNXxGbGFncyA+PiBOYXRpb25zfDF8fHx8RmxhZ3MgUiBVU3xHZXJtYW55fDV8ClB8TmV0aGVybGFuZHMgRmxhZ3xwMDAxNXxOeWxvbiBmbGFnIG1lYXN1cmVzIDM2eDI0fDkuOTV8MXxwdWJsaXNoZWR8MC4yNXxGbGFncyA+PiBOYXRpb25zfDF8fHx8RmxhZ3MgUiBVU3xOZXRoZXJsYW5kc3w2fApQfFVOIEZsYWd8cDAwMTZ8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gT3JnYW5pemF0aW9uc3wxfHx8fEZsYWdzIFIgVVN8fDd8ClB8TkFUTyBGbGFnfHAwMDE3fE55bG9uIGZsYWcgbWVhc3VyZXMgMzZ4MjR8OS45NXwxfHB1Ymxpc2hlZHwwLjI1fEZsYWdzID4+IE9yZ2FuaXphdGlvbnN8MXx8fHxGbGFncyBSIFVTfHw4fApQfEJlbGdpdW0gRmxhZ3xwMDAxOHxOeWxvbiBmbGFnIG1lYXN1cmVzIDM2eDI0fDkuOTV8MXxwdWJsaXNoZWR8MC4yNXxGbGFncyA+PiBOYXRpb25zfDF8fHx8RmxhZ3MgUiBVU3xCZWxnaXVtfDl8ClB8TWV4aWNvIEZsYWd8cDAwMTl8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTmF0aW9uc3wxfHx8fEZsYWdzIFIgVVN8TWV4aWNvfDEwfApQfENoaWxlIEZsYWd8cDAwMjB8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTmF0aW9uc3wxfHx8fEZsYWdzIFIgVVN8Q2hpbGV8MTF8ClB8Q29sdW1iaWEgRmxhZ3xwMDAyMXxOeWxvbiBmbGFnIG1lYXN1cmVzIDM2eDI0fDkuOTV8MXxwdWJsaXNoZWR8MC4yNXxGbGFncyA+PiBOYXRpb25zfDF8fHx8RmxhZ3MgUiBVU3xDb2x1bWJpYXwxMnwKUHxJdGFseSBGbGFnfHAwMDIyfE55bG9uIGZsYWcgbWVhc3VyZXMgMzZ4MjR8OS45NXwxfHB1Ymxpc2hlZHwwLjI1fEZsYWdzID4+IE5hdGlvbnN8MXx8fHxGbGFncyBSIFVTfEl0YWx5fDEzfApQfFNwYWluIEZsYWd8cDAwMjN8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTmF0aW9uc3wxfHx8fEZsYWdzIFIgVVN8U3BhaW58MTR8ClB8R3JlZWNlIEZsYWd8cDAwMjR8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTmF0aW9uc3wxfHx8fEZsYWdzIFIgVVN8R3JlZWNlfDE1fApQfElzcmVhbCBGbGFnfHAwMDI1fE55bG9uIGZsYWcgbWVhc3VyZXMgMzZ4MjR8OS45NXwxfHB1Ymxpc2hlZHwwLjI1fEZsYWdzID4+IE5hdGlvbnN8MXx8fHxGbGFncyBSIFVTfElzcmVhbHwxNnwKUHxBdXN0cmFsaWEgRmxhZ3xwMDAyNnxOeWxvbiBmbGFnIG1lYXN1cmVzIDM2eDI0fDkuOTV8MXxwdWJsaXNoZWR8MC4yNXxGbGFncyA+PiBOYXRpb25zfDF8fHx8RmxhZ3MgUiBVU3xBdXN0cmFsaWF8MTd8ClB8TmV3IFplYWxhbmQgRmxhZ3xwMDAyN3xOeWxvbiBmbGFnIG1lYXN1cmVzIDM2eDI0fDkuOTV8MXxwdWJsaXNoZWR8MC4yNXxGbGFncyA+PiBOYXRpb25zfDF8fHx8RmxhZ3MgUiBVU3xOZXcgWmVhbGFuZHwxOHwKUHxCcml0aXNoIENvbHVtYmlhIEZsYWd8cDAwMjh8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTmF0aW9ucyA+PiBQcm92aW5jZXN8MXx8fHxGbGFncyBSIFVTfENhbmFkYXwxOXwKUHxBbGJlcnRhIEZsYWd8cDAwMjl8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTmF0aW9ucyA+PiBQcm92aW5jZXN8MXx8fHxGbGFncyBSIFVTfENhbmFkYXwyMHwKUHxTYXNja2F0Y2hld2FuIEZsYWd8cDAwMzB8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTmF0aW9ucyA+PiBQcm92aW5jZXN8MXx8fHxGbGFncyBSIFVTfENhbmFkYXwyMXwKUHxNYW5pdG9iYSBGbGFnfHAwMDQwfE55bG9uIGZsYWcgbWVhc3VyZXMgMzZ4MjR8OS45NXwxfHB1Ymxpc2hlZHwwLjI1fEZsYWdzID4+IE5hdGlvbnMgPj4gUHJvdmluY2VzfDF8fHx8RmxhZ3MgUiBVU3xDYW5hZGF8MjJ8ClB8T250YXJpbyBGbGFnfHAwMDQxfE55bG9uIGZsYWcgbWVhc3VyZXMgMzZ4MjR8OS45NXwxfHB1Ymxpc2hlZHwwLjI1fEZsYWdzID4+IE5hdGlvbnMgPj4gUHJvdmluY2VzfDF8fHx8RmxhZ3MgUiBVU3xDYW5hZGF8MjN8ClB8UXVlYmVjIEZsYWd8cDAwNDJ8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTmF0aW9ucyA+PiBQcm92aW5jZXN8MXx8fHxGbGFncyBSIFVTfENhbmFkYXwyNHwKUHxOZXcgQnJ1bnN3aWNrIEZsYWd8cDAwNDN8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTmF0aW9ucyA+PiBQcm92aW5jZXN8MXx8fHxGbGFncyBSIFVTfENhbmFkYXwyNXwKUHxOZXdmb3VuZGxhbmQgRmxhZ3xwMDA0NHxOeWxvbiBmbGFnIG1lYXN1cmVzIDM2eDI0fDkuOTV8MXxwdWJsaXNoZWR8MC4yNXxGbGFncyA+PiBOYXRpb25zID4+IFByb3ZpbmNlc3wxfHx8fEZsYWdzIFIgVVN8Q2FuYWRhfDI2fApQfFBFSSBGbGFnfHAwMDQ1fE55bG9uIGZsYWcgbWVhc3VyZXMgMzZ4MjR8OS45NXwxfHB1Ymxpc2hlZHwwLjI1fEZsYWdzID4+IE5hdGlvbnMgPj4gUHJvdmluY2VzfDF8fHx8RmxhZ3MgUiBVU3xDYW5hZGF8Mjd8ClB8Tm92YSBTY290aWEgRmxhZ3xwMDA0NnxOeWxvbiBmbGFnIG1lYXN1cmVzIDM2eDI0fDkuOTV8MXxwdWJsaXNoZWR8MC4yNXxGbGFncyA+PiBOYXRpb25zID4+IFByb3ZpbmNlc3wxfHx8fEZsYWdzIFIgVVN8Q2FuYWRhfDI4fApQfFVuaXRlZCBGZWRlcmF0aW9uIG9mIFBsYW5ldHN8cDAwNDd8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTm92ZWx0eXx8fHx8fHwyOXwKUHxOdW5hdnV0IEZsYWd8cDAwNDh8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTmF0aW9ucyA+PiBQcm92aW5jZXN8MXx8fHxGbGFncyBSIFVTfENhbmFkYXwzMHwKUHxZdWtvbiBGbGFnfHAwMDQ5fE55bG9uIGZsYWcgbWVhc3VyZXMgMzZ4MjR8OS45NXwxfHB1Ymxpc2hlZHwwLjI1fEZsYWdzID4+IE5hdGlvbnMgPj4gUHJvdmluY2VzfDF8fHx8RmxhZ3MgUiBVU3xDYW5hZGF8MzF8ClB8Tm9ydGh3ZXN0IFRlcnJpdG9yaWVzIEZsYWd8cDAwNTB8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTmF0aW9ucyA+PiBQcm92aW5jZXN8MXx8fHxGbGFncyBSIFVTfENhbmFkYXwzMnwKfHx8fHx8fHx8fHx8fHx8fApQfENhbmFkYSBNdWcgTGFyZ2V8cDAwNTF8Q2VyYW1pYyBNdWcgaG9sZHMgNTAwbWx8MTEuOTV8MXxwdWJsaXNoZWR8MC41fFNvdXZlbmlycyA+PiBNdWdzICYgQ3Vwc3wxfHx8fENhbmFkYSBDZXJhbWljcyAmIFBsYXN0aWNzIEx0ZHxDYW5hZGF8MXwKUHxCcml0aXNoIENvbHVtYmlhIE11ZyBMfHAwMDUyfENlcmFtaWMgTXVnIGhvbGRzIDUwMG1sfDExLjk1fDF8cHVibGlzaGVkfDAuNXxTb3V2ZW5pcnMgPj4gTXVncyAmIEN1cHN8MXx8fHxDYW5hZGEgQ2VyYW1pY3MgJiBQbGFzdGljcyBMdGR8Q2FuYWRhfDJ8ClB8QWxiZXJ0YSBNdWcgTGFyZ2V8cDAwNTN8Q2VyYW1pYyBNdWcgaG9sZHMgNTAwbWx8MTEuOTV8MXxwdWJsaXNoZWR8MC41fFNvdXZlbmlycyA+PiBNdWdzICYgQ3Vwc3wxfHx8fENhbmFkYSBDZXJhbWljcyAmIFBsYXN0aWNzIEx0ZHxDYW5hZGF8M3wKUHxTYXNja2F0Y2hld2FuIE11ZyBMYXJnZXxwMDA1NHxDZXJhbWljIE11ZyBob2xkcyA1MDBtbHwxMS45NXwxfHB1Ymxpc2hlZHwwLjV8U291dmVuaXJzID4+IE11Z3MgJiBDdXBzfDF8fHx8Q2FuYWRhIENlcmFtaWNzICYgUGxhc3RpY3MgTHRkfENhbmFkYXw0fApQfE1hbml0b2JhIE11ZyBMYXJnZXxwMDA1NXxDZXJhbWljIE11ZyBob2xkcyA1MDBtbHwxMS45NXwxfHB1Ymxpc2hlZHwwLjV8U291dmVuaXJzID4+IE11Z3MgJiBDdXBzfDF8fHx8Q2FuYWRhIENlcmFtaWNzICYgUGxhc3RpY3MgTHRkfENhbmFkYXw1fApQfE9udGFyaW8gTXVnIExhcmdlfHAwMDU2fENlcmFtaWMgTXVnIGhvbGRzIDUwMG1sfDExLjk1fDF8cHVibGlzaGVkfDAuNXxTb3V2ZW5pcnMgPj4gTXVncyAmIEN1cHN8MXx8fHxDYW5hZGEgQ2VyYW1pY3MgJiBQbGFzdGljcyBMdGR8Q2FuYWRhfDZ8ClB8UXVlYmVjIE11ZyBMYXJnZXxwMDA1N3xDZXJhbWljIE11ZyBob2xkcyA1MDBtbHwxMS45NXwxfHB1Ymxpc2hlZHwwLjV8U291dmVuaXJzID4+IE11Z3MgJiBDdXBzfDF8fHx8Q2FuYWRhIENlcmFtaWNzICYgUGxhc3RpY3MgTHRkfENhbmFkYXw3fApQfENhbmFkYSBQbGF0ZSBMYXJnZXxwMDA1OXxDZXJhbWljIDEyIGluY2ggcGxhdGV8MTcuOTV8MXxwdWJsaXNoZWR8MC41fFNvdXZlbmlycyA+PiBQbGF0ZXN8MXx8fHxDYW5hZGEgQ2VyYW1pY3MgJiBQbGFzdGljcyBMdGR8Q2FuYWRhfDh8ClB8UXVlYmVjIFBsYXRlIGxhcmdlfHAwMDYwfENlcmFtaWMgMTIgaW5jaCBwbGF0ZXwxNy45NXwxfHB1Ymxpc2hlZHwwLjV8U291dmVuaXJzID4+IFBsYXRlc3wxfHx8fENhbmFkYSBDZXJhbWljcyAmIFBsYXN0aWNzIEx0ZHxDYW5hZGF8OXwK]]></data>
	</file>
</module>
