<?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.0</version>
  <mincmsversion>1.2.3</mincmsversion>
	<help>PGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgd2F5IHRvIGNvbGxlY3QsIG9yZ2FuaXplLCBhbmQgZGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCBwcm9kdWN0cyBhbmQgdGhlaXIgY2F0ZWdvcmllcy4gIFRoaXMgbW9kdWxlIGNhbiBzdGFuZCBvbiBpdHMgb3duLCBvciBiZSBwYXJ0IG9mIGFuIGUtY29tbWVyY2Ugc29sdXRpb24gaWYgeW91IHdpc2guICBUaGUgbW9kdWxlIHN1cHBvcnRzIGEgcHJvZHVjdCBleGlzdGluZyBpbiBtb3JlIHRoYW4gb25lIGNhdGVnb3J5LCBzdXBwb3J0cyBwcm9kdWN0IHdlaWdodCwgcHJpY2UsIGFuZCBhdHRyaWJ1dGUgc2V0cy4gIEVhY2ggaXRlbSBpbiBhbiBhdHRyaWJ1dGUgc2V0IGNhbiBoYXZlIGEgcHJpY2UgYWRqdXN0bWVudC4gIEFsc28gYSBnbG9iYWwgZmxhZyBpbmRpY2F0ZXMgd2V0aGVyIHRoZSBwcm9kdWN0IGlzICd0YXhhYmxlJyBvciBub3QuPC9wPgogIDxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGZvciB1cCB0byB0d28gaW1hZ2VzIHBlciBwcm9kdWN0LCBjdXN0b20gZmllbGQgZGVmaW5pdGlvbnMsIGFuZCBmb3IgdGhlIGFiaWxpdHkgdG8gZGVzY3JpbWluYXRlIHByaXZhdGUgZnJvbSBwdWJsaWMgZGF0YS48L3A+CjxoMz5GZWF0dXJlczo8L2gzPgo8dWw+CiAgPGxpPk51bWVyb3VzIFZpZXdzPC9saT4KICAgIDx1bD4KICAgICAgPGxpPlN1bW1hcnkgdmlldzwvbGk+CiAgICAgIDxsaT5DYXRlZ29yeSBMaXN0IFZpZXc8L2xpPgogICAgICA8bGk+RGV0YWlsIHZpZXc8L2xpPiAKICAgICAgPGxpPkhpZXJhcmNoeSBEcmlsbC1kb3duIFZpZXc8L2xpPgogICAgPC91bD4KICA8bGk+RW50aXJlbHkgRGF0YWJhc2UgVGVtcGxhdGUgRHJpdmVuPC9saT4KICA8cD5OdW1lcm91cyB0ZW1wbGF0ZXMgb2YgZWFjaCB0eXBlIGNhbiBiZSBkZWZpbmVkLCBkZWZhdWx0cyBzcGVjaWZpZWQgZm9yIGVhY2ggdHlwZSwgYW5kIHRoZSB0ZW1wbGF0ZSB1c2VkIGZvciBlYWNoIHBhcnRpY3VsYXIgdmlldyBjYW4gYmUgc3BlY2lmaWVkIGFzIGEgcGFyYW1ldGVyPC9wPgogIDxsaT5Tb3J0aW5nIGFuZCBwYWdpbmF0aW9uIGluIHRoZSBzdW1tYXJ5IHZpZXc8L2xpPgogIDxsaT5Qcm9kdWN0cyBjYW4gZXhpc3QgaW4gbXVsdGlwbGUgY2F0ZWdvcmllczwvbGk+CiAgPGxpPk51bWVyb3VzIGN1c3RvbSBmaWVsZHMgY2FuIGJlIGRlZmluZWQsIGluY2x1ZGluZyBpbWFnZXM8L2xpPgogIDxsaT5BdXRvbWF0aWMgdGh1bWJuYWlsIGNyZWF0aW9uPC9saT4KICA8bGk+QWRtaW4gZGVmaW5lZCBmaWVsZHM8L2xpPgogIDxsaT5Qcm9kdWN0IGF0dHJpYnV0ZXMgKGluY2x1ZGluZyBwcmljZSBhZGp1c3RtZW50KTwvbGk+CiAgPGxpPldlaWdodCBhbmQgdGF4YWJsZSBmaWVsZHMgKGZvciB1c2UgaW4gZS1jb21tZXJjZSBzb2x1dGlvbnMpPC9saT4KICA8bGk+UHJvZHVjdHMgY2FuIGhhdmUgYSBzdGF0dXMgKHB1Ymxpc2hlZCBvciBkcmFmdCkgaW4gb3JkZXIgdG8gaGlkZSBwcm9kdWN0cyBmcm9tIHB1YmxpYyBkaXNwbGF5IGF0IGFueSB0aW1lPC9saT4KICA8bGk+UHJldHR5IFVSTCBTdXBwb3J0PC9saT4KICA8bGk+PHN0cm9uZz5Nb3JlLi4uPC9zdHJvbmc+PC9saT4KPC91bD4KCjxoMz5Ib3cgRG8gSSBVc2UgSXQ6PC9oMz4KPHVsPgo8bGk+U2V0IHByZWZlcmVuY2VzPC9saT4KPHA+VXN1YWxseSB0aGlzIGlzIGp1c3QgYSBmb3JtYWxpdHkuICBZb3Ugc2hvdWxkIHNwZWNpZnkgeW91ciBkZWZhdWx0IHdlaWdodCB1bml0cywgYW5kIHlvdXIgZGVmYXVsdCBjdXJyZW5jeSBzeW1ib2wgZm9yIHlvdXIgbG9jYWwgZW52aXJvbm1lbnQuPC9wPgo8bGk+U2V0dXAgdXNlcnMgYW5kIHBlcm1pc3Npb25zPC9saT4KPHA+VGhpcyBtb2R1bGUgdXNlcyB0aGUgJ01vZGlmeSBUZW1wbGF0ZXMnIHBlcm1pc3Npb24gdG8gYWxsb3cgdXNlcnMgdG8gYmUgYWJsZSB0byBtb2RpZnkgdGhlIHZhcmlvdXMgdGVtcGxhdGVzIHRoYXQgY2FuIGJlIHVzZWQgYnkgdGhpcyBtb2R1bGUuICBBcyB3ZWxsLCB0aGUgJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJyBwZXJtaXNzaW9uIGlzIG5lZWRlZCB0byBiZSBhYmxlIHRvIGFkanVzdCB0aGUgbW9kdWxlcyBwcmVmZXJlbmNlcy4gIEluIG9yZGVyIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbW9kaWZ5IGZpZWxkIGRlZmluaXRpb25zLCBjYXRlZ29yaWVzLCBvciBwcm9kdWN0cywgeW91ciB1c2VycyB3aWxsIG5lZWQgdGhlICdNb2RpZnkgUHJvZHVjdHMnIHBlcm1pc3Npb24uPC9wPgo8bGk+KG9wdGlvbmFsKSBEZWZpbmUgb25lIG9yIG1vcmUgY2F0ZWdvcmllczwvbGk+CjxwPlRoaXMgaXMgYW4gb3B0aW9uYWwgc3RlcCwgYnV0IHlvdSB3aWxsIHByb2JhYmx5IHdhbnQgdG8gZG8gdGhpcyBlYXJseSB0byBwcmV2ZW50IGhhdmluZyB0byBnbyBiYWNrIHRvIG1vZGlmeSBlYWNoIGFuZCBldmVyeSBwcm9kdWN0IGxhdGVyLiAgQWRkaW5nIGEgY2F0ZWdvcnkgaXMgYXMgc2ltcGxlIGFzIGNsaWNraW5nIG9uIHRoZSAnQ2F0ZWdvcmllcycgdGFiIGluIHRoZSBQcm9kdWN0IE1hbmFnZXJzIGFkbWluIHNlY3Rpb24sIGFuZCBjbGlja2luZyAnQWRkIEEgQ2F0ZWdvcnknLiAgRnJvbSB0aGVyZSB5b3Ugd2lsbCBiZSBwcm9tcHRlZCBmb3IgYSBjYXRlZ29yeSBuYW1lLjwvcD4KPGxpPihvcHRpb25hbCkgRGVmaW5lIG9uZSBvciBtb3JlIGN1c3RvbSBmaWVsZHM8L2xpPgo8cD5UaGlzIGlzIGFuIG9wdGlvbmFsIHN0ZXAuICBDdXN0b20gZmllbGRzIGFyZSBub3QgbmVlZGVkIGlmIHRoaXMgbW9kdWxlIHN1aXRzIHlvdSBleGFjdGx5IGFzIGl0IGlzLiAgSG93ZXZlciBpZiB5b3Ugd291bGQgbGlrZSB0byBzdG9yZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZvciBlYWNoIG9mIHlvdXIgcHJvZHVjdHMgeW91IGNhbiBjcmVhdGUgY3VzdG9tIGZpZWxkcy4gIENyZWF0aW5nIGN1c3RvbSBmaWVsZHMgaXMgc2ltaWxhciB0byBjcmVhdGluZyBjYXRlZ29yaWVzLCBleGNlcHQgdGhhdCBtb3JlIGRhdGEgaXMgcmVxdWVzdGVkLjwvcD4KPHA+Q3VycmVudGx5IG9ubHkgdGhyZWUgdHlwZXMgb2YgY3VzdG9tIGZpZWxkcyBhcmUgYXZhaWxhYmxlOiAndGV4dGJveCcsJ2NoZWNrYm94JyxhbmQgJ3RleHRhcmVhLCBkcm9wZG93biwgYW5kIGZpbGUnLiAgU2VsZWN0IG9uZSBvZiB0aGVzZSwgZ2l2ZSB5b3VyIG5ldyBmaWVsZCBhIG5hbWUsIGFuZCBpbmRpY2F0ZSB3ZXRoZXIgdGhhdCBmaWVsZCBzaG91bGQgYmUgdmlzaWJsZSB0byB0aGUgcHVibGljIGluIHRoZSB2YXJpb3VzIHZpZXdzLiAgVGhlbiBoaXQgc3VibWl0PC9wPgo8bGk+Q3JlYXRlIG9uZSBvciBtb3JlIHByb2R1Y3RzPC9saT4KPHA+WW91IHNob3VsZCBjcmVhdGUgb25lIG9yIG1vcmUgcHJvZHVjdHMgdG8gZGlzcGxheSBpbiB5b3VyIHdlYnNpdGUgY29udGVudC4gIEdpdmUgZWFjaCBwcm9kdWN0IGEgbmFtZSwgYSBwcmljZSAob3B0aW9uYWwpIGEgd2VpZ2h0IChvcHRpb25hbCksIGEgc3RhdHVzIChkcmFmdCBvciBwdWJsaXNoZWQpLCBhbmQgc29tZSBpbmZvcm1hdGlvbi4gIEFkZGl0aW9uYWxseSwgeW91IGNhbiBzcGVjaWZ5IGlmIHRoZSBwcm9kdWN0IGlzIHRheGFibGUsIGFuZCBpdCdzIHdlaWdodC48L3A+CjxwPklmIGNhdGVnb3JpZXMgYXJlIGRlZmluZWQsIHRoZW4gYSBjaGVja2JveCB3aWxsIGFwcGVhciBmb3IgZWFjaCBkZWZpbmVkIGNhdGVnb3J5LiAgWW91IGNhbiBzaW1wbHkgY2xpY2sgdGhlIGNoZWNrYm94IGZpZWxkcyBmb3IgZWFjaCBjYXRlZ29yeSB0aGF0IHRoaXMgcHJvZHVjdCBzaG91bGQgYmVsb25nIHRvLjwvcD4KPHA+SWYgY3VzdG9tIGZpZWxkcyBhcmUgZGVmaW5lZCwgdGhlbiBpbnB1dCBmaWVsZHMgYXBwcm9wcmlhdGUgdG8gdGhlIHR5cGUgb2YgY3VzdG9tIGZpZWxkIHdpbGwgYXBwZWFyIGFuZCBhbGxvdyB5b3UgdG8gc3BlY2lmeSBkYXRhIGZvciBlYWNoIG9mIHRoZW0uICBUaGlzIGRhdGEgaXMgb3B0aW9uYWwuPC9wPgo8bGk+QWRkIHRoZSBhcHByb3ByaWF0ZSB0YWdzIGludG8geW91ciBwYWdlIHRlbXBsYXRlcyBvciBwYWdlIGNvbnRlbnQ8L2xpPgo8cD5UaGlzIGNhbiBiZSBhcyBzaW1wbGUgYXMgYWRkaW5nIHRoZSA8c3Ryb25nPntQcm9kdWN0c308L3N0cm9uZz4gdGFnIGludG8gdGhlIGNvbnRlbnQgYXJlYSBvZiBvbmUgb2YgeW91ciBwYWdlcywgb3IgaW50byB5b3VyIHBhZ2UgdGVtcGxhdGUuPC9wPgo8cD5JZiB5b3Ugd2lzaCB0byBhbHRlciB0aGUgYmVoYXZpb3VyIG9mIHRoaXMgYXBwbGljYXRpb24gZnJvbSBpdHMgZGVmYXVsdCwgeW91IGNhbiBkbyB0aGF0IGJ5IGFkZGluZyBvbmUgb3IgbW9yZSBwYXJhbWV0ZXJzIHRvIHRoZSA8c3Ryb25nPntQcm9kdWN0c308L3N0cm9uZz4gdGFnLiAgVGhlIGNvbXBsZXRlIGxpc3Qgb2YgcGFyYW1ldGVycyBhbmQgdGhlaXIgYmVoYXZpb3VyIGlzIGxpc3RlZCBiZWxvdy4gIEJ1dCBmb3IgZXhhbXBsZSwgdG8gZGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdHMgaW4gYSBzaW5nbGUsIGV4aXN0aW5nIGNhdGVnb3J5LCB5b3UgY291bGQgdXNlIGEgdGFnIGxpa2UgPGNvZGU+e1Byb2R1Y3RzIGNhdGVnb3J5PSdjYXRlZ29yeW5hbWUnfTwvY29kZT48L3A+CjwvdWw+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuICBIb3dldmVyIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzIG9yIHRvIGZpbGUgYSBidWcgcmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIGNtcyBtYWRlIHNpbXBsZSA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5EZXZlbG9wZXJzIEZvcmdlPC9hPiBhbmQgZG8gYSBzZWFyY2ggZm9yICdQcm9kdWN0cyc8L2xpPgo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+Um9iZXJ0IENhbXBiZWxsPC9hPi48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3Jtcy48L2E+PC9saT4KPGxpPkZvciBzb21lIHF1ZXN0aW9ucyBhbmQgbGltaXRlZCB0ZWNobmljYWwgc3VwcG9ydCwgdGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8L3VsPjxoMz5EZXBlbmRlbmNpZXM8L2gzPjx1bD48bGk+Q0dFeHRlbnNpb25zID0mZ3Q7IDEuODwvbGk+PGxpPkNHU2ltcGxlU21hcnR5ID0mZ3Q7IDEuMjwvbGk+PC91bD48aDM+UGFyYW1ldGVyczwvaDM+PHVsPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHBhcmVudD0iIiAtIFVzZWZ1bCBvbmx5IGluIHRoZSA8ZW0+aGllcmFyY2h5PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIGhpZXJhcmNoeSBpZCBvZiB0aGUgc3RhcnRpbmcgbG9jYXRpb24gb2YgdGhlIHJlcG9ydC48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHBhZ2VsaW1pdD0iIiAtIFVzZWZ1bCBvbmx5IHdpdGggdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIGxpc3RlZCBvbiBlYWNoIHBhZ2UuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBoaWVyYXJjaHk9IiIgLSBVc2VmdWwgb25seSBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGF0IG9ubHkgaXRlbXMgaW4gdGhhdCBsb2NhdGlvbiBvZiB0aGUgaGllcmFyY2h5IHNob3VsZCBiZSBkaXNwbGF5ZWQuICBXaWxkY2FyZCBjaGFyYWN0ZXIgY2FuIGJlIHVzZWQgc28gdGhhdCB5b3UgY2FuIHNwZWNpZnkgcGFyZW50L2NoaWxkIHJlbGF0aW9uc2hpcHMgYXMgd2VsbC4gIGkuZSB7UHJvZHVjdHMgaGllcmFyY2h5PSd0cnVja3MqJ30gd2lsbCBjcmVhdGUgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBpbmNsdWRpbmcgdGhlIGNoaWxkcmVuIGluIHRoZSBoaWVyYXJjaHkuICBTaW1pbGFybHksIHtQcm9kdWN0cyBoaWVyYXJjaHk9Jyp0cnVja3MnfSB3aWxsIGRpc3BsYXkgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBhbmQgYWxsIHByb2R1Y3RzIGJlbG9naW5nIHRvIGFueSBwYXJlbnQgaW4gdGhlIGhpZXJhcmNoeS48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGNhdGVnb3J5PSIiIC0gV2hlbiB1c2VkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIsIHdoaWNoIHNob3VsZCBtYXRjaCB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyBjYXRlZ29yeSB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBvbmx5IHRob3NlIGNvbXBhbmllcyB0aGF0IGFyZSBpbiB0aGF0IGNhdGVnb29yeS4gKGEgY29tbWEgc2VwZXJhdGVkIGxpc3QgY2FuIGJlIHN1cHBsaWVkKTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc29ydG9yZGVyPSJhc2MiIC0gU3BlY2lmeSB0aGUgb3JkZXIgb2Ygc29ydGVkIGZpZWxkcyBpbiBzdW1tYXJ5IHZpZXcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOgo8dWw+CiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIEFzY2VuZGluZyBvcmRlcjwvbGk+CiAgPGxpPmRlc2MgLS0gRGVzY2VuZGluZyBvcmRlcjwvbGk+CjwvdWw+PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzb3J0Ynk9InByb2R1Y3RfbmFtZSIgLSBBcHBsaWNhYmxlIG9ubHkgaW4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQgY29tcGFuaWVzLiAgUG9zc2libGUgdmFsdWVzIGFyZToKPHVsPgogIDxsaT48c3Ryb25nPnByb2R1Y3RfbmFtZTwvc3Ryb25nPjwvbGk+CiAgPGxpPnByaWNlIC0tIFRoZSBwcm9kdWN0IGJhc2UgcHJpY2U8L2xpPgogIDxsaT5zdGF0dXMgLS0gRHJhZnQgb3IgcHVibGlzaGVkPC9saT4KICA8bGk+cmFuZG9tIC0tIERpc3BsYXkgaW4gcmFuZG9tIG9yZGVyIG9uIGVhY2ggcmVxdWVzdDwvbGk+CiAgPGxpPmNyZWF0ZWQgLS0gVGhlIGNyZWF0aW9uIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPgogIDxsaT5tb2RpZmllZCAtLSBUaGUgbW9kaWZpZWQgZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+CjwvdWw+PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBoaWVyYXJjaHl0ZW1wbGF0ZT0iIiAtIFRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGhpZXJhcmNoeSBkaXNwbGF5LiBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHN1bW1hcnl0ZW1wbGF0ZT0iIiAtIFRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIHN1bW1hcnkgbW9kZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBkZXRhaWx0ZW1wbGF0ZT0iIiAtIFRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRldGFpbCBtb2RlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGNhdGVnb3J5bGlzdHRlbXBsYXRlPSIiIC0gVXNlZnVsIG9ubHkgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBkZXRhaWxwYWdlPSIiIC0gVGhpcyBzcGVjaWZpZXMgdGhlIHBhZ2VpZCBvciBhbGlhcyB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIGRldGFpbCByZXBvcnQuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBwcm9kdWN0aWQ9IiIgLSBVc2VmdWwgb25seSB3aXRoIHRoZSBkZXRhaWwgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgd2hhdCBwcm9kdWN0IHRvIHVzZSBmb3IgdGhlIGRpc3BsYXkuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBhY3Rpb249ImRlZmF1bHQiIC0gU3BlY2lmeSB0aGUgYmVoYXZpb3VyIG9mIHRoZSBtb2R1bGUuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOgo8dWw+CiAgPGxpPmhpZXJhcmNoeSAtLSBEaXNwbGF5IGEgcHJvZHVjdCBsaXN0IGJ5IGhpZXJhcmNoeTwvbGk+CiAgPGxpPmNhdGVnb3J5bGlzdCAtIERpc3BsYXkgYSBsaXN0IG9mIHByb2R1Y3QgY2F0ZWdvcmllczwvbGk+CiAgPGxpPjxlbT5kZWZhdWx0PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyeSBvZiBwcm9kdWN0czwvbGk+CiAgPGxpPmRldGFpbCAtIERpc3BsYXkgYSBkZXRhaWwgdmlldyBvZiBhIHNpbmdsZSBwcm9kdWN0PC9saT4KPC91bD48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGxhbmc9ImVuX1VTIiAtIFBhcmFtZXRlciBpcyB1c2VkIHRvIHNwZWNpZnkgd2hhdCBsYW5ndWFnZSB0byB1c2UgZm9yIGRpc3BsYXkgb24gdGhlIGZyb250ZW5kLiBOb3QgYWxsIG1vZHVsZXMgc3VwcG9ydCBvciBuZWVkIHRoaXMuPC9saT48L3VsPg==</help>
	<about>PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDIuMDxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjx1bD4KPGxpPlZlcnNpb24gMS4wIC0gRGVjZW1iZXIsIDIwMDcKICAgPHA+SW5pdGlhbCBSZWxlYXNlPC9wPgo8L2xpPgo8bGk+VmVyc2lvbiAxLjAuMSAtIEphbnVhcnksIDIwMDgKICAgPHVsPgogICAgIDxsaT5BZGRzIHBhZ2luYXRpb24gaW4gc3VtbWFyeSB2aWV3PC9saT4KICAgICA8bGk+Rml4ZXMgYSBwcm9ibGVtIHdpdGggZHVwbGljYXRlIGxpbmtzIGluIHN1bW1hcnkgdmlldzwvbGk+CiAgIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMCAtIEFwcmlsLCAyMDA4CiAgPHVsPgogICAgIDxsaT5BZGRzIGhpZXJhcmNoaWNhbCBjYXRlZ29yaWVzIGFzIHdlbGwgYXMgdGhlIG9yaWdpbmFsICd0YWcnIGJhc2VkIGNhdGVnb3JpZXMuPGJyLz4KICAgICAgICAgSGllcmFyY2hpY2FsIGNhdGVnb3JpZXMgY2FuIGhhdmUgYW4gaW1hZ2UgYXMgd2VsbCBhcyBhIGRlc2NyaXB0aW9uLjwvbGk+CiAgICAgPGxpPkFkZHMgbW9yZSBjdXN0b20gZmllbGQgdHlwZXMgKGltYWdlLCBkcm9wZG93bik8YnIvPgogICAgICAgICBJbmNsdWRpbmcgdGh1bWJuYWlsIGdlbmVyYXRpb24uPC9saT4KICAgICA8bGk+UmVtb3ZlIHRoZSBvcmlnaW5hbCBpbWFnZSBmaWVsZHM8L2xpPgogICAgIDxsaT5BZGRzIFNlYXJjaCBtb2R1bGUgY2FwYWJpbGl0eTwvbGk+CiAgICAgPGxpPkFkZHMgYSBoaWVyYXJjaGljYWwgY2F0ZWdvcnkgdmlldyB3aXRoIGRyaWxsIGRvd24gc3VwcG9ydDwvbGk+CiAgICAgPGxpPk11Y2gsIG11Y2ggbW9yZTwvbGk+CiAgPC91bD4KPC9saT4KPC91bD48YnIgLz4=</about>
	<description>A module for managing a catalog of products, their price, images, etc, and for allowing users to build a cart</description>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.8</requiredversion>
	</requires>
	<requires>
	  <requiredname>CGSimpleSmarty</requiredname>
	  <requiredversion>1.2</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.addcategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSkKewogIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ25lZWRwZXJtaXNzaW9uJywgYXJyYXkoJ01vZGlmeSBQcm9kdWN0cycpKSk7CiAgcmV0dXJuOwogfQoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2NhdGVnb3JpZXMnKTsKaWYgKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSkKewogICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Cn0KCiRuYW1lID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWyduYW1lJ10pKQp7CiAgJG5hbWUgPSAkcGFyYW1zWyduYW1lJ107Cn0KCiR1c2VyaWQgPSBnZXRfdXNlcmlkKCk7CgppZiAoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pKQp7CiAgaWYgKCRuYW1lICE9ICcnKQogICAgewogICAgICAvLyBNYWtlIHN1cmUgYSBjYXRlZ29yeSBieSB0aGlzIG5hbWUgZG9lc24ndCBhbHJlYWR5IGV4aXN0CiAgICAgICRxdWVyeSA9ICdTRUxFQ1QgbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyBXSEVSRSBuYW1lID0gPyc7CiAgICAgICR2YWx1ZSA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkbmFtZSkpOwogICAgICBpZiggJHZhbHVlICE9ICcnICkKCXsKCSAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnY2F0ZWdvcnlleGlzdHMnLCR2YWx1ZSkpOwoJfQogICAgICBlbHNlCgl7CgkgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMgKG5hbWUsIGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlKSBWQUxVRVMgKD8sPyw/KSc7CgkgICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRuYW1lLCB0cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSwgIiciKSwgdHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSksICInIikpKTsKCSAgCgkgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Cgl9CiAgICB9CiAgZWxzZQogICAgewogICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdub25hbWVnaXZlbicpKTsKICAgIH0KfQoKI0Rpc3BsYXkgdGVtcGxhdGUKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkZGNhdGVnb3J5JywgJHJldHVybmlkKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25hbWV0ZXh0JywgJHRoaXMtPkxhbmcoJ25hbWUnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRuYW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICduYW1lJywgJG5hbWUsIDMwLCAyNTUpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLCAnJyk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsIGxhbmcoJ3N1Ym1pdCcpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignY2FuY2VsJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsIGxhbmcoJ2NhbmNlbCcpKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRjYXRlZ29yeS50cGwnKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.addfielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2ZpZWxkZGVmcycpOwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpKQp7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCduZWVkcGVybWlzc2lvbicsIGFycmF5KCdNb2RpZnkgUHJvZHVjdHMnKSkpOwoJcmV0dXJuOwp9CgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKQp7CiAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKfQoKJG5hbWUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ25hbWUnXSkpCnsKCSRuYW1lID0gJHBhcmFtc1snbmFtZSddOwp9CgokcHJvbXB0ID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydwcm9tcHQnXSkpCnsKCSRwcm9tcHQgPSAkcGFyYW1zWydwcm9tcHQnXTsKfQoKJG9wdGlvbnMgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ29wdGlvbnMnXSkpCnsKICAkb3B0aW9ucyA9IHRyaW0oJHBhcmFtc1snb3B0aW9ucyddKTsKfQoKJHR5cGUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ3R5cGUnXSkpCnsKCSR0eXBlID0gJHBhcmFtc1sndHlwZSddOwp9CgokbWF4X2xlbmd0aCA9IDI1NTsKaWYgKGlzc2V0KCRwYXJhbXNbJ21heF9sZW5ndGgnXSkpCnsKICAkbWF4X2xlbmd0aCA9IChpbnQpJHBhcmFtc1snbWF4X2xlbmd0aCddOwp9CgokcHVibGljID0gMTsKaWYoIGlzc2V0KCRwYXJhbXNbJ3B1YmxpYyddKSApCiAgewogICAgJHB1YmxpYyA9IChpbnQpJHBhcmFtc1sncHVibGljJ107CiAgfQoKJHVzZXJpZCA9IGdldF91c2VyaWQoKTsKCmlmIChpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpCnsKICBpZiggJHR5cGUgPT0gJycgKQogICAgewogICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9ub2ZpZWxkdHlwZScpKTsKICAgIH0KICBlbHNlIGlmICgkbmFtZSA9PSAnJykKICAgIHsKICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbm9uYW1lZ2l2ZW4nKSk7CiAgICB9CiAgZWxzZSBpZiggISR0aGlzLT5pc19hbGlhcygkbmFtZSkgKQogICAgewogICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkX25hbWUnKSk7CiAgICB9CiAgZWxzZSBpZiggIWVtcHR5KCRtYXhfbGVuZ3RoKSAmJiAhaXNfbnVtZXJpYygkbWF4X2xlbmd0aCkgKQogICAgewogICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdub3RhbnVtYmVyJykpOwogICAgfQogIGVsc2UKICAgIHsKICAgICAgJG1heCA9ICRkYi0+R2V0T25lKCdTRUxFQ1QgbWF4KGl0ZW1fb3JkZXIpICsgMSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcycpOwogICAgICBpZiggISRtYXggKSAkbWF4ID0gMDsKICAgICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIChuYW1lLCBwcm9tcHQsIHR5cGUsIG1heF9sZW5ndGgsIGl0ZW1fb3JkZXIsIGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlLCBwdWJsaWMsIG9wdGlvbnMpIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/LD8pJzsKICAgICAgJHBhcm1zID0gYXJyYXkoJG5hbWUsICRwcm9tcHQsICR0eXBlLCAkbWF4X2xlbmd0aCwgJG1heCwgCgkJICAgICB0cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSwgIiciKSwgCgkJICAgICB0cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSwgIiciKSwKCQkgICAgICRwdWJsaWMsJG9wdGlvbnMpOwogICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgJHBhcm1zICk7CiAgICAgIGlmKCAhJGRiciApIHsKCWVjaG8gIkRFQlVHOiByZXN1bHQgPSAiLiRkYi0+RXJyb3JNc2coKS4iPGJyLz4mbmJzcDsmbmJzcDsiLiRkYi0+c3FsLiI8YnIvPiI7IGRpZSgpOwogICAgICB9CiAgICAgIAogICAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogICAgfQp9CgojRGlzcGxheSB0ZW1wbGF0ZQokc21hcnR5LT5hc3NpZ24oJ29wdGlvbnMnLCRvcHRpb25zKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCAKCQkkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRkZmllbGRkZWYnLCAkcmV0dXJuaWQpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRuYW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICduYW1lJywgJG5hbWUsIDMwLCAyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHByb21wdCcsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ3Byb21wdCcsJHByb21wdCw1MCwyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCdzaG93aW5wdXR0eXBlJywgdHJ1ZSk7CgokYWRkdGV4dCA9ICJvbkNoYW5nZT0ndGhpcy5mb3JtLnN1Ym1pdCgpJyI7CiRzbWFydHktPmFzc2lnbignaW5wdXR0eXBlJywgJHRoaXMtPkdldFR5cGVzRHJvcGRvd24oJGlkLCAndHlwZScsICR0eXBlLCAkYWRkdGV4dCwgdHJ1ZSkpOwokc21hcnR5LT5hc3NpZ24oJ3R5cGUnLCR0eXBlKTsKCmlmKCAkdHlwZSA9PSAndGV4dGJveCcgKQogIHsKICAgICRzbWFydHktPmFzc2lnbignaW5wdXRtYXhsZW5ndGgnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ21heF9sZW5ndGgnLCAkbWF4X2xlbmd0aCwgMzAsIDI1NSkpOwogIH0KCiRzbWFydHktPmFzc2lnbigndXNlcnZpZXd0ZXh0JywkdGhpcy0+TGFuZygncHVibGljJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3VzZXJ2aWV3JywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRjaGVja2JveCgkaWQsICdwdWJsaWMnLCAxLCAkcHVibGljKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsICcnKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdGZpZWxkZGVmLnRwbCcpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.addproduct.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYigncHJvZHVjdHMnKTsKCi8vCi8vIEEgdXRpbGl0eSBmdW5jdGlvbgovLwpmdW5jdGlvbiBnZXRfZmllbGRfZGVmKCYkZmllbGRkZWZzLCRpZCkKewogIGZvcmVhY2goICRmaWVsZGRlZnMgYXMgJG9uZWRlZiApCiAgICB7CiAgICAgIGlmKCAkb25lZGVmLT5pZCA9PSAkaWQgKQoJewoJICByZXR1cm4gJG9uZWRlZjsKCX0KICAgIH0KICByZXR1cm4gZmFsc2U7Cn0KCgppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpKQogIHsKICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ25lZWRwZXJtaXNzaW9uJywgYXJyYXkoJ01vZGlmeSBQcm9kdWN0cycpKSk7CiAgICByZXR1cm47CiAgfQoKaWYgKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSkKICB7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogIH0KCiRwcm9kdWN0X25hbWUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ3Byb2R1Y3RfbmFtZSddKSkKICB7CiAgICAkcHJvZHVjdF9uYW1lID0gJHBhcmFtc1sncHJvZHVjdF9uYW1lJ107CiAgfQoKJHByaWNlID0gMC4wOwppZiAoaXNzZXQoJHBhcmFtc1sncHJpY2UnXSkgKQogIHsKICAgICRwcmljZSA9IChmbG9hdCkkcGFyYW1zWydwcmljZSddOwogIH0KJHdlaWdodCA9IDAuMDsKaWYgKGlzc2V0KCRwYXJhbXNbJ3dlaWdodCddKSApCiAgewogICAgJHdlaWdodCA9IChmbG9hdCkkcGFyYW1zWyd3ZWlnaHQnXTsKICB9CgokZGV0YWlscyA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snZGV0YWlscyddKSkKICB7CiAgICAkZGV0YWlscyA9ICRwYXJhbXNbJ2RldGFpbHMnXTsKICB9Cgokc3RhdHVzID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydzdGF0dXMnXSkpCiAgewogICAgJHN0YXR1cyA9ICRwYXJhbXNbJ3N0YXR1cyddOwogIH0KCiR0YXhhYmxlID0gMDsKaWYgKGlzc2V0KCRwYXJhbXNbJ3RheGFibGUnXSkpCiAgewogICAgJHRheGFibGUgPSAxOwogIH0KCiR1c2VyaWQgPSBnZXRfdXNlcmlkKCk7CiRmaWVsZGRlZnMgPSAkdGhpcy0+R2V0RmllbGREZWZzKHRydWUpOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkKICB7CiAgICAkZHVwbGljYXRlID0gJyc7CiAgICBpZiggIWVtcHR5KCRwcm9kdWN0X25hbWUpICkKICAgICAgewoJLy8gY2hlY2sgZm9yIGR1cGxpY2F0ZSBuYW1lCgkkcXVlcnkgPSAnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cwogICAgICAgICAgICAgICAgICAgV0hFUkUgcHJvZHVjdF9uYW1lID0gPyc7CgkkZHVwbGljYXRlID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRwcm9kdWN0X25hbWUpKTsKICAgICAgfQoKICAgIGlmICgkcHJvZHVjdF9uYW1lID09ICcnKQogICAgICB7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdub25hbWVnaXZlbicpKTsKICAgICAgfQogICAgaWYoICRkdXBsaWNhdGUgKQogICAgICB7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9wcm9kdWN0X25hbWV1c2VkJykpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCS8vIGluc2VydCB0aGUgcHJvZHVjdCByZWNvcmQKCSRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzIChwcm9kdWN0X25hbWUsIHByaWNlLCBkZXRhaWxzLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSwgdGF4YWJsZSwgc3RhdHVzLCB3ZWlnaHQpIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/KSc7CgkkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHByb2R1Y3RfbmFtZSwgJHByaWNlLCAkZGV0YWlscywgdHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSksICInIiksIHRyaW0oJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLCAiJyIpLCAkdGF4YWJsZSwgJHN0YXR1cywgJHdlaWdodCkpOwoJJGNpZCA9ICRkYi0+SW5zZXJ0X0lEKCk7CgoJLy8gaW5zZXJ0IHRoZSBwcm9kdG9oaWVyIHJlY29yZAoJJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHRvaGllciAKICAgICAgICAgICAgICAgICAgIChwcm9kdWN0X2lkLGhpZXJhcmNoeV9pZCkKICAgICAgICAgICAgICAgICAgIFZBTFVFUyAoPyw/KSc7CgkkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoICRjaWQsIChpbnQpJHBhcmFtc1snaGllcmFyY2h5J10pICk7CgoJLy8gSGFuZGxlIGN1c3RvbSBmaWVsZHMKCSRlcnJvcnMgPSBhcnJheSgpOwoJaWYgKGlzc2V0KCRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ10pKQoJICB7CgkgICAgZm9yZWFjaCAoJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGQnXSBhcyAkaz0+JHYpCgkgICAgICB7CgkJaWYgKHN0YXJ0c3dpdGgoJGssICdmaWVsZC0nKSkKCQkgIHsKCQkgICAgLy8gZ2V0IHRoZSBmaWVsZCBpbmRleAoJCSAgICAkZmlkID0gc3Vic3RyKCRrLCA2KTsKCgkJICAgIC8vIGdldCB0aGUgZmllbGQgdHlwZQoJCSAgICAkZGVmID0gZ2V0X2ZpZWxkX2RlZigkZmllbGRkZWZzLCRmaWQpOwoJCSAgICBpZiggISRkZWYgKQoJCSAgICAgIHsKCQkJZGllKCdjb3VsZCBub3QgZ2V0IGZpZWxkIGRlZiBmb3IgJy4kZmlkKTsKCQkJY29udGludWU7CgkJICAgICAgfQoKCQkgICAgLy8gaGFuZGxlIHRoZSB1cGxvYWQgKGlmIGFueSkKCQkgICAgc3dpdGNoKCAkZGVmLT50eXBlICkKCQkgICAgICB7CgkJICAgICAgY2FzZSAnZmlsZSc6CgkJCSRkZXN0ZGlyID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkdGhpcy0+R2V0TmFtZSgpLAoJCQkJCQkgJ3Byb2R1Y3RfJy4kY2lkKTsKCQkJJHRoaXMtPm1rZGlycigkZGVzdGRpcik7CgkJCWlmKCAhaXNfZGlyKCRkZXN0ZGlyKSApIGRpZSgnZGlyZWN0b3J5IHN0aWxsIGRvZXMgbm90IGV4aXN0Jyk7CgkJCSRoYW5kbGVyID0gbmV3IENHRmlsZVVwbG9hZEhhbmRsZXIoJGlkLCRkZXN0ZGlyKTsKCQkJJGhhbmRsZXItPlNldEFjY2VwdGVkRmlsZVR5cGVzKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd2VkX2ZpbGV0eXBlcycpKTsKCQkJJHJlcyA9ICRoYW5kbGVyLT5IYW5kbGVVcGxvYWRlZEZpbGUoJ2N1c3RvbWZpZWxkJywnJywnZmllbGQtJy4kZmlkKTsKCQkJaWYoICEkcmVzICYmICRoYW5kbGVyLT5HZXRFcnJvcigpICE9IENHRklMRVVQTE9BRF9OT0ZJTEUgKQoJCQkgIHsKCQkJICAgICRlcnIgPSAkaGFuZGxlci0+R2V0RXJyb3IoKTsKCQkJICAgICRlcnJvcnNbXSA9IHNwcmludGYoIiVzICVzOiAlcyIsJHRoaXMtPkxhbmcoJ2ZpZWxkJyksJGRlZi0+bmFtZSwKCQkJCQkJJHRoaXMtPkdldFVwbG9hZEVycm9yTWVzc2FnZSgkZXJyKSk7CgkJCSAgfQoJCQllbHNlIGlmKCAhJHJlcyApCgkJCSAgewoJCQkgICAgJHYgPSBudWxsOwoJCQkgIH0KCQkJZWxzZQoJCQkgIHsKCQkJICAgICR2ID0gJHJlczsKCQkJICB9CgkJCWJyZWFrOwoKCQkgICAgICBjYXNlICdpbWFnZSc6CgkJCSRkZXN0ZGlyID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkdGhpcy0+R2V0TmFtZSgpLAoJCQkJCQkgJ3Byb2R1Y3RfJy4kY2lkKTsKCQkJJHRoaXMtPm1rZGlycigkZGVzdGRpcik7CgkJCWlmKCAhaXNfZGlyKCRkZXN0ZGlyKSApIGRpZSgnZGlyZWN0b3J5IHN0aWxsIGRvZXMgbm90IGV4aXN0Jyk7CgkJCSRoYW5kbGVyID0gbmV3IENHRmlsZVVwbG9hZEhhbmRsZXIoJGlkLCRkZXN0ZGlyKTsKCQkJJGhhbmRsZXItPlNldEFjY2VwdGVkRmlsZVR5cGVzKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd2VkX2ltYWdldHlwZXMnKSk7CgkJCSRyZXMgPSAkaGFuZGxlci0+SGFuZGxlVXBsb2FkZWRGaWxlKCdjdXN0b21maWVsZCcsJycsJ2ZpZWxkLScuJGZpZCk7CgkJCWlmKCAhJHJlcyAmJiAkaGFuZGxlci0+R2V0RXJyb3IoKSAhPSBDR0ZJTEVVUExPQURfTk9GSUxFICkKCQkJICB7CgkJCSAgICAkZXJyID0gJGhhbmRsZXItPkdldEVycm9yKCk7CgkJCSAgICAkZXJyb3JzW10gPSBzcHJpbnRmKCIlcyAlczogJXMiLCR0aGlzLT5MYW5nKCdmaWVsZCcpLCRkZWYtPm5hbWUsCgkJCQkJCSR0aGlzLT5HZXRVcGxvYWRFcnJvck1lc3NhZ2UoJGVycikpOwoJCQkgIH0KCQkJZWxzZSBpZiggISRyZXMgKQoJCQkgIHsKCQkJICAgICR2ID0gbnVsbDsKCQkJICB9CgkJCWVsc2UKCQkJICB7CgkJCSAgICAkdiA9ICRyZXM7CgoJCQkgICAgLy8gZ2VuZXJhdGUgdGhlIHRodW1ibmFpbCBtYXliZQoJCQkgICAgaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhdXRvdGh1bWJuYWlsJykgPT0gMSApCgkJCSAgICAgIHsKCQkJCSRzcmNuYW1lID0gY21zX2pvaW5fcGF0aCgkZGVzdGRpciwkdik7CgkJCQkkZGVzdG5hbWUgPSBjbXNfam9pbl9wYXRoKCRkZXN0ZGlyLCd0aHVtYl8nLiR2KTsKCQkJCSR0aGlzLT5UcmFuc2Zvcm1JbWFnZSgkc3JjbmFtZSwkZGVzdG5hbWUpOwoJCQkgICAgICB9CQkJICAKCQkJICB9CgkJCWJyZWFrOwoKCQkgICAgICBjYXNlICd0ZXh0Ym94JzoKCQkgICAgICBjYXNlICdjaGVja2JveCc6CgkJICAgICAgY2FzZSAndGV4dGFyZWEnOgoJCSAgICAgIGNhc2UgJ2Ryb3Bkb3duJzoKCQkJYnJlYWs7CgoJCSAgICAgIGRlZmF1bHQ6CgkJCWRpZSgidW5rbm93biB0eXBlOiAiLiRkZWYtPnR5cGUpOwoJCQlicmVhazsKCQkgICAgICB9CgoJCSAgICAvLyBjb21taXQgaXQuCgkJICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyAocHJvZHVjdF9pZCwgZmllbGRkZWZfaWQsIHZhbHVlLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSkgVkFMVUVTICg/LD8sPyw/LD8pJzsKCQkgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGNpZCwgJGZpZCwgJHYsIHRyaW0oJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLCAiJyIpLCB0cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSwgIiciKSkpOwoJCSAgfQoJICAgICAgfQoJICB9CgoJLy8gaGFuZGxlIGNhdGVnb3J5IHN0dWZmCglpZiAoaXNzZXQoJF9SRVFVRVNUWyRpZC4nY2F0ZWdvcnknXSkpCgkgIHsKCSAgICBmb3JlYWNoICgkX1JFUVVFU1RbJGlkLidjYXRlZ29yeSddIGFzICRrPT4kdikKCSAgICAgIHsKCQlpZiAoc3RhcnRzd2l0aCgkaywgJ2lkLScpKQoJCSAgewoJCSAgICAkZmlkID0gc3Vic3RyKCRrLCAzKTsKCQkgICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzIChwcm9kdWN0X2lkLCBjYXRlZ29yeV9pZCwgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUpIFZBTFVFUyAoPyw/LD8sPyknOwoJCSAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY2lkLCAkZmlkLCB0cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSwgIiciKSwgdHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSksICInIikpKTsKCQkgIH0KCSAgICAgIH0KCSAgfQoJCQoJLy9VcGRhdGUgc2VhcmNoIGluZGV4CgkkbW9kdWxlID0mICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnU2VhcmNoJyk7CglpZiAoJG1vZHVsZSAhPSBGQUxTRSkKCSAgewoJICAgIGlmKCAkc3RhdHVzID09ICdwdWJsaXNoZWQnICkKCSAgICAgIHsKCQkkbW9kdWxlLT5BZGRXb3JkcygkdGhpcy0+R2V0TmFtZSgpLCAkY2lkLCAncHJvZHVjdCcsIAoJCQkJICBpbXBsb2RlKCcgJywgJHRoaXMtPkdldFNlYXJjaGFibGVUZXh0KCRjaWQpICkpOwoJICAgICAgfQoJICB9CgoJLy8gaWYgdGhlcmUgd2VyZSBlcnJvcnMKCS8vIGRpc3BsYXkgdGhlbQoJLy8gYW5kIGEgcmV0dXJuIGxpbmsKCS8vIGNvdWxkIHVzZSBhIHRlbXBsYXRlIGhlcmUsIGJ1dCBmdWcgaXQgZm9yIG5vdy4KCWlmKCAhZW1wdHkoJGVycm9ycykgKQoJICB7CgkgICAgZWNobyAkdGhpcy0+TGFuZygnaW5mb19maWVsZHByb2JsZW1zJyk7CgkgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZXJyb3JzKTsKCSAgICByZXR1cm47CgkgIH0KCgkkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogICAgICB9IC8vIGluc2VydCB0aGUgcHJvZHVjdCByZWNvcmQKICB9CgokZmllbGRhcnJheSA9IGFycmF5KCk7CmlmIChjb3VudCgkZmllbGRkZWZzKSA+IDApCiAgewogICAgZm9yZWFjaCAoJGZpZWxkZGVmcyBhcyAkZmllbGRkZWYpCiAgICAgIHsKCSRmaWVsZCA9IG5ldyBzdGRDbGFzcygpOwoKICAgICAgICAkdmFsdWUgPSAnJzsKICAgICAgICBpZiAoaXNzZXQoJGZpZWxkZGVmLT52YWx1ZSkpCgkgIHsKCSAgICAkdmFsdWUgPSAkZmllbGRkZWYtPnZhbHVlOwoJICB9CgoJaWYgKGlzc2V0KCRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ11bJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZF0pKQoJICAkdmFsdWUgPSAkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddWydmaWVsZC0nLiRmaWVsZGRlZi0+aWRdOwoJJGZpZWxkLT5pZCA9ICRmaWVsZGRlZi0+aWQ7CgkkZmllbGQtPm5hbWUgPSAkZmllbGRkZWYtPm5hbWU7CgkkZmllbGQtPnByb21wdCA9ICRmaWVsZGRlZi0+cHJvbXB0OwoJc3dpdGNoICgkZmllbGRkZWYtPnR5cGUpCgkgIHsKCSAgY2FzZSAnY2hlY2tib3gnOgoJICAgICRmaWVsZC0+aW5wdXRfYm94ID0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IicgLiAkaWQgLiAnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddJyAuICciIHZhbHVlPSJmYWxzZSIgLz4nLiR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsICd0cnVlJywgJHZhbHVlID09ICd0cnVlJyk7CgkgICAgYnJlYWs7CgkgIGNhc2UgJ3RleHRhcmVhJzoKCSAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVUZXh0QXJlYSh0cnVlLCAkaWQsICR2YWx1ZSwgJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScpOwoJICAgIGJyZWFrOwoJICBjYXNlICdkcm9wZG93bic6CgkgICAgJGZpZWxkLT5pbnB1dF9ib3ggPSAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCAkZmllbGRkZWYtPm9wdGlvbnMsIC0xLCAkdmFsdWUgKTsKCSAgICBicmVhazsKCSAgY2FzZSAnZmlsZSc6CgkgIGNhc2UgJ2ltYWdlJzoKCSAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nKTsKCSAgICAkZmllbGQtPmhpZGRlbiA9ICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsMSk7CgkgICAgYnJlYWs7CgkgIGNhc2UgJ3RleHRib3gnOgoJICBkZWZhdWx0OgoJICAgICRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCAkdmFsdWUsIDMwLCAyNTUpOwoJICAgIGJyZWFrOwoJICB9CgkkZmllbGRhcnJheVtdID0gJGZpZWxkOwogICAgICB9CiAgfQoKJGNhdGVnb3JpZXMgPSAkdGhpcy0+R2V0Q2F0ZWdvcmllcygpOwokY2F0YXJyYXkgPSBhcnJheSgpOwoKaWYgKGNvdW50KCRjYXRlZ29yaWVzKSA+IDApCiAgewogICAgZm9yZWFjaCAoJGNhdGVnb3JpZXMgYXMgJGZpZWxkZGVmKQogICAgICB7CgkkZmllbGQgPSBuZXcgc3RkQ2xhc3MoKTsKCgkkdmFsdWUgPSAnZmFsc2UnOwoJaWYgKGlzc2V0KCRfUkVRVUVTVFskaWQuJ2NhdGVnb3J5J11bJ2lkLScuJGZpZWxkZGVmLT5pZF0pKQoJICAkdmFsdWUgPSAndHJ1ZSc7CgoJJGZpZWxkLT5pZCA9ICRmaWVsZGRlZi0+aWQ7CgkkZmllbGQtPm5hbWUgPSAkZmllbGRkZWYtPm5hbWU7CgkkZmllbGQtPmNoZWNrYm94ID0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnY2F0ZWdvcnlbaWQtJy4kZmllbGRkZWYtPmlkLiddJywgJHZhbHVlLCAndHJ1ZScpOwoKCSRjYXRhcnJheVtdID0gJGZpZWxkOwogICAgICB9CiAgfQoKI0Rpc3BsYXkgdGVtcGxhdGUKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkZHByb2R1Y3QnLCAkcmV0dXJuaWQsICdwb3N0JywgJ211bHRpcGFydC9mb3JtLWRhdGEnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25hbWV0ZXh0JywgJHRoaXMtPkxhbmcoJ25hbWUnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRuYW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdwcm9kdWN0X25hbWUnLCAkcHJvZHVjdF9uYW1lLCAzMCwgMjU1KSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigncHJpY2V0ZXh0JywgJHRoaXMtPkxhbmcoJ3ByaWNlJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0cHJpY2UnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3ByaWNlJywgJHByaWNlLCA4LCAxMikpOwokc21hcnR5LT5hc3NpZ24oJ2N1cnJlbmN5X3N5bWJvbCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Byb2R1Y3RzX2N1cnJlbmN5c3ltYm9sJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3dlaWdodHRleHQnLCAkdGhpcy0+TGFuZygnd2VpZ2h0JykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0d2VpZ2h0JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd3ZWlnaHQnLCAkd2VpZ2h0LCA4LCAxMikpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3dlaWdodHVuaXRzJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJvZHVjdHNfd2VpZ2h0dW5pdHMnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZGV0YWlsc3RleHQnLCAkdGhpcy0+TGFuZygnZGV0YWlscycpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dGRldGFpbHMnLCAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEodHJ1ZSwgJGlkLCAkZGV0YWlscywgJ2RldGFpbHMnLCAnJywgJycsICcnLCAnJywgJzgwJywgJzUnKSk7CgoKJHNtYXJ0eS0+YXNzaWduKCd0YXhhYmxldGV4dCcsJHRoaXMtPkxhbmcoJ3RheGFibGUnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXR0YXhhYmxlJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ3RheGFibGUnLDEsJHRheGFibGUpKTsKCiRoaWVyYXJjaHlfaXRlbXMgPSAkdGhpcy0+QnVpbGRIaWVyYXJjaHlMaXN0KCk7CiRzbWFydHktPmFzc2lnbignaGllcmFyY2h5X2l0ZW1zJywkaGllcmFyY2h5X2l0ZW1zKTsKJHNtYXJ0eS0+YXNzaWduKCdoaWVyYXJjaHlfcG9zJywtMSk7Cgokc3RhdHVzZXMgPSBhcnJheSgkdGhpcy0+TGFuZygncHVibGlzaGVkJyk9PidwdWJsaXNoZWQnLAoJCSAgJHRoaXMtPkxhbmcoJ2RyYWZ0Jyk9PidkcmFmdCcsCgkJICAkdGhpcy0+TGFuZygnZGlzYWJsZWQnKT0+J2Rpc2FibGVkJyk7CiRzbWFydHktPmFzc2lnbignc3RhdHVzdGV4dCcsJHRoaXMtPkxhbmcoJ3N0YXR1cycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHN0YXR1cycsCgkJJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdzdGF0dXMnLAoJCQkJCSAgICRzdGF0dXNlcywtMSwkc3RhdHVzKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaGlkZGVuJywgJycpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCBsYW5nKCdzdWJtaXQnKSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhbmNlbCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdjYW5jZWwnLCBsYW5nKCdjYW5jZWwnKSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdjdXN0b21maWVsZHMnLCAkZmllbGRhcnJheSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignY3VzdG9tZmllbGRzY291bnQnLCBjb3VudCgkZmllbGRhcnJheSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdjYXRlZ29yaWVzJywgJGNhdGFycmF5KTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yaWVzY291bnQnLCBjb3VudCgkY2F0YXJyYXkpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdHByb2R1Y3QudHBsJyk7Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.add_attrib_set.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBQcm9kdWN0cyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMgCiMgVmVyc2lvbjogMS4xLjUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQoKTsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSkKewogIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ25lZWRwZXJtaXNzaW9uJywgYXJyYXkoJ01vZGlmeSBQcm9kdWN0cycpKSk7CiAgcmV0dXJuOwp9CmlmKCAhaXNzZXQoJHBhcmFtc1snY29tcGlkJ10pICkKICB7CiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nKSk7CiAgICByZXR1cm47CiAgfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSApCiAgewogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwnZWRpdF9hdHRyaWJzZXRzJywkcmV0dXJuaWQsCgkJICAgIGFycmF5KCdjb21waWQnPT4kcGFyYW1zWydjb21waWQnXSkpOwogICAgcmV0dXJuOwogIH0KCi8vIGluaXRpYWxpemF0aW9uCiRzZXRfbmFtZSA9ICcnOwokYXR0cmlic2V0X3ZhbHVlcyA9IGFycmF5KCk7CgppZiggaXNzZXQoJHBhcmFtc1snYXR0cnNldGlkJ10pICkKICB7CiAgICAvLyB3ZSB3ZXJlIHBhc3NlZCBhbiBhdHRyaWJ1dGUgc2V0IGlkCiAgICAvLyBsb2FkIHRoZSB2YWx1ZXMgZnJvbSB0aGUgZGF0YWJhc2UuCiAgICAkcXVlcnkgPSAnU0VMRUNUIGF0dHJpYl9zZXRfbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlic2V0cwogICAgICAgICAgICAgICBXSEVSRSBhdHRyaWJfc2V0X2lkID0gPyc7CiAgICAkc2V0X25hbWUgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHBhcmFtc1snYXR0cnNldGlkJ10pKTsKICAgIGlmKCAhJHNldF9uYW1lICkKICAgICAgewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfZGJlcnJvcicpKTsKCXJldHVybjsKICAgICAgfQoKICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcyAKICAgICAgICAgICAgICAgV0hFUkUgYXR0cmliX3NldF9pZCA9ID8nOwogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcXVlcnksIGFycmF5KCRwYXJhbXNbJ2F0dHJzZXRpZCddKSApOwogICAgd2hpbGUoICRkYnJlc3VsdCAmJiAoJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkgKQogICAgICB7CgkkYXR0cmlic2V0X3ZhbHVlc1skcm93WydhdHRyaWJfdGV4dCddXSA9ICRyb3dbJ2F0dHJpYl9hZGp1c3RtZW50J107CiAgICAgIH0KICB9CgovLyBQcm9jZXNzIHRoZSBpbnB1dAppZiggaXNzZXQoJHBhcmFtc1snYXR0cmlidXRlX25hbWUnXSkgKQogIHsKICAgICRzZXRfbmFtZSA9IHRyaW0oJHBhcmFtc1snYXR0cmlidXRlX25hbWUnXSk7CiAgfQoKCiRlcnJvcnMgPSBhcnJheSgpOwppZiggaXNzZXQoJHBhcmFtc1snb3B0dGV4dCddKSAmJiBpc3NldCgkcGFyYW1zWydvcHR2YWx1ZSddKQogICAgJiYgKGNvdW50KCRwYXJhbXNbJ29wdHRleHQnXSkgPT0gY291bnQoJHBhcmFtc1snb3B0dmFsdWUnXSkpICkKICB7CiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkcGFyYW1zWydvcHR0ZXh0J10pOyAkaSsrICkKICAgICAgewoJCSRrID0gdHJpbSgkcGFyYW1zWydvcHR0ZXh0J11bJGldKTsKCQkkdiA9IHRyaW0oJHBhcmFtc1snb3B0dmFsdWUnXVskaV0pOwoJCWlmKCBlbXB0eSgkaykgKSBjb250aW51ZTsKCQlpZiggIXByZWdfbWF0Y2goJy9bXCtcLVwqXT9cZCsoXC5cZCspPy8nLCR2KSApCgkJICB7CgkJCSRlcnJvcnNbXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9wcmljZV9hZGp1c3RtZW50Jywkayk7CgkJICB9CgkJJGF0dHJpYnNldF92YWx1ZXNbJGtdID0gJHY7CiAgICAgIH0KICB9CgovLyBQcm9jZXNzIHRoZSB1cGRhdGUgYnV0dG9uCmlmKCBpc3NldCgkcGFyYW1zWyd2YWx1ZV91cGRhdGUnXSkgKQogIHsKICAgICR2YWx1ZV9uYW1lID0gdHJpbSgkcGFyYW1zWyd2YWx1ZV9uYW1lJ10pOwogICAgaWYoICFlbXB0eSgkdmFsdWVfbmFtZSkgKQogICAgICB7CgkJaWYoIGlzc2V0KCRhdHRyaWJzZXRfdmFsdWVzWyR2YWx1ZV9uYW1lXSkgKQoJCSAgewoJCQl1bnNldCgkYXR0cmlic2V0X3ZhbHVlc1skdmFsdWVfbmFtZV0pOwoJCSAgfQoJCSRhdHRyaWJzZXRfdmFsdWVzWyR2YWx1ZV9uYW1lXSA9IHRyaW0oJHBhcmFtc1sndmFsdWVfYWRqdXN0bWVudCddKTsKICAgICAgfQogIH0KCmlmKCBjb3VudCgkZXJyb3JzKSApCiAgewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZXJyb3JzKTsKICB9CgovLyBQcm9jZXNzIHRoZSBzdWJtaXQgYnV0dG9uCmlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgJiYgIWNvdW50KCRlcnJvcnMpICkKICB7CiAgICAvLyBWYWxpZGF0ZSBhbGwgcGFyYW1ldGVycwogICAgaWYoIGVtcHR5KCAkc2V0X25hbWUgKSApCiAgICAgIHsKCQllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJaWYoIGlzc2V0KCRwYXJhbXNbJ2F0dHJzZXRfaWQnXSkgKQoJICB7CgkgICAgLy8gZG9pbmcgYW4gdXBkYXRlCgoJICAgIC8vIEVuc3VyZSB0aGF0IHRoZSBuYW1lIGlzIHZhbGlkCgkgICAgLy8gRW5zdXJlIHRoZXJlIGlzIG5vIHNldCBuYW1lIHRoYXQgZXhpc3RzCgkgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBhdHRyaWJfc2V0X2lkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJzZXRzIAogICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIGF0dHJpYl9zZXRfbmFtZSA9ID8gCiAgICAgICAgICAgICAgICAgICAgICAgICBBTkQgcHJvZHVjdF9pZCA9ID8KICAgICAgICAgICAgICAgICAgICAgICAgIEFORCBwcm9kdWN0X3NldF9pZCAhPSA/JzsKCSAgICAkYXNpZCA9ICRkYi0+R2V0T25lKCRxdWVyeSwKCQkJCWFycmF5KCRzZXRfbmFtZSwkcGFyYW1zWydjb21waWQnXSwKCQkJCSAgICAgICRwYXJtc1snYXR0cnNldF9pZCddKSk7CgoJICAgIGlmKCAkYXNpZCApCgkgICAgICB7CgkJLy8gd2UncmUgYWRkaW5nIGFuZCB0aGUgbmFtZSBhbHJlYWR5IGV4aXN0cwoJCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnKSk7CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCS8vIDEuICBEZWxldGUgdGhlIGF0dHJpYnV0ZSB2YWx1ZXMKCQkkcXVlcnkgPSAnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJ1dGVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIGF0dHJpYl9zZXRfaWQgPSA/JzsKCQkkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoICRwYXJhbXNbJ2F0dHJzZXRfaWQnXSkgKTsKCgkJLy8gMi4gIFVwZGF0ZSB0aGUgYXR0cmlidXRlIHJlY29yZAoJCSRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJzZXRzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VUIGF0dHJpYl9zZXRfbmFtZSA9ID8KICAgICAgICAgICAgICAgICAgICAgICAgICAgV0hFUkUgYXR0cmliX3NldF9pZCA9ID8nOwoJCSRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSgkc2V0X25hbWUsJHBhcmFtc1snYXR0cnNldF9pZCddKSApOwoKCQkvLyAzLiAgSW5zZXJ0IHRoZSBhdHRyaWJ1dGUgdmFsdWVzCgkJJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcwogICAgICAgICAgICAgICAgICAgICAgICAoYXR0cmliX3NldF9pZCxhdHRyaWJfdGV4dCxhdHRyaWJfYWRqdXN0bWVudCkKICAgICAgICAgICAgICAgICAgICAgIFZBTFVFUyg/LD8sPyknOwoJCWZvcmVhY2goJGF0dHJpYnNldF92YWx1ZXMgYXMgJGsgPT4gJHYgKQoJCSAgewoJCSAgICBlY2hvICJERUJVRzogJGsgPSAkdjxici8+IjsKCQkgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcXVlcnksIGFycmF5KCRwYXJhbXNbJ2F0dHJzZXRfaWQnXSwkaywkdikpOwoJCSAgICBpZiggISRkYnJlc3VsdCApCgkJICAgICAgewoJCQllY2hvICRkYi0+RXJyb3JNc2coKS4nPGJyLz4nLiRkYi0+c3FsO2RpZSgpOwoJCSAgICAgIH0KCQkgIH0KCgkJLy8gNC4gIFJlZGlyZWN0CgkJJHRoaXMtPlJlZGlyZWN0KCRpZCwnZWRpdF9hdHRyaWJzZXRzJywkcmV0dXJuaWQsCgkJCQlhcnJheSgnY29tcGlkJz0+JHBhcmFtc1snY29tcGlkJ10pKTsKCQlyZXR1cm47CgkgICAgICB9CgkgIH0KCWVsc2UKCSAgewoJICAgIC8vIGRvaW5nIGFuIGluc2VydAoKCSAgICAvLyBFbnN1cmUgdGhlcmUgaXMgbm8gc2V0IG5hbWUgdGhhdCBleGlzdHMKCSAgICAkcXVlcnkgPSAnU0VMRUNUIGF0dHJpYl9zZXRfaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnNldHMgV0hFUkUgYXR0cmliX3NldF9uYW1lID0gPyBBTkQgcHJvZHVjdF9pZCA9ID8nOwoJICAgICRhc2lkID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRzZXRfbmFtZSwkcGFyYW1zWydjb21waWQnXSkpOwoJICAgIGlmKCAkYXNpZCApCgkgICAgICB7CgkJLy8gd2UncmUgYWRkaW5nIGFuZCB0aGUgbmFtZSBhbHJlYWR5IGV4aXN0cwoJCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnKSk7CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCS8vIDEuIENvbW1pdCB0aGUgbmV3IHNldAoJCSRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnNldHMKICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9kdWN0X2lkLGF0dHJpYl9zZXRfbmFtZSkKICAgICAgICAgICAgICAgICAgICAgIFZBTFVFUyAoPyw/KSc7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcXVlcnksIGFycmF5KCRwYXJhbXNbJ2NvbXBpZCddLCRzZXRfbmFtZSkpOwoJCWlmKCAhJGRicmVzdWx0ICkKCQkgIHsKCQkgICAgZWNobyAkZGItPkVycm9yTXNnKCkuJzxici8+Jy4kZGItPnNxbDtkaWUoKTsKCQkgIH0KCQkkYXNpZCA9ICRkYi0+SW5zZXJ0X0lEKCk7CgkJCgkJLy8gMi4gQWRkIHRoZSB2YWx1ZXMKCQkkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJ1dGVzCiAgICAgICAgICAgICAgICAgICAgICAgIChhdHRyaWJfc2V0X2lkLGF0dHJpYl90ZXh0LGF0dHJpYl9hZGp1c3RtZW50KQogICAgICAgICAgICAgICAgICAgICAgVkFMVUVTKD8sPyw/KSc7CgkJZm9yZWFjaCgkYXR0cmlic2V0X3ZhbHVlcyBhcyAkayA9PiAkdiApCgkJICB7CgkJICAgIGVjaG8gIkRFQlVHOiAkayA9ICR2PGJyLz4iOwoJCSAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoJGFzaWQsJGssJHYpKTsKCQkgICAgaWYoICEkZGJyZXN1bHQgKQoJCSAgICAgIHsKCQkJZWNobyAkZGItPkVycm9yTXNnKCkuJzxici8+Jy4kZGItPnNxbDtkaWUoKTsKCQkgICAgICB9CgkJICB9CgoJCS8vIDMuIFJlZGlyZWN0CgkJJHRoaXMtPlJlZGlyZWN0KCRpZCwnZWRpdF9hdHRyaWJzZXRzJywkcmV0dXJuaWQsCgkJCQlhcnJheSgnY29tcGlkJz0+JHBhcmFtc1snY29tcGlkJ10pKTsKCQlyZXR1cm47CgkgICAgICB9CgkgIH0KICAgICAgfQogIH0KCiRwYXJtcyA9IGFycmF5KCk7CiRwYXJtc1snY29tcGlkJ10gPSAkcGFyYW1zWydjb21waWQnXTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2F0dHJzZXRpZCddKSApCiAgewogICAgJHBhcm1zWydhdHRyc2V0X2lkJ10gPSAkcGFyYW1zWydhdHRyc2V0aWQnXTsKICB9Ci8qCmVsc2UKICB7CiAgICAkcGFybXNbJ2F0dHJzZXRfaWQnXSA9ICRwYXJhbXNbJ2F0dHJzZXRfaWQnXTsKICB9CiovCiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdhZGRfYXR0cmliX3NldCcsJHJldHVybmlkLCRwYXJtcykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnc3VibWl0JywkdGhpcy0+TGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2NhbmNlbCcsJHRoaXMtPkxhbmcoJ2NhbmNlbCcpKSk7CiRzbWFydHktPmFzc2lnbignaWR0ZXh0JywkdGhpcy0+TGFuZygnaWQnKSk7CiRzbWFydHktPmFzc2lnbigna2V5dGV4dCcsJHRoaXMtPkxhbmcoJ25hbWUnKSk7CiRzbWFydHktPmFzc2lnbigndmFsdWV0ZXh0JywkdGhpcy0+TGFuZygncHJpY2VfYWRqdXN0bWVudCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbmZvX3ZhbHVldGV4dCcsJHRoaXMtPkxhbmcoJ2luZm9fcHJpY2VfYWRqdXN0bWVudCcpKTsKCiRzbWFydHktPmFzc2lnbigncHJvbXB0X3NldF9uYW1lJywkdGhpcy0+TGFuZygnYXR0cmlidXRlX25hbWUnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfc2V0X25hbWUnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdhdHRyaWJ1dGVfbmFtZScsJHNldF9uYW1lLDUwLDI1NSkpOwppZiggaXNzZXQoJGF0dHJpYnNldF92YWx1ZXMpICkKICB7CiAgICAkaSA9IDA7CiAgICAkc21fYXR0cmlic2V0ID0gYXJyYXkoKTsKICAgIGZvcmVhY2goJGF0dHJpYnNldF92YWx1ZXMgYXMgJGtleSA9PiAkdmFsdWUgKQogICAgICB7Cgkkb2JqID0gbmV3IFN0ZENsYXNzKCk7Cgkkb2JqLT5pZHggPSAkaSsxOwoJJG9iai0+a2V5ID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ29wdHRleHRbXScsJGtleSw1MCk7Cgkkb2JqLT52YWx1ZSA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdvcHR2YWx1ZVtdJywkdmFsdWUsMTAsNTApOwoJJHNtX2F0dHJpYnNldFtdID0gJG9iajsKCSRpKys7CiAgICAgIH0KICAgICRzbWFydHktPmFzc2lnbigndmFsdWVzJywkc21fYXR0cmlic2V0KTsKICB9CgovLyBhZGQgZmllbGRzIHRvIGFkZCBhIG5ldyB2YWx1ZQokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9hZGQnLCR0aGlzLT5MYW5nKCdhZGRfb3B0aW9uJykpOwokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9sYWJlbCcsJHRoaXMtPkxhbmcoJ2xhYmVsJykpOwokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9hZGp1c3RtZW50JywkdGhpcy0+TGFuZygncHJpY2VfYWRqdXN0bWVudCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF92YWx1ZV9uYW1lJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwndmFsdWVfbmFtZScsJycsNTApKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF92YWx1ZV9mYWN0b3InLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCd2YWx1ZV9hZGp1c3RtZW50JywnJywxMCw1MCkpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3VwZGF0ZScsCgkJJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwndmFsdWVfdXBkYXRlJywkdGhpcy0+TGFuZygndXBkYXRlJykpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRkX2F0dHJpYl9zZXQudHBsJyk7CgovLyBFT0YKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.admin_add_hierarchy_item.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSApIGV4aXQ7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdoaWVyYXJjaHknKTsKCmlmKCBpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkgKQogIHsKICAgIC8vIHdlJ3JlIGNhbmNlbGxpbmcKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgfQoKIwojIERlZmF1bHRzCiMKJHBhcmVudCA9IC0xOwokbmFtZSA9ICcnOwokZGVzY3JpcHRpb24gPSAnJzsKJGltYWdlID0gJyc7CgojIAojIGZvcm0gYWN0aW9ucwojCmlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKQogIHsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydwYXJlbnQnXSkgKQogICAgICB7CgkkcGFyZW50ID0gKGludCkkcGFyYW1zWydwYXJlbnQnXTsKICAgICAgfQogICAgJG5hbWUgPSB0cmltKCRwYXJhbXNbJ25hbWUnXSk7CiAgICAkZGVzY3JpcHRpb24gPSB0cmltKCRwYXJhbXNbJ2Rlc2NyaXB0aW9uJ10pOwogICAgaWYoIGVtcHR5KCRuYW1lKSApCiAgICAgIHsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXJhbXMnKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJLy8gSGFuZGxlIGZpbGUgdXBsb2FkCgkkZGVzdGRpciA9IGNtc19qb2luX3BhdGgoJGdDbXMtPmNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJHRoaXMtPkdldE5hbWUoKSwKCQkJCSAnaGllcmFyY2h5Jyk7CgkkdGhpcy0+bWtkaXJyKCRkZXN0ZGlyKTsKCWlmKCAhaXNfZGlyKCRkZXN0ZGlyKSApIGRpZSgnZGlyZWN0b3J5IHN0aWxsIGRvZXMgbm90IGV4aXN0Jyk7CgkkaGFuZGxlciA9IG5ldyBDR0ZpbGVVcGxvYWRIYW5kbGVyKCRpZCwkZGVzdGRpcik7CgkkaGFuZGxlci0+U2V0QWNjZXB0ZWRGaWxlVHlwZXMoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93ZWRfaW1hZ2V0eXBlcycpKTsKCSRyZXMgPSAkaGFuZGxlci0+SGFuZGxlVXBsb2FkZWRGaWxlKCdmaWxlJyk7CglpZiggJHJlcyA9PT0gZmFsc2UgJiYgJGhhbmRsZXItPkdldEVycm9yKCkgIT0gQ0dGSUxFVVBMT0FEX05PRklMRSApCgkgIHsKCSAgICAvLyBhbiBlcnJvciBlbnN1ZWQuCgkgICAgJGVyciA9ICRoYW5kbGVyLT5HZXRFcnJvcigpOwoJICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX3VwbG9hZF9mYWlsZWQnLCR0aGlzLT5HZXRVcGxvYWRFcnJvck1lc3NhZ2UoJGVycikpKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgJGltYWdlID0gJHJlczsKCgkgICAgaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhdXRvdGh1bWJuYWlsJykgPT0gMSApCgkgICAgICB7CgkJJHNyY25hbWUgPSBjbXNfam9pbl9wYXRoKCRkZXN0ZGlyLCRpbWFnZSk7CgkJJGRlc3RuYW1lID0gY21zX2pvaW5fcGF0aCgkZGVzdGRpciwndGh1bWJfJy4kaW1hZ2UpOwoJCSR0aGlzLT5UcmFuc2Zvcm1JbWFnZSgkc3JjbmFtZSwkZGVzdG5hbWUpOwoJICAgICAgfQoKCSAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkKICAgICAgICAgICAgICAgICAgICAobmFtZSwgcGFyZW50X2lkLCBkZXNjcmlwdGlvbiwgaW1hZ2UpIFZBTFVFUyg/LD8sPyw/KSc7CgkgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJG5hbWUsJHBhcmVudCwkZGVzY3JpcHRpb24sJGltYWdlKSk7CgkgICAgaWYoICEkZGJyICkgeyBlY2hvICRkYi0+c3FsLic8YnIvPic7IGRpZSggJGRiLT5FcnJvck1zZygpICk7IH0KCSAgICAkbmV3X2lkID0gJGRiLT5JbnNlcnRfSUQoKTsKCSAgICAkdGhpcy0+VXBkYXRlSGllcmFyY2h5UG9zaXRpb25zKCk7CgkgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKCSAgfQogICAgICB9CiAgfQoKIwojIEJ1aWxkIHRoZSBmb3JtCiMKJGhpZXJhcmNoeV9pdGVtcyA9ICR0aGlzLT5CdWlsZEhpZXJhcmNoeUxpc3QoKTsKJHNtYXJ0eS0+YXNzaWduKCdoaWVyYXJjaHlfaXRlbXMnLCRoaWVyYXJjaHlfaXRlbXMpOwokc21hcnR5LT5hc3NpZ24oJ3BhcmVudCcsJHBhcmVudCk7CiRzbWFydHktPmFzc2lnbignbmFtZScsJG5hbWUpOwokc21hcnR5LT5hc3NpZ24oJ2Rlc2NyaXB0aW9uJywkZGVzY3JpcHRpb24pOwokc21hcnR5LT5hc3NpZ24oJ2ltYWdlJywkaW1hZ2UpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsCgkJJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fYWRkX2hpZXJhcmNoeV9pdGVtJywkcmV0dXJuaWQsCgkJCQkJICRwYXJhbXMsZmFsc2UsJ3Bvc3QnLCdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9hZGRfaGllcmFyY2h5X2l0ZW0udHBsJyk7CiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_delete_hierarchy_item.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSApIGV4aXQ7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdoaWVyYXJjaHknKTsKaWYoICFpc3NldCgkcGFyYW1zWydoaWVyYXJjaHlfaWQnXSkgKQogIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICB9CiRoaWVyYXJjaHlfaWQgPSAoaW50KSRwYXJhbXNbJ2hpZXJhcmNoeV9pZCddOwoKLy8gUmVzZXQgYWxsIGhpZXJhcmNoaWVzIHVzaW5nIHRoaXMgcGFyZW50IHRvIGhhdmUgbm8gcGFyZW50ICgtMSkKJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBTRVQgcGFyZW50X2lkID0gLTEKICAgICAgICAgICBXSEVSRSBwYXJlbnRfaWQgPSA/JzsKJGRiciA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSggJGhpZXJhcmNoeV9pZCApICk7CgovLyBOb3cgcmVtb3ZlIGl0CiRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBXSEVSRSBpZCA9ID8nOwokZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoICRoaWVyYXJjaHlfaWQgKSApOwoKLy8gQW5kIG5vdyB1cGRhdGUgYW55IHByb2R1Y3RzIHRvIGhhdmUgbm8gY2F0ZWdvcnkKLy8gaWYgdGhleSBoYXZlIHRoaXMgaGllcmFyY2h5X2lkCiRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hlaXIKICAgICAgICAgICBXSEVSRSBoaWVyYXJjaHlfaWQgPSA/JzsKJGRiLT5FeGVjdXRlKCAkcXVlcnksIGFycmF5KCAkaGllcmFyY2h5X2lkICkgKTsKCiR0aGlzLT5VcGRhdGVIaWVyYXJjaHlQb3NpdGlvbnMoKTsKCi8vIGRvbmUKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_edit_hierarchy_item.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSApIGV4aXQ7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdoaWVyYXJjaHknKTsKaWYoICFpc3NldCgkcGFyYW1zWydoaWVyYXJjaHlfaWQnXSkgKQogIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICB9CiRoaWVyYXJjaHlfaWQgPSAoaW50KSRwYXJhbXNbJ2hpZXJhcmNoeV9pZCddOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSApCiAgewogICAgLy8gd2UncmUgY2FuY2VsbGluZwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICB9CgojCiMgRGVmYXVsdHMKIwokcGFyZW50ID0gLTE7CiRuYW1lID0gJyc7CiRkZXNjcmlwdGlvbiA9ICcnOwoKIwojIEdldCB0aGUgdmFsdWVzIGZyb20gdGhlIGRhdGFiYXNlCiMKJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkKICAgICAgICAgICBXSEVSRSBpZCA9ID8nOwokcm93ID0gJGRiLT5HZXRSb3coICRxdWVyeSwgYXJyYXkoICRoaWVyYXJjaHlfaWQpICk7CiRwYXJlbnQgPSAkcm93WydwYXJlbnRfaWQnXTsKJG5hbWUgPSAkcm93WyduYW1lJ107CiRpbWFnZSA9ICRyb3dbJ2ltYWdlJ107CiRkZXNjcmlwdGlvbiA9ICRyb3dbJ2Rlc2NyaXB0aW9uJ107CgojCiMgRm9ybSBBY3Rpb24KaWYoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSApCiAgewogICAgaWYoIChpbnQpJHBhcmFtc1sncGFyZW50J10gPT0gJHBhcmFtc1snaGllcmFyY2h5X2lkJ10gKQogICAgICB7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkcGFyZW50JykpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRkZXN0ZGlyID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkdGhpcy0+R2V0TmFtZSgpLAoJCQkJICdoaWVyYXJjaHknKTsKCgkvLyBoYW5kbGUgaW1hZ2UgZGVsZXRlIGZpcnN0CglpZiggaXNzZXQoJHBhcmFtc1snZGVsZXRlaW1nJ10pICkKCSAgewoJICAgICRzcmNuYW1lID0gY21zX2pvaW5fcGF0aCgkZGVzdGRpciwkaW1hZ2UpOwoJICAgICRkZXN0bmFtZSA9IGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJ3RodW1iXycuJGltYWdlKTsKCSAgICBAdW5saW5rKCRzcmNuYW1lKTsKCSAgICBAdW5saW5rKCRkZXN0bmFtZSk7CgkgIH0KCgkvLyBIYW5kbGUgZmlsZSB1cGxvYWQKCSR0aGlzLT5ta2RpcnIoJGRlc3RkaXIpOwoJaWYoICFpc19kaXIoJGRlc3RkaXIpICkgZGllKCdkaXJlY3Rvcnkgc3RpbGwgZG9lcyBub3QgZXhpc3QnKTsKCSRoYW5kbGVyID0gbmV3IENHRmlsZVVwbG9hZEhhbmRsZXIoJGlkLCRkZXN0ZGlyKTsKCSRoYW5kbGVyLT5TZXRBY2NlcHRlZEZpbGVUeXBlcygkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dlZF9pbWFnZXR5cGVzJykpOwoJJHJlcyA9ICRoYW5kbGVyLT5IYW5kbGVVcGxvYWRlZEZpbGUoJ2ZpbGUnKTsKCWlmKCAkcmVzID09PSBmYWxzZSAmJiAkaGFuZGxlci0+R2V0RXJyb3IoKSAhPSBDR0ZJTEVVUExPQURfTk9GSUxFICkKCSAgewoJICAgIC8vIGFuIGVycm9yIGVuc3VlZC4KCSAgICAkZXJyID0gJGhhbmRsZXItPkdldEVycm9yKCk7CgkgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfdXBsb2FkX2ZhaWxlZCcsJHRoaXMtPkdldFVwbG9hZEVycm9yTWVzc2FnZSgkZXJyKSkpOwoJICB9CgllbHNlCgkgIHsKCSAgICAvLyBpbWFnZSB1cGxvYWQgc3VjY2VlZGVkCgkgICAgCgkgICAgaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhdXRvdGh1bWJuYWlsJykgPT0gMSApCgkgICAgICB7CgkJJHNyY25hbWUgPSBjbXNfam9pbl9wYXRoKCRkZXN0ZGlyLCRpbWFnZSk7CgkJJGRlc3RuYW1lID0gY21zX2pvaW5fcGF0aCgkZGVzdGRpciwndGh1bWJfJy4kaW1hZ2UpOwoJCSR0aGlzLT5UcmFuc2Zvcm1JbWFnZSgkc3JjbmFtZSwkZGVzdG5hbWUpOwoJICAgICAgfQoKCSAgICAkaW1hZ2UgPSAkcmVzOwoJICAgICRuYW1lID0gdHJpbSgkcGFyYW1zWyduYW1lJ10pOwoJICAgICRwYXJlbnQgPSAoaW50KSRwYXJhbXNbJ3BhcmVudCddOwoJICAgICRkZXNjcmlwdGlvbiA9IHRyaW0oJHBhcmFtc1snZGVzY3JpcHRpb24nXSk7CgoJICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkKICAgICAgICAgICAgICAgICAgICAgIFNFVCBuYW1lID0gPywgaW1hZ2UgPSA/LCBwYXJlbnRfaWQgPSA/LCBkZXNjcmlwdGlvbiA9ID8KICAgICAgICAgICAgICAgICAgIFdIRVJFIGlkID0gPyc7CgkgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkbmFtZSwkaW1hZ2UsJHBhcmVudCwkZGVzY3JpcHRpb24sJGhpZXJhcmNoeV9pZCkpOwoJICAgIAoJICAgICR0aGlzLT5VcGRhdGVIaWVyYXJjaHlQb3NpdGlvbnMoKTsKCSAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoJICB9CiAgICAgIH0KICB9CgoKIwojIEJ1aWxkIHRoZSBmb3JtCiMKJGhpZXJhcmNoeV9pdGVtcyA9ICR0aGlzLT5CdWlsZEhpZXJhcmNoeUxpc3QoKTsKJHNtYXJ0eS0+YXNzaWduKCdoaWVyYXJjaHlfaXRlbXMnLCRoaWVyYXJjaHlfaXRlbXMpOwokc21hcnR5LT5hc3NpZ24oJ3BhcmVudCcsJHBhcmVudCk7CiRzbWFydHktPmFzc2lnbignbmFtZScsJG5hbWUpOwokc21hcnR5LT5hc3NpZ24oJ2ltYWdlJywkaW1hZ2UpOwokc21hcnR5LT5hc3NpZ24oJ2Rlc2NyaXB0aW9uJywkZGVzY3JpcHRpb24pOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsCgkJJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fZWRpdF9oaWVyYXJjaHlfaXRlbScsJHJldHVybmlkLAoJCQkJCSAkcGFyYW1zLCdmYWxzZScsJ3Bvc3QnLCdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9hZGRfaGllcmFyY2h5X2l0ZW0udHBsJyk7CgoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_saveprefs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoICRnQ21zICkgKSByZXR1cm47CgokdGhpcy0+U2V0Q3VycmVudFRhYigncHJlZnMnKTsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkKICB7CiAgICByZXR1cm47CiAgfQoKaWYoICFpc3NldCggJHBhcmFtc1snc3VibWl0J10gKSApCiAgewogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICB9CgppZiggaXNzZXQoJHBhcmFtc1sndGF4X21vZHVsZSddKSApCiAgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3RheF9tb2R1bGUnLCRwYXJhbXNbJ3RheF9tb2R1bGUnXSk7CiAgfQplbHNlCiAgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3RheF9tb2R1bGUnLC0xKTsKICB9CgppZiggaXNzZXQoJHBhcmFtc1snZGV0YWlscGFnZSddKSApCiAgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RldGFpbHBhZ2UnLCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSk7CiAgfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ3NvcnRvcmRlciddKSApCiAgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3NvcnRvcmRlcicsJHBhcmFtc1snc29ydG9yZGVyJ10pOwogIH0KCmlmKCBpc3NldCgkcGFyYW1zWydzb3J0YnknXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzb3J0YnknLCRwYXJhbXNbJ3NvcnRieSddKTsKICB9CgppZiggaXNzZXQoJHBhcmFtc1snY3VycmVuY3lzeW1ib2wnXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwcm9kdWN0c19jdXJyZW5jeXN5bWJvbCcsdHJpbSgkcGFyYW1zWydjdXJyZW5jeXN5bWJvbCddKSk7CiAgfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ3dlaWdodHVuaXRzJ10pICkKICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgncHJvZHVjdHNfd2VpZ2h0dW5pdHMnLHRyaW0oJHBhcmFtc1snd2VpZ2h0dW5pdHMnXSkpOwogIH0KCmlmKCBpc3NldCgkcGFyYW1zWydhbGxvd2VkX2ltYWdldHlwZXMnXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhbGxvd2VkX2ltYWdldHlwZXMnLHRyaW0oJHBhcmFtc1snYWxsb3dlZF9pbWFnZXR5cGVzJ10pKTsKICB9CgppZiggaXNzZXQoJHBhcmFtc1snYWxsb3dlZF9maWxldHlwZXMnXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhbGxvd2VkX2ZpbGV0eXBlcycsdHJpbSgkcGFyYW1zWydhbGxvd2VkX2ZpbGV0eXBlcyddKSk7CiAgfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ2F1dG90aHVtYm5haWwnXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhdXRvdGh1bWJuYWlsJyx0cmltKCRwYXJhbXNbJ2F1dG90aHVtYm5haWwnXSkpOwogIH0KCmlmKCBpc3NldCgkcGFyYW1zWydkZWxldGVwcm9kdWN0ZmlsZXMnXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWxldGVwcm9kdWN0ZmlsZXMnLHRyaW0oJHBhcmFtc1snZGVsZXRlcHJvZHVjdGZpbGVzJ10pKTsKICB9CgokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_setdflttemplates.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdCgpOwokdGhpcy0+U2V0Q3VycmVudFRhYignZGVmYXVsdF90ZW1wbGF0ZXMnKTsKCmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkKICB7CiAgICBleGl0KCk7CiAgfQoKaWYoIGlzc2V0KCAkcGFyYW1zWydzdWJtaXRfc3VtbWFyeXRlbXBsYXRlJ10gKSApCiAgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ORVdTVU1NQVJZX1RFTVBMQVRFLAogICAgICAgICAgICAgICAgICAgICAgICAgdHJpbSgkcGFyYW1zWydpbnB1dF9zdW1tYXJ5dGVtcGxhdGUnXSkpOwogIH0KZWxzZSBpZiggaXNzZXQoICRwYXJhbXNbJ3Jlc2V0X3N1bW1hcnl0ZW1wbGF0ZSddICkgKQogIHsKICAgICRmbiA9IGRpcm5hbWUoX19GSUxFX18pLkRJUkVDVE9SWV9TRVBBUkFUT1IuCiAgICAgICd0ZW1wbGF0ZXMnLkRJUkVDVE9SWV9TRVBBUkFUT1IuJ29yaWdfc3VtbWFyeV90ZW1wbGF0ZS50cGwnOwogICAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApCiAgICAgIHsKICAgICAgICAkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV1NVTU1BUllfVEVNUExBVEUsJHRlbXBsYXRlKTsKICAgICAgfQogIH0KCmlmKCBpc3NldCggJHBhcmFtc1snc3VibWl0X2RldGFpbHRlbXBsYXRlJ10gKSApCiAgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ORVdERVRBSUxfVEVNUExBVEUsCiAgICAgICAgICAgICAgICAgICAgICAgICB0cmltKCRwYXJhbXNbJ2lucHV0X2RldGFpbHRlbXBsYXRlJ10pKTsKICB9CmVsc2UgaWYoIGlzc2V0KCAkcGFyYW1zWydyZXNldF9kZXRhaWx0ZW1wbGF0ZSddICkgKQogIHsKICAgICRmbiA9IGRpcm5hbWUoX19GSUxFX18pLkRJUkVDVE9SWV9TRVBBUkFUT1IuCiAgICAgICd0ZW1wbGF0ZXMnLkRJUkVDVE9SWV9TRVBBUkFUT1IuJ29yaWdfZGV0YWlsX3RlbXBsYXRlLnRwbCc7CiAgICBpZiggZmlsZV9leGlzdHMoICRmbiApICkKICAgICAgewogICAgICAgICR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXREVUQUlMX1RFTVBMQVRFLCR0ZW1wbGF0ZSk7CiAgICAgIH0KICB9CgoKaWYoIGlzc2V0KCAkcGFyYW1zWydzdWJtaXRfYnloaWVyYXJjaHl0ZW1wbGF0ZSddICkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXQllISUVSQVJDSFlfVEVNUExBVEUsCiAgICAgICAgICAgICAgICAgICAgICAgICB0cmltKCRwYXJhbXNbJ2lucHV0X2J5aGllcmFyY2h5dGVtcGxhdGUnXSkpOwogIH0KZWxzZSBpZiggaXNzZXQoICRwYXJhbXNbJ3Jlc2V0X2J5aGllcmFyY2h5dGVtcGxhdGUnXSApICkKICB7CiAgICAkZm4gPSBkaXJuYW1lKF9fRklMRV9fKS5ESVJFQ1RPUllfU0VQQVJBVE9SLgogICAgICAndGVtcGxhdGVzJy5ESVJFQ1RPUllfU0VQQVJBVE9SLidvcmlnX2J5aGllcmFyY2h5X3RlbXBsYXRlLnRwbCc7CiAgICBpZiggZmlsZV9leGlzdHMoICRmbiApICkKICAgICAgewogICAgICAgICR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXQllISUVSQVJDSFlfVEVNUExBVEUsJHRlbXBsYXRlKTsKICAgICAgfQogIH0KCgppZiggaXNzZXQoICRwYXJhbXNbJ3N1Ym1pdF9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddICkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXQ0FURUdPUllMSVNUX1RFTVBMQVRFLAogICAgICAgICAgICAgICAgICAgICAgICAgdHJpbSgkcGFyYW1zWydpbnB1dF9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddKSk7CiAgfQplbHNlIGlmKCBpc3NldCggJHBhcmFtc1sncmVzZXRfY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSApICkKICB7CiAgICAkZm4gPSBkaXJuYW1lKF9fRklMRV9fKS5ESVJFQ1RPUllfU0VQQVJBVE9SLgogICAgICAndGVtcGxhdGVzJy5ESVJFQ1RPUllfU0VQQVJBVE9SLidvcmlnX2NhdGVnb3J5bGlzdF90ZW1wbGF0ZS50cGwnOwogICAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApCiAgICAgIHsKICAgICAgICAkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV0NBVEVHT1JZTElTVF9URU1QTEFURSwkdGVtcGxhdGUpOwogICAgICB9CiAgfQoKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/action.categorylist.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgokdGhldGVtcGxhdGUgPSAnY2F0ZWdvcnlsaXN0XycuJHRoaXMtPkdldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ERkxUQ0FURUdPUllMSVNUX1RFTVBMQVRFKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gKSApCiAgewogICAgJHRoZXRlbXBsYXRlID0gJ2NhdGVnb3J5bGlzdF8nLiRwYXJhbXNbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlJ107CiAgfQoKLy8gJGRldGFpbHBhZ2UgPSAnJzsKLy8gaWYgKGlzc2V0KCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSkpCi8vICAgewovLyAgICAgJG1hbmFnZXIgPSYgJGdDbXMtPkdldEhpZXJhcmNoeU1hbmFnZXIoKTsKLy8gICAgICRub2RlID0mICRtYW5hZ2VyLT5zdXJlR2V0Tm9kZUJ5QWxpYXMoJHBhcmFtc1snZGV0YWlscGFnZSddKTsKLy8gICAgIGlmIChpc3NldCgkbm9kZSkpCi8vICAgICAgIHsKLy8gCQkkY29udGVudCA9JiAkbm9kZS0+R2V0Q29udGVudCgpOwkKLy8gCQlpZiAoaXNzZXQoJGNvbnRlbnQpKQovLyAJCSAgewovLyAJCQkkZGV0YWlscGFnZSA9ICRjb250ZW50LT5JZCgpOwovLyAJCSAgfQovLyAgICAgICB9Ci8vICAgICBlbHNlCi8vICAgICAgIHsKLy8gCQkkbm9kZSA9JiAkbWFuYWdlci0+c3VyZUdldE5vZGVCeUlkKCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSk7Ci8vIAkJaWYgKGlzc2V0KCRub2RlKSkKLy8gCQkgIHsKLy8gCQkJJGRldGFpbHBhZ2UgPSAkcGFyYW1zWydkZXRhaWxwYWdlJ107Ci8vIAkJICB9Ci8vICAgICAgIH0KLy8gICB9CgokcXVlcnkgPSAiU0VMRUNUIGIuKixjb3VudChwcm9kdWN0X2lkKSBBUyBjb3VudCBGUk9NIGNtc19tb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzIGEsIGNtc19tb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyBiIFdIRVJFIGIuaWQgPSBhLmNhdGVnb3J5X2lkIEdST1VQIEJZIGIuaWQiOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSApOwoKJHJlc3VsdHMgPSBhcnJheSgpOwokdXJsZm10ID0gInByb2R1Y3RzL2J5Y2F0ZWdvcnkvJWQvIi4oJGRldGFpbHBhZ2UhPScnPyRkZXRhaWxwYWdlOiRyZXR1cm5pZCkuJy8lcyc7Ci8vIGlmKCBpc3NldCggJHBhcmFtc1snZGV0YWlsdGVtcGxhdGUnXSApICkKLy8gICB7Ci8vICAgICAkdXJsZm10IC49ICcvZCwnLiRwYXJhbXNbJ2RldGFpbHRlbXBsYXRlJ107Ci8vICAgfQoKd2hpbGUoICRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpICkKICB7CiAgICAkb2JqID0gbmV3IFN0ZENsYXNzKCk7CiAgICBmb3JlYWNoKCAkcm93IGFzICRrID0+ICR2ICkKICAgICAgewoJJG9iai0+JGsgPSAkdjsKICAgICAgfQogICAgJHByZXR0eXVybCA9IHNwcmludGYoJHVybGZtdCwkcm93WydpZCddLCRyb3dbJ25hbWUnXSk7CiAgICAkcGFyYW1zWydjYXRlZ29yeSddPSRyb3dbJ25hbWUnXTsKICAgICRvYmotPnN1bW1hcnlfdXJsID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkZWZhdWx0JywoJGRldGFpbHBhZ2UhPScnPyRkZXRhaWxwYWdlOiRyZXR1cm5pZCksCgkJCQkJICAnJywkcGFyYW1zLAoJCQkJCSAgJycsdHJ1ZSx0cnVlLCcnLHRydWUsJHByZXR0eXVybCk7CiAgICAkcmVzdWx0c1tdID0gJG9iajsKICB9Cgokc21hcnR5LT5hc3NpZ24oJ2NhdGVnb3J5bGlzdCcsJHJlc3VsdHMpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCR0aGV0ZW1wbGF0ZSk7Ci8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJGlubGluZSA9IHRydWU7CiRkZXRhaWxwYWdlID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydkZXRhaWxwYWdlJ10pKQogIHsKICAgICRtYW5hZ2VyID0mICRnQ21zLT5HZXRIaWVyYXJjaHlNYW5hZ2VyKCk7CiAgICAkbm9kZSA9JiAkbWFuYWdlci0+c3VyZUdldE5vZGVCeUFsaWFzKCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSk7CiAgICBpZiAoaXNzZXQoJG5vZGUpKQogICAgICB7CgkJJGNvbnRlbnQgPSYgJG5vZGUtPkdldENvbnRlbnQoKTsJCgkJaWYgKGlzc2V0KCRjb250ZW50KSkKCQkgIHsKCQkJJGRldGFpbHBhZ2UgPSAkY29udGVudC0+SWQoKTsKCQkgIH0KICAgICAgfQogICAgZWxzZQogICAgICB7CgkJJG5vZGUgPSYgJG1hbmFnZXItPnN1cmVHZXROb2RlQnlJZCgkcGFyYW1zWydkZXRhaWxwYWdlJ10pOwoJCWlmIChpc3NldCgkbm9kZSkpCgkJICB7CgkJCSRkZXRhaWxwYWdlID0gJHBhcmFtc1snZGV0YWlscGFnZSddOwoJCSAgfQogICAgICB9CiAgICBpZiggJGRldGFpbHBhZ2UgIT0gJycgKQogICAgICB7CgkkcGFyYW1zWydjZF9vcmlncGFnZSddID0gJHJldHVybmlkOwoJJGlubGluZSA9IGZhbHNlOwogICAgICB9CiAgfQoKJHRoZXRlbXBsYXRlID0gJ3N1bW1hcnlfJy4kdGhpcy0+R2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX0RGTFRTVU1NQVJZX1RFTVBMQVRFKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ3N1bW1hcnl0ZW1wbGF0ZSddICkgKQogIHsKICAgICR0aGV0ZW1wbGF0ZSA9ICdzdW1tYXJ5XycuJHBhcmFtc1snc3VtbWFyeXRlbXBsYXRlJ107CiAgfQoKCiRzb3J0b3JkZXIgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc29ydG9yZGVyJywnYXNjJyk7CmlmKCBpc3NldCggJHBhcmFtc1snc29ydG9yZGVyJ10gKSApCiAgewoJc3dpdGNoKCAkcGFyYW1zWydzb3J0b3JkZXInXSApCgkgIHsKCSAgY2FzZSAnYXNjJzoKCSAgY2FzZSAnZGVzYyc6CgkJJHNvcnRvcmRlciA9ICRwYXJhbXNbJ3NvcnRvcmRlciddOwoJICB9CiAgfQoKJHNvcnRieSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzb3J0YnknLCdwcm9kdWN0X25hbWUnKTsKaWYoIGlzc2V0KCAkcGFyYW1zWydzb3J0YnknXSApICkKICB7Cglzd2l0Y2goICRwYXJhbXNbJ3NvcnRieSddICkKCSAgewoJICBjYXNlICdwcm9kdWN0X25hbWUnOgoJCSRzb3J0YnkgPSAncHJvZHVjdF9uYW1lJzsKCQlicmVhazsKCSAgY2FzZSAncHJpY2UnOgoJCSRzb3J0YnkgPSAncHJpY2UnOwoJCWJyZWFrOwoJICBjYXNlICdjcmVhdGVkJzoKCQkkc29ydGJ5ID0gJ2NyZWF0ZV9kYXRlJzsKCQlicmVhazsKCSAgY2FzZSAnbW9kaWZpZWQnOgoJCSRzb3J0YnkgPSAnbW9kaWZpZWRfZGF0ZSc7CgkJYnJlYWs7CgkgIGNhc2UgJ3N0YXR1cyc6CgkJJHNvcnRieSA9ICdzdGF0dXMnOwoJCWJyZWFrOwoJICBjYXNlICdyYW5kb20nOgoJCSRzb3J0YnkgPSAnUkFORCgpJzsKCQkkc29ydG9yZGVyID0gJyc7CgkJYnJlYWs7CgkgIH0KICB9CmlmKCAkc29ydGJ5ID09ICdyYW5kb20nICkKICB7CiAgICAkc29ydGJ5ID0gJ1JBTkQoKSc7CiAgICAkc29ydG9yZGVyID0gJyc7CiAgfQoKJGxpbWl0ID0gMTAwMDAwOwppZiggaXNzZXQoJHBhcmFtc1sncGFnZWxpbWl0J10pICkKICB7CiAgICAkbGltaXQgPSAoaW50KSRwYXJhbXNbJ3BhZ2VsaW1pdCddOwogIH0KCiRwYWdlID0gMTsKaWYoIGlzc2V0KCRwYXJhbXNbJ3BhZ2UnXSkgKQogIHsKICAgICRwYWdlID0gKGludCkkcGFyYW1zWydwYWdlJ107CiAgICBpZiggJHBhZ2UgPCAxICkgJHBhZ2UgPSAxOwogIH0KJHN0YXJ0ZWxlbWVudCA9ICgkcGFnZS0xKSokbGltaXQ7CgokY2F0ZWdvcnkgPSAnJzsKJGlucHV0Y2F0ID0gJyc7CmlmKCBpc3NldCggJHBhcmFtc1snY2F0ZWdvcnknXSApICkKICB7CiAgICAkY2F0ZWdvcnkgPSB0cmltKCRwYXJhbXNbJ2NhdGVnb3J5J10pOwogIH0KZWxzZQogIHsKICAgIGlmIChpc3NldCgkcGFyYW1zWydjYXRlZ29yeWlkJ10pKQogICAgICB7CgkkY2F0ZWdvcnlpZCA9ICRwYXJhbXNbJ2NhdGVnb3J5aWQnXTsKICAgICAgfQogIH0KCiRoaWVyYXJjaHkgPSAnJzsKaWYoIGlzc2V0KCAkcGFyYW1zWydoaWVyYXJjaHknXSApICkKICB7CiAgICAkaGllcmFyY2h5ID0gdHJpbSgkcGFyYW1zWydoaWVyYXJjaHknXSk7CiAgfQokaGllcmFyY2h5aWQgPSAtMTAwOwppZiggaXNzZXQoJHBhcmFtc1snaGllcmFyY2h5aWQnXSkgKQogIHsKICAgICRoaWVyYXJjaHlpZCA9IChpbnQpJHBhcmFtc1snaGllcmFyY2h5aWQnXTsKICB9CgovLwovLyBCdWlsZCB0aGUgcHJldHR5IHVybHMKLy8KJHVybGZtdCA9ICdwcm9kdWN0cy8lZC8nLigkZGV0YWlscGFnZSE9Jyc/JGRldGFpbHBhZ2U6JHJldHVybmlkKS4nLyVzJzsKCi8vCi8vIEJ1aWxkIHRoZSBxdWVyaWVzCi8vCiRlbnRyeWFycmF5ID0gYXJyYXkoKTsKJHBhcmFtYXJyYXkgPSBhcnJheSgpOwokd2hlcmUgPSBhcnJheSgpOwokcXVlcnkgPSAiU0VMRUNUIGMuKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHMgYyI7CiRxdWVyeTIgPSAiU0VMRUNUIGNvdW50KCopIGFzIGNvdW50IEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0cyBjIjsKJHdoZXJlW10gPSAnYy5zdGF0dXMgPSBcJ3B1Ymxpc2hlZFwnJzsKaWYgKCBpc3NldCgkY2F0ZWdvcnlpZCkgJiYgJGNhdGVnb3J5aWQgIT0gJycpCnsKICAkc3RyID0gIiBJTk5FUiBKT0lOICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzIGNjIE9OIGNjLnByb2R1Y3RfaWQgPSBjLmlkIjsKICAkcXVlcnkgLj0gJHN0cjsKICAkcXVlcnkyIC49ICRzdHI7CiAgJHdoZXJlW10gPSAnY2MuY2F0ZWdvcnlfaWQgPSA/JzsKICAkcGFyYW1hcnJheVtdID0gJGNhdGVnb3J5aWQ7Cn0KZWxzZSBpZiggaXNzZXQoJGNhdGVnb3J5KSAmJiAkY2F0ZWdvcnkgIT0gJycgKQp7CiAgJHN0ciA9ICIgSU5ORVIgSk9JTiAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcyBjYyBPTiBjYy5wcm9kdWN0X2lkID0gYy5pZCI7CiAgJHF1ZXJ5IC49ICRzdHI7CiAgJHF1ZXJ5MiAuPSAkc3RyOwogICRzdHIgPSAiIElOTkVSIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19jYXRlZ29yaWVzIGNzIE9OIGNzLmlkID0gY2MuY2F0ZWdvcnlfaWQiOwogICRxdWVyeSAuPSAkc3RyOwogICRxdWVyeTIgLj0gJHN0cjsKCiAgJGFycjEgPSBleHBsb2RlKCcsJywkY2F0ZWdvcnkpOwogICRhcnIyID0gYXJyYXkoKTsKICBmb3JlYWNoKCAkYXJyMSBhcyAkeHggKQoJewoJICAkYXJyMltdID0gIiciLiR4eC4iJyI7Cgl9CiAgJHR4dCA9IGltcGxvZGUoJywnLCRhcnIyKTsKICAkd2hlcmVbXSA9ICdjcy5uYW1lIElOICgnLiR0eHQuJyknOwp9CgppZiAoIGlzc2V0KCRoaWVyYXJjaHkpICYmICRoaWVyYXJjaHkgIT0gJycgKQogIHsKICAgICRzdHIgPSAiIElOTkVSIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19wcm9kdG9oaWVyIHBoIE9OIHBoLnByb2R1Y3RfaWQgPSBjLmlkIjsKICAgICRxdWVyeSAuPSAkc3RyOwogICAgJHF1ZXJ5MiAuPSAkc3RyOwoKICAgICRzdHIgPSAiIElOTkVSIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkgaCBPTiBwaC5oaWVyYXJjaHlfaWQgPSBoLmlkIjsKICAgICRxdWVyeSAuPSAkc3RyOwogICAgJHF1ZXJ5MiAuPSAkc3RyOwogICAgJHdoZXJlW10gPSAidXBwZXIoaC5sb25nX25hbWUpIExJS0UgdXBwZXIoPykiOwogICAgJGhpZXJhcmNoeSA9IHRyaW0oc3RyX3JlcGxhY2UoJyonLCclJyxzdHJfcmVwbGFjZSgnIicsJ18nLCRoaWVyYXJjaHkpKSk7CiAgICAkcGFyYW1hcnJheVtdID0gJGhpZXJhcmNoeTsKICB9CmVsc2UgaWYoICRoaWVyYXJjaHlpZCA+IC0xMDAgKQogIHsKICAgICRzdHIgPSAiIElOTkVSIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19wcm9kdG9oaWVyIHBoIE9OIHBoLnByb2R1Y3RfaWQgPSBjLmlkIjsKICAgICRxdWVyeSAuPSAkc3RyOwogICAgJHF1ZXJ5MiAuPSAkc3RyOwoKICAgICR3aGVyZVtdID0gInBoLmhpZXJhcmNoeV9pZCA9ID8iOwogICAgJHBhcmFtYXJyYXlbXSA9ICRoaWVyYXJjaHlpZDsKICB9CgokcXVlcnkgPSAkcXVlcnkgLiAnIFdIRVJFICcgLiBpbXBsb2RlKCcgQU5EICcsJHdoZXJlICk7CiRxdWVyeTIgPSAkcXVlcnkyIC4gJyBXSEVSRSAnIC4gaW1wbG9kZSgnIEFORCAnLCR3aGVyZSApOwokcXVlcnkgLj0gIiBPUkRFUiBCWSAiLiRzb3J0YnkuIiAiLiRzb3J0b3JkZXI7CgovLyBFeGVjdXRlIHRoZSBRdWVyaWVzCiRjb3VudCA9ICRkYi0+R2V0T25lKCRxdWVyeTIsJHBhcmFtYXJyYXkpOwppZiggISRjb3VudCApIHJldHVybjsKJGRicmVzdWx0ID0gJGRiLT5TZWxlY3RMaW1pdCgkcXVlcnksICRsaW1pdCwgJHN0YXJ0ZWxlbWVudCwgJHBhcmFtYXJyYXkpOwppZiggISRkYnJlc3VsdCApIAogIHsKICAgIGVjaG8gJGRiLT5zcWwuJzxici8+JzsgZGllKCAkZGItPkVycm9yTXNnKCkgKTsKICB9CgovLyBEZXRlcm1pbmUgdGhlIG51bWJlciBvZiBwYWdlcwokbnBhZ2VzID0gaW50dmFsKCRjb3VudCAvICRsaW1pdCk7CmlmKCAkY291bnQgJSAkbGltaXQgIT0gMCApICRucGFnZXMrKzsKCi8vIGJ1aWxkIHRoZSBvYmplY3QgbGlzdApnbG9iYWwgJGdDbXM7CiRjb25maWcgPSYgJGdDbXMtPkdldENvbmZpZygpOwoKd2hpbGUgKCRkYnJlc3VsdCAmJiAoJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkpCnsKICAkZmlsZWRpciA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJHRoaXMtPkdldE5hbWUoKSwncHJvZHVjdF8nLiRyb3dbJ2lkJ10pOwogICRvbmVyb3cgPSAkdGhpcy0+QXJyYXlUb09iamVjdCgkcm93KTsKICAkcHJldHR5dXJsID0gc3ByaW50ZigkdXJsZm10LCRyb3dbJ2lkJ10sJHRoaXMtPm1ha2VfYWxpYXMoJHJvd1sncHJvZHVjdF9uYW1lJ10pKTsKICAKICAkcGFyYW1zWydwcm9kdWN0aWQnXSA9ICRyb3dbJ2lkJ107CgogICRvbmVyb3ctPmRldGFpbF91cmwgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RldGFpbHMnLCgkZGV0YWlscGFnZSE9Jyc/JGRldGFpbHBhZ2U6JHJldHVybmlkKSwnJywKCQkJCQkgICRwYXJhbXMsCgkJCQkJICAnJyx0cnVlLCRpbmxpbmUsJycsZmFsc2UsJHByZXR0eXVybCk7CgogICRvbmVyb3ctPnByb2R1Y3RfbmFtZV9saW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGV0YWlscycsICRyZXR1cm5pZCwgCgkJCQkJCSAkcm93Wydwcm9kdWN0X25hbWUnXSwgCgkJCQkJCSAkcGFyYW1zKTsKICAkb25lcm93LT5maWxlX2xvY2F0aW9uID0gJGNvbmZpZ1sndXBsb2Fkc191cmwnXS4nLycuJHRoaXMtPkdldE5hbWUoKS4nL3Byb2R1Y3RzXycuJHJvd1snaWQnXTsKICAkb25lcm93LT5kZXRhaWxzID0gJHJvd1snZGV0YWlscyddOwoKICAvLyBhZGQgY3VzdG9tIGZpZWxkcwogICRmaWVsZGRlZnMgPSAkdGhpcy0+R2V0RmllbGREZWZzRm9yUHJvZHVjdCgkcm93WydpZCddKTsKICAkZmllbGRzID0gYXJyYXkoKTsKICBmb3JlYWNoKCAkZmllbGRkZWZzIGFzICRvbmVkZWYgKQogICAgewogICAgICBpZiggJG9uZWRlZi0+dHlwZSA9PSAnaW1hZ2UnICkKCXsKCSAgaWYoIGZpbGVfZXhpc3RzKGNtc19qb2luX3BhdGgoJGZpbGVkaXIsJ3RodW1iXycuJGZpZWxkLT52YWx1ZSkpICkKCSAgICB7CgkgICAgICAkb25lZGVmLT50aHVtYm5haWwgPSAndGh1bWJfJy4kZmllbGQtPnZhbHVlOwoJICAgIH0KCX0KICAgICAgJGZpZWxkc1skb25lZGVmLT5uYW1lXSA9ICRvbmVkZWY7CiAgICB9CiAgJG9uZXJvdy0+ZmllbGRzID0gJGZpZWxkczsKCiAgLy8gYWRkIGF0dHJpYnV0ZXMKICAkdG1wID0gJHRoaXMtPkdldFByb2R1Y3RBdHRyaWJ1dGVEYXRhQ29tcGxldGUoJHJvd1snaWQnXSk7CiAgaWYoIGlzX2FycmF5KCR0bXApICkKICAgIHsKICAgICAgJG9uZXJvdy0+YXR0cmlidXRlcyA9ICR0bXA7CiAgICB9CgogICRlbnRyeWFycmF5W10gPSAkb25lcm93Owp9Cgokc21hcnR5LT5hc3NpZ25fYnlfcmVmKCdpdGVtcycsICRlbnRyeWFycmF5KTsKJHNtYXJ0eS0+YXNzaWduKCdpdGVtY291bnQnLCBjb3VudCgkZW50cnlhcnJheSkpOwokc21hcnR5LT5hc3NpZ24oJ3BhZ2V0ZXh0JywkdGhpcy0+TGFuZygncGFnZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdvZnRleHQnLCR0aGlzLT5MYW5nKCdvZicpKTsKJHNtYXJ0eS0+YXNzaWduKCdwYWdlY291bnQnLCRucGFnZXMpOwokc21hcnR5LT5hc3NpZ24oJ2N1cnBhZ2UnLCRwYWdlKTsKaWYoICRwYWdlID09IDEgKQogIHsKICAgICRzbWFydHktPmFzc2lnbignZmlyc3RsaW5rJywkdGhpcy0+TGFuZygnZmlyc3RwYWdlJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdwcmV2bGluaycsJHRoaXMtPkxhbmcoJ3ByZXZwYWdlJykpOwogIH0KZWxzZQogIHsKICAgICRwYXJtcyA9ICRwYXJhbXM7CiAgICAkcGFybXNbJ3BhZ2UnXSA9IDE7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2ZpcnN0bGluaycsJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkZWZhdWx0JywkcmV0dXJuaWQsCgkJCQkJCSAgJHRoaXMtPkxhbmcoJ2ZpcnN0cGFnZScpLAoJCQkJCQkgICRwYXJtcykpOwogICAgJHBhcm1zWydwYWdlJ10gPSAkcGFnZSAtIDE7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3ByZXZsaW5rJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlZmF1bHQnLCRyZXR1cm5pZCwKCQkJCQkJICAkdGhpcy0+TGFuZygncHJldnBhZ2UnKSwKCQkJCQkJICAkcGFybXMpKTsKICB9CmlmKCAkcGFnZSA9PSAkbnBhZ2VzICkKICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2xhc3RsaW5rJywkdGhpcy0+TGFuZygnbGFzdHBhZ2UnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ25leHRsaW5rJywkdGhpcy0+TGFuZygnbmV4dHBhZ2UnKSk7CiAgfQplbHNlCiAgewogICAgJHBhcm1zID0gJHBhcmFtczsKICAgICRwYXJtc1sncGFnZSddID0gJG5wYWdlczsKICAgICRzbWFydHktPmFzc2lnbignbGFzdGxpbmsnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZGVmYXVsdCcsJHJldHVybmlkLAoJCQkJCQkgICR0aGlzLT5MYW5nKCdsYXN0cGFnZScpLAoJCQkJCQkgICRwYXJtcykpOwogICAgJHBhcm1zWydwYWdlJ10gPSAkcGFnZSArIDE7CiAgICAkc21hcnR5LT5hc3NpZ24oJ25leHRsaW5rJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlZmF1bHQnLCRyZXR1cm5pZCwKCQkJCQkJICAkdGhpcy0+TGFuZygnbmV4dHBhZ2UnKSwKCQkJCQkJICAkcGFybXMpKTsKICB9CgppZiggaXNzZXQoICRwYXJhbXNbJ3NlbGVjdGNhdGVnb3J5J10gKSApCiAgewoJJHF1ZXJ5ID0gIlNFTEVDVCBpZCwgbmFtZSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyBPUkRFUiBCWSBuYW1lIEFTQyI7CgkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCSRjYXRhcnJheSA9IGFycmF5KCcoU2VsZWN0IE9uZSknID0+ICcnKTsKCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCSAgewoJCSRjYXRhcnJheVskcm93WyduYW1lJ11dID0gJHJvd1snaWQnXTsKCSAgfQoJJHNtYXJ0eS0+YXNzaWduKCdjYXRmb3Jtc3RhcnQnLCAkdGhpcy0+Q3JlYXRlRnJvbnRlbmRGb3JtU3RhcnQoJGlkLCAkcmV0dXJuaWQpKTsKCSRzbWFydHktPmFzc2lnbignY2F0ZHJvcGRvd24nLCAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdjYXRlZ29yeWlkJywgJGNhdGFycmF5LCAtMSwgJGNhdGVnb3J5aWQsICcnKSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2NhdGJ1dHRvbicsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdpbnB1dHN1Ym1pdCcsICdTdWJtaXQnKSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2NhdGZvcm1lbmQnLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKICB9Cgokc21hcnR5LT5hc3NpZ24oJ2N1cnJlbmN5X3N5bWJvbCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Byb2R1Y3RzX2N1cnJlbmN5c3ltYm9sJykpOwokc21hcnR5LT5hc3NpZ24oJ3dlaWdodF91bml0cycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Byb2R1Y3RzX3dlaWdodHVuaXRzJykpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHRoZXRlbXBsYXRlKTsKCgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKI1RoZSB0YWJzCmVjaG8gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOwoKaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpKQp7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdwcm9kdWN0cycsJHRoaXMtPkxhbmcoJ3Byb2R1Y3RzJykpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZmllbGRkZWZzJywkdGhpcy0+TGFuZygnZmllbGRkZWZzJykpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignaGllcmFyY2h5JywkdGhpcy0+TGFuZygncHJvZHVjdF9oaWVyYXJjaHknKSk7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdjYXRlZ29yaWVzJywkdGhpcy0+TGFuZygnY2F0ZWdvcmllcycpKTsKfQoKaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSkKewogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignc3VtbWFyeV90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ3N1bW1hcnl0ZW1wbGF0ZXMnKSk7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdkZXRhaWxfdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdkZXRhaWx0ZW1wbGF0ZXMnKSk7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdieWhpZXJhcmNoeV90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ2J5aGllcmFyY2h5dGVtcGxhdGVzJykpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignY2F0ZWdvcnlsaXN0X3RlbXBsYXRlJywkdGhpcy0+TGFuZygnY2F0ZWdvcnlsaXN0dGVtcGxhdGVzJykpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZGVmYXVsdF90ZW1wbGF0ZXMnLCR0aGlzLT5MYW5nKCdkZWZhdWx0dGVtcGxhdGVzJykpOwp9CgppZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSkKICB7CiAgICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3ByZWZzJywkdGhpcy0+TGFuZygncHJlZmVyZW5jZXMnKSk7CiAgfQplY2hvICR0aGlzLT5FbmRUYWJIZWFkZXJzKCk7CgojVGhlIGNvbnRlbnQgb2YgdGhlIHRhYnMKZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CmlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSkKewkKICBlY2hvICR0aGlzLT5TdGFydFRhYigncHJvZHVjdHMnLCAkcGFyYW1zKTsKICBpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fcHJvZHVjdHN0YWIucGhwJyk7CiAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CgkKICBlY2hvICR0aGlzLT5TdGFydFRhYignZmllbGRkZWZzJywgJHBhcmFtcyk7CiAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX2ZpZWxkZGVmc190YWIucGhwJyk7CiAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CgkKICBlY2hvICR0aGlzLT5TdGFydFRhYignaGllcmFyY2h5JywgJHBhcmFtcyk7CiAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX2hpZXJhcmNoeV90YWIucGhwJyk7CiAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CgkKICBlY2hvICR0aGlzLT5TdGFydFRhYignY2F0ZWdvcmllcycsICRwYXJhbXMpOwogIGluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9jYXRlZ29yaWVzX3RhYi5waHAnKTsKICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKIH0KCmlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCAnTW9kaWZ5IFRlbXBsYXRlcycgKSApCiAgewogICAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX3RlbXBsYXRlc3RhYnMucGhwJyk7CiAgfQoKaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKQogIHsKICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdwcmVmcycsJHBhcmFtcyk7CiAgICBpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fcHJlZnN0YWIucGhwJyk7CiAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKICB9CgplY2hvICR0aGlzLT5FbmRUYWJDb250ZW50KCk7CgojIHZpbTp0cz00IHN3PTQgbm9ldAo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.defaulturl.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKaWYoIGlzc2V0KCAkcGFyYW1zWydjYXRlZ29yeWlkJ10gKSApCiAgewogICAgJHRoaXMtPkRvQWN0aW9uKCdkZWZhdWx0JywkaWQsJHBhcmFtcywkcmV0dXJuaWQpOwogIH0KZWxzZSBpZiggaXNzZXQoJHBhcmFtc1sncGFyZW50J10pICkKICB7CiAgICAkdGhpcy0+RG9BY3Rpb24oJ2hpZXJhcmNoeScsJGlkLCRwYXJhbXMsJHJldHVybmlkKTsKICB9CmVsc2UKICB7CiAgICAkdGhpcy0+RG9BY3Rpb24oJ2RldGFpbHMnLCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7CiAgfQoKIyB2aW06dHM9NCBzdz00IG5vZXQKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.deletecategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYignY2F0ZWdvcmllcycpOwoKJGNhdGlkID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydjYXRpZCddKSkKewoJJGNhdGlkID0gJHBhcmFtc1snY2F0aWQnXTsKfQoKLy8gR2V0IHRoZSBjYXRlZ29yeSBkZXRhaWxzCiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyBXSEVSRSBpZCA9ID8nOwokcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSggJGNhdGlkKSk7CgovL05vdyByZW1vdmUgdGhlIGNhdGVnb3J5CiRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMgV0hFUkUgaWQgPSA/IjsKJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGNhdGlkKSk7CgovL0FuZCByZW1vdmUgaXQgZnJvbSBhbnkgZW50cmllcwokcXVlcnkgPSAiREVMRVRFIEZST00gbW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcyBXSEVSRSBjYXRlZ29yeV9pZCA9ID8iOwokZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY2F0aWQpKTsKCiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.deletefielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYignZmllbGRkZWZzJyk7CgokZmRpZCA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snZmRpZCddKSkKewoJJGZkaWQgPSAkcGFyYW1zWydmZGlkJ107Cn0KCi8vIEdldCB0aGUgY2F0ZWdvcnkgZGV0YWlscwokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBXSEVSRSBpZCA9ID8nOwokcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSgkZmRpZCkpOwoKLy9Ob3cgcmVtb3ZlIHRoZSBjYXRlZ29yeQokcXVlcnkgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMgV0hFUkUgaWQgPSA/IjsKJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGZkaWQpKTsKCi8vQW5kIHJlbW92ZSBpdCBmcm9tIGFueSBlbnRyaWVzCiRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyBXSEVSRSBmaWVsZGRlZl9pZCA9ID8iOwokZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkZmRpZCkpOwoKJGRiLT5FeGVjdXRlKCdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMgU0VUIGl0ZW1fb3JkZXIgPSAoaXRlbV9vcmRlciAtIDEpIFdIRVJFIGl0ZW1fb3JkZXIgPiA/JywgYXJyYXkoJHJvd1snaXRlbV9vcmRlciddKSk7CgokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.deleteproduct.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYigncHJvZHVjdHMnKTsKCiRjb21waWQgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2NvbXBpZCddKSkKewoJJGNvbXBpZCA9ICRwYXJhbXNbJ2NvbXBpZCddOwp9CgovLyBHZXQgdGhlIGNhdGVnb3J5IGRldGFpbHMKJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cyBXSEVSRSBpZCA9ID8nOwokcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSgkY29tcGlkKSk7CgovL05vdyByZW1vdmUgdGhlIGNhdGVnb3J5CiRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzIFdIRVJFIGlkID0gPyI7CiRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjb21waWQpKTsKCi8vQW5kIHJlbW92ZSBpdCBmcm9tIGFueSBjdXN0b20gZmllbGRzCiRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyBXSEVSRSBwcm9kdWN0X2lkID0gPyI7CiRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjb21waWQpKTsKCi8vQW5kIHJlbW92ZSBpdCBmcm9tIGFueSBjYXRlZ29yaWVzCiRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzCl9wcm9kdWN0X2NhdGVnb3JpZXMgV0hFUkUgcHJvZHVjdF9pZCA9ID8iOwokZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY29tcGlkKSk7CgovLyBhbmQgcmVtb3ZlIHRoZSBoaWVyYXJjaHkgc3R1ZmYKJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHRvaGllciBXSEVSRSBwcm9kdWN0X2lkID0gPyc7CiRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjb21waWQpKTsKCi8vIGFuZCAob3B0aW9uYWxseSkgcmVtb3ZlIGFsbCBmaWxlcwppZiggJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlbGV0ZXByb2R1Y3RmaWxlcycpICkKICB7CiAgICAkZGlyID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkdGhpcy0+R2V0TmFtZSgpLCdwcm9kdWN0XycuJGNvbXBpZCk7CiAgICAkdGhpcy0+cmVjdXJzaXZlX3JlbW92ZV9kaXJlY3RvcnkoJGRpcik7CiAgfQoKLy9VcGRhdGUgc2VhcmNoIGluZGV4CiRtb2R1bGUgPSYgJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdTZWFyY2gnKTsKaWYgKCRtb2R1bGUgIT0gRkFMU0UpCnsKICAkbW9kdWxlLT5EZWxldGVXb3JkcygkdGhpcy0+R2V0TmFtZSgpLCAkY29tcGlkLCAncHJvZHVjdCcpOwp9CgokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.delete_attribset.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBQcm9kdWN0cyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMgCiMgVmVyc2lvbjogMS4xLjUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CnsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ25lZWRwZXJtaXNzaW9uJywgYXJyYXkoJ01vZGlmeSBQcm9kdWN0cycpKSk7CglyZXR1cm47Cn0KaWYoICFpc3NldCgkcGFyYW1zWydjb21waWQnXSkgKQogIHsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXJhbScpKTsKCXJldHVybjsKICB9CmlmKCAhaXNzZXQoJHBhcmFtc1snYXR0cnNldGlkJ10pICkKICB7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nKSk7CglyZXR1cm47CiAgfQoKJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcyAKICAgICAgICAgICBXSEVSRSBhdHRyaWJfc2V0X2lkID0gPyc7CiRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSggJHBhcmFtc1snYXR0cnNldGlkJ10pICk7CgokcXVlcnkgPSAnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJzZXRzCiAgICAgICAgICAgV0hFUkUgYXR0cmliX3NldF9pZCA9ID8nOwokZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoICRwYXJhbXNbJ2F0dHJzZXRpZCddKSApOwogICAgICAgICAgIAokdGhpcy0+UmVkaXJlY3QoJGlkLCdlZGl0X2F0dHJpYnNldHMnLCRyZXR1cm5pZCwKCQlhcnJheSgnY29tcGlkJz0+JHBhcmFtc1snY29tcGlkJ10pKTsKcmV0dXJuOwoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/action.details.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJHRoZXRlbXBsYXRlID0gJ2RldGFpbF8nLiR0aGlzLT5HZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVERFVEFJTF9URU1QTEFURSk7CmlmKCBpc3NldCgkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddICkgKQogIHsKICAgICR0aGV0ZW1wbGF0ZSA9ICdkZXRhaWxfJy4kcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddOwogIH0KCiRlbnRyeWFycmF5ID0gYXJyYXkoKTsKCmdsb2JhbCAkZ0NtczsKJGNvbmZpZyA9JiAkZ0Ntcy0+R2V0Q29uZmlnKCk7CgokcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzIFdIRVJFIGlkID0gPyI7CiRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJHBhcmFtc1sncHJvZHVjdGlkJ10pKTsKCmlmICggJHJvdyApCiAgewogICAgJGZpbGVkaXIgPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCR0aGlzLT5HZXROYW1lKCksJ3Byb2R1Y3RfJy4kcm93WydpZCddKTsKICAgICRvbmVyb3cgPSAkdGhpcy0+QXJyYXlUb09iamVjdCgkcm93KTsKICAgICRvbmVyb3ctPmZpbGVfbG9jYXRpb24gPSAkY29uZmlnWyd1cGxvYWRzX3VybCddLicvJy4kdGhpcy0+R2V0TmFtZSgpLicvcHJvZHVjdF8nLiRyb3dbJ2lkJ107CiAgICAKICAgIC8vIGFkZCBjdXN0b20gZmllbGRzCiAgICAkZmllbGRkZWZzID0gJHRoaXMtPkdldEZpZWxkRGVmc0ZvclByb2R1Y3QoJHJvd1snaWQnXSk7CiAgICAkZmllbGRzID0gYXJyYXkoKTsKICAgIGZvcmVhY2goICRmaWVsZGRlZnMgYXMgJG9uZWRlZiApCiAgICAgIHsKCWlmKCAkb25lZGVmLT50eXBlID09ICdpbWFnZScgKQoJICB7CgkgICAgaWYoIGZpbGVfZXhpc3RzKGNtc19qb2luX3BhdGgoJGZpbGVkaXIsJ3RodW1iXycuJG9uZWRlZi0+dmFsdWUpKSApCgkgICAgICB7CgkJJG9uZWRlZi0+dGh1bWJuYWlsID0gJ3RodW1iXycuJG9uZWRlZi0+dmFsdWU7CgkgICAgICB9CgkgIH0KCSRmaWVsZHNbJG9uZWRlZi0+bmFtZV0gPSAkb25lZGVmOwogICAgICB9CiAgICBpZiggY291bnQoJGZpZWxkcykgKQogICAgICB7Cgkkb25lcm93LT5maWVsZHMgPSAkZmllbGRzOwogICAgICB9CgogICAgLy8gYWRkIGF0dHJpYnV0ZXMKICAgICR0bXAgPSAkdGhpcy0+R2V0UHJvZHVjdEF0dHJpYnV0ZURhdGFDb21wbGV0ZSgkcGFyYW1zWydwcm9kdWN0aWQnXSk7CiAgICBpZiggaXNfYXJyYXkoJHRtcCkgKQogICAgICB7Cgkkb25lcm93LT5hdHRyaWJ1dGVzID0gJHRtcDsKICAgICAgfQoKICAgIC8vIGFkZCBjYXRlZ29yaWVzCiAgICAkY2F0ZWdvcmllcyA9ICR0aGlzLT5HZXRDYXRlZ29yaWVzRm9yUHJvZHVjdCgkcGFyYW1zWydwcm9kdWN0aWQnXSk7CiAgICAkY2F0YXJyYXkgPSBhcnJheSgpOwogICAgJGNhdG5hbWVhcnJheSA9IGFycmF5KCk7CiAgICBpZiAoY291bnQoJGNhdGVnb3JpZXMpID4gMCkKICAgICAgewoJZm9yZWFjaCAoJGNhdGVnb3JpZXMgYXMgJGZpZWxkZGVmKQoJICB7CgkgICAgJGZpZWxkID0gbmV3IHN0ZENsYXNzKCk7CgkgICAgCgkgICAgJHZhbHVlID0gJGZpZWxkZGVmLT52YWx1ZTsKCSAgICBpZiAoJHZhbHVlKQoJICAgICAgewoJCSRmaWVsZC0+aWQgPSAkZmllbGRkZWYtPmlkOwoJCSRmaWVsZC0+bmFtZSA9ICRmaWVsZGRlZi0+bmFtZTsKCQkKCQkkY2F0YXJyYXlbXSA9ICRmaWVsZDsKCQkkY2F0bmFtZWFycmF5W10gPSAkZmllbGRkZWYtPm5hbWU7CgkgICAgICB9CgkgIH0KICAgICAgfQogICAgaWYoIGNvdW50KCRjYXRhcnJheSkgKQogICAgICB7Cgkkb25lcm93LT5jYXRlZ29yaWVzID0gJGNhdGFycmF5OwoJJG9uZXJvdy0+Y2F0ZWdvcnluYW1lcyA9ICRjYXRuYW1lYXJyYXk7CiAgICAgIH0KICAgIAogICAgJHNtYXJ0eS0+YXNzaWduX2J5X3JlZignZW50cnknLCAkb25lcm93KTsKICAgICRzbWFydHktPmFzc2lnbignY3VycmVuY3lfc3ltYm9sJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJvZHVjdHNfY3VycmVuY3lzeW1ib2wnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3dlaWdodF91bml0cycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Byb2R1Y3RzX3dlaWdodHVuaXRzJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yeXRleHQnLCBpbXBsb2RlKCIsICIsICRjYXRuYW1lYXJyYXkpKTsKICAgIAogICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCR0aGV0ZW1wbGF0ZSk7CiAgfQplbHNlCiAgewogICAgZWNobyAnRW50cnkgTm90IEZvdW5kJzsKICB9Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.editcategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYignY2F0ZWdvcmllcycpOwoKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSkKewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbmVlZHBlcm1pc3Npb24nLCBhcnJheSgnTW9kaWZ5IFByb2R1Y3RzJykpKTsKCXJldHVybjsKfQoKaWYgKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSkKewogICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Cn0KCiRjYXRpZCA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snY2F0aWQnXSkpCnsKCSRjYXRpZCA9ICRwYXJhbXNbJ2NhdGlkJ107Cn0KCiRuYW1lID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWyduYW1lJ10pKQp7CgkkbmFtZSA9ICRwYXJhbXNbJ25hbWUnXTsKfQoKJG9yaWduYW1lID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydvcmlnbmFtZSddKSkKewoJJG9yaWduYW1lID0gJHBhcmFtc1snb3JpZ25hbWUnXTsKfQoKaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkKewoJaWYgKCRuYW1lICE9ICcnKQoJewoJCSRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yaWVzIFNFVCBuYW1lID0gPywgbW9kaWZpZWRfZGF0ZSA9ICcuJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLicgV0hFUkUgaWQgPSA/JzsKCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkbmFtZSwgJGNhdGlkKSk7CgkJCQkJCQoJCSR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Cgl9CgllbHNlCgl7CgkJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbm9uYW1lZ2l2ZW4nKSk7Cgl9Cn0KZWxzZQp7CgkkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMgV0hFUkUgaWQgPSA/JzsKCSRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRjYXRpZCkpOwoKCWlmICgkcm93KQoJewoJCSRuYW1lID0gJHJvd1snbmFtZSddOwoJCSRvcmlnbmFtZSA9ICRyb3dbJ25hbWUnXTsKCX0KfQoKI0Rpc3BsYXkgdGVtcGxhdGUKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2VkaXRjYXRlZ29yeScsICRyZXR1cm5pZCkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCduYW1ldGV4dCcsICR0aGlzLT5MYW5nKCduYW1lJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0bmFtZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbmFtZScsICRuYW1lLCAyMCwgMjU1KSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaGlkZGVuJywgCgkJICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2NhdGlkJywgJGNhdGlkKS4KCQkgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnb3JpZ25hbWUnLCAkb3JpZ25hbWUpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdGNhdGVnb3J5LnRwbCcpOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.editfielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYignZmllbGRkZWZzJyk7CgppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpKQp7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCduZWVkcGVybWlzc2lvbicsIGFycmF5KCdNb2RpZnkgUHJvZHVjdHMnKSkpOwoJcmV0dXJuOwp9CgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKQp7CiAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKfQoKJGZkaWQgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2ZkaWQnXSkpCnsKCSRmZGlkID0gJHBhcmFtc1snZmRpZCddOwp9CgokbmFtZSA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snbmFtZSddKSkKewoJJG5hbWUgPSAkcGFyYW1zWyduYW1lJ107Cn0KCiRwcm9tcHQgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ3Byb21wdCddKSkKewoJJHByb21wdCA9ICRwYXJhbXNbJ3Byb21wdCddOwp9Cgokb3B0aW9ucyA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snb3B0aW9ucyddKSkKewoJJG9wdGlvbnMgPSAkcGFyYW1zWydvcHRpb25zJ107Cn0KCiR0eXBlID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWyd0eXBlJ10pKQp7CgkkdHlwZSA9ICRwYXJhbXNbJ3R5cGUnXTsKfQoKJG1heF9sZW5ndGggPSAyNTU7CmlmIChpc3NldCgkcGFyYW1zWydtYXhfbGVuZ3RoJ10pKQp7CiAgJG1heF9sZW5ndGggPSAoaW50KSRwYXJhbXNbJ21heF9sZW5ndGgnXTsKfQoKJG9yaWduYW1lID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydvcmlnbmFtZSddKSkKewoJJG9yaWduYW1lID0gJHBhcmFtc1snb3JpZ25hbWUnXTsKfQoKJHB1YmxpYyA9IDA7CmlmKCBpc3NldCgkcGFyYW1zWydwdWJsaWMnXSkgKQogIHsKICAgICRwdWJsaWMgPSAoaW50KSRwYXJhbXNbJ3B1YmxpYyddOwogIH0KCmlmIChpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpCnsKICBpZiggJHR5cGUgPT0gJycgKQogICAgewogICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9ub2ZpZWxkdHlwZScpKTsKICAgIH0KICBlbHNlIGlmICgkbmFtZSA9PSAnJykKICAgIHsKICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbm9uYW1lZ2l2ZW4nKSk7CiAgICB9CiAgZWxzZSBpZiggISR0aGlzLT5pc19hbGlhcygkbmFtZSkgKQogICAgewogICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkX25hbWUnKSk7CiAgICB9CiAgZWxzZSBpZiggIWVtcHR5KCRtYXhsZW5ndGgpICYmICFpc19udW1lcmljKCRtYXhfbGVuZ3RoKSApCiAgICB7CiAgICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ25vdGFudW1iZXInKSk7CiAgICB9CiAgZWxzZQogICAgewogICAgICAkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFNFVCBuYW1lID0gPywgcHJvbXB0ID0gPywgdHlwZSA9ID8sIG1heF9sZW5ndGggPSA/LCBtb2RpZmllZF9kYXRlID0gJy4kZGItPkRCVGltZVN0YW1wKHRpbWUoKSkuJywgcHVibGljID0gPywgb3B0aW9ucyA9ID8gV0hFUkUgaWQgPSA/JzsKICAgICAgJHJlcyA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIAoJCQkgIGFycmF5KCRuYW1lLCAkcHJvbXB0LCAkdHlwZSwgJG1heF9sZW5ndGgsICRwdWJsaWMsICRvcHRpb25zLCAkZmRpZCkpOwogICAgICAKICAgICAgaWYoICEkcmVzICkgZGllKCAkZGItPkVycm9yTXNnKCkgKTsKICAgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICAgIH0KfQplbHNlCnsKICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBXSEVSRSBpZCA9ID8nOwogICRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRmZGlkKSk7CiAgCiAgaWYgKCRyb3cpCiAgICB7CiAgICAgICRuYW1lID0gJHJvd1snbmFtZSddOwogICAgICAkcHJvbXB0ID0gJHJvd1sncHJvbXB0J107CiAgICAgICR0eXBlID0gJHJvd1sndHlwZSddOwogICAgICAkbWF4X2xlbmd0aCA9ICRyb3dbJ21heF9sZW5ndGgnXTsKICAgICAgJG9yaWduYW1lID0gJHJvd1snbmFtZSddOwogICAgICAkcHVibGljID0gJHJvd1sncHVibGljJ107CiAgICAgICRvcHRpb25zID0gJHJvd1snb3B0aW9ucyddOwogICAgfQogfQoKI0Rpc3BsYXkgdGVtcGxhdGUKJHNtYXJ0eS0+YXNzaWduKCdvcHRpb25zJywkb3B0aW9ucyk7CiRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgCgkJJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2VkaXRmaWVsZGRlZicsICRyZXR1cm5pZCkpOwokc21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dG5hbWUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ25hbWUnLCAkbmFtZSwgMjAsIDI1NSkpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0cHJvbXB0JywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwncHJvbXB0JywkcHJvbXB0LDUwLDI1NSkpOwokc21hcnR5LT5hc3NpZ24oJ3Nob3dpbnB1dHR5cGUnLCBmYWxzZSk7CiRzbWFydHktPmFzc2lnbigndHlwZScsJHR5cGUpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0dHlwZScsICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICd0eXBlJywgJHR5cGUpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dG1heGxlbmd0aCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbWF4X2xlbmd0aCcsICRtYXhfbGVuZ3RoLCAyMCwgMjU1KSk7CiRzbWFydHktPmFzc2lnbigndXNlcnZpZXd0ZXh0JywkdGhpcy0+TGFuZygncHVibGljJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3VzZXJ2aWV3JywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRjaGVja2JveCgkaWQsICdwdWJsaWMnLCAxLCAkcHVibGljLAoJCQkJCSAgICd0aXRsZT0iJy4kdGhpcy0+TGFuZygnaW5mb19wdWJsaWNmaWVsZCcpLiciJykpOwoKJHNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLCAKCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmRpZCcsICRmZGlkKS4KCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnb3JpZ25hbWUnLCAkb3JpZ25hbWUpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0ZmllbGRkZWYudHBsJyk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.editproduct.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYigncHJvZHVjdHMnKTsKCi8vCi8vIEEgdXRpbGl0eSBmdW5jdGlvbgovLwpmdW5jdGlvbiBnZXRfZmllbGRfZGVmKCYkZmllbGRkZWZzLCRpZCkKewogIGZvcmVhY2goICRmaWVsZGRlZnMgYXMgJG9uZWRlZiApCiAgICB7CiAgICAgIGlmKCAkb25lZGVmLT5pZCA9PSAkaWQgKQoJewoJICByZXR1cm4gJG9uZWRlZjsKCX0KICAgIH0KICByZXR1cm4gZmFsc2U7Cn0KCgppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpKQogIHsKICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ25lZWRwZXJtaXNzaW9uJywgYXJyYXkoJ01vZGlmeSBQcm9kdWN0cycpKSk7CiAgICByZXR1cm47CiAgfQoKaWYgKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSkKICB7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogIH0KCiRjb21waWQgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2NvbXBpZCddKSkKICB7CiAgICAkY29tcGlkID0gJHBhcmFtc1snY29tcGlkJ107CiAgfQoKJHByb2R1Y3RfbmFtZSA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1sncHJvZHVjdF9uYW1lJ10pKQogIHsKICAgICRwcm9kdWN0X25hbWUgPSAkcGFyYW1zWydwcm9kdWN0X25hbWUnXTsKICB9CgokcHJpY2UgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ3ByaWNlJ10pKQogIHsKICAgICRwcmljZSA9IChmbG9hdCkkcGFyYW1zWydwcmljZSddOwogIH0KCiR3ZWlnaHQgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ3dlaWdodCddKSkKICB7CiAgICAkd2VpZ2h0ID0gKGZsb2F0KSRwYXJhbXNbJ3dlaWdodCddOwogIH0KCiRkZXRhaWxzID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydkZXRhaWxzJ10pKQogIHsKICAgICRkZXRhaWxzID0gJHBhcmFtc1snZGV0YWlscyddOwogIH0KCiR0YXhhYmxlID0gMDsKaWYgKGlzc2V0KCRwYXJhbXNbJ3RheGFibGUnXSkpCiAgewogICAgJHRheGFibGUgPSAxOwogIH0KCiRoaWVyYXJjaHlfcG9zID0gLTE7CmlmIChpc3NldCgkcGFyYW1zWydoaWVyYXJjaHknXSkgKQogIHsKICAgICRoaWVyYXJjaHlfcG9zID0gKGludCkkcGFyYW1zWydoaWVyYXJjaHknXTsKICB9Cgokc3RhdHVzID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydzdGF0dXMnXSkpCiAgewogICAgJHN0YXR1cyA9ICRwYXJhbXNbJ3N0YXR1cyddOwogIH0KCiRvcmlnbmFtZSA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snb3JpZ25hbWUnXSkpCiAgewogICAgJG9yaWduYW1lID0gJHBhcmFtc1snb3JpZ25hbWUnXTsKICB9CgoKJGZpZWxkYXJyYXkgPSBhcnJheSgpOwokdXNlcmlkID0gZ2V0X3VzZXJpZCgpOwokZmllbGRkZWZzID0gJHRoaXMtPkdldEZpZWxkRGVmc0ZvclByb2R1Y3QoJGNvbXBpZCx0cnVlKTsKLy8kZmllbGRkZWZzID0gJHRoaXMtPkdldEZpZWxkRGVmcyh0cnVlKTsKCmlmIChpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpCiAgewogICAgJGR1cGxpY2F0ZSA9ICcnOwogICAgaWYgKCRwcm9kdWN0X25hbWUgIT0gJycpCiAgICAgIHsKCSRxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzCiAgICAgICAgICAgICAgICAgICBXSEVSRSBwcm9kdWN0X25hbWUgPSA/IEFORCBpZCAhPSA/JzsKCSRkdXBsaWNhdGUgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHByb2R1Y3RfbmFtZSwkY29tcGlkKSk7CiAgICAgIH0KCiAgICBpZiggJGR1cGxpY2F0ZSApCiAgICAgIHsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnKSk7CiAgICAgIH0KICAgIGVsc2UgaWYgKCRwcm9kdWN0X25hbWUgPT0gJycpCiAgICAgIHsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ25vcHJvZHVjdG5hbWVnaXZlbicpKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkvLyB1cGRhdGUgdGhlIG9yaWdpbmFsIHJlY29yZAoJJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzIFNFVCBwcm9kdWN0X25hbWUgPSA/LCBwcmljZSA9ID8sIGRldGFpbHMgPSA/LCBtb2RpZmllZF9kYXRlID0gJy4kZGItPkRCVGltZVN0YW1wKHRpbWUoKSkuJyx0YXhhYmxlID0gPywgc3RhdHVzID0gPywgd2VpZ2h0ID0gPyBXSEVSRSBpZCA9ID8nOwoJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHByb2R1Y3RfbmFtZSwgJHByaWNlLCAkZGV0YWlscywgCgkJCQkgICAkdGF4YWJsZSwgJHN0YXR1cywgJHdlaWdodCwgJGNvbXBpZCkpOwoKCS8vIFVwZGF0ZSB0aGUgaGllcmFyY2h5IHN0dWZmCgkkcXVlcnkgPSAnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdG9oaWVyIFdIRVJFIHByb2R1Y3RfaWQgPSA/JzsKCSRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSggJGNvbXBpZCApICk7CgkkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdG9oaWVyIAogICAgICAgICAgICAgICAgICAgKHByb2R1Y3RfaWQsaGllcmFyY2h5X2lkKQogICAgICAgICAgICAgICAgICAgVkFMVUVTICg/LD8pJzsKCSRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSggJGNvbXBpZCwgJGhpZXJhcmNoeV9wb3MgKSApOwogICAgICAgCgkvLyBVcGRhdGUgY3VzdG9tIGZpZWxkcwoJJGRlbGV0ZWRfaXRlbXMgPSBhcnJheSgpOwoJJGRiLT5FeGVjdXRlKCdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyBXSEVSRSBwcm9kdWN0X2lkID0gPycsIGFycmF5KCRjb21waWQpKTsKCglpZiAoaXNzZXQoJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGQnXSkpCgkgIHsKCSAgICBmb3JlYWNoICgkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddIGFzICRrPT4kdikKCSAgICAgIHsKCQkvLyBoYW5kbGUgZmlsZSBkZWxldGlvbnMKCQlpZiAoc3RhcnRzd2l0aCgkaywgJ2RlbGV0ZWZpZWxkLScpKSB7CgoJCSAgLy8gZ2V0IHRoZSBmaWVsZCBpbmRleAoJCSAgJGZpZCA9IHN1YnN0cigkaywgc3RybGVuKCdkZWxldGVmaWVsZC0nKSk7CgkJICAKCQkgIC8vIGdldCB0aGUgZmllbGQgdHlwZQoJCSAgJGRlZiA9IGdldF9maWVsZF9kZWYoJGZpZWxkZGVmcywkZmlkKTsKCQkgIGlmKCAhJGRlZiApCgkJICAgIHsKCQkgICAgICBkaWUoJ2NvdWxkIG5vdCBnZXQgZmllbGQgZGVmIGZvciAnLiRmaWQpOwoJCSAgICB9CgoJCSAgJGRlc3RkaXIgPSBjbXNfam9pbl9wYXRoKCRnQ21zLT5jb25maWdbJ3VwbG9hZHNfcGF0aCddLCR0aGlzLT5HZXROYW1lKCksCgkJCQkJICAgJ3Byb2R1Y3RfJy4kY29tcGlkKTsKCQkgIHN3aXRjaCggJGRlZi0+dHlwZSApCgkJICAgIHsKCQkgICAgY2FzZSAnZmlsZSc6CgkJICAgICAgLy8gZ2V0IHRoZSB2YWx1ZQoJCSAgICAgICRkZXN0ZmlsZSA9IGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJGRlZi0+dmFsdWUpOwoJCSAgICAgICRkZXN0dG4gPSBjbXNfam9pbl9wYXRoKCRkZXN0ZGlyLCd0aHVtYl8nLiRkZWYtPnZhbHVlKTsKCgkJICAgICAgLy8gZGVsZXRlIHRoZSBmaWxlCgkJICAgICAgQHVubGluaygkZGVzdGZpbGUpOwoJCSAgICAgICRkZWxldGVkX2l0ZW1zW10gPSAkZmlkOwoJCSAgICAgICR2ID0gbnVsbDsKCQkgICAgICBicmVhazsKCgkJICAgIGNhc2UgJ2ltYWdlJzoKCQkgICAgICAvLyBnZXQgdGhlIHZhbHVlCgkJICAgICAgJGRlc3RmaWxlID0gY21zX2pvaW5fcGF0aCgkZGVzdGRpciwkZGVmLT52YWx1ZSk7CgkJICAgICAgJGRlc3R0biA9IGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJ3RodW1iXycuJGRlZi0+dmFsdWUpOwoKCQkgICAgICAvLyBkZWxldGUgdGhlIGZpbGUKCQkgICAgICBAdW5saW5rKCRkZXN0ZmlsZSk7CgkJICAgICAgQHVubGluaygkZGVzdHRuKTsKCQkgICAgICAkZGVsZXRlZF9pdGVtc1tdID0gJGZpZDsKCQkgICAgICAkdiA9IG51bGw7CgoJCSAgICAgIC8vIHRvZG8gZGVsZXRlIHRoZSB0aHVtYm5haWwKCQkgICAgICBicmVhazsKCQkgICAgfQoJCX0KCSAgICAgIH0KCgkgICAgZm9yZWFjaCAoJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGQnXSBhcyAkaz0+JHYpCgkgICAgICB7CgkJLy8gaGFuZGxlIG5ldyB2YWx1ZXMgKG9yIGhpZGRlbiB2YWx1ZXMpCgkJaWYgKHN0YXJ0c3dpdGgoJGssICdmaWVsZC0nKSkgeyAvLyBlbHNlCgoJCSAgLy8gZ2V0IHRoZSBmaWVsZCBpbmRleAoJCSAgJGZpZCA9IHN1YnN0cigkaywgNik7CgoJCSAgaWYoIGluX2FycmF5KCRmaWQsJGRlbGV0ZWRfaXRlbXMpICkgCgkJICAgIHsKCQkgICAgICBjb250aW51ZTsKCQkgICAgfQoKCQkgIC8vIGdldCB0aGUgZmllbGQgdHlwZQoJCSAgJGRlZiA9IGdldF9maWVsZF9kZWYoJGZpZWxkZGVmcywkZmlkKTsKCQkgIGlmKCAhJGRlZiApCgkJICAgIHsKCQkgICAgICBkaWUoJ2NvdWxkIG5vdCBnZXQgZmllbGQgZGVmIGZvciAnLiRmaWQpOwoJCSAgICAgIGNvbnRpbnVlOwoJCSAgICB9CgoJCSAgLy8gaGFuZGxlIHRoZSB1cGxvYWQgKGlmIGFueSkKCQkgIHN3aXRjaCggJGRlZi0+dHlwZSApCgkJICAgIHsKCQkgICAgY2FzZSAnZmlsZSc6CgkJICAgICAgJGRlc3RkaXIgPSBjbXNfam9pbl9wYXRoKCRnQ21zLT5jb25maWdbJ3VwbG9hZHNfcGF0aCddLCR0aGlzLT5HZXROYW1lKCksCgkJCQkJICAgICAgICdwcm9kdWN0XycuJGNvbXBpZCk7CgkJICAgICAgJHRoaXMtPm1rZGlycigkZGVzdGRpcik7CgkJICAgICAgaWYoICFpc19kaXIoJGRlc3RkaXIpICkgZGllKCdkaXJlY3Rvcnkgc3RpbGwgZG9lcyBub3QgZXhpc3QnKTsKCQkgICAgICAkaGFuZGxlciA9IG5ldyBDR0ZpbGVVcGxvYWRIYW5kbGVyKCRpZCwkZGVzdGRpcik7CgkJICAgICAgJGhhbmRsZXItPlNldEFjY2VwdGVkRmlsZVR5cGVzKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd2VkX2ZpbGV0eXBlcycpKTsKCQkgICAgICAkcmVzID0gJGhhbmRsZXItPkhhbmRsZVVwbG9hZGVkRmlsZSgnY3VzdG9tZmllbGQnLCcnLCdmaWVsZC0nLiRmaWQpOwoJCSAgICAgIGlmKCAhJHJlcyAmJiAkaGFuZGxlci0+R2V0RXJyb3IoKSAhPSBDR0ZJTEVVUExPQURfTk9GSUxFICkKCQkJewoJCQkgICRlcnIgPSAkaGFuZGxlci0+R2V0RXJyb3IoKTsKCQkJICAkZXJyb3JzW10gPSBzcHJpbnRmKCIlcyAlczogJXMiLCR0aGlzLT5MYW5nKCdmaWVsZCcpLCRkZWYtPm5hbWUsCgkJCQkJICAgICAgJHRoaXMtPkdldFVwbG9hZEVycm9yTWVzc2FnZSgkZXJyKSk7CgkJCX0KCQkgICAgICBlbHNlIGlmKCAhJHJlcyAmJiAhZW1wdHkoJHYpICkKCQkJewoJCQkgIHRydWU7CgkJCX0KCQkgICAgICBlbHNlIGlmKCAhJHJlcyApCgkJCXsKCQkJICAkdiA9IG51bGw7CgkJCX0KCQkgICAgICBlbHNlCgkJCXsKCQkJICAkdiA9ICRyZXM7CgkJCX0KCQkgICAgICBicmVhazsKCQkgICAgICAKCQkgICAgY2FzZSAnaW1hZ2UnOgoJCSAgICAgICRkZXN0ZGlyID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkdGhpcy0+R2V0TmFtZSgpLAoJCQkJCSAgICAgICAncHJvZHVjdF8nLiRjb21waWQpOwoJCSAgICAgICR0aGlzLT5ta2RpcnIoJGRlc3RkaXIpOwoJCSAgICAgIGlmKCAhaXNfZGlyKCRkZXN0ZGlyKSApIGRpZSgnZGlyZWN0b3J5IHN0aWxsIGRvZXMgbm90IGV4aXN0Jyk7CgkJICAgICAgJGhhbmRsZXIgPSBuZXcgQ0dGaWxlVXBsb2FkSGFuZGxlcigkaWQsJGRlc3RkaXIpOwoJCSAgICAgICRoYW5kbGVyLT5TZXRBY2NlcHRlZEZpbGVUeXBlcygkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dlZF9pbWFnZXR5cGVzJykpOwoJCSAgICAgICRyZXMgPSAkaGFuZGxlci0+SGFuZGxlVXBsb2FkZWRGaWxlKCdjdXN0b21maWVsZCcsJycsJ2ZpZWxkLScuJGZpZCk7CgkJICAgICAgaWYoICEkcmVzICYmICRoYW5kbGVyLT5HZXRFcnJvcigpICE9IENHRklMRVVQTE9BRF9OT0ZJTEUgKQoJCQl7CgkJCSAgJGVyciA9ICRoYW5kbGVyLT5HZXRFcnJvcigpOwoJCQkgICRlcnJvcnNbXSA9IHNwcmludGYoIiVzICVzOiAlcyIsJHRoaXMtPkxhbmcoJ2ZpZWxkJyksJGRlZi0+bmFtZSwKCQkJCQkgICAgICAkdGhpcy0+R2V0VXBsb2FkRXJyb3JNZXNzYWdlKCRlcnIpKTsKCQkJfQoJCSAgICAgIGVsc2UgaWYoICEkcmVzICYmICFlbXB0eSgkdikgKQoJCQl7CgkJCSAgdHJ1ZTsKCQkJfQoJCSAgICAgIGVsc2UgaWYoICEkcmVzICkKCQkJewoJCQkgICR2ID0gbnVsbDsKCQkJfQoJCSAgICAgIGVsc2UKCQkJewoJCQkgICR2ID0gJHJlczsKCgkJCSAgLy8gZ2VuZXJhdGUgdGhlIHRodW1ibmFpbCBtYXliZQoJCQkgIGlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYXV0b3RodW1ibmFpbCcpID09IDEgKQoJCQkgICAgewoJCQkgICAgICAkc3JjbmFtZSA9IGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJHYpOwoJCQkgICAgICAkZGVzdG5hbWUgPSBjbXNfam9pbl9wYXRoKCRkZXN0ZGlyLCd0aHVtYl8nLiR2KTsKCQkJICAgICAgJHRoaXMtPlRyYW5zZm9ybUltYWdlKCRzcmNuYW1lLCRkZXN0bmFtZSk7CgkJCSAgICB9CQkJICAKCQkJfQoJCSAgICAgIGJyZWFrOwoJCSAgICAgIAoJCSAgICBjYXNlICd0ZXh0Ym94JzoKCQkgICAgY2FzZSAnY2hlY2tib3gnOgoJCSAgICBjYXNlICd0ZXh0YXJlYSc6CgkJICAgIGNhc2UgJ2Ryb3Bkb3duJzoKCQkgICAgICBicmVhazsKCgkJICAgIGRlZmF1bHQ6CgkJICAgICAgZGllKCJ1bmtub3duIHR5cGU6ICIuJGRlZi0+dHlwZSk7CgkJICAgICAgYnJlYWs7CgkJICAgIH0KCgkJICBpZiggIWlzX251bGwoJHYpICkgewkJICAgIAoJCSAgICBlY2hvICJBRERJTkcgJHY8YnIvPiI7CgkJICAgIC8vIGNvbW1pdCBpdCBpZiB0aGVyZSBpcyBhIHZhbGlkIHZhbHVlCgkJICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyAocHJvZHVjdF9pZCwgZmllbGRkZWZfaWQsIHZhbHVlLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSkgVkFMVUVTICg/LD8sPyw/LD8pJzsKCQkgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGNvbXBpZCwgJGZpZCwgJHYsIHRyaW0oJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLCAiJyIpLCB0cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSwgIiciKSkpOwoJCSAgfQoJCX0KCSAgICAgIH0KCSAgfQoKCS8vIFVwZGF0ZSBjYXRlZ29yaWVzCgkkZGItPkV4ZWN1dGUoJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzIFdIRVJFIHByb2R1Y3RfaWQgPSA/JywgYXJyYXkoJGNvbXBpZCkpOwoJaWYgKGlzc2V0KCRfUkVRVUVTVFskaWQuJ2NhdGVnb3J5J10pKQoJICB7CgkgICAgZm9yZWFjaCAoJF9SRVFVRVNUWyRpZC4nY2F0ZWdvcnknXSBhcyAkaz0+JHYpCgkgICAgICB7CgkJaWYgKHN0YXJ0c3dpdGgoJGssICdpZC0nKSkKCQkgIHsKCQkgICAgJGZpZCA9IHN1YnN0cigkaywgMyk7CgkJICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcyAocHJvZHVjdF9pZCwgY2F0ZWdvcnlfaWQsIGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlKSBWQUxVRVMgKD8sPyw/LD8pJzsKCQkgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGNvbXBpZCwgJGZpZCwgdHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSksICInIiksIHRyaW0oJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLCAiJyIpKSk7CgkJICB9CgkgICAgICB9CgkgIH0KCQkKCS8vVXBkYXRlIHNlYXJjaCBpbmRleAoJJG1vZHVsZSA9JiAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ1NlYXJjaCcpOwoJaWYgKCRtb2R1bGUgIT0gRkFMU0UpCgkgIHsKCSAgICAkbW9kdWxlLT5EZWxldGVXb3JkcygkdGhpcy0+R2V0TmFtZSgpLCAkY29tcGlkLCAncHJvZHVjdCcpOwoJICAgIGlmKCAkcHJvZHVjdFsnc3RhdHVzJ10gPT0gJ3B1Ymxpc2hlZCcgKQoJICAgICAgewoJCSRtb2R1bGUtPkFkZFdvcmRzKCR0aGlzLT5HZXROYW1lKCksICRjb21waWQsICdwcm9kdWN0JywgCgkJCQkgIGltcGxvZGUoJyAnLCAkdGhpcy0+R2V0U2VhcmNoYWJsZVRleHQoJGNvbXBpZCkgKSApOwoJICAgICAgfQoJICB9CgoJJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICAgICAgfQogIH0KIGVsc2UKICAgewogICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgV0hFUkUgaWQgPSA/JzsKICAgICAkcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSgkY29tcGlkKSk7CgogICAgIGlmICgkcm93KQogICAgICAgewoJICRwcm9kdWN0X25hbWUgPSAkcm93Wydwcm9kdWN0X25hbWUnXTsKCSAkcHJpY2UgPSAoZmxvYXQpJHJvd1sncHJpY2UnXTsKCSAkd2VpZ2h0ID0gKGZsb2F0KSRyb3dbJ3dlaWdodCddOwoJICRkZXRhaWxzID0gJHJvd1snZGV0YWlscyddOwoJICRvcmlnbmFtZSA9ICRyb3dbJ3Byb2R1Y3RfbmFtZSddOwoJICR0YXhhYmxlID0gJHJvd1sndGF4YWJsZSddOwoKCSAkcXVlcnkgPSAnU0VMRUNUIGhpZXJhcmNoeV9pZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHRvaGllciAKICAgICAgICAgICAgICAgICAgICBXSEVSRSBwcm9kdWN0X2lkID0gPyc7CgkgJGhpZXJhcmNoeV9wb3MgPSAkZGItPkdldE9uZSgkcXVlcnksIGFycmF5KCAkY29tcGlkKSApOwogICAgICAgfQogICB9CgokZmllbGRhcnJheSA9IGFycmF5KCk7CmlmIChjb3VudCgkZmllbGRkZWZzKSA+IDApCiAgewogICAgZm9yZWFjaCAoJGZpZWxkZGVmcyBhcyAkZmllbGRkZWYpCiAgICAgIHsKCSRmaWVsZCA9IG5ldyBzdGRDbGFzcygpOwoKCSR2YWx1ZSA9ICcnOwoJaWYgKGlzc2V0KCRmaWVsZGRlZi0+dmFsdWUpKQoJICB7CgkgICAgJHZhbHVlID0gJGZpZWxkZGVmLT52YWx1ZTsKCSAgfQoKCWlmIChpc3NldCgkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddWydmaWVsZC0nLiRmaWVsZGRlZi0+aWRdKSkKCSAgJHZhbHVlID0gJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGQnXVsnZmllbGQtJy4kZmllbGRkZWYtPmlkXTsKCgkkZmllbGQtPmlkID0gJGZpZWxkZGVmLT5pZDsKCSRmaWVsZC0+bmFtZSA9ICRmaWVsZGRlZi0+bmFtZTsKCWlmKCBpc3NldCgkZmllbGRkZWYtPnZhbHVlKSApICRmaWVsZC0+dmFsdWUgPSAkZmllbGRkZWYtPnZhbHVlOwoJJGZpZWxkLT5wcm9tcHQgPSAkZmllbGRkZWYtPnByb21wdDsKCXN3aXRjaCAoJGZpZWxkZGVmLT50eXBlKQoJICB7CgkgIGNhc2UgJ2NoZWNrYm94JzoKCSAgICAkZmllbGQtPmlucHV0X2JveCA9ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSInIC4gJGlkIC4gJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScgLiAnIiB2YWx1ZT0iZmFsc2UiIC8+JyAuICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsICd0cnVlJywgJHZhbHVlID09ICd0cnVlJyk7CgkgICAgYnJlYWs7CgkgIGNhc2UgJ3RleHRhcmVhJzoKCSAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVUZXh0QXJlYSh0cnVlLCAkaWQsICR2YWx1ZSwgJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScpOwoJICAgIGJyZWFrOwoJICBjYXNlICdkcm9wZG93bic6CgkgICAgJGZpZWxkLT5pbnB1dF9ib3ggPSAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLAoJCQkJCQkJICAgJGZpZWxkZGVmLT5vcHRpb25zLCAtMSwgJHZhbHVlICk7CgkgICAgYnJlYWs7CgkgIGNhc2UgJ2ZpbGUnOgoJICAgICRmaWVsZC0+ZGVsZXRlID0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdjdXN0b21maWVsZFtkZWxldGVmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLAoJCQkJCQkJMSwwKTsKCSAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nKTsKCSAgICAkZmllbGQtPmhpZGRlbiA9ICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsJHZhbHVlKTsKCSAgICBicmVhazsKCSAgY2FzZSAnaW1hZ2UnOgoJICAgICRmaWVsZC0+ZGVsZXRlID0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdjdXN0b21maWVsZFtkZWxldGVmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLAoJCQkJCQkJMSwwKTsKCSAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nKTsKCSAgICAkZmllbGQtPmhpZGRlbiA9ICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsJHZhbHVlKTsKCSAgICBicmVhazsKCSAgY2FzZSAndGV4dGJveCc6CgkgIGRlZmF1bHQ6CgkgICAgJGZpZWxkLT5pbnB1dF9ib3ggPSAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsICR2YWx1ZSwgMzAsIDI1NSk7CgkgICAgYnJlYWs7CgkgIH0KCgkkZmllbGRhcnJheVtdID0gJGZpZWxkOwogICAgICB9CiAgfQoKJGNhdGVnb3JpZXMgPSAkdGhpcy0+R2V0Q2F0ZWdvcmllc0ZvclByb2R1Y3QoJGNvbXBpZCk7CiRjYXRhcnJheSA9IGFycmF5KCk7CgppZiAoY291bnQoJGNhdGVnb3JpZXMpID4gMCkKICB7CiAgICBmb3JlYWNoICgkY2F0ZWdvcmllcyBhcyAkZmllbGRkZWYpCiAgICAgIHsKCSRmaWVsZCA9IG5ldyBzdGRDbGFzcygpOwoKICAgICAgICAkdmFsdWUgPSAnJzsKICAgICAgICBpZiAoaXNzZXQoJGZpZWxkZGVmLT52YWx1ZSkpCgkgIHsKCSAgICAkdmFsdWUgPSAkZmllbGRkZWYtPnZhbHVlOwoJICB9CgoJaWYgKGlzc2V0KCRfUkVRVUVTVFskaWQuJ2NhdGVnb3J5J10pKQoJICB7CgkgICAgaWYgKGlzc2V0KCRfUkVRVUVTVFskaWQuJ2NhdGVnb3J5J11bJ2lkLScuJGZpZWxkZGVmLT5pZF0pKQoJICAgICAgJHZhbHVlID0gJ3RydWUnOwoJICAgIGVsc2UKCSAgICAgICR2YWx1ZSA9ICdmYWxzZSc7CgkgIH0KCgkkZmllbGQtPmlkID0gJGZpZWxkZGVmLT5pZDsKCSRmaWVsZC0+bmFtZSA9ICRmaWVsZGRlZi0+bmFtZTsKCSRmaWVsZC0+Y2hlY2tib3ggPSAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdjYXRlZ29yeVtpZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCAkdmFsdWUsICd0cnVlJyk7CgoJJGNhdGFycmF5W10gPSAkZmllbGQ7CiAgICAgIH0KICB9CgojRGlzcGxheSB0ZW1wbGF0ZQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnZWRpdHByb2R1Y3QnLCAkcmV0dXJuaWQsICdwb3N0JywgJ211bHRpcGFydC9mb3JtLWRhdGEnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25hbWV0ZXh0JywgJHRoaXMtPkxhbmcoJ25hbWUnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRuYW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdwcm9kdWN0X25hbWUnLCAkcHJvZHVjdF9uYW1lLCAzMCwgMjU1KSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigncHJpY2V0ZXh0JywgJHRoaXMtPkxhbmcoJ3ByaWNlJykpOwokc21hcnR5LT5hc3NpZ24oJ2N1cnJlbmN5X3N5bWJvbCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Byb2R1Y3RzX2N1cnJlbmN5c3ltYm9sJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0cHJpY2UnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3ByaWNlJywgc3ByaW50ZigiJS4yZiIsJHByaWNlKSwgMTAsIDEyKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignd2VpZ2h0dGV4dCcsICR0aGlzLT5MYW5nKCd3ZWlnaHQnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignd2VpZ2h0dW5pdHMnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwcm9kdWN0c193ZWlnaHR1bml0cycpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dHdlaWdodCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnd2VpZ2h0JywgCgkJCQkJCQkgICAgc3ByaW50ZigiJS4yZiIsJHdlaWdodCksIDEwLCAxMikpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2RldGFpbHN0ZXh0JywgJHRoaXMtPkxhbmcoJ2RldGFpbHMnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRkZXRhaWxzJywgJHRoaXMtPkNyZWF0ZVRleHRBcmVhKHRydWUsICRpZCwgJGRldGFpbHMsICdkZXRhaWxzJywgJycsICcnLCAnJywgJycsICc4MCcsICc1JykpOwoKJHNtYXJ0eS0+YXNzaWduKCd0YXhhYmxldGV4dCcsJHRoaXMtPkxhbmcoJ3RheGFibGUnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXR0YXhhYmxlJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ3RheGFibGUnLDEsJHRheGFibGUpKTsKCiRoaWVyYXJjaHlfaXRlbXMgPSAkdGhpcy0+QnVpbGRIaWVyYXJjaHlMaXN0KCk7CiRzbWFydHktPmFzc2lnbignaGllcmFyY2h5X2l0ZW1zJywkaGllcmFyY2h5X2l0ZW1zKTsKJHNtYXJ0eS0+YXNzaWduKCdoaWVyYXJjaHlfcG9zJywkaGllcmFyY2h5X3Bvcyk7Cgokc3RhdHVzZXMgPSBhcnJheSgkdGhpcy0+TGFuZygncHVibGlzaGVkJyk9PidwdWJsaXNoZWQnLAoJCSAgJHRoaXMtPkxhbmcoJ2RyYWZ0Jyk9PidkcmFmdCcsCgkJICAkdGhpcy0+TGFuZygnZGlzYWJsZWQnKT0+J2Rpc2FibGVkJyk7CiRzbWFydHktPmFzc2lnbignc3RhdHVzdGV4dCcsJHRoaXMtPkxhbmcoJ3N0YXR1cycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHN0YXR1cycsCgkJJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdzdGF0dXMnLAoJCQkJCSAgICRzdGF0dXNlcywtMSwkc3RhdHVzKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2lkdGV4dCcsJHRoaXMtPkxhbmcoJ2lkJykpOwokc21hcnR5LT5hc3NpZ24oJ2NvbXBpZCcsJGNvbXBpZCk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaGlkZGVuJywgCgkJICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2NvbXBpZCcsICRjb21waWQpLgoJCSAgICAgICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdvcmlnbmFtZScsICRvcmlnbmFtZSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCBsYW5nKCdzdWJtaXQnKSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhbmNlbCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdjYW5jZWwnLCBsYW5nKCdjYW5jZWwnKSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdjdXN0b21maWVsZHMnLCAkZmllbGRhcnJheSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignY3VzdG9tZmllbGRzY291bnQnLCBjb3VudCgkZmllbGRhcnJheSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdjYXRlZ29yaWVzJywgJGNhdGFycmF5KTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yaWVzY291bnQnLCBjb3VudCgkY2F0YXJyYXkpKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0cHJvZHVjdC50cGwnKTsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.edit_attribsets.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBQcm9kdWN0cyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMgCiMgVmVyc2lvbjogMS4xLjUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQoKTsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSkKewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbmVlZHBlcm1pc3Npb24nLCBhcnJheSgnTW9kaWZ5IFByb2R1Y3RzJykpKTsKCXJldHVybjsKfQppZiggIWlzc2V0KCRwYXJhbXNbJ2NvbXBpZCddKSApCiAgewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwoJcmV0dXJuOwogIH0KZWNobyAkdGhpcy0+U2V0Q3VycmVudFRhYigncHJvZHVjdHMnKTsKCi8vU0VMRUNUIEEuKixjb3VudChCLmF0dHJpYl90ZXh0KSBBUyBjb3VudCBGUk9NIGNtc19tb2R1bGVfcHJvZHVjdHNfYXR0cmlic2V0cyBBIExFRlQgSk9JTiBjbXNfbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnV0ZXMgQiBPTiBBLmF0dHJpYl9zZXRfaWQgPSBCLmF0dHJpYl9zZXRfaWQgR1JPVVAgQlkgYXR0cmliX3NldF9pZDsKJHF1ZXJ5ID0gIlNFTEVDVCBBLiosY291bnQoQi5hdHRyaWJfdGV4dCkgQVMgY291bnQgCiAgICAgICAgICBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlic2V0cyBBIAogICAgICAgICAgTEVGVCBKT0lOICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcyBCIAogICAgICAgICAgT04gQS5hdHRyaWJfc2V0X2lkID0gQi5hdHRyaWJfc2V0X2lkIAogICAgICAgICAgV0hFUkUgcHJvZHVjdF9pZCA9ID8KICAgICAgICAgIEdST1VQIEJZIGF0dHJpYl9zZXRfaWQiOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoJHBhcmFtc1snY29tcGlkJ10pICk7CiRvYmplY3RzID0gYXJyYXkoKTsKd2hpbGUoICRkYnJlc3VsdCAmJiAoJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkgKQogIHsKCSRvYmogPSAkdGhpcy0+QXJyYXlUb09iamVjdCgkcm93KTsKCSRvYmotPmRlbGV0ZWxpbmsgPSAkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnZGVsZXRlX2F0dHJpYnNldCcsJHJldHVybmlkLAoJCQkJCQkJCQkJCSAgJHRoaXMtPkxhbmcoJ2RlbGV0ZV9hdHRyaWJzZXQnKSwKCQkJCQkJCQkJCQkgICdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsCgkJCQkJCQkJCQkJICBhcnJheSgnY29tcGlkJz0+JHBhcmFtc1snY29tcGlkJ10sCgkJCQkJCQkJCQkJCQknYXR0cnNldGlkJz0+JHJvd1snYXR0cmliX3NldF9pZCddKSk7CgoJJG9iai0+ZWRpdGxpbmsgPSAkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnYWRkX2F0dHJpYl9zZXQnLCRyZXR1cm5pZCwKCQkJCQkJCQkJCQkgICR0aGlzLT5MYW5nKCdkZWxldGVfYXR0cmlic2V0JyksCgkJCQkJCQkJCQkJICAnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywKCQkJCQkJCQkJCQkgIGFycmF5KCdjb21waWQnPT4kcGFyYW1zWydjb21waWQnXSwKCQkJCQkJCQkJCQkJCSdhdHRyc2V0aWQnPT4kcm93WydhdHRyaWJfc2V0X2lkJ10pKTsKCgkkb2JqZWN0c1tdID0gJG9iajsKICB9CgokcXVlcnkgPSAnU0VMRUNUIHByb2R1Y3RfbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMKICAgICAgICAgICBXSEVSRSBpZCA9ID8nOwokcHJvZHVjdF9uYW1lID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRwYXJhbXNbJ2NvbXBpZCddKSk7CiRzbWFydHktPmFzc2lnbigndGl0bGVfYXR0cmlic2V0c19mb3InLCR0aGlzLT5MYW5nKCdlZGl0X2F0dHJpYnNldHNfZm9yJykpOwokc21hcnR5LT5hc3NpZ24oJ3Byb2R1Y3RfbmFtZScsJHByb2R1Y3RfbmFtZSk7Cgokc21hcnR5LT5hc3NpZ24oJ2l0ZW1zJywkb2JqZWN0cyk7CiRzbWFydHktPmFzc2lnbignaXRlbWNvdW50Jyxjb3VudCgkb2JqZWN0cykpOwokc21hcnR5LT5hc3NpZ24oJ2lkdGV4dCcsJHRoaXMtPkxhbmcoJ2lkJykpOwokc21hcnR5LT5hc3NpZ24oJ25hbWV0ZXh0JywkdGhpcy0+TGFuZygnbmFtZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdjb3VudHRleHQnLCR0aGlzLT5MYW5nKCd2YWx1ZXMnKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2FkZF9saW5rJywKCQkJCSR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdhZGRfYXR0cmliX3NldCcsJHJldHVybmlkLAoJCQkJCQkJCQkgICAkdGhpcy0+TGFuZygnYWRkX2F0dHJpYl9zZXQnKSwKCQkJCQkJCQkJICAgJ2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJywKCQkJCQkJCQkJICAgYXJyYXkoJ2NvbXBpZCc9PiRwYXJhbXNbJ2NvbXBpZCddKSwKCQkJCQkJCQkJICAgJycsJycsZmFsc2UpKTsKCgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRfYXR0cmlic2V0cy50cGwnKTsKCi8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.hierarchy.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiRpbmxpbmUgPSB0cnVlOwokZGV0YWlscGFnZSA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snZGV0YWlscGFnZSddKSkKICB7CiAgICAkbWFuYWdlciA9JiAkZ0Ntcy0+R2V0SGllcmFyY2h5TWFuYWdlcigpOwogICAgJG5vZGUgPSYgJG1hbmFnZXItPnN1cmVHZXROb2RlQnlBbGlhcygkcGFyYW1zWydkZXRhaWxwYWdlJ10pOwogICAgaWYgKGlzc2V0KCRub2RlKSkKICAgICAgewoJCSRjb250ZW50ID0mICRub2RlLT5HZXRDb250ZW50KCk7CQoJCWlmIChpc3NldCgkY29udGVudCkpCgkJICB7CgkJCSRkZXRhaWxwYWdlID0gJGNvbnRlbnQtPklkKCk7CgkJICB9CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJCSRub2RlID0mICRtYW5hZ2VyLT5zdXJlR2V0Tm9kZUJ5SWQoJHBhcmFtc1snZGV0YWlscGFnZSddKTsKCQlpZiAoaXNzZXQoJG5vZGUpKQoJCSAgewoJCQkkZGV0YWlscGFnZSA9ICRwYXJhbXNbJ2RldGFpbHBhZ2UnXTsKCQkgIH0KICAgICAgfQogICAgaWYoICRkZXRhaWxwYWdlICE9ICcnICkKICAgICAgewoJJHBhcmFtc1snY2Rfb3JpZ3BhZ2UnXSA9ICRyZXR1cm5pZDsKCSRpbmxpbmUgPSBmYWxzZTsKICAgICAgfQogIH0KCiRwYXJlbnQgPSAtMTsKaWYoIGlzc2V0KCRwYXJhbXNbJ3BhcmVudCddICkgKQogIHsKICAgICRwYXJlbnQgPSAoaW50KSRwYXJhbXNbJ3BhcmVudCddOwogIH0KCiRoaWVyZGF0YSA9IGFycmF5KCk7CiRoaWVyZGF0YVsnbmFtZSddID0gJHRoaXMtPkxhbmcoJ3Jvb3QnKTsKJGhpZXJkYXRhWydpZCddID0gLTE7CiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5CiAgICAgICAgICAgV0hFUkUgaWQgPSA/JzsKJHRtcCA9ICRkYi0+R2V0Um93KCRxdWVyeSxhcnJheSgkcGFyZW50KSk7CmlmKCAkdG1wICkKICB7CiAgICAkaGllcmRhdGEgPSAkdG1wOwogIH0KCi8vCi8vIEdldCB0aGUgbGlzdCBvZiBkaXJlY3QgY2hpbGRyZW4gdG8gdGhpcyBoaWVyYXJjaHkgbm9kZQovLwokY29uZmlnID0mICRnQ21zLT5HZXRDb25maWcoKTsKJGltZ2RpciA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJHRoaXMtPkdldE5hbWUoKSwnaGllcmFyY2h5Jyk7CiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5CiAgICAgICAgICAgV0hFUkUgcGFyZW50X2lkID0gPyc7CiRkYXRhID0gYXJyYXkoKTsKJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHBhcmVudCkpOwp3aGlsZSggJGRiciAmJiAoJHJvdyA9ICRkYnItPkZldGNoUm93KCkpICkKICB7Ci8vICAgICAkcXVlcnkgPSAnU0VMRUNUIGNvdW50KGlkKSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5Ci8vICAgICAgICAgICAgICAgIFdIRVJFIHBhcmVudF9pZCA9ID8nOwovLyAgICAgJG51bWNoaWxkcmVuID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRyb3dbJ2lkJ10pKTsKLy8gICAgIGlmKCAkbnVtY2hpbGRyZW4gPiAwICkKLy8gICAgICAgewoJJHBhcmFtc1sncGFyZW50J10gPSAkcm93WydpZCddOwoJJHJvd1snZG93bnVybCddID0gJHRoaXMtPkNyZWF0ZVByZXR0eUxpbmsoJGlkLCdoaWVyYXJjaHknLCRyZXR1cm5pZCwnJywkcGFyYW1zLCcnLHRydWUpOwoJJHJvd1snZG93bnVybCddIC49ICcvJy4kdGhpcy0+bWFrZV9hbGlhcygkcm93WyduYW1lJ10pOwovLyAgICAgICB9CgogICAgaWYoIGlzc2V0KCRyb3dbJ2ltYWdlJ10pICkKICAgICAgewoJJHRuID0gY21zX2pvaW5fcGF0aCgkaW1nZGlyLCd0aHVtYl8nLiRyb3dbJ2ltYWdlJ10pOwoJaWYoIGZpbGVfZXhpc3RzKCR0bikgKQoJICB7CgkgICAgJHJvd1sndGh1bWJuYWlsJ10gPSAndGh1bWJfJy4kcm93WydpbWFnZSddOwoJICB9CiAgICAgIH0KCiAgICAkZGF0YVtdID0gJHJvdzsKICB9Cgokc21hcnR5LT5hc3NpZ24oJ2hpZXJhcmNoeV9pdGVtJywkaGllcmRhdGEpOwokc21hcnR5LT5hc3NpZ24oJ2hpZXJhcmNoeV9pbWFnZV9sb2NhdGlvbicsJGNvbmZpZ1sndXBsb2Fkc191cmwnXS4nLycuJHRoaXMtPkdldE5hbWUoKS4nL2hpZXJhcmNoeScpOwokc21hcnR5LT5hc3NpZ24oJ2NoaWxkX25vZGVzJywkZGF0YSk7CgppZiggJHBhcmVudCA+IDAgKQogIHsKICAgICRxdWVyeSA9ICdTRUxFQ1QgcGFyZW50X2lkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkgV0hFUkUgaWQgPSA/JzsKICAgICRuZXdwYXJlbnQgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHBhcmVudCkpOwoKICAgICRwYXJhbXNbJ3BhcmVudCddID0gJG5ld3BhcmVudDsKICAgICRzbWFydHktPmFzc2lnbigndXB1cmwnLCR0aGlzLT5DcmVhdGVQcmV0dHlMaW5rKCRpZCwnaGllcmFyY2h5JywkcmV0dXJuaWQsJycsJHBhcmFtcywnJyx0cnVlKSk7CiAgfQoKCi8vCi8vIHRlbXBsYXRlCi8vCiR0aGV0ZW1wbGF0ZSA9ICdieWhpZXJhcmNoeV8nLiR0aGlzLT5HZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVEJZSElFUkFSQ0hZX1RFTVBMQVRFKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2hpZXJhcmNoeXRlbXBsYXRlJ10gKSApCiAgewogICAgJHRoZXRlbXBsYXRlID0gJ2J5aGllcmFyY2h5XycuJHBhcmFtc1snaGllcmFyY2h5dGVtcGxhdGUnXTsKICB9CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgkdGhldGVtcGxhdGUpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.movefielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYignZmllbGRkZWZzJyk7Cgokb3JkZXIgPSAxOwokZmRpZCA9ICRwYXJhbXNbJ2ZkaWQnXTsKCiNHcmFiIG5lY2Vzc2FyeSBpbmZvIGZvciBmaXhpbmcgdGhlIGl0ZW1fb3JkZXIKJG9yZGVyID0gJGRiLT5HZXRPbmUoIlNFTEVDVCBpdGVtX29yZGVyIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMgV0hFUkUgaWQgPSA/IiwgYXJyYXkoJGZkaWQpKTsKJHRpbWUgPSAkZGItPkRCVGltZVN0YW1wKHRpbWUoKSk7CgppZiAoJHBhcmFtc1snZGlyJ10gPT0gImRvd24iKQp7CgkkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFNFVCBpdGVtX29yZGVyID0gKGl0ZW1fb3JkZXIgLSAxKSwgbW9kaWZpZWRfZGF0ZSA9ICcuJHRpbWUuJyBXSEVSRSBpdGVtX29yZGVyID0gPyc7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkb3JkZXIgKyAxKSk7CgkkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFNFVCBpdGVtX29yZGVyID0gKGl0ZW1fb3JkZXIgKyAxKSwgbW9kaWZpZWRfZGF0ZSA9ICcuJHRpbWUuJyBXSEVSRSBpZCA9ID8nOwoJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGZkaWQpKTsKfQplbHNlIGlmICgkcGFyYW1zWydkaXInXSA9PSAidXAiKQp7CgkkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFNFVCBpdGVtX29yZGVyID0gKGl0ZW1fb3JkZXIgKyAxKSwgbW9kaWZpZWRfZGF0ZSA9ICcuJHRpbWUuJyBXSEVSRSBpdGVtX29yZGVyID0gPyc7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkb3JkZXIgLSAxKSk7CgkkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFNFVCBpdGVtX29yZGVyID0gKGl0ZW1fb3JkZXIgLSAxKSwgbW9kaWZpZWRfZGF0ZSA9ICcuJHRpbWUuJyBXSEVSRSBpZCA9ID8nOwoJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGZkaWQpKTsKfQoKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKPz4K]]></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>/function.admin_categories_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSApIGV4aXQ7CgojUHV0IHRvZ2V0aGVyIGEgbGlzdCBvZiBjdXJyZW50IGNhdGVnb3JpZXMuLi4KJGVudHJ5YXJyYXkgPSBhcnJheSgpOwoJCiRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyBPUkRFUiBCWSBuYW1lIjsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkKJHJvd2NsYXNzID0gJ3JvdzEnOwoJCndoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKICB7CiAgICAkb25lcm93ID0gbmV3IHN0ZENsYXNzKCk7CgkKICAgICRvbmVyb3ctPmlkID0gJHJvd1snaWQnXTsKICAgICRvbmVyb3ctPm5hbWUgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0Y2F0ZWdvcnknLCAkcmV0dXJuaWQsICRyb3dbJ25hbWUnXSwgYXJyYXkoJ2NhdGlkJz0+JHJvd1snaWQnXSkpOwoJCiAgICAkb25lcm93LT5lZGl0bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXRjYXRlZ29yeScsICRyZXR1cm5pZCwgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsICR0aGlzLT5MYW5nKCdlZGl0JyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2NhdGlkJz0+JHJvd1snaWQnXSkpOwoKICAgICRvbmVyb3ctPmRlbGV0ZWxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdkZWxldGVjYXRlZ29yeScsICRyZXR1cm5pZCwgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywgJHRoaXMtPkxhbmcoJ2RlbGV0ZScpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdjYXRpZCc9PiRyb3dbJ2lkJ10pLCAkdGhpcy0+TGFuZygnYXJleW91c3VyZScpKTsKCQogICAgJG9uZXJvdy0+cm93Y2xhc3MgPSAkcm93Y2xhc3M7CgogICAgJGVudHJ5YXJyYXlbXSA9ICRvbmVyb3c7CgkKICAgICgkcm93Y2xhc3M9PSJyb3cxIj8kcm93Y2xhc3M9InJvdzIiOiRyb3djbGFzcz0icm93MSIpOwogIH0KCQokdGhpcy0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdpdGVtcycsICRlbnRyeWFycmF5KTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpdGVtY291bnQnLCBjb3VudCgkZW50cnlhcnJheSkpOwoJCiNTZXR1cCBsaW5rcwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FkZGxpbmsnLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZGRjYXRlZ29yeScsICRyZXR1cm5pZCwgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdmb2xkZXIuZ2lmJywgJHRoaXMtPkxhbmcoJ2FkZGNhdGVnb3J5JyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoKSwgJycsIGZhbHNlLCBmYWxzZSwgJycpIC4nICcuICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkZGNhdGVnb3J5JywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWRkY2F0ZWdvcnknKSwgYXJyYXkoKSwgJycsIGZhbHNlLCBmYWxzZSwgJ2NsYXNzPSJwYWdlb3B0aW9ucyInKSk7CgkKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yeXRleHQnLCAkdGhpcy0+TGFuZygnY2F0ZWdvcnknKSk7CgkKI0Rpc3BsYXkgdGVtcGxhdGUKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdjYXRlZ29yeWxpc3QudHBsJyk7CgkKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_fielddefs_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSApIGV4aXQ7CgokZW50cnlhcnJheSA9IGFycmF5KCk7CgkKJG1heCA9ICRkYi0+R2V0T25lKCJTRUxFQ1QgbWF4KGl0ZW1fb3JkZXIpIGFzIG1heF9pdGVtX29yZGVyIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMiKTsKCQokcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBPUkRFUiBCWSBpdGVtX29yZGVyIjsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkKJHJvd2NsYXNzID0gJ3JvdzEnOwoJCndoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKICB7CiAgICAkb25lcm93ID0gbmV3IHN0ZENsYXNzKCk7CgkJCiAgICAkb25lcm93LT5pZCA9ICRyb3dbJ2lkJ107CiAgICAkb25lcm93LT5uYW1lID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdGZpZWxkZGVmJywgJHJldHVybmlkLCAkcm93WyduYW1lJ10sIGFycmF5KCdmZGlkJz0+JHJvd1snaWQnXSkpOwogICAgJG9uZXJvdy0+dHlwZSA9ICRyb3dbJ3R5cGUnXTsKICAgICRvbmVyb3ctPm1heF9sZW5ndGggPSAkcm93WydtYXhfbGVuZ3RoJ107CiAgICAkb25lcm93LT5pdGVtX29yZGVyID0gJHJvd1snaXRlbV9vcmRlciddOwoJCQogICAgaWYgKCRvbmVyb3ctPml0ZW1fb3JkZXIgPiAwKQogICAgICB7Cgkkb25lcm93LT51cGxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdtb3ZlZmllbGRkZWYnLCAkcmV0dXJuaWQsICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vYXJyb3ctdS5naWYnLCAkdGhpcy0+TGFuZygndXAnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZmRpZCc9PiRyb3dbJ2lkJ10sICdkaXInPT4ndXAnKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJG9uZXJvdy0+dXBsaW5rID0gJyc7CiAgICAgIH0KICAgIGlmICgkbWF4ID4gJG9uZXJvdy0+aXRlbV9vcmRlcikKICAgICAgewoJJG9uZXJvdy0+ZG93bmxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdtb3ZlZmllbGRkZWYnLCAkcmV0dXJuaWQsICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vYXJyb3ctZC5naWYnLCAkdGhpcy0+TGFuZygnZG93bicpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmZGlkJz0+JHJvd1snaWQnXSwgJ2Rpcic9Pidkb3duJykpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRvbmVyb3ctPmRvd25saW5rID0gJyc7CiAgICAgIH0KCQogICAgJG9uZXJvdy0+ZWRpdGxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0ZmllbGRkZWYnLCAkcmV0dXJuaWQsICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLCAkdGhpcy0+TGFuZygnZWRpdCcpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmZGlkJz0+JHJvd1snaWQnXSkpOwoKICAgICRvbmVyb3ctPmRlbGV0ZWxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdkZWxldGVmaWVsZGRlZicsICRyZXR1cm5pZCwgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywgJHRoaXMtPkxhbmcoJ2RlbGV0ZScpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmZGlkJz0+JHJvd1snaWQnXSksICR0aGlzLT5MYW5nKCdhcmV5b3VzdXJlJykpOwoJCQogICAgJGVudHJ5YXJyYXlbXSA9ICRvbmVyb3c7CgogICAgKCRyb3djbGFzcz09InJvdzEiPyRyb3djbGFzcz0icm93MiI6JHJvd2NsYXNzPSJyb3cxIik7CiAgfQoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignaXRlbXMnLCAkZW50cnlhcnJheSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaXRlbWNvdW50JywgY291bnQoJGVudHJ5YXJyYXkpKTsKCQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FkZGxpbmsnLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZGRmaWVsZGRlZicsICRyZXR1cm5pZCwgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdmb2xkZXIuZ2lmJywgJHRoaXMtPkxhbmcoJ2FkZGZpZWxkZGVmJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoKSwgJycsIGZhbHNlLCBmYWxzZSwgJycpIC4nICcuICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkZGZpZWxkZGVmJywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWRkZmllbGRkZWYnKSwgYXJyYXkoKSwgJycsIGZhbHNlLCBmYWxzZSwgJ2NsYXNzPSJwYWdlb3B0aW9ucyInKSk7CgkKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmaWVsZGRlZnRleHQnLCAkdGhpcy0+TGFuZygnZmllbGRkZWYnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigndHlwZXRleHQnLCAkdGhpcy0+TGFuZygndHlwZScpKTsKCQojRGlzcGxheSB0ZW1wbGF0ZQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2ZpZWxkZGVmbGlzdC50cGwnKTsKCQojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_hierarchy_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSApIGV4aXQ7CgokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSAKICAgICAgICAgICBPUkRFUiBieSBoaWVyYXJjaHknOwokZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgokZW50cnlhcnJheSA9IGFycmF5KCk7CndoaWxlKCAkZGJyICYmICgkcm93ID0gJGRici0+RmV0Y2hSb3coKSkgKQogIHsKICAgICRyb3dbJ2VkaXRfdXJsJ10gPSAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnYWRtaW5fZWRpdF9oaWVyYXJjaHlfaXRlbScsCgkJCQkJJHJldHVybmlkLAoJCQkJCWFycmF5KCdoaWVyYXJjaHlfaWQnPT4kcm93WydpZCddKSk7CiAgICAkcm93WydkZXB0aCddID0gY291bnQoc3BsaXQoJ1wuJywgJHJvd1snaGllcmFyY2h5J10pKSAtIDE7CiAgICAkcm93WydlZGl0X2xpbmsnXSA9ICR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdhZG1pbl9lZGl0X2hpZXJhcmNoeV9pdGVtJywKCQkJCQkgICAgICAgJHJldHVybmlkLAoJCQkJCSAgICAgICAkdGhpcy0+TGFuZygnZWRpdF9oaWVyYXJjaHlfaXRlbScpLAoJCQkJCSAgICAgICAnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywKCQkJCQkgICAgICAgYXJyYXkoJ2hpZXJhcmNoeV9pZCc9PiRyb3dbJ2lkJ10pKTsKICAgICRyb3dbJ2RlbGV0ZV9saW5rJ10gPSAkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnYWRtaW5fZGVsZXRlX2hpZXJhcmNoeV9pdGVtJywKCQkJCQkJICRyZXR1cm5pZCwKCQkJCQkJICR0aGlzLT5MYW5nKCdkZWxldGVfaGllcmFyY2h5X2l0ZW0nKSwKCQkJCQkJICdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsCgkJCQkJCSBhcnJheSgnaGllcmFyY2h5X2lkJz0+JHJvd1snaWQnXSksJycsCgkJCQkJCSAkdGhpcy0+TGFuZygnY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnKSk7CiAgICAkZW50cnlhcnJheVtdID0gJHJvdzsKICB9Cgokc21hcnR5LT5hc3NpZ24oJ2VudHJpZXMnLCRlbnRyeWFycmF5KTsKJHNtYXJ0eS0+YXNzaWduKCdhZGRfaGllcmFyY2h5X2xpbmsnLAoJCSR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdhZG1pbl9hZGRfaGllcmFyY2h5X2l0ZW0nLAoJCQkJICAgICAgICRyZXR1cm5pZCwKCQkJCSAgICAgICAkdGhpcy0+TGFuZygnYWRkX2hpZXJhcmNoeV9pdGVtJyksCgkJCQkgICAgICAgJ2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJywKCQkJCSAgICAgICBhcnJheSgpLCcnLCcnLGZhbHNlKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX2hpZXJhcmNoeV90YWIudHBsJyk7CiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_prefstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgcmV0dXJuOwoKJHRheF9tb2R1bGVzID0gYXJyYXkoKTsKJHRheF9tb2R1bGVzWyR0aGlzLT5MYW5nKCdub25lJyldID0gJy0xJzsKCmZvcmVhY2goICRnQ21zLT5tb2R1bGVzIGFzICRvbmVtb2R1bGUgKQp7CiAgaWYoIGlzc2V0KCRvbmVtb2R1bGVbJ29iamVjdCddKSApCiAgICB7CiAgICAgICRtb2R1bGUgPSYgJG9uZW1vZHVsZVsnb2JqZWN0J107CiAgICAgICRyZXMgPSBmYWxzZTsKICAgICAgaWYoIG1ldGhvZF9leGlzdHMoICRtb2R1bGUsICdJc1RheE1vZHVsZScgKSApCgl7CgkgICRyZXMgPSAkbW9kdWxlLT5Jc1RheE1vZHVsZSgpOwoJICBpZiggJHJlcyApCgkgICAgewoJICAgICAgJHRheF9tb2R1bGVzWyRtb2R1bGUtPkdldEZyaWVuZGx5TmFtZSgpXSA9ICRtb2R1bGUtPkdldE5hbWUoKTsKCSAgICB9Cgl9CgogICAgfQp9CgokY29udGVudG9wcyA9JiAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKJHNvcnRvcmRlciA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzb3J0b3JkZXInLCdhc2MnKTsKJHNvcnRieSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzb3J0YnknLCdwcm9kdWN0X25hbWUnKTsKCiRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywKCQkkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fc2F2ZXByZWZzJywkcmV0dXJuaWQpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywKCQkkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdCcsJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9kZXRhaWxwYWdlJywkdGhpcy0+TGFuZygncHJvbXB0X2RldGFpbHBhZ2UnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfZGV0YWlscGFnZScsCgkJJGNvbnRlbnRvcHMtPkNyZWF0ZUhpZXJhcmNoeURyb3Bkb3duKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZXRhaWxwYWdlJyksJycsJ2RldGFpbHBhZ2UnKSk7Cgokc29ydG9yZGVycyA9IGFycmF5KCR0aGlzLT5MYW5nKCdhc2NlbmRpbmcnKT0+J2FzYycsCgkJICAgICR0aGlzLT5MYW5nKCdkZXNjZW5kaW5nJyk9PidkZXNjJyk7CiRzbWFydHktPmFzc2lnbigncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInLCR0aGlzLT5MYW5nKCdwcm9tcHRfc3VtbWFyeXNvcnRvcmRlcicpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zdW1tYXJ5c29ydG9yZGVyJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ3NvcnRvcmRlcicsJHNvcnRvcmRlcnMsLTEsJHNvcnRvcmRlcikpOwoKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfY3VycmVuY3lzeW1ib2wnLCR0aGlzLT5MYW5nKCdwcm9tcHRfY3VycmVuY3lzeW1ib2wnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfY3VycmVuY3lzeW1ib2wnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdjdXJyZW5jeXN5bWJvbCcsCgkJCQkgICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Byb2R1Y3RzX2N1cnJlbmN5c3ltYm9sJykpKTsKCiRzbWFydHktPmFzc2lnbigncHJvbXB0X3dlaWdodHVuaXRzJywkdGhpcy0+TGFuZygncHJvbXB0X3dlaWdodHVuaXRzJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3dlaWdodHVuaXRzJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnd2VpZ2h0dW5pdHMnLAoJCQkJICAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwcm9kdWN0c193ZWlnaHR1bml0cycpKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF90YXhfbW9kdWxlJywkdGhpcy0+TGFuZygndGF4X21vZHVsZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF90YXhfbW9kdWxlJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ3RheF9tb2R1bGUnLAoJCQkJCSAgICR0YXhfbW9kdWxlcywtMSwKCQkJCQkgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndGF4X21vZHVsZScsLTEpKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2FsbG93ZWRfaW1hZ2V0eXBlcycsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2FsbG93ZWRfaW1hZ2V0eXBlcycsCgkJCQkgICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93ZWRfaW1hZ2V0eXBlcycpLDUwLDI1NSkpOwoKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9hbGxvd2VkX2ZpbGV0eXBlcycsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2FsbG93ZWRfZmlsZXR5cGVzJywKCQkJCSAgICAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dlZF9maWxldHlwZXMnKSw1MCwyNTUpKTsKCiRzbWFydHktPmFzc2lnbignaW5wdXRfYXV0b3RodW1ibmFpbCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0WWVzTm9Ecm9wZG93bigkaWQsJ2F1dG90aHVtYm5haWwnLAoJCQkJCQkkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYXV0b3RodW1ibmFpbCcpKSk7Cgokc29ydGluZ3MgPSBhcnJheSgkdGhpcy0+TGFuZygncHJvZHVjdG5hbWUnKT0+J3Byb2R1Y3RfbmFtZScsCgkJICAkdGhpcy0+TGFuZygncHJpY2UnKT0+J3ByaWNlJywKCQkgICR0aGlzLT5MYW5nKCdjcmVhdGVkZGF0ZScpPT4nY3JlYXRlZCcsCgkJICAkdGhpcy0+TGFuZygnbW9kaWZpZWRkYXRlJyk9Pidtb2RpZmllZCcsCgkJICAkdGhpcy0+TGFuZygncmFuZG9tJyk9PidyYW5kb20nLAoJCSAgJHRoaXMtPkxhbmcoJ3N0YXR1cycpPT4nc3RhdHVzJyk7CiRzbWFydHktPmFzc2lnbigncHJvbXB0X3N1bW1hcnlzb3J0aW5nJywkdGhpcy0+TGFuZygncHJvbXB0X3N1bW1hcnlzb3J0aW5nJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3N1bW1hcnlzb3J0aW5nJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ3NvcnRieScsJHNvcnRpbmdzLC0xLCRzb3J0YnkpKTsKCiRzbWFydHktPmFzc2lnbignaW5wdXRfZGVsZXRlcHJvZHVjdGZpbGVzJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRZZXNOb0Ryb3Bkb3duKCRpZCwnZGVsZXRlcHJvZHVjdGZpbGVzJywKCQkJCQkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlbGV0ZXByb2R1Y3RmaWxlcycpKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ3ByZWZzLnRwbCcpOwoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_productstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCi8vCi8vIFNldHVwCi8vCiRwYWdlbGltaXRzID0gYXJyYXkoJzInPT4yLCc1Jz0+NSwnMjUnPT4yNSwnMTAwJz0+MTAwLCc1MDAnPT41MDApOwokc29ydGl0ZW1zID0gYXJyYXkoKTsKJHNvcnRpdGVtc1skdGhpcy0+TGFuZygncHJvZHVjdG5hbWUnKV0gPSAncHJvZHVjdF9uYW1lJzsKJHNvcnRpdGVtc1skdGhpcy0+TGFuZygncHJpY2UnKV0gPSAncHJpY2UnOwokc29ydGl0ZW1zWyR0aGlzLT5MYW5nKCd3ZWlnaHQnKV0gPSAnd2VpZ2h0JzsKJHNvcnRpdGVtc1skdGhpcy0+TGFuZygnY3JlYXRlZGRhdGUnKV0gPSAnY3JlYXRlX2RhdGUnOwokc29ydGl0ZW1zWyR0aGlzLT5MYW5nKCdtb2RpZmllZGRhdGUnKV0gPSAnbW9kaWZpZWRfZGF0ZSc7CiRzb3J0b3JkZXJzID0gYXJyYXkoKTsKJHNvcnRvcmRlcnNbJHRoaXMtPkxhbmcoJ2FzY2VuZGluZycpXSA9ICdhc2MnOwokc29ydG9yZGVyc1skdGhpcy0+TGFuZygnZGVzY2VuZGluZycpXSA9ICdkZXNjJzsKJGhpZXJhcmNoeSA9ICcnOwokY2hpbGRyZW4gID0gMDsKJHBhZ2VsaW1pdCA9IDI1Owokc29ydGJ5ICAgID0gJ2NyZWF0ZV9kYXRlJzsKJHNvcnRvcmRlciA9ICdkZXNjJzsKJHBhZ2VudW1iZXIgPSAxOwoKCi8vCi8vIEhhbmRsZSBHZXQgcGFyYW1ldGVycwovLwppZiggaXNzZXQoJHBhcmFtc1sncGFnZW51bWJlciddKSApCiAgewogICAgJHBhZ2VudW1iZXIgPSAoaW50KSRwYXJhbXNbJ3BhZ2VudW1iZXInXTsKICB9CgoKLy8KLy8gSGFuZGxlIGZvcm0gc3VibWl0Ci8vCmlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKQogIHsKICAgICRoaWVyYXJjaHkgPSB0cmltKCRwYXJhbXNbJ2lucHV0X2hpZXJhcmNoeSddKTsKICAgICRjaGlsZHJlbiA9IChpbnQpJHBhcmFtc1snaW5wdXRfY2hpbGRyZW4nXTsKICAgICRwYWdlbGltaXQgPSAoaW50KSRwYXJhbXNbJ2lucHV0X3BhZ2VsaW1pdCddOwogICAgJHNvcnRieSA9IHRyaW0oJHBhcmFtc1snaW5wdXRfc29ydGJ5J10pOwogICAgJHNvcnRvcmRlciA9IHRyaW0oJHBhcmFtc1snaW5wdXRfc29ydG9yZGVyJ10pOwogIH0KCgovLwovLyBCZWdpbiB0aGUgZm9ybQovLwokZmllbGRkZWZzID0gJHRoaXMtPkdldEZpZWxkRGVmcygpOwpmb3JlYWNoKCAkZmllbGRkZWZzIGFzICRvbmVkZWYgKQp7CiAgc3dpdGNoKCAkb25lZGVmLT50eXBlICkKICAgIHsKICAgIGNhc2UgJ3RleHRib3gnOgogICAgY2FzZSAnZHJvcGRvd24nOgogICAgICAkc29ydGl0ZW1zWyRvbmVkZWYtPnByb21wdF0gPSAnLUYtJy4kb25lZGVmLT5pZDsKICAgICAgYnJlYWs7CiAgICB9Cn0KCiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdkZWZhdWx0YWRtaW4nKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfaGllcmFyY2h5JywkdGhpcy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJGlkLCdpbnB1dF9oaWVyYXJjaHknLCRoaWVyYXJjaHkpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9jaGlsZHJlbicsJHRoaXMtPkNyZWF0ZUlucHV0WWVzTm9Ecm9wZG93bigkaWQsJ2lucHV0X2NoaWxkcmVuJywkY2hpbGRyZW4pKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zb3J0YnknLCR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnaW5wdXRfc29ydGJ5Jywkc29ydGl0ZW1zLC0xLCRzb3J0YnkpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zb3J0b3JkZXInLCR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnaW5wdXRfc29ydG9yZGVyJywkc29ydG9yZGVycywtMSwkc29ydG9yZGVyKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfcGFnZWxpbWl0JywkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2lucHV0X3BhZ2VsaW1pdCcsJHBhZ2VsaW1pdHMsLTEsJHBhZ2VsaW1pdCkpOwoKLy8KLy8gQnVpbGQgdGhlIHF1ZXJ5Ci8vCiRwcmVmaXgxID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0cyBwICI7CiRwcmVmaXgyID0gIlNFTEVDVCBjb3VudChwLmlkKSBBUyBjb3VudCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgcCAnOwokd2hlcmUgPSBhcnJheSgpOwokam9pbnMgPSBhcnJheSgpOwokcXBhcm1zID0gYXJyYXkoKTsKaWYoICFlbXB0eSgkaGllcmFyY2h5KSApCiAgewogICAgJGpvaW5zW10gPSAnTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHRvaGllciBwaCAKICAgICAgICAgICAgICAgICAgT04gcGgucHJvZHVjdF9pZCA9IHAuaWQnOwogICAgJGpvaW5zW10gPSAnTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IGgKICAgICAgICAgICAgICAgICAgT04gaC5pZCA9IHBoLmhpZXJhcmNoeV9pZCc7CiAgICAkd2hlcmVbXSA9ICdoLmxvbmdfbmFtZSBMSUtFID8nOwogICAgaWYoICRjaGlsZHJlbiApCiAgICAgIHsKCSRxcGFybXNbXSA9ICRoaWVyYXJjaHkuJyUnOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRxcGFybXNbXSA9ICRoaWVyYXJjaHk7CiAgICAgIH0KICB9Ci8vIGhhbmRsZSBmdW5reSBjdXN0b20gZmllbGQgc29ydCBvcmRlcnMKaWYoIHN0YXJ0c3dpdGgoJHNvcnRieSwnLUYtJykgKQogIHsKICAgICRmaWQgPSAoaW50KXN1YnN0cigkc29ydGJ5LDMpOwogICAgJGpvaW5zW10gPSAnTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIGZ2CiAgICAgICAgICAgICAgICAgIE9OIGZ2LnByb2R1Y3RfaWQgPSBwLmlkJzsKICAgICR3aGVyZVtdID0gJ2Z2LmZpZWxkZGVmX2lkID0gPyc7CiAgICAkcXBhcm1zW10gPSAkZmlkOwogICAgJG9yZGVyID0gIiBPUkRFUiBCWSBmdi52YWx1ZSAkc29ydG9yZGVyIjsKICB9CmVsc2UKICB7CiAgICAkb3JkZXIgPSAiIE9SREVSIEJZICRzb3J0YnkgJHNvcnRvcmRlciI7CiAgfQoKJHN0ciA9IGltcGxvZGUoJyAnLCRqb2lucyk7CmlmKCBjb3VudCgkd2hlcmUpICkKICB7CiAgICAkc3RyIC49ICcgV0hFUkUgJyAuIGltcGxvZGUoJyBBTkQgJywkd2hlcmUpIC4gJG9yZGVyOwogIH0KJHF1ZXJ5MSA9ICRwcmVmaXgxIC4gJHN0cjsKJHF1ZXJ5MiA9ICRwcmVmaXgyIC4gJHN0cjsKCi8vCi8vIFNldHVwIHN0YXJ0IGVsZW1lbnQsIGFuZCBjb3VudCBwYWdlcwovLwokdG90YWxjb3VudCA9ICRkYi0+R2V0T25lKCRxdWVyeTIsJHFwYXJtcyk7CiRwYWdlY291bnQgPSAoaW50KSgkdG90YWxjb3VudC8kcGFnZWxpbWl0KTsKaWYoICgkdG90YWxjb3VudCAlICRwYWdlbGltaXQpICE9IDAgKSAkcGFnZWNvdW50Kys7CiRzdGFydGVsZW1lbnQgPSAoJHBhZ2VudW1iZXItMSkgKiAkcGFnZWxpbWl0OwoKLy8KLy8gQmVnaW4gdGhlIG91dHB1dAovLwokc21hcnR5LT5hc3NpZ24oJ3BhZ2VudW1iZXInLCRwYWdlbnVtYmVyKTsKJHNtYXJ0eS0+YXNzaWduKCdwYWdlY291bnQnLCRwYWdlY291bnQpOwokc21hcnR5LT5hc3NpZ24oJ3RvdGFscm93cycsJHRvdGFsY291bnQpOwppZiggJHBhZ2VudW1iZXIgPiAxICkKICB7CiAgICAkcGFyYW1zWydwYWdlbnVtYmVyJ10gPSAxOwogICAgJHNtYXJ0eS0+YXNzaWduKCdmaXJzdHBhZ2VfdXJsJywKCQkgICAgJHRoaXMtPkNyZWF0ZVVSTCgkaWQsJ2RlZmF1bHRhZG1pbicsJycsJHBhcmFtcykpOwogICAgJHBhcmFtc1sncGFnZW51bWJlciddID0gJHBhZ2VudW1iZXIgLSAxOwogICAgJHNtYXJ0eS0+YXNzaWduKCdwcmV2cGFnZV91cmwnLAoJCSAgICAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnZGVmYXVsdGFkbWluJywnJywkcGFyYW1zKSk7CiAgfQppZiggJHBhZ2VudW1iZXIgPCAkcGFnZWNvdW50ICkKICB7CiAgICAkcGFyYW1zWydwYWdlbnVtYmVyJ10gPSAkcGFnZW51bWJlciArIDE7CiAgICAkc21hcnR5LT5hc3NpZ24oJ25leHRwYWdlX3VybCcsCgkJICAgICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLCRwYXJhbXMpKTsKICAgICRwYXJhbXNbJ3BhZ2VudW1iZXInXSA9ICRwYWdlY291bnQ7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2xhc3RwYWdlX3VybCcsCgkJICAgICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLCRwYXJhbXMpKTsKICB9CiRlbnRyeWFycmF5ID0gYXJyYXkoKTsJCiRkYnJlc3VsdCA9ICRkYi0+U2VsZWN0TGltaXQoJHF1ZXJ5MSwkcGFnZWxpbWl0LCRzdGFydGVsZW1lbnQsJHFwYXJtcyk7Ci8vZWNobyAiREVCVUc6IHNxbCA9ICIuJGRiLT5zcWwuJzxici8+JzsKCQp3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCiAgewogICAgJG9uZXJvdyA9ICR0aGlzLT5BcnJheVRvT2JqZWN0KCRyb3cpOwoKICAgICRvbmVyb3ctPmVkaXRfdXJsID0gJHRoaXMtPkNyZWF0ZVVSTCgkaWQsJzNkaXRwcm9kdWN0JywkcmV0dXJuaWQsCgkJCQkJIGFycmF5KCdjb21waWQnPT4kcm93WydpZCddKSk7CiAgICAkb25lcm93LT5hdHRyaWJzbGluayA9ICR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdlZGl0X2F0dHJpYnNldHMnLCRyZXR1cm5pZCwKCQkJCQkJICAkdGhpcy0+TGFuZygnZWRpdF9hdHRyaWJzZXRzJyksCgkJCQkJCSAgJ3RhYmxlX3JlbGF0aW9uc2hpcC5wbmcnLAoJCQkJCQkgIGFycmF5KCdjb21waWQnPT4kcm93WydpZCddKSk7CgogICAgJG9uZXJvdy0+ZWRpdGxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0cHJvZHVjdCcsICRyZXR1cm5pZCwgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsICR0aGlzLT5MYW5nKCdlZGl0JyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2NvbXBpZCc9PiRyb3dbJ2lkJ10pKTsKCQkKICAgICRvbmVyb3ctPmRlbGV0ZWxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdkZWxldGVwcm9kdWN0JywgJHJldHVybmlkLCAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+TGFuZygnZGVsZXRlJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2NvbXBpZCc9PiRyb3dbJ2lkJ10pLCAkdGhpcy0+TGFuZygnYXJleW91c3VyZV9kZWxldGVwcm9kdWN0JykpOwoJCQogICAgJGVudHJ5YXJyYXlbXSA9ICRvbmVyb3c7CiAgfQoJCiR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2l0ZW1zJywgJGVudHJ5YXJyYXkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2l0ZW1jb3VudCcsIGNvdW50KCRlbnRyeWFycmF5KSk7CgkKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhZGRsaW5rJywgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRkcHJvZHVjdCcsICRyZXR1cm5pZCwgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdmb2xkZXIuZ2lmJywgJHRoaXMtPkxhbmcoJ2FkZHByb2R1Y3QnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgpLCAnJywgZmFsc2UsIGZhbHNlLCAnJykgLicgJy4gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRkcHJvZHVjdCcsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2FkZHByb2R1Y3QnKSwgYXJyYXkoKSwgJycsIGZhbHNlLCBmYWxzZSwgJ2NsYXNzPSJwYWdlb3B0aW9ucyInKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lkdGV4dCcsJHRoaXMtPkxhbmcoJ2lkJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Byb2R1Y3R0ZXh0JywgJHRoaXMtPkxhbmcoJ3Byb2R1Y3QnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigncHJpY2V0ZXh0JywgJHRoaXMtPkxhbmcoJ3ByaWNlJykpOwokc21hcnR5LT5hc3NpZ24oJ3dlaWdodF91bml0cycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Byb2R1Y3RzX3dlaWdodHVuaXRzJykpOwokc21hcnR5LT5hc3NpZ24oJ3dlaWdodHRleHQnLCR0aGlzLT5MYW5nKCd3ZWlnaHQnKSk7CgkKI0Rpc3BsYXkgdGVtcGxhdGUKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdwcm9kdWN0bGlzdC50cGwnKTsKCi8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_templatestabs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdCgpOwoKaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oICdNb2RpZnkgVGVtcGxhdGVzJyApICkKewogIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdzdW1tYXJ5X3RlbXBsYXRlJywgJHBhcmFtcyk7CiAgewogICAgZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsJHJldHVybmlkLCdzdW1tYXJ5XycsCgkJCQkgUFJPRFVDVFNfUFJFRl9ORVdTVU1NQVJZX1RFTVBMQVRFLAoJCQkJICdzdW1tYXJ5X3RlbXBsYXRlJywKCQkJCSBQUk9EVUNUU19QUkVGX0RGTFRTVU1NQVJZX1RFTVBMQVRFLAoJCQkJICR0aGlzLT5MYW5nKCdzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCcpKTsKICB9CiAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CgkKCiAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2RldGFpbF90ZW1wbGF0ZScsICRwYXJhbXMpOwogIHsKICAgIGVjaG8gJHRoaXMtPlNob3dUZW1wbGF0ZUxpc3QoJGlkLCRyZXR1cm5pZCwnZGV0YWlsXycsCgkJCQkgUFJPRFVDVFNfUFJFRl9ORVdERVRBSUxfVEVNUExBVEUsCgkJCQkgJ2RldGFpbF90ZW1wbGF0ZScsCgkJCQkgUFJPRFVDVFNfUFJFRl9ERkxUREVUQUlMX1RFTVBMQVRFLAoJCQkJICR0aGlzLT5MYW5nKCdkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0JykpOwogIH0KICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKCgogIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdieWhpZXJhcmNoeV90ZW1wbGF0ZScsICRwYXJhbXMpOwogIHsKICAgIGVjaG8gJHRoaXMtPlNob3dUZW1wbGF0ZUxpc3QoJGlkLCRyZXR1cm5pZCwnYnloaWVyYXJjaHlfJywKCQkJCSBQUk9EVUNUU19QUkVGX05FV0JZSElFUkFSQ0hZX1RFTVBMQVRFLAoJCQkJICdieWhpZXJhcmNoeV90ZW1wbGF0ZScsCgkJCQkgUFJPRFVDVFNfUFJFRl9ERkxUQllISUVSQVJDSFlfVEVNUExBVEUsCgkJCQkgJHRoaXMtPkxhbmcoJ2J5aGllcmFyY2h5dGVtcGxhdGVfYWRkZWRpdCcpKTsKICB9CiAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CgoKICBlY2hvICR0aGlzLT5TdGFydFRhYignY2F0ZWdvcnlsaXN0X3RlbXBsYXRlJywgJHBhcmFtcyk7CiAgewogICAgZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsJHJldHVybmlkLCdjYXRlZ29yeWxpc3RfJywKCQkJCSBQUk9EVUNUU19QUkVGX05FV0NBVEVHT1JZTElTVF9URU1QTEFURSwKCQkJCSAnY2F0ZWdvcnlsaXN0X3RlbXBsYXRlJywKCQkJCSBQUk9EVUNUU19QUkVGX0RGTFRDQVRFR09SWUxJU1RfVEVNUExBVEUsCgkJCQkgJHRoaXMtPkxhbmcoJ2NhdGVnb3J5bGlzdHRlbXBsYXRlX2FkZGVkaXQnKSk7CiAgfQogIGVjaG8gJHRoaXMtPkVuZFRhYigpOwoKCiAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2RlZmF1bHRfdGVtcGxhdGVzJyk7CiAgewogICAgJGlucHV0X3N1bW1hcnl0ZW1wbGF0ZSA9CiAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXU1VNTUFSWV9URU1QTEFURSk7CiAgICAkaW5wdXRfZGV0YWlsdGVtcGxhdGUgPQogICAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV0RFVEFJTF9URU1QTEFURSk7CiAgICAkaW5wdXRfYnloaWVyYXJjaHl0ZW1wbGF0ZSA9CiAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXQllISUVSQVJDSFlfVEVNUExBVEUpOwogICAgJGlucHV0X2NhdGVnb3J5bGlzdHRlbXBsYXRlID0KICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ORVdDQVRFR09SWUxJU1RfVEVNUExBVEUpOwoKICAgICRzbWFydHktPmFzc2lnbignaW5mb19kZmx0X3RlbXBsYXRlJywKCQkgICAgJHRoaXMtPkxhbmcoJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJykpOwoKICAgICRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywKCQkgICAgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX3NldGRmbHR0ZW1wbGF0ZXMnLAoJCQkJCSAgICRyZXR1cm5pZCkpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywKCQkgICAgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CgogICAgJHNtYXJ0eS0+YXNzaWduKCdsZWdlbmRfc3VtbWFyeXRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkxhbmcoJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfc3VtbWFyeXRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkxhbmcoJ3Byb21wdF90ZW1wbGF0ZScpKTsKICAgICRzbWFydHktPmFzc2lnbignaW5wdXRfc3VtbWFyeXRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCRpZCwkaW5wdXRfc3VtbWFyeXRlbXBsYXRlLAoJCQkJCSAgJ2lucHV0X3N1bW1hcnl0ZW1wbGF0ZScpKTsKICAgICRzbWFydHktPmFzc2lnbignc3VibWl0X3N1bW1hcnl0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdF9zdW1tYXJ5dGVtcGxhdGUnLAoJCQkJCSAgICAgJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3Jlc2V0X3N1bW1hcnl0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3Jlc2V0X3N1bW1hcnl0ZW1wbGF0ZScsCgkJCQkJICAgICAkdGhpcy0+TGFuZygncmVzZXR0b2ZhY3RvcnknKSkpOwoKICAgICRzbWFydHktPmFzc2lnbignbGVnZW5kX2RldGFpbHRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkxhbmcoJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9kZXRhaWx0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5MYW5nKCdwcm9tcHRfdGVtcGxhdGUnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X2RldGFpbHRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCRpZCwkaW5wdXRfZGV0YWlsdGVtcGxhdGUsCgkJCQkJICAnaW5wdXRfZGV0YWlsdGVtcGxhdGUnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdF9kZXRhaWx0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdF9kZXRhaWx0ZW1wbGF0ZScsCgkJCQkJICAgICAkdGhpcy0+TGFuZygnc3VibWl0JykpKTsKICAgICRzbWFydHktPmFzc2lnbigncmVzZXRfZGV0YWlsdGVtcGxhdGUnLAoJCSAgICAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdyZXNldF9kZXRhaWx0ZW1wbGF0ZScsCgkJCQkJICAgICAkdGhpcy0+TGFuZygncmVzZXR0b2ZhY3RvcnknKSkpOwoKCiAgICAkc21hcnR5LT5hc3NpZ24oJ2xlZ2VuZF9ieWhpZXJhcmNoeXRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkxhbmcoJ3RpdGxlX2J5aGllcmFyY2h5X2RmbHR0ZW1wbGF0ZScpKTsKICAgICRzbWFydHktPmFzc2lnbigncHJvbXB0X2J5aGllcmFyY2h5dGVtcGxhdGUnLAoJCSAgICAkdGhpcy0+TGFuZygncHJvbXB0X3RlbXBsYXRlJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9ieWhpZXJhcmNoeXRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCRpZCwkaW5wdXRfYnloaWVyYXJjaHl0ZW1wbGF0ZSwKCQkJCQkgICdpbnB1dF9ieWhpZXJhcmNoeXRlbXBsYXRlJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXRfYnloaWVyYXJjaHl0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdF9ieWhpZXJhcmNoeXRlbXBsYXRlJywKCQkJCQkgICAgICR0aGlzLT5MYW5nKCdzdWJtaXQnKSkpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdyZXNldF9ieWhpZXJhcmNoeXRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwncmVzZXRfYnloaWVyYXJjaHl0ZW1wbGF0ZScsCgkJCQkJICAgICAkdGhpcy0+TGFuZygncmVzZXR0b2ZhY3RvcnknKSkpOwogICAgCgogICAgJHNtYXJ0eS0+YXNzaWduKCdsZWdlbmRfY2F0ZWdvcnlsaXN0dGVtcGxhdGUnLAoJCSAgICAkdGhpcy0+TGFuZygndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZScpKTsKICAgICRzbWFydHktPmFzc2lnbigncHJvbXB0X2NhdGVnb3J5bGlzdHRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkxhbmcoJ3Byb21wdF90ZW1wbGF0ZScpKTsKICAgICRzbWFydHktPmFzc2lnbignaW5wdXRfY2F0ZWdvcnlsaXN0dGVtcGxhdGUnLAoJCSAgICAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsJGlkLCRpbnB1dF9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSwKCQkJCQkgICdpbnB1dF9jYXRlZ29yeWxpc3R0ZW1wbGF0ZScpKTsKICAgICRzbWFydHktPmFzc2lnbignc3VibWl0X2NhdGVnb3J5bGlzdHRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnc3VibWl0X2NhdGVnb3J5bGlzdHRlbXBsYXRlJywKCQkJCQkgICAgICR0aGlzLT5MYW5nKCdzdWJtaXQnKSkpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdyZXNldF9jYXRlZ29yeWxpc3R0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3Jlc2V0X2NhdGVnb3J5bGlzdHRlbXBsYXRlJywKCQkJCQkgICAgICR0aGlzLT5MYW5nKCdyZXNldHRvZmFjdG9yeScpKSk7CiAgICAKICAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZGZsdF90ZW1wbGF0ZXMudHBsJyk7CiAgfQogIGVjaG8gJHRoaXMtPkVuZFRhYigpOwoKfQoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/icons/</filename>
	  <isdir>1</isdir>
	</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[PD9waHAKIyBBCiRsYW5nWydhZGQnXSA9ICdBZGQnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdBZGQgQSBDYXRlZ29yeSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0FkZCBBIEZpZWxkJzsKJGxhbmdbJ2FkZHByb2R1Y3QnXSA9ICdBZGQgQSBQcm9kdWN0JzsKJGxhbmdbJ2FkZF9hdHRyaWJfc2V0J10gPSAnQWRkIEF0dHJpYnV0ZSc7CiRsYW5nWydhZGRfaGllcmFyY2h5X2l0ZW0nXSA9ICdBZGQgSGllcmFyY2h5IEl0ZW0nOwokbGFuZ1snYWRkX29wdGlvbiddID0gJ0FkZCBBdHRyaWJ1dGUgT3B0aW9uJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdDYW4gb25seSBhZG1pbnMgc2VlIHRoaXMgYXR0cmlidXRlPyc7CiRsYW5nWydhbGxjYXRlZ29yaWVzJ10gPSAnQWxsIENhdGVnb3JpZXMnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0FyZSBZb3UgU3VyZT8nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVwcm9kdWN0J10gPSAnQXJlIHlvdSBzdXJlIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBwcm9kdWN0LCBhbmQgYWxsIG9mIHRoZSBhY2NvbXBhbnlpbmcgaW5mb3JtYXRpb24gZm9yIGl0Pyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdBc2NlbmRpbmcnOwokbGFuZ1snYXR0cmlidXRlX25hbWUnXSA9ICdBdHRyaWJ1dGUgTmFtZSc7CgojIEIKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVzJ10gPSAnSGllcmFyY2h5IFJlcG9ydCBUZW1wbGF0ZXMnOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgSGllcmFyY2h5IFJlcG9ydCBUZW1wbGF0ZSc7CgojIEMKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnQ2F0ZWdvcmllcyc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0NhdGVnb3J5JzsKJGxhbmdbJ2NhdGVnb3J5ZXhpc3RzJ10gPSAnQSBjYXRlZ29yeSBieSB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVzJ10gPSAnQ2F0ZWdvcnlMaXN0IFRlbXBsYXRlcyc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgQSBDYXRlZ29yeUxpc3QgVGVtcGxhdGUnOwokbGFuZ1snY2hhbmdlbG9nJ10gPSA8PDxFT1QKPHVsPgo8bGk+VmVyc2lvbiAxLjAgLSBEZWNlbWJlciwgMjAwNwogICA8cD5Jbml0aWFsIFJlbGVhc2U8L3A+CjwvbGk+CjxsaT5WZXJzaW9uIDEuMC4xIC0gSmFudWFyeSwgMjAwOAogICA8dWw+CiAgICAgPGxpPkFkZHMgcGFnaW5hdGlvbiBpbiBzdW1tYXJ5IHZpZXc8L2xpPgogICAgIDxsaT5GaXhlcyBhIHByb2JsZW0gd2l0aCBkdXBsaWNhdGUgbGlua3MgaW4gc3VtbWFyeSB2aWV3PC9saT4KICAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4wIC0gQXByaWwsIDIwMDgKICA8dWw+CiAgICAgPGxpPkFkZHMgaGllcmFyY2hpY2FsIGNhdGVnb3JpZXMgYXMgd2VsbCBhcyB0aGUgb3JpZ2luYWwgJ3RhZycgYmFzZWQgY2F0ZWdvcmllcy48YnIvPgogICAgICAgICBIaWVyYXJjaGljYWwgY2F0ZWdvcmllcyBjYW4gaGF2ZSBhbiBpbWFnZSBhcyB3ZWxsIGFzIGEgZGVzY3JpcHRpb24uPC9saT4KICAgICA8bGk+QWRkcyBtb3JlIGN1c3RvbSBmaWVsZCB0eXBlcyAoaW1hZ2UsIGRyb3Bkb3duKTxici8+CiAgICAgICAgIEluY2x1ZGluZyB0aHVtYm5haWwgZ2VuZXJhdGlvbi48L2xpPgogICAgIDxsaT5SZW1vdmUgdGhlIG9yaWdpbmFsIGltYWdlIGZpZWxkczwvbGk+CiAgICAgPGxpPkFkZHMgU2VhcmNoIG1vZHVsZSBjYXBhYmlsaXR5PC9saT4KICAgICA8bGk+QWRkcyBhIGhpZXJhcmNoaWNhbCBjYXRlZ29yeSB2aWV3IHdpdGggZHJpbGwgZG93biBzdXBwb3J0PC9saT4KICAgICA8bGk+TXVjaCwgbXVjaCBtb3JlPC9saT4KICA8L3VsPgo8L2xpPgo8L3VsPgpFT1Q7CiRsYW5nWydjaGVja2JveCddID0gJ0NoZWNrYm94JzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX2hpZXJhcmNoeV9ub2RlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vZGU/ICBBbnkgcHJvZHVjdHMgdGhhdCBhcmUgdXNpbmcgdGhpcyBub2RlIHdpbGwgYmUgc2V0IHRvIG5vIGhpZXJhcmNoeSc7CiRsYW5nWydjcmVhdGVkZGF0ZSddID0gJ0NyZWF0ZWQgRGF0ZSc7CiRsYW5nWydjdXJyZW50X3ZhbHVlJ10gPSAnQ3VycmVudCBWYWx1ZSc7CgojIEQKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdEZWZhdWx0IFRlbXBsYXRlcyc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlX25vdGljZSddID0gPDw8RU9UCjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhlIGNvbnRlbnRzIG9mIHRoZXNlIHRleHQgYXJlYXMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGNvbnRlbnQgb2YgdGVtcGxhdGVzIHdoZW4geW91IGNsaWNrICZxdW90O0FkZCBUZW1wbGF0ZSZxdW90OyBpbiB0aGUgYXBwcm9wcmlhdGUgdGVtcGxhdGUgdGFiLiAgRWRpdGluZyBvbmUgb2YgdGhlc2UgdGV4dCBhcmVhcyB3aWxsIGhhdmUgbm8gaW1tZWRpYXRlIGVmZmVjdCBvbiB5b3VyIHdlYnNpdGUuCkVPVDsKJGxhbmdbJ2RlbGV0ZSddID0gJ0RlbGV0ZSc7CiRsYW5nWydkZWxldGVfYXR0cmlic2V0J10gPSAnRGVsZXRlIEF0dHJpYnV0ZSc7CiRsYW5nWydkZWxldGVfaGllcmFyY2h5X2l0ZW0nXSA9ICdEZWxldGUgSGllcmFyY2h5IEl0ZW0nOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ0Rlc2NlbmRpbmcnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdEZXNjcmlwdGlvbic7CiRsYW5nWydkZXRhaWxzJ10gPSAnRGV0YWlscyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdEZXRhaWwgVGVtcGxhdGVzJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBBIERldGFpbCBUZW1wbGF0ZSc7CiRsYW5nWydkaXNhYmxlZCddID0gJ0Rpc2FibGVkJzsKJGxhbmdbJ2RyYWZ0J10gPSAnRHJhZnQnOwokbGFuZ1snZHJvcGRvd24nXSA9ICdEcm9wZG93bic7CiRsYW5nWydkcm9wZG93bl9vcHRpb25zJ10gPSAnRHJvcGRvd24gT3B0aW9ucyA8ZW0+KGFwcGxpY2FibGUgb25seSBmb3IgZHJvcGRvd24gZmllbGRzKTwvZW0+PGJyLz48YnIvPjxlbT4ob25lIGVudHJ5IHBlciBsaW5lKTwvZW0+JzsKCiMgRQokbGFuZ1snZWRpdCddID0gJ0VkaXQnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzJ10gPSAnRWRpdCBBdHRyaWJ1dGUgU2V0cyc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHNfZm9yJ10gPSAnRWRpdCBBdHRyaWJ1dGUgU2V0cyBGb3InOwokbGFuZ1snZWRpdF9hdHRyaWJ1dGVzJ10gPSAnRWRpdCBBdHRyaWJ1dGVzJzsKJGxhbmdbJ2VkaXRfaGllcmFyY2h5X2l0ZW0nXSA9ICdFZGl0IEhpZXJhcmNoeSBJdGVtJzsKJGxhbmdbJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnXSA9ICdBbiBhdHRyaWJ1dGUgd2l0aCB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmVudCddID0gJ0ludmFsaWQgUGFyZW50IChhIGhpZXJhcmNoeSBub2RlIGNhbm5vdCBiZSBpdFwncyBvd24gcGFyZW50KSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX25hbWUnXSA9ICdUaGUgY3VzdG9tIGZpZWxkIHZhbHVlIGVudGVyZWQgaXMgaW52YWxpZCAoY29udGFpbnMgbm9uIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzKSc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdBIHJlcXVpcmVkIHBhcmFtZXRlciBpcyBtaXNzaW5nIG9yIGludmFsaWQnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9uYW1ldXNlZCddID0gJ0EgcHJvZHVjdCBieSB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snZXJyb3JfcHJpY2VfYWRqdXN0bWVudCddID0gJ0ludmFsaWQgcHJpY2UgYWRqdXN0bWVudCB2YWx1ZSBmb3IgaXRlbSAlcyc7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnVXBsb2FkIGZhaWxlZDogJXMnOwoKIyBGCiRsYW5nWydmaWVsZCddID0gJ0ZpZWxkJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRmllbGQgRGVmaW5pdGlvbic7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdGaWVsZCBEZWZpbml0aW9ucyc7CiRsYW5nWydmaWxlJ10gPSAnRmlsZSc7CiRsYW5nWydmaWx0ZXJzJ10gPSAnRmlsdGVycyc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICcmbHQ7Jmx0Oyc7CgojIEcKIyBICiRsYW5nWydoZWxwJ10gPSA8PDxFT1QKPGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgd2F5IHRvIGNvbGxlY3QsIG9yZ2FuaXplLCBhbmQgZGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCBwcm9kdWN0cyBhbmQgdGhlaXIgY2F0ZWdvcmllcy4gIFRoaXMgbW9kdWxlIGNhbiBzdGFuZCBvbiBpdHMgb3duLCBvciBiZSBwYXJ0IG9mIGFuIGUtY29tbWVyY2Ugc29sdXRpb24gaWYgeW91IHdpc2guICBUaGUgbW9kdWxlIHN1cHBvcnRzIGEgcHJvZHVjdCBleGlzdGluZyBpbiBtb3JlIHRoYW4gb25lIGNhdGVnb3J5LCBzdXBwb3J0cyBwcm9kdWN0IHdlaWdodCwgcHJpY2UsIGFuZCBhdHRyaWJ1dGUgc2V0cy4gIEVhY2ggaXRlbSBpbiBhbiBhdHRyaWJ1dGUgc2V0IGNhbiBoYXZlIGEgcHJpY2UgYWRqdXN0bWVudC4gIEFsc28gYSBnbG9iYWwgZmxhZyBpbmRpY2F0ZXMgd2V0aGVyIHRoZSBwcm9kdWN0IGlzICd0YXhhYmxlJyBvciBub3QuPC9wPgogIDxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGZvciB1cCB0byB0d28gaW1hZ2VzIHBlciBwcm9kdWN0LCBjdXN0b20gZmllbGQgZGVmaW5pdGlvbnMsIGFuZCBmb3IgdGhlIGFiaWxpdHkgdG8gZGVzY3JpbWluYXRlIHByaXZhdGUgZnJvbSBwdWJsaWMgZGF0YS48L3A+CjxoMz5GZWF0dXJlczo8L2gzPgo8dWw+CiAgPGxpPk51bWVyb3VzIFZpZXdzPC9saT4KICAgIDx1bD4KICAgICAgPGxpPlN1bW1hcnkgdmlldzwvbGk+CiAgICAgIDxsaT5DYXRlZ29yeSBMaXN0IFZpZXc8L2xpPgogICAgICA8bGk+RGV0YWlsIHZpZXc8L2xpPiAKICAgICAgPGxpPkhpZXJhcmNoeSBEcmlsbC1kb3duIFZpZXc8L2xpPgogICAgPC91bD4KICA8bGk+RW50aXJlbHkgRGF0YWJhc2UgVGVtcGxhdGUgRHJpdmVuPC9saT4KICA8cD5OdW1lcm91cyB0ZW1wbGF0ZXMgb2YgZWFjaCB0eXBlIGNhbiBiZSBkZWZpbmVkLCBkZWZhdWx0cyBzcGVjaWZpZWQgZm9yIGVhY2ggdHlwZSwgYW5kIHRoZSB0ZW1wbGF0ZSB1c2VkIGZvciBlYWNoIHBhcnRpY3VsYXIgdmlldyBjYW4gYmUgc3BlY2lmaWVkIGFzIGEgcGFyYW1ldGVyPC9wPgogIDxsaT5Tb3J0aW5nIGFuZCBwYWdpbmF0aW9uIGluIHRoZSBzdW1tYXJ5IHZpZXc8L2xpPgogIDxsaT5Qcm9kdWN0cyBjYW4gZXhpc3QgaW4gbXVsdGlwbGUgY2F0ZWdvcmllczwvbGk+CiAgPGxpPk51bWVyb3VzIGN1c3RvbSBmaWVsZHMgY2FuIGJlIGRlZmluZWQsIGluY2x1ZGluZyBpbWFnZXM8L2xpPgogIDxsaT5BdXRvbWF0aWMgdGh1bWJuYWlsIGNyZWF0aW9uPC9saT4KICA8bGk+QWRtaW4gZGVmaW5lZCBmaWVsZHM8L2xpPgogIDxsaT5Qcm9kdWN0IGF0dHJpYnV0ZXMgKGluY2x1ZGluZyBwcmljZSBhZGp1c3RtZW50KTwvbGk+CiAgPGxpPldlaWdodCBhbmQgdGF4YWJsZSBmaWVsZHMgKGZvciB1c2UgaW4gZS1jb21tZXJjZSBzb2x1dGlvbnMpPC9saT4KICA8bGk+UHJvZHVjdHMgY2FuIGhhdmUgYSBzdGF0dXMgKHB1Ymxpc2hlZCBvciBkcmFmdCkgaW4gb3JkZXIgdG8gaGlkZSBwcm9kdWN0cyBmcm9tIHB1YmxpYyBkaXNwbGF5IGF0IGFueSB0aW1lPC9saT4KICA8bGk+UHJldHR5IFVSTCBTdXBwb3J0PC9saT4KICA8bGk+PHN0cm9uZz5Nb3JlLi4uPC9zdHJvbmc+PC9saT4KPC91bD4KCjxoMz5Ib3cgRG8gSSBVc2UgSXQ6PC9oMz4KPHVsPgo8bGk+U2V0IHByZWZlcmVuY2VzPC9saT4KPHA+VXN1YWxseSB0aGlzIGlzIGp1c3QgYSBmb3JtYWxpdHkuICBZb3Ugc2hvdWxkIHNwZWNpZnkgeW91ciBkZWZhdWx0IHdlaWdodCB1bml0cywgYW5kIHlvdXIgZGVmYXVsdCBjdXJyZW5jeSBzeW1ib2wgZm9yIHlvdXIgbG9jYWwgZW52aXJvbm1lbnQuPC9wPgo8bGk+U2V0dXAgdXNlcnMgYW5kIHBlcm1pc3Npb25zPC9saT4KPHA+VGhpcyBtb2R1bGUgdXNlcyB0aGUgJ01vZGlmeSBUZW1wbGF0ZXMnIHBlcm1pc3Npb24gdG8gYWxsb3cgdXNlcnMgdG8gYmUgYWJsZSB0byBtb2RpZnkgdGhlIHZhcmlvdXMgdGVtcGxhdGVzIHRoYXQgY2FuIGJlIHVzZWQgYnkgdGhpcyBtb2R1bGUuICBBcyB3ZWxsLCB0aGUgJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJyBwZXJtaXNzaW9uIGlzIG5lZWRlZCB0byBiZSBhYmxlIHRvIGFkanVzdCB0aGUgbW9kdWxlcyBwcmVmZXJlbmNlcy4gIEluIG9yZGVyIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbW9kaWZ5IGZpZWxkIGRlZmluaXRpb25zLCBjYXRlZ29yaWVzLCBvciBwcm9kdWN0cywgeW91ciB1c2VycyB3aWxsIG5lZWQgdGhlICdNb2RpZnkgUHJvZHVjdHMnIHBlcm1pc3Npb24uPC9wPgo8bGk+KG9wdGlvbmFsKSBEZWZpbmUgb25lIG9yIG1vcmUgY2F0ZWdvcmllczwvbGk+CjxwPlRoaXMgaXMgYW4gb3B0aW9uYWwgc3RlcCwgYnV0IHlvdSB3aWxsIHByb2JhYmx5IHdhbnQgdG8gZG8gdGhpcyBlYXJseSB0byBwcmV2ZW50IGhhdmluZyB0byBnbyBiYWNrIHRvIG1vZGlmeSBlYWNoIGFuZCBldmVyeSBwcm9kdWN0IGxhdGVyLiAgQWRkaW5nIGEgY2F0ZWdvcnkgaXMgYXMgc2ltcGxlIGFzIGNsaWNraW5nIG9uIHRoZSAnQ2F0ZWdvcmllcycgdGFiIGluIHRoZSBQcm9kdWN0IE1hbmFnZXJzIGFkbWluIHNlY3Rpb24sIGFuZCBjbGlja2luZyAnQWRkIEEgQ2F0ZWdvcnknLiAgRnJvbSB0aGVyZSB5b3Ugd2lsbCBiZSBwcm9tcHRlZCBmb3IgYSBjYXRlZ29yeSBuYW1lLjwvcD4KPGxpPihvcHRpb25hbCkgRGVmaW5lIG9uZSBvciBtb3JlIGN1c3RvbSBmaWVsZHM8L2xpPgo8cD5UaGlzIGlzIGFuIG9wdGlvbmFsIHN0ZXAuICBDdXN0b20gZmllbGRzIGFyZSBub3QgbmVlZGVkIGlmIHRoaXMgbW9kdWxlIHN1aXRzIHlvdSBleGFjdGx5IGFzIGl0IGlzLiAgSG93ZXZlciBpZiB5b3Ugd291bGQgbGlrZSB0byBzdG9yZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZvciBlYWNoIG9mIHlvdXIgcHJvZHVjdHMgeW91IGNhbiBjcmVhdGUgY3VzdG9tIGZpZWxkcy4gIENyZWF0aW5nIGN1c3RvbSBmaWVsZHMgaXMgc2ltaWxhciB0byBjcmVhdGluZyBjYXRlZ29yaWVzLCBleGNlcHQgdGhhdCBtb3JlIGRhdGEgaXMgcmVxdWVzdGVkLjwvcD4KPHA+Q3VycmVudGx5IG9ubHkgdGhyZWUgdHlwZXMgb2YgY3VzdG9tIGZpZWxkcyBhcmUgYXZhaWxhYmxlOiAndGV4dGJveCcsJ2NoZWNrYm94JyxhbmQgJ3RleHRhcmVhLCBkcm9wZG93biwgYW5kIGZpbGUnLiAgU2VsZWN0IG9uZSBvZiB0aGVzZSwgZ2l2ZSB5b3VyIG5ldyBmaWVsZCBhIG5hbWUsIGFuZCBpbmRpY2F0ZSB3ZXRoZXIgdGhhdCBmaWVsZCBzaG91bGQgYmUgdmlzaWJsZSB0byB0aGUgcHVibGljIGluIHRoZSB2YXJpb3VzIHZpZXdzLiAgVGhlbiBoaXQgc3VibWl0PC9wPgo8bGk+Q3JlYXRlIG9uZSBvciBtb3JlIHByb2R1Y3RzPC9saT4KPHA+WW91IHNob3VsZCBjcmVhdGUgb25lIG9yIG1vcmUgcHJvZHVjdHMgdG8gZGlzcGxheSBpbiB5b3VyIHdlYnNpdGUgY29udGVudC4gIEdpdmUgZWFjaCBwcm9kdWN0IGEgbmFtZSwgYSBwcmljZSAob3B0aW9uYWwpIGEgd2VpZ2h0IChvcHRpb25hbCksIGEgc3RhdHVzIChkcmFmdCBvciBwdWJsaXNoZWQpLCBhbmQgc29tZSBpbmZvcm1hdGlvbi4gIEFkZGl0aW9uYWxseSwgeW91IGNhbiBzcGVjaWZ5IGlmIHRoZSBwcm9kdWN0IGlzIHRheGFibGUsIGFuZCBpdCdzIHdlaWdodC48L3A+CjxwPklmIGNhdGVnb3JpZXMgYXJlIGRlZmluZWQsIHRoZW4gYSBjaGVja2JveCB3aWxsIGFwcGVhciBmb3IgZWFjaCBkZWZpbmVkIGNhdGVnb3J5LiAgWW91IGNhbiBzaW1wbHkgY2xpY2sgdGhlIGNoZWNrYm94IGZpZWxkcyBmb3IgZWFjaCBjYXRlZ29yeSB0aGF0IHRoaXMgcHJvZHVjdCBzaG91bGQgYmVsb25nIHRvLjwvcD4KPHA+SWYgY3VzdG9tIGZpZWxkcyBhcmUgZGVmaW5lZCwgdGhlbiBpbnB1dCBmaWVsZHMgYXBwcm9wcmlhdGUgdG8gdGhlIHR5cGUgb2YgY3VzdG9tIGZpZWxkIHdpbGwgYXBwZWFyIGFuZCBhbGxvdyB5b3UgdG8gc3BlY2lmeSBkYXRhIGZvciBlYWNoIG9mIHRoZW0uICBUaGlzIGRhdGEgaXMgb3B0aW9uYWwuPC9wPgo8bGk+QWRkIHRoZSBhcHByb3ByaWF0ZSB0YWdzIGludG8geW91ciBwYWdlIHRlbXBsYXRlcyBvciBwYWdlIGNvbnRlbnQ8L2xpPgo8cD5UaGlzIGNhbiBiZSBhcyBzaW1wbGUgYXMgYWRkaW5nIHRoZSA8c3Ryb25nPntQcm9kdWN0c308L3N0cm9uZz4gdGFnIGludG8gdGhlIGNvbnRlbnQgYXJlYSBvZiBvbmUgb2YgeW91ciBwYWdlcywgb3IgaW50byB5b3VyIHBhZ2UgdGVtcGxhdGUuPC9wPgo8cD5JZiB5b3Ugd2lzaCB0byBhbHRlciB0aGUgYmVoYXZpb3VyIG9mIHRoaXMgYXBwbGljYXRpb24gZnJvbSBpdHMgZGVmYXVsdCwgeW91IGNhbiBkbyB0aGF0IGJ5IGFkZGluZyBvbmUgb3IgbW9yZSBwYXJhbWV0ZXJzIHRvIHRoZSA8c3Ryb25nPntQcm9kdWN0c308L3N0cm9uZz4gdGFnLiAgVGhlIGNvbXBsZXRlIGxpc3Qgb2YgcGFyYW1ldGVycyBhbmQgdGhlaXIgYmVoYXZpb3VyIGlzIGxpc3RlZCBiZWxvdy4gIEJ1dCBmb3IgZXhhbXBsZSwgdG8gZGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdHMgaW4gYSBzaW5nbGUsIGV4aXN0aW5nIGNhdGVnb3J5LCB5b3UgY291bGQgdXNlIGEgdGFnIGxpa2UgPGNvZGU+e1Byb2R1Y3RzIGNhdGVnb3J5PSdjYXRlZ29yeW5hbWUnfTwvY29kZT48L3A+CjwvdWw+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuICBIb3dldmVyIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzIG9yIHRvIGZpbGUgYSBidWcgcmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIGNtcyBtYWRlIHNpbXBsZSA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5EZXZlbG9wZXJzIEZvcmdlPC9hPiBhbmQgZG8gYSBzZWFyY2ggZm9yICdQcm9kdWN0cyc8L2xpPgo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+Um9iZXJ0IENhbXBiZWxsPC9hPi48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3Jtcy48L2E+PC9saT4KPGxpPkZvciBzb21lIHF1ZXN0aW9ucyBhbmQgbGltaXRlZCB0ZWNobmljYWwgc3VwcG9ydCwgdGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8L3VsPgpFT1Q7CiRsYW5nWydoaWVyYXJjaHknXSAgPSAnSGllcmFyY2h5JzsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gJ0hpZXJhcmNoeSBQb3NpdGlvbic7CgojIEkKJGxhbmdbJ2lkJ10gPSAnSWQnOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnSW1hZ2UnOwokbGFuZ1snaW5jbHVkZV9jaGlsZHJlbiddID0gJ0luY2x1ZGUgQ2hpbGRyZW4/JzsKJGxhbmdbJ2luZm9fYWxudW1vbmx5J10gPSAnT25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycy4gTm8gd2hpdGVzcGFjZSwgcXVvdGVzLCBvciBub24gbGV0dGVyL251bWJlciBjb21iaW5hdGlvbnMnOwokbGFuZ1snaW5mb19maWVsZHByb2JsZW1zJ10gPSAnUHJvYmxlbXMgd2VyZSBlbmNvdW50ZXJlZCB3aGVuIGRlYWxpbmcgd2l0aCBvbmUgb3IgbW9yZSBjdXN0b20gZmllbGRzLiAgVGhlIGFjdGlvbiBoYXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSwgaG93ZXZlciB5b3Ugc2hvdWxkIGludmVzdGlnYXRlIGFuZCBjb3JyZWN0IHRoZXNlIHByb2JsZW1zJzsKJGxhbmdbJ2luZm9fcHJpY2VfYWRqdXN0bWVudCddID0gJ1ZhbGlkIHZhbHVlcyBhcmUgKy0qIy4jIyc7CiRsYW5nWydpbmZvX3B1YmxpY2ZpZWxkJ10gPSAnUHVibGljIGZpZWxkcyBhcmUgYXZhaWxhYmxlIGZvciB0aGUgcHVibGljIHRvIHNlZSc7CgojIEoKIyBLCiMgTAokbGFuZ1snbGFiZWwnXSA9ICdMYWJlbCc7CiRsYW5nWydsYXN0cGFnZSddID0gJyZndDsmZ3Q7JzsKJGxhbmdbJ2xhc3RfbW9kaWZpZWQnXSA9ICdMYXN0IE1vZGlmaWVkJzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnU2Vjb25kIEltYWdlJzsKCiMgTQokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4aW11bSBsZW5ndGggPGVtPihhcHBsaWNhYmxlIG9ubHkgb24gdGV4dGJveCBmaWVsZHMpPC9lbT4nOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnTW9kaWZpZWQgRGF0ZSc7CiRsYW5nWydtb2R1bGVfZGVzY3JpcHRpb24nXSA9ICdBIG1vZHVsZSBmb3IgbWFuYWdpbmcgYSBjYXRhbG9nIG9mIHByb2R1Y3RzLCB0aGVpciBwcmljZSwgaW1hZ2VzLCBldGMsIGFuZCBmb3IgYWxsb3dpbmcgdXNlcnMgdG8gYnVpbGQgYSBjYXJ0JzsKCiMgTgokbGFuZ1snbmFtZSddID0gJ05hbWUnOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdZb3UgZG8gbm90IGhhdmUgdGhlIHJlcXVpcmVkIHBlcm1pc3Npb246ICVzJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnJmd0Oyc7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ05vIG5hbWUgd2FzIHN1cHBsaWVkJzsKJGxhbmdbJ25vbmUnXSA9ICdOb25lJzsKCiMgTwokbGFuZ1snb2YnXSA9ICdPZic7CgojIFAKJGxhbmdbJ3BhZ2UnXSA9ICdQYWdlJzsKJGxhbmdbJ3BhZ2Vfb2YnXSA9ICdQYWdlICVzIG9mICVzJzsKJGxhbmdbJ3BhZ2VfbGltaXQnXSA9ICdQYWdlIExpbWl0JzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gPDw8RU9UClNwZWNpZnkgdGhlIGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGFyZToKPHVsPgogIDxsaT5oaWVyYXJjaHkgLS0gRGlzcGxheSBhIHByb2R1Y3QgbGlzdCBieSBoaWVyYXJjaHk8L2xpPgogIDxsaT5jYXRlZ29yeWxpc3QgLSBEaXNwbGF5IGEgbGlzdCBvZiBwcm9kdWN0IGNhdGVnb3JpZXM8L2xpPgogIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gRGlzcGxheSBhIHN1bW1hcnkgb2YgcHJvZHVjdHM8L2xpPgogIDxsaT5kZXRhaWwgLSBEaXNwbGF5IGEgZGV0YWlsIHZpZXcgb2YgYSBzaW5nbGUgcHJvZHVjdDwvbGk+CjwvdWw+CkVPVDsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnV2hlbiB1c2VkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIsIHdoaWNoIHNob3VsZCBtYXRjaCB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyBjYXRlZ29yeSB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBvbmx5IHRob3NlIGNvbXBhbmllcyB0aGF0IGFyZSBpbiB0aGF0IGNhdGVnb29yeS4gKGEgY29tbWEgc2VwZXJhdGVkIGxpc3QgY2FuIGJlIHN1cHBsaWVkKSc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnVGhpcyBzcGVjaWZpZXMgdGhlIHBhZ2VpZCBvciBhbGlhcyB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIGRldGFpbCByZXBvcnQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGV0YWlsIG1vZGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHknXSA9ICdVc2VmdWwgb25seSBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGF0IG9ubHkgaXRlbXMgaW4gdGhhdCBsb2NhdGlvbiBvZiB0aGUgaGllcmFyY2h5IHNob3VsZCBiZSBkaXNwbGF5ZWQuICBXaWxkY2FyZCBjaGFyYWN0ZXIgY2FuIGJlIHVzZWQgc28gdGhhdCB5b3UgY2FuIHNwZWNpZnkgcGFyZW50L2NoaWxkIHJlbGF0aW9uc2hpcHMgYXMgd2VsbC4gIGkuZSB7UHJvZHVjdHMgaGllcmFyY2h5PVwndHJ1Y2tzKlwnfSB3aWxsIGNyZWF0ZSBhIHN1bW1hcnkgcmVwb3J0IG9mIGFsbCB0cnVja3MsIGluY2x1ZGluZyB0aGUgY2hpbGRyZW4gaW4gdGhlIGhpZXJhcmNoeS4gIFNpbWlsYXJseSwge1Byb2R1Y3RzIGhpZXJhcmNoeT1cJyp0cnVja3NcJ30gd2lsbCBkaXNwbGF5IGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgYW5kIGFsbCBwcm9kdWN0cyBiZWxvZ2luZyB0byBhbnkgcGFyZW50IGluIHRoZSBoaWVyYXJjaHkuJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeXRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgaGllcmFyY2h5IGRpc3BsYXkuIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9wYWdlbGltaXQnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBsaXN0ZWQgb24gZWFjaCBwYWdlLic7CiRsYW5nWydwYXJhbV9wYXJlbnQnXSA9ICdVc2VmdWwgb25seSBpbiB0aGUgPGVtPmhpZXJhcmNoeTwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBoaWVyYXJjaHkgaWQgb2YgdGhlIHN0YXJ0aW5nIGxvY2F0aW9uIG9mIHRoZSByZXBvcnQuJzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RpZCddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGRldGFpbCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB3aGF0IHByb2R1Y3QgdG8gdXNlIGZvciB0aGUgZGlzcGxheS4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmeSB0aGUgb3JkZXIgb2Ygc29ydGVkIGZpZWxkcyBpbiBzdW1tYXJ5IHZpZXcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOgo8dWw+CiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIEFzY2VuZGluZyBvcmRlcjwvbGk+CiAgPGxpPmRlc2MgLS0gRGVzY2VuZGluZyBvcmRlcjwvbGk+CjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gJ0FwcGxpY2FibGUgb25seSBpbiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyIGRldGVybWluZXMgdGhlIHNvcnRpbmcgb2YgdGhlIG91dHB1dCBjb21wYW5pZXMuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOgo8dWw+CiAgPGxpPjxzdHJvbmc+cHJvZHVjdF9uYW1lPC9zdHJvbmc+PC9saT4KICA8bGk+cHJpY2UgLS0gVGhlIHByb2R1Y3QgYmFzZSBwcmljZTwvbGk+CiAgPGxpPnN0YXR1cyAtLSBEcmFmdCBvciBwdWJsaXNoZWQ8L2xpPgogIDxsaT5yYW5kb20gLS0gRGlzcGxheSBpbiByYW5kb20gb3JkZXIgb24gZWFjaCByZXF1ZXN0PC9saT4KICA8bGk+Y3JlYXRlZCAtLSBUaGUgY3JlYXRpb24gZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+CiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4KPC91bD4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgc3VtbWFyeSBtb2RlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyZW50J10gPSAnUGFyZW50JzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnVGhlIFByb2R1Y3RzIG1vZHVsZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW5zdGFsbGVkJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdUaGUgUHJvZHVjdHMgbW9kdWxlIGhhcyBiZWVuIHJlbW92ZWQgYWxvbmcgd2l0aCBhbGwgYXNzb2NpYXRlZCBkYXRhJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnUHJlZmVyZW5jZXMnOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnUmVtb3ZpbmcgdGhpcyBtb2R1bGUgd2lsbCBhbHNvIHJlbW92ZSBhbGwgYXNzb2NpYXRlZCBkYXRhLCBhcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcHJvY2VlZD8nOwokbGFuZ1sncHJpY2UnXSA9ICdQcmljZSc7CiRsYW5nWydwcmljZV9hZGp1c3RtZW50J10gPSAnUHJpY2UgQWRqdXN0bWVudCc7CiRsYW5nWydwcmV2cGFnZSddID0gJyZsdDsnOwokbGFuZ1sncHJvZHVjdCddID0gJ1Byb2R1Y3QnOwokbGFuZ1sncHJvZHVjdG5hbWUnXSA9ICdQcm9kdWN0IE5hbWUnOwokbGFuZ1sncHJvZHVjdHMnXSA9ICdQcm9kdWN0cyc7CiRsYW5nWydwcm9kdWN0X2hpZXJhcmNoeSddID0gJ1Byb2R1Y3QgSGllcmFyY2h5JzsKJGxhbmdbJ3Byb2R1Y3RfbWFuYWdlciddID0gJ1Byb2R1Y3QgTWFuYWdlcic7CiRsYW5nWydwcm9tcHQnXSA9ICdQcm9tcHQnOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfZmlsZXR5cGVzJ10gPSAnQWxsb3cgdXBsb2FkIG9mIGZpbGVzIHdpdGggdGhlc2UgZXh0ZW5zaW9ucyAoZm9yIGZpbGUgdHlwZSBmaWVsZHMpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ltYWdldHlwZXMnXSA9ICdBbGxvdyB1cGxvYWQgb2YgaW1hZ2VzIHdpdGggdGhlc2UgZXh0ZW5zaW9ucyAoZm9yIGltYWdlIHR5cGUgZmllbGRzKSc7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbCddID0gJ0F1dG9tYXRpY2FsbHkgY3JlYXRlIHRodW1ibmFpbHMgb2YgaW1hZ2VzJzsKJGxhbmdbJ3Byb21wdF9hcHBsaWNhYmxlJ10gPSAnRW5hYmxlIGJ5IGRlZmF1bHQgZm9yIGFsbCBuZXcgcHJvZHVjdHMnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAnQ3VycmVuY3kgU3ltYm9sJzsKJGxhbmdbJ3Byb21wdF9kZWxldGVwcm9kdWN0ZmlsZXMnXSA9ICdEZWxldGUgYW55IGZpbGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJvZHVjdCB3aGVuIHRoZSBwcm9kdWN0IGlzIGRlbGV0ZWQ/JzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnRGVmYXVsdCBEZXRhaWwgUGFnZSc7CiRsYW5nWydwcm9tcHRfdGF4cmF0ZSddID0gJ1RheCBSYXRlJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnRGVmYXVsdCBTb3J0IE9yZGVyIGluIHN1bW1hcnkgbW9kZSc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICdEZWZhdWx0IFNvcnQgRmllbGQgaW4gc3VtbWFyeSBtb2RlJzsKJGxhbmdbJ3Byb21wdF90YXgxJ10gPSAnRmlyc3QgVGF4JzsKJGxhbmdbJ3Byb21wdF90YXgyJ10gPSAnU2Vjb25kIFRheCc7CiRsYW5nWydwcm9tcHRfdGF4bmFtZSddID0gJ1RheCBOYW1lJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIFNvdXJjZSc7CiRsYW5nWydwcm9tcHRfd2VpZ2h0dW5pdHMnXSA9ICdXZWlnaHQgVW5pdHMnOwokbGFuZ1sncHVibGljJ10gPSAnSXMgdGhpcyBhIHB1YmxpYyBmaWVsZD8nOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnUHVibGlzaGVkJzsKCiMgUQoKIyBSCiRsYW5nWydyYW5kb20nXSA9ICdSYW5kb20nOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdSZXNldCB0byBGYWN0b3J5IFZhbHVlcyc7CiRsYW5nWydyb290J10gPSAnUm9vdCc7CgojIFMKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlY3QgT25lJzsKJGxhbmdbJ3NvcnRfYnknXSA9ICdTb3J0IEJ5JzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdTb3J0IE9yZGVyJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyc7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ1N1bW1hcnkgVGVtcGxhdGVzJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgQSBTdW1tYXJ5IFRlbXBsYXRlJzsKCiMgVAokbGFuZ1sndGF4YWJsZSddID0gJ1RheGFibGUnOwokbGFuZ1sndGF4X21vZHVsZSddID0gJ1RheCBNb2R1bGUnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZXh0IEFyZWEnOwokbGFuZ1sndGV4dGJveCddID0gJ1RleHQgSW5wdXQnOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBOZXcgSGllcmFyY2h5IFJlcG9ydCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBOZXcgQ2F0ZWdvcnlMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IE5ldyBEZXRhaWwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IE5ldyBTdW1tYXJ5IFRlbXBsYXRlJzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXBlJzsKCiMgVQokbGFuZ1sndXBkYXRlJ10gPSAnVXBkYXRlJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1NlbGVjdCBhIGZpbGUgdG8gdXBsb2FkJzsKCiMgVgokbGFuZ1sndmFsdWUnXSA9ICdWYWx1ZSc7CiRsYW5nWyd2YWx1ZXMnXSA9ICdWYWx1ZXMnOwoKIyBXCiRsYW5nWyd3ZWlnaHQnXSA9ICdXZWlnaHQnOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZCddID0gJ0Fqb3V0ZXInOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdBam91dGVyIHVuZSBjYXQmZWFjdXRlO2dvcmllJzsKJGxhbmdbJ2FkZGZpZWxkZGVmJ10gPSAnQWpvdXRlciB1biBjaGFtcCc7CiRsYW5nWydhZGRwcm9kdWN0J10gPSAnQWpvdXRlciB1biBwcm9kdWl0JzsKJGxhbmdbJ2FkZF9hdHRyaWJfc2V0J10gPSAnQWpvdXRlciB1biBhdHRyaWJ1dCc7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAnQWpvdXRlciB1bmUgb3B0aW9uIGQmIzAzOTthdHRyaWJ1dCc7CiRsYW5nWydhZG1pbl9vbmx5J10gPSAnU2V1bHMgbGVzIGFkbWluaXN0cmF0ZXVycyBwZXV2ZW50IHZvaXIgY2V0IGF0dHJpYnV0Pyc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnJkVjaXJjO3Rlcy12b3VzIHMmdWNpcmM7cj8nOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAnQXNjZW5kYW50JzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnTm9tIGRlIGwmIzAzOTthdHRyaWJ1dCc7CiRsYW5nWydjYW5jZWwnXSA9ICdBbm51bGVyJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXQmZWFjdXRlO2dvcmllcyc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0NhdCZlYWN1dGU7Z29yaWUnOwokbGFuZ1snY2F0ZWdvcnlleGlzdHMnXSA9ICdVbmUgY2F0JmVhY3V0ZTtnb3JpZSBkdSBtJmVjaXJjO21lIG5vbSBleGlzdGUgZCZlYWN1dGU7aiZhZ3JhdmU7JzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0dhYmFyaXRzIGRlIGxhIGxpc3RlIGRlcyBjYXQmZWFjdXRlO2dvcmllcyc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWpvdXQgb3UgJmVhY3V0ZTtkaXRpb24gZCYjMDM5O3VuIGdhYmFyaXQgZGUgbGlzdGUgZGUgY2F0JmVhY3V0ZTtnb3JpZXMnOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPg0KPGxpPlZlcnNpb24gMS4wIC0gRCZlYWN1dGU7Y2VtYnJlIDIwMDcNCiAgIDxwPlZlcnNpb24gaW5pdGlhbGU8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMS4wLjEgLSBKYW52aWVyIDIwMDgNCiAgIDx1bD4NCiAgICAgPGxpPkFqb3V0IGRlIHBhZ2luYXRpb24gZGFucyBsYSB2dWUgc29tbWFpcmU8L2xpPg0KICAgICA8bGk+Q29ycmlnZSB1biBwcm9ibCZlZ3JhdmU7bWUgYXZlYyBsZXMgbGllbnMgZHVwbGlxdSZlYWN1dGU7cyBkYW5zIGxhIHZ1ZSBzb21tYWlyZTwvbGk+DQogICA8L3VsPg0KPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRGF0ZSBkZSBjciZlYWN1dGU7YXRpb24nOwokbGFuZ1snZGVmYXVsdHRlbXBsYXRlcyddID0gJ0dhYmFyaXRzIHBhciBkJmVhY3V0ZTtmYXV0JzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPkxlIGNvbnRlbnUgZGUgY2VzIHpvbmVzIGQmIzAzOTsmZWFjdXRlO2RpdGlvbiBzb250IHV0aWxpcyZlYWN1dGU7cyBwb3VyIGQmZWFjdXRlO3Rlcm1pbmVyIGxlIGNvbnRlbnUgcGFyIGQmZWFjdXRlO2ZhdXQgZGVzIGdhYmFyaXRzIHF1YW5kIHZvdXMgY2xpcXVleiBzdXIgJnF1b3Q7QWpvdXQgZCYjMDM5O3VuIG5vdXZlYXUgZ2FiYXJpdCZxdW90OyBkYW5zIGwmIzAzOTtvbmdsZXQgY29ycmVzcG9uZGFudC4gTGEgbW9kaWZpY2F0aW9uIGR1IGNvbnRlbnUgZGFucyBjZXMgem9uZXMgZCYjMDM5OyZlYWN1dGU7ZGl0aW9uIG4mIzAzOTthdXJhIHBhcyBkJiMwMzk7ZWZmZXQgaW1tJmVhY3V0ZTtkaWF0IHN1ciB2b3RyZSBzaXRlJzsKJGxhbmdbJ2RlbGV0ZV9hdHRyaWJzZXQnXSA9ICdTdXBwcmltZXIgbCYjMDM5O2F0dHJpYnV0JzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdEZXNjZW5kYW50JzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnVW4gbW9kdWxlIHBvdXIgZyZlYWN1dGU7cmVyIHVuIGNhdGFsb2d1ZSBkZSBwcm9kdWl0cywgbGV1ciBwcml4LCBpbWFnZXMsIGV0YywgZXQgcG91ciBwZXJtZXR0cmUgYXV4IHV0aWxpc2F0ZXVycyBkZSBjciZlYWN1dGU7ZXIgdW4gcGFuaWVyJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdEJmVhY3V0ZTt0YWlscyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdHYWJhcml0cyBkJmVhY3V0ZTt0YWlscyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWpvdXQgb3UgJmVhY3V0ZTtkaXRpb24gZCYjMDM5O3VuIGdhYmFyaXQgZCZlYWN1dGU7dGFpbHMnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdEJmVhY3V0ZTtzYWN0aXYmZWFjdXRlOyc7CiRsYW5nWydkcmFmdCddID0gJyZFYWN1dGU7YmF1Y2hlJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0cyddID0gJyZFYWN1dGU7ZGl0ZXIgbGVzIHNldHMgZCYjMDM5O2F0dHJpYnV0cyc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHNfZm9yJ10gPSAnJkVhY3V0ZTtkaXRlciBsZXMgc2V0cyBkJiMwMzk7YXR0cmlidXRzIHBvdXInOwokbGFuZ1snZWRpdF9hdHRyaWJ1dGVzJ10gPSAnJkVhY3V0ZTtkaXRlciBsZXMgYXR0cmlidXRzJzsKJGxhbmdbJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnXSA9ICdJbCB5IGEgZCZlYWN1dGU7aiZhZ3JhdmU7IHVuIGF0dHJpYnV0IGR1IG0mZWNpcmM7bWUgbm9tJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ1VuIHBhcmFtJmVncmF2ZTt0cmUgcmVxdWlzIGVzdCBtYW5xdWFudCBvdSBpbnZhbGlkZSc7CiRsYW5nWydlcnJvcl9wcmljZV9hZGp1c3RtZW50J10gPSAnTGEgdmFsZXVyIGQmIzAzOTthanVzdGVtZW50IGR1IHByaXggZXN0IGludmFsaWRlIHBvdXIgbCYjMDM5O29iamV0ICVzJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRCZlYWN1dGU7ZmluaXRpb24gZCYjMDM5O3VuIGNoYW1wJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0QmZWFjdXRlO2Zpbml0aW9ucyBkZXMgY2hhbXBzJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJyZhbXA7bHQ7JmFtcDtsdDsnOwokbGFuZ1snaGVscCddID0gJ0EgRkFJUkUnOwokbGFuZ1snaWQnXSA9ICdJZCAnOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnSW1hZ2UgJzsKJGxhbmdbJ2luZm9fcHJpY2VfYWRqdXN0bWVudCddID0gJ0xlcyB2YWxldXJzIHZhbGlkZXMgc29udCArLSojLiMjJzsKJGxhbmdbJ2xhYmVsJ10gPSAnJkVhY3V0ZTt0aXF1ZXR0ZSc7CiRsYW5nWydsYXN0cGFnZSddID0gJyZhbXA7Z3Q7JmFtcDtndDsnOwokbGFuZ1snbG9nb3RleHQnXSA9ICdMb2dvICc7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdMb25nZXVyIE1heGltYWxlIDxlbT4oYXBwbGljYWJsZSBzZXVsZW1lbnQgYXV4IGNoYW1wcyB0ZXh0Ym94KTwvZW0+JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ0RhdGUgZGUgbW9kaWZpY2F0aW9uJzsKJGxhbmdbJ25hbWUnXSA9ICdOb20nOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdWb3VzIG4mIzAzOTthdmV6IHBhcyBsYSBwZXJtaXNzaW9uIHJlcXVpc2UmbmJzcDs6ICVzJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnJmFtcDtndDsnOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICdWb3VzIG4mIzAzOTthdmV6IHBhcyBkb25uJmVhY3V0ZTsgZGUgbm9tJzsKJGxhbmdbJ25vbmUnXSA9ICdBdWN1bic7CiRsYW5nWydvZiddID0gJ2RlJzsKJGxhbmdbJ3BhZ2UnXSA9ICdQYWdlICc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcCZlYWN1dGU7Y2lmaWUgbGUgY29tcG9ydGVtZW50IGR1IG1vZHVsZS4gTGVzIHZhbGV1cnMgcG9zc2libGVzIHNvbnQmbmJzcDs6DQo8dWw+DQogIDxsaT5jYXRlZ29yeWxpc3QgLSBBZmZpY2hlciB1bmUgbGlzdGUgZGUgY2F0JmVhY3V0ZTtnb3JpZXMgZGUgcHJvZHVpdHM8L2xJDQogIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gQWZmaWNoZSBsZSBzb21tYWlyZSBkZXMgcHJvZHVpdHM8L2xpPg0KICA8bGk+ZGV0YWlsIC0gQWZmaWNoZSBsZSBkJmVhY3V0ZTt0YWlsIGQmIzAzOTt1biBwcm9kdWl0IGRvbm4mZWFjdXRlOzwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ0xvcnMgZGUgbCYjMDM5O3V0aWxpc2F0aW9uIDxlbT5wYXIgZCZlYWN1dGU7ZmF1dDwvZW0+IGVuIG1vZGUgc29tbWFpcmUsIGNlIHBhcmFtJmVncmF2ZTt0cmUsIHF1aSBkZXZyYWl0IGNvcnJlc3BvbmRyZSBhdSBub20gZCYjMDM5O3VuZSBjYXQmZWFjdXRlO2dvcmllIGV4aXN0YW50ZSwgc2VyYSB1dGlsaXMmZWFjdXRlOyBwb3VyIGFmZmljaGVyIHNldWxlbWVudCBsZXMgZW50ciZlYWN1dGU7ZXMgcXVpIHNvbnQgZGFucyBjZXR0ZSBjYXQmZWFjdXRlO2dvcmllICh1bmUgbGlzdGUgcyZlYWN1dGU7cGFyJmVhY3V0ZTtlIHBhciBkZXMgdmlyZ3VsZXMgcGV1dCAmZWNpcmM7dHJlIGZvdXJuaWUpJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnVXRpbGUgc2V1bGVtZW50IGF2ZWMgbCYjMDM5O2FjdGlvbiBjYXRlZ29yeWxpc3QsIGNlIHBhcmFtJmVncmF2ZTt0cmUgaW5kaXF1ZSBxdWVsIGdhYmFyaXQgZG9pdCAmZWNpcmM7dHJlIHV0aWxpcyZlYWN1dGU7IHBvdXIgbCYjMDM5O2FmZmljaGFnZS4gU2kgYXVjdW5lIHZhbGV1ciBuJiMwMzk7ZXN0IGZvdXJuaWUsIGxlIGdhYmFyaXQgcGFyIGQmZWFjdXRlO2ZhdXQgYWN0dWVsIGRlIGNlIHR5cGUgZXN0IHV0aWxpcyZlYWN1dGU7Lic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnU3AmZWFjdXRlO2NpZmllIGwmIzAzOTtpZCBvdSBsJiMwMzk7YWxpYXMgZGUgbGEgcGFnZSBxdWkgZG9pdCAmZWNpcmM7dHJlIHV0aWxpcyZlYWN1dGU7ZSBwb3VyIGFmZmljaGVyIGxlIGQmZWFjdXRlO3RhaWwuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnQ2UgcGFyYW0mZWdyYXZlO3RyZSBzcCZlYWN1dGU7Y2lmaWUgcXVlbCBnYWJhcml0IGRldnJhaXQgJmVjaXJjO3RyZSB1dGlsaXMmZWFjdXRlOyBwb3VyIGwmIzAzOTthZmZpY2hhZ2UgZW4gbW9kZSBkJmVhY3V0ZTt0YWlscy4gU2kgYXVjdW5lIHZhbGV1ciBuJiMwMzk7ZXN0IGZvdXJuaWUsIGxlIGdhYmFyaXQgcGFyIGQmZWFjdXRlO2ZhdXQgYWN0dWVsIGRlIGNlIHR5cGUgZXN0IHV0aWxpcyZlYWN1dGU7Lic7CiRsYW5nWydwYXJhbV9wYWdlbGltaXQnXSA9ICdVdGlsaXMmZWFjdXRlOyBzZXVsZW1lbnQgYXZlYyBsJiMwMzk7YWN0aW9uIDxlbT5wYXIgZCZlYWN1dGU7ZmF1dDwvZW0+LCBjZSBwYXJhbSZlZ3JhdmU7dHJlIHNwJmVhY3V0ZTtjaWZpY2UgY29tYmllbiBkJiMwMzk7YXJ0aWNsZXMgZG9pdmVudCAmZWNpcmM7dHJlIGxpc3QmZWFjdXRlO3Mgc3VyIGNoYXF1ZSBwYWdlLic7CiRsYW5nWydwYXJhbV9wcm9kdWN0aWQnXSA9ICdVdGlsaXMmZWFjdXRlOyBzZXVsZW1lbnQgYXZlYyBsJiMwMzk7YWN0aW9uIGQmZWFjdXRlO3RhaWwsIGNlIHBhcmFtJmVncmF2ZTt0cmUgaW5kaXF1ZSBxdWVscyBwcm9kdWl0cyB1dGlsaXNlciBwb3VyIGwmIzAzOTthZmZpY2hhZ2UuJzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ1NwJmVhY3V0ZTtjaWZpZSBsJiMwMzk7b3JkcmUgZGVzIGNoYW1wcyB0cmkmZWFjdXRlO3MgZW4gbW9kZSBzb21tYWlyZS4gTGVzIHZhbGV1cnMgcG9zc2libGVzIHNvbnQ6DQo8dWw+DQogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBPcmRyZSBhc2NlbmRhbnQ8L2xpPg0KICA8bGk+ZGVzYyAtLSBPcmRlciBkZXNjZW5kYW50PC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gJ0FwcGxpY2FibGUgc2V1bGVtZW50IGVuIG1vZGUgc29tbWFpcmUsIGNlIHBhcmFtJmVncmF2ZTt0cmUgZCZlYWN1dGU7dGVybWluZSBsZSB0cmkgZGVzIGVudHImZWFjdXRlO2VzLiBMZXMgdmFsZXVycyBwb3NzaWJsZXMgc29udDoNCjx1bD4NCiAgPGxpPjxzdHJvbmc+cHJvZHVjdF9uYW1lPC9zdHJvbmc+PC9saT4NCiAgPGxpPnBob25lPC9saT4NCiAgPGxpPmZheDwvbGk+DQogIDxsaT5lbWFpbDwvbGk+DQogIDxsaT53ZWJzaXRlIC0tIEwmIzAzOTt1cmwgZHUgc2l0ZSBpbnRlcm5ldDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIExhIGRhdGUgZGUgY3ImZWFjdXRlO2F0aW9uIGRlIGxcJiMwMzk7ZW50ciZlYWN1dGU7ZTwvbGk+DQogIDxsaT5tb2RpZmllZCAtLSAgTGEgZGF0ZSBkZSBtb2RpZmljYXRpb24gZGUgbFwmIzAzOTtlbnRyJmVhY3V0ZTtlPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ0NlIHBhcmFtJmVncmF2ZTt0cmUgc3AmZWFjdXRlO2NpZmllIHF1ZWwgZ2FiYXJpdCBkb2l0ICZlY2lyYzt0cmUgdXRpbGlzJmVhY3V0ZTsgZW4gYWZmaWNoYWdlIG1vZGUgc29tbWFpcmUuIFNpIGF1Y3VuZSB2YWxldXIgbiYjMDM5O2VzdCBmb3VybmllLCBsZSBnYWJhcml0IHBhciBkJmVhY3V0ZTtmYXV0IGFjdHVlbCBkZSBjZSB0eXBlIGVzdCB1dGlsaXMmZWFjdXRlOy4nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdMZSBtb2R1bGUgUHJvZHVpdHMgYSAmZWFjdXRlO3QmZWFjdXRlOyBpbnN0YWxsJmVhY3V0ZTsgYXZlYyBzdWNjJmVncmF2ZTtzJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdMZSBtb2R1bGUgUHJvZHVpdHMgYSAmZWFjdXRlO3QmZWFjdXRlOyBzdXBwcmltJmVhY3V0ZTssIGFpbnNpIHF1ZSB0b3V0ZXMgbGVzIGRvbm4mZWFjdXRlO2VzIGFzc29jaSZlYWN1dGU7ZXMuJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnUHImZWFjdXRlO2YmZWFjdXRlO3JlbmNlcyc7CiRsYW5nWydwcmV1bmluc3RhbGwnXSA9ICdTdXBwcmltZXIgY2UgbW9kdWxlIHZhIGF1c3NpIHN1cHByaW1lciB0b3V0ZXMgbGVzIGRvbm4mZWFjdXRlO2VzIGFzc29jaSZlYWN1dGU7ZXMsICZlY2lyYzt0ZXMtdm91cyBzJnVjaXJjO3IgZGUgdm91bG9pciBjb250aW51ZXI/JzsKJGxhbmdbJ3ByaWNlJ10gPSAnUHJpeCc7CiRsYW5nWydwcmljZV9hZGp1c3RtZW50J10gPSAnQWp1c3RlbWVudCBkZSBwcml4JzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnJmFtcDtsdDsnOwokbGFuZ1sncHJvZHVjdCddID0gJ1Byb2R1aXQnOwokbGFuZ1sncHJvZHVjdG5hbWUnXSA9ICdOb20gZHUgcHJvZHVpdCc7CiRsYW5nWydwcm9kdWN0cyddID0gJ0dlc3Rpb25uYWlyZSBkZSBQcm9kdWl0cyc7CiRsYW5nWydwcm9tcHRfYXBwbGljYWJsZSddID0gJ0FjdGl2ZXIgcGFyIGQmZWFjdXRlO2ZhdXQgcG91ciB0b3VzIGxlcyBub3V2ZWF1eCBwcm9kdWl0cyc7CiRsYW5nWydwcm9tcHRfY3VycmVuY3lzeW1ib2wnXSA9ICdNb25uYWllJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnUGFnZSBkJmVhY3V0ZTt0YWlsIHBhciBkJmVhY3V0ZTtmYXV0JzsKJGxhbmdbJ3Byb21wdF90YXhyYXRlJ10gPSAnVGF1eCBkZSB0YXhlJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnT3JkcmUgZGUgdHJpIHBhciBkJmVhY3V0ZTtmYXV0IGVuIG1vZGUgc29tbWFpcmUnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnQ2hhbXAgZGUgdHJpIHBhciBkJmVhY3V0ZTtmYXV0IGVuIG1vZGUgc29tbWFpcmUnOwokbGFuZ1sncHJvbXB0X3RheDEnXSA9ICdQcmVtaSZlZ3JhdmU7cmUgdGF4ZSc7CiRsYW5nWydwcm9tcHRfdGF4MiddID0gJ0RldXhpJmVncmF2ZTttZSB0YXhlJzsKJGxhbmdbJ3Byb21wdF90YXhuYW1lJ10gPSAnTm9tIGRlIGxhIHRheGUnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnU291cmNlIGR1IGdhYmFyaXQnOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnVW5pdCZlYWN1dGU7cyBkZSBwb2lkcyc7CiRsYW5nWydwdWJsaWMnXSA9ICdFc3QtY2UgdW4gY2hhbXAgcHVibGljPyc7CiRsYW5nWydwdWJsaXNoZWQnXSA9ICdQdWJsaSZlYWN1dGU7JzsKJGxhbmdbJ3JhbmRvbSddID0gJ0F1IGhhc2FyZCc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1ImZWFjdXRlO2luaXRpYWxpc2VyIGF1eCB2YWxldXJzIHBhciBkJmVhY3V0ZTtmYXV0JzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1dCc7CiRsYW5nWydzdWJtaXQnXSA9ICdTb3VtZXR0cmUnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ0dhYmFyaXRzIGRlIHNvbW1haXJlJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWpvdXQgb3UgJmVhY3V0ZTtkaXRpb24gZCYjMDM5O3VuIGdhYmFyaXQgZGUgc29tbWFpcmUnOwokbGFuZ1sndGF4YWJsZSddID0gJ1RheGFibGUgJzsKJGxhbmdbJ3RheF9tb2R1bGUnXSA9ICdNb2R1bGUgZGUgdGF4ZSc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnR2FiYXJpdCBwYXIgZCZlYWN1dGU7ZmF1dCBwb3VyIHVuZSBub3V2ZWxsZSBsaXN0ZSBkZSBjYXQmZWFjdXRlO2dvcmllcyc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnR2FiYXJpdCBwYXIgZCZlYWN1dGU7ZmF1dCBwb3VyIGwmIzAzOTthZmZpY2hhZ2UgZHUgZCZlYWN1dGU7dGFpbCc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ0dhYmFyaXQgcGFyIGQmZWFjdXRlO2ZhdXQgcG91ciBsJiMwMzk7YWZmaWNoYWdlIGR1IHNvbW1haXJlJzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXBlICc7CiRsYW5nWyd1cGRhdGUnXSA9ICdNaXNlICZhZ3JhdmU7IGpvdXInOwokbGFuZ1sndmFsdWVzJ10gPSAnVmFsZXVycyc7CiRsYW5nWyd3ZWlnaHQnXSA9ICdQb2lkcyc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjMxMTkxODM5MC4xMTY4NzczMDM2LjEyMDE2NzE5NTkuMTIwMTgwNzM0NS4yNDcnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjAwOTkzMDg1LjIzOC4zNi51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9a2Rjby5jaHx1dG1jY3Q9L3Rlc3QvYWRtaW4vZWRpdGh0bWxibG9iLnBocHx1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/it_IT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZCddID0gJ0FnZ2l1bmdlcmUnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdBZ2dpdW5nZXJlIHVuYSBjYXRlZ29yaWEnOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdBZ2dpdW5nZXJlIHVuIGNhbXBvJzsKJGxhbmdbJ2FkZHByb2R1Y3QnXSA9ICdBZ2dpdW5nZXJlIHVuIFByb2RvdHRvJzsKJGxhbmdbJ2FkZF9hdHRyaWJfc2V0J10gPSAnQWdnaXVuZ2VyZSB1biBhdHRyaWJ1dG8nOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnQWdnaXVuZ2VyZSB1biBJdGVtIGdlcmFyY2hpY28nOwokbGFuZ1snYWRkX29wdGlvbiddID0gJ0FnZ2l1bmdlcmUgdW5hIG9wemlvbmUgYXR0cmlidXRvJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdTb2xvIGwmIzAzOTthZG1pbiBwdSZvZ3JhdmU7IHZlcmUgcXVlc3RvIGF0dHJpYnV0bz8nOwokbGFuZ1snYWxsY2F0ZWdvcmllcyddID0gJ1R1dHRlIGxlIGNhdGVnb3JpZSc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnU2lldGUgc2ljdXJpPyc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZXByb2R1Y3QnXSA9ICdTaWV0ZSBzaWN1cm8gZGkgdm9sZXIgcHJvcHJpbyBjYW5jZWxsYXJlIHF1ZXN0byBwcm9kb3R0byBlIHR1dHRlIGxlIGluZm9ybWF6aW9uaSBjb3JyZWxhdGU/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ0FzY2VuZGVudGUnOwokbGFuZ1snYXR0cmlidXRlX25hbWUnXSA9ICdOb21lIGF0dHJpYnV0byc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlcyddID0gJ01vZGVsbGkgUmVwb3J0IGdlcmFyY2hpY2knOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWdnaXVuZ2VyZS9Nb2RpZmljYSB1biBNb2RlbGxvIFJlcG9ydCBnZXJhcmNoaWNvJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbGxhJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yaWUnOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdDYXRlZ29yaWEnOwokbGFuZ1snY2F0ZWdvcnlleGlzdHMnXSA9ICdVbmEgY2F0ZWdvcmlhIGNvbiBxdWVsIG5vbWUgZ2kmYWdyYXZlOyBlc2lzdGUnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVzJ10gPSAnTW9kZWxsaSBMaXN0YSBjYXRlZ29yaWUnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FnZ2l1bmdlcmUvTW9kaWZpY2EgdW4gTW9kZWxsbyBMaXN0YSBjYXRlZ29yaWUnOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPg0KPGxpPlZlcnNpb24gMS4wIC0gRGVjZW1iZXIsIDIwMDcNCiAgIDxwPkluaXRpYWwgUmVsZWFzZTwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuMSAtIEphbnVhcnksIDIwMDgNCiAgIDx1bD4NCiAgICAgPGxpPkFkZHMgcGFnaW5hdGlvbiBpbiBzdW1tYXJ5IHZpZXc8L2xpPg0KICAgICA8bGk+Rml4ZXMgYSBwcm9ibGVtIHdpdGggZHVwbGljYXRlIGxpbmtzIGluIHN1bW1hcnkgdmlldzwvbGk+DQogICA8L3VsPg0KPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnQ2hlY2tib3gnOwokbGFuZ1snY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnXSA9ICdTaWV0ZSBzaWN1cm8gZGkgdm9sZXIgcHJvcHJpbyBjYW5jZWxsYXJlIHF1ZXN0byBub2RvPyBUdXR0aSBpIHByb2RvdHRpIGNoZSBzdGFubm8gdXNhbmRvIHF1ZXN0byBub2RvIG5vbiBzYXJhbm5vIHBpJnVncmF2ZTsgZ2VyYXJjaGljaSc7CiRsYW5nWydjcmVhdGVkZGF0ZSddID0gJ0RhdGEgZGkgY3JlYXppb25lJzsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICdWYWxvcmUgY29ycmVudGUnOwokbGFuZ1snZGVmYXVsdHRlbXBsYXRlcyddID0gJ01vZGVsbGkgcHJlZGVmaW5pdGknOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPk5vdGE6PC9zdHJvbmc+IElsIGNvbnRlbnV0byBkaSBxdWVzdGUgYXJlZSB0ZXN0byBzb25vIHVzYXRlIHBlciBkZXRlcm1pbmFyZSBpbCBjb250ZW51dG8gcHJlZGVmaW5pdG8gZGVpIE1vZGVsbGkgcXVhbmRvIHNjZWdsaXRlICZxdW90O0FnZ2l1bmdlcmUgTW9kZWxsbyZxdW90OyBuZWxsJiMwMzk7YXBwcm9wcmlhdG8gdGFiLiBNb2RpZmljYW5kbyB1bmEgZGkgcXVlc3RlIGFyZWUgdGVzdG8gbm9uIGF2cmFubm8gbmVzc3VuIGVmZmV0dG8gc3VsIHZvc3RybyBzaXRvLic7CiRsYW5nWydkZWxldGUnXSA9ICdDYW5jZWxsYSc7CiRsYW5nWydkZWxldGVfYXR0cmlic2V0J10gPSAnQ2FuY2VsbGEgYXR0cmlidXRvJzsKJGxhbmdbJ2RlbGV0ZV9oaWVyYXJjaHlfaXRlbSddID0gJ0NhbmNlbGxhIHVuIEl0ZW0gZ2VyYXJjaGljbyc7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnRGlzY2VuZGVudGUnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdBIG1vZHVsZSBmb3IgbWFuYWdpbmcgYSBjYXRhbG9nIG9mIHByb2R1Y3RzLCB0aGVpciBwcmljZSwgaW1hZ2VzLCBldGMsIGFuZCBmb3IgYWxsb3dpbmcgdXNlcnMgdG8gYnVpbGQgYSBjYXJ0JzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdEZXR0YWdsaSc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdNb2RlbGxpIERldHRhZ2xpbyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWdnaXVuZ2VyZS9Nb2RpZmljYSB1biBNb2RlbGxvIGRldHRhZ2xpbyc7CiRsYW5nWydkaXNhYmxlZCddID0gJ0Rpc2FiaWxpdGF0byc7CiRsYW5nWydkcmFmdCddID0gJ0JvenphJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24nOwokbGFuZ1snZHJvcGRvd25fb3B0aW9ucyddID0gJ09wemlvbmkgRHJvcGRvd24gPGVtPihhcHBsaWNhYmlsZSBzb2xvIHBlciBjYW1waSBkcm9wZG93bik8L2VtPjxici8+PGJyLz48ZW0+KHVuIHRlcm1pbmUgcGVyIG9nbmkgcmlnYSk8L2VtPic7CiRsYW5nWydlZGl0J10gPSAnTW9kaWZpY2EnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzJ10gPSAnTW9kaWZpY2Egc2V0dGFnZ2kgQXR0cmlidXRvJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0c19mb3InXSA9ICdNb2RpZmljYSBzZXR0YWdnaSBBdHRyaWJ1dG8gcGVyJzsKJGxhbmdbJ2VkaXRfYXR0cmlidXRlcyddID0gJ01vZGlmaWNhIEF0dHJpYnV0aSc7CiRsYW5nWydlZGl0X2hpZXJhcmNoeV9pdGVtJ10gPSAnTW9kaWZpY2EgdW4gSXRlbSBnZXJhcmNoaWNvJzsKJGxhbmdbJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnXSA9ICdVbiBhdHRyaWJ1dG8gY29uIHF1ZWwgbm9tZSBnaSZhZ3JhdmU7IGVzaXN0ZSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnUGFyZW50IGludmFsaWRvICh1biBub2RvIGdlcmFyY2hpY28gbm9uIHB1Jm9ncmF2ZTsgZXNzZXJlIGlsIHByb3ByaW8gcGFyZW50KSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX25hbWUnXSA9ICdJbCB2YWxvcmUgZGVsIGNhbXBvIHBlcnNvbmFsaXp6YXRvIG5vbiAmZWdyYXZlOyB2YWxpZG8gKGNvbnRpZW5lIGNhcmF0dGVyaSBub24gYWxmYW51bWVyaWNpKSc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdVbiBwYXJhbWV0cm8gcmljaGllc3RvICZlZ3JhdmU7IG1hbmNhbnRlIG8gbm9uIHZhbGlkbyc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X25hbWV1c2VkJ10gPSAnVW4gUHJvZG90dG8gY29uIHF1ZWwgbm9tZSBnaSZhZ3JhdmU7IGVzaXN0ZSc7CiRsYW5nWydlcnJvcl9wcmljZV9hZGp1c3RtZW50J10gPSAnVmFsb3JlIGRlbCBwcmV6em8gZGkgYWRlZ3VhbWVudG8gbm9uIHZhbGlkbyBwZXIgaWwgdGVybWluZSAlcyc7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnVXBsb2FkIGZhbGxpdG86ICVzJzsKJGxhbmdbJ2ZpZWxkJ10gPSAnQ2FtcG8nOwokbGFuZ1snZmllbGRkZWYnXSA9ICdEZWZpbml6aW9uZSBDYW1wbyc7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdEZWZpbml6aW9uaSBDYW1wbyc7CiRsYW5nWydmaWxlJ10gPSAnRmlsZSc7CiRsYW5nWydmaWx0ZXJzJ10gPSAnRmlsdHJpJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBkb2VzIHRoaXMgZG8/PC9oMz4NCjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgd2F5IHRvIGNvbGxlY3QsIG9yZ2FuaXplLCBhbmQgZGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCBwcm9kdWN0cyBhbmQgdGhlaXIgY2F0ZWdvcmllcy4gIFRoaXMgbW9kdWxlIGNhbiBzdGFuZCBvbiBpdHMgb3duLCBvciBiZSBwYXJ0IG9mIGFuIGUtY29tbWVyY2Ugc29sdXRpb24gaWYgeW91IHdpc2guICBUaGUgbW9kdWxlIHN1cHBvcnRzIGEgcHJvZHVjdCBleGlzdGluZyBpbiBtb3JlIHRoYW4gb25lIGNhdGVnb3J5LCBzdXBwb3J0cyBwcm9kdWN0IHdlaWdodCwgcHJpY2UsIGFuZCBhdHRyaWJ1dGUgc2V0cy4gIEVhY2ggaXRlbSBpbiBhbiBhdHRyaWJ1dGUgc2V0IGNhbiBoYXZlIGEgcHJpY2UgYWRqdXN0bWVudC4gIEFsc28gYSBnbG9iYWwgZmxhZyBpbmRpY2F0ZXMgd2V0aGVyIHRoZSBwcm9kdWN0IGlzICYjMDM5O3RheGFibGUmIzAzOTsgb3Igbm90LjwvcD4NCiAgPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgZm9yIHVwIHRvIHR3byBpbWFnZXMgcGVyIHByb2R1Y3QsIGN1c3RvbSBmaWVsZCBkZWZpbml0aW9ucywgYW5kIGZvciB0aGUgYWJpbGl0eSB0byBkZXNjcmltaW5hdGUgcHJpdmF0ZSBmcm9tIHB1YmxpYyBkYXRhLjwvcD4NCjxoMz5GZWF0dXJlczo8L2gzPg0KPHVsPg0KICA8bGk+TnVtZXJvdXMgVmlld3M8L2xpPg0KICAgIDx1bD4NCiAgICAgIDxsaT5TdW1tYXJ5IHZpZXc8L2xpPg0KICAgICAgPGxpPkRldGFpbCB2aWV3PC9saT4gDQogICAgICA8bGk+Q2F0ZWdvcnkgTGlzdCBWaWV3PC9saT4NCiAgICA8L3VsPg0KICA8bGk+RW50aXJlbHkgRGF0YWJhc2UgVGVtcGxhdGUgRHJpdmVuPC9saT4NCiAgPHA+TnVtZXJvdXMgdGVtcGxhdGVzIG9mIGVhY2ggdHlwZSBjYW4gYmUgZGVmaW5lZCwgZGVmYXVsdHMgc3BlY2lmaWVkIGZvciBlYWNoIHR5cGUsIGFuZCB0aGUgdGVtcGxhdGUgdXNlZCBmb3IgZWFjaCBwYXJ0aWN1bGFyIHZpZXcgY2FuIGJlIHNwZWNpZmllZCBhcyBhIHBhcmFtZXRlcjwvcD4NCiAgPGxpPlNvcnRpbmcgYW5kIHBhZ2luYXRpb24gaW4gdGhlIHN1bW1hcnkgdmlldzwvbGk+DQogIDxsaT5Qcm9kdWN0cyBjYW4gZXhpc3QgaW4gbXVsdGlwbGUgY2F0ZWdvcmllczwvbGk+DQogIDxsaT5VcCB0byB0d28gaW1hZ2VzIHBlciBwcm9kdWN0PC9saT4NCiAgPGxpPkFkbWluIGRlZmluZWQgZmllbGRzPC9saT4NCiAgPGxpPlByb2R1Y3QgYXR0cmlidXRlcyAoaW5jbHVkaW5nIHByaWNlIGFkanVzdG1lbnQpPC9saT4NCiAgPGxpPldlaWdodCBhbmQgdGF4YWJsZSBmaWVsZHMgKGZvciB1c2UgaW4gZS1jb21tZXJjZSBzb2x1dGlvbnMpPC9saT4NCiAgPGxpPlByb2R1Y3RzIGNhbiBoYXZlIGEgc3RhdHVzIChwdWJsaXNoZWQgb3IgZHJhZnQpIGluIG9yZGVyIHRvIGhpZGUgcHJvZHVjdHMgZnJvbSBwdWJsaWMgZGlzcGxheSBhdCBhbnkgdGltZTwvbGk+DQogIDxsaT5QcmV0dHkgVVJMIFN1cHBvcnQ8L2xpPg0KICA8bGk+PHN0cm9uZz5Nb3JlLi4uPC9zdHJvbmc+PC9saT4NCjwvdWw+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgSXQ6PC9oMz4NCjx1bD4NCjxsaT5TZXQgcHJlZmVyZW5jZXM8L2xpPg0KPHA+VXN1YWxseSB0aGlzIGlzIGp1c3QgYSBmb3JtYWxpdHkuICBZb3Ugc2hvdWxkIHNwZWNpZnkgeW91ciBkZWZhdWx0IHdlaWdodCB1bml0cywgYW5kIHlvdXIgZGVmYXVsdCBjdXJyZW5jeSBzeW1ib2wgZm9yIHlvdXIgbG9jYWwgZW52aXJvbm1lbnQuPC9wPg0KPGxpPlNldHVwIHVzZXJzIGFuZCBwZXJtaXNzaW9uczwvbGk+DQo8cD5UaGlzIG1vZHVsZSB1c2VzIHRoZSAmIzAzOTtNb2RpZnkgVGVtcGxhdGVzJiMwMzk7IHBlcm1pc3Npb24gdG8gYWxsb3cgdXNlcnMgdG8gYmUgYWJsZSB0byBtb2RpZnkgdGhlIHZhcmlvdXMgdGVtcGxhdGVzIHRoYXQgY2FuIGJlIHVzZWQgYnkgdGhpcyBtb2R1bGUuICBBcyB3ZWxsLCB0aGUgJiMwMzk7TW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMmIzAzOTsgcGVybWlzc2lvbiBpcyBuZWVkZWQgdG8gYmUgYWJsZSB0byBhZGp1c3QgdGhlIG1vZHVsZXMgcHJlZmVyZW5jZXMuICBJbiBvcmRlciB0byBoYXZlIHRoZSBhYmlsaXR5IHRvIG1vZGlmeSBmaWVsZCBkZWZpbml0aW9ucywgY2F0ZWdvcmllcywgb3IgcHJvZHVjdHMsIHlvdXIgdXNlcnMgd2lsbCBuZWVkIHRoZSAmIzAzOTtNb2RpZnkgUHJvZHVjdHMmIzAzOTsgcGVybWlzc2lvbi48L3A+DQo8bGk+KG9wdGlvbmFsKSBEZWZpbmUgb25lIG9yIG1vcmUgY2F0ZWdvcmllczwvbGk+DQo8cD5UaGlzIGlzIGFuIG9wdGlvbmFsIHN0ZXAsIGJ1dCB5b3Ugd2lsbCBwcm9iYWJseSB3YW50IHRvIGRvIHRoaXMgZWFybHkgdG8gcHJldmVudCBoYXZpbmcgdG8gZ28gYmFjayB0byBtb2RpZnkgZWFjaCBhbmQgZXZlcnkgcHJvZHVjdCBsYXRlci4gIEFkZGluZyBhIGNhdGVnb3J5IGlzIGFzIHNpbXBsZSBhcyBjbGlja2luZyBvbiB0aGUgJiMwMzk7Q2F0ZWdvcmllcyYjMDM5OyB0YWIgaW4gdGhlIFByb2R1Y3QgTWFuYWdlcnMgYWRtaW4gc2VjdGlvbiwgYW5kIGNsaWNraW5nICYjMDM5O0FkZCBBIENhdGVnb3J5JiMwMzk7LiAgRnJvbSB0aGVyZSB5b3Ugd2lsbCBiZSBwcm9tcHRlZCBmb3IgYSBjYXRlZ29yeSBuYW1lLjwvcD4NCjxsaT4ob3B0aW9uYWwpIERlZmluZSBvbmUgb3IgbW9yZSBjdXN0b20gZmllbGRzPC9saT4NCjxwPlRoaXMgaXMgYW4gb3B0aW9uYWwgc3RlcC4gIEN1c3RvbSBmaWVsZHMgYXJlIG5vdCBuZWVkZWQgaWYgdGhpcyBtb2R1bGUgc3VpdHMgeW91IGV4YWN0bHkgYXMgaXQgaXMuICBIb3dldmVyIGlmIHlvdSB3b3VsZCBsaWtlIHRvIHN0b3JlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gZm9yIGVhY2ggb2YgeW91ciBwcm9kdWN0cyB5b3UgY2FuIGNyZWF0ZSBjdXN0b20gZmllbGRzLiAgQ3JlYXRpbmcgY3VzdG9tIGZpZWxkcyBpcyBzaW1pbGFyIHRvIGNyZWF0aW5nIGNhdGVnb3JpZXMsIGV4Y2VwdCB0aGF0IG1vcmUgZGF0YSBpcyByZXF1ZXN0ZWQuPC9wPg0KPHA+Q3VycmVudGx5IG9ubHkgdGhyZWUgdHlwZXMgb2YgY3VzdG9tIGZpZWxkcyBhcmUgYXZhaWxhYmxlOiAmIzAzOTt0ZXh0Ym94JiMwMzk7LCYjMDM5O2NoZWNrYm94JiMwMzk7LGFuZCAmIzAzOTt0ZXh0YXJlYSYjMDM5Oy4gIFNlbGVjdCBvbmUgb2YgdGhlc2UsIGdpdmUgeW91ciBuZXcgZmllbGQgYSBuYW1lLCBhbmQgaW5kaWNhdGUgd2V0aGVyIHRoYXQgZmllbGQgc2hvdWxkIGJlIHZpc2libGUgdG8gdGhlIHB1YmxpYyBpbiB0aGUgdmFyaW91cyB2aWV3cy4gIFRoZW4gaGl0IHN1Ym1pdDwvcD4NCjxsaT5DcmVhdGUgb25lIG9yIG1vcmUgcHJvZHVjdHM8L2xpPg0KPHA+WW91IHNob3VsZCBjcmVhdGUgb25lIG9yIG1vcmUgcHJvZHVjdHMgdG8gZGlzcGxheSBpbiB5b3VyIHdlYnNpdGUgY29udGVudC4gIEdpdmUgZWFjaCBwcm9kdWN0IGEgbmFtZSwgYSBwcmljZSAob3B0aW9uYWwpIGEgd2VpZ2h0IChvcHRpb25hbCksIGEgc3RhdHVzIChkcmFmdCBvciBwdWJsaXNoZWQpLCBhbmQgc29tZSBpbmZvcm1hdGlvbi4gIEFkZGl0aW9uYWxseSwgeW91IGNhbiB1cGxvYWQgdXAgdHdvIGltYWdlcyBmb3IgZWFjaCBwcm9kdWN0LCBhbmQgc3BlY2lmeSBpZiB0aGUgcHJvZHVjdCBpcyB0YXhhYmxlLjwvcD4NCjxwPklmIGNhdGVnb3JpZXMgYXJlIGRlZmluZWQsIHRoZW4gYSBjaGVja2JveCB3aWxsIGFwcGVhciBmb3IgZWFjaCBkZWZpbmVkIGNhdGVnb3J5LiAgWW91IGNhbiBzaW1wbHkgY2xpY2sgdGhlIGNoZWNrYm94IGZpZWxkcyBmb3IgZWFjaCBjYXRlZ29yeSB0aGF0IHRoaXMgcHJvZHVjdCBzaG91bGQgYmVsb25nIHRvLjwvcD4NCjxwPklmIGN1c3RvbSBmaWVsZHMgYXJlIGRlZmluZWQsIHRoZW4gaW5wdXQgZmllbGRzIGFwcHJvcHJpYXRlIHRvIHRoZSB0eXBlIG9mIGN1c3RvbSBmaWVsZCB3aWxsIGFwcGVhciBhbmQgYWxsb3cgeW91IHRvIHNwZWNpZnkgZGF0YSBmb3IgZWFjaCBvZiB0aGVtLiAgVGhpcyBkYXRhIGlzIG9wdGlvbmFsLjwvcD4NCjxsaT5BZGQgdGhlIGFwcHJvcHJpYXRlIHRhZ3MgaW50byB5b3VyIHBhZ2UgdGVtcGxhdGVzIG9yIHBhZ2UgY29udGVudDwvbGk+DQo8cD5UaGlzIGNhbiBiZSBhcyBzaW1wbGUgYXMgYWRkaW5nIHRoZSA8c3Ryb25nPntQcm9kdWN0c308L3N0cm9uZz4gdGFnIGludG8gdGhlIGNvbnRlbnQgYXJlYSBvZiBvbmUgb2YgeW91ciBwYWdlcywgb3IgaW50byB5b3VyIHBhZ2UgdGVtcGxhdGUuPC9wPg0KPHA+SWYgeW91IHdpc2ggdG8gYWx0ZXIgdGhlIGJlaGF2aW91ciBvZiB0aGlzIGFwcGxpY2F0aW9uIGZyb20gaXRzIGRlZmF1bHQsIHlvdSBjYW4gZG8gdGhhdCBieSBhZGRpbmcgb25lIG9yIG1vcmUgcGFyYW1ldGVycyB0byB0aGUgPHN0cm9uZz57UHJvZHVjdHN9PC9zdHJvbmc+IHRhZy4gIFRoZSBjb21wbGV0ZSBsaXN0IG9mIHBhcmFtZXRlcnMgYW5kIHRoZWlyIGJlaGF2aW91ciBpcyBsaXN0ZWQgYmVsb3cuICBCdXQgZm9yIGV4YW1wbGUsIHRvIGRpc3BsYXkgYSBsaXN0IG9mIHByb2R1Y3RzIGluIGEgc2luZ2xlLCBleGlzdGluZyBjYXRlZ29yeSwgeW91IGNvdWxkIHVzZSBhIHRhZyBsaWtlIDxjb2RlPntQcm9kdWN0cyBjYXRlZ29yeT0mIzAzOTtjYXRlZ29yeW5hbWUmIzAzOTt9PC9jb2RlPjwvcD4NCjwvdWw+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gIEhvd2V2ZXIgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcyBvciB0byBmaWxlIGEgYnVnIHJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBjbXMgbWFkZSBzaW1wbGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkRldmVsb3BlcnMgRm9yZ2U8L2E+IGFuZCBkbyBhIHNlYXJjaCBmb3IgJiMwMzk7UHJvZHVjdHMmIzAzOTs8L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0mcXVvdDttYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5Sb2JlcnQgQ2FtcGJlbGw8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5DTVMgTWFkZSBTaW1wbGUgRm9ybXMuPC9hPjwvbGk+DQo8bGk+Rm9yIHNvbWUgcXVlc3Rpb25zIGFuZCBsaW1pdGVkIHRlY2huaWNhbCBzdXBwb3J0LCB0aGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMmcXVvdDs+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPC91bD4nOwokbGFuZ1snaGllcmFyY2h5J10gPSAnR2VyYXJjaGlhJzsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gJ1Bvc2l6aW9uZSBnZXJhcmNoaWEnOwokbGFuZ1snaWQnXSA9ICdJRCc7CiRsYW5nWydpbWFnZXRleHQnXSA9ICdJbW1hZ2luZSc7CiRsYW5nWydpbmNsdWRlX2NoaWxkcmVuJ10gPSAnSW5jbHVkbyBGaWdsaT8nOwokbGFuZ1snaW5mb19hbG51bW9ubHknXSA9ICdTb2xvIGNhcmF0dGVyaSBhbGZhbnVtZXJpY2kuIE5vIHNwYXppLCB2aXJnb2xldHRlLCBhcGljaSBvIGNvbWJpbmF6aW9uaSBsZXR0ZXJlL251bWVyaSc7CiRsYW5nWydpbmZvX2ZpZWxkcHJvYmxlbXMnXSA9ICdQcm9ibGVtYSBjb24gdW5vIG8gcGkmdWdyYXZlOyBkZWkgY2FtcGkgcGVyc29uYWxpenphdGkuIEwmIzAzOTthemlvbmUgaGEgdGVybWluYXRvIGNvbiBzdWNjZXNzbywgdHV0dGF2aWEgdm9pIGRvdnJlc3RlIGludmVzdGlnYXJlIGUgY29ycmVnZ2VyZSBxdWVzdGkgcHJvYmxlbWknOwokbGFuZ1snaW5mb19wcmljZV9hZGp1c3RtZW50J10gPSAnVmFsb3JpIHZhbGlkaSBzb25vICstKiMuIyMnOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gJ0NhbXBpIHB1YmJsaWNpIHNvbm8gdXRpbGl6emFiaWxpIHBlciBpbCBwdWJibGljbyBkYSB2ZWRlcmUnOwokbGFuZ1snbGFiZWwnXSA9ICdFdGljaGV0dGEnOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnVWx0aW1hIG1vZGlmaWNhJzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnU2Vjb25kYSBpbW1hZ2luZSc7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYXNzaW1hIGx1bmdoZXp6YSA8ZW0+KGFwcGxpY2FiaWxlIHNvbG8gc3UgY2FtcGkgdGV4dGJveCk8L2VtPic7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICdEYXRhIGRpIG1vZGlmaWNhJzsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gJ1VuIG1vZHVsbyBwZXIgZ2VzdGlyZSB1biBjYXRhbG9nbyBkaSBwcm9kb3R0aSwgbG9ybyBwcmV6emksIGltbWFnaW5pLCBldGMsIGUgcGVybWV0dGUgYWdsaSB1dGVudGkgZGkgY29zdHJ1aXJlIHVuIGNhcnJlbGxvJzsKJGxhbmdbJ25hbWUnXSA9ICdOb21lJzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnTm9uIGF2ZXRlIGkgcGVybWVzc2kgcmljaGllc3RpOiAlcyc7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICdOZXNzdW4gbm9tZSBmdSBpbnNlcml0byc7CiRsYW5nWydub25lJ10gPSAnTmVzc3Vubyc7CiRsYW5nWydvZiddID0gJ2RpJzsKJGxhbmdbJ3BhZ2UnXSA9ICdQYWdpbmEnOwokbGFuZ1sncGFnZV9vZiddID0gJ1BhZ2luYSAlcyBkaSAlcyc7CiRsYW5nWydwYWdlX2xpbWl0J10gPSAnTGltaXRlIHBhZ2luYSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcGVjaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5oaWVyYXJjaHkgLS0gRGlzcGxheSBhIHByb2R1Y3QgbGlzdCBieSBoaWVyYXJjaHk8L2xpPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdCBjYXRlZ29yaWVzPC9saT4NCiAgPGxpPjxlbT5kZWZhdWx0PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyeSBvZiBwcm9kdWN0czwvbGk+DQogIDxsaT5kZXRhaWwgLSBEaXNwbGF5IGEgZGV0YWlsIHZpZXcgb2YgYSBzaW5nbGUgcHJvZHVjdDwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ1F1YW5kbyB1c2F0byBuZWwgbW9kbyA8ZW0+ZGVmYXVsdDwvZW0+IHNvbW1hcmlvLCBxdWVzdG8gcGFyYW1ldHJvLCBkb3ZyZWJiZSBjb3JyaXNwb25kZXJlIGNvbCBub21lIGRpIHVuYSBjYXRlZ29yaWEgZXNpc3RlbnRlIHVzYXRhIHBlciB2aXN1YWxpenphcmUgc29sbyBxdWVpIHRlcm1pbmkgY2hlIHNvbm8gaW4gcXVlbGxhIGNhdGVnb3JpYS4gKHB1Jm9ncmF2ZTsgZXNzZXJlIGZvcm5pdGEgdW5hIGxpc3RhIHNlcGFyYXRhIGRhIHZpcmdvbGEpJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnVXRpbGUgc29sbyBjb24gbCYjMDM5O2F6aW9uZSBjYXRlZ29yeWxpc3QsIHF1ZXN0byBwYXJhbWV0cm8gaW5kaWNhIGlsIE1vZGVsbG8gY2hlIGRvdnJlYmJlIGVzc2VyZSB1dGlsaXp6YXRvIHBlciBsYSB2aXN1YWxpenphemlvbmUuIFNlIG5lc3N1biB2YWxvcmUgJmVncmF2ZTsgc3BlY2lmaWNhdG8gYWxsb3JhICZlZ3JhdmU7IHVzYXRvIGlsIE1vZGVsbG8gcHJlZGVmaW5pdG8gY29ycmVudGUgZGkgcXVlbCB0aXBvLic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnUXVlc3RvIHNwZWNpZmljYSBpbCBwYWdlaWQgbyBhbGlhcyBjaGUgZG92cmViYmUgZXNzZXJlIHVzYXRvIHBlciB2aXN1YWxpenphcmUgaWwgcmVwb3J0IGRldHRhZ2xpby4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdRdWVzdG8gcGFyYW1ldHJvIHNwZWNpZmljYSBpbCBNb2RlbGxvIGNoZSBkb3ZyZWJiZSBlc3NlcmUgdXNhdG8gcGVyIGxhIHZpc3VhbGl6emF6aW9uZSBkZXR0YWdsaW8uIFNlIG5lc3N1biB2YWxvcmUgJmVncmF2ZTsgc3BlY2lmaWNhdG8sIGFsbG9yYSBzYXImYWdyYXZlOyB1c2F0byBpbCBNb2RlbGxvIHByZWRlZmluaXRvIGRlbCB0aXBvIGNvcnJlbnRlLic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHknXSA9ICdVdGlsZSBzb2xvIGNvbiBsJiMwMzk7YXppb25lIDxlbT5kZWZhdWx0PC9lbT4sIHF1ZXN0byBwYXJhbWV0cm8gc3BlY2lmaWNhIGNoZSBzb2xvaSB0ZXJtaW5pIG5lbGxhIGxvY2F6aW9uZSBnZXJhcmNoaWNhIGRvdnJlYmJlcm8gZXNzZXJlIHZpc3VhbGl6emF0aS4gQ2FyYXR0ZXJpIHdpbGRjYXJkIHBvc3Nvbm8gZXNzZXJlIHVzYXRpIGNvcyZpZ3JhdmU7IGNoZSB2b2kgcG90ZXRlIHNwZWNpZmljYXJlIHJlbGF6aW9uaSBwYXJlbnQvZmlnbGkuIFBlciBlc2VtcGlvIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7dHJ1Y2tzKiYjMDM5O30gY3JlYSB1biByZXBvcnQgc29tbWFyaW8gZGkgdHV0dGkgaSB0cnVja3MsIGluY2x1c28gaSBmaWdsaSBuZWxsYSBnZXJhcmNoaWEuIFNpbWlsbWVudGUsIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7KnRydWNrcyYjMDM5O30gdmlzdWFsaXp6YSB1biByZXBvcnQgc29tbWFyaW8gZGkgdHV0dGkgaSB0cnVja3MgZSB0dXR0aSBpIHByb2RvdHRpIHRlbnV0aSBkYSBvZ25pIHBhcmVudCBuZWxsYSBnZXJhcmNoaWEuJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ1V0aWxlIHNvbG8gY29uIGwmIzAzOTthemlvbmUgPGVtPmRlZmF1bHQ8L2VtPiwgcXVlc3RvIHBhcmFtZXRybyBzcGVjaWZpY2EgcXVhbnRpIHRlcm1pbmkgZG92cmViYmVybyBlc3NlcmUgdmlzdWFsaXp6YXRpIHN1IGNpYXNjdW5hIHBhZ2luYS4nOwokbGFuZ1sncGFyYW1fcGFyZW50J10gPSAnVXRpbGUgc29sbyBjb24gbCYjMDM5O2F6aW9uZSA8ZW0+Z2VyYXJjaGlhPC9lbT4sIHF1ZXN0byBwYXJhbWV0cm8gc3BlY2lmaWNhIGwmIzAzOTtpZCBkZWxsYSBnZXJhcmNoaWEgZGVsbGEgbG9jYXppb25lIGRpIHBhcnRlbnphIGRlbCByZXBvcnQuJzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RpZCddID0gJ1V0aWxlIHNvbG8gY29uIGwmIzAzOTthemlvbmUgZGV0dGFnbGlvLCBxdWVzdG8gcGFyYW1ldHJvIGluZGljYSBpbCBwcm9kb3R0byBjaGUgZG92cmViYmUgZXNzZXJlIHV0aWxpenphdG8gcGVyIGxhIHZpc3VhbGl6emF6aW9uZS4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmeSB0aGUgb3JkZXIgb2Ygc29ydGVkIGZpZWxkcyBpbiBzdW1tYXJ5IHZpZXcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4NCiAgPGxpPmRlc2MgLS0gRGVzY2VuZGluZyBvcmRlcjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIG9ubHkgaW4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQgY29tcGFuaWVzLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+cHJvZHVjdF9uYW1lPC9zdHJvbmc+PC9saT4NCiAgPGxpPnByaWNlIC0tIFRoZSBwcm9kdWN0IGJhc2UgcHJpY2U8L2xpPg0KICA8bGk+c3RhdHVzIC0tIERyYWZ0IG9yIHB1Ymxpc2hlZDwvbGk+DQogIDxsaT5yYW5kb20gLS0gRGlzcGxheSBpbiByYW5kb20gb3JkZXIgb24gZWFjaCByZXF1ZXN0PC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gVGhlIGNyZWF0aW9uIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KICA8bGk+bW9kaWZpZWQgLS0gVGhlIG1vZGlmaWVkIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnUXVlc3RvIHBhcmFtZXRybyBzcGVjaWZpY2EgaWwgTW9kZWxsbyBjaGUgc2FyJmFncmF2ZTsgdXRpbGl6emF0byBwZXIgbGEgdmlzdWFsaXp6YXppb25lIGRlbCBtb2RvIHNvbW1hcmlvLiBTZSBuZXNzdW4gdmFsb3JlICZlZ3JhdmU7IHNwZWNpZmljYXRvLCBhbGxvcmEgaWwgc2FyJmFncmF2ZTsgdXRpbGl6emF0byBpbCBNb2RlbGxvIHByZWRlZmluaXRvIGRpIHF1ZWwgdGlwby4nOwokbGFuZ1sncGFyZW50J10gPSAnUGFyZW50JzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnSWwgbW9kdWxvIFByb2R1Y3RzICZlZ3JhdmU7IHN0YXRvIGluc3RhbGxhdG8gY29uIHN1Y2Nlc3NvJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdJbCBtb2R1bG8gUHJvZHVjdHMgJmVncmF2ZTsgc3RhdG8gcmltb3NzbyBjb24gdHV0dGkgaSBkYXRpIGFzc29jaWF0aSc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1ByZWZlcmVuemUnOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnUmltdW92ZXJlIHF1ZXN0byBtb2R1bG8gcmltdW92ZXImYWdyYXZlOyBhbmNoZSB0dXR0aSBpIGRhdGkgYXNzb2NpYXRpLCBzaWV0ZSBzaWN1cmkgZGkgdm9sZXIgcHJvY2VkZXJlPyc7CiRsYW5nWydwcmljZSddID0gJ1ByZXp6byc7CiRsYW5nWydwcmljZV9hZGp1c3RtZW50J10gPSAnUHJlenpvIGRpIGFkZWd1YW1lbnRvJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCc7CiRsYW5nWydwcm9kdWN0J10gPSAnUHJvZG90dG8nOwokbGFuZ1sncHJvZHVjdG5hbWUnXSA9ICdOb21lIFByb2RvdHRvJzsKJGxhbmdbJ3Byb2R1Y3RzJ10gPSAnR2VzdGlvbmUgUHJvZG90dG8nOwokbGFuZ1sncHJvZHVjdF9oaWVyYXJjaHknXSA9ICdHZXJhcmNoaWEgUHJvZG90dG8nOwokbGFuZ1sncHJvZHVjdF9tYW5hZ2VyJ10gPSAnR2VzdG9yZSBQcm9kb3R0byc7CiRsYW5nWydwcm9tcHQnXSA9ICdQcm9tcHQnOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfZmlsZXR5cGVzJ10gPSAnUGVybWV0dGVyZSBsJiMwMzk7dXBsb2FkIGRpIGZpbGVzIGNvbiBxdWVzdGUgZXN0ZW5zaW9uaSAocGVyIGNhbXBpIHRpcG8gZmlsZSknOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2V0eXBlcyddID0gJ1Blcm1ldHRlcmUgbCYjMDM5O3VwbG9hZCBkaSBpbW1hZ2luaSBjb24gcXVlc3RlIGVzdGVuc2lvbmkgIChwZXIgY2FtcGkgdGlwbyBpbW1hZ2luZSknOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWwnXSA9ICdBdXRvbWF0aWNhbWVudGUgY3JlYSBtaW5pYXR1cmUgZGkgaW1tYWdpbmknOwokbGFuZ1sncHJvbXB0X2FwcGxpY2FibGUnXSA9ICdBYmlsaXRhdG8gcGVyIHR1dHRpIGkgbnVvdmkgcHJvZG90dGknOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAnU2ltYm9sbyBDb3JyZW50ZSc7CiRsYW5nWydwcm9tcHRfZGVsZXRlcHJvZHVjdGZpbGVzJ10gPSAnQ2FuY2VsbGEgaSBmaWxlcyBhc3NvY2lhdGkgY29uIGlsIHByb2RvdHRvIHF1YW5kbyB2aWVuZSBjYW5jZWxsYXRvPyc7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ1BhZ2luYSBkZXR0YWdsaW8gcHJlZGVmaW5pdGEnOwokbGFuZ1sncHJvbXB0X3RheHJhdGUnXSA9ICdSYXBwb3J0byBUYXgnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdPcmRpbmUgcHJlZGVmaW5pdG8gbmVsIG1vZG8gc29tbWFyaW8nOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnQ2FtcG8gZGVsbCYjMDM5O29yZGluZSBwcmVkZWZpbml0byBuZWwgbW9kbyBzb21tYXJpbyc7CiRsYW5nWydwcm9tcHRfdGF4MSddID0gJ1ByaW1hIFRheCc7CiRsYW5nWydwcm9tcHRfdGF4MiddID0gJ1NlY29uZGEgVGF4JzsKJGxhbmdbJ3Byb21wdF90YXhuYW1lJ10gPSAnTm9tZSBUYXgnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnTW9kZWxsbyBzb3JnZW50ZSc7CiRsYW5nWydwcm9tcHRfd2VpZ2h0dW5pdHMnXSA9ICdVbml0JmFncmF2ZTsgZGkgcGVzbyc7CiRsYW5nWydwdWJsaWMnXSA9ICdFJiMwMzk7IHVuIGNhbXBvIHB1YmJsaWNvPyc7CiRsYW5nWydwdWJsaXNoZWQnXSA9ICdQdWJibGljYXRvJzsKJGxhbmdbJ3JhbmRvbSddID0gJ1JhbmRvbSc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ0F6emVyYSBhaSB2YWxvcmkgaW5pemlhbGknOwokbGFuZ1sncm9vdCddID0gJ1JhZGljZSc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2VsZXppb25hIHVubyc7CiRsYW5nWydzb3J0X2J5J10gPSAnT3JkaW5lIHBlcic7CiRsYW5nWydzb3J0X29yZGVyJ10gPSAnVGlwbyBvcmRpbmUnOwokbGFuZ1snc3RhdHVzJ10gPSAnU3RhdG8nOwokbGFuZ1snc3VibWl0J10gPSAnSW52aW8nOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ01vZGVsbGkgU29tbWFyaW8nOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZ2dpdW5nZXJlL01vZGlmaWNhIHVuIE1vZGVsbG8gc29tbWFyaW8nOwokbGFuZ1sndGF4YWJsZSddID0gJ0ltcG9uaWJpbGUnOwokbGFuZ1sndGF4X21vZHVsZSddID0gJ01vZHVsbyBmaXNjYWxlJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnVGV4dCBBcmVhJzsKJGxhbmdbJ3RleHRib3gnXSA9ICdUZXh0IElucHV0JzsKJGxhbmdbJ3RpdGxlX2J5aGllcmFyY2h5X2RmbHR0ZW1wbGF0ZSddID0gJ01vZGVsbG8gbnVvdm8gUmVwb3J0IGdlcmFyY2hpY28nOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ01vZGVsbG8gbnVvdm8gTGlzdGEgY2F0ZWdvcmllIHByZWRlZmluaXRvJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdNb2RlbGxvIG51b3ZvIGRldHRhZ2xpbyBwcmVkZWZpbml0byc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ01vZGVsbG8gbnVvdm8gc29tbWFyaW8gcHJlZGVmaW5pdG8nOwokbGFuZ1sndHlwZSddID0gJ1RpcG8nOwokbGFuZ1sndXBkYXRlJ10gPSAnQWdnaW9ybmEnOwokbGFuZ1sndXBsb2FkJ10gPSAnU2VsZXppb25hIHVuIGZpbGUgcGVyIHVwbG9hZCc7CiRsYW5nWyd2YWx1ZSddID0gJ1ZhbG9yZSc7CiRsYW5nWyd2YWx1ZXMnXSA9ICdWYWxvcmknOwokbGFuZ1snd2VpZ2h0J10gPSAnUGVzbyc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjE4MDcxNTE2NDAuMTE4Mjk2MDQ1Ni4xMjA2NTY4Mjk2LjEyMDY3OTc3NjMuNDU4JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIwNjU2ODI5Ni40NTcuMzIudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWZvcnVtLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vaW5kZXgucGhwfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZCddID0gJ0xlZ2cgdGlsJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnTGVnZyB0aWwgZW4ga2F0ZWdvcmknOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdMZWdnIHRpbCBmZWx0JzsKJGxhbmdbJ2FkZHByb2R1Y3QnXSA9ICdMZWdnIHRpbCBwcm9kdWt0JzsKJGxhbmdbJ2FkZF9hdHRyaWJfc2V0J10gPSAnTGVnZyB0aWwgYXR0cmlidXR0JzsKJGxhbmdbJ2FkZF9oaWVyYXJjaHlfaXRlbSddID0gJ0xlZ2cgdGlsIGhpZXJhcmtpIGFydGlra2VsJzsKJGxhbmdbJ2FkZF9vcHRpb24nXSA9ICdMZWdnIHRpbCBhdHRyaWJ1dHQgdmFsZyc7CiRsYW5nWydhZG1pbl9vbmx5J10gPSAnS2FuIGt1biBhZG1pbmlzdHJhdG9yZXIgc2UgZGVubmUgYXR0cmlidXR0ZW4/JzsKJGxhbmdbJ2FsbGNhdGVnb3JpZXMnXSA9ICdBbGxlIGthdGVnb3JpZXInOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0VyIGR1IHNpa2tlcj8nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVwcm9kdWN0J10gPSAnRXIgZHUgdmlya2VsaWcgc2lra2VyIHAmYXJpbmc7IGF0IGR1IHZpbCBzbGV0dGUgZGV0dGUgcHJvZHVrdGV0IG9nIGFsbCBkZXRzIHRpbGgmb3NsYXNoO3JlbmRlIGluZm9ybWFzam9uPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdTdGlnZW5kZSc7CiRsYW5nWydhdHRyaWJ1dGVfbmFtZSddID0gJ0F0dHJpYnV0dCBuYXZuJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVzJ10gPSAnSGllcmFya2kgcmFwcG9ybWFsZXInOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGVnZyB0aWwvcmVkaWdlciBIaWVyYXJraSByYXBwb3JtYWwnOwokbGFuZ1snY2FuY2VsJ10gPSAnQXZicnl0JzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdLYXRlZ29yaWVyJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnS2F0ZWdvcmknOwokbGFuZ1snY2F0ZWdvcnlleGlzdHMnXSA9ICdFbiBrYXRlZ29yaSBtZWQgZGV0IG5hdm5ldCBla3Npc3RlcmVyIGFsbGVyZWRlJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0thdGVnb3JpbGlzdGUgbWFsZXInOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0xlZ2cgdGlsL3JlZGlnZXIga2F0ZWdvcmkgTGlzdGVtYWwnOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPg0KPGxpPlZlcnNpb24gMS4wIC0gRGVjZW1iZXIsIDIwMDcNCiAgIDxwPkluaXRpYWwgUmVsZWFzZTwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuMSAtIEphbnVhcnksIDIwMDgNCiAgIDx1bD4NCiAgICAgPGxpPkFkZHMgcGFnaW5hdGlvbiBpbiBzdW1tYXJ5IHZpZXc8L2xpPg0KICAgICA8bGk+Rml4ZXMgYSBwcm9ibGVtIHdpdGggZHVwbGljYXRlIGxpbmtzIGluIHN1bW1hcnkgdmlldzwvbGk+DQogICA8L3VsPg0KPC9saT4NCjxsaT5WZXJzaW9uIDIuMCAtIEFwcmlsLCAyMDA4DQogIDx1bD4NCiAgICAgPGxpPkFkZHMgaGllcmFyY2hpY2FsIGNhdGVnb3JpZXMgYXMgd2VsbCBhcyB0aGUgb3JpZ2luYWwgJiMwMzk7dGFnJiMwMzk7IGJhc2VkIGNhdGVnb3JpZXMuPGJyLz4NCiAgICAgICAgIEhpZXJhcmNoaWNhbCBjYXRlZ29yaWVzIGNhbiBoYXZlIGFuIGltYWdlIGFzIHdlbGwgYXMgYSBkZXNjcmlwdGlvbi48L2xpPg0KICAgICA8bGk+QWRkcyBtb3JlIGN1c3RvbSBmaWVsZCB0eXBlcyAoaW1hZ2UsIGRyb3Bkb3duKTxici8+DQogICAgICAgICBJbmNsdWRpbmcgdGh1bWJuYWlsIGdlbmVyYXRpb24uPC9saT4NCiAgICAgPGxpPlJlbW92ZSB0aGUgb3JpZ2luYWwgaW1hZ2UgZmllbGRzPC9saT4NCiAgICAgPGxpPkFkZHMgU2VhcmNoIG1vZHVsZSBjYXBhYmlsaXR5PC9saT4NCiAgICAgPGxpPkFkZHMgYSBoaWVyYXJjaGljYWwgY2F0ZWdvcnkgdmlldyB3aXRoIGRyaWxsIGRvd24gc3VwcG9ydDwvbGk+DQogICAgIDxsaT5NdWNoLCBtdWNoIG1vcmU8L2xpPg0KICA8L3VsPg0KPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnQXZrcnlzbmluZ3Nib2tzJzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX2hpZXJhcmNoeV9ub2RlJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGF0IGR1IHZpbCBzbGV0dGUgZGVubmUgbm9kZW4/IEFsbGUgcHJvZHVrdGVyIHNvbSBicnVrZXIgZGVubmUgbm9kZW4gdmlsIGJsaSBzYXR0IHRpbCBpbmdlbiBoaWVyYXJraSc7CiRsYW5nWydjcmVhdGVkZGF0ZSddID0gJ09wcHJldHRldCBkYXRvJzsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICdOJmFyaW5nO3YmYWVsaWc7cmVuZGUgdmVyZGknOwokbGFuZ1snZGVmYXVsdHRlbXBsYXRlcyddID0gJ1N0YW5kYXJkIG1hbGVyJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5NZXJrOjwvc3Ryb25nPiBJbm5ob2xkZXQgaSBkaXNzZSB0ZWtzb21yJmFyaW5nO2RlbmUgYmVueXR0ZXMgZm9yICZhcmluZzsgbGFnZSBzdGFuZGFyZGlubmhvbGQgaSBtYWxlbmUgbiZhcmluZztyIGR1IGtsaWtrZXIgJiMwMzk7TGVnZyB0aWwgbWFsJiMwMzk7IGkgZGVuIGFrdHVlbGxlIG1hbGZsaWtlbi4gJkFyaW5nOyByZWRpZ2VyZSBlbiBhdiBkaXNzZSB0ZWtzdG9tciZhcmluZztkZW5lIHZpbCBpa2tlIGhhIHVtaWRkZWxiYXIgZWZmZWt0IHAmYXJpbmc7IGRpdHQgbmV0dHN0ZWQuJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1NsZXR0JzsKJGxhbmdbJ2RlbGV0ZV9hdHRyaWJzZXQnXSA9ICdTbGV0dCBhdHRyaWJ1dHQnOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAnU2xldHQgaGllcmFya2kgYXJ0aWtrZWwnOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ1N5bmtlbmRlJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnQmVza3JpdmVsc2UnOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFsamVyJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ0RldGFsam1hbGVyJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbC9yZWRpZ2VyIGVuIGRldGFsam1hbCc7CiRsYW5nWydkaXNhYmxlZCddID0gJ0luYWt0aXZlcnQnOwokbGFuZ1snZHJhZnQnXSA9ICdLbGFkZCc7CiRsYW5nWydkcm9wZG93biddID0gJ05lZHRyZWtrJzsKJGxhbmdbJ2Ryb3Bkb3duX29wdGlvbnMnXSA9ICdOZWR0cmVra3N2YWxnIDxlbT4oa3VuIGd5bGRpZyBmb3IgbmVkdHJla2tzZmVsdCk8L2VtPjxici8+PGJyLz48ZW0+KGVuIHBvc3QgcHIgbGluamUpPC9lbT4nOwokbGFuZ1snZWRpdCddID0gJ1JlZGlnZXInOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzJ10gPSAnUmVkaWdlciBhdHRyaWJ1dHQgc2V0dCc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHNfZm9yJ10gPSAnUmVkaWdlciBhdHRyaWJ1dHQgc2V0dCBmb3InOwokbGFuZ1snZWRpdF9hdHRyaWJ1dGVzJ10gPSAnUmVkaWdlciBhdHRyaWJ1dHRlcic7CiRsYW5nWydlZGl0X2hpZXJhcmNoeV9pdGVtJ10gPSAnUmVkaWdlciBoaWVyYXJraSBhcnRpa2tlbCc7CiRsYW5nWydlcnJvcl9hdHRyaWJzZXRfZXhpc3RzJ10gPSAnRW4gYXR0cmlidXR0IG1lZCBkZXQgbmF2bmV0IGVrc2lzdGVyZXIgYWxsZXJlZGUnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmVudCddID0gJ1VneWxkaWcgZm9yZWxkcmUgKGVuIGhpZXJhcmtpIG5vZGUga2FuIGlra2UgdiZhZWxpZztyZSBzaW4gZWdlbiBmb3JlbGRyZSknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9uYW1lJ10gPSAnRWtzdHJhKGN1c3RvbSkgZmVsdHZlcmRpZW4gc29tIGJsZSBvcHBnaXR0IGVyIHVneWxkaWcgKGlubmVob2xkZXIgaWtrZS1hbGZhbnVtbWVyaXNrZSB0ZWduKSc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdFbiBuJm9zbGFzaDtkdmVuZGlnIHBhcmFtZXRlciBtYW5nbGVyIGVsbGVyIGVyIHVneWxkaWcnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9uYW1ldXNlZCddID0gJ0V0IHByb2R1a3QgbWVkIGRldCBuYXZuZXQgZWtzaXN0ZXJlciBhbGxlcmVkZSc7CiRsYW5nWydlcnJvcl9wcmljZV9hZGp1c3RtZW50J10gPSAnVWd5bGRpZyBwcmlzanVzdGVyaW5nc3ZlcmRpIGZvciBlbmhldCAlcyc7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnT3BwbGFzdGluZyBmZWlsZXQ6ICVzJzsKJGxhbmdbJ2ZpZWxkJ10gPSAnRmVsdCc7CiRsYW5nWydmaWVsZGRlZiddID0gJ0ZlbHRkZWZpbmlzam9uJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0ZlbHRkZWZpbmlzam9uZXInOwokbGFuZ1snZmlsZSddID0gJ0ZpbCc7CiRsYW5nWydmaWx0ZXJzJ10gPSAnRmlsdHJlJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8ICc7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+DQo8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBhIHdheSB0byBjb2xsZWN0LCBvcmdhbml6ZSwgYW5kIGRpc3BsYXkgaW5mb3JtYXRpb24gYWJvdXQgcHJvZHVjdHMgYW5kIHRoZWlyIGNhdGVnb3JpZXMuICBUaGlzIG1vZHVsZSBjYW4gc3RhbmQgb24gaXRzIG93biwgb3IgYmUgcGFydCBvZiBhbiBlLWNvbW1lcmNlIHNvbHV0aW9uIGlmIHlvdSB3aXNoLiAgVGhlIG1vZHVsZSBzdXBwb3J0cyBhIHByb2R1Y3QgZXhpc3RpbmcgaW4gbW9yZSB0aGFuIG9uZSBjYXRlZ29yeSwgc3VwcG9ydHMgcHJvZHVjdCB3ZWlnaHQsIHByaWNlLCBhbmQgYXR0cmlidXRlIHNldHMuICBFYWNoIGl0ZW0gaW4gYW4gYXR0cmlidXRlIHNldCBjYW4gaGF2ZSBhIHByaWNlIGFkanVzdG1lbnQuICBBbHNvIGEgZ2xvYmFsIGZsYWcgaW5kaWNhdGVzIHdldGhlciB0aGUgcHJvZHVjdCBpcyAmIzAzOTt0YXhhYmxlJiMwMzk7IG9yIG5vdC48L3A+DQogIDxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGZvciB1cCB0byB0d28gaW1hZ2VzIHBlciBwcm9kdWN0LCBjdXN0b20gZmllbGQgZGVmaW5pdGlvbnMsIGFuZCBmb3IgdGhlIGFiaWxpdHkgdG8gZGVzY3JpbWluYXRlIHByaXZhdGUgZnJvbSBwdWJsaWMgZGF0YS48L3A+DQo8aDM+RmVhdHVyZXM6PC9oMz4NCjx1bD4NCiAgPGxpPk51bWVyb3VzIFZpZXdzPC9saT4NCiAgICA8dWw+DQogICAgICA8bGk+U3VtbWFyeSB2aWV3PC9saT4NCiAgICAgIDxsaT5EZXRhaWwgdmlldzwvbGk+IA0KICAgICAgPGxpPkNhdGVnb3J5IExpc3QgVmlldzwvbGk+DQogICAgPC91bD4NCiAgPGxpPkVudGlyZWx5IERhdGFiYXNlIFRlbXBsYXRlIERyaXZlbjwvbGk+DQogIDxwPk51bWVyb3VzIHRlbXBsYXRlcyBvZiBlYWNoIHR5cGUgY2FuIGJlIGRlZmluZWQsIGRlZmF1bHRzIHNwZWNpZmllZCBmb3IgZWFjaCB0eXBlLCBhbmQgdGhlIHRlbXBsYXRlIHVzZWQgZm9yIGVhY2ggcGFydGljdWxhciB2aWV3IGNhbiBiZSBzcGVjaWZpZWQgYXMgYSBwYXJhbWV0ZXI8L3A+DQogIDxsaT5Tb3J0aW5nIGFuZCBwYWdpbmF0aW9uIGluIHRoZSBzdW1tYXJ5IHZpZXc8L2xpPg0KICA8bGk+UHJvZHVjdHMgY2FuIGV4aXN0IGluIG11bHRpcGxlIGNhdGVnb3JpZXM8L2xpPg0KICA8bGk+VXAgdG8gdHdvIGltYWdlcyBwZXIgcHJvZHVjdDwvbGk+DQogIDxsaT5BZG1pbiBkZWZpbmVkIGZpZWxkczwvbGk+DQogIDxsaT5Qcm9kdWN0IGF0dHJpYnV0ZXMgKGluY2x1ZGluZyBwcmljZSBhZGp1c3RtZW50KTwvbGk+DQogIDxsaT5XZWlnaHQgYW5kIHRheGFibGUgZmllbGRzIChmb3IgdXNlIGluIGUtY29tbWVyY2Ugc29sdXRpb25zKTwvbGk+DQogIDxsaT5Qcm9kdWN0cyBjYW4gaGF2ZSBhIHN0YXR1cyAocHVibGlzaGVkIG9yIGRyYWZ0KSBpbiBvcmRlciB0byBoaWRlIHByb2R1Y3RzIGZyb20gcHVibGljIGRpc3BsYXkgYXQgYW55IHRpbWU8L2xpPg0KICA8bGk+UHJldHR5IFVSTCBTdXBwb3J0PC9saT4NCiAgPGxpPjxzdHJvbmc+TW9yZS4uLjwvc3Ryb25nPjwvbGk+DQo8L3VsPg0KDQo8aDM+SG93IERvIEkgVXNlIEl0OjwvaDM+DQo8dWw+DQo8bGk+U2V0IHByZWZlcmVuY2VzPC9saT4NCjxwPlVzdWFsbHkgdGhpcyBpcyBqdXN0IGEgZm9ybWFsaXR5LiAgWW91IHNob3VsZCBzcGVjaWZ5IHlvdXIgZGVmYXVsdCB3ZWlnaHQgdW5pdHMsIGFuZCB5b3VyIGRlZmF1bHQgY3VycmVuY3kgc3ltYm9sIGZvciB5b3VyIGxvY2FsIGVudmlyb25tZW50LjwvcD4NCjxsaT5TZXR1cCB1c2VycyBhbmQgcGVybWlzc2lvbnM8L2xpPg0KPHA+VGhpcyBtb2R1bGUgdXNlcyB0aGUgJiMwMzk7TW9kaWZ5IFRlbXBsYXRlcyYjMDM5OyBwZXJtaXNzaW9uIHRvIGFsbG93IHVzZXJzIHRvIGJlIGFibGUgdG8gbW9kaWZ5IHRoZSB2YXJpb3VzIHRlbXBsYXRlcyB0aGF0IGNhbiBiZSB1c2VkIGJ5IHRoaXMgbW9kdWxlLiAgQXMgd2VsbCwgdGhlICYjMDM5O01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJiMwMzk7IHBlcm1pc3Npb24gaXMgbmVlZGVkIHRvIGJlIGFibGUgdG8gYWRqdXN0IHRoZSBtb2R1bGVzIHByZWZlcmVuY2VzLiAgSW4gb3JkZXIgdG8gaGF2ZSB0aGUgYWJpbGl0eSB0byBtb2RpZnkgZmllbGQgZGVmaW5pdGlvbnMsIGNhdGVnb3JpZXMsIG9yIHByb2R1Y3RzLCB5b3VyIHVzZXJzIHdpbGwgbmVlZCB0aGUgJiMwMzk7TW9kaWZ5IFByb2R1Y3RzJiMwMzk7IHBlcm1pc3Npb24uPC9wPg0KPGxpPihvcHRpb25hbCkgRGVmaW5lIG9uZSBvciBtb3JlIGNhdGVnb3JpZXM8L2xpPg0KPHA+VGhpcyBpcyBhbiBvcHRpb25hbCBzdGVwLCBidXQgeW91IHdpbGwgcHJvYmFibHkgd2FudCB0byBkbyB0aGlzIGVhcmx5IHRvIHByZXZlbnQgaGF2aW5nIHRvIGdvIGJhY2sgdG8gbW9kaWZ5IGVhY2ggYW5kIGV2ZXJ5IHByb2R1Y3QgbGF0ZXIuICBBZGRpbmcgYSBjYXRlZ29yeSBpcyBhcyBzaW1wbGUgYXMgY2xpY2tpbmcgb24gdGhlICYjMDM5O0NhdGVnb3JpZXMmIzAzOTsgdGFiIGluIHRoZSBQcm9kdWN0IE1hbmFnZXJzIGFkbWluIHNlY3Rpb24sIGFuZCBjbGlja2luZyAmIzAzOTtBZGQgQSBDYXRlZ29yeSYjMDM5Oy4gIEZyb20gdGhlcmUgeW91IHdpbGwgYmUgcHJvbXB0ZWQgZm9yIGEgY2F0ZWdvcnkgbmFtZS48L3A+DQo8bGk+KG9wdGlvbmFsKSBEZWZpbmUgb25lIG9yIG1vcmUgY3VzdG9tIGZpZWxkczwvbGk+DQo8cD5UaGlzIGlzIGFuIG9wdGlvbmFsIHN0ZXAuICBDdXN0b20gZmllbGRzIGFyZSBub3QgbmVlZGVkIGlmIHRoaXMgbW9kdWxlIHN1aXRzIHlvdSBleGFjdGx5IGFzIGl0IGlzLiAgSG93ZXZlciBpZiB5b3Ugd291bGQgbGlrZSB0byBzdG9yZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZvciBlYWNoIG9mIHlvdXIgcHJvZHVjdHMgeW91IGNhbiBjcmVhdGUgY3VzdG9tIGZpZWxkcy4gIENyZWF0aW5nIGN1c3RvbSBmaWVsZHMgaXMgc2ltaWxhciB0byBjcmVhdGluZyBjYXRlZ29yaWVzLCBleGNlcHQgdGhhdCBtb3JlIGRhdGEgaXMgcmVxdWVzdGVkLjwvcD4NCjxwPkN1cnJlbnRseSBvbmx5IHRocmVlIHR5cGVzIG9mIGN1c3RvbSBmaWVsZHMgYXJlIGF2YWlsYWJsZTogJiMwMzk7dGV4dGJveCYjMDM5OywmIzAzOTtjaGVja2JveCYjMDM5OyxhbmQgJiMwMzk7dGV4dGFyZWEmIzAzOTsuICBTZWxlY3Qgb25lIG9mIHRoZXNlLCBnaXZlIHlvdXIgbmV3IGZpZWxkIGEgbmFtZSwgYW5kIGluZGljYXRlIHdldGhlciB0aGF0IGZpZWxkIHNob3VsZCBiZSB2aXNpYmxlIHRvIHRoZSBwdWJsaWMgaW4gdGhlIHZhcmlvdXMgdmlld3MuICBUaGVuIGhpdCBzdWJtaXQ8L3A+DQo8bGk+Q3JlYXRlIG9uZSBvciBtb3JlIHByb2R1Y3RzPC9saT4NCjxwPllvdSBzaG91bGQgY3JlYXRlIG9uZSBvciBtb3JlIHByb2R1Y3RzIHRvIGRpc3BsYXkgaW4geW91ciB3ZWJzaXRlIGNvbnRlbnQuICBHaXZlIGVhY2ggcHJvZHVjdCBhIG5hbWUsIGEgcHJpY2UgKG9wdGlvbmFsKSBhIHdlaWdodCAob3B0aW9uYWwpLCBhIHN0YXR1cyAoZHJhZnQgb3IgcHVibGlzaGVkKSwgYW5kIHNvbWUgaW5mb3JtYXRpb24uICBBZGRpdGlvbmFsbHksIHlvdSBjYW4gdXBsb2FkIHVwIHR3byBpbWFnZXMgZm9yIGVhY2ggcHJvZHVjdCwgYW5kIHNwZWNpZnkgaWYgdGhlIHByb2R1Y3QgaXMgdGF4YWJsZS48L3A+DQo8cD5JZiBjYXRlZ29yaWVzIGFyZSBkZWZpbmVkLCB0aGVuIGEgY2hlY2tib3ggd2lsbCBhcHBlYXIgZm9yIGVhY2ggZGVmaW5lZCBjYXRlZ29yeS4gIFlvdSBjYW4gc2ltcGx5IGNsaWNrIHRoZSBjaGVja2JveCBmaWVsZHMgZm9yIGVhY2ggY2F0ZWdvcnkgdGhhdCB0aGlzIHByb2R1Y3Qgc2hvdWxkIGJlbG9uZyB0by48L3A+DQo8cD5JZiBjdXN0b20gZmllbGRzIGFyZSBkZWZpbmVkLCB0aGVuIGlucHV0IGZpZWxkcyBhcHByb3ByaWF0ZSB0byB0aGUgdHlwZSBvZiBjdXN0b20gZmllbGQgd2lsbCBhcHBlYXIgYW5kIGFsbG93IHlvdSB0byBzcGVjaWZ5IGRhdGEgZm9yIGVhY2ggb2YgdGhlbS4gIFRoaXMgZGF0YSBpcyBvcHRpb25hbC48L3A+DQo8bGk+QWRkIHRoZSBhcHByb3ByaWF0ZSB0YWdzIGludG8geW91ciBwYWdlIHRlbXBsYXRlcyBvciBwYWdlIGNvbnRlbnQ8L2xpPg0KPHA+VGhpcyBjYW4gYmUgYXMgc2ltcGxlIGFzIGFkZGluZyB0aGUgPHN0cm9uZz57UHJvZHVjdHN9PC9zdHJvbmc+IHRhZyBpbnRvIHRoZSBjb250ZW50IGFyZWEgb2Ygb25lIG9mIHlvdXIgcGFnZXMsIG9yIGludG8geW91ciBwYWdlIHRlbXBsYXRlLjwvcD4NCjxwPklmIHlvdSB3aXNoIHRvIGFsdGVyIHRoZSBiZWhhdmlvdXIgb2YgdGhpcyBhcHBsaWNhdGlvbiBmcm9tIGl0cyBkZWZhdWx0LCB5b3UgY2FuIGRvIHRoYXQgYnkgYWRkaW5nIG9uZSBvciBtb3JlIHBhcmFtZXRlcnMgdG8gdGhlIDxzdHJvbmc+e1Byb2R1Y3RzfTwvc3Ryb25nPiB0YWcuICBUaGUgY29tcGxldGUgbGlzdCBvZiBwYXJhbWV0ZXJzIGFuZCB0aGVpciBiZWhhdmlvdXIgaXMgbGlzdGVkIGJlbG93LiAgQnV0IGZvciBleGFtcGxlLCB0byBkaXNwbGF5IGEgbGlzdCBvZiBwcm9kdWN0cyBpbiBhIHNpbmdsZSwgZXhpc3RpbmcgY2F0ZWdvcnksIHlvdSBjb3VsZCB1c2UgYSB0YWcgbGlrZSA8Y29kZT57UHJvZHVjdHMgY2F0ZWdvcnk9JiMwMzk7Y2F0ZWdvcnluYW1lJiMwMzk7fTwvY29kZT48L3A+DQo8L3VsPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuICBIb3dldmVyIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMgb3IgdG8gZmlsZSBhIGJ1ZyByZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgY21zIG1hZGUgc2ltcGxlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5EZXZlbG9wZXJzIEZvcmdlPC9hPiBhbmQgZG8gYSBzZWFyY2ggZm9yICYjMDM5O1Byb2R1Y3RzJiMwMzk7PC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9JnF1b3Q7bWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+Um9iZXJ0IENhbXBiZWxsPC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+Q01TIE1hZGUgU2ltcGxlIEZvcm1zLjwvYT48L2xpPg0KPGxpPkZvciBzb21lIHF1ZXN0aW9ucyBhbmQgbGltaXRlZCB0ZWNobmljYWwgc3VwcG9ydCwgdGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zJnF1b3Q7PkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0hpZXJhcmtpJzsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gJ0hpZXJhcmtpIHBvc2lzam9uJzsKJGxhbmdbJ2lkJ10gPSAnSWQgJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ0JpbGRlJzsKJGxhbmdbJ2luY2x1ZGVfY2hpbGRyZW4nXSA9ICdJbmtsdWRlciBiYXJuPyc7CiRsYW5nWydpbmZvX2FsbnVtb25seSddID0gJ0t1biBhbGZhbnVtbWVyaXNrZSB0ZWduLiBJbmdlbiBtZWxsb21yb20sIGFuZiZvc2xhc2g7cnNlbHN0ZWduIGVsbGVyIGlra2UtYm9rc3Rhdi90YWxsIGtvbWJpbmFzam9uZXInOwokbGFuZ1snaW5mb19maWVsZHByb2JsZW1zJ10gPSAnUHJvYmxlbWVyIGJsZSBvcHBkYWdldCB1bmRlciBoJmFyaW5nO25kdGVyaW5nIGF2IGV0IGVsbGVyIGZsZXJlIGVrc3RyYShjdXN0b20pIGZlbHRlci4gSGFuZGxpbmdlbiBlciB2ZWxseWtrZXQgZnVsbGYmb3NsYXNoO3J0LCBtZW4gZHUgYiZvc2xhc2g7ciB1bmRlcnMmb3NsYXNoO2tlIG9nIGtvcnJpZ2VyZSBkaXNzZSBwcm9ibGVtZW5lJzsKJGxhbmdbJ2luZm9fcHJpY2VfYWRqdXN0bWVudCddID0gJ0d5bGRpZ2UgdmVyZGllciBlciArLSojLiMjJzsKJGxhbmdbJ2luZm9fcHVibGljZmllbGQnXSA9ICdPZmZlbnRsaWdlIGZlbHQgZXIgdGlsZ2plbmdlbGlnZSBmb3Igb2ZmZW50bGlnaGV0ZW4gJmFyaW5nOyBzZSc7CiRsYW5nWydsYWJlbCddID0gJ0V0aWtldHQnOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICcgPj4nOwokbGFuZ1snbGFzdF9tb2RpZmllZCddID0gJ1Npc3QgZW5kcmV0JzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnQW5kcmUgYmlsZGUnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWFrc2ltdW0gbGVuZ2RlIDxlbT4oa2FuIGJlbnl0dGVzIGt1biBwJmFyaW5nOyB0ZWtzdGJva3MgZmVsdGVyKTwvZW0+JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ0VuZHJldCBkYXRvJzsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gJ0VuIG1vZHVsIGZvciAmYXJpbmc7IGJlaGFuZGxlIGVuIGthdGFsb2cgbWVkIHByb2R1a3RlciwgZGV0cyBwcmlzLCBiaWxkZXIsIG9zdiwgb2cgZm9yICZhcmluZzsgdGlsbGF0ZSBicnVrZXJlICZhcmluZzsgYnlnZ2UgZW4gaGFuZGxla3Vydic7CiRsYW5nWyduYW1lJ10gPSAnTmF2bic7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ0R1IGhhciBpa2tlIGRlbiBuJm9zbGFzaDtkdmVuZGlnZSByZXR0aWdoZXRlbjogJXMnOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICcgPic7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ0luZ2VuIG5hdm4gb3BwZ2l0dCc7CiRsYW5nWydub25lJ10gPSAnSW5nZW4nOwokbGFuZ1snb2YnXSA9ICdhdic7CiRsYW5nWydwYWdlJ10gPSAnU2lkZSc7CiRsYW5nWydwYWdlX29mJ10gPSAnU2lkZSAlcyBhdiAlcyc7CiRsYW5nWydwYWdlX2xpbWl0J10gPSAnU2lkZSBiZWdyZW5zbmluZyc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcGVjaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5oaWVyYXJjaHkgLS0gRGlzcGxheSBhIHByb2R1Y3QgbGlzdCBieSBoaWVyYXJjaHk8L2xpPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdCBjYXRlZ29yaWVzPC9saT4NCiAgPGxpPjxlbT5kZWZhdWx0PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyeSBvZiBwcm9kdWN0czwvbGk+DQogIDxsaT5kZXRhaWwgLSBEaXNwbGF5IGEgZGV0YWlsIHZpZXcgb2YgYSBzaW5nbGUgcHJvZHVjdDwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ04mYXJpbmc7ciBiZW55dHRldCBtZWQgPGVtPnN0YW5kYXJkPC9lbT4gc2FtbWVuZHJhZ3MgbW9kdXMgdmlsIGRlbm5lIHBhcmFtZXRlciwgc29tIGImb3NsYXNoO3IgdiZhZWxpZztyZSBsaWsgbmF2bmV0IHAmYXJpbmc7IGVuIGVrc2lzdGVyZW5kZSBrYXRlZ29yaSwgYmxpIGJlbnl0dGV0IGZvciAmYXJpbmc7IHZpc2Uga3VuIGRlIHByb2R1a3RlbmUgc29tIGVyIGkgZGVubmUga2F0ZWdvcmllbi4gKGVuIGtvbW1hc2VwYXJlcnQgbGlzdGUga2FuIG9wcGdpcyknOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICdNZWQga2F0ZWdvcmlsaXN0ZSBoYW5kbGluZ2VuLCB2aWwgZGVubmUgcGFyYW1ldGVyIGluZGlrZXJlIG1hbGVuIHNvbSBza2FsIGJlbnl0dGVzIGZvciB2aXNuaW5nLiBPbSBpbmdlbiB2ZXJkaSBlciBvcHBnaXR0IHZpbCBuJmFyaW5nO3YmYWVsaWc7cmVuZGUgc3RhbmRhcmQgbWFsIGF2IGRlbm5lIHR5cGUgYmxpIGJlbnl0dGV0Lic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnRGV0dGUgc3Blc2lmaXNlcmVyIHNpZGVpZCYjMDM5O2VuIGVsbGVyIHNpZGVhbGlhcyBzb20gc2thbCBiZW55dHRlcyBmb3IgJmFyaW5nOyB2aXNlIGRldGFsanJhcHBvcnRlbi4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdEZW5uZSBwYXJhbWV0ZXIgc3Blc2lmaXNlcmVyIG1hbGVuIHNvbSBza2FsIGJlbnl0dGVzIGZvciBkZXRhbGptb2R1cyB2aXNuaW5nLiBPbSBpbmdlbiB2ZXJkaSBlciBvcHBnaXR0IHZpbCBuJmFyaW5nO3YmYWVsaWc7cmVuZGUgc3RhbmRhcmQgbWFsIGF2IGRlbm5lIHR5cGUgYmxpIGJlbnl0dGV0Lic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHknXSA9ICdLYW4ga3VuIGJlbnl0dGVzIGkgPGVtPmRlZmF1bHQ8L2VtPiBoYW5kbGluZ2VuLiBEZW5uZSBwYXJhbWV0ZXIgc3Blc2lmaXNlcmVyIGF0IGt1biBhcnRpa2xlciBpIGRlbm5lIGxva2Fzam9uZW4gaSBoaWVyYXJraWV0IHNrYWwgdmlzZXMuICBKb2tlcnRlZ24ga2FuIGJlbnl0dGVzIHMmYXJpbmc7IGR1IG9ncyZhcmluZzsga2FuIHNwZXNpZmlzZXJlIGZvcmVsZHJlL2Jhcm4gcmVsYXNqb25lci4gRi5la3MuIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7dHJ1Y2tzKiYjMDM5O30gdmlsIGxhZ2UgZW4gc2FtbWVuZHJhZ3NyYXBwb3J0IG1lZCBhbGxlIHRydWNrcywgaW5rbHVkZXJ0IGJhcm5hIGkgaGllcmFya2lldC4gIFAmYXJpbmc7IHNhbW1lIG0mYXJpbmc7dGUsIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7KnRydWNrcyYjMDM5O30gdmlsIHZpc2UgZW4gc2FtbWVuZHJhZ3NyYXBwb3J0IG1lZCBhbGxlIHRydWNrcyBvZyBhbGxlIHByb2R1a3RlciB0aWxoJm9zbGFzaDtyZW5kZSBlbmh2ZXIgZm9yZWxkcmUgaSBoaWVyYXJraWV0Lic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZSddID0gJ0Rlbm5lIHBhcmFtZXRlciBzcGVzaWZpc2VyZXIgbWFsZW4gc29tIHNrYWwgYnJ1a2VzIGZvciBoaWVyYXJraSB2aXNuaW5nLiBPbSBpbmdlbiB2ZXJkaSBlciBzYXR0IHZpbCBzdGFuZGFyZCBtYWwgYXYgZGVuIHR5cGVuIGJsaSBiZW55dHRldC4nOwokbGFuZ1sncGFyYW1fcGFnZWxpbWl0J10gPSAnQmVueXR0ZXQgbWVkIDxlbT5zdGFuZGFyZDwvZW0+IGhhbmRsaW5nZW4gdmlsIGRlbm5lIHBhcmFtZXRlciBzcGVzaWZpc2VyZSBodm9yIG1hbmdlIHByb2R1a3RlciBzb20gc2thbCBsaXN0ZXMgcCZhcmluZzsgaHZlciBzaWRlLic7CiRsYW5nWydwYXJhbV9wYXJlbnQnXSA9ICdLYW4ga3VuIGJlbnl0dGVzIGkgPGVtPmhpZXJhcmNoeTwvZW0+IGhhbmRsaW5nZW4uIERlbm5lIHBhcmFtZXRlciBzcGVzaWZpc2VyZXIgaGllcmFya2kgaWQgdGlsIHN0YXJ0IHBvc2lzam9uZW4gaSByYXBwb3J0ZW4uJzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RpZCddID0gJ0Jlbnl0dGV0IG1lZCBkZXRhbGogaGFuZGxpbmdlbiB2aWwgZGVubmUgcGFyYW1ldGVyIGluZGlrZXJlIGh2aWxrZXQgcHJvZHVrdCBzb20gc2thbCB2aXNlcyBwJmFyaW5nOyBzaWRlbi4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmeSB0aGUgb3JkZXIgb2Ygc29ydGVkIGZpZWxkcyBpbiBzdW1tYXJ5IHZpZXcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4NCiAgPGxpPmRlc2MgLS0gRGVzY2VuZGluZyBvcmRlcjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIG9ubHkgaW4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQgY29tcGFuaWVzLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+cHJvZHVjdF9uYW1lPC9zdHJvbmc+PC9saT4NCiAgPGxpPnByaWNlIC0tIFRoZSBwcm9kdWN0IGJhc2UgcHJpY2U8L2xpPg0KICA8bGk+c3RhdHVzIC0tIERyYWZ0IG9yIHB1Ymxpc2hlZDwvbGk+DQogIDxsaT5yYW5kb20gLS0gRGlzcGxheSBpbiByYW5kb20gb3JkZXIgb24gZWFjaCByZXF1ZXN0PC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gVGhlIGNyZWF0aW9uIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KICA8bGk+bW9kaWZpZWQgLS0gVGhlIG1vZGlmaWVkIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnRGVubmUgcGFyYW1ldGVyIHNwZXNpZmlzZXJlciBtYWxlbiBzb20gc2thbCBiZW55dHRlcyBmb3Igc2FtbWVuZHJhZ3Ntb2R1cyB2aXNuaW5nZW4uIE9tIGluZ2VuIHZlcmRpIGVyIG9wcGdpdHQgdmlsIG4mYXJpbmc7diZhZWxpZztyZW5kZSBzdGFuZGFyZCBtYWwgYXYgZGVubmUgdHlwZSBibGkgYmVueXR0ZXQuJzsKJGxhbmdbJ3BhcmVudCddID0gJ0ZvcmVsZHJlJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnUHJvZHVjdHMgbW9kdWxlbiBoYXIgYmxpdHQgaW5zdGFsbGVydCc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnUHJvZHVjdHMgbW9kdWxlbiBvZyBhbGxlIGFzc29zaWVydGUgZGF0YSBoYXIgYmxpdHQgZmplcm5ldCc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1ByZWZlcmFuc2VyJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJyZBcmluZzsgZmplcm5lIGRlbm5lIG1vZHVsZW4gdmlsIG9ncyZhcmluZzsgZmplcm5lIGFsbGUgYXNzb3NpZXJ0ZSBkYXRhLCBlciBkdSBzaWtrZXIgcCZhcmluZzsgYXQgZHUgdmlsIGZvcnRzZXR0ZT8nOwokbGFuZ1sncHJpY2UnXSA9ICdQcmlzJzsKJGxhbmdbJ3ByaWNlX2FkanVzdG1lbnQnXSA9ICdQcmlzanVzdGVyaW5nJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCAnOwokbGFuZ1sncHJvZHVjdCddID0gJ1Byb2R1a3QnOwokbGFuZ1sncHJvZHVjdG5hbWUnXSA9ICdQcm9kdWt0bmF2bic7CiRsYW5nWydwcm9kdWN0cyddID0gJ1Byb2R1a3QgYWRtaW5pc3RyYXNqb24nOwokbGFuZ1sncHJvZHVjdF9oaWVyYXJjaHknXSA9ICdQcm9kdWt0IGhpZXJhcmtpJzsKJGxhbmdbJ3Byb2R1Y3RfbWFuYWdlciddID0gJ1Byb2R1a3QgYmVoYW5kbGVyJzsKJGxhbmdbJ3Byb21wdCddID0gJ0V0aWtldHQgKHNwJm9zbGFzaDtyc20mYXJpbmc7bC9wcm9tcHQpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ZpbGV0eXBlcyddID0gJ1RpbGxhdCBvcHBsYXN0aW5nIGF2IGZpbGUgbWVkIGRpc3NlIGZpbGVuZGVsc2VyIChmb3IgZmlsIHR5cGUgZmVsdGVyKSc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZXR5cGVzJ10gPSAnVGlsbGF0IG9wcGxhc3RpbmcgYXYgYmlsZGVyIG1lZCBkaXNzZSBmaWxlbmRlbHNlciAoZm9yIGJpbGRlIHR5cGUgZmVsdGVyKSc7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbCddID0gJ09wcHJldHQgbWluaWF0eXJiaWxkZXIgYXV0b21hdGlzayc7CiRsYW5nWydwcm9tcHRfYXBwbGljYWJsZSddID0gJ1NsJmFyaW5nOyBwJmFyaW5nOyBzb20gc3RhbmRhcmQgZm9yIGFsbGUgbnllIHByb2R1a3Rlcic7CiRsYW5nWydwcm9tcHRfY3VycmVuY3lzeW1ib2wnXSA9ICdWYWx1dGFzeW1ib2wnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gJ1NsZXR0IGFsbGUgZmlsZXIgdGlsa255dHRldCBwcm9kdWt0ZXQgbiZhcmluZztyIHByb2R1a3RldCBzbGV0dGVzPyc7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ1N0YW5kYXJkIGRldGFsanNpZGUnOwokbGFuZ1sncHJvbXB0X3RheHJhdGUnXSA9ICdBdmdpZnRzYXRzJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnU3RhbmRhcmQgc29ydGVyaW5nIGkgc2FtbWVuZHJhZ3Ntb2R1cyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICdTdGFuZGFyZCBzb3J0ZXJpbmdzZmVsdCBpIHNhbW1lbmRyYWdzbW9kdXMnOwokbGFuZ1sncHJvbXB0X3RheDEnXSA9ICdGJm9zbGFzaDtyc3RlIGF2Z2lmdCc7CiRsYW5nWydwcm9tcHRfdGF4MiddID0gJ0FuZHJlIGF2Z2lmdCc7CiRsYW5nWydwcm9tcHRfdGF4bmFtZSddID0gJ0F2Z2lmdHNlbmF2bic7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdNYWxraWxkZSc7CiRsYW5nWydwcm9tcHRfd2VpZ2h0dW5pdHMnXSA9ICdWZWt0ZW5oZXRlcic7CiRsYW5nWydwdWJsaWMnXSA9ICdFciBkZXR0ZSBldCBvZmZlbnRsaWcgZmVsdD8nOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnUHVibGlzZXJ0JzsKJGxhbmdbJ3JhbmRvbSddID0gJ1RpbGZlbGRpZyc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1NldHQgdGlsYmFrZSB0aWwgZmFicmlra2lubnN0aWxsaW5nZXInOwokbGFuZ1sncm9vdCddID0gJ1JvdGEnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1ZlbGcgZW4nOwokbGFuZ1snc29ydF9ieSddID0gJ1NvcnRlciBldHRlcic7CiRsYW5nWydzb3J0X29yZGVyJ10gPSAnU29ydGVyaW5nc3Jla2tlZiZvc2xhc2g7bGdlJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyAnOwokbGFuZ1snc3VibWl0J10gPSAnVXRmJm9zbGFzaDtyJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdTYW1tZW5kcmFnc21hbCc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0xlZ2cgdGlsL3JlZGlnZXIgc2FtbWVuZHJhZ3NtYWwnOwokbGFuZ1sndGF4YWJsZSddID0gJ0thbiBpbGVnZ2VzIGF2Z2lmdCc7CiRsYW5nWyd0YXhfbW9kdWxlJ10gPSAnQXZnaWZ0c21vZHVsJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnVGVrc3RvbXImYXJpbmc7ZGUnOwokbGFuZ1sndGV4dGJveCddID0gJ1Rla3N0IGlubnNrcml2aW5nJzsKJGxhbmdbJ3RpdGxlX2J5aGllcmFyY2h5X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkIEhpZXJhcmtpIHJhcHBvcnRtYWwnOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkIG55IGthdGVnb3JpbGlzdGUgbWFsJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZCBueSBkZXRhbGptYWwnOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZCBueSBzYW1tZW5kcmFnc21hbCc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwZSAnOwokbGFuZ1sndXBkYXRlJ10gPSAnT3BwZGF0ZXInOwokbGFuZ1sndXBsb2FkJ10gPSAnVmVsZyBlbiBmaWwgJmFyaW5nOyBsYXN0ZSBvcHAnOwokbGFuZ1sndmFsdWUnXSA9ICdWZXJkaSc7CiRsYW5nWyd2YWx1ZXMnXSA9ICdWZXJkaWVyJzsKJGxhbmdbJ3dlaWdodCddID0gJ1Zla3QnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjA4NTU5MTE5LjQ4Ni4zNS51dG1jc3I9ZGV2LmNtc21hZGVzaW1wbGUub3JnfHV0bWNjbj0ocmVmZXJyYWwpfHV0bWNtZD1yZWZlcnJhbHx1dG1jY3Q9L2Zycy8nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My41MjU0MDY4MTIuMTE4ODA3NzQxNy4xMjA4NzA2OTczLjEyMDg3OTYzNDMuNDk3JzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pt_PT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZCddID0gJ0FkaWNpb25hcic7CiRsYW5nWydhZGRjYXRlZ29yeSddID0gJ0FkaWNpb25hciBDYXRlZ29yaWEnOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdBZGljaW9uYXIgQ2FtcG8nOwokbGFuZ1snYWRkcHJvZHVjdCddID0gJ0FkaWNpb25hciBQcm9kdXRvJzsKJGxhbmdbJ2FkZF9hdHRyaWJfc2V0J10gPSAnQWRpY2lvbmFyIEF0cmlidXRvJzsKJGxhbmdbJ2FkZF9oaWVyYXJjaHlfaXRlbSddID0gJ0FkaWNpb25hciBJdGVtICZhZ3JhdmU7IEhpZXJhcnF1aWEnOwokbGFuZ1snYWRkX29wdGlvbiddID0gJ0FkaWNpb25hciBPcCZjY2VkaWw7JmF0aWxkZTtvIGRlIEF0cmlidXRvJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdTJm9hY3V0ZTsgYXBlbmFzIEFkbWluJiMwMzk7cyBwb2RlbSB2aXN1YWxpemFyIGVzdGUgYXRyaWJ1dG8/JzsKJGxhbmdbJ2FsbGNhdGVnb3JpZXMnXSA9ICdUb2RhcyBhcyBDYXRlZ29yaWFzJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdUZW0gYSBjZXJ0ZXphPyc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZXByb2R1Y3QnXSA9ICdUZW0gY2VydGV6YSBxdWUgZGVzZWphIGFwYWdhciBlc3RlIHByb2R1dG8sIGJlbSBjb21vIG8gYWNvbXBhbmhhbWVudG8gZGUgdG9kYXMgYXMgaW5mb3JtYSZjY2VkaWw7Jm90aWxkZTtlcyByZWZlcmVudGVzIGFvIG1lc21vPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdBc2NlbmRlbnRlJzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnQXRyaWJ1dG8gTm9tZSc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlcyddID0gJ0hpZXJhcnF1aWEgUmVsYXQmb2FjdXRlO3JpbyB0ZW1wbGF0ZXMnOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRpY2lvbmFyL0VkaXRhciBIaWVyYXJxdWlhIFJlbGF0Jm9hY3V0ZTtyaW8gdGVtcGxhdGVzJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbGFyJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yaWFzJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnQ2F0ZWdvcmlhJzsKJGxhbmdbJ2NhdGVnb3J5ZXhpc3RzJ10gPSAnTyBub21lIGRhIGNhdGVnb3JpYSBqJmFhY3V0ZTsgZXhpc3RlJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ1RlbXBsYXRlcyBMaXN0YSBkZSBDYXRlZ29yaWFzJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGljaW9uYXIvRWRpdGFyIFRlbXBsYXRlcyBMaXN0YSBkZSBDYXRlZ29yaWFzJzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDEuMCAtIERlY2VtYmVyLCAyMDA3DQogICA8cD5Jbml0aWFsIFJlbGVhc2U8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMS4wLjEgLSBKYW51YXJ5LCAyMDA4DQogICA8dWw+DQogICAgIDxsaT5BZGRzIHBhZ2luYXRpb24gaW4gc3VtbWFyeSB2aWV3PC9saT4NCiAgICAgPGxpPkZpeGVzIGEgcHJvYmxlbSB3aXRoIGR1cGxpY2F0ZSBsaW5rcyBpbiBzdW1tYXJ5IHZpZXc8L2xpPg0KICAgPC91bD4NCjwvbGk+DQo8L3VsPic7CiRsYW5nWydjaGVja2JveCddID0gJ0NhaXhhIGRlIFZlcmlmaWNhJmNjZWRpbDsmYXRpbGRlO28nOwokbGFuZ1snY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnXSA9ICdUZW0gY2VydGV6YSBkZSBxdWUgZGVzZWphIGV4Y2x1aXIgZXN0ZSBuJm9hY3V0ZTs/IFF1YWxxdWVyIHByb2R1dG8gcXVlIGVzdGVqYW0gdXNhbmRvIGVzdGUgbiZvYWN1dGU7IHNlcmFtIGNvbmZpZ3VyYWRvIHBhcmEgbiZhdGlsZGU7byB1c2FyZW0gaGllcmFycXVpYSc7CiRsYW5nWydjcmVhdGVkZGF0ZSddID0gJ0RhdGEgZGEgQ3JpYSZjY2VkaWw7JmF0aWxkZTtvJzsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICdWYWxvciBBY3R1YWwnOwokbGFuZ1snZGVmYXVsdHRlbXBsYXRlcyddID0gJ1RlbXBsYXRlcyBQYWRyJmF0aWxkZTtvJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5Ob3RhOjwvc3Ryb25nPiBPIGNvbnRlJnVhY3V0ZTtkbyBkZXN0YXMgJmFhY3V0ZTtyZWFzIHRleHRvcyAgcyZhdGlsZGU7byB1c2FkYXMgcGFyYSBkZXRlcm1pbmFyIG8gY29udGUmdWFjdXRlO2RvIGRvcyB0ZW1wbGF0ZXMgcGFkciZhdGlsZGU7byBxdWFuZG8gY2xpY2FyIGVtICZxdW90O0FkaWNpb25hciBUZW1wbGF0ZSZxdW90OyBuYSBUYWIgYXByb3ByaWFkYS4gRWRpdGFuZG8gdW1hIGRlc3RhcyAmYWFjdXRlO3JlYXMgZGUgdGV4dG8gbiZhdGlsZGU7byB0ZXImYWFjdXRlOyBlZmVpdG9zIGltZWRpYXRvcyBubyBzZXUgc2l0ZS4nOwokbGFuZ1snZGVsZXRlJ10gPSAnRWxpbWluYXInOwokbGFuZ1snZGVsZXRlX2F0dHJpYnNldCddID0gJ0VsaW1pbmFyIEF0cmlidXRvJzsKJGxhbmdbJ2RlbGV0ZV9oaWVyYXJjaHlfaXRlbSddID0gJ0VsaW1pbmFyIEhpZXJhcnF1aWEgSXRlbSc7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnRGVzY2VuZGVudGUnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdVbSBtJm9hY3V0ZTtkdWxvIHBhcmEgZ2VzdCZhdGlsZGU7byBkZSB1bSBjYXQmYWFjdXRlO2xvZ28gZGUgcHJvZHV0b3MsIG9zIHNldXMgcHJlJmNjZWRpbDtvcywgaW1hZ2VucywgZXRjLCBlIHBhcmEgcGVybWl0aXIgcXVlIG9zIHVzdSZhYWN1dGU7cmlvcyBwb3NzYW0gdGVyIHVtIGNhcnJpbmhvJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdEZXRhbGhlcyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdUZW1wbGF0ZXMgRGV0YWxoZXMnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkaWNpb25hci9FZGl0YXIgVGVtcGxhdGVzIERldGFsaGVzJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnRGVzYXRpdmFkbyc7CiRsYW5nWydkcmFmdCddID0gJ1Jhc2N1bmhvJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnTWVudSBNJnVhY3V0ZTtsdGlwbG8gKERyb3Bkb3duKSc7CiRsYW5nWydkcm9wZG93bl9vcHRpb25zJ10gPSAnTWVudSBNJnVhY3V0ZTtsdGlwbG8gKERyb3Bkb3duKSA8ZW0+KGFwbGljYXIgcyZvYWN1dGU7IGNhbXBvcyBNZW51IE0mdWFjdXRlO2x0aXBsbyAoRHJvcGRvd24pICk8L2VtPjxici8+PGJyLz48ZW0+KHVtYSBlbnRyYWRhIHBvciBsaW5oYSk8L2VtPic7CiRsYW5nWydlZGl0J10gPSAnRWRpdGFyICc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICdFZGl0YXIgRGVmaW5pJmNjZWRpbDsmb3RpbGRlO2VzIGRlIEF0cmlidXRvcyc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHNfZm9yJ10gPSAnRWRpdGFyIERlZmluaSZjY2VkaWw7Jm90aWxkZTtlcyBkZSBBdHJpYnV0b3MgUGFyYSc7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdFZGl0YXIgQXRyaWJ1dG9zJzsKJGxhbmdbJ2VkaXRfaGllcmFyY2h5X2l0ZW0nXSA9ICdFZGl0YXIgSGllcmFycXVpYSBJdGVtJzsKJGxhbmdbJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnXSA9ICdVbSBhdHJpYnV0byBjb20gZXNzZSBub21lIGomYWFjdXRlOyBleGlzdGUnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmVudCddID0gJ1BhcmVudGUgSW52JmFhY3V0ZTtsaWRvICAobyBub2RlIGRlIEhpZXJhcnF1aWEgIG4mYXRpbGRlO28gcG9kZSBzZXIsICZlYWN1dGU7IG8gcHImb2FjdXRlO3ByaW8pJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfbmFtZSddID0gJ08gdmFsb3IgZG8gY2FtcG8gcGVyc29uYWxpemFkbyBkaWdpdGFkbyAmZWFjdXRlOyBpbnYmYWFjdXRlO2xpZG8gKG4mYXRpbGRlO28gY29udCZlYWN1dGU7bSBjYXJhY3RlcmVzIGFsZmFudW0mZWFjdXRlO3JpY29zKSc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdVbSBwYXImYWNpcmM7bWV0cm8gb2JyaWdhdCZvYWN1dGU7cmlvIGVzdCZhYWN1dGU7IGF1c2VudGUgb3UgJmVhY3V0ZTsgaW52JmFhY3V0ZTtsaWRvJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdVbSBwcm9kdXRvIHBvciBlc3NlIG5vbWUgaiZhYWN1dGU7IGV4aXN0ZSc7CiRsYW5nWydlcnJvcl9wcmljZV9hZGp1c3RtZW50J10gPSAnTyB2YWxvciBhanVzdGFkbyBkbyBwcmUmY2NlZGlsO28gJmVhY3V0ZTsgaW52JmFhY3V0ZTtsaWRvIHBhcmEgbyBpdGVtICVzJzsKJGxhbmdbJ2Vycm9yX3VwbG9hZF9mYWlsZWQnXSA9ICdDYXJyZWdhbWVudG8gZmFsaG91OiAlcyc7CiRsYW5nWydmaWVsZCddID0gJ0NhbXBvJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRGVmaW5pJmNjZWRpbDsmYXRpbGRlO28gZG8gQ2FtcG8nOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnRGVmaW5pJmNjZWRpbDsmb3RpbGRlO2VzIGRvcyBDYW1wb3MnOwokbGFuZ1snZmlsZSddID0gJ0FycXVpdm8nOwokbGFuZ1snZmlsdGVycyddID0gJ0ZpbHRyb3MnOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IGRvZXMgdGhpcyBkbz88L2gzPg0KPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgYSB3YXkgdG8gY29sbGVjdCwgb3JnYW5pemUsIGFuZCBkaXNwbGF5IGluZm9ybWF0aW9uIGFib3V0IHByb2R1Y3RzIGFuZCB0aGVpciBjYXRlZ29yaWVzLiAgVGhpcyBtb2R1bGUgY2FuIHN0YW5kIG9uIGl0cyBvd24sIG9yIGJlIHBhcnQgb2YgYW4gZS1jb21tZXJjZSBzb2x1dGlvbiBpZiB5b3Ugd2lzaC4gIFRoZSBtb2R1bGUgc3VwcG9ydHMgYSBwcm9kdWN0IGV4aXN0aW5nIGluIG1vcmUgdGhhbiBvbmUgY2F0ZWdvcnksIHN1cHBvcnRzIHByb2R1Y3Qgd2VpZ2h0LCBwcmljZSwgYW5kIGF0dHJpYnV0ZSBzZXRzLiAgRWFjaCBpdGVtIGluIGFuIGF0dHJpYnV0ZSBzZXQgY2FuIGhhdmUgYSBwcmljZSBhZGp1c3RtZW50LiAgQWxzbyBhIGdsb2JhbCBmbGFnIGluZGljYXRlcyB3ZXRoZXIgdGhlIHByb2R1Y3QgaXMgJiMwMzk7dGF4YWJsZSYjMDM5OyBvciBub3QuPC9wPg0KICA8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBmb3IgdXAgdG8gdHdvIGltYWdlcyBwZXIgcHJvZHVjdCwgY3VzdG9tIGZpZWxkIGRlZmluaXRpb25zLCBhbmQgZm9yIHRoZSBhYmlsaXR5IHRvIGRlc2NyaW1pbmF0ZSBwcml2YXRlIGZyb20gcHVibGljIGRhdGEuPC9wPg0KPGgzPkZlYXR1cmVzOjwvaDM+DQo8dWw+DQogIDxsaT5OdW1lcm91cyBWaWV3czwvbGk+DQogICAgPHVsPg0KICAgICAgPGxpPlN1bW1hcnkgdmlldzwvbGk+DQogICAgICA8bGk+RGV0YWlsIHZpZXc8L2xpPiANCiAgICAgIDxsaT5DYXRlZ29yeSBMaXN0IFZpZXc8L2xpPg0KICAgIDwvdWw+DQogIDxsaT5FbnRpcmVseSBEYXRhYmFzZSBUZW1wbGF0ZSBEcml2ZW48L2xpPg0KICA8cD5OdW1lcm91cyB0ZW1wbGF0ZXMgb2YgZWFjaCB0eXBlIGNhbiBiZSBkZWZpbmVkLCBkZWZhdWx0cyBzcGVjaWZpZWQgZm9yIGVhY2ggdHlwZSwgYW5kIHRoZSB0ZW1wbGF0ZSB1c2VkIGZvciBlYWNoIHBhcnRpY3VsYXIgdmlldyBjYW4gYmUgc3BlY2lmaWVkIGFzIGEgcGFyYW1ldGVyPC9wPg0KICA8bGk+U29ydGluZyBhbmQgcGFnaW5hdGlvbiBpbiB0aGUgc3VtbWFyeSB2aWV3PC9saT4NCiAgPGxpPlByb2R1Y3RzIGNhbiBleGlzdCBpbiBtdWx0aXBsZSBjYXRlZ29yaWVzPC9saT4NCiAgPGxpPlVwIHRvIHR3byBpbWFnZXMgcGVyIHByb2R1Y3Q8L2xpPg0KICA8bGk+QWRtaW4gZGVmaW5lZCBmaWVsZHM8L2xpPg0KICA8bGk+UHJvZHVjdCBhdHRyaWJ1dGVzIChpbmNsdWRpbmcgcHJpY2UgYWRqdXN0bWVudCk8L2xpPg0KICA8bGk+V2VpZ2h0IGFuZCB0YXhhYmxlIGZpZWxkcyAoZm9yIHVzZSBpbiBlLWNvbW1lcmNlIHNvbHV0aW9ucyk8L2xpPg0KICA8bGk+UHJvZHVjdHMgY2FuIGhhdmUgYSBzdGF0dXMgKHB1Ymxpc2hlZCBvciBkcmFmdCkgaW4gb3JkZXIgdG8gaGlkZSBwcm9kdWN0cyBmcm9tIHB1YmxpYyBkaXNwbGF5IGF0IGFueSB0aW1lPC9saT4NCiAgPGxpPlByZXR0eSBVUkwgU3VwcG9ydDwvbGk+DQogIDxsaT48c3Ryb25nPk1vcmUuLi48L3N0cm9uZz48L2xpPg0KPC91bD4NCg0KPGgzPkhvdyBEbyBJIFVzZSBJdDo8L2gzPg0KPHVsPg0KPGxpPlNldCBwcmVmZXJlbmNlczwvbGk+DQo8cD5Vc3VhbGx5IHRoaXMgaXMganVzdCBhIGZvcm1hbGl0eS4gIFlvdSBzaG91bGQgc3BlY2lmeSB5b3VyIGRlZmF1bHQgd2VpZ2h0IHVuaXRzLCBhbmQgeW91ciBkZWZhdWx0IGN1cnJlbmN5IHN5bWJvbCBmb3IgeW91ciBsb2NhbCBlbnZpcm9ubWVudC48L3A+DQo8bGk+U2V0dXAgdXNlcnMgYW5kIHBlcm1pc3Npb25zPC9saT4NCjxwPlRoaXMgbW9kdWxlIHVzZXMgdGhlICYjMDM5O01vZGlmeSBUZW1wbGF0ZXMmIzAzOTsgcGVybWlzc2lvbiB0byBhbGxvdyB1c2VycyB0byBiZSBhYmxlIHRvIG1vZGlmeSB0aGUgdmFyaW91cyB0ZW1wbGF0ZXMgdGhhdCBjYW4gYmUgdXNlZCBieSB0aGlzIG1vZHVsZS4gIEFzIHdlbGwsIHRoZSAmIzAzOTtNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcyYjMDM5OyBwZXJtaXNzaW9uIGlzIG5lZWRlZCB0byBiZSBhYmxlIHRvIGFkanVzdCB0aGUgbW9kdWxlcyBwcmVmZXJlbmNlcy4gIEluIG9yZGVyIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbW9kaWZ5IGZpZWxkIGRlZmluaXRpb25zLCBjYXRlZ29yaWVzLCBvciBwcm9kdWN0cywgeW91ciB1c2VycyB3aWxsIG5lZWQgdGhlICYjMDM5O01vZGlmeSBQcm9kdWN0cyYjMDM5OyBwZXJtaXNzaW9uLjwvcD4NCjxsaT4ob3B0aW9uYWwpIERlZmluZSBvbmUgb3IgbW9yZSBjYXRlZ29yaWVzPC9saT4NCjxwPlRoaXMgaXMgYW4gb3B0aW9uYWwgc3RlcCwgYnV0IHlvdSB3aWxsIHByb2JhYmx5IHdhbnQgdG8gZG8gdGhpcyBlYXJseSB0byBwcmV2ZW50IGhhdmluZyB0byBnbyBiYWNrIHRvIG1vZGlmeSBlYWNoIGFuZCBldmVyeSBwcm9kdWN0IGxhdGVyLiAgQWRkaW5nIGEgY2F0ZWdvcnkgaXMgYXMgc2ltcGxlIGFzIGNsaWNraW5nIG9uIHRoZSAmIzAzOTtDYXRlZ29yaWVzJiMwMzk7IHRhYiBpbiB0aGUgUHJvZHVjdCBNYW5hZ2VycyBhZG1pbiBzZWN0aW9uLCBhbmQgY2xpY2tpbmcgJiMwMzk7QWRkIEEgQ2F0ZWdvcnkmIzAzOTsuICBGcm9tIHRoZXJlIHlvdSB3aWxsIGJlIHByb21wdGVkIGZvciBhIGNhdGVnb3J5IG5hbWUuPC9wPg0KPGxpPihvcHRpb25hbCkgRGVmaW5lIG9uZSBvciBtb3JlIGN1c3RvbSBmaWVsZHM8L2xpPg0KPHA+VGhpcyBpcyBhbiBvcHRpb25hbCBzdGVwLiAgQ3VzdG9tIGZpZWxkcyBhcmUgbm90IG5lZWRlZCBpZiB0aGlzIG1vZHVsZSBzdWl0cyB5b3UgZXhhY3RseSBhcyBpdCBpcy4gIEhvd2V2ZXIgaWYgeW91IHdvdWxkIGxpa2UgdG8gc3RvcmUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBmb3IgZWFjaCBvZiB5b3VyIHByb2R1Y3RzIHlvdSBjYW4gY3JlYXRlIGN1c3RvbSBmaWVsZHMuICBDcmVhdGluZyBjdXN0b20gZmllbGRzIGlzIHNpbWlsYXIgdG8gY3JlYXRpbmcgY2F0ZWdvcmllcywgZXhjZXB0IHRoYXQgbW9yZSBkYXRhIGlzIHJlcXVlc3RlZC48L3A+DQo8cD5DdXJyZW50bHkgb25seSB0aHJlZSB0eXBlcyBvZiBjdXN0b20gZmllbGRzIGFyZSBhdmFpbGFibGU6ICYjMDM5O3RleHRib3gmIzAzOTssJiMwMzk7Y2hlY2tib3gmIzAzOTssYW5kICYjMDM5O3RleHRhcmVhJiMwMzk7LiAgU2VsZWN0IG9uZSBvZiB0aGVzZSwgZ2l2ZSB5b3VyIG5ldyBmaWVsZCBhIG5hbWUsIGFuZCBpbmRpY2F0ZSB3ZXRoZXIgdGhhdCBmaWVsZCBzaG91bGQgYmUgdmlzaWJsZSB0byB0aGUgcHVibGljIGluIHRoZSB2YXJpb3VzIHZpZXdzLiAgVGhlbiBoaXQgc3VibWl0PC9wPg0KPGxpPkNyZWF0ZSBvbmUgb3IgbW9yZSBwcm9kdWN0czwvbGk+DQo8cD5Zb3Ugc2hvdWxkIGNyZWF0ZSBvbmUgb3IgbW9yZSBwcm9kdWN0cyB0byBkaXNwbGF5IGluIHlvdXIgd2Vic2l0ZSBjb250ZW50LiAgR2l2ZSBlYWNoIHByb2R1Y3QgYSBuYW1lLCBhIHByaWNlIChvcHRpb25hbCkgYSB3ZWlnaHQgKG9wdGlvbmFsKSwgYSBzdGF0dXMgKGRyYWZ0IG9yIHB1Ymxpc2hlZCksIGFuZCBzb21lIGluZm9ybWF0aW9uLiAgQWRkaXRpb25hbGx5LCB5b3UgY2FuIHVwbG9hZCB1cCB0d28gaW1hZ2VzIGZvciBlYWNoIHByb2R1Y3QsIGFuZCBzcGVjaWZ5IGlmIHRoZSBwcm9kdWN0IGlzIHRheGFibGUuPC9wPg0KPHA+SWYgY2F0ZWdvcmllcyBhcmUgZGVmaW5lZCwgdGhlbiBhIGNoZWNrYm94IHdpbGwgYXBwZWFyIGZvciBlYWNoIGRlZmluZWQgY2F0ZWdvcnkuICBZb3UgY2FuIHNpbXBseSBjbGljayB0aGUgY2hlY2tib3ggZmllbGRzIGZvciBlYWNoIGNhdGVnb3J5IHRoYXQgdGhpcyBwcm9kdWN0IHNob3VsZCBiZWxvbmcgdG8uPC9wPg0KPHA+SWYgY3VzdG9tIGZpZWxkcyBhcmUgZGVmaW5lZCwgdGhlbiBpbnB1dCBmaWVsZHMgYXBwcm9wcmlhdGUgdG8gdGhlIHR5cGUgb2YgY3VzdG9tIGZpZWxkIHdpbGwgYXBwZWFyIGFuZCBhbGxvdyB5b3UgdG8gc3BlY2lmeSBkYXRhIGZvciBlYWNoIG9mIHRoZW0uICBUaGlzIGRhdGEgaXMgb3B0aW9uYWwuPC9wPg0KPGxpPkFkZCB0aGUgYXBwcm9wcmlhdGUgdGFncyBpbnRvIHlvdXIgcGFnZSB0ZW1wbGF0ZXMgb3IgcGFnZSBjb250ZW50PC9saT4NCjxwPlRoaXMgY2FuIGJlIGFzIHNpbXBsZSBhcyBhZGRpbmcgdGhlIDxzdHJvbmc+e1Byb2R1Y3RzfTwvc3Ryb25nPiB0YWcgaW50byB0aGUgY29udGVudCBhcmVhIG9mIG9uZSBvZiB5b3VyIHBhZ2VzLCBvciBpbnRvIHlvdXIgcGFnZSB0ZW1wbGF0ZS48L3A+DQo8cD5JZiB5b3Ugd2lzaCB0byBhbHRlciB0aGUgYmVoYXZpb3VyIG9mIHRoaXMgYXBwbGljYXRpb24gZnJvbSBpdHMgZGVmYXVsdCwgeW91IGNhbiBkbyB0aGF0IGJ5IGFkZGluZyBvbmUgb3IgbW9yZSBwYXJhbWV0ZXJzIHRvIHRoZSA8c3Ryb25nPntQcm9kdWN0c308L3N0cm9uZz4gdGFnLiAgVGhlIGNvbXBsZXRlIGxpc3Qgb2YgcGFyYW1ldGVycyBhbmQgdGhlaXIgYmVoYXZpb3VyIGlzIGxpc3RlZCBiZWxvdy4gIEJ1dCBmb3IgZXhhbXBsZSwgdG8gZGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdHMgaW4gYSBzaW5nbGUsIGV4aXN0aW5nIGNhdGVnb3J5LCB5b3UgY291bGQgdXNlIGEgdGFnIGxpa2UgPGNvZGU+e1Byb2R1Y3RzIGNhdGVnb3J5PSYjMDM5O2NhdGVnb3J5bmFtZSYjMDM5O308L2NvZGU+PC9wPg0KPC91bD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiAgSG93ZXZlciB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzIG9yIHRvIGZpbGUgYSBidWcgcmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIGNtcyBtYWRlIHNpbXBsZSA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+RGV2ZWxvcGVycyBGb3JnZTwvYT4gYW5kIGRvIGEgc2VhcmNoIGZvciAmIzAzOTtQcm9kdWN0cyYjMDM5OzwvbGk+DQo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSZxdW90O21haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PlJvYmVydCBDYW1wYmVsbDwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkNNUyBNYWRlIFNpbXBsZSBGb3Jtcy48L2E+PC9saT4NCjxsaT5Gb3Igc29tZSBxdWVzdGlvbnMgYW5kIGxpbWl0ZWQgdGVjaG5pY2FsIHN1cHBvcnQsIHRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2lyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyZxdW90Oz5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8L3VsPg0KPGgzPlRyYWR1JmNjZWRpbDsmYXRpbGRlO28gUG9ydHVndWVzYTwvaDM+DQo8cD5OdW5vIGNvc3RhIDxhIGhyZWY9JnF1b3Q7bWFpbHRvOm51bm8ubWZjb3N0YUBzYXBvLnB0JnF1b3Q7PjxudW5vLm1mY29zdGFAc2Fwby5wdD48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+JzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0hpZXJhcnF1aWEnOwokbGFuZ1snaGllcmFyY2h5X3Bvc2l0aW9uJ10gPSAnUG9zaSZjY2VkaWw7JmF0aWxkZTtvIHBvciBIaWVyYXJxdWlhICc7CiRsYW5nWydpZCddID0gJ0lEJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ0ltYWdlbSc7CiRsYW5nWydpbmNsdWRlX2NoaWxkcmVuJ10gPSAnSW5jbHVpciBGaWxob3M/JzsKJGxhbmdbJ2luZm9fYWxudW1vbmx5J10gPSAnU29tZW50ZSBjYXJhY3RlcmVzIGFsZmFudW0mZWFjdXRlO3JpY29zLiBOJmF0aWxkZTtvIGFjZWl0YSBlc3BhJmNjZWRpbDtvcyBlbSBicmFuY28sIGFzcGFzLCBvdSBsZXRyYS9uJnVhY3V0ZTttZXJvIHNlbSBjb21iaW5hJmNjZWRpbDsmb3RpbGRlO2VzJzsKJGxhbmdbJ2luZm9fZmllbGRwcm9ibGVtcyddID0gJ0ZvcmFtIGVuY29udHJhZG9zIHByb2JsZW1hcyBxdWFuZG8gc2UgdHJhdGEgZGUgdW0gb3UgbWFpcyBjYW1wb3MgcGVyc29uYWxpemFkb3MuIEEgYWMmY2NlZGlsOyZhdGlsZGU7byBmb2kgY29uY2x1JmlhY3V0ZTtkYSBjb20gc3VjZXNzbywgbm8gZW50YW50byB2b2MmZWNpcmM7IGRldmVyJmFhY3V0ZTsgaW52ZXN0aWdhciBlIGNvcnJpZ2lyIGVzdGVzIHByb2JsZW1hcyc7CiRsYW5nWydpbmZvX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdWYWxvcmVzIFYmYWFjdXRlO2xpZG9zIHMmYXRpbGRlO28gKy0qIy4jIyc7CiRsYW5nWydpbmZvX3B1YmxpY2ZpZWxkJ10gPSAnJkFhY3V0ZTtyZWFzIHAmdWFjdXRlO2JsaWNhcyBlc3QmYXRpbGRlO28gZGlzcG9uJmlhY3V0ZTt2ZWlzIHBhcmEgc2VyZW0gdmlzdWFsaXphZGFzJzsKJGxhbmdbJ2xhYmVsJ10gPSAnQmxvY28nOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnJlVhY3V0ZTtsdGltYSBNb2RpZmljYSZjY2VkaWw7JmF0aWxkZTtvJzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnU2VndW5kYSBJbWFnZW0nOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnQ29tcHJpbWVudG8gbSZhYWN1dGU7eGltbyA8ZW0+KGFwbGljJmFhY3V0ZTt2ZWwgc29tZW50ZSBub3MgY2FtcG9zIGNhaXhhcyBkZSB0ZXh0byApPC9lbT4nOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnRGF0YSBkYSBtb2RpZmljYSZjY2VkaWw7JmF0aWxkZTtvJzsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gJ1VtIG0mb2FjdXRlO2R1bG8gZGUgZ2VzdCZhdGlsZGU7byBkZSB1bSBjYXQmYWFjdXRlO2xvZ28gZGUgcHJvZHV0b3MsIG9zIHNldXMgcHJlJmNjZWRpbDtvcywgaW1hZ2VucywgZXRjLCBlIHBhcmEgcGVybWl0aXIgcXVlIG9zIHVzdSZhYWN1dGU7cmlvcyB0ZW5oYW0gdW0gY2FycmluaG8nOwokbGFuZ1snbmFtZSddID0gJ05vbWUnOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdOJmF0aWxkZTtvIHRlbSBhIGF1dG9yaXphJmNjZWRpbDsmYXRpbGRlO28gbmVjZXNzJmFhY3V0ZTtyaWE6ICVzJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ05lbmh1bSBub21lIGZvaSBmb3JuZWNpZG8nOwokbGFuZ1snbm9uZSddID0gJ04mYXRpbGRlO28nOwokbGFuZ1snb2YnXSA9ICdEZSc7CiRsYW5nWydwYWdlJ10gPSAnUCZhYWN1dGU7Z2luYSc7CiRsYW5nWydwYWdlX29mJ10gPSAnUCZhYWN1dGU7Z2luYSAlcyBkZSAlcyc7CiRsYW5nWydwYWdlX2xpbWl0J10gPSAnUCZhYWN1dGU7Z2luYSBMJmlhY3V0ZTttaXRlJzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ0VzcGVjaWZpY2FyIG8gY29tcG9ydGFtZW50byBkbyBtJm9hY3V0ZTtkdWxvLiBPcyB2YWxvcmVzIHBvc3MmaWFjdXRlO3ZlaXMgcyZhdGlsZGU7bzoNCjx1bD4NCiA8bGk+aGllcmFyY2h5IC0gRXhpYmUgdW1hIGxpc3RhIGRlIHByb2R1dG9zIHBvciBoaWVyYXJxdWlhPC9saT4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtIEV4aWJlIHVtYSBsaXN0YSBkZSBjYXRlZ29yaWFzIG5vcyBwcm9kdXRvczwvbEkNCiAgPGxpPjxlbT5kZWZhdWx0PC9lbT4gLUV4aWJlIG8gc3VtJmFhY3V0ZTtyaW8gZG9zIHByb2R1dG9zPC9saT4NCiAgPGxpPmRldGFpbCAtIEV4aWJlIG8gZGV0YWxoZSBkZSB1bSAmdWFjdXRlO25pY28gcHJvZHV0bzwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ1F1YW5kbyB1dGlsaXphZG8gZW0gPGVtPiBwYWRyJmF0aWxkZTtvIDwvIGVtPiBtb2RvIHN1bSZhYWN1dGU7cmlvLCBlc3RlIHBhciZhY2lyYzttZXRybywgZGV2ZSBzZXIgaWd1YWwgYW8gbm9tZSBkZSB1bWEgY2F0ZWdvcmlhIGV4aXN0ZW50ZSBzZXImYWFjdXRlOyB1dGlsaXphZG8gcGFyYSBleGliaXIgYXBlbmFzIGFzIGVtcHJlc2FzIHF1ZSBlc3QmYXRpbGRlO28gbmVzc2EgY2F0ZWdvcmlhLiAoVW1hIGxpc3RhIHNlcGFyYWRhIHBvciB2JmlhY3V0ZTtyZ3VsYXMgcG9kZSBzZXIgZm9ybmVjaWRhKSc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJyZVYWN1dGU7dGlsIGFwZW5hcyBjb20gbyBsaXN0YXMgZGUgY2F0ZWdvcmlhcywgZXN0ZSBwYXImYWNpcmM7bWV0cm8gaW5kaWNhIG8gdGVtcGxhdGUgcXVlIGRldmUgc2VyIHV0aWxpemFkbyBwYXJhIGEgZXhpYmkmY2NlZGlsOyZhdGlsZGU7by4gU2UgbmVuaHVtIHZhbG9yIGZvciBlc3BlY2lmaWNhZG8sIGVudCZhdGlsZGU7byBvIGFjdHVhbCB0ZW1wbGF0ZSBwYWRyJmF0aWxkZTtvICZlYWN1dGU7IHVzYWRvLic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnRXNwZWNpZmljYSBvIHBhZ2VpZCBvdSBhbGlhcyBxdWUgZGV2ZSBzZXIgdXNhZG8gcGFyYSBleGliaXIgbyByZWxhdCZvYWN1dGU7cmlvIGRlIGRldGFsaGVzIC4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdFc3RlIHBhciZhY2lyYzttZXRybyBlc3BlY2lmaWNhIG8gdGVtcGxhdGUgcXVlIGRldmUgc2VyIHV0aWxpemFkbyBwYXJhIG8gZGV0YWxoZS4gU2UgbmVuaHVtIHZhbG9yIGZvciBlc3BlY2lmaWNhZG8sIG8gdGVtcGxhdGUgcGFkciZhdGlsZGU7byAmZWFjdXRlOyB1c2Fkby4nOwokbGFuZ1sncGFyYW1faGllcmFyY2h5J10gPSAnJlVhY3V0ZTt0ZWlzIGFwZW5hcyBubyA8ZW0+IHBhZHImYXRpbGRlO28gPC9lbT4sIGVzdGUgcGFyJmFjaXJjO21ldHJvIGVzcGVjaWZpY2EgcXVlIGFwZW5hcyBvcyBpdGVucyBlbSBxdWUgYSBsb2NhbGl6YSZjY2VkaWw7JmF0aWxkZTtvIGRhIGhpZXJhcnF1aWEgZGV2ZSBzZXIgZXhpYmlkby4gV2lsZGNhcmQgcG9kZW0gc2VyIHV0aWxpemFkb3MgZGUgbW9kbyBxdWUgcG9kZSBlc3BlY2lmaWNhciBtJmF0aWxkZTtlL2ZpbGhvIHJlbGFjaW9uYW1lbnRvcy4gRS5YLiB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5O3RydWNrcyomIzAzOTt9IGlyJmFhY3V0ZTsgY3JpYXIgdW1hIHMmaWFjdXRlO250ZXNlIGRlIHRvZG9zIG9zIGNhbWluaCZvdGlsZGU7ZXMsIGluY2x1aW5kbyBvcyBmaWxob3MgbmEgaGllcmFycXVpYS4gRGEgbWVzbWEgbWFuZWlyYSwge1Byb2R1Y3RzIGhpZXJhcmNoeT0mIzAzOTsqdHJ1Y2tzJiMwMzk7fSBleGliaXImYWFjdXRlOyB1bSByZWxhdCZvYWN1dGU7cmlvLXMmaWFjdXRlO250ZXNlIGRlIHRvZG9zIG9zIGNhbWluaCZvdGlsZGU7ZXMsIGUgdG9kb3Mgb3MgcHJvZHV0b3MgcGVydGVuY2VudGVzIGEgcXVhbHF1ZXIgcGFpIG5hIGhpZXJhcnF1aWEuJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJyZVYWN1dGU7dGlsIGFwZW5hcyBjb20gYSBhYyZjY2VkaWw7JmF0aWxkZTtvICA8ZW0+cGFkciZhdGlsZGU7bzwvZW0+ICwgZXN0ZSBwYXImYWNpcmM7bWV0cm8gZXNwZWNpZmljYSBxdWFudG9zIGl0ZW5zIGRldmVtIHNlciBsaXN0YWRvcyBlbSBjYWRhIHAmYWFjdXRlO2dpbmEuJzsKJGxhbmdbJ3BhcmFtX3BhcmVudCddID0gJyZVYWN1dGU7dGVpcyBhcGVuYXMgbmEgPGVtPiBoaWVyYXJxdWlhIDwvZW0+LCBlc3RlIHBhciZhY2lyYzttZXRybyBlc3BlY2lmaWNhIGEgaGllcmFycXVpYSBpZCBkYSBwYXJ0aWRhIGRhIGxvY2FsaXphJmNjZWRpbDsmYXRpbGRlO28gZG8gcmVsYXQmb2FjdXRlO3Jpby4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGlkJ10gPSAnJlVhY3V0ZTt0aWwgYXBlbmFzIGNvbSBhIGFjJmNjZWRpbDsmYXRpbGRlO28gZGUgZGV0YWxoZSAsIGVzdGUgcGFyJmFjaXJjO21ldHJvIGluZGljYSBvIHByb2R1dG8gcXVlIHByZXRlbmRlIGV4aWJpci4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnRXNwZWNpZmljYXIgYSBvcmRlbSBkb3MgY2FtcG9zIG9yZGVuYWRvcyBubyBzdW0mYWFjdXRlO3Jpby4gT3MgdmFsb3JlcyBwb3NzJmlhY3V0ZTt2ZWlzIHMmYXRpbGRlO286DQo8dWw+DQogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBBc2NlbmRpbmcgb3JkZXI8L2xpPg0KICA8bGk+ZGVzYyAtLSBEZXNjZW5kaW5nIG9yZGVyPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gJ0FwbGljJmFhY3V0ZTt2ZWwgYXBlbmFzIGVtIG1vZG8gc3VtJmFhY3V0ZTtyaW8sIGVzdGUgcGFyJmFjaXJjO21ldHJvIGRldGVybWluYSBhIHRyaWFnZW0gZGFzIGVtcHJlc2FzIGRlIHNhJmlhY3V0ZTtkYS4gT3MgdmFsb3JlcyBwb3NzJmlhY3V0ZTt2ZWlzIHMmYXRpbGRlO286DQo8dWw+DQogIDxsaT48c3Ryb25nPnByb2R1Y3RfbmFtZTwvc3Ryb25nPjwvbGk+DQogPGxpPnByaWNlIC0tIE8gdmFsb3IgYmFzZSBkbyBwcm9kdXRvPC9saT4NCiAgPGxpPnN0YXR1cyAtLSBSYXNjdW5obyBvdSBwJnVhY3V0ZTtibGljYWRvPC9saT4NCiAgPGxpPnJhbmRvbSAtLSBFeGliaXIgcG9yIG9yZGVtIGFsZWF0Jm9hY3V0ZTtyaWEgZW0gY2FkYSBzb2xpY2l0YSZjY2VkaWw7JmF0aWxkZTtvPC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gQSBkYXRhIGRhIGNyaWEmY2NlZGlsOyZhdGlsZGU7byBwYXJhIGVzdGEgZW1wcmVzYTwvbGk+DQogIDxsaT5tb2RpZmllZCAtLSBBIGRhdGEgZGEgbW9kaWZpY2EmY2NlZGlsOyZhdGlsZGU7byBwYXJhIGVzdGEgZW1wcmVzYTwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdFc3RlIHBhciZhY2lyYzttZXRybyBlc3BlY2lmaWNhIG5vIHRlbXBsYXRlIHF1ZSBkZXZlIHNlciB1dGlsaXphZG8gcGFyYSBhIGV4aWJpJmNjZWRpbDsmYXRpbGRlO28gZG8gc3VtJmFhY3V0ZTtyaW8uIFNlIG5lbmh1bSB2YWxvciBmb3IgZXNwZWNpZmljYWRvLCBvIHBhZHImYXRpbGRlO28gYWN0dWFsICZlYWN1dGU7IHVzYWRvLic7CiRsYW5nWydwYXJlbnQnXSA9ICdQYXJlbnRlJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTSZvYWN1dGU7ZHVsbyBQcm9kdXRvcyBmb2kgaW5zdGFsYWRvIGNvbSBzdWNlc3NvJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdPIG0mb2FjdXRlO2R1bG8gUHJvZHV0b3MgZm9pIHJlbW92aWRvIGp1bnRhbWVudGUgY29tIHRvZG9zIG9zIGRhZG9zIGFzc29jaWFkb3MnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQcmVmZXImZWNpcmM7bmNpYXMnOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnUmVtb3ZlbmRvIGVzdGUgbSZvYWN1dGU7ZHVsbyB0YW1iJmVhY3V0ZTttIGlyJmFhY3V0ZTsgcmVtb3ZlciB0b2RvcyBvcyBkYWRvcyBhc3NvY2lhZG9zLCB0ZW0gY2VydGV6YSBkZSBxdWUgZGVzZWphIHByb3NzZWd1aXI/JzsKJGxhbmdbJ3ByaWNlJ10gPSAnUHJlJmNjZWRpbDtvJzsKJGxhbmdbJ3ByaWNlX2FkanVzdG1lbnQnXSA9ICdBanVzdGVzIGRlIHByZSZjY2VkaWw7b3MnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb2R1Y3QnXSA9ICdQcm9kdWN0byc7CiRsYW5nWydwcm9kdWN0bmFtZSddID0gJ1Byb2R1Y3RvIE5vbWUnOwokbGFuZ1sncHJvZHVjdHMnXSA9ICdHZXN0JmF0aWxkZTtvIGRvIFByb2R1Y3RvJzsKJGxhbmdbJ3Byb2R1Y3RfaGllcmFyY2h5J10gPSAnSGllcmFycXVpYSBQcm9kdWN0byc7CiRsYW5nWydwcm9kdWN0X21hbmFnZXInXSA9ICdHZXN0JmF0aWxkZTtvIGRlIFByb2R1dG9zJzsKJGxhbmdbJ3Byb21wdCddID0gJ0NvbWFuZG8nOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfZmlsZXR5cGVzJ10gPSAnUGVybWl0aXIgY2FycmVnYXIgYXJxdWl2b3MgY29tIGFzIGV4dGVucyZvdGlsZGU7ZXMgKHBhcmEgbyB0aXBvIGNhbXBvcyBkZSBhcnF1aXZvICknOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2V0eXBlcyddID0gJ1Blcm1pdGlyIGNhcnJlZ2FyIGltYWdlbnMgY29tIGVzc2FzIGV4dGVucyZvdGlsZGU7ZXMgKHBhcmEgbyB0aXBvIGNhbXBvcyBkZSBpbWFnZW0pJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsJ10gPSAnQ3JpYXIgYXV0b21hdGljYW1lbnRlIG1pbmlhdHVyYXMgZGFzIGltYWdlbnMnOwokbGFuZ1sncHJvbXB0X2FwcGxpY2FibGUnXSA9ICdBY3RpdmFyIHBvciBwYWRyJmF0aWxkZTtvIHBhcmEgdG9kb3Mgb3Mgbm92b3MgcHJvZHV0b3MnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAnUyZpYWN1dGU7bWJvbG8gZGEgbW9lZGEnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gJ0V4Y2x1YSBxdWFpc3F1ZXIgYXJxdWl2b3MgYXNzb2NpYWRvcyBjb20gbyBwcm9kdXRvLCBxdWFuZG8gbyBwcm9kdXRvIGZvciBleGNsdSZpYWN1dGU7ZG8/JzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnUCZhYWN1dGU7Z2luYSBEZXRhbGhlIFBhZHImYXRpbGRlO28nOwokbGFuZ1sncHJvbXB0X3RheHJhdGUnXSA9ICdDdXN0byBkbyBJbXBvc3RvJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnT3JkZW5hJmNjZWRpbDsmYXRpbGRlO28gUGFkciZhdGlsZGU7byBkbyBzdW0mYWFjdXRlO3Jpbyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICdPcmRlbmEmY2NlZGlsOyZhdGlsZGU7byBQYWRyJmF0aWxkZTtvIGRvcyBjYW1wb3Mgbm8gc3VtJmFhY3V0ZTtyaW8nOwokbGFuZ1sncHJvbXB0X3RheDEnXSA9ICdQcmltZWlybyBJbXBvc3RvJzsKJGxhbmdbJ3Byb21wdF90YXgyJ10gPSAnU2VndW5kbyBJbXBvc3RvJzsKJGxhbmdbJ3Byb21wdF90YXhuYW1lJ10gPSAnTm9tZSBkbyBJbXBvc3RvJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIEZvbnRlJzsKJGxhbmdbJ3Byb21wdF93ZWlnaHR1bml0cyddID0gJ1VuaWRhZGVzIGRlIFBlc28gJzsKJGxhbmdbJ3B1YmxpYyddID0gJyZFYWN1dGU7IHVtIGNhbXBvIHAmdWFjdXRlO2JsaWNvPyc7CiRsYW5nWydwdWJsaXNoZWQnXSA9ICdQJnVhY3V0ZTtibGljYWRvJzsKJGxhbmdbJ3JhbmRvbSddID0gJ0FsaWF0Jm9hY3V0ZTtyaW8nOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdSZWRlZmVuaXIgcGFyYSBvcyB2YWxvcmVzIFBhZHImYXRpbGRlO28nOwokbGFuZ1sncm9vdCddID0gJ1BhaSc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2VsZWNjaW9uYXIgVW0nOwokbGFuZ1snc29ydF9ieSddID0gJ09yZGVuYXIgUG9yJzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdPcmRlbSBkYSBPcmRlbmEmY2NlZGlsOyZhdGlsZGU7byc7CiRsYW5nWydzdGF0dXMnXSA9ICdFc3RhZG8nOwokbGFuZ1snc3VibWl0J10gPSAnU3VibWl0ZXInOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ1N1bSZhYWN1dGU7cmlvIFRlbXBsYXRlcyc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkaWNpb25hci9FZGl0YXIgIFN1bSZhYWN1dGU7cmlvIFRlbXBsYXRlcyc7CiRsYW5nWyd0YXhhYmxlJ10gPSAnVHJpYnV0JmFhY3V0ZTt2ZWlzJzsKJGxhbmdbJ3RheF9tb2R1bGUnXSA9ICdNJm9hY3V0ZTtkdWxvIGRlIEltcG9zdG9zJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnJkFhY3V0ZTtyZWEgZGUgVGV4dG8nOwokbGFuZ1sndGV4dGJveCddID0gJ0NhbXBvIGRlIFRleHRvJzsKJGxhbmdbJ3RpdGxlX2J5aGllcmFyY2h5X2RmbHR0ZW1wbGF0ZSddID0gJ0hpZXJhcnF1aWEgUGFkciZhdGlsZGU7byBub3ZvIHRlbXBsYXRlIGRlIHJlbGF0Jm9hY3V0ZTtyaW8nOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ05vdm8gVGVtcGxhdGUgUGFkciZhdGlsZGU7byBDYXRlZ29yaWEgTGlzdGEnOwokbGFuZ1sndGl0bGVfZGV0YWlsX2RmbHR0ZW1wbGF0ZSddID0gJ05vdm8gVGVtcGxhdGUgUGFkciZhdGlsZGU7byBEZXRhbGhlcyc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ05vdm8gVGVtcGxhdGUgUGFkciZhdGlsZGU7byBTdW0mYWFjdXRlO3Jpbyc7CiRsYW5nWyd0eXBlJ10gPSAnVGlwbyc7CiRsYW5nWyd1cGRhdGUnXSA9ICdBY3R1YWxpemFyJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1NlbGVjY2lvbmUgdW0gYXJxdWl2byBhIGNhcnJlZ2FyJzsKJGxhbmdbJ3ZhbHVlJ10gPSAnVmFsb3InOwokbGFuZ1sndmFsdWVzJ10gPSAnVmFsb3Jlcyc7CiRsYW5nWyd3ZWlnaHQnXSA9ICdQZXNvJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIwNjY2MjczOS45LjQudXRtY3NyPWZvcnVtLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjbj0ocmVmZXJyYWwpfHV0bWNtZD1yZWZlcnJhbHx1dG1jY3Q9L2luZGV4LnBocC90b3BpYywxMTY4OS5tc2c1ODU1OS5odG1sJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTQzMTU3OTQ1MS4xMjA2NTU1NzE1LjEyMDY2OTMwNzAuMTIwNjcyNDAyNi4xMyc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJGRiID0mICR0aGlzLT5HZXREYigpOwoKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwokZmxkcyA9ICIKCWlkIEkgS0VZIEFVVE8sCglwcm9kdWN0X25hbWUgQygyNTUpLAoJZGV0YWlscyBYLAogICAgICAgIHByaWNlIEYsCgljcmVhdGVfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwKCW1vZGlmaWVkX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIsCiAgICAgICAgdGF4YWJsZSBJLAogICAgICAgIHN0YXR1cyBDKDUwKSwKICAgICAgICB3ZWlnaHQgRgoiOwoKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzIiwgCgkJJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRmbGRzID0gIgoJaWQgSSBLRVkgQVVUTywKCW5hbWUgQygyNTUpLAoJY3JlYXRlX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIsCgltb2RpZmllZF9kYXRlICIgLiBDTVNfQURPREJfRFQgLiAiCiI7CgokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyIsIAoJCSRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokZmxkcyA9ICIKCXByb2R1Y3RfaWQgSSwKCWNhdGVnb3J5X2lkIEksCgljcmVhdGVfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwKCW1vZGlmaWVkX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIKIjsKCiR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19wcm9kdWN0X2NhdGVnb3JpZXMiLCAKCQkkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJGZsZHMgPSAiCglpZCBJIEtFWSBBVVRPLAoJbmFtZSBDKDI1NSksCiAgICAgICAgcHJvbXB0IEMoMjU1KSwKCXR5cGUgQyg1MCksCgltYXhfbGVuZ3RoIEksCiAgICAgICAgb3B0aW9ucyBYLAoJY3JlYXRlX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIsCgltb2RpZmllZF9kYXRlICIgLiBDTVNfQURPREJfRFQgLiAiLAogICAgICAgIGl0ZW1fb3JkZXIgSSwKICAgICAgICBwdWJsaWMgSQoiOwokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIiwgCgkJJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRmbGRzID0gIgoJcHJvZHVjdF9pZCBJLAoJZmllbGRkZWZfaWQgSSwKCXZhbHVlIFgsCgljcmVhdGVfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwKCW1vZGlmaWVkX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIKIjsKCiR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMiLCAKCQkkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJGZsZHMgPSAiCiAgICAgICAgYXR0cmliX3NldF9pZCBJIEtFWSBBVVRPLAogICAgICAgIHByb2R1Y3RfaWQgSSBLRVksCiAgICAgICAgYXR0cmliX3NldF9uYW1lIEMoMjU1KQoiOwokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlic2V0cyIsIAoJCSRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokZmxkcyA9ICIKICAgICAgICBhdHRyaWJfc2V0X2lkIEkgS0VZLAogICAgICAgIGF0dHJpYl90ZXh0ICAgQygyNTUpIEtFWSwKICAgICAgICBhdHRyaWJfYWRqdXN0bWVudCBDKDUwKQoiOwokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcyIsIAoJCSRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokZmxkcyA9ICJpZCBJIEtFWSBBVVRPLAogICAgICAgICBuYW1lIEMoMjU1KSwKICAgICAgICAgcGFyZW50X2lkIEksCiAgICAgICAgIGhpZXJhcmNoeSBDKDI1NSksCiAgICAgICAgIGltYWdlIEMoMjU1KSwKICAgICAgICAgbG9uZ19uYW1lIFgsCiAgICAgICAgIGRlc2NyaXB0aW9uIFgiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5JywKCQkJCSAgJGZsZHMsJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJGZsZHMgPSAicHJvZHVjdF9pZCBJIEtFWSwKICAgICAgICAgaGllcmFyY2h5X2lkIEkgS0VZIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hpZXInLAoJCQkJICAkZmxkcywkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgojCiMgVGVtcGxhdGVzCiMKCgojIFNldHVwIHN1bW1hcnkgdGVtcGxhdGUKJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwndGVtcGxhdGVzJywnb3JpZ19zdW1tYXJ5X3RlbXBsYXRlLnRwbCcpOwppZiggZmlsZV9leGlzdHMoICRmbiApICkKICB7CiAgICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV1NVTU1BUllfVEVNUExBVEUsJHRlbXBsYXRlKTsKICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnc3VtbWFyeV9TYW1wbGUnLCR0ZW1wbGF0ZSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX0RGTFRTVU1NQVJZX1RFTVBMQVRFLCdTYW1wbGUnKTsKICB9CgojIFNldHVwIGRldGFpbCB0ZW1wbGF0ZQokZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX2RldGFpbF90ZW1wbGF0ZS50cGwnKTsKaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApCiAgewogICAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ORVdERVRBSUxfVEVNUExBVEUsJHRlbXBsYXRlKTsKICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnZGV0YWlsX1NhbXBsZScsJHRlbXBsYXRlKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVERFVEFJTF9URU1QTEFURSwnU2FtcGxlJyk7CiAgfQoKIyBTZXR1cCBkZWZhdWx0IGhpZXJhcmNoeSByZXBvcnQgdGVtcGxhdGUKJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwndGVtcGxhdGVzJywnb3JpZ19ieWhpZXJhcmNoeV90ZW1wbGF0ZS50cGwnKTsKaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApCiAgewogICAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ORVdCWUhJRVJBUkNIWV9URU1QTEFURSwkdGVtcGxhdGUpOwogICAgJHRoaXMtPlNldFRlbXBsYXRlKCdieWhpZXJhcmNoeV9TYW1wbGUnLCR0ZW1wbGF0ZSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX0RGTFRCWUhJRVJBUkNIWV9URU1QTEFURSwnU2FtcGxlJyk7CiAgfQoKIyBTZXR1cCBkZWZhdWx0IGNhdGVnb3J5IGxpc3QgdGVtcGxhdGUKJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwndGVtcGxhdGVzJywnb3JpZ19jYXRlZ29yeWxpc3RfdGVtcGxhdGUudHBsJyk7CmlmKCBmaWxlX2V4aXN0cyggJGZuICkgKQogIHsKICAgICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkZm4gKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXQ0FURUdPUllMSVNUX1RFTVBMQVRFLCR0ZW1wbGF0ZSk7CiAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2NhdGVnb3J5bGlzdF9TYW1wbGUnLCR0ZW1wbGF0ZSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX0RGTFRDQVRFR09SWUxJU1RfVEVNUExBVEUsJ1NhbXBsZScpOwogIH0KCgojU2V0IFBlcm1pc3Npb24KJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycsICdNb2RpZnkgUHJvZHVjdHMnKTsKCiNQcmVmZXJlbmNlcwokdGhpcy0+U2V0UHJlZmVyZW5jZSgndGF4X21vZHVsZScsLTEpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgncHJvZHVjdHNfY3VycmVuY3lzeW1ib2wnLCckJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwcm9kdWN0c193ZWlnaHR1bml0cycsJ2tnJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhbGxvd2VkX2ltYWdldHlwZXMnLCdqcGcsanBlZyxnaWYscG5nJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhbGxvd2VkX2ZpbGV0eXBlcycsJ3BkZicpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYXV0b3RodW1ibmFpbCcsMSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWxldGVwcm9kdWN0ZmlsZXMnLDEpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJGRiID0mICR0aGlzLT5HZXREYigpOwoKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSggJGRiICk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0cyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlic2V0cyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19wcm9kdG9oaWVyIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokdGhpcy0+RGVsZXRlVGVtcGxhdGUoKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoKTsKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBQcm9kdWN0cyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMgCiMgVmVyc2lvbjogMS4xLjUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKc3dpdGNoKCAkb2xkdmVyc2lvbiApCiAgewogIGNhc2UgJzEuMCc6CiAgY2FzZSAnMS4wLjEnOgogICAgewogICAgICAkZGIgPSYgJHRoaXMtPkdldERiKCk7CiAgICAgICRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKICAgICAgJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKCiAgICAgICRmbGRzID0gIgogICAgICAgIGF0dHJpYl9zZXRfaWQgSSBLRVkgQVVUTywKICAgICAgICBwcm9kdWN0X2lkIEkgS0VZLAogICAgICAgIGF0dHJpYl9zZXRfbmFtZSBDKDI1NSkKICAgICAgIjsKICAgICAgJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKICAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnNldHMiLCAKCQkJCQkkZmxkcywgJHRhYm9wdGFycmF5KTsKICAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAgICAgJGZsZHMgPSAiCiAgICAgICAgYXR0cmliX3NldF9pZCBJIEtFWSwKICAgICAgICBhdHRyaWJfdGV4dCAgIEMoMjU1KSBLRVksCiAgICAgICAgYXR0cmliX2FkanVzdG1lbnQgQyg1MCkKICAgICAgIjsKICAgICAgJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKICAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnV0ZXMiLCAKCQkJCQkkZmxkcywgJHRhYm9wdGFycmF5KTsKICAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgfQogIH0KCi8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/Products.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBQcm9kdWN0cyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMgCiMgVmVyc2lvbjogMS4xLjUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKJGNnZXh0ZW5zaW9ucyA9IGNtc19qb2luX3BhdGgoJGdDbXMtPmNvbmZpZ1sncm9vdF9wYXRoJ10sJ21vZHVsZXMnLAoJCQkgICAgICAnQ0dFeHRlbnNpb25zJywnQ0dFeHRlbnNpb25zLm1vZHVsZS5waHAnKTsKaWYoICFpc19yZWFkYWJsZSggJGNnZXh0ZW5zaW9ucyApICkKewogIGVjaG8gJzxoMT48Zm9udCBjb2xvcj0icmVkIj5FUlJPUjogVGhlIENHRXh0ZW5zaW9ucyBtb2R1bGUgY291bGQgbm90IGJlIGZvdW5kLjwvZm9udD48L2gxPic7CiAgcmV0dXJuOwp9CnJlcXVpcmVfb25jZSgkY2dleHRlbnNpb25zKTsKCmRlZmluZSgnUFJPRFVDVFNfUFJFRl9ORVdTVU1NQVJZX1RFTVBMQVRFJywncHJvZHVjdHNfcHJlZl9uZXdzdW1tYXJ5X3RlbXBsYXRlJyk7CmRlZmluZSgnUFJPRFVDVFNfUFJFRl9ERkxUU1VNTUFSWV9URU1QTEFURScsJ3Byb2R1Y3RzX3ByZWZfZGZsdHN1bW1hcnlfdGVtcGxhdGUnKTsKZGVmaW5lKCdQUk9EVUNUU19QUkVGX05FV0RFVEFJTF9URU1QTEFURScsJ3Byb2R1Y3RzX3ByZWZfbmV3ZGV0YWlsX3RlbXBsYXRlJyk7CmRlZmluZSgnUFJPRFVDVFNfUFJFRl9ERkxUREVUQUlMX1RFTVBMQVRFJywncHJvZHVjdHNfcHJlZl9kZmx0ZGV0YWlsX3RlbXBsYXRlJyk7CmRlZmluZSgnUFJPRFVDVFNfUFJFRl9ORVdDQVRFR09SWUxJU1RfVEVNUExBVEUnLCdwcm9kdWN0c19wcmVmX25ld2NhdGVnb3J5bGlzdF90ZW1wbGF0ZScpOwpkZWZpbmUoJ1BST0RVQ1RTX1BSRUZfREZMVENBVEVHT1JZTElTVF9URU1QTEFURScsJ3Byb2R1Y3RzX3ByZWZfZGZsdGNhdGVnb3J5bGlzdF90ZW1wbGF0ZScpOwpkZWZpbmUoJ1BST0RVQ1RTX1BSRUZfTkVXQllISUVSQVJDSFlfVEVNUExBVEUnLCdwcm9kdWN0c19wcmVmX25ld2J5aGllcmFyY2h5X3RlbXBsYXRlJyk7CmRlZmluZSgnUFJPRFVDVFNfUFJFRl9ERkxUQllISUVSQVJDSFlfVEVNUExBVEUnLCdwcm9kdWN0c19wcmVmX2RmbHRieWhpZXJhcmNoeV90ZW1wbGF0ZScpOwoKY2xhc3MgUHJvZHVjdHMgZXh0ZW5kcyBDR0V4dGVuc2lvbnMKewogIHZhciAkX3Byb2R1Y3RfY2FjaGU7CgogIGZ1bmN0aW9uIFByb2R1Y3RzKCkKICB7CiAgICBwYXJlbnQ6OkNNU01vZHVsZSgpOwoJJHRoaXMtPl9wcm9kdWN0X2NhY2hlID0gYXJyYXkoKTsKICB9CgogIGZ1bmN0aW9uIEdldE5hbWUoKQogIHsKCXJldHVybiAnUHJvZHVjdHMnOwogIH0KCiAgZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkKICB7CglyZXR1cm4gJHRoaXMtPkxhbmcoJ3Byb2R1Y3RfbWFuYWdlcicpOwogIH0KCiAgZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkKICB7CglyZXR1cm4gYXJyYXkoJ0NHRXh0ZW5zaW9ucyc9PicxLjgnLAoJCSAnQ0dTaW1wbGVTbWFydHknPT4nMS4yJyk7CiAgfQoKICBmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpCiAgewoJcmV0dXJuIHRydWU7CiAgfQoKICBmdW5jdGlvbiBIYXNBZG1pbigpCiAgewoJcmV0dXJuIHRydWU7CiAgfQoKICBmdW5jdGlvbiBIYW5kbGVzRXZlbnRzKCkKICB7CgkvL3JldHVybiB0cnVlOwogIH0KCiAgZnVuY3Rpb24gR2V0VmVyc2lvbigpCiAgewoJcmV0dXJuICcyLjAnOwogIH0KCiAgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKQogIHsKCXJldHVybiAnMS4yLjMnOwogIH0KCiAgZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpCiAgewoJcmV0dXJuICR0aGlzLT5MYW5nKCdtb2R1bGVfZGVzY3JpcHRpb24nKTsKICB9CgogIGZ1bmN0aW9uIFZpc2libGVUb0FkbWluVXNlcigpCiAgewoJcmV0dXJuICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDYXJ0JykgfHwKCSAgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpIHx8CgkgICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJyk7CiAgfQoKICBmdW5jdGlvbiBTZXRQYXJhbWV0ZXJzKCkKICB7CgkkdGhpcy0+QWRkSW1hZ2VEaXIoJ2ljb25zJyk7CgoJJHRoaXMtPlJlZ2lzdGVyTW9kdWxlUGx1Z2luKCk7CgkkdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7CgoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignYWN0aW9uJywnZGVmYXVsdCcsJHRoaXMtPkxhbmcoJ3BhcmFtX2FjdGlvbicpKTsKCgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdwcm9kdWN0aWQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9wcm9kdWN0aWQnKSk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncHJvZHVjdGlkJyxDTEVBTl9JTlQpOwoKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2RldGFpbHBhZ2UnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9kZXRhaWxwYWdlJykpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2RldGFpbHBhZ2UnLENMRUFOX1NUUklORyk7CgoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignY2F0ZWdvcnlsaXN0dGVtcGxhdGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZScpKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdjYXRlZ29yeWxpc3R0ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKCgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdkZXRhaWx0ZW1wbGF0ZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2RldGFpbHRlbXBsYXRlJykpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2RldGFpbHRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwoKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3N1bW1hcnl0ZW1wbGF0ZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZScpKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzdW1tYXJ5dGVtcGxhdGUnLENMRUFOX1NUUklORyk7CgoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignaGllcmFyY2h5dGVtcGxhdGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZScpKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdoaWVyYXJjaHl0ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKCgoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc29ydGJ5JywncHJvZHVjdF9uYW1lJywkdGhpcy0+TGFuZygncGFyYW1fc29ydGJ5JykpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NvcnRieScsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3NvcnRvcmRlcicsJ2FzYycsJHRoaXMtPkxhbmcoJ3BhcmFtX3NvcnRvcmRlcicpKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzb3J0b3JkZXInLENMRUFOX1NUUklORyk7Ci8vIAkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzZWxlY3RjYXRlZ29yeScsMCwkdGhpcy0+TGFuZygncGFyYW1fc2VsZWN0Y2F0ZWdvcnknKSk7Ci8vIAkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc2VsZWN0Y2F0ZWdvcnknLENMRUFOX0lOVCk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdjYXRlZ29yeScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2NhdGVnb3J5JykpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NhdGVnb3J5JyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignaGllcmFyY2h5JywnJywkdGhpcy0+TGFuZygncGFyYW1faGllcmFyY2h5JykpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2hpZXJhcmNoeScsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3BhZ2VsaW1pdCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3BhZ2VsaW1pdCcpKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdwYWdlbGltaXQnLENMRUFOX0lOVCk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdwYXJlbnQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9wYXJlbnQnKSk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncGFyZW50JyxDTEVBTl9JTlQpOwoKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdqdW5rJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3BhZ2UnLENMRUFOX0lOVCk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnaGllcmFyY2h5aWQnLENMRUFOX0lOVCk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnY2F0ZWdvcnlpZCcsQ0xFQU5fSU5UKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKENMRUFOX1JFR0VYUC4nL2NkXy4qLycsQ0xFQU5fU1RSSU5HKTsKCgkvLyBGcmllbmRseSBVUkwgc3R1ZmYKCS8vIHRvZG8sIGFkZCBkZWZhdWx0cyBoZXJlCgkkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL1tQcF1yb2R1Y3RzXC8oP1A8cHJvZHVjdGlkPlswLTldKylcLyg/UDxyZXR1cm5pZD5bMC05XSspXC8oP1A8anVuaz4uKj8pJC8nKTsKCSR0aGlzLT5SZWdpc3RlclJvdXRlKCcvW1BwXXJvZHVjdHNcLyg/UDxwcm9kdWN0aWQ+WzAtOV0rKSQvJyk7CgkkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL1tQcF1yb2R1Y3RzXC9zdW1tYXJ5XC8oJFA8cmV0dXJuaWQ+WzAtOV0rKVwvKD9QPGp1bms+Lio/KSQvJyk7CgkkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL1tQcF1yb2R1Y3RzXC9zdW1tYXJ5XC8oJFA8cmV0dXJuaWQ+WzAtOV0rKSQvJyk7CgkkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL1tQcF1yb2R1Y3RzXC9ieWNhdGVnb3J5XC8oP1A8Y2F0ZWdvcnlpZD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKVwvKD9QPGp1bms+Lio/KSQvJyk7CgkkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL1tQcF1yb2R1Y3RzXC9ieWNhdGVnb3J5XC8oP1A8Y2F0ZWdvcnlpZD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKSQvJyk7CgkkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL1tQcF1yb2R1Y3RzXC9ieWhpZXJhcmNoeVwvKD9QPGhpZXJhcmNoeWlkPlswLTldKylcLyg/UDxyZXR1cm5pZD5bMC05XSspXC8oP1A8anVuaz4uKj8pJC8nKTsKCSR0aGlzLT5SZWdpc3RlclJvdXRlKCcvW1BwXXJvZHVjdHNcL2J5aGllcmFyY2h5XC8oP1A8aGllcmFyY2h5aWQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKykkLycpOwoJJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9bUHBdcm9kdWN0c1wvaGllcmFyY2h5XC8oP1A8cGFyZW50PlswLTldKylcLyg/UDxyZXR1cm5pZD5bMC05XSspJC8nKTsKCSR0aGlzLT5SZWdpc3RlclJvdXRlKCcvW1BwXXJvZHVjdHNcL2hpZXJhcmNoeVwvKD9QPHBhcmVudD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKVwvKD9QPGp1bms+Lio/KSQvJyk7CiAgfQoKICBmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKQogIHsKCXJldHVybiAkdGhpcy0+TGFuZygncG9zdGluc3RhbGwnKTsKICB9CgogIGZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkKICB7CglyZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsKICB9CgogIGZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKQogIHsKCXJldHVybiAkdGhpcy0+TGFuZygncHJldW5pbnN0YWxsJyk7CiAgfQoKICBmdW5jdGlvbiBHZXRIZWxwKCRsYW5nPSdlbl9VUycpCiAgewoJcmV0dXJuICR0aGlzLT5MYW5nKCdoZWxwJyk7CiAgfQoKICBmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKQogIHsKCXJldHVybiAnY29udGVudCc7CiAgfQoKICBmdW5jdGlvbiBHZXRBdXRob3IoKQogIHsKCXJldHVybiAnY2FsZ3V5MTAwMCc7CiAgfQoKICBmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpCiAgewoJcmV0dXJuICdjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJzsKICB9CgogIGZ1bmN0aW9uIEdldENoYW5nZUxvZygpCiAgewoJcmV0dXJuICR0aGlzLT5MYW5nKCdjaGFuZ2Vsb2cnKTsKICB9CgogIGZ1bmN0aW9uIEdldEV2ZW50RGVzY3JpcHRpb24oICRldmVudG5hbWUgKQogIHsKCXJldHVybiAkdGhpcy0+bGFuZygnZXZlbnRkZXNjLScgLiAkZXZlbnRuYW1lKTsKICB9CgogIGZ1bmN0aW9uIEdldEV2ZW50SGVscCggJGV2ZW50bmFtZSApCiAgewoJcmV0dXJuICR0aGlzLT5sYW5nKCdldmVudGhlbHAtJyAuICRldmVudG5hbWUpOwogIH0KCQoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBEb0FjdGlvbigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gRG9BY3Rpb24oJG5hbWUsJGlkLCRwYXJhbXMsJHJldHVybmlkPScnKQogIHsKICAgIGdsb2JhbCAkZ0NtczsKICAgICRzbWFydHkgPSYgJGdDbXMtPkdldFNtYXJ0eSgpOwoKICAgICRzbWFydHktPmFzc2lnbl9ieV9yZWYoJ21vZCcsJHRoaXMpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdyZXR1cm5pZCcsJHJldHVybmlkKTsKICAgIHBhcmVudDo6RG9BY3Rpb24oJG5hbWUsJGlkLCRwYXJhbXMsJHJldHVybmlkKTsKICB9CgoKICBmdW5jdGlvbiBHZXRUeXBlc0Ryb3Bkb3duKCAkaWQsICRuYW1lLCAkc2VsZWN0ZWQgPSAnJywgJGFkZHRleHQgPSAnJywgJHNlbGVjdG9uZSA9IGZhbHNlICkKICB7CgkkaXRlbXMgPSBhcnJheSgpOwoJaWYoICRzZWxlY3RvbmUgKQoJICB7CgkJJGl0ZW1zWyR0aGlzLT5MYW5nKCdzZWxlY3Rfb25lJyldID0gJyc7CgkgIH0KCSRpdGVtc1skdGhpcy0+TGFuZygndGV4dGJveCcpXSA9ICd0ZXh0Ym94JzsKCSRpdGVtc1skdGhpcy0+TGFuZygnY2hlY2tib3gnKV0gPSAnY2hlY2tib3gnOwoJJGl0ZW1zWyR0aGlzLT5MYW5nKCd0ZXh0YXJlYScpXSA9ICd0ZXh0YXJlYSc7CgkkaXRlbXNbJHRoaXMtPkxhbmcoJ2Ryb3Bkb3duJyldID0gJ2Ryb3Bkb3duJzsKICAgICRpdGVtc1skdGhpcy0+TGFuZygnaW1hZ2V0ZXh0JyldID0gJ2ltYWdlJzsKCSRpdGVtc1skdGhpcy0+TGFuZygnZmlsZScpXSA9ICdmaWxlJzsKCglyZXR1cm4gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAkbmFtZSwgJGl0ZW1zLCAtMSwgJHNlbGVjdGVkLAoJCQkJCQkJCQkgICRhZGR0ZXh0KTsKICB9CgkKCiAgZnVuY3Rpb24gR2V0Q2F0ZWdvcmllcygpCiAgewoJJGVudHJ5YXJyYXkgPSBhcnJheSgpOwoJCQoJZ2xvYmFsICRnQ21zOwoJJGRiID0mICRnQ21zLT5HZXREQigpOwoJCQoJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yaWVzJzsKCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoKCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCSAgewoJCSRvbmVyb3cgPSBuZXcgc3RkQ2xhc3MoKTsKCQkJCgkJJG9uZXJvdy0+aWQgPSAkcm93WydpZCddOwoJCSRvbmVyb3ctPm5hbWUgPSAkcm93WyduYW1lJ107CgkJJG9uZXJvdy0+dmFsdWUgPSBmYWxzZTsKCQkJCgkJJGVudHJ5YXJyYXlbXSA9ICRvbmVyb3c7CgkgIH0KCQkKCXJldHVybiAkZW50cnlhcnJheTsKICB9CgoJCiAgZnVuY3Rpb24gR2V0Q2F0ZWdvcmllc0ZvclByb2R1Y3QoJGlkKQogIHsKCSRlbnRyeWFycmF5ID0gYXJyYXkoKTsKCglnbG9iYWwgJGdDbXM7CgkkZGIgPSYgJGdDbXMtPkdldERCKCk7CgkJCgkkZW50cnlhcnJheSA9ICR0aGlzLT5HZXRDYXRlZ29yaWVzKCk7CgoJJHF1ZXJ5ID0gJ1NFTEVDVCBjLiogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcyBjIFdIRVJFIGMucHJvZHVjdF9pZCA9ID8nOwoJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGlkKSk7CgoJd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJICB7CgkJJGNvdW50ID0gMDsKCQlmb3JlYWNoICgkZW50cnlhcnJheSBhcyAkZmllbGQpCgkJICB7CgkJCS8vJGVudHJ5YXJyYXlbJGNvdW50XS0+dmFsdWUgPSBmYWxzZTsKCQkJaWYgKCRyb3dbJ2NhdGVnb3J5X2lkJ10gPT0gJGZpZWxkLT5pZCkKCQkJICB7CgkJCQkkZW50cnlhcnJheVskY291bnRdLT52YWx1ZSA9IHRydWU7CgkJCSAgfQoJCQkkY291bnQrKzsKCQkgIH0KCSAgfQoJCQoJcmV0dXJuICRlbnRyeWFycmF5OwogIH0KCQoKICBmdW5jdGlvbiBHZXRGaWVsZERlZnMoJGFkbWluID0gZmFsc2UsJHB1YmxpYyA9IHRydWUpCiAgewoJJGVudHJ5YXJyYXkgPSBhcnJheSgpOwoJCQoJZ2xvYmFsICRnQ21zOwoJJGRiID0mICRnQ21zLT5HZXREQigpOwoJCQoJaWYoICRhZG1pbiA9PSB0cnVlICYmICRwdWJsaWMgPT0gdHJ1ZSApCgkgIHsKCQkkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBPUkRFUiBCWSBpdGVtX29yZGVyJzsKCSAgfQoJZWxzZSBpZiggJHB1YmxpYyA9PSB0cnVlICkKCSAgewoJCSRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFdIRVJFIHB1YmxpYyA+IDAgT1JERVIgQlkgaXRlbV9vcmRlcic7CgkgIH0KCWVsc2UKCSAgewoJCSRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFdIRVJFIGFkbWluX29ubHkgPD0gMCBPUkRFUiBCWSBpdGVtX29yZGVyJzsKCSAgfQoJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgoJd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJICB7CgkJJG9uZXJvdyA9IG5ldyBzdGRDbGFzcygpOwoJCQkKCQkkb25lcm93LT5pZCA9ICRyb3dbJ2lkJ107CgkJJG9uZXJvdy0+bmFtZSA9ICRyb3dbJ25hbWUnXTsKCQkkb25lcm93LT5wcm9tcHQgPSAkcm93Wydwcm9tcHQnXTsKCQkkb25lcm93LT50eXBlID0gJHJvd1sndHlwZSddOwoJCSR0bXAgPSBleHBsb2RlKCJcbiIsJHJvd1snb3B0aW9ucyddKTsKCQkkdG1wMiA9IGFycmF5KCk7CgkJZm9yZWFjaCggJHRtcCBhcyAkb25lICkKCQkgIHsKCQkJJG9uZSA9IHRyaW0oJG9uZSk7CgkJCSR0bXAyWyRvbmVdID0gJG9uZTsKCQkgIH0KCQkkb25lcm93LT5vcHRpb25zID0gJHRtcDI7CgkJJG9uZXJvdy0+bWF4X2xlbmd0aCA9ICRyb3dbJ21heF9sZW5ndGgnXTsKCQkJCgkJJGVudHJ5YXJyYXlbXSA9ICRvbmVyb3c7CgkgIH0KCQkKCXJldHVybiAkZW50cnlhcnJheTsKICB9CgoJCiAgZnVuY3Rpb24gR2V0RmllbGREZWZzRm9yUHJvZHVjdCgkaWQsJGFkbWluID0gZmFsc2UsJHB1YmxpYyA9IHRydWUpCiAgewoJJGVudHJ5YXJyYXkgPSBhcnJheSgpOwoKCWdsb2JhbCAkZ0NtczsKCSRkYiA9JiAkZ0Ntcy0+R2V0REIoKTsKCQkKCSRlbnRyeWFycmF5ID0gJHRoaXMtPkdldEZpZWxkRGVmcygkYWRtaW4sJHB1YmxpYyk7CgoJJHF1ZXJ5ID0gJyc7CglpZiggJGFkbWluID09IHRydWUgJiYgJHB1YmxpYyA9PSB0cnVlICkKCSAgewoJCSRxdWVyeSA9ICdTRUxFQ1QgZnYuKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIGZ2IFdIRVJFIGZ2LnByb2R1Y3RfaWQgPSA/JzsKCSAgfQoJZWxzZSBpZiggJHB1YmxpYyA9PSB0cnVlICkKCSAgewoJCSRxdWVyeSA9ICdTRUxFQ1QgYi4qIEZST00gIGNtc19tb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIGEsIGNtc19tb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIGIgV0hFUkUgYS5pZCA9IGIuZmllbGRkZWZfaWQgQU5EIGEucHVibGljID4gMCBhbmQgYi5wcm9kdWN0X2lkID0gPyc7CgkgIH0KCWVsc2UgCgkgIHsKCQkkcXVlcnkgPSAnU0VMRUNUIGIuKiBGUk9NICBjbXNfbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBhLCBjbXNfbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyBiIFdIRVJFIGEuaWQgPSBiLmZpZWxkZGVmX2lkIEFORCBhLmFkbWluX29ubHkgPD0gMCBhbmQgYi5wcm9kdWN0X2lkID0gPyc7CgkgIH0KCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRpZCkpOwoKCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCSAgewoJCSRjb3VudCA9IDA7CgkJZm9yZWFjaCAoJGVudHJ5YXJyYXkgYXMgJGZpZWxkKQoJCSAgewoJCQlpZiAoJHJvd1snZmllbGRkZWZfaWQnXSA9PSAkZmllbGQtPmlkKQoJCQkgIHsKCQkJCSRlbnRyeWFycmF5WyRjb3VudF0tPmZpZWxkZGVmX2lkID0gJGZpZWxkLT5pZDsKCQkJCSRlbnRyeWFycmF5WyRjb3VudF0tPnZhbHVlID0gJHJvd1sndmFsdWUnXTsKCQkJICB9CgkJCSRjb3VudCsrOwoJCSAgfQoJICB9CgoJcmV0dXJuICRlbnRyeWFycmF5OwogIH0KCQoKICBmdW5jdGlvbiBTZWFyY2hSZXN1bHQoJHJldHVybmlkLCAkcHJvZHVjdGlkLCAkYXR0ciA9ICcnKQogIHsKCSRyZXN1bHQgPSBhcnJheSgpOwoJCQoJaWYgKCRhdHRyID09ICdwcm9kdWN0JykKCSAgewoJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKCQkkcSA9ICJTRUxFQ1QgcHJvZHVjdF9uYW1lIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0cyBXSEVSRQoJCQkgICAgICBpZCA9ID8iOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHEsIGFycmF5KCAkcHJvZHVjdGlkICkgKTsKCQlpZiAoJGRicmVzdWx0KQoJCSAgewoJCQkkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpOwoKCQkJLy8wIHBvc2l0aW9uIGlzIHRoZSBwcmVmaXggZGlzcGxheWVkIGluIHRoZSBsaXN0IHJlc3VsdHMuCgkJCSRyZXN1bHRbMF0gPSAkdGhpcy0+R2V0RnJpZW5kbHlOYW1lKCk7CgkJCgkJCS8vMSBwb3NpdGlvbiBpcyB0aGUgdGl0bGUKCQkJJHJlc3VsdFsxXSA9ICRyb3dbJ3Byb2R1Y3RfbmFtZSddOwoKCQkJLy8yIHBvc2l0aW9uIGlzIHRoZSBVUkwgdG8gdGhlIHRpdGxlLgoJCQkkcmVzdWx0WzJdID0gJHRoaXMtPkNyZWF0ZUxpbmsoJ2NudG50MDEnLCAnZGV0YWlscycsICRyZXR1cm5pZCwgJycsIGFycmF5KCdwcm9kdWN0aWQnID0+ICRwcm9kdWN0aWQpICwnJywgdHJ1ZSwgZmFsc2UsICcnLCB0cnVlKTsKCQkgIH0KCSAgfQoJCQoJcmV0dXJuICRyZXN1bHQ7CiAgfQoJCgogIGZ1bmN0aW9uIFNlYXJjaFJlaW5kZXgoJiRtb2R1bGUpCiAgewoJJGRiID0mICR0aGlzLT5HZXREYigpOwoJCQoJJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgd2hlcmUgc3RhdHVzID0gPyc7CgkkcmVzdWx0ID0gJiRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJ3B1Ymxpc2hlZCcpKTsKCgl3aGlsZSAoJHJlc3VsdCAmJiAhJHJlc3VsdC0+RU9GKQoJICB7CgkJJGRhdGEgPSAkdGhpcy0+R2V0U2VhcmNoYWJsZVRleHQoJHJlc3VsdC0+ZmllbGRzWydpZCddKTsKCQkkbW9kdWxlLT5BZGRXb3JkcygkdGhpcy0+R2V0TmFtZSgpLCAkcmVzdWx0LT5maWVsZHNbJ2lkJ10sICdwcm9kdWN0JywgCgkJCQkJCSAgaW1wbG9kZSgnICcsICRkYXRhICkgKTsKCQkkcmVzdWx0LT5Nb3ZlTmV4dCgpOwoJICB9CiAgfQoKCiAgZnVuY3Rpb24gR2V0U2VhcmNoYWJsZVRleHQoJHByb2R1Y3RfaWQpCiAgewoJLy8gdGhlIHByb2R1Y3QgbmFtZSwgdGhlIGRlc2NyaXB0aW9uLCBhbmQgYWxsIGRhdGEgZnJvbQoJLy8gdGV4dCBmaWVsZHMsIHRleHRhcmEgZmllbGRzLCBhbmQgZHJvcGRvd25zCglpZiggIWlzc2V0KCAkdGhpcy0+X3Byb2R1Y3RfY2FjaGVbJHByb2R1Y3RfaWRdICkgKQoJICB7CgkJJHRoaXMtPkdldFByb2R1Y3QoICRwcm9kdWN0X2lkICk7CgkgIH0KCgkkcmVzdWx0cyA9IGFycmF5KCk7CgkkcHJvZHVjdCA9JiAkdGhpcy0+X3Byb2R1Y3RfY2FjaGVbJHByb2R1Y3RfaWRdOwoJaWYoICRwcm9kdWN0WydzdGF0dXMnXSAhPSAncHVibGlzaGVkJyApIHJldHVybiBhcnJheSgpOwoJJGRlZnMgPSAkdGhpcy0+R2V0RmllbGREZWZzRm9yUHJvZHVjdCgkcHJvZHVjdF9pZCk7CgoJJHJlc3VsdHNbXSA9ICRwcm9kdWN0Wydwcm9kdWN0X25hbWUnXTsKCSRyZXN1bHRzW10gPSAkcHJvZHVjdFsnZGV0YWlscyddOwoJZm9yZWFjaCggJGRlZnMgYXMgJG9uZWRlZiApCgkgIHsKCQlzd2l0Y2goICRvbmVkZWYtPnR5cGUgKQoJCSAgewoJCSAgY2FzZSAndGV4dGJveCc6CgkJICBjYXNlICd0ZXh0YXJlYSc6CgkJICBjYXNlICdkcm9wZG93bic6CgkJCSRyZXN1bHRzW10gPSAkb25lZGVmLT52YWx1ZTsKCQkJYnJlYWs7CgkJICB9CgkgIH0KCQoJcmV0dXJuICRyZXN1bHRzOwogIH0KCiAgZnVuY3Rpb24gR2V0UHJvZHVjdE5hbWVGcm9tSWQoICRpZCApCiAgewoJaWYoICFpc3NldCggJHRoaXMtPl9wcm9kdWN0X2NhY2hlWyRpZF0gKSApCgkgIHsKCQkkdGhpcy0+R2V0UHJvZHVjdCggJGlkICk7CgkgIH0KCglyZXR1cm4gJHRoaXMtPl9wcm9kdWN0X2NhY2hlWyRpZF1bJ3Byb2R1Y3RfbmFtZSddOwogIH0KCgogIGZ1bmN0aW9uIEdldFByb2R1Y3QoICRpZCApCiAgewoJaWYoICFpc3NldCgkdGhpcy0+X3Byb2R1Y3RfY2FjaGVbJGlkXSkgKQoJICB7CgkJJGRiID0mICR0aGlzLT5HZXREYigpOwoJCSRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHMKICAgICAgICAgICAgICAgICAgICAgV0hFUkUgaWQgPSA/IjsKCQkkcm93ID0gJGRiLT5HZXRSb3coICRxdWVyeSwgYXJyYXkoICRpZCApICk7CgkJaWYoISRyb3cpIHJldHVybiBGQUxTRTsKCQkkdGhpcy0+X3Byb2R1Y3RfY2FjaGVbJGlkXSA9ICRyb3c7CgkgIH0KCglyZXR1cm4gJHRoaXMtPl9wcm9kdWN0X2NhY2hlWyRpZF07CiAgfQoKCiAgZnVuY3Rpb24gR2V0UHJvZHVjdEF0dHJpYnV0ZXMoJHByb2R1Y3RfaWQpCiAgewoJJHJlc3VsdHMgPSBhcnJheSgpOwoJJGRiID0mICR0aGlzLT5HZXREYigpOwoJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19hdHRyaWJzZXRzCiAgICAgICAgICAgICAgIFdIRVJFIHByb2R1Y3RfaWQgPSA/IjsKCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHByb2R1Y3RfaWQpKTsKCXdoaWxlKCAkZGJyZXN1bHQgJiYgKCRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpICkKCSAgewoJCSRyZXN1bHRzWyRyb3dbJ2F0dHJpYl9zZXRfaWQnXV0gPSAgJHJvd1snYXR0cmliX3NldF9uYW1lJ107CgkgIH0KCXJldHVybiAkcmVzdWx0czsKICB9CgoKICBmdW5jdGlvbiBHZXRQcm9kdWN0QXR0cmlidXRlVmFsdWVzKCRwcm9kdWN0X2lkLCRhdHRyaWJzZXRfaWQpCiAgewoJJGRiID0mICR0aGlzLT5HZXREYigpOwoJJHJlc3VsdHMgPSBhcnJheSgpOwoKCSRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcwogICAgICAgICAgICAgICBXSEVSRSBhdHRyaWJfc2V0X2lkID0gPyc7CgkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoJGF0dHJpYnNldF9pZCkgKTsKCXdoaWxlKCAkZGJyZXN1bHQgJiYgKCRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpICkKCSAgewoJCSRsYWJlbCA9IHNwcmludGYoIiVzICglLjJmICVzKSIsJHJvd1snYXR0cmliX3RleHQnXSwkcm93WydhdHRyaWJfYWRqdXN0bWVudCddLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwcm9kdWN0X2N1cnJlbmN5c3ltYm9sJykpOwoJCSRyZXN1bHRzWyRsYWJlbF0gPSAkcm93WydhdHRyaWJfdGV4dCddLicvJy5zcHJpbnRmKCIlLjJmIiwkcm93WydhdHRyaWJfYWRqdXN0bWVudCddKTsKCSAgfQoJcmV0dXJuICRyZXN1bHRzOwogIH0KCgogIGZ1bmN0aW9uIEdldFByb2R1Y3RBdHRyaWJ1dGVEcm9wZG93bigkaWQsJG5hbWUsJHByb2R1Y3RfaWQsJGF0dHJpYnNldF9pZCkKICB7CgkkbGlzdCA9ICR0aGlzLT5HZXRQcm9kdWN0QXR0cmlidXRlVmFsdWVzKCRwcm9kdWN0X2lkLCRhdHRyaWJzZXRfaWQpOwoKCXJldHVybiAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJG5hbWUsJGxpc3QsLTEsLTEpOwogIH0KCgogIGZ1bmN0aW9uIEdldFByb2R1Y3RBdHRyaWJ1dGVEYXRhQ29tcGxldGUoJHByb2R1Y3RfaWQpCiAgewoJJGRiID0mICR0aGlzLT5HZXREYigpOwoJJGRhdGEgPSBhcnJheSgpOwoKCSRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlic2V0cwogICAgICAgICAgICAgIFdIRVJFIHByb2R1Y3RfaWQgPSA/JzsKCSRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRwcm9kdWN0X2lkKSk7Cgl3aGlsZSggJGRiciAmJiAoJHJvdyA9ICRkYnItPkZldGNoUm93KCkpICkKCSAgewoJCSRxMiA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcwogICAgICAgICAgICAgICAgV0hFUkUgYXR0cmliX3NldF9pZCA9ID8nOwoJCSRkYjIgPSAkZGItPkV4ZWN1dGUoJHEyLGFycmF5KCRyb3dbJ2F0dHJpYl9zZXRfaWQnXSkpOwoKCQkkYXR0cmlicyA9IGFycmF5KCk7CgkJd2hpbGUoICRkYjIgJiYgKCRyb3cyID0gJGRiMi0+RmV0Y2hSb3coKSkgKQoJCSAgewoJCQkkYXR0cmlic1skcm93MlsnYXR0cmliX3RleHQnXV0gPSAkcm93MlsnYXR0cmliX2FkanVzdG1lbnQnXTsKCQkgIH0KCQkkZGF0YVskcm93WydhdHRyaWJfc2V0X25hbWUnXV0gPSAkYXR0cmliczsKCSAgfQoKCWlmKCAhY291bnQoJGRhdGEpICkgcmV0dXJuIGZhbHNlOwoJcmV0dXJuICRkYXRhOwogIH0KCgogIC8vIHNldCBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgaW50byB0aGUgdGF4IG1vZHVsZQogIGZ1bmN0aW9uIFNldEFkZGl0aW9uYWxUYXhJbmZvKCRwYXJhbXMpCiAgewoJJG1vZHVsZV9uYW1lID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3RheF9tb2R1bGUnKTsKCWlmKCB0cmltKCRtb2R1bGVfbmFtZSkgPT0gJycgKSAKCSAgewoJCS8vIG5vIHRheCBtb2R1bGUKCQlyZXR1cm47CgkgIH0KCSRtb2R1bGUgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJG1vZHVsZV9uYW1lKTsKCWlmKCAhJG1vZHVsZSApCgkgIHsKCQkvLyBubyB0YXggbW9kdWxlCgkJcmV0dXJuOwoJICB9CgoJJG1vZHVsZS0+U2V0QWRkaXRpb25hbEluZm8oJHBhcmFtcyk7CiAgfQoKCiAgLy8gcmV0dXJucyBhbiBhcnJheQogIGZ1bmN0aW9uIEdldFRheGVzRm9yUHJvZHVjdCgkcHJvZHVjdF9pZCwkaXRlbV9wcmljZSwkcXVhbnRpdHkpCiAgewoJJHByb2QgPSAkdGhpcy0+R2V0UHJvZHVjdCgkcHJvZHVjdF9pZCk7CglpZiggJHByb2QgPT09IEZBTFNFICkKCSAgewoJCS8vIGNvdWxkIG5vdCBmaW5kIHRoZSBwcm9kdWN0LCB1aC1vaAoJCXJldHVybiBmYWxzZTsKCSAgfQoJLy8gZm91bmQgdGhlIHByb2R1Y3QKCWlmKCAhJHByb2RbJ3RheGFibGUnXSApCgkgIHsKCQkvLyBidXQgaXQncyBub3QgdGF4YWJsZQoJCXJldHVybiBmYWxzZTsKCSAgfQoJCgkkbW9kdWxlX25hbWUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndGF4X21vZHVsZScpOwoJaWYoIHRyaW0oJG1vZHVsZV9uYW1lKSA9PSAnJyApIAoJICB7CgkJLy8gbm8gdGF4IG1vZHVsZQoJCXJldHVybiBmYWxzZTsKCSAgfQoJJG1vZHVsZSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgkbW9kdWxlX25hbWUpOwoJaWYoICEkbW9kdWxlICkKCSAgewoJCS8vIG5vIHRheCBtb2R1bGUKCQlyZXR1cm4gZmFsc2U7CgkgIH0KCgkvLyBmb3VuZCB0aGUgbW9kdWxlLCBhbmQgdGhlIHByb2R1Y3Qgbm93IGNhbGN1bGF0ZSB0aGUgdGF4IHJhdGUKCSR0YXhlcyA9ICRtb2R1bGUtPkdldFRheGVzRm9yUHJvZHVjdCgkaXRlbV9wcmljZSwkcXVhbnRpdHkpOwoJcmV0dXJuICR0YXhlczsKICB9CgoKICBmdW5jdGlvbiBVcGRhdGVIaWVyYXJjaHlQb3NpdGlvbnMoKQogIHsKCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKCQoJJHF1ZXJ5ID0gIlNFTEVDVCBpZCwgbmFtZSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IjsKCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJaWYoICEkZGJyZXN1bHQgKSB7IGVjaG8gJGRiLT5zcWwuJzxici8+JzsgZGllKCAkZGItPkVycm9yTXNnKCkgKTsgfQoJd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJICB7CgkJJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uID0gIiI7CgkJJGN1cnJlbnRfbG9uZ19uYW1lID0gIiI7CgkJJGNvbnRlbnRfaWQgPSAkcm93WydpZCddOwoJCSRjdXJyZW50X3BhcmVudF9pZCA9ICRyb3dbJ2lkJ107CgkJJGNvdW50ID0gMDsKCQkKCQl3aGlsZSAoJGN1cnJlbnRfcGFyZW50X2lkID4gLTEpCgkJICB7CgkJCSRxdWVyeSA9ICJTRUxFQ1QgaWQsIG5hbWUsIHBhcmVudF9pZCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IAogICAgICAgICAgICAgICAgICAgICBXSEVSRSBpZCA9ID8iOwoJCQkkcm93MiA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJGN1cnJlbnRfcGFyZW50X2lkKSk7CgkJCWlmICgkcm93MikKCQkJICB7CgkJCQkkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24gPSBzdHJfcGFkKCRyb3cyWydpZCddLCA1LCAnMCcsIFNUUl9QQURfTEVGVCkgLiAiLiIgLiAkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb247CgkJCQkkY3VycmVudF9sb25nX25hbWUgPSAkcm93MlsnbmFtZSddIC4gJyB8ICcgLiAkY3VycmVudF9sb25nX25hbWU7CgkJCQkkY3VycmVudF9wYXJlbnRfaWQgPSAkcm93MlsncGFyZW50X2lkJ107CgkJCQkkY291bnQrKzsKCQkJICB9CgkJCWVsc2UKCQkJICB7CgkJCQkkY3VycmVudF9wYXJlbnRfaWQgPSAwOwoJCQkgIH0KCgkJICB9CgkJICAKCQlpZiAoc3RybGVuKCRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbikgPiAwKQoJCSAgewoJCQkkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24gPSBzdWJzdHIoJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uLCAwLCBzdHJsZW4oJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uKSAtIDEpOwoJCSAgfQoJCSAgCgkJaWYgKHN0cmxlbigkY3VycmVudF9sb25nX25hbWUpID4gMCkKCQkgIHsKCQkJJGN1cnJlbnRfbG9uZ19uYW1lID0gc3Vic3RyKCRjdXJyZW50X2xvbmdfbmFtZSwgMCwgc3RybGVuKCRjdXJyZW50X2xvbmdfbmFtZSkgLSAzKTsKCQkgIH0KCSAgCgkJJHF1ZXJ5ID0gIlVQREFURSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSAKICAgICAgICAgICAgICAgICAgU0VUIGhpZXJhcmNoeSA9ID8sIGxvbmdfbmFtZSA9ID8gV0hFUkUgaWQgPSA/IjsKCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24sICRjdXJyZW50X2xvbmdfbmFtZSwgJGNvbnRlbnRfaWQpKTsKCSAgfQogIH0KCgogIGZ1bmN0aW9uIEJ1aWxkSGllcmFyY2h5TGlzdCgpCiAgewoJZ2xvYmFsICRnQ21zOwoJJGRiID0mICRnQ21zLT5HZXREYigpOwoKCSRoaWVyYXJjaHlfaXRlbXMgPSBhcnJheSgpOwoJJGhpZXJhcmNoeV9pdGVtc1skdGhpcy0+TGFuZygnbm9uZScpXSA9IC0xOwoJJHF1ZXJ5ID0gJ1NFTEVDVCBoaWVyYXJjaHksIGxvbmdfbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IFdIRVJFIGlkID0gLTEnOwoJJGRiciA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5ICk7CgkkbG9uZ25hbWUgPSAnJzsKCXdoaWxlKCAkZGJyICYmICgkcm93ID0gJGRici0+RmV0Y2hSb3coKSkgKQoJICB7CgkJJGxvbmduYW1lID0gJHJvd1snaGllcmFyY2h5J10gLiAnJSc7CgkgIH0KCSRxdWVyeSA9ICdTRUxFQ1QgaWQsIGxvbmdfbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5CiAgICAgICAgICAgV0hFUkUgaGllcmFyY2h5IE5PVCBMSUtFID8KICAgICAgICAgICBPUkRFUiBCWSBoaWVyYXJjaHknOwoJJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGxvbmduYW1lKSk7Cgl3aGlsZSggJGRiciAmJiAoJHJvdyA9ICRkYnItPkZldGNoUm93KCkpICkKCSAgewoJCSRoaWVyYXJjaHlfaXRlbXNbJHJvd1snbG9uZ19uYW1lJ11dID0gJHJvd1snaWQnXTsKCSAgfQoKCXJldHVybiAkaGllcmFyY2h5X2l0ZW1zOwogIH0KCgogIGZ1bmN0aW9uIENyZWF0ZUhpZXJhcmNoeURyb3Bkb3duKCRpZCwkbmFtZSwkc2VsZWN0ZWR2YWx1ZSkKICB7CgkkZGIgPSYgJHRoaXMtPkdldERiKCk7CgkkbGlzdCA9IGFycmF5KCk7CgkkbGlzdFskdGhpcy0+TGFuZygnYWxsY2F0ZWdvcmllcycpXSA9ICcnOwoJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkKICAgICAgICAgICAgICAgT1JERVIgYnkgaGllcmFyY2h5JzsKCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJd2hpbGUoICRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpICkKCSAgewoJCSRsaXN0WyRyb3dbJ2xvbmdfbmFtZSddXSA9ICRyb3dbJ2xvbmdfbmFtZSddOwoJICB9CgoJcmV0dXJuICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwkbmFtZSwkbGlzdCwtMSwkc2VsZWN0ZWR2YWx1ZSk7CiAgfQoKCiAgZnVuY3Rpb24gQ3JlYXRlUHJldHR5TGluaygkaWQsICRhY3Rpb24sICRyZXR1cm5pZD0nJywgJGNvbnRlbnRzPScnLCAkcGFyYW1zPWFycmF5KCksIAoJCQkJCQkJJHdhcm5fbWVzc2FnZT0nJywgJG9ubHlocmVmPWZhbHNlLCAkaW5saW5lPWZhbHNlLCAkYWRkdHRleHQ9JycsIAoJCQkJCQkJJHRhcmdldGNvbnRlbnRvbmx5PWZhbHNlLCAkcHJldHR5dXJsPScnKQogIHsKCS8vIHRoaXMgbWV0aG9kLCBpZiBvdmVycmlkZGVuLCBzaG91bGQgY2FsbCBDcmVhdGVMaW5rIGZvciBhbGwgc3R1ZmYgaXQgY2FuJ3QKCS8vIHVuZGVyc3RhbmQKCSRwcm9kdWN0cyA9ICcnOwoJJHByZXR0eXVybCA9ICcnOwogCXN3aXRjaCggJGFjdGlvbiApCgkgIHsKCSAgY2FzZSAnZGV0YWlscyc6CgkJaWYoIGlzc2V0KCRwYXJhbXNbJ3Byb2R1Y3RpZCddKSApCgkJICB7CgkJCSRwcmV0dHl1cmwgPSAncHJvZHVjdHMvJy4oaW50KSRwYXJhbXNbJ3Byb2R1Y3RpZCddLicvJy4kcmV0dXJuaWQ7CgkJICB9CgkgCWJyZWFrOwoKCSAgY2FzZSAnZGVmYXVsdCc6CgkJaWYoIGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5aWQnXSkgKQoJCSAgewoJCQkvLyBpZiB0aGUgY2F0ZWdvcnkgaWQgcGFyYW1ldGVyIGlzIHNldCwgdXNlIGJ5Y2F0ZWdvcnkKCQkJJHByZXR0eXVybCA9IHNwcmludGYoInByb2R1Y3RzL2J5Y2F0ZWdvcnkvJWQvJWQiLChpbnQpJHBhcmFtc1snY2F0ZWdvcnlpZCddLCRyZXR1cm5pZCk7CgkJICB9CgkJZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snaGllcmFyY2h5aWQnXSkgKQoJCSAgewoJCQkvLyBpZiB0aGUgaGllcmFyY2h5IGlkIHBhcmFtZXRlciBpcyBzZXQsIHVzZSBieWhpZXJhcmNoeQoJCQkkcHJldHR5dXJsID0gc3ByaW50ZigicHJvZHVjdHMvYnloaWVyYXJjaHkvJWQvJWQiLChpbnQpJHBhcmFtc1snaGllcmFyY2h5aWQnXSwkcmV0dXJuaWQpOwoJCSAgfQoJCWVsc2UKCQkgIHsKCQkJLy8gb3RoZXJ3aXNlIHVzZSBzdW1tYXJ5CgkJCSRwcmV0dHl1cmwgPSBzcHJpbnRmKCJwcm9kdWN0cy9zdW1tYXJ5LyVkIiwkcmV0dXJuaWQpOwoJCSAgfQoJIAlicmVhazsKCgkgIGNhc2UgJ2hpZXJhcmNoeSc6CgkJJHByZXR0eXVybCA9IHNwcmludGYoInByb2R1Y3RzL2hpZXJhcmNoeS8lZC8lZCIsKGludCkkcGFyYW1zWydwYXJlbnQnXSwkcmV0dXJuaWQpOwoJCWJyZWFrOwoKCSAgfQoKCSRvdXQgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJGFjdGlvbiwkcmV0dXJuaWQsJGNvbnRlbnRzLCRwYXJhbXMsJHdhcm5fbWVzc2FnZSwKCQkJCQkJCSAkb25seWhyZWYsJGlubGluZSwkYWRkdGV4dCwkdGFyZ2V0Y29udGVudG9ubHksJHByZXR0eXVybCk7CgoJcmV0dXJuICRvdXQ7CiAgfQoKCiAgLy8gY3JlYXRlcyBhIGZvcm0tc2FmZSBhbGlhcyBzdHJpbmcKICBmdW5jdGlvbiBtYWtlX2FsaWFzKCRzdHJpbmcsICRpc0Zvcm09ZmFsc2UpCiAgewoJJHN0cmluZyA9IHRyaW0oJHN0cmluZyk7Cgkkc3RyaW5nID0gcHJlZ19yZXBsYWNlKCIvW18tXFddKy8iLCAiXyIsICRzdHJpbmcpOwoJJHN0cmluZyA9IHRyaW0oJHN0cmluZywgJ18nKTsKCXJldHVybiBzdHJ0b2xvd2VyKCRzdHJpbmcpOwogIH0KCn0KCiMgdmltOnRzPTQgc3c9NCBub2V0Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/skeleton.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/add_attrib_set.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9zZXRfbmFtZX06PC9wPgogIDxwIGNsYXNzPSJwYWdlcG5wdXQiPnskaW5wdXRfc2V0X25hbWV9PC9wPgo8L2Rpdj4KCntpZiBjb3VudCgkdmFsdWVzKX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KPHRhYmxlPgogIDx0aGVhZD4KICAgIDx0aD57JGlkdGV4dH08L3RoPgogICAgPHRoPnska2V5dGV4dH08L3RoPgogICAgPHRoPnskdmFsdWV0ZXh0fTxici8+eyRpbmZvX3ZhbHVldGV4dH08L3RoPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogIHtmb3JlYWNoIGZyb209JHZhbHVlcyBpdGVtPSdvbmV2YWx1ZSd9CiAgPHRyPgogICAgPHRkPnskb25ldmFsdWUtPmlkeH08L3RkPgogICAgPHRkPnskb25ldmFsdWUtPmtleX08L3RkPgogICAgPHRkPnskb25ldmFsdWUtPnZhbHVlfTwvdGQ+CiAgPC90cj4KICB7L2ZvcmVhY2h9CiAgPC90Ym9keT4KPC90YWJsZT4KPC9kaXY+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfYWRkfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHByb21wdF9sYWJlbH06ICZuYnNwO3skaW5wdXRfdmFsdWVfbmFtZX08YnIvPgogICAgICAgICAgICAgICAgICAgICAgIHskcHJvbXB0X2FkanVzdG1lbnR9OiZuYnNwOyB7JGlucHV0X3ZhbHVlX2ZhY3Rvcn08YnIvPgogICAgICAgICAgICAgICAgICAgICAgIHskaW5wdXRfdXBkYXRlfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiAgPHAgY2xhc3M9InBhZ2VwbnB1dCI+eyRzdWJtaXR9Jm5ic3A7eyRjYW5jZWx9PC9wPgo8L2Rpdj4KeyRmb3JtZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_add_hierarchy_item.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdhZGRfaGllcmFyY2h5X2l0ZW0nKX08L2gzPgp7JGZvcm1zdGFydH0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCduYW1lJyl9PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfW5hbWUiIHZhbHVlPSJ7JG5hbWV9IiBzaXplPSI1MCIgbWF4bGVuZ3RoPSIyNTUiPjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncGFyZW50Jyl9PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRhY3Rpb25pZCwncGFyZW50JywkaGllcmFyY2h5X2l0ZW1zLCctMScsJHBhcmVudCl9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdkZXNjcmlwdGlvbicpfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JG1vZC0+Q3JlYXRlVGV4dEFyZWEoJ3RydWUnLCRhY3Rpb25pZCwkZGVzY3JpcHRpb24sJ2Rlc2NyaXB0aW9uJyl9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdpbWFnZXRleHQnKX08L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAge2lmIGlzc2V0KCRpbWFnZSl9eyRtb2QtPkxhbmcoJ2N1cnJlbnRfdmFsdWUnKX06Jm5ic3A7eyRpbWFnZX08YnIvPgogICAgICAgeyRtb2QtPkxhbmcoJ2RlbGV0ZScpfTo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InskbW9kLT5HZXRBY3Rpb25JZCgpfWRlbGV0ZWltZyIgdmFsdWU9IjEiPjxici8+CiAgICAgey9pZn0KICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0ieyRhY3Rpb25pZH1maWxlIiBzaXplPSI1MCIgbWF4bGVuZ3RoPSIyNTUiPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ij4mbmJzcDs8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iPjwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_hierarchy_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGNvdW50KCRlbnRyaWVzKX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSIgY2VsbHNwYWNpbmc9IjAiPgogICAgPHRoZWFkPgogICAgICA8dHI+CiAgICAgICAgPHRoPnskbW9kLT5MYW5nKCdjYXRlZ29yeScpfTwvdGg+CiAgICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KICAgICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgICA8L3RyPgogICAgPC90aGVhZD4KICAgIDx0Ym9keT4KICAgIHtmb3JlYWNoIGZyb209JGVudHJpZXMgaXRlbT0nb25lZW50cnknfQogICAgICB7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIiIGFzc2lnbj0ncm93Y2xhc3MnfQogICAgICA8dHIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPgogICAgICAgIDx0ZD57Y2dyZXBlYXQgdGV4dD0nJm5ic3A7Jmd0OyZuYnNwOycgY291bnQ9JG9uZWVudHJ5LmRlcHRofTxhIGhyZWY9Inskb25lZW50cnkuZWRpdF91cmx9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2VkaXRfaGllcmFyY2h5X2l0ZW0nKX0iPnskb25lZW50cnkubmFtZX08L2E+PC90ZD4KICAgICAgICA8dGQ+eyRvbmVlbnRyeS5lZGl0X2xpbmt9PC90ZD4KICAgICAgICA8dGQ+eyRvbmVlbnRyeS5kZWxldGVfbGlua308L3RkPgogICAgICA8L3RyPgogICAgey9mb3JlYWNofQogICAgPC90Ym9keT4KICA8L3RhYmxlPgo8L2Rpdj4Key9pZn0KCjxwIGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIHskYWRkX2hpZXJhcmNoeV9saW5rfQo8L3A+]]></data>
	</file>
	<file>
	  <filename>/templates/categorylist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAkKKn0KCntpZiAkaXRlbWNvdW50ID4gMH0KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD57JGNhdGVnb3J5dGV4dH08L3RoPgoJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRib2R5Pgp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQoJCTx0ciBjbGFzcz0ieyRlbnRyeS0+cm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skZW50cnktPnJvd2NsYXNzfWhvdmVyJzsiIG9ubW91c2VvdXQ9InRoaXMuY2xhc3NOYW1lPSd7JGVudHJ5LT5yb3djbGFzc30nOyI+CgkJCTx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5lZGl0bGlua308L3RkPgoJCQk8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPgoJCTwvdHI+CnsvZm9yZWFjaH0KCTwvdGJvZHk+CjwvdGFibGU+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+PHAgY2xhc3M9InBhZ2VvcHRpb25zIj57JGFkZGxpbmt9PC9wPjwvZGl2Pgo=]]></data>
	</file>
	<file>
	  <filename>/templates/dflt_templates.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgeyRpbmZvX2RmbHRfdGVtcGxhdGV9CjwvZGl2PgoKPGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRsZWdlbmRfc3VtbWFyeXRlbXBsYXRlfTwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3N1bW1hcnl0ZW1wbGF0ZX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zdW1tYXJ5dGVtcGxhdGV9PC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0X3N1bW1hcnl0ZW1wbGF0ZX0mbmJzcDt7JHJlc2V0X3N1bW1hcnl0ZW1wbGF0ZX08L3A+CiAgPC9kaXY+CjwvZmllbGRzZXQ+Cgo8ZmllbGRzZXQ+CiAgPGxlZ2VuZD57JGxlZ2VuZF9kZXRhaWx0ZW1wbGF0ZX08L2xlZ2VuZD4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9kZXRhaWx0ZW1wbGF0ZX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9kZXRhaWx0ZW1wbGF0ZX08L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdWJtaXRfZGV0YWlsdGVtcGxhdGV9Jm5ic3A7eyRyZXNldF9kZXRhaWx0ZW1wbGF0ZX08L3A+CiAgPC9kaXY+CjwvZmllbGRzZXQ+Cgo8ZmllbGRzZXQ+CiAgPGxlZ2VuZD57JGxlZ2VuZF9ieWhpZXJhcmNoeXRlbXBsYXRlfTwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2J5aGllcmFyY2h5dGVtcGxhdGV9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfYnloaWVyYXJjaHl0ZW1wbGF0ZX08L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdWJtaXRfYnloaWVyYXJjaHl0ZW1wbGF0ZX0mbmJzcDt7JHJlc2V0X2J5aGllcmFyY2h5dGVtcGxhdGV9PC9wPgogIDwvZGl2Pgo8L2ZpZWxkc2V0PgoKPGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRsZWdlbmRfY2F0ZWdvcnlsaXN0dGVtcGxhdGV9PC9sZWdlbmQ+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfY2F0ZWdvcnlsaXN0dGVtcGxhdGV9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfY2F0ZWdvcnlsaXN0dGVtcGxhdGV9PC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0X2NhdGVnb3J5bGlzdHRlbXBsYXRlfSZuYnNwO3skcmVzZXRfY2F0ZWdvcnlsaXN0dGVtcGxhdGV9PC9wPgogIDwvZGl2Pgo8L2ZpZWxkc2V0PgoKeyRmb3JtZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/editcategory.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAkKKn0KCnskc3RhcnRmb3JtfQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPip7JG5hbWV0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dG5hbWV9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaGlkZGVufXskc3VibWl0fXskY2FuY2VsfTwvcD4KCTwvZGl2Pgp7JGVuZGZvcm19Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/editfielddef.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAkKKn0KCnskc3RhcnRmb3JtfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+KnskbW9kLT5MYW5nKCduYW1lJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0bmFtZX0mbmJzcDt7JG1vZC0+TGFuZygnaW5mb19hbG51bW9ubHknKX08L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPip7JG1vZC0+TGFuZygncHJvbXB0Jyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0cHJvbXB0fTwvcD4KPC9kaXY+Cgp7aWYgJHNob3dpbnB1dHR5cGUgZXEgdHJ1ZX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPip7JG1vZC0+TGFuZygndHlwZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dHR5cGV9PC9wPgo8L2Rpdj4Ke2Vsc2V9CiAgeyRpbnB1dHR5cGV9CnsvaWZ9Cgp7aWYgJHR5cGUgPT0gJ3RleHRib3gnfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+KnskbW9kLT5MYW5nKCdtYXhsZW5ndGgnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRtYXhsZW5ndGh9PC9wPgo8L2Rpdj4Key9pZn0KCntpZiAkdHlwZSA9PSAnZHJvcGRvd24nfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+KnskbW9kLT5MYW5nKCdkcm9wZG93bl9vcHRpb25zJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij48dGV4dGFyZWEgbmFtZT0ieyRhY3Rpb25pZH1vcHRpb25zIj57JG9wdGlvbnN9PC90ZXh0YXJlYT48L3A+CjwvZGl2Pgp7L2lmfQoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPip7JHVzZXJ2aWV3dGV4dH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdXNlcnZpZXd9PGJyLz57JG1vZC0+TGFuZygnaW5mb19wdWJsaWNmaWVsZCcpfTwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaGlkZGVufXskc3VibWl0fXskY2FuY2VsfTwvcD4KPC9kaXY+CnskZW5kZm9ybX0K]]></data>
	</file>
	<file>
	  <filename>/templates/editproduct.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAkKKn0KCnskc3RhcnRmb3JtfQp7aWYgaXNzZXQoJGNvbXBpZCl9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRpZHRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGNvbXBpZH08L3A+Cgk8L2Rpdj4Key9pZn0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4qeyRuYW1ldGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRuYW1lfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskcHJpY2V0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRjdXJyZW5jeV9zeW1ib2x9eyRpbnB1dHByaWNlfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskd2VpZ2h0dGV4dH0gKHskd2VpZ2h0dW5pdHN9KTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dHdlaWdodH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHN0YXR1c3RleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0c3RhdHVzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZGV0YWlsc3RleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0ZGV0YWlsc308L3A+Cgk8L2Rpdj4KCgl7KiB0aGUgaGllcmFyY2h5IHN0dWZmICp9Cgl7aWYgY291bnQoJGhpZXJhcmNoeV9pdGVtcyl9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnaGllcmFyY2h5X3Bvc2l0aW9uJyl9OjwvcD4KICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRhY3Rpb25pZCwnaGllcmFyY2h5JywkaGllcmFyY2h5X2l0ZW1zLCctMScsJGhpZXJhcmNoeV9wb3MpfTwvcD4KCSAgICAgICAgICAgICAgICAgIAoJPC9kaXY+CiAgICAgICAgey9pZn0KCgl7KiB0YXhhYmxlPyAqfQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGF4YWJsZXRleHR9OjwvcD4KCSAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dHRheGFibGV9PC9wPgoJPC9kaXY+CgkKCXsqIGRpc3BsYXkgY3VzdG9tIGZpZWxkcyAqfQoJe2lmICRjdXN0b21maWVsZHNjb3VudCBndCAwfQoJCXtmb3JlYWNoIGZyb209JGN1c3RvbWZpZWxkcyBpdGVtPWN1c3RvbWZpZWxkfQoJCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57aWYgaXNzZXQoJGN1c3RvbWZpZWxkLT5wcm9tcHQpfXskY3VzdG9tZmllbGQtPnByb21wdH17ZWxzZX17JGN1c3RvbWZpZWxkLT5uYW1lfXsvaWZ9OjwvcD4KCQkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPntpZiBpc3NldCgkY3VzdG9tZmllbGQtPnZhbHVlKX17JG1vZC0+TGFuZygnY3VycmVudF92YWx1ZScpfTombmJzcDt7JGN1c3RvbWZpZWxkLT52YWx1ZX08YnIvPntpZiBpc3NldCgkY3VzdG9tZmllbGQtPmRlbGV0ZSl9eyRtb2QtPkxhbmcoJ2RlbGV0ZScpfSZuYnNwO3skY3VzdG9tZmllbGQtPmRlbGV0ZX08YnIvPnsvaWZ9ey9pZn17aWYgaXNzZXQoJGN1c3RvbWZpZWxkLT5oaWRkZW4pfXskY3VzdG9tZmllbGQtPmhpZGRlbn17L2lmfXskY3VzdG9tZmllbGQtPmlucHV0X2JveH08L3A+CgkJCTwvZGl2PgoJCXsvZm9yZWFjaH0KCXsvaWZ9CgoJeyogZGlzcGxheSBjYXRlZ29yaWVzICp9Cgl7aWYgJGNhdGVnb3JpZXNjb3VudCBndCAwfQogICAgICAgICAgICAgICAgPGhyIHdpZHRoPSI3NSUiPgoJCXtmb3JlYWNoIGZyb209JGNhdGVnb3JpZXMgaXRlbT1jYXRlZ29yeX0KCQkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRjYXRlZ29yeS0+bmFtZX06PC9wPgoJCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRjYXRlZ29yeS0+Y2hlY2tib3h9PC9wPgoJCQk8L2Rpdj4KCQl7L2ZvcmVhY2h9Cgl7L2lmfQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGhpZGRlbn17JHN1Ym1pdH17JGNhbmNlbH08L3A+Cgk8L2Rpdj4KeyRlbmRmb3JtfQo=]]></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+CiAgeyRhZGRfbGlua30KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/fielddeflist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAkKKn0KCntpZiAkaXRlbWNvdW50ID4gMH0KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD57JGZpZWxkZGVmdGV4dH08L3RoPgoJCQk8dGg+eyR0eXBldGV4dH08L3RoPgoJCQk8dGggY2xhc3M9Im1vdmUiPiZuYnNwOzwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+Cntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9Cgl7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIiIGFzc2lnbj0ncm93Y2xhc3MnfQoJCTx0ciBjbGFzcz0ieyRyb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc30nOyI+CgkJCTx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT50eXBlfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT51cGxpbmt9IHskZW50cnktPmRvd25saW5rfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5lZGl0bGlua308L3RkPgoJCQk8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPgoJCTwvdHI+CnsvZm9yZWFjaH0KCTwvdGJvZHk+CjwvdGFibGU+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+PHAgY2xhc3M9InBhZ2VvcHRpb25zIj57JGFkZGxpbmt9PC9wPjwvZGl2Pgo=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_byhierarchy_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGllcmFyY2h5IHJlcG9ydCB0ZW1wbGF0ZSAqfQo8aDM+SGllcmFyY2h5IERhdGEgZm9yIHskaGllcmFyY2h5X2l0ZW0ubmFtZX0gKHskaGllcmFyY2h5X2l0ZW0uaWR9KTwvaDM+CntpZiBpc3NldCgkdXB1cmwpfQogICA8cD48YSBocmVmPSJ7JHVwdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdwYXJlbnQnKX0iPnskbW9kLT5MYW5nKCdwYXJlbnQnKX08L2E+PC9wPgp7L2lmfQp7YXNzaWduIHZhcj0ncHJvZG1vZCcgdmFsdWU9JG1vZH0KCjxoND5DaGlsZCBOb2RlczwvaDQ+CntpZiBpc3NldCgkY2hpbGRfbm9kZXMpICYmIGNvdW50KCRjaGlsZF9ub2Rlcyl9CnsqICB7TGlnaHRCb3ggYWN0aW9uPSdqcyd9ICp9CiAge2ZvcmVhY2ggZnJvbT0kY2hpbGRfbm9kZXMgaXRlbT0nbm9kZSd9ICAgICAgCiAgICAgPGg1PgogICAgICAge2lmIGlzc2V0KCRub2RlLmRvd251cmwpfQogICAgICAgICA8YSBocmVmPSJ7JG5vZGUuZG93bnVybH0iIHRpdGxlPSJ7JG5vZGUubmFtZX0iPnskbm9kZS5uYW1lfTwvYT4KICAgICAgIHtlbHNlfQogICAgICAgICB7JG5vZGUubmFtZX0KICAgICAgIHsvaWZ9CiAgICAgPC9oNT4KICAgICB7aWYgaXNzZXQoJG5vZGUuaW1hZ2UpfSAKICAgICAgIHtjYXB0dXJlIGFzc2lnbj0naW1hZ2UnfXskaGllcmFyY2h5X2ltYWdlX2xvY2F0aW9ufS97JG5vZGUuaW1hZ2V9ey9jYXB0dXJlfQogICAgICAge2NhcHR1cmUgYXNzaWduPSduYW1lJ317JG5vZGUubmFtZX17L2NhcHR1cmV9CiAgICAgICB7aWYgaXNzZXQoJG5vZGUudGh1bWJuYWlsKX0KICAgICAgICAge2NhcHR1cmUgYXNzaWduPSd0aHVtYid9eyRoaWVyYXJjaHlfaW1hZ2VfbG9jYXRpb259L3skbm9kZS50aHVtYm5haWx9ey9jYXB0dXJlfQogICAgICAgICB7TGlnaHRCb3ggbmFtZT0iJG5hbWUiIHRodW1iPSIkdGh1bWIiIHRleHQ9IiRuYW1lIiBpbWFnZT0iJGltYWdlIn0KICAgICAgIHtlbHNlfQogICAgICAgICB7TGlnaHRCb3ggbmFtZT0iJG5hbWUiIHRleHQ9IiRuYW1lIiBpbWFnZT0iJGltYWdlIn0KICAgICAgIHsvaWZ9CiAgICAgey9pZn0KICAgICB7aWYgIWVtcHR5KCRub2RlLmRlc2NyaXB0aW9uKX0KICAgICAgPHA+RGVzY3JpcHRpb246IHskbm9kZS5kZXNjcmlwdGlvbn0KICAgICB7L2lmfQogICAgIDxici8+PGJyLz4KICB7L2ZvcmVhY2h9CnsvaWZ9Cgo8aDU+UHJvZHVjdHMgbWF0Y2hpbmcgdGhpcyBsb2NhdGlvbiBpbiBoaWVyYXJjaHk8L2g1Pgp7UHJvZHVjdHMgaGllcmFyY2h5aWQ9JGhpZXJhcmNoeV9pdGVtLmlkfQoK]]></data>
	</file>
	<file>
	  <filename>/templates/orig_categorylist_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2ZvcmVhY2ggZnJvbT0kY2F0ZWdvcnlsaXN0IGl0ZW09J29iaid9CiAgPGRpdiBjbGFzcz0iQ29tcGFueURpcmVjdG9yeUNhdGVnb3J5Ij4KICAgIDxhIGhyZWY9Inskb2JqLT5zdW1tYXJ5X3VybH0iPnskb2JqLT5uYW1lfTwvYT4oeyRvYmotPmNvdW50fSkKICA8L2Rpdj4Key9mb3JlYWNofQ==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_detail_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0iUHJvZHVjdERpcmVjdG9yeUl0ZW0iPgoKTmFtZTogeyRlbnRyeS0+cHJvZHVjdF9uYW1lfTxiciAvPgpGaWxlIExvY2F0aW9uOiB7JGVudHJ5LT5maWxlX2xvY2F0aW9ufTxici8+Cgp7aWYgJGVudHJ5LT5wcmljZSBuZSAnJ30KUHJpY2UgeyRjdXJyZW5jeV9zeW1ib2x9OiB7JGVudHJ5LT5wcmljZX08YnIgLz4Key9pZn0KCntpZiAkZW50cnktPndlaWdodCBuZSAnJ30KV2VpZ2h0IHskd2VpZ2h0X3VuaXRzfTogeyRlbnRyeS0+d2VpZ2h0fTxiciAvPgp7L2lmfQoKe2lmICRlbnRyeS0+ZGV0YWlscyBuZSAnJ30KRGV0YWlsczo8YnIgLz4KeyRlbnRyeS0+ZGV0YWlsc308YnIgLz4Key9pZn0KCnsqIGFjY2Vzc2luZyBhbGwgb2YgdGhlIGZpZWxkcyBpbiBhIGxpc3QgKn0Ke2lmIGNvdW50KCRlbnRyeS0+ZmllbGRzKX0KICA8aDQ+Q3VzdG9tIEZpZWxkczwvaDQ+CiAge2ZvcmVhY2ggZnJvbT0kZW50cnktPmZpZWxkcyBrZXk9J25hbWUnIGl0ZW09J2ZpZWxkJ30KICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0X2RldGFpbF9maWVsZCI+PHA+CiAgICAgICB7JG1vZC0+TGFuZygnbmFtZScpfTogeyRuYW1lfTxici8+CiAgICAgICB7JG1vZC0+bGFuZygndHlwZScpfTogeyRmaWVsZC0+dHlwZX08YnIvPgogICAgICAgeyRtb2QtPmxhbmcoJ3ZhbHVlJyl9OiB7JGZpZWxkLT52YWx1ZX08YnIvPgogICAgICAge2lmICRmaWVsZC0+dHlwZSA9PSAnaW1hZ2UnICYmIGlzc2V0KCRmaWVsZC0+dGh1bWJuYWlsKX0KICAgICAgICAgPGltZyBzcmM9InskZW50cnktPmZpbGVfbG9jYXRpb259L3skZmllbGQtPnRodW1ibmFpbH0iIGFsdD0ieyRmaWVsZC0+dmFsdWV9Ii8+CiAgICAgICB7L2lmfQogICAgIDwvcD48L2Rpdj4KICB7L2ZvcmVhY2h9CnsvaWZ9Cgp7KiBwcmludCBvdXQgYXR0cmlidXRlcyAqfQp7aWYgaXNzZXQoJGVudHJ5LT5hdHRyaWJ1dGVzKX0KICA8aDQ+QXR0cmlidXRlczwvaDQ+CiAge2ZvcmVhY2ggZnJvbT0kZW50cnktPmF0dHJpYnV0ZXMga2V5PSduYW1lJyBpdGVtPSdhdHRyaWJzZXQnfQogICAgIDxoNj57JG5hbWV9PC9oNj4KICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0X2RldGFpbF9maWVsZCI+PHA+CiAgICAgICB7Zm9yZWFjaCBmcm9tPSRhdHRyaWJzZXQga2V5PSdsYWJlbCcgaXRlbT0nYWRqdXN0bWVudCd9CiAgICAgICAgIHskbGFiZWx9OiZuYnNwO3skYWRqdXN0bWVudH08YnIvPgogICAgICAgey9mb3JlYWNofQogICAgIDwvcD48L2Rpdj4KICB7L2ZvcmVhY2h9CnsvaWZ9Cgp7KiBwcmludCBvdXQgdGhlIGNhdGVnb3JpZXMgKn0Ke2lmIGlzc2V0KCRlbnRyeS0+Y2F0ZWdvcmllcyl9CiAgPGg0PkNhdGVnb3JpZXM8L2g0PgogIHtmb3JlYWNoIGZyb209JGVudHJ5LT5jYXRlZ29yaWVzIGl0ZW09J2NhdGVnb3J5J30KICAgIDxkaXYgY2xhc3M9InByb2R1Y3RfZGV0YWlsX2NhdGVnb3J5Ij48cD4KICAgICAgeyRtb2QtPkxhbmcoJ2lkJyl9OiB7JGNhdGVnb3J5LT5pZH08YnIvPgogICAgICB7JG1vZC0+TGFuZygnbmFtZScpfTogeyRjYXRlZ29yeS0+bmFtZX08YnIvPgogICAgPC9wPjwvZGl2PiAKICB7L2ZvcmVhY2h9CnsvaWZ9CjwvZGl2Pgo=]]></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_summary_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRjYXRmb3Jtc3RhcnQpfQp7JGNhdGZvcm1zdGFydH0KeyRjYXRkcm9wZG93bn17JGNhdGJ1dHRvbn0KeyRjYXRmb3JtZW5kfQp7L2lmfQoKe2lmIGlzc2V0KCRwYWdlY291bnQpICYmICRwYWdlY291bnQgZ3QgMX0KeyRmaXJzdGxpbmt9Jm5ic3A7eyRwcmV2bGlua30mbmJzcDsmbmJzcDt7JHBhZ2V0ZXh0fSB7JGN1cnBhZ2V9IHskb2Z0ZXh0fSB7JHBhZ2Vjb3VudH0mbmJzcDsmbmJzcDt7JG5leHRsaW5rfSZuYnNwO3skbGFzdGxpbmt9CnsvaWZ9Cgp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fVwKICAgeyogCiAgICAgdGhlIHN1bW1hcnkgdGVtcGxhdGUgaGFzIGFjY2VzcyB0byBjdXN0b20gZmllbGRzIHZpYSB0aGUgJGVudHJ5LT5maWVsZHMgaGFzaAogICAgIGFuZCB0byBjYXRlZ29yaWVzIHZpYSB0aGUgJGVudHJ5LT5jYXRlZ29yaWVzIGFycmF5IG9mIG9iamVjdHMuICBBbHNvCiAgICAgYXR0cmlidXRlIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSB2aWEgJGVudHJ5LT5hdHRyaWJ1dGVzLgogICAgIHlvdSBzaG91bGQgdXNlIHRoZSBnZXRfdGVtcGxhdGVfdmFycyBhbmQgdGhlIHByaW50X3IgbW9kaWZpZXIgdG8gc2VlCiAgICAgd2hhdCBpcyBhdmFpbGFibGUKICAgICp9CiAgICAgCiAgICAgICAKICAgICAgCjxkaXYgY2xhc3M9IlByb2R1Y3REaXJlY3RvcnlJdGVtIj4KCjxhIGhyZWY9InskZW50cnktPmRldGFpbF91cmx9Ij57JGVudHJ5LT5wcm9kdWN0X25hbWV9PC9hPiZuYnNwOyh7JGVudHJ5LT53ZWlnaHR9eyR3ZWlnaHRfdW5pdHN9KSZuYnNwOyZuYnNwO3skY3VycmVuY3lfc3ltYm9sfXskZW50cnktPnByaWNlfTwvYT4KCjwvZGl2Pgp7L2ZvcmVhY2h9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/prefs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF90YXhfbW9kdWxlfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF90YXhfbW9kdWxlfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9kZXRhaWxwYWdlfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9kZXRhaWxwYWdlfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9zdW1tYXJ5c29ydG9yZGVyfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zdW1tYXJ5c29ydG9yZGVyfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9zdW1tYXJ5c29ydGluZ306PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc3VtbWFyeXNvcnRpbmd9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfYWxsb3dlZF9pbWFnZXR5cGVzJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2FsbG93ZWRfaW1hZ2V0eXBlc308L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9hdXRvdGh1bWJuYWlsJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2F1dG90aHVtYm5haWx9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfYWxsb3dlZF9maWxldHlwZXN9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZGVsZXRlcHJvZHVjdGZpbGVzJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2RlbGV0ZXByb2R1Y3RmaWxlc308L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfY3VycmVuY3lzeW1ib2x9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2N1cnJlbmN5c3ltYm9sfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF93ZWlnaHR1bml0c306PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfd2VpZ2h0dW5pdHN9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH08L3A+CjwvZGl2Pgp7JGVuZGZvcm19]]></data>
	</file>
	<file>
	  <filename>/templates/productlist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAkKKn0KCjxmaWVsZHNldD4KPGxlZ2VuZD57JG1vZC0+TGFuZygnZmlsdGVycycpfTombmJzcDs8L2xlZ2VuZD4KeyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnaGllcmFyY2h5Jyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2hpZXJhcmNoeX0mbmJzcDt7JG1vZC0+TGFuZygnaW5jbHVkZV9jaGlsZHJlbicpfSB7JGlucHV0X2NoaWxkcmVufTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnc29ydF9ieScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zb3J0Ynl9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdzb3J0X29yZGVyJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3NvcnRvcmRlcn08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3BhZ2VfbGltaXQnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfcGFnZWxpbWl0fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRtb2QtPkdldEFjdGlvbklkKCl9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSI+PC9wPgo8L2Rpdj4KeyRmb3JtZW5kfQo8L2ZpZWxkc2V0PgoKCntpZiAkaXRlbWNvdW50ID4gMH0KPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPjxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRhZGRsaW5rfTwvcD48L2Rpdj4Ke2lmIGlzc2V0KCRmaXJzdHBhZ2VfdXJsKX0KIDxhIGhyZWY9InskZmlyc3RwYWdlX3VybH0iIHRpdGxlPSJ7JG1vZC0+TGFuZygnZmlyc3RwYWdlJyl9Ij57JG1vZC0+TGFuZygnZmlyc3RwYWdlJyl9PC9hPgogPGEgaHJlZj0ieyRwcmV2cGFnZV91cmx9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ3ByZXZwYWdlJyl9Ij57JG1vZC0+TGFuZygncHJldnBhZ2UnKX08L2E+CnsvaWZ9CntpZiBpc3NldCgkZmlyc3RwYWdlX3VybCkgfHwgaXNzZXQoJGxhc3RwYWdlX3VybCl9CiAgeyRtb2QtPkxhbmcoJ3BhZ2Vfb2YnLCRwYWdlbnVtYmVyLCRwYWdlY291bnQpfQp7L2lmfQp7aWYgaXNzZXQoJGxhc3RwYWdlX3VybCl9CiA8YSBocmVmPSJ7JG5leHRwYWdlX3VybH0iIHRpdGxlPSJ7JG1vZC0+TGFuZygnbmV4dHBhZ2UnKX0iPnskbW9kLT5MYW5nKCduZXh0cGFnZScpfTwvYT4KIDxhIGhyZWY9InskbGFzdHBhZ2VfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdsYXN0cGFnZScpfSI+eyRtb2QtPkxhbmcoJ2xhc3RwYWdlJyl9PC9hPgp7L2lmfQo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoPnskaWR0ZXh0fTwvdGg+CgkJCTx0aD57JHByb2R1Y3R0ZXh0fTwvdGg+CgkJCTx0aD57JHByaWNldGV4dH08L3RoPgoJCQk8dGg+eyR3ZWlnaHR0ZXh0fSAoeyR3ZWlnaHRfdW5pdHN9KTwvdGg+CgkJCTx0aD57JG1vZC0+TGFuZygnc3RhdHVzJyl9PC90aD4KCQkJPHRoPnskbW9kLT5MYW5nKCdsYXN0X21vZGlmaWVkJyl9PC90aD4KCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCQk8L3RyPgoJPC90aGVhZD4KCTx0Ym9keT4Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0KCXtjeWNsZSB2YWx1ZXM9InJvdzEscm93MiIgYXNzaWduPSdyb3djbGFzcyd9CgkJPHRyIGNsYXNzPSJ7JHJvd2NsYXNzfSIgb25tb3VzZW92ZXI9InRoaXMuY2xhc3NOYW1lPSd7JHJvd2NsYXNzfWhvdmVyJzsiIG9ubW91c2VvdXQ9InRoaXMuY2xhc3NOYW1lPSd7JHJvd2NsYXNzfSc7Ij4KCQkJPHRkPnskZW50cnktPmlkfTwvdGQ+CgkJCTx0ZD48YSBocmVmPSJ7JGVudHJ5LT5lZGl0X3VybH0iIHRpdGxlPSJ7JG1vZC0+TGFuZygnZWRpdCcpfSI+eyRlbnRyeS0+cHJvZHVjdF9uYW1lfTwvYT48L3RkPgoJCQk8dGQ+eyRlbnRyeS0+cHJpY2V8bnVtYmVyX2Zvcm1hdDoyfTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57JGVudHJ5LT53ZWlnaHR8bnVtYmVyX2Zvcm1hdDoyfTwvdGQ+CgkJCTx0ZD57JG1vZC0+TGFuZygkZW50cnktPnN0YXR1cyl9PC90ZD4KCSAgICAgICAgICAgICAgICA8dGQ+eyRlbnRyeS0+bW9kaWZpZWRfZGF0ZXxjbXNfZGF0ZV9mb3JtYXR9PC90ZD4KCQkJPHRkPnskZW50cnktPmF0dHJpYnNsaW5rfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5lZGl0bGlua308L3RkPgoJCQk8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPgoJCTwvdHI+CnsvZm9yZWFjaH0KCTwvdGJvZHk+CjwvdGFibGU+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+PHAgY2xhc3M9InBhZ2VvcHRpb25zIj57JGFkZGxpbmt9PC9wPjwvZGl2Pgo=]]></data>
	</file>
</module>
