<?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.18.2</version>
  <mincmsversion>1.10.2</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgd2F5IHRvIGNvbGxlY3QsIG9yZ2FuaXplLCBhbmQgZGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCBwcm9kdWN0cyBhbmQgdGhlaXIgY2F0ZWdvcmllcy4gIFRoaXMgbW9kdWxlIGNhbiBzdGFuZCBvbiBpdHMgb3duLCBvciBiZSBwYXJ0IG9mIGFuIGUtY29tbWVyY2Ugc29sdXRpb24gaWYgeW91IHdpc2guICBUaGUgbW9kdWxlIHN1cHBvcnRzIGEgcHJvZHVjdCBleGlzdGluZyBpbiBtb3JlIHRoYW4gb25lIGNhdGVnb3J5LCBzdXBwb3J0cyBwcm9kdWN0IHdlaWdodCwgcHJpY2UsIGFuZCBhdHRyaWJ1dGUgc2V0cy4gIEVhY2ggaXRlbSBpbiBhbiBhdHRyaWJ1dGUgc2V0IGNhbiBoYXZlIGEgcHJpY2UgYWRqdXN0bWVudC4gIEFsc28gYSBnbG9iYWwgZmxhZyBpbmRpY2F0ZXMgd2V0aGVyIHRoZSBwcm9kdWN0IGlzICd0YXhhYmxlJyBvciBub3QuPC9wPgogIDxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIG11bHRpcGxlIGN1c3RvbSBmaWVsZCBkZWZpbml0aW9ucywgYW5kIGZvciB0aGUgYWJpbGl0eSB0byBkaXNjcmltaW5hdGUgcHJpdmF0ZSBmcm9tIHB1YmxpYyBkYXRhLjwvcD4KPGgzPkZlYXR1cmVzOjwvaDM+Cjx1bD4KICA8bGk+TnVtZXJvdXMgVmlld3M8L2xpPgogICAgPHVsPgogICAgICA8bGk+U3VtbWFyeSB2aWV3PC9saT4KICAgICAgPGxpPkNhdGVnb3J5IExpc3QgVmlldzwvbGk+CiAgICAgIDxsaT5EZXRhaWwgdmlldzwvbGk+IAogICAgICA8bGk+SGllcmFyY2h5IERyaWxsLWRvd24gVmlldzwvbGk+CiAgICA8L3VsPgogIDxsaT5FbnRpcmVseSBEYXRhYmFzZSBUZW1wbGF0ZSBEcml2ZW48L2xpPgogIDxwPk51bWVyb3VzIHRlbXBsYXRlcyBvZiBlYWNoIHR5cGUgY2FuIGJlIGRlZmluZWQsIGRlZmF1bHRzIHNwZWNpZmllZCBmb3IgZWFjaCB0eXBlLCBhbmQgdGhlIHRlbXBsYXRlIHVzZWQgZm9yIGVhY2ggcGFydGljdWxhciB2aWV3IGNhbiBiZSBzcGVjaWZpZWQgYXMgYSBwYXJhbWV0ZXI8L3A+CiAgPGxpPlNvcnRpbmcgYW5kIHBhZ2luYXRpb24gaW4gdGhlIHN1bW1hcnkgdmlldzwvbGk+CiAgPGxpPlByb2R1Y3RzIGNhbiBleGlzdCBpbiBtdWx0aXBsZSBjYXRlZ29yaWVzPC9saT4KICA8bGk+TnVtZXJvdXMgY3VzdG9tIGZpZWxkcyBjYW4gYmUgZGVmaW5lZCwgaW5jbHVkaW5nIGltYWdlczwvbGk+CiAgPGxpPkF1dG9tYXRpYyB0aHVtYm5haWwgY3JlYXRpb248L2xpPgogIDxsaT5BZG1pbiBkZWZpbmVkIGZpZWxkczwvbGk+CiAgPGxpPlByb2R1Y3QgYXR0cmlidXRlcyAoaW5jbHVkaW5nIHByaWNlIGFkanVzdG1lbnQpPC9saT4KICA8bGk+V2VpZ2h0IGFuZCB0YXhhYmxlIGZpZWxkcyAoZm9yIHVzZSBpbiBlLWNvbW1lcmNlIHNvbHV0aW9ucyk8L2xpPgogIDxsaT5Qcm9kdWN0cyBjYW4gaGF2ZSBhIHN0YXR1cyAocHVibGlzaGVkIG9yIGRyYWZ0KSBpbiBvcmRlciB0byBoaWRlIHByb2R1Y3RzIGZyb20gcHVibGljIGRpc3BsYXkgYXQgYW55IHRpbWU8L2xpPgogIDxsaT5QcmV0dHkgVVJMIFN1cHBvcnQ8L2xpPgogIDxsaT48c3Ryb25nPk1vcmUuLi48L3N0cm9uZz48L2xpPgo8L3VsPgoKPGgzPkhvdyBEbyBJIFVzZSBJdDo8L2gzPgo8dWw+CjxsaT5TZXQgcHJlZmVyZW5jZXM8L2xpPgo8cD5Vc3VhbGx5IHRoaXMgaXMganVzdCBhIGZvcm1hbGl0eS4gIFlvdSBzaG91bGQgc3BlY2lmeSB5b3VyIGRlZmF1bHQgd2VpZ2h0IHVuaXRzLCBhbmQgeW91ciBkZWZhdWx0IGN1cnJlbmN5IHN5bWJvbCBmb3IgeW91ciBsb2NhbCBlbnZpcm9ubWVudC48L3A+CjxsaT5TZXR1cCB1c2VycyBhbmQgcGVybWlzc2lvbnM8L2xpPgo8cD5UaGlzIG1vZHVsZSB1c2VzIHRoZSAnTW9kaWZ5IFRlbXBsYXRlcycgcGVybWlzc2lvbiB0byBhbGxvdyB1c2VycyB0byBiZSBhYmxlIHRvIG1vZGlmeSB0aGUgdmFyaW91cyB0ZW1wbGF0ZXMgdGhhdCBjYW4gYmUgdXNlZCBieSB0aGlzIG1vZHVsZS4gIEFzIHdlbGwsIHRoZSAnTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnIHBlcm1pc3Npb24gaXMgbmVlZGVkIHRvIGJlIGFibGUgdG8gYWRqdXN0IHRoZSBtb2R1bGVzIHByZWZlcmVuY2VzLiAgSW4gb3JkZXIgdG8gaGF2ZSB0aGUgYWJpbGl0eSB0byBtb2RpZnkgZmllbGQgZGVmaW5pdGlvbnMsIGNhdGVnb3JpZXMsIG9yIHByb2R1Y3RzLCB5b3VyIHVzZXJzIHdpbGwgbmVlZCB0aGUgJ01vZGlmeSBQcm9kdWN0cycgcGVybWlzc2lvbi48L3A+CjxsaT4ob3B0aW9uYWwpIERlZmluZSBvbmUgb3IgbW9yZSBjYXRlZ29yaWVzPC9saT4KPHA+VGhpcyBpcyBhbiBvcHRpb25hbCBzdGVwLCBidXQgeW91IHdpbGwgcHJvYmFibHkgd2FudCB0byBkbyB0aGlzIGVhcmx5IHRvIHByZXZlbnQgaGF2aW5nIHRvIGdvIGJhY2sgdG8gbW9kaWZ5IGVhY2ggYW5kIGV2ZXJ5IHByb2R1Y3QgbGF0ZXIuICBBZGRpbmcgYSBjYXRlZ29yeSBpcyBhcyBzaW1wbGUgYXMgY2xpY2tpbmcgb24gdGhlICdDYXRlZ29yaWVzJyB0YWIgaW4gdGhlIFByb2R1Y3QgTWFuYWdlcnMgYWRtaW4gc2VjdGlvbiwgYW5kIGNsaWNraW5nICdBZGQgQSBDYXRlZ29yeScuICBGcm9tIHRoZXJlIHlvdSB3aWxsIGJlIHByb21wdGVkIGZvciBhIGNhdGVnb3J5IG5hbWUuPC9wPgo8bGk+KG9wdGlvbmFsKSBEZWZpbmUgb25lIG9yIG1vcmUgY3VzdG9tIGZpZWxkczwvbGk+CjxwPlRoaXMgaXMgYW4gb3B0aW9uYWwgc3RlcC4gIEN1c3RvbSBmaWVsZHMgYXJlIG5vdCBuZWVkZWQgaWYgdGhpcyBtb2R1bGUgc3VpdHMgeW91IGV4YWN0bHkgYXMgaXQgaXMuICBIb3dldmVyIGlmIHlvdSB3b3VsZCBsaWtlIHRvIHN0b3JlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gZm9yIGVhY2ggb2YgeW91ciBwcm9kdWN0cyB5b3UgY2FuIGNyZWF0ZSBjdXN0b20gZmllbGRzLiAgQ3JlYXRpbmcgY3VzdG9tIGZpZWxkcyBpcyBzaW1pbGFyIHRvIGNyZWF0aW5nIGNhdGVnb3JpZXMsIGV4Y2VwdCB0aGF0IG1vcmUgZGF0YSBpcyByZXF1ZXN0ZWQuPC9wPgo8cD5DdXJyZW50bHkgYSBudW1iZXIgb2YgdHlwZXMgb2YgY3VzdG9tIGZpZWxkcyBhcmUgYXZhaWxhYmxlLCBpbmNsdWRpbmc6ICd0ZXh0Ym94JywnY2hlY2tib3gnLGFuZCAndGV4dGFyZWEnLCAnZHJvcGRvd24nLCBhbmQgJ2ZpbGUnLiAgU2VsZWN0IG9uZSBvZiB0aGVzZSwgZ2l2ZSB5b3VyIG5ldyBmaWVsZCBhIG5hbWUsIGFuZCBpbmRpY2F0ZSB3ZXRoZXIgdGhhdCBmaWVsZCBzaG91bGQgYmUgdmlzaWJsZSB0byB0aGUgcHVibGljIGluIHRoZSB2YXJpb3VzIHZpZXdzLiAgVGhlbiBoaXQgc3VibWl0PC9wPgo8bGk+Q3JlYXRlIG9uZSBvciBtb3JlIHByb2R1Y3RzPC9saT4KPHA+WW91IHNob3VsZCBjcmVhdGUgb25lIG9yIG1vcmUgcHJvZHVjdHMgdG8gZGlzcGxheSBpbiB5b3VyIHdlYnNpdGUgY29udGVudC4gIEdpdmUgZWFjaCBwcm9kdWN0IGEgbmFtZSwgYSBwcmljZSAob3B0aW9uYWwpIGEgd2VpZ2h0IChvcHRpb25hbCksIGEgc3RhdHVzIChkcmFmdCBvciBwdWJsaXNoZWQpLCBhbmQgc29tZSBpbmZvcm1hdGlvbi4gIEFkZGl0aW9uYWxseSwgeW91IGNhbiBhbHNvIHNwZWNpZnkgaWYgdGhlIHByb2R1Y3QgaXMgdGF4YWJsZS48L3A+CjxwPklmIGNhdGVnb3JpZXMgYXJlIGRlZmluZWQsIHRoZW4gYSBjaGVja2JveCB3aWxsIGFwcGVhciBmb3IgZWFjaCBkZWZpbmVkIGNhdGVnb3J5LiAgWW91IGNhbiBzaW1wbHkgY2xpY2sgdGhlIGNoZWNrYm94IGZpZWxkcyBmb3IgZWFjaCBjYXRlZ29yeSB0aGF0IHRoaXMgcHJvZHVjdCBzaG91bGQgYmVsb25nIHRvLjwvcD4KPHA+SWYgY3VzdG9tIGZpZWxkcyBhcmUgZGVmaW5lZCwgdGhlbiBpbnB1dCBmaWVsZHMgYXBwcm9wcmlhdGUgdG8gdGhlIHR5cGUgb2YgY3VzdG9tIGZpZWxkIHdpbGwgYXBwZWFyIGFuZCBhbGxvdyB5b3UgdG8gc3BlY2lmeSBkYXRhIGZvciBlYWNoIG9mIHRoZW0uICBUaGlzIGRhdGEgaXMgb3B0aW9uYWwuPC9wPgo8bGk+QWRkIHRoZSBhcHByb3ByaWF0ZSB0YWdzIGludG8geW91ciBwYWdlIHRlbXBsYXRlcyBvciBwYWdlIGNvbnRlbnQ8L2xpPgo8cD5UaGlzIGNhbiBiZSBhcyBzaW1wbGUgYXMgYWRkaW5nIHRoZSA8c3Ryb25nPntQcm9kdWN0c308L3N0cm9uZz4gdGFnIGludG8gdGhlIGNvbnRlbnQgYXJlYSBvZiBvbmUgb2YgeW91ciBwYWdlcywgb3IgaW50byB5b3VyIHBhZ2UgdGVtcGxhdGUuPC9wPgo8cD5JZiB5b3Ugd2lzaCB0byBhbHRlciB0aGUgYmVoYXZpb3VyIG9mIHRoaXMgYXBwbGljYXRpb24gZnJvbSBpdHMgZGVmYXVsdCwgeW91IGNhbiBkbyB0aGF0IGJ5IGFkZGluZyBvbmUgb3IgbW9yZSBwYXJhbWV0ZXJzIHRvIHRoZSA8c3Ryb25nPntQcm9kdWN0c308L3N0cm9uZz4gdGFnLiAgVGhlIGNvbXBsZXRlIGxpc3Qgb2YgcGFyYW1ldGVycyBhbmQgdGhlaXIgYmVoYXZpb3VyIGlzIGxpc3RlZCBiZWxvdy4gIEJ1dCBmb3IgZXhhbXBsZSwgdG8gZGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdHMgaW4gYSBzaW5nbGUsIGV4aXN0aW5nIGNhdGVnb3J5LCB5b3UgY291bGQgdXNlIGEgdGFnIGxpa2UgPGNvZGU+e1Byb2R1Y3RzIGNhdGVnb3J5PSdjYXRlZ29yeW5hbWUnfTwvY29kZT48L3A+CjwvdWw+CjxoMz5TbWFydHkgUGx1Z2luczwvaDM+CjxwPlRoaXMgbW9kdWxlIGFsc28gcmVnaXN0ZXJzIG9uZSBvciBtb3JlIHNtYXJ0eSBwbHVnaW5zIHRvIGFpZGUgaW4gcmV0cmlldmluZyB2YXJpb3VzIHByb2R1Y3RzIHJlbGF0ZWQgaW5mb3JtYXRpb24gd2hlbiBkZXNpZ25pbmcgcHJvZHVjdHMgbW9kdWxlIHRlbXBsYXRlczo8L3A+Cjx1bD4KICA8bGk+e3Byb2R1Y3RzX2dldGNhdGVnb3J5IGNhdGVnb3J5aWQ9Jzk5JyBbYXNzaWduPSd0bXAnXX0KICA8cD5UaGlzIHBsdWdpbiBhbGxvd3MgcmV0cmlldmluZyBhbGwgb2YgdGhlIGluZm9ybWF0aW9uIGZvciBhIHNwZWNpZmljIGNhdGVnb3J5IGlkIGFuZCBvcHRpb25hbGx5IGFzc2lnbmluZyBpdCB0byB0aGUgbmFtZWQgc21hcnR5IHZhcmlhYmxlLiAgVGhlIHJldHVybmVkIGlzIGFuIG9iamVjdCBjb250YWluaW5nIGFsbCBvZiB0aGUgaW5mb3JtYXRpb24gYWJvdXQgYSBjYXRlZ29yeSwgaW5jbHVkaW5nIGl0cyBmaWVsZCB2YWx1ZXMuPGJyLz5pLmU6LiA8Y29kZT57cHJvZHVjdHNfZ2V0Y2F0ZWdvcnkgY2F0ZWdvcnlpZD0xIGFzc2lnbj0ndG1wJ31DYXRlZ29yeSBuYW1lID0ge1wkdG1wLT5uYW1lfTwvY29kZT48L3A+CiAgPC9saT4KICA8bGk+e3Byb2R1Y3RzX2hpZXJhcmNoeV9icmVhZGNydW1iIGhpZXJhcmNoeWlkPSc5OScgW3BhZ2VpZD1hbGlhc10gW2RlbGltPScgJnJhcXVvICddW2Fzc2lnbj0ndG1wJ119CiAgPHA+VGhpcyBwbHVnaW4gYWxsb3dzIHJldHJpZXZpbmcgdGhlIGJyZWFkY3J1bWIgcGF0aCB0byBhIHBhcnRpY3VsYXIgaGllcmFyY2h5IGlkIGFuZCBvcHRpb25hbGx5IGFzc2lnbmluZyBpdCB0byB0aGUgbmFtZWQgc21hcnR5IHZhcmlhYmxlLiAgVGhpcyBwbHVnaW4gd2lsbCBvdXRwdXQgemVybyBvciBtb3JlIGxpbmtzIHRvIGhpZXJhcmNoeSB2aWV3cyB3aXRoIG9uZSBsaW5rIGZvciBlYWNoIGxldmVsIGluIHRoZSBoaWVyYXJjaHkuICBUbyBzcGVjaWZ5IGEgZGlmZmVyZW50IGRlbGltaXRlciB1c2UgdGhlICJkZWxpbSIgYXJndW1lbnQuICBJZiBhbiBlbXB0eSBkZWxpbWl0ZXIgaXMgc3BlY2lmaWVkLCB0aGVuIGFuIGFycmF5IG9mIGxpbmtzIHdpbGwgYmUgcmV0dXJuZWQgcmF0aGVyIHRoYW4gb25lIGNvbmludW91cyBodG1sIHNlZ21lbnQuICBUbyBzcGVjaWZ5IGEgZGlmZmVyZW50IHBhZ2UgaWQgZm9ydGhlIGxpbmtzLCB1c2UgdGhlIHBhZ2VpZCBhdHRyaWJ1dGUuICAgSWYgdGhlIHBhZ2VpZCBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgYW5kIHRoZSBoaWVyYXJjaHkgaWQgcHJlZmVyZW5jZSBpcyBzZXQgaXQgd2lsbCBiZSB1c2VkLiAgT3RoZXJ3aXNlIHRoZSBjdXJyZW50IHBhZ2UgaWQgd2lsbCBiZSB1c2VkLjwvcD4KICA8L2xpPgogIDxsaT57cHJvZHVjdHNfaGllcmFyY2h5X3BhcmVudCBoaWVyYXJjaHlpZD05OSBbYXNzaWduPSd0bXAnXX0KICA8cD5UaGlzIHBsdWdpbiB3aWxsIHJldHVybiB0aGUgcGFyZW50IGhpZXJhcmNoeSBpZCBmb3IgYSBnaXZlbiBoaWVyYXJjaHkgaWQuICBJZiB0aGUgc3BlY2lmaWVkIGhpZXJhcmNoeSBpZCBkb2VzIG5vdCBleGlzdCwgdGhlbiBub3RoaW5nIHdpbGwgYmUgcmV0dXJuZWQuICBpZiB0aGUgc3BlY2lmaWVkIGhpZXJhcmNoeSBpZCBkb2VzIG5vdCBoYXZlIGEgcGFyZW50IHRoaXMgcGx1Z2luIHdpbGwgcmV0dXJuIC0xLjwvcD4KICA8L2xpPgo8L3VsPgo8aDM+VGhlIDxlbT5hamF4X3Byb3B2YWw8L2VtPiBBY3Rpb248L2gzPgogIDxwPlRoZSA8ZW0+YWpheF9wcm9wdmFsPC9lbT4gaXMgYSBzcGVjaWFsIGFjdGlvbiB0aGF0IGlzIHVzZWQgdG8gcmV0dXJuIHRoZSBkaXN0aW5jdCB2YWx1ZXMgb2YgYSBjdXN0b20gZmllbGQsIG9yIGEgcHJvcGVydHkgdmlhIGpzb24uICBUeXBpY2FsbHkgdGhpcyBhY3Rpb24gaXMgdXNlZCB0byBwZXJmb3JtIGF1dG9jb21wbGV0ZSBhY3Rpb25zLCBhbmQgdXN1YWxseSBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBzZWFyY2ggYWN0aW9uLiAgVGhpcyBhY3Rpb24gYWNjZXB0cyB0aGUgcGFyYW1ldGVyczogZmllbGQgZm9yIHRoZSBuYW1lIG9mIHRoZSBmaWVsZCwgYW5kIGZpZWxkdmFsIGZvciBpbmRpY2F0aW5nIGEgc3RhcnRpbmcgdmFsdWUuICBOb25lIG9mIHRoZSBwYXJhbWV0ZXJzIGNhbiBiZSBlbXB0eS4gIEJlbG93IHlvdSB3aWxsIGZpbmQgYSBzaW1wbGUgZXhhbXBsZSBvZiB1c2luZyB0aGUgYWpheF9wcm9wdmFsIGFjdGlvbiB0byBwZXJmb3JtIGF1dG9jb21wbGV0ZSBmb3IgcHJvZHVjdCBuYW1lcyBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBzZWFyY2ggdGVtcGxhdGUuPC9wPgo8cHJlPjxjb2RlPiZsdDtzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiZndDt7bGl0ZXJhbH0KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICB2YXIgYWpheF91cmwgPSAney9saXRlcmFsfTxzcGFuIHN0eWxlPSJjb2xvcjogZ3JlZW47Ij57bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT1Qcm9kdWN0cyBhY3Rpb249YWpheF9wcm9wdmFsIHVybG9ubHk9MSBqc2ZyaWVuZGx5PTF9PC9zcGFuPntsaXRlcmFsfSc7CiAgYWpheF91cmwgPSBhamF4X3VybCArIDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+JyZzaG93dGVtcGxhdGU9ZmFsc2UnPC9zcGFuPjsKCiAgJCg8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij4nI3Byb2R1Y3RuYW1lJzwvc3Bhbj4pLmF1dG9jb21wbGV0ZSh7CiAgICBzb3VyY2U6IGZ1bmN0aW9uKHJlcSxhZGQpewogICAgICB2YXIgdG1wID0gIGFqYXhfdXJsKzxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+JyZjbnRudDAxZmllbGQ9OjpuYW1lOjomY250bnQwMWZpZWxkdmFsPSc8L3NwYW4+K3JlcS50ZXJtOwogICAgICAkLmdldEpTT04odG1wLGZ1bmN0aW9uKGpzb24pewogICAgICAgIGlmKCBqc29uLnN0YXR1cyA9PSAnT0snICYmIGpzb24uZGF0YS5sZW5ndGggPiAwKSB7CiAgICAgICAgICBhZGQoanNvbi5kYXRhKTsKICAgICAgICB9CiAgICAgIH0pCiAgICB9ICAgIAogIH0pOwp9KTsKey9saXRlcmFsfSZsdDsvc2NyaXB0Jmd0Owo8L2NvZGU+PC9wcmU+CjxwPkFzIHlvdSBjYW4gc2VlIGZyb20gdGhlIGFib3ZlIGNvZGUgc25pcHBldC4uIHRoZSB7bW9kdWxlX2FjdGlvbl9saW5rfSBwbHVnaW4gZnJvbSBDR1NpbXBsZVNtYXJ0eSBpcyB1c2VkIHRvIGdlbmVyYXRlIGEgdXJsIHRoYXQgd2lsbCB0cmlnZ2VyIHRoZSBhamF4X3Byb3B2YWwgYWN0aW9uLiAgQWZ0ZXIgdGhhdCBVUkwgaXMgcmV0cmlldmVkLCB0aGUgc2hvd3RlbXBsYXRlPWZhbHNlIHBhcmFtZXRlciBpcyBhZGRlZCB0byB0aGUgVVJMLiAgIFdoZW4gc2V0dGluZyB1cCB0aGUgYXV0b2NvbXBsZXRlIHBsdWdpbiwgdGhlIGNhbGxiYWNrIHVzZWQgdG8gZmlsbCBpbiB0aGUgZGF0YSB2YWx1ZXMgZm9yIHRoZSBmaWVsZCB1c2VzIGFqYXguICBXZSB0YWtlIHRoZSBhamF4X3VybCBhbHJlYWR5IHByZXBhcmVkIGFuZCBhZGQgdGhlIGZpZWxkPTo6bmFtZTo6IGFuZCBmaWVsZHZhbD1yZXEudGVybSBwYXJhbWV0ZXJzIHRvIHRoZSBVUkwuICBUaGUgdGVybSBpcyBhdXRvbWF0aWNhbGx5IHByb3ZpZGVkIGJ5IHRoZSBhdXRvY29tcGxldGUgcGx1Z2luIGluIHRoZSByZXEudGVybSB2YXJpaWFibGUuPC9wPgo8cD5UbyB1c2UgdGhpcyBleGFtcGxlLCB0aGUgdXNlciB3b3VsZCBuZWVkIHRvIGVuc3VyZSB0aGF0IGpxdWVyeSBpcyBsb2FkZWQsIGFsb25nIHdpdGggdGhlIGpxdWVyeSB1aSAoaW5jbHVkaW5nIGF1dG9jb21wbGV0ZSksIGFuZCBhbnkgcmVxdWlyZWQgc3R5bGVzaGVldHMuICBUaGlzIGNvdWxkIGJlIGRvbmUgZWl0aGVyIGluIHRoZSBwYWdlIHNwZWNpZmljIG1ldGFkYXRhIGZpZWxkIHdoZW4gZWRpdGluZyB0aGUgcGFnZSBjb250YWluaW5nIHRoZSBzZWFyY2ggZm9ybSwgb3IgaW4gdGhlIHBhZ2UgdGVtcGxhdGUgaXRzZWxmLjwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gIEhvd2V2ZXIgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMgb3IgdG8gZmlsZSBhIGJ1ZyByZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgY21zIG1hZGUgc2ltcGxlIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlcnMgRm9yZ2U8L2E+IGFuZCBkbyBhIHNlYXJjaCBmb3IgJ1Byb2R1Y3RzJzwvbGk+CjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj5Sb2JlcnQgQ2FtcGJlbGw8L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcm1zLjwvYT48L2xpPgo8bGk+Rm9yIHNvbWUgcXVlc3Rpb25zIGFuZCBsaW1pdGVkIHRlY2huaWNhbCBzdXBwb3J0LCB0aGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjwvdWw+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mbHQ7Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPgo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIApzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+CjxoMz5EZXBlbmRlbmNpZXM8L2gzPjx1bD48bGk+Q0dFeHRlbnNpb25zID0mZ3Q7IDEuMjQ8L2xpPjxsaT5DR1NpbXBsZVNtYXJ0eSA9Jmd0OyAxLjQuNDwvbGk+PGxpPkpRdWVyeVRvb2xzID0mZ3Q7IDEuMC4xMTwvbGk+PC91bD48aDM+UGFyYW1ldGVyczwvaDM+PHVsPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGxhbmc9ImVuX1VTIiAtIFBhcmFtZXRlciBpcyB1c2VkIHRvIHNwZWNpZnkgd2hhdCBsYW5ndWFnZSB0byB1c2UgZm9yIGRpc3BsYXkgb24gdGhlIGZyb250ZW5kLiBOb3QgYWxsIG1vZHVsZXMgc3VwcG9ydCBvciBuZWVkIHRoaXMuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBhY3Rpb249ImRlZmF1bHQiIC0gU3BlY2lmeSB0aGUgYmVoYXZpb3VyIG9mIHRoZSBtb2R1bGUuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOgo8dWw+CiAgPGxpPmhpZXJhcmNoeSAtLSBEaXNwbGF5IGFuIGl0ZW0gbGlzdCBieSBoaWVyYXJjaHk8L2xpPgogIDxsaT5jYXRlZ29yeWxpc3QgLSBEaXNwbGF5IGEgbGlzdCBvZiBpdGVtIGNhdGVnb3JpZXM8L2xpPgogIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gRGlzcGxheSBhIHN1bW1hcnkgb2YgaXRlbXM8L2xpPgogIDxsaT5kZXRhaWxzIC0gRGlzcGxheSBhIGRldGFpbCB2aWV3IG9mIGEgc2luZ2xlIGl0ZW08L2xpPgogIDxsaT5maWVsZGxpc3QgLSBEaXNwbGF5IGEgbGlzdCBvZiB2YWx1ZXMgZnJvbSBhIHNwZWNpZmllZCBmaWVsZC4KICAgICA8cD4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7LSBUaGlzIGFjdGlvbiBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYSBuYXZpZ2F0aW9uIGZyb20gdGhlIHZhbHVlcyBvZiBhIHNwZWNpZmljIGZpZWxkLiAgaS5lOiAgeW91IGNvdWxkIGNyZWF0ZSBhIGN1c3RvbSBkcm9wZG93biBmaWVsZCBjYWxsZWQgJnF1b3Q7Y29sb3ImcXVvdDsgYW5kIHRoZW4gY3JlYXRlIGEgbmF2aWdhdGlvbiBiYXNlZCBvbiB0aGUgZGlmZmVyZW50IGNvbG9ycy4KICAgICA8L3A+CiAgPC9saT4KICA8bGk+c2VhcmNoIC0gRGlzcGxheSBhIGZvcm0gdG8gYWxsb3cgc2VhcmNoaW5nIGl0ZW1zIG9uIHZhcmlvdXMgY3JpdGVyaXVtPC9saT4KPGxpPmFqYXhfcHJvcHZhbCAtIFJldHVybiBhIGpzb24gZW5jb2RlZCBsaXN0IG9mIHByb3BlcnR5IHZhbHVlcyBtYXRjaGluZyB0aGUgY3JpdGVyaWEgc3BlY2lmaWVkLiAgVGhpcyBhY3Rpb24gaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB2aWEgYWpheCwgYW5kIHNob3VsZCBiZSBjYWxsZWQgd2l0aCB0aGUgc2hvd3RlbXBsYXRlPWZhbHNlIHBhcmFtZXRlciBvbiB0aGUgVVJMLjwvbGk+CjwvdWw+PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBwcm9kdWN0aWQ9IiIgLSBVc2VmdWwgb25seSB3aXRoIHRoZSBkZXRhaWwgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgd2hhdCBpdGVtIHRvIHVzZSBmb3IgdGhlIGRpc3BsYXkuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBkZXRhaWxwYWdlPSIiIC0gVGhpcyBzcGVjaWZpZXMgdGhlIHBhZ2VpZCBvciBhbGlhcyB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIGRldGFpbCByZXBvcnQuICBJdCBjYW4gYmUgdXNlZCB3aXRoIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IG9yIHNlYXJjaCBhY3Rpb25zLiAgVGhpcyBvcHRpb24gaXMgbm90IGNvbXBhdGlibGUgd2l0aCBwcmV0dHkgdXJscyBvZiBhbnkgc29ydC48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGNhdGVnb3J5bGlzdHRlbXBsYXRlPSIiIC0gVXNlZnVsIG9ubHkgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFuZCBmaWVsZGxpc3QgYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBjYXRlZ29yeWxpc3RkdGx0ZW1wbGF0ZT0iIiAtIFVzZWZ1bCBvbmx5IHdpdGggdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkaXNwbGF5IG9mIHRoZSBjYXRlZ29yeSBkZXRhaWxzLiAgVGhpcyB1c2VzIGEgY2F0ZWdvcnkgbGlzdCB0ZW1wbGF0ZS4uICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZGV0YWlsdGVtcGxhdGU9IiIgLSBUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkZXRhaWwgbW9kZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuICBUaGlzIHBhcmFtZXRlciBoYXMgbm8gdXNlIHdoZW4gcHJldHR5IHVybHMgYXJlIGVuYWJsZWQuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzdW1tYXJ5dGVtcGxhdGU9IiIgLSBUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBzdW1tYXJ5IG1vZGUgZGlzcGxheS4gIEl0IGlzIGFsc28gYWNjZXB0ZWQgaW4gdGhlIHNlYXJjaCBhY3Rpb24uICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGhpZXJhcmNoeXRlbXBsYXRlPSIiIC0gVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgaGllcmFyY2h5IGRpc3BsYXkuIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gaGllcmFyY2h5cGFnZT0iIiAtIC0tIE1pc3NpbmcgTGFuZ3VhZ2VzdHJpbmcgLSBtb2R1bGU6UHJvZHVjdHMgc3RyaW5nOnBhcmFtX2hpZXJhcmNoeXBhZ2UtLTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc29ydGJ5PSJwcm9kdWN0X25hbWUiIC0gQXBwbGljYWJsZSBpbiB0aGUgc3VtbWFyeSwgY2F0ZWdvcnlsaXN0IG9yIHNlYXJjaCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOgo8dWw+CiAgPGxpPjxzdHJvbmc+aXRlbV9uYW1lPC9zdHJvbmc+PC9saT4KICA8bGk+aWQgLS0gVGhlIGl0ZW0gaWQ8L2xpPgogIDxsaT53ZWlnaHQgLS0gVGhlIGl0ZW0gd2VpZ2h0PC9saT4KICA8bGk+cHJpY2UgLS0gVGhlIGl0ZW0gYmFzZSBwcmljZTwvbGk+CiAgPGxpPnN0YXR1cyAtLSBEcmFmdCBvciBwdWJsaXNoZWQ8L2xpPgogIDxsaT5yYW5kb20gLS0gRGlzcGxheSBpbiByYW5kb20gb3JkZXIgb24gZWFjaCByZXF1ZXN0PC9saT4KICA8bGk+Y3JlYXRlZCAtLSBUaGUgY3JlYXRpb24gZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+CiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4KICA8bGk+ZjpmaWVsZG5hbWUgLS0gQWxsb3dzIHNvcnRpbmcgYnkgdmFsdWVzIG9mIGN1c3RvbSBmaWVsZHMuPC9saT4KPC91bD4KPHA+VGhlIGNhdGVnb3J5IGxpc3QgdmlldyBzdXBwb3J0cyBvbmx5IGEgZmV3IHNwZWNpZmljIHNvcnRpbmcgb3B0aW9uczo8L3A+Cjx1bD4KICA8bGk+aWQgLS0gVGhlIGNhdGVnb3J5IGlkLjwvbGk+CiAgPGxpPjxzdHJvbmc+bmFtZTwvc3Ryb25nPiAtLSBUaGUgY2F0ZWdvcnkgbmFtZS48L2xpPgo8L3VsPjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc29ydG9yZGVyPSJhc2MiIC0gU3BlY2lmeSB0aGUgb3JkZXIgb2Ygc29ydGVkIGZpZWxkcyBpbiBzdW1tYXJ5IChpbmNsdWRpbmcgYWZ0ZXIgYSBzZWFyY2gpIHZpZXcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOgo8dWw+CiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIEFzY2VuZGluZyBvcmRlcjwvbGk+CiAgPGxpPmRlc2MgLS0gRGVzY2VuZGluZyBvcmRlcjwvbGk+CjwvdWw+PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzb3J0dHlwZT0iIiAtIEFwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCBzdW1tYXJ5IHZpZXcsIHRoaXMgcGFyYW1ldGVyIGlzIHVzZWQgdG8gY29udmVydCB0aGUgdmFsdWVzIHRvIGFub3RoZXIgdHlwZSBmb3Igc29ydGluZy4gIHZhbGlkIHZhbHVlcyBhcmUgU1RSSU5HLFNJR05FRCBhbmQgVU5TSUdORUQuICBJZiBub3Qgc3VwcGxpZWQgdGhlIGRlZmF1bHQgU1RSSU5HIHR5cGUgaXMgYXNzdW1lZC48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGV4Y2x1ZGVjYXQ9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgKHN1bW1hcnkpIHZpZXcsIHRoaXMgcGFyYW1ldGVyIHdpbGwgYWxsb3cgZXhjbHVkaW5nIGl0ZW1zIHRoYXQgYXJlIGluIGEgc3BlY2lmaWMgY2F0ZWdvcnkgZnJvbSB0aGUgcmVzdWx0LiBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGNhdGVnb3J5IG5hbWVzIGlzIGFsbG93ZWQuIFRoaXMgcGFyYW1ldGVyIGNhbiB3b3JrIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGNhdGVnb3J5IHBhcmFtZXRlciB0byBwcm92aWRlIGEgbGlzdCBvZiB0aGUgaXRlbXMgdGhhdCBhcmUgaW4gdGhpcyBjYXRlZ29yeSwgYnV0IG5vdCBpbiB0aGF0IGNhdGVnb3J5PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub3RwcmV0dHk9IiIgLSBUaGllIHBhcmFtZXRlciBzcGVjaWZpZXMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhY3Rpb25zIHRvIHdoaWNoIHByZXR0eSB1cmxzIHNob3VsZCBub3QgYmUgZ2VuZXJhdGVkLiAgaS5lOiBub3RwcmV0dHk9aGllcmFyY2h5LGRlZmF1bHQgd2lsbCBub3QgZ2VuZXJhdGUgcHJldHR5IHVybHMgdG8gaGllcmFyY2h5LCBvciBzdW1tYXJ5IChkZWZhdWx0KSBhY3Rpb25zLCBidXQgd2lsbCBhbGxvdyBnZW5lcmF0aW9uIG9mIHByZXR0eSB1cmxzIHRvIGRldGFpbCB2aWV3cy4gIEFzIGEgc3BlY2lhbCB2YXVlICZxdW90O2FsbCZxdW90OyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoYXQgbm8gcHJldHR5IHVybHMgc2hvdWxkIGJlIGdlbmVyYXRlZDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gY2F0ZWdvcnk9IiIgLSBXaGVuIHVzZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciwgd2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBuYW1lIG9mIGFuIGV4aXN0aW5nIGNhdGVnb3J5IHdpbGwgYmUgdXNlZCB0byBkaXNwbGF5IG9ubHkgdGhvc2UgaXRlbXMgdGhhdCBhcmUgaW4gdGhhdCBjYXRlZ29vcnkuIChhIGNvbW1hIHNlcGVyYXRlZCBsaXN0IGNhbiBiZSBzdXBwbGllZCkuICBUaGlzIHBhcmFtZXRlciBjYW4gYWxzbyBiZSB1c2VkIHdpdGggdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb24gdG8gbGltaXQgdGhlIG91dHB1dCB0byB0aGUgc3BlY2lmaWVkIGl0ZW0gY2F0ZWdvcmllcy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGhpZXJhcmNoeT0iIiAtIFVzZWVkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFuZCBoaWVyYWNoeSBhY3Rpb25zIHRoaXMgcGFyYW1ldGVyIGhhcyB0d28gdXNlcy4gIFdoZW4gdXNlZCBpbiB0aGUgZGVmYXVsdCAoc3VtbWFyeSkgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhhdCBvbmx5IGl0ZW1zIGluIHRoYXQgbG9jYXRpb24gb2YgdGhlIGhpZXJhcmNoeSBzaG91bGQgYmUgZGlzcGxheWVkLiAgV2lsZGNhcmQgY2hhcmFjdGVyIGNhbiBiZSB1c2VkIHNvIHRoYXQgeW91IGNhbiBzcGVjaWZ5IHBhcmVudC9jaGlsZCByZWxhdGlvbnNoaXBzIGFzIHdlbGwuICBpLmUge1Byb2R1Y3RzIGhpZXJhcmNoeT0ndHJ1Y2tzKid9IHdpbGwgY3JlYXRlIGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgaW5jbHVkaW5nIHRoZSBjaGlsZHJlbiBpbiB0aGUgaGllcmFyY2h5LiAgU2ltaWxhcmx5LCB7UHJvZHVjdHMgaGllcmFyY2h5PScqdHJ1Y2tzJ30gd2lsbCBkaXNwbGF5IGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgYW5kIGFsbCBpdGVtcyBiZWxvZ2luZyB0byBhbnkgcGFyZW50IGluIHRoZSBoaWVyYXJjaHkuICBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGV4cHJlc3Npb25zIGNhbiBiZSBzdXBwbGllZC4gIGkuZToge1Byb2R1Y3RzIGFjdGlvbj1oaWVyYXJjaHkgaGllcmFyY2h5PSd0cnVja3MsY2Fycyd9PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBwYWdlbGltaXQ9IiIgLSBVc2VmdWwgb25seSB3aXRoIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IG9yIHNlYXJjaCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIGxpc3RlZCBvbiBlYWNoIHBhZ2UuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBwYXJlbnQ9IiIgLSBVc2VmdWwgb25seSBpbiB0aGUgPGVtPmhpZXJhcmNoeTwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBoaWVyYXJjaHkgaWQgb2YgdGhlIHN0YXJ0aW5nIGxvY2F0aW9uIG9mIHRoZSByZXBvcnQuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBwYXJlbnRzPSIiIC0gVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5oaWVyYXJjaHk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGhpZXJhcmNoeSBuYW1lcyB0aGF0IHNwZWNpZnkgdG8gY3JlYXRlIG51bWVyb3VzIGhlaXJhcmNoeSB0cmVlcyBmcm9tIHRoZSBzcGVjaWZpZWQgbG9jYXRpb24ocykuICBIaWVyYXJjaHkgbmFtZXMgbXVzdCBiZSB1bmlxdWUsIGFuZCBub3QgY29udGFpbiBhbnkgc3BlY2lhbCBjaGFycy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHNob3dhbGw9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGNhdGVnb3J5bGlzdCBhbmQgZmllbGRsaXN0IGFjdGlvbnMsIGlmIHRoaXMgcGFyYW1ldGVyIGlzIHNldCB0byBhIG5vbiAwIGludGVnZXIgdmFsdWUgYWxsIGNhdGVnb3JpZXMgKGV2ZW4gdGhvc2Ugd2l0aG91dCBpdGVtcykgd2lsbCBiZSBkaXNwbGF5ZWQuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWVsZD0iIiAtIFVzZWQgaW4gdGhlIDxlbT5maWVsZGxpc3Q8L2VtPiBhbmQgdGhlIDxlbT5hamF4X3Byb3B2YWw8L2VtPiBhY3Rpb25zLiBJbiB0aGUgZmllbGRsaXN0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgdG8gc3BlY2lmeSB0aGUgbmFtZSBvZiBhIHVzZXIgZGVmaW5lZCBwcm9wZXJ0eSB0byBjcmVhdGUgYSBsaXN0IGZyb20uICBJbiB0aGUgYWpheF9wcm9wdmFsIGFjdGlvbiB0aGlzIHBhcmFtZXRlciBpcyB1c2VkIHRvIHNwZWNpZnkgd2hpY2ggZmllbGQgdG8gdXNlIHRvIGV4dHJhY3QgYSBsaXN0IG9mIHZhbHVlcy4gIEFueSB2YWxpZCBmaWVsZCBuYW1lcyBhcmUgYWNjZXB0ZWQgKHRob3VnaCBvbmx5IHRleHQgZmllbGQgYW5kIGRyb3Bkb3duIGZpZWxkIG5hbWVzIHdpbGwgd29yayBwcm9wZXJseS4gIEFkZGl0aW9uYWxseSB0aGUgc3BlY2lhbCB2YWx1ZXMgOjpuYW1lOjosIDo6c2t1OjosIGFuZCA6OmFsaWFzOjogY2FuIGJlIHNwZWNpZmllZCB0byByZXR1cm4gdmFsdWVzIGZyb20gdGhlIGl0ZW0gbmFtZSwgc2t1IGFuZCBhbGlhcyByZXNwZWN0aXZlbHkuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWVsZHZhbD0iIiAtIFVzZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYW5kIDxlbT5hamF4X3Byb3B2YWw8L2VtPiBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGZpZWxkIHZhbHVlIHRvIGxpbWl0IHJlc3VsdHMgYnkuICBJbiB0aGUgZGVmYXVsdCB2YWx1ZSB0aGVzZSBzcGVjaWFsIHZhbHVlcyBhcmUgYWNjZXB0ZWQ6ICZxdW90Ozo6bnVsbDo6JnF1b3Q7ICZxdW90Ozo6bm90bnVsbDo6JnF1b3Q7LiBJbiB0aGUgYWpheF9wcm9wdmFsIGFjdGlvbiB0aGlzIGZpZWxkIGlzIGV4cGVjdGVkIHRvIGNvbnRhaW4gb25seSBhIGZldyBsZXR0ZXJzLCB0byBpbmRpY2F0ZSBhIHNtYWxsIGZpbHRlci4gIGkuZTogZmllbGR2YWw9YiB0byByZXR1cm4gYWxsIGZpZWxkIHZhbHVlcyB0aGF0IGJlZ2luIHdpdGggdGhlIGxldHRlciBiLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gY2F0ZWdvcnlmaWVsZD0iIiAtIEFwcGxpY2FibGUgb25seSB0byB0aGUgJnF1b3Q7Y2F0ZWdvcnlsaXN0JnF1b3Q7IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgY2FuIGJlIHVzZWQgdG8gZmlsdGVyIGNhdGVnb3JpZXMgYmFzZWQgb24gdGhlIHZhbHVlIG9mIGEgY2F0ZWdvcnkgZmllbGQuICBJdCB3aWxsIG5vdCB3b3JrIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlICZxdW90O2NhdGVnb3J5JnF1b3Q7IG9yICZxdW90O2NhdGVnb3J5X2lkJnF1b3Q7IHBhcmFtZXRlcnMuICAgVGhlIHN5bnRheCBvZiB0aGlzIHBhcmFtZXRlciBpcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGZpZWxkIG5hbWVzLCBhbmQgZmllbGQgdmFsdWVzLiAgaS5lOiAgY2F0ZWdvcnlsaXN0PSZxdW90O2ZpZWxkIG5hbWU6dmFsdWUsZmllbGQgbmFtZSAyOnZhbHVlIDImcXVvdDs8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGlubGluZT0iMCIgLSBVc2VmdWwgb25seSB3aXRoIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhhdCB0aGUgb3V0cHV0IG9mIHRoZSBzdW1tYXJ5IHZpZXcgc2hvdWxkIGJlIGRpc3BsYXllZCBpbmxpbmU8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHJlc3VsdHBhZ2U9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCwgYW5kIGNhdGVnb3J5IGxpc3QgYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGEgcGFnZSBpZCBvciBhbGlhcyB0byB1c2UgdG8gZGlzcGxheSB0aGUgc3VtbWFyeSByZXN1bHRzPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzZWFyY2hmb3JtdGVtcGxhdGU9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXNwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCBzZWFyY2ggZm9ybSB0ZW1wbGF0ZTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc2VhcmNoZmllbGQ9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIG1heSBjb250YWluIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZmllbGQgbmFtZXMgdG8gaW5jbHVkZSBpbiB0aGUgc2VhcmNoPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzdW1tYXJ5cGFnZT0iQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBhY3Rpb249aGllcmFyY2h5LCBhbGxvd3Mgc3BlY2lmeWluZyBhIHBhZ2UgaWQgb3IgYWxpYXMgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIGFueSBsaW5rcyB0byBzdW1tYXJ5IHZpZXciIC0gPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBwcm9kdWN0bGlzdD0iQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IChzdW1tYXJ5KSB2aWV3LCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGludGVnZXIgcHJvZHVjdCBpZHMgdG8gZGlzcGxheS4gIE5vIHBhZ2luYXRpb24gb3Igc29ydGluZyBpcyBwZXJmb3JtZWQgb24gdGhlc2UgdmFsdWVzLCBhbmQgaWYgc3BlY2lmaWVkIHRoZSBvdGhlciBmaWx0ZXJpbmcgcGFyYW1ldGVycyB0byB0aGUgc3VtbWFyeSB2aWV3IGFyZSBpZ25vcmVkLiIgLSA8L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDIuMTguMjxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjx1bD4KPGxpPlZlcnNpb24gMS4wIC0gRGVjZW1iZXIsIDIwMDcKICAgPHA+SW5pdGlhbCBSZWxlYXNlPC9wPgo8L2xpPgo8bGk+VmVyc2lvbiAxLjAuMSAtIEphbnVhcnksIDIwMDgKICAgPHVsPgogICAgIDxsaT5BZGRzIHBhZ2luYXRpb24gaW4gc3VtbWFyeSB2aWV3PC9saT4KICAgICA8bGk+Rml4ZXMgYSBwcm9ibGVtIHdpdGggZHVwbGljYXRlIGxpbmtzIGluIHN1bW1hcnkgdmlldzwvbGk+CiAgIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMCAtIEFwcmlsLCAyMDA4CiAgPHVsPgogICAgIDxsaT5BZGRzIGhpZXJhcmNoaWNhbCBjYXRlZ29yaWVzIGFzIHdlbGwgYXMgdGhlIG9yaWdpbmFsICd0YWcnIGJhc2VkIGNhdGVnb3JpZXMuPGJyLz4KICAgICAgICAgSGllcmFyY2hpY2FsIGNhdGVnb3JpZXMgY2FuIGhhdmUgYW4gaW1hZ2UgYXMgd2VsbCBhcyBhIGRlc2NyaXB0aW9uLjwvbGk+CiAgICAgPGxpPkFkZHMgbW9yZSBjdXN0b20gZmllbGQgdHlwZXMgKGltYWdlLCBkcm9wZG93bik8YnIvPgogICAgICAgICBJbmNsdWRpbmcgdGh1bWJuYWlsIGdlbmVyYXRpb24uPC9saT4KICAgICA8bGk+UmVtb3ZlIHRoZSBvcmlnaW5hbCBpbWFnZSBmaWVsZHM8L2xpPgogICAgIDxsaT5BZGRzIFNlYXJjaCBtb2R1bGUgY2FwYWJpbGl0eTwvbGk+CiAgICAgPGxpPkFkZHMgYSBoaWVyYXJjaGljYWwgY2F0ZWdvcnkgdmlldyB3aXRoIGRyaWxsIGRvd24gc3VwcG9ydDwvbGk+CiAgICAgPGxpPk11Y2gsIG11Y2ggbW9yZTwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4wLjEgLSBBcHJpbCwgMjAwOAogIDx1bD4KICAgICA8bGk+Rml4ZXMgbnVtZXJvdXMgc21hbGwgZXJyb3JzLjwvbGk+CiAgICAgPGxpPkZpeCB0byBhbGxvdyBzcGFjZXMgYW5kIG90aGVyIGNoYXJhY3RlcnMgaW4gaGllcmFyY2h5IG5hbWVzPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjAuMiAtIEF1Z3VzdCwgMjAwOAogIDx1bD4KICAgICA8bGk+QnVnIGZpeGVzPC9saT4KICAgICA8bGk+Tm93IFJlcXVpcmUgQ0dFeHRlbnNpb25zIDEuOTwvbGk+CiAgICAgPGxpPkFkZCBhIGN1cnJlbmN5IGNvZGUgcHJlZmVyZW5jZTwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xLjEgLSBTZXB0ZW1iZXIsIDIwMDgKICA8dWw+CiAgICAgPGxpPkJ1ZyBmaXhlczwvbGk+CiAgICAgPGxpPkFkZCB0aGUgYWJpbGl0eSB0byBhc3NvY2lhdGUgc3RhdGljIGRhdGEgd2l0aCBhbnkgY2F0ZWdvcnk8L2xpPgogICAgIDxsaT5BZGQgdGhlIGFiaWxpdHkgdG8gY29weSBjYXRlZ29yaWVzPC9saT4KICAgICA8bGk+QWRkIHRoZSBvcHRpb25hbCBhYmlsaXR5IHRvIHdhdGVybWFyayB1cGxvYWRlZCBhYmlsaXRpZXMuPC9saT4KICAgICA8bGk+QWRkIHRoZSBvcHRpb25hbCBhYmlsaXR5IHRvIGNoYW5nZSB0aGUgbG9jYXRpb24gb2YgdGhlIHdhdGVybWFyayBpbiB1cGxvYWRlZCBpbWFnZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEuMiAtIFNlcHRlbWJlciwgMjAwOAogIDx1bD4KICAgIDxsaT5VcGRhdGUgZGVwZW5kZW5jaWVzLCBhbmQgcmVtb3ZlIGRlYnVnIHN0YXRlbWVudHMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEuMyAtIFNlcHRlbWJlciwgMjAwOAogIDx1bD4KICAgIDxsaT5NaW5vciBCdWdmaXhlczwvbGk+CiAgICA8bGk+Q2hhbmdlIHRoZSBkZWxpbWl0ZXIgb24gdGhlIGF0dHJpYnV0ZXMgZHJvcGRvd248L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMiAtIERlY2VtYmVyLCAyMDA4CiAgPHVsPgogICAgPGxpPk51bWVyb3VzIEJ1Z2ZpeGVzPC9saT4KICAgIDxsaT5Qcm9kdWN0cyBtb2R1bGUgbm93IGhhcyBhIENhcnQgbW9kdWxlIHByZWZlcmVuY2UsIHdoZXJlIHlvdSBjYW4gcGljayBmcm9tIHRoZSBhdmFpbGFibGUgY2FydCBtb2R1bGVzLjwvbGk+CiAgICA8bGk+TW9kaWZ5IGRlZmF1bHQgdGVtcGxhdGVzIHNvIHRoYXQgdGhlIGNhcnQgbW9kdWxlIHByZWZlcmVuY2UgaXMgdXNlZC48L2xpPgogICAgPGxpPlJlbW92ZSBhbGwgcmVmZXJlbmNlcyB0byB0YXhlcyBvciBzaGlwcGluZyBtb2R1bGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4yLjEgLSBKYW51YXJ5LCAyMDA4CiAgPHVsPgogICAgPGxpPkFkZCBhYmlsaXR5IHRvIHNvcnQgYnkgd2VpZ2h0LjwvbGk+CiAgICA8bGk+QWRkIGJyZWFkY3J1bWJzIHRvIGRldGFpbCB2aWV3LjwvbGk+CiAgICA8bGk+QWRkIGNhdGVnb3J5IGluZm9ybWF0aW9uIHRvIHN1bW1hcnkgdmlldy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMi4yIC0gSmFudWFyeSwgMjAwOAogIDx1bD4KICAgIDxsaT5GaXggbWlub3IgcHJvYmxlbSB3aXRoIGNhdGVnb3J5IGluZm9ybWF0aW9uIGluIHN1bW1hcnkgdmlldy48L2xpPgogICAgPGxpPkFkZCBjb25zaXN0ZW50IG9yZGVyaW5nIHRvIEdldENhdGVnb3JpZXNGb3JQcm9kdWN0PC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjIuNCAtIEZlYnJ1YXJ5LCAyMDA4CiAgPHVsPgogICAgPGxpPkFkZCBJRCB0byB0aGUgaGllcmFyY2h5IHRhYjwvbGk+CiAgICA8bGk+QWRkIHRoZSB7JHBhcmVudH0gdmFyaWFibGUgdG8gdGhlIGhpZXJhcmNoeSBkaXNwbGF5LjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4zIC0gTWFyY2gsIDIwMDgKICA8dWw+CiAgICA8bGk+QWRkIENTViBJbXBvcnQ8L2xpPgogICAgPGxpPkFkZCBpbmRleGVzIHRvIHRoZSB0YWJsZXMsIHNob3VsZCByZXN1bHQgaW4gYSBtYXNzaXZlIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50LjwvbGk+CiAgICA8bGk+QWRkIEV4dHJhMSBhbmQgRXh0cmEyIGZpZWxkcyB0byB0aGUgaGllcmFyY2h5IGRlZmluaXRpb24uPC9saT4KICAgIDxsaT5GaXhlcyBwcm9ibGVtcyB3aXRoIGRhdGVzCiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4zLjEgLSBNYXJjaCwgMjAwOAogIDx1bD4KICAgIDxsaT5GaXhlcyB0byBDU1YgSW1wb3J0PC9saT4KICAgIDxsaT5CdW1wIG1pbmltdW0gQ01TIFZlcnNpb24gdG8gMS41LjM8L2xpPgogICAgPGxpPkJ1Z2ZpeGVzIHRvIGVkaXQgYXR0cmlidXRlIHNldC48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNCAtIEp1bHksIDIwMDgKICA8dWw+CiAgICA8bGk+Rml4ZXMgRWRpdCBBdHRyaWJ1dGUgU2V0IFByb2JsZW08L2xpPgogICAgPGxpPkFkZHMgR2V0Q2F0ZWdvcnkoKSBtZXRob2QuPC9saT4KICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjQuMiAtIEp1bHksIDIwMDgKICA8dWw+CiAgICA8bGk+QWRkcyBjb252ZW5pZW5jZSBmdW5jdGlvbnMgZm9yIHVzZSBieSB0aGUgUHJvbW90aW9ucyBhbmQgb3RoZXIgbW9kdWxlcy48L2xpPgogICAgPGxpPkZpeGVzIG1pbm9yIGJ1Z3MuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjQuNCAtIFNlcHRlbWJlciwgMjAwOAogIDx1bD4KICAgIDxsaT5GaXhlcyBtaW5vciBidWdzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi40LjUgLSBOb3ZlbWJlciwgMjAwOAogIDx1bD4KICAgIDxsaT5NaW5vciBzbWFydHkgaW1wcm92ZW1lbnRzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi40LjcgLSBEZWNlbWJlciwgMjAwOAogIDx1bD4KICAgIDxsaT5BZGRzIGFiaWxpdHkgdG8gc3BlY2lmeSBhIHRlbXBsYXRlIGZvciBwcm9kdWN0IGF0dHJpYnV0ZSB2YWx1ZSBkaXNwbGF5IGluIHRoZSBkcm9wZG93bnMuPC9saT4KICAgIDxsaT5BZGRzIHRoZSBzaG93YWxsIHBhcmFtZXRlciAob3B0aW9uYWwpIHRvIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi40LjggLSBKYW51YXJ5LCAyMDA5CiAgPHVsPgogICAgPGxpPkFkZHMgaGFuZGxpbmcgZm9yIGRpcmVjdCBhY2Nlc3MgdG8gZGlzYWJsZWQvZGVsZXRlZC9pbnZhbGlkIHByb2R1Y3QgZGV0YWlsIHZpZXdzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi41LjEgLSBGZWJydWFyeSwgMjAxMAogIDx1bD4KICAgIDxsaT5JbXByb3ZlbWVudHMgZm9yIE1BQyBmb3JtYXQgQVNDSUkgY3N2IGZpbGVzLjwvbGk+CiAgICA8bGk+QWRkcyBwcm9kdWN0IGFsaWFzIG1lY2hhbmlzbS48L2xpPgogICAgPGxpPkFkZHMgYnJlYWRjcnVtYiBzdXBwb3J0IGludG8gdGhlIGRldGFpbCB2aWV3LjwvbGk+CiAgICA8bGk+QWRkcyBwcmV0dHkgdXJsIHN1cHBvcnQgaW50byB0aGUgc2VhcmNoIHJlc3VsdHMuPC9saT4KICAgIDxsaT5BZGRzIGNhbm9uaWNhbCBzdXBwb3J0IGludG8gdGhlIGRldGFpbCB2aWV3LjwvbGk+CiAgICA8bGk+QWRkcyBTS1Ugc3VwcG9ydC48L2xpPgogICAgPGxpPkJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNiAtIE1hcmNoLCAyMDE5CiA8dWw+CiAgIDxsaT5Nb2RpZmljYXRpb25zIHRvIHdvcmsgd2l0aCBuZXcgRS1jb21tZXJjZSBzZXR1cC48L2xpPgogICA8bGk+TWFueSBidWcgZml4ZXMuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNi4xIC0gQXByaWwsIDIwMTkKIDx1bD4KICAgPGxpPkJ1ZyBGaXhlcy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi42LjIgLSBBcHJpbCwgMjAxOQogPHVsPgogICA8bGk+QnVnIEZpeGVzLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjcgLSBBcHJpbCwgMjAxOQogPHVsPgogICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBzb3J0IHN1bW1hcnkgdmlld3MgYnkgY3VzdG9tIGZpZWxkcy48L2xpPgogICA8bGk+QWRkcyB0aGUgZmllbGRsaXN0IGFjdGlvbiB0byBhbGxvdyBjcmVhdGluZyBuYXZpZ2F0aW9ucyBvbiBjdXN0b20gZmllbGRzLjwvbGk+CiAgIDxsaT5BZGRzIHNlYXJjaCBhY3Rpb24gdG8gYWxsb3cgc2VhcmNoaW5nIHByb2R1Y3RzLjwvbGk+CiAgIDxsaT5SZW1vdmUgY3VycmVuY3kgY29kZSBhbmQgb3RoZXIgcHJlZmVyZW5jZXMgdGhhdCBhcmUgbm93IGluIENHRWNvbW1lcmNlQmFzZS4uLiB3ZWxsIGlmIENHRWNvbW1lcmNlQmFzZSBpcyBpbnN0YWxsZWQgYW55d2F5cy48L2xpPgogICA8bGk+UmVtb3ZlIHNvbWUgcHJlZmVyZW5jZXMgYW5kIHRlbXBsYXRlcyB0aGF0IGFyZSBub3cgaG9zdGVkIGluIENHRWNvbW1lcmNlQmFzZS48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi43LjEgLSBBcHJpbCwgMjAxMAogPHVsPgogICA8bGk+QWRkcyBhIHJldHVybiBsaW5rIHRvIHRoZSBjYXRlZ29yeSBmaWVsZHMgZWRpdCBwYWdlLjwvbGk+CiAgIDxsaT5BZGRzIGEgZGV0YWlsX3VybCBwYXJhbSB0byB0aGUgY2F0ZWdvcnkgbGlzdCB2aWV3LjwvbGk+CiAgIDxsaT5BZGRzIHRoZSBjYXRlZ29yeWxpc3RkdGx0ZW1wbGF0ZSBwYXJhbS48L2xpPgogICA8bGk+Q2F0ZWdvcnkgTGlzdCB2aWV3IG5vdyB1c2VzIHRoZSByZXN1bHRwYWdlIHBhcmFtZXRlciBieSBkZWZhdWx0LjwvbGk+CiAgIDxsaT5GaXhlcyBhIHByb2JsZW0gd2l0aCBkZWxldGluZyBmaWxlcyBpbiB0aGUgZWRpdCBwcm9kdWN0IHBhZ2UuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNy4zIC0gQXByaWwsIDIwMTAKIDx1bD4KICAgPGxpPlJlbW92ZSB0aGUgaW1hZ2Ugd2hlbiByZW1vdmluZyB0aGUgaGllcmFyY2h5IGl0ZW0uPC9saT4KICAgPGxpPkltcHJvdmVtZW50cyB0byBjYXRlZ29yeSBmaWVsZCBvcmRlcmluZy48L2xpPgogICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byByZW5hbWUgY2F0ZWdvcnkgZmllbGRzLjwvbGk+CiAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNy40IC0gQXByaWwsIDIwMTAKIDx1bD4KICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi43LjUgLSBNYXksIDIwMTAKIDx1bD4KICAgPGxpPkZpeGVzIHByb2JsZW0gd2l0aCBzZWFyY2ggdGVtcGxhdGVzIG9uIHVwZ3JhZGUuPC9saT4KICAgPGxpPkFkZHMgY2F0ZWdvcnkgZmllbGQgcmVvcmRlcmluZy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi43LjYgLSBNYXksIDIwMTAKIDx1bD4KICAgPGxpPkZpeGVzIHRvIGNhdGVnb3J5IGZpZWxkIHJlLW9yZGVyaW5nLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjggLSBNYXksIDIwMTAKIDx1bD4KICAgPGxpPkFkZHMgYSB0cnVlIGhpZXJhcmNoeSBtb2RlLjxici8+CiAgICAgICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgd2lsbCBicmVhayBleGlzdGluZyBzaXRlcyB1c2luZyB0aGUgb2xkZXIgaGllcmFyY2h5IHZpZXcuICBZb3Ugc2hvdWxkIHJlYWQgdGhlIGhlbHAgZm9yIGluZm9ybWF0aW9uIGFzIHRvIGhvdyB0byB1c2UgdGhlIG5ldyB2aWV3LjwvbGk+CiAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGFkZCBjdXN0b20gZmllbGRzIHRvIHRoZSBhZG1pbiBzaWRlIHByb2R1Y3QgdGFibGUgdmlldy48L2xpPgogICA8bGk+SW1wcm92ZXMgdGhlIENTViBpbXBvcnQgZnVuY3Rpb24uPC9saT4KICAgPGxpPkFkZHMgYSBuZXcgZGltZW5zaW9uIGRhdGEgZmllbGQuPC9saQogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi44LjEgLSBNYXksIDIwMTAKIDx1bD4KICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcyB0byBhZG1pbiBkaXNwbGF5LjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjguMiAtIE1heSwgMjAxMAogPHVsPgogICA8bGk+Rml4IHRvIGRlZmF1bHQgaGllcmFyY2h5IHRlbXBsYXRlLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjguMiAtIE1heSwgMjAxMAogPHVsPgogICAgPGxpPkFkZHMgc3Vic2NyaXB0aW9uIGZpZWxkIHR5cGUuPC9saT4KICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDxsaT5BZGRlZCBzdXBwb3J0IGZvciBmaWVsZHZhbD0nOjpub3RudWxsOjonIG9uIHRoZSBzdW1tYXJ5IHZpZXcuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuOC4zIC0gSnVseSwgMjAxMAogPHVsPgogICAgPGxpPlJlbW92ZXMgdGhlIHVzZW9sZGhpZXJhcmNoeSBwYXJhbSBmcm9tIHRoZSBoaWVyYXJjaHkgdmlldy48L2xpPgogICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gZmlsdGVyIHRoZSBvdXRwdXQgaW4gdGhlIGNhdGVnb3J5bGlzdCB2aWV3LjwvbGk+CiAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjguNCAtIFNlcHRlbWJlciwgMjAxMAogPHVsPgogICAgPGxpPkFkZHMgYSBwcmVmZXJlbmNlIGZvciB0aGUgZGVmYXVsdCBwYWdlIGxpbWl0IGluIHN1bW1hcnkgbW9kZS48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi44LjUgLSBTZXB0ZW1iZXIsIDIwMTAKIDx1bD4KICAgIDxsaT5BZGRzIHNvcnRpbmcgY2FwYWJpbGl0aWVzIHRvIHRoZSBjYXRlZ29yeWxpc3Qgdmlldy48L2xpPgogICAgPGxpPlJlLXdvcmtzIHRoZSBoaWVyYXJjaHkgdmlldyAoYWdhaW4pLiAgVGVtcGxhdGVzIHdpbGwgbmVlZCB0byBjaGFuZ2UuPC9saT4KICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGV4cGxpY2l0bHkgbGlzdCBoaWVyYXJjaHkgaXRlbXMgaW4gdGhlIGhpZXJhcmNoeSB2aWV3LjwvbGk+CiAgICA8bGk+QWRkcyBjb21tYSBzZXBhcmF0ZWQgaGllcmFyY2h5IGNhcGFiaWxpdHkgdG8gdGhlIGRlZmF1bHQgc3VtbWFyeSB2aWV3LjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjguNiAtIFNlcHRlbWJlciwgMjAxMAogPHVsPgogICA8bGk+Rml4ZXMgdG8gQ1NWIGltcG9ydCBzdHVmZi48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi45IC0gRGVjZW1iZXIsIDIwMTAKIDx1bD4KICAgPGxpPkZpeGVzIHNvbWUgaXNzdWVzIHJlbGF0ZWQgdG8gRV9TVFJJQ1QgYW5kIEVfREVQUkVDQVRFRDwvbGk+CiAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGNvcHkgYXR0cmlidXRlIHNldHMgZnJvbSBhbm90aGVyIHByb2R1Y3QuPC9saT4KICAgPGxpPkZpeGVzIHRvIENTViBpbXBvcnQgc3R1ZmYuPC9saT4KICAgPGxpPkZpeGVzIHRvIGVudGVyaW5nIGEgc2t1IGluIGF0dHJpYnV0ZXMuPC9saT4KICAgPGxpPkFkZHMgaGllcmFyY2h5IGluZm9ybWF0aW9uIHRvIHNlYXJjaCwgc3VtbWFyeSBhbmQgZGV0YWlsIHZpZXdzLjwvbGk+IAogICA8bGk+Rml4ZXMgYW4gaXNzdWUgd2l0aCBwYWdpbmF0aW9uIGluIHRoZSBhZG1pbiBwYW5lbCBwcm9kdWN0cyB0YWIuPC9saT4KICAgPGxpPkZpeGVzIGFuIGlzc3VlIHdpdGggcGFnZSBjb3VudHMgaW4gdGhlIHByb2R1Y3RzIHRhYiB3aGVuIGEgY3VzdG9tIGZpZWxkIGlzIGFkZGVkIHRvIHRoZSB2aWV3IGxpc3QuPC9saT4KICAgPGxpPk1hbnkgbW9yZSBidWcgZml4ZXMgYW5kIG1pbm9yIGltcHJvdmVtZW50cy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xMC4yIC0gSmFudWFyeSwgMjAxMQogPHVsPgogICA8bGk+QWRkcyBjYW5vbmljYWwgVVJMIHRvIHRoZSBoaWVyYXJjaHkgaXRlbSwgaW4gdGhlIGhpZXJhcmNoeSB2aWV3LjwvbGk+CiAgIDxsaT5BZGRzIHRoZSBwcm9kdWN0bGlzdCBwYXJhbWV0ZXIgdG8gb3V0cHV0IGEgc3VtbWFyeSB2aWV3IG9mIHNwZWNpZmljIHByb2R1Y3RzLiAgRG9lcyBub3QgcHJvdmlkZSBwYWdpbmF0aW9uIG9yIHNvcnRpbmcuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTAuMyAtIEZlYnJ1YXJ5LCAyMDExCiA8dWw+CiAgIDxsaT5GaXhlcyBidWcgd2l0aCBkZWZhdWx0IHZpZXcuLi4uIHRoYW5rcyBzdGlra2k8L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xMC40IC0gTWF5LCAyMDExCiA8dWw+CiAgIDxsaT5NaW5vciBmaXggdG8gdGhlIHVuaW5zdGFsbGVyLjwvbGk+CiAgIDxsaT5BZGRzIHRoZSBjYXRlZ29yeWZpZWxkIHBhcmFtZXRlciB0byB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbi48L2xpPgogICA8bGk+Rml4ZXMgYSBwcm9ibGVtIHdpdGggY2F0ZWdvcnkgZmllbGRzIHdoZW4gY29weWluZyBhIGNhdGVnb3J5LjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEwLjUgLSBNYXksIDIwMTEKIDx1bD4KICAgPGxpPk1pbm9yZXMgZml4IHRvIGNhdGVvZ3J5IGZpZWxkcy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xMSAtIE1heSwgMjAxMQogIDx1bD4KICAgIDxsaT5BZGRzIHRoZSAmcXVvdDtleGNsdWRlY2F0JnF1b3Q7IHBhcmFtZXRlci48L2xpPgogICAgPGxpPlJlbW92ZXMgc29tZSBlcnJhbnQgZGVidWcgc3RhdGVtZW50cyBpbiB0aGUgY2F0ZWdvcnlsaXN0IHZpZXcuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEyIC0gTWF5LCAyMDExCiAgPHVsPgogICAgPGxpPlRoZXJlIGlzIG5vdyBhbiBvcHRpb24gdG8gbWFrZSBzdXJlIHRoYXQgdGhlIFNLVSBpcyByZXF1aXJlZCB3aGVuIGFkZGluZy9lZGl0aW5nIHByb2R1Y3RzL2F0dHJpYnV0ZXMuPC9saT4KICAgIDxsaT5UaGUgaW1hZ2UgdGh1bWJuYWlsLCBwcmV2aWV3LCBhbmQgd2F0ZXJtYXJraW5nIHN0dWZmIGlzIG5vdyBERVBSRUNBVEVELjwvbGk+CiAgICA8bGk+QWRkZWQgdGhlIGF0dHJpYnNfZnVsbCBzdHVmZiBpbnRvIHRoZSBkZXRhaWwgYW5kIHN1bW1hcnkgdmlld3MuICAgdGhlIGF0dHJpYnV0ZXMgbWVtYmVyIG9mIG91dHB1dCBvYmplY3RzIGlzIGRlcHJlY2F0ZWQuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEyLjEgLSBNYXksIDIwMTEKICA8dWw+CiAgICA8bGk+QWRkcyBjYWNoaW5nIGZvciBmaWVsZCBkZWZpbml0aW9ucy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTMgLSBKdWx5LCAyMDExCiAgPHVsPgogICA8bGk+QWRkcyBidWxrIGFjdGlvbnMgaW4gdGhlIHByb2R1Y3QgbGlzdC48L2xpPgogICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBleGNsdWRlIHByb2R1Y3RzIGluIGNlcnRhaW4gY2F0ZWdvcmllcyBmcm9tIHRoZSBwcm9kdWN0IGxpc3QuPC9saT4KICAgPGxpPk51bWVyb3VzIG1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTMuMSAtIEp1bHksIDIwMTEKICA8dWw+CiAgIDxsaT5CdWcgRml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEzLjIgLSBKdWx5LCAyMDExCiAgPHVsPgogICA8bGk+QnVnIEZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xMy4zIC0gQXVndXN0LCAyMDExCiAgPHVsPgogICA8bGk+QnVnIEZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xNCAtIEF1Z3VzdCwgMjAxMQogIDx1bD4KICAgPGxpPkFkZHMgZnVuY3Rpb25hbGl0eSBmb3IgZHluYW1pY2FsbHkgcmVvcmdhbml6aW5nIHRoZSBoaWVyYXJjaHkgdHJlZS48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTUgLSBBdWd1c3QsIDIwMTEKICA8dWw+CiAgICA8bGk+QWRkcyBhIHNpbXBsZSBxdWFudGl0eS1vbi1oYW5kIGZpZWxkLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xNiAtIEF1Z3VzdCwgMjAxMQogIDx1bD4KICAgIDxsaT5WYXN0bHkgaW1wcm92ZWQgc2VhcmNoIGNhcGFiaWxpdGllcy4gIE5vdGU6IGV4aXN0aW5nIHRlbXBsYXRlcyB3aWxsIG5lZWQgdG8gYmUgdXBkYXRlZCBhcyBmaWVsZCBuYW1lcyBoYXZlIGNoYW5nZWQuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjE3IC0gTWFyY2gsIDIwMTIKICA8dWw+CiAgICA8bGk+TnVtZXJvdXMgYnVnIGZpeGVzLjwvbGk+CiAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBkdXBsaWNhdGUgYSBwcm9kdWN0LjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xOC4yIC0gSnVuZSwgMjAxMgogIDx1bD4KICAgIDxsaT5DcmVhdGVzIGEgbmV3IGZsZXhpYmxlIHF1ZXJ5IGNsYXNzIGFuZCBtYXRjaGluZyByZXN1bHRzZXQgY2xhc3MuPC9saT4KICAgIDxsaT5EcmFtYXRpYyBwZXJmb3JtYW5jZSBpbXByb3ZtZW50IGZvciBzdW1tYXJ5IHZpZXdzLjwvbGk+CiAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBleHBvcnQgcHJvZHVjdCBpbmZvcm1hdGlvbiB0byBjc3YuPC9saT4KICAgIDxsaT5NYW55IGltcHJvdmVtZW50cyB0byBDU1YgaW1wb3J0LjwvbGk+CiAgICA8bGk+QWRkcyBhbiBvcHRpb25hbCBuZXcgZGVmYXVsdCBhY3Rpb24gd2hpY2ggc2hvdWxkIGJlIG11Y2ggZmFzdGVyLiAgT3JpZ2luYWwgZGVmYXVsdCBhY3Rpb24gd2lsbCBiZSByZW1vdmVkIG92ZXIgdGltZS48L2xpPgogICAgPGxpPkhlbHAgaXMgbm93IGluIGl0cyBvd24gZmlsZS48L2xpPgogICAgPGxpPkFkZCB0aGUgJ3BhcmVudHMnIHBhcmFtZXRlciB0byB0aGUgaGllcmFyY2h5IGFjdGlvbi48L2xpPgogICAgPGxpPk51bWVyb3VzIGNhY2hpbmcgb3B0aW1pemF0aW9ucy48L2xpPgogICAgPGxpPk1vcmUgaW5kZXhlcyBvbiB0aGUgcHJvZHVjdHMgdGFibGUgZHVyaW5nIGluc3RhbGwuPC9saT4KICAgIDxsaT5MYW5ndWFnZSBjaGFuZ2UuLi4gaW4gbW9zdCBwbGFjZXMsIHByb2R1Y3RzIGFyZSBub3cgcmVmZXJyZWQgdG8gYXMgJnF1b3Q7aXRlbXMmcXVvdDs8L2xpPgogIDwvdWw+CjwvbGk+CjwvdWw+CjxiciAvPg==]]></about>
	<description><![CDATA[A module for managing a catalog of items, their price, images, etc, and for allowing users to build a cart]]></description>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.24</requiredversion>
	</requires>
	<requires>
	  <requiredname>CGSimpleSmarty</requiredname>
	  <requiredversion>1.4.4</requiredversion>
	</requires>
	<requires>
	  <requiredname>JQueryTools</requiredname>
	  <requiredversion>1.0.11</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+c21hcnR5LT5hc3NpZ24oJ25hbWV0ZXh0JywgJHRoaXMtPkxhbmcoJ25hbWUnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRuYW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICduYW1lJywgJG5hbWUsIDgwLCAyNTUpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLCAnJyk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsIGxhbmcoJ3N1Ym1pdCcpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignY2FuY2VsJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsIGxhbmcoJ2NhbmNlbCcpKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRjYXRlZ29yeS50cGwnKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.addcategoryfield.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2NhdGVnb3JpZXMnKTsKCmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFByb2R1Y3RzJykpCnsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ25lZWRwZXJtaXNzaW9uJywgYXJyYXkoJ01vZGlmeSBQcm9kdWN0cycpKSk7CglyZXR1cm47Cn0KaWYoICFpc3NldCgkcGFyYW1zWydjYXRpZCddKSApCnsKICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nKSk7CiAgcmV0dXJuOwp9CgojCiMgSW5pdGlhbGl6YXRpb24KIwokY29uZmlnID0gJGdDbXMtPkdldENvbmZpZygpOwokY2F0aWQgPSAoaW50KSRwYXJhbXNbJ2NhdGlkJ107CiRmaWVsZHR5cGUgPSAndGV4dGJveCc7CiRmaWVsZG5hbWUgPSAnJzsKJGZpZWxkcHJvbXB0ID0gJyc7CiRmaWVsZHZhbHVlID0gJyc7CiRlZGl0aW5nID0gMDsKJG9sZF9maWVsZG5hbWUgPSAnJzsKaWYoIGlzc2V0KCRwYXJhbXNbJ2ZsZG5hbWUnXSkgKQp7CiAgJGZpZWxkbmFtZSA9IHRyaW0oJHBhcmFtc1snZmxkbmFtZSddKTsKICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcyAKICAgICAgICAgICAgIFdIRVJFIGNhdGVnb3J5X2lkID0gPyBBTkQgZmllbGRfbmFtZSA9ID8nOwogICRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJGNhdGlkLCRmaWVsZG5hbWUpKTsKICAkZmllbGR0eXBlID0gJHJvd1snZmllbGRfdHlwZSddOwogICRmaWVsZHByb21wdCA9ICRyb3dbJ2ZpZWxkX3Byb21wdCddOwogICRmaWVsZHZhbHVlID0gJHJvd1snZmllbGRfdmFsdWUnXTsKICAkb2xkX2ZpZWxkbmFtZSA9ICRmaWVsZG5hbWU7CiAgJGVkaXRpbmcgPSAxOwp9CgojCiMgR2V0IFBhcmFtZXRlciBWYWx1cwojCmlmKCBpc3NldCgkcGFyYW1zWydpbnB1dF9maWVsZHR5cGUnXSkgKQogIHsKICAgICRmaWVsZHR5cGUgPSAkcGFyYW1zWydpbnB1dF9maWVsZHR5cGUnXTsKICB9CmlmKCBpc3NldCgkcGFyYW1zWydpbnB1dF9maWVsZG5hbWUnXSkgKQogIHsKICAgICRmaWVsZG5hbWUgPSBtdW5nZV9zdHJpbmdfdG9fdXJsKCRwYXJhbXNbJ2lucHV0X2ZpZWxkbmFtZSddKTsKICB9CmlmKCBpc3NldCgkcGFyYW1zWydpbnB1dF9maWVsZHByb21wdCddKSApCiAgewogICAgJGZpZWxkcHJvbXB0ID0gJHBhcmFtc1snaW5wdXRfZmllbGRwcm9tcHQnXTsKICB9CmlmKCBpc3NldCgkcGFyYW1zWydpbnB1dF9maWVsZHZhbHVlJ10pICkKICB7CiAgICAkZmllbGR2YWx1ZSA9ICRwYXJhbXNbJ2lucHV0X2ZpZWxkdmFsdWUnXTsKICB9CmlmKCBpc3NldCgkcGFyYW1zWydpbnB1dF9lZGl0aW5nJ10pICkKICB7CiAgICAkZWRpdGluZyA9IChpbnQpJHBhcmFtc1snaW5wdXRfZWRpdGluZyddOwogIH0KCiMgR2V0IHRoZSBjYXRlZ29yeSBkYXRhCiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyBXSEVSRSBpZCA9ID8nOwokY2F0ZWdvcnkgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJGNhdGlkKSk7CiRzbWFydHktPmFzc2lnbignY2F0ZWdvcnknLCRjYXRlZ29yeSk7CgppZiggaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pICkKICB7CiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCdlZGl0Y2F0ZWdvcnlmaWVsZHMnLCRyZXR1cm5pZCwKCQkgICAgYXJyYXkoJ2NhdGlkJz0+JGNhdGlkKSk7CiAgfQplbHNlIGlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKQogIHsKICAgIC8vCiAgICAvLyBWYWxpZGF0ZSBGb3JtIElucHV0CiAgICAvLwogICAgCiAgICAvLyBOYW1lIGNhbiBiZSBlbXB0eSAod2UnbGwgZ2VuZXJhdGUgb25lKQogICAgaWYoIGVtcHR5KCRmaWVsZG5hbWUpICkKICAgICAgewoJJHF1ZXJ5ID0gJ1NFTEVDVCBDT1VOVChjYXRlZ29yeV9pZCkrMSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcnlfZmllbGRzCiAgICAgICAgICAgICAgICAgICBXSEVSRSBjYXRlZ29yeV9pZCA9ID8nOwoJJGZpZWxkbmFtZSA9ICdmaWVsZF8nLiRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkY2F0aWQpKTsKICAgICAgfQoKICAgIC8vIFByb21wdCBjYW4gYmUgZW1wdHkgKHdlJ2xsIHVzZSB0aGUgZmllbGQgbmFtZSkKICAgIGlmKCBlbXB0eSgkZmllbGRwcm9tcHQpICkKICAgICAgewoJJGZpZWxkcHJvbXB0ID0gJGZpZWxkbmFtZTsKICAgICAgfQoKICAgIC8vIHByb2Nlc3MgdXBsb2FkZWQgZmlsZXMKICAgICRlcnJvciA9ICcnOwogICAgc3dpdGNoKCRmaWVsZHR5cGUpCiAgICAgIHsKICAgICAgY2FzZSAnaW1hZ2UnOgoJLy8gaWYgYW4gaW1hZ2UgaGFzIGJlZW4gdXBsb2FkZWQKCS8vIHByb2Nlc3MgaXQKCS8vIG9wdGlvbmFsbHkgZ2VuZXJhdGUgYSB0aHVtYm5haWwKCS8vIGFuZCBzZXQgdGhlIGZpZWxkIHZhbHVlLgoJJGF0dHIgPSAnZGVmYXVsdCc7CglpZiggaXNzZXQoJHBhcmFtc1snaW5wdXRfd2F0ZXJtYXJrJ10pICkKCSAgewoJICAgICRhdHRyID0gJHBhcmFtc1snaW5wdXRfd2F0ZXJtYXJrJ107CgkgIH0KCSRkZXN0ZGlyID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkdGhpcy0+R2V0TmFtZSgpLCdjYXRlZ29yaWVzJywkY2F0aWQpOwoJJHJlcyA9ICR0aGlzLT5IYW5kbGVVcGxvYWRlZEltYWdlKCRpZCwnaW5wdXRfZmlsZScsJGRlc3RkaXIsJGVycm9yLCcnLCRhdHRyKTsKCWlmKCAkcmVzICE9PSBGQUxTRSAmJiAkcmVzICE9PSBUUlVFKQoJICB7CgkgICAgJGZpZWxkdmFsdWUgPSAkcmVzOwoJICB9CglicmVhazsKCiAgICAgIGNhc2UgJ2ZpbGUnOgoJLy8gaWYgYSBmaWxlIGhhcyBiZWVuIHVwbG9hZGVkCgkvLyBwcm9jZXNzIGl0CgkvLyBhbmQgc2V0IHRoZSBmaWVsZCB2YWx1ZQoJJGRlc3RkaXIgPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCR0aGlzLT5HZXROYW1lKCksJ2NhdGVnb3JpZXMnLCRjYXRpZCk7CgljZ2VfZGlyOjpta2RpcnIoJGRlc3RkaXIpOwoJaWYoICFpc19kaXIoJGRlc3RkaXIpICkgZGllKCdkaXJlY3Rvcnkgc3RpbGwgZG9lcyBub3QgZXhpc3QnKTsKCSRoYW5kbGVyID0gbmV3IGNnX2ZpbGV1cGxvYWQoJGlkLCRkZXN0ZGlyKTsKCSRoYW5kbGVyLT5zZXRfYWNjZXB0ZWRfZmlsZXR5cGVzKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd2VkX2ZpbGV0eXBlcycpKTsKCSRyZXMgPSAkaGFuZGxlci0+aGFuZGxlX3VwbG9hZCgnaW5wdXRfZmlsZScpOwoJJGVyciA9ICRoYW5kbGVyLT5nZXRfZXJyb3IoKTsKCWlmKCAhJHJlcyAmJiAkZXJyICE9IGNnX2ZpbGV1cGxvYWQ6Ok5PRklMRSApCgkgIHsKCSAgICAkZXJyb3IgPSBzcHJpbnRmKCIlcyAlczogJXMiLCR0aGlzLT5MYW5nKCdmaWVsZCcpLCdpbnB1dF9maWxlJywKCQkJICAgICAkdGhpcy0+R2V0VXBsb2FkRXJyb3JNZXNzYWdlKCRlcnIpKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgJGZpZWxkdmFsdWUgPSAkcmVzOwoJICB9CglicmVhazsKICAgICAgfQoKICAgIC8vIEF0IHRoaXMgcG9pbnQsIHZhbHVlIGNhbm5vdCBiZSBlbXB0eQogICAgaWYoIGVtcHR5KCRmaWVsZHZhbHVlKSAmJiBlbXB0eSgkZXJyb3IpICkKICAgICAgewoJJGVycm9yID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2ZpZWxkdmFsdWVfZW1wdHknKTsKICAgICAgfQoKICAgIGlmKCAhZW1wdHkoJGVycm9yKSApCiAgICAgIHsKCS8vIEhhbmRsZSBlcnJvcnMuCgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCRlcnJvcik7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJLy8gU3RvcmUgdGhlIGZpZWxkIGRlZmluaXRpb24KCWlmKCAkZWRpdGluZyA9PSAxICkKCSAgewoJICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMKICAgICAgICAgICAgICAgICAgICAgICAgIFNFVCBmaWVsZF9uYW1lID0gPywgZmllbGRfdHlwZSA9ID8sIGZpZWxkX3Byb21wdCA9ID8sIGZpZWxkX3ZhbHVlID0gPwogICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIGNhdGVnb3J5X2lkID0gPyBBTkQgZmllbGRfbmFtZSA9ID8nOwoJICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGZpZWxkbmFtZSwkZmllbGR0eXBlLCRmaWVsZHByb21wdCwKCQkJCSAgICAgICRmaWVsZHZhbHVlLCRjYXRpZCwkb2xkX2ZpZWxkbmFtZSkpOwoJICB9CgllbHNlCgkgIHsKCSAgICAkcXVlcnkgPSAnU0VMRUNUIE1BWChmaWVsZF9vcmRlcikgQVMgbnVtIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMKICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSBjYXRlZ29yeV9pZCA9ID8nOwoJICAgICR0bXAgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJGNhdGlkKSk7CgkgICAgJGZpZWxkb3JkZXIgPSAwOwoJICAgIGlmKCBpc19hcnJheSgkdG1wKSApCgkgICAgICB7CgkJJGZpZWxkb3JkZXIgPSAkdG1wWydudW0nXSsxOwoJICAgICAgfQoJICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcyAKICAgICAgICAgICAgIChjYXRlZ29yeV9pZCwgZmllbGRfdHlwZSwgZmllbGRfbmFtZSwgZmllbGRfcHJvbXB0LCBmaWVsZF92YWx1ZSwgZmllbGRfb3JkZXIpCiAgICAgICAgICAgICBWQUxVRVMgKD8sPyw/LD8sPyw/KSc7CgkgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkY2F0aWQsJGZpZWxkdHlwZSwkZmllbGRuYW1lLCRmaWVsZHByb21wdCwkZmllbGR2YWx1ZSwkZmllbGRvcmRlcikpOwoJICB9CgoJLy8gUmVkaXJlY3QuCgkkdGhpcy0+UmVkaXJlY3QoJGlkLCdlZGl0Y2F0ZWdvcnlmaWVsZHMnLCRyZXR1cm5pZCwKCQkJYXJyYXkoJ2NhdGlkJz0+JGNhdGlkKSk7CiAgICAgIH0KICB9CgojCiMgQ3JlYXRlIHRoZSBmb3JtCiMKJHBhcm1zID0gYXJyYXkoJ2NhdGlkJz0+JGNhdGlkKTsKaWYoICRvbGRfZmllbGRuYW1lICE9ICcnICkKICB7CiAgICAkcGFybXNbJ2ZsZG5hbWUnXSA9ICRvbGRfZmllbGRuYW1lOwogIH0KJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkZGNhdGVnb3J5ZmllbGQnLCRyZXR1cm5pZCwKCQkJCQkJICAgICAkcGFybXMsZmFsc2UsJ3Bvc3QnLCdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKJGZpZWxkdHlwZXMgPSBhcnJheSgpOwokZmllbGR0eXBlc1skdGhpcy0+TGFuZygndGV4dGJveCcpXSA9ICd0ZXh0Ym94JzsKJGZpZWxkdHlwZXNbJHRoaXMtPkxhbmcoJ3RleHRhcmVhJyldID0gJ3RleHRhcmVhJzsKJGZpZWxkdHlwZXNbJHRoaXMtPkxhbmcoJ2ltYWdldGV4dCcpXSA9ICdpbWFnZSc7CiRmaWVsZHR5cGVzWyR0aGlzLT5MYW5nKCdmaWxlJyldID0gJ2ZpbGUnOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2ZpZWxkdHlwZScsCgkJJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdpbnB1dF9maWVsZHR5cGUnLCRmaWVsZHR5cGVzLC0xLCRmaWVsZHR5cGUsCgkJCQkJICAgJ29uQ2hhbmdlPSJ0aGlzLmZvcm0uc3VibWl0KCkiJykpOwokc21hcnR5LT5hc3NpZ24oJ2hpZGRlbjEnLCR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2lucHV0X2VkaXRpbmcnLCRlZGl0aW5nKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfZmllbGRuYW1lJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnaW5wdXRfZmllbGRuYW1lJywkZmllbGRuYW1lLDQwLDI1NSkpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2ZpZWxkcHJvbXB0JywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnaW5wdXRfZmllbGRwcm9tcHQnLCRmaWVsZHByb21wdCw0MCwyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCdmaWVsZHZhbHVlJywkZmllbGR2YWx1ZSk7CiRzbWFydHktPmFzc2lnbignZmllbGR0eXBlJywkZmllbGR0eXBlKTsKc3dpdGNoKCAkZmllbGR0eXBlICkKewogY2FzZSAndGV4dGJveCc6CiAgICRzbWFydHktPmFzc2lnbignaW5wdXRfZmllbGR2YWx1ZScsCgkJICAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2lucHV0X2ZpZWxkdmFsdWUnLCRmaWVsZHZhbHVlLDgwLDI1NSkpOwogICBicmVhazsKCiBjYXNlICd0ZXh0YXJlYSc6CiAgICRzbWFydHktPmFzc2lnbignaW5wdXRfZmllbGR2YWx1ZScsCgkJICAgJHRoaXMtPkNyZWF0ZVRleHRBcmVhKHRydWUsJGlkLCRmaWVsZHZhbHVlLCdpbnB1dF9maWVsZHZhbHVlJykpOwogICBicmVhazsKCiBjYXNlICdpbWFnZSc6CiAgIGlmKCAhZW1wdHkoJGZpZWxkdmFsdWUpICkKICAgICB7CiAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X2hpZGRlbicsJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnaW5wdXRfZmllbGR2YWx1ZScsJGZpZWxkdmFsdWUpKTsKICAgICB9CiAgICRzbWFydHktPmFzc2lnbignZmlsZWxvY2F0aW9uJywndXBsb2Fkcy8nLiR0aGlzLT5HZXROYW1lKCkuJy9jYXRlZ29yaWVzLycuJGNhdGlkKTsKICAgaWYoIGZpbGVfZXhpc3RzKCBjbXNfam9pbl9wYXRoKCAkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwgJHRoaXMtPkdldE5hbWUoKSwgJ2NhdGVnb3JpZXMnLCAkY2F0aWQsICRmaWVsZHZhbHVlKSkgKQogICAgIHsKICAgICAgICRzbWFydHktPmFzc2lnbignZmlsZWV4aXN0cycsMSk7CiAgICAgfQogICBpZiggJHRoaXMtPkdldFByZWZlcmVuY2UoJ2F1dG93YXRlcm1hcmsnKSA9PSAnYWRqdXN0YWJsZScgKQogICAgIHsKICAgICAgICR3bW9wdHMgPSBhcnJheSgpOwogICAgICAgJHdtb3B0c1skdGhpcy0+TGFuZygnbm9uZScpXSA9ICdub25lJzsKICAgICAgICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2RlZmF1bHQnKV0gPSAnZGVmYXVsdCc7CiAgICAgICAkd21vcHRzWyR0aGlzLT5MYW5nKCdhbGlnbl91bCcpXSA9ICcwJzsKICAgICAgICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2FsaWduX3VjJyldID0gJzEnOwogICAgICAgJHdtb3B0c1skdGhpcy0+TGFuZygnYWxpZ25fdXInKV0gPSAnMic7CiAgICAgICAkd21vcHRzWyR0aGlzLT5MYW5nKCdhbGlnbl9tbCcpXSA9ICczJzsKICAgICAgICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2FsaWduX21jJyldID0gJzQnOwogICAgICAgJHdtb3B0c1skdGhpcy0+TGFuZygnYWxpZ25fbXInKV0gPSAnNSc7CiAgICAgICAkd21vcHRzWyR0aGlzLT5MYW5nKCdhbGlnbl9sbCcpXSA9ICc2JzsKICAgICAgICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2FsaWduX2xjJyldID0gJzcnOwogICAgICAgJHdtb3B0c1skdGhpcy0+TGFuZygnYWxpZ25fbHInKV0gPSAnOCc7CgogICAgICAgJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfd2F0ZXJtYXJrbG9jYXRpb24nLAoJCSAgICAgICAkdGhpcy0+TGFuZygnd2F0ZXJtYXJrX2xvY2F0aW9uJykpOwogICAgICAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF93YXRlcm1hcmtsb2NhdGlvbicsCgkJICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnaW5wdXRfd2F0ZXJtYXJrJywkd21vcHRzLC0xLCdkZWZhdWx0JykpOwogICAgIH0KICAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9maWVsZHZhbHVlJywKCQkgICAkdGhpcy0+Q3JlYXRlRmlsZVVwbG9hZElucHV0KCRpZCwnaW5wdXRfZmlsZScsJycsNDApKTsKICAgYnJlYWs7CgogY2FzZSAnZmlsZSc6CiAgIGlmKCAhZW1wdHkoJGZpZWxkdmFsdWUpICkKICAgICB7CiAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X2hpZGRlbicsJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnaW5wdXRfZmllbGR2YWx1ZScsJGZpZWxkdmFsdWUpKTsKICAgICB9CiAgICRzbWFydHktPmFzc2lnbignZmlsZWxvY2F0aW9uJywndXBsb2Fkcy8nLiR0aGlzLT5HZXROYW1lKCkuJy9jYXRlZ29yaWVzLycuJGNhdGlkKTsKICAgaWYoIGZpbGVfZXhpc3RzKCBjbXNfam9pbl9wYXRoKCAkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwgJHRoaXMtPkdldE5hbWUoKSwgJ2NhdGVnb3JpZXMnLCAkY2F0aWQsICRmaWVsZHZhbHVlKSkgKQogICAgIHsKICAgICAgICRzbWFydHktPmFzc2lnbignZmlsZWV4aXN0cycsMSk7CiAgICAgfQogICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X2ZpZWxkdmFsdWUnLAoJCSAgICR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCdpbnB1dF9maWxlJywnJyw0MCkpOwogICBicmVhazsKfQokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnc3VibWl0JywkdGhpcy0+TGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2NhbmNlbCcsJHRoaXMtPkxhbmcoJ2NhbmNlbCcpKSk7CgoKIyBQcm9jZXNzIHRlbXBsYXRlCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRkY2F0ZWdvcnlmaWVsZC50cGwnKTsKCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.addfielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2ZpZWxkZGVmcycpOwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpKQp7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCduZWVkcGVybWlzc2lvbicsIGFycmF5KCdNb2RpZnkgUHJvZHVjdHMnKSkpOwoJcmV0dXJuOwp9CgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKQp7CiAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKfQoKJG5hbWUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ25hbWUnXSkpCnsKCSRuYW1lID0gJHBhcmFtc1snbmFtZSddOwp9CgokcHJvbXB0ID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydwcm9tcHQnXSkpCnsKCSRwcm9tcHQgPSAkcGFyYW1zWydwcm9tcHQnXTsKfQoKJG9wdGlvbnMgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ29wdGlvbnMnXSkpCnsKICAkb3B0aW9ucyA9IHRyaW0oJHBhcmFtc1snb3B0aW9ucyddKTsKfQoKJHR5cGUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ3R5cGUnXSkpCnsKCSR0eXBlID0gJHBhcmFtc1sndHlwZSddOwp9CgokbWF4X2xlbmd0aCA9IDI1NTsKaWYgKGlzc2V0KCRwYXJhbXNbJ21heF9sZW5ndGgnXSkpCnsKICAkbWF4X2xlbmd0aCA9IChpbnQpJHBhcmFtc1snbWF4X2xlbmd0aCddOwp9CgokcHVibGljID0gMTsKaWYoIGlzc2V0KCRwYXJhbXNbJ3B1YmxpYyddKSApCiAgewogICAgJHB1YmxpYyA9IChpbnQpJHBhcmFtc1sncHVibGljJ107CiAgfQoKJHVzZXJpZCA9IGdldF91c2VyaWQoKTsKCmlmIChpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpCnsKICBpZiggJHR5cGUgPT0gJycgKQogICAgewogICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9ub2ZpZWxkdHlwZScpKTsKICAgIH0KICBlbHNlIGlmICgkbmFtZSA9PSAnJykKICAgIHsKICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbm9uYW1lZ2l2ZW4nKSk7CiAgICB9CiAgZWxzZSBpZiggISR0aGlzLT5pc19hbGlhcygkbmFtZSkgKQogICAgewogICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkX25hbWUnKSk7CiAgICB9CiAgZWxzZSBpZiggIWVtcHR5KCRtYXhfbGVuZ3RoKSAmJiAhaXNfbnVtZXJpYygkbWF4X2xlbmd0aCkgKQogICAgewogICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdub3RhbnVtYmVyJykpOwogICAgfQogIGVsc2UgaWYoICR0eXBlID09ICdzdWJzY3JpcHRpb24nICYmICRkYi0+R2V0T25lKCdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBXSEVSRSB0eXBlID0gPycsYXJyYXkoJHR5cGUpKSApCiAgICB7CiAgICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX29uZXN1YnNjcmlwdGlvbmZpZWxkJykpOwogICAgfQogIGVsc2UgaWYoICR0eXBlID09ICdxdWFudGl0eScgJiYgJGRiLT5HZXRPbmUoJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFdIRVJFIHR5cGUgPSA/JyxhcnJheSgkdHlwZSkpICkKICAgIHsKICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3Jfb25lcXVhbnRpdHlmaWVsZCcpKTsKICAgIH0KICBlbHNlCiAgICB7CiAgICAgICRtYXggPSAkZGItPkdldE9uZSgnU0VMRUNUIG1heChpdGVtX29yZGVyKSArIDEgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMnKTsKICAgICAgaWYoICEkbWF4ICkgJG1heCA9IDA7CiAgICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyAobmFtZSwgcHJvbXB0LCB0eXBlLCBtYXhfbGVuZ3RoLCBpdGVtX29yZGVyLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSwgcHVibGljLCBvcHRpb25zKSBWQUxVRVMgKD8sPyw/LD8sPyw/LD8sPyw/KSc7CiAgICAgICRwYXJtcyA9IGFycmF5KCRuYW1lLCAkcHJvbXB0LCAkdHlwZSwgJG1heF9sZW5ndGgsICRtYXgsIAoJCSAgICAgdHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSksICInIiksIAoJCSAgICAgdHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSksICInIiksCgkJICAgICAkcHVibGljLCRvcHRpb25zKTsKICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksICRwYXJtcyApOwogICAgICBpZiggISRkYnIgKSB7CgllY2hvICJERUJVRzogcmVzdWx0ID0gIi4kZGItPkVycm9yTXNnKCkuIjxici8+Jm5ic3A7Jm5ic3A7Ii4kZGItPnNxbC4iPGJyLz4iOyBkaWUoKTsKICAgICAgfQogICAgICAKICAgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICAgIH0KfQoKI0Rpc3BsYXkgdGVtcGxhdGUKJHNtYXJ0eS0+YXNzaWduKCdvcHRpb25zJywkb3B0aW9ucyk7CiRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgCgkJJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkZGZpZWxkZGVmJywgJHJldHVybmlkKSk7CiRzbWFydHktPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0bmFtZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbmFtZScsICRuYW1lLCAzMCwgMjU1KSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRwcm9tcHQnLCR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdwcm9tcHQnLCRwcm9tcHQsNTAsMjU1KSk7CiRzbWFydHktPmFzc2lnbignc2hvd2lucHV0dHlwZScsIHRydWUpOwoKJGFkZHRleHQgPSAib25DaGFuZ2U9J3RoaXMuZm9ybS5zdWJtaXQoKSciOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0dHlwZScsICR0aGlzLT5HZXRUeXBlc0Ryb3Bkb3duKCRpZCwgJ3R5cGUnLCAkdHlwZSwgJGFkZHRleHQsIHRydWUpKTsKJHNtYXJ0eS0+YXNzaWduKCd0eXBlJywkdHlwZSk7CgppZiggJHR5cGUgPT0gJ3RleHRib3gnICkKICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0bWF4bGVuZ3RoJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdtYXhfbGVuZ3RoJywgJG1heF9sZW5ndGgsIDMwLCAyNTUpKTsKICB9Cgokc21hcnR5LT5hc3NpZ24oJ3VzZXJ2aWV3dGV4dCcsJHRoaXMtPkxhbmcoJ3B1YmxpYycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF91c2VydmlldycsCgkJJHRoaXMtPkNyZWF0ZUlucHV0Y2hlY2tib3goJGlkLCAncHVibGljJywgMSwgJHB1YmxpYykpOwoKJHNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLCAnJyk7CiRzbWFydHktPmFzc2lnbignc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsIGxhbmcoJ3N1Ym1pdCcpKSk7CiRzbWFydHktPmFzc2lnbignY2FuY2VsJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsIGxhbmcoJ2NhbmNlbCcpKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRmaWVsZGRlZi50cGwnKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.addproduct.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYigncHJvZHVjdHMnKTsKCi8vCi8vIEEgdXRpbGl0eSBmdW5jdGlvbgovLwpmdW5jdGlvbiBnZXRfZmllbGRfZGVmKCYkZmllbGRkZWZzLCRpZCkKewogIGZvcmVhY2goICRmaWVsZGRlZnMgYXMgJG9uZWRlZiApCiAgICB7CiAgICAgIGlmKCAkb25lZGVmLT5pZCA9PSAkaWQgKQoJewoJICByZXR1cm4gJG9uZWRlZjsKCX0KICAgIH0KICByZXR1cm4gZmFsc2U7Cn0KCgppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpKQogIHsKICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ25lZWRwZXJtaXNzaW9uJywgYXJyYXkoJ01vZGlmeSBQcm9kdWN0cycpKSk7CiAgICByZXR1cm47CiAgfQoKaWYgKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSkKICB7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogIH0KCiRwcm9kdWN0X25hbWUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ3Byb2R1Y3RfbmFtZSddKSkKICB7CiAgICAkcHJvZHVjdF9uYW1lID0gJHBhcmFtc1sncHJvZHVjdF9uYW1lJ107CiAgfQoKJHByaWNlID0gMC4wOwppZiAoaXNzZXQoJHBhcmFtc1sncHJpY2UnXSkgKQogIHsKICAgICRwcmljZSA9IChmbG9hdCkkcGFyYW1zWydwcmljZSddOwogIH0KJHdlaWdodCA9IDAuMDsKaWYgKGlzc2V0KCRwYXJhbXNbJ3dlaWdodCddKSApCiAgewogICAgJHdlaWdodCA9IChmbG9hdCkkcGFyYW1zWyd3ZWlnaHQnXTsKICB9CiRza3UgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ3NrdSddKSApCiAgewogICAgJHNrdSA9IHRyaW0oJHBhcmFtc1snc2t1J10pOwogIH0KJGFsaWFzID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydhbGlhcyddKSApCiAgewogICAgJGFsaWFzID0gdHJpbSgkcGFyYW1zWydhbGlhcyddKTsKICB9CgokZGV0YWlscyA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snZGV0YWlscyddKSkKICB7CiAgICAkZGV0YWlscyA9ICRwYXJhbXNbJ2RldGFpbHMnXTsKICB9Cgokc3RhdHVzID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfc3RhdHVzJywncHVibGlzaGVkJyk7CmlmIChpc3NldCgkcGFyYW1zWydzdGF0dXMnXSkpCiAgewogICAgJHN0YXR1cyA9ICRwYXJhbXNbJ3N0YXR1cyddOwogIH0KCiR0YXhhYmxlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfdGF4YWJsZScsMSk7CmlmIChpc3NldCgkcGFyYW1zWyd0YXhhYmxlJ10pKQogIHsKICAgICR0YXhhYmxlID0gMTsKICB9CgokdXNlcmlkID0gZ2V0X3VzZXJpZCgpOwokZmllbGRkZWZzID0gJHRoaXMtPkdldEZpZWxkRGVmcyh0cnVlKTsKCmlmIChpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpCiAgewogICAgJGR1cGxpY2F0ZSA9ICcnOwogICAgJGR1cGxpY2F0ZXNrdSA9ICcnOwogICAgJGR1cGxpY2F0ZWFsaWFzID0gJyc7CiAgICAkZW1wdHlza3UgPSAnJzsKICAgIGlmKCAhZW1wdHkoJHByb2R1Y3RfbmFtZSkgKQogICAgICB7CgkvLyBjaGVjayBmb3IgZHVwbGljYXRlIG5hbWUKCSRxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzCiAgICAgICAgICAgICAgICAgICBXSEVSRSBwcm9kdWN0X25hbWUgPSA/JzsKCSRkdXBsaWNhdGUgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHByb2R1Y3RfbmFtZSkpOwogICAgICB9CgogICAgLy8gY2hlY2sgZm9yIGVtcHR5IGFsaWFzCiAgICBpZiggZW1wdHkoJGFsaWFzKSApCiAgICAgIHsKCSRhbGlhcyA9IHByb2R1Y3Rfb3BzOjpnZW5lcmF0ZV9hbGlhcygkcHJvZHVjdF9uYW1lKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkYWxpYXMgPSBtdW5nZV9zdHJpbmdfdG9fdXJsKCRhbGlhcyk7CiAgICAgIH0KCiAgICAvLyBjaGVjayBmb3IgZHVwbGljYXRlIGFsaWFzCiAgICBpZiggcHJvZHVjdF9vcHM6OmNoZWNrX2FsaWFzX3VzZWQoJGFsaWFzKSApCiAgICAgIHsKCSRkdXBsaWNhdGVhbGlhcyA9ICRhbGlhczsKICAgICAgfQoKICAgIGlmKCBlbXB0eSgkc2t1KSAmJiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc2t1cmVxdWlyZWQnLDApICkKICAgICAgewoJJGVtcHR5c2t1ID0gMTsKICAgICAgfQoKICAgIGlmKCAhJGR1cGxpY2F0ZSAmJiAhZW1wdHkoJHNrdSkgKQogICAgICB7CgkvLyBjaGVjayBmb3IgZHVwbGljYXRlIHNrdQoJaWYoIHByb2R1Y3Rfb3BzOjpjaGVja19za3VfdXNlZCgkc2t1KSApCgkgIHsKCSAgICAkZHVwbGljYXRlc2t1ID0gJHNrdTsKCSAgfQogICAgICB9CgogICAgaWYoIGVtcHR5KCRwcm9kdWN0X25hbWUpICkKICAgICAgewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbm9uYW1lZ2l2ZW4nKSk7CiAgICAgIH0KICAgIGVsc2UgaWYoICRlbXB0eXNrdSApCiAgICAgIHsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX3NrdV9yZXF1aXJlZCcpKTsKICAgICAgfQogICAgZWxzZSBpZiggJGR1cGxpY2F0ZSApCiAgICAgIHsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnKSk7CiAgICAgIH0KICAgIGVsc2UgaWYoICRkdXBsaWNhdGVhbGlhcyApCiAgICAgIHsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX3Byb2R1Y3RfYWxpYXN1c2VkJykpOwogICAgICB9CiAgICBlbHNlIGlmKCAkZHVwbGljYXRlc2t1ICkKICAgICAgewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfcHJvZHVjdF9za3V1c2VkJykpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCS8vIGluc2VydCB0aGUgcHJvZHVjdCByZWNvcmQKCSRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzIChwcm9kdWN0X25hbWUsIHByaWNlLCBkZXRhaWxzLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSwgdGF4YWJsZSwgc3RhdHVzLCB3ZWlnaHQsIHNrdSwgYWxpYXMpIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/LD8sPyknOwoJJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwcm9kdWN0X25hbWUsICRwcmljZSwgJGRldGFpbHMsIHRyaW0oJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLCAiJyIpLCB0cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSwgIiciKSwgJHRheGFibGUsICRzdGF0dXMsICR3ZWlnaHQsICRza3UsICRhbGlhcykpOwoJaWYoICEkZGJyICkgCgkgIHsKCSAgICBkaWUoJ0VSUk9SOiAnLiRkYi0+c3FsLic8YnIvPicuJGRiLT5FcnJvck1zZygpKTsKCSAgfQoJJGNpZCA9ICRkYi0+SW5zZXJ0X0lEKCk7CgoJLy8gaW5zZXJ0IHRoZSBwcm9kdG9oaWVyIHJlY29yZAoJJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHRvaGllciAKICAgICAgICAgICAgICAgICAgIChwcm9kdWN0X2lkLGhpZXJhcmNoeV9pZCkKICAgICAgICAgICAgICAgICAgIFZBTFVFUyAoPyw/KSc7CgkkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoICRjaWQsIChpbnQpJHBhcmFtc1snaGllcmFyY2h5J10pICk7CgoJLy8gSGFuZGxlIGN1c3RvbSBmaWVsZHMKCSRlcnJvcnMgPSBhcnJheSgpOwoJaWYgKGlzc2V0KCRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ10pKQoJICB7CgkgICAgZm9yZWFjaCAoJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGQnXSBhcyAkaz0+JHYpCgkgICAgICB7CgkJaWYgKHN0YXJ0c3dpdGgoJGssICdmaWVsZC0nKSkKCQkgIHsKCQkgICAgLy8gZ2V0IHRoZSBmaWVsZCBpbmRleAoJCSAgICAkZmlkID0gc3Vic3RyKCRrLCA2KTsKCgkJICAgIC8vIGdldCB0aGUgZmllbGQgdHlwZQoJCSAgICAkZGVmID0gZ2V0X2ZpZWxkX2RlZigkZmllbGRkZWZzLCRmaWQpOwoJCSAgICBpZiggISRkZWYgKQoJCSAgICAgIHsKCQkJZGllKCdjb3VsZCBub3QgZ2V0IGZpZWxkIGRlZiBmb3IgJy4kZmlkKTsKCQkJY29udGludWU7CgkJICAgICAgfQoKCQkgICAgLy8gaGFuZGxlIHRoZSB1cGxvYWQgKGlmIGFueSkKCQkgICAgc3dpdGNoKCAkZGVmLT50eXBlICkKCQkgICAgICB7CgkJICAgICAgY2FzZSAnZmlsZSc6CgkJCSRkZXN0ZGlyID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkdGhpcy0+R2V0TmFtZSgpLAoJCQkJCQkgJ3Byb2R1Y3RfJy4kY2lkKTsKCQkJY2dlX2Rpcjo6bWtkaXJyKCRkZXN0ZGlyKTsKCQkJaWYoICFpc19kaXIoJGRlc3RkaXIpICkgZGllKCdkaXJlY3Rvcnkgc3RpbGwgZG9lcyBub3QgZXhpc3QnKTsKCQkJJGhhbmRsZXIgPSBuZXcgY2dfZmlsZXVwbG9hZCgkaWQsJGRlc3RkaXIpOwoJCQkkaGFuZGxlci0+c2V0X2FjY2VwdGVkX2ZpbGV0eXBlcygkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dlZF9maWxldHlwZXMnKSk7CgkJCSRyZXMgPSAkaGFuZGxlci0+aGFuZGxlX3VwbG9hZCgnY3VzdG9tZmllbGQnLCcnLCdmaWVsZC0nLiRmaWQpOwoJCQkkZXJyID0gJGhhbmRsZXItPmdldF9lcnJvcigpOwoJCQlpZiggISRyZXMgJiYgJGVyciAhPSBjZ19maWxldXBsb2FkOjpOT0ZJTEUgKQoJCQkgIHsKCQkJICAgICRlcnJvcnNbXSA9IHNwcmludGYoIiVzICVzOiAlcyIsJHRoaXMtPkxhbmcoJ2ZpZWxkJyksJGRlZi0+bmFtZSwKCQkJCQkJJHRoaXMtPkdldFVwbG9hZEVycm9yTWVzc2FnZSgkZXJyKSk7CgkJCSAgfQoJCQllbHNlIGlmKCAhJHJlcyApCgkJCSAgewoJCQkgICAgJHYgPSBudWxsOwoJCQkgIH0KCQkJZWxzZQoJCQkgIHsKCQkJICAgICR2ID0gJHJlczsKCQkJICB9CgkJCWJyZWFrOwoKCQkgICAgICBjYXNlICdpbWFnZSc6CiAgICAgICAgICAgICAgICAgICAgICAgICRhdHRyID0gJ2RlZmF1bHQnOyAvLyB1c2UgZGVmYXVsdCB2YWx1ZSBmb3Igd21sb2NhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICBpZiggaXNzZXQoJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGRfYXR0ciddKSAmJiBpc3NldCgkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZF9hdHRyJ11bJGtdKSApCiAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGF0dHIgPSAkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZF9hdHRyJ11bJGtdOwogICAgICAgICAgICAgICAgICAgICAgICAgIH0KCQkgICAgICAgICRkZXN0ZGlyID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkdGhpcy0+R2V0TmFtZSgpLAoJCQkJCSAgICAgICAncHJvZHVjdF8nLiRjaWQpOwogICAgICAgICAgICAgICAgICAgICAgICAkcmVzID0gJHRoaXMtPkhhbmRsZVVwbG9hZGVkSW1hZ2UoJGlkLCdjdXN0b21maWVsZCcsJGRlc3RkaXIsJGVycm9ycywnZmllbGQtJy4kZmlkLCRhdHRyKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICRyZXMgPT09IEZBTFNFICkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICR2ID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKCAkcmVzID09PSBUUlVFICkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgIHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgJHYgPSAkcmVzOwogICAgICAgICAgICAgICAgICAgICAgICB9CgkJCWJyZWFrOwoKCQkgICAgICBjYXNlICdxdWFudGl0eSc6CgkJCSR2ID0gKGludCkkdjsKCQkJJHYgPSBtYXgoMCwkdik7CgkJCWJyZWFrOwoKCQkgICAgICBjYXNlICdzdWJzY3JpcHRpb24nOgoJCSAgICAgIGNhc2UgJ2RpbWVuc2lvbnMnOgoJCQlpZiggaXNfYXJyYXkoJHYpICkKCQkJICB7CgkJCSAgICAkdiA9IHNlcmlhbGl6ZSgkdik7CgkJCSAgfQoJCQlicmVhazsKCQkJCgkJCQoJCSAgICAgIGNhc2UgJ3RleHRib3gnOgoJCSAgICAgIGNhc2UgJ2NoZWNrYm94JzoKCQkgICAgICBjYXNlICd0ZXh0YXJlYSc6CgkJICAgICAgY2FzZSAnZHJvcGRvd24nOgoJCQlicmVhazsKCgkJICAgICAgZGVmYXVsdDoKCQkJZGllKCJ1bmtub3duIHR5cGU6ICIuJGRlZi0+dHlwZSk7CgkJCWJyZWFrOwoJCSAgICAgIH0KCgkJICAgIC8vIGNvbW1pdCBpdC4KCQkgICAgaWYoICFpc19udWxsKCR2KSAmJiAkdiAhPT0gJycgKQoJCSAgICAgIHsKCQkJJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIChwcm9kdWN0X2lkLCBmaWVsZGRlZl9pZCwgdmFsdWUsIGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlKSBWQUxVRVMgKD8sPyw/LD8sPyknOwoJCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY2lkLCAkZmlkLCAkdiwgdHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSksICInIiksIHRyaW0oJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLCAiJyIpKSk7CgkJICAgICAgfQoJCSAgfQoJICAgICAgfQoJICB9CgoJLy8gaGFuZGxlIGNhdGVnb3J5IHN0dWZmCglpZiAoaXNzZXQoJHBhcmFtc1snY2F0ZWdvcmllcyddKSkKCSAgewoJICAgIGZvcmVhY2ggKCRwYXJhbXNbJ2NhdGVnb3JpZXMnXSBhcyAkdikKCSAgICAgIHsKCQkgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzIChwcm9kdWN0X2lkLCBjYXRlZ29yeV9pZCwgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUpIFZBTFVFUyAoPyw/LD8sPyknOwoJCSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY2lkLCAkdiwgdHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSksICInIiksIHRyaW0oJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLCAiJyIpKSk7CgkgICAgICB9CgkgIH0KCQkKCS8vVXBkYXRlIHNlYXJjaCBpbmRleAoJJG1vZHVsZSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnU2VhcmNoJyk7CglpZiAoJG1vZHVsZSAhPSBGQUxTRSkKCSAgewoJICAgIGlmKCAkc3RhdHVzID09ICdwdWJsaXNoZWQnICkKCSAgICAgIHsKCQkkbW9kdWxlLT5BZGRXb3JkcygkdGhpcy0+R2V0TmFtZSgpLCAkY2lkLCAncHJvZHVjdCcsIAoJCQkJICBpbXBsb2RlKCcgJywgJHRoaXMtPkdldFNlYXJjaGFibGVUZXh0KCRjaWQpICkpOwoJICAgICAgfQoJICB9CgoJLy8gaWYgdGhlcmUgd2VyZSBlcnJvcnMKCS8vIGRpc3BsYXkgdGhlbQoJLy8gYW5kIGEgcmV0dXJuIGxpbmsKCS8vIGNvdWxkIHVzZSBhIHRlbXBsYXRlIGhlcmUsIGJ1dCBmdWcgaXQgZm9yIG5vdy4KCWlmKCBjb3VudCgkZXJyb3JzKSApCgkgIHsKCSAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRlcnJvcnMpOwogICAgICAgICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdpbmZvX2ZpZWxkcHJvYmxlbXMnKSk7CiAgICAgICAgICAgIHJldHVybjsKCSAgfQogICAgICAgIGVsc2UKICAgICAgICAgIHsKICAJICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgICAgICAgICB9CiAgICAgIH0gLy8gaW5zZXJ0IHRoZSBwcm9kdWN0IHJlY29yZAogIH0KCiRmaWVsZGFycmF5ID0gYXJyYXkoKTsKaWYgKGNvdW50KCRmaWVsZGRlZnMpID4gMCkKICB7CiAgICAkc3Vic2NyaWJlX29wdHMgPSBhcnJheSgpOwogICAgJHN1YnNjcmliZV9vcHRzWy0xXSA9ICR0aGlzLT5MYW5nKCdub25lJyk7CiAgICAkc3Vic2NyaWJlX29wdHNbJ21vbnRobHknXSA9ICR0aGlzLT5MYW5nKCdzdWJzY3JfbW9udGhseScpOwogICAgJHN1YnNjcmliZV9vcHRzWydxdWFydGVybHknXSA9ICR0aGlzLT5MYW5nKCdzdWJzY3JfcXVhcnRlcmx5Jyk7CiAgICAkc3Vic2NyaWJlX29wdHNbJ3NlbWlhbnVhbGx5J10gPSAkdGhpcy0+TGFuZygnc3Vic2NyX3NlbWlhbnVhbGx5Jyk7CiAgICAkc3Vic2NyaWJlX29wdHNbJ3llYXJseSddID0gJHRoaXMtPkxhbmcoJ3N1YnNjcl95ZWFybHknKTsKICAgICRzdWJzY3JpYmVfb3B0cyA9IGFycmF5X2ZsaXAoJHN1YnNjcmliZV9vcHRzKTsKCiAgICAkZXhwaXJlX29wdHMgPSBhcnJheSgpOwogICAgJGV4cGlyZV9vcHRzWyR0aGlzLT5MYW5nKCdub25lJyldID0gLTE7CiAgICAkZXhwaXJlX29wdHNbJHRoaXMtPkxhbmcoJ2V4cGlyZV9zaXhfbW9udGhzJyldID0gJzYnOwogICAgJGV4cGlyZV9vcHRzWyR0aGlzLT5MYW5nKCdleHBpcmVfb25lX3llYXInKV0gPSAnMTInOwogICAgJGV4cGlyZV9vcHRzWyR0aGlzLT5MYW5nKCdleHBpcmVfdHdvX3llYXInKV0gPSAnMjQnOwoKICAgICR3bW9wdHMgPSBhcnJheSgpOwogICAgJHdtb3B0c1skdGhpcy0+TGFuZygnbm9uZScpXSA9ICdub25lJzsKICAgICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2RlZmF1bHQnKV0gPSAnZGVmYXVsdCc7CiAgICAkd21vcHRzWyR0aGlzLT5MYW5nKCdhbGlnbl91bCcpXSA9ICcwJzsKICAgICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2FsaWduX3VjJyldID0gJzEnOwogICAgJHdtb3B0c1skdGhpcy0+TGFuZygnYWxpZ25fdXInKV0gPSAnMic7CiAgICAkd21vcHRzWyR0aGlzLT5MYW5nKCdhbGlnbl9tbCcpXSA9ICczJzsKICAgICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2FsaWduX21jJyldID0gJzQnOwogICAgJHdtb3B0c1skdGhpcy0+TGFuZygnYWxpZ25fbXInKV0gPSAnNSc7CiAgICAkd21vcHRzWyR0aGlzLT5MYW5nKCdhbGlnbl9sbCcpXSA9ICc2JzsKICAgICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2FsaWduX2xjJyldID0gJzcnOwogICAgJHdtb3B0c1skdGhpcy0+TGFuZygnYWxpZ25fbHInKV0gPSAnOCc7CgogICAgZm9yZWFjaCAoJGZpZWxkZGVmcyBhcyAkZmllbGRkZWYpCiAgICAgIHsKCSRmaWVsZCA9IG5ldyBzdGRDbGFzcygpOwoKICAgICAgICAkdmFsdWUgPSAnJzsKICAgICAgICBpZiAoaXNzZXQoJGZpZWxkZGVmLT52YWx1ZSkpCgkgIHsKCSAgICAkdmFsdWUgPSAkZmllbGRkZWYtPnZhbHVlOwoJICB9CgoJaWYgKGlzc2V0KCRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ11bJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZF0pKQoJICAkdmFsdWUgPSAkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddWydmaWVsZC0nLiRmaWVsZGRlZi0+aWRdOwoJJGZpZWxkLT5pZCA9ICRmaWVsZGRlZi0+aWQ7CgkkZmllbGQtPm5hbWUgPSAkZmllbGRkZWYtPm5hbWU7CgkkZmllbGQtPnByb21wdCA9ICRmaWVsZGRlZi0+cHJvbXB0OwoJJGZpZWxkLT50eXBlID0gJGZpZWxkZGVmLT50eXBlOwoJc3dpdGNoICgkZmllbGRkZWYtPnR5cGUpCgkgIHsKCSAgY2FzZSAnZGltZW5zaW9ucyc6CgkgICAgJGZpZWxkLT5wcm9tcHQgLj0gJyZuYnNwOygnLnByb2R1Y3Rfb3BzOjpnZXRfbGVuZ3RoX3VuaXRzKCkuJyknOwoJICAgICRmaWVsZC0+aW5wdXRfYm94ID0gCgkgICAgICAkdGhpcy0+TGFuZygnYWJicl9sZW5ndGgnKS4nOiZuYnNwJy4KCSAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ11bbGVuZ3RoXScsCgkJCQkgICAgICR2YWx1ZSwzLDMpLgoJICAgICAgJHRoaXMtPkxhbmcoJ2FiYnJfd2lkdGgnKS4nOiZuYnNwJy4KCSAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ11bd2lkdGhdJywKCQkJCSAgICAgJHZhbHVlLDMsMykuCgkgICAgICAkdGhpcy0+TGFuZygnYWJicl9oZWlnaHQnKS4nOiZuYnNwJy4KCSAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ11baGVpZ2h0XScsCgkJCQkgICAgICR2YWx1ZSwzLDMpOwoJICAgIGJyZWFrOwoJICBjYXNlICdjaGVja2JveCc6CgkgICAgJGZpZWxkLT5pbnB1dF9ib3ggPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJyAuICRpZCAuICdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nIC4gJyIgdmFsdWU9ImZhbHNlIiAvPicuJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddJywgJ3RydWUnLCAkdmFsdWUgPT0gJ3RydWUnKTsKCSAgICBicmVhazsKCSAgY2FzZSAndGV4dGFyZWEnOgoJICAgICRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkNyZWF0ZVRleHRBcmVhKHRydWUsICRpZCwgJHZhbHVlLCAnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddJyk7CgkgICAgYnJlYWs7CgkgIGNhc2UgJ2Ryb3Bkb3duJzoKCSAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsICRmaWVsZGRlZi0+b3B0aW9ucywgLTEsICR2YWx1ZSApOwoJICAgIGJyZWFrOwoJICBjYXNlICdmaWxlJzoKCSAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCcnLDUwKTsKCSAgICAkZmllbGQtPmhpZGRlbiA9ICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsJycpOwoJICBjYXNlICdpbWFnZSc6CiAgICAgICAgICAgIGlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYXV0b3dhdGVybWFyaycpID09ICdhZGp1c3RhYmxlJyApCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJGZpZWxkLT5hdHRyaWJ1dGUgPSAkdGhpcy0+TGFuZygnd2F0ZXJtYXJrX2xvY2F0aW9uJykuJyZuYnNwOycuCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdjdXN0b21maWVsZF9hdHRyW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsJHdtb3B0cywtMSwnZGVmYXVsdCcpOwogICAgICAgICAgICAgIH0KCSAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCcnLDUwKTsKCSAgICAkZmllbGQtPmhpZGRlbiA9ICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsJycpOwoJICAgIGJyZWFrOwoJICBjYXNlICdzdWJzY3JpcHRpb24nOgoJICAgICRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkxhbmcoJ3N1YnNjcl9wYXlwZXJpb2QnKS4nOiZuYnNwOyc7CgkgICAgJGZpZWxkLT5pbnB1dF9ib3ggLj0gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ11bcGF5cGVyaW9kXScsCgkJCQkJCQkgICAkc3Vic2NyaWJlX29wdHMsIC0xLCAkdmFsdWUpOwoJICAgICRmaWVsZC0+aW5wdXRfYm94IC49ICc8YnIvPicuJHRoaXMtPkxhbmcoJ3N1YnNjcl9kZWxwZXJpb2QnKS4nOiZuYnNwOyc7CgkgICAgJGZpZWxkLT5pbnB1dF9ib3ggLj0gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ11bZGVscGVyaW9kXScsCgkJCQkJCQkgICAkc3Vic2NyaWJlX29wdHMsIC0xLCAkdmFsdWUpOwoJICAgICRmaWVsZC0+aW5wdXRfYm94IC49ICc8YnIvPicuJHRoaXMtPkxhbmcoJ3N1YnNjcl9leHBpcnknKS4nOiZuYnNwOyc7CgkgICAgJGZpZWxkLT5pbnB1dF9ib3ggLj0gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ11bZXhwaXJlXScsCgkJCQkJCQkgICAkZXhwaXJlX29wdHMsIC0xLCAkdmFsdWUpOwoJICAgIGJyZWFrOwoKCSAgY2FzZSAncXVhbnRpdHknOgoJICAgICRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCAkdmFsdWUsIDQsIDQpOwoJICAgIGJyZWFrOwoKCSAgY2FzZSAndGV4dGJveCc6CgkgIGRlZmF1bHQ6CgkgICAgJGZpZWxkLT5pbnB1dF9ib3ggPSAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsICR2YWx1ZSwgMzAsIDI1NSk7CgkgICAgYnJlYWs7CgkgIH0KCSRmaWVsZGFycmF5W10gPSAkZmllbGQ7CiAgICAgIH0KICB9CgokY2F0ZWdvcmllcyA9ICR0aGlzLT5HZXRDYXRlZ29yaWVzKCk7CiRjYXRhcnJheSA9IGFycmF5KCk7CmlmKCBpc19hcnJheSgkY2F0ZWdvcmllcykgJiYgY291bnQoJGNhdGVnb3JpZXMpICkgeyAKICBmb3JlYWNoICgkY2F0ZWdvcmllcyBhcyAkZmllbGRkZWYpIHsKICAgICRjYXRhcnJheVskZmllbGRkZWYtPm5hbWVdID0gJGZpZWxkZGVmLT5pZDsKICB9Cn0KCiNEaXNwbGF5IHRlbXBsYXRlCiRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdhZGRwcm9kdWN0JywgJHJldHVybmlkLCAncG9zdCcsICdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOwokc21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCduYW1ldGV4dCcsICR0aGlzLT5MYW5nKCduYW1lJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0bmFtZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAncHJvZHVjdF9uYW1lJywgJHByb2R1Y3RfbmFtZSwgMzAsIDI1NSkpOwokc21hcnR5LT5hc3NpZ24oJ3ByaWNldGV4dCcsICR0aGlzLT5MYW5nKCdwcmljZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHByaWNlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdwcmljZScsICRwcmljZSwgOCwgMTIpKTsKJHNtYXJ0eS0+YXNzaWduKCdjdXJyZW5jeV9zeW1ib2wnLHByb2R1Y3Rfb3BzOjpnZXRfY3VycmVuY3lfc3ltYm9sKCkpOwokc21hcnR5LT5hc3NpZ24oJ3dlaWdodHRleHQnLCAkdGhpcy0+TGFuZygnd2VpZ2h0JykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0d2VpZ2h0JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd3ZWlnaHQnLCAkd2VpZ2h0LCA4LCAxMikpOwoKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHNrdScsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ3NrdScsJHNrdSwxMCwyNSkpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0YWxpYXMnLCR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdhbGlhcycsJGFsaWFzLDQwLDI1NSkpOwokc21hcnR5LT5hc3NpZ24oJ3dlaWdodHVuaXRzJyxwcm9kdWN0X29wczo6Z2V0X3dlaWdodF91bml0cygpKTsKJHNtYXJ0eS0+YXNzaWduKCdkZXRhaWxzdGV4dCcsICR0aGlzLT5MYW5nKCdkZXRhaWxzJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0ZGV0YWlscycsICR0aGlzLT5DcmVhdGVUZXh0QXJlYSh0cnVlLCAkaWQsICRkZXRhaWxzLCAnZGV0YWlscycsICcnLCAnJywgJycsICcnLCAnODAnLCAnNScpKTsKCmlmKCBjb3VudCgkY2F0YXJyYXkpID4gMCApCiAgewogICAgJG4gPSBjb3VudCgkY2F0YXJyYXkpLzQ7CiAgICAkbiA9IG1pbigkbiwyMCk7CiAgICAkbiA9IG1heCgkbiw1KTsKICAgICRzbWFydHktPmFzc2lnbignaW5wdXRfY2F0ZWdvcmllcycsCgkJICAgICR0aGlzLT5DcmVhdGVJbnB1dFNlbGVjdExpc3QoJGlkLCdjYXRlZ29yaWVzW10nLCRjYXRhcnJheSxhcnJheSgpLCRuKSk7CiAgfQoKJHNtYXJ0eS0+YXNzaWduKCd0YXhhYmxldGV4dCcsJHRoaXMtPkxhbmcoJ3RheGFibGUnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXR0YXhhYmxlJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ3RheGFibGUnLDEsJHRheGFibGUpKTsKCiRoaWVyYXJjaHlfaXRlbXMgPSAkdGhpcy0+QnVpbGRIaWVyYXJjaHlMaXN0KCk7CiRzbWFydHktPmFzc2lnbignaGllcmFyY2h5X2l0ZW1zJywkaGllcmFyY2h5X2l0ZW1zKTsKJHNtYXJ0eS0+YXNzaWduKCdoaWVyYXJjaHlfcG9zJyxpc3NldCgkcGFyYW1zWydoaWVyYXJjaHknXSk/JHBhcmFtc1snaGllcmFyY2h5J106LTEpOwoKJHN0YXR1c2VzID0gYXJyYXkoJHRoaXMtPkxhbmcoJ3B1Ymxpc2hlZCcpPT4ncHVibGlzaGVkJywKCQkgICR0aGlzLT5MYW5nKCdkcmFmdCcpPT4nZHJhZnQnLAoJCSAgJHRoaXMtPkxhbmcoJ2Rpc2FibGVkJyk9PidkaXNhYmxlZCcpOwokc21hcnR5LT5hc3NpZ24oJ3N0YXR1c3RleHQnLCR0aGlzLT5MYW5nKCdzdGF0dXMnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRzdGF0dXMnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnc3RhdHVzJywKCQkJCQkgICAkc3RhdHVzZXMsLTEsJHN0YXR1cykpOwokc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsICcnKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKJHNtYXJ0eS0+YXNzaWduX2J5X3JlZignY3VzdG9tZmllbGRzJywgJGZpZWxkYXJyYXkpOwokc21hcnR5LT5hc3NpZ24oJ2N1c3RvbWZpZWxkc2NvdW50JywgY291bnQoJGZpZWxkYXJyYXkpKTsKCiRzbWFydHktPmFzc2lnbignc3RhcnR0YWJoZWFkZXJzJywkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCkpOwokc21hcnR5LT5hc3NpZ24oJ3RhYmhlYWRlcl9tYWluJywkdGhpcy0+U2V0VGFiSGVhZGVyKCdtYWluJywkdGhpcy0+TGFuZygncHJvZHVjdF9pbmZvJykpKTsKJHNtYXJ0eS0+YXNzaWduKCd0YWJoZWFkZXJfZmllbGRzJywkdGhpcy0+U2V0VGFiSGVhZGVyKCdmaWVsZHMnLCR0aGlzLT5MYW5nKCdmaWVsZHMnKSkpOwokc21hcnR5LT5hc3NpZ24oJ3RhYmhlYWRlcl9hZHZhbmNlZCcsJHRoaXMtPlNldFRhYkhlYWRlcignYWR2YW5jZWQnLCR0aGlzLT5MYW5nKCdhZHZhbmNlZCcpKSk7CiRzbWFydHktPmFzc2lnbignZW5kdGFiaGVhZGVycycsJHRoaXMtPkVuZFRhYkhlYWRlcnMoKSk7CiRzbWFydHktPmFzc2lnbignc3RhcnR0YWJjb250ZW50JywkdGhpcy0+U3RhcnRUYWJDb250ZW50KCkpOwokc21hcnR5LT5hc3NpZ24oJ3RhYl9tYWluJywkdGhpcy0+U3RhcnRUYWIoJ21haW4nKSk7CiRzbWFydHktPmFzc2lnbigndGFiX2ZpZWxkcycsJHRoaXMtPlN0YXJ0VGFiKCdmaWVsZHMnKSk7CiRzbWFydHktPmFzc2lnbigndGFiX2FkdmFuY2VkJywkdGhpcy0+U3RhcnRUYWIoJ2FkdmFuY2VkJykpOwokc21hcnR5LT5hc3NpZ24oJ2VuZHRhYicsJHRoaXMtPkVuZFRhYigpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmR0YWJjb250ZW50JywkdGhpcy0+RW5kVGFiQ29udGVudCgpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdHByb2R1Y3QudHBsJyk7Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.add_attrib_set.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBQcm9kdWN0cyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMgCiMgVmVyc2lvbjogMS4xLjUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQoKTsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSkKICB7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCduZWVkcGVybWlzc2lvbicsIGFycmF5KCdNb2RpZnkgUHJvZHVjdHMnKSkpOwoJcmV0dXJuOwogIH0KaWYoICFpc3NldCgkcGFyYW1zWydjb21waWQnXSkgKQogIHsKICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXJhbScpKTsKICAgIHJldHVybjsKICB9CgppZiggaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pICkKICB7CiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCdlZGl0X2F0dHJpYnNldHMnLCRyZXR1cm5pZCwKCQkJCQlhcnJheSgnY29tcGlkJz0+JHBhcmFtc1snY29tcGlkJ10pKTsKICAgIHJldHVybjsKICB9CgovLyBnZXQgcHJvZHVjdCBpbmZvCiRxID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cyBXSEVSRSBpZCA9ID8nOwokcHJvZHVjdCA9ICRkYi0+R2V0Um93KCRxLGFycmF5KCRwYXJhbXNbJ2NvbXBpZCddKSk7CmlmKCAhJHByb2R1Y3QgKQogIHsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX3Byb2R1Y3Rfbm90Zm91bmQnKSk7CglyZXR1cm47CiAgfQoKLy8gaW5pdGlhbGl6YXRpb24KJHNldF9uYW1lID0gJyc7CiRhdHRyaWJzZXRfdmFsdWVzID0gYXJyYXkoKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2F0dHJzZXRpZCddKSAmJiAhaXNzZXQoJHBhcmFtc1sndmFsdWVfdXBkYXRlJ10pICYmCgkhaXNzZXQoJHBhcmFtc1snc3VibWl0J10pKQogIHsKICAgIC8vIHdlIHdlcmUgcGFzc2VkIGFuIGF0dHJpYnV0ZSBzZXQgaWQKICAgIC8vIGxvYWQgdGhlIHZhbHVlcyBmcm9tIHRoZSBkYXRhYmFzZS4KICAgICRxdWVyeSA9ICdTRUxFQ1QgYXR0cmliX3NldF9uYW1lIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJzZXRzCiAgICAgICAgICAgICAgIFdIRVJFIGF0dHJpYl9zZXRfaWQgPSA/JzsKICAgICRzZXRfbmFtZSA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkcGFyYW1zWydhdHRyc2V0aWQnXSkpOwogICAgaWYoICEkc2V0X25hbWUgKQogICAgICB7CgkJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfZGJlcnJvcicpKTsKCQlyZXR1cm47CiAgICAgIH0KCiAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnV0ZXMgCiAgICAgICAgICAgICAgIFdIRVJFIGF0dHJpYl9zZXRfaWQgPSA/JzsKICAgICR0bXAgPSAkZGItPkdldEFycmF5KCAkcXVlcnksIGFycmF5KCRwYXJhbXNbJ2F0dHJzZXRpZCddKSApOwoJaWYoICR0bXAgKQoJICB7CgkJJGF0dHJpYnNldF92YWx1ZXMgPSBjZ2VfYXJyYXk6OnRvX2hhc2goJHRtcCwnYXR0cmliX3RleHQnKTsKCSAgfQogIH0KCi8vIFByb2Nlc3MgdGhlIGlucHV0CmlmKCBpc3NldCgkcGFyYW1zWydhdHRyaWJ1dGVfbmFtZSddKSApCiAgewogICAgJHNldF9uYW1lID0gdHJpbSgkcGFyYW1zWydhdHRyaWJ1dGVfbmFtZSddKTsKICB9CgoKJGVycm9ycyA9IGFycmF5KCk7CmlmKCBpc3NldCgkcGFyYW1zWydvcHR0ZXh0J10pICYmIGlzc2V0KCRwYXJhbXNbJ29wdHZhbHVlJ10pICYmIAoJaXNzZXQoJHBhcmFtc1snb3B0c2t1J10pIAogICAgJiYgKGNvdW50KCRwYXJhbXNbJ29wdHRleHQnXSkgPT0gY291bnQoJHBhcmFtc1snb3B0dmFsdWUnXSkpICkKICB7CiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkcGFyYW1zWydvcHR0ZXh0J10pOyAkaSsrICkKICAgICAgewoJCSRrID0gdHJpbSgkcGFyYW1zWydvcHR0ZXh0J11bJGldKTsKCQkkdiA9IHRyaW0oJHBhcmFtc1snb3B0dmFsdWUnXVskaV0pOwoJCSRzID0gdHJpbSgkcGFyYW1zWydvcHRza3UnXVskaV0pOwoJCWlmKCBlbXB0eSgkaykgKSBjb250aW51ZTsKCQlpZiggIXByZWdfbWF0Y2goJy9bXCtcLVwqXT9cZCsoXC5cZCspPy8nLCR2KSApCgkJICB7CgkJCSRlcnJvcnNbXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9wcmljZV9hZGp1c3RtZW50Jywkayk7CgkJICB9CgkJaWYoICRzID09ICcnICYmICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdza3VyZXF1aXJlZCcpICkKCQkgIHsKCQkJJGVycm9yc1tdID0gJHRoaXMtPkxhbmcoJ2Vycm9yX3NrdV9yZXF1aXJlZCcpOwoJCSAgfQoJCWVsc2UgaWYoICRzICE9ICcnICYmIHByb2R1Y3Rfb3BzOjpjaGVja19za3VfdXNlZCgkcykgKQoJCSAgewoJCQkkZXJyb3JzW10gPSAkdGhpcy0+TGFuZygnZXJyb3JfcHJvZHVjdF9za3V1c2VkJywkcyk7CgkJICB9CgkJJHRtcCA9IGFycmF5KCdhdHRyaWJfdGV4dCc9PiRrLAoJCQkJCSAnYXR0cmliX2FkanVzdG1lbnQnPT4kdiwKCQkJCQkgJ3NrdSc9PiRzKTsKCQkkYXR0cmlic2V0X3ZhbHVlc1ska10gPSAkdG1wOwogICAgICB9CiAgfQoKLy8gbm93IGNoZWNrIGZvciBkdXBsaWNhdGUgc2t1cwp7CiAgJHRtcCA9IGFycmF5KCk7CiAgZm9yZWFjaCggJGF0dHJpYnNldF92YWx1ZXMgYXMgJGsgPT4gJHJlYyApCgl7CgkgIGlmKCAkcmVjWydza3UnXSA9PSAnJyApIGNvbnRpbnVlOwoJICAkdG1wW10gPSB0cmltKCRyZWNbJ3NrdSddKTsKCX0KICAkdG1wMiA9IGFycmF5X3VuaXF1ZSgkdG1wKTsKICBpZiggY291bnQoJHRtcCkgIT0gY291bnQoJHRtcDIpICkKCXsKCSAgJGVycm9yc1tdID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2R1cGxpY2F0ZV9za3UnKTsKCX0KfQoKLy8gbm93IHNob3cgZXJyb3JzLgppZiggY291bnQoJGVycm9ycykgKQogIHsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJGVycm9ycyk7CiAgfQoKLy8gUHJvY2VzcyB0aGUgc3VibWl0IGJ1dHRvbgppZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICYmICFjb3VudCgkZXJyb3JzKSApCiAgewogICAgLy8gVmFsaWRhdGUgYWxsIHBhcmFtZXRlcnMKICAgIGlmKCBlbXB0eSggJHNldF9uYW1lICkgKQogICAgICB7CgkJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCQlpZiggaXNzZXQoJHBhcmFtc1snYXR0cnNldGlkJ10pICkKCQkgIHsKCQkJLy8gZG9pbmcgYW4gdXBkYXRlCgoJCQkvLyBFbnN1cmUgdGhhdCB0aGUgbmFtZSBpcyB2YWxpZAoJCQkvLyBFbnN1cmUgdGhlcmUgaXMgbm8gc2V0IG5hbWUgdGhhdCBleGlzdHMKCQkJJHF1ZXJ5ID0gJ1NFTEVDVCBhdHRyaWJfc2V0X2lkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJzZXRzIAogICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIGF0dHJpYl9zZXRfbmFtZSA9ID8gCiAgICAgICAgICAgICAgICAgICAgICAgICBBTkQgcHJvZHVjdF9pZCA9ID8KICAgICAgICAgICAgICAgICAgICAgICAgIEFORCBwcm9kdWN0X3NldF9pZCAhPSA/JzsKCQkJJGFzaWQgPSAkZGItPkdldE9uZSgkcXVlcnksCgkJCQkJCQkJYXJyYXkoJHNldF9uYW1lLCRwYXJhbXNbJ2NvbXBpZCddLAoJCQkJCQkJCQkgICRwYXJhbXNbJ2F0dHJzZXRpZCddKSk7CgoJCQlpZiggJGFzaWQgKQoJCQkgIHsKCQkJCS8vIHdlJ3JlIGFkZGluZyBhbmQgdGhlIG5hbWUgYWxyZWFkeSBleGlzdHMKCQkJCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnKSk7CgkJCSAgfQoJCQllbHNlCgkJCSAgewoJCQkJLy8gMS4gIERlbGV0ZSB0aGUgYXR0cmlidXRlIHZhbHVlcwoJCQkJJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcwogICAgICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSBhdHRyaWJfc2V0X2lkID0gPyc7CgkJCQkkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoICRwYXJhbXNbJ2F0dHJzZXRpZCddKSApOwoKCQkJCS8vIDIuICBVcGRhdGUgdGhlIGF0dHJpYnV0ZSByZWNvcmQKCQkJCSRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJzZXRzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VUIGF0dHJpYl9zZXRfbmFtZSA9ID8KICAgICAgICAgICAgICAgICAgICAgICAgICAgV0hFUkUgYXR0cmliX3NldF9pZCA9ID8nOwoJCQkJJGRiLT5FeGVjdXRlKCAkcXVlcnksIGFycmF5KCRzZXRfbmFtZSwkcGFyYW1zWydhdHRyc2V0aWQnXSkgKTsKCgkJCQkvLyAzLiAgSW5zZXJ0IHRoZSBhdHRyaWJ1dGUgdmFsdWVzCgkJCQkkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJ1dGVzCiAgICAgICAgICAgICAgICAgICAgICAgIChhdHRyaWJfc2V0X2lkLGF0dHJpYl90ZXh0LGF0dHJpYl9hZGp1c3RtZW50LHNrdSkKICAgICAgICAgICAgICAgICAgICAgIFZBTFVFUyg/LD8sPyw/KSc7CgkJCQlmb3JlYWNoKCRhdHRyaWJzZXRfdmFsdWVzIGFzICRrZXkgPT4gJHJlYyApCgkJCQkgIHsKCQkJCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSwgCgkJCQkJCQkJCQkJICBhcnJheSgkcGFyYW1zWydhdHRyc2V0aWQnXSwKCQkJCQkJCQkJCQkJCSRrZXksCgkJCQkJCQkJCQkJCQkkcmVjWydhdHRyaWJfYWRqdXN0bWVudCddLAoJCQkJCQkJCQkJCQkJJHJlY1snc2t1J10pKTsKCQkJCQlpZiggISRkYnJlc3VsdCApCgkJCQkJICB7CgkJCQkJCWVjaG8gJGRiLT5FcnJvck1zZygpLic8YnIvPicuJGRiLT5zcWw7ZGllKCk7CgkJCQkJICB9CgkJCQkgIH0KCgkJCQkvLyA0LiAgUmVkaXJlY3QKCQkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsJ2VkaXRfYXR0cmlic2V0cycsJHJldHVybmlkLAoJCQkJCQkJCWFycmF5KCdjb21waWQnPT4kcGFyYW1zWydjb21waWQnXSkpOwoJCQkJcmV0dXJuOwoJCQkgIH0KCQkgIH0KCQllbHNlCgkJICB7CgkJCS8vIGRvaW5nIGFuIGluc2VydAoKCQkJLy8gRW5zdXJlIHRoZXJlIGlzIG5vIHNldCBuYW1lIHRoYXQgZXhpc3RzCgkJCSRxdWVyeSA9ICdTRUxFQ1QgYXR0cmliX3NldF9pZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlic2V0cyBXSEVSRSBhdHRyaWJfc2V0X25hbWUgPSA/IEFORCBwcm9kdWN0X2lkID0gPyc7CgkJCSRhc2lkID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRzZXRfbmFtZSwkcGFyYW1zWydjb21waWQnXSkpOwoJCQlpZiggJGFzaWQgKQoJCQkgIHsKCQkJCS8vIHdlJ3JlIGFkZGluZyBhbmQgdGhlIG5hbWUgYWxyZWFkeSBleGlzdHMKCQkJCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnKSk7CgkJCSAgfQoJCQllbHNlCgkJCSAgewoJCQkJLy8gMS4gQ29tbWl0IHRoZSBuZXcgc2V0CgkJCQkkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJzZXRzCiAgICAgICAgICAgICAgICAgICAgICAgICAocHJvZHVjdF9pZCxhdHRyaWJfc2V0X25hbWUpCiAgICAgICAgICAgICAgICAgICAgICBWQUxVRVMgKD8sPyknOwoJCQkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcXVlcnksIGFycmF5KCRwYXJhbXNbJ2NvbXBpZCddLCRzZXRfbmFtZSkpOwoJCQkJaWYoICEkZGJyZXN1bHQgKQoJCQkJICB7CgkJCQkJZWNobyAkZGItPkVycm9yTXNnKCkuJzxici8+Jy4kZGItPnNxbDtkaWUoKTsKCQkJCSAgfQoJCQkJJGFzaWQgPSAkZGItPkluc2VydF9JRCgpOwoJCQoJCQkJLy8gMi4gQWRkIHRoZSB2YWx1ZXMKCQkJCSRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnV0ZXMKICAgICAgICAgICAgICAgICAgICAgICAgKGF0dHJpYl9zZXRfaWQsYXR0cmliX3RleHQsYXR0cmliX2FkanVzdG1lbnQsc2t1KQogICAgICAgICAgICAgICAgICAgICAgVkFMVUVTKD8sPyw/LD8pJzsKCQkJCWZvcmVhY2goJGF0dHJpYnNldF92YWx1ZXMgYXMgJGsgPT4gJHJlYyApCgkJCQkgIHsKCQkJCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoJGFzaWQsJGssJHJlY1snYXR0cmliX2FkanVzdG1lbnQnXSwkcmVjWydza3UnXSkpOwoJCQkJCWlmKCAhJGRicmVzdWx0ICkKCQkJCQkgIHsKCQkJCQkJZWNobyAkZGItPkVycm9yTXNnKCkuJzxici8+Jy4kZGItPnNxbDtkaWUoKTsKCQkJCQkgIH0KCQkJCSAgfQoKCQkJCS8vIDMuIFJlZGlyZWN0CgkJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCdlZGl0X2F0dHJpYnNldHMnLCRyZXR1cm5pZCwKCQkJCQkJCQlhcnJheSgnY29tcGlkJz0+JHBhcmFtc1snY29tcGlkJ10pKTsKCQkJCXJldHVybjsKCQkJICB9CgkJICB9CiAgICAgIH0KICB9Cgokc21hcnR5LT5hc3NpZ24oJ3Byb2R1Y3QnLCRwcm9kdWN0KTsKJHBhcm1zID0gYXJyYXkoKTsKJHBhcm1zWydjb21waWQnXSA9ICRwYXJhbXNbJ2NvbXBpZCddOwppZiggaXNzZXQoJHBhcmFtc1snYXR0cnNldGlkJ10pICkKICAkcGFybXNbJ2F0dHJzZXRpZCddID0gJHBhcmFtc1snYXR0cnNldGlkJ107CiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdhZGRfYXR0cmliX3NldCcsJHJldHVybmlkLCRwYXJtcykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnc3VibWl0JywkdGhpcy0+TGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2NhbmNlbCcsJHRoaXMtPkxhbmcoJ2NhbmNlbCcpKSk7CiRzbWFydHktPmFzc2lnbignaWR0ZXh0JywkdGhpcy0+TGFuZygnaWQnKSk7CiRzbWFydHktPmFzc2lnbigna2V5dGV4dCcsJHRoaXMtPkxhbmcoJ25hbWUnKSk7CiRzbWFydHktPmFzc2lnbigndmFsdWV0ZXh0JywkdGhpcy0+TGFuZygncHJpY2VfYWRqdXN0bWVudCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbmZvX3ZhbHVldGV4dCcsJHRoaXMtPkxhbmcoJ2luZm9fcHJpY2VfYWRqdXN0bWVudCcpKTsKCiRzbWFydHktPmFzc2lnbigncHJvbXB0X3NldF9uYW1lJywkdGhpcy0+TGFuZygnYXR0cmlidXRlX25hbWUnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfc2V0X25hbWUnLAoJCQkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2F0dHJpYnV0ZV9uYW1lJywkc2V0X25hbWUsNTAsMjU1KSk7CmlmKCBpc3NldCgkYXR0cmlic2V0X3ZhbHVlcykgKQogIHsKICAgICRpID0gMDsKICAgICRzbV9hdHRyaWJzZXQgPSBhcnJheSgpOwogICAgZm9yZWFjaCgkYXR0cmlic2V0X3ZhbHVlcyBhcyAka2V5ID0+ICRyZWMgKQogICAgICB7CgkJJG9iaiA9IG5ldyBTdGRDbGFzcygpOwoJCSRvYmotPmlkeCA9ICRpKzE7CgkJJG9iai0+a2V5ID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ29wdHRleHRbXScsJGtleSw1MCk7CgkJJG9iai0+dmFsdWUgPSAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnb3B0dmFsdWVbXScsJHJlY1snYXR0cmliX2FkanVzdG1lbnQnXSwxMCw1MCk7CgkJJG9iai0+c2t1ID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ29wdHNrdVtdJywkcmVjWydza3UnXSwxMCwyNSk7CgkJJHNtX2F0dHJpYnNldFtdID0gJG9iajsKCQkkaSsrOwogICAgICB9CgoJJG9iaiA9IG5ldyBTdGRDbGFzcygpOwoJJG9iai0+aWR4ID0gJGkrMTsKCSRvYmotPmtleSA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdvcHR0ZXh0W10nLCcnLDUwKTsKCSRvYmotPnZhbHVlID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ29wdHZhbHVlW10nLCcnLDEwLDUwKTsKCSRvYmotPnNrdSA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdvcHRza3VbXScsJycsMTAsMjUpOwoJJHNtX2F0dHJpYnNldFtdID0gJG9iajsKCSRpKys7CgogICAgJHNtYXJ0eS0+YXNzaWduKCd2YWx1ZXMnLCRzbV9hdHRyaWJzZXQpOwogIH0KCi8vIGFkZCBmaWVsZHMgdG8gYWRkIGEgbmV3IHZhbHVlCiRzbWFydHktPmFzc2lnbignaW5wdXRfdXBkYXRlJywKCQkJCSR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3ZhbHVlX3VwZGF0ZScsJHRoaXMtPkxhbmcoJ3VwZGF0ZScpKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkZF9hdHRyaWJfc2V0LnRwbCcpOwoKLy8gRU9GCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_add_hierarchy_item.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSApIGV4aXQ7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdoaWVyYXJjaHknKTsKCmlmKCBpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkgKQogIHsKICAgIC8vIHdlJ3JlIGNhbmNlbGxpbmcKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgfQoKIwojIERlZmF1bHRzCiMKJHBhcmVudCA9IC0xOwokbmFtZSA9ICcnOwokZXh0cmExID0gJyc7CiRleHRyYTIgPSAnJzsKJGRlc2NyaXB0aW9uID0gJyc7CiRpbWFnZSA9ICcnOwoKIyAKIyBmb3JtIGFjdGlvbnMKIwppZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkKICB7CiAgICBpZiggaXNzZXQoJHBhcmFtc1sncGFyZW50J10pICkKICAgICAgewoJJHBhcmVudCA9IChpbnQpJHBhcmFtc1sncGFyZW50J107CiAgICAgIH0KICAgICRuYW1lID0gdHJpbSgkcGFyYW1zWyduYW1lJ10pOwogICAgJGV4dHJhMSA9IHRyaW0oJHBhcmFtc1snZXh0cmExJ10pOwogICAgJGV4dHJhMiA9IHRyaW0oJHBhcmFtc1snZXh0cmEyJ10pOwogICAgJGRlc2NyaXB0aW9uID0gdHJpbSgkcGFyYW1zWydkZXNjcmlwdGlvbiddKTsKICAgICRlcnJvciA9IDA7CiAgICBpZiggZW1wdHkoJG5hbWUpICkKICAgICAgewoJJGVycm9yID0gMTsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX25vbmFtZScpKTsKICAgICAgfQoKICAgIGlmKCAhJGVycm9yICkKICAgICAgewoJJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IFdIRVJFIHBhcmVudF9pZCA9ID8gQU5EIG5hbWUgPSA/JzsKCSR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHBhcmVudCwkbmFtZSkpOwoJaWYoICR0bXAgKQoJICB7CgkgICAgJGVycm9yID0gMTsKCSAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9uYW1ldXNlZCcpKTsKCSAgfQogICAgICB9CgogICAgaWYoICEkZXJyb3IgKQogICAgICB7CgkvLyBIYW5kbGUgZmlsZSB1cGxvYWQKICAgICAgICAkYXR0ciA9ICdkZWZhdWx0JzsKICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1snaW5wdXRfd2F0ZXJtYXJrJ10pICkKICAgICAgICB7CiAgICAgICAgICAgJGF0dHIgPSAkcGFyYW1zWydpbnB1dF93YXRlcm1hcmsnXTsKICAgICAgICB9CiAgICAgICAgJGVycm9ycyA9IGFycmF5KCk7CgkkZGVzdGRpciA9IGNtc19qb2luX3BhdGgoJGdDbXMtPmNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJHRoaXMtPkdldE5hbWUoKSwKCQkJCSAnaGllcmFyY2h5Jyk7CiAgICAgICAgJHJlcyA9ICR0aGlzLT5IYW5kbGVVcGxvYWRlZEltYWdlKCRpZCwnZmlsZScsJGRlc3RkaXIsJGVycm9ycywnJywkYXR0cik7CiAgICAgICAgaWYoICRyZXMgPT09IEZBTFNFICkKCSAgewoJICAgIC8vIGFuIGVycm9yIGVuc3VlZC4KICAgICAgICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZXJyb3JzKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgJGltYWdlID0gJHJlczsKICAgICAgICAgICAgaWYoICRyZXMgPT09IFRSVUUgKSAkaW1hZ2UgPSAnJzsKCgkgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBNQVgoaXRlbV9vcmRlcikrMSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IFdIRVJFIHBhcmVudF9pZCA9ID8nOwoJICAgICRpdGVtX29yZGVyID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRwYXJlbnQpKTsKCSAgICBpZiggISRpdGVtX29yZGVyICkgJGl0ZW1fb3JkZXIgPSAxOwoKCSAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkKICAgICAgICAgICAgICAgICAgICAobmFtZSwgcGFyZW50X2lkLCBkZXNjcmlwdGlvbiwgaW1hZ2UsIGV4dHJhMSwgZXh0cmEyLCBpdGVtX29yZGVyKSBWQUxVRVMoPyw/LD8sPyw/LD8sPyknOwoJICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRuYW1lLCRwYXJlbnQsJGRlc2NyaXB0aW9uLCRpbWFnZSwkZXh0cmExLCRleHRyYTIsJGl0ZW1fb3JkZXIpKTsKCSAgICBpZiggISRkYnIgKSB7IGVjaG8gJGRiLT5zcWwuJzxici8+JzsgZGllKCAkZGItPkVycm9yTXNnKCkgKTsgfQoJICAgICRuZXdfaWQgPSAkZGItPkluc2VydF9JRCgpOwoJICAgICR0aGlzLT5VcGRhdGVIaWVyYXJjaHlQb3NpdGlvbnMoKTsKCSAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoJICB9CiAgICAgIH0KICB9CgojCiMgQnVpbGQgdGhlIGZvcm0KIwokaGllcmFyY2h5X2l0ZW1zID0gJHRoaXMtPkJ1aWxkSGllcmFyY2h5TGlzdCgpOwokc21hcnR5LT5hc3NpZ24oJ2hpZXJhcmNoeV9pdGVtcycsJGhpZXJhcmNoeV9pdGVtcyk7CiRzbWFydHktPmFzc2lnbigncGFyZW50JywkcGFyZW50KTsKJHNtYXJ0eS0+YXNzaWduKCduYW1lJywkbmFtZSk7CiRzbWFydHktPmFzc2lnbignZXh0cmExJywkZXh0cmExKTsKJHNtYXJ0eS0+YXNzaWduKCdleHRyYTInLCRleHRyYTIpOwokc21hcnR5LT5hc3NpZ24oJ2Rlc2NyaXB0aW9uJywkZGVzY3JpcHRpb24pOwokc21hcnR5LT5hc3NpZ24oJ2ltYWdlJywkaW1hZ2UpOwoKaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhdXRvd2F0ZXJtYXJrJykgPT0gJ2FkanVzdGFibGUnICkKewogICR3bW9wdHMgPSBhcnJheSgpOwogICR3bW9wdHNbJHRoaXMtPkxhbmcoJ25vbmUnKV0gPSAnbm9uZSc7CiAgJHdtb3B0c1skdGhpcy0+TGFuZygnZGVmYXVsdCcpXSA9ICdkZWZhdWx0JzsKICAkd21vcHRzWyR0aGlzLT5MYW5nKCdhbGlnbl91bCcpXSA9ICcwJzsKICAkd21vcHRzWyR0aGlzLT5MYW5nKCdhbGlnbl91YycpXSA9ICcxJzsKICAkd21vcHRzWyR0aGlzLT5MYW5nKCdhbGlnbl91cicpXSA9ICcyJzsKICAkd21vcHRzWyR0aGlzLT5MYW5nKCdhbGlnbl9tbCcpXSA9ICczJzsKICAkd21vcHRzWyR0aGlzLT5MYW5nKCdhbGlnbl9tYycpXSA9ICc0JzsKICAkd21vcHRzWyR0aGlzLT5MYW5nKCdhbGlnbl9tcicpXSA9ICc1JzsKICAkd21vcHRzWyR0aGlzLT5MYW5nKCdhbGlnbl9sbCcpXSA9ICc2JzsKICAkd21vcHRzWyR0aGlzLT5MYW5nKCdhbGlnbl9sYycpXSA9ICc3JzsKICAkd21vcHRzWyR0aGlzLT5MYW5nKCdhbGlnbl9scicpXSA9ICc4JzsKICAkc21hcnR5LT5hc3NpZ24oJ3dhdGVybWFya19sb2NhdGlvbicsCiAgICAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2lucHV0X3dhdGVybWFyaycsJHdtb3B0cywtMSwnZGVmYXVsdCcpKTsKfQoKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLAoJCSR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX2FkZF9oaWVyYXJjaHlfaXRlbScsJHJldHVybmlkLAoJCQkJCSAkcGFyYW1zLGZhbHNlLCdwb3N0JywnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fYWRkX2hpZXJhcmNoeV9pdGVtLnRwbCcpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_bulkaction.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSApIGV4aXQ7CgokdGhpcy0+U2V0Q3VycmVudFRhYigncHJvZHVjdHMnKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ211bHRpc2VsZWN0J10pICYmIGlzX2FycmF5KCRwYXJhbXNbJ211bHRpc2VsZWN0J10pICYmIGNvdW50KCRwYXJhbXNbJ211bHRpc2VsZWN0J10pICYmIGlzc2V0KCRwYXJhbXNbJ2J1bGthY3Rpb24nXSkgKQogIHsKICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRwYXJhbXNbJ211bHRpc2VsZWN0J10pOyAkaSsrICkKICAgICAgewoJJHBhcmFtc1snbXVsdGlzZWxlY3QnXVskaV0gPSAoaW50KSRwYXJhbXNbJ211bHRpc2VsZWN0J11bJGldOwogICAgICB9CgogICAgc3dpdGNoKCAkcGFyYW1zWydidWxrYWN0aW9uJ10gKQogICAgICB7CiAgICAgIGNhc2UgJ2RlbGV0ZSc6Cglmb3JlYWNoKCAkcGFyYW1zWydtdWx0aXNlbGVjdCddIGFzICRwcm9kdWN0aWQgKQoJICB7CgkgICAgJHJlcyA9ICR0aGlzLT5EZWxldGVQcm9kdWN0KChpbnQpJHByb2R1Y3RpZCk7CgkgIH0KCWJyZWFrOwogICAgICBjYXNlICdzZXRkcmFmdCc6Cgl7CgkgICRub3cgPSAkZGItPkRiVGltZVN0YW1wKHRpbWUoKSk7CgkgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0cyBTRVQgc3RhdHVzID0gPywgbW9kaWZpZWRfZGF0ZSA9ICRub3cgV0hFUkUgaWQgSU4gKCI7CgkgICRxdWVyeSAuPSBpbXBsb2RlKCcsJywkcGFyYW1zWydtdWx0aXNlbGVjdCddKS4nKSc7CgkgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCdkcmFmdCcpKTsKCX0KCWJyZWFrOwogICAgICBjYXNlICdzZXRwdWJsaXNoZWQnOgoJewoJICAkbm93ID0gJGRiLT5EYlRpbWVTdGFtcCh0aW1lKCkpOwoJICAkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHMgU0VUIHN0YXR1cyA9ID8sIG1vZGlmaWVkX2RhdGUgPSAkbm93IFdIRVJFIGlkIElOICgiOwoJICAkcXVlcnkgLj0gaW1wbG9kZSgnLCcsJHBhcmFtc1snbXVsdGlzZWxlY3QnXSkuJyknOwoJICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgncHVibGlzaGVkJykpOwoJICBpZiggISRkYnIgKSB7IGRlYnVnX2Rpc3BsYXkoJGRiLT5zcWwpOyBkZWJ1Z19kaXNwbGF5KCRkYi0+RXJyb3JNc2coKSk7IGRpZSgpOyB9Cgl9CglicmVhazsKICAgICAgfQogIH0KCiR0aGlzLT5TZXRtZXNzYWdlKCR0aGlzLT5MYW5nKCdvcGVyYXRpb25fY29tcGxldGUnKSk7CiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_copyproduct.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpKSByZXR1cm47CgovLyBpbml0aWFsaXphdGlvbi4KJHNrdV9jbGVhcmVkID0gRkFMU0U7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdQcm9kdWN0cycpOwppZiggIWlzc2V0KCRwYXJhbXNbJ2NvbXBpZCddKSApCiAgewogICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogICAgcmV0dXJuOwogIH0KJGNvbXBpZCA9IChpbnQpJHBhcmFtc1snY29tcGlkJ107CmlmKCAkY29tcGlkIDw9IDAgKQogIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICAgIHJldHVybjsKICB9CiRmaWVsZGRlZnMgPSBwcm9kdWN0X29wczo6Z2V0X2ZpZWxkcygpOwoKLy8KLy8gcmVhZCBhbGwgdGhlIGRhdGEKLy8KJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cyBXSEVSRSBJZCA9ID8nOwokcHJvZHVjdCA9ICRkYi0+R2V0Um93KCRxdWVyeSxhcnJheSgkY29tcGlkKSk7CmlmKCAhaXNfYXJyYXkoJHByb2R1Y3QpICkgCiAgewogICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9wcm9kdWN0bm90Zm91bmQnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogICAgcmV0dXJuOwogIH0KCi8vIGdldCB0aGUgY2F0ZWdvcmllcwokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcyBXSEVSRSBwcm9kdWN0X2lkID0gPyc7CiRwcm9kdWN0X2NhdGVnb3JpZXMgPSAkZGItPkdldEFycmF5KCRxdWVyeSxhcnJheSgkY29tcGlkKSk7CgovLyBnZXQgdGhlIGZpZWxkIHZhbHVlcy4uLgokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyBXSEVSRSBwcm9kdWN0X2lkID0gPyc7CiRwcm9kdWN0X2ZpZWxkdmFscyA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5LGFycmF5KCRjb21waWQpKTsKCi8vIGdldCB0aGUgYXR0cmlidXRlIHNldHMKJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJzZXRzIFdIRVJFIHByb2R1Y3RfaWQgPSA/IE9SREVSIEJZIGF0dHJpYl9zZXRfaWQnOwokYXR0cmlic2V0cyA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5LGFycmF5KCRjb21waWQpKTsKCi8vIGdldCB0aGUgYXR0cmlidXRlcwppZiggaXNfYXJyYXkoJGF0dHJpYnNldHMpICYmIGNvdW50KCRhdHRyaWJzZXRzKSApCiAgewogICAgJGF0dHJpYnV0ZXMgPSBhcnJheSgpOwogICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJ1dGVzIFdIRVJFIGF0dHJpYl9zZXRfaWQgPSA/IE9SREVSIEJZIGF0dHJpYl9pZCc7CiAgICBmb3JlYWNoKCAkYXR0cmlic2V0cyBhcyAkb25lICkKICAgICAgewoJJGF0dHJpYnMgPSAkZGItPkdldEFycmF5KCRxdWVyeSxhcnJheSgkb25lWydhdHRyaWJfc2V0X2lkJ10pKTsKCWlmKCBpc19hcnJheSgkYXR0cmlicykgJiYgY291bnQoJGF0dHJpYnMpICkKCSAgewoJICAgICRhdHRyaWJ1dGVzWyRvbmVbJ2F0dHJpYl9zZXRfaWQnXV0gPSAkYXR0cmliczsKCSAgfQogICAgICB9CiAgfQoKLy8gZ2V0IHRoZSBoaWVyYXJjaHkKJHF1ZXJ5ID0gJ1NFTEVDVCBoaWVyYXJjaHlfaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hpZXIgV0hFUkUgcHJvZHVjdF9pZCA9ID8nOwokaGllcmFyY2h5X2lkID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRjb21waWQpKTsKCi8vCi8vIGFsdGVyIGRhdGEKLy8KaWYoICRwcm9kdWN0WydhbGlhcyddICkKICB7CiAgICAkcHJvZHVjdFsnYWxpYXMnXSA9IHByb2R1Y3Rfb3BzOjpnZW5lcmF0ZV9hbGlhcygkcHJvZHVjdFsncHJvZHVjdF9uYW1lJ10pOwogIH0KCi8vIGdldCBhIG5ldyBuYW1lIGZvciB0aGUgcHJvZHVjdC4KJHByb2R1Y3RbJ3Byb2R1Y3RfbmFtZSddID0gJHRoaXMtPkxhbmcoJ3ByZWZpeF9jb3B5b2YnKS4nICcuJHByb2R1Y3RbJ3Byb2R1Y3RfbmFtZSddOwokc3VmZml4ID0gJyc7CiRxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzIFdIRVJFIHByb2R1Y3RfbmFtZSA9ID8nOwp3aGlsZSggJHN1ZmZpeCA8IDEwMCApCiAgewogICAgJHRuYW1lID0gJHByb2R1Y3RbJ3Byb2R1Y3RfbmFtZSddLiRzdWZmaXg7CiAgICAkdG1wID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCR0bmFtZSkpOwogICAgaWYoICEkdG1wICkKICAgICAgewoJJHByb2R1Y3RbJ3Byb2R1Y3RfbmFtZSddID0gJHRuYW1lOwoJYnJlYWs7CiAgICAgIH0KICAgIGlmKCAhJHN1ZmZpeCApICRzdWZmaXggPSAxOwogICAgJHN1ZmZpeCsrOwogIH0KCi8vIGNsZWFyIHRoZSBza3UgZm9yIHRoZSBwcm9kdWN0CmlmKCAkcHJvZHVjdFsnc2t1J10gKQogIHsKICAgICRza3VfY2xlYXJlZCA9IFRSVUU7CiAgICAkcHJvZHVjdFsnc2t1J10gPSAnJzsKICB9Ci8vIGNsZWFyIHRoZSBza3UncyBmb3IgdGhlIGF0dHJpYnV0ZXMKZm9yZWFjaCggJGF0dHJpYnV0ZXMgYXMgJiRvbmUgKQp7CiAgZm9yZWFjaCggJG9uZSBhcyAmJGF0dHJpYiApCiAgICB7CiAgICAgIGlmKCAkYXR0cmliWydza3UnXSApIAoJewoJICAkc2t1X2NsZWFyZWQgPSBUUlVFOwoJICAkYXR0cmliWydza3UnXSA9ICcnOwoJfQogICAgfQp9CgovLwovLyBzYXZlIGRhdGEKLy8gbm90ZTogdHJhbnNhY3Rpb25zIHdvdWxkIGJlIHJlYWxseSByZWFsbHkgbmljZSBoZXJlLgovLwokcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0cyAKICAgICAgICAgIChwcm9kdWN0X25hbWUsIGRldGFpbHMsIHByaWNlLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSwgdGF4YWJsZSwgc3RhdHVzLCB3ZWlnaHQsIHNrdSwgYWxpYXMpCiAgICAgICAgICBWQUxVRVMgKD8sPyw/LE5PVygpLE5PVygpLD8sPyw/LD8sPykiOwokZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwKCQkgICAgYXJyYXkoJHByb2R1Y3RbJ3Byb2R1Y3RfbmFtZSddLCRwcm9kdWN0WydkZXRhaWxzJ10sJHByb2R1Y3RbJ3ByaWNlJ10sCgkJCSAgJHByb2R1Y3RbJ3RheGFibGUnXSwkcHJvZHVjdFsnc3RhdHVzJ10sJHByb2R1Y3RbJ3dlaWdodCddLCRwcm9kdWN0Wydza3UnXSwkcHJvZHVjdFsnYWxpYXMnXSkpOwppZiggISRkYnIgKQogIHsKICAgIGRlYnVnX2Rpc3BsYXkoJGRiLT5zcWwpOyBkZWJ1Z19kaXNwbGF5KCRkYi0+RXJyb3JNc2coKSk7IGRpZSgpOwogICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9kYmVycm9yJykpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICAgIHJldHVybjsKICB9CiRuZXdfaWQgPSAkZGItPkluc2VydF9JZCgpOwoKaWYoIGlzX2FycmF5KCRwcm9kdWN0X2NhdGVnb3JpZXMpICYmIGNvdW50KCRwcm9kdWN0X2NhdGVnb3JpZXMpICkKICB7CiAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19wcm9kdWN0X2NhdGVnb3JpZXMgCiAgICAgICAgICAgICAgKHByb2R1Y3RfaWQsY2F0ZWdvcnlfaWQsY3JlYXRlX2RhdGUsbW9kaWZpZWRfZGF0ZSkgVkFMVUVTICg/LD8sTk9XKCksTk9XKCkpIjsKICAgIGZvcmVhY2goICRwcm9kdWN0X2NhdGVnb3JpZXMgYXMgJG9uZSApCiAgICAgIHsKCSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJG5ld19pZCwkb25lWydjYXRlZ29yeV9pZCddKSk7CiAgICAgIH0KICB9CgppZiggaXNfYXJyYXkoJHByb2R1Y3RfZmllbGR2YWxzKSAmJiBjb3VudCgkcHJvZHVjdF9maWVsZHZhbHMpICkKICB7CiAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgCiAgICAgICAgICAgICAgKHByb2R1Y3RfaWQsZmllbGRkZWZfaWQsdmFsdWUsY3JlYXRlX2RhdGUsbW9kaWZpZWRfZGF0ZSkKICAgICAgICAgICAgICBWQUxVRVMgKD8sPyw/LE5PVygpLE5PVygpKSI7CiAgICBmb3JlYWNoKCAkcHJvZHVjdF9maWVsZHZhbHMgYXMgJG9uZSApCiAgICAgIHsKCSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJG5ld19pZCwkb25lWydmaWVsZGRlZl9pZCddLCRvbmVbJ3ZhbHVlJ10pKTsKICAgICAgfQogIH0KCmlmKCBpc19hcnJheSgkYXR0cmlic2V0cykgJiYgY291bnQoJGF0dHJpYnNldHMpICkKICB7CiAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJzZXRzCiAgICAgICAgICAgICAgKHByb2R1Y3RfaWQsYXR0cmliX3NldF9uYW1lKQogICAgICAgICAgICAgIFZBTFVFUyAoPyw/KSc7CiAgICBmb3JlYWNoKCAkYXR0cmlic2V0cyBhcyAkb25lICkKICAgICAgewoJJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkbmV3X2lkLCRvbmVbJ2F0dHJpYl9zZXRfbmFtZSddKSk7CgkkbmV3X2F0dHJpYl9pZCA9ICRkYi0+SW5zZXJ0X0lEKCk7CgoJaWYoIGlzc2V0KCRhdHRyaWJ1dGVzWyRvbmVbJ2F0dHJpYl9zZXRfaWQnXV0pICYmIGNvdW50KCRhdHRyaWJ1dGVzWyRvbmVbJ2F0dHJpYl9zZXRfaWQnXV0pICkKCSAgewoJICAgICRxdWVyeTIgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJ1dGVzIAogICAgICAgICAgICAgICAgICAgICAgIChhdHRyaWJfc2V0X2lkLGF0dHJpYl90ZXh0LGF0dHJpYl9hZGp1c3RtZW50LHNrdSkKICAgICAgICAgICAgICAgICAgICAgICBWQUxVRVMgKD8sPyw/LD8pJzsKCSAgICBmb3JlYWNoKCAkYXR0cmlidXRlc1skb25lWydhdHRyaWJfc2V0X2lkJ11dIGFzICRhdHRyaWIgKQoJICAgICAgewoJCSRkYi0+RXhlY3V0ZSgkcXVlcnkyLGFycmF5KCRuZXdfYXR0cmliX2lkLCRhdHRyaWJbJ2F0dHJpYl90ZXh0J10sJGF0dHJpYlsnYXR0cmliX2FkanVzdG1lbnQnXSwkYXR0cmliWydza3UnXSkpOwoJICAgICAgfQoJICB9CiAgICAgIH0KICB9CgppZiggJGhpZXJhcmNoeV9pZCA+IDAgKQogIHsKICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hpZXIgKHByb2R1Y3RfaWQsaGllcmFyY2h5X2lkKSBWQUxVRVMgKD8sPyknOwogICAgJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkbmV3X2lkLCRoaWVyYXJjaHlfaWQpKTsKICB9CgovLwovLyBjb3B5IGZpbGVzLgovLwokc3JjZGlyID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkdGhpcy0+R2V0TmFtZSgpLCdwcm9kdWN0XycuJGNvbXBpZCk7CiRkZXN0ZGlyID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkdGhpcy0+R2V0TmFtZSgpLCdwcm9kdWN0XycuJG5ld19pZCk7CmlmKCBpc19kaXIoJHNyY2RpcikgKQogIHsKICAgICRmaWxlcyA9IGdsb2IoJHNyY2Rpci4nLyonKTsKICAgIGlmKCBpc19hcnJheSgkZmlsZXMpICYmIGNvdW50KCRmaWxlcykgKQogICAgICB7CglAbWtkaXIoJGRlc3RkaXIpOwoJZm9yZWFjaCggJGZpbGVzIGFzICRvbmVmaWxlICkKCSAgewoJICAgICRmbiA9IGJhc2VuYW1lKCRvbmVmaWxlKTsKCSAgICBjb3B5KCRvbmVmaWxlLGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJGZuKSk7CgkgIH0KICAgICAgfQogIH0KCi8vCi8vIGFsbCBkb25lLi4gcmVkaXJlY3QgdG8gZWRpdCBmb3JtCi8vCiR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfcHJvZHVjdGNvcGllZCcpKTsKJHRoaXMtPlJlZGlyZWN0KCRpZCwnZWRpdHByb2R1Y3QnLCcnLGFycmF5KCdjb21waWQnPT4kbmV3X2lkKSk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_copy_attribsets.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBQcm9kdWN0cyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMgCiMgVmVyc2lvbjogMS4xLjUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQoKTsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSkKewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbmVlZHBlcm1pc3Npb24nLCBhcnJheSgnTW9kaWZ5IFByb2R1Y3RzJykpKTsKCXJldHVybjsKfQppZiggIWlzc2V0KCRwYXJhbXNbJ2Rlc3RfY29tcGlkJ10pICkKICB7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nKSk7CglyZXR1cm47CiAgfQplY2hvICR0aGlzLT5TZXRDdXJyZW50VGFiKCdwcm9kdWN0cycpOwoKLy8KLy8gaW5pdGlhbGl6ZQovLwokZGVzdF9jb21waWQgPSAoaW50KSAkcGFyYW1zWydkZXN0X2NvbXBpZCddOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSApCiAgewogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwnZWRpdF9hdHRyaWJzZXRzJywkcmV0dXJuaWQsYXJyYXkoJ2NvbXBpZCc9PiRkZXN0X2NvbXBpZCkpOwogIH0KZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkKICB7CiAgICAkc3JjX2NvbXBpZCA9IChpbnQpJHBhcmFtc1snc3JjX2NvbXBpZCddOwogICAgaWYoICRzcmNfY29tcGlkID09ICRkZXN0X2NvbXBpZCApCiAgICAgIHsKCSR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZF92YWx1ZScpKTsKCSR0aGlzLT5SZWRpcmVjdCgkaWQsJ2VkaXRfYXR0cmlic2V0cycsJHJldHVybmlkLGFycmF5KCdjb21waWQnPT4kZGVzdF9jb21waWQpKTsKICAgICAgfQoKICAgIC8vIGRlbGV0ZSBhbGwgb3VyIGN1cnJlbnQgc3R1ZmYKICAgICRxdWVyeSA9ICdTRUxFQ1QgYXR0cmliX3NldF9pZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlic2V0cyAKICAgICAgICAgICAgICAgV0hFUkUgcHJvZHVjdF9pZCA9ID8gT1JERVIgQlkgYXR0cmliX3NldF9pZCc7CiAgICAkdG1wID0gJGRiLT5HZXRDb2woJHF1ZXJ5LGFycmF5KCRkZXN0X2NvbXBpZCkpOwogICAgaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkKICAgICAgewoJJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcwogICAgICAgICAgICAgICAgICAgV0hFUkUgYXR0cmliX3NldF9pZCBJTiAoJy5pbXBsb2RlKCcsJywkdG1wKS4nKSc7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCgkkcXVlcnkgPSAnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJzZXRzCiAgICAgICAgICAgICAgICAgICBXSEVSRSBwcm9kdWN0X2lkID0gPyc7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRkZXN0X2NvbXBpZCkpOwogICAgICB9CgoKICAgIC8vIGdldCBhbGwgdGhlIHNvdXJjZSBzdHVmZgogICAgJHF1ZXJ5ID0gJ1NFTEVDVCBhdHQuKixhdHMuYXR0cmliX3NldF9uYW1lIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJ1dGVzIGF0dAogICAgICAgICAgICAgIExFRlQgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnNldHMgYXRzCiAgICAgICAgICAgICAgICBPTiBhdHQuYXR0cmliX3NldF9pZCA9IGF0cy5hdHRyaWJfc2V0X2lkCiAgICAgICAgICAgICAgV0hFUkUgYXRzLnByb2R1Y3RfaWQgPSA/CiAgICAgICAgICAgICAgT1JERVIgQlkgYXR0LmF0dHJpYl9pZCc7CiAgICAkdG1wID0gJGRiLT5HZXRBcnJheSgkcXVlcnksYXJyYXkoJHNyY19jb21waWQpKTsKICAgIAogICAgJHByZXZfYXR0cl9zZXRfbmFtZSA9ICcnOwogICAgJGF0dHJpYl9zZXRfaWQgPSAnJzsKICAgIGZvcmVhY2goICR0bXAgYXMgJHJvdyApCiAgICAgIHsKCWlmKCAkcm93WydhdHRyaWJfc2V0X25hbWUnXSAhPSAkcHJldl9hdHRyX3NldF9uYW1lICkKCSAgewoJICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnNldHMgCiAgICAgICAgICAgICAgICAgICAgICAgKHByb2R1Y3RfaWQsYXR0cmliX3NldF9uYW1lKSBWQUxVRVMgKD8sPyknOwoJICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGRlc3RfY29tcGlkLCRyb3dbJ2F0dHJpYl9zZXRfbmFtZSddKSk7CgoJICAgICRhdHRyaWJfc2V0X2lkID0gJGRiLT5JbnNlcnRfSUQoKTsKCSAgfQoKCWlmKCAkYXR0cmliX3NldF9pZCAhPSAnJyApCgkgIHsKCSAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJ1dGVzCiAgICAgICAgICAgICAgICAgICAgICAoYXR0cmliX3NldF9pZCxhdHRyaWJfdGV4dCxhdHRyaWJfYWRqdXN0bWVudCkKICAgICAgICAgICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8pJzsKCSAgfQoJJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkYXR0cmliX3NldF9pZCwkcm93WydhdHRyaWJfdGV4dCddLCRyb3dbJ2F0dHJpYl9hZGp1c3RtZW50J10pKTsKCgkkcHJldl9hdHRyX3NldF9uYW1lID0gJHJvd1snYXR0cmliX3NldF9uYW1lJ107CiAgICAgIH0KCiAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnaW5mb19hdHRyaWJ1dGVzX2NvcGllZCcpKTsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2VkaXRfYXR0cmlic2V0cycsJHJldHVybmlkLGFycmF5KCdjb21waWQnPT4kZGVzdF9jb21waWQpKTsKICB9CgovLwovLyBnaXZlIGV2ZXJ5dGhpbmcgdG8gc21hcnR5Ci8vCiRxdWVyeSA9ICdTRUxFQ1QgaWQscHJvZHVjdF9uYW1lIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cyBPUkRFUiBCWSBtb2RpZmllZF9kYXRlIERFU0MnOwokdG1wID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwoKLy8gcmVtb3ZlIG91ciBjdXJyZW50IGl0ZW0uCiR0bXAyID0gYXJyYXkoKTsKZm9yZWFjaCggJHRtcCBhcyAkcm93ICkKewogICR0bXAyWyRyb3dbJ2lkJ11dID0gJHJvd1sncHJvZHVjdF9uYW1lJ107Cn0KaWYoIGlzc2V0KCR0bXAyWyRkZXN0X2NvbXBpZF0pICkgdW5zZXQoJHRtcDJbJGRlc3RfY29tcGlkXSk7CiRzbWFydHktPmFzc2lnbigncHJvZHVjdF9saXN0JywkdG1wMik7Cgokc21hcnR5LT5hc3NpZ24oJ2Rlc3RfcHJvZHVjdF9uYW1lJywkdGhpcy0+R2V0UHJvZHVjdE5hbWVGcm9tSWQoJGRlc3RfY29tcGlkKSk7CiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9jb3B5X2F0dHJpYnNldHMnLCcnLCRwYXJhbXMpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9jb3B5YXR0cmlic2V0cy50cGwnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_delete_hierarchy_item.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSApIGV4aXQ7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdoaWVyYXJjaHknKTsKaWYoICFpc3NldCgkcGFyYW1zWydoaWVyYXJjaHlfaWQnXSkgKQogIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICB9CiRoaWVyYXJjaHlfaWQgPSAoaW50KSRwYXJhbXNbJ2hpZXJhcmNoeV9pZCddOwoKLy8gR2V0IHRoaXMgaGllcmFyY2h5IGl0ZW0nCiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5CiAgICAgICAgICAgV0hFUkUgaWQgPSA/JzsKJGRhdGEgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJGhpZXJhcmNoeV9pZCkpOwppZiggJGRhdGFbJ2ltYWdlJ10gKQogIHsKICAgICRkZXN0ZGlyID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkdGhpcy0+R2V0TmFtZSgpLAoJCQkgICAgICdoaWVyYXJjaHknKTsKICAgICRmbiA9IGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJGRhdGFbJ2ltYWdlJ10pOwogICAgaWYoIEBmaWxlX2V4aXN0cygkZm4pICkKICAgICAgewoJQHVubGluaygkZm4pOwogICAgICB9CiAgICAkZm4gPSBjbXNfam9pbl9wYXRoKCRkZXN0ZGlyLCd0aHVtYl8nLiRkYXRhWydpbWFnZSddKTsKICAgIGlmKCBAZmlsZV9leGlzdHMoJGZuKSApCiAgICAgIHsKCUB1bmxpbmsoJGZuKTsKICAgICAgfQogICAgJGZuID0gY21zX2pvaW5fcGF0aCgkZGVzdGRpciwncHJldmlld18nLiRkYXRhWydpbWFnZSddKTsKICAgIGlmKCBAZmlsZV9leGlzdHMoJGZuKSApCiAgICAgIHsKCUB1bmxpbmsoJGZuKTsKICAgICAgfQogIH0KCi8vIHJlc2V0IGFsbCBwZWVyIGhpZXJhcmNoaWVzIGl0ZW0gb3JkZXIKJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBTRVQgaXRlbV9vcmRlciA9IGl0ZW1fb3JkZXIgLSAxCiAgICAgICAgICAgV0hFUkUgcGFyZW50X2lkID0gPyBBTkQgaXRlbV9vcmRlciA+ID8nOwokZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkZGF0YVsncGFyZW50X2lkJ10sJGRhdGFbJ2l0ZW1fb3JkZXInXSkpOwoKLy8gUmVzZXQgYWxsIGhpZXJhcmNoaWVzIHVzaW5nIHRoaXMgcGFyZW50IHRvIGhhdmUgbm8gcGFyZW50ICgtMSkKJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBTRVQgcGFyZW50X2lkID0gLTEKICAgICAgICAgICBXSEVSRSBwYXJlbnRfaWQgPSA/JzsKJGRiciA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSggJGhpZXJhcmNoeV9pZCApICk7CgovLyBOb3cgcmVtb3ZlIGl0CiRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBXSEVSRSBpZCA9ID8nOwokZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoICRoaWVyYXJjaHlfaWQgKSApOwoKLy8gQW5kIG5vdyB1cGRhdGUgYW55IHByb2R1Y3RzIHRvIGhhdmUgbm8gY2F0ZWdvcnkKLy8gaWYgdGhleSBoYXZlIHRoaXMgaGllcmFyY2h5X2lkCiRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hpZXIKICAgICAgICAgICBXSEVSRSBoaWVyYXJjaHlfaWQgPSA/JzsKJGRiLT5FeGVjdXRlKCAkcXVlcnksIGFycmF5KCAkaGllcmFyY2h5X2lkICkgKTsKCiR0aGlzLT5VcGRhdGVIaWVyYXJjaHlQb3NpdGlvbnMoKTsKCi8vIGRvbmUKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_edit_hierarchy_item.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSApIGV4aXQ7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdoaWVyYXJjaHknKTsKaWYoICFpc3NldCgkcGFyYW1zWydoaWVyYXJjaHlfaWQnXSkgKQogIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICB9CiRoaWVyYXJjaHlfaWQgPSAoaW50KSRwYXJhbXNbJ2hpZXJhcmNoeV9pZCddOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSApCiAgewogICAgLy8gd2UncmUgY2FuY2VsbGluZwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICB9CgojCiMgRGVmYXVsdHMKIwokcGFyZW50ID0gLTE7CiRuYW1lID0gJyc7CiRleHRyYTEgPSAnJzsKJGV4dHJhMiA9ICcnOwokZGVzY3JpcHRpb24gPSAnJzsKJGRlc3RkaXIgPSBjbXNfam9pbl9wYXRoKCRnQ21zLT5jb25maWdbJ3VwbG9hZHNfcGF0aCddLCR0aGlzLT5HZXROYW1lKCksCgkJCSAnaGllcmFyY2h5Jyk7CgoKIwojIEdldCB0aGUgdmFsdWVzIGZyb20gdGhlIGRhdGFiYXNlCiMKJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkKICAgICAgICAgICBXSEVSRSBpZCA9ID8nOwokcm93ID0gJGRiLT5HZXRSb3coICRxdWVyeSwgYXJyYXkoICRoaWVyYXJjaHlfaWQpICk7CiRwYXJlbnQgPSAkcm93WydwYXJlbnRfaWQnXTsKJG5hbWUgPSAkcm93WyduYW1lJ107CiRleHRyYTEgPSAkcm93WydleHRyYTEnXTsKJGV4dHJhMiA9ICRyb3dbJ2V4dHJhMiddOwokaW1hZ2UgPSAkcm93WydpbWFnZSddOwokZGVzY3JpcHRpb24gPSAkcm93WydkZXNjcmlwdGlvbiddOwoKIwojIEZvcm0gQWN0aW9uCmlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKQogIHsKICAgICRlcnJvciA9IDA7CiAgICAkbmFtZSA9IHRyaW0oJHBhcmFtc1snbmFtZSddKTsKICAgICRleHRyYTEgPSB0cmltKCRwYXJhbXNbJ2V4dHJhMSddKTsKICAgICRleHRyYTIgPSB0cmltKCRwYXJhbXNbJ2V4dHJhMiddKTsKICAgICRwYXJlbnQgPSAoaW50KSRwYXJhbXNbJ3BhcmVudCddOwogICAgJGRlc2NyaXB0aW9uID0gdHJpbSgkcGFyYW1zWydkZXNjcmlwdGlvbiddKTsKCiAgICBpZiggJHBhcmVudCA9PSAkcGFyYW1zWydoaWVyYXJjaHlfaWQnXSApCiAgICAgIHsKCSRlcnJvciA9IDE7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkcGFyZW50JykpOwogICAgICB9CgogICAgaWYoICEkZXJyb3IgJiYgZW1wdHkoJG5hbWUpICkKICAgICAgewoJJGVycm9yID0gMTsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX25vbmFtZScpKTsKICAgICAgfQoKICAgIGlmKCAhJGVycm9yICkKICAgICAgewoJJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IFdIRVJFIHBhcmVudF9pZCA9ID8gQU5EIG5hbWUgPSA/IEFORCBpZCAhPSA/JzsKCSR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHBhcmVudCwkbmFtZSwkaGllcmFyY2h5X2lkKSk7CglpZiggJHRtcCApCgkgIHsKCSAgICAkZXJyb3IgPSAxOwoJICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX25hbWV1c2VkJykpOwoJICB9CiAgICAgIH0KCiAgICBpZiggISRlcnJvciApCiAgICAgIHsKCS8vIGhhbmRsZSBpbWFnZSBkZWxldGUgZmlyc3QKCWlmKCBpc3NldCgkcGFyYW1zWydkZWxldGVpbWcnXSkgKQoJICB7CgkgICAgJHNyY25hbWUgPSBjbXNfam9pbl9wYXRoKCRkZXN0ZGlyLCRpbWFnZSk7CgkgICAgJGRlc3RuYW1lID0gY21zX2pvaW5fcGF0aCgkZGVzdGRpciwndGh1bWJfJy4kaW1hZ2UpOwoJICAgICRwcmV2aWV3bmFtZSA9IGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJ3ByZXZpZXdfJy4kaW1hZ2UpOwoJICAgIEB1bmxpbmsoJHNyY25hbWUpOwoJICAgIEB1bmxpbmsoJGRlc3RuYW1lKTsKCSAgICBAdW5saW5rKCRwcmV2aWV3bmFtZSk7CgkgICAgJGltYWdlID0gJyc7CgkgIH0KCgkvLyBIYW5kbGUgZmlsZSB1cGxvYWQKICAgICAgICAkYXR0ciA9ICdkZWZhdWx0JzsKICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1snaW5wdXRfd2F0ZXJtYXJrJ10pICkKICAgICAgICB7CiAgICAgICAgICAgJGF0dHIgPSAkcGFyYW1zWydpbnB1dF93YXRlcm1hcmsnXTsKICAgICAgICB9CiAgICAgICAgJGVycm9ycyA9IGFycmF5KCk7CiAgICAgICAgJHJlcyA9ICR0aGlzLT5IYW5kbGVVcGxvYWRlZEltYWdlKCRpZCwnZmlsZScsJGRlc3RkaXIsJGVycm9ycywnJywkYXR0cix0cnVlKTsKICAgICAgICBpZiggJHJlcyA9PT0gRkFMU0UgKQogICAgICAgICAgewogICAgICAgICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZXJyb3JzKTsKICAgICAgICAgIH0KCWVsc2UgCgkgIHsKCSAgICBpZiggJHJlcyAhPSBjZ19maWxldXBsb2FkOjpOT0ZJTEUgKQoJICAgICAgewoJCS8vIGltYWdlIHVwbG9hZCBzdWNjZWVkZWQKCQkkaW1hZ2UgPSAkcmVzOwoJCWlmKCAkcmVzID09PSBUUlVFICkgJGltYWdlID0gJyc7CgkgICAgICB9CgoJICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkKICAgICAgICAgICAgICAgICAgICAgIFNFVCBuYW1lID0gPywgaW1hZ2UgPSA/LCBwYXJlbnRfaWQgPSA/LCBkZXNjcmlwdGlvbiA9ID8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmExID0gPywgZXh0cmEyID0gPwogICAgICAgICAgICAgICAgICAgICAgV0hFUkUgaWQgPSA/JzsKCSAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRuYW1lLCRpbWFnZSwkcGFyZW50LCRkZXNjcmlwdGlvbiwkZXh0cmExLCRleHRyYTIsJGhpZXJhcmNoeV9pZCkpOwoJICAgIAoJICAgICR0aGlzLT5VcGRhdGVIaWVyYXJjaHlQb3NpdGlvbnMoKTsKCSAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoJICB9CiAgICAgIH0KICB9CgoKIwojIEJ1aWxkIHRoZSBmb3JtCiMKJGhpZXJhcmNoeV9pdGVtcyA9ICR0aGlzLT5CdWlsZEhpZXJhcmNoeUxpc3QoKTsKJHNtYXJ0eS0+YXNzaWduKCdoaWVyYXJjaHlfaWQnLCRoaWVyYXJjaHlfaWQpOwokc21hcnR5LT5hc3NpZ24oJ2hpZXJhcmNoeV9pdGVtcycsJGhpZXJhcmNoeV9pdGVtcyk7CiRzbWFydHktPmFzc2lnbigncGFyZW50JywkcGFyZW50KTsKJHNtYXJ0eS0+YXNzaWduKCduYW1lJywkbmFtZSk7CiRzbWFydHktPmFzc2lnbignZXh0cmExJywkZXh0cmExKTsKJHNtYXJ0eS0+YXNzaWduKCdleHRyYTInLCRleHRyYTIpOwokc21hcnR5LT5hc3NpZ24oJ2ltYWdlJywkaW1hZ2UpOwokaW1hZ2VfdXJsID0gJGdDbXMtPmNvbmZpZ1sndXBsb2Fkc191cmwnXS4nLycuJHRoaXMtPkdldE5hbWUoKS4iL2hpZXJhcmNoeS8kaW1hZ2UiOwokc21hcnR5LT5hc3NpZ24oJ2ltYWdlX3VybCcsJGltYWdlX3VybCk7CiRzbWFydHktPmFzc2lnbignZGVzY3JpcHRpb24nLCRkZXNjcmlwdGlvbik7CmlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYXV0b3dhdGVybWFyaycpID09ICdhZGp1c3RhYmxlJyApCnsKICAkd21vcHRzID0gYXJyYXkoKTsKICAkd21vcHRzWyR0aGlzLT5MYW5nKCdub25lJyldID0gJ25vbmUnOwogICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2RlZmF1bHQnKV0gPSAnZGVmYXVsdCc7CiAgJHdtb3B0c1skdGhpcy0+TGFuZygnYWxpZ25fdWwnKV0gPSAnMCc7CiAgJHdtb3B0c1skdGhpcy0+TGFuZygnYWxpZ25fdWMnKV0gPSAnMSc7CiAgJHdtb3B0c1skdGhpcy0+TGFuZygnYWxpZ25fdXInKV0gPSAnMic7CiAgJHdtb3B0c1skdGhpcy0+TGFuZygnYWxpZ25fbWwnKV0gPSAnMyc7CiAgJHdtb3B0c1skdGhpcy0+TGFuZygnYWxpZ25fbWMnKV0gPSAnNCc7CiAgJHdtb3B0c1skdGhpcy0+TGFuZygnYWxpZ25fbXInKV0gPSAnNSc7CiAgJHdtb3B0c1skdGhpcy0+TGFuZygnYWxpZ25fbGwnKV0gPSAnNic7CiAgJHdtb3B0c1skdGhpcy0+TGFuZygnYWxpZ25fbGMnKV0gPSAnNyc7CiAgJHdtb3B0c1skdGhpcy0+TGFuZygnYWxpZ25fbHInKV0gPSAnOCc7CiAgJHNtYXJ0eS0+YXNzaWduKCd3YXRlcm1hcmtfbG9jYXRpb24nLAogICAgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdpbnB1dF93YXRlcm1hcmsnLCR3bW9wdHMsLTEsJ2RlZmF1bHQnKSk7Cn0KCiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywKCQkkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9lZGl0X2hpZXJhcmNoeV9pdGVtJywkcmV0dXJuaWQsCgkJCQkJICRwYXJhbXMsJ2ZhbHNlJywncG9zdCcsJ211bHRpcGFydC9mb3JtLWRhdGEnKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX2FkZF9oaWVyYXJjaHlfaXRlbS50cGwnKTsKCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_reorder_hierarchy.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSApIGV4aXQ7CgovLwovLyBpbml0aWFsaXplCi8vCmZ1bmN0aW9uIG9yZGVyaGllcl9jcmVhdGVfZmxhdGxpc3QoJHRyZWUsJHBhcmVudF9pZCA9IC0xKQp7CiAgJGRhdGEgPSBhcnJheSgpOwogICRvcmRlciA9IDE7CiAgZm9yZWFjaCggJHRyZWUgYXMgJiRub2RlICkKICAgIHsKICAgICAgaWYoIGlzX2FycmF5KCRub2RlKSAmJiBjb3VudCgkbm9kZSkgPT0gMiApCgl7CgkgICRwaWQgPSAoaW50KXN1YnN0cigkbm9kZVswXSxzdHJsZW4oJ2hpZXJfJykpOwoJICAkZGF0YVtdID0gYXJyYXkoJ2lkJz0+JHBpZCwncGFyZW50X2lkJz0+JHBhcmVudF9pZCwnb3JkZXInPT4kb3JkZXIpOwoJICBpZiggaXNzZXQoJG5vZGVbMV0pICYmIGlzX2FycmF5KCRub2RlWzFdKSApCgkgICAgewoJICAgICAgJGRhdGEgPSBhcnJheV9tZXJnZSgkZGF0YSxvcmRlcmhpZXJfY3JlYXRlX2ZsYXRsaXN0KCRub2RlWzFdLCRwaWQpKTsKCSAgICB9Cgl9CiAgICAgIGVsc2UKCXsKCSAgJHBpZCA9IChpbnQpc3Vic3RyKCRub2RlLHN0cmxlbignaGllcl8nKSk7CgkgICRkYXRhW10gPSBhcnJheSgnaWQnPT4kcGlkLCdwYXJlbnRfaWQnPT4kcGFyZW50X2lkLCdvcmRlcic9PiRvcmRlcik7Cgl9CiAgICAgICRvcmRlcisrOwogICAgfQogIHJldHVybiAkZGF0YTsKfQoKLy8KLy8gc2V0dXAgdGhlIGRhdGEKLy8KJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2hpZXJhcmNoeScpOwokdHJlZSA9IHByb2R1Y3RfdXRpbHM6OmhpZXJhcmNoeV9nZXRfdHJlZSgpOwoKLy8KLy8gaGFuZGxlIGZvcm0gc3VibWlzc2lvbl8KLy8KaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSApCiAgewogICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ29wZXJhdGlvbl9jYW5jZWxsZWQnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogICAgcmV0dXJuOwogIH0KZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkKICB7CiAgICAkcGFyYW1zWydvcmRlcmRhdGEnXSA9IGpzb25fZGVjb2RlKCRwYXJhbXNbJ29yZGVyZGF0YSddKTsKCiAgICAvLyAxLiBNYXNzYWdlIHRoZSBvcmRlciBkYXRhIGZyb20gdGhlIGZvcm0uCiAgICAkZGF0YSA9IG9yZGVyaGllcl9jcmVhdGVfZmxhdGxpc3QoJHBhcmFtc1snb3JkZXJkYXRhJ10pOwoKICAgIC8vIDIuIFVwZGF0ZSB0aGUgZGF0YSBhcnJheSB3aXRoIGluZm8gZnJvbSB0aGUgdHJlZS4KICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IAogICAgICAgICAgICAgIE9SREVSIGJ5IGhpZXJhcmNoeSc7CiAgICAkZGJyID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgJGRiciA9IGNnZV9hcnJheTo6dG9faGFzaCgkZGJyLCdpZCcpOwoKICAgIC8vIDMuIFVwZGF0ZSB0aGUgZGF0YWJhc2UKICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkgU0VUIHBhcmVudF9pZCA9ID8sIGl0ZW1fb3JkZXIgPSA/LCBoaWVyYXJjaHkgPSA/LCBsb25nX25hbWUgPSA/IFdIRVJFIGlkID0gPyc7CiAgICBmb3JlYWNoKCAkZGF0YSBhcyAkcmVjICkKICAgICAgewoJJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHJlY1sncGFyZW50X2lkJ10sJHJlY1snb3JkZXInXSwnJywnJywkcmVjWydpZCddKSk7CiAgICAgIH0KICAgIHByb2R1Y3RfdXRpbHM6OnVwZGF0ZV9oaWVyYXJjaHlfcG9zaXRpb25zKCk7CgogICAgLy8gYW5kIGdldCBvdXQgb2YgaGVyZS4KICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdvcGVyYXRpb25fY29tcGxldGUnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogICAgcmV0dXJuOwogIH0KCi8vCi8vIGdpdmUgaXQgdG8gc21hcnR5Ci8vCiRzbWFydHktPmFzc2lnbignbW9kJywkdGhpcyk7CiRzbWFydHktPmFzc2lnbignYWN0aW9uaWQnLCRpZCk7CiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9yZW9yZGVyX2hpZXJhcmNoeScpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCd0cmVlJywkdHJlZSk7CiRzbWFydHktPmFzc2lnbignZGVwdGgnLDApOwoKLy8gZGlzcGxheSB0aGUgZm9ybS4KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9yZW9yZGVyX2hpZXJhcmNoeS50cGwnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_saveprefs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoICRnQ21zICkgKSByZXR1cm47CgokdGhpcy0+U2V0Q3VycmVudFRhYigncHJlZnMnKTsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkKICB7CiAgICByZXR1cm47CiAgfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ3NldGVjb21oYW5kbGVycyddKSApCiAgewogICAgJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ0dFY29tbWVyY2VCYXNlJywnT3JkZXJVcGRhdGVkJyxGQUxTRSk7CiAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX2V2ZW50aGFuZGxlcnNfY3JlYXRlZCcpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgfQoKaWYoICFpc3NldCggJHBhcmFtc1snc3VibWl0J10gKSApCiAgewogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICB9CgppZiggaXNzZXQoJHBhcmFtc1sndGF4YWJsZSddKSApCiAgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRfdGF4YWJsZScsKGludCkkcGFyYW1zWyd0YXhhYmxlJ10pOwogIH0KZWxzZQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWZhdWx0X3RheGFibGUnLDApOwogIH0KCmlmKCBpc3NldCgkcGFyYW1zWydzdGF0dXMnXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWZhdWx0X3N0YXR1cycsJHBhcmFtc1snc3RhdHVzJ10pOwogIH0KZWxzZQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWZhdWx0X3N0YXR1cycsMCk7CiAgfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZXRhaWxwYWdlJywkcGFyYW1zWydkZXRhaWxwYWdlJ10pOwogIH0KCmlmKCBpc3NldCgkcGFyYW1zWydoaWVycGFnZSddKSApCiAgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2hpZXJwYWdlJywkcGFyYW1zWydoaWVycGFnZSddKTsKICB9CmlmKCBpc3NldCgkcGFyYW1zWydwcmV0dHloaWVydXJscyddKSApCiAgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3ByZXR0eWhpZXJ1cmxzJywkcGFyYW1zWydwcmV0dHloaWVydXJscyddKTsKICB9CgppZiggaXNzZXQoJHBhcmFtc1snc29ydG9yZGVyJ10pICkKICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnc29ydG9yZGVyJywkcGFyYW1zWydzb3J0b3JkZXInXSk7CiAgfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ3N1bW1hcnlfbmV3ZGVmYXVsdCddKSApCiAgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3N1bW1hcnlfbmV3ZGVmYXVsdCcsKGludCkkcGFyYW1zWydzdW1tYXJ5X25ld2RlZmF1bHQnXSk7CiAgfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ3N1bW1hcnlfcGFnZWxpbWl0J10pICkKICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnc3VtbWFyeV9wYWdlbGltaXQnLChpbnQpJHBhcmFtc1snc3VtbWFyeV9wYWdlbGltaXQnXSk7CiAgfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ3NvcnRieSddKSApCiAgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3NvcnRieScsJHBhcmFtc1snc29ydGJ5J10pOwogIH0KCmlmKCBpc3NldCgkcGFyYW1zWydjdXJyZW5jeXN5bWJvbCddKSApCiAgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Byb2R1Y3RzX2N1cnJlbmN5c3ltYm9sJyx0cmltKCRwYXJhbXNbJ2N1cnJlbmN5c3ltYm9sJ10pKTsKICB9CgppZiggaXNzZXQoJHBhcmFtc1snd2VpZ2h0dW5pdHMnXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwcm9kdWN0c193ZWlnaHR1bml0cycsdHJpbSgkcGFyYW1zWyd3ZWlnaHR1bml0cyddKSk7CiAgfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ2xlbmd0aHVuaXRzJ10pICkKICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgncHJvZHVjdHNfbGVuZ3RodW5pdHMnLHRyaW0oJHBhcmFtc1snbGVuZ3RodW5pdHMnXSkpOwogIH0KCmlmKCBpc3NldCgkcGFyYW1zWydhbGxvd2VkX2ltYWdldHlwZXMnXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhbGxvd2VkX2ltYWdldHlwZXMnLHRyaW0oJHBhcmFtc1snYWxsb3dlZF9pbWFnZXR5cGVzJ10pKTsKICB9CgppZiggaXNzZXQoJHBhcmFtc1snYWxsb3dlZF9maWxldHlwZXMnXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhbGxvd2VkX2ZpbGV0eXBlcycsdHJpbSgkcGFyYW1zWydhbGxvd2VkX2ZpbGV0eXBlcyddKSk7CiAgfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ2F1dG90aHVtYm5haWwnXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhdXRvdGh1bWJuYWlsJywoaW50KSgkcGFyYW1zWydhdXRvdGh1bWJuYWlsJ10pKTsKICB9CmlmKCBpc3NldCgkcGFyYW1zWydhdXRvdGh1bWJuYWlsX3NpemUnXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhdXRvX3RodW1ibmFpbF9zaXplJywoaW50KSgkcGFyYW1zWydhdXRvdGh1bWJuYWlsX3NpemUnXSkpOwogIH0KCmlmKCBpc3NldCgkcGFyYW1zWydhdXRvcHJldmlld2ltZyddKSApCiAgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2F1dG9wcmV2aWV3aW1nJywoaW50KSgkcGFyYW1zWydhdXRvcHJldmlld2ltZyddKSk7CiAgfQppZiggaXNzZXQoJHBhcmFtc1snYXV0b3ByZXZpZXdpbWdfc2l6ZSddKSApCiAgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2F1dG9fcHJldmlld2ltZ19zaXplJywoaW50KSgkcGFyYW1zWydhdXRvcHJldmlld2ltZ19zaXplJ10pKTsKICB9CgppZiggaXNzZXQoJHBhcmFtc1sndXJscHJlZml4J10pICkKICB7CiAgICBpZiggJHBhcmFtc1sndXJscHJlZml4J10gIT0gJycgKQogICAgICB7CgkkdGhpcy0+U2V0UHJlZmVyZW5jZSgndXJscHJlZml4JywkcGFyYW1zWyd1cmxwcmVmaXgnXSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ3VybHByZWZpeCcpOwogICAgICB9CiAgfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ2F1dG93YXRlcm1hcmsnXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhdXRvd2F0ZXJtYXJrJywkcGFyYW1zWydhdXRvd2F0ZXJtYXJrJ10pOwogIH0KCmlmKCBpc3NldCgkcGFyYW1zWydkZWxldGVwcm9kdWN0ZmlsZXMnXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWxldGVwcm9kdWN0ZmlsZXMnLHRyaW0oJHBhcmFtc1snZGVsZXRlcHJvZHVjdGZpbGVzJ10pKTsKICB9CgokdGhpcy0+U2V0UHJlZmVyZW5jZSgndXNlX2RldGFpbHBhZ2VfZm9yX3NlYXJjaCcsKGludCkkcGFyYW1zWyd1c2VfZGV0YWlscGFnZV9mb3Jfc2VhcmNoJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgndXNlaGllcnBhdGh1cmxzJywoaW50KSRwYXJhbXNbJ3VzZWhpZXJwYXRodXJscyddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Byb2Rub3Rmb3VuZCcsdHJpbSgkcGFyYW1zWydwcm9kbm90Zm91bmQnXSkpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgncHJvZG5vdGZvdW5kbXNnJyx0cmltKCRwYXJhbXNbJ3Byb2Rub3Rmb3VuZG1zZyddKSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwcm9kbm90Zm91bmRwYWdlJyx0cmltKCRwYXJhbXNbJ3Byb2Rub3Rmb3VuZHBhZ2UnXSkpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnc2t1cmVxdWlyZWQnLChpbnQpJHBhcmFtc1snc2t1cmVxdWlyZWQnXSk7CgokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_setdflttemplates.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdCgpOwokdGhpcy0+U2V0Q3VycmVudFRhYignZGVmYXVsdF90ZW1wbGF0ZXMnKTsKCmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkKICB7CiAgICBleGl0KCk7CiAgfQoKaWYoIGlzc2V0KCAkcGFyYW1zWydzdWJtaXRfc3VtbWFyeXRlbXBsYXRlJ10gKSApCiAgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ORVdTVU1NQVJZX1RFTVBMQVRFLAogICAgICAgICAgICAgICAgICAgICAgICAgdHJpbSgkcGFyYW1zWydpbnB1dF9zdW1tYXJ5dGVtcGxhdGUnXSkpOwogIH0KZWxzZSBpZiggaXNzZXQoICRwYXJhbXNbJ3Jlc2V0X3N1bW1hcnl0ZW1wbGF0ZSddICkgKQogIHsKICAgICRmbiA9IGRpcm5hbWUoX19GSUxFX18pLkRJUkVDVE9SWV9TRVBBUkFUT1IuCiAgICAgICd0ZW1wbGF0ZXMnLkRJUkVDVE9SWV9TRVBBUkFUT1IuJ29yaWdfc3VtbWFyeV90ZW1wbGF0ZS50cGwnOwogICAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApCiAgICAgIHsKICAgICAgICAkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV1NVTU1BUllfVEVNUExBVEUsJHRlbXBsYXRlKTsKICAgICAgfQogIH0KCmlmKCBpc3NldCggJHBhcmFtc1snc3VibWl0X2RldGFpbHRlbXBsYXRlJ10gKSApCiAgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ORVdERVRBSUxfVEVNUExBVEUsCiAgICAgICAgICAgICAgICAgICAgICAgICB0cmltKCRwYXJhbXNbJ2lucHV0X2RldGFpbHRlbXBsYXRlJ10pKTsKICB9CmVsc2UgaWYoIGlzc2V0KCAkcGFyYW1zWydyZXNldF9kZXRhaWx0ZW1wbGF0ZSddICkgKQogIHsKICAgICRmbiA9IGRpcm5hbWUoX19GSUxFX18pLkRJUkVDVE9SWV9TRVBBUkFUT1IuCiAgICAgICd0ZW1wbGF0ZXMnLkRJUkVDVE9SWV9TRVBBUkFUT1IuJ29yaWdfZGV0YWlsX3RlbXBsYXRlLnRwbCc7CiAgICBpZiggZmlsZV9leGlzdHMoICRmbiApICkKICAgICAgewogICAgICAgICR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXREVUQUlMX1RFTVBMQVRFLCR0ZW1wbGF0ZSk7CiAgICAgIH0KICB9CgoKaWYoIGlzc2V0KCAkcGFyYW1zWydzdWJtaXRfYnloaWVyYXJjaHl0ZW1wbGF0ZSddICkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXQllISUVSQVJDSFlfVEVNUExBVEUsCiAgICAgICAgICAgICAgICAgICAgICAgICB0cmltKCRwYXJhbXNbJ2lucHV0X2J5aGllcmFyY2h5dGVtcGxhdGUnXSkpOwogIH0KZWxzZSBpZiggaXNzZXQoICRwYXJhbXNbJ3Jlc2V0X2J5aGllcmFyY2h5dGVtcGxhdGUnXSApICkKICB7CiAgICAkZm4gPSBkaXJuYW1lKF9fRklMRV9fKS5ESVJFQ1RPUllfU0VQQVJBVE9SLgogICAgICAndGVtcGxhdGVzJy5ESVJFQ1RPUllfU0VQQVJBVE9SLidvcmlnX2J5aGllcmFyY2h5X3RlbXBsYXRlLnRwbCc7CiAgICBpZiggZmlsZV9leGlzdHMoICRmbiApICkKICAgICAgewogICAgICAgICR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXQllISUVSQVJDSFlfVEVNUExBVEUsJHRlbXBsYXRlKTsKICAgICAgfQogIH0KCgppZiggaXNzZXQoICRwYXJhbXNbJ3N1Ym1pdF9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddICkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXQ0FURUdPUllMSVNUX1RFTVBMQVRFLAogICAgICAgICAgICAgICAgICAgICAgICAgdHJpbSgkcGFyYW1zWydpbnB1dF9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddKSk7CiAgfQplbHNlIGlmKCBpc3NldCggJHBhcmFtc1sncmVzZXRfY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSApICkKICB7CiAgICAkZm4gPSBkaXJuYW1lKF9fRklMRV9fKS5ESVJFQ1RPUllfU0VQQVJBVE9SLgogICAgICAndGVtcGxhdGVzJy5ESVJFQ1RPUllfU0VQQVJBVE9SLidvcmlnX2NhdGVnb3J5bGlzdF90ZW1wbGF0ZS50cGwnOwogICAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApCiAgICAgIHsKICAgICAgICAkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV0NBVEVHT1JZTElTVF9URU1QTEFURSwkdGVtcGxhdGUpOwogICAgICB9CiAgfQoKaWYoIGlzc2V0KCAkcGFyYW1zWydzdWJtaXRfc2VhcmNodGVtcGxhdGUnXSApICkKICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV1NFQVJDSF9URU1QTEFURSwKICAgICAgICAgICAgICAgICAgICAgICAgIHRyaW0oJHBhcmFtc1snaW5wdXRfc2VhcmNodGVtcGxhdGUnXSkpOwogIH0KZWxzZSBpZiggaXNzZXQoICRwYXJhbXNbJ3Jlc2V0X3NlYXJjaHRlbXBsYXRlJ10gKSApCiAgewogICAgJGZuID0gZGlybmFtZShfX0ZJTEVfXykuRElSRUNUT1JZX1NFUEFSQVRPUi4KICAgICAgJ3RlbXBsYXRlcycuRElSRUNUT1JZX1NFUEFSQVRPUi4nb3JpZ19zZWFyY2hfdGVtcGxhdGUudHBsJzsKICAgIGlmKCBmaWxlX2V4aXN0cyggJGZuICkgKQogICAgICB7CiAgICAgICAgJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CiAgICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ORVdTRUFSQ0hfVEVNUExBVEUsJHRlbXBsYXRlKTsKICAgICAgfQogIH0KCiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Ci8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.ajax_propval.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKLy8gCi8vIHJldHJpZXZlIGFsbCBvZiB0aGUgdmFsdWVzIG9mIGEgZmllbGQKLy8gdGhpcyBpcyBhbiBhY3Rpb24gaW50ZW5kZWQgdG8gYmUgY2FsbGVkIHZpYSBhamF4Li4uIGkuZTogd2l0aCB0aGUgc2hvd3RlbXBsYXRlPWZhbHNlIHBhcmFtZXRlcgovLwoKLy8KLy8gc2V0dXAKLy8KJHJlcyA9IGFycmF5KCdzdGF0dXMnPT4nRVJST1InLCdkYXRhJz0+JycpOwokZmllbGQgPSAnJzsKJGZpZWxkdmFsID0gJyc7CiRmaWVsZGRlZnMgPSAkdGhpcy0+R2V0RmllbGREZWZzKCk7CiRkYXRhID0gJyc7CgpmdW5jdGlvbiBkb19lcnJvcigkbXNnLCRleHRyYSA9IG51bGwpCnsKICAkcmVzWydzdGF0dXMnXSA9ICdFUlJPUic7CiAgJHJlc1snZGF0YSddID0gJG1zZzsKICBpZiggIWlzX251bGwoJGV4dHJhKSApCiAgICB7CiAgICAgICRyZXNbJ2V4dHJhJ10gPSAkZXh0cmE7CiAgICB9CiAgZWNobyBqc29uX2VuY29kZSgkcmVzKTsKICBleGl0Owp9CgovLwovLyBkYXRhIHZhbGlkYXRpb24KLy8KaWYoICFpc3NldCgkcGFyYW1zWydmaWVsZCddKSB8fCAhaXNzZXQoJHBhcmFtc1snZmllbGR2YWwnXSkgKQogIHsKICAgIGRvX2Vycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nKSk7CiAgfQokZmllbGQgPSB0cmltKCRwYXJhbXNbJ2ZpZWxkJ10pOwokZmllbGR2YWwgPSB0cmltKCRwYXJhbXNbJ2ZpZWxkdmFsJ10pOwoKLy8KLy8gZG8gdGhlIHdvcmsKLy8KJGxmaWVsZCA9IHN0cnRvbG93ZXIoJGZpZWxkKTsKc3dpdGNoKCBzdHJ0b2xvd2VyKCRsZmllbGQpICkKICB7CiAgY2FzZSAnOjpza3U6Oic6CiAgICAkcXVlcnkgPSAnU0VMRUNUIHNrdSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgV0hFUkUgc2t1IExJS0UgPyc7CiAgICAkZGF0YSA9ICRkYi0+R2V0Q29sKCRxdWVyeSxhcnJheSgkZmllbGR2YWwuJyUnKSk7CiAgICBicmVhazsKCiAgY2FzZSAnOjpuYW1lOjonOgogICAgJHF1ZXJ5ID0gJ1NFTEVDVCBwcm9kdWN0X25hbWUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzIFdIRVJFIHByb2R1Y3RfbmFtZSBMSUtFID8nOwogICAgJGRhdGEgPSAkZGItPkdldENvbCgkcXVlcnksYXJyYXkoJGZpZWxkdmFsLiclJykpOwogICAgYnJlYWs7CgogIGNhc2UgJzo6YWxpYXM6Oic6CiAgICAkcXVlcnkgPSAnU0VMRUNUIGFsaWFzIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cyBXSEVSRSBhbGlhcyBMSUtFID8nOwogICAgJGRhdGEgPSAkZGItPkdldENvbCgkcXVlcnksYXJyYXkoJGZpZWxkdmFsLiclJykpOwogICAgYnJlYWs7CgogIGRlZmF1bHQ6CiAgICAkZm5kID0gMDsKICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRmaWVsZGRlZnMpOyAkaSsrICkKICAgICAgewoJaWYoICRmaWVsZGRlZnNbJGldLT5uYW1lID09ICRmaWVsZCApCgkgIHsKCSAgICAkZm5kID0gMTsKCSAgICAkcXVlcnkgPSAnU0VMRUNUIERJU1RJTkNUIHZhbHVlIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgV0hFUkUgZmllbGRkZWZfaWQgPSA/IEFORCB2YWx1ZSBMSUtFID8nOwoJICAgICRkYXRhID0gJGRiLT5HZXRDb2woJHF1ZXJ5LGFycmF5KCRmaWVsZGRlZnNbJGldLT5pZCwkZmllbGR2YWwuJyUnKSk7CgkgICAgYnJlYWs7CgkgIH0KICAgICAgfQogICAgaWYoICEkZm5kICkKICAgICAgewoJJGV4dCA9IGFycmF5KCdsb29rZm9yJz0+JGxmaWVsZCwnZmQnPT4kZmllbGRkZWZzLCd2YWwnPT4kZmllbGR2YWwuJyUnKTsKCWRvX2Vycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkX25hbWUnKSwkZXh0KTsKICAgICAgfQogICAgYnJlYWs7CiAgfQoKLy8KLy8gb3V0cHV0Ci8vCiRyZXNbJ3N0YXR1cyddID0gJ09LJzsKJHJlc1snZGF0YSddID0gJGRhdGE7CmVjaG8ganNvbl9lbmNvZGUoJHJlcyk7CmV4aXQ7CgojCiMgRU9GCiM/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.categorylist.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgokdGhldGVtcGxhdGUgPSAnY2F0ZWdvcnlsaXN0XycuJHRoaXMtPkdldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ERkxUQ0FURUdPUllMSVNUX1RFTVBMQVRFKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gKSApCiAgewogICAgJHRoZXRlbXBsYXRlID0gJ2NhdGVnb3J5bGlzdF8nLiRwYXJhbXNbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlJ107CiAgfQoKJHNvcnRieSA9ICdBLm5hbWUnOwokc29ydG9yZGVyID0gJ2FzYyc7CiRjYXRlZ29yeV9pZCA9ICcnOwokY2F0ZWdvcnkgPSAnJzsKJGNhdGVnb3J5ZmllbGQgPSAnJzsKaWYoIGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5aWQnXSkgKQogIHsKICAgICRjYXRlZ29yeV9pZCA9IChpbnQpJHBhcmFtc1snY2F0ZWdvcnlpZCddOwogIH0KZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snY2F0ZWdvcnknXSkgKQogIHsKICAgICRjYXRlZ29yeSA9IHRyaW0oJHBhcmFtc1snY2F0ZWdvcnknXSk7CiAgfQplbHNlIGlmKCBpc3NldCgkcGFyYW1zWydjYXRlZ29yeWZpZWxkJ10pICkKICB7CiAgICAkY2F0ZWdvcnlmaWVsZCA9IHRyaW0oJHBhcmFtc1snY2F0ZWdvcnlmaWVsZCddKTsKICB9CgokcmVzdWx0cGFnZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZXN1bHRwYWdlJywnJyk7CmlmIChpc3NldCgkcGFyYW1zWydyZXN1bHRwYWdlJ10pKQogIHsKICAgICRyZXN1bHRwYWdlID0gdHJpbSgkcGFyYW1zWydyZXN1bHRwYWdlJ10pOwogIH0KaWYoICFlbXB0eSgkcmVzdWx0cGFnZSkgKQogIHsKICAgICRtYW5hZ2VyID0gJGdDbXMtPkdldEhpZXJhcmNoeU1hbmFnZXIoKTsKICAgICRub2RlID0gJG1hbmFnZXItPnN1cmVHZXROb2RlQnlBbGlhcygkcmVzdWx0cGFnZSk7CiAgICBpZiAoaXNzZXQoJG5vZGUpKQogICAgICB7CgkkY29udGVudCA9ICRub2RlLT5HZXRDb250ZW50KCk7CQoJaWYgKGlzc2V0KCRjb250ZW50KSkKCSAgewoJICAgICRyZXN1bHRwYWdlID0gJGNvbnRlbnQtPklkKCk7CgkgIH0KICAgICAgfQogICAgZWxzZQogICAgICB7Cgkkbm9kZSA9ICRtYW5hZ2VyLT5zdXJlR2V0Tm9kZUJ5SWQoJHJlc3VsdHBhZ2UpOwoJaWYgKCFpc3NldCgkbm9kZSkpCgkgIHsKCSAgICAkcmVzdWx0cGFnZSA9ICcnOwoJICB9CiAgICAgIH0KICB9CgppZiggaXNzZXQoJHBhcmFtc1snc29ydGJ5J10pICkKICB7CiAgICAkdG1wID0gdHJpbShzdHJ0b2xvd2VyKCRwYXJhbXNbJ3NvcnRieSddKSk7CiAgICBzd2l0Y2goICR0bXAgKQogICAgICB7CiAgICAgIGNhc2UgJ2lkJzoKICAgICAgY2FzZSAnbmFtZSc6Cgkkc29ydGJ5ID0gJ0EuJy4kdG1wOwoJYnJlYWs7CiAgICAgIH0KICB9CmlmKCBpc3NldCgkcGFyYW1zWydzb3J0b3JkZXInXSkgKQogIHsKICAgICR0bXAgPSB0cmltKHN0cnRvbG93ZXIoJHBhcmFtc1snc29ydGJ5J10pKTsKICAgIHN3aXRjaCggJHRtcCApCiAgICAgIHsKICAgICAgY2FzZSAnYXNjJzoKICAgICAgY2FzZSAnZGVzYyc6Cgkkc29ydG9yZGVyID0gJHRtcDsKCWJyZWFrOwogICAgICB9CiAgfQoKLy8kcXVlcnkgPSAiU0VMRUNUIGIuKixjb3VudChwcm9kdWN0X2lkKSBBUyBjb3VudCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzIGEsICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyBiIFdIRVJFIGIuaWQgPSBhLmNhdGVnb3J5X2lkIEdST1VQIEJZIGIuaWQiOwokcXVlcnkgPSAiU0VMRUNUIEEuaWQsQS5uYW1lLGNvdW50KEIucHJvZHVjdF9pZCkgQVMgY291bnQgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMgQSBMRUZUIE9VVEVSIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19wcm9kdWN0X2NhdGVnb3JpZXMgQiBPTiBBLmlkID0gQi5jYXRlZ29yeV9pZCI7CiRqb2lucyA9IGFycmF5KCk7CiRqcGFybXMgPSBhcnJheSgpOwokd2hlcmUgPSBhcnJheSgpOwokcXBhcm1zID0gYXJyYXkoKTsKaWYoICRjYXRlZ29yeV9pZCApCiAgewogICAgJHdoZXJlW10gLj0gIkEuaWQgPSA/IjsKICAgICRxcGFybXNbXSA9ICRjYXRlZ29yeV9pZDsKICB9CmVsc2UgaWYoICRjYXRlZ29yeSkgCiAgewogICAgJHEyID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyBXSEVSRSBuYW1lIElOICgnOwogICAgJHRtcCA9IGV4cGxvZGUoJywnLCRjYXRlZ29yeSk7CiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdG1wKTsgJGkrKyApCiAgICAgIHsKCSR0bXBbJGldID0gJyInLiR0bXBbJGldLiciJzsKICAgICAgfQogICAgJHEyIC49IGltcGxvZGUoJywnLCR0bXApLicpJzsKICAgICRpZHMgPSAkZGItPkdldENvbCgkcTIpOwogICAgaWYoIGlzX2FycmF5KCRpZHMpICYmIGNvdW50KCRpZHMpICkKICAgICAgewoJJHdoZXJlW10gPSAnQS5pZCBJTiAoJy5pbXBsb2RlKCcsJywkaWRzKS4nKSc7CiAgICAgIH0KICB9CmVsc2UgaWYoICRjYXRlZ29yeWZpZWxkICkKICB7CiAgICAkZXhwcnMgPSBjZ2VfYXJyYXk6OnNtYXJ0X2V4cGxvZGUoJGNhdGVnb3J5ZmllbGQpOwogICAgaWYoIGlzX2FycmF5KCRleHBycykgJiYgY291bnQoJGV4cHJzKSApCiAgICAgIHsKCWZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRleHBycyk7ICRpKysgKQoJICB7CgkgICAgbGlzdCgkZmxkbmFtZSwkZmxkdmFsKSA9IGV4cGxvZGUoJzonLCRleHByc1skaV0sMik7CgkgICAgaWYoICRmbGRuYW1lICE9ICcnICYmICRmbGR2YWwgIT0gJycgKQoJICAgICAgewoJCSRqb2luc1tdID0gY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcnlfZmllbGRzIENGeyRpfSBPTiBBLmlkID0gQ0Z7JGl9LmNhdGVnb3J5X2lkIEFORCBDRnskaX0uZmllbGRfbmFtZSA9ID8iOwoJCSRqcGFybXNbXSA9ICRmbGRuYW1lOwoJCSR3aGVyZVtdID0gIkNGeyRpfS5maWVsZF92YWx1ZSA9ID8iOwoJCSRxcGFybXNbXSA9ICRmbGR2YWw7CgkgICAgICB9CgkgIH0KICAgICAgfQogIH0KCi8vIGZpbmFsIHF1ZXJ5IGFzc2VtYmx5LgppZiggY291bnQoJGpvaW5zKSApCiAgewogICAgJHF1ZXJ5IC49ICcgTEVGVCBKT0lOICcuaW1wbG9kZSgnIExFRlQgSk9JTiAnLCRqb2lucyk7CiAgfQppZiggY291bnQoJHdoZXJlKSApCiAgewogICAgJHF1ZXJ5IC49ICcgV0hFUkUgJy5pbXBsb2RlKCcgQU5EICcsJHdoZXJlKTsKICB9CiRxcGFybXMgPSBhcnJheV9tZXJnZSgkanBhcm1zLCRxcGFybXMpOwokcXVlcnkgLj0gIiBHUk9VUCBCWSBBLmlkIE9SREVSIEJZICRzb3J0YnkgJHNvcnRvcmRlciI7CiRjYXRlZ29yaWVzID0gJGRiLT5HZXRBcnJheSgkcXVlcnksJHFwYXJtcyk7CmlmKCAhJGNhdGVnb3JpZXMgKQogIHsKICAgIHJldHVybjsKICB9CgokdG1wID0gY2dlX2FycmF5OjpleHRyYWN0X2ZpZWxkKCRjYXRlZ29yaWVzLCdpZCcpOwokcXVlcnkyID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMKICAgICAgICAgICAgV0hFUkUgY2F0ZWdvcnlfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJHRtcCkuJykgT1JERVIgQlkgY2F0ZWdvcnlfaWQgQVNDLCBmaWVsZF9vcmRlciBBU0MnOwokdG1wMiA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5Mik7CiRyZXN1bHRzID0gYXJyYXkoKTsKZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGNhdGVnb3JpZXMpOyAkaSsrICkKICB7CiAgICAkcm93ID0mICRjYXRlZ29yaWVzWyRpXTsKICAgIGlmKCAoIWlzc2V0KCRwYXJhbXNbJ3Nob3dhbGwnXSkgfHwgJHBhcmFtc1snc2hvd2FsbCddIDwgMSkgJiYgJHJvd1snY291bnQnXSA8PSAwICkKICAgICAgewoJY29udGludWU7CiAgICAgIH0KCiAgICAkb2JqID0gbmV3IFN0ZENsYXNzKCk7CiAgICBmb3JlYWNoKCAkcm93IGFzICRrID0+ICR2ICkKICAgICAgewoJJG9iai0+JGsgPSAkdjsKICAgICAgfQoKICAgIC8vIGV4dHJhY3QgYWxsIG9mIHRoZSByb3dzIHRoYXQgaGF2ZSB0aGlzIGNhdGVnb3J5IGlkCiAgICAkdG1wYSA9IGFycmF5KCk7CiAgICBmb3IoICRqID0gMDsgJGogPCBjb3VudCgkdG1wMik7ICRqKysgKQogICAgICB7CglpZiggJHRtcDJbJGpdWydjYXRlZ29yeV9pZCddIDwgJHJvd1snaWQnXSApIGNvbnRpbnVlOwoJaWYoICR0bXAyWyRqXVsnY2F0ZWdvcnlfaWQnXSA+ICRyb3dbJ2lkJ10gKSBicmVhazsKCgkkdG1wYVtdID0gJHRtcDJbJGpdOwogICAgICB9CiAgICBpZiggaXNfYXJyYXkoJHRtcGEpICYmIGNvdW50KCR0bXBhKSA+IDAgKQogICAgICB7Cgkkb2JqLT5maWVsZHMgPSBjZ2VfYXJyYXk6OnRvX2hhc2goJHRtcGEsJ2ZpZWxkX25hbWUnKTsKICAgICAgfQoKICAgICRwYXJhbXNbJ2NhdGVnb3J5aWQnXSA9ICRvYmotPmlkOwogICAgaWYoICEkY2F0ZWdvcnlfaWQgKQogICAgICB7Cgkkb2JqLT5kZXRhaWxfdXJsID0gJHRoaXMtPkNyZWF0ZVByZXR0eUxpbmsoJGlkLCdjYXRlZ29yeWxpc3QnLCgkcmVzdWx0cGFnZSE9JycpPyRyZXN1bHRwYWdlOiRyZXR1cm5pZCwKCQkJCQkJJycsJHBhcmFtcywnJyx0cnVlKTsKICAgICAgfQogICAgJHBhcmFtc1snY2F0ZWdvcnluYW1lJ10gPSAkb2JqLT5uYW1lOwogICAgJG9iai0+c3VtbWFyeV91cmwgPSAkdGhpcy0+Q3JlYXRlUHJldHR5TGluaygkaWQsJ2RlZmF1bHQnLCgkcmVzdWx0cGFnZSE9JycpPyRyZXN1bHRwYWdlOiRyZXR1cm5pZCwKCQkJCQkJJycsJHBhcmFtcywnJyx0cnVlKTsKICAgICRyZXN1bHRzW10gPSAkb2JqOwogIH0KCiRzbWFydHktPmFzc2lnbignY2F0ZWdvcnlsaXN0JywkcmVzdWx0cyk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHRoZXRlbXBsYXRlKTsKLy8gRU9GCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.copycategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2NhdGVnb3JpZXMnKTsKCmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFByb2R1Y3RzJykpCnsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ25lZWRwZXJtaXNzaW9uJywgYXJyYXkoJ01vZGlmeSBQcm9kdWN0cycpKSk7CglyZXR1cm47Cn0KaWYgKCFpc3NldCgkcGFyYW1zWydjYXRpZCddKSkKewogIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXJhbScpKTsKICByZXR1cm47Cn0KCiMgSW5pdGlhbGl6YXRpb24KJG5hbWUgPSAnJzsKJGNhdGlkID0gKGludCkkcGFyYW1zWydjYXRpZCddOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSkKewogICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Cn0KCiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyAKICAgICAgICAgICBXSEVSRSBpZCA9ID8nOwokcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LGFycmF5KCRjYXRpZCkpOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSApCnsKICAvLyBtYWtlIHN1cmUgdGhlIG5hbWUgaXMgbm90IGVtcHR5CiAgaWYoIGlzc2V0KCRwYXJhbXNbJ25hbWUnXSkgKQogICAgewogICAgICAkbmFtZSA9IHRyaW0oJHBhcmFtc1snbmFtZSddKTsKICAgIH0KICBpZiggZW1wdHkoJG5hbWUpICkKICAgIHsKICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3Jfbm9uYW1lJykpOwogICAgfQogIGVsc2UKICAgIHsKICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcwogICAgICAgICAgICAgICAgICBXSEVSRSBuYW1lID0gPyc7CiAgICAgICR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJG5hbWUpKTsKICAgICAgaWYoICR0bXAgKQoJewoJICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9uYW1ldXNlZCcpKTsKCX0KICAgICAgZWxzZQoJewoJICAvLyBpdCdzIGdvb2QgdG8gZ28uCgkgICRub3cgPSAkZGItPkRiVGltZVN0YW1wKHRpbWUoKSk7CgkgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMKICAgICAgICAgICAgICAgICAobmFtZSwgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUpCiAgICAgICAgICAgICAgICBWQUxVRVMgKD8sJG5vdywkbm93KSI7CgkgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJG5hbWUpKTsKCSAgJG5ld19pZCA9ICRkYi0+SW5zZXJ0X0lEKCk7CgkgIAoJICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcwogICAgICAgICAgICAgICAgIFdIRVJFIGNhdGVnb3J5X2lkID0gPyBPUkRFUiBCWSBmaWVsZF9vcmRlcic7CgkgICRyZXMgPSAkZGItPkdldEFycmF5KCRxdWVyeSxhcnJheSgkY2F0aWQpKTsKCSAgCgkgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcwogICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlfaWQsIGZpZWxkX3R5cGUsIGZpZWxkX25hbWUsIGZpZWxkX3Byb21wdCwgZmllbGRfdmFsdWUsIGZpZWxkX29yZGVyKQogICAgICAgICAgICAgICAgVkFMVUVTICg/LD8sPyw/LD8sPyknOwoJICAkaWR4ID0gMTsKCSAgZm9yZWFjaCggJHJlcyBhcyAkb25lICkKCSAgICB7CgkgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LAoJCQkgICBhcnJheSgkbmV3X2lkLCRvbmVbJ2ZpZWxkX3R5cGUnXSwkb25lWydmaWVsZF9uYW1lJ10sCgkJCQkgJG9uZVsnZmllbGRfcHJvbXB0J10sJG9uZVsnZmllbGRfdmFsdWUnXSwkaWR4KyspKTsKCSAgICB9CgoJICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoJfQogICAgfQp9CgppZiggJHJvdyApCnsKICAkc21hcnR5LT5hc3NpZ24oJ2NhdGVnb3J5Jywkcm93KTsKfQoKIyBEaXNwbGF5IFRlbXBsYXRlCiRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywKCQkkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwnY29weWNhdGVnb3J5JywkcmV0dXJuaWQpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRuYW1lJywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnbmFtZScsJG5hbWUsODAsMjU1KSk7CiRzbWFydHktPmFzc2lnbignaGlkZGVuJywkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdjYXRpZCcsJGNhdGlkKSk7CiRzbWFydHktPmFzc2lnbignc3VibWl0JywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdjYW5jZWwnLCBsYW5nKCdjYW5jZWwnKSkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdjb3B5Y2F0ZWdvcnkudHBsJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzdW1tYXJ5X25ld2RlZmF1bHQnLDApICkgewogIGluY2x1ZGVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL2FjdGlvbi5kZWZhdWx0Mi5waHAnKTsKICByZXR1cm47Cn0KCiRmaWVsZGVmcyA9ICcnOwp7CiAgJHRtcCA9ICR0aGlzLT5HZXRGaWVsZERlZnMoKTsKICBpZiggaXNfYXJyYXkoJHRtcCkgKQogICAgewogICAgICAkZmllbGRkZWZzID0gYXJyYXkoKTsKICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKQoJewoJICAkb2JqID0gJHRtcFskaV07CgkgICRmaWVsZGRlZnNbJG9iai0+bmFtZV0gPSAkb2JqOwoJfQogICAgfQp9CgokcXVlcnkgPSAnJzsKJHF1ZXJ5MiA9ICcnOwokY291bnQgPSAnJzsKJHBhZ2UgPSAnJzsKJHN0YXJ0ZWxlbWVudCA9ICcnOwokbGltaXQgPSA5OTk5OTsKJHByb2R1Y3RsaXN0ID0gJyc7CiRzb3J0dHlwZSA9ICcnOwokY291bnRqb2lucyA9IGFycmF5KCk7CiRqb2lucyA9IGFycmF5KCk7CiRzb3J0ZmllbGQgPSAxOwp1bnNldCgkcGFyYW1zWydhc3NpZ24nXSk7CiRpbmxpbmUgPSBmYWxzZTsKJGRlZmF1bHRfZGV0YWlscGFnZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZXRhaWxwYWdlJywnJyk7CiRkZXRhaWxwYWdlID0gJGRlZmF1bHRfZGV0YWlscGFnZTsKaWYgKGlzc2V0KCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSkpCiAgewogICAgJGRldGFpbHBhZ2UgPSB0cmltKCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSk7CiAgfQppZiggIWVtcHR5KCRkZXRhaWxwYWdlKSAmJiAkZGV0YWlscGFnZSAhPSAtMSApCiAgewogICAgJG1hbmFnZXIgPSAkZ0Ntcy0+R2V0SGllcmFyY2h5TWFuYWdlcigpOwogICAgJG5vZGUgPSAkbWFuYWdlci0+c3VyZUdldE5vZGVCeUFsaWFzKCRkZXRhaWxwYWdlKTsKICAgIGlmIChpc3NldCgkbm9kZSkpCiAgICAgIHsKCSRjb250ZW50ID0gJG5vZGUtPkdldENvbnRlbnQoKTsJCglpZiAoaXNzZXQoJGNvbnRlbnQpKQoJICB7CgkgICAgJGRldGFpbHBhZ2UgPSAkY29udGVudC0+SWQoKTsKCSAgfQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRub2RlID0gJG1hbmFnZXItPnN1cmVHZXROb2RlQnlJZCgkZGV0YWlscGFnZSk7CglpZiAoIWlzc2V0KCRub2RlKSkKCSAgewoJICAgICRkZXRhaWxwYWdlID0gJyc7CgkgIH0KICAgICAgfQogICAgaWYoICRkZXRhaWxwYWdlICE9ICcnICkKICAgICAgewoJJHBhcmFtc1snY2Rfb3JpZ3BhZ2UnXSA9ICRyZXR1cm5pZDsKICAgICAgfQogIH0KCiR0aGV0ZW1wbGF0ZSA9ICdzdW1tYXJ5XycuJHRoaXMtPkdldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ERkxUU1VNTUFSWV9URU1QTEFURSk7CmlmKCBpc3NldCgkcGFyYW1zWydzdW1tYXJ5dGVtcGxhdGUnXSApICkKICB7CiAgICAkdGhldGVtcGxhdGUgPSAnc3VtbWFyeV8nLiRwYXJhbXNbJ3N1bW1hcnl0ZW1wbGF0ZSddOwogIH0KCgppZiggaXNzZXQoJHBhcmFtc1sncHJvZHVjdGxpc3QnXSkgKQogIHsKICAgICRwcm9kdWN0bGlzdCA9ICRwYXJhbXNbJ3Byb2R1Y3RsaXN0J107CiAgICB1bnNldCgkcGFyYW1zWydwcm9kdWN0bGlzdCddKTsKICAgIGlmKCAhaXNfYXJyYXkoJHByb2R1Y3RsaXN0KSApCiAgICAgIHsKCSRwcm9kdWN0bGlzdCA9IGV4cGxvZGUoJywnLCRwcm9kdWN0bGlzdCk7CiAgICAgIH0KICB9CmlmKCAhKGlzX2FycmF5KCRwcm9kdWN0bGlzdCkgJiYgY291bnQoJHByb2R1Y3RsaXN0KSA+IDApICkKICB7CiAgICAvLyB3ZSBkb24ndCBoYXZlIGFuIGV4cGxpY2l0IHByb2R1Y3QgbGlzdCwgc28gZ290dGEgYnVpbGQgYSBxdWVyeQogICAgLy8gZnJvbSBvdGhlciBwYXJhbWV0ZXJzCiAgICAkc29ydG9yZGVyID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NvcnRvcmRlcicsJ2FzYycpOwogICAgaWYoIGlzc2V0KCAkcGFyYW1zWydzb3J0b3JkZXInXSApICkKICAgICAgewoJc3dpdGNoKCAkcGFyYW1zWydzb3J0b3JkZXInXSApCgkgIHsKCSAgY2FzZSAnYXNjJzoKCSAgY2FzZSAnZGVzYyc6CgkgICAgJHNvcnRvcmRlciA9ICRwYXJhbXNbJ3NvcnRvcmRlciddOwoJICB9CiAgICAgIH0KICAgIAogICAgJHNvcnRieSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzb3J0YnknLCdwcm9kdWN0X25hbWUnKTsKICAgIGlmKCBpc3NldCggJHBhcmFtc1snc29ydGJ5J10gKSApCiAgICAgIHsKCSR0bXAgPSBzdHJ0b2xvd2VyKHRyaW0oJHBhcmFtc1snc29ydGJ5J10pKTsKCXN3aXRjaCggJHRtcCApCgkgIHsKCSAgY2FzZSAnaWQnOgoJICAgICRzb3J0YnkgPSAnaWQnOwoJICAgIGJyZWFrOwoJCgkgIGNhc2UgJ3Byb2R1Y3RfbmFtZSc6CgkgICAgJHNvcnRieSA9ICdwcm9kdWN0X25hbWUnOwoJICAgIGJyZWFrOwoJICBjYXNlICdwcmljZSc6CgkgICAgJHNvcnRieSA9ICdwcmljZSc7CgkgICAgYnJlYWs7CgkgIGNhc2UgJ2NyZWF0ZWQnOgoJICAgICRzb3J0YnkgPSAnY3JlYXRlX2RhdGUnOwoJICAgIGJyZWFrOwoJICBjYXNlICdtb2RpZmllZCc6CgkgICAgJHNvcnRieSA9ICdtb2RpZmllZF9kYXRlJzsKCSAgICBicmVhazsKCSAgY2FzZSAnc3RhdHVzJzoKCSAgICAkc29ydGJ5ID0gJ3N0YXR1cyc7CgkgICAgYnJlYWs7CgkgIGNhc2UgJ3dlaWdodCc6CgkgICAgJHNvcnRieSA9ICd3ZWlnaHQnOwoJICAgIGJyZWFrOwoJICBjYXNlICdyYW5kb20nOgoJICAgICRzb3J0YnkgPSAnUkFORCgpJzsKCSAgICAkc29ydG9yZGVyID0gJyc7CgkgICAgYnJlYWs7CgkgIGRlZmF1bHQ6CgkgICAgaWYoIHN0YXJ0c3dpdGgoJHRtcCwnZjonKSApCgkgICAgICB7CgkJJGZpZWxkbmFtZSA9IHN1YnN0cigkdG1wLHN0cmxlbignZjonKSk7CgkJaWYoIGlzc2V0KCRmaWVsZGRlZnNbJGZpZWxkbmFtZV0pICkKCQkgIHsKCQkgICAgJGZpZWxkaWQgPSAkZmllbGRkZWZzWyRmaWVsZG5hbWVdLT5pZDsKCQkgICAgJGFzID0gJ0ZWJy4kc29ydGZpZWxkKys7CgkJICAgICRqb2luc1tdID0gY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIHskYXN9IE9OIGMuaWQgPSB7JGFzfS5wcm9kdWN0X2lkIEFORCAkYXMuZmllbGRkZWZfaWQgPSAiLiRkYi0+cXN0cigkZmllbGRpZCk7CgkJICAgICRzb3J0YnkgPSAieyRhc30udmFsdWUiOwoJCSAgfQoJICAgICAgfQoJICAgIGJyZWFrOwoJICB9CiAgICAgIH0KICAgIGlmKCAkc29ydGJ5ID09ICdyYW5kb20nICkKICAgICAgewoJJHNvcnRieSA9ICdSQU5EKCknOwoJJHNvcnRvcmRlciA9ICcnOwogICAgICB9CgogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ3NvcnR0eXBlJ10pICkKICAgICAgewoJJHRtcCA9IHRyaW0oJHBhcmFtc1snc29ydHR5cGUnXSk7CgkkdG1wID0gc3RydG91cHBlcigkdG1wKTsKCXN3aXRjaCggJHRtcCApCgkgIHsKCSAgY2FzZSAnU1RSSU5HJzoKCSAgICAkc29ydHR5cGUgPSAnJzsKCSAgICBicmVhazsKCSAgY2FzZSAnU0lHTkVEJzoKCSAgY2FzZSAnVU5TSUdORUQnOgoJICAgICRzb3J0dHlwZSA9ICR0bXA7CgkgIH0KICAgICAgfQogICAgJGxpbWl0ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3N1bW1hcnlfcGFnZWxpbWl0JywxMDAwMCk7CiAgICBpZiggaXNzZXQoJHBhcmFtc1sncGFnZWxpbWl0J10pICkKICAgICAgewoJJGxpbWl0ID0gKGludCkkcGFyYW1zWydwYWdlbGltaXQnXTsKICAgICAgfQogICAgJGxpbWl0ID0gbWF4KCRsaW1pdCwxKTsKICAgICRsaW1pdCA9IG1pbigkbGltaXQsMTAwMDApOwoKICAgICRwYWdlID0gMTsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydwYWdlJ10pICkKICAgICAgewoJJHBhZ2UgPSAoaW50KSRwYXJhbXNbJ3BhZ2UnXTsKCWlmKCAkcGFnZSA8IDEgKSAkcGFnZSA9IDE7CiAgICAgIH0KICAgICRzdGFydGVsZW1lbnQgPSAoJHBhZ2UtMSkqJGxpbWl0OwoKICAgICRjYXRlZ29yeSA9ICcnOwogICAgJGlucHV0Y2F0ID0gJyc7CiAgICBpZiggaXNzZXQoICRwYXJhbXNbJ2NhdGVnb3J5J10gKSApCiAgICAgIHsKCSRjYXRlZ29yeSA9IHRyaW0oJHBhcmFtc1snY2F0ZWdvcnknXSk7CgkkY2F0ZWdvcnkgPSBjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKCRjYXRlZ29yeSk7CiAgICAgIH0KICAgIGVsc2UgaWYgKGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5aWQnXSkpCiAgICAgIHsKCSRjYXRlZ29yeWlkID0gJHBhcmFtc1snY2F0ZWdvcnlpZCddOwogICAgICB9CgogICAgJGV4Y2x1ZGVjYXQgPSAnJzsKICAgIGlmIChpc3NldCgkcGFyYW1zWydleGNsdWRlY2F0J10pICkKICAgICAgewoJJGV4Y2x1ZGVjYXQgPSB0cmltKCRwYXJhbXNbJ2V4Y2x1ZGVjYXQnXSk7CgkkZXhjbHVkZWNhdCA9IGNtc19odG1sX2VudGl0eV9kZWNvZGUoJGV4Y2x1ZGVjYXQpOwogICAgICB9CgogICAgJGhpZXJhcmNoeSA9ICcnOwogICAgaWYoIGlzc2V0KCAkcGFyYW1zWydoaWVyYXJjaHknXSApICkKICAgICAgewoJJGhpZXJhcmNoeSA9IHRyaW0oJHBhcmFtc1snaGllcmFyY2h5J10pOwogICAgICB9CiAgICAkaGllcmFyY2h5aWQgPSAtMTAwOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2hpZXJhcmNoeWlkJ10pICkKICAgICAgewoJJGhpZXJhcmNoeWlkID0gKGludCkkcGFyYW1zWydoaWVyYXJjaHlpZCddOwogICAgICB9CgogICAgJGZpZWxkaWQgPSAtMTAwOwogICAgaWYoIGlzc2V0KCAkcGFyYW1zWydmaWVsZGlkJ10pICkKICAgICAgewoJJGZpZWxkaWQgPSAoaW50KSRwYXJhbXNbJ2ZpZWxkaWQnXTsKICAgICAgfQogICAgJGZpZWxkdmFsID0gJyc7CiAgICBpZiggaXNzZXQoICRwYXJhbXNbJ2ZpZWxkdmFsJ10gKSApCiAgICAgIHsKCSRmaWVsZHZhbCA9IHRyaW0oJHBhcmFtc1snZmllbGR2YWwnXSk7CiAgICAgIH0KCgogICAgLy8KICAgIC8vIEJ1aWxkIHRoZSBxdWVyaWVzCiAgICAvLwogICAgJGVudHJ5YXJyYXkgPSBhcnJheSgpOwogICAgJHBhcmFtYXJyYXkgPSBhcnJheSgpOwogICAgJHdoZXJlID0gYXJyYXkoKTsKICAgICRxdWVyeSA9ICJTRUxFQ1QgYy4qIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0cyBjIjsKICAgICRxdWVyeTIgPSAiU0VMRUNUIGNvdW50KCopIGFzIGNvdW50IEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0cyBjIjsKICAgICR3aGVyZVtdID0gJ2Muc3RhdHVzID0gXCdwdWJsaXNoZWRcJyc7CiAgICBpZiAoIGlzc2V0KCRjYXRlZ29yeWlkKSAmJiAkY2F0ZWdvcnlpZCAhPSAnJykKICAgICAgewoJJHN0ciA9ICIgSU5ORVIgSk9JTiAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcyBjYyBPTiBjYy5wcm9kdWN0X2lkID0gYy5pZCI7CgkkcXVlcnkgLj0gJHN0cjsKCSRxdWVyeTIgLj0gJHN0cjsKCSR3aGVyZVtdID0gJ2NjLmNhdGVnb3J5X2lkID0gPyc7CgkkcGFyYW1hcnJheVtdID0gJGNhdGVnb3J5aWQ7CiAgICAgIH0KICAgIGVsc2UgaWYoIGlzc2V0KCRjYXRlZ29yeSkgJiYgJGNhdGVnb3J5ICE9ICcnICkKICAgICAgewoJJHN0ciA9ICIgSU5ORVIgSk9JTiAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcyBjYyBPTiBjYy5wcm9kdWN0X2lkID0gYy5pZCI7CgkkcXVlcnkgLj0gJHN0cjsKCSRxdWVyeTIgLj0gJHN0cjsKCSRzdHIgPSAiIElOTkVSIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19jYXRlZ29yaWVzIGNzIE9OIGNzLmlkID0gY2MuY2F0ZWdvcnlfaWQiOwoJJHF1ZXJ5IC49ICRzdHI7CgkkcXVlcnkyIC49ICRzdHI7CgoJJGFycjEgPSBleHBsb2RlKCcsJywkY2F0ZWdvcnkpOwoJJGFycjIgPSBhcnJheSgpOwoJZm9yZWFjaCggJGFycjEgYXMgJHh4ICkKCSAgewoJICAgICRhcnIyW10gPSAkZGItPnFzdHIoJHh4KTsKCSAgfQoJJHR4dCA9IGltcGxvZGUoJywnLCRhcnIyKTsKCSR3aGVyZVtdID0gJ2NzLm5hbWUgSU4gKCcuJHR4dC4nKSc7CiAgICAgIH0KCiAgICBpZiggaXNzZXQoJGV4Y2x1ZGVjYXQpICYmICRleGNsdWRlY2F0ICE9ICcnICkKICAgICAgewoJJGFycjEgPSBleHBsb2RlKCcsJywkZXhjbHVkZWNhdCk7CgkkYXJyMiA9IGFycmF5KCk7Cglmb3JlYWNoKCAkYXJyMSBhcyAkeHggKQoJICB7CgkgICAgJGFycjJbXSA9ICRkYi0+cXN0cigkeHgpOwoJICB9CgkkdHh0ID0gaW1wbG9kZSgnLCcsJGFycjIpOwoJJHN1YnF1ZXJ5ID0gJ1NFTEVDVCBwYy5wcm9kdWN0X2lkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdWN0X2NhdGVnb3JpZXMgcGMKICAgICAgICAgICAgICAgICAgICAgTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyBjYwogICAgICAgICAgICAgICAgICAgICBPTiBwYy5jYXRlZ29yeV9pZCA9IGNjLmlkCiAgICAgICAgICAgICAgICAgICAgIFdIRVJFIGNjLm5hbWUgSU4gKCcuJHR4dC4nKSc7Cgkkd2hlcmVbXSA9ICdjLmlkIE5PVCBJTiAoJy4kc3VicXVlcnkuJyknOwogICAgICB9CgogICAgaWYgKCBpc3NldCgkaGllcmFyY2h5KSAmJiAkaGllcmFyY2h5ICE9ICcnICkKICAgICAgewoJJHN0ciA9ICIgSU5ORVIgSk9JTiAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hpZXIgcGggT04gcGgucHJvZHVjdF9pZCA9IGMuaWQiOwoJJHF1ZXJ5IC49ICRzdHI7CgkkcXVlcnkyIC49ICRzdHI7CgoJJHN0ciA9ICIgSU5ORVIgSk9JTiAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBoIE9OIHBoLmhpZXJhcmNoeV9pZCA9IGguaWQiOwoJJHF1ZXJ5IC49ICRzdHI7CgkkcXVlcnkyIC49ICRzdHI7CgoJJHRtcDIgPSBhcnJheSgpOwoJJHRtcCA9IGV4cGxvZGUoJywnLCRoaWVyYXJjaHkpOwoJZm9yZWFjaCggJHRtcCBhcyAkb25lICkKCSAgewoJICAgIGlmKCBzdHJzdHIoJG9uZSwnKicpICE9PSBGQUxTRSApCgkgICAgICB7CgkJJHRtcDJbXSA9ICJ1cHBlcihoLmxvbmdfbmFtZSkgTElLRSB1cHBlcig/KSI7CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCSR0bXAyW10gPSAidXBwZXIoaC5uYW1lKSA9IHVwcGVyKD8pIjsKCSAgICAgIH0KCgkgICAgJG9uZSA9IGNtc19odG1sX2VudGl0eV9kZWNvZGUoJG9uZSk7CgkgICAgJG9uZSA9IHRyaW0oc3RyX3JlcGxhY2UoJyonLCclJyxzdHJfcmVwbGFjZSgnIicsJ18nLCRvbmUpKSk7CgkgICAgJHBhcmFtYXJyYXlbXSA9ICRvbmU7CgkgIH0KCSRzdHIgPSAnKCcgLiBpbXBsb2RlKCcgT1IgJywkdG1wMikgLiAnKSc7Cgkkd2hlcmVbXSA9ICRzdHI7CiAgICAgIH0KICAgIGVsc2UgaWYoICRoaWVyYXJjaHlpZCA+IC0xMDAgKQogICAgICB7Cgkkc3RyID0gIiBJTk5FUiBKT0lOICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfcHJvZHRvaGllciBwaCBPTiBwaC5wcm9kdWN0X2lkID0gYy5pZCI7CgkkcXVlcnkgLj0gJHN0cjsKCSRxdWVyeTIgLj0gJHN0cjsKCgkkd2hlcmVbXSA9ICJwaC5oaWVyYXJjaHlfaWQgPSA/IjsKCSRwYXJhbWFycmF5W10gPSAkaGllcmFyY2h5aWQ7CiAgICAgIH0KCiAgICBpZiggaXNzZXQoJGZpZWxkaWQpICYmICRmaWVsZGlkID4gMCAmJiBpc3NldCgkZmllbGR2YWwpICYmICFlbXB0eSgkZmllbGR2YWwpICkKICAgICAgewoJLy8gaGFuZGxlIGdhdGhlcmluZyBwcm9kdWN0cyB0aGF0IGhhdmUgYSBjZXJ0YWluIGZpZWxkIGlkLgoJaWYoICRmaWVsZHZhbCA9PSAnOjpudWxsOjonICkKCSAgewoJICAgIC8vIGhhbmRsZSBhIGNhc2Ugd2hlbiBhIGZpZWxkIGlzIG5vdCBzZXQgZm9yIGEgcHJvZHVjdC4KCSAgICAkY291bnRqb2luc1tdID0gY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIEZWQSBPTiBjLmlkID0gRlZBLnByb2R1Y3RfaWQgQU5EIEZWQS5maWVsZGRlZl9pZCA9ID8nOwoJICAgICRqb2luc1tdID0gY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIEZWQSBPTiBjLmlkID0gRlZBLnByb2R1Y3RfaWQgQU5EIEZWQS5maWVsZGRlZl9pZCA9ID8nOwoJICAgICR3aGVyZVtdID0gJyhGVkEudmFsdWUgSVMgTlVMTCknOwoJICAgIGFycmF5X3Vuc2hpZnQoJHBhcmFtYXJyYXksJGZpZWxkaWQpOwoJICAgIC8vJHBhcmFtYXJyYXlbXSA9ICRmaWVsZGlkOwoJICB9CglpZiggJGZpZWxkdmFsID09ICc6Om5vdG51bGw6OicgKQoJICB7CgkgICAgLy8gaGFuZGxlIGEgY2FzZSB3aGVuIGEgZmllbGQgaXMgbm90IHNldCBmb3IgYSBwcm9kdWN0LgoJICAgICRjb3VudGpvaW5zW10gPSBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgRlZBIE9OIGMuaWQgPSBGVkEucHJvZHVjdF9pZCBBTkQgRlZBLmZpZWxkZGVmX2lkID0gPyc7CgkgICAgJGpvaW5zW10gPSBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgRlZBIE9OIGMuaWQgPSBGVkEucHJvZHVjdF9pZCBBTkQgRlZBLmZpZWxkZGVmX2lkID0gPyc7CgkgICAgJHdoZXJlW10gPSAnKEZWQS52YWx1ZSAhPSBcJ1wnKSc7CgkgICAgYXJyYXlfdW5zaGlmdCgkcGFyYW1hcnJheSwkZmllbGRpZCk7CgkgIH0KCWVsc2UKCSAgewoJICAgIC8vIGxpbWl0IHJlc3VsdHMgdG8gYWxsIG9mIHRoZSBpdGVtcyB0aGF0IGhhdmUgdGhpcyBmaWVsZCB2YWx1ZS4KCSAgICAkY291bnRqb2luc1tdID0gY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIEZWQSBPTiBjLmlkID0gRlZBLnByb2R1Y3RfaWQgQU5EIEZWQS5maWVsZGRlZl9pZCA9ID8nOwoJICAgICRqb2luc1tdID0gY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIEZWQSBPTiBjLmlkID0gRlZBLnByb2R1Y3RfaWQgQU5EIEZWQS5maWVsZGRlZl9pZCA9ID8nOwoJICAgICR3aGVyZVtdID0gJ0ZWQS52YWx1ZSA9ID8nOwoJICAgIGFycmF5X3Vuc2hpZnQoJHBhcmFtYXJyYXksJGZpZWxkaWQpOwoJICAgIC8vJHBhcmFtYXJyYXlbXSA9ICRmaWVsZGlkOwoJICAgICRwYXJhbWFycmF5W10gPSAkZmllbGR2YWw7CgkgIH0KICAgICAgfQoKICAgIGlmKCBjb3VudCgkam9pbnMpICkKICAgICAgewoJJHF1ZXJ5IC49ICcgTEVGVCBKT0lOICcuaW1wbG9kZSgnIExFRlQgSk9JTiAnLCRqb2lucyk7CiAgICAgIH0KICAgIGlmKCBjb3VudCgkY291bnRqb2lucykgKQogICAgICB7CgkkcXVlcnkyIC49ICcgTEVGVCBKT0lOICcuaW1wbG9kZSgnIExFRlQgSk9JTiAnLCRjb3VudGpvaW5zKTsKICAgICAgfQogICAgJHF1ZXJ5ID0gJHF1ZXJ5IC4gJyBXSEVSRSAnIC4gaW1wbG9kZSgnIEFORCAnLCR3aGVyZSApOwogICAgJHF1ZXJ5MiA9ICRxdWVyeTIgLiAnIFdIRVJFICcgLiBpbXBsb2RlKCcgQU5EICcsJHdoZXJlICk7CiAgICBpZiggJHNvcnR0eXBlID09ICcnICkKICAgICAgewoJJHF1ZXJ5IC49ICIgT1JERVIgQlkgIi4kc29ydGJ5LiIgIi4kc29ydG9yZGVyOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRxdWVyeSAuPSAnIE9SREVSIEJZIENBU1QoJy4kc29ydGJ5LicgQVMgJy4kc29ydHR5cGUuJykgJy4kc29ydG9yZGVyOwogICAgICB9CgogICAgLy8gRXhlY3V0ZSB0aGUgUXVlcmllcwogICAgJGNvdW50ID0gJGRiLT5HZXRPbmUoJHF1ZXJ5MiwkcGFyYW1hcnJheSk7CiAgICBpZiggJGNvdW50ID09IDAgKSByZXR1cm47CiAgICAkZGJyZXN1bHQgPSAkZGItPlNlbGVjdExpbWl0KCRxdWVyeSwgJGxpbWl0LCAkc3RhcnRlbGVtZW50LCAkcGFyYW1hcnJheSk7CiAgICBpZiggISRkYnJlc3VsdCApIAogICAgICB7CgllY2hvICRkYi0+c3FsLic8YnIvPic7IGRpZSggJGRiLT5FcnJvck1zZygpICk7CiAgICAgIH0KCiAgfSAvLyBlbmQgcHJvZHVjdCBsaXN0IG5vdCBzcGVjaWZpZWQuCmVsc2UKICB7CiAgICAvLyBhIHByb2R1Y3QgaWQgbGlzdCB3YXMgc3BlY2lmaWVkCiAgICAvLyB3aGljaCBtZWFucyB3ZSBkaXNwbGF5IG9ubHkgdGhlIHByb2R1Y3RzIHNwZWNpZmllZC4KICAgICRjb3VudCA9IGNvdW50KCRwcm9kdWN0bGlzdCk7CiAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzIFdIRVJFIGlkIElOICgnOwogICAgCiAgICAvLyBjbGVhbiB1cCB0aGUgcHJvZHVjdGxpc3QsIGp1c3QgaW4gY2FzZQogICAgJHByb2R1Y3RsaXN0ID0gYXJyYXlfdW5pcXVlKCRwcm9kdWN0bGlzdCk7CiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkcHJvZHVjdGxpc3QpOyAkaSsrICkKICAgICAgewoJJHByb2R1Y3RsaXN0WyRpXSA9IChpbnQpJHByb2R1Y3RsaXN0WyRpXTsKICAgICAgfQogICAgJHF1ZXJ5IC49IGltcGxvZGUoJywnLCRwcm9kdWN0bGlzdCkuJyknOwogICAgCiAgICAkZGJyZXN1bHQgPSAkZGItPlNlbGVjdExpbWl0KCRxdWVyeSwxMDAwLDApOwogIH0KCgoKLy8gRGV0ZXJtaW5lIHRoZSBudW1iZXIgb2YgcGFnZXMKJG5wYWdlcyA9IGludHZhbCgkY291bnQgLyAkbGltaXQpOwppZiggJGNvdW50ICUgJGxpbWl0ICE9IDAgKSAkbnBhZ2VzKys7CgovLyBidWlsZCB0aGUgb2JqZWN0IGxpc3QKJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwp3aGlsZSAoJGRicmVzdWx0ICYmICgkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSkKewogIGlmKCAkZGV0YWlscGFnZSA9PSAnJyB8fCAkZGV0YWlscGFnZSA9PSAtMSApICRkZXRhaWxwYWdlID0gJHJldHVybmlkOwoKICAkZmlsZWRpciA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJHRoaXMtPkdldE5hbWUoKSwncHJvZHVjdF8nLiRyb3dbJ2lkJ10pOwogICRvbmVyb3cgPSBjZ2VfYXJyYXk6OnRvX29iamVjdCgkcm93KTsKICAkcHJldHR5X3VybCA9ICcnOwogIGlmKCBwcm9kdWN0X3V0aWxzOjpjYW5fZG9fcHJldHR5KCRwYXJhbXNbJ25vdHByZXR0eSddKSApIHsKICAgICRwcmV0dHl1cmwgPSBwcm9kdWN0X29wczo6cHJldHR5X3VybCgkcm93WydpZCddLCRkZXRhaWxwYWdlKTsKICB9CiAgCiAgJHBhcm1zID0gJHBhcmFtczsKICAkcGFybXNbJ3Byb2R1Y3RpZCddID0gJHJvd1snaWQnXTsKICAkb25lcm93LT5kZXRhaWxfdXJsID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkZXRhaWxzJywkZGV0YWlscGFnZSwnJywkcGFybXMsCgkJCQkJICAnJyx0cnVlLCRpbmxpbmUsJycsZmFsc2UsJHByZXR0eXVybCk7CiAgJG9uZXJvdy0+cHJvZHVjdF9uYW1lX2xpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdkZXRhaWxzJywgJGRldGFpbHBhZ2UsICRyb3dbJ3Byb2R1Y3RfbmFtZSddLCAkcGFybXMpOwogICRvbmVyb3ctPmZpbGVfbG9jYXRpb24gPSAkY29uZmlnWyd1cGxvYWRzX3VybCddLicvJy4kdGhpcy0+R2V0TmFtZSgpLicvcHJvZHVjdF8nLiRyb3dbJ2lkJ107CiAgJG9uZXJvdy0+ZGV0YWlscyA9ICRyb3dbJ2RldGFpbHMnXTsKCiAgJG9uZXJvdy0+aGllcmFyY2h5X2lkID0gcHJvZHVjdF9vcHM6OmdldF9wcm9kdWN0X2hpZXJhcmNoeV9pZCgkcm93WydpZCddKTsKICAkb25lcm93LT5icmVhZGNydW1iID0gcHJvZHVjdF9vcHM6OmNyZWF0ZV9oaWVyYXJjaHlfYnJlYWRjcnVtYigkaWQsJHJvd1snaWQnXSwkcmV0dXJuaWQpOwoKICAvLyBhZGQgY3VzdG9tIGZpZWxkcwogICRmaWVsZGRlZnMgPSAkdGhpcy0+R2V0RmllbGREZWZzRm9yUHJvZHVjdCgkcm93WydpZCddLHRydWUsdHJ1ZSk7CiAgJGZpZWxkcyA9IGFycmF5KCk7CiAgZm9yZWFjaCggJGZpZWxkZGVmcyBhcyAkdG9uZWRlZiApCiAgICB7CiAgICAgICRvbmVkZWYgPSBjbG9uZSAkdG9uZWRlZjsKICAgICAgaWYoICRvbmVkZWYtPnR5cGUgPT0gJ2ltYWdlJyApCgl7CgkgIGlmKCBpc3NldCgkb25lZGVmLT52YWx1ZSkgJiYgZmlsZV9leGlzdHMoY21zX2pvaW5fcGF0aCgkZmlsZWRpciwndGh1bWJfJy4kb25lZGVmLT52YWx1ZSkpICkKCSAgICB7CgkgICAgICAkb25lZGVmLT50aHVtYm5haWwgPSAndGh1bWJfJy4kb25lZGVmLT52YWx1ZTsKCSAgICB9CgoJICBpZiggaXNzZXQoJG9uZWRlZi0+dmFsdWUpICYmIGZpbGVfZXhpc3RzKGNtc19qb2luX3BhdGgoJGZpbGVkaXIsJ3ByZXZpZXdfJy4kb25lZGVmLT52YWx1ZSkpICkKCSAgICB7CgkgICAgICAkb25lZGVmLT5wcmV2aWV3ID0gJ3ByZXZpZXdfJy4kb25lZGVmLT52YWx1ZTsKCSAgICB9Cgl9CiAgICAgICRmaWVsZHNbJG9uZWRlZi0+bmFtZV0gPSAkb25lZGVmOwogICAgfQogICRvbmVyb3ctPmZpZWxkcyA9ICRmaWVsZHM7CgogIC8vIGFkZCBjYXRlZ29yaWVzCiAgJGNhdGFycmF5ID0gJHRoaXMtPkdldENhdGVnb3JpZXNGb3JQcm9kdWN0KCRwYXJtc1sncHJvZHVjdGlkJ10sdHJ1ZSx0cnVlKTsKICBpZiggY291bnQoJGNhdGFycmF5KSApCiAgICB7CiAgICAgICRjYXRuYW1lYXJyYXkgPSBhcnJheSgpOwogICAgICBmb3JlYWNoKCAkY2F0YXJyYXkgYXMgJG9uZWNhdCApCgl7CgkgICRjYXRuYW1lYXJyYXlbXSA9ICRvbmVjYXQtPm5hbWU7Cgl9CiAgICAgICRvbmVyb3ctPmNhdGVnb3JpZXMgPSAkY2F0YXJyYXk7CiAgICAgICRvbmVyb3ctPmNhdGVnb3J5bmFtZXMgPSAkY2F0bmFtZWFycmF5OwogICAgfQoKICAvLyBhZGQgYXR0cmlidXRlcyAuLi4gZGVwcmVjYXRlZC4KICAkdG1wID0gcHJvZHVjdF9vcHM6OmdldF9wcm9kdWN0X2F0dHJpYnV0ZXNfZnVsbCgkcGFybXNbJ3Byb2R1Y3RpZCddKTsKICBpZiggaXNfYXJyYXkoJHRtcCkgKQogICAgewogICAgICAkb25lcm93LT5hdHRyaWJ1dGVzID0gJHRtcDsKICAgICAgJG9uZXJvdy0+YXR0cmlic19mdWxsID0gJHRtcDsKICAgIH0KCiAgJGVudHJ5YXJyYXlbXSA9ICRvbmVyb3c7Cn0KCi8vCi8vIEdpdmUgZXZlcnl0aGluZyB0byBzbWFydHkKLy8KJHNtYXJ0eS0+YXNzaWduKCdpdGVtcycsICRlbnRyeWFycmF5KTsKJHNtYXJ0eS0+YXNzaWduKCd0b3RhbGNvdW50JywkY291bnQpOwokc21hcnR5LT5hc3NpZ24oJ2l0ZW1jb3VudCcsIGNvdW50KCRlbnRyeWFycmF5KSk7CiRzbWFydHktPmFzc2lnbigncGFnZXRleHQnLCR0aGlzLT5MYW5nKCdwYWdlJykpOwokc21hcnR5LT5hc3NpZ24oJ29mdGV4dCcsJHRoaXMtPkxhbmcoJ29mJykpOwokc21hcnR5LT5hc3NpZ24oJ3BhZ2Vjb3VudCcsJG5wYWdlcyk7CiRzbWFydHktPmFzc2lnbignY3VycGFnZScsJHBhZ2UpOwppZiggJHBhZ2UgPT0gMSApCiAgewogICAgJHNtYXJ0eS0+YXNzaWduKCdmaXJzdGxpbmsnLCR0aGlzLT5MYW5nKCdmaXJzdHBhZ2UnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3ByZXZsaW5rJywkdGhpcy0+TGFuZygncHJldnBhZ2UnKSk7CiAgfQplbHNlCiAgewogICAgJHBhcm1zID0gJHBhcmFtczsKICAgICRwYXJtc1sncGFnZSddID0gMTsKICAgICRzbWFydHktPmFzc2lnbignZmlyc3RsaW5rJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlZmF1bHQnLCRyZXR1cm5pZCwKCQkJCQkJICAkdGhpcy0+TGFuZygnZmlyc3RwYWdlJyksCgkJCQkJCSAgJHBhcm1zKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2ZpcnN0cGFnZV91cmwnLCR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnZGVmYXVsdCcsJHJldHVybmlkLCRwYXJtcykpOwogICAgJHBhcm1zWydwYWdlJ10gPSAkcGFnZSAtIDE7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3ByZXZsaW5rJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlZmF1bHQnLCRyZXR1cm5pZCwKCQkJCQkJICAkdGhpcy0+TGFuZygncHJldnBhZ2UnKSwKCQkJCQkJICAkcGFybXMpKTsKICAgICRzbWFydHktPmFzc2lnbigncHJldnBhZ2VfdXJsJywkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2RlZmF1bHQnLCRyZXR1cm5pZCwkcGFybXMpKTsKICB9CmlmKCAkcGFnZSA9PSAkbnBhZ2VzICkKICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2xhc3RsaW5rJywkdGhpcy0+TGFuZygnbGFzdHBhZ2UnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ25leHRsaW5rJywkdGhpcy0+TGFuZygnbmV4dHBhZ2UnKSk7CiAgfQplbHNlCiAgewogICAgJHBhcm1zID0gJHBhcmFtczsKICAgICRwYXJtc1sncGFnZSddID0gJG5wYWdlczsKICAgICRzbWFydHktPmFzc2lnbignbGFzdGxpbmsnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZGVmYXVsdCcsJHJldHVybmlkLAoJCQkJCQkgICR0aGlzLT5MYW5nKCdsYXN0cGFnZScpLAoJCQkJCQkgICRwYXJtcykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdsYXN0cGFnZV91cmwnLCR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnZGVmYXVsdCcsJHJldHVybmlkLCRwYXJtcykpOwogICAgJHBhcm1zWydwYWdlJ10gPSAkcGFnZSArIDE7CiAgICAkc21hcnR5LT5hc3NpZ24oJ25leHRsaW5rJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlZmF1bHQnLCRyZXR1cm5pZCwKCQkJCQkJICAkdGhpcy0+TGFuZygnbmV4dHBhZ2UnKSwKCQkJCQkJICAkcGFybXMpKTsKICAgICRzbWFydHktPmFzc2lnbignbmV4dHBhZ2VfdXJsJywkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2RlZmF1bHQnLCRyZXR1cm5pZCwkcGFybXMpKTsKICB9CgppZiggaXNzZXQoICRwYXJhbXNbJ3NlbGVjdGNhdGVnb3J5J10gKSApCiAgewoJJHF1ZXJ5ID0gIlNFTEVDVCBpZCwgbmFtZSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyBPUkRFUiBCWSBuYW1lIEFTQyI7CgkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCSRjYXRhcnJheSA9IGFycmF5KCcoU2VsZWN0IE9uZSknID0+ICcnKTsKCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCSAgewoJCSRjYXRhcnJheVskcm93WyduYW1lJ11dID0gJHJvd1snaWQnXTsKCSAgfQoJJHNtYXJ0eS0+YXNzaWduKCdjYXRmb3Jtc3RhcnQnLCAkdGhpcy0+Q3JlYXRlRnJvbnRlbmRGb3JtU3RhcnQoJGlkLCAkcmV0dXJuaWQpKTsKCSRzbWFydHktPmFzc2lnbignY2F0ZHJvcGRvd24nLCAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdjYXRlZ29yeWlkJywgJGNhdGFycmF5LCAtMSwgJGNhdGVnb3J5aWQsICcnKSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2NhdGJ1dHRvbicsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdpbnB1dHN1Ym1pdCcsICdTdWJtaXQnKSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2NhdGZvcm1lbmQnLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKICB9Cgokc21hcnR5LT5hc3NpZ24oJ2N1cnJlbmN5X3N5bWJvbCcscHJvZHVjdF9vcHM6OmdldF9jdXJyZW5jeV9zeW1ib2woKSk7CiRzbWFydHktPmFzc2lnbignd2VpZ2h0X3VuaXRzJyxwcm9kdWN0X29wczo6Z2V0X3dlaWdodF91bml0cygpKTsKCi8vCi8vIFByb2Nlc3MgdGhlIHRlbXBsYXRlCi8vCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgkdGhldGVtcGxhdGUpOwoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.default2.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKLy8gc2V0dXAgdGhlIHF1ZXJ5CnRyeSB7CiAgJHF1ZXJ5ID0gbmV3IHByb2R1Y3RzX3F1ZXJ5KCk7CiAgZm9yZWFjaCggJHBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSApIHsKICAgIHRyeSB7CiAgICAgICRxdWVyeVska2V5XSA9ICR2YWx1ZTsKICAgIH0KICAgIGNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CiAgICAgIC8vIGlnbm9yZSB0aGlzIGVycm9yLgogICAgfQogIH0KCiAgJHJlc3VsdHMgPSBuZXcgcHJvZHVjdHNfcmVzdWx0c2V0KCRxdWVyeSk7CiAgJHJlc3VsdHMtPmN1cnBhZ2UgPSAkcmV0dXJuaWQ7CiAgaWYoIGlzc2V0KCRwYXJhbXNbJ25vdHByZXR0eSddKSApIHsKICAgICRyZXN1bHRzLT5ub3RwcmV0dHkgPSAkcGFyYW1zWydub3RwcmV0dHknXTsKICB9CiAgaWYoIGlzc2V0KCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSkgKSB7CiAgICAkcmVzdWx0cy0+ZGV0YWlscGFnZSA9ICRwYXJhbXNbJ2RldGFpbHBhZ2UnXTsKICB9CiAgJGVudHJ5YXJyYXkgPSBhcnJheSgpOwogIHdoaWxlKCAhJHJlc3VsdHMtPkVPRiApIHsKICAgICRlbnRyeWFycmF5W10gPSAkcmVzdWx0cy0+Z2V0X3Byb2R1Y3RfZm9yX2Rpc3BsYXkoKTsKICAgICRyZXN1bHRzLT5Nb3ZlTmV4dCgpOwogIH0KCiAgLy8KICAvLyBnaXZlIGV2ZXJ5dGhpbmcgdG8gc21hcnR5CiAgLy8KICAkc21hcnR5LT5hc3NpZ24oJ2l0ZW1zJywkZW50cnlhcnJheSk7CiAgJHNtYXJ0eS0+YXNzaWduKCdpdGVtY291bnQnLGNvdW50KCRlbnRyeWFycmF5KSk7CiAgJHNtYXJ0eS0+YXNzaWduKCd0b3RhbGNvdW50JywkcmVzdWx0cy0+dG90YWxyb3dzKTsKICAkc21hcnR5LT5hc3NpZ24oJ3BhZ2Vjb3VudCcsJHJlc3VsdHMtPm51bXBhZ2VzKTsKICAkc21hcnR5LT5hc3NpZ24oJ2N1cnBhZ2UnLCRxdWVyeVsncGFnZSddKTsKICAkcGFnZSA9ICRxdWVyeVsncGFnZSddOwogIGlmKCAkcGFnZSA9PSAxICkgewogICAgJHNtYXJ0eS0+YXNzaWduKCdmaXJzdGxpbmsnLCR0aGlzLT5MYW5nKCdmaXJzdHBhZ2UnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3ByZXZsaW5rJywkdGhpcy0+TGFuZygncHJldnBhZ2UnKSk7CiAgfSBlbHNlIHsKICAgICRwYXJtcyA9ICRwYXJhbXM7CiAgICAkcGFybXNbJ3BhZ2UnXSA9IDE7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2ZpcnN0bGluaycsJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkZWZhdWx0JywkcmV0dXJuaWQsCgkJCQkJCSAgJHRoaXMtPkxhbmcoJ2ZpcnN0cGFnZScpLAoJCQkJCQkgICRwYXJtcykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdmaXJzdHBhZ2VfdXJsJywkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2RlZmF1bHQnLCRyZXR1cm5pZCwkcGFybXMpKTsKCiAgICAkcGFybXNbJ3BhZ2UnXSA9ICRwYWdlIC0gMTsKICAgICRzbWFydHktPmFzc2lnbigncHJldmxpbmsnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZGVmYXVsdCcsJHJldHVybmlkLAoJCQkJCQkgICR0aGlzLT5MYW5nKCdwcmV2cGFnZScpLAoJCQkJCQkgICRwYXJtcykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdwcmV2cGFnZV91cmwnLCR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnZGVmYXVsdCcsJHJldHVybmlkLCRwYXJtcykpOwogIH0KICAKICBpZiggJHBhZ2UgPT0gJHJlc3VsdHMtPm51bXBhZ2VzICkgewogICAgJHNtYXJ0eS0+YXNzaWduKCdsYXN0bGluaycsJHRoaXMtPkxhbmcoJ2xhc3RwYWdlJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCduZXh0bGluaycsJHRoaXMtPkxhbmcoJ25leHRwYWdlJykpOwogIH0gZWxzZSB7CiAgICAkcGFybXMgPSAkcGFyYW1zOwogICAgJHBhcm1zWydwYWdlJ10gPSAkcmVzdWx0cy0+bnVtcGFnZXM7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2xhc3RsaW5rJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlZmF1bHQnLCRyZXR1cm5pZCwKCQkJCQkJICAkdGhpcy0+TGFuZygnbGFzdHBhZ2UnKSwKCQkJCQkJICAkcGFybXMpKTsKICAgICRzbWFydHktPmFzc2lnbignbGFzdHBhZ2VfdXJsJywkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2RlZmF1bHQnLCRyZXR1cm5pZCwkcGFybXMpKTsKICAgICRwYXJtc1sncGFnZSddID0gJHBhZ2UgKyAxOwogICAgJHNtYXJ0eS0+YXNzaWduKCduZXh0bGluaycsJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkZWZhdWx0JywkcmV0dXJuaWQsCgkJCQkJCSAgJHRoaXMtPkxhbmcoJ25leHRwYWdlJyksCgkJCQkJCSAgJHBhcm1zKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ25leHRwYWdlX3VybCcsJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCdkZWZhdWx0JywkcmV0dXJuaWQsJHBhcm1zKSk7CiAgfQoKICAkdGhldGVtcGxhdGUgPSAnc3VtbWFyeV8nLiR0aGlzLT5HZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVFNVTU1BUllfVEVNUExBVEUpOwogIGlmKCBpc3NldCgkcGFyYW1zWydzdW1tYXJ5dGVtcGxhdGUnXSApICkgewogICAgJHRoZXRlbXBsYXRlID0gJ3N1bW1hcnlfJy4kcGFyYW1zWydzdW1tYXJ5dGVtcGxhdGUnXTsKICB9CgogICRzbWFydHktPmFzc2lnbigncGFnZXRleHQnLCR0aGlzLT5MYW5nKCdwYWdlJykpOwogICRzbWFydHktPmFzc2lnbignb2Z0ZXh0JywkdGhpcy0+TGFuZygnb2YnKSk7CiAgJHNtYXJ0eS0+YXNzaWduKCdjdXJyZW5jeV9zeW1ib2wnLHByb2R1Y3Rfb3BzOjpnZXRfY3VycmVuY3lfc3ltYm9sKCkpOwogICRzbWFydHktPmFzc2lnbignd2VpZ2h0X3VuaXRzJyxwcm9kdWN0X29wczo6Z2V0X3dlaWdodF91bml0cygpKTsgIAoKICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHRoZXRlbXBsYXRlKTsKfQpjYXRjaCggRXhjZXB0aW9uICRlICkgewogIGRpZSgkZS0+R2V0TWVzc2FnZSgpKTsKfQoKCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKI1RoZSB0YWJzCmVjaG8gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOwoKaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpKQp7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdwcm9kdWN0cycsJHRoaXMtPkxhbmcoJ3Byb2R1Y3RzJykpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZmllbGRkZWZzJywkdGhpcy0+TGFuZygnZmllbGRkZWZzJykpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignaGllcmFyY2h5JywkdGhpcy0+TGFuZygncHJvZHVjdF9oaWVyYXJjaHknKSk7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdjYXRlZ29yaWVzJywkdGhpcy0+TGFuZygnY2F0ZWdvcmllcycpKTsKfQoKaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSkKewogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignc3VtbWFyeV90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ3N1bW1hcnl0ZW1wbGF0ZXMnKSk7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdkZXRhaWxfdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdkZXRhaWx0ZW1wbGF0ZXMnKSk7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdieWhpZXJhcmNoeV90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ2J5aGllcmFyY2h5dGVtcGxhdGVzJykpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignY2F0ZWdvcnlsaXN0X3RlbXBsYXRlJywkdGhpcy0+TGFuZygnY2F0ZWdvcnlsaXN0dGVtcGxhdGVzJykpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignc2VhcmNoX3RlbXBsYXRlJywkdGhpcy0+TGFuZygnc2VhcmNodGVtcGxhdGVzJykpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZGVmYXVsdF90ZW1wbGF0ZXMnLCR0aGlzLT5MYW5nKCdkZWZhdWx0dGVtcGxhdGVzJykpOwp9CgppZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSkKICB7CiAgICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3ByZWZzJywkdGhpcy0+TGFuZygncHJlZmVyZW5jZXMnKSk7CiAgfQplY2hvICR0aGlzLT5FbmRUYWJIZWFkZXJzKCk7CgojVGhlIGNvbnRlbnQgb2YgdGhlIHRhYnMKZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CmlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSkKewkKICBlY2hvICR0aGlzLT5TdGFydFRhYigncHJvZHVjdHMnLCAkcGFyYW1zKTsKICBpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fcHJvZHVjdHN0YWIucGhwJyk7CiAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CgkKICBlY2hvICR0aGlzLT5TdGFydFRhYignZmllbGRkZWZzJywgJHBhcmFtcyk7CiAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX2ZpZWxkZGVmc190YWIucGhwJyk7CiAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CgkKICBlY2hvICR0aGlzLT5TdGFydFRhYignaGllcmFyY2h5JywgJHBhcmFtcyk7CiAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX2hpZXJhcmNoeV90YWIucGhwJyk7CiAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CgkKICBlY2hvICR0aGlzLT5TdGFydFRhYignY2F0ZWdvcmllcycsICRwYXJhbXMpOwogIGluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9jYXRlZ29yaWVzX3RhYi5waHAnKTsKICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKIH0KCmlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCAnTW9kaWZ5IFRlbXBsYXRlcycgKSApCiAgewogICAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX3RlbXBsYXRlc3RhYnMucGhwJyk7CiAgfQoKaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKQogIHsKICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdwcmVmcycsJHBhcmFtcyk7CiAgICBpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fcHJlZnN0YWIucGhwJyk7CiAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKICB9CgplY2hvICR0aGlzLT5FbmRUYWJDb250ZW50KCk7CgojIHZpbTp0cz00IHN3PTQgbm9ldAo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.defaulturl.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKCmlmKCBpc3NldCgkcGFyYW1zWydjYXRlZ29yeWlkJ10pIHx8IGlzc2V0KCRwYXJhbXNbJ2hpZXJhcmNoeWlkJ10pICkKICB7CiAgICAkdGhpcy0+RG9BY3Rpb24oJ2RlZmF1bHQnLCRpZCwkcGFyYW1zLCRyZXR1cm5pZCk7CiAgfQplbHNlIGlmKCBpc3NldCgkcGFyYW1zWydwYXJlbnQnXSkgKQogIHsKICAgICR0aGlzLT5Eb0FjdGlvbignaGllcmFyY2h5JywkaWQsJHBhcmFtcywkcmV0dXJuaWQpOwogIH0KZWxzZQogIHsKICAgICR0aGlzLT5Eb0FjdGlvbignZGV0YWlscycsICRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsKICB9CgojIHZpbTp0cz00IHN3PTQgbm9ldAo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.deletecategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYignY2F0ZWdvcmllcycpOwokY29uZmlnID0gJGdDbXMtPkdldENvbmZpZygpOwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpKQp7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCduZWVkcGVybWlzc2lvbicsIGFycmF5KCdNb2RpZnkgUHJvZHVjdHMnKSkpOwoJcmV0dXJuOwp9CmlmKCAhaXNzZXQoJHBhcmFtc1snY2F0aWQnXSkgKQp7CiAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwogIHJldHVybjsKfQokY2F0aWQgPSAoaW50KSRwYXJhbXNbJ2NhdGlkJ107CgovLyBHZXQgdGhlIGNhdGVnb3J5IGRldGFpbHMKJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yaWVzIFdIRVJFIGlkID0gPyc7CiRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCAkY2F0aWQpKTsKCi8vIE5vdyByZW1vdmUgYW55IGNhdGVnb3J5IGZpZWxkcwokcXVlcnkgLSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcyBXSEVSRSBjYXRlZ29yeV9pZCA9ID8nOwokcmVzdWx0cyA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5LGFycmF5KCRjYXRpZCkpOwpmb3JlYWNoKCAkcmVzdWx0cyBhcyAkb25lICkKewogIHN3aXRjaCgkb25lWydmaWVsZF90eXBlJ10pCiAgICB7CiAgICBjYXNlICdpbWFnZSc6CiAgICBjYXNlICdmaWxlJzoKICAgICAgJGZpbGVzID0gYXJyYXkoJHJvd1snZmllbGRfdmFsdWUnXSwndGh1bWJfJy4kcm93WydmaWVsZF92YWx1ZSddLCdwcmV2aWV3XycuJHJvd1snZmllbGRfdmFsdWUnXSk7CiAgICAgIGZvcmVhY2goICRmaWxlcyBhcyAkb25lICkKCXsKCSAgJGZuID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkdGhpcy0+R2V0TmFtZSgpLCdjYXRlZ29yaWVzJywkY2F0aWQsJG9uZSk7CgkgIGlmKCBmaWxlX2V4aXN0cygkZm4pICkKCSAgICB7CgkgICAgICBAdW5saW5rKCRmbik7CgkgICAgfQoJfQogICAgICBicmVhazsKICAgIH0KfQokcXVlcnkgPSAnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/JzsKJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkY2F0aWQpKTsKCi8vTm93IHJlbW92ZSB0aGUgY2F0ZWdvcnkKJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyBXSEVSRSBpZCA9ID8iOwokZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY2F0aWQpKTsKCi8vQW5kIHJlbW92ZSBpdCBmcm9tIGFueSBlbnRyaWVzCiRxdWVyeSA9ICJERUxFVEUgRlJPTSBtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzIFdIRVJFIGNhdGVnb3J5X2lkID0gPyI7CiRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjYXRpZCkpOwoKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.deletecategoryfield.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2NhdGVnb3JpZXMnKTsKCmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFByb2R1Y3RzJykpCnsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ25lZWRwZXJtaXNzaW9uJywgYXJyYXkoJ01vZGlmeSBQcm9kdWN0cycpKSk7CglyZXR1cm47Cn0KaWYoICFpc3NldCgkcGFyYW1zWydjYXRpZCddKSApCnsKICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nKSk7CiAgcmV0dXJuOwp9CmlmKCAhaXNzZXQoJHBhcmFtc1snZmxkbmFtZSddKSApCnsKICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nKSk7CiAgcmV0dXJuOwp9CgojCiMgSW5pdGlhbGl6YXRpb24KIwokY29uZmlnID0gJGdDbXMtPkdldENvbmZpZygpOwokY2F0aWQgPSAoaW50KSRwYXJhbXNbJ2NhdGlkJ107CiRmbGRuYW1lID0gdHJpbSgkcGFyYW1zWydmbGRuYW1lJ10pOwoKLy8gR2V0IHRoZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBkYXRhYmFzZQokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcyAKICAgICAgICAgICBXSEVSRSBjYXRlZ29yeV9pZCA9ID8gQU5EIGZpZWxkX25hbWUgPSA/JzsKJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSxhcnJheSgkY2F0aWQsJGZsZG5hbWUpKTsKCi8vIERlbGV0ZSBhbnkgZmlsZXMgdGhhdCBtYXkgYmUgYXR0YWNoZWQKc3dpdGNoKCAkcm93WydmaWVsZF90eXBlJ10gKQogIHsKICBjYXNlICdmaWxlJzoKICBjYXNlICdpbWFnZSc6CiAgICAkZmlsZXMgPSBhcnJheSgkcm93WydmaWVsZF92YWx1ZSddLCd0aHVtYl8nLiRyb3dbJ2ZpZWxkX3ZhbHVlJ10sJ3ByZXZpZXdfJy4kcm93WydmaWVsZF92YWx1ZSddKTsKICAgIGZvcmVhY2goICRmaWxlcyBhcyAkb25lICkKICAgICAgewoJJGZuID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkdGhpcy0+R2V0TmFtZSgpLCdjYXRlZ29yaWVzJywkY2F0aWQsJG9uZSk7CglpZiggZmlsZV9leGlzdHMoJGZuKSApCgkgIHsKCSAgICBAdW5saW5rKCRmbik7CgkgIH0KICAgICAgfQogIH0KCi8vIERlbGV0ZSB0aGUgcmVjb3JkCiRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcwogICAgICAgICAgIFdIRVJFIGNhdGVnb3J5X2lkID0gPyBBTkQgZmllbGRfbmFtZSA9ID8nOwokZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRjYXRpZCwkZmxkbmFtZSkpOwoKLy8gVXBkYXRlIHRoZSBjb3VudHMKJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcwogICAgICAgICAgICAgU0VUIGZpZWxkX29yZGVyID0gZmllbGRfb3JkZXIgLSAxCiAgICAgICAgICAgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/IEFORCBmaWVsZF9vcmRlciA+ID8nOwokZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRjYXRpZCwkcm93WydmaWVsZF9vcmRlciddKSk7CgovLyBSZWRpcmVjdAokdGhpcy0+UmVkaXJlY3QoJGlkLCdlZGl0Y2F0ZWdvcnlmaWVsZHMnLCRyZXR1cm5pZCwKCQlhcnJheSgnY2F0aWQnPT4kY2F0aWQpKTsKCiMKIyBFT0YKIwo/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+U2V0Q3VycmVudFRhYigncHJvZHVjdHMnKTsKCiRjb21waWQgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2NvbXBpZCddKSkKewoJJGNvbXBpZCA9ICRwYXJhbXNbJ2NvbXBpZCddOwp9CgokdGhpcy0+RGVsZXRlUHJvZHVjdCgkY29tcGlkKTsKCiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.delete_attribset.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBQcm9kdWN0cyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMgCiMgVmVyc2lvbjogMS4xLjUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFByb2R1Y3RzJykpIAogIHsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ25lZWRwZXJtaXNzaW9uJywgYXJyYXkoJ01vZGlmeSBQcm9kdWN0cycpKSk7CglyZXR1cm47CiAgfQppZiggIWlzc2V0KCRwYXJhbXNbJ2NvbXBpZCddKSApCiAgewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwoJcmV0dXJuOwogIH0KaWYoICFpc3NldCgkcGFyYW1zWydhdHRyc2V0aWQnXSkgKQogIHsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXJhbScpKTsKCXJldHVybjsKICB9CgokcXVlcnkgPSAnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJ1dGVzIAogICAgICAgICAgIFdIRVJFIGF0dHJpYl9zZXRfaWQgPSA/JzsKJGRiLT5FeGVjdXRlKCAkcXVlcnksIGFycmF5KCAkcGFyYW1zWydhdHRyc2V0aWQnXSkgKTsKCiRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnNldHMKICAgICAgICAgICBXSEVSRSBhdHRyaWJfc2V0X2lkID0gPyc7CiRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSggJHBhcmFtc1snYXR0cnNldGlkJ10pICk7CiAgICAgICAgICAgCiR0aGlzLT5SZWRpcmVjdCgkaWQsJ2VkaXRfYXR0cmlic2V0cycsJHJldHVybmlkLAoJCWFycmF5KCdjb21waWQnPT4kcGFyYW1zWydjb21waWQnXSkpOwpyZXR1cm47CgovLyBFT0YKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.details.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJHRoZXRlbXBsYXRlID0gJ2RldGFpbF8nLiR0aGlzLT5HZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVERFVEFJTF9URU1QTEFURSk7CmlmKCBpc3NldCgkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddICkgKQogIHsKICAgICR0aGV0ZW1wbGF0ZSA9ICdkZXRhaWxfJy4kcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddOwogIH0KCiRlbnRyeWFycmF5ID0gYXJyYXkoKTsKCmdsb2JhbCAkZ0NtczsKJGNvbmZpZyA9ICRnQ21zLT5HZXRDb25maWcoKTsKCiRxdWVyeSA9ICJTRUxFQ1QgQS4qLCBCLmhpZXJhcmNoeV9pZCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHMgQQogICAgICAgICAgIExFRlQgSk9JTiAiLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hpZXIgQgogICAgICAgICAgICAgT04gQS5pZCA9IEIucHJvZHVjdF9pZAogICAgICAgICAgIFdIRVJFIEEuc3RhdHVzID0gPyc7CiRwYXJtcyA9IGFycmF5KCdwdWJsaXNoZWQnKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ3Byb2R1Y3RpZCddKSApCiAgewogICAgJHF1ZXJ5IC49ICcgQU5EIEEuaWQgPSA/JzsKICAgICRwYXJtc1tdID0gJHBhcmFtc1sncHJvZHVjdGlkJ107CiAgfQplbHNlIGlmKCBpc3NldCgkcGFyYW1zWydhbGlhcyddKSApCiAgewogICAgJHF1ZXJ5IC49ICcgQU5EIEEuYWxpYXMgPSA/JzsKICAgICRwYXJtc1tdID0gJHBhcmFtc1snYWxpYXMnXTsKICB9CmVsc2UKICB7CiAgICAvLyBzaG91bGQgZ2VuZXJhdGUgYW4gZXJyb3IgaGVyZS4gIHRvZG8uCiAgICByZXR1cm47CiAgfQoKJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSwkcGFybXMpOwppZiAoICRyb3cgKQogIHsKICAgICRmaWxlZGlyID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkdGhpcy0+R2V0TmFtZSgpLCdwcm9kdWN0XycuJHJvd1snaWQnXSk7CiAgICAkb25lcm93ID0gY2dlX2FycmF5Ojp0b19vYmplY3QoJHJvdyk7CiAgICAkb25lcm93LT5maWxlX2xvY2F0aW9uID0gJGNvbmZpZ1sndXBsb2Fkc191cmwnXS4nLycuJHRoaXMtPkdldE5hbWUoKS4nL3Byb2R1Y3RfJy4kcm93WydpZCddOwoKICAgIC8vIGFkZCBjYW5vbmljYWwgZW50cnkuCiAgICAkb25lcm93LT5jYW5vbmljYWwgPSBwcm9kdWN0X29wczo6cHJldHR5X3VybCgkcm93WydpZCddKTsKICAgICRwYXJtcyA9IGFycmF5KCdwcm9kdWN0aWQnPT4kcGFyYW1zWydwcm9kdWN0aWQnXSk7CiAgICAkb25lcm93LT5kZXRhaWxfdXJsID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkZXRhaWxzJywkcmV0dXJuaWQsJycsJHBhcm1zLAoJCQkJCSAgICAnJyx0cnVlLGZhbHNlLCcnLGZhbHNlLCRvbmVyb3ctPmNhbm9uaWNhbCk7CgogICAgLy8gYWRkIGN1c3RvbSBmaWVsZHMKICAgICRmaWVsZGRlZnMgPSAkdGhpcy0+R2V0RmllbGREZWZzRm9yUHJvZHVjdCgkcm93WydpZCddKTsKICAgICRmaWVsZHMgPSBhcnJheSgpOwogICAgZm9yZWFjaCggJGZpZWxkZGVmcyBhcyAkb25lZGVmICkKICAgICAgewoJaWYoICRvbmVkZWYtPnR5cGUgPT0gJ2ltYWdlJyApCgkgIHsKCSAgICBpZiggaXNzZXQoJG9uZWRlZi0+dmFsdWUpICYmIGZpbGVfZXhpc3RzKGNtc19qb2luX3BhdGgoJGZpbGVkaXIsJ3RodW1iXycuJG9uZWRlZi0+dmFsdWUpKSApCgkgICAgICB7CgkJJG9uZWRlZi0+dGh1bWJuYWlsID0gJ3RodW1iXycuJG9uZWRlZi0+dmFsdWU7CgkgICAgICB9CgkgICAgaWYoIGlzc2V0KCRvbmVkZWYtPnZhbHVlKSAmJiBmaWxlX2V4aXN0cyhjbXNfam9pbl9wYXRoKCRmaWxlZGlyLCdwcmV2aWV3XycuJG9uZWRlZi0+dmFsdWUpKSApCgkgICAgICB7CgkJJG9uZWRlZi0+cHJldmlldyA9ICdwcmV2aWV3XycuJG9uZWRlZi0+dmFsdWU7CgkgICAgICB9CgkgIH0KCSRmaWVsZHNbJG9uZWRlZi0+bmFtZV0gPSAkb25lZGVmOwogICAgICB9CiAgICBpZiggY291bnQoJGZpZWxkcykgKQogICAgICB7Cgkkb25lcm93LT5maWVsZHMgPSAkZmllbGRzOwogICAgICB9CgogICAgLy8gaGllcmFyY2h5IGluZm9ybWF0aW9uCiAgICAkb25lcm93LT5oaWVyYXJjaHlfaWQgPSBwcm9kdWN0X29wczo6Z2V0X3Byb2R1Y3RfaGllcmFyY2h5X2lkKCRyb3dbJ2lkJ10pOwogICAgJG9uZXJvdy0+YnJlYWRjcnVtYiA9IHByb2R1Y3Rfb3BzOjpjcmVhdGVfaGllcmFyY2h5X2JyZWFkY3J1bWIoJGlkLCRyb3dbJ2lkJ10sJHJldHVybmlkKTsKCiAgICAvLyBhZGQgYXR0cmlidXRlcy4uLiB0aGlzIGlzIGRlcHJlY2F0ZWQuCiAgICAkdG1wID0gJHRoaXMtPkdldFByb2R1Y3RBdHRyaWJ1dGVEYXRhQ29tcGxldGUoJHJvd1snaWQnXSk7CiAgICBpZiggaXNfYXJyYXkoJHRtcCkgKQogICAgICB7Cgkkb25lcm93LT5hdHRyaWJ1dGVzID0gJHRtcDsKICAgICAgfQoKICAgICR0bXAgPSBwcm9kdWN0X29wczo6Z2V0X3Byb2R1Y3RfYXR0cmlidXRlc19mdWxsKCRyb3dbJ2lkJ10pOwogICAgaWYoIGlzX2FycmF5KCR0bXApICkKICAgICAgewoJJG9uZXJvdy0+YXR0cmlic19mdWxsID0gJHRtcDsKICAgICAgfQoKICAgIC8vIGFkZCBjYXRlZ29yaWVzCiAgICAkY2F0YXJyYXkgPSAkdGhpcy0+R2V0Q2F0ZWdvcmllc0ZvclByb2R1Y3QoJHJvd1snaWQnXSx0cnVlLHRydWUpOwogICAgJGNhdG5hbWVhcnJheSA9IGFycmF5KCk7CiAgICBpZiggY291bnQoJGNhdGFycmF5KSApCiAgICAgIHsKCSRjYXRuYW1lc2FycmF5ID0gYXJyYXkoKTsKCWZvcmVhY2goICRjYXRhcnJheSBhcyAkb25lY2F0ICkKCSAgewoJICAgICRjYXRuYW1lYXJyYXlbXSA9ICRvbmVjYXQtPm5hbWU7CgkgIH0KCSRvbmVyb3ctPmNhdGVnb3JpZXMgPSAkY2F0YXJyYXk7Cgkkb25lcm93LT5jYXRlZ29yeW5hbWVzID0gJGNhdG5hbWVhcnJheTsKICAgICAgfQogICAgCiAgICAkc21hcnR5LT5hc3NpZ25fYnlfcmVmKCdlbnRyeScsICRvbmVyb3cpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdjdXJyZW5jeV9zeW1ib2wnLHByb2R1Y3Rfb3BzOjpnZXRfY3VycmVuY3lfc3ltYm9sKCkpOwogICAgJHNtYXJ0eS0+YXNzaWduKCd3ZWlnaHRfdW5pdHMnLHByb2R1Y3Rfb3BzOjpnZXRfd2VpZ2h0X3VuaXRzKCkpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yeXRleHQnLCBpbXBsb2RlKCIsICIsICRjYXRuYW1lYXJyYXkpKTsKCiAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHRoZXRlbXBsYXRlKTsKICB9CmVsc2UKICB7IAogICAgLy8gcHJvZHVjdCBub3QgZm91bmQgZm9yIHNvbWUgcmVhc29uLgogICAgJGFjdGlvbiA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwcm9kbm90Zm91bmQnLCdkb21zZycpOwogICAgc3dpdGNoKCRhY3Rpb24pCiAgICAgIHsKICAgICAgY2FzZSAnZG80MDQnOgoJY2dlX3JlZGlyZWN0OjpyZWRpcmVjdDQwNCgpOwoJYnJlYWs7CgogICAgICBjYXNlICdkbzMwMSc6CgkkcGFnZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwcm9kbm90Zm91bmRwYWdlJywtMSk7CglpZiggJHBhZ2UgIT0gJycgJiYgJHBhZ2UgIT0gLTEgKQoJICB7CgkgICAgY2dlX3JlZGlyZWN0OjpyZWRpcmVjdDMwMSgkcGFnZSk7CgkgIH0KCS8vIGZhbGwgdGhyb3VnaCB0byBkb21zZwoKICAgICAgY2FzZSAnZG9tc2cnOgogICAgICBkZWZhdWx0OgoJJG1zZyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwcm9kbm90Zm91bmRtc2cnLAoJCQkJICAgICR0aGlzLT5MYW5nKCdlcnJvcl9wcm9kdWN0X25vdGZvdW5kJykpOwoJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJG1zZyk7CglicmVhazsKICAgICAgfQogIH0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.do_search.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCi8vCi8vIGluaXRpYWxpemF0aW9uCi8vCiRzb3J0b3JkZXIgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc29ydG9yZGVyJywnYXNjJyk7CiRzb3J0YnkgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc29ydGJ5JywncHJvZHVjdF9uYW1lJyk7CiRmaWVsZHMgPSBhcnJheSgpOwp7CiAgJHRtcCA9ICR0aGlzLT5HZXRGaWVsZERlZnMoKTsKICBpZiggY291bnQoJHRtcCkgKQogICAgewogICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdG1wKTsgJGkrKyApCgl7CgkgICRvYmogPSYgJHRtcFskaV07CgkgICRmaWVsZHNbJG9iai0+bmFtZV0gPSAkb2JqOwoJfQogICAgfQp9CiRuYW1lX2V4cHIgPSAnJzsKJGRlc2NfZXhwciA9ICcnOwokcHJpY2VfZXhwciA9ICcnOwokcHJpY2VfbWluID0gJyc7CiRwcmljZV9tYXggPSAnJzsKJGFsbGFueSA9IDA7CiRzZWFyY2hkYXRhID0gYXJyYXkoKTsKJHdoZXJlID0gYXJyYXkoKTsKJHFwYXJtcyA9IGFycmF5KCk7CiRqb2lucyA9IGFycmF5KCk7CiRkZXRhaWxwYWdlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RldGFpbHBhZ2UnLCRyZXR1cm5pZCk7CiR0aGV0ZW1wbGF0ZSA9ICdzdW1tYXJ5XycuJHRoaXMtPkdldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ERkxUU1VNTUFSWV9URU1QTEFURSk7CiRkZXN0cGFnZSA9ICRyZXR1cm5pZDsKJHBhZ2VsaW1pdCA9IDEwMDA7CiRwYWdlbnVtID0gMTsKJG9mZnNldCA9IDA7CiRjb3VudCA9IDA7CiRlbnRyeWFycmF5ID0gJyc7CiRucGFnZXMgPSAwOwoKCi8vCi8vIGhhbmRsZSBwYXJhbXMKLy8KaWYoIGlzc2V0KCRwYXJhbXNbJ3N1bW1hcnl0ZW1wbGF0ZSddKSApCiAgewogICAgJHRoZXRlbXBsYXRlID0gJ3N1bW1hcnlfJy4kcGFyYW1zWydzdW1tYXJ5dGVtcGxhdGUnXTsKICB9CmlmKCBpc3NldCgkcGFyYW1zWydjZF9vcmlncGFnZSddKSApCiAgewogICAgJGRlc3RwYWdlID0gKGludCkkcGFyYW1zWydjZF9vcmlncGFnZSddOwogIH0KaWYoIGlzc2V0KCRwYXJhbXNbJ3BhZ2VsaW1pdCddKSApCiAgewogICAgJHBhZ2VsaW1pdCA9IChpbnQpJHBhcmFtc1sncGFnZWxpbWl0J107CiAgICAkcGFnZWxpbWl0ID0gbWF4KCRwYWdlbGltaXQsMSk7CiAgICAkcGFnZWxpbWl0ID0gbWluKDEwMDAsJHBhZ2VsaW1pdCk7CiAgfQppZiggaXNzZXQoJHBhcmFtc1sncGFnZW51bSddKSApCiAgewogICAgJHBhZ2VudW0gPSAoaW50KSRwYXJhbXNbJ3BhZ2VudW0nXTsKICAgICRwYWdlbnVtID0gbWF4KCRwYWdlbnVtLDEpOwogICAgJHBhZ2VudW0gPSBtaW4oMTAwMDAsJHBhZ2VudW0pOwogIH0KaWYoIGlzc2V0KCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSkgKQogIHsKICAgICRzdHIgPSB0cmltKCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSk7CiAgICBpZiggJHN0ciApCiAgICAgIHsKCSRzdHIgPSAkdGhpcy0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkc3RyKTsKICAgICAgfQogICAgaWYoICRzdHIgKQogICAgICB7CgkkZGV0YWlscGFnZSA9ICRzdHI7CiAgICAgIH0KICB9CgoKCi8vCi8vIGhhbmRsZSBmb3JtIHN1Ym1pc3Npb24KLy8KaWYoIGlzc2V0KCRwYXJhbXNbJ2NkX2NhbmNlbCddKSApCiAgewogICAgJHRoaXMtPlJlZGlyZWN0Q29udGVudCgkZGVzdHBhZ2UpOwogIH0KCmlmKCBpc3NldCgkcGFyYW1zWydzb3J0b3JkZXInXSkgKQogIHsKICAgICRzdHIgPSBzdHJ0b2xvd2VyKHRyaW0oJHBhcmFtc1snc29ydG9yZGVyJ10pKTsKICAgIHN3aXRjaCggJHN0ciApCiAgICAgIHsKICAgICAgY2FzZSAnYXNjJzoKICAgICAgY2FzZSAnZGVzYyc6Cgkkc29ydG9yZGVyID0gJHN0cjsKCWJyZWFrOwogICAgICB9CiAgfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ3NvcnRieSddKSApCiAgewogICAgJHN0ciA9IHN0cnRvbG93ZXIodHJpbSgkcGFyYW1zWydzb3J0YnknXSkpOwogICAgc3dpdGNoKCAkc3RyICkKICAgICAgewogICAgICBjYXNlICdpZCc6CiAgICAgIGNhc2UgJ3Byb2R1Y3RfbmFtZSc6CiAgICAgIGNhc2UgJ3ByaWNlJzoKICAgICAgY2FzZSAnY3JlYXRlZCc6CiAgICAgIGNhc2UgJ21vZGlmaWVkJzoKICAgICAgY2FzZSAnc3RhdHVzJzoKICAgICAgY2FzZSAnd2VpZ2h0JzoKICAgICAgY2FzZSAncmFuZG9tJzoKCSRzb3J0YnkgPSAkc3RyOwoJYnJlYWs7CiAgICAgIGRlZmF1bHQ6CglpZiggc3RhcnRzd2l0aCggJHN0ciwgJ2Y6JyApICkKCSAgewoJICAgICRmaWVsZG5hbWUgPSBzdWJzdHIoJHN0cixzdHJsZW4oJ2Y6JykpOwoJICAgIGlmKCBpc3NldCgkZmllbGRzWyRmaWVsZG5hbWVdKSApCgkgICAgICB7CgkJJGZpZWxkaWQgPSAkZmllbGRzWyRmaWVsZG5hbWVdLT5pZDsKCQkkYXMgPSAnRlYnLiRzb3J0ZmllbGQrKzsKCQkkam9pbnNbXSA9ICdMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgeyRhc30gT04gYy5pZCA9IHskYXN9LnByb2R1Y3RfaWQgQU5EICRhcy5maWVsZGRlZl9pZCA9ICd7JGZpZWxkaWR9JyI7CgkJJHNvcnRieSA9ICJ7JGFzfS52YWx1ZSI7CgkgICAgICB9CgkgIH0KICAgICAgfQogIH0KCmlmKCBpc3NldCgkcGFyYW1zWydjZF9wcm9kbmFtZSddKSApCiAgewogICAgJG5hbWVfZXhwciA9IHRyaW0oJHBhcmFtc1snY2RfcHJvZG5hbWUnXSk7CiAgfQppZiggaXNzZXQoJHBhcmFtc1snY2RfcHJvZGRlc2MnXSkgKQogIHsKICAgICRkZXNjX2V4cHIgPSB0cmltKCRwYXJhbXNbJ2NkX3Byb2RkZXNjJ10pOwogIH0KaWYoIGlzc2V0KCRwYXJhbXNbJ2NkX3Byb2RwcmljZV9taW4nXSkgfHwgaXNzZXQoJHBhcmFtc1snY2RfcHJvZHByaWNlX21heCddKSApCiAgewogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NkX3Byb2RwcmljZV9taW4nXSkgKQogICAgICB7CgkkcHJpY2VfbWluID0gKGZsb2F0KXRyaW0oJHBhcmFtc1snY2RfcHJvZHByaWNlX21pbiddKTsKICAgICAgfQogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NkX3Byb2RwcmljZV9tYXgnXSkgKQogICAgICB7CgkkcHJpY2VfbWF4ID0gKGZsb2F0KXRyaW0oJHBhcmFtc1snY2RfcHJvZHByaWNlX21heCddKTsKICAgICAgfQogIH0KZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snY2RfcHJvZHByaWNlJ10pICkKICB7CiAgICAkcHJpY2VfZXhwciA9IHRyaW0oJHBhcmFtc1snY2RfcHJvZHByaWNlJ10pOwogICAgaWYoICRwcmljZV9leHByID09IC0xICkgJHByaWNlX2V4cHIgPSAnJzsKICB9CmlmKCBpc3NldCgkcGFyYW1zWydjZF9hbGxhbnknXSkgKQogIHsKICAgICRhbGxhbnkgPSAoaW50KSRwYXJhbXNbJ2NkX2FsbGFueSddOwogIH0KCmlmKCBpc3NldCgkcGFyYW1zWydjZF9wcm9kdmFsdWUnXSkgJiYgIWlzX2FycmF5KCRwYXJhbXNbJ2NkX3Byb2R2YWx1ZSddKSApCiAgewogICAgJHBhcmFtc1snY2RfcHJvZHZhbHVlJ10gPSB1bnNlcmlhbGl6ZSgkcGFyYW1zWydjZF9wcm9kdmFsdWUnXSk7CiAgfQokdGZpZWxkcyA9IGFycmF5X2tleXMoJGZpZWxkcyk7CmZvcmVhY2goICR0ZmllbGRzIGFzICRvbmUgKQp7CiAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NkX3Byb2R2YWx1ZSddWyRvbmVdKSAmJgogICAgICAkcGFyYW1zWydjZF9wcm9kdmFsdWUnXVskb25lXSAhPSAnLTEnICYmCiAgICAgICFlbXB0eSgkcGFyYW1zWydjZF9wcm9kdmFsdWUnXVskb25lXSkgKQogICAgewogICAgICAkc2VhcmNoZGF0YVskb25lXSA9IHRyaW0oJHBhcmFtc1snY2RfcHJvZHZhbHVlJ11bJG9uZV0pOwogICAgICBjb250aW51ZTsKICAgIH0KCiAgJGtleTEgPSAnY2RfcHJvZHZhbHVlXycuJG9uZS4nX21pbic7CiAgJGtleTIgPSAnY2RfcHJvZHZhbHVlXycuJG9uZS4nX21heCc7CiAgaWYoIGlzc2V0KCRwYXJhbXNbJGtleTFdKSB8fCBpc3NldCgkcGFyYW1zWyRrZXkyXSkgKQogICAgewogICAgICAkdGRhdGEgPSBhcnJheSgnbWluJz0+JycsJ21heCc9PicnKTsKICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJGtleTFdKSApCgl7CgkgICR0ZGF0YVsnbWluJ10gPSAoZmxvYXQpdHJpbSgkcGFyYW1zWyRrZXkxXSk7Cgl9CiAgICAgIGlmKCBpc3NldCgkcGFyYW1zWyRrZXkyXSkgKQoJewoJICAkdGRhdGFbJ21heCddID0gKGZsb2F0KXRyaW0oJHBhcmFtc1ska2V5Ml0pOwoJfQoKICAgICAgaWYoICR0ZGF0YVsnbWluJ10gIT0gJHRkYXRhWydtYXgnXSApIAoJewoJICBpZiggJHRkYXRhWydtaW4nXSA+ICR0ZGF0YVsnbWF4J10gKQoJICAgIHsKCSAgICAgICR0bXAgPSAkdGRhdGFbJ21heCddOwoJICAgICAgJHRkYXRhWydtYXgnXSA9ICR0ZGF0YVsnbWluJ107CgkgICAgICAkdGRhdGFbJ21pbiddID0gJHRtcDsKCSAgICB9CgoJICAkc2VhcmNoZGF0YVskb25lXSA9ICR0ZGF0YTsKCX0KICAgIH0KfQoKLy8gYnVpbGQgdGhlIHF1ZXJ5CmlmKCAhZW1wdHkoJG5hbWVfZXhwcikgKQogIHsKICAgICR3aGVyZVtdID0gJ1AucHJvZHVjdF9uYW1lIFJFR0VYUCA/JzsKICAgICRxcGFybXNbXSA9ICRuYW1lX2V4cHI7CiAgfQppZiggIWVtcHR5KCRkZXNjX2V4cHIpICkKICB7CiAgICAkd2hlcmVbXSA9ICdQLmRldGFpbHMgUkVHRVhQID8nOwogICAgJHFwYXJtc1tdID0gJGRlc2NfZXhwcjsKICB9CmlmKCAkcHJpY2VfbWluICE9ICcnIHx8ICRwcmljZV9tYXggIT0gJycgKQogIHsKICAgIGlmKCAkcHJpY2VfbWluICE9ICcnICYmICRwcmljZV9tYXggIT0gJycgKQogICAgICB7CglpZiggJHByaWNlX21heCAhPSAkcHJpY2VfbWluICkKCSAgewoJICAgIGlmKCAkcHJpY2VfbWluID4gJHByaWNlX21heCApCgkgICAgICB7CgkJJHRtcCA9ICRwcmljZV9tYXg7CgkJJHByaWNlX21heCA9ICRwcmljZV9taW47CgkJJHByaWNlX21pbiA9ICR0bXA7CgkgICAgICB9CgoJICAgICR3aGVyZVtdID0gJyhQLnByaWNlIEJFVFdFRU4gPyBBTkQgPyknOwoJICAgICRxcGFybXNbXSA9ICRwcmljZV9taW47CgkgICAgJHFwYXJtc1tdID0gJHByaWNlX21heDsKCSAgfQogICAgICB9CiAgICBlbHNlIGlmKCAkcHJpY2VfbWluICE9ICcnICkKICAgICAgewoJJHdoZXJlW10gPSAnKFAucHJpY2UgPj0gPyknOwoJJHFwYXJtc1tdID0gJHByaWNlX21pbjsKICAgICAgfQogICAgZWxzZSBpZiggJHByaWNlX21heCAhPSAnJyApCiAgICAgIHsKCSR3aGVyZVtdID0gJyhQLnByaWNlIDw9ID8pJzsKCSRxcGFybXNbXSA9ICRwcmljZV9tYXg7CiAgICAgIH0KICB9CmVsc2UgaWYoICFlbXB0eSgkcHJpY2VfZXhwcikgKQogIHsKICAgIGxpc3QoJGxvdywkaGlnaCkgPSBleHBsb2RlKCc6JywkcHJpY2VfZXhwciwyKTsKICAgICRsb3cgPSAoZmxvYXQpJGxvdzsKICAgICRoaWdoID0gKGZsb2F0KSRoaWdoOwogICAgaWYoICRsb3cgPCAkaGlnaCApCiAgICAgIHsKCSR3aGVyZVtdID0gJyhQLnByaWNlIEJFVFdFRU4gPyBBTkQgPyknOwoJJHFwYXJtc1tdID0gJGxvdzsKCSRxcGFybXNbXSA9ICRoaWdoOwogICAgICB9CiAgfQppZiggIWVtcHR5KCRzZWFyY2hkYXRhKSApCiAgewogICAgJGpvaW5zW10gPSAnTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIEZWIE9OIFAuaWQgPSBGVi5wcm9kdWN0X2lkJzsKICAgIGZvcmVhY2goICRzZWFyY2hkYXRhIGFzICRwcm9wbmFtZSA9PiAkcHJvcHZhbCApCiAgICAgIHsKCWlmKCAhaXNfYXJyYXkoJHByb3B2YWwpICkKCSAgewoJICAgICR3aGVyZVtdID0gJyhGVi5maWVsZGRlZl9pZCA9ID8gQU5EIEZWLnZhbHVlIFJFR0VYUCA/KSc7CgkgICAgJHFwYXJtc1tdID0gJGZpZWxkc1skcHJvcG5hbWVdLT5pZDsKCSAgICAkcXBhcm1zW10gPSAkcHJvcHZhbDsKCSAgfQoJZWxzZSAKCSAgewoJICAgIGlmKCAkcHJvcHZhbFsnbWluJ10gIT0gJycgJiYgJHByb3B2YWxbJ21heCddICE9ICcnICkKCSAgICAgIHsKCQkkd2hlcmVbXSA9ICcoRlYuZmllbGRkZWZfaWQgPSA/IEFORCBGVi52YWx1ZSBCRVRXRUVOID8gQU5EID8pJzsKCQkkcXBhcm1zW10gPSAkZmllbGRzWyRwcm9wbmFtZV0tPmlkOwoJCSRxcGFybXNbXSA9ICRwcm9wdmFsWydtaW4nXTsKCQkkcXBhcm1zW10gPSAkcHJvcHZhbFsnbWF4J107CgkgICAgICB9CgkgICAgZWxzZSBpZiggJHByb3B2YWxbJ21pbiddICE9ICcnICkKCSAgICAgIHsKCQkkd2hlcmVbXSA9ICcoRlYuZmllbGRkZWZfaWQgPSA/IEFORCBGVi52YWx1ZSA+PSA/KSc7CgkJJHFwYXJtc1tdID0gJGZpZWxkc1skcHJvcG5hbWVdLT5pZDsKCQkkcXBhcm1zW10gPSAkcHJvcHZhbFsnbWluJ107CgkgICAgICB9CgkgICAgZWxzZSBpZiAoJHByb3B2YWxbJ21heCddICE9ICcnICkKCSAgICAgIHsKCQkkd2hlcmVbXSA9ICcoRlYuZmllbGRkZWZfaWQgPSA/IEFORCBGVi52YWx1ZSA8PSA/KSc7CgkJJHFwYXJtc1tdID0gJGZpZWxkc1skcHJvcG5hbWVdLT5pZDsKCQkkcXBhcm1zW10gPSAkcHJvcHZhbFsnbWF4J107CgkgICAgICB9CgkgIH0KICAgICAgfQogIH0KCiRxdSA9ICdTRUxFQ1QgUC4qIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cyBQJzsKJHFjID0gJ1NFTEVDVCBjb3VudChQLmlkKSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgUCc7CmlmKCBjb3VudCgkam9pbnMpICkKICB7CiAgICBmb3JlYWNoKCAkam9pbnMgYXMgJG9uZSApCiAgICAgIHsKCSRxdSAuPSAnICcuJG9uZTsKCSRxYyAuPSAnICcuJG9uZTsKICAgICAgfQogIH0KaWYoIGNvdW50KCR3aGVyZSkgKQogIHsKICAgICRleHByID0gJyBBTkQgJzsKICAgIGlmKCAkYWxsYW55ICkKICAgICAgewoJJGV4cHIgPSAnIE9SICc7CiAgICAgIH0KICAgICRxdSAuPSAnIFdIRVJFICgnLmltcGxvZGUoJGV4cHIsJHdoZXJlKS4nKSc7CiAgICAkcWMgLj0gJyBXSEVSRSAoJy5pbXBsb2RlKCRleHByLCR3aGVyZSkuJyknOwogIH0KCiR3aGVyZTIgPSBhcnJheSgpOwokd2hlcmUyW10gPSAnUC5zdGF0dXMgPSA/JzsKJHFwYXJtc1tdID0gJ3B1Ymxpc2hlZCc7CgppZiggY291bnQoJHdoZXJlMikgKQogIHsKICAgIGlmKCBjb3VudCgkd2hlcmUpICkKICAgICAgewoJJHF1IC49ICcgQU5EICcuaW1wbG9kZSgnIEFORCAnLCR3aGVyZTIpOwoJJHFjIC49ICcgQU5EICcuaW1wbG9kZSgnIEFORCAnLCR3aGVyZTIpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRxdSAuPSAnIFdIRVJFICcuaW1wbG9kZSgnIEFORCAnLCR3aGVyZTIpOwoJJHFjIC49ICcgV0hFUkUgJy5pbXBsb2RlKCcgQU5EICcsJHdoZXJlMik7CiAgICAgIH0KICB9CgokY291bnQgPSAkZGItPkdldE9uZSgkcWMsJHFwYXJtcyk7CmlmKCAkY291bnQgKQogIHsKICAgIGlmKCAkZGV0YWlscGFnZSA9PSAnJyB8fCAkZGV0YWlscGFnZSA9PSAtMSApICRkZXRhaWxwYWdlID0gJHJldHVybmlkOwoKICAgICRucGFnZXMgPSAoaW50KSgkY291bnQgLyAkcGFnZWxpbWl0KTsKICAgIGlmKCAkY291bnQgJSAkcGFnZWxpbWl0ICE9IDAgKSAkbnBhZ2VzKys7CgogICAgLy8gdGhlIGZvbGxvd2luZyBjb2RlIGlzIGNvcGllZCBmcm9tIHRoZSBkZWZhdWx0IGFjdGlvbi4KICAgICRkYnJlc3VsdCA9ICRkYi0+U2VsZWN0TGltaXQoJHF1LCRwYWdlbGltaXQsJG9mZnNldCwkcXBhcm1zKTsKICAgIGlmKCAhJGRicmVzdWx0ICkgcmV0dXJuIEZBTFNFOwoKICAgICRjb25maWcgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CiAgICAkcGFybXMgPSBhcnJheSgpOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2RldGFpbHRlbXBsYXRlJ10pICkKICAgICAgewoJJHBhcm1zWydkZXRhaWx0ZW1wbGF0ZSddID0gJHBhcmFtc1snZGV0YWlsdGVtcGxhdGUnXTsKICAgICAgfQogICAgd2hpbGUgKCRkYnJlc3VsdCAmJiAoJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkpCiAgICAgIHsKCSRmaWxlZGlyID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkdGhpcy0+R2V0TmFtZSgpLCdwcm9kdWN0XycuJHJvd1snaWQnXSk7Cgkkb25lcm93ID0gY2dlX2FycmF5Ojp0b19vYmplY3QoJHJvdyk7CgkkcHJldHR5dXJsID0gcHJvZHVjdF9vcHM6OnByZXR0eV91cmwoJHJvd1snaWQnXSwkZGV0YWlscGFnZSk7CiAgCgkkcGFybXNbJ3Byb2R1Y3RpZCddID0gJHJvd1snaWQnXTsKCSRvbmVyb3ctPmRldGFpbF91cmwgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RldGFpbHMnLCRkZXRhaWxwYWdlLCcnLAoJCQkJCQkkcGFybXMsCgkJCQkJCScnLHRydWUsJGlubGluZSwnJyxmYWxzZSwkcHJldHR5dXJsKTsKCgkkb25lcm93LT5wcm9kdWN0X25hbWVfbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RldGFpbHMnLCAkcmV0dXJuaWQsIAoJCQkJCQkgICAgICAgJHJvd1sncHJvZHVjdF9uYW1lJ10sIAoJCQkJCQkgICAgICAgJHBhcm1zKTsKCSRvbmVyb3ctPmZpbGVfbG9jYXRpb24gPSAkY29uZmlnWyd1cGxvYWRzX3VybCddLicvJy4kdGhpcy0+R2V0TmFtZSgpLicvcHJvZHVjdF8nLiRyb3dbJ2lkJ107Cgkkb25lcm93LT5kZXRhaWxzID0gJHJvd1snZGV0YWlscyddOwoKCS8vIGhpZXJhcmNoeSBpbmZvcm1hdGlvbgoJJG9uZXJvdy0+aGllcmFyY2h5X2lkID0gcHJvZHVjdF9vcHM6OmdldF9wcm9kdWN0X2hpZXJhcmNoeV9pZCgkcGFyYW1zWydwcm9kdWN0aWQnXSk7Cgkkb25lcm93LT5icmVhZGNydW1iID0gcHJvZHVjdF9vcHM6OmNyZWF0ZV9oaWVyYXJjaHlfYnJlYWRjcnVtYigkaWQsJHBhcmFtc1sncHJvZHVjdGlkJ10sJHJldHVybmlkKTsKCgkvLyBhZGQgY3VzdG9tIGZpZWxkcwoJJGZpZWxkZGVmcyA9ICR0aGlzLT5HZXRGaWVsZERlZnNGb3JQcm9kdWN0KCRyb3dbJ2lkJ10sdHJ1ZSx0cnVlKTsKCSRmaWVsZHMgPSBhcnJheSgpOwoJZm9yZWFjaCggJGZpZWxkZGVmcyBhcyAkdG9uZWRlZiApCgkgIHsKCSAgICAkb25lZGVmID0gY2xvbmUgJHRvbmVkZWY7CgkgICAgaWYoICRvbmVkZWYtPnR5cGUgPT0gJ2ltYWdlJyApCgkgICAgICB7CgkJaWYoIGlzc2V0KCRvbmVkZWYtPnZhbHVlKSAmJiBmaWxlX2V4aXN0cyhjbXNfam9pbl9wYXRoKCRmaWxlZGlyLCd0aHVtYl8nLiRvbmVkZWYtPnZhbHVlKSkgKQoJCSAgewoJCSAgICAkb25lZGVmLT50aHVtYm5haWwgPSAndGh1bWJfJy4kb25lZGVmLT52YWx1ZTsKCQkgIH0KCgkJaWYoIGlzc2V0KCRvbmVkZWYtPnZhbHVlKSAmJiBmaWxlX2V4aXN0cyhjbXNfam9pbl9wYXRoKCRmaWxlZGlyLCdwcmV2aWV3XycuJG9uZWRlZi0+dmFsdWUpKSApCgkJICB7CgkJICAgICRvbmVkZWYtPnByZXZpZXcgPSAncHJldmlld18nLiRvbmVkZWYtPnZhbHVlOwoJCSAgfQoJICAgICAgfQoJICAgICRmaWVsZHNbJG9uZWRlZi0+bmFtZV0gPSAkb25lZGVmOwoJICB9Cgkkb25lcm93LT5maWVsZHMgPSAkZmllbGRzOwoKCS8vIGFkZCBjYXRlZ29yaWVzCgkkY2F0YXJyYXkgPSAkdGhpcy0+R2V0Q2F0ZWdvcmllc0ZvclByb2R1Y3QoJHBhcm1zWydwcm9kdWN0aWQnXSx0cnVlLHRydWUpOwoJaWYoIGNvdW50KCRjYXRhcnJheSkgKQoJICB7CgkgICAgJGNhdG5hbWVhcnJheSA9IGFycmF5KCk7CgkgICAgZm9yZWFjaCggJGNhdGFycmF5IGFzICRvbmVjYXQgKQoJICAgICAgewoJCSRjYXRuYW1lYXJyYXlbXSA9ICRvbmVjYXQtPm5hbWU7CgkgICAgICB9CgkgICAgJG9uZXJvdy0+Y2F0ZWdvcmllcyA9ICRjYXRhcnJheTsKCSAgICAkb25lcm93LT5jYXRlZ29yeW5hbWVzID0gJGNhdG5hbWVhcnJheTsKCSAgfQoKCS8vIGFkZCBhdHRyaWJ1dGVzCgkkdG1wID0gJHRoaXMtPkdldFByb2R1Y3RBdHRyaWJ1dGVEYXRhQ29tcGxldGUoJHJvd1snaWQnXSk7CglpZiggaXNfYXJyYXkoJHRtcCkgKQoJICB7CgkgICAgJG9uZXJvdy0+YXR0cmlidXRlcyA9ICR0bXA7CgkgIH0KCgkkZW50cnlhcnJheVtdID0gJG9uZXJvdzsKICAgICAgfQogIH0KCi8vCi8vIEdpdmUgZXZlcnl0aGluZyB0byBzbWFydHkKLy8KaWYoICRjb3VudCApCiAgewogICAgJHNtYXJ0eS0+YXNzaWduKCdpdGVtcycsICRlbnRyeWFycmF5KTsKICAgICRzbWFydHktPmFzc2lnbignaXRlbWNvdW50JywgY291bnQoJGVudHJ5YXJyYXkpKTsKICB9CiRzbWFydHktPmFzc2lnbigndG90YWxjb3VudCcsJGNvdW50KTsKJHNtYXJ0eS0+YXNzaWduKCdwYWdldGV4dCcsJHRoaXMtPkxhbmcoJ3BhZ2UnKSk7CiRzbWFydHktPmFzc2lnbignb2Z0ZXh0JywkdGhpcy0+TGFuZygnb2YnKSk7CiRzbWFydHktPmFzc2lnbigncGFnZWNvdW50JywkbnBhZ2VzKTsKJHNtYXJ0eS0+YXNzaWduKCdjdXJwYWdlJywkcGFnZW51bSk7CmlmKCAkcGFnZSA9PSAxICkKICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2ZpcnN0bGluaycsJHRoaXMtPkxhbmcoJ2ZpcnN0cGFnZScpKTsKICAgICRzbWFydHktPmFzc2lnbigncHJldmxpbmsnLCR0aGlzLT5MYW5nKCdwcmV2cGFnZScpKTsKICB9CmVsc2UKICB7CiAgICAkcGFybXMgPSAkcGFyYW1zOwogICAgJHBhcm1zWydwYWdlJ10gPSAxOwogICAgJHNtYXJ0eS0+YXNzaWduKCdmaXJzdGxpbmsnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZGVmYXVsdCcsJHJldHVybmlkLAoJCQkJCQkgICR0aGlzLT5MYW5nKCdmaXJzdHBhZ2UnKSwKCQkJCQkJICAkcGFybXMpKTsKICAgICRwYXJtc1sncGFnZSddID0gJHBhZ2UgLSAxOwogICAgJHNtYXJ0eS0+YXNzaWduKCdwcmV2bGluaycsJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkZWZhdWx0JywkcmV0dXJuaWQsCgkJCQkJCSAgJHRoaXMtPkxhbmcoJ3ByZXZwYWdlJyksCgkJCQkJCSAgJHBhcm1zKSk7CiAgfQppZiggJHBhZ2UgPT0gJG5wYWdlcyApCiAgewogICAgJHNtYXJ0eS0+YXNzaWduKCdsYXN0bGluaycsJHRoaXMtPkxhbmcoJ2xhc3RwYWdlJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCduZXh0bGluaycsJHRoaXMtPkxhbmcoJ25leHRwYWdlJykpOwogIH0KZWxzZQogIHsKICAgICRwYXJtcyA9ICRwYXJhbXM7CiAgICAkcGFybXNbJ3BhZ2UnXSA9ICRucGFnZXM7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2xhc3RsaW5rJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlZmF1bHQnLCRyZXR1cm5pZCwKCQkJCQkJICAkdGhpcy0+TGFuZygnbGFzdHBhZ2UnKSwKCQkJCQkJICAkcGFybXMpKTsKICAgICRwYXJtc1sncGFnZSddID0gJHBhZ2UgKyAxOwogICAgJHNtYXJ0eS0+YXNzaWduKCduZXh0bGluaycsJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkZWZhdWx0JywkcmV0dXJuaWQsCgkJCQkJCSAgJHRoaXMtPkxhbmcoJ25leHRwYWdlJyksCgkJCQkJCSAgJHBhcm1zKSk7CiAgfQoKJHNtYXJ0eS0+YXNzaWduKCdjdXJyZW5jeV9zeW1ib2wnLHByb2R1Y3Rfb3BzOjpnZXRfY3VycmVuY3lfc3ltYm9sKCkpOwokc21hcnR5LT5hc3NpZ24oJ3dlaWdodF91bml0cycscHJvZHVjdF9vcHM6OmdldF93ZWlnaHRfdW5pdHMoKSk7CgovLwovLyBQcm9jZXNzIHRoZSB0ZW1wbGF0ZQovLwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHRoZXRlbXBsYXRlKTsKCiMKIyBFT0YKIwo/Pgo=]]></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+c21hcnR5LT5hc3NpZ24oJ2lucHV0bmFtZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbmFtZScsICRuYW1lLCA4MCwgMjU1KSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaGlkZGVuJywgCgkJICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2NhdGlkJywgJGNhdGlkKS4KCQkgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnb3JpZ25hbWUnLCAkb3JpZ25hbWUpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdGNhdGVnb3J5LnRwbCcpOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.editcategoryfields.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2NhdGVnb3JpZXMnKTsKCmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFByb2R1Y3RzJykpCnsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ25lZWRwZXJtaXNzaW9uJywgYXJyYXkoJ01vZGlmeSBQcm9kdWN0cycpKSk7CglyZXR1cm47Cn0KCmlmKCAhaXNzZXQoJHBhcmFtc1snY2F0aWQnXSkgKQp7CiAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwogIHJldHVybjsKfQokY2F0aWQgPSAoaW50KSRwYXJhbXNbJ2NhdGlkJ107CgovLyBHZXQgdGhlIGluZm8gZm9yIHRoaXMgY2F0ZWdvcnkKJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yaWVzIFdIRVJFIGlkID0gPyc7CiRjYXRlZ29yeSA9ICRkYi0+R2V0Um93KCRxdWVyeSxhcnJheSgkY2F0aWQpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yeScsJGNhdGVnb3J5KTsKCi8vIGdldCB0aGUgbGlzdCBvZiBmaWVsZHMgZm9yIHRoaXMgcHJvZHVjdAokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcwogICAgICAgICAgIFdIRVJFIGNhdGVnb3J5X2lkID0gPwogICAgICAgICAgIE9SREVSIEJZIGZpZWxkX29yZGVyIEFTQyc7CiRmaWVsZHMgPSAkZGItPkdldEFycmF5KCRxdWVyeSxhcnJheSgkY2F0aWQpKTsKZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGZpZWxkcyk7ICRpKysgKQogIHsKICAgICRmaWVsZHNbJGldWydlZGl0bGluayddID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdhZGRjYXRlZ29yeWZpZWxkJywkcmV0dXJuaWQsCgkJCQkJCSRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLCR0aGlzLT5MYW5nKCdlZGl0JyksJycsJycsCgkJCQkJCQkJCQkJICAgICAnc3lzdGVtaWNvbicpLAoJCQkJCQlhcnJheSgnY2F0aWQnPT4kY2F0aWQsJ2ZsZG5hbWUnPT4kZmllbGRzWyRpXVsnZmllbGRfbmFtZSddKSk7CiAgICAkZmllbGRzWyRpXVsnZGVsZXRlbGluayddID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkZWxldGVjYXRlZ29yeWZpZWxkJywkcmV0dXJuaWQsCgkJCQkJCSRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsJHRoaXMtPkxhbmcoJ2RlbGV0ZScpLCcnLCcnLAoJCQkJCQkJCQkJCSAgICAgJ3N5c3RlbWljb24nKSwKCQkJCQkJYXJyYXkoJ2NhdGlkJz0+JGNhdGlkLCdmbGRuYW1lJz0+JGZpZWxkc1skaV1bJ2ZpZWxkX25hbWUnXSkpOwoKICAgIGlmKCAkZmllbGRzWyRpXVsnZmllbGRfb3JkZXInXSA+IDEgKQogICAgICB7CgkkZmllbGRzWyRpXVsnbW92ZV91cCddID0gJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ21vdmVjYXRlZ29yeWZpZWxkJywkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ21vdmVfdXAnKSwKCQkJCQkJCSdpY29ucy9zeXN0ZW0vc29ydF91cC5naWYnLAoJCQkJCQkJYXJyYXkoJ2NhdGlkJz0+JGNhdGlkLCdkaXInPT4ndXAnLCdmbGRuYW1lJz0+JGZpZWxkc1skaV1bJ2ZpZWxkX25hbWUnXSkpOwogICAgICB9CiAgICBpZiggJGkgPCBjb3VudCgkZmllbGRzKSAtIDEgKQogICAgICB7CgkkZmllbGRzWyRpXVsnbW92ZV9kb3duJ10gPSAkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnbW92ZWNhdGVnb3J5ZmllbGQnLCRyZXR1cm5pZCwkdGhpcy0+TGFuZygnbW92ZV9kb3duJyksCgkJCQkJCQkgICdpY29ucy9zeXN0ZW0vc29ydF9kb3duLmdpZicsCgkJCQkJCQkgIGFycmF5KCdjYXRpZCc9PiRjYXRpZCwnZGlyJz0+J2Rvd24nLCdmbGRuYW1lJz0+JGZpZWxkc1skaV1bJ2ZpZWxkX25hbWUnXSkpOwogICAgICB9CiAgfQokc21hcnR5LT5hc3NpZ24oJ2ZpZWxkcycsJGZpZWxkcyk7Cgokc21hcnR5LT5hc3NpZ24oJ2FkZGxpbmsnLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZGRjYXRlZ29yeWZpZWxkJywgJHJldHVybmlkLCAKCQkJCQkgICAgICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vbmV3Zm9sZGVyLmdpZicsICR0aGlzLT5MYW5nKCdhZGRmaWVsZGRlZicpLAoJCQkJCQkJCQkJCSAgJycsJycsJ3N5c3RlbWljb24nKSwgCgkJCQkJICAgICBhcnJheSgnY2F0aWQnPT4kY2F0aWQpLCAnJywgZmFsc2UsIGZhbHNlLCAnJykuJyAnLgoJCSAgICAgICAgICAgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRkY2F0ZWdvcnlmaWVsZCcsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2FkZGZpZWxkZGVmJyksIAoJCQkJCSAgICAgYXJyYXkoJ2NhdGlkJz0+JGNhdGlkKSwgJycsIGZhbHNlLCBmYWxzZSwgJ2NsYXNzPSJwYWdlb3B0aW9ucyInKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3JldHVybl9saW5rJywKCQkkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnZGVmYXVsdGFkbWluJywkcmV0dXJuaWQsCgkJCQkgICAgICAgJHRoaXMtPkxhbmcoJ3JldHVybicpLAoJCQkJICAgICAgICdpY29ucy9zeXN0ZW0vYmFjay5naWYnLAoJCQkJICAgICAgIGFycmF5KCdjZ19hY3RpdmV0YWInPT4nY2F0ZWdvcmllcycpLAoJCQkJICAgICAgICcnLCcnLGZhbHNlKSk7CgojIERpc3BsYXkgVGVtcGxhdGUKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0Y2F0ZWdvcnlmaWVsZHMudHBsJyk7CgoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.editfielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYignZmllbGRkZWZzJyk7CgppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpKQp7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCduZWVkcGVybWlzc2lvbicsIGFycmF5KCdNb2RpZnkgUHJvZHVjdHMnKSkpOwoJcmV0dXJuOwp9CgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKQp7CiAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKfQoKJGZkaWQgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2ZkaWQnXSkpCnsKCSRmZGlkID0gJHBhcmFtc1snZmRpZCddOwp9CgokbmFtZSA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snbmFtZSddKSkKewoJJG5hbWUgPSAkcGFyYW1zWyduYW1lJ107Cn0KCiRwcm9tcHQgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ3Byb21wdCddKSkKewoJJHByb21wdCA9ICRwYXJhbXNbJ3Byb21wdCddOwp9Cgokb3B0aW9ucyA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snb3B0aW9ucyddKSkKewoJJG9wdGlvbnMgPSAkcGFyYW1zWydvcHRpb25zJ107Cn0KCiR0eXBlID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWyd0eXBlJ10pKQp7CgkkdHlwZSA9ICRwYXJhbXNbJ3R5cGUnXTsKfQoKJG1heF9sZW5ndGggPSAyNTU7CmlmIChpc3NldCgkcGFyYW1zWydtYXhfbGVuZ3RoJ10pKQp7CiAgJG1heF9sZW5ndGggPSAoaW50KSRwYXJhbXNbJ21heF9sZW5ndGgnXTsKfQoKJG9yaWduYW1lID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydvcmlnbmFtZSddKSkKewoJJG9yaWduYW1lID0gJHBhcmFtc1snb3JpZ25hbWUnXTsKfQoKJHB1YmxpYyA9IDA7CmlmKCBpc3NldCgkcGFyYW1zWydwdWJsaWMnXSkgKQogIHsKICAgICRwdWJsaWMgPSAoaW50KSRwYXJhbXNbJ3B1YmxpYyddOwogIH0KCmlmIChpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpCnsKICBpZiggJHR5cGUgPT0gJycgKQogICAgewogICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9ub2ZpZWxkdHlwZScpKTsKICAgIH0KICBlbHNlIGlmICgkbmFtZSA9PSAnJykKICAgIHsKICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbm9uYW1lZ2l2ZW4nKSk7CiAgICB9CiAgZWxzZSBpZiggISR0aGlzLT5pc19hbGlhcygkbmFtZSkgKQogICAgewogICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkX25hbWUnKSk7CiAgICB9CiAgZWxzZSBpZiggIWVtcHR5KCRtYXhsZW5ndGgpICYmICFpc19udW1lcmljKCRtYXhfbGVuZ3RoKSApCiAgICB7CiAgICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ25vdGFudW1iZXInKSk7CiAgICB9CiAgZWxzZSBpZiggJHR5cGUgPT0gJ3N1YnNjcmlwdGlvbicgJiYgJGRiLT5HZXRPbmUoJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFdIRVJFIHR5cGUgPSA/JyxhcnJheSgkdHlwZSkpICkKICAgIHsKICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3Jfb25lc3Vic2NyaXB0aW9uZmllbGQnKSk7CiAgICB9CiAgZWxzZSBpZiggJHR5cGUgPT0gJ3F1YW50aXR5JyAmJiAkZGItPkdldE9uZSgnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMgV0hFUkUgdHlwZSA9ID8nLGFycmF5KCR0eXBlKSkgKQogICAgewogICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9vbmVxdWFudGl0eWZpZWxkJykpOwogICAgfQogIGVsc2UKICAgIHsKICAgICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBTRVQgbmFtZSA9ID8sIHByb21wdCA9ID8sIHR5cGUgPSA/LCBtYXhfbGVuZ3RoID0gPywgbW9kaWZpZWRfZGF0ZSA9ICcuJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLicsIHB1YmxpYyA9ID8sIG9wdGlvbnMgPSA/IFdIRVJFIGlkID0gPyc7CiAgICAgICRyZXMgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCAKCQkJICBhcnJheSgkbmFtZSwgJHByb21wdCwgJHR5cGUsICRtYXhfbGVuZ3RoLCAkcHVibGljLCAkb3B0aW9ucywgJGZkaWQpKTsKICAgICAgCiAgICAgIGlmKCAhJHJlcyApIGRpZSggJGRiLT5FcnJvck1zZygpICk7CiAgICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgICB9Cn0KZWxzZQp7CiAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMgV0hFUkUgaWQgPSA/JzsKICAkcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSgkZmRpZCkpOwogIAogIGlmICgkcm93KQogICAgewogICAgICAkbmFtZSA9ICRyb3dbJ25hbWUnXTsKICAgICAgJHByb21wdCA9ICRyb3dbJ3Byb21wdCddOwogICAgICAkdHlwZSA9ICRyb3dbJ3R5cGUnXTsKICAgICAgJG1heF9sZW5ndGggPSAkcm93WydtYXhfbGVuZ3RoJ107CiAgICAgICRvcmlnbmFtZSA9ICRyb3dbJ25hbWUnXTsKICAgICAgJHB1YmxpYyA9ICRyb3dbJ3B1YmxpYyddOwogICAgICAkb3B0aW9ucyA9ICRyb3dbJ29wdGlvbnMnXTsKICAgIH0KIH0KCiNEaXNwbGF5IHRlbXBsYXRlCiRzbWFydHktPmFzc2lnbignb3B0aW9ucycsJG9wdGlvbnMpOwokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsIAoJCSR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsICdlZGl0ZmllbGRkZWYnLCAkcmV0dXJuaWQpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRuYW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICduYW1lJywgJG5hbWUsIDIwLCAyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHByb21wdCcsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ3Byb21wdCcsJHByb21wdCw1MCwyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCdzaG93aW5wdXR0eXBlJywgZmFsc2UpOwokc21hcnR5LT5hc3NpZ24oJ3R5cGUnLCR0eXBlKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dHR5cGUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAndHlwZScsICR0eXBlKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRtYXhsZW5ndGgnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ21heF9sZW5ndGgnLCAkbWF4X2xlbmd0aCwgMjAsIDI1NSkpOwokc21hcnR5LT5hc3NpZ24oJ3VzZXJ2aWV3dGV4dCcsJHRoaXMtPkxhbmcoJ3B1YmxpYycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF91c2VydmlldycsCgkJJHRoaXMtPkNyZWF0ZUlucHV0Y2hlY2tib3goJGlkLCAncHVibGljJywgMSwgJHB1YmxpYywKCQkJCQkgICAndGl0bGU9IicuJHRoaXMtPkxhbmcoJ2luZm9fcHVibGljZmllbGQnKS4nIicpKTsKCiRzbWFydHktPmFzc2lnbignaGlkZGVuJywgCgkJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZkaWQnLCAkZmRpZCkuCgkJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ29yaWduYW1lJywgJG9yaWduYW1lKSk7CiRzbWFydHktPmFzc2lnbignc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsIGxhbmcoJ3N1Ym1pdCcpKSk7CiRzbWFydHktPmFzc2lnbignY2FuY2VsJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsIGxhbmcoJ2NhbmNlbCcpKSk7CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdGZpZWxkZGVmLnRwbCcpOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.editproduct.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYigncHJvZHVjdHMnKTsKCi8vCi8vIEEgdXRpbGl0eSBmdW5jdGlvbgovLwpmdW5jdGlvbiBnZXRfZmllbGRfZGVmKCYkZmllbGRkZWZzLCRpZCkKewogIGZvcmVhY2goICRmaWVsZGRlZnMgYXMgJG9uZWRlZiApCiAgICB7CiAgICAgIGlmKCAkb25lZGVmLT5pZCA9PSAkaWQgKQoJewoJICByZXR1cm4gJG9uZWRlZjsKCX0KICAgIH0KICByZXR1cm4gZmFsc2U7Cn0KCmZ1bmN0aW9uIHByb2R1Y3RzX2RlbGV0ZV91cGxvYWRlZF9maWxlKCRkaXIsJGZpbGVuYW1lKQp7CiAgaWYoIGVtcHR5KCRmaWxlbmFtZSkgKSByZXR1cm47CgogICRmaWxlbmFtZSA9IGJhc2VuYW1lKCRmaWxlbmFtZSk7CiAgQHVubGluayhjbXNfam9pbl9wYXRoKCRkaXIsJGZpbGVuYW1lKSk7CiAgQHVubGluayhjbXNfam9pbl9wYXRoKCRkaXIsJ3RodW1iXycuJGZpbGVuYW1lKSk7CiAgQHVubGluayhjbXNfam9pbl9wYXRoKCRkaXIsJ3ByZXZpZXdfJy4kZmlsZW5hbWUpKTsKfQoKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSkKICB7CiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCduZWVkcGVybWlzc2lvbicsIGFycmF5KCdNb2RpZnkgUHJvZHVjdHMnKSkpOwogICAgcmV0dXJuOwogIH0KCmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpCiAgewogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICB9CgokY29tcGlkID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydjb21waWQnXSkpCiAgewogICAgJGNvbXBpZCA9ICRwYXJhbXNbJ2NvbXBpZCddOwogIH0KCiRwcm9kdWN0X25hbWUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ3Byb2R1Y3RfbmFtZSddKSkKICB7CiAgICAkcHJvZHVjdF9uYW1lID0gJHBhcmFtc1sncHJvZHVjdF9uYW1lJ107CiAgfQoKJHByaWNlID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydwcmljZSddKSkKICB7CiAgICAkcHJpY2UgPSAoZmxvYXQpJHBhcmFtc1sncHJpY2UnXTsKICB9Cgokd2VpZ2h0ID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWyd3ZWlnaHQnXSkpCiAgewogICAgJHdlaWdodCA9IChmbG9hdCkkcGFyYW1zWyd3ZWlnaHQnXTsKICB9Cgokc2t1ID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydza3UnXSkpCiAgewogICAgJHNrdSA9IHRyaW0oJHBhcmFtc1snc2t1J10pOwogIH0KCiRhbGlhcyA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snYWxpYXMnXSkpCiAgewogICAgJGFsaWFzID0gdHJpbSgkcGFyYW1zWydhbGlhcyddKTsKICB9CgokZGV0YWlscyA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snZGV0YWlscyddKSkKICB7CiAgICAkZGV0YWlscyA9ICRwYXJhbXNbJ2RldGFpbHMnXTsKICB9CgokdGF4YWJsZSA9IDA7CmlmIChpc3NldCgkcGFyYW1zWyd0YXhhYmxlJ10pKQogIHsKICAgICR0YXhhYmxlID0gMTsKICB9CgokaGllcmFyY2h5X3BvcyA9IC0xOwppZiAoaXNzZXQoJHBhcmFtc1snaGllcmFyY2h5J10pICkKICB7CiAgICAkaGllcmFyY2h5X3BvcyA9IChpbnQpJHBhcmFtc1snaGllcmFyY2h5J107CiAgfQoKJHN0YXR1cyA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snc3RhdHVzJ10pKQogIHsKICAgICRzdGF0dXMgPSAkcGFyYW1zWydzdGF0dXMnXTsKICB9Cgokb3JpZ25hbWUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ29yaWduYW1lJ10pKQogIHsKICAgICRvcmlnbmFtZSA9ICRwYXJhbXNbJ29yaWduYW1lJ107CiAgfQoKCiRmaWVsZGFycmF5ID0gYXJyYXkoKTsKJHVzZXJpZCA9IGdldF91c2VyaWQoKTsKJGZpZWxkZGVmcyA9ICR0aGlzLT5HZXRGaWVsZERlZnNGb3JQcm9kdWN0KCRjb21waWQsdHJ1ZSk7Ci8vJGZpZWxkZGVmcyA9ICR0aGlzLT5HZXRGaWVsZERlZnModHJ1ZSk7CgppZiAoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pKQogIHsKICAgICRkdXBsaWNhdGUgPSAnJzsKICAgICRkdXBsaWNhdGVza3UgPSAnJzsKICAgICRkdXBsaWNhdGVhbGlhcyA9ICcnOwogICAgJGVtcHR5c2t1ID0gJyc7CiAgICBpZiAoJHByb2R1Y3RfbmFtZSAhPSAnJykKICAgICAgewoJJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMKICAgICAgICAgICAgICAgICAgIFdIRVJFIHByb2R1Y3RfbmFtZSA9ID8gQU5EIGlkICE9ID8nOwoJJGR1cGxpY2F0ZSA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkcHJvZHVjdF9uYW1lLCRjb21waWQpKTsKICAgICAgfQoKICAgIGlmKCBlbXB0eSgkYWxpYXMpICkKICAgICAgewoJJGFsaWFzID0gcHJvZHVjdF9vcHM6OmdlbmVyYXRlX2FsaWFzKCRwcm9kdWN0X25hbWUpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRhbGlhcyA9IG11bmdlX3N0cmluZ190b191cmwoJGFsaWFzKTsKICAgICAgfQoKICAgIC8vIGNoZWNrIGZvciBkdXBsaWNhdGUgYWxpYXMKICAgIGlmKCBwcm9kdWN0X29wczo6Y2hlY2tfYWxpYXNfdXNlZCgkYWxpYXMsJGNvbXBpZCkgKQogICAgICB7CgkkZHVwbGljYXRlYWxpYXMgPSAkYWxpYXM7CiAgICAgIH0KCiAgICBpZiggZW1wdHkoJHNrdSkgJiYgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NrdXJlcXVpcmVkJykgKQogICAgICB7CgkkZW1wdHlza3UgPSAxOwogICAgICB9CgogICAgaWYoICEkZHVwbGljYXRlICYmICFlbXB0eSgkc2t1KSApCiAgICAgIHsKCS8vIGNoZWNrIGZvciBkdXBsaWNhdGUgc2t1CglpZiggcHJvZHVjdF9vcHM6OmNoZWNrX3NrdV91c2VkKCRza3UsJGNvbXBpZCkgKQoJICB7CgkgICAgJGR1cGxpY2F0ZXNrdSA9ICRza3U7CgkgIH0KICAgICAgfQoKICAgIGlmKCAkZHVwbGljYXRlICkKICAgICAgewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfcHJvZHVjdF9uYW1ldXNlZCcpKTsKICAgICAgfQogICAgZWxzZSBpZiggJGVtcHR5c2t1ICkKICAgICAgewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3Jfc2t1X3JlcXVpcmVkJykpOwogICAgICB9CiAgICBlbHNlIGlmKCAkZHVwbGljYXRlYWxpYXMgKQogICAgICB7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9wcm9kdWN0X2FsaWFzdXNlZCcpKTsKICAgICAgfQogICAgZWxzZSBpZiggJGR1cGxpY2F0ZXNrdSApCiAgICAgIHsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX3Byb2R1Y3Rfc2t1dXNlZCcpKTsKICAgICAgfQogICAgZWxzZSBpZiAoJHByb2R1Y3RfbmFtZSA9PSAnJykKICAgICAgewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbm9uYW1lZ2l2ZW4nKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJLy8gdXBkYXRlIHRoZSBvcmlnaW5hbCByZWNvcmQKCSRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cyBTRVQgcHJvZHVjdF9uYW1lID0gPywgcHJpY2UgPSA/LCBkZXRhaWxzID0gPywgbW9kaWZpZWRfZGF0ZSA9ICcuJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLicsdGF4YWJsZSA9ID8sIHN0YXR1cyA9ID8sIHdlaWdodCA9ID8sIHNrdSA9ID8sIGFsaWFzID0gPyBXSEVSRSBpZCA9ID8nOwoJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHByb2R1Y3RfbmFtZSwgJHByaWNlLCAkZGV0YWlscywgCgkJCQkgICAkdGF4YWJsZSwgJHN0YXR1cywgJHdlaWdodCwgJHNrdSwgJGFsaWFzLCAkY29tcGlkKSk7CgoJLy8gVXBkYXRlIHRoZSBoaWVyYXJjaHkgc3R1ZmYKCSRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hpZXIgV0hFUkUgcHJvZHVjdF9pZCA9ID8nOwoJJGRiLT5FeGVjdXRlKCAkcXVlcnksIGFycmF5KCAkY29tcGlkICkgKTsKCSRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hpZXIgCiAgICAgICAgICAgICAgICAgICAocHJvZHVjdF9pZCxoaWVyYXJjaHlfaWQpCiAgICAgICAgICAgICAgICAgICBWQUxVRVMgKD8sPyknOwoJJGRiLT5FeGVjdXRlKCAkcXVlcnksIGFycmF5KCAkY29tcGlkLCAkaGllcmFyY2h5X3BvcyApICk7CiAgICAgICAKCS8vIFVwZGF0ZSBjdXN0b20gZmllbGRzCgkkZGVsZXRlZF9pdGVtcyA9IGFycmF5KCk7CgkkZGItPkV4ZWN1dGUoJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIFdIRVJFIHByb2R1Y3RfaWQgPSA/JywgYXJyYXkoJGNvbXBpZCkpOwoKCSRkZXN0ZGlyID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkdGhpcy0+R2V0TmFtZSgpLAoJCQkJICdwcm9kdWN0XycuJGNvbXBpZCk7CgoJJGVycm9ycyA9IGFycmF5KCk7CglpZiAoaXNzZXQoJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGQnXSkpCgkgIHsKCSAgICBmb3JlYWNoICgkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddIGFzICRrPT4kdikKCSAgICAgIHsKCQkvLyBoYW5kbGUgZmlsZSBkZWxldGlvbnMKCQlpZiAoc3RhcnRzd2l0aCgkaywgJ2RlbGV0ZWZpZWxkLScpKSB7CgoJCSAgLy8gZ2V0IHRoZSBmaWVsZCBpbmRleAoJCSAgJGZpZCA9IHN1YnN0cigkaywgc3RybGVuKCdkZWxldGVmaWVsZC0nKSk7CgoJCSAgLy8gZ2V0IHRoZSBmaWVsZCB0eXBlCgkJICAkZGVmID0gZ2V0X2ZpZWxkX2RlZigkZmllbGRkZWZzLCRmaWQpOwoJCSAgaWYoICFpc3NldCgkZGVmLT52YWx1ZSkgKSBjb250aW51ZTsKCQkgIGlmKCAhJGRlZiApCgkJICAgIHsKCQkgICAgICBkaWUoJ2NvdWxkIG5vdCBnZXQgZmllbGQgZGVmIGZvciAnLiRmaWQpOwoJCSAgICB9CgoJCSAgJGRlc3RkaXIgPSBjbXNfam9pbl9wYXRoKCRnQ21zLT5jb25maWdbJ3VwbG9hZHNfcGF0aCddLCR0aGlzLT5HZXROYW1lKCksCgkJCQkJICAgJ3Byb2R1Y3RfJy4kY29tcGlkKTsKCQkgIAoJCSAgc3dpdGNoKCAkZGVmLT50eXBlICkKCQkgICAgewoJCSAgICBjYXNlICdmaWxlJzoKCQkgICAgY2FzZSAnaW1hZ2UnOgoJCSAgICAgIC8vIGRlbGV0ZSB0aGUgZmlsZQoJCSAgICAgIHByb2R1Y3RzX2RlbGV0ZV91cGxvYWRlZF9maWxlKCRkZXN0ZGlyLCRkZWYtPnZhbHVlKTsKCQkgICAgICAkZGVsZXRlZF9pdGVtc1tdID0gJGZpZDsKCQkgICAgICBicmVhazsKCQkgICAgfQoJCX0KCSAgICAgIH0KCgkgICAgZm9yZWFjaCAoJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGQnXSBhcyAkaz0+JHYpCgkgICAgICB7CgkJLy8gaGFuZGxlIG5ldyB2YWx1ZXMgKG9yIGhpZGRlbiB2YWx1ZXMpCgkJaWYgKHN0YXJ0c3dpdGgoJGssICdmaWVsZC0nKSkgeyAvLyBlbHNlCgoJCSAgLy8gZ2V0IHRoZSBmaWVsZCBpbmRleAoJCSAgJGZpZCA9IHN1YnN0cigkaywgNik7CgoJCSAgaWYoIGluX2FycmF5KCRmaWQsJGRlbGV0ZWRfaXRlbXMpICkgCgkJICAgIHsKCQkgICAgICAkdiA9IG51bGw7CgkJICAgIH0KCgkJICAvLyBnZXQgdGhlIGZpZWxkIHR5cGUKCQkgICRkZWYgPSBnZXRfZmllbGRfZGVmKCRmaWVsZGRlZnMsJGZpZCk7CgkJICBpZiggISRkZWYgKQoJCSAgICB7CgkJICAgICAgZGllKCdjb3VsZCBub3QgZ2V0IGZpZWxkIGRlZiBmb3IgJy4kZmlkKTsKCQkgICAgICBjb250aW51ZTsKCQkgICAgfQoKCQkgIC8vIGhhbmRsZSB0aGUgdXBsb2FkIChpZiBhbnkpCgkJICBzd2l0Y2goICRkZWYtPnR5cGUgKQoJCSAgICB7CgkJICAgIGNhc2UgJ2ZpbGUnOgoJCSAgICAgIGlmKCBpc3NldCgkZGVmLT52YWx1ZSkpCgkJCXsKCQkJICAkc3RyID0gImZpZWxkLSRmaWQiOwoJCQkgIGlmKCBpc3NldCgkX0ZJTEVTWyRpZC4nY3VzdG9tZmllbGQnXVsnbmFtZSddWyRzdHJdKSAmJgoJCQkgICAgICBpc3NldCgkX0ZJTEVTWyRpZC4nY3VzdG9tZmllbGQnXVsnc2l6ZSddWyRzdHJdKSAmJgoJCQkgICAgICAkX0ZJTEVTWyRpZC4nY3VzdG9tZmllbGQnXVsnc2l6ZSddWyRzdHJdID4gMCApCgkJCSAgICB7CgkJCSAgICAgIHByb2R1Y3RzX2RlbGV0ZV91cGxvYWRlZF9maWxlKCRkZXN0ZGlyLCRkZWYtPnZhbHVlKTsKCQkJICAgIH0KCQkJfQoJCSAgICAgICRkZXN0ZGlyID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkdGhpcy0+R2V0TmFtZSgpLAoJCQkJCSAgICAgICAncHJvZHVjdF8nLiRjb21waWQpOwoJCSAgICAgIGNnZV9kaXI6Om1rZGlycigkZGVzdGRpcik7CgkJICAgICAgaWYoICFpc19kaXIoJGRlc3RkaXIpICkgZGllKCdkaXJlY3Rvcnkgc3RpbGwgZG9lcyBub3QgZXhpc3QnKTsKCQkgICAgICAkaGFuZGxlciA9IG5ldyBjZ19maWxldXBsb2FkKCRpZCwkZGVzdGRpcik7CgkJICAgICAgJGhhbmRsZXItPnNldF9hY2NlcHRlZF9maWxldHlwZXMoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93ZWRfZmlsZXR5cGVzJykpOwoJCSAgICAgICRyZXMgPSAkaGFuZGxlci0+aGFuZGxlX3VwbG9hZCgnY3VzdG9tZmllbGQnLCcnLCdmaWVsZC0nLiRmaWQpOwoJCSAgICAgICRlcnIgPSAkaGFuZGxlci0+Z2V0X2Vycm9yKCk7CgkJICAgICAgaWYoICEkcmVzICYmICRlcnIgIT0gY2dfZmlsZXVwbG9hZDo6Tk9GSUxFICkKCQkJewoJCQkgICRlcnJvcnNbXSA9IHNwcmludGYoIiVzICVzOiAlcyIsJHRoaXMtPkxhbmcoJ2ZpZWxkJyksJGRlZi0+bmFtZSwKCQkJCQkgICAgICAkdGhpcy0+R2V0VXBsb2FkRXJyb3JNZXNzYWdlKCRlcnIpKTsKCQkJfQoJCSAgICAgIGVsc2UgaWYoICEkcmVzICYmICFlbXB0eSgkdikgKQoJCQl7CgkJCSAgdHJ1ZTsKCQkJfQoJCSAgICAgIGVsc2UgaWYoICEkcmVzICkKCQkJewoJCQkgICR2ID0gbnVsbDsKCQkJfQoJCSAgICAgIGVsc2UKCQkJewoJCQkgICR2ID0gJHJlczsKCQkJfQoJCSAgICAgIGJyZWFrOwoJCSAgICAgIAoJCSAgICBjYXNlICdpbWFnZSc6CgkJICAgICAgaWYoIGlzc2V0KCRkZWYtPnZhbHVlKSApCgkJCXsKCQkJICAkc3RyID0gImZpZWxkLSRmaWQiOwoJCQkgIGlmKCBpc3NldCgkX0ZJTEVTWyRpZC4nY3VzdG9tZmllbGQnXVsnbmFtZSddWyRzdHJdKSAmJgoJCQkgICAgICBpc3NldCgkX0ZJTEVTWyRpZC4nY3VzdG9tZmllbGQnXVsnc2l6ZSddWyRzdHJdKSAmJgoJCQkgICAgICAkX0ZJTEVTWyRpZC4nY3VzdG9tZmllbGQnXVsnc2l6ZSddWyRzdHJdID4gMCApCgkJCSAgICB7CgkJCSAgICAgIHByb2R1Y3RzX2RlbGV0ZV91cGxvYWRlZF9maWxlKCRkZXN0ZGlyLCRkZWYtPnZhbHVlKTsKCQkJICAgIH0KCQkJfQogICAgICAgICAgICAgICAgICAgICAgJGF0dHIgPSAnZGVmYXVsdCc7IC8vIHVzZSBkZWZhdWx0IHZhbHVlIGZvciB3bWxvY2F0aW9uCiAgICAgICAgICAgICAgICAgICAgICBpZiggaXNzZXQoJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGRfYXR0ciddKSAmJiBpc3NldCgkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZF9hdHRyJ11bJGtdKSApCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAkYXR0ciA9ICRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkX2F0dHInXVska107CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCQkgICAgICAkZGVzdGRpciA9IGNtc19qb2luX3BhdGgoJGdDbXMtPmNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJHRoaXMtPkdldE5hbWUoKSwKCQkJCQkgICAgICAgJ3Byb2R1Y3RfJy4kY29tcGlkKTsKICAgICAgICAgICAgICAgICAgICAgICRyZXMgPSAkdGhpcy0+SGFuZGxlVXBsb2FkZWRJbWFnZSgkaWQsJ2N1c3RvbWZpZWxkJywkZGVzdGRpciwkZXJyb3JzLCdmaWVsZC0nLiRmaWQsJGF0dHIpOwogICAgICAgICAgICAgICAgICAgICAgaWYoICRyZXMgPT09IEZBTFNFICkKICAgICAgICAgICAgICAgICAgICAgIHsKCQkJJHYgPSBudWxsOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiggJHJlcyA9PT0gVFJVRSApCiAgICAgICAgICAgICAgICAgICAgICB7CgkJCXRydWU7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICB7CgkJCSR2ID0gJHJlczsKICAgICAgICAgICAgICAgICAgICAgIH0KCQkgICAgICBicmVhazsKCgkJICAgIGNhc2UgJ3F1YW50aXR5JzoKCQkgICAgICAkdiA9IChpbnQpJHY7CgkJICAgICAgJHYgPSBtYXgoMCwkdik7CgkJICAgICAgYnJlYWs7CgkJICAgICAgCgkJICAgIGNhc2UgJ3N1YnNjcmlwdGlvbic6CgkJICAgIGNhc2UgJ2RpbWVuc2lvbnMnOgoJCSAgICAgIGlmKCBpc19hcnJheSgkdikgKQoJCQl7CgkJCSAgJHYgPSBzZXJpYWxpemUoJHYpOwoJCQl9CgkJICAgICAgYnJlYWs7CgkJICAgICAgCgkJICAgIGNhc2UgJ3RleHRib3gnOgoJCSAgICBjYXNlICdjaGVja2JveCc6CgkJICAgIGNhc2UgJ3RleHRhcmVhJzoKCQkgICAgY2FzZSAnZHJvcGRvd24nOgoJCSAgICAgIGJyZWFrOwoKCQkgICAgZGVmYXVsdDoKCQkgICAgICBkaWUoInVua25vd24gdHlwZTogIi4kZGVmLT50eXBlKTsKCQkgICAgICBicmVhazsKCQkgICAgfQoKCQkgIGlmKCAhaXNfbnVsbCgkdikgJiYgJHYgIT09ICcnICkgewkJICAgIAoJCSAgICAvLyBjb21taXQgaXQgaWYgdGhlcmUgaXMgYSB2YWxpZCB2YWx1ZQoJCSAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgKHByb2R1Y3RfaWQsIGZpZWxkZGVmX2lkLCB2YWx1ZSwgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUpIFZBTFVFUyAoPyw/LD8sPyw/KSc7CgkJICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjb21waWQsICRmaWQsICR2LCB0cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSwgIiciKSwgdHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSksICInIikpKTsKCQkgIH0KCQl9CgkgICAgICB9CgkgIH0KCgkvLyBVcGRhdGUgY2F0ZWdvcmllcwoJJGRiLT5FeGVjdXRlKCdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcyBXSEVSRSBwcm9kdWN0X2lkID0gPycsIGFycmF5KCRjb21waWQpKTsKCWlmIChpc3NldCgkcGFyYW1zWydjYXRlZ29yaWVzJ10pKQoJICB7CgkgICAgZm9yZWFjaCAoJHBhcmFtc1snY2F0ZWdvcmllcyddIGFzICR2KQoJICAgICAgewoJICAgICAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdWN0X2NhdGVnb3JpZXMgKHByb2R1Y3RfaWQsIGNhdGVnb3J5X2lkLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSkgVkFMVUVTICg/LD8sPyw/KSc7CgkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGNvbXBpZCwgJHYsIHRyaW0oJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLCAiJyIpLCB0cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSwgIiciKSkpOwoJICAgICAgfQoJICB9CgkJCgkvL1VwZGF0ZSBzZWFyY2ggaW5kZXgKCSRtb2R1bGUgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ1NlYXJjaCcpOwoJaWYgKCRtb2R1bGUgIT0gRkFMU0UpCgkgIHsKCSAgICAkbW9kdWxlLT5EZWxldGVXb3JkcygkdGhpcy0+R2V0TmFtZSgpLCAkY29tcGlkLCAncHJvZHVjdCcpOwoJICAgIGlmKCAkc3RhdHVzID09ICdwdWJsaXNoZWQnICkKCSAgICAgIHsKCQkkbW9kdWxlLT5BZGRXb3JkcygkdGhpcy0+R2V0TmFtZSgpLCAkY29tcGlkLCAncHJvZHVjdCcsIAoJCQkJICBpbXBsb2RlKCcgJywgJHRoaXMtPkdldFNlYXJjaGFibGVUZXh0KCRjb21waWQpICkgKTsKCSAgICAgIH0KCSAgfQoKCWlmKCBjb3VudCgkZXJyb3JzKSApCgkgIHsKCSAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRlcnJvcnMpOwogICAgICAgICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdpbmZvX2ZpZWxkcHJvYmxlbXMnKSk7CiAgICAgICAgICAgIHJldHVybjsKCSAgfQogICAgICAgIGVsc2UKICAgICAgICAgIHsKICAJICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgICAgICAgICB9CiAgICAgIH0KICB9CiBlbHNlCiAgIHsKICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzIFdIRVJFIGlkID0gPyc7CiAgICAgJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJGNvbXBpZCkpOwoKICAgICBpZiAoJHJvdykKICAgICAgIHsKCSAkcHJvZHVjdF9uYW1lID0gJHJvd1sncHJvZHVjdF9uYW1lJ107CgkgJHByaWNlID0gKGZsb2F0KSRyb3dbJ3ByaWNlJ107CgkgJHdlaWdodCA9IChmbG9hdCkkcm93Wyd3ZWlnaHQnXTsKCSAkc2t1ID0gJHJvd1snc2t1J107CgkgJGFsaWFzID0gJHJvd1snYWxpYXMnXTsKCSAkZGV0YWlscyA9ICRyb3dbJ2RldGFpbHMnXTsKCSAkb3JpZ25hbWUgPSAkcm93Wydwcm9kdWN0X25hbWUnXTsKCSAkdGF4YWJsZSA9ICRyb3dbJ3RheGFibGUnXTsKCSAkc3RhdHVzID0gJHJvd1snc3RhdHVzJ107CgoJICRxdWVyeSA9ICdTRUxFQ1QgaGllcmFyY2h5X2lkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdG9oaWVyIAogICAgICAgICAgICAgICAgICAgIFdIRVJFIHByb2R1Y3RfaWQgPSA/JzsKCSAkaGllcmFyY2h5X3BvcyA9ICRkYi0+R2V0T25lKCRxdWVyeSwgYXJyYXkoICRjb21waWQpICk7CiAgICAgICB9CiAgIH0KCiRmaWVsZGFycmF5ID0gYXJyYXkoKTsKaWYgKGNvdW50KCRmaWVsZGRlZnMpID4gMCkKICB7CiAgICAkc3Vic2NyaWJlX29wdHMgPSBhcnJheSgpOwogICAgJHN1YnNjcmliZV9vcHRzWy0xXSA9ICR0aGlzLT5MYW5nKCdub25lJyk7CiAgICAkc3Vic2NyaWJlX29wdHNbJ21vbnRobHknXSA9ICR0aGlzLT5MYW5nKCdzdWJzY3JfbW9udGhseScpOwogICAgJHN1YnNjcmliZV9vcHRzWydxdWFydGVybHknXSA9ICR0aGlzLT5MYW5nKCdzdWJzY3JfcXVhcnRlcmx5Jyk7CiAgICAkc3Vic2NyaWJlX29wdHNbJ3NlbWlhbnVhbGx5J10gPSAkdGhpcy0+TGFuZygnc3Vic2NyX3NlbWlhbnVhbGx5Jyk7CiAgICAkc3Vic2NyaWJlX29wdHNbJ3llYXJseSddID0gJHRoaXMtPkxhbmcoJ3N1YnNjcl95ZWFybHknKTsKICAgICRzdWJzY3JpYmVfb3B0cyA9IGFycmF5X2ZsaXAoJHN1YnNjcmliZV9vcHRzKTsKCiAgICAkZXhwaXJlX29wdHMgPSBhcnJheSgpOwogICAgJGV4cGlyZV9vcHRzWyR0aGlzLT5MYW5nKCdub25lJyldID0gLTE7CiAgICAkZXhwaXJlX29wdHNbJHRoaXMtPkxhbmcoJ2V4cGlyZV9zaXhfbW9udGhzJyldID0gJzYnOwogICAgJGV4cGlyZV9vcHRzWyR0aGlzLT5MYW5nKCdleHBpcmVfb25lX3llYXInKV0gPSAnMTInOwogICAgJGV4cGlyZV9vcHRzWyR0aGlzLT5MYW5nKCdleHBpcmVfdHdvX3llYXInKV0gPSAnMjQnOwoKICAgICR3bW9wdHMgPSBhcnJheSgpOwogICAgJHdtb3B0c1skdGhpcy0+TGFuZygnbm9uZScpXSA9ICdub25lJzsKICAgICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2RlZmF1bHQnKV0gPSAnZGVmYXVsdCc7CiAgICAkd21vcHRzWyR0aGlzLT5MYW5nKCdhbGlnbl91bCcpXSA9ICcwJzsKICAgICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2FsaWduX3VjJyldID0gJzEnOwogICAgJHdtb3B0c1skdGhpcy0+TGFuZygnYWxpZ25fdXInKV0gPSAnMic7CiAgICAkd21vcHRzWyR0aGlzLT5MYW5nKCdhbGlnbl9tbCcpXSA9ICczJzsKICAgICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2FsaWduX21jJyldID0gJzQnOwogICAgJHdtb3B0c1skdGhpcy0+TGFuZygnYWxpZ25fbXInKV0gPSAnNSc7CiAgICAkd21vcHRzWyR0aGlzLT5MYW5nKCdhbGlnbl9sbCcpXSA9ICc2JzsKICAgICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2FsaWduX2xjJyldID0gJzcnOwogICAgJHdtb3B0c1skdGhpcy0+TGFuZygnYWxpZ25fbHInKV0gPSAnOCc7CgogICAgZm9yZWFjaCAoJGZpZWxkZGVmcyBhcyAkZmllbGRkZWYpCiAgICAgIHsKCSRmaWVsZCA9IG5ldyBzdGRDbGFzcygpOwoKCSR2YWx1ZSA9ICcnOwoJaWYgKGlzc2V0KCRmaWVsZGRlZi0+dmFsdWUpKQoJICB7CgkgICAgJHZhbHVlID0gJGZpZWxkZGVmLT52YWx1ZTsKCSAgfQoKCWlmIChpc3NldCgkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddWydmaWVsZC0nLiRmaWVsZGRlZi0+aWRdKSkKCSAgJHZhbHVlID0gJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGQnXVsnZmllbGQtJy4kZmllbGRkZWYtPmlkXTsKCgkkZmllbGQtPmlkID0gJGZpZWxkZGVmLT5pZDsKCSRmaWVsZC0+bmFtZSA9ICRmaWVsZGRlZi0+bmFtZTsKCSRmaWVsZC0+dHlwZSA9ICRmaWVsZGRlZi0+dHlwZTsKCWlmKCBpc3NldCgkZmllbGRkZWYtPnZhbHVlKSAmJiAhZW1wdHkoJGZpZWxkZGVmLT52YWx1ZSkgKSAkZmllbGQtPnZhbHVlID0gJGZpZWxkZGVmLT52YWx1ZTsKCSRmaWVsZC0+cHJvbXB0ID0gJGZpZWxkZGVmLT5wcm9tcHQ7Cglzd2l0Y2ggKCRmaWVsZGRlZi0+dHlwZSkKCSAgewoJICBjYXNlICdkaW1lbnNpb25zJzoKCSAgICBpZiggIWlzX2FycmF5KCR2YWx1ZSkgKQoJICAgICAgewoJCSR2YWx1ZSA9IGFycmF5KCdsZW5ndGgnPT4wLCd3aWR0aCc9PjAsJ2hlaWdodCc9PjApOwoJICAgICAgfQoJICAgICRmaWVsZC0+cHJvbXB0IC49ICcmbmJzcDsoJy5wcm9kdWN0X29wczo6Z2V0X2xlbmd0aF91bml0cygpLicpJzsKCSAgICAkZmllbGQtPmlucHV0X2JveCA9IAoJICAgICAgJHRoaXMtPkxhbmcoJ2FiYnJfbGVuZ3RoJykuJzombmJzcCcuCgkgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddW2xlbmd0aF0nLAoJCQkJICAgICAkdmFsdWVbJ2xlbmd0aCddLDMsMykuCgkgICAgICAkdGhpcy0+TGFuZygnYWJicl93aWR0aCcpLic6Jm5ic3AnLgoJICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXVt3aWR0aF0nLAoJCQkJICAgICAkdmFsdWVbJ3dpZHRoJ10sMywzKS4KCSAgICAgICR0aGlzLT5MYW5nKCdhYmJyX2hlaWdodCcpLic6Jm5ic3AnLgoJICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXVtoZWlnaHRdJywKCQkJCSAgICAgJHZhbHVlWydoZWlnaHQnXSwzLDMpOwoJICAgIGJyZWFrOwoKCSAgY2FzZSAnY2hlY2tib3gnOgoJICAgICRmaWVsZC0+aW5wdXRfYm94ID0gCiAgICAgICAgICAgICAgICAgICAgICAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJyAuICRpZCAuICdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nIC4gJyIgdmFsdWU9ImZhbHNlIiAvPicgLiAKICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsICd0cnVlJywgJHZhbHVlICk7CgkgICAgYnJlYWs7CgkgIGNhc2UgJ3RleHRhcmVhJzoKCSAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVUZXh0QXJlYSh0cnVlLCAkaWQsICR2YWx1ZSwgJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScpOwoJICAgIGJyZWFrOwoJICBjYXNlICdkcm9wZG93bic6CgkgICAgJGZpZWxkLT5pbnB1dF9ib3ggPSAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLAoJCQkJCQkJICAgJGZpZWxkZGVmLT5vcHRpb25zLCAtMSwgJHZhbHVlICk7CgkgICAgYnJlYWs7CgkgIGNhc2UgJ2ZpbGUnOgoJICAgICRmaWVsZC0+ZGVsZXRlID0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdjdXN0b21maWVsZFtkZWxldGVmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLAoJCQkJCQkJMSwwKTsKCSAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCcnLDUwKTsKCSAgICAkZmllbGQtPmhpZGRlbiA9ICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsJHZhbHVlKTsKCSAgICBicmVhazsKCSAgY2FzZSAnaW1hZ2UnOgoJICAgIGlmICgkdmFsdWUpIHsKCSAgICAgICRkZXN0ZGlyID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkdGhpcy0+R2V0TmFtZSgpLAoJCQkJICAgICAgICdwcm9kdWN0XycuJGNvbXBpZCk7CgkgICAgICAkdXJsID0gJGdDbXMtPmNvbmZpZ1sndXBsb2Fkc191cmwnXS4iLyIuJHRoaXMtPkdldE5hbWUoKS4iL3Byb2R1Y3RfeyRjb21waWR9IjsKCSAgICAgICRmbiA9IGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJ3RodW1iXycuJHZhbHVlKTsKCSAgICAgIGlmKCBmaWxlX2V4aXN0cygkZm4pICkgJGZpZWxkLT5pbWFnZSA9ICJ7JHVybH0veyR2YWx1ZX0iOwoJICAgICAgJGZuID0gY21zX2pvaW5fcGF0aCgkZGVzdGRpciwndGh1bWJfJy4kdmFsdWUpOwoJICAgICAgaWYoIGZpbGVfZXhpc3RzKCRmbikgKSAkZmllbGQtPnRodW1ibmFpbCA9ICJ7JHVybH0vdGh1bWJfeyR2YWx1ZX0iOwoJICAgICAgJGZuID0gY21zX2pvaW5fcGF0aCgkZGVzdGRpciwncHJldmlld18nLiR2YWx1ZSk7CgkgICAgICBpZiggZmlsZV9leGlzdHMoJGZuKSApICRmaWVsZC0+cHJldmlldyA9ICJ7JHVybH0vcHJldmlld197JHZhbHVlfSI7CgkgICAgfQogICAgICAgICAgICBpZiggJHRoaXMtPkdldFByZWZlcmVuY2UoJ2F1dG93YXRlcm1hcmsnKSA9PSAnYWRqdXN0YWJsZScgKQogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRmaWVsZC0+YXR0cmlidXRlID0gJHRoaXMtPkxhbmcoJ3dhdGVybWFya19sb2NhdGlvbicpLicmbmJzcDsnLgogICAgICAgICAgICAgICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnY3VzdG9tZmllbGRfYXR0cltmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCR3bW9wdHMsLTEsJ2RlZmF1bHQnKTsKICAgICAgICAgICAgICB9CgkgICAgJGZpZWxkLT5kZWxldGUgPSAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ2N1c3RvbWZpZWxkW2RlbGV0ZWZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsCgkJCQkJCQkxLDApOwoJICAgICRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkNyZWF0ZUZpbGVVcGxvYWRJbnB1dCgkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsJycsNTApOwoJICAgICRmaWVsZC0+aGlkZGVuID0gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddJywkdmFsdWUpOwoJICAgIGJyZWFrOwoJICBjYXNlICdzdWJzY3JpcHRpb24nOgoJICAgIGlmKCAhaXNfYXJyYXkoJHZhbHVlKSApCgkgICAgICB7CgkJJHZhbHVlID0gYXJyYXkoJ3BheXBlcmlvZCc9Pi0xLCdkZWxwZXJpb2QnPT4tMSwnZXhwaXJlJz0+MSk7CgkgICAgICB9CgkgICAgaWYoICFpc3NldCgkdmFsdWVbJ3BheXBlcmlvZCddKSApICR2YWx1ZVsncGF5cGVyaW9kJ10gPSAtMTsKCSAgICBpZiggIWlzc2V0KCR2YWx1ZVsnZGVscGVyaW9kJ10pICkgJHZhbHVlWydkZWxwZXJpb2QnXSA9IC0xOwoJICAgIGlmKCAhaXNzZXQoJHZhbHVlWydleHBpcmUnXSkgKSAkdmFsdWVbJ2V4cGlyZSddID0gLTE7CgkgICAgJGZpZWxkLT5pbnB1dF9ib3ggPSAkdGhpcy0+TGFuZygnc3Vic2NyX3BheXBlcmlvZCcpLic6Jm5ic3A7JzsKCSAgICAkZmllbGQtPmlucHV0X2JveCAuPSAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXVtwYXlwZXJpb2RdJywKCQkJCQkJCSAgICRzdWJzY3JpYmVfb3B0cywgLTEsICR2YWx1ZVsncGF5cGVyaW9kJ10pOwoJICAgICRmaWVsZC0+aW5wdXRfYm94IC49ICc8YnIvPicuJHRoaXMtPkxhbmcoJ3N1YnNjcl9kZWxwZXJpb2QnKS4nOiZuYnNwOyc7CgkgICAgJGZpZWxkLT5pbnB1dF9ib3ggLj0gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ11bZGVscGVyaW9kXScsCgkJCQkJCQkgICAkc3Vic2NyaWJlX29wdHMsIC0xLCAkdmFsdWVbJ2RlbHBlcmlvZCddKTsKCSAgICAkZmllbGQtPmlucHV0X2JveCAuPSAnPGJyLz4nLiR0aGlzLT5MYW5nKCdzdWJzY3JfZXhwaXJ5JykuJzombmJzcDsnOwoJICAgICRmaWVsZC0+aW5wdXRfYm94IC49ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddW2V4cGlyZV0nLAoJCQkJCQkJICAgJGV4cGlyZV9vcHRzLCAtMSwgJHZhbHVlWydleHBpcmUnXSk7CgkgICAgYnJlYWs7CgoJICBjYXNlICdxdWFudGl0eSc6CgkgICAgJGZpZWxkLT5pbnB1dF9ib3ggPSAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsICR2YWx1ZSwgNCwgNCk7CgkgICAgYnJlYWs7CgoJICBjYXNlICd0ZXh0Ym94JzoKCSAgZGVmYXVsdDoKCSAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddJywgJHZhbHVlLCAzMCwgMjU1KTsKCSAgICBicmVhazsKCSAgfQoKCSRmaWVsZGFycmF5W10gPSAkZmllbGQ7CiAgICAgIH0KICB9CgokYWxsY2F0ZWdvcmllcyA9ICR0aGlzLT5HZXRDYXRlZ29yaWVzKCk7CiRjYXRhcnJheSA9IGFycmF5KCk7CmZvcmVhY2goICRhbGxjYXRlZ29yaWVzIGFzICRvbmUgKQp7CiAgJGNhdGFycmF5WyRvbmUtPm5hbWVdID0gJG9uZS0+aWQ7Cn0KJHNlbGNhdGVnb3JpZXMgPSAkdGhpcy0+R2V0Q2F0ZWdvcmllc0ZvclByb2R1Y3QoJGNvbXBpZCk7CiRzZWxjYXRhcnJheSA9IGFycmF5KCk7CmZvcmVhY2goICRzZWxjYXRlZ29yaWVzIGFzICRvbmUgKQp7CiAgaWYoICEkb25lLT52YWx1ZSApIGNvbnRpbnVlOwogICRzZWxjYXRhcnJheVskb25lLT5uYW1lXSA9ICRvbmUtPmlkOwp9CgojRGlzcGxheSB0ZW1wbGF0ZQokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnZWRpdHByb2R1Y3QnLCAkcmV0dXJuaWQsICdwb3N0JywgJ211bHRpcGFydC9mb3JtLWRhdGEnKSk7CiRzbWFydHktPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokc21hcnR5LT5hc3NpZ24oJ25hbWV0ZXh0JywgJHRoaXMtPkxhbmcoJ25hbWUnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRuYW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdwcm9kdWN0X25hbWUnLCAkcHJvZHVjdF9uYW1lLCAzMCwgMjU1KSk7CiRzbWFydHktPmFzc2lnbigncHJpY2V0ZXh0JywgJHRoaXMtPkxhbmcoJ3ByaWNlJykpOwokc21hcnR5LT5hc3NpZ24oJ2N1cnJlbmN5X3N5bWJvbCcscHJvZHVjdF9vcHM6OmdldF9jdXJyZW5jeV9zeW1ib2woKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRwcmljZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAncHJpY2UnLCBzcHJpbnRmKCIlLjJGIiwkcHJpY2UpLCAxMCwgMTIpKTsKJHNtYXJ0eS0+YXNzaWduKCd3ZWlnaHR0ZXh0JywgJHRoaXMtPkxhbmcoJ3dlaWdodCcpKTsKJHNtYXJ0eS0+YXNzaWduKCd3ZWlnaHR1bml0cycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Byb2R1Y3RzX3dlaWdodHVuaXRzJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0d2VpZ2h0JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd3ZWlnaHQnLCAKCQkJCQkJCSAgICBzcHJpbnRmKCIlLjJGIiwkd2VpZ2h0KSwgMTAsIDEyKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRza3UnLCR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdza3UnLCRza3UsMTAsMjUpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGFsaWFzJywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnYWxpYXMnLCRhbGlhcyw0MCwyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCdkZXRhaWxzdGV4dCcsICR0aGlzLT5MYW5nKCdkZXRhaWxzJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0ZGV0YWlscycsICR0aGlzLT5DcmVhdGVUZXh0QXJlYSh0cnVlLCAkaWQsICRkZXRhaWxzLCAnZGV0YWlscycsICcnLCAnJywgJycsICcnLCAnODAnLCAnNScpKTsKCmlmKCBjb3VudCgkY2F0YXJyYXkpID4gMCApIHsKICAkbiA9IGNvdW50KCRjYXRhcnJheSkvNDsKICAkbiA9IG1pbigkbiwyMCk7CiAgJG4gPSBtYXgoJG4sNSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfY2F0ZWdvcmllcycsCgkJJHRoaXMtPkNyZWF0ZUlucHV0U2VsZWN0TGlzdCgkaWQsJ2NhdGVnb3JpZXNbXScsJGNhdGFycmF5LCRzZWxjYXRhcnJheSwkbikpOzsKIH0KCiRzbWFydHktPmFzc2lnbigndGF4YWJsZXRleHQnLCR0aGlzLT5MYW5nKCd0YXhhYmxlJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0dGF4YWJsZScsCgkJJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCd0YXhhYmxlJywxLCR0YXhhYmxlKSk7CgokaGllcmFyY2h5X2l0ZW1zID0gJHRoaXMtPkJ1aWxkSGllcmFyY2h5TGlzdCgpOwokc21hcnR5LT5hc3NpZ24oJ2hpZXJhcmNoeV9pdGVtcycsJGhpZXJhcmNoeV9pdGVtcyk7CiRzbWFydHktPmFzc2lnbignaGllcmFyY2h5X3BvcycsJGhpZXJhcmNoeV9wb3MpOwoKJHN0YXR1c2VzID0gYXJyYXkoJHRoaXMtPkxhbmcoJ3B1Ymxpc2hlZCcpPT4ncHVibGlzaGVkJywKCQkgICR0aGlzLT5MYW5nKCdkcmFmdCcpPT4nZHJhZnQnLAoJCSAgJHRoaXMtPkxhbmcoJ2Rpc2FibGVkJyk9PidkaXNhYmxlZCcpOwokc21hcnR5LT5hc3NpZ24oJ3N0YXR1c3RleHQnLCR0aGlzLT5MYW5nKCdzdGF0dXMnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRzdGF0dXMnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnc3RhdHVzJywKCQkJCQkgICAkc3RhdHVzZXMsLTEsJHN0YXR1cykpOwoKJHNtYXJ0eS0+YXNzaWduKCdpZHRleHQnLCR0aGlzLT5MYW5nKCdpZCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdjb21waWQnLCRjb21waWQpOwokc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsIAoJCSR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdjb21waWQnLCAkY29tcGlkKS4KCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnb3JpZ25hbWUnLCAkb3JpZ25hbWUpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjdXN0b21maWVsZHMnLCAkZmllbGRhcnJheSk7CiRzbWFydHktPmFzc2lnbignY3VzdG9tZmllbGRzY291bnQnLCBjb3VudCgkZmllbGRhcnJheSkpOwoKJHNtYXJ0eS0+YXNzaWduKCdzdGFydHRhYmhlYWRlcnMnLCR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKSk7CiRzbWFydHktPmFzc2lnbigndGFiaGVhZGVyX21haW4nLCR0aGlzLT5TZXRUYWJIZWFkZXIoJ21haW4nLCR0aGlzLT5MYW5nKCdwcm9kdWN0X2luZm8nKSkpOwokc21hcnR5LT5hc3NpZ24oJ3RhYmhlYWRlcl9maWVsZHMnLCR0aGlzLT5TZXRUYWJIZWFkZXIoJ2ZpZWxkcycsJHRoaXMtPkxhbmcoJ2ZpZWxkcycpKSk7CiRzbWFydHktPmFzc2lnbigndGFiaGVhZGVyX2FkdmFuY2VkJywkdGhpcy0+U2V0VGFiSGVhZGVyKCdhZHZhbmNlZCcsJHRoaXMtPkxhbmcoJ2FkdmFuY2VkJykpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmR0YWJoZWFkZXJzJywkdGhpcy0+RW5kVGFiSGVhZGVycygpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGFydHRhYmNvbnRlbnQnLCR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKSk7CiRzbWFydHktPmFzc2lnbigndGFiX21haW4nLCR0aGlzLT5TdGFydFRhYignbWFpbicpKTsKJHNtYXJ0eS0+YXNzaWduKCd0YWJfZmllbGRzJywkdGhpcy0+U3RhcnRUYWIoJ2ZpZWxkcycpKTsKJHNtYXJ0eS0+YXNzaWduKCd0YWJfYWR2YW5jZWQnLCR0aGlzLT5TdGFydFRhYignYWR2YW5jZWQnKSk7CiRzbWFydHktPmFzc2lnbignZW5kdGFiJywkdGhpcy0+RW5kVGFiKCkpOwokc21hcnR5LT5hc3NpZ24oJ2VuZHRhYmNvbnRlbnQnLCR0aGlzLT5FbmRUYWJDb250ZW50KCkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0cHJvZHVjdC50cGwnKTsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.edit_attribsets.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBQcm9kdWN0cyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMgCiMgVmVyc2lvbjogMS4xLjUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQoKTsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSkKewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbmVlZHBlcm1pc3Npb24nLCBhcnJheSgnTW9kaWZ5IFByb2R1Y3RzJykpKTsKCXJldHVybjsKfQppZiggIWlzc2V0KCRwYXJhbXNbJ2NvbXBpZCddKSApCiAgewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwoJcmV0dXJuOwogIH0KZWNobyAkdGhpcy0+U2V0Q3VycmVudFRhYigncHJvZHVjdHMnKTsKCi8vU0VMRUNUIEEuKixjb3VudChCLmF0dHJpYl90ZXh0KSBBUyBjb3VudCBGUk9NIGNtc19tb2R1bGVfcHJvZHVjdHNfYXR0cmlic2V0cyBBIExFRlQgSk9JTiBjbXNfbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnV0ZXMgQiBPTiBBLmF0dHJpYl9zZXRfaWQgPSBCLmF0dHJpYl9zZXRfaWQgR1JPVVAgQlkgYXR0cmliX3NldF9pZDsKJHF1ZXJ5ID0gIlNFTEVDVCBBLiosY291bnQoQi5hdHRyaWJfdGV4dCkgQVMgY291bnQgCiAgICAgICAgICBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlic2V0cyBBIAogICAgICAgICAgTEVGVCBKT0lOICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcyBCIAogICAgICAgICAgT04gQS5hdHRyaWJfc2V0X2lkID0gQi5hdHRyaWJfc2V0X2lkIAogICAgICAgICAgV0hFUkUgcHJvZHVjdF9pZCA9ID8KICAgICAgICAgIEdST1VQIEJZIEEuYXR0cmliX3NldF9pZCI7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSgkcGFyYW1zWydjb21waWQnXSkgKTsKJG9iamVjdHMgPSBhcnJheSgpOwp3aGlsZSggJGRicmVzdWx0ICYmICgkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSApCiAgewoJJG9iaiA9IGNnZV9hcnJheTo6dG9fb2JqZWN0KCRyb3cpOwoJJG9iai0+ZGVsZXRlbGluayA9ICR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdkZWxldGVfYXR0cmlic2V0JywkcmV0dXJuaWQsCgkJCQkJCQkJCQkJICAkdGhpcy0+TGFuZygnZGVsZXRlX2F0dHJpYnNldCcpLAoJCQkJCQkJCQkJCSAgJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywKCQkJCQkJCQkJCQkgIGFycmF5KCdjb21waWQnPT4kcGFyYW1zWydjb21waWQnXSwKCQkJCQkJCQkJCQkJCSdhdHRyc2V0aWQnPT4kcm93WydhdHRyaWJfc2V0X2lkJ10pKTsKCgkkb2JqLT5lZGl0bGluayA9ICR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdhZGRfYXR0cmliX3NldCcsJHJldHVybmlkLAoJCQkJCQkJCQkJCSAgJHRoaXMtPkxhbmcoJ2VkaXRfYXR0cmlic2V0JyksCgkJCQkJCQkJCQkJICAnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywKCQkJCQkJCQkJCQkgIGFycmF5KCdjb21waWQnPT4kcGFyYW1zWydjb21waWQnXSwKCQkJCQkJCQkJCQkJCSdhdHRyc2V0aWQnPT4kcm93WydhdHRyaWJfc2V0X2lkJ10pKTsKCgkkb2JqZWN0c1tdID0gJG9iajsKICB9CgokcXVlcnkgPSAnU0VMRUNUIHByb2R1Y3RfbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMKICAgICAgICAgICBXSEVSRSBpZCA9ID8nOwokcHJvZHVjdF9uYW1lID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRwYXJhbXNbJ2NvbXBpZCddKSk7CiRzbWFydHktPmFzc2lnbigndGl0bGVfYXR0cmlic2V0c19mb3InLCR0aGlzLT5MYW5nKCdlZGl0X2F0dHJpYnNldHNfZm9yJykpOwokc21hcnR5LT5hc3NpZ24oJ3Byb2R1Y3RfbmFtZScsJHByb2R1Y3RfbmFtZSk7Cgokc21hcnR5LT5hc3NpZ24oJ2l0ZW1zJywkb2JqZWN0cyk7CiRzbWFydHktPmFzc2lnbignaXRlbWNvdW50Jyxjb3VudCgkb2JqZWN0cykpOwokc21hcnR5LT5hc3NpZ24oJ2lkdGV4dCcsJHRoaXMtPkxhbmcoJ2lkJykpOwokc21hcnR5LT5hc3NpZ24oJ25hbWV0ZXh0JywkdGhpcy0+TGFuZygnbmFtZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdjb3VudHRleHQnLCR0aGlzLT5MYW5nKCd2YWx1ZXMnKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2FkZF9saW5rJywKCQkJCSR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdhZGRfYXR0cmliX3NldCcsJHJldHVybmlkLAoJCQkJCQkJCQkgICAkdGhpcy0+TGFuZygnYWRkX2F0dHJpYl9zZXQnKSwKCQkJCQkJCQkJICAgJ2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJywKCQkJCQkJCQkJICAgYXJyYXkoJ2NvbXBpZCc9PiRwYXJhbXNbJ2NvbXBpZCddKSwKCQkJCQkJCQkJICAgJycsJycsZmFsc2UpKTsKCiRzbWFydHktPmFzc2lnbignY29weV9saW5rJywKCQkJCSR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdhZG1pbl9jb3B5X2F0dHJpYnNldHMnLCRyZXR1cm5pZCwKCQkJCQkJCQkJICAgJHRoaXMtPkxhbmcoJ2NvcHlfYXR0cmliX3NldHMnKSwKCQkJCQkJCQkJICAgJ2ljb25zL3N5c3RlbS9jb3B5LmdpZicsCgkJCQkJCQkJCSAgIGFycmF5KCdkZXN0X2NvbXBpZCc9PiRwYXJhbXNbJ2NvbXBpZCddKSwKCQkJCQkJCQkJICAgJycsJycsZmFsc2UpKTsKJHNtYXJ0eS0+YXNzaWduKCdyZXR1cm5fbGluaycsCgkJCQkkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnZGVmYXVsdGFkbWluJywkcmV0dXJuaWQsCgkJCQkJCQkJCSAgICR0aGlzLT5MYW5nKCdyZXR1cm4nKSwKCQkJCQkJCQkJICAgJ2ljb25zL3N5c3RlbS9iYWNrLmdpZicsCgkJCQkJCQkJCSAgIGFycmF5KCdjb21waWQnPT4kcGFyYW1zWydjb21waWQnXSksCgkJCQkJCQkJCSAgICcnLCcnLGZhbHNlKSk7CgoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0X2F0dHJpYnNldHMudHBsJyk7CgovLyBFT0YKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.exportcsv.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDEyIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3Byb2R1Y3RzJyk7CmlmKCBpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkgKSB7CiAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKfQoKJGFsbGNhdHMgPSAnJzsKJGFsbGZpZWxkcyA9ICcnOwokb3BzID0gYXJyYXkoJ2V4cG9ydGRyYWZ0Jz0+MSwKCSAgICAgJ2V4cG9ydGNhdHMnPT4xLAoJICAgICAnZXhwb3J0ZmllbGRzJz0+MSwKCSAgICAgJ2V4cG9ydGF0dHJpYnMnPT4xLAoJICAgICAnZXhwb3J0ZGVsaW0nPT4nLCcpOwoKZnVuY3Rpb24gcXVvdGUoJHN0cikKewogIGlmKCAkc3RyICkgcmV0dXJuICciJy4kc3RyLiciJzsKfQoKZnVuY3Rpb24gdG9fZmxhdF9hcnJheSgkcHJvZHVjdCwkbWFwKQp7CiAgJG91dCA9IGFycmF5KCk7CiAgZm9yZWFjaCggJG1hcCBhcyAka2V5ICkgewogICAgc3dpdGNoKCAka2V5ICkgewogICAgY2FzZSAnRkxBRyc6CiAgICAgICRvdXRbXSA9ICdQJzsKICAgICAgYnJlYWs7CiAgICBjYXNlICduYW1lJzoKICAgICAgJG91dFtdID0gcXVvdGUoJHByb2R1Y3QtPnByb2R1Y3RfbmFtZSk7CiAgICAgIGJyZWFrOwogICAgY2FzZSAnc2t1JzoKICAgICAgJG91dFtdID0gcXVvdGUoJHByb2R1Y3QtPnNrdSk7CiAgICAgIGJyZWFrOwogICAgY2FzZSAnZGV0YWlscyc6CiAgICAgICRvdXRbXSA9IHF1b3RlKCRwcm9kdWN0LT5kZXRhaWxzKTsKICAgICAgYnJlYWs7CiAgICBjYXNlICdwcmljZSc6CiAgICAgICRvdXRbXSA9ICRwcm9kdWN0LT5wcmljZTsKICAgICAgYnJlYWs7CiAgICBjYXNlICdjcmVhdGVfZGF0ZSc6CiAgICAgICRvdXRbXSA9ICRwcm9kdWN0LT5jcmVhdGVfZGF0ZTsKICAgICAgYnJlYWs7CiAgICBjYXNlICdtb2RpZmllZF9kYXRlJzoKICAgICAgJG91dFtdID0gJHByb2R1Y3QtPm1vZGlmaWVkX2RhdGU7CiAgICAgIGJyZWFrOwogICAgY2FzZSAndGF4YWJsZSc6CiAgICAgICRvdXRbXSA9ICRwcm9kdWN0LT50YXhhYmxlOwogICAgICBicmVhazsKICAgIGNhc2UgJ3N0YXR1cyc6CiAgICAgICRvdXRbXSA9IHF1b3RlKCRwcm9kdWN0LT5zdGF0dXMpOwogICAgICBicmVhazsKICAgIGNhc2UgJ3dlaWdodCc6CiAgICAgICRvdXRbXSA9ICRwcm9kdWN0LT53ZWlnaHQ7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ0hJRVInOgogICAgICAkdmFsID0gJyc7CiAgICAgIGlmKCAkcHJvZHVjdC0+aGllcmFyY2h5X2lkICkgewoJJGhpZXIgPSBoaWVyYXJjaHlfb3BzOjpnZXRfaGllcmFyY2h5X2luZm8oJHByb2R1Y3QtPmhpZXJhcmNoeV9pZCk7CglpZiggaXNfYXJyYXkoJGhpZXIpICYmIGNvdW50KCRoaWVyKSApIHsKCSAgJHZhbCA9IHN0cl9yZXBsYWNlKCd8JywnPj4nLCRoaWVyWydsb25nX25hbWUnXSk7Cgl9CiAgICAgIH0KICAgICAgJG91dFtdID0gcXVvdGUoJHZhbCk7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ0FUVFJJQlMnOgogICAgICAvLyBTZXQ6QXR0cjphZGosc2t1LS0KICAgICAgJHZhbCA9ICcnOwogICAgICBpZiggaXNzZXQoJHByb2R1Y3QtPmF0dHJpYnV0ZXNfZnVsbCkgJiYgY291bnQoJHByb2R1Y3QtPmF0dHJpYnV0ZXNfZnVsbCkgKSB7Cgkkc2V0cyA9IGFycmF5KCk7Cglmb3JlYWNoKCAkcHJvZHVjdC0+YXR0cmlidXRlc19mdWxsIGFzICR0aGVzZXQgPT4gJGF0dHJpYnNldCApIHsKCSAgJG9uZXNldCA9IGFycmF5KCdzZXQnPT4nJywnYXR0cic9PicnLCdhZGonPT4nJywnc2t1Jz0+JycpOwoJICAkb25lc2V0WydzZXQnXSA9IHF1b3RlKCR0aGVzZXQpOwoJICBmb3JlYWNoKCAkYXR0cmlic2V0IGFzICRhdHRyID0+ICRhdHRyaWJpbmZvICkgewoJICAgICRvbmVzZXRbJ2F0dHInXSA9IHF1b3RlKCRhdHRyKTsKCSAgICAkb25lc2V0WydhZGonXSA9ICRhdHRyaWJpbmZvWydhdHRyaWJfYWRqdXN0bWVudCddOwoJICAgICRvbmVzZXRbJ3NrdSddID0gcXVvdGUoJGF0dHJpYmluZm9bJ3NrdSddKTsKCSAgICAkc2V0c1tdID0gaW1wbG9kZSgnOicsYXJyYXlfdmFsdWVzKCRvbmVzZXQpKTsKCSAgfQoJfQoJJHZhbCA9IGltcGxvZGUoJy0tJywkc2V0cyk7CiAgICAgIH0KICAgICAgJG91dFtdID0gJHZhbDsKICAgICAgYnJlYWs7CgogICAgZGVmYXVsdDoKICAgICAgaWYoIHN0YXJ0c3dpdGgoJGtleSwnQ0FUOicpICkgewoJLy8gY2F0ZWdvcmllcyBhcmUgb25seSAxIG9yIDAKCSR2YWwgPSAwOwoJaWYoIGlzc2V0KCRwcm9kdWN0LT5jYXRlZ29yaWVzKSAmJiBjb3VudCgkcHJvZHVjdC0+Y2F0ZWdvcmllcykgKSB7CgkgICRuYW1lID0gc3Vic3RyKCRrZXksNCk7CgkgIGZvcmVhY2goICRwcm9kdWN0LT5jYXRlZ29yaWVzIGFzICRvbmUgKSB7CgkgICAgaWYoICRvbmUtPm5hbWUgIT0gJG5hbWUgKSBjb250aW51ZTsKCSAgICBpZiggJG9uZS0+dmFsdWUgPT0gMSApIHsKCSAgICAgICR2YWwgPSAxOwoJICAgICAgYnJlYWs7CgkgICAgfQoJICB9Cgl9Cgkkb3V0W10gPSAkdmFsOwogICAgICB9CiAgICAgIGVsc2VpZiggc3RhcnRzd2l0aCgka2V5LCdGSUVMRDonKSApIHsKCSR2YWwgPSAnJzsKCWlmKCBpc3NldCgkcHJvZHVjdC0+ZmllbGRzKSAmJiBjb3VudCgkcHJvZHVjdC0+ZmllbGRzKSApIHsKCSAgbGlzdCgkdDAsJHQxLCRuYW1lKSA9IGV4cGxvZGUoJzonLCRrZXksMyk7CgkgIGlmKCBpc3NldCgkcHJvZHVjdC0+ZmllbGRzWyRuYW1lXSkgJiYgaXNfb2JqZWN0KCRwcm9kdWN0LT5maWVsZHNbJG5hbWVdKSApIHsKCSAgICAkZmxkID0gJHByb2R1Y3QtPmZpZWxkc1skbmFtZV07CgkgICAgc3dpdGNoKCAkZmxkLT50eXBlICkgewoJICAgIGNhc2UgJ2RpbWVuc2lvbnMnOgoJICAgICAgJHZhbCA9ICdsOicuJGZsZC0+dmFsdWVbJ2xlbmd0aCddLicsdzonLiRmbGQtPnZhbHVlWyd3aWR0aCddLicsaDonLiRmbGQtPnZhbHVlWydoZWlnaHQnXTsKCSAgICAgIGJyZWFrOwoJICAgIGNhc2UgJ3N1YnNjcmlwdGlvbic6CgkgICAgICAkdmFsID0gJyc7IC8vIHN1YnNjcmlwdGlvbiBpbmZvIG5vdCBvdXRwdXQsb3IgcmVhZC4uLiBmb3Igbm93LgoJICAgICAgYnJlYWs7CgkgICAgZGVmYXVsdDoKCSAgICAgICR2YWwgPSAkZmxkLT52YWx1ZTsKCSAgICB9CgkgIH0KCX0KCSRvdXRbXSA9IHF1b3RlKCR2YWwpOwogICAgICB9CiAgICB9CiAgfQogIHJldHVybiAkb3V0Owp9CgppZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkgewoKICBzZXRfdGltZV9saW1pdCgwKTsKICAkaGFuZGxlcnMgPSBvYl9saXN0X2hhbmRsZXJzKCk7IAogIGZvciAoJGNudCA9IDA7ICRjbnQgPCBzaXplb2YoJGhhbmRsZXJzKTsgJGNudCsrKSB7IG9iX2VuZF9jbGVhbigpOyB9CgogIC8vVGhlbiBmb3JjZSB0aGUgb3V0cHV0IG5vcm1hbGx5IGFuZCBleGl0IHNvIHdlIGRvbid0IGdldCBhIGZvb3RlcgogIGhlYWRlcigiQ29udGVudC1kaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9cHJvZHVjdHMuIiAuIGRhdGUoIlktbS1kIikgLiAiLmNzdiIpOwogIGhlYWRlcigiQ29udGVudC10eXBlOiB0ZXh0L2NzdiIpOwogIGZsdXNoKCk7CiAgCiAgJG9wc1snZXhwb3J0Y2F0cyddID0gKGludCkkcGFyYW1zWydleHBvcnRjYXRzJ107CiAgJG9wc1snZXhwb3J0ZHJhZnQnXSA9IChpbnQpJHBhcmFtc1snZXhwb3J0ZHJhZnQnXTsKICAkb3BzWydleHBvcnRmaWVsZHMnXSA9IChpbnQpJHBhcmFtc1snZXhwb3J0ZmllbGRzJ107CiAgJG9wc1snZXhwb3J0YXR0cmlicyddID0gKGludCkkcGFyYW1zWydleHBvcnRhdHRyaWJzJ107CiAgJG9wc1snZXhwb3J0ZGVsaW0nXSA9IHRyaW0oJHBhcmFtc1snZXhwb3J0ZGVsaW0nXSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2V4cG9ydG9wdGlvbnMnLHNlcmlhbGl6ZSgkb3BzKSk7CiAgCiAgLy8gbm93IGRvIHRoZSBleHBvcnQuCiAgaWYoICRvcHNbJ2V4cG9ydGNhdHMnXSApIHsKICAgICRhbGxjYXRzID0gcHJvZHVjdF91dGlsczo6Z2V0X2NhdGVnb3JpZXMoKTsKICAgICRtYXAgPSBhcnJheSgnRkxBRycsJ25hbWUnLCdza3UnLCdkZXRhaWxzJywncHJpY2UnLCdjcmVhdGVfZGF0ZScsJ21vZGlmaWVkX2RhdGUnLCd0YXhhYmxlJywnc3RhdHVzJywnd2VpZ2h0JywnSElFUicpOwogICAgaWYoIGlzX2FycmF5KCRhbGxjYXRzKSAmJiBjb3VudCgkYWxsY2F0cykgKSB7CiAgICAgIGZvcmVhY2goICRhbGxjYXRzIGFzICRvbmUgKSB7CgkkbWFwW10gPSAnQ0FUOicuJG9uZS0+bmFtZTsKICAgICAgfQogICAgfQogIH0KCiAgaWYoICRvcHNbJ2V4cG9ydGZpZWxkcyddICkgewogICAgJGFsbGZpZWxkcyA9IHByb2R1Y3RfdXRpbHM6OmdldF9maWVsZGRlZnMoVFJVRSxUUlVFKTsKICAgIGlmKCBpc19hcnJheSgkYWxsZmllbGRzKSAmJiBjb3VudCgkYWxsZmllbGRzKSApIHsKICAgICAgZm9yZWFjaCggJGFsbGZpZWxkcyBhcyAkb25lICkgewoJJG1hcFtdID0gJ0ZJRUxEOicuJG9uZS0+dHlwZS4nOicuJG9uZS0+bmFtZTsKICAgICAgfQogICAgfQogIH0KCiAgaWYoICRvcHNbJ2V4cG9ydGF0dHJpYnMnXSApIHsKICAgICRtYXBbXSA9ICdBVFRSSUJTJzsKICB9CgogICRvdXRwdXQgPSAnJzsKICB7CiAgICAkaGVhZGVyID0gJG1hcDsKICAgIGZvcmVhY2goICRoZWFkZXIgYXMgJiRvbmUgKSB7CiAgICAgICRvbmUgPSAnIycuJG9uZTsKICAgIH0KICAgICRvdXRwdXQgLj0gaW1wbG9kZSgkb3BzWydleHBvcnRkZWxpbSddLCRoZWFkZXIpLiJcbiI7CiAgfQogIGVjaG8gJG91dHB1dDsgZmx1c2goKTsKCiAgLy8gbm93IGdldCB0aGUgcHJvZHVjdHMuLi4KICAkcXVlcnkgPSBuZXcgcHJvZHVjdHNfcXVlcnkoKTsKICAkcXVlcnlbJ3BhZ2VsaW1pdCddID0gMTAwMDAwMDsKICBpZiggJG9wc1snZXhwb3J0ZHJhZnQnXSApIHsKICAgICRxdWVyeVsnc3RhdHVzJ10gPSAnIWRpc2FibGVkJzsKICB9CiAgJHJlc3VsdHMgPSBuZXcgcHJvZHVjdHNfcmVzdWx0c2V0KCRxdWVyeSk7CgogIHdoaWxlKCAhJHJlc3VsdHMtPkVPRiApIHsKICAgICRwcm9kdWN0ID0gJHJlc3VsdHMtPmdldF9wcm9kdWN0KCk7IC8vIHJlYWxseSBkb24ndCBuZWVkIHRoaXMgZm9yIGV4cG9ydCwgY3V6IGxpbmtzIGFyZSBpcnJlbGV2YW50CiAgICAkdG1wID0gdG9fZmxhdF9hcnJheSgkcHJvZHVjdCwkbWFwKTsKICAgICRvdXRwdXQgPSBpbXBsb2RlKCRvcHNbJ2V4cG9ydGRlbGltJ10sJHRtcCkuIlxuIjsKICAgICRyZXN1bHRzLT5Nb3ZlTmV4dCgpOwogICAgZWNobyAkb3V0cHV0OyBmbHVzaCgpOwogIH0KCiAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnRXhwb3J0ZWQgcHJvZHVjdCBkYXRhIHRvIGNzdicpOwogIGV4aXQoKTsKfQoKCiR0bXAgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZXhwb3J0b3B0aW9ucycpOwppZiggJHRtcCApICRvcHMgPSB1bnNlcmlhbGl6ZSgkdG1wKTsKCiRzbWFydHktPmFzc2lnbignb3B0aW9ucycsJG9wcyk7CiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdleHBvcnRjc3YnKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZXhwb3J0Y3N2LnRwbCcpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.fieldlist.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiRmaWVsZHMgPSAnJzsKewogICR0bXAgPSAkdGhpcy0+R2V0RmllbGREZWZzKCk7CiAgaWYoIGlzX2FycmF5KCR0bXApICkKICAgIHsKICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKQoJewoJICAkb2JqID0gJHRtcFskaV07CgkgICRmaWVsZHNbJG9iai0+bmFtZV0gPSAkb2JqOwoJfQogICAgfQp9CiRmaWVsZG5hbWUgPSAnJzsKJHNob3dhbGwgPSAwOwokdGhldGVtcGxhdGUgPSAnY2F0ZWdvcnlsaXN0XycuJHRoaXMtPkdldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ERkxUQ0FURUdPUllMSVNUX1RFTVBMQVRFKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gKSApCiAgewogICAgJHRoZXRlbXBsYXRlID0gJ2NhdGVnb3J5bGlzdF8nLiRwYXJhbXNbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlJ107CiAgfQoKJGRldGFpbHBhZ2UgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGV0YWlscGFnZScsLTEpOwppZiAoaXNzZXQoJHBhcmFtc1snZGV0YWlscGFnZSddKSkKICB7CiAgICAkZGV0YWlscGFnZSA9IHRyaW0oJHBhcmFtc1snZGV0YWlscGFnZSddKTsKICB9CmlmKCAhZW1wdHkoJGRldGFpbHBhZ2UpICYmICRkZXRhaWxwYWdlICE9IC0xICkKICB7CiAgICAkbWFuYWdlciA9JiAkZ0Ntcy0+R2V0SGllcmFyY2h5TWFuYWdlcigpOwogICAgJG5vZGUgPSAkbWFuYWdlci0+c3VyZUdldE5vZGVCeUFsaWFzKCRkZXRhaWxwYWdlKTsKICAgIGlmIChpc3NldCgkbm9kZSkpCiAgICAgIHsKCSRjb250ZW50ID0gJG5vZGUtPkdldENvbnRlbnQoKTsJCglpZiAoaXNzZXQoJGNvbnRlbnQpKQoJICB7CgkgICAgJGRldGFpbHBhZ2UgPSAkY29udGVudC0+SWQoKTsKCSAgfQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRub2RlID0gJG1hbmFnZXItPnN1cmVHZXROb2RlQnlJZCgkZGV0YWlscGFnZSk7CglpZiAoIWlzc2V0KCRub2RlKSkKCSAgewoJICAgICRkZXRhaWxwYWdlID0gJyc7CgkgIH0KICAgICAgfQogIH0KaWYoIGVtcHR5KCRkZXRhaWxwYWdlKSB8fCAkZGV0YWlscGFnZSA9PSAtMSApCiAgewogICAgJGRldGFpbHBhZ2UgPSAkcmV0dXJuaWQ7CiAgfQoKaWYoICFpc3NldCgkcGFyYW1zWydmaWVsZCddKSApIHJldHVybjsKJGZpZWxkbmFtZSA9IHRyaW0oJHBhcmFtc1snZmllbGQnXSk7CmlmKCAhaXNzZXQoJGZpZWxkc1skZmllbGRuYW1lXSkgKSByZXR1cm47CmlmKCBpc3NldCgkcGFyYW1zWydzaG93YWxsJ10pICkKICB7CiAgICAkc2hvd2FsbCA9IChpbnQpJHBhcmFtc1snc2hvd2FsbCddOwogIH0KJGZpZWxkID0gJGZpZWxkc1skZmllbGRuYW1lXTsKCi8vIG9raWUsIG5vdyBnb3R0YSBnZXQgdGhlIGRpc3RpbmN0IHZhbHVlcyBvdXQgb2YgdGhlIGRhdGFiYXNlCi8vIGZvciB0aGlzIGZpZWxkLgokcXVlcnkgPSAnU0VMRUNUIERJU1RJTkNUIHZhbHVlIEFTIG5hbWUsY291bnQodmFsdWUpIGFzIGNvdW50IEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgCiAgICAgICAgICAgV0hFUkUgZmllbGRkZWZfaWQgPSA/IEdST1VQIEJZIHZhbHVlJzsKJHRtcCA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5LGFycmF5KCRmaWVsZHNbJGZpZWxkbmFtZV0tPmlkKSk7CmlmKCAhJHRtcCApIHJldHVybjsKCiR0cmVzdWx0cyA9IGNnZV9hcnJheTo6dG9faGFzaCgkdG1wLCduYW1lJyk7CmZvcmVhY2goICR0cmVzdWx0cyBhcyAka2V5ID0+ICYkcm93ICkKICB7CiAgICAkbnBhcmFtcyA9ICRwYXJhbXM7CiAgICB1bnNldCgkbnBhcmFtc1snZmllbGQnXSk7CiAgICAkbnBhcmFtc1snZmllbGRpZCddID0gJGZpZWxkLT5pZDsKICAgICRucGFyYW1zWydmaWVsZHZhbCddID0gJHJvd1snbmFtZSddOwogICAgJHJvd1snc3VtbWFyeV91cmwnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdkZWZhdWx0JywkZGV0YWlscGFnZSwkbnBhcmFtcyk7CiAgfQppZiggJHNob3dhbGwgKSAvLyBzaG93YWxsCiAgewogICAgaWYoICRmaWVsZC0+dHlwZSAhPSAnZHJvcGRvd24nICkKICAgICAgewoJLy8gaXQncyBhbm90aGVyIGZpZWxkIHR5cGUuLiBwcm9sbHkgYSB0ZXh0IGZpZWxkLgoJJHF1ZXJ5ID0gJ1NFTEVDVCBjb3VudChBLmlkKSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgQSAKICAgICAgICAgICAgICAgICAgICBMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgQiAKICAgICAgICAgICAgICAgICAgICAgIE9OIEEuaWQgPSBCLnByb2R1Y3RfaWQgQU5EIEIuZmllbGRkZWZfaWQgPSA/CiAgICAgICAgICAgICAgICAgICBXSEVSRSBCLnByb2R1Y3RfaWQgSVMgTlVMTCc7CgkkdHJvdyA9IGFycmF5KCk7CgkkdHJvd1snY291bnQnXSA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkZmllbGQtPmlkKSk7CgkkdHJvd1snbmFtZSddID0gJHRoaXMtPkxhbmcoJ3VuZGVmaW5lZF9maWVsZF92YWx1ZScpOwoKCSRucGFyYW1zID0gJHBhcmFtczsKCXVuc2V0KCRucGFyYW1zWydmaWVsZCddKTsKCSRucGFyYW1zWydmaWVsZGlkJ10gPSAkZmllbGQtPmlkOwoJJG5wYXJhbXNbJ2ZpZWxkdmFsJ10gPSAnOjpudWxsOjonOwoJJHRyb3dbJ3N1bW1hcnlfdXJsJ10gPSAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnZGVmYXVsdCcsJGRldGFpbHBhZ2UsJG5wYXJhbXMpOwoJJHRyZXN1bHRzWyctLTpwcm9kdWN0c191bnNldF9maWVsZDotLSddID0gJHRyb3c7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJLy8gaXQncyBhIGRyb3Bkb3duCgkvLyBmaWxsIGluIHRoZSByZWNvcmRzIGZvciB0aGUgb3RoZXIgb3B0aW9ucywgd2hpbGUgcHJlc2VydmluZyBvcHRpb24gb3JkZXIuCgkkdG1wID0gYXJyYXkoKTsKCWZvcmVhY2goICRmaWVsZC0+b3B0aW9ucyBhcyAkb3B0aW9uICkKCSAgewoJICAgIGlmKCBpc3NldCgkdHJlc3VsdHNbJG9wdGlvbl0pICkKCSAgICAgIHsKCQkkdG1wWyRvcHRpb25dID0gJHRyZXN1bHRzWyRvcHRpb25dOwoJCWNvbnRpbnVlOwoJICAgICAgfQoJICAgICR0cm93ID0gYXJyYXkoKTsKCSAgICAkdHJvd1snbmFtZSddID0gJG9wdGlvbjsKCSAgICAkdHJvd1snY291bnQnXSA9IDA7CgoJICAgICRucGFyYW1zID0gJHBhcmFtczsKCSAgICB1bnNldCgkbnBhcmFtc1snZmllbGQnXSk7CgkgICAgJG5wYXJhbXNbJ2ZpZWxkaWQnXSA9ICRmaWVsZC0+aWQ7CgkgICAgJG5wYXJhbXNbJ2ZpZWxkdmFsJ10gPSAnOjpudWxsOjonOwoJICAgICR0cm93WydzdW1tYXJ5X3VybCddID0gJHRoaXMtPkNyZWF0ZVVSTCgkaWQsJ2RlZmF1bHQnLCRkZXRhaWxwYWdlLCRucGFyYW1zKTsKCSAgICAkdG1wWyRvcHRpb25dID0gJHRyb3c7CgkgIH0KCSR0cmVzdWx0cyA9ICR0bXA7CiAgICAgIH0KICB9CgokcmVzdWx0cyA9IGFycmF5KCk7CmZvcmVhY2goICR0cmVzdWx0cyBhcyAka2V5ID0+ICRyZWMgKQp7CiAgJHJlc3VsdHNbXSA9IGNnZV9hcnJheTo6dG9fb2JqZWN0KCRyZWMpOwp9CiRzbWFydHktPmFzc2lnbignY2F0ZWdvcnlsaXN0JywkcmVzdWx0cyk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHRoZXRlbXBsYXRlKTsKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.hierarchy.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKJGNvbmZpZyA9ICRnQ21zLT5HZXRDb25maWcoKTsKCiRzdW1tYXJ5cGFnZSA9ICRyZXR1cm5pZDsKaWYoIGlzc2V0KCRwYXJhbXNbJ3N1bW1hcnlwYWdlJ10pICkKICB7CiAgICAkc3VtbWFyeXBhZ2UgPSAkdGhpcy0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkcGFyYW1zWydzdW1tYXJ5cGFnZSddKTsKICAgIGlmKCAhJHN1bW1hcnlwYWdlICkKICAgICAgewoJJHN1bW1hcnlwYWdlID0gJHJldHVybmlkOwogICAgICB9CiAgfQoKJGhpZXJwYWdlID0gJHJldHVybmlkOwokdG1wID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2hpZXJwYWdlJyk7CmlmKCAkdG1wID4gMCApIHsKICAkaGllcnBhZ2UgPSAkdG1wOwp9CmlmKCBpc3NldCgkcGFyYW1zWydoaWVyYXJjaHlwYWdlJ10pICkgewogICR0bXAgPSAkdGhpcy0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkcGFyYW1zWydoaWVyYXJjaHknXSk7CiAgaWYoICR0bXAgKSB7IAogICAgJGhpZXJwYWdlID0gJHRtcDsKICB9Cn0KCmlmKCAhZnVuY3Rpb25fZXhpc3RzKCdwcm9kdWN0c19ieWhpZXJhcmNoeV9wb3N0cHJvY2VzcycpICkKICB7CiAgICBmdW5jdGlvbiBwcm9kdWN0c19ieWhpZXJhcmNoeV9wb3N0cHJvY2VzcygmJGRhdGEsJHBhcmFtcywkc3VtbWFyeXBhZ2UsJGhpZXJwYWdlKQogICAgewogICAgICBpZiggaXNfYXJyYXkoJGRhdGEpICkgewoJJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwoJJG1vZHVsZSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnUHJvZHVjdHMnKTsKCSRpbWdkaXIgPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCRtb2R1bGUtPkdldE5hbWUoKSwnaGllcmFyY2h5Jyk7CgoJZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGRhdGEpOyAkaSsrICkgewoJICAkcmVjID0mICRkYXRhWyRpXTsKCgkgICR0biA9IGNtc19qb2luX3BhdGgoJGltZ2RpciwndGh1bWJfJy4kcmVjWydpbWFnZSddKTsKCSAgaWYoIGZpbGVfZXhpc3RzKCR0bikgKSB7CgkgICAgJHJlY1sndGh1bWJuYWlsJ10gPSAndGh1bWJfJy4kcmVjWydpbWFnZSddOwoJICB9CgkgICAgICAKCSAgJHRuID0gY21zX2pvaW5fcGF0aCgkaW1nZGlyLCdwcmV2aWV3XycuJHJlY1snaW1hZ2UnXSk7CgkgIGlmKCBmaWxlX2V4aXN0cygkdG4pICkgewoJICAgICRyZWNbJ3ByZXZpZXcnXSA9ICdwcmV2aWV3XycuJHJlY1snaW1hZ2UnXTsKCSAgfQoKCSAgaWYoICFpc3NldCgkcmVjWydjb3VudCddKSApICRyZWNbJ2NvdW50J10gPSAwOwoKCSAgJHBhcm1zID0gJHBhcmFtczsKCSAgJHBhcm1zWydwYXJlbnQnXSA9ICRyZWNbJ2lkJ107CgoJICAkcmVjWydkb3duX3VybCddID0gJG1vZHVsZS0+Q3JlYXRlVVJMKCdjbnRudDAxJywnaGllcmFyY2h5JywkaGllcnBhZ2UsJHBhcm1zKTsKCgkgICRwYXJtcyA9ICRwYXJhbXM7CgkgICRwYXJtc1snaGllcmFyY2h5aWQnXSA9ICRyZWNbJ2lkJ107CgkgIGlmKCBpc3NldCgkcGFybXNbJ3N1bW1hcnlwYWdlJ10pICkgdW5zZXQoJHBhcm1zWydzdW1tYXJ5cGFnZSddKTsKCSAgJHJlY1sndXJsJ10gPSAkbW9kdWxlLT5DcmVhdGVQcmV0dHlMaW5rKCdjbnRudDAxJywnZGVmYXVsdCcsJHN1bW1hcnlwYWdlLCcnLCRwYXJtcywnJyx0cnVlKTsKCgkgIGlmKCBpc3NldCgkcmVjWydjaGlsZHJlbiddKSApIHsKCSAgICBwcm9kdWN0c19ieWhpZXJhcmNoeV9wb3N0cHJvY2VzcygkcmVjWydjaGlsZHJlbiddLCRwYXJhbXMsJHN1bW1hcnlwYWdlLCRoaWVycGFnZSk7CgkgIH0KCX0KICAgICAgfQogICAgfQogIH0KCgokbm9kZXMgPSBhcnJheSgpOwokcGFyZW50cyA9IGFycmF5KC0xKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ3BhcmVudCddICkgKSB7CiAgJHBhcmVudHMgPSBhcnJheSgoaW50KSRwYXJhbXNbJ3BhcmVudCddKTsKICB1bnNldCgkcGFyYW1zWydwYXJlbnQnXSk7CiB9CmVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ3BhcmVudHMnXSkgKSB7CiAgJHRtcCA9IGV4cGxvZGUoJywnLCRwYXJhbXNbJ3BhcmVudHMnXSk7CiAgJHRtcDIgPSBhcnJheSgpOwogICR0bXAzID0gYXJyYXkoKTsKICAkYWxsX2hpZXJhcmNoeSA9IGhpZXJhcmNoeV9vcHM6OmdldF9hbGxfaGllcmFyY2h5X2luZm8oKTsKICBpZiggIWlzX2FycmF5KCRhbGxfaGllcmFyY2h5KSB8fCBjb3VudCgkYWxsX2hpZXJhcmNoeSkgPT0gMCApIHJldHVybjsgLy8gbm90aGluZyB0byBkby4KICBmb3JlYWNoKCAkdG1wIGFzICRvbmUgKSB7CiAgICAkb25lID0gdHJpbSgkb25lKTsKICAgIGZvcmVhY2goICRhbGxfaGllcmFyY2h5IGFzICRvbmVoaWVyICkgewogICAgICBpZiggaXNfbnVtZXJpYygkb25lKSAmJiAkb25laGllclsnaWQnXSA9PSAkb25lICYmICFpbl9hcnJheSgkb25lLCR0bXAzKSApIHsKCSR0bXAyW10gPSAkb25laGllcjsKCSR0bXAzW10gPSAkb25lOwoJYnJlYWs7CiAgICAgIH0KICAgICAgZWxzZSBpZiggJG9uZWhpZXJbJ25hbWUnXSA9PSAkb25lICYmICFpbl9hcnJheSgkb25laGllclsnaWQnXSwkdG1wMykgKSB7CgkkdG1wMltdID0gJG9uZWhpZXI7CgkkdG1wM1tdID0gJG9uZWhpZXJbJ2lkJ107CglicmVhazsKICAgICAgfQogICAgfQogIH0KICBpZiggIWlzX2FycmF5KCR0bXAyKSB8fCBjb3VudCgkdG1wMikgPT0gMCApIHJldHVybjsgLy8gbm90aGluZyB0byBkaXNwbGF5LgogICRwYXJlbnRzID0gJHRtcDI7CiAgdW5zZXQoJHBhcmFtc1sncGFyZW50cyddKTsKICBwcm9kdWN0c19ieWhpZXJhcmNoeV9wb3N0cHJvY2VzcygkcGFyZW50cywkcGFyYW1zLCRzdW1tYXJ5cGFnZSwkaGllcnBhZ2UpOwp9CmVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ2hpZXJhcmNoeSddKSApIHsKICAkdG1wID0gZXhwbG9kZSgnLCcsJHBhcmFtc1snaGllcmFyY2h5J10pOwogICR0bXAyID0gYXJyYXkoKTsKICBmb3JlYWNoKCAkdG1wIGFzICRvbmUgKSB7CiAgICAkdG1wMltdID0gIiciLnRyaW0oJG9uZSkuIiciOwogIH0KICAkdG1wMiA9IGltcGxvZGUoJywnLCR0bXAyKTsKICAkcXVlcnkgPSAnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkKICAgICAgICAgICAgICAgV0hFUkUgbmFtZSBJTiAoJy4kdG1wMi4nKSc7CiAgJG5vZGVzID0gJGRiLT5HZXRDb2woJHF1ZXJ5KTsKICAkbm9kZXMgPSBhcnJheV91bmlxdWUoJG5vZGVzKTsKICB1bnNldCgkcGFyYW1zWydoaWVyYXJjaHknXSk7Cn0KCmlmKCAhY291bnQoJHBhcmVudHMpICkgewogIC8vIG5vdGhpbmcgZm91bmQgdG8gc3RhcnQgd2l0aAogIHJldHVybjsKIH0KCiRkYXRhID0gYXJyYXkoKTsKaWYoIGNvdW50KCRub2RlcykgKQogIHsKICAgIC8vIHRoaXMgd2lsbCBvbmx5IGRpc3BsYXkgdGhlIHNlbGVjdGVkIGhpZXJhcmNoaWVzIChub3QgaW5jbHVkaW5nIHRoZWlyIGNoaWxkcmVuKSB0aGF0IGhhdmUgcHJvZHVjdHMuCiAgICAkbm9kZXMgPSBpbXBsb2RlKCcsJywkbm9kZXMpOwogICAgJHF1ZXJ5ID0gJ1NFTEVDVCBwaC4qLGNvdW50KHByLmlkKSBBUyBjb3VudCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IHBoCiAgICAgICAgICAgICAgICBMRUZUIE9VVEVSIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdG9oaWVyIHB0aAogICAgICAgICAgICAgICAgICBPTiBwaC5pZCA9IHB0aC5oaWVyYXJjaHlfaWQKICAgICAgICAgICAgICAgIExFRlQgT1VURVIgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzIHByCiAgICAgICAgICAgICAgICAgIE9OIHB0aC5wcm9kdWN0X2lkID0gcHIuaWQKICAgICAgICAgICAgICAgV0hFUkUgcHIuc3RhdHVzID0gXCdwdWJsaXNoZWRcJwogICAgICAgICAgICAgICAgIEFORCBwaC5pZCBJTiAoJy4kbm9kZXMuJykKICAgICAgICAgICAgICAgR1JPVVAgQlkgcGguaWQgT1JERVIgQlkgcGguaGllcmFyY2h5JzsKICAgICR0bXAgPSAkZGItPkdldEFycmF5KCRxdWVyeSk7CiAgICBwcm9kdWN0c19ieWhpZXJhcmNoeV9wb3N0cHJvY2VzcygkdG1wLCRwYXJhbXMsJHN1bW1hcnlwYWdlLCRoaWVycGFnZSk7CiAgICAkZGF0YSA9ICR0bXA7CiAgfQplbHNlCiAgewogICAgZm9yZWFjaCggJHBhcmVudHMgYXMgJG9uZSApCiAgICAgIHsKCSRwYXJlbnRfaWQgPSAnJzsKCWlmKCBpc19hcnJheSgkb25lKSApIHsKCSAgJHBhcmVudF9pZCA9ICRvbmVbJ2lkJ107Cgl9CgllbHNlIGlmKCBpc19pbnQoJG9uZSkgKSB7CgkgICRwYXJlbnRfaWQgPSAkb25lOwoJfQoKCWlmKCAkcGFyZW50X2lkID09ICcnICkgY29udGludWU7CgoJJHRtcCA9IHByb2R1Y3RfdXRpbHM6OmhpZXJhcmNoeV9nZXRfdHJlZSgkcGFyZW50X2lkKTsKCWlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApCgkgIHsKCSAgICBwcm9kdWN0c19ieWhpZXJhcmNoeV9wb3N0cHJvY2VzcygkdG1wLCRwYXJhbXMsJHN1bW1hcnlwYWdlLCRoaWVycGFnZSk7CgkgICAgaWYoIGlzX2FycmF5KCRvbmUpICkgewoJICAgICAgJG9uZVsnY2hpbGRyZW4nXSA9ICR0bXA7CgkgICAgICAkZGF0YVtdID0gJG9uZTsKCSAgICB9CgkgICAgZWxzZSB7CgkgICAgICAkZGF0YVtdID0gJHRtcDsKCSAgICB9CgkgIH0KICAgICAgfQogIH0KCiRoaWVyZGF0YSA9ICcnOwppZiggY291bnQoJGRhdGEpID09IDEgJiYgZW1wdHkoJG5vZGVzKSApCiAgewogICAgJGRhdGEgPSAkZGF0YVswXTsKICB9CiRzbWFydHktPmFzc2lnbignaGllcmRhdGEnLCRkYXRhKTsKaWYoIGNvdW50KCRwYXJlbnRzKSA9PSAxICkKICB7CiAgICAkaGllcmRhdGEgPSBoaWVyYXJjaHlfb3BzOjpnZXRfaGllcmFyY2h5X2luZm8oJHBhcmVudHNbMF0pOwogICAgaWYoICRoaWVyZGF0YSApCiAgICAgIHsKCSRoaWVyZGF0YVsnY2Fub25pY2FsJ10gPSAkdGhpcy0+Q3JlYXRlUHJldHR5TGluaygkaWQsJ2hpZXJhcmNoeScsJHJldHVybmlkLCcnLGFycmF5KCdwYXJlbnQnPT4kcGFyZW50c1swXSksJycsdHJ1ZSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2hpZXJhcmNoeV9pdGVtJywkaGllcmRhdGEpOwogICAgICB9CiAgfQokc21hcnR5LT5hc3NpZ24oJ2hpZXJhcmNoeV9pbWFnZV9sb2NhdGlvbicsJGNvbmZpZ1sndXBsb2Fkc191cmwnXS4nLycuJHRoaXMtPkdldE5hbWUoKS4nL2hpZXJhcmNoeScpOwoKLy8KLy8gdGVtcGxhdGUKLy8KJHRoZXRlbXBsYXRlID0gJ2J5aGllcmFyY2h5XycuJHRoaXMtPkdldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ERkxUQllISUVSQVJDSFlfVEVNUExBVEUpOwppZiggaXNzZXQoJHBhcmFtc1snaGllcmFyY2h5dGVtcGxhdGUnXSApICkKICB7CiAgICAkdGhldGVtcGxhdGUgPSAnYnloaWVyYXJjaHlfJy4kcGFyYW1zWydoaWVyYXJjaHl0ZW1wbGF0ZSddOwogIH0KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCR0aGV0ZW1wbGF0ZSk7CiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.importcsv.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDEyIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJGdvID0gMDsKaWYoIGlzc2V0KCRwYXJhbXNbJ2dvJ10pICkgJGdvID0gMTsKCmlmKCAhaXNzZXQoJF9TRVNTSU9OWydwcm9kdWN0c19pbXBvcnRfZGF0YSddKSApIGRpZSgpOwokcGFyYW1zID0gJF9TRVNTSU9OWydwcm9kdWN0c19pbXBvcnRfZGF0YSddOwoKZnVuY3Rpb24gcHJvZ3Jlc3MoJHBjdCkgewogIGVjaG8gJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5wYXJlbnQucHJvZ3Jlc3MoJy4kcGN0LicpOzwvc2NyaXB0Pic7Cn0KZnVuY3Rpb24gZG9fZXJyb3IoJHN0cikgewogIGVjaG8gJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5wYXJlbnQub25FcnJvcihcJycuJHN0ci4nXCcpOzwvc2NyaXB0Pic7Cn0KZnVuY3Rpb24gZG9uZSgpIHsKICBlY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+cGFyZW50LmRvbmUoKTs8L3NjcmlwdD4nOwp9CgovLyBzZXR1cCBkaXNwbGF5CmlmKCAkZ28gPT0gMSApIHsKICAkc21hcnR5LT5hc3NpZ24oJ3Byb2Nlc3N1cmwnLCR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnaW1wb3J0Y3N2JywkcmV0dXJuaWQsCgkJCQkJCSBhcnJheSgnc2hvd3RlbXBsYXRlJz0+J2ZhbHNlJykpKTsKICAkdXJsID0gJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCdkZWZhdWx0YWRtaW4nLCRyZXR1cm5pZCk7CiAgJHNtYXJ0eS0+YXNzaWduKCdkb25ldXJsJyxzdHJfcmVwbGFjZSgnJmFtcDsnLCcmJywkdXJsKSk7CiAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdpbXBvcnRjc3YudHBsJyk7CiAgcmV0dXJuOwp9CgpzZXRfdGltZV9saW1pdCgwKTsgICAgICAgICAgICAgICAgICAgLy8gaWdub3JlIHBocCB0aW1lb3V0Cmlnbm9yZV91c2VyX2Fib3J0KHRydWUpOyAgICAgICAgICAgICAvLyBrZWVwIG9uIGdvaW5nIGV2ZW4gaWYgdXNlciBwdWxscyB0aGUgcGx1ZyoKd2hpbGUob2JfZ2V0X2xldmVsKCkpb2JfZW5kX2NsZWFuKCk7IC8vIHJlbW92ZSBvdXRwdXQgYnVmZmVycwpvYl9pbXBsaWNpdF9mbHVzaCh0cnVlKTsgICAgICAgICAgICAgLy8gb3V0cHV0IHN0dWZmIGRpcmVjdGx5CgoKLy8gYmVnaW4gd29yawplY2hvICc8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+JzsgLy8gd2Via2l0IGhvdGZpeAoKJGNvbmZpZyA9ICRnQ21zLT5HZXRDb25maWcoKTsKJGZuID0gJGNvbmZpZ1sncm9vdF9wYXRoJ10uJy90bXAvY2FjaGUvJy4kcGFyYW1zWydmaWxlbmFtZSddOwokZmggPSBmb3BlbigkZm4sJ3InKTsKaWYoICEkZmggKQogIHsKICAgIGVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9maWxlb3BlbicpKTsKICAgIHJldHVybjsKICB9CiRmaWxlc2l6ZSA9IGZpbGVzaXplKCRmbik7CgokaW1hZ2VIYW5kbGVyID0gbmV3IGltcG9ydEltYWdlSGFuZGxlcigkdGhpcyk7CiRpbWFnZUhhbmRsZXItPnNldFNvdXJjZUxvY2F0aW9uKGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJHBhcmFtc1snaW1hZ2VwYXRoJ10pKTsKJGltYWdlSGFuZGxlci0+c2V0RGVzdGluYXRpb25CYXNlKGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJHRoaXMtPkdldE5hbWUoKSkpOwokaW1hZ2VIYW5kbGVyLT5zZXRVbmlxdWVOYW1lcygpOwoKJGltcG9ydGVyID0gbmV3IHByb2R1Y3RzQ3N2SW1wb3J0ZXIoJHRoaXMpOwokaW1wb3J0ZXItPnNldEltYWdlSGFuZGxlcigkaW1hZ2VIYW5kbGVyKTsKJGltcG9ydGVyLT5zZXREZWxpbSgkcGFyYW1zWydkZWxpbWl0ZXInXSk7CiRpbXBvcnRlci0+c2V0UG9saWN5VmFsdWUoJ2NyZWF0ZV9maWVsZHMnLChpbnQpJHBhcmFtc1snY3JlYXRlZmllbGRzJ10pOwokaW1wb3J0ZXItPnNldFBvbGljeVZhbHVlKCdoYW5kbGVfaW1hZ2VzJywoaW50KSRwYXJhbXNbJ2hhbmRsZWltYWdlcyddKTsKJGltcG9ydGVyLT5zZXRQb2xpY3lWYWx1ZSgnY3JlYXRlX2hpZXJhcmNoeScsKGludCkkcGFyYW1zWydjcmVhdGVoaWVyYXJjaHknXSk7CiRpbXBvcnRlci0+c2V0UG9saWN5VmFsdWUoJ2NyZWF0ZV9jYXRlZ29yaWVzJywoaW50KSRwYXJhbXNbJ2NyZWF0ZWNhdGVnb3JpZXMnXSk7CiRpbXBvcnRlci0+c2V0UG9saWN5VmFsdWUoJ2ltYWdlX3NvdXJjZV9sb2NhdGlvbicsJHBhcmFtc1snaW1hZ2VwYXRoJ10pOwokaW1wb3J0ZXItPnNldFBvbGljeVZhbHVlKCdvbl9kdXBsaWNhdGVfcHJvZHVjdCcsdHJpbSgkcGFyYW1zWydkdXBsaWNhdGVwcm9kdWN0cyddKSk7CiRpbXBvcnRlci0+c2V0UG9saWN5VmFsdWUoJ2NsZWFyZmllbGRzJywoaW50KSRwYXJhbXNbJ2NsZWFyZmllbGRzJ10pOwokaW1wb3J0ZXItPnNldFBvbGljeVZhbHVlKCdjbGVhcmF0dHJpYnMnLChpbnQpJHBhcmFtc1snY2xlYXJhdHRyaWJzJ10pOwokaW1wb3J0ZXItPnNldFBvbGljeVZhbHVlKCdjbGVhcmNhdGVnb3JpZXMnLChpbnQpJHBhcmFtc1snY2xlYXJjYXRlZ29yaWVzJ10pOwoKd2hpbGUoICFmZW9mKCRmaCkgKQogIHsKICAgICRsaW5lID0gJGltcG9ydGVyLT5nZXRfdW5wYXJzZWRfcmVjb3JkKCRmaCk7CiAgICAkbGluZSA9IHRyaW0oJGxpbmUpOwogICAgJHBvcyA9IGZ0ZWxsKCRmaCk7CiAgICBpZiggZW1wdHkoJGxpbmUpICkgY29udGludWU7CgogICAgJHBjdCA9IChpbnQpKCRwb3MgLyAkZmlsZXNpemUgKiAxMDAuMCk7CiAgICBwcm9ncmVzcygkcGN0KTsKCiAgICAkcmVzID0gJGltcG9ydGVyLT5oYW5kbGVMaW5lKCRsaW5lKTsKICAgIGlmKCAhJHJlcyApIHsKICAgICAgJGVycm9ycyA9ICRpbXBvcnRlci0+Z2V0RXJyb3JzKCk7CiAgICAgICRpbXBvcnRlci0+Y2xlYXJFcnJvcnMoKTsKICAgICAgaWYoIGlzX2FycmF5KCRlcnJvcnMpICYmIGNvdW50KCRlcnJvcnMpICkgewoJZm9yZWFjaCggJGVycm9ycyBhcyAkb25lICkgewoJICBkb19lcnJvcigkb25lKTsKCX0KICAgICAgfQogICAgfQogIH0KCi8vIHdvb3QsIHdlJ3JlIGRvbmUKZmNsb3NlKCRmaCk7CmRvbmUoKTsKZXhpdCgpOwoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.importproducts.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3Byb2R1Y3RzJyk7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFByb2R1Y3RzJykgKQogIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfcGVybWlzc2lvbmRlbmllZCcpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgICByZXR1cm47CiAgfQoKIwojIEluaXRpYWxpemF0aW9uCiMKJGZsYWdfY3JlYXRlZmllbGRzID0gMDsKJGZsYWdfaGFuZGxlaW1hZ2VzID0gMDsKJGltYWdlcGF0aCA9ICcnOwokZmxhZ19jcmVhdGVoaWVyYXJjaHkgPSAwOwokZmxhZ19jcmVhdGVjYXRlZ29yaWVzID0gMDsKJGZsYWdfZHVwbGljYXRlcHJvZHVjdHMgPSAnc2tpcCc7CiRkZWxlbWV0ZXIgPSAnfCc7CiRiYXRjaHNpemUgPSA1MDsKCiMKIyBTZXR1cAojCiRmbGFnX2NyZWF0ZWZpZWxkcyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbXBvcnRfY3JlYXRlZmllbGRzJywxKTsKJGZsYWdfaGFuZGxlaW1hZ2VzID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltcG9ydF9oYW5kbGVpbWFnZXMnLDApOwokaW1hZ2VwYXRoID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltcG9ydF9pbWFnZXBhdGgnLCcnKTsKJGZsYWdfY3JlYXRlaGllcmFyY2h5ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltcG9ydF9jcmVhdGVoaWVyYXJjaHknLDEpOwokZmxhZ19jcmVhdGVjYXRlZ29yaWVzID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltcG9ydF9jcmVhdGVjYXRlZ29yaWVzJywxKTsKJGZsYWdfZHVwbGljYXRlcHJvZHVjdHMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1wb3J0X2R1cGxpY2F0ZXByb2R1Y3RzJywnb3ZlcndyaXRlJyk7CiRkZWxpbWl0ZXIgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1wb3J0X2RlbGltaXRlcicsJ3wnKTsKJGJhdGNoc2l6ZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbXBvcnRfYmF0Y2hzaXplJyw1MCk7CiRjbGVhcmZpZWxkcyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbXBvcnRfY2xlYXJmaWVsZHMnLDEpOwokY2xlYXJhdHRyaWJzID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltcG9ydF9jbGVhcmF0dHJpYnMnLDEpOwokY2xlYXJjYXRlZ29yaWVzID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltcG9ydF9jbGVhcmNhdGVnb3JpZXMnLDEpOwoKIwojIEhhbmRsZSBGb3JtIERhdGEKIwppZiggaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pICkKICB7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogIH0KZWxzZSBpZiggaXNzZXQoJHBhcmFtc1sndGVzdCddKSApCiAgewogICAgLy8gZ2V0IHRoZSBmb3JtIGRhdGEKICAgICRmbGFnX2NyZWF0ZWZpZWxkcyA9IChpbnQpJHBhcmFtc1snY3JlYXRlZmllbGRzJ107CiAgICAkZmxhZ19oYW5kbGVpbWFnZXMgPSAoaW50KSRwYXJhbXNbJ2hhbmRsZWltYWdlcyddOwogICAgJGltYWdlcGF0aCA9IHRyaW0oJHBhcmFtc1snaW1hZ2VwYXRoJ10pOwogICAgJGZsYWdfY3JlYXRlaGllcmFyY2h5ID0gKGludCkkcGFyYW1zWydjcmVhdGVoaWVyYXJjaHknXTsKICAgICRmbGFnX2NyZWF0ZWNhdGVnb3JpZXMgPSAoaW50KSRwYXJhbXNbJ2NyZWF0ZWNhdGVnb3JpZXMnXTsKICAgICRmbGFnX2R1cGxpY2F0ZXByb2R1Y3RzID0gJHBhcmFtc1snZHVwbGljYXRlcHJvZHVjdHMnXTsKICAgICRkZWxpbWl0ZXIgPSAkcGFyYW1zWydkZWxpbWl0ZXInXTsKICAgICRiYXRjaHNpemUgPSAoaW50KSRwYXJhbXNbJ2JhdGNoc2l6ZSddOwogICAgJGNsZWFyZmllbGRzID0gKGludCkkcGFyYW1zWydjbGVhcmZpZWxkcyddOwogICAgJGNsZWFyYXR0cmlicyA9IChpbnQpJHBhcmFtc1snY2xlYXJhdHRyaWJzJ107CiAgICAkY2xlYXJjYXRlZ29yaWVzID0gKGludCkkcGFyYW1zWydjbGVhcmNhdGVnb3JpZXMnXTsKCiAgICAvLyB2YWxpZGF0ZSB0aGUgZm9ybSBkYXRhCiAgICAkZXJyb3IgPSAnJzsKICAgICRtZXNzYWdlcyA9IGFycmF5KCk7CiAgICAkaW1wb3J0X2Vycm9ycyA9IGFycmF5KCk7CiAgICAkY29uZmlnID0gJGdDbXMtPkdldENvbmZpZygpOwogICAgJHVoID0gbmV3IGNnX2ZpbGV1cGxvYWQoJGlkLCRjb25maWdbJ3Jvb3RfcGF0aCddLicvdG1wL2NhY2hlJyk7CiAgICAkdWgtPnNldF9hY2NlcHRlZF9maWxldHlwZXMoJ2NzdicpOwogICAgJHVoLT5zZXRfYWxsb3dfb3ZlcndyaXRlKCk7CiAgICAkcmVzID0gJHVoLT5oYW5kbGVfdXBsb2FkKCdjc3ZmaWxlJywncHJvZHVjdHMnKTsKICAgIGlmKCAkcmVzID09PSBmYWxzZSApIHsKICAgICAgJHRtcCA9ICR1aC0+Z2V0X2Vycm9yKCk7CiAgICAgICRlcnJvciA9ICR0aGlzLT5HZXRVcGxvYWRFcnJvck1lc3NhZ2UoJHRtcCk7CiAgICB9CgogICAgaWYoIGVtcHR5KCRlcnJvcikgKSB7CiAgICAgIC8vIHJlYWR5IHRvIGRvIHNvbWUgdGVzdGluZyBvbiB0aGUgY3N2IGZpbGUuCiAgICAgICRmbiA9ICRjb25maWdbJ3Jvb3RfcGF0aCddLicvdG1wL2NhY2hlL3Byb2R1Y3RzLmNzdic7CiAgICAgICR0aGVfZmlsZXNpemUgPSBmaWxlc2l6ZSgkZm4pOwogICAgICAkZmggPSBmb3BlbigkZm4sJ3InKTsKICAgICAgaWYoICEkZmggKSB7CgkkZXJyb3IgPSAkdGhpcy0+TGFuZygnZXJyb3JfZmlsZW9wZW4nLCRmbik7CiAgICAgIH0KICAgICAgJGxpbmVudW0gPSAwOwogICAgICAkaW1wb3J0ZXIgPSBuZXcgcHJvZHVjdHNDc3ZJbXBvcnRlcigkdGhpcyk7CiAgICAgICRpbXBvcnRlci0+c2V0RGVsaW0oJGRlbGltaXRlcik7CiAgICAgIHdoaWxlKCAhZmVvZigkZmgpICYmICRsaW5lbnVtIDwgMjAgKSB7CgkkbGluZSA9ICRpbXBvcnRlci0+Z2V0X3VucGFyc2VkX3JlY29yZCgkZmgpOwoJJGxpbmUgPSB0cmltKCRsaW5lKTsKCSRsaW5lbnVtKys7CgkkdG1wID0gYXJyYXkoKTsKCQoJaWYoIGVtcHR5KCRsaW5lKSApIGNvbnRpbnVlOwoJCgkkcmVzID0gJGltcG9ydGVyLT50ZXN0TGluZSgkbGluZSwkdG1wKTsKCWlmKCAkcmVzID09PSBGQUxTRSApIHsKCSAgJGVycm9yID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2ZpbGVmb3JtYXQnKTsKCX0KCSRtZXNzYWdlcyA9IGFycmF5X21lcmdlKCRtZXNzYWdlcywkdG1wKTsKICAgICAgfQoKICAgICAgaWYoICFlbXB0eSgkZXJyb3IpICkgewoJJGltcG9ydF9lcnJvcnMgPSAkaW1wb3J0ZXItPmdldEVycm9ycygpOwogICAgICB9CiAgICB9CgogICAgaWYoIGVtcHR5KCRlcnJvcikgKSB7CiAgICAgIC8vIHNhdmUgdGhlIHByZWZlcmVuY2VzCiAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfY3JlYXRlZmllbGRzJywkZmxhZ19jcmVhdGVmaWVsZHMpOwogICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2hhbmRsZWltYWdlcycsJGZsYWdfaGFuZGxlaW1hZ2VzKTsKICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9pbWFnZXBhdGgnLCRpbWFnZXBhdGgpOwogICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NyZWF0ZWhpZXJhcmNoeScsJGZsYWdfY3JlYXRlaGllcmFyY2h5KTsKICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9jcmVhdGVjYXRlZ29yaWVzJywkZmxhZ19jcmVhdGVjYXRlZ29yaWVzKTsKICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9kdXBsaWNhdGVwcm9kdWN0cycsJGZsYWdfZHVwbGljYXRlcHJvZHVjdHMpOwogICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2RlbGltaXRlcicsJGRlbGltaXRlcik7CiAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfYmF0Y2hzaXplJywkYmF0Y2hzaXplKTsKICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9jbGVhcmZpZWxkcycsJGNsZWFyZmllbGRzKTsKICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9jbGVhcmF0dHJpYnMnLCRjbGVhcmF0dHJpYnMpOwogICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NsZWFyY2F0ZWdvcmllcycsJGNsZWFyY2F0ZWdvcmllcyk7CgogICAgICAvLyBzYXZlIHBhcmFtZXRlcnMgaW4gc2Vzc2lvbgogICAgICAkcGFyYW1zWydmaWxlbmFtZSddID0gJ3Byb2R1Y3RzLmNzdic7CiAgICAgICRfU0VTU0lPTlsncHJvZHVjdHNfaW1wb3J0X2RhdGEnXSA9ICRwYXJhbXM7CiAgICAgIAogICAgICAvLyBHZXQgcmVhZHkgZm9yIHRoZSBnbyBhY3Rpb24KICAgICAgJHNtYXJ0eS0+YXNzaWduKCdjc3ZmaWxlJywkcGFyYW1zWydmaWxlbmFtZSddKTsKICAgICAgaWYoIGNvdW50KCRtZXNzYWdlcykgPiAwICkgewoJJHNtYXJ0eS0+YXNzaWduKCdtZXNzYWdlcycsJG1lc3NhZ2VzKTsKICAgICAgfQogICAgICBlY2hvICR0aGlzLT5TaG93TWVzc2FnZSgkdGhpcy0+TGFuZygnaW5mb19pbXBvcnRfdGVzdF9wYXNzZWQnKSk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgJHNtYXJ0eS0+YXNzaWduKCdlcnJvcnMnLCRpbXBvcnRfZXJyb3JzKTsKICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZXJyb3IpOwogICAgfQogIH0KZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snZ28nXSkgKQogIHsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2ltcG9ydGNzdicsJHJldHVybmlkLCRwYXJhbXMpOwogICAgJGNnZSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ0dFeHRlbnNpb25zJyk7CiAgICAkZm4gPSAkY2dlLT5HZXRNb2R1bGVQYXRoKCkuJy9saWIvUHJvZ3Jlc3MyX0xpdGUucGhwJzsKICAgIGluY2x1ZGUoJGZuKTsKCiAgICBpZiggIWlzc2V0KCRfU0VTU0lPTlsncHJvZHVjdHNfaW1wb3J0X2RhdGEnXSkgKSBkaWUoKTsKICAgICRwYXJhbXMgPSAkX1NFU1NJT05bJ3Byb2R1Y3RzX2ltcG9ydF9kYXRhJ107CiAgICAkYmF0Y2hzaXplID0gNTA7CiAgICAkY2xlYXJmaWVsZHMgPSAxOwogICAgJGNsZWFyYXR0cmlicyA9IDE7CiAgICAkY2xlYXJjYXRlZ29yaWVzID0gMTsKICAgICRsaW5lbnVtID0gMDsKICAgICRmcG9zID0gMDsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydiYXRjaHNpemUnXSkgKQogICAgICB7CgkkYmF0Y2hzaXplID0gKGludCkkcGFyYW1zWydiYXRjaHNpemUnXTsKICAgICAgfQogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2xpbmVudW0nXSkgKQogICAgICB7CgkkbGluZW51bSA9IChpbnQpJHBhcmFtc1snbGluZW51bSddOwogICAgICB9CiAgICBpZiggaXNzZXQoJHBhcmFtc1snZnBvcyddKSApCiAgICAgIHsKCSRmcG9zID0gKGludCkkcGFyYW1zWydmcG9zJ107CiAgICAgIH0KICAgIGlmKCBpc3NldCgkcGFyYW1zWydjbGVhcmZpZWxkcyddKSApCiAgICAgIHsKCSRjbGVhcmZpZWxkcyA9IChpbnQpJHBhcmFtc1snY2xlYXJmaWVsZHMnXTsKICAgICAgfQogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NsZWFyYXR0cmlicyddKSApCiAgICAgIHsKCSRjbGVhcmF0dHJpYnMgPSAoaW50KSRwYXJhbXNbJ2NsZWFyYXR0cmlicyddOwogICAgICB9CiAgICBpZiggaXNzZXQoJHBhcmFtc1snY2xlYXJjYXRlZ29yaWVzJ10pICkKICAgICAgewoJJGNsZWFyY2F0ZWdvcmllcyA9IChpbnQpJHBhcmFtc1snY2xlYXJjYXRlZ29yaWVzJ107CiAgICAgIH0KCiAgICAkY29uZmlnID0gJGdDbXMtPkdldENvbmZpZygpOwogICAgJGZuID0gJGNvbmZpZ1sncm9vdF9wYXRoJ10uJy90bXAvY2FjaGUvJy4kcGFyYW1zWydmaWxlbmFtZSddOwogICAgJHRoZV9maWxlc2l6ZSA9IGZpbGVzaXplKCRmbik7CiAgICAkZmggPSBmb3BlbigkZm4sJ3InKTsKICAgIGlmKCAhJGZoICkKICAgICAgewoJZWNobyAkdGhpcy0+TGFuZygnZXJyb3JfZmlsZW9wZW4nKTsKCXJldHVybjsKICAgICAgfQogICAgCiAgICAkaW1hZ2VIYW5kbGVyID0gbmV3IGltcG9ydEltYWdlSGFuZGxlcigkdGhpcyk7CiAgICAkaW1hZ2VIYW5kbGVyLT5zZXRTb3VyY2VMb2NhdGlvbihjbXNfam9pbl9wYXRoKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCRwYXJhbXNbJ2ltYWdlcGF0aCddKSk7CiAgICAkaW1hZ2VIYW5kbGVyLT5zZXREZXN0aW5hdGlvbkJhc2UoY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkdGhpcy0+R2V0TmFtZSgpKSk7CiAgICAkaW1hZ2VIYW5kbGVyLT5zZXRVbmlxdWVOYW1lcygpOwoKICAgICRpbXBvcnRlciA9IG5ldyBwcm9kdWN0c0NzdkltcG9ydGVyKCR0aGlzKTsKICAgICRpbXBvcnRlci0+c2V0SW1hZ2VIYW5kbGVyKCRpbWFnZUhhbmRsZXIpOwogICAgJGltcG9ydGVyLT5zZXREZWxpbSgkcGFyYW1zWydkZWxpbWl0ZXInXSk7CiAgICAkaW1wb3J0ZXItPnNldFBvbGljeVZhbHVlKCdjcmVhdGVfZmllbGRzJywoaW50KSRwYXJhbXNbJ2NyZWF0ZWZpZWxkcyddKTsKICAgICRpbXBvcnRlci0+c2V0UG9saWN5VmFsdWUoJ2hhbmRsZV9pbWFnZXMnLChpbnQpJHBhcmFtc1snaGFuZGxlaW1hZ2VzJ10pOwogICAgJGltcG9ydGVyLT5zZXRQb2xpY3lWYWx1ZSgnY3JlYXRlX2hpZXJhcmNoeScsKGludCkkcGFyYW1zWydjcmVhdGVoaWVyYXJjaHknXSk7CiAgICAkaW1wb3J0ZXItPnNldFBvbGljeVZhbHVlKCdjcmVhdGVfY2F0ZWdvcmllcycsKGludCkkcGFyYW1zWydjcmVhdGVjYXRlZ29yaWVzJ10pOwogICAgJGltcG9ydGVyLT5zZXRQb2xpY3lWYWx1ZSgnaW1hZ2Vfc291cmNlX2xvY2F0aW9uJywkcGFyYW1zWydpbWFnZXBhdGgnXSk7CiAgICAkaW1wb3J0ZXItPnNldFBvbGljeVZhbHVlKCdza2lwX2V4aXN0aW5nX3Byb2R1Y3RzJywkcGFyYW1zWydkdXBsaWNhdGVwcm9kdWN0cyddID09ICdza2lwJyk7CgogICAgJGJhdGNobGluZXMgPSAwOwogICAgaWYoICRmcG9zID4gMCApCiAgICAgIHsKCS8vIHByb2Nlc3MgdGhlIGZpcnN0IGxpbmUgYWdhaW4uCgkkbGluZSA9ICRpbXBvcnRlci0+Z2V0X3VucGFyc2VkX3JlY29yZCgkZmgpOwoJJGxpbmUgPSB0cmltKCRsaW5lKTsKCWlmKCBlbXB0eSgkbGluZSkgKSBjb250aW51ZTsKCSRyZXMgPSAkaW1wb3J0ZXItPmhhbmRsZUxpbmUoJGxpbmUpOwoKCS8vIHNlZWsgdG8gb3VyIG9sZCBwb3NpdGlvbi4KCWZzZWVrKCRmaCwkZnBvcyk7CiAgICAgIH0KICAgIHdoaWxlKCAhZmVvZigkZmgpICYmICRiYXRjaGxpbmVzIDwgJGJhdGNoc2l6ZSApCiAgICAgIHsKCSRsaW5lID0gJGltcG9ydGVyLT5nZXRfdW5wYXJzZWRfcmVjb3JkKCRmaCk7CgkkbGluZSA9IHRyaW0oJGxpbmUpOwoJJGxpbmVudW0rKzsKCSRiYXRjaGxpbmVzKys7CgkkcG9zID0gZnRlbGwoJGZoKTsKCSRzbWFydHktPmFzc2lnbigncHJvZ3Jlc3MnLChpbnQpKCRwb3MgLyAkdGhlX2ZpbGVzaXplICogMTAwLjApKTsKCWlmKCBlbXB0eSgkbGluZSkgKSBjb250aW51ZTsKCgkkcmVzID0gJGltcG9ydGVyLT5oYW5kbGVMaW5lKCRsaW5lKTsKICAgICAgfQogICAgaWYoICFmZW9mKCRmaCkgKQogICAgICB7CgkvLyByZWFkeSBmb3IgdGhlIG5leHQgYmF0Y2gKCgkvLyBzYXZlIGFueSBlcnJvcnMKCSRlcnJvcnMgPSAkaW1wb3J0ZXItPmdldF9lcnJvcnMoKTsKCWlmKCBpc19hcnJheSgkZXJyb3JzKSAmJiBjb3VudCgkZXJyb3JzKSApIHsKCSAgaWYoICFpc3NldCgkX1NFU1NJT05bJ3Byb2R1Y3RzX2ltcG9ydF9kYXRhJ11bJ2Vycm9ycyddKSApIHsKCSAgICAkX1NFU1NJT05bJ3Byb2R1Y3RzX2ltcG9ydF9kYXRhJ11bJ2Vycm9ycyddID0gYXJyYXkoKTsKCSAgfQoJICAkX1NFU1NJT05bJ3Byb2R1Y3RzX2ltcG9ydF9kYXRhJ11bJ2Vycm9ycyddID0gIGFycmF5X21lcmdlKCRfU0VTU0lPTlsncHJvZHVjdHNfaW1wb3J0X2RhdGEnXVsnZXJyb3JzJ10sJGVycm9ycyk7Cgl9CgoJLy8gc2F2ZSBvdXIgcG9zaXRpb24KCSRwb3MgPSBmdGVsbCgkZmgpOwoJZmNsb3NlKCRmaCk7CgkkX1NFU1NJT05bJ3Byb2R1Y3RzX2ltcG9ydF9kYXRhJ11bJ2Zwb3MnXSA9ICRwb3M7CgkkX1NFU1NJT05bJ3Byb2R1Y3RzX2ltcG9ydF9kYXRhJ11bJ2xpbmVudW0nXSA9ICRsaW5lbnVtOwoKCSRwYXJtcyA9IGFycmF5KCdnbyc9PjEpOwoJJHRoaXMtPlJlZGlyZWN0KCRpZCwnaW1wb3J0cHJvZHVjdHMnLCRyZXR1cm5pZCwkcGFybXMpOwogICAgICB9CiAgICAvLyB3ZSdyZSBkb25lLgogICAgZmNsb3NlKCRmaCk7CiAgICAkZXJyb3JzID0gJGltcG9ydGVyLT5nZXRFcnJvcnMoKTsKICAgIGlmKCBpc19hcnJheSgkZXJyb3JzKSApIHsKICAgICAgJF9TRVNTSU9OWydwcm9kdWN0c19pbXBvcnRfZGF0YSddWydlcnJvcnMnXSA9ICBhcnJheV9tZXJnZSgkX1NFU1NJT05bJ3Byb2R1Y3RzX2ltcG9ydF9kYXRhJ11bJ2Vycm9ycyddLCRlcnJvcnMpOwogICAgfQogICAgJHNtYXJ0eS0+YXNzaWduKCdlcnJvcnMnLCRfU0VTU0lPTlsncHJvZHVjdHNfaW1wb3J0X2RhdGEnXVsnZXJyb3JzJ10pOwogICAgdW5zZXQoJF9TRVNTSU9OWydwcm9kdWN0c19pbXBvcnRfZGF0YSddWydlcnJvcnMnXSk7CiAgfQoKIwojIEdpdmUgRXZlcnl0aGluZyB0byBTbWFydHkKIwokc21hcnR5LT5hc3NpZ24oJ2ZsYWdfY3JlYXRlZmllbGRzJywkZmxhZ19jcmVhdGVmaWVsZHMpOwokc21hcnR5LT5hc3NpZ24oJ2ZsYWdfaGFuZGxlaW1hZ2VzJywkZmxhZ19oYW5kbGVpbWFnZXMpOwokc21hcnR5LT5hc3NpZ24oJ2ltYWdlcGF0aCcsJGltYWdlcGF0aCk7CiRzbWFydHktPmFzc2lnbignZmxhZ19jcmVhdGVoaWVyYXJjaHknLCRmbGFnX2NyZWF0ZWhpZXJhcmNoeSk7CiRzbWFydHktPmFzc2lnbignZmxhZ19jcmVhdGVjYXRlZ29yaWVzJywkZmxhZ19jcmVhdGVjYXRlZ29yaWVzKTsKJHNtYXJ0eS0+YXNzaWduKCdmbGFnX2R1cGxpY2F0ZXByb2R1Y3RzJywkZmxhZ19kdXBsaWNhdGVwcm9kdWN0cyk7CiRzbWFydHktPmFzc2lnbignZGVsaW1pdGVyJywkZGVsaW1pdGVyKTsKJHNtYXJ0eS0+YXNzaWduKCdiYXRjaHNpemUnLCRiYXRjaHNpemUpOwokc21hcnR5LT5hc3NpZ24oJ2NsZWFyZmllbGRzJywkY2xlYXJmaWVsZHMpOwokc21hcnR5LT5hc3NpZ24oJ2NsZWFyYXR0cmlicycsJGNsZWFyYXR0cmlicyk7CiRzbWFydHktPmFzc2lnbignY2xlYXJjYXRlZ29yaWVzJywkY2xlYXJjYXRlZ29yaWVzKTsKCiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdpbXBvcnRwcm9kdWN0cycsJHJldHVybmlkLGFycmF5KCksZmFsc2UsJ3Bvc3QnLCdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokeWVzbm8gPSBhcnJheSgnMCc9PiR0aGlzLT5MYW5nKCdubycpLCcxJz0+JHRoaXMtPkxhbmcoJ3llcycpKTsKJHNtYXJ0eS0+YXNzaWduKCd5ZXNubycsJHllc25vKTsKCiMKIyBQcm9jZXNzIFRoZSBUZW1wbGF0ZSAKIwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2ltcG9ydHByb2R1Y3RzLnRwbCcpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.movecategoryfield.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSkKewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbmVlZHBlcm1pc3Npb24nLCBhcnJheSgnTW9kaWZ5IFByb2R1Y3RzJykpKTsKCXJldHVybjsKfQoKLy8gaW5pdGlhbGl6ZQokZGlyID0gJ3VwJzsKJGNhdGlkID0gJyc7CiRmbGRuYW1lID0gJyc7CgppZiggaXNzZXQoJHBhcmFtc1snZGlyJ10pICkKICB7CiAgICAkZGlyID0gdHJpbSgkcGFyYW1zWydkaXInXSk7CiAgfQppZiggaXNzZXQoJHBhcmFtc1snY2F0aWQnXSkgKQogIHsKICAgICRjYXRpZCA9IChpbnQpJHBhcmFtc1snY2F0aWQnXTsKICB9CmlmKCBpc3NldCgkcGFyYW1zWydmbGRuYW1lJ10pICkKICB7CiAgICAkZmxkbmFtZSA9IHRyaW0oJHBhcmFtc1snZmxkbmFtZSddKTsKICB9CgokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcyAKICAgICAgICAgICBXSEVSRSBjYXRlZ29yeV9pZCA9ID8gQU5EIGZpZWxkX25hbWUgPSA/JzsKJGRhdGEgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJGNhdGlkLCRmbGRuYW1lKSk7CmlmKCAhaXNfYXJyYXkoJGRhdGEpICkKICB7CiAgICBlY2hvICJERUJVRzogIi4kZGItPnNxbC4nPGJyLz4nOyBkaWUoKTsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwnZWRpdGNhdGVnb3J5ZmllbGRzJywkcmV0dXJuaWQsYXJyYXkoJ2NhdGlkJz0+JGNhdGlkKSk7CiAgfQogICAgICAgICAgCiR0YWJsZSA9IGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcyc7CnN3aXRjaCgkZGlyKQogIHsKICBjYXNlICd1cCc6CiAgICAkcXVlcnkgPSAiVVBEQVRFICR0YWJsZSBTRVQgZmllbGRfb3JkZXIgPSBmaWVsZF9vcmRlciArIDEgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/IEFORCBmaWVsZF9vcmRlciA9ID8iOwogICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGNhdGlkLCRkYXRhWydmaWVsZF9vcmRlciddLTEpKTsKICAgICRxdWVyeSA9ICJVUERBVEUgJHRhYmxlIFNFVCBmaWVsZF9vcmRlciA9IGZpZWxkX29yZGVyIC0gMSBXSEVSRSBjYXRlZ29yeV9pZCA9ID8gQU5EIGZpZWxkX25hbWUgPSA/IjsKICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRjYXRpZCwkZGF0YVsnZmllbGRfbmFtZSddKSk7CiAgICBicmVhazsKCiAgY2FzZSAnZG93bic6CiAgICAkcXVlcnkgPSAiVVBEQVRFICR0YWJsZSBTRVQgZmllbGRfb3JkZXIgPSBmaWVsZF9vcmRlciAtIDEgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/IEFORCBmaWVsZF9vcmRlciA9ID8iOwogICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGNhdGlkLCRkYXRhWydmaWVsZF9vcmRlciddKzEpKTsKICAgICRxdWVyeSA9ICJVUERBVEUgJHRhYmxlIFNFVCBmaWVsZF9vcmRlciA9IGZpZWxkX29yZGVyICsgMSBXSEVSRSBjYXRlZ29yeV9pZCA9ID8gQU5EIGZpZWxkX25hbWUgPSA/IjsKICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRjYXRpZCwkZGF0YVsnZmllbGRfbmFtZSddKSk7CiAgICBicmVhazsKICB9CgokdGhpcy0+UmVkaXJlY3QoJGlkLCdlZGl0Y2F0ZWdvcnlmaWVsZHMnLCRyZXR1cm5pZCxhcnJheSgnY2F0aWQnPT4kY2F0aWQpKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.movefielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYignZmllbGRkZWZzJyk7Cgokb3JkZXIgPSAxOwokZmRpZCA9ICRwYXJhbXNbJ2ZkaWQnXTsKCiNHcmFiIG5lY2Vzc2FyeSBpbmZvIGZvciBmaXhpbmcgdGhlIGl0ZW1fb3JkZXIKJG9yZGVyID0gJGRiLT5HZXRPbmUoIlNFTEVDVCBpdGVtX29yZGVyIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMgV0hFUkUgaWQgPSA/IiwgYXJyYXkoJGZkaWQpKTsKJHRpbWUgPSAkZGItPkRCVGltZVN0YW1wKHRpbWUoKSk7CgppZiAoJHBhcmFtc1snZGlyJ10gPT0gImRvd24iKQp7CgkkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFNFVCBpdGVtX29yZGVyID0gKGl0ZW1fb3JkZXIgLSAxKSwgbW9kaWZpZWRfZGF0ZSA9ICcuJHRpbWUuJyBXSEVSRSBpdGVtX29yZGVyID0gPyc7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkb3JkZXIgKyAxKSk7CgkkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFNFVCBpdGVtX29yZGVyID0gKGl0ZW1fb3JkZXIgKyAxKSwgbW9kaWZpZWRfZGF0ZSA9ICcuJHRpbWUuJyBXSEVSRSBpZCA9ID8nOwoJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGZkaWQpKTsKfQplbHNlIGlmICgkcGFyYW1zWydkaXInXSA9PSAidXAiKQp7CgkkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFNFVCBpdGVtX29yZGVyID0gKGl0ZW1fb3JkZXIgKyAxKSwgbW9kaWZpZWRfZGF0ZSA9ICcuJHRpbWUuJyBXSEVSRSBpdGVtX29yZGVyID0gPyc7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkb3JkZXIgLSAxKSk7CgkkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFNFVCBpdGVtX29yZGVyID0gKGl0ZW1fb3JkZXIgLSAxKSwgbW9kaWZpZWRfZGF0ZSA9ICcuJHRpbWUuJyBXSEVSRSBpZCA9ID8nOwoJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGZkaWQpKTsKfQoKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.search.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCi8vCi8vIGluaXRpYWxpemF0aW9uCi8vCiRpbmxpbmUgPSAwOwokcmVzdWx0cGFnZSA9ICRyZXR1cm5pZDsKJHRoZXRlbXBsYXRlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ERkxUU0VBUkNIX1RFTVBMQVRFKTsKJHNlYXJjaGZpZWxkID0gJyc7CiRzb3J0b3JkZXIgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc29ydG9yZGVyJywnYXNjJyk7CiRzb3J0YnkgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc29ydGJ5JywncHJvZHVjdF9uYW1lJyk7CiRmaWVsZHMgPSBhcnJheSgpOwp7CiAgJHRtcCA9ICR0aGlzLT5HZXRGaWVsZERlZnMoKTsKICBpZiggY291bnQoJHRtcCkgKQogICAgewogICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdG1wKTsgJGkrKyApCgl7CgkgICRvYmogPSYgJHRtcFskaV07CgkgICRmaWVsZHNbJG9iai0+bmFtZV0gPSAkb2JqOwoJfQogICAgfQp9CgoKLy8KLy8gR2V0IHBhcmFtZXRlcnMKLy8KaWYoIGlzc2V0KCRwYXJhbXNbJ2lubGluZSddKSAmJiAkcGFyYW1zWydpbmxpbmUnXSAhPSAwICkKICB7CiAgICAkaW5saW5lID0gMTsKICAgIHVuc2V0KCRwYXJhbXNbJ2lubGluZSddKTsKICB9CmlmKCBpc3NldCgkcGFyYW1zWydyZXN1bHRwYWdlJ10pICkKICB7CiAgICAkdG1wID0gJHRoaXMtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHBhcmFtc1sncmVzdWx0cGFnZSddKTsKICAgIGlmKCAkdG1wICkKICAgICAgewoJJHJlc3VsdHBhZ2UgPSAkdG1wOwoJJGlubGluZSA9IDA7CiAgICAgIH0KICAgIHVuc2V0KCRwYXJhbXNbJ3Jlc3VsdHBhZ2UnXSk7CiAgfQppZiggaXNzZXQoJHBhcmFtc1snc2VhcmNoZm9ybXRlbXBsYXRlJ10pICkKICB7CiAgICAkdGhldGVtcGxhdGUgPSB0cmltKCRwYXJhbXNbJ3NlYXJjaGZvcm10ZW1wbGF0ZSddKTsKICAgIHVuc2V0KCRwYXJhbXNbJ3NlYXJjaGZvcm10ZW1wbGF0ZSddKTsKICB9CmlmKCBpc3NldCgkcGFyYW1zWydzZWFyY2hmaWVsZCddKSApCiAgewogICAgJHNlYXJjaGZpZWxkID0gdHJpbSgkcGFyYW1zWydzZWFyY2hmaWVsZCddKTsKICB9CgoKLy8KLy8gR2V0IHRoZSBmaWVsZCBkZWZpbml0aW9ucy4KLy8KaWYoICFlbXB0eSgkc2VhcmNoZmllbGQpICkKICB7CiAgICAkc2VhcmNoZmllbGRzID0gYXJyYXkoKTsKICAgICR0ZmllbGQgPSBleHBsb2RlKCcsJywkc2VhcmNoZmllbGQpOwogICAgZm9yZWFjaCggJHRmaWVsZCBhcyAkb25lZmllbGQgKQogICAgICB7CglpZiggIWlzc2V0KCRmaWVsZHNbJG9uZWZpZWxkXSkgKSBjb250aW51ZTsKCgkkb2JqID0mICRmaWVsZHNbJG9uZWZpZWxkXTsKCWlmKCAkb2JqLT50eXBlID09ICdkcm9wZG93bicgKQoJICB7CgkgICAgJG9iai0+b3B0aW9ucyA9IGNnZV9hcnJheTo6aGFzaF9wcmVwZW5kKCRvYmotPm9wdGlvbnMsLTEsJHRoaXMtPkxhbmcoJ2FueScpKTsKCSAgfQoJJHNlYXJjaGZpZWxkc1skb2JqLT5uYW1lXSA9ICRvYmo7CiAgICAgIH0KCiAgICAkc21hcnR5LT5hc3NpZ24oJ3NlYXJjaHByb3BzJywkc2VhcmNoZmllbGRzKTsKICB9Cgokc21hcnR5LT5hc3NpZ24oJ2NkX29yaWdwYWdlJywkcmV0dXJuaWQpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnZG9fc2VhcmNoJywkcmVzdWx0cGFnZSwkcGFyYW1zLCRpbmxpbmUpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCiMKIyBQcm9jZXNzIHRoZSB0ZW1wbGF0ZQojCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgnc2VhcmNoXycuJHRoZXRlbXBsYXRlKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/changelog.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgo8bGk+VmVyc2lvbiAxLjAgLSBEZWNlbWJlciwgMjAwNwogICA8cD5Jbml0aWFsIFJlbGVhc2U8L3A+CjwvbGk+CjxsaT5WZXJzaW9uIDEuMC4xIC0gSmFudWFyeSwgMjAwOAogICA8dWw+CiAgICAgPGxpPkFkZHMgcGFnaW5hdGlvbiBpbiBzdW1tYXJ5IHZpZXc8L2xpPgogICAgIDxsaT5GaXhlcyBhIHByb2JsZW0gd2l0aCBkdXBsaWNhdGUgbGlua3MgaW4gc3VtbWFyeSB2aWV3PC9saT4KICAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4wIC0gQXByaWwsIDIwMDgKICA8dWw+CiAgICAgPGxpPkFkZHMgaGllcmFyY2hpY2FsIGNhdGVnb3JpZXMgYXMgd2VsbCBhcyB0aGUgb3JpZ2luYWwgJ3RhZycgYmFzZWQgY2F0ZWdvcmllcy48YnIvPgogICAgICAgICBIaWVyYXJjaGljYWwgY2F0ZWdvcmllcyBjYW4gaGF2ZSBhbiBpbWFnZSBhcyB3ZWxsIGFzIGEgZGVzY3JpcHRpb24uPC9saT4KICAgICA8bGk+QWRkcyBtb3JlIGN1c3RvbSBmaWVsZCB0eXBlcyAoaW1hZ2UsIGRyb3Bkb3duKTxici8+CiAgICAgICAgIEluY2x1ZGluZyB0aHVtYm5haWwgZ2VuZXJhdGlvbi48L2xpPgogICAgIDxsaT5SZW1vdmUgdGhlIG9yaWdpbmFsIGltYWdlIGZpZWxkczwvbGk+CiAgICAgPGxpPkFkZHMgU2VhcmNoIG1vZHVsZSBjYXBhYmlsaXR5PC9saT4KICAgICA8bGk+QWRkcyBhIGhpZXJhcmNoaWNhbCBjYXRlZ29yeSB2aWV3IHdpdGggZHJpbGwgZG93biBzdXBwb3J0PC9saT4KICAgICA8bGk+TXVjaCwgbXVjaCBtb3JlPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjAuMSAtIEFwcmlsLCAyMDA4CiAgPHVsPgogICAgIDxsaT5GaXhlcyBudW1lcm91cyBzbWFsbCBlcnJvcnMuPC9saT4KICAgICA8bGk+Rml4IHRvIGFsbG93IHNwYWNlcyBhbmQgb3RoZXIgY2hhcmFjdGVycyBpbiBoaWVyYXJjaHkgbmFtZXM8L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMC4yIC0gQXVndXN0LCAyMDA4CiAgPHVsPgogICAgIDxsaT5CdWcgZml4ZXM8L2xpPgogICAgIDxsaT5Ob3cgUmVxdWlyZSBDR0V4dGVuc2lvbnMgMS45PC9saT4KICAgICA8bGk+QWRkIGEgY3VycmVuY3kgY29kZSBwcmVmZXJlbmNlPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEuMSAtIFNlcHRlbWJlciwgMjAwOAogIDx1bD4KICAgICA8bGk+QnVnIGZpeGVzPC9saT4KICAgICA8bGk+QWRkIHRoZSBhYmlsaXR5IHRvIGFzc29jaWF0ZSBzdGF0aWMgZGF0YSB3aXRoIGFueSBjYXRlZ29yeTwvbGk+CiAgICAgPGxpPkFkZCB0aGUgYWJpbGl0eSB0byBjb3B5IGNhdGVnb3JpZXM8L2xpPgogICAgIDxsaT5BZGQgdGhlIG9wdGlvbmFsIGFiaWxpdHkgdG8gd2F0ZXJtYXJrIHVwbG9hZGVkIGFiaWxpdGllcy48L2xpPgogICAgIDxsaT5BZGQgdGhlIG9wdGlvbmFsIGFiaWxpdHkgdG8gY2hhbmdlIHRoZSBsb2NhdGlvbiBvZiB0aGUgd2F0ZXJtYXJrIGluIHVwbG9hZGVkIGltYWdlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMS4yIC0gU2VwdGVtYmVyLCAyMDA4CiAgPHVsPgogICAgPGxpPlVwZGF0ZSBkZXBlbmRlbmNpZXMsIGFuZCByZW1vdmUgZGVidWcgc3RhdGVtZW50cy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMS4zIC0gU2VwdGVtYmVyLCAyMDA4CiAgPHVsPgogICAgPGxpPk1pbm9yIEJ1Z2ZpeGVzPC9saT4KICAgIDxsaT5DaGFuZ2UgdGhlIGRlbGltaXRlciBvbiB0aGUgYXR0cmlidXRlcyBkcm9wZG93bjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4yIC0gRGVjZW1iZXIsIDIwMDgKICA8dWw+CiAgICA8bGk+TnVtZXJvdXMgQnVnZml4ZXM8L2xpPgogICAgPGxpPlByb2R1Y3RzIG1vZHVsZSBub3cgaGFzIGEgQ2FydCBtb2R1bGUgcHJlZmVyZW5jZSwgd2hlcmUgeW91IGNhbiBwaWNrIGZyb20gdGhlIGF2YWlsYWJsZSBjYXJ0IG1vZHVsZXMuPC9saT4KICAgIDxsaT5Nb2RpZnkgZGVmYXVsdCB0ZW1wbGF0ZXMgc28gdGhhdCB0aGUgY2FydCBtb2R1bGUgcHJlZmVyZW5jZSBpcyB1c2VkLjwvbGk+CiAgICA8bGk+UmVtb3ZlIGFsbCByZWZlcmVuY2VzIHRvIHRheGVzIG9yIHNoaXBwaW5nIG1vZHVsZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjIuMSAtIEphbnVhcnksIDIwMDgKICA8dWw+CiAgICA8bGk+QWRkIGFiaWxpdHkgdG8gc29ydCBieSB3ZWlnaHQuPC9saT4KICAgIDxsaT5BZGQgYnJlYWRjcnVtYnMgdG8gZGV0YWlsIHZpZXcuPC9saT4KICAgIDxsaT5BZGQgY2F0ZWdvcnkgaW5mb3JtYXRpb24gdG8gc3VtbWFyeSB2aWV3LjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4yLjIgLSBKYW51YXJ5LCAyMDA4CiAgPHVsPgogICAgPGxpPkZpeCBtaW5vciBwcm9ibGVtIHdpdGggY2F0ZWdvcnkgaW5mb3JtYXRpb24gaW4gc3VtbWFyeSB2aWV3LjwvbGk+CiAgICA8bGk+QWRkIGNvbnNpc3RlbnQgb3JkZXJpbmcgdG8gR2V0Q2F0ZWdvcmllc0ZvclByb2R1Y3Q8L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMi40IC0gRmVicnVhcnksIDIwMDgKICA8dWw+CiAgICA8bGk+QWRkIElEIHRvIHRoZSBoaWVyYXJjaHkgdGFiPC9saT4KICAgIDxsaT5BZGQgdGhlIHskcGFyZW50fSB2YXJpYWJsZSB0byB0aGUgaGllcmFyY2h5IGRpc3BsYXkuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjMgLSBNYXJjaCwgMjAwOAogIDx1bD4KICAgIDxsaT5BZGQgQ1NWIEltcG9ydDwvbGk+CiAgICA8bGk+QWRkIGluZGV4ZXMgdG8gdGhlIHRhYmxlcywgc2hvdWxkIHJlc3VsdCBpbiBhIG1hc3NpdmUgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQuPC9saT4KICAgIDxsaT5BZGQgRXh0cmExIGFuZCBFeHRyYTIgZmllbGRzIHRvIHRoZSBoaWVyYXJjaHkgZGVmaW5pdGlvbi48L2xpPgogICAgPGxpPkZpeGVzIHByb2JsZW1zIHdpdGggZGF0ZXMKICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjMuMSAtIE1hcmNoLCAyMDA4CiAgPHVsPgogICAgPGxpPkZpeGVzIHRvIENTViBJbXBvcnQ8L2xpPgogICAgPGxpPkJ1bXAgbWluaW11bSBDTVMgVmVyc2lvbiB0byAxLjUuMzwvbGk+CiAgICA8bGk+QnVnZml4ZXMgdG8gZWRpdCBhdHRyaWJ1dGUgc2V0LjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi40IC0gSnVseSwgMjAwOAogIDx1bD4KICAgIDxsaT5GaXhlcyBFZGl0IEF0dHJpYnV0ZSBTZXQgUHJvYmxlbTwvbGk+CiAgICA8bGk+QWRkcyBHZXRDYXRlZ29yeSgpIG1ldGhvZC48L2xpPgogICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNC4yIC0gSnVseSwgMjAwOAogIDx1bD4KICAgIDxsaT5BZGRzIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBmb3IgdXNlIGJ5IHRoZSBQcm9tb3Rpb25zIGFuZCBvdGhlciBtb2R1bGVzLjwvbGk+CiAgICA8bGk+Rml4ZXMgbWlub3IgYnVncy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNC40IC0gU2VwdGVtYmVyLCAyMDA4CiAgPHVsPgogICAgPGxpPkZpeGVzIG1pbm9yIGJ1Z3MuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjQuNSAtIE5vdmVtYmVyLCAyMDA4CiAgPHVsPgogICAgPGxpPk1pbm9yIHNtYXJ0eSBpbXByb3ZlbWVudHMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjQuNyAtIERlY2VtYmVyLCAyMDA4CiAgPHVsPgogICAgPGxpPkFkZHMgYWJpbGl0eSB0byBzcGVjaWZ5IGEgdGVtcGxhdGUgZm9yIHByb2R1Y3QgYXR0cmlidXRlIHZhbHVlIGRpc3BsYXkgaW4gdGhlIGRyb3Bkb3ducy48L2xpPgogICAgPGxpPkFkZHMgdGhlIHNob3dhbGwgcGFyYW1ldGVyIChvcHRpb25hbCkgdG8gdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb24uPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjQuOCAtIEphbnVhcnksIDIwMDkKICA8dWw+CiAgICA8bGk+QWRkcyBoYW5kbGluZyBmb3IgZGlyZWN0IGFjY2VzcyB0byBkaXNhYmxlZC9kZWxldGVkL2ludmFsaWQgcHJvZHVjdCBkZXRhaWwgdmlld3MuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjUuMSAtIEZlYnJ1YXJ5LCAyMDEwCiAgPHVsPgogICAgPGxpPkltcHJvdmVtZW50cyBmb3IgTUFDIGZvcm1hdCBBU0NJSSBjc3YgZmlsZXMuPC9saT4KICAgIDxsaT5BZGRzIHByb2R1Y3QgYWxpYXMgbWVjaGFuaXNtLjwvbGk+CiAgICA8bGk+QWRkcyBicmVhZGNydW1iIHN1cHBvcnQgaW50byB0aGUgZGV0YWlsIHZpZXcuPC9saT4KICAgIDxsaT5BZGRzIHByZXR0eSB1cmwgc3VwcG9ydCBpbnRvIHRoZSBzZWFyY2ggcmVzdWx0cy48L2xpPgogICAgPGxpPkFkZHMgY2Fub25pY2FsIHN1cHBvcnQgaW50byB0aGUgZGV0YWlsIHZpZXcuPC9saT4KICAgIDxsaT5BZGRzIFNLVSBzdXBwb3J0LjwvbGk+CiAgICA8bGk+QnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi42IC0gTWFyY2gsIDIwMTkKIDx1bD4KICAgPGxpPk1vZGlmaWNhdGlvbnMgdG8gd29yayB3aXRoIG5ldyBFLWNvbW1lcmNlIHNldHVwLjwvbGk+CiAgIDxsaT5NYW55IGJ1ZyBmaXhlcy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi42LjEgLSBBcHJpbCwgMjAxOQogPHVsPgogICA8bGk+QnVnIEZpeGVzLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjYuMiAtIEFwcmlsLCAyMDE5CiA8dWw+CiAgIDxsaT5CdWcgRml4ZXMuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNyAtIEFwcmlsLCAyMDE5CiA8dWw+CiAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIHNvcnQgc3VtbWFyeSB2aWV3cyBieSBjdXN0b20gZmllbGRzLjwvbGk+CiAgIDxsaT5BZGRzIHRoZSBmaWVsZGxpc3QgYWN0aW9uIHRvIGFsbG93IGNyZWF0aW5nIG5hdmlnYXRpb25zIG9uIGN1c3RvbSBmaWVsZHMuPC9saT4KICAgPGxpPkFkZHMgc2VhcmNoIGFjdGlvbiB0byBhbGxvdyBzZWFyY2hpbmcgcHJvZHVjdHMuPC9saT4KICAgPGxpPlJlbW92ZSBjdXJyZW5jeSBjb2RlIGFuZCBvdGhlciBwcmVmZXJlbmNlcyB0aGF0IGFyZSBub3cgaW4gQ0dFY29tbWVyY2VCYXNlLi4uIHdlbGwgaWYgQ0dFY29tbWVyY2VCYXNlIGlzIGluc3RhbGxlZCBhbnl3YXlzLjwvbGk+CiAgIDxsaT5SZW1vdmUgc29tZSBwcmVmZXJlbmNlcyBhbmQgdGVtcGxhdGVzIHRoYXQgYXJlIG5vdyBob3N0ZWQgaW4gQ0dFY29tbWVyY2VCYXNlLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjcuMSAtIEFwcmlsLCAyMDEwCiA8dWw+CiAgIDxsaT5BZGRzIGEgcmV0dXJuIGxpbmsgdG8gdGhlIGNhdGVnb3J5IGZpZWxkcyBlZGl0IHBhZ2UuPC9saT4KICAgPGxpPkFkZHMgYSBkZXRhaWxfdXJsIHBhcmFtIHRvIHRoZSBjYXRlZ29yeSBsaXN0IHZpZXcuPC9saT4KICAgPGxpPkFkZHMgdGhlIGNhdGVnb3J5bGlzdGR0bHRlbXBsYXRlIHBhcmFtLjwvbGk+CiAgIDxsaT5DYXRlZ29yeSBMaXN0IHZpZXcgbm93IHVzZXMgdGhlIHJlc3VsdHBhZ2UgcGFyYW1ldGVyIGJ5IGRlZmF1bHQuPC9saT4KICAgPGxpPkZpeGVzIGEgcHJvYmxlbSB3aXRoIGRlbGV0aW5nIGZpbGVzIGluIHRoZSBlZGl0IHByb2R1Y3QgcGFnZS48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi43LjMgLSBBcHJpbCwgMjAxMAogPHVsPgogICA8bGk+UmVtb3ZlIHRoZSBpbWFnZSB3aGVuIHJlbW92aW5nIHRoZSBoaWVyYXJjaHkgaXRlbS48L2xpPgogICA8bGk+SW1wcm92ZW1lbnRzIHRvIGNhdGVnb3J5IGZpZWxkIG9yZGVyaW5nLjwvbGk+CiAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIHJlbmFtZSBjYXRlZ29yeSBmaWVsZHMuPC9saT4KICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi43LjQgLSBBcHJpbCwgMjAxMAogPHVsPgogICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjcuNSAtIE1heSwgMjAxMAogPHVsPgogICA8bGk+Rml4ZXMgcHJvYmxlbSB3aXRoIHNlYXJjaCB0ZW1wbGF0ZXMgb24gdXBncmFkZS48L2xpPgogICA8bGk+QWRkcyBjYXRlZ29yeSBmaWVsZCByZW9yZGVyaW5nLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjcuNiAtIE1heSwgMjAxMAogPHVsPgogICA8bGk+Rml4ZXMgdG8gY2F0ZWdvcnkgZmllbGQgcmUtb3JkZXJpbmcuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuOCAtIE1heSwgMjAxMAogPHVsPgogICA8bGk+QWRkcyBhIHRydWUgaGllcmFyY2h5IG1vZGUuPGJyLz4KICAgICAgIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyB3aWxsIGJyZWFrIGV4aXN0aW5nIHNpdGVzIHVzaW5nIHRoZSBvbGRlciBoaWVyYXJjaHkgdmlldy4gIFlvdSBzaG91bGQgcmVhZCB0aGUgaGVscCBmb3IgaW5mb3JtYXRpb24gYXMgdG8gaG93IHRvIHVzZSB0aGUgbmV3IHZpZXcuPC9saT4KICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gYWRkIGN1c3RvbSBmaWVsZHMgdG8gdGhlIGFkbWluIHNpZGUgcHJvZHVjdCB0YWJsZSB2aWV3LjwvbGk+CiAgIDxsaT5JbXByb3ZlcyB0aGUgQ1NWIGltcG9ydCBmdW5jdGlvbi48L2xpPgogICA8bGk+QWRkcyBhIG5ldyBkaW1lbnNpb24gZGF0YSBmaWVsZC48L2xpCiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjguMSAtIE1heSwgMjAxMAogPHVsPgogICA8bGk+TWlub3IgYnVnIGZpeGVzIHRvIGFkbWluIGRpc3BsYXkuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuOC4yIC0gTWF5LCAyMDEwCiA8dWw+CiAgIDxsaT5GaXggdG8gZGVmYXVsdCBoaWVyYXJjaHkgdGVtcGxhdGUuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuOC4yIC0gTWF5LCAyMDEwCiA8dWw+CiAgICA8bGk+QWRkcyBzdWJzY3JpcHRpb24gZmllbGQgdHlwZS48L2xpPgogICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICAgPGxpPkFkZGVkIHN1cHBvcnQgZm9yIGZpZWxkdmFsPSc6Om5vdG51bGw6Oicgb24gdGhlIHN1bW1hcnkgdmlldy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi44LjMgLSBKdWx5LCAyMDEwCiA8dWw+CiAgICA8bGk+UmVtb3ZlcyB0aGUgdXNlb2xkaGllcmFyY2h5IHBhcmFtIGZyb20gdGhlIGhpZXJhcmNoeSB2aWV3LjwvbGk+CiAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBmaWx0ZXIgdGhlIG91dHB1dCBpbiB0aGUgY2F0ZWdvcnlsaXN0IHZpZXcuPC9saT4KICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuOC40IC0gU2VwdGVtYmVyLCAyMDEwCiA8dWw+CiAgICA8bGk+QWRkcyBhIHByZWZlcmVuY2UgZm9yIHRoZSBkZWZhdWx0IHBhZ2UgbGltaXQgaW4gc3VtbWFyeSBtb2RlLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjguNSAtIFNlcHRlbWJlciwgMjAxMAogPHVsPgogICAgPGxpPkFkZHMgc29ydGluZyBjYXBhYmlsaXRpZXMgdG8gdGhlIGNhdGVnb3J5bGlzdCB2aWV3LjwvbGk+CiAgICA8bGk+UmUtd29ya3MgdGhlIGhpZXJhcmNoeSB2aWV3IChhZ2FpbikuICBUZW1wbGF0ZXMgd2lsbCBuZWVkIHRvIGNoYW5nZS48L2xpPgogICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gZXhwbGljaXRseSBsaXN0IGhpZXJhcmNoeSBpdGVtcyBpbiB0aGUgaGllcmFyY2h5IHZpZXcuPC9saT4KICAgIDxsaT5BZGRzIGNvbW1hIHNlcGFyYXRlZCBoaWVyYXJjaHkgY2FwYWJpbGl0eSB0byB0aGUgZGVmYXVsdCBzdW1tYXJ5IHZpZXcuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuOC42IC0gU2VwdGVtYmVyLCAyMDEwCiA8dWw+CiAgIDxsaT5GaXhlcyB0byBDU1YgaW1wb3J0IHN0dWZmLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjkgLSBEZWNlbWJlciwgMjAxMAogPHVsPgogICA8bGk+Rml4ZXMgc29tZSBpc3N1ZXMgcmVsYXRlZCB0byBFX1NUUklDVCBhbmQgRV9ERVBSRUNBVEVEPC9saT4KICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gY29weSBhdHRyaWJ1dGUgc2V0cyBmcm9tIGFub3RoZXIgcHJvZHVjdC48L2xpPgogICA8bGk+Rml4ZXMgdG8gQ1NWIGltcG9ydCBzdHVmZi48L2xpPgogICA8bGk+Rml4ZXMgdG8gZW50ZXJpbmcgYSBza3UgaW4gYXR0cmlidXRlcy48L2xpPgogICA8bGk+QWRkcyBoaWVyYXJjaHkgaW5mb3JtYXRpb24gdG8gc2VhcmNoLCBzdW1tYXJ5IGFuZCBkZXRhaWwgdmlld3MuPC9saT4gCiAgIDxsaT5GaXhlcyBhbiBpc3N1ZSB3aXRoIHBhZ2luYXRpb24gaW4gdGhlIGFkbWluIHBhbmVsIHByb2R1Y3RzIHRhYi48L2xpPgogICA8bGk+Rml4ZXMgYW4gaXNzdWUgd2l0aCBwYWdlIGNvdW50cyBpbiB0aGUgcHJvZHVjdHMgdGFiIHdoZW4gYSBjdXN0b20gZmllbGQgaXMgYWRkZWQgdG8gdGhlIHZpZXcgbGlzdC48L2xpPgogICA8bGk+TWFueSBtb3JlIGJ1ZyBmaXhlcyBhbmQgbWlub3IgaW1wcm92ZW1lbnRzLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEwLjIgLSBKYW51YXJ5LCAyMDExCiA8dWw+CiAgIDxsaT5BZGRzIGNhbm9uaWNhbCBVUkwgdG8gdGhlIGhpZXJhcmNoeSBpdGVtLCBpbiB0aGUgaGllcmFyY2h5IHZpZXcuPC9saT4KICAgPGxpPkFkZHMgdGhlIHByb2R1Y3RsaXN0IHBhcmFtZXRlciB0byBvdXRwdXQgYSBzdW1tYXJ5IHZpZXcgb2Ygc3BlY2lmaWMgcHJvZHVjdHMuICBEb2VzIG5vdCBwcm92aWRlIHBhZ2luYXRpb24gb3Igc29ydGluZy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xMC4zIC0gRmVicnVhcnksIDIwMTEKIDx1bD4KICAgPGxpPkZpeGVzIGJ1ZyB3aXRoIGRlZmF1bHQgdmlldy4uLi4gdGhhbmtzIHN0aWtraTwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEwLjQgLSBNYXksIDIwMTEKIDx1bD4KICAgPGxpPk1pbm9yIGZpeCB0byB0aGUgdW5pbnN0YWxsZXIuPC9saT4KICAgPGxpPkFkZHMgdGhlIGNhdGVnb3J5ZmllbGQgcGFyYW1ldGVyIHRvIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uLjwvbGk+CiAgIDxsaT5GaXhlcyBhIHByb2JsZW0gd2l0aCBjYXRlZ29yeSBmaWVsZHMgd2hlbiBjb3B5aW5nIGEgY2F0ZWdvcnkuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTAuNSAtIE1heSwgMjAxMQogPHVsPgogICA8bGk+TWlub3JlcyBmaXggdG8gY2F0ZW9ncnkgZmllbGRzLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjExIC0gTWF5LCAyMDExCiAgPHVsPgogICAgPGxpPkFkZHMgdGhlICZxdW90O2V4Y2x1ZGVjYXQmcXVvdDsgcGFyYW1ldGVyLjwvbGk+CiAgICA8bGk+UmVtb3ZlcyBzb21lIGVycmFudCBkZWJ1ZyBzdGF0ZW1lbnRzIGluIHRoZSBjYXRlZ29yeWxpc3Qgdmlldy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTIgLSBNYXksIDIwMTEKICA8dWw+CiAgICA8bGk+VGhlcmUgaXMgbm93IGFuIG9wdGlvbiB0byBtYWtlIHN1cmUgdGhhdCB0aGUgU0tVIGlzIHJlcXVpcmVkIHdoZW4gYWRkaW5nL2VkaXRpbmcgcHJvZHVjdHMvYXR0cmlidXRlcy48L2xpPgogICAgPGxpPlRoZSBpbWFnZSB0aHVtYm5haWwsIHByZXZpZXcsIGFuZCB3YXRlcm1hcmtpbmcgc3R1ZmYgaXMgbm93IERFUFJFQ0FURUQuPC9saT4KICAgIDxsaT5BZGRlZCB0aGUgYXR0cmlic19mdWxsIHN0dWZmIGludG8gdGhlIGRldGFpbCBhbmQgc3VtbWFyeSB2aWV3cy4gICB0aGUgYXR0cmlidXRlcyBtZW1iZXIgb2Ygb3V0cHV0IG9iamVjdHMgaXMgZGVwcmVjYXRlZC48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTIuMSAtIE1heSwgMjAxMQogIDx1bD4KICAgIDxsaT5BZGRzIGNhY2hpbmcgZm9yIGZpZWxkIGRlZmluaXRpb25zLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xMyAtIEp1bHksIDIwMTEKICA8dWw+CiAgIDxsaT5BZGRzIGJ1bGsgYWN0aW9ucyBpbiB0aGUgcHJvZHVjdCBsaXN0LjwvbGk+CiAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGV4Y2x1ZGUgcHJvZHVjdHMgaW4gY2VydGFpbiBjYXRlZ29yaWVzIGZyb20gdGhlIHByb2R1Y3QgbGlzdC48L2xpPgogICA8bGk+TnVtZXJvdXMgbWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xMy4xIC0gSnVseSwgMjAxMQogIDx1bD4KICAgPGxpPkJ1ZyBGaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTMuMiAtIEp1bHksIDIwMTEKICA8dWw+CiAgIDxsaT5CdWcgRml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEzLjMgLSBBdWd1c3QsIDIwMTEKICA8dWw+CiAgIDxsaT5CdWcgRml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjE0IC0gQXVndXN0LCAyMDExCiAgPHVsPgogICA8bGk+QWRkcyBmdW5jdGlvbmFsaXR5IGZvciBkeW5hbWljYWxseSByZW9yZ2FuaXppbmcgdGhlIGhpZXJhcmNoeSB0cmVlLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xNSAtIEF1Z3VzdCwgMjAxMQogIDx1bD4KICAgIDxsaT5BZGRzIGEgc2ltcGxlIHF1YW50aXR5LW9uLWhhbmQgZmllbGQuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjE2IC0gQXVndXN0LCAyMDExCiAgPHVsPgogICAgPGxpPlZhc3RseSBpbXByb3ZlZCBzZWFyY2ggY2FwYWJpbGl0aWVzLiAgTm90ZTogZXhpc3RpbmcgdGVtcGxhdGVzIHdpbGwgbmVlZCB0byBiZSB1cGRhdGVkIGFzIGZpZWxkIG5hbWVzIGhhdmUgY2hhbmdlZC48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTcgLSBNYXJjaCwgMjAxMgogIDx1bD4KICAgIDxsaT5OdW1lcm91cyBidWcgZml4ZXMuPC9saT4KICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGR1cGxpY2F0ZSBhIHByb2R1Y3QuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjE4LjIgLSBKdW5lLCAyMDEyCiAgPHVsPgogICAgPGxpPkNyZWF0ZXMgYSBuZXcgZmxleGlibGUgcXVlcnkgY2xhc3MgYW5kIG1hdGNoaW5nIHJlc3VsdHNldCBjbGFzcy48L2xpPgogICAgPGxpPkRyYW1hdGljIHBlcmZvcm1hbmNlIGltcHJvdm1lbnQgZm9yIHN1bW1hcnkgdmlld3MuPC9saT4KICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGV4cG9ydCBwcm9kdWN0IGluZm9ybWF0aW9uIHRvIGNzdi48L2xpPgogICAgPGxpPk1hbnkgaW1wcm92ZW1lbnRzIHRvIENTViBpbXBvcnQuPC9saT4KICAgIDxsaT5BZGRzIGFuIG9wdGlvbmFsIG5ldyBkZWZhdWx0IGFjdGlvbiB3aGljaCBzaG91bGQgYmUgbXVjaCBmYXN0ZXIuICBPcmlnaW5hbCBkZWZhdWx0IGFjdGlvbiB3aWxsIGJlIHJlbW92ZWQgb3ZlciB0aW1lLjwvbGk+CiAgICA8bGk+SGVscCBpcyBub3cgaW4gaXRzIG93biBmaWxlLjwvbGk+CiAgICA8bGk+QWRkIHRoZSAncGFyZW50cycgcGFyYW1ldGVyIHRvIHRoZSBoaWVyYXJjaHkgYWN0aW9uLjwvbGk+CiAgICA8bGk+TnVtZXJvdXMgY2FjaGluZyBvcHRpbWl6YXRpb25zLjwvbGk+CiAgICA8bGk+TW9yZSBpbmRleGVzIG9uIHRoZSBwcm9kdWN0cyB0YWJsZSBkdXJpbmcgaW5zdGFsbC48L2xpPgogICAgPGxpPkxhbmd1YWdlIGNoYW5nZS4uLiBpbiBtb3N0IHBsYWNlcywgcHJvZHVjdHMgYXJlIG5vdyByZWZlcnJlZCB0byBhcyAmcXVvdDtpdGVtcyZxdW90OzwvbGk+CiAgPC91bD4KPC9saT4KPC91bD4K]]></data>
	</file>
	<file>
	  <filename>/docs/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMywgMjkgSnVuZSAyMDA3CgogQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cDovL2ZzZi5vcmcvPgogRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCiBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVhbWJsZQoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgYSBmcmVlLCBjb3B5bGVmdCBsaWNlbnNlIGZvcgpzb2Z0d2FyZSBhbmQgb3RoZXIga2luZHMgb2Ygd29ya3MuCgogIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhbmQgb3RoZXIgcHJhY3RpY2FsIHdvcmtzIGFyZSBkZXNpZ25lZAp0byB0YWtlIGF3YXkgeW91ciBmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgdGhlIHdvcmtzLiAgQnkgY29udHJhc3QsCnRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBpbnRlbmRlZCB0byBndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRvCnNoYXJlIGFuZCBjaGFuZ2UgYWxsIHZlcnNpb25zIG9mIGEgcHJvZ3JhbS0tdG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgZnJlZQpzb2Z0d2FyZSBmb3IgYWxsIGl0cyB1c2Vycy4gIFdlLCB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB1c2UgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3N0IG9mIG91ciBzb2Z0d2FyZTsgaXQgYXBwbGllcyBhbHNvIHRvCmFueSBvdGhlciB3b3JrIHJlbGVhc2VkIHRoaXMgd2F5IGJ5IGl0cyBhdXRob3JzLiAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoZW0gaWYgeW91IHdpc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91CndhbnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQgaW4gbmV3CmZyZWUgcHJvZ3JhbXMsIGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdzLgoKICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIHByZXZlbnQgb3RoZXJzIGZyb20gZGVueWluZyB5b3UKdGhlc2UgcmlnaHRzIG9yIGFza2luZyB5b3UgdG8gc3VycmVuZGVyIHRoZSByaWdodHMuICBUaGVyZWZvcmUsIHlvdSBoYXZlCmNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZgp5b3UgbW9kaWZ5IGl0OiByZXNwb25zaWJpbGl0aWVzIHRvIHJlc3BlY3QgdGhlIGZyZWVkb20gb2Ygb3RoZXJzLgoKICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyCmdyYXRpcyBvciBmb3IgYSBmZWUsIHlvdSBtdXN0IHBhc3Mgb24gdG8gdGhlIHJlY2lwaWVudHMgdGhlIHNhbWUKZnJlZWRvbXMgdGhhdCB5b3UgcmVjZWl2ZWQuICBZb3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGV5LCB0b28sIHJlY2VpdmUKb3IgY2FuIGdldCB0aGUgc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkKa25vdyB0aGVpciByaWdodHMuCgogIERldmVsb3BlcnMgdGhhdCB1c2UgdGhlIEdOVSBHUEwgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczoKKDEpIGFzc2VydCBjb3B5cmlnaHQgb24gdGhlIHNvZnR3YXJlLCBhbmQgKDIpIG9mZmVyIHlvdSB0aGlzIExpY2Vuc2UKZ2l2aW5nIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSBpdC4KCiAgRm9yIHRoZSBkZXZlbG9wZXJzJyBhbmQgYXV0aG9ycycgcHJvdGVjdGlvbiwgdGhlIEdQTCBjbGVhcmx5IGV4cGxhaW5zCnRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZSBzb2Z0d2FyZS4gIEZvciBib3RoIHVzZXJzJyBhbmQKYXV0aG9ycycgc2FrZSwgdGhlIEdQTCByZXF1aXJlcyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIGJlIG1hcmtlZCBhcwpjaGFuZ2VkLCBzbyB0aGF0IHRoZWlyIHByb2JsZW1zIHdpbGwgbm90IGJlIGF0dHJpYnV0ZWQgZXJyb25lb3VzbHkgdG8KYXV0aG9ycyBvZiBwcmV2aW91cyB2ZXJzaW9ucy4KCiAgU29tZSBkZXZpY2VzIGFyZSBkZXNpZ25lZCB0byBkZW55IHVzZXJzIGFjY2VzcyB0byBpbnN0YWxsIG9yIHJ1bgptb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGUgc29mdHdhcmUgaW5zaWRlIHRoZW0sIGFsdGhvdWdoIHRoZSBtYW51ZmFjdHVyZXIKY2FuIGRvIHNvLiAgVGhpcyBpcyBmdW5kYW1lbnRhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBhaW0gb2YKcHJvdGVjdGluZyB1c2VycycgZnJlZWRvbSB0byBjaGFuZ2UgdGhlIHNvZnR3YXJlLiAgVGhlIHN5c3RlbWF0aWMKcGF0dGVybiBvZiBzdWNoIGFidXNlIG9jY3VycyBpbiB0aGUgYXJlYSBvZiBwcm9kdWN0cyBmb3IgaW5kaXZpZHVhbHMgdG8KdXNlLCB3aGljaCBpcyBwcmVjaXNlbHkgd2hlcmUgaXQgaXMgbW9zdCB1bmFjY2VwdGFibGUuICBUaGVyZWZvcmUsIHdlCmhhdmUgZGVzaWduZWQgdGhpcyB2ZXJzaW9uIG9mIHRoZSBHUEwgdG8gcHJvaGliaXQgdGhlIHByYWN0aWNlIGZvciB0aG9zZQpwcm9kdWN0cy4gIElmIHN1Y2ggcHJvYmxlbXMgYXJpc2Ugc3Vic3RhbnRpYWxseSBpbiBvdGhlciBkb21haW5zLCB3ZQpzdGFuZCByZWFkeSB0byBleHRlbmQgdGhpcyBwcm92aXNpb24gdG8gdGhvc2UgZG9tYWlucyBpbiBmdXR1cmUgdmVyc2lvbnMKb2YgdGhlIEdQTCwgYXMgbmVlZGVkIHRvIHByb3RlY3QgdGhlIGZyZWVkb20gb2YgdXNlcnMuCgogIEZpbmFsbHksIGV2ZXJ5IHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlIHBhdGVudHMuClN0YXRlcyBzaG91bGQgbm90IGFsbG93IHBhdGVudHMgdG8gcmVzdHJpY3QgZGV2ZWxvcG1lbnQgYW5kIHVzZSBvZgpzb2Z0d2FyZSBvbiBnZW5lcmFsLXB1cnBvc2UgY29tcHV0ZXJzLCBidXQgaW4gdGhvc2UgdGhhdCBkbywgd2Ugd2lzaCB0bwphdm9pZCB0aGUgc3BlY2lhbCBkYW5nZXIgdGhhdCBwYXRlbnRzIGFwcGxpZWQgdG8gYSBmcmVlIHByb2dyYW0gY291bGQKbWFrZSBpdCBlZmZlY3RpdmVseSBwcm9wcmlldGFyeS4gIFRvIHByZXZlbnQgdGhpcywgdGhlIEdQTCBhc3N1cmVzIHRoYXQKcGF0ZW50cyBjYW5ub3QgYmUgdXNlZCB0byByZW5kZXIgdGhlIHByb2dyYW0gbm9uLWZyZWUuCgogIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kCm1vZGlmaWNhdGlvbiBmb2xsb3cuCgogICAgICAgICAgICAgICAgICAgICAgIFRFUk1TIEFORCBDT05ESVRJT05TCgogIDAuIERlZmluaXRpb25zLgoKICAiVGhpcyBMaWNlbnNlIiByZWZlcnMgdG8gdmVyc2lvbiAzIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KCiAgIkNvcHlyaWdodCIgYWxzbyBtZWFucyBjb3B5cmlnaHQtbGlrZSBsYXdzIHRoYXQgYXBwbHkgdG8gb3RoZXIga2luZHMgb2YKd29ya3MsIHN1Y2ggYXMgc2VtaWNvbmR1Y3RvciBtYXNrcy4KCiAgIlRoZSBQcm9ncmFtIiByZWZlcnMgdG8gYW55IGNvcHlyaWdodGFibGUgd29yayBsaWNlbnNlZCB1bmRlciB0aGlzCkxpY2Vuc2UuICBFYWNoIGxpY2Vuc2VlIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4gICJMaWNlbnNlZXMiIGFuZAoicmVjaXBpZW50cyIgbWF5IGJlIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXphdGlvbnMuCgogIFRvICJtb2RpZnkiIGEgd29yayBtZWFucyB0byBjb3B5IGZyb20gb3IgYWRhcHQgYWxsIG9yIHBhcnQgb2YgdGhlIHdvcmsKaW4gYSBmYXNoaW9uIHJlcXVpcmluZyBjb3B5cmlnaHQgcGVybWlzc2lvbiwgb3RoZXIgdGhhbiB0aGUgbWFraW5nIG9mIGFuCmV4YWN0IGNvcHkuICBUaGUgcmVzdWx0aW5nIHdvcmsgaXMgY2FsbGVkIGEgIm1vZGlmaWVkIHZlcnNpb24iIG9mIHRoZQplYXJsaWVyIHdvcmsgb3IgYSB3b3JrICJiYXNlZCBvbiIgdGhlIGVhcmxpZXIgd29yay4KCiAgQSAiY292ZXJlZCB3b3JrIiBtZWFucyBlaXRoZXIgdGhlIHVubW9kaWZpZWQgUHJvZ3JhbSBvciBhIHdvcmsgYmFzZWQKb24gdGhlIFByb2dyYW0uCgogIFRvICJwcm9wYWdhdGUiIGEgd29yayBtZWFucyB0byBkbyBhbnl0aGluZyB3aXRoIGl0IHRoYXQsIHdpdGhvdXQKcGVybWlzc2lvbiwgd291bGQgbWFrZSB5b3UgZGlyZWN0bHkgb3Igc2Vjb25kYXJpbHkgbGlhYmxlIGZvcgppbmZyaW5nZW1lbnQgdW5kZXIgYXBwbGljYWJsZSBjb3B5cmlnaHQgbGF3LCBleGNlcHQgZXhlY3V0aW5nIGl0IG9uIGEKY29tcHV0ZXIgb3IgbW9kaWZ5aW5nIGEgcHJpdmF0ZSBjb3B5LiAgUHJvcGFnYXRpb24gaW5jbHVkZXMgY29weWluZywKZGlzdHJpYnV0aW9uICh3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uKSwgbWFraW5nIGF2YWlsYWJsZSB0byB0aGUKcHVibGljLCBhbmQgaW4gc29tZSBjb3VudHJpZXMgb3RoZXIgYWN0aXZpdGllcyBhcyB3ZWxsLgoKICBUbyAiY29udmV5IiBhIHdvcmsgbWVhbnMgYW55IGtpbmQgb2YgcHJvcGFnYXRpb24gdGhhdCBlbmFibGVzIG90aGVyCnBhcnRpZXMgdG8gbWFrZSBvciByZWNlaXZlIGNvcGllcy4gIE1lcmUgaW50ZXJhY3Rpb24gd2l0aCBhIHVzZXIgdGhyb3VnaAphIGNvbXB1dGVyIG5ldHdvcmssIHdpdGggbm8gdHJhbnNmZXIgb2YgYSBjb3B5LCBpcyBub3QgY29udmV5aW5nLgoKICBBbiBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZSBkaXNwbGF5cyAiQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcyIKdG8gdGhlIGV4dGVudCB0aGF0IGl0IGluY2x1ZGVzIGEgY29udmVuaWVudCBhbmQgcHJvbWluZW50bHkgdmlzaWJsZQpmZWF0dXJlIHRoYXQgKDEpIGRpc3BsYXlzIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UsIGFuZCAoMikKdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhlIHdvcmsgKGV4Y2VwdCB0byB0aGUKZXh0ZW50IHRoYXQgd2FycmFudGllcyBhcmUgcHJvdmlkZWQpLCB0aGF0IGxpY2Vuc2VlcyBtYXkgY29udmV5IHRoZQp3b3JrIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIGhvdyB0byB2aWV3IGEgY29weSBvZiB0aGlzIExpY2Vuc2UuICBJZgp0aGUgaW50ZXJmYWNlIHByZXNlbnRzIGEgbGlzdCBvZiB1c2VyIGNvbW1hbmRzIG9yIG9wdGlvbnMsIHN1Y2ggYXMgYQptZW51LCBhIHByb21pbmVudCBpdGVtIGluIHRoZSBsaXN0IG1lZXRzIHRoaXMgY3JpdGVyaW9uLgoKICAxLiBTb3VyY2UgQ29kZS4KCiAgVGhlICJzb3VyY2UgY29kZSIgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsKZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgIk9iamVjdCBjb2RlIiBtZWFucyBhbnkgbm9uLXNvdXJjZQpmb3JtIG9mIGEgd29yay4KCiAgQSAiU3RhbmRhcmQgSW50ZXJmYWNlIiBtZWFucyBhbiBpbnRlcmZhY2UgdGhhdCBlaXRoZXIgaXMgYW4gb2ZmaWNpYWwKc3RhbmRhcmQgZGVmaW5lZCBieSBhIHJlY29nbml6ZWQgc3RhbmRhcmRzIGJvZHksIG9yLCBpbiB0aGUgY2FzZSBvZgppbnRlcmZhY2VzIHNwZWNpZmllZCBmb3IgYSBwYXJ0aWN1bGFyIHByb2dyYW1taW5nIGxhbmd1YWdlLCBvbmUgdGhhdAppcyB3aWRlbHkgdXNlZCBhbW9uZyBkZXZlbG9wZXJzIHdvcmtpbmcgaW4gdGhhdCBsYW5ndWFnZS4KCiAgVGhlICJTeXN0ZW0gTGlicmFyaWVzIiBvZiBhbiBleGVjdXRhYmxlIHdvcmsgaW5jbHVkZSBhbnl0aGluZywgb3RoZXIKdGhhbiB0aGUgd29yayBhcyBhIHdob2xlLCB0aGF0IChhKSBpcyBpbmNsdWRlZCBpbiB0aGUgbm9ybWFsIGZvcm0gb2YKcGFja2FnaW5nIGEgTWFqb3IgQ29tcG9uZW50LCBidXQgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhhdCBNYWpvcgpDb21wb25lbnQsIGFuZCAoYikgc2VydmVzIG9ubHkgdG8gZW5hYmxlIHVzZSBvZiB0aGUgd29yayB3aXRoIHRoYXQKTWFqb3IgQ29tcG9uZW50LCBvciB0byBpbXBsZW1lbnQgYSBTdGFuZGFyZCBJbnRlcmZhY2UgZm9yIHdoaWNoIGFuCmltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluIHNvdXJjZSBjb2RlIGZvcm0uICBBCiJNYWpvciBDb21wb25lbnQiLCBpbiB0aGlzIGNvbnRleHQsIG1lYW5zIGEgbWFqb3IgZXNzZW50aWFsIGNvbXBvbmVudAooa2VybmVsLCB3aW5kb3cgc3lzdGVtLCBhbmQgc28gb24pIG9mIHRoZSBzcGVjaWZpYyBvcGVyYXRpbmcgc3lzdGVtCihpZiBhbnkpIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHdvcmsgcnVucywgb3IgYSBjb21waWxlciB1c2VkIHRvCnByb2R1Y2UgdGhlIHdvcmssIG9yIGFuIG9iamVjdCBjb2RlIGludGVycHJldGVyIHVzZWQgdG8gcnVuIGl0LgoKICBUaGUgIkNvcnJlc3BvbmRpbmcgU291cmNlIiBmb3IgYSB3b3JrIGluIG9iamVjdCBjb2RlIGZvcm0gbWVhbnMgYWxsCnRoZSBzb3VyY2UgY29kZSBuZWVkZWQgdG8gZ2VuZXJhdGUsIGluc3RhbGwsIGFuZCAoZm9yIGFuIGV4ZWN1dGFibGUKd29yaykgcnVuIHRoZSBvYmplY3QgY29kZSBhbmQgdG8gbW9kaWZ5IHRoZSB3b3JrLCBpbmNsdWRpbmcgc2NyaXB0cyB0bwpjb250cm9sIHRob3NlIGFjdGl2aXRpZXMuICBIb3dldmVyLCBpdCBkb2VzIG5vdCBpbmNsdWRlIHRoZSB3b3JrJ3MKU3lzdGVtIExpYnJhcmllcywgb3IgZ2VuZXJhbC1wdXJwb3NlIHRvb2xzIG9yIGdlbmVyYWxseSBhdmFpbGFibGUgZnJlZQpwcm9ncmFtcyB3aGljaCBhcmUgdXNlZCB1bm1vZGlmaWVkIGluIHBlcmZvcm1pbmcgdGhvc2UgYWN0aXZpdGllcyBidXQKd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSB3b3JrLiAgRm9yIGV4YW1wbGUsIENvcnJlc3BvbmRpbmcgU291cmNlCmluY2x1ZGVzIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBzb3VyY2UgZmlsZXMgZm9yCnRoZSB3b3JrLCBhbmQgdGhlIHNvdXJjZSBjb2RlIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljYWxseQpsaW5rZWQgc3VicHJvZ3JhbXMgdGhhdCB0aGUgd29yayBpcyBzcGVjaWZpY2FsbHkgZGVzaWduZWQgdG8gcmVxdWlyZSwKc3VjaCBhcyBieSBpbnRpbWF0ZSBkYXRhIGNvbW11bmljYXRpb24gb3IgY29udHJvbCBmbG93IGJldHdlZW4gdGhvc2UKc3VicHJvZ3JhbXMgYW5kIG90aGVyIHBhcnRzIG9mIHRoZSB3b3JrLgoKICBUaGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgbmVlZCBub3QgaW5jbHVkZSBhbnl0aGluZyB0aGF0IHVzZXJzCmNhbiByZWdlbmVyYXRlIGF1dG9tYXRpY2FsbHkgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgQ29ycmVzcG9uZGluZwpTb3VyY2UuCgogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYSB3b3JrIGluIHNvdXJjZSBjb2RlIGZvcm0gaXMgdGhhdApzYW1lIHdvcmsuCgogIDIuIEJhc2ljIFBlcm1pc3Npb25zLgoKICBBbGwgcmlnaHRzIGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlIGFyZSBncmFudGVkIGZvciB0aGUgdGVybSBvZgpjb3B5cmlnaHQgb24gdGhlIFByb2dyYW0sIGFuZCBhcmUgaXJyZXZvY2FibGUgcHJvdmlkZWQgdGhlIHN0YXRlZApjb25kaXRpb25zIGFyZSBtZXQuICBUaGlzIExpY2Vuc2UgZXhwbGljaXRseSBhZmZpcm1zIHlvdXIgdW5saW1pdGVkCnBlcm1pc3Npb24gdG8gcnVuIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0uICBUaGUgb3V0cHV0IGZyb20gcnVubmluZyBhCmNvdmVyZWQgd29yayBpcyBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZSBvbmx5IGlmIHRoZSBvdXRwdXQsIGdpdmVuIGl0cwpjb250ZW50LCBjb25zdGl0dXRlcyBhIGNvdmVyZWQgd29yay4gIFRoaXMgTGljZW5zZSBhY2tub3dsZWRnZXMgeW91cgpyaWdodHMgb2YgZmFpciB1c2Ugb3Igb3RoZXIgZXF1aXZhbGVudCwgYXMgcHJvdmlkZWQgYnkgY29weXJpZ2h0IGxhdy4KCiAgWW91IG1heSBtYWtlLCBydW4gYW5kIHByb3BhZ2F0ZSBjb3ZlcmVkIHdvcmtzIHRoYXQgeW91IGRvIG5vdApjb252ZXksIHdpdGhvdXQgY29uZGl0aW9ucyBzbyBsb25nIGFzIHlvdXIgbGljZW5zZSBvdGhlcndpc2UgcmVtYWlucwppbiBmb3JjZS4gIFlvdSBtYXkgY29udmV5IGNvdmVyZWQgd29ya3MgdG8gb3RoZXJzIGZvciB0aGUgc29sZSBwdXJwb3NlCm9mIGhhdmluZyB0aGVtIG1ha2UgbW9kaWZpY2F0aW9ucyBleGNsdXNpdmVseSBmb3IgeW91LCBvciBwcm92aWRlIHlvdQp3aXRoIGZhY2lsaXRpZXMgZm9yIHJ1bm5pbmcgdGhvc2Ugd29ya3MsIHByb3ZpZGVkIHRoYXQgeW91IGNvbXBseSB3aXRoCnRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UgaW4gY29udmV5aW5nIGFsbCBtYXRlcmlhbCBmb3Igd2hpY2ggeW91IGRvCm5vdCBjb250cm9sIGNvcHlyaWdodC4gIFRob3NlIHRodXMgbWFraW5nIG9yIHJ1bm5pbmcgdGhlIGNvdmVyZWQgd29ya3MKZm9yIHlvdSBtdXN0IGRvIHNvIGV4Y2x1c2l2ZWx5IG9uIHlvdXIgYmVoYWxmLCB1bmRlciB5b3VyIGRpcmVjdGlvbgphbmQgY29udHJvbCwgb24gdGVybXMgdGhhdCBwcm9oaWJpdCB0aGVtIGZyb20gbWFraW5nIGFueSBjb3BpZXMgb2YKeW91ciBjb3B5cmlnaHRlZCBtYXRlcmlhbCBvdXRzaWRlIHRoZWlyIHJlbGF0aW9uc2hpcCB3aXRoIHlvdS4KCiAgQ29udmV5aW5nIHVuZGVyIGFueSBvdGhlciBjaXJjdW1zdGFuY2VzIGlzIHBlcm1pdHRlZCBzb2xlbHkgdW5kZXIKdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGJlbG93LiAgU3VibGljZW5zaW5nIGlzIG5vdCBhbGxvd2VkOyBzZWN0aW9uIDEwCm1ha2VzIGl0IHVubmVjZXNzYXJ5LgoKICAzLiBQcm90ZWN0aW5nIFVzZXJzJyBMZWdhbCBSaWdodHMgRnJvbSBBbnRpLUNpcmN1bXZlbnRpb24gTGF3LgoKICBObyBjb3ZlcmVkIHdvcmsgc2hhbGwgYmUgZGVlbWVkIHBhcnQgb2YgYW4gZWZmZWN0aXZlIHRlY2hub2xvZ2ljYWwKbWVhc3VyZSB1bmRlciBhbnkgYXBwbGljYWJsZSBsYXcgZnVsZmlsbGluZyBvYmxpZ2F0aW9ucyB1bmRlciBhcnRpY2xlCjExIG9mIHRoZSBXSVBPIGNvcHlyaWdodCB0cmVhdHkgYWRvcHRlZCBvbiAyMCBEZWNlbWJlciAxOTk2LCBvcgpzaW1pbGFyIGxhd3MgcHJvaGliaXRpbmcgb3IgcmVzdHJpY3RpbmcgY2lyY3VtdmVudGlvbiBvZiBzdWNoCm1lYXN1cmVzLgoKICBXaGVuIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHlvdSB3YWl2ZSBhbnkgbGVnYWwgcG93ZXIgdG8gZm9yYmlkCmNpcmN1bXZlbnRpb24gb2YgdGVjaG5vbG9naWNhbCBtZWFzdXJlcyB0byB0aGUgZXh0ZW50IHN1Y2ggY2lyY3VtdmVudGlvbgppcyBlZmZlY3RlZCBieSBleGVyY2lzaW5nIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2Ugd2l0aCByZXNwZWN0IHRvCnRoZSBjb3ZlcmVkIHdvcmssIGFuZCB5b3UgZGlzY2xhaW0gYW55IGludGVudGlvbiB0byBsaW1pdCBvcGVyYXRpb24gb3IKbW9kaWZpY2F0aW9uIG9mIHRoZSB3b3JrIGFzIGEgbWVhbnMgb2YgZW5mb3JjaW5nLCBhZ2FpbnN0IHRoZSB3b3JrJ3MKdXNlcnMsIHlvdXIgb3IgdGhpcmQgcGFydGllcycgbGVnYWwgcmlnaHRzIHRvIGZvcmJpZCBjaXJjdW12ZW50aW9uIG9mCnRlY2hub2xvZ2ljYWwgbWVhc3VyZXMuCgogIDQuIENvbnZleWluZyBWZXJiYXRpbSBDb3BpZXMuCgogIFlvdSBtYXkgY29udmV5IHZlcmJhdGltIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSdzIHNvdXJjZSBjb2RlIGFzIHlvdQpyZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdSBjb25zcGljdW91c2x5IGFuZAphcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2U7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIHN0YXRpbmcgdGhhdCB0aGlzIExpY2Vuc2UgYW5kIGFueQpub24tcGVybWlzc2l2ZSB0ZXJtcyBhZGRlZCBpbiBhY2NvcmQgd2l0aCBzZWN0aW9uIDcgYXBwbHkgdG8gdGhlIGNvZGU7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIG9mIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsgYW5kIGdpdmUgYWxsCnJlY2lwaWVudHMgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgoKICBZb3UgbWF5IGNoYXJnZSBhbnkgcHJpY2Ugb3Igbm8gcHJpY2UgZm9yIGVhY2ggY29weSB0aGF0IHlvdSBjb252ZXksCmFuZCB5b3UgbWF5IG9mZmVyIHN1cHBvcnQgb3Igd2FycmFudHkgcHJvdGVjdGlvbiBmb3IgYSBmZWUuCgogIDUuIENvbnZleWluZyBNb2RpZmllZCBTb3VyY2UgVmVyc2lvbnMuCgogIFlvdSBtYXkgY29udmV5IGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSwgb3IgdGhlIG1vZGlmaWNhdGlvbnMgdG8KcHJvZHVjZSBpdCBmcm9tIHRoZSBQcm9ncmFtLCBpbiB0aGUgZm9ybSBvZiBzb3VyY2UgY29kZSB1bmRlciB0aGUKdGVybXMgb2Ygc2VjdGlvbiA0LCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgeW91IG1vZGlmaWVkCiAgICBpdCwgYW5kIGdpdmluZyBhIHJlbGV2YW50IGRhdGUuCgogICAgYikgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgaXQgaXMKICAgIHJlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZSBhbmQgYW55IGNvbmRpdGlvbnMgYWRkZWQgdW5kZXIgc2VjdGlvbgogICAgNy4gIFRoaXMgcmVxdWlyZW1lbnQgbW9kaWZpZXMgdGhlIHJlcXVpcmVtZW50IGluIHNlY3Rpb24gNCB0bwogICAgImtlZXAgaW50YWN0IGFsbCBub3RpY2VzIi4KCiAgICBjKSBZb3UgbXVzdCBsaWNlbnNlIHRoZSBlbnRpcmUgd29yaywgYXMgYSB3aG9sZSwgdW5kZXIgdGhpcwogICAgTGljZW5zZSB0byBhbnlvbmUgd2hvIGNvbWVzIGludG8gcG9zc2Vzc2lvbiBvZiBhIGNvcHkuICBUaGlzCiAgICBMaWNlbnNlIHdpbGwgdGhlcmVmb3JlIGFwcGx5LCBhbG9uZyB3aXRoIGFueSBhcHBsaWNhYmxlIHNlY3Rpb24gNwogICAgYWRkaXRpb25hbCB0ZXJtcywgdG8gdGhlIHdob2xlIG9mIHRoZSB3b3JrLCBhbmQgYWxsIGl0cyBwYXJ0cywKICAgIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgYXJlIHBhY2thZ2VkLiAgVGhpcyBMaWNlbnNlIGdpdmVzIG5vCiAgICBwZXJtaXNzaW9uIHRvIGxpY2Vuc2UgdGhlIHdvcmsgaW4gYW55IG90aGVyIHdheSwgYnV0IGl0IGRvZXMgbm90CiAgICBpbnZhbGlkYXRlIHN1Y2ggcGVybWlzc2lvbiBpZiB5b3UgaGF2ZSBzZXBhcmF0ZWx5IHJlY2VpdmVkIGl0LgoKICAgIGQpIElmIHRoZSB3b3JrIGhhcyBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZXMsIGVhY2ggbXVzdCBkaXNwbGF5CiAgICBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzOyBob3dldmVyLCBpZiB0aGUgUHJvZ3JhbSBoYXMgaW50ZXJhY3RpdmUKICAgIGludGVyZmFjZXMgdGhhdCBkbyBub3QgZGlzcGxheSBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzLCB5b3VyCiAgICB3b3JrIG5lZWQgbm90IG1ha2UgdGhlbSBkbyBzby4KCiAgQSBjb21waWxhdGlvbiBvZiBhIGNvdmVyZWQgd29yayB3aXRoIG90aGVyIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudAp3b3Jrcywgd2hpY2ggYXJlIG5vdCBieSB0aGVpciBuYXR1cmUgZXh0ZW5zaW9ucyBvZiB0aGUgY292ZXJlZCB3b3JrLAphbmQgd2hpY2ggYXJlIG5vdCBjb21iaW5lZCB3aXRoIGl0IHN1Y2ggYXMgdG8gZm9ybSBhIGxhcmdlciBwcm9ncmFtLAppbiBvciBvbiBhIHZvbHVtZSBvZiBhIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2FsbGVkIGFuCiJhZ2dyZWdhdGUiIGlmIHRoZSBjb21waWxhdGlvbiBhbmQgaXRzIHJlc3VsdGluZyBjb3B5cmlnaHQgYXJlIG5vdAp1c2VkIHRvIGxpbWl0IHRoZSBhY2Nlc3Mgb3IgbGVnYWwgcmlnaHRzIG9mIHRoZSBjb21waWxhdGlvbidzIHVzZXJzCmJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtzIHBlcm1pdC4gIEluY2x1c2lvbiBvZiBhIGNvdmVyZWQgd29yawppbiBhbiBhZ2dyZWdhdGUgZG9lcyBub3QgY2F1c2UgdGhpcyBMaWNlbnNlIHRvIGFwcGx5IHRvIHRoZSBvdGhlcgpwYXJ0cyBvZiB0aGUgYWdncmVnYXRlLgoKICA2LiBDb252ZXlpbmcgTm9uLVNvdXJjZSBGb3Jtcy4KCiAgWW91IG1heSBjb252ZXkgYSBjb3ZlcmVkIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciB0aGUgdGVybXMKb2Ygc2VjdGlvbnMgNCBhbmQgNSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBjb252ZXkgdGhlCm1hY2hpbmUtcmVhZGFibGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwKaW4gb25lIG9mIHRoZXNlIHdheXM6CgogICAgYSkgQ29udmV5IHRoZSBvYmplY3QgY29kZSBpbiwgb3IgZW1ib2RpZWQgaW4sIGEgcGh5c2ljYWwgcHJvZHVjdAogICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGZpeGVkIG9uIGEgZHVyYWJsZSBwaHlzaWNhbCBtZWRpdW0KICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLgoKICAgIGIpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHByb2R1Y3QKICAgIChpbmNsdWRpbmcgYSBwaHlzaWNhbCBkaXN0cmlidXRpb24gbWVkaXVtKSwgYWNjb21wYW5pZWQgYnkgYQogICAgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzIGFuZCB2YWxpZCBmb3IgYXMKICAgIGxvbmcgYXMgeW91IG9mZmVyIHNwYXJlIHBhcnRzIG9yIGN1c3RvbWVyIHN1cHBvcnQgZm9yIHRoYXQgcHJvZHVjdAogICAgbW9kZWwsIHRvIGdpdmUgYW55b25lIHdobyBwb3NzZXNzZXMgdGhlIG9iamVjdCBjb2RlIGVpdGhlciAoMSkgYQogICAgY29weSBvZiB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9yIGFsbCB0aGUgc29mdHdhcmUgaW4gdGhlCiAgICBwcm9kdWN0IHRoYXQgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIG9uIGEgZHVyYWJsZSBwaHlzaWNhbAogICAgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLCBmb3IgYSBwcmljZSBubwogICAgbW9yZSB0aGFuIHlvdXIgcmVhc29uYWJsZSBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyB0aGlzCiAgICBjb252ZXlpbmcgb2Ygc291cmNlLCBvciAoMikgYWNjZXNzIHRvIGNvcHkgdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmcm9tIGEgbmV0d29yayBzZXJ2ZXIgYXQgbm8gY2hhcmdlLgoKICAgIGMpIENvbnZleSBpbmRpdmlkdWFsIGNvcGllcyBvZiB0aGUgb2JqZWN0IGNvZGUgd2l0aCBhIGNvcHkgb2YgdGhlCiAgICB3cml0dGVuIG9mZmVyIHRvIHByb3ZpZGUgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhpcwogICAgYWx0ZXJuYXRpdmUgaXMgYWxsb3dlZCBvbmx5IG9jY2FzaW9uYWxseSBhbmQgbm9uY29tbWVyY2lhbGx5LCBhbmQKICAgIG9ubHkgaWYgeW91IHJlY2VpdmVkIHRoZSBvYmplY3QgY29kZSB3aXRoIHN1Y2ggYW4gb2ZmZXIsIGluIGFjY29yZAogICAgd2l0aCBzdWJzZWN0aW9uIDZiLgoKICAgIGQpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIGZyb20gYSBkZXNpZ25hdGVkCiAgICBwbGFjZSAoZ3JhdGlzIG9yIGZvciBhIGNoYXJnZSksIGFuZCBvZmZlciBlcXVpdmFsZW50IGFjY2VzcyB0byB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGluIHRoZSBzYW1lIHdheSB0aHJvdWdoIHRoZSBzYW1lIHBsYWNlIGF0IG5vCiAgICBmdXJ0aGVyIGNoYXJnZS4gIFlvdSBuZWVkIG5vdCByZXF1aXJlIHJlY2lwaWVudHMgdG8gY29weSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLiAgSWYgdGhlIHBsYWNlIHRvCiAgICBjb3B5IHRoZSBvYmplY3QgY29kZSBpcyBhIG5ldHdvcmsgc2VydmVyLCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UKICAgIG1heSBiZSBvbiBhIGRpZmZlcmVudCBzZXJ2ZXIgKG9wZXJhdGVkIGJ5IHlvdSBvciBhIHRoaXJkIHBhcnR5KQogICAgdGhhdCBzdXBwb3J0cyBlcXVpdmFsZW50IGNvcHlpbmcgZmFjaWxpdGllcywgcHJvdmlkZWQgeW91IG1haW50YWluCiAgICBjbGVhciBkaXJlY3Rpb25zIG5leHQgdG8gdGhlIG9iamVjdCBjb2RlIHNheWluZyB3aGVyZSB0byBmaW5kIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBSZWdhcmRsZXNzIG9mIHdoYXQgc2VydmVyIGhvc3RzIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UsIHlvdSByZW1haW4gb2JsaWdhdGVkIHRvIGVuc3VyZSB0aGF0IGl0IGlzCiAgICBhdmFpbGFibGUgZm9yIGFzIGxvbmcgYXMgbmVlZGVkIHRvIHNhdGlzZnkgdGhlc2UgcmVxdWlyZW1lbnRzLgoKICAgIGUpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgdXNpbmcgcGVlci10by1wZWVyIHRyYW5zbWlzc2lvbiwgcHJvdmlkZWQKICAgIHlvdSBpbmZvcm0gb3RoZXIgcGVlcnMgd2hlcmUgdGhlIG9iamVjdCBjb2RlIGFuZCBDb3JyZXNwb25kaW5nCiAgICBTb3VyY2Ugb2YgdGhlIHdvcmsgYXJlIGJlaW5nIG9mZmVyZWQgdG8gdGhlIGdlbmVyYWwgcHVibGljIGF0IG5vCiAgICBjaGFyZ2UgdW5kZXIgc3Vic2VjdGlvbiA2ZC4KCiAgQSBzZXBhcmFibGUgcG9ydGlvbiBvZiB0aGUgb2JqZWN0IGNvZGUsIHdob3NlIHNvdXJjZSBjb2RlIGlzIGV4Y2x1ZGVkCmZyb20gdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIGFzIGEgU3lzdGVtIExpYnJhcnksIG5lZWQgbm90IGJlCmluY2x1ZGVkIGluIGNvbnZleWluZyB0aGUgb2JqZWN0IGNvZGUgd29yay4KCiAgQSAiVXNlciBQcm9kdWN0IiBpcyBlaXRoZXIgKDEpIGEgImNvbnN1bWVyIHByb2R1Y3QiLCB3aGljaCBtZWFucyBhbnkKdGFuZ2libGUgcGVyc29uYWwgcHJvcGVydHkgd2hpY2ggaXMgbm9ybWFsbHkgdXNlZCBmb3IgcGVyc29uYWwsIGZhbWlseSwKb3IgaG91c2Vob2xkIHB1cnBvc2VzLCBvciAoMikgYW55dGhpbmcgZGVzaWduZWQgb3Igc29sZCBmb3IgaW5jb3Jwb3JhdGlvbgppbnRvIGEgZHdlbGxpbmcuICBJbiBkZXRlcm1pbmluZyB3aGV0aGVyIGEgcHJvZHVjdCBpcyBhIGNvbnN1bWVyIHByb2R1Y3QsCmRvdWJ0ZnVsIGNhc2VzIHNoYWxsIGJlIHJlc29sdmVkIGluIGZhdm9yIG9mIGNvdmVyYWdlLiAgRm9yIGEgcGFydGljdWxhcgpwcm9kdWN0IHJlY2VpdmVkIGJ5IGEgcGFydGljdWxhciB1c2VyLCAibm9ybWFsbHkgdXNlZCIgcmVmZXJzIHRvIGEKdHlwaWNhbCBvciBjb21tb24gdXNlIG9mIHRoYXQgY2xhc3Mgb2YgcHJvZHVjdCwgcmVnYXJkbGVzcyBvZiB0aGUgc3RhdHVzCm9mIHRoZSBwYXJ0aWN1bGFyIHVzZXIgb3Igb2YgdGhlIHdheSBpbiB3aGljaCB0aGUgcGFydGljdWxhciB1c2VyCmFjdHVhbGx5IHVzZXMsIG9yIGV4cGVjdHMgb3IgaXMgZXhwZWN0ZWQgdG8gdXNlLCB0aGUgcHJvZHVjdC4gIEEgcHJvZHVjdAppcyBhIGNvbnN1bWVyIHByb2R1Y3QgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBwcm9kdWN0IGhhcyBzdWJzdGFudGlhbApjb21tZXJjaWFsLCBpbmR1c3RyaWFsIG9yIG5vbi1jb25zdW1lciB1c2VzLCB1bmxlc3Mgc3VjaCB1c2VzIHJlcHJlc2VudAp0aGUgb25seSBzaWduaWZpY2FudCBtb2RlIG9mIHVzZSBvZiB0aGUgcHJvZHVjdC4KCiAgIkluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiIgZm9yIGEgVXNlciBQcm9kdWN0IG1lYW5zIGFueSBtZXRob2RzLApwcm9jZWR1cmVzLCBhdXRob3JpemF0aW9uIGtleXMsIG9yIG90aGVyIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIGluc3RhbGwKYW5kIGV4ZWN1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgYSBjb3ZlcmVkIHdvcmsgaW4gdGhhdCBVc2VyIFByb2R1Y3QgZnJvbQphIG1vZGlmaWVkIHZlcnNpb24gb2YgaXRzIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhlIGluZm9ybWF0aW9uIG11c3QKc3VmZmljZSB0byBlbnN1cmUgdGhhdCB0aGUgY29udGludWVkIGZ1bmN0aW9uaW5nIG9mIHRoZSBtb2RpZmllZCBvYmplY3QKY29kZSBpcyBpbiBubyBjYXNlIHByZXZlbnRlZCBvciBpbnRlcmZlcmVkIHdpdGggc29sZWx5IGJlY2F1c2UKbW9kaWZpY2F0aW9uIGhhcyBiZWVuIG1hZGUuCgogIElmIHlvdSBjb252ZXkgYW4gb2JqZWN0IGNvZGUgd29yayB1bmRlciB0aGlzIHNlY3Rpb24gaW4sIG9yIHdpdGgsIG9yCnNwZWNpZmljYWxseSBmb3IgdXNlIGluLCBhIFVzZXIgUHJvZHVjdCwgYW5kIHRoZSBjb252ZXlpbmcgb2NjdXJzIGFzCnBhcnQgb2YgYSB0cmFuc2FjdGlvbiBpbiB3aGljaCB0aGUgcmlnaHQgb2YgcG9zc2Vzc2lvbiBhbmQgdXNlIG9mIHRoZQpVc2VyIFByb2R1Y3QgaXMgdHJhbnNmZXJyZWQgdG8gdGhlIHJlY2lwaWVudCBpbiBwZXJwZXR1aXR5IG9yIGZvciBhCmZpeGVkIHRlcm0gKHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyYWN0ZXJpemVkKSwgdGhlCkNvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkIHVuZGVyIHRoaXMgc2VjdGlvbiBtdXN0IGJlIGFjY29tcGFuaWVkCmJ5IHRoZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24uICBCdXQgdGhpcyByZXF1aXJlbWVudCBkb2VzIG5vdCBhcHBseQppZiBuZWl0aGVyIHlvdSBub3IgYW55IHRoaXJkIHBhcnR5IHJldGFpbnMgdGhlIGFiaWxpdHkgdG8gaW5zdGFsbAptb2RpZmllZCBvYmplY3QgY29kZSBvbiB0aGUgVXNlciBQcm9kdWN0IChmb3IgZXhhbXBsZSwgdGhlIHdvcmsgaGFzCmJlZW4gaW5zdGFsbGVkIGluIFJPTSkuCgogIFRoZSByZXF1aXJlbWVudCB0byBwcm92aWRlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiBkb2VzIG5vdCBpbmNsdWRlIGEKcmVxdWlyZW1lbnQgdG8gY29udGludWUgdG8gcHJvdmlkZSBzdXBwb3J0IHNlcnZpY2UsIHdhcnJhbnR5LCBvciB1cGRhdGVzCmZvciBhIHdvcmsgdGhhdCBoYXMgYmVlbiBtb2RpZmllZCBvciBpbnN0YWxsZWQgYnkgdGhlIHJlY2lwaWVudCwgb3IgZm9yCnRoZSBVc2VyIFByb2R1Y3QgaW4gd2hpY2ggaXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5zdGFsbGVkLiAgQWNjZXNzIHRvIGEKbmV0d29yayBtYXkgYmUgZGVuaWVkIHdoZW4gdGhlIG1vZGlmaWNhdGlvbiBpdHNlbGYgbWF0ZXJpYWxseSBhbmQKYWR2ZXJzZWx5IGFmZmVjdHMgdGhlIG9wZXJhdGlvbiBvZiB0aGUgbmV0d29yayBvciB2aW9sYXRlcyB0aGUgcnVsZXMgYW5kCnByb3RvY29scyBmb3IgY29tbXVuaWNhdGlvbiBhY3Jvc3MgdGhlIG5ldHdvcmsuCgogIENvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkLCBhbmQgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIHByb3ZpZGVkLAppbiBhY2NvcmQgd2l0aCB0aGlzIHNlY3Rpb24gbXVzdCBiZSBpbiBhIGZvcm1hdCB0aGF0IGlzIHB1YmxpY2x5CmRvY3VtZW50ZWQgKGFuZCB3aXRoIGFuIGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluCnNvdXJjZSBjb2RlIGZvcm0pLCBhbmQgbXVzdCByZXF1aXJlIG5vIHNwZWNpYWwgcGFzc3dvcmQgb3Iga2V5IGZvcgp1bnBhY2tpbmcsIHJlYWRpbmcgb3IgY29weWluZy4KCiAgNy4gQWRkaXRpb25hbCBUZXJtcy4KCiAgIkFkZGl0aW9uYWwgcGVybWlzc2lvbnMiIGFyZSB0ZXJtcyB0aGF0IHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMKTGljZW5zZSBieSBtYWtpbmcgZXhjZXB0aW9ucyBmcm9tIG9uZSBvciBtb3JlIG9mIGl0cyBjb25kaXRpb25zLgpBZGRpdGlvbmFsIHBlcm1pc3Npb25zIHRoYXQgYXJlIGFwcGxpY2FibGUgdG8gdGhlIGVudGlyZSBQcm9ncmFtIHNoYWxsCmJlIHRyZWF0ZWQgYXMgdGhvdWdoIHRoZXkgd2VyZSBpbmNsdWRlZCBpbiB0aGlzIExpY2Vuc2UsIHRvIHRoZSBleHRlbnQKdGhhdCB0aGV5IGFyZSB2YWxpZCB1bmRlciBhcHBsaWNhYmxlIGxhdy4gIElmIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMKYXBwbHkgb25seSB0byBwYXJ0IG9mIHRoZSBQcm9ncmFtLCB0aGF0IHBhcnQgbWF5IGJlIHVzZWQgc2VwYXJhdGVseQp1bmRlciB0aG9zZSBwZXJtaXNzaW9ucywgYnV0IHRoZSBlbnRpcmUgUHJvZ3JhbSByZW1haW5zIGdvdmVybmVkIGJ5CnRoaXMgTGljZW5zZSB3aXRob3V0IHJlZ2FyZCB0byB0aGUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucy4KCiAgV2hlbiB5b3UgY29udmV5IGEgY29weSBvZiBhIGNvdmVyZWQgd29yaywgeW91IG1heSBhdCB5b3VyIG9wdGlvbgpyZW1vdmUgYW55IGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgZnJvbSB0aGF0IGNvcHksIG9yIGZyb20gYW55IHBhcnQgb2YKaXQuICAoQWRkaXRpb25hbCBwZXJtaXNzaW9ucyBtYXkgYmUgd3JpdHRlbiB0byByZXF1aXJlIHRoZWlyIG93bgpyZW1vdmFsIGluIGNlcnRhaW4gY2FzZXMgd2hlbiB5b3UgbW9kaWZ5IHRoZSB3b3JrLikgIFlvdSBtYXkgcGxhY2UKYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBvbiBtYXRlcmlhbCwgYWRkZWQgYnkgeW91IHRvIGEgY292ZXJlZCB3b3JrLApmb3Igd2hpY2ggeW91IGhhdmUgb3IgY2FuIGdpdmUgYXBwcm9wcmlhdGUgY29weXJpZ2h0IHBlcm1pc3Npb24uCgogIE5vdHdpdGhzdGFuZGluZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGljZW5zZSwgZm9yIG1hdGVyaWFsIHlvdQphZGQgdG8gYSBjb3ZlcmVkIHdvcmssIHlvdSBtYXkgKGlmIGF1dGhvcml6ZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXJzIG9mCnRoYXQgbWF0ZXJpYWwpIHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSB3aXRoIHRlcm1zOgoKICAgIGEpIERpc2NsYWltaW5nIHdhcnJhbnR5IG9yIGxpbWl0aW5nIGxpYWJpbGl0eSBkaWZmZXJlbnRseSBmcm9tIHRoZQogICAgdGVybXMgb2Ygc2VjdGlvbnMgMTUgYW5kIDE2IG9mIHRoaXMgTGljZW5zZTsgb3IKCiAgICBiKSBSZXF1aXJpbmcgcHJlc2VydmF0aW9uIG9mIHNwZWNpZmllZCByZWFzb25hYmxlIGxlZ2FsIG5vdGljZXMgb3IKICAgIGF1dGhvciBhdHRyaWJ1dGlvbnMgaW4gdGhhdCBtYXRlcmlhbCBvciBpbiB0aGUgQXBwcm9wcmlhdGUgTGVnYWwKICAgIE5vdGljZXMgZGlzcGxheWVkIGJ5IHdvcmtzIGNvbnRhaW5pbmcgaXQ7IG9yCgogICAgYykgUHJvaGliaXRpbmcgbWlzcmVwcmVzZW50YXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGF0IG1hdGVyaWFsLCBvcgogICAgcmVxdWlyaW5nIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMgb2Ygc3VjaCBtYXRlcmlhbCBiZSBtYXJrZWQgaW4KICAgIHJlYXNvbmFibGUgd2F5cyBhcyBkaWZmZXJlbnQgZnJvbSB0aGUgb3JpZ2luYWwgdmVyc2lvbjsgb3IKCiAgICBkKSBMaW1pdGluZyB0aGUgdXNlIGZvciBwdWJsaWNpdHkgcHVycG9zZXMgb2YgbmFtZXMgb2YgbGljZW5zb3JzIG9yCiAgICBhdXRob3JzIG9mIHRoZSBtYXRlcmlhbDsgb3IKCiAgICBlKSBEZWNsaW5pbmcgdG8gZ3JhbnQgcmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgZm9yIHVzZSBvZiBzb21lCiAgICB0cmFkZSBuYW1lcywgdHJhZGVtYXJrcywgb3Igc2VydmljZSBtYXJrczsgb3IKCiAgICBmKSBSZXF1aXJpbmcgaW5kZW1uaWZpY2F0aW9uIG9mIGxpY2Vuc29ycyBhbmQgYXV0aG9ycyBvZiB0aGF0CiAgICBtYXRlcmlhbCBieSBhbnlvbmUgd2hvIGNvbnZleXMgdGhlIG1hdGVyaWFsIChvciBtb2RpZmllZCB2ZXJzaW9ucyBvZgogICAgaXQpIHdpdGggY29udHJhY3R1YWwgYXNzdW1wdGlvbnMgb2YgbGlhYmlsaXR5IHRvIHRoZSByZWNpcGllbnQsIGZvcgogICAgYW55IGxpYWJpbGl0eSB0aGF0IHRoZXNlIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIGRpcmVjdGx5IGltcG9zZSBvbgogICAgdGhvc2UgbGljZW5zb3JzIGFuZCBhdXRob3JzLgoKICBBbGwgb3RoZXIgbm9uLXBlcm1pc3NpdmUgYWRkaXRpb25hbCB0ZXJtcyBhcmUgY29uc2lkZXJlZCAiZnVydGhlcgpyZXN0cmljdGlvbnMiIHdpdGhpbiB0aGUgbWVhbmluZyBvZiBzZWN0aW9uIDEwLiAgSWYgdGhlIFByb2dyYW0gYXMgeW91CnJlY2VpdmVkIGl0LCBvciBhbnkgcGFydCBvZiBpdCwgY29udGFpbnMgYSBub3RpY2Ugc3RhdGluZyB0aGF0IGl0IGlzCmdvdmVybmVkIGJ5IHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIGEgdGVybSB0aGF0IGlzIGEgZnVydGhlcgpyZXN0cmljdGlvbiwgeW91IG1heSByZW1vdmUgdGhhdCB0ZXJtLiAgSWYgYSBsaWNlbnNlIGRvY3VtZW50IGNvbnRhaW5zCmEgZnVydGhlciByZXN0cmljdGlvbiBidXQgcGVybWl0cyByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcgdW5kZXIgdGhpcwpMaWNlbnNlLCB5b3UgbWF5IGFkZCB0byBhIGNvdmVyZWQgd29yayBtYXRlcmlhbCBnb3Zlcm5lZCBieSB0aGUgdGVybXMKb2YgdGhhdCBsaWNlbnNlIGRvY3VtZW50LCBwcm92aWRlZCB0aGF0IHRoZSBmdXJ0aGVyIHJlc3RyaWN0aW9uIGRvZXMKbm90IHN1cnZpdmUgc3VjaCByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcuCgogIElmIHlvdSBhZGQgdGVybXMgdG8gYSBjb3ZlcmVkIHdvcmsgaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uLCB5b3UKbXVzdCBwbGFjZSwgaW4gdGhlIHJlbGV2YW50IHNvdXJjZSBmaWxlcywgYSBzdGF0ZW1lbnQgb2YgdGhlCmFkZGl0aW9uYWwgdGVybXMgdGhhdCBhcHBseSB0byB0aG9zZSBmaWxlcywgb3IgYSBub3RpY2UgaW5kaWNhdGluZwp3aGVyZSB0byBmaW5kIHRoZSBhcHBsaWNhYmxlIHRlcm1zLgoKICBBZGRpdGlvbmFsIHRlcm1zLCBwZXJtaXNzaXZlIG9yIG5vbi1wZXJtaXNzaXZlLCBtYXkgYmUgc3RhdGVkIGluIHRoZQpmb3JtIG9mIGEgc2VwYXJhdGVseSB3cml0dGVuIGxpY2Vuc2UsIG9yIHN0YXRlZCBhcyBleGNlcHRpb25zOwp0aGUgYWJvdmUgcmVxdWlyZW1lbnRzIGFwcGx5IGVpdGhlciB3YXkuCgogIDguIFRlcm1pbmF0aW9uLgoKICBZb3UgbWF5IG5vdCBwcm9wYWdhdGUgb3IgbW9kaWZ5IGEgY292ZXJlZCB3b3JrIGV4Y2VwdCBhcyBleHByZXNzbHkKcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQgb3RoZXJ3aXNlIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgaXQgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIKdGhpcyBMaWNlbnNlIChpbmNsdWRpbmcgYW55IHBhdGVudCBsaWNlbnNlcyBncmFudGVkIHVuZGVyIHRoZSB0aGlyZApwYXJhZ3JhcGggb2Ygc2VjdGlvbiAxMSkuCgogIEhvd2V2ZXIsIGlmIHlvdSBjZWFzZSBhbGwgdmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgdGhlbiB5b3VyCmxpY2Vuc2UgZnJvbSBhIHBhcnRpY3VsYXIgY29weXJpZ2h0IGhvbGRlciBpcyByZWluc3RhdGVkIChhKQpwcm92aXNpb25hbGx5LCB1bmxlc3MgYW5kIHVudGlsIHRoZSBjb3B5cmlnaHQgaG9sZGVyIGV4cGxpY2l0bHkgYW5kCmZpbmFsbHkgdGVybWluYXRlcyB5b3VyIGxpY2Vuc2UsIGFuZCAoYikgcGVybWFuZW50bHksIGlmIHRoZSBjb3B5cmlnaHQKaG9sZGVyIGZhaWxzIHRvIG5vdGlmeSB5b3Ugb2YgdGhlIHZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMKcHJpb3IgdG8gNjAgZGF5cyBhZnRlciB0aGUgY2Vzc2F0aW9uLgoKICBNb3Jlb3ZlciwgeW91ciBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMKcmVpbnN0YXRlZCBwZXJtYW5lbnRseSBpZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3RpZmllcyB5b3Ugb2YgdGhlCnZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMsIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgeW91IGhhdmUKcmVjZWl2ZWQgbm90aWNlIG9mIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UgKGZvciBhbnkgd29yaykgZnJvbSB0aGF0CmNvcHlyaWdodCBob2xkZXIsIGFuZCB5b3UgY3VyZSB0aGUgdmlvbGF0aW9uIHByaW9yIHRvIDMwIGRheXMgYWZ0ZXIKeW91ciByZWNlaXB0IG9mIHRoZSBub3RpY2UuCgogIFRlcm1pbmF0aW9uIG9mIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgc2VjdGlvbiBkb2VzIG5vdCB0ZXJtaW5hdGUgdGhlCmxpY2Vuc2VzIG9mIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2UuICBJZiB5b3VyIHJpZ2h0cyBoYXZlIGJlZW4gdGVybWluYXRlZCBhbmQgbm90IHBlcm1hbmVudGx5CnJlaW5zdGF0ZWQsIHlvdSBkbyBub3QgcXVhbGlmeSB0byByZWNlaXZlIG5ldyBsaWNlbnNlcyBmb3IgdGhlIHNhbWUKbWF0ZXJpYWwgdW5kZXIgc2VjdGlvbiAxMC4KCiAgOS4gQWNjZXB0YW5jZSBOb3QgUmVxdWlyZWQgZm9yIEhhdmluZyBDb3BpZXMuCgogIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UgaW4gb3JkZXIgdG8gcmVjZWl2ZSBvcgpydW4gYSBjb3B5IG9mIHRoZSBQcm9ncmFtLiAgQW5jaWxsYXJ5IHByb3BhZ2F0aW9uIG9mIGEgY292ZXJlZCB3b3JrCm9jY3VycmluZyBzb2xlbHkgYXMgYSBjb25zZXF1ZW5jZSBvZiB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uCnRvIHJlY2VpdmUgYSBjb3B5IGxpa2V3aXNlIGRvZXMgbm90IHJlcXVpcmUgYWNjZXB0YW5jZS4gIEhvd2V2ZXIsCm5vdGhpbmcgb3RoZXIgdGhhbiB0aGlzIExpY2Vuc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgYW55IGNvdmVyZWQgd29yay4gIFRoZXNlIGFjdGlvbnMgaW5mcmluZ2UgY29weXJpZ2h0IGlmIHlvdSBkbwpub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkgbW9kaWZ5aW5nIG9yIHByb3BhZ2F0aW5nIGEKY292ZXJlZCB3b3JrLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzby4KCiAgMTAuIEF1dG9tYXRpYyBMaWNlbnNpbmcgb2YgRG93bnN0cmVhbSBSZWNpcGllbnRzLgoKICBFYWNoIHRpbWUgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5CnJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZSBvcmlnaW5hbCBsaWNlbnNvcnMsIHRvIHJ1biwgbW9kaWZ5IGFuZApwcm9wYWdhdGUgdGhhdCB3b3JrLCBzdWJqZWN0IHRvIHRoaXMgTGljZW5zZS4gIFlvdSBhcmUgbm90IHJlc3BvbnNpYmxlCmZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHdpdGggdGhpcyBMaWNlbnNlLgoKICBBbiAiZW50aXR5IHRyYW5zYWN0aW9uIiBpcyBhIHRyYW5zYWN0aW9uIHRyYW5zZmVycmluZyBjb250cm9sIG9mIGFuCm9yZ2FuaXphdGlvbiwgb3Igc3Vic3RhbnRpYWxseSBhbGwgYXNzZXRzIG9mIG9uZSwgb3Igc3ViZGl2aWRpbmcgYW4Kb3JnYW5pemF0aW9uLCBvciBtZXJnaW5nIG9yZ2FuaXphdGlvbnMuICBJZiBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQKd29yayByZXN1bHRzIGZyb20gYW4gZW50aXR5IHRyYW5zYWN0aW9uLCBlYWNoIHBhcnR5IHRvIHRoYXQKdHJhbnNhY3Rpb24gd2hvIHJlY2VpdmVzIGEgY29weSBvZiB0aGUgd29yayBhbHNvIHJlY2VpdmVzIHdoYXRldmVyCmxpY2Vuc2VzIHRvIHRoZSB3b3JrIHRoZSBwYXJ0eSdzIHByZWRlY2Vzc29yIGluIGludGVyZXN0IGhhZCBvciBjb3VsZApnaXZlIHVuZGVyIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGgsIHBsdXMgYSByaWdodCB0byBwb3NzZXNzaW9uIG9mIHRoZQpDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBmcm9tIHRoZSBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCwgaWYKdGhlIHByZWRlY2Vzc29yIGhhcyBpdCBvciBjYW4gZ2V0IGl0IHdpdGggcmVhc29uYWJsZSBlZmZvcnRzLgoKICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25zIG9uIHRoZSBleGVyY2lzZSBvZiB0aGUKcmlnaHRzIGdyYW50ZWQgb3IgYWZmaXJtZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgRm9yIGV4YW1wbGUsIHlvdSBtYXkKbm90IGltcG9zZSBhIGxpY2Vuc2UgZmVlLCByb3lhbHR5LCBvciBvdGhlciBjaGFyZ2UgZm9yIGV4ZXJjaXNlIG9mCnJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIHlvdSBtYXkgbm90IGluaXRpYXRlIGxpdGlnYXRpb24KKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQKYW55IHBhdGVudCBjbGFpbSBpcyBpbmZyaW5nZWQgYnkgbWFraW5nLCB1c2luZywgc2VsbGluZywgb2ZmZXJpbmcgZm9yCnNhbGUsIG9yIGltcG9ydGluZyB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbiBvZiBpdC4KCiAgMTEuIFBhdGVudHMuCgogIEEgImNvbnRyaWJ1dG9yIiBpcyBhIGNvcHlyaWdodCBob2xkZXIgd2hvIGF1dGhvcml6ZXMgdXNlIHVuZGVyIHRoaXMKTGljZW5zZSBvZiB0aGUgUHJvZ3JhbSBvciBhIHdvcmsgb24gd2hpY2ggdGhlIFByb2dyYW0gaXMgYmFzZWQuICBUaGUKd29yayB0aHVzIGxpY2Vuc2VkIGlzIGNhbGxlZCB0aGUgY29udHJpYnV0b3IncyAiY29udHJpYnV0b3IgdmVyc2lvbiIuCgogIEEgY29udHJpYnV0b3IncyAiZXNzZW50aWFsIHBhdGVudCBjbGFpbXMiIGFyZSBhbGwgcGF0ZW50IGNsYWltcwpvd25lZCBvciBjb250cm9sbGVkIGJ5IHRoZSBjb250cmlidXRvciwgd2hldGhlciBhbHJlYWR5IGFjcXVpcmVkIG9yCmhlcmVhZnRlciBhY3F1aXJlZCwgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgYnkgc29tZSBtYW5uZXIsIHBlcm1pdHRlZApieSB0aGlzIExpY2Vuc2UsIG9mIG1ha2luZywgdXNpbmcsIG9yIHNlbGxpbmcgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24sCmJ1dCBkbyBub3QgaW5jbHVkZSBjbGFpbXMgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgb25seSBhcyBhCmNvbnNlcXVlbmNlIG9mIGZ1cnRoZXIgbW9kaWZpY2F0aW9uIG9mIHRoZSBjb250cmlidXRvciB2ZXJzaW9uLiAgRm9yCnB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgImNvbnRyb2wiIGluY2x1ZGVzIHRoZSByaWdodCB0byBncmFudApwYXRlbnQgc3VibGljZW5zZXMgaW4gYSBtYW5uZXIgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YKdGhpcyBMaWNlbnNlLgoKICBFYWNoIGNvbnRyaWJ1dG9yIGdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZQpwYXRlbnQgbGljZW5zZSB1bmRlciB0aGUgY29udHJpYnV0b3IncyBlc3NlbnRpYWwgcGF0ZW50IGNsYWltcywgdG8KbWFrZSwgdXNlLCBzZWxsLCBvZmZlciBmb3Igc2FsZSwgaW1wb3J0IGFuZCBvdGhlcndpc2UgcnVuLCBtb2RpZnkgYW5kCnByb3BhZ2F0ZSB0aGUgY29udGVudHMgb2YgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24uCgogIEluIHRoZSBmb2xsb3dpbmcgdGhyZWUgcGFyYWdyYXBocywgYSAicGF0ZW50IGxpY2Vuc2UiIGlzIGFueSBleHByZXNzCmFncmVlbWVudCBvciBjb21taXRtZW50LCBob3dldmVyIGRlbm9taW5hdGVkLCBub3QgdG8gZW5mb3JjZSBhIHBhdGVudAooc3VjaCBhcyBhbiBleHByZXNzIHBlcm1pc3Npb24gdG8gcHJhY3RpY2UgYSBwYXRlbnQgb3IgY292ZW5hbnQgbm90IHRvCnN1ZSBmb3IgcGF0ZW50IGluZnJpbmdlbWVudCkuICBUbyAiZ3JhbnQiIHN1Y2ggYSBwYXRlbnQgbGljZW5zZSB0byBhCnBhcnR5IG1lYW5zIHRvIG1ha2Ugc3VjaCBhbiBhZ3JlZW1lbnQgb3IgY29tbWl0bWVudCBub3QgdG8gZW5mb3JjZSBhCnBhdGVudCBhZ2FpbnN0IHRoZSBwYXJ0eS4KCiAgSWYgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywga25vd2luZ2x5IHJlbHlpbmcgb24gYSBwYXRlbnQgbGljZW5zZSwKYW5kIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBpcyBub3QgYXZhaWxhYmxlIGZvciBhbnlvbmUKdG8gY29weSwgZnJlZSBvZiBjaGFyZ2UgYW5kIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsIHRocm91Z2ggYQpwdWJsaWNseSBhdmFpbGFibGUgbmV0d29yayBzZXJ2ZXIgb3Igb3RoZXIgcmVhZGlseSBhY2Nlc3NpYmxlIG1lYW5zLAp0aGVuIHlvdSBtdXN0IGVpdGhlciAoMSkgY2F1c2UgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIHRvIGJlIHNvCmF2YWlsYWJsZSwgb3IgKDIpIGFycmFuZ2UgdG8gZGVwcml2ZSB5b3Vyc2VsZiBvZiB0aGUgYmVuZWZpdCBvZiB0aGUKcGF0ZW50IGxpY2Vuc2UgZm9yIHRoaXMgcGFydGljdWxhciB3b3JrLCBvciAoMykgYXJyYW5nZSwgaW4gYSBtYW5uZXIKY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBMaWNlbnNlLCB0byBleHRlbmQgdGhlIHBhdGVudApsaWNlbnNlIHRvIGRvd25zdHJlYW0gcmVjaXBpZW50cy4gICJLbm93aW5nbHkgcmVseWluZyIgbWVhbnMgeW91IGhhdmUKYWN0dWFsIGtub3dsZWRnZSB0aGF0LCBidXQgZm9yIHRoZSBwYXRlbnQgbGljZW5zZSwgeW91ciBjb252ZXlpbmcgdGhlCmNvdmVyZWQgd29yayBpbiBhIGNvdW50cnksIG9yIHlvdXIgcmVjaXBpZW50J3MgdXNlIG9mIHRoZSBjb3ZlcmVkIHdvcmsKaW4gYSBjb3VudHJ5LCB3b3VsZCBpbmZyaW5nZSBvbmUgb3IgbW9yZSBpZGVudGlmaWFibGUgcGF0ZW50cyBpbiB0aGF0CmNvdW50cnkgdGhhdCB5b3UgaGF2ZSByZWFzb24gdG8gYmVsaWV2ZSBhcmUgdmFsaWQuCgogIElmLCBwdXJzdWFudCB0byBvciBpbiBjb25uZWN0aW9uIHdpdGggYSBzaW5nbGUgdHJhbnNhY3Rpb24gb3IKYXJyYW5nZW1lbnQsIHlvdSBjb252ZXksIG9yIHByb3BhZ2F0ZSBieSBwcm9jdXJpbmcgY29udmV5YW5jZSBvZiwgYQpjb3ZlcmVkIHdvcmssIGFuZCBncmFudCBhIHBhdGVudCBsaWNlbnNlIHRvIHNvbWUgb2YgdGhlIHBhcnRpZXMKcmVjZWl2aW5nIHRoZSBjb3ZlcmVkIHdvcmsgYXV0aG9yaXppbmcgdGhlbSB0byB1c2UsIHByb3BhZ2F0ZSwgbW9kaWZ5Cm9yIGNvbnZleSBhIHNwZWNpZmljIGNvcHkgb2YgdGhlIGNvdmVyZWQgd29yaywgdGhlbiB0aGUgcGF0ZW50IGxpY2Vuc2UKeW91IGdyYW50IGlzIGF1dG9tYXRpY2FsbHkgZXh0ZW5kZWQgdG8gYWxsIHJlY2lwaWVudHMgb2YgdGhlIGNvdmVyZWQKd29yayBhbmQgd29ya3MgYmFzZWQgb24gaXQuCgogIEEgcGF0ZW50IGxpY2Vuc2UgaXMgImRpc2NyaW1pbmF0b3J5IiBpZiBpdCBkb2VzIG5vdCBpbmNsdWRlIHdpdGhpbgp0aGUgc2NvcGUgb2YgaXRzIGNvdmVyYWdlLCBwcm9oaWJpdHMgdGhlIGV4ZXJjaXNlIG9mLCBvciBpcwpjb25kaXRpb25lZCBvbiB0aGUgbm9uLWV4ZXJjaXNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSByaWdodHMgdGhhdCBhcmUKc3BlY2lmaWNhbGx5IGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgWW91IG1heSBub3QgY29udmV5IGEgY292ZXJlZAp3b3JrIGlmIHlvdSBhcmUgYSBwYXJ0eSB0byBhbiBhcnJhbmdlbWVudCB3aXRoIGEgdGhpcmQgcGFydHkgdGhhdCBpcwppbiB0aGUgYnVzaW5lc3Mgb2YgZGlzdHJpYnV0aW5nIHNvZnR3YXJlLCB1bmRlciB3aGljaCB5b3UgbWFrZSBwYXltZW50CnRvIHRoZSB0aGlyZCBwYXJ0eSBiYXNlZCBvbiB0aGUgZXh0ZW50IG9mIHlvdXIgYWN0aXZpdHkgb2YgY29udmV5aW5nCnRoZSB3b3JrLCBhbmQgdW5kZXIgd2hpY2ggdGhlIHRoaXJkIHBhcnR5IGdyYW50cywgdG8gYW55IG9mIHRoZQpwYXJ0aWVzIHdobyB3b3VsZCByZWNlaXZlIHRoZSBjb3ZlcmVkIHdvcmsgZnJvbSB5b3UsIGEgZGlzY3JpbWluYXRvcnkKcGF0ZW50IGxpY2Vuc2UgKGEpIGluIGNvbm5lY3Rpb24gd2l0aCBjb3BpZXMgb2YgdGhlIGNvdmVyZWQgd29yawpjb252ZXllZCBieSB5b3UgKG9yIGNvcGllcyBtYWRlIGZyb20gdGhvc2UgY29waWVzKSwgb3IgKGIpIHByaW1hcmlseQpmb3IgYW5kIGluIGNvbm5lY3Rpb24gd2l0aCBzcGVjaWZpYyBwcm9kdWN0cyBvciBjb21waWxhdGlvbnMgdGhhdApjb250YWluIHRoZSBjb3ZlcmVkIHdvcmssIHVubGVzcyB5b3UgZW50ZXJlZCBpbnRvIHRoYXQgYXJyYW5nZW1lbnQsCm9yIHRoYXQgcGF0ZW50IGxpY2Vuc2Ugd2FzIGdyYW50ZWQsIHByaW9yIHRvIDI4IE1hcmNoIDIwMDcuCgogIE5vdGhpbmcgaW4gdGhpcyBMaWNlbnNlIHNoYWxsIGJlIGNvbnN0cnVlZCBhcyBleGNsdWRpbmcgb3IgbGltaXRpbmcKYW55IGltcGxpZWQgbGljZW5zZSBvciBvdGhlciBkZWZlbnNlcyB0byBpbmZyaW5nZW1lbnQgdGhhdCBtYXkKb3RoZXJ3aXNlIGJlIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYXBwbGljYWJsZSBwYXRlbnQgbGF3LgoKICAxMi4gTm8gU3VycmVuZGVyIG9mIE90aGVycycgRnJlZWRvbS4KCiAgSWYgY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgpvdGhlcndpc2UpIHRoYXQgY29udHJhZGljdCB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHRoZXkgZG8gbm90CmV4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90IGNvbnZleSBhCmNvdmVyZWQgd29yayBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91IG1heQpub3QgY29udmV5IGl0IGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiB5b3UgYWdyZWUgdG8gdGVybXMgdGhhdCBvYmxpZ2F0ZSB5b3UKdG8gY29sbGVjdCBhIHJveWFsdHkgZm9yIGZ1cnRoZXIgY29udmV5aW5nIGZyb20gdGhvc2UgdG8gd2hvbSB5b3UgY29udmV5CnRoZSBQcm9ncmFtLCB0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCB0aG9zZSB0ZXJtcyBhbmQgdGhpcwpMaWNlbnNlIHdvdWxkIGJlIHRvIHJlZnJhaW4gZW50aXJlbHkgZnJvbSBjb252ZXlpbmcgdGhlIFByb2dyYW0uCgogIDEzLiBVc2Ugd2l0aCB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgoKICBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIHlvdSBoYXZlCnBlcm1pc3Npb24gdG8gbGluayBvciBjb21iaW5lIGFueSBjb3ZlcmVkIHdvcmsgd2l0aCBhIHdvcmsgbGljZW5zZWQKdW5kZXIgdmVyc2lvbiAzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW50byBhIHNpbmdsZQpjb21iaW5lZCB3b3JrLCBhbmQgdG8gY29udmV5IHRoZSByZXN1bHRpbmcgd29yay4gIFRoZSB0ZXJtcyBvZiB0aGlzCkxpY2Vuc2Ugd2lsbCBjb250aW51ZSB0byBhcHBseSB0byB0aGUgcGFydCB3aGljaCBpcyB0aGUgY292ZXJlZCB3b3JrLApidXQgdGhlIHNwZWNpYWwgcmVxdWlyZW1lbnRzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCnNlY3Rpb24gMTMsIGNvbmNlcm5pbmcgaW50ZXJhY3Rpb24gdGhyb3VnaCBhIG5ldHdvcmsgd2lsbCBhcHBseSB0byB0aGUKY29tYmluYXRpb24gYXMgc3VjaC4KCiAgMTQuIFJldmlzZWQgVmVyc2lvbnMgb2YgdGhpcyBMaWNlbnNlLgoKICBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucyBvZgp0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCiAgRWFjaCB2ZXJzaW9uIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuICBJZiB0aGUKUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIGNlcnRhaW4gbnVtYmVyZWQgdmVyc2lvbiBvZiB0aGUgR05VIEdlbmVyYWwKUHVibGljIExpY2Vuc2UgIm9yIGFueSBsYXRlciB2ZXJzaW9uIiBhcHBsaWVzIHRvIGl0LCB5b3UgaGF2ZSB0aGUKb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZWl0aGVyIG9mIHRoYXQgbnVtYmVyZWQKdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkCmJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCgogIElmIHRoZSBQcm9ncmFtIHNwZWNpZmllcyB0aGF0IGEgcHJveHkgY2FuIGRlY2lkZSB3aGljaCBmdXR1cmUKdmVyc2lvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGNhbiBiZSB1c2VkLCB0aGF0IHByb3h5J3MKcHVibGljIHN0YXRlbWVudCBvZiBhY2NlcHRhbmNlIG9mIGEgdmVyc2lvbiBwZXJtYW5lbnRseSBhdXRob3JpemVzIHlvdQp0byBjaG9vc2UgdGhhdCB2ZXJzaW9uIGZvciB0aGUgUHJvZ3JhbS4KCiAgTGF0ZXIgbGljZW5zZSB2ZXJzaW9ucyBtYXkgZ2l2ZSB5b3UgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQKcGVybWlzc2lvbnMuICBIb3dldmVyLCBubyBhZGRpdGlvbmFsIG9ibGlnYXRpb25zIGFyZSBpbXBvc2VkIG9uIGFueQphdXRob3Igb3IgY29weXJpZ2h0IGhvbGRlciBhcyBhIHJlc3VsdCBvZiB5b3VyIGNob29zaW5nIHRvIGZvbGxvdyBhCmxhdGVyIHZlcnNpb24uCgogIDE1LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LgoKICBUSEVSRSBJUyBOTyBXQVJSQU5UWSBGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZCkFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQKSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUyBQUk9WSURFIFRIRSBQUk9HUkFNICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWQpPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1NFRCBPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUgUFJPR1JBTQpJUyBXSVRIIFlPVS4gIFNIT1VMRCBUSEUgUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YKQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgoKICAxNi4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuCgogIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1PRElGSUVTIEFORC9PUiBDT05WRVlTClRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWQpHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBUSEUKVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRgpEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRApQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSIFBST0dSQU1TKSwKRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgpTVUNIIERBTUFHRVMuCgogIDE3LiBJbnRlcnByZXRhdGlvbiBvZiBTZWN0aW9ucyAxNSBhbmQgMTYuCgogIElmIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5IGFuZCBsaW1pdGF0aW9uIG9mIGxpYWJpbGl0eSBwcm92aWRlZAphYm92ZSBjYW5ub3QgYmUgZ2l2ZW4gbG9jYWwgbGVnYWwgZWZmZWN0IGFjY29yZGluZyB0byB0aGVpciB0ZXJtcywKcmV2aWV3aW5nIGNvdXJ0cyBzaGFsbCBhcHBseSBsb2NhbCBsYXcgdGhhdCBtb3N0IGNsb3NlbHkgYXBwcm94aW1hdGVzCmFuIGFic29sdXRlIHdhaXZlciBvZiBhbGwgY2l2aWwgbGlhYmlsaXR5IGluIGNvbm5lY3Rpb24gd2l0aCB0aGUKUHJvZ3JhbSwgdW5sZXNzIGEgd2FycmFudHkgb3IgYXNzdW1wdGlvbiBvZiBsaWFiaWxpdHkgYWNjb21wYW5pZXMgYQpjb3B5IG9mIHRoZSBQcm9ncmFtIGluIHJldHVybiBmb3IgYSBmZWUuCgogICAgICAgICAgICAgICAgICAgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCiAgICAgICAgICAgIEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcwoKICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0CnBvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlzIHRvIG1ha2UgaXQKZnJlZSBzb2Z0d2FyZSB3aGljaCBldmVyeW9uZSBjYW4gcmVkaXN0cmlidXRlIGFuZCBjaGFuZ2UgdW5kZXIgdGhlc2UgdGVybXMuCgogIFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0CnRvIGF0dGFjaCB0aGVtIHRvIHRoZSBzdGFydCBvZiBlYWNoIHNvdXJjZSBmaWxlIHRvIG1vc3QgZWZmZWN0aXZlbHkKc3RhdGUgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAp0aGUgImNvcHlyaWdodCIgbGluZSBhbmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KCiAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgogICAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKQWxzbyBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRvIGNvbnRhY3QgeW91IGJ5IGVsZWN0cm9uaWMgYW5kIHBhcGVyIG1haWwuCgogIElmIHRoZSBwcm9ncmFtIGRvZXMgdGVybWluYWwgaW50ZXJhY3Rpb24sIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQKbm90aWNlIGxpa2UgdGhpcyB3aGVuIGl0IHN0YXJ0cyBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlOgoKICAgIDxwcm9ncmFtPiAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KICAgIFRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFk7IGZvciBkZXRhaWxzIHR5cGUgYHNob3cgdycuCiAgICBUaGlzIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0CiAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuCgpUaGUgaHlwb3RoZXRpY2FsIGNvbW1hbmRzIGBzaG93IHcnIGFuZCBgc2hvdyBjJyBzaG91bGQgc2hvdyB0aGUgYXBwcm9wcmlhdGUKcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHlvdXIgcHJvZ3JhbSdzIGNvbW1hbmRzCm1pZ2h0IGJlIGRpZmZlcmVudDsgZm9yIGEgR1VJIGludGVyZmFjZSwgeW91IHdvdWxkIHVzZSBhbiAiYWJvdXQgYm94Ii4KCiAgWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHNjaG9vbCwKaWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIHByb2dyYW0sIGlmIG5lY2Vzc2FyeS4KRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcywgYW5kIGhvdyB0byBhcHBseSBhbmQgZm9sbG93IHRoZSBHTlUgR1BMLCBzZWUKPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtCmludG8gcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdQptYXkgY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGgKdGhlIGxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LCBwbGVhc2UgcmVhZAo8aHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvd2h5LW5vdC1sZ3BsLmh0bWw+Lgo=]]></data>
	</file>
	<file>
	  <filename>/event.CGEcommerceBase.OrderUpdated.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBQcm9kdWN0cyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMgCiMgVmVyc2lvbjogMS4xLjUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhaXNzZXQoJHBhcmFtc1snb3JkZXJfaWQnXSkgKSByZXR1cm47CgovLyBoYW5kbGUgdGhlIGNhc2Ugb2YgYXR0ZW1wdGVkIHJlY3Vyc2lvbi4KaWYoIGNnZV90bXBkYXRhOjpleGlzdHMoX19GSUxFX18pICkgcmV0dXJuOwpjZ2VfdG1wZGF0YTo6c2V0KF9fRklMRV9fLDEpOwoKLy8gZ2V0IHRoZSBmaWVsZCBkZWZpbml0aW9ucy4KJGRlZnMgPSAkdGhpcy0+R2V0RmllbGREZWZzKFRSVUU8VFJVRSk7CgovLyBjaGVjayBmaWVsZCBkZWZzIGZvciBhbiBlbnRyeSBvZiB0eXBlICdxdWFudGl0eScKaWYoICFpc19hcnJheSgkZGVmcykgfHwgY291bnQoJGRlZnMpID09IDAgKSByZXR1cm47CiRmaWVsZF9pZCA9IC0xOwpmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkZGVmcyk7ICRpKysgKQogIHsKICAgIGlmKCAkZGVmc1skaV0tPnR5cGUgPT0gJ3F1YW50aXR5JyApCiAgICAgIHsKCQkkZmllbGRfaWQgPSAoaW50KSRkZWZzWyRpXS0+aWQ7CiAgICAgIH0KICB9CmlmKCAkZmllbGRfaWQgPD0gMCApIHJldHVybjsKCi8vIGdldCB0aGUgb3JkZXIuCiRvcmRlcl9pZCA9IChpbnQpJHBhcmFtc1snb3JkZXJfaWQnXTsKJG9yZGVyX29iaiA9IG9yZGVyc19vcHM6OmxvYWRfYnlfaWQoJG9yZGVyX2lkKTsKaWYoICEkb3JkZXJfb2JqICkgCiAgewogICAgcmV0dXJuOwogIH0KaWYoICFpbl9hcnJheSgkb3JkZXJfb2JqLT5nZXRfc3RhdHVzKCksYXJyYXkoJ2ludm9pY2VkJywncGFpZCcpKSApIHJldHVybjsKCi8vIGZpbmQgdGhlIGxpbmUgd2l0aCB3aXRoIGEgcHJvZHVjdCBpbiBpdC4KZm9yKCAkcyA9IDA7ICRzIDwgJG9yZGVyX29iai0+Y291bnRfZGVzdGluYXRpb25zKCk7ICRzKysgKQogIHsKICAgICRzaGlwcGluZyA9ICRvcmRlcl9vYmotPmdldF9zaGlwcGluZygkcyk7CiAgICBmb3IoICRpID0gMDsgJGkgPCAkc2hpcHBpbmctPmNvdW50X2FsbF9pdGVtcygpOyAkaSsrICkKICAgICAgewoJJGl0ZW0gPSAkc2hpcHBpbmctPmdldF9pdGVtKCRpKTsKCWlmKCAkaXRlbS0+Z2V0X3NvdXJjZSgpICE9ICdQcm9kdWN0cycgKSBjb250aW51ZTsKCWlmKCAkaXRlbS0+Z2V0X2l0ZW1fdHlwZSgpICE9IGxpbmVfaXRlbTo6SVRFTVRZUEVfUFJPRFVDVCApIGNvbnRpbnVlOwoKCS8vIGdldCB0aGUgcHJvZHVjdCBpZC4uLiBhbmQgdXBkYXRlIHRoZSBxdWFudGl0eSBhdmFpbGFibGUuCgkkc2t1ID0gJGl0ZW0tPmdldF9za3UoKTsKCSRwcm9kdWN0X2lkID0gJGl0ZW0tPmdldF9pdGVtX2lkKCk7CgoJJGN1cl92YWwgPSAwOwoJJGZvdW5kID0gMDsKCSRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIFdIRVJFIHByb2R1Y3RfaWQgPSA/IEFORCBmaWVsZGRlZl9pZCA9ID8nOwoJJGRiciA9ICRkYi0+R2V0Um93KCRxdWVyeSxhcnJheSgkcHJvZHVjdF9pZCwkZmllbGRfaWQpKTsKCWlmKCAkZGJyICkgCgkgIHsKCSAgICAkY3VyX3ZhbCA9IChpbnQpJGRiclsndmFsdWUnXTsKCSAgICAkZm91bmQgPSAxOwoJICB9CgkkY3VyX3ZhbCAtPSAoaW50KSRpdGVtLT5nZXRfcXVhbnRpdHkoKTsKCWlmKCAhJGZvdW5kICkKCSAgewoJICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyAocHJvZHVjdF9pZCxmaWVsZGRlZl9pZCx2YWx1ZSxjcmVhdGVfZGF0ZSxtb2RpZmllZF9kYXRlKSBWQUxVRVMgKD8sPyw/LE5PVygpLE5PVygpKSc7CgkgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHByb2R1Y3RfaWQsJGZpZWxkX2lkLCRjdXJfdmFsKSk7CgkgIH0KCWVsc2UKCSAgewoJICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgU0VUIHZhbHVlID0gPywgbW9kaWZpZWRfZGF0ZSA9IE5PVygpIFdIRVJFIHByb2R1Y3RfaWQgPSA/IEFORCBmaWVsZGRlZl9pZCA9ID8nOwoJICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRjdXJfdmFsLCRwcm9kdWN0X2lkLCRmaWVsZF9pZCkpOwoJICB9CgoJJHRoaXMtPkF1ZGl0KCRwcm9kdWN0X2lkLCR0aGlzLT5HZXROYW1lKCksJ1VwZGF0ZWQgcXVhbnRpdHkgb2YgYXZhaWxhYmxlIHByb2R1Y3QgdG8gJy4kY3VyX3ZhbCk7CiAgICAgIH0KICB9CgovLyBzZXR1cCBmb3IgYW5vdGhlciBvcmRlci4uLiBzaG91bGRuJ3QgaGFwcGVuLCBidXQganVzdCBpbiBjYXNlLgpjZ2VfdG1wZGF0YTo6ZXJhc2UoX19GSUxFX18pOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_categories_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSApIGV4aXQ7CgojUHV0IHRvZ2V0aGVyIGEgbGlzdCBvZiBjdXJyZW50IGNhdGVnb3JpZXMuLi4KJGVudHJ5YXJyYXkgPSBhcnJheSgpOwoJCiRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyBPUkRFUiBCWSBuYW1lIjsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkKJHJvd2NsYXNzID0gJ3JvdzEnOwoJCndoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKICB7CiAgICAkb25lcm93ID0gbmV3IHN0ZENsYXNzKCk7CgkKICAgICRvbmVyb3ctPmlkID0gJHJvd1snaWQnXTsKICAgICRvbmVyb3ctPm5hbWUgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0Y2F0ZWdvcnknLCAkcmV0dXJuaWQsICRyb3dbJ25hbWUnXSwgYXJyYXkoJ2NhdGlkJz0+JHJvd1snaWQnXSkpOwoKICAgICRvbmVyb3ctPmZpZWxkc2xpbmsgPSAkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnZWRpdGNhdGVnb3J5ZmllbGRzJywkcmV0dXJuaWQsCiAgICAgICAgICAgICAgICAkdGhpcy0+TGFuZygnZWRpdF9jYXRlZ29yeV9maWVsZHMnKSwKICAgICAgICAgICAgICAgICdkYXRhYmFzZV9lZGl0LnBuZycsCiAgICAgICAgICAgICAgICBhcnJheSgnY2F0aWQnPT4kcm93WydpZCddKSk7CgogICAgJG9uZXJvdy0+Y29weWxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdjb3B5Y2F0ZWdvcnknLCAkcmV0dXJuaWQsICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vY29weS5naWYnLCAkdGhpcy0+TGFuZygnY29weScpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdjYXRpZCc9PiRyb3dbJ2lkJ10pKTsKICAgICRvbmVyb3ctPmVkaXRsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdGNhdGVnb3J5JywgJHJldHVybmlkLCAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywgJHRoaXMtPkxhbmcoJ2VkaXQnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnY2F0aWQnPT4kcm93WydpZCddKSk7CgogICAgJG9uZXJvdy0+ZGVsZXRlbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlbGV0ZWNhdGVnb3J5JywgJHJldHVybmlkLCAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+TGFuZygnZGVsZXRlJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2NhdGlkJz0+JHJvd1snaWQnXSksICR0aGlzLT5MYW5nKCdhcmV5b3VzdXJlJykpOwoJCiAgICAkb25lcm93LT5yb3djbGFzcyA9ICRyb3djbGFzczsKCiAgICAkZW50cnlhcnJheVtdID0gJG9uZXJvdzsKCQogICAgKCRyb3djbGFzcz09InJvdzEiPyRyb3djbGFzcz0icm93MiI6JHJvd2NsYXNzPSJyb3cxIik7CiAgfQoJCiR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2l0ZW1zJywgJGVudHJ5YXJyYXkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2l0ZW1jb3VudCcsIGNvdW50KCRlbnRyeWFycmF5KSk7CgkKI1NldHVwIGxpbmtzCiR0aGlzLT5zbWFydHktPmFzc2lnbignYWRkbGluaycsICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkZGNhdGVnb3J5JywgJHJldHVybmlkLCAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld2ZvbGRlci5naWYnLCAkdGhpcy0+TGFuZygnYWRkY2F0ZWdvcnknKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgpLCAnJywgZmFsc2UsIGZhbHNlLCAnJykgLicgJy4gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRkY2F0ZWdvcnknLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdhZGRjYXRlZ29yeScpLCBhcnJheSgpLCAnJywgZmFsc2UsIGZhbHNlLCAnY2xhc3M9InBhZ2VvcHRpb25zIicpKTsKCQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhdGVnb3J5dGV4dCcsICR0aGlzLT5MYW5nKCdjYXRlZ29yeScpKTsKCQojRGlzcGxheSB0ZW1wbGF0ZQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2NhdGVnb3J5bGlzdC50cGwnKTsKCQoKIwojIEVPRgojCj8+]]></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+JHJvd1snaWQnXSksICR0aGlzLT5MYW5nKCdhcmV5b3VzdXJlJykpOwoJCQogICAgJGVudHJ5YXJyYXlbXSA9ICRvbmVyb3c7CgogICAgKCRyb3djbGFzcz09InJvdzEiPyRyb3djbGFzcz0icm93MiI6JHJvd2NsYXNzPSJyb3cxIik7CiAgfQoKJHNtYXJ0eS0+YXNzaWduKCdmaWVsZHR5cGVzJyxwcm9kdWN0X3V0aWxzOjpnZXRfZmllbGRfdHlwZXMoKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2l0ZW1zJywgJGVudHJ5YXJyYXkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2l0ZW1jb3VudCcsIGNvdW50KCRlbnRyeWFycmF5KSk7CgkKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhZGRsaW5rJywgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRkZmllbGRkZWYnLCAkcmV0dXJuaWQsICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vbmV3Zm9sZGVyLmdpZicsICR0aGlzLT5MYW5nKCdhZGRmaWVsZGRlZicpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCksICcnLCBmYWxzZSwgZmFsc2UsICcnKSAuJyAnLiAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZGRmaWVsZGRlZicsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2FkZGZpZWxkZGVmJyksIGFycmF5KCksICcnLCBmYWxzZSwgZmFsc2UsICdjbGFzcz0icGFnZW9wdGlvbnMiJykpOwoJCiR0aGlzLT5zbWFydHktPmFzc2lnbignZmllbGRkZWZ0ZXh0JywgJHRoaXMtPkxhbmcoJ2ZpZWxkZGVmJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3R5cGV0ZXh0JywgJHRoaXMtPkxhbmcoJ3R5cGUnKSk7CgkKI0Rpc3BsYXkgdGVtcGxhdGUKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdmaWVsZGRlZmxpc3QudHBsJyk7CgkKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_hierarchy_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSApIGV4aXQ7CgokZW50cnlhcnJheSA9IGhpZXJhcmNoeV9vcHM6OmdldF9mbGF0X2xpc3QoKTsKJHNtYXJ0eS0+YXNzaWduKCdlbnRyaWVzJywkZW50cnlhcnJheSk7CiRzbWFydHktPmFzc2lnbignYWRkX2hpZXJhcmNoeV9saW5rJywKCQkkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnYWRtaW5fYWRkX2hpZXJhcmNoeV9pdGVtJywKCQkJCSAgICAgICAkcmV0dXJuaWQsCgkJCQkgICAgICAgJHRoaXMtPkxhbmcoJ2FkZF9oaWVyYXJjaHlfaXRlbScpLAoJCQkJICAgICAgICdpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZicsCgkJCQkgICAgICAgYXJyYXkoKSwnJywnJyxmYWxzZSkpOwoKaWYoIGNvdW50KCRlbnRyeWFycmF5KSA+IDEgKQogIHsKICAgICRzbWFydHktPmFzc2lnbigncmVvcmRlcl9saW5rJywKCQkgICAgJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ2FkbWluX3Jlb3JkZXJfaGllcmFyY2h5JywKCQkJCQkgICAkcmV0dXJuaWQsCgkJCQkJICAgJHRoaXMtPkxhbmcoJ3Jlb3JkZXJfaGllcmFyY2h5JyksCgkJCQkJICAgJ2ljb25zL3N5c3RlbS9yZW9yZGVyLmdpZicsCgkJCQkJICAgYXJyYXkoKSwnJywnJyxmYWxzZSkpOwogIH0KCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5faGllcmFyY2h5X3RhYi50cGwnKTsKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_prefstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgcmV0dXJuOwoKCiRjb250ZW50b3BzID0gJGdDbXMtPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CiRzb3J0b3JkZXIgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc29ydG9yZGVyJywnYXNjJyk7CiRzb3J0YnkgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc29ydGJ5JywncHJvZHVjdF9uYW1lJyk7Cgokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsCgkJJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX3NhdmVwcmVmcycsJHJldHVybmlkKSk7CiRzbWFydHktPmFzc2lnbignZW5kZm9ybScsCgkJJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignc3VibWl0JywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdzdWJtaXQnLCR0aGlzLT5MYW5nKCdzdWJtaXQnKSkpOwoKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfZGV0YWlscGFnZScsJHRoaXMtPkxhbmcoJ3Byb21wdF9kZXRhaWxwYWdlJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2RldGFpbHBhZ2UnLAoJCSRjb250ZW50b3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGV0YWlscGFnZScpLAoJCQkJCSAgICAgICAkaWQuJ2RldGFpbHBhZ2UnKSk7Cgokc3RhdHVzZXMgPSBhcnJheSgkdGhpcy0+TGFuZygncHVibGlzaGVkJyk9PidwdWJsaXNoZWQnLAoJCSAgJHRoaXMtPkxhbmcoJ2RyYWZ0Jyk9PidkcmFmdCcsCgkJICAkdGhpcy0+TGFuZygnZGlzYWJsZWQnKT0+J2Rpc2FibGVkJyk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfc3RhdHVzJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ3N0YXR1cycsCgkJCQkJICAgJHN0YXR1c2VzLC0xLAoJCQkJCSAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X3N0YXR1cycsJ3B1Ymxpc2hlZCcpKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfdGF4YWJsZScsCgkJLy8JCSR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ3RheGFibGUnLDApLgoJCSR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwndGF4YWJsZScsMSwKCQkJCQkgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF90YXhhYmxlJywxKSkpOwoKJHNvcnRvcmRlcnMgPSBhcnJheSgkdGhpcy0+TGFuZygnYXNjZW5kaW5nJyk9Pidhc2MnLAoJCSAgICAkdGhpcy0+TGFuZygnZGVzY2VuZGluZycpPT4nZGVzYycpOwokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJywkdGhpcy0+TGFuZygncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfc3VtbWFyeXNvcnRvcmRlcicsCgkJJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdzb3J0b3JkZXInLCRzb3J0b3JkZXJzLC0xLCRzb3J0b3JkZXIpKTsKCmlmKCAhY2xhc3NfZXhpc3RzKCdjZ19lY29tbScpICkKICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9jdXJyZW5jeXN5bWJvbCcsJHRoaXMtPkxhbmcoJ3Byb21wdF9jdXJyZW5jeXN5bWJvbCcpKTsKICAgICRzbWFydHktPmFzc2lnbignaW5wdXRfY3VycmVuY3lzeW1ib2wnLAoJCSAgICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnY3VycmVuY3lzeW1ib2wnLAoJCQkJCSAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwcm9kdWN0c19jdXJyZW5jeXN5bWJvbCcpKSk7CiAgICAKICAgICRzbWFydHktPmFzc2lnbigncHJvbXB0X3dlaWdodHVuaXRzJywkdGhpcy0+TGFuZygncHJvbXB0X3dlaWdodHVuaXRzJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF93ZWlnaHR1bml0cycsCgkJICAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCd3ZWlnaHR1bml0cycsCgkJCQkJICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Byb2R1Y3RzX3dlaWdodHVuaXRzJykpKTsKCiAgICAkc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9sZW5ndGh1bml0cycsJHRoaXMtPkxhbmcoJ3Byb21wdF9sZW5ndGh1bml0cycpKTsKICAgICRvcHRzID0gYXJyYXkoJHRoaXMtPkxhbmcoJ2luY2hlcycpPT4naW4nLAoJCSAgJHRoaXMtPkxhbmcoJ2NlbnRpbWV0ZXJzJyk9PidjbScpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9sZW5ndGh1bml0cycsCgkJICAgICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnbGVuZ3RodW5pdHMnLCRvcHRzLC0xLAoJCQkJCSAgICAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJvZHVjdHNfbGVuZ3RodW5pdHMnKSkpOwogIH0KCgokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2FsbG93ZWRfaW1hZ2V0eXBlcycsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2FsbG93ZWRfaW1hZ2V0eXBlcycsCgkJCQkgICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93ZWRfaW1hZ2V0eXBlcycpLDUwLDI1NSkpOwoKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9hbGxvd2VkX2ZpbGV0eXBlcycsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2FsbG93ZWRfZmlsZXR5cGVzJywKCQkJCSAgICAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dlZF9maWxldHlwZXMnKSw1MCwyNTUpKTsKCiRzbWFydHktPmFzc2lnbignaW5wdXRfYXV0b3RodW1ibmFpbCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0WWVzTm9Ecm9wZG93bigkaWQsJ2F1dG90aHVtYm5haWwnLAoJCQkJCQkkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYXV0b3RodW1ibmFpbCcpKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2F1dG9fdGh1bWJuYWlsX3NpemUnLAoJCSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhdXRvX3RodW1ibmFpbF9zaXplJyw3NSkpOwoKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9hdXRvcHJldmlld2ltZycsCgkJJHRoaXMtPkNyZWF0ZUlucHV0WWVzTm9Ecm9wZG93bigkaWQsJ2F1dG9wcmV2aWV3aW1nJywKCQkJCQkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ2F1dG9wcmV2aWV3aW1nJykpKTsKCiRzbWFydHktPmFzc2lnbignYXV0b19wcmV2aWV3aW1nX3NpemUnLAoJCSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhdXRvX3ByZXZpZXdpbWdfc2l6ZScsMTUwKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3VybHByZWZpeCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VybHByZWZpeCcsJycpKTsKCiRvcHRzID0gYXJyYXkoKTsKJG9wdHNbJHRoaXMtPkxhbmcoJ25vbmUnKV0gPSAnbm9uZSc7CiRvcHRzWyR0aGlzLT5MYW5nKCdhdXRvbWF0aWMnKV0gPSAnYXV0byc7CiRvcHRzWyR0aGlzLT5MYW5nKCdhZGp1c3RhYmxlJyldID0gJ2FkanVzdGFibGUnOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2F1dG93YXRlcm1hcmsnLAogICAgICAgICAgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdhdXRvd2F0ZXJtYXJrJywkb3B0cywtMSwKICAgICAgICAgICAgICAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhdXRvd2F0ZXJtYXJrJykpKTsKCiRzbWFydHktPmFzc2lnbignc3VtbWFyeV9uZXdkZWZhdWx0JywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc3VtbWFyeV9uZXdkZWZhdWx0JywwKSk7CiRzbWFydHktPmFzc2lnbignc3VtbWFyeV9wYWdlbGltaXQnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzdW1tYXJ5X3BhZ2VsaW1pdCcsMTAwMDApKTsKCiRzb3J0aW5ncyA9IGFycmF5KCR0aGlzLT5MYW5nKCdwcm9kdWN0bmFtZScpPT4ncHJvZHVjdF9uYW1lJywKCQkgICR0aGlzLT5MYW5nKCdwcmljZScpPT4ncHJpY2UnLAoJCSAgJHRoaXMtPkxhbmcoJ2NyZWF0ZWRkYXRlJyk9PidjcmVhdGVfZGF0ZScsCgkJICAkdGhpcy0+TGFuZygnbW9kaWZpZWRkYXRlJyk9Pidtb2RpZmllZF9kYXRlJywKCQkgICR0aGlzLT5MYW5nKCdyYW5kb20nKT0+J3JhbmRvbScsCgkJICAkdGhpcy0+TGFuZygnc3RhdHVzJyk9PidzdGF0dXMnKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfc3VtbWFyeXNvcnRpbmcnLCR0aGlzLT5MYW5nKCdwcm9tcHRfc3VtbWFyeXNvcnRpbmcnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfc3VtbWFyeXNvcnRpbmcnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnc29ydGJ5Jywkc29ydGluZ3MsLTEsJHNvcnRieSkpOwoKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9kZWxldGVwcm9kdWN0ZmlsZXMnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFllc05vRHJvcGRvd24oJGlkLCdkZWxldGVwcm9kdWN0ZmlsZXMnLAoJCQkJCQkkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVsZXRlcHJvZHVjdGZpbGVzJykpKTsKCiRzbWFydHktPmFzc2lnbignaW5wdXRfdXNlaGllcnBhdGh1cmxzJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRZZXNOb0Ryb3Bkb3duKCRpZCwndXNlaGllcnBhdGh1cmxzJywKCQkJCQkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZWhpZXJwYXRodXJscycsMCkpKTsKCiRzbWFydHktPmFzc2lnbignaW5wdXRfdXNlX2RldGFpbHBhZ2VfZm9yX3NlYXJjaCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0WWVzTm9Ecm9wZG93bigkaWQsJ3VzZV9kZXRhaWxwYWdlX2Zvcl9zZWFyY2gnLAoJCQkJCQkkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXNlX2RldGFpbHBhZ2VfZm9yX3NlYXJjaCcsMCkpKTsKCiRzbWFydHktPmFzc2lnbignaW5wdXRfaGllcnBhZ2UnLAoJCSRjb250ZW50b3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaGllcnBhZ2UnKSwKCQkJCQkgICAgICAgJGlkLidoaWVycGFnZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdwcmV0dHloaWVydXJscycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3ByZXR0eWhpZXJ1cmxzJywwKSk7Cgokbm90Zm91bmRfb3B0cyA9IGFycmF5KCk7CiRub3Rmb3VuZF9vcHRzWydkbzQwNCddID0gJHRoaXMtPkxhbmcoJ3Byb21wdF9ub3Rmb3VuZF80MDQnKTsKJG5vdGZvdW5kX29wdHNbJ2RvMzAxJ10gPSAkdGhpcy0+TGFuZygncHJvbXB0X25vdGZvdW5kXzMwMScpOwokbm90Zm91bmRfb3B0c1snZG9tc2cnXSA9ICR0aGlzLT5MYW5nKCdwcm9tcHRfbm90Zm91bmRfZXJyb3Jtc2cnKTsKJHNtYXJ0eS0+YXNzaWduKCdub3Rmb3VuZF9vcHRzJywkbm90Zm91bmRfb3B0cyk7CiRzbWFydHktPmFzc2lnbigncHJvZG5vdGZvdW5kJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJvZG5vdGZvdW5kJywnZG9tc2cnKSk7CiRzbWFydHktPmFzc2lnbigncHJvZG5vdGZvdW5kbXNnJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJvZG5vdGZvdW5kbXNnJywkdGhpcy0+TGFuZygnZXJyb3JfcHJvZHVjdF9ub3Rmb3VuZCcpKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfcHJvZG5vdGZvdW5kcGFnZScsCgkJJGNvbnRlbnRvcHMtPkNyZWF0ZUhpZXJhcmNoeURyb3Bkb3duKCcnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwcm9kbm90Zm91bmRwYWdlJywtMSksJGlkLidwcm9kbm90Zm91bmRwYWdlJykpOwoKJHNtYXJ0eS0+YXNzaWduKCdza3VyZXF1aXJlZCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NrdXJlcXVpcmVkJywwKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ3ByZWZzLnRwbCcpOwoKLy8gRU9GCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_productstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSApIHJldHVybjsKCgovLwovLyBTZXR1cAovLwokcGFnZWxpbWl0cyA9IGFycmF5KCcyJz0+MiwnNSc9PjUsJzI1Jz0+MjUsJzEwMCc9PjEwMCwnNTAwJz0+NTAwKTsKJHNvcnRpdGVtcyA9IGFycmF5KCk7CiRzb3J0aXRlbXNbJHRoaXMtPkxhbmcoJ3Byb2R1Y3RuYW1lJyldID0gJ3Byb2R1Y3RfbmFtZSc7CiRzb3J0aXRlbXNbJHRoaXMtPkxhbmcoJ3ByaWNlJyldID0gJ3ByaWNlJzsKJHNvcnRpdGVtc1skdGhpcy0+TGFuZygnd2VpZ2h0JyldID0gJ3dlaWdodCc7CiRzb3J0aXRlbXNbJHRoaXMtPkxhbmcoJ3NrdScpXSA9ICdza3UnOwokc29ydGl0ZW1zWyR0aGlzLT5MYW5nKCdjcmVhdGVkZGF0ZScpXSA9ICdjcmVhdGVfZGF0ZSc7CiRzb3J0aXRlbXNbJHRoaXMtPkxhbmcoJ21vZGlmaWVkZGF0ZScpXSA9ICdtb2RpZmllZF9kYXRlJzsKJHNvcnRvcmRlcnMgPSBhcnJheSgpOwokc29ydG9yZGVyc1skdGhpcy0+TGFuZygnYXNjZW5kaW5nJyldID0gJ2FzYyc7CiRzb3J0b3JkZXJzWyR0aGlzLT5MYW5nKCdkZXNjZW5kaW5nJyldID0gJ2Rlc2MnOwokdWlkID0gZ2V0X3VzZXJpZChmYWxzZSk7CiRoaWVyYXJjaHkgPSAnJzsKJGNoaWxkcmVuICA9IDA7CiRwYWdlbGltaXQgPSAyNTsKJHNvcnRieSAgICA9ICdjcmVhdGVfZGF0ZSc7CiRzb3J0b3JkZXIgPSAnZGVzYyc7CiRwYWdlbnVtYmVyID0gMTsKJGZpZWxkc192aWV3YWJsZSA9IGFycmF5KCk7CiRmaWVsZF9uYW1lcyA9IGFycmF5KCk7CgppZiggaXNzZXQoJHBhcmFtc1sncmVzZXQnXSkgKSB7CiAgc2V0X3ByZWZlcmVuY2UoJHVpZCwncHJvZHVjdHNfc2VsX2hpZXJhcmNoeScsJycpOwogIHNldF9wcmVmZXJlbmNlKCR1aWQsJ3Byb2R1Y3RzX3NlbF9jaGlsZHJlbicsMCk7CiAgc2V0X3ByZWZlcmVuY2UoJHVpZCwncHJvZHVjdHNfc2VsX3BhZ2VsaW1pdCcsMjUpOwogIHNldF9wcmVmZXJlbmNlKCR1aWQsJ3Byb2R1Y3RzX3NlbF9zb3J0YnknLCdjcmVhdGVfZGF0ZScpOwogIHNldF9wcmVmZXJlbmNlKCR1aWQsJ3Byb2R1Y3RzX3NlbF9zb3J0b3JkZXInLCdkZXNjJyk7CiAgc2V0X3ByZWZlcmVuY2UoJHVpZCwncHJvZHVjdHNfc2VsX2V4Y2x1ZGVjYXRzJywwKTsKICBzZXRfcHJlZmVyZW5jZSgkdWlkLCdwcm9kdWN0c19zZWxfY2F0ZWdvcmllcycsJycpOwp9CgovLwovLyBHZXQgcHJlZmVyZW5jZXMKLy8KJGhpZXJhcmNoeSAgID0gZ2V0X3ByZWZlcmVuY2UoJHVpZCwncHJvZHVjdHNfc2VsX2hpZXJhcmNoeScsJycpOwokY2hpbGRyZW4gICAgPSBnZXRfcHJlZmVyZW5jZSgkdWlkLCdwcm9kdWN0c19zZWxfY2hpbGRyZW4nLDApOwokcGFnZWxpbWl0ICAgPSBnZXRfcHJlZmVyZW5jZSgkdWlkLCdwcm9kdWN0c19zZWxfcGFnZWxpbWl0JywyNSk7CiRzb3J0YnkgICAgICA9IGdldF9wcmVmZXJlbmNlKCR1aWQsJ3Byb2R1Y3RzX3NlbF9zb3J0YnknLCdjcmVhdGVfZGF0ZScpOwokc29ydG9yZGVyICAgPSBnZXRfcHJlZmVyZW5jZSgkdWlkLCdwcm9kdWN0c19zZWxfc29ydG9yZGVyJywnZGVzYycpOwokZXhjbHVkZWNhdHMgPSBnZXRfcHJlZmVyZW5jZSgkdWlkLCdwcm9kdWN0c19zZWxfZXhjbHVkZWNhdHMnLDApOwokY2F0ZWdvcmllcyA9ICcnOwokdG1wPSBnZXRfcHJlZmVyZW5jZSgkdWlkLCdwcm9kdWN0c19zZWxfY2F0ZWdvcmllcycsJycpOwppZiggIWVtcHR5KCR0bXApICkgJGNhdGVnb3JpZXMgPSBleHBsb2RlKCcsJywkdG1wKTsKJGN1c3RvbV9maWVsZHMgPSAnJzsKJHRtcCA9IGdldF9wcmVmZXJlbmNlKCd1aWQnLCdwcm9kdWN0c19zZWxfY3VzdG9tZmllbGRzJywnJyk7CmlmKCAhZW1wdHkoJHRtcCkgKSAkY3VzdG9tX2ZpZWxkcyA9IGV4cGxvZGUoJywnLCR0bXApOwokZmlsdGVyaW51c2UgPSAoJGhpZXJhcmNoeSAhPSAnJyB8fCAkY2hpbGRyZW4gIT0gMCB8fCAoaXNfYXJyYXkoJGNhdGVnb3JpZXMpICYmIGNvdW50KCRjYXRlZ29yaWVzKSkgfHwgJGV4Y2x1ZGVjYXRzICE9IDAgKTsKCi8vCi8vIEhhbmRsZSBHZXQgcGFyYW1ldGVycwovLwppZiggaXNzZXQoJHBhcmFtc1sncGFnZW51bWJlciddKSApCiAgewogICAgJHBhZ2VudW1iZXIgPSAoaW50KSRwYXJhbXNbJ3BhZ2VudW1iZXInXTsKICB9CgoKLy8KLy8gSGFuZGxlIGZvcm0gc3VibWl0Ci8vCmlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKQogIHsKICAgICRoaWVyYXJjaHkgPSB0cmltKCRwYXJhbXNbJ2lucHV0X2hpZXJhcmNoeSddKTsKICAgICRjaGlsZHJlbiA9IChpbnQpJHBhcmFtc1snaW5wdXRfY2hpbGRyZW4nXTsKICAgICRwYWdlbGltaXQgPSAoaW50KSRwYXJhbXNbJ2lucHV0X3BhZ2VsaW1pdCddOwogICAgJHNvcnRieSA9IHRyaW0oJHBhcmFtc1snaW5wdXRfc29ydGJ5J10pOwogICAgJHNvcnRvcmRlciA9IHRyaW0oJHBhcmFtc1snaW5wdXRfc29ydG9yZGVyJ10pOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2N1c3RvbV9maWVsZHMnXSkgKQogICAgICB7CgkkY3VzdG9tX2ZpZWxkcyA9ICRwYXJhbXNbJ2N1c3RvbV9maWVsZHMnXTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkY3VzdG9tX2ZpZWxkcyA9IGFycmF5KCk7CiAgICAgIH0KICAgIGlmKCBpc3NldCgkcGFyYW1zWydjYXRlZ29yaWVzJ10pICkKICAgICAgewoJJGNhdGVnb3JpZXMgPSAkcGFyYW1zWydjYXRlZ29yaWVzJ107CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJGNhdGVnb3JpZXMgPSBhcnJheSgpOwogICAgICB9CiAgICAkZXhjbHVkZWNhdHMgPSAoaW50KSRwYXJhbXNbJ2lucHV0X2V4Y2x1ZGVjYXRzJ107CgogICAgLy8gc3RvcmUgdGhlbSBhcyB1c2VyIHByZWZlcmVuY2VzCiAgICBzZXRfcHJlZmVyZW5jZSgkdWlkLCdwcm9kdWN0c19zZWxfaGllcmFyY2h5JywkaGllcmFyY2h5KTsKICAgIHNldF9wcmVmZXJlbmNlKCR1aWQsJ3Byb2R1Y3RzX3NlbF9jaGlsZHJlbicsJGNoaWxkcmVuKTsKICAgIHNldF9wcmVmZXJlbmNlKCR1aWQsJ3Byb2R1Y3RzX3NlbF9wYWdlbGltaXQnLCRwYWdlbGltaXQpOwogICAgc2V0X3ByZWZlcmVuY2UoJHVpZCwncHJvZHVjdHNfc2VsX3NvcnRieScsJHNvcnRieSk7CiAgICBzZXRfcHJlZmVyZW5jZSgkdWlkLCdwcm9kdWN0c19zZWxfc29ydG9yZGVyJywkc29ydG9yZGVyKTsKICAgIHNldF9wcmVmZXJlbmNlKCR1aWQsJ3Byb2R1Y3RzX3NlbF9jdXN0b21maWVsZHMnLGltcGxvZGUoJywnLCRjdXN0b21fZmllbGRzKSk7CiAgICBzZXRfcHJlZmVyZW5jZSgkdWlkLCdwcm9kdWN0c19zZWxfY2F0ZWdvcmllcycsaW1wbG9kZSgnLCcsJGNhdGVnb3JpZXMpKTsKICAgIHNldF9wcmVmZXJlbmNlKCR1aWQsJ3Byb2R1Y3RzX3NlbF9leGNsdWRlY2F0cycsJGV4Y2x1ZGVjYXRzKTsKICB9CgovLwovLyBCZWdpbiB0aGUgZm9ybQovLwp7CiAgJHRtcCA9ICR0aGlzLT5HZXRDYXRlZ29yaWVzKCk7CiAgaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkKICAgIHsKICAgICAgJGNhdGVnb3J5X2xpc3QgPSBhcnJheSgpOwogICAgICBmb3JlYWNoKCAkdG1wIGFzICRvbmUgKSB7CgkkY2F0ZWdvcnlfbGlzdFskb25lLT5pZF0gPSAkb25lLT5uYW1lOwogICAgICB9CiAgICAgICRzbWFydHktPmFzc2lnbignY2F0ZWdvcnlfbGlzdCcsJGNhdGVnb3J5X2xpc3QpOwogICAgfQp9CgokZmllbGRkZWZzID0gJHRoaXMtPkdldEZpZWxkRGVmcygpOwpmb3JlYWNoKCAkZmllbGRkZWZzIGFzICRvbmVkZWYgKQp7CiAgc3dpdGNoKCAkb25lZGVmLT50eXBlICkKICAgIHsKICAgIGNhc2UgJ3RleHRib3gnOgogICAgY2FzZSAnZHJvcGRvd24nOgogICAgICAkc29ydGl0ZW1zWyRvbmVkZWYtPnByb21wdF0gPSAnLUYtJy4kb25lZGVmLT5pZDsKICAgICAgYnJlYWs7CiAgICB9Cn0KCiRhbGxfZmllbGRzID0gcHJvZHVjdF9vcHM6OmdldF9maWVsZHMoKTsKaWYoIGlzX2FycmF5KCRhbGxfZmllbGRzKSApCiAgewogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGFsbF9maWVsZHMpOyAkaSsrICkKICAgICAgewoJc3dpdGNoKCAkYWxsX2ZpZWxkc1skaV1bJ3R5cGUnXSApCgkgIHsKCSAgY2FzZSAndGV4dGFyZWEnOgoJICAgIGJyZWFrOwoJICBkZWZhdWx0OgoJICAgICRmaWVsZHNfdmlld2FibGVbJGFsbF9maWVsZHNbJGldWydpZCddXSA9ICRhbGxfZmllbGRzWyRpXVsncHJvbXB0J107CgkgICAgJGZpZWxkX25hbWVzWyRhbGxfZmllbGRzWyRpXVsnaWQnXV0gPSAkYWxsX2ZpZWxkc1skaV1bJ25hbWUnXTsKCSAgICBicmVhazsKCSAgfQogICAgICB9CiAgICBpZiggY291bnQoJGZpZWxkc192aWV3YWJsZSkgJiYgaXNfYXJyYXkoJGN1c3RvbV9maWVsZHMpICkKICAgICAgewoJLy8gbm93IHRyaW0gZG93biB0aGUgY3VzdG9tIGZpZWxkcwoJLy8gdG8gbWFrZSBzdXJlIHRoYXQgc29tZXRoaW5nIGhhc24ndCBiZWVuIGRlbGV0ZWQuCgkkdG1wID0gYXJyYXkoKTsKCWZvcmVhY2goICRjdXN0b21fZmllbGRzIGFzICRmaWQgKQoJICB7CgkgICAgaWYoIGluX2FycmF5KCRmaWQsYXJyYXlfa2V5cygkZmllbGRzX3ZpZXdhYmxlKSkgKQoJICAgICAgewoJCSR0bXBbXSA9ICRmaWQ7CgkgICAgICB9CgkgIH0KCSRjdXN0b21fZmllbGRzID0gJHRtcDsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkY3VzdG9tX2ZpZWxkcyA9IGFycmF5KCk7CiAgICAgIH0KICB9CiRhbGxfZmllbGRzID0gY2dlX2FycmF5Ojp0b19oYXNoKCRhbGxfZmllbGRzLCduYW1lJyk7CmlmKCBjb3VudCgkZmllbGRzX3ZpZXdhYmxlKSApCiAgewogICAgJHNtYXJ0eS0+YXNzaWduKCdmaWVsZHNfdmlld2FibGUnLCRmaWVsZHNfdmlld2FibGUpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdmaWVsZF9uYW1lcycsJGZpZWxkX25hbWVzKTsKICB9CmlmKCBjb3VudCgkY2F0ZWdvcmllcykgKQogIHsKICAgICRzbWFydHktPmFzc2lnbignY2F0ZWdvcmllcycsJGNhdGVnb3JpZXMpOwogIH0KJHNtYXJ0eS0+YXNzaWduKCdjdXN0b21fZmllbGRzJywkY3VzdG9tX2ZpZWxkcyk7CiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdkZWZhdWx0YWRtaW4nKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfaGllcmFyY2h5JywkdGhpcy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJGlkLCdpbnB1dF9oaWVyYXJjaHknLCRoaWVyYXJjaHkpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9jaGlsZHJlbicsJHRoaXMtPkNyZWF0ZUlucHV0WWVzTm9Ecm9wZG93bigkaWQsJ2lucHV0X2NoaWxkcmVuJywkY2hpbGRyZW4pKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zb3J0YnknLCR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnaW5wdXRfc29ydGJ5Jywkc29ydGl0ZW1zLC0xLCRzb3J0YnkpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zb3J0b3JkZXInLCR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnaW5wdXRfc29ydG9yZGVyJywkc29ydG9yZGVycywtMSwkc29ydG9yZGVyKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfcGFnZWxpbWl0JywkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2lucHV0X3BhZ2VsaW1pdCcsJHBhZ2VsaW1pdHMsLTEsJHBhZ2VsaW1pdCkpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2V4Y2x1ZGVjYXRzJywkdGhpcy0+Q3JlYXRlSW5wdXRZZXNOb0Ryb3Bkb3duKCRpZCwnaW5wdXRfZXhjbHVkZWNhdHMnLCRleGNsdWRlY2F0cykpOwoKCi8vCi8vIEJ1aWxkIHRoZSBxdWVyeQovLwokZmllbGRzID0gYXJyYXkoKTsKJGZpZWxkc1tdID0gJ0RJU1RJTkNUIHAuKic7CiRwcmVmaXgxID0gIlNFTEVDVCA8RklFTERTPiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHMgcCAiOwokcHJlZml4MiA9ICJTRUxFQ1QgY291bnQocC5pZCkgQVMgY291bnQgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzIHAgJzsKJHdoZXJlID0gYXJyYXkoKTsKJGpvaW5zID0gYXJyYXkoKTsKJHFwYXJtcyA9IGFycmF5KCk7CmlmKCBpc19hcnJheSgkY3VzdG9tX2ZpZWxkcykgJiYgY291bnQoJGN1c3RvbV9maWVsZHMpICYmIGNvdW50KCRmaWVsZHNfdmlld2FibGUpICkKICB7CiAgICBmb3IoICRqID0gMDsgJGogPCBjb3VudCgkY3VzdG9tX2ZpZWxkcyk7ICRqKysgKQogICAgICB7CgkkZmlkID0gJGN1c3RvbV9maWVsZHNbJGpdOwoJJGZpZWxkc1tdID0gIkZ2eyRqfS52YWx1ZSBBUyAnRmxkX197JGZpZWxkX25hbWVzWyRmaWRdfSciOwoJJGpvaW5zW10gPSAnTEVGVCBPVVRFUiBKT0lOICcuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIEZ2eyRqfQogICAgICAgICAgICAgICAgICAgIE9OIEZ2eyRqfS5wcm9kdWN0X2lkID0gcC5pZCBBTkQgRnZ7JGp9LmZpZWxkZGVmX2lkID0gPyI7CgkkcXBhcm1zW10gPSAkY3VzdG9tX2ZpZWxkc1skal07CiAgICAgIH0KICB9CmlmKCAhZW1wdHkoJGhpZXJhcmNoeSkgKQogIHsKICAgICR0cXVlcnkgPSAnU0VMRUNUIGxvbmdfbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5CiAgICAgICAgICAgICAgIFdIRVJFIGlkID0gPyc7CiAgICAkbG9uZ19uYW1lID0gJGRiLT5HZXRPbmUoJHRxdWVyeSxhcnJheSgkaGllcmFyY2h5KSk7CgogICAgJGpvaW5zW10gPSAnTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHRvaGllciBwaCAKICAgICAgICAgICAgICAgICAgT04gcGgucHJvZHVjdF9pZCA9IHAuaWQnOwogICAgJGpvaW5zW10gPSAnTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IGgKICAgICAgICAgICAgICAgICAgT04gaC5pZCA9IHBoLmhpZXJhcmNoeV9pZCc7CiAgICAkd2hlcmVbXSA9ICdoLmxvbmdfbmFtZSBMSUtFID8nOwogICAgaWYoICRjaGlsZHJlbiApCiAgICAgIHsKCSRxcGFybXNbXSA9ICRsb25nX25hbWUuJyUnOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRxcGFybXNbXSA9ICRsb25nX25hbWU7CiAgICAgIH0KICB9CgppZiggaXNfYXJyYXkoJGNhdGVnb3JpZXMpICYmIGNvdW50KCRjYXRlZ29yaWVzKSA+IDAgKQogIHsKICAgICRqb2luc1tdID0gJ0xFRlQgT1VURVIgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcyBwYwogICAgICAgICAgICAgICAgICBPTiBwLmlkID0gcGMucHJvZHVjdF9pZCc7CiAgICBpZiggJGV4Y2x1ZGVjYXRzICkKICAgICAgewoJJHdoZXJlW10gPSAnQ09BTEVTQ0UocGMuY2F0ZWdvcnlfaWQsLTEpIE5PVCBJTiAoJy5pbXBsb2RlKCcsJywkY2F0ZWdvcmllcykuJyknOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSR3aGVyZVtdID0gJ3BjLmNhdGVnb3J5X2lkIElOICgnLmltcGxvZGUoJywnLCRjYXRlZ29yaWVzKS4nKSc7CiAgICAgIH0KICB9CgovLyBoYW5kbGUgZnVua3kgY3VzdG9tIGZpZWxkIHNvcnQgb3JkZXJzCmlmKCBzdGFydHN3aXRoKCRzb3J0YnksJy1GLScpICkKICB7CiAgICAkZmlkID0gKGludClzdWJzdHIoJHNvcnRieSwzKTsKICAgICRqb2luc1tdID0gJ0xFRlQgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyBmdgogICAgICAgICAgICAgICAgICBPTiBmdi5wcm9kdWN0X2lkID0gcC5pZCc7CiAgICAkd2hlcmVbXSA9ICdmdi5maWVsZGRlZl9pZCA9ID8nOwogICAgJHFwYXJtc1tdID0gJGZpZDsKICAgICRvcmRlciA9ICIgT1JERVIgQlkgZnYudmFsdWUgJHNvcnRvcmRlciI7CiAgfQplbHNlCiAgewogICAgJG9yZGVyID0gIiBPUkRFUiBCWSAkc29ydGJ5ICRzb3J0b3JkZXIiOwogIH0KCiRzdHIgPSBpbXBsb2RlKCcgJywkam9pbnMpOwppZiggY291bnQoJHdoZXJlKSApCiAgewogICAgJHN0ciAuPSAnIFdIRVJFICcgLiBpbXBsb2RlKCcgQU5EICcsJHdoZXJlKSAuICRvcmRlcjsKICB9CmVsc2UKICB7CiAgICAkc3RyIC49ICRvcmRlcjsKICB9CiRxdWVyeTEgPSBzdHJfcmVwbGFjZSgnPEZJRUxEUz4nLGltcGxvZGUoJywnLCRmaWVsZHMpLCRwcmVmaXgxKSAuICRzdHI7CiRxdWVyeTIgPSAkcHJlZml4MiAuICRzdHI7CgovLwovLyBTZXR1cCBzdGFydCBlbGVtZW50LCBhbmQgY291bnQgcGFnZXMKLy8KJHRvdGFsY291bnQgPSAkZGItPkdldE9uZSgkcXVlcnkyLCRxcGFybXMpOwokcGFnZWNvdW50ID0gKGludCkoJHRvdGFsY291bnQvJHBhZ2VsaW1pdCk7CmlmKCAoJHRvdGFsY291bnQgJSAkcGFnZWxpbWl0KSAhPSAwICkgJHBhZ2Vjb3VudCsrOwokc3RhcnRlbGVtZW50ID0gKCRwYWdlbnVtYmVyLTEpICogJHBhZ2VsaW1pdDsKCi8vCi8vIEJlZ2luIHRoZSBvdXRwdXQKLy8KJHNtYXJ0eS0+YXNzaWduKCdwYWdlbnVtYmVyJywkcGFnZW51bWJlcik7CiRzbWFydHktPmFzc2lnbigncGFnZWNvdW50JywkcGFnZWNvdW50KTsKJHNtYXJ0eS0+YXNzaWduKCd0b3RhbHJvd3MnLCR0b3RhbGNvdW50KTsKaWYoICRwYWdlbnVtYmVyID4gMSApCiAgewogICAgJHBhcm1zID0gYXJyYXkoJ3BhZ2VudW1iZXInPT4xKTsKICAgICRzbWFydHktPmFzc2lnbignZmlyc3RwYWdlX3VybCcsCgkJICAgICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLCRwYXJtcykpOwogICAgJHBhcm1zID0gYXJyYXkoJ3BhZ2VudW1iZXInPT4kcGFnZW51bWJlciAtMSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3ByZXZwYWdlX3VybCcsCgkJICAgICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLCRwYXJtcykpOwogIH0KaWYoICRwYWdlbnVtYmVyIDwgJHBhZ2Vjb3VudCApCiAgewogICAgJHBhcm1zID0gYXJyYXkoJ3BhZ2VudW1iZXInPT4kcGFnZW51bWJlciArIDEpOwogICAgJHNtYXJ0eS0+YXNzaWduKCduZXh0cGFnZV91cmwnLAoJCSAgICAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnZGVmYXVsdGFkbWluJywnJywkcGFybXMpKTsKICAgICRwYXJtcyA9IGFycmF5KCdwYWdlbnVtYmVyJz0+JHBhZ2Vjb3VudCk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2xhc3RwYWdlX3VybCcsCgkJICAgICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLCRwYXJtcykpOwogIH0KJGVudHJ5YXJyYXkgPSBhcnJheSgpOwkKJGRicmVzdWx0ID0gJGRiLT5TZWxlY3RMaW1pdCgkcXVlcnkxLCRwYWdlbGltaXQsJHN0YXJ0ZWxlbWVudCwkcXBhcm1zKTsKCQp3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCiAgewogICAgZm9yZWFjaCggJHJvdyBhcyAka2V5ID0+ICR2YWx1ZSApCiAgICAgIHsKCWlmKCBzdGFydHN3aXRoKCRrZXksJ0ZsZF9fJykgKQoJICB7CgkgICAgdW5zZXQoJHJvd1ska2V5XSk7CgkgICAgJGtleSA9IHN1YnN0cigka2V5LHN0cmxlbignRmxkX18nKSk7CgkgICAgJHJvd1ska2V5XSA9ICR2YWx1ZTsKCgkgICAgJHRtcCA9IEB1bnNlcmlhbGl6ZSgkdmFsdWUpOwoJICAgIGlmKCAkdG1wICE9PSBGQUxTRSApCgkgICAgICB7CgkJJHJvd1ska2V5XSA9IHByb2R1Y3RfdXRpbHM6OmdldF9kaXNwbGF5YWJsZV9maWVsZHZhbCgka2V5LCR0bXApOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkcm93WyRrZXldID0gcHJvZHVjdF91dGlsczo6Z2V0X2Rpc3BsYXlhYmxlX2ZpZWxkdmFsKCRrZXksJHZhbHVlKTsKCSAgICAgIH0KCSAgfQogICAgICB9CgogICAgJHJvd1snZWRpdF91cmwnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdlZGl0cHJvZHVjdCcsJHJldHVybmlkLAoJCQkJCSBhcnJheSgnY29tcGlkJz0+JHJvd1snaWQnXSkpOwogICAgJHJvd1snYXR0cmlic2xpbmsnXSA9ICR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdlZGl0X2F0dHJpYnNldHMnLCRyZXR1cm5pZCwKCQkJCQkJICAkdGhpcy0+TGFuZygnZWRpdF9hdHRyaWJzZXRzJyksCgkJCQkJCSAgJ3RhYmxlX3JlbGF0aW9uc2hpcC5wbmcnLAoJCQkJCQkgIGFycmF5KCdjb21waWQnPT4kcm93WydpZCddKSk7CgogICAgJHJvd1snZWRpdGxpbmsnXSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXRwcm9kdWN0JywgJHJldHVybmlkLCAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywgJHRoaXMtPkxhbmcoJ2VkaXQnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnY29tcGlkJz0+JHJvd1snaWQnXSkpOwoJCQogICAgJHJvd1snY29weWxpbmsnXSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2NvcHlwcm9kdWN0JywgJHJldHVybmlkLCAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2NvcHkuZ2lmJywgJHRoaXMtPkxhbmcoJ2NvcHlfcHJvZHVjdCcpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdjb21waWQnPT4kcm93WydpZCddKSk7CgkJCiAgICAkcm93WydkZWxldGVsaW5rJ10gPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdkZWxldGVwcm9kdWN0JywgJHJldHVybmlkLCAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+TGFuZygnZGVsZXRlJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2NvbXBpZCc9PiRyb3dbJ2lkJ10pLCAkdGhpcy0+TGFuZygnYXJleW91c3VyZV9kZWxldGVwcm9kdWN0JykpOwoJCQogICAgJGVudHJ5YXJyYXlbXSA9ICRyb3c7CiAgfQoJCiR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2l0ZW1zJywgJGVudHJ5YXJyYXkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2l0ZW1jb3VudCcsIGNvdW50KCRlbnRyeWFycmF5KSk7CgkKJHNtYXJ0eS0+YXNzaWduKCdpbXBvcnRsaW5rJywKCQkkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnaW1wb3J0cHJvZHVjdHMnLCRyZXR1cm5pZCwKCQkJCSAgICAgICAkdGhpcy0+TGFuZygnaW1wb3J0X2Zyb21fY3N2JyksCgkJCQkgICAgICAgJ2ljb25zL3N5c3RlbS9pbXBvcnQuZ2lmJyxhcnJheSgpLCcnLCcnLGZhbHNlKSk7CiRzbWFydHktPmFzc2lnbignZXhwb3J0bGluaycsCgkJJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ2V4cG9ydGNzdicsJHJldHVybmlkLAoJCQkJICAgICAgICR0aGlzLT5MYW5nKCdleHBvcnRfdG9fY3N2JyksCgkJCQkgICAgICAgJ2ljb25zL3N5c3RlbS9leHBvcnQuZ2lmJyxhcnJheSgpLCcnLCcnLGZhbHNlKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignYWRkbGluaycsIAoJCSAgICAgICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkZHByb2R1Y3QnLCAkcmV0dXJuaWQsIAoJCQkJCSRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vbmV3Zm9sZGVyLmdpZicsICR0aGlzLT5MYW5nKCdhZGRwcm9kdWN0JyksJycsJycsJ3N5c3RlbWljb24nKSwgCgkJCQkJYXJyYXkoJ2hpZXJhcmNoeSc9PiRoaWVyYXJjaHkpLCAnJywgZmFsc2UsIGZhbHNlLCAnJykgLicgJy4gCgkJICAgICAgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRkcHJvZHVjdCcsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2FkZHByb2R1Y3QnKSwgCgkJCQkJYXJyYXkoJ2hpZXJhcmNoeSc9PiRoaWVyYXJjaHkpLCAnJywgZmFsc2UsIGZhbHNlLCAnY2xhc3M9InBhZ2VvcHRpb25zIicpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignaWR0ZXh0JywkdGhpcy0+TGFuZygnaWQnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigncHJvZHVjdHRleHQnLCAkdGhpcy0+TGFuZygncHJvZHVjdCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcmljZXRleHQnLCAkdGhpcy0+TGFuZygncHJpY2UnKSk7CiRzbWFydHktPmFzc2lnbignd2VpZ2h0X3VuaXRzJyxwcm9kdWN0X29wczo6Z2V0X3dlaWdodF91bml0cygpKTsKJHNtYXJ0eS0+YXNzaWduKCd3ZWlnaHR0ZXh0JywkdGhpcy0+TGFuZygnd2VpZ2h0JykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydDInLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9idWxrYWN0aW9uJywkcmV0dXJuaWQpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kMicsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignZmlsdGVyaW51c2UnLCRmaWx0ZXJpbnVzZSk7CiRidWxrYWN0aW9ucyA9IGFycmF5KCk7CiRidWxrYWN0aW9uc1snZGVsZXRlJ10gPSAkdGhpcy0+TGFuZygnZGVsZXRlJyk7CiRidWxrYWN0aW9uc1snc2V0ZHJhZnQnXSA9ICR0aGlzLT5MYW5nKCdzZXRkcmFmdCcpOwokYnVsa2FjdGlvbnNbJ3NldHB1Ymxpc2hlZCddID0gJHRoaXMtPkxhbmcoJ3NldHB1Ymxpc2hlZCcpOwokc21hcnR5LT5hc3NpZ24oJ2J1bGthY3Rpb25zJywkYnVsa2FjdGlvbnMpOwoJCiNEaXNwbGF5IHRlbXBsYXRlCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgncHJvZHVjdGxpc3QudHBsJyk7CgovLyBFT0YKPz4K]]></data>
	</file>
	<file>
	  <filename>/function.admin_templatestabs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdCgpOwoKaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oICdNb2RpZnkgVGVtcGxhdGVzJyApICkKewogIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdzdW1tYXJ5X3RlbXBsYXRlJywgJHBhcmFtcyk7CiAgewogICAgZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsJHJldHVybmlkLCdzdW1tYXJ5XycsCgkJCQkgUFJPRFVDVFNfUFJFRl9ORVdTVU1NQVJZX1RFTVBMQVRFLAoJCQkJICdzdW1tYXJ5X3RlbXBsYXRlJywKCQkJCSBQUk9EVUNUU19QUkVGX0RGTFRTVU1NQVJZX1RFTVBMQVRFLAoJCQkJICR0aGlzLT5MYW5nKCdzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCcpKTsKICB9CiAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CgkKCiAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2RldGFpbF90ZW1wbGF0ZScsICRwYXJhbXMpOwogIHsKICAgIGVjaG8gJHRoaXMtPlNob3dUZW1wbGF0ZUxpc3QoJGlkLCRyZXR1cm5pZCwnZGV0YWlsXycsCgkJCQkgUFJPRFVDVFNfUFJFRl9ORVdERVRBSUxfVEVNUExBVEUsCgkJCQkgJ2RldGFpbF90ZW1wbGF0ZScsCgkJCQkgUFJPRFVDVFNfUFJFRl9ERkxUREVUQUlMX1RFTVBMQVRFLAoJCQkJICR0aGlzLT5MYW5nKCdkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0JykpOwogIH0KICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKCgogIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdieWhpZXJhcmNoeV90ZW1wbGF0ZScsICRwYXJhbXMpOwogIHsKICAgIGVjaG8gJHRoaXMtPlNob3dUZW1wbGF0ZUxpc3QoJGlkLCRyZXR1cm5pZCwnYnloaWVyYXJjaHlfJywKCQkJCSBQUk9EVUNUU19QUkVGX05FV0JZSElFUkFSQ0hZX1RFTVBMQVRFLAoJCQkJICdieWhpZXJhcmNoeV90ZW1wbGF0ZScsCgkJCQkgUFJPRFVDVFNfUFJFRl9ERkxUQllISUVSQVJDSFlfVEVNUExBVEUsCgkJCQkgJHRoaXMtPkxhbmcoJ2J5aGllcmFyY2h5dGVtcGxhdGVfYWRkZWRpdCcpKTsKICB9CiAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CgoKICBlY2hvICR0aGlzLT5TdGFydFRhYignY2F0ZWdvcnlsaXN0X3RlbXBsYXRlJywgJHBhcmFtcyk7CiAgewogICAgZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsJHJldHVybmlkLCdjYXRlZ29yeWxpc3RfJywKCQkJCSBQUk9EVUNUU19QUkVGX05FV0NBVEVHT1JZTElTVF9URU1QTEFURSwKCQkJCSAnY2F0ZWdvcnlsaXN0X3RlbXBsYXRlJywKCQkJCSBQUk9EVUNUU19QUkVGX0RGTFRDQVRFR09SWUxJU1RfVEVNUExBVEUsCgkJCQkgJHRoaXMtPkxhbmcoJ2NhdGVnb3J5bGlzdHRlbXBsYXRlX2FkZGVkaXQnKSk7CiAgfQogIGVjaG8gJHRoaXMtPkVuZFRhYigpOwoKCiAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3NlYXJjaF90ZW1wbGF0ZScsICRwYXJhbXMpOwogIHsKICAgIGVjaG8gJHRoaXMtPlNob3dUZW1wbGF0ZUxpc3QoJGlkLCRyZXR1cm5pZCwnc2VhcmNoXycsCgkJCQkgUFJPRFVDVFNfUFJFRl9ORVdTRUFSQ0hfVEVNUExBVEUsCgkJCQkgJ3NlYXJjaF90ZW1wbGF0ZScsCgkJCQkgUFJPRFVDVFNfUFJFRl9ERkxUU0VBUkNIX1RFTVBMQVRFLAoJCQkJICR0aGlzLT5MYW5nKCdzZWFyY2h0ZW1wbGF0ZV9hZGRlZGl0JykpOwogIH0KICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKCgogIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdkZWZhdWx0X3RlbXBsYXRlcycpOwogIHsKICAgICRpbnB1dF9zdW1tYXJ5dGVtcGxhdGUgPQogICAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV1NVTU1BUllfVEVNUExBVEUpOwogICAgJGlucHV0X2RldGFpbHRlbXBsYXRlID0KICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ORVdERVRBSUxfVEVNUExBVEUpOwogICAgJGlucHV0X2J5aGllcmFyY2h5dGVtcGxhdGUgPQogICAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV0JZSElFUkFSQ0hZX1RFTVBMQVRFKTsKICAgICRpbnB1dF9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSA9CiAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXQ0FURUdPUllMSVNUX1RFTVBMQVRFKTsKICAgICRpbnB1dF9zZWFyY2h0ZW1wbGF0ZSA9CiAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXU0VBUkNIX1RFTVBMQVRFKTsKCiAgICAkc21hcnR5LT5hc3NpZ24oJ2luZm9fZGZsdF90ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5MYW5nKCdkZWZhdWx0X3RlbXBsYXRlX25vdGljZScpKTsKCiAgICAkc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsCgkJICAgICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9zZXRkZmx0dGVtcGxhdGVzJywKCQkJCQkgICAkcmV0dXJuaWQpKTsKICAgICRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsCgkJICAgICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKICAgICRzbWFydHktPmFzc2lnbignbGVnZW5kX3N1bW1hcnl0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5MYW5nKCd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZScpKTsKICAgICRzbWFydHktPmFzc2lnbigncHJvbXB0X3N1bW1hcnl0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5MYW5nKCdwcm9tcHRfdGVtcGxhdGUnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X3N1bW1hcnl0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwkaWQsJGlucHV0X3N1bW1hcnl0ZW1wbGF0ZSwKCQkJCQkgICdpbnB1dF9zdW1tYXJ5dGVtcGxhdGUnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdF9zdW1tYXJ5dGVtcGxhdGUnLAoJCSAgICAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdzdWJtaXRfc3VtbWFyeXRlbXBsYXRlJywKCQkJCQkgICAgICR0aGlzLT5MYW5nKCdzdWJtaXQnKSkpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdyZXNldF9zdW1tYXJ5dGVtcGxhdGUnLAoJCSAgICAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdyZXNldF9zdW1tYXJ5dGVtcGxhdGUnLAoJCQkJCSAgICAgJHRoaXMtPkxhbmcoJ3Jlc2V0dG9mYWN0b3J5JykpKTsKCiAgICAkc21hcnR5LT5hc3NpZ24oJ2xlZ2VuZF9kZXRhaWx0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5MYW5nKCd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfZGV0YWlsdGVtcGxhdGUnLAoJCSAgICAkdGhpcy0+TGFuZygncHJvbXB0X3RlbXBsYXRlJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9kZXRhaWx0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwkaWQsJGlucHV0X2RldGFpbHRlbXBsYXRlLAoJCQkJCSAgJ2lucHV0X2RldGFpbHRlbXBsYXRlJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXRfZGV0YWlsdGVtcGxhdGUnLAoJCSAgICAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdzdWJtaXRfZGV0YWlsdGVtcGxhdGUnLAoJCQkJCSAgICAgJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3Jlc2V0X2RldGFpbHRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwncmVzZXRfZGV0YWlsdGVtcGxhdGUnLAoJCQkJCSAgICAgJHRoaXMtPkxhbmcoJ3Jlc2V0dG9mYWN0b3J5JykpKTsKCgogICAgJHNtYXJ0eS0+YXNzaWduKCdsZWdlbmRfYnloaWVyYXJjaHl0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5MYW5nKCd0aXRsZV9ieWhpZXJhcmNoeV9kZmx0dGVtcGxhdGUnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9ieWhpZXJhcmNoeXRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkxhbmcoJ3Byb21wdF90ZW1wbGF0ZScpKTsKICAgICRzbWFydHktPmFzc2lnbignaW5wdXRfYnloaWVyYXJjaHl0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwkaWQsJGlucHV0X2J5aGllcmFyY2h5dGVtcGxhdGUsCgkJCQkJICAnaW5wdXRfYnloaWVyYXJjaHl0ZW1wbGF0ZScpKTsKICAgICRzbWFydHktPmFzc2lnbignc3VibWl0X2J5aGllcmFyY2h5dGVtcGxhdGUnLAoJCSAgICAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdzdWJtaXRfYnloaWVyYXJjaHl0ZW1wbGF0ZScsCgkJCQkJICAgICAkdGhpcy0+TGFuZygnc3VibWl0JykpKTsKICAgICRzbWFydHktPmFzc2lnbigncmVzZXRfYnloaWVyYXJjaHl0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3Jlc2V0X2J5aGllcmFyY2h5dGVtcGxhdGUnLAoJCQkJCSAgICAgJHRoaXMtPkxhbmcoJ3Jlc2V0dG9mYWN0b3J5JykpKTsKICAgIAoKICAgICRzbWFydHktPmFzc2lnbignbGVnZW5kX2NhdGVnb3J5bGlzdHRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkxhbmcoJ3RpdGxlX2NhdGVnb3J5bGlzdF9kZmx0dGVtcGxhdGUnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9jYXRlZ29yeWxpc3R0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5MYW5nKCdwcm9tcHRfdGVtcGxhdGUnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X2NhdGVnb3J5bGlzdHRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCRpZCwkaW5wdXRfY2F0ZWdvcnlsaXN0dGVtcGxhdGUsCgkJCQkJICAnaW5wdXRfY2F0ZWdvcnlsaXN0dGVtcGxhdGUnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdF9jYXRlZ29yeWxpc3R0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdF9jYXRlZ29yeWxpc3R0ZW1wbGF0ZScsCgkJCQkJICAgICAkdGhpcy0+TGFuZygnc3VibWl0JykpKTsKICAgICRzbWFydHktPmFzc2lnbigncmVzZXRfY2F0ZWdvcnlsaXN0dGVtcGxhdGUnLAoJCSAgICAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdyZXNldF9jYXRlZ29yeWxpc3R0ZW1wbGF0ZScsCgkJCQkJICAgICAkdGhpcy0+TGFuZygncmVzZXR0b2ZhY3RvcnknKSkpOwoKICAgICRzbWFydHktPmFzc2lnbignbGVnZW5kX3NlYXJjaHRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkxhbmcoJ3RpdGxlX3NlYXJjaF9kZmx0dGVtcGxhdGUnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9zZWFyY2h0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5MYW5nKCdwcm9tcHRfdGVtcGxhdGUnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X3NlYXJjaHRlbXBsYXRlJywKCQkgICAgJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCRpZCwkaW5wdXRfc2VhcmNodGVtcGxhdGUsCgkJCQkJICAnaW5wdXRfc2VhcmNodGVtcGxhdGUnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdF9zZWFyY2h0ZW1wbGF0ZScsCgkJICAgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdF9zZWFyY2h0ZW1wbGF0ZScsCgkJCQkJICAgICAkdGhpcy0+TGFuZygnc3VibWl0JykpKTsKICAgICRzbWFydHktPmFzc2lnbigncmVzZXRfc2VhcmNodGVtcGxhdGUnLAoJCSAgICAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdyZXNldF9zZWFyY2h0ZW1wbGF0ZScsCgkJCQkJICAgICAkdGhpcy0+TGFuZygncmVzZXR0b2ZhY3RvcnknKSkpOwogICAgCiAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2RmbHRfdGVtcGxhdGVzLnRwbCcpOwogIH0KICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKCn0KCi8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/functions.admin_tools.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBQcm9kdWN0cyAoYykgMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgoKZnVuY3Rpb24gcHJvZHVjdHNfU2VhcmNoUmVpbmRleCgmJG1vZCwkbW9kdWxlKQp7CiAgJGRiID0gJG1vZC0+R2V0RGIoKTsKICAKICAkcXVlcnkgPSAnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cyB3aGVyZSBzdGF0dXMgPSA/JzsKICAkcmVzdWx0ID0gJiRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJ3B1Ymxpc2hlZCcpKTsKICAKICB3aGlsZSAoJHJlc3VsdCAmJiAhJHJlc3VsdC0+RU9GKQogICAgewogICAgICAkZGF0YSA9ICRtb2QtPkdldFNlYXJjaGFibGVUZXh0KCRyZXN1bHQtPmZpZWxkc1snaWQnXSk7CiAgICAgICRtb2R1bGUtPkFkZFdvcmRzKCRtb2QtPkdldE5hbWUoKSwgJHJlc3VsdC0+ZmllbGRzWydpZCddLCAncHJvZHVjdCcsIAoJCQlpbXBsb2RlKCcgJywgJGRhdGEgKSApOwogICAgICAkcmVzdWx0LT5Nb3ZlTmV4dCgpOwogICAgfQp9CgpmdW5jdGlvbiBwcm9kdWN0c19CdWlsZEhpZXJhcmNoeUxpc3QoJiRtb2QpCnsKICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogIAogICRoaWVyYXJjaHlfaXRlbXMgPSBhcnJheSgpOwogICRoaWVyYXJjaHlfaXRlbXNbJG1vZC0+TGFuZygnbm9uZScpXSA9IC0xOwogICRxdWVyeSA9ICdTRUxFQ1QgaGllcmFyY2h5LCBsb25nX25hbWUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBXSEVSRSBpZCA9IC0xJzsKICAkZGJyID0gJGRiLT5FeGVjdXRlKCAkcXVlcnkgKTsKICAkbG9uZ25hbWUgPSAnJzsKICB3aGlsZSggJGRiciAmJiAoJHJvdyA9ICRkYnItPkZldGNoUm93KCkpICkKICAgIHsKICAgICAgJGxvbmduYW1lID0gJHJvd1snaGllcmFyY2h5J10gLiAnJSc7CiAgICB9CiAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCwgbG9uZ19uYW1lIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkKICAgICAgICAgICBXSEVSRSBoaWVyYXJjaHkgTk9UIExJS0UgPwogICAgICAgICAgIE9SREVSIEJZIGhpZXJhcmNoeSc7CiAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGxvbmduYW1lKSk7CiAgd2hpbGUoICRkYnIgJiYgKCRyb3cgPSAkZGJyLT5GZXRjaFJvdygpKSApCiAgICB7CiAgICAgICRoaWVyYXJjaHlfaXRlbXNbJHJvd1snbG9uZ19uYW1lJ11dID0gJHJvd1snaWQnXTsKICAgIH0KICAKICByZXR1cm4gJGhpZXJhcmNoeV9pdGVtczsKfQoKCmZ1bmN0aW9uIHByb2R1Y3RzX0dldFR5cGVzRHJvcGRvd24oICYkbW9kLCAkaWQsICRuYW1lLCAkc2VsZWN0ZWQgPSAnJywgJGFkZHRleHQgPSAnJywgCgkJCQkgICAgJHNlbGVjdG9uZSA9IGZhbHNlICkKewogICRpdGVtcyA9IHByb2R1Y3RfdXRpbHM6OmdldF9maWVsZF90eXBlcygkc2VsZWN0b25lKTsKCiAgLy8gQ3JlYXRlSW5wdXREcm9wZG93biB3YW50cyB0aGUgbGFiZWxzIGZpcnN0IGZvciBzb21lIHJlYXNvbi4KICAkaXRlbXMgPSBhcnJheV9mbGlwKCRpdGVtcyk7CiAgCiAgcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAkbmFtZSwgJGl0ZW1zLCAtMSwgJHNlbGVjdGVkLCRhZGR0ZXh0KTsKfQoJCgpmdW5jdGlvbiBwcm9kdWN0c19IYW5kbGVVcGxvYWRlZEltYWdlKCYkbW9kLCRpZCwkbmFtZSwkZGVzdGRpciwmJGVycm9ycywkc3ViZmllbGQ9JycsJHdtbG9jYXRpb249JycsJG92ZXJ3cml0ZT1mYWxzZSkKewogICAgY2dlX2Rpcjo6bWtkaXJyKCRkZXN0ZGlyKTsKICAgIGlmKCAhaXNfZGlyKCRkZXN0ZGlyKSApIHJldHVybiBGQUxTRTsKICAgIAogICAgJGhhbmRsZXIgPSBjZ2Vfc2V0dXA6OmdldF91cGxvYWRlcigkaWQsJGRlc3RkaXIpOwoJJGhhbmRsZXItPnNldF9hY2NlcHRlZF9maWxldHlwZXMoJG1vZC0+R2V0UHJlZmVyZW5jZSgnYWxsb3dlZF9maWxldHlwZXMnKSk7CiAgICAkaGFuZGxlci0+c2V0X2FjY2VwdGVkX2ltYWdldHlwZXMoJG1vZC0+R2V0UHJlZmVyZW5jZSgnYWxsb3dlZF9pbWFnZXR5cGVzJykpOwogICAgJGhhbmRsZXItPnNldF9hbGxvd19vdmVyd3JpdGUoJG92ZXJ3cml0ZSk7CgkkaGFuZGxlci0+c2V0X2RlbGV0ZV9vcmlnKGZhbHNlKTsKCSRoYW5kbGVyLT5zZXRfcHJldmlldygkbW9kLT5HZXRQcmVmZXJlbmNlKCdhdXRvcHJldmlld2ltZycpKTsKCSRzaXplID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnYXV0b19wcmV2aWV3aW1nX3NpemUnLDE1MCk7CgkkaGFuZGxlci0+c2V0X3ByZXZpZXdfc2l6ZSgkc2l6ZSk7CiAgICAkaGFuZGxlci0+c2V0X3RodW1ibmFpbCgkbW9kLT5HZXRQcmVmZXJlbmNlKCdhdXRvdGh1bWJuYWlsJykpOwoJJGhhbmRsZXItPnNldF90aHVtYm5haWxfc2l6ZSgkbW9kLT5HZXRQcmVmZXJlbmNlKCdhdXRvX3RodW1ibmFpbF9zaXplJyw3NSkpOwoKICAgICRoYW5kbGVyLT5zZXRfd2F0ZXJtYXJrKCRtb2QtPkdldFByZWZlcmVuY2UoJ2F1dG93YXRlcm1hcmsnLCdub25lJykgIT0gJ25vbmUnICYmICR3bWxvY2F0aW9uICE9ICdub25lJyk7CiAgICBpZiggIWVtcHR5KCR3bWxvY2F0aW9uKSAmJiAkd21sb2NhdGlvbiAhPSAnZGVmYXVsdCcgKSAKCSAgewoJCSRoYW5kbGVyLT5nZXRfd2F0ZXJtYXJrX29iaigpLT5zZXRfYWxpZ25tZW50KCR3bWxvY2F0aW9uKTsKCSAgfQoKICAgICRyZXMgPSAkaGFuZGxlci0+aGFuZGxlX3VwbG9hZCgkbmFtZSwnJywkc3ViZmllbGQpOwogICAgJGVyciA9ICRoYW5kbGVyLT5nZXRfZXJyb3IoKTsKICAgCiAgICBpZiggISRyZXMgJiYgJGVyciAhPSBjZ19maWxldXBsb2FkOjpOT0ZJTEUgKQogICAgICB7CgkJLy8gdXBsb2FkIGVycm9yCgkJJGVycm9yc1tdID0gc3ByaW50ZigiJXMgJXM6ICVzIiwkbW9kLT5MYW5nKCdmaWVsZCcpLCRuYW1lLAoJCQkJCQkJJG1vZC0+R2V0VXBsb2FkRXJyb3JNZXNzYWdlKCRlcnIpLicgLSAnLiRoYW5kbGVyLT5nZXRfZXJyb3Jtc2coKSk7CgkJcmV0dXJuIEZBTFNFOwogICAgICB9CiAgICBpZiggZW1wdHkoJHJlcykgfHwgJHJlcyA9PT0gZmFsc2UgKQogICAgICB7CgkJLy8gbm8gZmlsZSB3YXMgdXBsb2FkZWQKCQkvLyBkbyBub3RoaW5nCgkJcmV0dXJuIFRSVUU7CiAgICAgIH0KICAgIAogICAgJGZpbGVuYW1lID0gJHJlczsKICAgIHJldHVybiAkZmlsZW5hbWU7Cn0KCgpmdW5jdGlvbiBwcm9kdWN0c19Qcm9jZXNzSW1hZ2UoJiRtb2QsJHNyY25hbWUsJHdtbG9jYXRpb249J2RlZmF1bHQnKQp7CiAgJGVycm9ycyA9IGFycmF5KCk7CiAgaWYoIGVtcHR5KCRzcmNuYW1lKSApIHJldHVybiBGQUxTRTsKICBpZiggIWZpbGVfZXhpc3RzKCRzcmNuYW1lKSApIHJldHVybiBGQUxTRTsKICAkZGVzdGRpciA9IGRpcm5hbWUoJHNyY25hbWUpOwogICRmaWxlbmFtZSA9IGJhc2VuYW1lKCRzcmNuYW1lKTsKCiAgLy8gb3B0aW9uYWwgd2F0ZXJtYXJraW5nCiAgaWYoIGVtcHR5KCR3bWxvY2F0aW9uKSApICR3bWxvY2F0aW9uID09ICdkZWZhdWx0JzsKICBpZiggJG1vZC0+R2V0UHJlZmVyZW5jZSgnYXV0b3dhdGVybWFyaycpICE9ICdub25lJyAmJiAkd21sb2NhdGlvbiAhPSAnbm9uZScpCgl7CgkgICR0bXBuYW1lID0gY21zX2pvaW5fcGF0aCgkZGVzdGRpciwnd21fJy4kZmlsZW5hbWUpOwoJCgkgIC8vIHdhdGVybWFyayB0aGUgaW1hZ2UKCSAgJHdtb2JqID0gY2dlX3NldHVwOjpnZXRfd2F0ZXJtYXJrZXIoKTsKCSAgaWYoICR3bWxvY2F0aW9uICE9ICdkZWZhdWx0JyApCgkJewoJCSAgJHZhbCA9IChpbnQpJHdtbG9jYXRpb247CgkJICAvLyBjaGFuZ2UgdGhlIHdhdGVybWFyayBsb2NhdGlvbgoJCSAgJHdtb2JqLT5zZXRfYWxpZ25tZW50KCR2YWwpOwoJCX0KCQoJICAkcmVzID0gJHdtb2JqLT5jcmVhdGVfd2F0ZXJtYXJrZWRfaW1hZ2UoJHNyY25hbWUsJHRtcG5hbWUpOwoJCgkgIGlmKCBGQUxTRSAhPT0gJHJlcyApCgkJewoJCSAgLy8gd2F0ZXJtYXJraW5nIHdvcmtlZCBJIGd1ZXNzCgkJICAKCQkgIC8vIGRlbGV0ZSB0aGUgb3JpZ2luYWwKCQkgIEB1bmxpbmsoJHNyY25hbWUpOwoJCSAgCgkJICAvLyByZW5hbWUgdGhlIHdhdGVybWFrZWQgZmlsZQoJCSAgQHJlbmFtZSgkdG1wbmFtZSwkc3JjbmFtZSk7CgkJfQoJICBlbHNlCgkJewoJCSAgLy8gd2F0ZXJtYXJraW5nIGZhaWxlZAoJCSAgJHRtcCA9ICR3bW9iai0+Z2V0X2Vycm9yKCk7CgkJICAkdG1wMiA9ICRtb2QtPkdldFdhdGVybWFya0Vycm9yKCR0bXApOwoJCSAgaWYoIGlzX2FycmF5KCRlcnJvcnMpICkKCQkJewoJCQkgICRlcnJvcnNbXSA9ICR0bXAyOwoJCQl9CgkJICBlbHNlCgkJCXsKCQkJICAkZXJyb3JzID0gJHRtcDI7CgkJCX0KCQkgIEB1bmxpbmsoJHNyY25hbWUpOwoJCSAgcmV0dXJuIEZBTFNFOwoJCX0KICAgICAgfQoKICAgIC8vIG9wdGlvbmFsIHByZXZpZXcgaW1hZ2UKICAgIGlmKCAkbW9kLT5HZXRQcmVmZXJlbmNlKCdhdXRvcHJldmlld2ltZycpID09IDEgKQogICAgICB7CgkJJGRlc3RuYW1lID0gY21zX2pvaW5fcGF0aCgkZGVzdGRpciwncHJldmlld18nLiRmaWxlbmFtZSk7CgkJaWYoICFmaWxlX2V4aXN0cygkZGVzdG5hbWUpICkKCQkgIHsKCQkJJHNpemUgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdhdXRvX3ByZXZpZXdpbWdfc2l6ZScsNzUpOwoJCQkkbW9kLT5UcmFuc2Zvcm1JbWFnZSgkc3JjbmFtZSwkZGVzdG5hbWUsJHNpemUpOwoJCSAgfQogICAgICB9ICAKCiAgICAvLyBvcHRpb25hbCB0aHVtYm5haWxpbmcKICAgIGlmKCAkbW9kLT5HZXRQcmVmZXJlbmNlKCdhdXRvdGh1bWJuYWlsJykgPT0gMSApCiAgICAgIHsKCQkkZGVzdG5hbWUgPSBjbXNfam9pbl9wYXRoKCRkZXN0ZGlyLCd0aHVtYl8nLiRmaWxlbmFtZSk7CgkJaWYoICFmaWxlX2V4aXN0cygkZGVzdG5hbWUpICkKCQkgIHsKCQkJJHNpemUgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdhdXRvX3RodW1ibmFpbF9zaXplJyw3NSk7CgkJCSRtb2QtPlRyYW5zZm9ybUltYWdlKCRzcmNuYW1lLCRkZXN0bmFtZSwkc2l6ZSk7CgkJICB9CiAgICAgIH0gIAoKCXJldHVybiBUUlVFOwp9CgoKZnVuY3Rpb24gcHJvZHVjdHNfRGVsZXRlUHJvZHVjdCgmJG1vZCwkcHJvZHVjdF9pZCwkdXBkYXRlX3NlYXJjaD10cnVlKQp7CiAgJGdDbXMgPSBjbXNtcygpOwogICRkYiA9ICRnQ21zLT5HZXREYigpOwoKICAvLyBHZXQgdGhlIGNhdGVnb3J5IGRldGFpbHMKICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzIFdIRVJFIGlkID0gPyc7CiAgJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJHByb2R1Y3RfaWQpKTsKICAKICAvL05vdyByZW1vdmUgdGhlIGNhdGVnb3J5CiAgJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHMgV0hFUkUgaWQgPSA/IjsKICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcHJvZHVjdF9pZCkpOwogIAogIC8vQW5kIHJlbW92ZSBpdCBmcm9tIGFueSBjdXN0b20gZmllbGRzCiAgJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIFdIRVJFIHByb2R1Y3RfaWQgPSA/IjsKICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcHJvZHVjdF9pZCkpOwogIAogIC8vQW5kIHJlbW92ZSBpdCBmcm9tIGFueSBjYXRlZ29yaWVzCiAgJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzIFdIRVJFIHByb2R1Y3RfaWQgPSA/IjsKICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcHJvZHVjdF9pZCkpOwogIAogIC8vIGFuZCByZW1vdmUgdGhlIGhpZXJhcmNoeSBzdHVmZgogICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hpZXIgV0hFUkUgcHJvZHVjdF9pZCA9ID8nOwogICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwcm9kdWN0X2lkKSk7CiAgCiAgLy8gYW5kIChvcHRpb25hbGx5KSByZW1vdmUgYWxsIGZpbGVzCiAgaWYoICRtb2QtPkdldFByZWZlcmVuY2UoJ2RlbGV0ZXByb2R1Y3RmaWxlcycpICkKCXsKCSAgJGRpciA9IGNtc19qb2luX3BhdGgoJGdDbXMtPmNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJG1vZC0+R2V0TmFtZSgpLCdwcm9kdWN0XycuJHByb2R1Y3RfaWQpOwoJICBjZ2VfZGlyOjpyZWN1cnNpdmVfcmVtb3ZlX2RpcmVjdG9yeSgkZGlyKTsKCX0KICAKICAvL1VwZGF0ZSBzZWFyY2ggaW5kZXgKICBpZiggJHVwZGF0ZV9zZWFyY2ggKQoJewoJICAkbW9kdWxlID0gJG1vZC0+R2V0TW9kdWxlSW5zdGFuY2UoJ1NlYXJjaCcpOwoJICBpZiAoJG1vZHVsZSAhPSBGQUxTRSkKCQl7CgkJICAkbW9kdWxlLT5EZWxldGVXb3JkcygkbW9kLT5HZXROYW1lKCksICRwcm9kdWN0X2lkLCAncHJvZHVjdCcpOwoJCX0KCX0KfQoKCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/help.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgd2F5IHRvIGNvbGxlY3QsIG9yZ2FuaXplLCBhbmQgZGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCBwcm9kdWN0cyBhbmQgdGhlaXIgY2F0ZWdvcmllcy4gIFRoaXMgbW9kdWxlIGNhbiBzdGFuZCBvbiBpdHMgb3duLCBvciBiZSBwYXJ0IG9mIGFuIGUtY29tbWVyY2Ugc29sdXRpb24gaWYgeW91IHdpc2guICBUaGUgbW9kdWxlIHN1cHBvcnRzIGEgcHJvZHVjdCBleGlzdGluZyBpbiBtb3JlIHRoYW4gb25lIGNhdGVnb3J5LCBzdXBwb3J0cyBwcm9kdWN0IHdlaWdodCwgcHJpY2UsIGFuZCBhdHRyaWJ1dGUgc2V0cy4gIEVhY2ggaXRlbSBpbiBhbiBhdHRyaWJ1dGUgc2V0IGNhbiBoYXZlIGEgcHJpY2UgYWRqdXN0bWVudC4gIEFsc28gYSBnbG9iYWwgZmxhZyBpbmRpY2F0ZXMgd2V0aGVyIHRoZSBwcm9kdWN0IGlzICd0YXhhYmxlJyBvciBub3QuPC9wPgogIDxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIG11bHRpcGxlIGN1c3RvbSBmaWVsZCBkZWZpbml0aW9ucywgYW5kIGZvciB0aGUgYWJpbGl0eSB0byBkaXNjcmltaW5hdGUgcHJpdmF0ZSBmcm9tIHB1YmxpYyBkYXRhLjwvcD4KPGgzPkZlYXR1cmVzOjwvaDM+Cjx1bD4KICA8bGk+TnVtZXJvdXMgVmlld3M8L2xpPgogICAgPHVsPgogICAgICA8bGk+U3VtbWFyeSB2aWV3PC9saT4KICAgICAgPGxpPkNhdGVnb3J5IExpc3QgVmlldzwvbGk+CiAgICAgIDxsaT5EZXRhaWwgdmlldzwvbGk+IAogICAgICA8bGk+SGllcmFyY2h5IERyaWxsLWRvd24gVmlldzwvbGk+CiAgICA8L3VsPgogIDxsaT5FbnRpcmVseSBEYXRhYmFzZSBUZW1wbGF0ZSBEcml2ZW48L2xpPgogIDxwPk51bWVyb3VzIHRlbXBsYXRlcyBvZiBlYWNoIHR5cGUgY2FuIGJlIGRlZmluZWQsIGRlZmF1bHRzIHNwZWNpZmllZCBmb3IgZWFjaCB0eXBlLCBhbmQgdGhlIHRlbXBsYXRlIHVzZWQgZm9yIGVhY2ggcGFydGljdWxhciB2aWV3IGNhbiBiZSBzcGVjaWZpZWQgYXMgYSBwYXJhbWV0ZXI8L3A+CiAgPGxpPlNvcnRpbmcgYW5kIHBhZ2luYXRpb24gaW4gdGhlIHN1bW1hcnkgdmlldzwvbGk+CiAgPGxpPlByb2R1Y3RzIGNhbiBleGlzdCBpbiBtdWx0aXBsZSBjYXRlZ29yaWVzPC9saT4KICA8bGk+TnVtZXJvdXMgY3VzdG9tIGZpZWxkcyBjYW4gYmUgZGVmaW5lZCwgaW5jbHVkaW5nIGltYWdlczwvbGk+CiAgPGxpPkF1dG9tYXRpYyB0aHVtYm5haWwgY3JlYXRpb248L2xpPgogIDxsaT5BZG1pbiBkZWZpbmVkIGZpZWxkczwvbGk+CiAgPGxpPlByb2R1Y3QgYXR0cmlidXRlcyAoaW5jbHVkaW5nIHByaWNlIGFkanVzdG1lbnQpPC9saT4KICA8bGk+V2VpZ2h0IGFuZCB0YXhhYmxlIGZpZWxkcyAoZm9yIHVzZSBpbiBlLWNvbW1lcmNlIHNvbHV0aW9ucyk8L2xpPgogIDxsaT5Qcm9kdWN0cyBjYW4gaGF2ZSBhIHN0YXR1cyAocHVibGlzaGVkIG9yIGRyYWZ0KSBpbiBvcmRlciB0byBoaWRlIHByb2R1Y3RzIGZyb20gcHVibGljIGRpc3BsYXkgYXQgYW55IHRpbWU8L2xpPgogIDxsaT5QcmV0dHkgVVJMIFN1cHBvcnQ8L2xpPgogIDxsaT48c3Ryb25nPk1vcmUuLi48L3N0cm9uZz48L2xpPgo8L3VsPgoKPGgzPkhvdyBEbyBJIFVzZSBJdDo8L2gzPgo8dWw+CjxsaT5TZXQgcHJlZmVyZW5jZXM8L2xpPgo8cD5Vc3VhbGx5IHRoaXMgaXMganVzdCBhIGZvcm1hbGl0eS4gIFlvdSBzaG91bGQgc3BlY2lmeSB5b3VyIGRlZmF1bHQgd2VpZ2h0IHVuaXRzLCBhbmQgeW91ciBkZWZhdWx0IGN1cnJlbmN5IHN5bWJvbCBmb3IgeW91ciBsb2NhbCBlbnZpcm9ubWVudC48L3A+CjxsaT5TZXR1cCB1c2VycyBhbmQgcGVybWlzc2lvbnM8L2xpPgo8cD5UaGlzIG1vZHVsZSB1c2VzIHRoZSAnTW9kaWZ5IFRlbXBsYXRlcycgcGVybWlzc2lvbiB0byBhbGxvdyB1c2VycyB0byBiZSBhYmxlIHRvIG1vZGlmeSB0aGUgdmFyaW91cyB0ZW1wbGF0ZXMgdGhhdCBjYW4gYmUgdXNlZCBieSB0aGlzIG1vZHVsZS4gIEFzIHdlbGwsIHRoZSAnTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnIHBlcm1pc3Npb24gaXMgbmVlZGVkIHRvIGJlIGFibGUgdG8gYWRqdXN0IHRoZSBtb2R1bGVzIHByZWZlcmVuY2VzLiAgSW4gb3JkZXIgdG8gaGF2ZSB0aGUgYWJpbGl0eSB0byBtb2RpZnkgZmllbGQgZGVmaW5pdGlvbnMsIGNhdGVnb3JpZXMsIG9yIHByb2R1Y3RzLCB5b3VyIHVzZXJzIHdpbGwgbmVlZCB0aGUgJ01vZGlmeSBQcm9kdWN0cycgcGVybWlzc2lvbi48L3A+CjxsaT4ob3B0aW9uYWwpIERlZmluZSBvbmUgb3IgbW9yZSBjYXRlZ29yaWVzPC9saT4KPHA+VGhpcyBpcyBhbiBvcHRpb25hbCBzdGVwLCBidXQgeW91IHdpbGwgcHJvYmFibHkgd2FudCB0byBkbyB0aGlzIGVhcmx5IHRvIHByZXZlbnQgaGF2aW5nIHRvIGdvIGJhY2sgdG8gbW9kaWZ5IGVhY2ggYW5kIGV2ZXJ5IHByb2R1Y3QgbGF0ZXIuICBBZGRpbmcgYSBjYXRlZ29yeSBpcyBhcyBzaW1wbGUgYXMgY2xpY2tpbmcgb24gdGhlICdDYXRlZ29yaWVzJyB0YWIgaW4gdGhlIFByb2R1Y3QgTWFuYWdlcnMgYWRtaW4gc2VjdGlvbiwgYW5kIGNsaWNraW5nICdBZGQgQSBDYXRlZ29yeScuICBGcm9tIHRoZXJlIHlvdSB3aWxsIGJlIHByb21wdGVkIGZvciBhIGNhdGVnb3J5IG5hbWUuPC9wPgo8bGk+KG9wdGlvbmFsKSBEZWZpbmUgb25lIG9yIG1vcmUgY3VzdG9tIGZpZWxkczwvbGk+CjxwPlRoaXMgaXMgYW4gb3B0aW9uYWwgc3RlcC4gIEN1c3RvbSBmaWVsZHMgYXJlIG5vdCBuZWVkZWQgaWYgdGhpcyBtb2R1bGUgc3VpdHMgeW91IGV4YWN0bHkgYXMgaXQgaXMuICBIb3dldmVyIGlmIHlvdSB3b3VsZCBsaWtlIHRvIHN0b3JlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gZm9yIGVhY2ggb2YgeW91ciBwcm9kdWN0cyB5b3UgY2FuIGNyZWF0ZSBjdXN0b20gZmllbGRzLiAgQ3JlYXRpbmcgY3VzdG9tIGZpZWxkcyBpcyBzaW1pbGFyIHRvIGNyZWF0aW5nIGNhdGVnb3JpZXMsIGV4Y2VwdCB0aGF0IG1vcmUgZGF0YSBpcyByZXF1ZXN0ZWQuPC9wPgo8cD5DdXJyZW50bHkgYSBudW1iZXIgb2YgdHlwZXMgb2YgY3VzdG9tIGZpZWxkcyBhcmUgYXZhaWxhYmxlLCBpbmNsdWRpbmc6ICd0ZXh0Ym94JywnY2hlY2tib3gnLGFuZCAndGV4dGFyZWEnLCAnZHJvcGRvd24nLCBhbmQgJ2ZpbGUnLiAgU2VsZWN0IG9uZSBvZiB0aGVzZSwgZ2l2ZSB5b3VyIG5ldyBmaWVsZCBhIG5hbWUsIGFuZCBpbmRpY2F0ZSB3ZXRoZXIgdGhhdCBmaWVsZCBzaG91bGQgYmUgdmlzaWJsZSB0byB0aGUgcHVibGljIGluIHRoZSB2YXJpb3VzIHZpZXdzLiAgVGhlbiBoaXQgc3VibWl0PC9wPgo8bGk+Q3JlYXRlIG9uZSBvciBtb3JlIHByb2R1Y3RzPC9saT4KPHA+WW91IHNob3VsZCBjcmVhdGUgb25lIG9yIG1vcmUgcHJvZHVjdHMgdG8gZGlzcGxheSBpbiB5b3VyIHdlYnNpdGUgY29udGVudC4gIEdpdmUgZWFjaCBwcm9kdWN0IGEgbmFtZSwgYSBwcmljZSAob3B0aW9uYWwpIGEgd2VpZ2h0IChvcHRpb25hbCksIGEgc3RhdHVzIChkcmFmdCBvciBwdWJsaXNoZWQpLCBhbmQgc29tZSBpbmZvcm1hdGlvbi4gIEFkZGl0aW9uYWxseSwgeW91IGNhbiBhbHNvIHNwZWNpZnkgaWYgdGhlIHByb2R1Y3QgaXMgdGF4YWJsZS48L3A+CjxwPklmIGNhdGVnb3JpZXMgYXJlIGRlZmluZWQsIHRoZW4gYSBjaGVja2JveCB3aWxsIGFwcGVhciBmb3IgZWFjaCBkZWZpbmVkIGNhdGVnb3J5LiAgWW91IGNhbiBzaW1wbHkgY2xpY2sgdGhlIGNoZWNrYm94IGZpZWxkcyBmb3IgZWFjaCBjYXRlZ29yeSB0aGF0IHRoaXMgcHJvZHVjdCBzaG91bGQgYmVsb25nIHRvLjwvcD4KPHA+SWYgY3VzdG9tIGZpZWxkcyBhcmUgZGVmaW5lZCwgdGhlbiBpbnB1dCBmaWVsZHMgYXBwcm9wcmlhdGUgdG8gdGhlIHR5cGUgb2YgY3VzdG9tIGZpZWxkIHdpbGwgYXBwZWFyIGFuZCBhbGxvdyB5b3UgdG8gc3BlY2lmeSBkYXRhIGZvciBlYWNoIG9mIHRoZW0uICBUaGlzIGRhdGEgaXMgb3B0aW9uYWwuPC9wPgo8bGk+QWRkIHRoZSBhcHByb3ByaWF0ZSB0YWdzIGludG8geW91ciBwYWdlIHRlbXBsYXRlcyBvciBwYWdlIGNvbnRlbnQ8L2xpPgo8cD5UaGlzIGNhbiBiZSBhcyBzaW1wbGUgYXMgYWRkaW5nIHRoZSA8c3Ryb25nPntQcm9kdWN0c308L3N0cm9uZz4gdGFnIGludG8gdGhlIGNvbnRlbnQgYXJlYSBvZiBvbmUgb2YgeW91ciBwYWdlcywgb3IgaW50byB5b3VyIHBhZ2UgdGVtcGxhdGUuPC9wPgo8cD5JZiB5b3Ugd2lzaCB0byBhbHRlciB0aGUgYmVoYXZpb3VyIG9mIHRoaXMgYXBwbGljYXRpb24gZnJvbSBpdHMgZGVmYXVsdCwgeW91IGNhbiBkbyB0aGF0IGJ5IGFkZGluZyBvbmUgb3IgbW9yZSBwYXJhbWV0ZXJzIHRvIHRoZSA8c3Ryb25nPntQcm9kdWN0c308L3N0cm9uZz4gdGFnLiAgVGhlIGNvbXBsZXRlIGxpc3Qgb2YgcGFyYW1ldGVycyBhbmQgdGhlaXIgYmVoYXZpb3VyIGlzIGxpc3RlZCBiZWxvdy4gIEJ1dCBmb3IgZXhhbXBsZSwgdG8gZGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdHMgaW4gYSBzaW5nbGUsIGV4aXN0aW5nIGNhdGVnb3J5LCB5b3UgY291bGQgdXNlIGEgdGFnIGxpa2UgPGNvZGU+e1Byb2R1Y3RzIGNhdGVnb3J5PSdjYXRlZ29yeW5hbWUnfTwvY29kZT48L3A+CjwvdWw+CjxoMz5TbWFydHkgUGx1Z2luczwvaDM+CjxwPlRoaXMgbW9kdWxlIGFsc28gcmVnaXN0ZXJzIG9uZSBvciBtb3JlIHNtYXJ0eSBwbHVnaW5zIHRvIGFpZGUgaW4gcmV0cmlldmluZyB2YXJpb3VzIHByb2R1Y3RzIHJlbGF0ZWQgaW5mb3JtYXRpb24gd2hlbiBkZXNpZ25pbmcgcHJvZHVjdHMgbW9kdWxlIHRlbXBsYXRlczo8L3A+Cjx1bD4KICA8bGk+e3Byb2R1Y3RzX2dldGNhdGVnb3J5IGNhdGVnb3J5aWQ9Jzk5JyBbYXNzaWduPSd0bXAnXX0KICA8cD5UaGlzIHBsdWdpbiBhbGxvd3MgcmV0cmlldmluZyBhbGwgb2YgdGhlIGluZm9ybWF0aW9uIGZvciBhIHNwZWNpZmljIGNhdGVnb3J5IGlkIGFuZCBvcHRpb25hbGx5IGFzc2lnbmluZyBpdCB0byB0aGUgbmFtZWQgc21hcnR5IHZhcmlhYmxlLiAgVGhlIHJldHVybmVkIGlzIGFuIG9iamVjdCBjb250YWluaW5nIGFsbCBvZiB0aGUgaW5mb3JtYXRpb24gYWJvdXQgYSBjYXRlZ29yeSwgaW5jbHVkaW5nIGl0cyBmaWVsZCB2YWx1ZXMuPGJyLz5pLmU6LiA8Y29kZT57cHJvZHVjdHNfZ2V0Y2F0ZWdvcnkgY2F0ZWdvcnlpZD0xIGFzc2lnbj0ndG1wJ31DYXRlZ29yeSBuYW1lID0ge1wkdG1wLT5uYW1lfTwvY29kZT48L3A+CiAgPC9saT4KICA8bGk+e3Byb2R1Y3RzX2hpZXJhcmNoeV9icmVhZGNydW1iIGhpZXJhcmNoeWlkPSc5OScgW3BhZ2VpZD1hbGlhc10gW2RlbGltPScgJnJhcXVvICddW2Fzc2lnbj0ndG1wJ119CiAgPHA+VGhpcyBwbHVnaW4gYWxsb3dzIHJldHJpZXZpbmcgdGhlIGJyZWFkY3J1bWIgcGF0aCB0byBhIHBhcnRpY3VsYXIgaGllcmFyY2h5IGlkIGFuZCBvcHRpb25hbGx5IGFzc2lnbmluZyBpdCB0byB0aGUgbmFtZWQgc21hcnR5IHZhcmlhYmxlLiAgVGhpcyBwbHVnaW4gd2lsbCBvdXRwdXQgemVybyBvciBtb3JlIGxpbmtzIHRvIGhpZXJhcmNoeSB2aWV3cyB3aXRoIG9uZSBsaW5rIGZvciBlYWNoIGxldmVsIGluIHRoZSBoaWVyYXJjaHkuICBUbyBzcGVjaWZ5IGEgZGlmZmVyZW50IGRlbGltaXRlciB1c2UgdGhlICJkZWxpbSIgYXJndW1lbnQuICBJZiBhbiBlbXB0eSBkZWxpbWl0ZXIgaXMgc3BlY2lmaWVkLCB0aGVuIGFuIGFycmF5IG9mIGxpbmtzIHdpbGwgYmUgcmV0dXJuZWQgcmF0aGVyIHRoYW4gb25lIGNvbmludW91cyBodG1sIHNlZ21lbnQuICBUbyBzcGVjaWZ5IGEgZGlmZmVyZW50IHBhZ2UgaWQgZm9ydGhlIGxpbmtzLCB1c2UgdGhlIHBhZ2VpZCBhdHRyaWJ1dGUuICAgSWYgdGhlIHBhZ2VpZCBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgYW5kIHRoZSBoaWVyYXJjaHkgaWQgcHJlZmVyZW5jZSBpcyBzZXQgaXQgd2lsbCBiZSB1c2VkLiAgT3RoZXJ3aXNlIHRoZSBjdXJyZW50IHBhZ2UgaWQgd2lsbCBiZSB1c2VkLjwvcD4KICA8L2xpPgogIDxsaT57cHJvZHVjdHNfaGllcmFyY2h5X3BhcmVudCBoaWVyYXJjaHlpZD05OSBbYXNzaWduPSd0bXAnXX0KICA8cD5UaGlzIHBsdWdpbiB3aWxsIHJldHVybiB0aGUgcGFyZW50IGhpZXJhcmNoeSBpZCBmb3IgYSBnaXZlbiBoaWVyYXJjaHkgaWQuICBJZiB0aGUgc3BlY2lmaWVkIGhpZXJhcmNoeSBpZCBkb2VzIG5vdCBleGlzdCwgdGhlbiBub3RoaW5nIHdpbGwgYmUgcmV0dXJuZWQuICBpZiB0aGUgc3BlY2lmaWVkIGhpZXJhcmNoeSBpZCBkb2VzIG5vdCBoYXZlIGEgcGFyZW50IHRoaXMgcGx1Z2luIHdpbGwgcmV0dXJuIC0xLjwvcD4KICA8L2xpPgo8L3VsPgo8aDM+VGhlIDxlbT5hamF4X3Byb3B2YWw8L2VtPiBBY3Rpb248L2gzPgogIDxwPlRoZSA8ZW0+YWpheF9wcm9wdmFsPC9lbT4gaXMgYSBzcGVjaWFsIGFjdGlvbiB0aGF0IGlzIHVzZWQgdG8gcmV0dXJuIHRoZSBkaXN0aW5jdCB2YWx1ZXMgb2YgYSBjdXN0b20gZmllbGQsIG9yIGEgcHJvcGVydHkgdmlhIGpzb24uICBUeXBpY2FsbHkgdGhpcyBhY3Rpb24gaXMgdXNlZCB0byBwZXJmb3JtIGF1dG9jb21wbGV0ZSBhY3Rpb25zLCBhbmQgdXN1YWxseSBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBzZWFyY2ggYWN0aW9uLiAgVGhpcyBhY3Rpb24gYWNjZXB0cyB0aGUgcGFyYW1ldGVyczogZmllbGQgZm9yIHRoZSBuYW1lIG9mIHRoZSBmaWVsZCwgYW5kIGZpZWxkdmFsIGZvciBpbmRpY2F0aW5nIGEgc3RhcnRpbmcgdmFsdWUuICBOb25lIG9mIHRoZSBwYXJhbWV0ZXJzIGNhbiBiZSBlbXB0eS4gIEJlbG93IHlvdSB3aWxsIGZpbmQgYSBzaW1wbGUgZXhhbXBsZSBvZiB1c2luZyB0aGUgYWpheF9wcm9wdmFsIGFjdGlvbiB0byBwZXJmb3JtIGF1dG9jb21wbGV0ZSBmb3IgcHJvZHVjdCBuYW1lcyBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBzZWFyY2ggdGVtcGxhdGUuPC9wPgo8cHJlPjxjb2RlPiZsdDtzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiZndDt7bGl0ZXJhbH0KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICB2YXIgYWpheF91cmwgPSAney9saXRlcmFsfTxzcGFuIHN0eWxlPSJjb2xvcjogZ3JlZW47Ij57bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT1Qcm9kdWN0cyBhY3Rpb249YWpheF9wcm9wdmFsIHVybG9ubHk9MSBqc2ZyaWVuZGx5PTF9PC9zcGFuPntsaXRlcmFsfSc7CiAgYWpheF91cmwgPSBhamF4X3VybCArIDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+JyZzaG93dGVtcGxhdGU9ZmFsc2UnPC9zcGFuPjsKCiAgJCg8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij4nI3Byb2R1Y3RuYW1lJzwvc3Bhbj4pLmF1dG9jb21wbGV0ZSh7CiAgICBzb3VyY2U6IGZ1bmN0aW9uKHJlcSxhZGQpewogICAgICB2YXIgdG1wID0gIGFqYXhfdXJsKzxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+JyZjbnRudDAxZmllbGQ9OjpuYW1lOjomY250bnQwMWZpZWxkdmFsPSc8L3NwYW4+K3JlcS50ZXJtOwogICAgICAkLmdldEpTT04odG1wLGZ1bmN0aW9uKGpzb24pewogICAgICAgIGlmKCBqc29uLnN0YXR1cyA9PSAnT0snICYmIGpzb24uZGF0YS5sZW5ndGggPiAwKSB7CiAgICAgICAgICBhZGQoanNvbi5kYXRhKTsKICAgICAgICB9CiAgICAgIH0pCiAgICB9ICAgIAogIH0pOwp9KTsKey9saXRlcmFsfSZsdDsvc2NyaXB0Jmd0Owo8L2NvZGU+PC9wcmU+CjxwPkFzIHlvdSBjYW4gc2VlIGZyb20gdGhlIGFib3ZlIGNvZGUgc25pcHBldC4uIHRoZSB7bW9kdWxlX2FjdGlvbl9saW5rfSBwbHVnaW4gZnJvbSBDR1NpbXBsZVNtYXJ0eSBpcyB1c2VkIHRvIGdlbmVyYXRlIGEgdXJsIHRoYXQgd2lsbCB0cmlnZ2VyIHRoZSBhamF4X3Byb3B2YWwgYWN0aW9uLiAgQWZ0ZXIgdGhhdCBVUkwgaXMgcmV0cmlldmVkLCB0aGUgc2hvd3RlbXBsYXRlPWZhbHNlIHBhcmFtZXRlciBpcyBhZGRlZCB0byB0aGUgVVJMLiAgIFdoZW4gc2V0dGluZyB1cCB0aGUgYXV0b2NvbXBsZXRlIHBsdWdpbiwgdGhlIGNhbGxiYWNrIHVzZWQgdG8gZmlsbCBpbiB0aGUgZGF0YSB2YWx1ZXMgZm9yIHRoZSBmaWVsZCB1c2VzIGFqYXguICBXZSB0YWtlIHRoZSBhamF4X3VybCBhbHJlYWR5IHByZXBhcmVkIGFuZCBhZGQgdGhlIGZpZWxkPTo6bmFtZTo6IGFuZCBmaWVsZHZhbD1yZXEudGVybSBwYXJhbWV0ZXJzIHRvIHRoZSBVUkwuICBUaGUgdGVybSBpcyBhdXRvbWF0aWNhbGx5IHByb3ZpZGVkIGJ5IHRoZSBhdXRvY29tcGxldGUgcGx1Z2luIGluIHRoZSByZXEudGVybSB2YXJpaWFibGUuPC9wPgo8cD5UbyB1c2UgdGhpcyBleGFtcGxlLCB0aGUgdXNlciB3b3VsZCBuZWVkIHRvIGVuc3VyZSB0aGF0IGpxdWVyeSBpcyBsb2FkZWQsIGFsb25nIHdpdGggdGhlIGpxdWVyeSB1aSAoaW5jbHVkaW5nIGF1dG9jb21wbGV0ZSksIGFuZCBhbnkgcmVxdWlyZWQgc3R5bGVzaGVldHMuICBUaGlzIGNvdWxkIGJlIGRvbmUgZWl0aGVyIGluIHRoZSBwYWdlIHNwZWNpZmljIG1ldGFkYXRhIGZpZWxkIHdoZW4gZWRpdGluZyB0aGUgcGFnZSBjb250YWluaW5nIHRoZSBzZWFyY2ggZm9ybSwgb3IgaW4gdGhlIHBhZ2UgdGVtcGxhdGUgaXRzZWxmLjwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gIEhvd2V2ZXIgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMgb3IgdG8gZmlsZSBhIGJ1ZyByZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgY21zIG1hZGUgc2ltcGxlIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlcnMgRm9yZ2U8L2E+IGFuZCBkbyBhIHNlYXJjaCBmb3IgJ1Byb2R1Y3RzJzwvbGk+CjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj5Sb2JlcnQgQ2FtcGJlbGw8L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcm1zLjwvYT48L2xpPgo8bGk+Rm9yIHNvbWUgcXVlc3Rpb25zIGFuZCBsaW1pdGVkIHRlY2huaWNhbCBzdXBwb3J0LCB0aGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjwvdWw+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mbHQ7Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPgo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIApzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+Cg==]]></data>
	</file>
	<file>
	  <filename>/icons/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/icons/database_edit.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKRSURBVDjLhVNLTBNRFD3TTju1FCcBaxuaQEr94ydiZIHGpcFISBOi0YREZWHCVoyRxKUxxq0LXcACQyLsjO6KjSEiDfHDz0S0CLSxlFKd2g7MTDudGd+bMAQCxJucuXfuu+fcO/PeYwzDALVoNMqRuI3guq7rR4g/SEBC/Svxc8T3EUTD4bCGTcZQAUI+RvxLr9d70u/3o6KiAm63G3Qtn89DFEUkk0lks9lRkrvW3t6e2lCgRZFI5F0ikaDtjN1MVVVjYmLCGBoa6qccC7Z1kQafz4f/WSAQAGlyaXOOpQ+SNNUymQxcLhc4joPD4TBzkiRBEASkUimEQiGzdlcBlmWRy+WgKIr5Xi6XUSgUUCwWzTVN+IAzeOOde71orP0eAaOkbrDWf6Cw2+3mBLSYgny3KULXPOUY2BUB/hMd4IOn8XfhMGYjvU+2TECLLRLDMNA0zYw5JYa6Ghke/hyEn9/gZEqo3OuHp7qW3yJgESjoNPSdlb8gWCOCr29BMT0Ip5tBYnIWqlL6o8irzVsEaHcKSqQCen4cweok+FAblNRz2JxlODx1cEkzGWmVbTl7Z/jHhgCF1Z3GYjIKf+U8+ANhQn4Gm6OMUiGI9MhHg5Gl1sbu8UnKNc8B7Ui3ipxEcwvlpVFw6hz2N1xGabkXdqeBYqEOmfefEZWac4e6xz9Z22hbn+BmLBZbi8fjEBdG4NF/QdUDSM88hQ4FawKJR6cxLDZl86qzZdtdoDYwMBAkQg/2LL/ovNLVh++Dd7G0OAau9hTkrKgnnE39GW3f/Z6enpUdBSx7ePu4eq+zi4VNw+TbV0gsxFd5b9X5i4+mpnY63tsErl6okhvrfWzT0SAMR3FMXsnean08Pb/b/fgHqpjCspi90kkAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/icons/table_relationship.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIpSURBVDjLpZP7T1JhGMfPn9RaznVZa7Zhl1WoOI1ZtNlmq5Wrma1jMTSG5li1ahWSFJKmjuhEYzVJCDGQUNJI7WYX7ALnhFwiKFvn2zkHKw6d33y27y/v830+++5535cAQCxHhN7+AR23I9Ba30EzMIeTva9BWl4+ljJbRhLqHk9i/trDOLpdDLoeMCAyuZ8oVtP1WVYKYPYsfCv2Eqd9bdB61dB4SJxwNQuHjcZnkAKY3F+Efu/0VZjDV9A9eVFoiIo37L88JQkwDjNCv7CIPm8MheINey+ERIC6/kpFtXkbdhjKUdtVIfITVn9URGRSOajOBv8ClH1yRZVpK9s63IL2kVbIz20RBvkaGI3mAVQgBmosCsd4FG8+p7Gzc0wA1Fi2KyqMm1nyfhNqjHKsP1WKct1GDPpisPLy0/8nePUxhWqdD1xkJReZbXY0oqxjLbtOU7JJf2ceqewibAFa8FKBJYCQgktg49Rg3QMuMupv1uGw/QA26Faza9SrZHyidtt7JDOLsAdp3B3Pixh6QiOd/bdZVY8SGjeJg1QDH5ktbVkp+7OPtsG3SHz9gXuhfALnJPeQHBM0ClVrqOIjg4uMkuMrZIW3oe6fEwBD3KBzScQtPy3awfNIEiq9T/IdkDdeYIEDuJ4ygtcd5gD8QLF2dT76JQU4ap5FPP0ddDKHT/EsInQGRKXWi2KVHXNSUoAjppnRQ4ZwZt+lKdSfD2H3meDyvjKv3+cfGcwF4FggAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBBCiRsYW5nWydhYmJyX2xlbmd0aCddID0gJ0wnOwokbGFuZ1snYWJicl93aWR0aCddID0gJ1cnOwokbGFuZ1snYWJicl9oZWlnaHQnXSA9ICdIJzsKJGxhbmdbJ2FkZCddID0gJ0FkZCc7CiRsYW5nWydhZGRjYXRlZ29yeSddID0gJ0FkZCBBIENhdGVnb3J5JzsKJGxhbmdbJ2FkZGZpZWxkZGVmJ10gPSAnQWRkIEEgRmllbGQnOwokbGFuZ1snYWRqdXN0YWJsZSddID0gJ0FkanVzdGFibGUnOwokbGFuZ1snYWRkcHJvZHVjdCddID0gJ0FkZCBhbiBJdGVtJzsKJGxhbmdbJ2FkZF9hdHRyaWJfc2V0J10gPSAnQWRkIEF0dHJpYnV0ZSc7CiRsYW5nWydhZGRfY2F0ZWdvcnlfZmllbGQnXSA9ICdBc3NvY2lhdGUgRmllbGQgd2l0aCBDYXRlZ29yeTogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnQWRkIEhpZXJhcmNoeSBJdGVtJzsKJGxhbmdbJ2FkZF9vcHRpb24nXSA9ICdBZGQgQXR0cmlidXRlIE9wdGlvbic7CiRsYW5nWydhZG1pbl9vbmx5J10gPSAnQ2FuIG9ubHkgYWRtaW5zIHNlZSB0aGlzIGF0dHJpYnV0ZT8nOwokbGFuZ1snYWR2YW5jZWQnXSA9ICdBZHZhbmNlZCc7CiRsYW5nWydhbGlnbl91bCddID0gJ1RvcCBMZWZ0JzsKJGxhbmdbJ2FsaWduX3VjJ10gPSAnVG9wIENlbnRlcic7CiRsYW5nWydhbGlnbl91ciddID0gJ1RvcCBSaWdodCc7CiRsYW5nWydhbGlnbl9tbCddID0gJ01pZGRsZSBMZWZ0JzsKJGxhbmdbJ2FsaWduX21jJ10gPSAnQ2VudGVyJzsKJGxhbmdbJ2FsaWduX21yJ10gPSAnTWlkZGxlIFJpZ2h0JzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnQm90dG9tIExlZnQnOwokbGFuZ1snYWxpZ25fbGMnXSA9ICdCb3R0b20gQ2VudGVyJzsKJGxhbmdbJ2FsaWduX2xyJ10gPSAnQm90dG9tIFJpZ2h0JzsKJGxhbmdbJ2FsbCddID0gJ0FsbCc7CiRsYW5nWydhbGxjYXRlZ29yaWVzJ10gPSAnQWxsIENhdGVnb3JpZXMnOwokbGFuZ1snYW55J10gPSAnQW55JzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdBcmUgWW91IFN1cmU/JzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlcHJvZHVjdCddID0gJ0FyZSB5b3Ugc3VyZSB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgaXRlbSwgYW5kIGFsbCBvZiB0aGUgYWNjb21wYW55aW5nIGluZm9ybWF0aW9uIGZvciBpdD8nOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAnQXNjZW5kaW5nJzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnQXR0cmlidXRlIE5hbWUnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGljJzsKCiMgQgokbGFuZ1snYnRuX3NldGVjb21oYW5kbGVycyddID0gJ1NldCBFY29tbWVyY2UgRXZlbnQgSGFuZGxlcnMnOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZXMnXSA9ICdIaWVyYXJjaHkgUmVwb3J0IFRlbXBsYXRlcyc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBIaWVyYXJjaHkgUmVwb3J0IFRlbXBsYXRlJzsKCiMgQwokbGFuZ1snY2FuY2VsJ10gPSAnQ2FuY2VsJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yaWVzJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnQ2F0ZWdvcnknOwokbGFuZ1snY2F0ZWdvcnlleGlzdHMnXSA9ICdBIGNhdGVnb3J5IGJ5IHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cyc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdDYXRlZ29yeUxpc3QgVGVtcGxhdGVzJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBBIENhdGVnb3J5TGlzdCBUZW1wbGF0ZSc7CiRsYW5nWydjZW50aW1ldGVycyddID0gJ0NlbnRpbWV0ZXJzJzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnQ2hlY2tib3gnOwokbGFuZ1snY29uZmlybV9jb3B5YXR0cmlidXRlcyddID0gJ0FueSBleGlzdGluZyBhdHRyaWJ1dGUgc2V0cyBmb3IgdGhpcyBpdGVtIHdpbGwgYmUgcmVtb3ZlZC4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNvbnRpbnVlPyc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9oaWVyYXJjaHlfbm9kZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBub2RlPyAgQW55IGl0ZW1zIHRoYXQgYXJlIHVzaW5nIHRoaXMgbm9kZSB3aWxsIGJlIHNldCB0byBubyBoaWVyYXJjaHknOwokbGFuZ1snY29uZmlybV9pbXBvcnQnXSA9ICJBcmUgeW91IHN1cmUgeW91IHJlYWxseSB3YW50IHRvIGRvIHRoaXM/XFxuXFxuSW1wcm9wZXIgc2V0dGluZ3MsIG9yIGFuIGludmFsaWQgY29uZmlnIGZpbGUgY291bGQgY29tcGxldGVseSBjb3JydXB0IGEgY3VycmVudGx5IHZhbGlkIGFuZCB3b3JraW5nIHN5c3RlbS4iOwokbGFuZ1snY29weSddID0gJ0NvcHknOwokbGFuZ1snY29weV9wcm9kdWN0J10gPSAnQ29weSB0aGlzIGl0ZW0nOwokbGFuZ1snY29weV9hdHRyaWJfc2V0cyddID0gJ0NvcHkgQXR0cmlidXRlIFNldHMnOwokbGFuZ1snY29weV9jYXRlZ29yeSddICA9ICdDb3B5IENhdGVnb3J5JzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnQ3JlYXRlZCBEYXRlJzsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICdDdXJyZW50IFZhbHVlJzsKCiMgRAokbGFuZ1snZGF0YSddID0gJ0RhdGEnOwokbGFuZ1snZGVmYXVsdCddID0gJ0RlZmF1bHQnOwokbGFuZ1snZGVmYXVsdHRlbXBsYXRlcyddID0gJ0RlZmF1bHQgVGVtcGxhdGVzJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSA8PDxFT1QKPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGUgY29udGVudHMgb2YgdGhlc2UgdGV4dCBhcmVhcyBhcmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIGRlZmF1bHQgY29udGVudCBvZiB0ZW1wbGF0ZXMgd2hlbiB5b3UgY2xpY2sgJnF1b3Q7QWRkIFRlbXBsYXRlJnF1b3Q7IGluIHRoZSBhcHByb3ByaWF0ZSB0ZW1wbGF0ZSB0YWIuICBFZGl0aW5nIG9uZSBvZiB0aGVzZSB0ZXh0IGFyZWFzIHdpbGwgaGF2ZSBubyBpbW1lZGlhdGUgZWZmZWN0IG9uIHlvdXIgd2Vic2l0ZS4KRU9UOwokbGFuZ1snZGVsZXRlJ10gPSAnRGVsZXRlJzsKJGxhbmdbJ2RlbGV0ZV9hdHRyaWJzZXQnXSA9ICdEZWxldGUgQXR0cmlidXRlJzsKJGxhbmdbJ2RlbGV0ZV9oaWVyYXJjaHlfaXRlbSddID0gJ0RlbGV0ZSBIaWVyYXJjaHkgSXRlbSc7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnRGVzY2VuZGluZyc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXB0aW9uJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uJ10gPSAnRGVzdGluYXRpb24nOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFpbHMnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAnRGV0YWlsIFRlbXBsYXRlcyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgQSBEZXRhaWwgVGVtcGxhdGUnOwokbGFuZ1snZGltZW5zaW9ucyddID0gJ0RpbWVuc2lvbnMnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdEaXNhYmxlZCc7CiRsYW5nWydkb3duJ10gPSAnTW92ZSBEb3duJzsKJGxhbmdbJ2RyYWZ0J10gPSAnRHJhZnQnOwokbGFuZ1snZHJvcGRvd24nXSA9ICdEcm9wZG93bic7CiRsYW5nWydkcm9wZG93bl9vcHRpb25zJ10gPSAnRHJvcGRvd24gT3B0aW9ucyA8ZW0+KGFwcGxpY2FibGUgb25seSBmb3IgZHJvcGRvd24gZmllbGRzKTwvZW0+PGJyLz48YnIvPjxlbT4ob25lIGVudHJ5IHBlciBsaW5lKTwvZW0+JzsKCiMgRQokbGFuZ1snZWRpdCddID0gJ0VkaXQnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXQnXSA9ICdFZGl0IEF0dHJpYnV0ZSc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICdFZGl0IEF0dHJpYnV0ZSBTZXRzJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0c19mb3InXSA9ICdFZGl0IEF0dHJpYnV0ZSBTZXRzIEZvcic7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdFZGl0IEF0dHJpYnV0ZXMnOwokbGFuZ1snZWRpdF9jYXRlZ29yeSddID0gJ0VkaXQgQ2F0ZWdvcnknOwokbGFuZ1snZWRpdF9jYXRlZ29yeV9maWVsZHMnXSA9ICdFZGl0IENhdGVnb3J5IEZpZWxkcyBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snZWRpdF9oaWVyYXJjaHlfaXRlbSddID0gJ0VkaXQgSGllcmFyY2h5IEl0ZW0nOwokbGFuZ1snZXJyb3JzJ10gPSAnRXJyb3JzJzsKJGxhbmdbJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnXSA9ICdBbiBhdHRyaWJ1dGUgd2l0aCB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snZXJyb3JfZGJlcnJvciddID0gJ0RhdGFiYXNlIGVycm9yJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZV9za3UnXSA9ICdEdXBsaWNhdGUgU0tVIHZhbHVlIGZvdW5kJzsKJGxhbmdbJ2Vycm9yX2ZpZWxkdmFsdWVfZW1wdHknXSA9ICdUaGUgRmllbGQgVmFsdWUgY2Fubm90IGJlIGVtcHR5JzsKJGxhbmdbJ2Vycm9yX2ZpbGVmb3JtYXQnXSA9ICdGaWxlIEZvcm1hdCBQcm9ibGVtJzsKJGxhbmdbJ2Vycm9yX2ZpbGVub3Rmb3VuZCddID0gJ0ZpbGUgTm90IEZvdW5kJzsKJGxhbmdbJ2Vycm9yX2ZpbGVvcGVuJ10gPSAnUHJvYmxlbSBvcGVuaW5nIGZpbGUgJXMnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmVudCddID0gJ0ludmFsaWQgUGFyZW50IChhIGhpZXJhcmNoeSBub2RlIGNhbm5vdCBiZSBpdFwncyBvd24gcGFyZW50KSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX25hbWUnXSA9ICdUaGUgY3VzdG9tIGZpZWxkIHZhbHVlIGVudGVyZWQgaXMgaW52YWxpZCAoY29udGFpbnMgbm9uIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzKSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX3ZhbHVlJ10gPSAnSW52YWxpZCB2YWx1ZSBzcGVjaWZpZWQnOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnQSByZXF1aXJlZCBwYXJhbWV0ZXIgaXMgbWlzc2luZyBvciBpbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX25hbWV1c2VkJ10gPSAnQW4gaXRlbSBieSB0aGF0IG5hbWUgaXMgYWxyZWFkeSBpbiB1c2UnOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdQbGVhc2Ugc2VsZWN0IGEgZmllbGQgdHlwZSc7CiRsYW5nWydlcnJvcl9ub25hbWUnXSA9ICdZb3UgbXVzdCBzdXBwbHkgYSBuYW1lJzsKJGxhbmdbJ2Vycm9yX29uZXF1YW50aXR5ZmllbGQnXSA9ICdPbmx5IG9uZSBxdWFudGl0eSBmaWVsZCBpcyBhbGxvd2VkJzsKJGxhbmdbJ2Vycm9yX29uZXN1YnNjcmlwdGlvbmZpZWxkJ10gPSAnT25seSBvbmUgc3Vic2NyaXB0aW9uIGZpZWxkIGlzIGFsbG93ZWQnOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbmRlbmllZCddID0gJ1Blcm1pc3Npb24gRGVuaWVkJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfYWxpYXN1c2VkJ10gPSAnVGhlIGFsaWFzIHNwZWNpZmllZCBpcyBhbHJlYWR5IGluIHVzZSc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X25hbWV1c2VkJ10gPSAnQW4gaXRlbSBieSB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9ub3Rmb3VuZCddID0gJ1RoZSByZXF1ZXN0ZWQgaXRlbSBjb3VsZCBub3QgYmUgZm91bmQnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9za3V1c2VkJ10gPSAnVGhhdCBTS1UgdmFsdWUgaXMgYWxyZWFkeSBpbiB1c2UgYnkgYW5vdGhlciBpdGVtJzsKJGxhbmdbJ2Vycm9yX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdJbnZhbGlkIHByaWNlIGFkanVzdG1lbnQgdmFsdWUgZm9yIGl0ZW0gJXMnOwokbGFuZ1snZXJyb3Jfc2t1X3JlcXVpcmVkJ10gPSAnUGxlYXNlIGVudGVyIGEgdW5pcXVlIFNLVSc7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnVXBsb2FkIGZhaWxlZDogJXMnOwokbGFuZ1snZXhjbHVkZV9jYXRlZ29yaWVzJ10gPSAnRXhjbHVkZSBpdGVtcyBpbiB0aGUgc2VsZWN0ZWQgY2F0ZWdvcmllcyBmcm9tIHRoZSByZXN1bHRzJzsKJGxhbmdbJ2V4cGlyZV9zaXhfbW9udGhzJ10gPSAnQWZ0ZXIgU2l4IE1vbnRocyc7CiRsYW5nWydleHBpcmVfb25lX3llYXInXSA9ICdBZnRlciBPbmUgWWVhcic7CiRsYW5nWydleHBpcmVfdHdvX3llYXInXSA9ICdBZnRlciBUd28gWWVhcnMnOwokbGFuZ1snZXhwb3J0X3RvX2NzdiddID0gJ0V4cG9ydCB0byBDU1YnOwokbGFuZ1snZXhwb3J0YXR0cmlicyddID0gJ0V4cG9ydCBBdHRyaWJ1dGVzJzsKJGxhbmdbJ2V4cG9ydGNhdHMnXSA9ICdFeHBvcnQgY2F0ZWdvcmllcyc7CiRsYW5nWydleHBvcnRkZWxpbSddID0gJ0V4cG9ydCBmaWVsZCBEZWxpbWl0ZXInOwokbGFuZ1snZXhwb3J0ZHJhZnQnXSA9ICdFeHBvcnQgRHJhZnQgSXRlbXMnOwokbGFuZ1snZXhwb3J0ZmllbGRzJ10gPSAnRXhwb3J0IEN1c3RvbSBGaWVsZHMnOwokbGFuZ1snZXh0cmExJ10gPSAnRXh0cmEgRmllbGQgMSc7CiRsYW5nWydleHRyYTInXSA9ICdFeHRyYSBGaWVsZCAyJzsKCiMgRgokbGFuZ1snZmllbGQnXSA9ICdGaWVsZCc7CiRsYW5nWydmaWVsZHMnXSA9ICdGaWVsZHMnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdGaWVsZCBEZWZpbml0aW9uJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0ZpZWxkIERlZmluaXRpb25zJzsKJGxhbmdbJ2ZpbGUnXSA9ICdGaWxlJzsKJGxhbmdbJ2ZpbHRlciddID0gJ0ZpbHRlcic7CiRsYW5nWydmaWx0ZXJpbnVzZSddID0gJ2luIGVmZmVjdCc7CiRsYW5nWydmaWx0ZXJzJ10gPSAnRmlsdGVycyc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICcmbHQ7Jmx0Oyc7CgojIEcKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdHZW5lcmFsIFNldHRpbmdzJzsKJGxhbmdbJ2dvJ10gPSAnR28nOwoKIyBICiRsYW5nWydoaWVyYXJjaHknXSAgPSAnSGllcmFyY2h5JzsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gJ0hpZXJhcmNoeSBQb3NpdGlvbic7CiRsYW5nWydoaWVyYXJjaHlfc2V0dGluZ3MnXSA9ICdIaWVyYXJjaHkgU2V0dGluZ3MnOwoKIyBJCiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ0ltYWdlJzsKJGxhbmdbJ2ltYWdlX2hhbmRsaW5nX3NldHRpbmdzJ10gPSAnSW1hZ2UgSGFuZGxpbmcgU2V0dGluZ3MnOwokbGFuZ1snaW1wb3J0X2Zyb21fY3N2J10gPSAnSW1wb3J0IGl0ZW1zIGZyb20gQ1NWIGZpbGUnOwokbGFuZ1snaW5jaGVzJ10gPSAnSW5jaGVzJzsKJGxhbmdbJ2luY2x1ZGVfY2hpbGRyZW4nXSA9ICdJbmNsdWRlIENoaWxkcmVuPyc7CiRsYW5nWydpbmZvX2FsbnVtb25seSddID0gJ09ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMuIE5vIHdoaXRlc3BhY2UsIHF1b3Rlcywgb3Igbm9uIGxldHRlci9udW1iZXIgY29tYmluYXRpb25zJzsKJGxhbmdbJ2luZm9fYXR0cmlidGVtcGxhdGUnXSA9ICdQb3NzaWJsZSB2YXJpYWJsZXMgYXJlOiB7JGF0dHJpYl90ZXh0fSx7JGF0dHJpYl9hZGp1c3R9LHskY3VycmVuY3lfc3ltYm9sfSc7CiRsYW5nWydpbmZvX2F0dHJpYnV0ZXNfY29waWVkJ10gPSAnQXR0cmlidXRlcyBDb3BpZWQnOwokbGFuZ1snaW5mb19hdXRvd2F0ZXJtYXJrJ10gPSAnV2F0ZXJtYXJrIHNldHRpbmdzIGFyZSB0YWtlbiBmcm9tIHRoZSBDR0V4dGVuc2lvbnMgTW9kdWxlJzsKJGxhbmdbJ2luZm9fYmF0Y2hzaXplJ10gPSAnU2V0IHRoZSBudW1iZXIgb2YgbGluZXMgdG8gcHJvY2VzcyBwZXIgJnF1b3Q7YmF0Y2gmcXVvdDsuICBBZnRlciBhIGJhdGNoIGlzIGNvbXBsZXRlLCB0aGUgaW1wb3J0ZXIgd2lsbCByZWRpcmVjdCwgYW5kIHJlc3VtZSBvcGVyYXRpb25zLiAgSWYgeW91IGFyZSBleHBlcmllbmNpbmcgbWVtb3J5IGVycm9ycywgb3IgdGltZW91dCBwcm9ibGVtcyBkdWUgdG8gbGFyZ2UgYW1vdW50cyBvZiBwcm9jZXNzaW5nLCB5b3UgbWF5IG5lZWQgdG8gY29uc3VsdCB5b3VyIGhvc3QgcHJvdmlkZXIsIG9yIHJlZHVjZSB0aGlzIG51bWJlcic7CiRsYW5nWydpbmZvX2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ1RoZXNlIHBhcmFtZXRlcnMgYXJlIGdpdmVuIHRvIHRoZSBzZWxlY3RlZCBjYXJ0IG1vZHVsZSBmcm9tIHRoZSBpdGVtIGRldGFpbCBhbmQgc3VtbWFyeSBkaXNwbGF5cyc7CiRsYW5nWydpbmZvX2NvcHlfYXR0cmlic2V0cyddID0gJ1RoaXMgYWN0aW9uIHdpbGwgY29weSBBdHRyaWJ1dGUgU2V0cyAoZXhjbHVkaW5nIHNrdSB2YWx1ZXMpIGZyb20gYW5vdGhlciBpdGVtLic7CiRsYW5nWydpbmZvX2NsZWFyYXR0cmlicyddID0gJ09ubHkgYXBwbGljYWJsZSB3aGVuIHVwZGF0aW5nIGV4aXN0aW5nIGl0ZW1zLCB0aGlzIHdpbGwgY2xlYXIgYWxsIGF0dHJpYnV0ZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBkYXRhYmFzZSBmb3IgaXRlbXMgYmVmb3JlIGNyZWF0aW5nIG5ldyBvbmVzJzsKJGxhbmdbJ2luZm9fY2xlYXJjYXRlZ29yaWVzJ10gPSAnT25seSBhcHBsaWNhYmxlIHdoZW4gdXBkYXRpbmcgZXhpc3RpbmcgaXRlbXMsIHRoaXMgd2lsbCBjbGVhciBhbGwgY2F0ZWdvcnkgbWVtYmVyc2hpcHMgYmVmb2UgY3JlYXRpbmcgbmV3IG9uZXMnOwokbGFuZ1snaW5mb19jbGVhcmZpZWxkcyddID0gJ09ubHkgYXBwbGljYWJsZSB3aGVuIHVwZGF0aW5nIGV4aXN0aW5nIGl0ZW1zLCB0aGlzIHdpbGwgY2xlYXIgYWxsIGZpZWxkcyBiZWZvZSBjcmVhdGluZyBmaWVsZCB2YWx1ZXMnOwokbGFuZ1snaW5mb19jcmVhdGVmaWVsZHMnXSA9ICdDcmVhdGUgdW5rbm93biBpdGVtIGZpZWxkcyBhdXRvbWF0aWNhbGx5PyA8ZW0+KFRoZXkgd2lsbCBiZSBjcmVhdGVkIGFzIHRleHQgZmllbGRzKTwvZW0+JzsKJGxhbmdbJ2luZm9fY3JlYXRlY2F0ZWdvcmllcyddID0gJ0F1dG9tYXRpY2FsbHkgY3JlYXRlIGl0ZW0gY2F0ZWdvcmllcyB0byBtYXRjaCB0aG9zZSBvZiB0aGUgQ1NWIGZpbGUsIGlmIGl0IGRvZXMgbm90IGFscmVhZHkgZXhpc3QnOwokbGFuZ1snaW5mb19jcmVhdGVoaWVyYXJjaHknXSA9ICdBdXRvbWF0aWNhbGx5IGNyZWF0ZSBpdGVtIGhpZXJhcmNoaWVzIHRvIG1hdGNoIHRob3NlIG9mIHRoZSBDU1YgZmlsZSBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0JzsKJGxhbmdbJ2luZm9fZGVjaW1hbF91bml0cyddID0gJ1RoaXMgc3lzdGVtIHVuZGVyc3RhbmRzICguKSBhcyB0aGUgZGVjaW1hbCBwb2ludCBzZXBhcmF0b3IuIGkuZS46IDxzdHJvbmc+NS4yNTwvc3Ryb25nPic7CiRsYW5nWydpbmZvX2RlbGltaXRlciddID0gJ1NwZWNpZnkgdGhlIGNoYXJhY3RlciAob3IgY2hhcmFjdGVycykgdGhhdCBzZXBlcmF0ZSBlYWNoIGZpZWxkJzsKJGxhbmdbJ2luZm9fZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdTcGVjaWZ5IGhvdyB0aGUgc3lzdGVtIHNob3VsZCBoYW5kbGUgYW4gaXRlbSB3aG9zIG5hbWUgYWxyZWFkeSBleGlzdHMgaW4gdGhlIENTViBmaWxlJzsKJGxhbmdbJ2luZm9fZmllbGRkZWZzX3RhYiddID0gJzxzdHJvbmc+Tm90ZTogPC9zdHJvbmc+IEFsbCBGaWVsZHMgZGVmaW5lZCBoZXJlIGFyZSBhdmFpbGFibGUgdG8gYWxsIGl0ZW1zLic7CiRsYW5nWydpbmZvX2ZpZWxkcHJvYmxlbXMnXSA9ICdQcm9ibGVtcyB3ZXJlIGVuY291bnRlcmVkIHdoZW4gZGVhbGluZyB3aXRoIG9uZSBvciBtb3JlIGN1c3RvbSBmaWVsZHMuICBUaGUgYWN0aW9uIGhhcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LCBob3dldmVyIHlvdSBzaG91bGQgaW52ZXN0aWdhdGUgYW5kIGNvcnJlY3QgdGhlc2UgcHJvYmxlbXMnOwokbGFuZ1snaW5mb19oYW5kbGVpbWFnZXMnXSA9ICdVcG9uIGltcG9ydCwgaWYgYW4gaW1hZ2UgZmlsZW5hbWUgaXMgZm91bmQgaW4gYSBmaWVsZCBjb2x1bW4sIHNob3VsZCBpdCBiZSBtb3ZlZCBmcm9tIHRoZSBzb3VyY2UgbG9jYXRpb24sIHdhdGVybWFya2VkLCB0aHVtYm5haWxlZCwgYW5kIHRoZSBmaWVsZCB0eXBlIGNoYW5nZWQgdG8gJnF1b3Q7aW1hZ2UmcXVvdDsnOwokbGFuZ1snaW5mb19oaWVycGFnZSddID0gJ1VzZSB0aGlzIHBhZ2UgZm9yIGhpZXJhcmNoeSB2aWV3cy4gIFRoZSBwYWdlaWQgd2lsbCBub3QgYmUgc3BlZmlyaWVkIG9uIHRoZSBVUkwuJzsKJGxhbmdbJ2luZm9faW1hZ2VwYXRoJ10gPSAnVGhlIHBhdGggKHJlbGF0aXZlIHRvIHRoZSB1cGxvYWRzIGRpcmVjdG9yeSkgd2hlcmUgaW1hZ2VzIHJlZmVycmVkIHRvIGluIHRoZSBpbXBvcnQgZmlsZSwgY2FuIGJlIGZvdW5kJzsKJGxhbmdbJ2luZm9faW1hZ2VzdHVmZl9kZXByZWNhdGVkJ10gPSAnSW1hZ2UgcHJvY2Vzc2luZyBmdW5jdGlvbnMgYXJlIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uLiAgVXNlIENHU21hcnRJbWFnZSBmb3IgaW5saW5lIGltYWdlIHByb2Nlc3NpbmcuJzsKJGxhbmdbJ2luZm9faW1wb3J0X3Rlc3RfcGFzc2VkJ10gPSAnQSBicmllZiB0ZXN0IGFzIGJlZW4gcGVyZm9ybWVkIG9uIHRoZSBpbnB1dCBmaWxlIHNwZWNpZmllZCwgYW5kIGV2ZXJ5dGhpbmcgYXBwZWFycyB0byBiZSBjb3JyZWN0Ljxici8+VGhpcyBpcyBubyBpbmRpY2F0aW9uIHRoYXQgdGhlcmUgYXJlIG5vIGVycm9ycyBpbiB0aGUgZmlsZS4nOwokbGFuZ1snaW5mb19wcmV0dHloaWVydXJscyddID0gJ0luY2x1ZGUgdGhlIGhpZXJhcmNoeSBpdGVtIG5hbWUgb24gdGhlIFVSTCc7CiRsYW5nWydpbmZvX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdWYWxpZCB2YWx1ZXMgYXJlICstKiMuIyMnOwokbGFuZ1snaW5mb19wcm9kbm90Zm91bmQnXSA9ICdUaGlzIG9wdGlvbiBkZXRlcm1pbmVzIHRoZSBiZWhhdmlvdXIgb2YgdGhlIHdlYnNpdGUgaWYgYW4gaXRlbSBkZXRhaWwgdmlldyBpcyBhY2Nlc3NlZCBkaXJlY3RseSBieSBVUkwsIGFuZCB0aGF0IGl0ZW0gZm9yIHdoYXRldmVyIHJlYXNvbiAoZGlzYWJsZWQsIGRlbGV0ZWQsIGV0YykgY2Fubm90IGJlIGFjY2Vzc2VkLic7CiRsYW5nWydpbmZvX3B1YmxpY2ZpZWxkJ10gPSAnUHVibGljIGZpZWxkcyBhcmUgYXZhaWxhYmxlIGZvciB0aGUgcHVibGljIHRvIHNlZSc7CiRsYW5nWydpbmZvX3Jlb3JkZXJfY29udGVudCddID0gJ1RoaXMgb3BlcmF0aW9uIGFsbG93cyBkcmFnZ2luZyB0aGUgaW5kaXZpZHVhbCBub2RlcyBpbiB0aGUgdHJlZSB0byBhZGp1c3QgdGhlIG9yZGVyIHRoYXQgdGhleSB3aWxsIGJlIGRpc3BsYXllZCBpbiBpbiB0aGUgaGllcmFyY2h5IHZpZXcnOwokbGFuZ1snaW5mb19zZXRlY29taGFuZGxlcnMnXSA9ICdUaGlzIGJ1dHRvbiB3aWxsIGVuc3VyZSB0aGF0IGV2ZW50IGhhbmRsZXJzIGZvciBlY29tbWVyY2UgZXZlbnRzIGFyZSBpbiBwbGFjZS4gIFRoaXMgaXMgdXNlZnVsIGlmIGFza2luZyB0aGUgaXRlbXMgbW9kdWxlIHRvIGtlZXAgdHJhY2sgb2YgYSBxdWFudGl0eSBvbiBoYW5kLCBidXQgdGhlIGV2ZW50IGhhbmRsZXJzIGRpZCBub3QgZ2V0IGNyZWF0ZWQgZHVyaW5nIGluc3RhbGwgb3IgdXBncmFkZSc7CgojIEoKIyBLCiMgTAokbGFuZ1snbGFiZWwnXSA9ICdMYWJlbCc7CiRsYW5nWydsYWJlbF9za2lwJ10gPSAnU2tpcCc7CiRsYW5nWydsYWJlbF9vdmVyd3JpdGUnXSA9ICdPdmVyd3JpdGUnOwokbGFuZ1snbGFiZWxfdXBkYXRlJ10gPSAnVXBkYXRlJzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnJmd0OyZndDsnOwokbGFuZ1snbGFzdF9tb2RpZmllZCddID0gJ0xhc3QgTW9kaWZpZWQnOwokbGFuZ1snbG9nb3RleHQnXSA9ICdTZWNvbmQgSW1hZ2UnOwoKIyBNCiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYXhpbXVtIGxlbmd0aCA8ZW0+KGFwcGxpY2FibGUgb25seSBvbiB0ZXh0Ym94IGZpZWxkcyk8L2VtPic7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICdNb2RpZmllZCBEYXRlJzsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gJ0EgbW9kdWxlIGZvciBtYW5hZ2luZyBhIGNhdGFsb2cgb2YgaXRlbXMsIHRoZWlyIHByaWNlLCBpbWFnZXMsIGV0YywgYW5kIGZvciBhbGxvd2luZyB1c2VycyB0byBidWlsZCBhIGNhcnQnOwokbGFuZ1snbW92ZV9kb3duJ10gPSAnTW92ZSBEb3duJzsKJGxhbmdbJ21vdmVfdXAnXSA9ICdNb3ZlIFVwJzsKJGxhbmdbJ21zZ19ldmVudGhhbmRsZXJzX2NyZWF0ZWQnXSA9ICdFdmVudCBIYW5kbGVycyBDcmVhdGVkJzsKJGxhbmdbJ21zZ19wcm9kdWN0Y29waWVkJ10gPSAnSXRlbSBzdWNjZXNzZnVsbHkgY29waWVkLiAgWW91IGFyZSBub3cgZWRpdGluZyB0aGUgY29weS4gIEFueSBza3UgaW5mb3JtYXRpb24gaW4gdGhlIGl0ZW0sIGFuZC9vciBhdHRyaWJ1dGVzIGhhcyBiZWVuIGNsZWFyZWQnOwoKIyBOCiRsYW5nWyduYW1lJ10gPSAnTmFtZSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ1lvdSBkbyBub3QgaGF2ZSB0aGUgcmVxdWlyZWQgcGVybWlzc2lvbjogJXMnOwokbGFuZ1snbmV3X2NhdGVnb3J5X25hbWUnXSA9ICdOZXcgQ2F0ZWdvcnkgTmFtZSc7CiRsYW5nWyduZXh0cGFnZSddID0gJyZndDsnOwokbGFuZ1snbm8nXSA9ICdObyc7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ05vIG5hbWUgd2FzIHN1cHBsaWVkJzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnTm8gbmFtZSB3YXMgc3VwcGxpZWQnOwokbGFuZ1snbm9uZSddID0gJ05vbmUnOwokbGFuZ1snbm90aGluZ19zZWxlY3RkJ10gPSAnTm90aGluZyBzZWxlY3RlZCc7CgojIE8KJGxhbmdbJ29mJ10gPSAnT2YnOwokbGFuZ1snb3BlcmF0aW9uX2NhbmNlbGxlZCddID0gJ09wZXJhdGlvbiBDYW5jZWxsZWQnOwokbGFuZ1snb3BlcmF0aW9uX2NvbXBsZXRlJ10gPSAnT3BlcmF0aW9uIENvbXBsZXRlJzsKCiMgUAokbGFuZ1sncGFnZSddID0gJ1BhZ2UnOwokbGFuZ1sncGFnZV9vZiddID0gJ1BhZ2UgJXMgb2YgJXMnOwokbGFuZ1sncGFnZV9saW1pdCddID0gJ1BhZ2UgTGltaXQnOwokbGFuZ1sncGFyYW1fYWN0aW9uJ10gPSA8PDxFT1QKU3BlY2lmeSB0aGUgYmVoYXZpb3VyIG9mIHRoZSBtb2R1bGUuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOgo8dWw+CiAgPGxpPmhpZXJhcmNoeSAtLSBEaXNwbGF5IGFuIGl0ZW0gbGlzdCBieSBoaWVyYXJjaHk8L2xpPgogIDxsaT5jYXRlZ29yeWxpc3QgLSBEaXNwbGF5IGEgbGlzdCBvZiBpdGVtIGNhdGVnb3JpZXM8L2xpPgogIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gRGlzcGxheSBhIHN1bW1hcnkgb2YgaXRlbXM8L2xpPgogIDxsaT5kZXRhaWxzIC0gRGlzcGxheSBhIGRldGFpbCB2aWV3IG9mIGEgc2luZ2xlIGl0ZW08L2xpPgogIDxsaT5maWVsZGxpc3QgLSBEaXNwbGF5IGEgbGlzdCBvZiB2YWx1ZXMgZnJvbSBhIHNwZWNpZmllZCBmaWVsZC4KICAgICA8cD4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7LSBUaGlzIGFjdGlvbiBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYSBuYXZpZ2F0aW9uIGZyb20gdGhlIHZhbHVlcyBvZiBhIHNwZWNpZmljIGZpZWxkLiAgaS5lOiAgeW91IGNvdWxkIGNyZWF0ZSBhIGN1c3RvbSBkcm9wZG93biBmaWVsZCBjYWxsZWQgJnF1b3Q7Y29sb3ImcXVvdDsgYW5kIHRoZW4gY3JlYXRlIGEgbmF2aWdhdGlvbiBiYXNlZCBvbiB0aGUgZGlmZmVyZW50IGNvbG9ycy4KICAgICA8L3A+CiAgPC9saT4KICA8bGk+c2VhcmNoIC0gRGlzcGxheSBhIGZvcm0gdG8gYWxsb3cgc2VhcmNoaW5nIGl0ZW1zIG9uIHZhcmlvdXMgY3JpdGVyaXVtPC9saT4KPGxpPmFqYXhfcHJvcHZhbCAtIFJldHVybiBhIGpzb24gZW5jb2RlZCBsaXN0IG9mIHByb3BlcnR5IHZhbHVlcyBtYXRjaGluZyB0aGUgY3JpdGVyaWEgc3BlY2lmaWVkLiAgVGhpcyBhY3Rpb24gaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB2aWEgYWpheCwgYW5kIHNob3VsZCBiZSBjYWxsZWQgd2l0aCB0aGUgc2hvd3RlbXBsYXRlPWZhbHNlIHBhcmFtZXRlciBvbiB0aGUgVVJMLjwvbGk+CjwvdWw+CkVPVDsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnV2hlbiB1c2VkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIsIHdoaWNoIHNob3VsZCBtYXRjaCB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyBjYXRlZ29yeSB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBvbmx5IHRob3NlIGl0ZW1zIHRoYXQgYXJlIGluIHRoYXQgY2F0ZWdvb3J5LiAoYSBjb21tYSBzZXBlcmF0ZWQgbGlzdCBjYW4gYmUgc3VwcGxpZWQpLiAgVGhpcyBwYXJhbWV0ZXIgY2FuIGFsc28gYmUgdXNlZCB3aXRoIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uIHRvIGxpbWl0IHRoZSBvdXRwdXQgdG8gdGhlIHNwZWNpZmllZCBpdGVtIGNhdGVnb3JpZXMuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5ZmllbGQnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlICZxdW90O2NhdGVnb3J5bGlzdCZxdW90OyBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGZpbHRlciBjYXRlZ29yaWVzIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiBhIGNhdGVnb3J5IGZpZWxkLiAgSXQgd2lsbCBub3Qgd29yayBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAmcXVvdDtjYXRlZ29yeSZxdW90OyBvciAmcXVvdDtjYXRlZ29yeV9pZCZxdW90OyBwYXJhbWV0ZXJzLiAgIFRoZSBzeW50YXggb2YgdGhpcyBwYXJhbWV0ZXIgaXMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBmaWVsZCBuYW1lcywgYW5kIGZpZWxkIHZhbHVlcy4gIGkuZTogIGNhdGVnb3J5bGlzdD0mcXVvdDtmaWVsZCBuYW1lOnZhbHVlLGZpZWxkIG5hbWUgMjp2YWx1ZSAyJnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFuZCBmaWVsZGxpc3QgYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdGR0bHRlbXBsYXRlJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRpc3BsYXkgb2YgdGhlIGNhdGVnb3J5IGRldGFpbHMuICBUaGlzIHVzZXMgYSBjYXRlZ29yeSBsaXN0IHRlbXBsYXRlLi4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdUaGlzIHNwZWNpZmllcyB0aGUgcGFnZWlkIG9yIGFsaWFzIHRoYXQgc2hvdWxkIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgZGV0YWlsIHJlcG9ydC4gIEl0IGNhbiBiZSB1c2VkIHdpdGggdGhlIDxlbT5kZWZhdWx0PC9lbT4gb3Igc2VhcmNoIGFjdGlvbnMuICBUaGlzIG9wdGlvbiBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHByZXR0eSB1cmxzIG9mIGFueSBzb3J0Lic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRldGFpbCBtb2RlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4gIFRoaXMgcGFyYW1ldGVyIGhhcyBubyB1c2Ugd2hlbiBwcmV0dHkgdXJscyBhcmUgZW5hYmxlZC4nOwokbGFuZ1sncGFyYW1fZXhjbHVkZWNhdCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCAoc3VtbWFyeSkgdmlldywgdGhpcyBwYXJhbWV0ZXIgd2lsbCBhbGxvdyBleGNsdWRpbmcgaXRlbXMgdGhhdCBhcmUgaW4gYSBzcGVjaWZpYyBjYXRlZ29yeSBmcm9tIHRoZSByZXN1bHQuIEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgY2F0ZWdvcnkgbmFtZXMgaXMgYWxsb3dlZC4gVGhpcyBwYXJhbWV0ZXIgY2FuIHdvcmsgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgY2F0ZWdvcnkgcGFyYW1ldGVyIHRvIHByb3ZpZGUgYSBsaXN0IG9mIHRoZSBpdGVtcyB0aGF0IGFyZSBpbiB0aGlzIGNhdGVnb3J5LCBidXQgbm90IGluIHRoYXQgY2F0ZWdvcnknOwokbGFuZ1sncGFyYW1fZmllbGQnXSA9ICdVc2VkIGluIHRoZSA8ZW0+ZmllbGRsaXN0PC9lbT4gYW5kIHRoZSA8ZW0+YWpheF9wcm9wdmFsPC9lbT4gYWN0aW9ucy4gSW4gdGhlIGZpZWxkbGlzdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIHRvIHNwZWNpZnkgdGhlIG5hbWUgb2YgYSB1c2VyIGRlZmluZWQgcHJvcGVydHkgdG8gY3JlYXRlIGEgbGlzdCBmcm9tLiAgSW4gdGhlIGFqYXhfcHJvcHZhbCBhY3Rpb24gdGhpcyBwYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoaWNoIGZpZWxkIHRvIHVzZSB0byBleHRyYWN0IGEgbGlzdCBvZiB2YWx1ZXMuICBBbnkgdmFsaWQgZmllbGQgbmFtZXMgYXJlIGFjY2VwdGVkICh0aG91Z2ggb25seSB0ZXh0IGZpZWxkIGFuZCBkcm9wZG93biBmaWVsZCBuYW1lcyB3aWxsIHdvcmsgcHJvcGVybHkuICBBZGRpdGlvbmFsbHkgdGhlIHNwZWNpYWwgdmFsdWVzIDo6bmFtZTo6LCA6OnNrdTo6LCBhbmQgOjphbGlhczo6IGNhbiBiZSBzcGVjaWZpZWQgdG8gcmV0dXJuIHZhbHVlcyBmcm9tIHRoZSBpdGVtIG5hbWUsIHNrdSBhbmQgYWxpYXMgcmVzcGVjdGl2ZWx5Lic7CiRsYW5nWydwYXJhbV9maWVsZHZhbCddID0gJ1VzZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYW5kIDxlbT5hamF4X3Byb3B2YWw8L2VtPiBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGZpZWxkIHZhbHVlIHRvIGxpbWl0IHJlc3VsdHMgYnkuICBJbiB0aGUgZGVmYXVsdCB2YWx1ZSB0aGVzZSBzcGVjaWFsIHZhbHVlcyBhcmUgYWNjZXB0ZWQ6ICZxdW90Ozo6bnVsbDo6JnF1b3Q7ICZxdW90Ozo6bm90bnVsbDo6JnF1b3Q7LiBJbiB0aGUgYWpheF9wcm9wdmFsIGFjdGlvbiB0aGlzIGZpZWxkIGlzIGV4cGVjdGVkIHRvIGNvbnRhaW4gb25seSBhIGZldyBsZXR0ZXJzLCB0byBpbmRpY2F0ZSBhIHNtYWxsIGZpbHRlci4gIGkuZTogZmllbGR2YWw9YiB0byByZXR1cm4gYWxsIGZpZWxkIHZhbHVlcyB0aGF0IGJlZ2luIHdpdGggdGhlIGxldHRlciBiLic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHknXSA9ICdVc2VlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhbmQgaGllcmFjaHkgYWN0aW9ucyB0aGlzIHBhcmFtZXRlciBoYXMgdHdvIHVzZXMuICBXaGVuIHVzZWQgaW4gdGhlIGRlZmF1bHQgKHN1bW1hcnkpIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgb25seSBpdGVtcyBpbiB0aGF0IGxvY2F0aW9uIG9mIHRoZSBoaWVyYXJjaHkgc2hvdWxkIGJlIGRpc3BsYXllZC4gIFdpbGRjYXJkIGNoYXJhY3RlciBjYW4gYmUgdXNlZCBzbyB0aGF0IHlvdSBjYW4gc3BlY2lmeSBwYXJlbnQvY2hpbGQgcmVsYXRpb25zaGlwcyBhcyB3ZWxsLiAgaS5lIHtQcm9kdWN0cyBoaWVyYXJjaHk9XCd0cnVja3MqXCd9IHdpbGwgY3JlYXRlIGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgaW5jbHVkaW5nIHRoZSBjaGlsZHJlbiBpbiB0aGUgaGllcmFyY2h5LiAgU2ltaWxhcmx5LCB7UHJvZHVjdHMgaGllcmFyY2h5PVwnKnRydWNrc1wnfSB3aWxsIGRpc3BsYXkgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBhbmQgYWxsIGl0ZW1zIGJlbG9naW5nIHRvIGFueSBwYXJlbnQgaW4gdGhlIGhpZXJhcmNoeS4gIEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZXhwcmVzc2lvbnMgY2FuIGJlIHN1cHBsaWVkLiAgaS5lOiB7UHJvZHVjdHMgYWN0aW9uPWhpZXJhcmNoeSBoaWVyYXJjaHk9XCd0cnVja3MsY2Fyc1wnfSc7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGhpZXJhcmNoeSBkaXNwbGF5LiBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1faW5saW5lJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgdGhlIG91dHB1dCBvZiB0aGUgc3VtbWFyeSB2aWV3IHNob3VsZCBiZSBkaXNwbGF5ZWQgaW5saW5lJzsKJGxhbmdbJ3BhcmFtX25vdHByZXR0eSddID0gJ1RoaWUgcGFyYW1ldGVyIHNwZWNpZmllcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGFjdGlvbnMgdG8gd2hpY2ggcHJldHR5IHVybHMgc2hvdWxkIG5vdCBiZSBnZW5lcmF0ZWQuICBpLmU6IG5vdHByZXR0eT1oaWVyYXJjaHksZGVmYXVsdCB3aWxsIG5vdCBnZW5lcmF0ZSBwcmV0dHkgdXJscyB0byBoaWVyYXJjaHksIG9yIHN1bW1hcnkgKGRlZmF1bHQpIGFjdGlvbnMsIGJ1dCB3aWxsIGFsbG93IGdlbmVyYXRpb24gb2YgcHJldHR5IHVybHMgdG8gZGV0YWlsIHZpZXdzLiAgQXMgYSBzcGVjaWFsIHZhdWUgJnF1b3Q7YWxsJnF1b3Q7IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhhdCBubyBwcmV0dHkgdXJscyBzaG91bGQgYmUgZ2VuZXJhdGVkJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIDxlbT5kZWZhdWx0PC9lbT4gb3Igc2VhcmNoIGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBob3cgbWFueSBpdGVtcyBzaG91bGQgYmUgbGlzdGVkIG9uIGVhY2ggcGFnZS4nOwokbGFuZ1sncGFyYW1fcGFyZW50J10gPSAnVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5oaWVyYXJjaHk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgaGllcmFyY2h5IGlkIG9mIHRoZSBzdGFydGluZyBsb2NhdGlvbiBvZiB0aGUgcmVwb3J0Lic7CiRsYW5nWydwYXJhbV9wYXJlbnRzJ10gPSAnVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5oaWVyYXJjaHk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGhpZXJhcmNoeSBuYW1lcyB0aGF0IHNwZWNpZnkgdG8gY3JlYXRlIG51bWVyb3VzIGhlaXJhcmNoeSB0cmVlcyBmcm9tIHRoZSBzcGVjaWZpZWQgbG9jYXRpb24ocykuICBIaWVyYXJjaHkgbmFtZXMgbXVzdCBiZSB1bmlxdWUsIGFuZCBub3QgY29udGFpbiBhbnkgc3BlY2lhbCBjaGFycy4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGlkJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgZGV0YWlsIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHdoYXQgaXRlbSB0byB1c2UgZm9yIHRoZSBkaXNwbGF5Lic7CiRsYW5nWydwYXJhbV9wcm9kdWN0bGlzdCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCAoc3VtbWFyeSkgdmlldywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBpbnRlZ2VyIHByb2R1Y3QgaWRzIHRvIGRpc3BsYXkuICBObyBwYWdpbmF0aW9uIG9yIHNvcnRpbmcgaXMgcGVyZm9ybWVkIG9uIHRoZXNlIHZhbHVlcywgYW5kIGlmIHNwZWNpZmllZCB0aGUgb3RoZXIgZmlsdGVyaW5nIHBhcmFtZXRlcnMgdG8gdGhlIHN1bW1hcnkgdmlldyBhcmUgaWdub3JlZC4nOwokbGFuZ1sncGFyYW1fcmVzdWx0cGFnZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgc2VhcmNoLCBhbmQgY2F0ZWdvcnkgbGlzdCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgYSBwYWdlIGlkIG9yIGFsaWFzIHRvIHVzZSB0byBkaXNwbGF5IHRoZSBzdW1tYXJ5IHJlc3VsdHMnOwokbGFuZ1sncGFyYW1fc2VhcmNoZmllbGQnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIG1heSBjb250YWluIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZmllbGQgbmFtZXMgdG8gaW5jbHVkZSBpbiB0aGUgc2VhcmNoJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZvcm10ZW1wbGF0ZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpc3BhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG5vbiBkZWZhdWx0IHNlYXJjaCBmb3JtIHRlbXBsYXRlJzsKJGxhbmdbJ3BhcmFtX3Nob3dhbGwnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGNhdGVnb3J5bGlzdCBhbmQgZmllbGRsaXN0IGFjdGlvbnMsIGlmIHRoaXMgcGFyYW1ldGVyIGlzIHNldCB0byBhIG5vbiAwIGludGVnZXIgdmFsdWUgYWxsIGNhdGVnb3JpZXMgKGV2ZW4gdGhvc2Ugd2l0aG91dCBpdGVtcykgd2lsbCBiZSBkaXNwbGF5ZWQuJzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ1NwZWNpZnkgdGhlIG9yZGVyIG9mIHNvcnRlZCBmaWVsZHMgaW4gc3VtbWFyeSAoaW5jbHVkaW5nIGFmdGVyIGEgc2VhcmNoKSB2aWV3LiAgUG9zc2libGUgdmFsdWVzIGFyZToKPHVsPgogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBBc2NlbmRpbmcgb3JkZXI8L2xpPgogIDxsaT5kZXNjIC0tIERlc2NlbmRpbmcgb3JkZXI8L2xpPgo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIGluIHRoZSBzdW1tYXJ5LCBjYXRlZ29yeWxpc3Qgb3Igc2VhcmNoIGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGRldGVybWluZXMgdGhlIHNvcnRpbmcgb2YgdGhlIG91dHB1dC4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6Cjx1bD4KICA8bGk+PHN0cm9uZz5pdGVtX25hbWU8L3N0cm9uZz48L2xpPgogIDxsaT5pZCAtLSBUaGUgaXRlbSBpZDwvbGk+CiAgPGxpPndlaWdodCAtLSBUaGUgaXRlbSB3ZWlnaHQ8L2xpPgogIDxsaT5wcmljZSAtLSBUaGUgaXRlbSBiYXNlIHByaWNlPC9saT4KICA8bGk+c3RhdHVzIC0tIERyYWZ0IG9yIHB1Ymxpc2hlZDwvbGk+CiAgPGxpPnJhbmRvbSAtLSBEaXNwbGF5IGluIHJhbmRvbSBvcmRlciBvbiBlYWNoIHJlcXVlc3Q8L2xpPgogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4KICA8bGk+bW9kaWZpZWQgLS0gVGhlIG1vZGlmaWVkIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPgogIDxsaT5mOmZpZWxkbmFtZSAtLSBBbGxvd3Mgc29ydGluZyBieSB2YWx1ZXMgb2YgY3VzdG9tIGZpZWxkcy48L2xpPgo8L3VsPgo8cD5UaGUgY2F0ZWdvcnkgbGlzdCB2aWV3IHN1cHBvcnRzIG9ubHkgYSBmZXcgc3BlY2lmaWMgc29ydGluZyBvcHRpb25zOjwvcD4KPHVsPgogIDxsaT5pZCAtLSBUaGUgY2F0ZWdvcnkgaWQuPC9saT4KICA8bGk+PHN0cm9uZz5uYW1lPC9zdHJvbmc+IC0tIFRoZSBjYXRlZ29yeSBuYW1lLjwvbGk+CjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnR0eXBlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IHN1bW1hcnkgdmlldywgdGhpcyBwYXJhbWV0ZXIgaXMgdXNlZCB0byBjb252ZXJ0IHRoZSB2YWx1ZXMgdG8gYW5vdGhlciB0eXBlIGZvciBzb3J0aW5nLiAgdmFsaWQgdmFsdWVzIGFyZSBTVFJJTkcsU0lHTkVEIGFuZCBVTlNJR05FRC4gIElmIG5vdCBzdXBwbGllZCB0aGUgZGVmYXVsdCBTVFJJTkcgdHlwZSBpcyBhc3N1bWVkLic7CiRsYW5nWydwYXJhbV9zdW1tYXJ5cGFnZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgYWN0aW9uPWhpZXJhcmNoeSwgYWxsb3dzIHNwZWNpZnlpbmcgYSBwYWdlIGlkIG9yIGFsaWFzIHRoYXQgd2lsbCBiZSB1c2VkIGZvciBhbnkgbGlua3MgdG8gc3VtbWFyeSB2aWV3JzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIHN1bW1hcnkgbW9kZSBkaXNwbGF5LiAgSXQgaXMgYWxzbyBhY2NlcHRlZCBpbiB0aGUgc2VhcmNoIGFjdGlvbi4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJlbnQnXSA9ICdQYXJlbnQnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdUaGUgUHJvZHVjdHMgbW9kdWxlIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBpbnN0YWxsZWQnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1RoZSBQcm9kdWN0cyBtb2R1bGUgaGFzIGJlZW4gcmVtb3ZlZCBhbG9uZyB3aXRoIGFsbCBhc3NvY2lhdGVkIGRhdGEnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQcmVmZXJlbmNlcyc7CiRsYW5nWydwcmV1bmluc3RhbGwnXSA9ICdSZW1vdmluZyB0aGlzIG1vZHVsZSB3aWxsIGFsc28gcmVtb3ZlIGFsbCBhc3NvY2lhdGVkIGRhdGEsIGFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBwcm9jZWVkPyc7CiRsYW5nWydwcmljZSddID0gJ1ByaWNlJzsKJGxhbmdbJ3ByaWNlX2FkanVzdG1lbnQnXSA9ICdQcmljZSBBZGp1c3RtZW50JzsKJGxhbmdbJ3ByZWZpeF9jb3B5b2YnXSA9ICdDb3B5IE9mJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnJmx0Oyc7CiRsYW5nWydwcm9kdWN0J10gPSAnSXRlbSc7CiRsYW5nWydwcm9kdWN0bmFtZSddID0gJ0l0ZW0gTmFtZSc7CiRsYW5nWydwcm9kdWN0cyddID0gJ0l0ZW1zJzsKJGxhbmdbJ3Byb2R1Y3RfZGV0YWlsX3NldHRpbmdzJ10gPSAnSXRlbSBEZXRhaWwgU2V0dGluZ3MnOwokbGFuZ1sncHJvZHVjdF9lZGl0aW5nX3NldHRpbmdzJ10gPSAnSXRlbSBFZGl0aW5nIFNldHRpbmdzJzsKJGxhbmdbJ3Byb2R1Y3Rfc3VtbWFyeV9zZXR0aW5ncyddID0gJ0l0ZW0gU3VtbWFyeSBTZXR0aW5ncyc7CiRsYW5nWydwcm9kdWN0X2hpZXJhcmNoeSddID0gJ0l0ZW0gSGllcmFyY2h5JzsKJGxhbmdbJ3Byb2R1Y3RfaW5mbyddID0gJ0l0ZW0gSW5mb3JtYXRpb24nOwokbGFuZ1sncHJvZHVjdF9tYW5hZ2VyJ10gPSAnUHJvZHVjdCBNYW5hZ2VyJzsKJGxhbmdbJ3Byb2dyZXNzJ10gPSAnUHJvZ3Jlc3MnOwokbGFuZ1sncHJvbXB0J10gPSAnUHJvbXB0JzsKJGxhbmdbJ3Byb21wdF9hZGRfYXR0cmlic2V0J10gPSAnQWRkL0VkaXQgQXR0cmlidXRlIFNldCc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnXSA9ICdBbGxvdyB1cGxvYWQgb2YgZmlsZXMgd2l0aCB0aGVzZSBleHRlbnNpb25zIChmb3IgYWxsIHVwbG9hZCBmaWVsZHMpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ltYWdldHlwZXMnXSA9ICdBbGxvdyBwcm9jZXNzaW5nIG9mIGltYWdlcyB3aXRoIHRoZXNlIGV4dGVuc2lvbnMgKGZvciBpbWFnZSB0eXBlIGZpZWxkcyknOwokbGFuZ1sncHJvbXB0X2F0dHJpYnRlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIGRpc3BsYXkgb2YgaXRlbSBhdHRyaWJ1dGUgdmFsdWVzIGluIGRyb3Bkb3duJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsJ10gPSAnQXV0b21hdGljYWxseSBjcmVhdGUgdGh1bWJuYWlscyBvZiBpbWFnZXMnOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWxfc2l6ZSddID0gJ01heGltdW0gc2l6ZSAobGFyZ2VzdCBkaW1lbnNpb24pIG9mIHRoZSB0aHVtYm5haWwuJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZyddID0gJ0F1dG9tYXRpY2FsbHkgY3JlYXRlIHByZXZpZXcgaW1hZ2VzIG9mIGltYWdlcyc7CiRsYW5nWydwcm9tcHRfYXV0b3ByZXZpZXdpbWdfc2l6ZSddID0gJ01heGltdW0gc2l6ZSAobGFyZ2VzdCBkaW1lbnNpb24pIG9mIHRoZSBwcmV2aWV3IGltYWdlLic7CiRsYW5nWydwcm9tcHRfYXV0b3dhdGVybWFyayddID0gJ0F1dG9tYXRpY2FsbHkgcGxhY2Ugd2F0ZXJtYXJrcyBvbiBpbWFnZXMnOwokbGFuZ1sncHJvbXB0X2FwcGxpY2FibGUnXSA9ICdFbmFibGUgYnkgZGVmYXVsdCBmb3IgYWxsIG5ldyBpdGVtcyc7CiRsYW5nWydwcm9tcHRfYmF0Y2hzaXplJ10gPSAnQmF0Y2ggU2l6ZSc7CiRsYW5nWydwcm9tcHRfY2FydF9tb2R1bGUnXSA9ICdDYXJ0IE1vZHVsZSc7CiRsYW5nWydwcm9tcHRfY2FydF9tb2R1bGVfcGFyYW1zJ10gPSAnQ2FydCBNb2R1bGUgUGFyYW1ldGVycyc7CiRsYW5nWydwcm9tcHRfY2xlYXJhdHRyaWJzJ10gPSAnQ2xlYXIgYXR0cmlidXRlcyBvbiB1cGRhdGUnOwokbGFuZ1sncHJvbXB0X2NsZWFyY2F0ZWdvcmllcyddID0gJ0NsZWFyIGNhdGVnb3JpZXMgb24gdXBkYXRlJzsKJGxhbmdbJ3Byb21wdF9jbGVhcmZpZWxkcyddID0gJ0NsZWFyIGZpZWxkcyBvbiB1cGRhdGUnOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWNhdGVnb3JpZXMnXSA9ICdDcmVhdGUgQ2F0ZWdvcmllcyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlZmllbGRzJ10gPSAnQ3JlYXRlIEl0ZW0gRmllbGRzPyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlaGllcmFyY2h5J10gPSAnQ3JlYXRlIEl0ZW0gSGllcmFyY2h5JzsKJGxhbmdbJ3Byb21wdF9jc3ZmaWxlJ10gPSAnVXBsb2FkIENTViBGaWxlJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeWNvZGUnXSA9ICdDdXJyZW5jeSBDb2RlJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeXN5bWJvbCddID0gJ0N1cnJlbmN5IFN5bWJvbCc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF9zdGF0dXMnXSA9ICdCeSBkZWZhdWx0IGFsbCBuZXcgaXRlbXMgaGF2ZSB0aGlzIHN0YXR1cyc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF90YXhhYmxlJ10gPSAnQnkgZGVmYXVsdCBhbGwgbmV3IGl0ZW1zIGFyZSB0YXhhYmxlJzsKJGxhbmdbJ3Byb21wdF9kZWxldGVwcm9kdWN0ZmlsZXMnXSA9ICdEZWxldGUgYW55IGZpbGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgaXRlbSB3aGVuIHRoZSBpdGVtIGlzIGRlbGV0ZWQ/JzsKJGxhbmdbJ3Byb21wdF9kZWxpbWl0ZXInXSA9ICdGaWVsZCBEZWxpbWl0ZXInOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdEZWZhdWx0IERldGFpbCBQYWdlJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxzZm9yJ10gPSAnRGV0YWlscyBmb3IgJXMnOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnSG93IHRvIGhhbmRsZSBkdXBsaWNhdGUgaXRlbXM/JzsKJGxhbmdbJ3Byb21wdF9mYWxzZSddID0gJ0ZhbHNlJzsKJGxhbmdbJ3Byb21wdF9oYW5kbGVpbWFnZXMnXSA9ICdIYW5kbGUgaW1hZ2VzPyc7CiRsYW5nWydwcm9tcHRfaW1hZ2VwYXRoJ10gPSAnSW1hZ2UgUGF0aCc7CiRsYW5nWydwcm9tcHRfbGVuZ3RodW5pdHMnXSA9ICdMZW5ndGggVW5pdHMnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX2JlaGF2aW9yJ10gPSAnV2hhdCBhY3Rpb24gc2hvdWxkIGJlIHRha2VuIHdoZW4gYW4gaXRlbSBjYW5ub3QgYmUgZGlzcGxheWVkPyc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfNDA0J10gPSAnR2VuZXJhdGUgYSA0MDQgZXJyb3InOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzMwMSddID0gJ0dlbmVyYXRlIGEgMzAxIHJlZGlyZWN0JzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9lcnJvcm1zZyddID0gJ0Rpc3BsYXkgYW4gZXJyb3IgbWVzc2FnZSc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfbXNnJ10gPSAnRXJyb3IgbWVzc2FnZSBmb3Igd2hlbiBhbiBpdGVtIGNhbm5vdCBiZSBmb3VuZCc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfcGFnZSddID0gJ1BhZ2UgdG8gZG8gcGVybWFuZW50IHJlZGlyZWN0IHRvPyc7CiRsYW5nWydwcm9tcHRfaGllcnBhZ2UnXSA9ICdEZWZhdWx0IFBhZ2UgZm9yIEhpZXJhcmNoeSBWaWV3JzsKJGxhbmdbJ3Byb21wdF9wcmV0dHloaWVydXJscyddID0gJ1VzZSBQcmV0dHkgVVJMUyB0byBIaWVyYXJjaHkgVmlld3MnOwokbGFuZ1sncHJvbXB0X3Byb2RfZGV0YWlscGFnZSddID0gJ0RlZmF1bHQgUGFnZSBmb3IgSXRlbSBEZXRhaWwgVmlld3MnOwokbGFuZ1sncHJvbXB0X3Byb2R1Y3RzX21hdGNoaW5nJ10gPSAnSXRlbXMgbWF0Y2hpbmcgJXMnOwokbGFuZ1sncHJvbXB0X3NrdV9yZXF1aXJlZCddID0gJ1NLVSBpcyByZXF1aXJlZCBmb3IgYWxsIGl0ZW1zIGFuZCBhdHRyaWJ1dGVzJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5X25ld2RlZmF1bHQnXSA9ICdVc2UgbmV3IHN1bW1hcnkgdmlldyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXBhZ2VsaW1pdCddID0gJ0RlZmF1bHQgcGFnZSBsaW1pdCBpbiBzdW1tYXJ5IG1vZGUnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdEZWZhdWx0IFNvcnQgT3JkZXIgaW4gc3VtbWFyeSBtb2RlJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ0RlZmF1bHQgU29ydCBGaWVsZCBpbiBzdW1tYXJ5IG1vZGUnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgU291cmNlJzsKJGxhbmdbJ3Byb21wdF90cnVlJ10gPSAnVHJ1ZSc7CiRsYW5nWydwcm9tcHRfdXJscHJlZml4J10gPSAnUHJlZml4IHRvIHVzZSBvbiBhbGwgVVJMUyB0YXJnZXRlZCB0byB0aGlzIHRoaXMgbW9kdWxlJzsKJGxhbmdbJ3Byb21wdF91c2VfZGV0YWlscGFnZV9mb3Jfc2VhcmNoJ10gPSAnVXNlIHRoaXMgcGFnZSBmb3Igc2VhcmNoIHJlc3VsdHMgdG9vIDxlbT4ob3ZlcnJpZGVzIHRoZSBzZWFyY2hyZXN1bHRzIHBhZ2UgcGFyYW1ldGVyIGluIHRoZSBzZWFyY2ggbW9kdWxlKTwvZW0+JzsKJGxhbmdbJ3Byb21wdF91c2VoaWVycGF0aHVybHMnXSA9ICdVc2UgSGllcmFyY2h5IFBhdGggaW4gSXRlbSBEZXRhaWwgVVJMUyc7CiRsYW5nWydwcm9tcHRfd2VpZ2h0dW5pdHMnXSA9ICdXZWlnaHQgVW5pdHMnOwokbGFuZ1sncHVibGljJ10gPSAnSXMgdGhpcyBhIHB1YmxpYyBmaWVsZD8nOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnUHVibGlzaGVkJzsKCiMgUQokbGFuZ1sncXVhbnRpdHlfb25faGFuZCddID0gJ1F1YW50aXR5IG9uIEhhbmQnOwoKIyBSCiRsYW5nWydyYW5kb20nXSA9ICdSYW5kb20nOwokbGFuZ1sncmVvcmRlcl9oaWVyYXJjaHknXSA9ICdSZW9yZGVyIEhpZXJhcmNoeSc7CiRsYW5nWydyZXNldCddID0gJ1Jlc2V0JzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnUmVzZXQgdG8gRmFjdG9yeSBWYWx1ZXMnOwokbGFuZ1sncmV0dXJuJ10gPSAnUmV0dXJuJzsKJGxhbmdbJ3JldHVybl90b190b3AnXSA9ICdSZXR1cm4gdG8gdGhlIHRvcCBvZiB0aGUgdmlldyc7CiRsYW5nWydyb290J10gPSAnUm9vdCc7CgojIFMKJGxhbmdbJ3NlYXJjaF9kZXNjcmlwdGlvbiddID0gJ1NlYXJjaCBQcm9wZXJ0eSBEZXNjcmlwdGlvbic7CiRsYW5nWydzZWFyY2hfZXhwciddID0gJ1Nob3VsZCB0aGUgcXVlcnkgbWF0Y2ggYWxsLCBvciBhbnkgb2YgdGhlIHRlc3RzIGJlbG93Pyc7CiRsYW5nWydzZWFyY2hfbmFtZSddID0gJ1NlYXJjaCBQcm9wZXJ0eSBOYW1lJzsKJGxhbmdbJ3NlYXJjaF9wcmljZSddID0gJ1ByaWNlIFJhbmdlJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBTZWFyY2ggRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZXMnXSA9ICdTZWFyY2ggVGVtcGxhdGVzJzsKJGxhbmdbJ3NlbGVjdF9hbGwnXSA9ICdTZWxlY3QgQWxsJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlY3QgT25lJzsKJGxhbmdbJ3NldGRyYWZ0J10gPSAnU2V0IEFzIERyYWZ0JzsKJGxhbmdbJ3NldHB1Ymxpc2hlZCddID0gJ1NldCBBcyBQdWJsaXNoZWQnOwokbGFuZ1snc2t1J10gPSAnU0tVJzsKJGxhbmdbJ3NvcnRfYnknXSA9ICdTb3J0IEJ5JzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdTb3J0IE9yZGVyJzsKJGxhbmdbJ3NvdXJjZSddID0gJ1NvdXJjZSc7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF0dXMnOwokbGFuZ1snc3VibWl0J10gPSAnU3VibWl0JzsKJGxhbmdbJ3N1YnNjcmlwdGlvbiddID0gJ1N1YnNjcmlwdGlvbic7CiRsYW5nWydzdWJzY3JfZXhwaXJ5J10gPSAnRXhwaXJ5JzsKJGxhbmdbJ3N1YnNjcl9leHBpcnkyJ10gPSAnRXhwaXJlcyc7CiRsYW5nWydzdWJzY3JfbW9udGhseSddID0gJ01vbnRobHknOwokbGFuZ1snc3Vic2NyX2RlbHBlcmlvZCddID0gJ0RlbGl2ZXJ5IEZyZXF1ZW5jeSc7CiRsYW5nWydzdWJzY3JfZGVscGVyaW9kMiddID0gJ0RlbGlldmVyZWQnOwokbGFuZ1snc3Vic2NyX3BheXBlcmlvZCddID0gJ1BheW1lbnQgRnJlcXVlbmN5JzsKJGxhbmdbJ3N1YnNjcl9wYXlwZXJpb2QyJ10gPSAnUGFpZCc7CiRsYW5nWydzdWJzY3JfcXVhcnRlcmx5J10gPSAnUXVhcnRlcmx5JzsKJGxhbmdbJ3N1YnNjcl9zZW1pYW51YWxseSddID0gJ1NlbWkgQW51YWxseSc7CiRsYW5nWydzdWJzY3JfeWVhcmx5J10gPSAnWWVhcmx5JzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdTdW1tYXJ5IFRlbXBsYXRlcyc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IEEgU3VtbWFyeSBUZW1wbGF0ZSc7CgojIFQKJGxhbmdbJ3RheGFibGUnXSA9ICdUYXhhYmxlJzsKJGxhbmdbJ3Rlc3QnXSA9ICdUZXN0JzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnVGV4dCBBcmVhJzsKJGxhbmdbJ3RleHRib3gnXSA9ICdUZXh0IElucHV0JzsKJGxhbmdbJ3RpdGxlX2J5aGllcmFyY2h5X2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgTmV3IEhpZXJhcmNoeSBSZXBvcnQgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgTmV3IENhdGVnb3J5TGlzdCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBOZXcgRGV0YWlsIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaF9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IE5ldyBTZWFyY2ggVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IE5ldyBTdW1tYXJ5IFRlbXBsYXRlJzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXBlJzsKCiMgVQokbGFuZ1sndXAnXSA9ICdNb3ZlIFVwJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ1VwZGF0ZSc7CiRsYW5nWyd1cGxvYWQnXSA9ICdTZWxlY3QgYSBmaWxlIHRvIHVwbG9hZCc7CiRsYW5nWyd1cmxfYWxpYXMnXSA9ICdVUkwgQWxpYXMnOwoKIyBWCiRsYW5nWyd2YWxpZCddID0gJ1ZhbGlkJzsKJGxhbmdbJ3ZhbHVlJ10gPSAnVmFsdWUnOwokbGFuZ1sndmFsdWVzJ10gPSAnVmFsdWVzJzsKJGxhbmdbJ3ZpZXcnXSA9ICdWaWV3JzsKJGxhbmdbJ3ZpZXdhYmxlX2ZpZWxkcyddID0gJ1NlbGVjdCBjdXN0b20gZmllbGRzIHRvIHZpZXcgaW4gdGhlIHRhYmxlJzsKCiMgVwokbGFuZ1snd2F0ZXJtYXJrX2xvY2F0aW9uJ10gPSAnV2F0ZXJtYXJrIExvY2F0aW9uJzsKJGxhbmdbJ3dlaWdodCddID0gJ1dlaWdodCc7CiRsYW5nWyd3aXRoX3NlbGVjdGVkJ10gPSAnV2l0aCBTZWxlY3RlZCc7CgojIFgKCiMgWQokbGFuZ1sneWVzJ10gPSAnWWVzJzsKCiMgWgoKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/cs_CZ.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZCddID0gJ1DFmWlkYXQnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdQxZlpZGF0IGthdGVnb3JpaSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ1DFmWlkYXQgcG9sZSc7CiRsYW5nWydhZGRwcm9kdWN0J10gPSAnUMWZaWRhdCBwcm9kdWt0JzsKJGxhbmdbJ2FkZF9hdHRyaWJfc2V0J10gPSAnUMWZaWRhdCB2bGFzdG5vc3QnOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnQWRkIEhpZXJhcmNoeSBJdGVtJzsKJGxhbmdbJ2FkZF9vcHRpb24nXSA9ICdQxZlpZGF0IGhvZG5vdHUgdmxhc3Rub3N0aSc7CiRsYW5nWydhZG1pbl9vbmx5J10gPSAnTSZhYWN1dGU7IHR1dG8gdmxhc3Rub3N0IHZpZMSbdCBwb3V6ZSBzcHImYWFjdXRlO3ZjZT8nOwokbGFuZ1snYWxsY2F0ZWdvcmllcyddID0gJ1Ymc2Nhcm9uO2VjaG55IGthdGVnb3JpZSc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnSnN0ZSBzaSBqaXN0aT8nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVwcm9kdWN0J10gPSAnQXJlIHlvdSBzdXJlIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBwcm9kdWN0LCBhbmQgYWxsIG9mIHRoZSBhY2NvbXBhbnlpbmcgaW5mb3JtYXRpb24gZm9yIGl0Pyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdWemVzdHVwbmUnOwokbGFuZ1snYXR0cmlidXRlX25hbWUnXSA9ICdOJmFhY3V0ZTt6ZXYgdmxhc3Rub3N0aSc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlcyddID0gJ0hpZXJhcmNoeSBSZXBvcnQgVGVtcGxhdGVzJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IEhpZXJhcmNoeSBSZXBvcnQgVGVtcGxhdGUnOwokbGFuZ1snY2FuY2VsJ10gPSAnWnJ1JnNjYXJvbjtpdCc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnS2F0ZWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnS2F0ZWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5ZXhpc3RzJ10gPSAnS2F0ZWdvcmllIHMgdCZpYWN1dGU7bXRvIG4mYWFjdXRlO3p2ZW0gdcW+IGV4aXN0dWplJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0NhdGVnb3J5TGlzdCBUZW1wbGF0ZXMnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IEEgQ2F0ZWdvcnlMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDEuMCAtIERlY2VtYmVyLCAyMDA3DQogICA8cD5Jbml0aWFsIFJlbGVhc2U8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMS4wLjEgLSBKYW51YXJ5LCAyMDA4DQogICA8dWw+DQogICAgIDxsaT5BZGRzIHBhZ2luYXRpb24gaW4gc3VtbWFyeSB2aWV3PC9saT4NCiAgICAgPGxpPkZpeGVzIGEgcHJvYmxlbSB3aXRoIGR1cGxpY2F0ZSBsaW5rcyBpbiBzdW1tYXJ5IHZpZXc8L2xpPg0KICAgPC91bD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAyLjAgLSBBcHJpbCwgMjAwOA0KICA8dWw+DQogICAgIDxsaT5BZGRzIGhpZXJhcmNoaWNhbCBjYXRlZ29yaWVzIGFzIHdlbGwgYXMgdGhlIG9yaWdpbmFsICYjMDM5O3RhZyYjMDM5OyBiYXNlZCBjYXRlZ29yaWVzLjxici8+DQogICAgICAgICBIaWVyYXJjaGljYWwgY2F0ZWdvcmllcyBjYW4gaGF2ZSBhbiBpbWFnZSBhcyB3ZWxsIGFzIGEgZGVzY3JpcHRpb24uPC9saT4NCiAgICAgPGxpPkFkZHMgbW9yZSBjdXN0b20gZmllbGQgdHlwZXMgKGltYWdlLCBkcm9wZG93bik8YnIvPg0KICAgICAgICAgSW5jbHVkaW5nIHRodW1ibmFpbCBnZW5lcmF0aW9uLjwvbGk+DQogICAgIDxsaT5SZW1vdmUgdGhlIG9yaWdpbmFsIGltYWdlIGZpZWxkczwvbGk+DQogICAgIDxsaT5BZGRzIFNlYXJjaCBtb2R1bGUgY2FwYWJpbGl0eTwvbGk+DQogICAgIDxsaT5BZGRzIGEgaGllcmFyY2hpY2FsIGNhdGVnb3J5IHZpZXcgd2l0aCBkcmlsbCBkb3duIHN1cHBvcnQ8L2xpPg0KICAgICA8bGk+TXVjaCwgbXVjaCBtb3JlPC9saT4NCiAgPC91bD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAyLjAuMSAtIEFwcmlsLCAyMDA4DQogIDx1bD4NCiAgICAgPGxpPkZpeGVzIG51bWVyb3VzIHNtYWxsIGVycm9ycy48L2xpPg0KICAgICA8bGk+Rml4IHRvIGFsbG93IHNwYWNlcyBhbmQgb3RoZXIgY2hhcmFjdGVycyBpbiBoaWVyYXJjaHkgbmFtZXM8L2xpPg0KICA8L3VsPg0KPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnQ2hlY2tib3gnOwokbGFuZ1snY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm9kZT8gIEFueSBwcm9kdWN0cyB0aGF0IGFyZSB1c2luZyB0aGlzIG5vZGUgd2lsbCBiZSBzZXQgdG8gbm8gaGllcmFyY2h5JzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRGF0dW0gdnl0dm/FmWVuJmlhY3V0ZTsnOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ0FrdHUmYWFjdXRlO2xuJmlhY3V0ZTsgZGF0dW0nOwokbGFuZ1snZGVmYXVsdHRlbXBsYXRlcyddID0gJ1YmeWFjdXRlO2Nob3omaWFjdXRlOyAmc2Nhcm9uO2FibG9uYSc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlX25vdGljZSddID0gJzxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhlIGNvbnRlbnRzIG9mIHRoZXNlIHRleHQgYXJlYXMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGNvbnRlbnQgb2YgdGVtcGxhdGVzIHdoZW4geW91IGNsaWNrICZxdW90O0FkZCBUZW1wbGF0ZSZxdW90OyBpbiB0aGUgYXBwcm9wcmlhdGUgdGVtcGxhdGUgdGFiLiAgRWRpdGluZyBvbmUgb2YgdGhlc2UgdGV4dCBhcmVhcyB3aWxsIGhhdmUgbm8gaW1tZWRpYXRlIGVmZmVjdCBvbiB5b3VyIHdlYnNpdGUuJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1Z5bWF6YXQnOwokbGFuZ1snZGVsZXRlX2F0dHJpYnNldCddID0gJ1pydSZzY2Fyb247aXQgdmxhc3Rub3N0JzsKJGxhbmdbJ2RlbGV0ZV9oaWVyYXJjaHlfaXRlbSddID0gJ0RlbGV0ZSBIaWVyYXJjaHkgSXRlbSc7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnU2VzdHVwbsSbJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnUG9waXMnOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFpbHknOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAnJlNjYXJvbjthYmxvbmEgZGV0YWlsdSc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnUMWZaWRhdC9VcHJhdml0ICZzY2Fyb247YWJsb251IGRldGFpbHUnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdOZWFrdGl2biZpYWN1dGU7JzsKJGxhbmdbJ2RyYWZ0J10gPSAnTiZhYWN1dGU7dnJoJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24nOwokbGFuZ1snZHJvcGRvd25fb3B0aW9ucyddID0gJ0Ryb3Bkb3duIE9wdGlvbnMgPGVtPihhcHBsaWNhYmxlIG9ubHkgZm9yIGRyb3Bkb3duIGZpZWxkcyk8L2VtPjxici8+PGJyLz48ZW0+KG9uZSBlbnRyeSBwZXIgbGluZSk8L2VtPic7CiRsYW5nWydlZGl0J10gPSAnRWRpdCc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICdFZGl0IEF0dHJpYnV0ZSBTZXRzJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0c19mb3InXSA9ICdFZGl0IEF0dHJpYnV0ZSBTZXRzIEZvcic7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdFZGl0IEF0dHJpYnV0ZXMnOwokbGFuZ1snZWRpdF9oaWVyYXJjaHlfaXRlbSddID0gJ0VkaXQgSGllcmFyY2h5IEl0ZW0nOwokbGFuZ1snZXJyb3JfYXR0cmlic2V0X2V4aXN0cyddID0gJ0FuIGF0dHJpYnV0ZSB3aXRoIHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnSW52YWxpZCBQYXJlbnQgKGEgaGllcmFyY2h5IG5vZGUgY2Fubm90IGJlIGl0JiMwMzk7cyBvd24gcGFyZW50KSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX25hbWUnXSA9ICdUaGUgY3VzdG9tIGZpZWxkIHZhbHVlIGVudGVyZWQgaXMgaW52YWxpZCAoY29udGFpbnMgbm9uIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzKSc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdBIHJlcXVpcmVkIHBhcmFtZXRlciBpcyBtaXNzaW5nIG9yIGludmFsaWQnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9uYW1ldXNlZCddID0gJ1Byb2R1a3QgcyB0JmlhY3V0ZTttdG8gbiZhYWN1dGU7enZlbSB1xb4gZXhpc3R1amUnOwokbGFuZ1snZXJyb3JfcHJpY2VfYWRqdXN0bWVudCddID0gJ0ludmFsaWQgcHJpY2UgYWRqdXN0bWVudCB2YWx1ZSBmb3IgaXRlbSAlcyc7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnVXBsb2FkIGZhaWxlZDogJXMnOwokbGFuZ1snZmllbGQnXSA9ICdQb2xlJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRGVmaW5pY2UgcG9sZSc7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdEZWZpbmljZSBwb2wmaWFjdXRlOyc7CiRsYW5nWydmaWxlJ10gPSAnU291Ym9yJzsKJGxhbmdbJ2ZpbHRlcnMnXSA9ICdGaWx0cnknOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IGRvZXMgdGhpcyBkbz88L2gzPg0KPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgYSB3YXkgdG8gY29sbGVjdCwgb3JnYW5pemUsIGFuZCBkaXNwbGF5IGluZm9ybWF0aW9uIGFib3V0IHByb2R1Y3RzIGFuZCB0aGVpciBjYXRlZ29yaWVzLiAgVGhpcyBtb2R1bGUgY2FuIHN0YW5kIG9uIGl0cyBvd24sIG9yIGJlIHBhcnQgb2YgYW4gZS1jb21tZXJjZSBzb2x1dGlvbiBpZiB5b3Ugd2lzaC4gIFRoZSBtb2R1bGUgc3VwcG9ydHMgYSBwcm9kdWN0IGV4aXN0aW5nIGluIG1vcmUgdGhhbiBvbmUgY2F0ZWdvcnksIHN1cHBvcnRzIHByb2R1Y3Qgd2VpZ2h0LCBwcmljZSwgYW5kIGF0dHJpYnV0ZSBzZXRzLiAgRWFjaCBpdGVtIGluIGFuIGF0dHJpYnV0ZSBzZXQgY2FuIGhhdmUgYSBwcmljZSBhZGp1c3RtZW50LiAgQWxzbyBhIGdsb2JhbCBmbGFnIGluZGljYXRlcyB3ZXRoZXIgdGhlIHByb2R1Y3QgaXMgJiMwMzk7dGF4YWJsZSYjMDM5OyBvciBub3QuPC9wPg0KICA8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBmb3IgdXAgdG8gdHdvIGltYWdlcyBwZXIgcHJvZHVjdCwgY3VzdG9tIGZpZWxkIGRlZmluaXRpb25zLCBhbmQgZm9yIHRoZSBhYmlsaXR5IHRvIGRlc2NyaW1pbmF0ZSBwcml2YXRlIGZyb20gcHVibGljIGRhdGEuPC9wPg0KPGgzPkZlYXR1cmVzOjwvaDM+DQo8dWw+DQogIDxsaT5OdW1lcm91cyBWaWV3czwvbGk+DQogICAgPHVsPg0KICAgICAgPGxpPlN1bW1hcnkgdmlldzwvbGk+DQogICAgICA8bGk+Q2F0ZWdvcnkgTGlzdCBWaWV3PC9saT4NCiAgICAgIDxsaT5EZXRhaWwgdmlldzwvbGk+IA0KICAgICAgPGxpPkhpZXJhcmNoeSBEcmlsbC1kb3duIFZpZXc8L2xpPg0KICAgIDwvdWw+DQogIDxsaT5FbnRpcmVseSBEYXRhYmFzZSBUZW1wbGF0ZSBEcml2ZW48L2xpPg0KICA8cD5OdW1lcm91cyB0ZW1wbGF0ZXMgb2YgZWFjaCB0eXBlIGNhbiBiZSBkZWZpbmVkLCBkZWZhdWx0cyBzcGVjaWZpZWQgZm9yIGVhY2ggdHlwZSwgYW5kIHRoZSB0ZW1wbGF0ZSB1c2VkIGZvciBlYWNoIHBhcnRpY3VsYXIgdmlldyBjYW4gYmUgc3BlY2lmaWVkIGFzIGEgcGFyYW1ldGVyPC9wPg0KICA8bGk+U29ydGluZyBhbmQgcGFnaW5hdGlvbiBpbiB0aGUgc3VtbWFyeSB2aWV3PC9saT4NCiAgPGxpPlByb2R1Y3RzIGNhbiBleGlzdCBpbiBtdWx0aXBsZSBjYXRlZ29yaWVzPC9saT4NCiAgPGxpPk51bWVyb3VzIGN1c3RvbSBmaWVsZHMgY2FuIGJlIGRlZmluZWQsIGluY2x1ZGluZyBpbWFnZXM8L2xpPg0KICA8bGk+QXV0b21hdGljIHRodW1ibmFpbCBjcmVhdGlvbjwvbGk+DQogIDxsaT5BZG1pbiBkZWZpbmVkIGZpZWxkczwvbGk+DQogIDxsaT5Qcm9kdWN0IGF0dHJpYnV0ZXMgKGluY2x1ZGluZyBwcmljZSBhZGp1c3RtZW50KTwvbGk+DQogIDxsaT5XZWlnaHQgYW5kIHRheGFibGUgZmllbGRzIChmb3IgdXNlIGluIGUtY29tbWVyY2Ugc29sdXRpb25zKTwvbGk+DQogIDxsaT5Qcm9kdWN0cyBjYW4gaGF2ZSBhIHN0YXR1cyAocHVibGlzaGVkIG9yIGRyYWZ0KSBpbiBvcmRlciB0byBoaWRlIHByb2R1Y3RzIGZyb20gcHVibGljIGRpc3BsYXkgYXQgYW55IHRpbWU8L2xpPg0KICA8bGk+UHJldHR5IFVSTCBTdXBwb3J0PC9saT4NCiAgPGxpPjxzdHJvbmc+TW9yZS4uLjwvc3Ryb25nPjwvbGk+DQo8L3VsPg0KDQo8aDM+SG93IERvIEkgVXNlIEl0OjwvaDM+DQo8dWw+DQo8bGk+U2V0IHByZWZlcmVuY2VzPC9saT4NCjxwPlVzdWFsbHkgdGhpcyBpcyBqdXN0IGEgZm9ybWFsaXR5LiAgWW91IHNob3VsZCBzcGVjaWZ5IHlvdXIgZGVmYXVsdCB3ZWlnaHQgdW5pdHMsIGFuZCB5b3VyIGRlZmF1bHQgY3VycmVuY3kgc3ltYm9sIGZvciB5b3VyIGxvY2FsIGVudmlyb25tZW50LjwvcD4NCjxsaT5TZXR1cCB1c2VycyBhbmQgcGVybWlzc2lvbnM8L2xpPg0KPHA+VGhpcyBtb2R1bGUgdXNlcyB0aGUgJiMwMzk7TW9kaWZ5IFRlbXBsYXRlcyYjMDM5OyBwZXJtaXNzaW9uIHRvIGFsbG93IHVzZXJzIHRvIGJlIGFibGUgdG8gbW9kaWZ5IHRoZSB2YXJpb3VzIHRlbXBsYXRlcyB0aGF0IGNhbiBiZSB1c2VkIGJ5IHRoaXMgbW9kdWxlLiAgQXMgd2VsbCwgdGhlICYjMDM5O01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJiMwMzk7IHBlcm1pc3Npb24gaXMgbmVlZGVkIHRvIGJlIGFibGUgdG8gYWRqdXN0IHRoZSBtb2R1bGVzIHByZWZlcmVuY2VzLiAgSW4gb3JkZXIgdG8gaGF2ZSB0aGUgYWJpbGl0eSB0byBtb2RpZnkgZmllbGQgZGVmaW5pdGlvbnMsIGNhdGVnb3JpZXMsIG9yIHByb2R1Y3RzLCB5b3VyIHVzZXJzIHdpbGwgbmVlZCB0aGUgJiMwMzk7TW9kaWZ5IFByb2R1Y3RzJiMwMzk7IHBlcm1pc3Npb24uPC9wPg0KPGxpPihvcHRpb25hbCkgRGVmaW5lIG9uZSBvciBtb3JlIGNhdGVnb3JpZXM8L2xpPg0KPHA+VGhpcyBpcyBhbiBvcHRpb25hbCBzdGVwLCBidXQgeW91IHdpbGwgcHJvYmFibHkgd2FudCB0byBkbyB0aGlzIGVhcmx5IHRvIHByZXZlbnQgaGF2aW5nIHRvIGdvIGJhY2sgdG8gbW9kaWZ5IGVhY2ggYW5kIGV2ZXJ5IHByb2R1Y3QgbGF0ZXIuICBBZGRpbmcgYSBjYXRlZ29yeSBpcyBhcyBzaW1wbGUgYXMgY2xpY2tpbmcgb24gdGhlICYjMDM5O0NhdGVnb3JpZXMmIzAzOTsgdGFiIGluIHRoZSBQcm9kdWN0IE1hbmFnZXJzIGFkbWluIHNlY3Rpb24sIGFuZCBjbGlja2luZyAmIzAzOTtBZGQgQSBDYXRlZ29yeSYjMDM5Oy4gIEZyb20gdGhlcmUgeW91IHdpbGwgYmUgcHJvbXB0ZWQgZm9yIGEgY2F0ZWdvcnkgbmFtZS48L3A+DQo8bGk+KG9wdGlvbmFsKSBEZWZpbmUgb25lIG9yIG1vcmUgY3VzdG9tIGZpZWxkczwvbGk+DQo8cD5UaGlzIGlzIGFuIG9wdGlvbmFsIHN0ZXAuICBDdXN0b20gZmllbGRzIGFyZSBub3QgbmVlZGVkIGlmIHRoaXMgbW9kdWxlIHN1aXRzIHlvdSBleGFjdGx5IGFzIGl0IGlzLiAgSG93ZXZlciBpZiB5b3Ugd291bGQgbGlrZSB0byBzdG9yZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZvciBlYWNoIG9mIHlvdXIgcHJvZHVjdHMgeW91IGNhbiBjcmVhdGUgY3VzdG9tIGZpZWxkcy4gIENyZWF0aW5nIGN1c3RvbSBmaWVsZHMgaXMgc2ltaWxhciB0byBjcmVhdGluZyBjYXRlZ29yaWVzLCBleGNlcHQgdGhhdCBtb3JlIGRhdGEgaXMgcmVxdWVzdGVkLjwvcD4NCjxwPkN1cnJlbnRseSBvbmx5IHRocmVlIHR5cGVzIG9mIGN1c3RvbSBmaWVsZHMgYXJlIGF2YWlsYWJsZTogJiMwMzk7dGV4dGJveCYjMDM5OywmIzAzOTtjaGVja2JveCYjMDM5OyxhbmQgJiMwMzk7dGV4dGFyZWEsIGRyb3Bkb3duLCBhbmQgZmlsZSYjMDM5Oy4gIFNlbGVjdCBvbmUgb2YgdGhlc2UsIGdpdmUgeW91ciBuZXcgZmllbGQgYSBuYW1lLCBhbmQgaW5kaWNhdGUgd2V0aGVyIHRoYXQgZmllbGQgc2hvdWxkIGJlIHZpc2libGUgdG8gdGhlIHB1YmxpYyBpbiB0aGUgdmFyaW91cyB2aWV3cy4gIFRoZW4gaGl0IHN1Ym1pdDwvcD4NCjxsaT5DcmVhdGUgb25lIG9yIG1vcmUgcHJvZHVjdHM8L2xpPg0KPHA+WW91IHNob3VsZCBjcmVhdGUgb25lIG9yIG1vcmUgcHJvZHVjdHMgdG8gZGlzcGxheSBpbiB5b3VyIHdlYnNpdGUgY29udGVudC4gIEdpdmUgZWFjaCBwcm9kdWN0IGEgbmFtZSwgYSBwcmljZSAob3B0aW9uYWwpIGEgd2VpZ2h0IChvcHRpb25hbCksIGEgc3RhdHVzIChkcmFmdCBvciBwdWJsaXNoZWQpLCBhbmQgc29tZSBpbmZvcm1hdGlvbi4gIEFkZGl0aW9uYWxseSwgeW91IGNhbiBzcGVjaWZ5IGlmIHRoZSBwcm9kdWN0IGlzIHRheGFibGUsIGFuZCBpdCYjMDM5O3Mgd2VpZ2h0LjwvcD4NCjxwPklmIGNhdGVnb3JpZXMgYXJlIGRlZmluZWQsIHRoZW4gYSBjaGVja2JveCB3aWxsIGFwcGVhciBmb3IgZWFjaCBkZWZpbmVkIGNhdGVnb3J5LiAgWW91IGNhbiBzaW1wbHkgY2xpY2sgdGhlIGNoZWNrYm94IGZpZWxkcyBmb3IgZWFjaCBjYXRlZ29yeSB0aGF0IHRoaXMgcHJvZHVjdCBzaG91bGQgYmVsb25nIHRvLjwvcD4NCjxwPklmIGN1c3RvbSBmaWVsZHMgYXJlIGRlZmluZWQsIHRoZW4gaW5wdXQgZmllbGRzIGFwcHJvcHJpYXRlIHRvIHRoZSB0eXBlIG9mIGN1c3RvbSBmaWVsZCB3aWxsIGFwcGVhciBhbmQgYWxsb3cgeW91IHRvIHNwZWNpZnkgZGF0YSBmb3IgZWFjaCBvZiB0aGVtLiAgVGhpcyBkYXRhIGlzIG9wdGlvbmFsLjwvcD4NCjxsaT5BZGQgdGhlIGFwcHJvcHJpYXRlIHRhZ3MgaW50byB5b3VyIHBhZ2UgdGVtcGxhdGVzIG9yIHBhZ2UgY29udGVudDwvbGk+DQo8cD5UaGlzIGNhbiBiZSBhcyBzaW1wbGUgYXMgYWRkaW5nIHRoZSA8c3Ryb25nPntQcm9kdWN0c308L3N0cm9uZz4gdGFnIGludG8gdGhlIGNvbnRlbnQgYXJlYSBvZiBvbmUgb2YgeW91ciBwYWdlcywgb3IgaW50byB5b3VyIHBhZ2UgdGVtcGxhdGUuPC9wPg0KPHA+SWYgeW91IHdpc2ggdG8gYWx0ZXIgdGhlIGJlaGF2aW91ciBvZiB0aGlzIGFwcGxpY2F0aW9uIGZyb20gaXRzIGRlZmF1bHQsIHlvdSBjYW4gZG8gdGhhdCBieSBhZGRpbmcgb25lIG9yIG1vcmUgcGFyYW1ldGVycyB0byB0aGUgPHN0cm9uZz57UHJvZHVjdHN9PC9zdHJvbmc+IHRhZy4gIFRoZSBjb21wbGV0ZSBsaXN0IG9mIHBhcmFtZXRlcnMgYW5kIHRoZWlyIGJlaGF2aW91ciBpcyBsaXN0ZWQgYmVsb3cuICBCdXQgZm9yIGV4YW1wbGUsIHRvIGRpc3BsYXkgYSBsaXN0IG9mIHByb2R1Y3RzIGluIGEgc2luZ2xlLCBleGlzdGluZyBjYXRlZ29yeSwgeW91IGNvdWxkIHVzZSBhIHRhZyBsaWtlIDxjb2RlPntQcm9kdWN0cyBjYXRlZ29yeT0mIzAzOTtjYXRlZ29yeW5hbWUmIzAzOTt9PC9jb2RlPjwvcD4NCjwvdWw+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gIEhvd2V2ZXIgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcyBvciB0byBmaWxlIGEgYnVnIHJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBjbXMgbWFkZSBzaW1wbGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkRldmVsb3BlcnMgRm9yZ2U8L2E+IGFuZCBkbyBhIHNlYXJjaCBmb3IgJiMwMzk7UHJvZHVjdHMmIzAzOTs8L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0mcXVvdDttYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5Sb2JlcnQgQ2FtcGJlbGw8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5DTVMgTWFkZSBTaW1wbGUgRm9ybXMuPC9hPjwvbGk+DQo8bGk+Rm9yIHNvbWUgcXVlc3Rpb25zIGFuZCBsaW1pdGVkIHRlY2huaWNhbCBzdXBwb3J0LCB0aGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMmcXVvdDs+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPC91bD4nOwokbGFuZ1snaGllcmFyY2h5J10gPSAnSGllcmFyY2h5JzsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gJ0hpZXJhcmNoeSBQb3NpdGlvbic7CiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ09iciZhYWN1dGU7emVrJzsKJGxhbmdbJ2luY2x1ZGVfY2hpbGRyZW4nXSA9ICdJbmNsdWRlIENoaWxkcmVuPyc7CiRsYW5nWydpbmZvX2FsbnVtb25seSddID0gJ09ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMuIE5vIHdoaXRlc3BhY2UsIHF1b3Rlcywgb3Igbm9uIGxldHRlci9udW1iZXIgY29tYmluYXRpb25zJzsKJGxhbmdbJ2luZm9fZmllbGRwcm9ibGVtcyddID0gJ1Byb2JsZW1zIHdlcmUgZW5jb3VudGVyZWQgd2hlbiBkZWFsaW5nIHdpdGggb25lIG9yIG1vcmUgY3VzdG9tIGZpZWxkcy4gIFRoZSBhY3Rpb24gaGFzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHksIGhvd2V2ZXIgeW91IHNob3VsZCBpbnZlc3RpZ2F0ZSBhbmQgY29ycmVjdCB0aGVzZSBwcm9ibGVtcyc7CiRsYW5nWydpbmZvX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdWYWxpZCB2YWx1ZXMgYXJlICstKiMuIyMnOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gJ1B1YmxpYyBmaWVsZHMgYXJlIGF2YWlsYWJsZSBmb3IgdGhlIHB1YmxpYyB0byBzZWUnOwokbGFuZ1snbGFiZWwnXSA9ICdQb3Bpcyc7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xhc3RfbW9kaWZpZWQnXSA9ICdQb3NsZWRuJmlhY3V0ZTsgem3Em25hJzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnRHJ1aCZ5YWN1dGU7IG9iciZhYWN1dGU7emVrJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ01heGltdW0gbGVuZ3RoIDxlbT4oYXBwbGljYWJsZSBvbmx5IG9uIHRleHRib3ggZmllbGRzKTwvZW0+JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ1ptxJtuxJtubyBkbmUnOwokbGFuZ1snbW9kdWxlX2Rlc2NyaXB0aW9uJ10gPSAnQSBtb2R1bGUgZm9yIG1hbmFnaW5nIGEgY2F0YWxvZyBvZiBwcm9kdWN0cywgdGhlaXIgcHJpY2UsIGltYWdlcywgZXRjLCBhbmQgZm9yIGFsbG93aW5nIHVzZXJzIHRvIGJ1aWxkIGEgY2FydCc7CiRsYW5nWyduYW1lJ10gPSAnTiZhYWN1dGU7emV2JzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnTmVtJmFhY3V0ZTt0ZSBwb8W+YWRvdmFuJmVhY3V0ZTsgb3ByJmFhY3V0ZTt2bsSbbiZpYWN1dGU7OiAlcyc7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICdObyBuYW1lIHdhcyBzdXBwbGllZCc7CiRsYW5nWydub25lJ10gPSAnTm9uZSc7CiRsYW5nWydvZiddID0gJ3onOwokbGFuZ1sncGFnZSddID0gJ1N0ciZhYWN1dGU7bmthJzsKJGxhbmdbJ3BhZ2Vfb2YnXSA9ICdTdHImYWFjdXRlO25rYSAlcyB6ICVzJzsKJGxhbmdbJ3BhZ2VfbGltaXQnXSA9ICdQYWdlIExpbWl0JzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ1NwZWNpZnkgdGhlIGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPmhpZXJhcmNoeSAtLSBEaXNwbGF5IGEgcHJvZHVjdCBsaXN0IGJ5IGhpZXJhcmNoeTwvbGk+DQogIDxsaT5jYXRlZ29yeWxpc3QgLSBEaXNwbGF5IGEgbGlzdCBvZiBwcm9kdWN0IGNhdGVnb3JpZXM8L2xpPg0KICA8bGk+PGVtPmRlZmF1bHQ8L2VtPiAtIERpc3BsYXkgYSBzdW1tYXJ5IG9mIHByb2R1Y3RzPC9saT4NCiAgPGxpPmRldGFpbCAtIERpc3BsYXkgYSBkZXRhaWwgdmlldyBvZiBhIHNpbmdsZSBwcm9kdWN0PC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnV2hlbiB1c2VkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIsIHdoaWNoIHNob3VsZCBtYXRjaCB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyBjYXRlZ29yeSB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBvbmx5IHRob3NlIGNvbXBhbmllcyB0aGF0IGFyZSBpbiB0aGF0IGNhdGVnb29yeS4gKGEgY29tbWEgc2VwZXJhdGVkIGxpc3QgY2FuIGJlIHN1cHBsaWVkKSc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnVGhpcyBzcGVjaWZpZXMgdGhlIHBhZ2VpZCBvciBhbGlhcyB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIGRldGFpbCByZXBvcnQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGV0YWlsIG1vZGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHknXSA9ICdVc2VmdWwgb25seSBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGF0IG9ubHkgaXRlbXMgaW4gdGhhdCBsb2NhdGlvbiBvZiB0aGUgaGllcmFyY2h5IHNob3VsZCBiZSBkaXNwbGF5ZWQuICBXaWxkY2FyZCBjaGFyYWN0ZXIgY2FuIGJlIHVzZWQgc28gdGhhdCB5b3UgY2FuIHNwZWNpZnkgcGFyZW50L2NoaWxkIHJlbGF0aW9uc2hpcHMgYXMgd2VsbC4gIGkuZSB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5O3RydWNrcyomIzAzOTt9IHdpbGwgY3JlYXRlIGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgaW5jbHVkaW5nIHRoZSBjaGlsZHJlbiBpbiB0aGUgaGllcmFyY2h5LiAgU2ltaWxhcmx5LCB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5Oyp0cnVja3MmIzAzOTt9IHdpbGwgZGlzcGxheSBhIHN1bW1hcnkgcmVwb3J0IG9mIGFsbCB0cnVja3MsIGFuZCBhbGwgcHJvZHVjdHMgYmVsb2dpbmcgdG8gYW55IHBhcmVudCBpbiB0aGUgaGllcmFyY2h5Lic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGhpZXJhcmNoeSBkaXNwbGF5LiBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1fcGFnZWxpbWl0J10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBob3cgbWFueSBpdGVtcyBzaG91bGQgYmUgbGlzdGVkIG9uIGVhY2ggcGFnZS4nOwokbGFuZ1sncGFyYW1fcGFyZW50J10gPSAnVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5oaWVyYXJjaHk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgaGllcmFyY2h5IGlkIG9mIHRoZSBzdGFydGluZyBsb2NhdGlvbiBvZiB0aGUgcmVwb3J0Lic7CiRsYW5nWydwYXJhbV9wcm9kdWN0aWQnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSBkZXRhaWwgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgd2hhdCBwcm9kdWN0IHRvIHVzZSBmb3IgdGhlIGRpc3BsYXkuJzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ1NwZWNpZnkgdGhlIG9yZGVyIG9mIHNvcnRlZCBmaWVsZHMgaW4gc3VtbWFyeSB2aWV3LiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIEFzY2VuZGluZyBvcmRlcjwvbGk+DQogIDxsaT5kZXNjIC0tIERlc2NlbmRpbmcgb3JkZXI8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnQXBwbGljYWJsZSBvbmx5IGluIHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgZGV0ZXJtaW5lcyB0aGUgc29ydGluZyBvZiB0aGUgb3V0cHV0IGNvbXBhbmllcy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPnByb2R1Y3RfbmFtZTwvc3Ryb25nPjwvbGk+DQogIDxsaT5wcmljZSAtLSBUaGUgcHJvZHVjdCBiYXNlIHByaWNlPC9saT4NCiAgPGxpPnN0YXR1cyAtLSBEcmFmdCBvciBwdWJsaXNoZWQ8L2xpPg0KICA8bGk+cmFuZG9tIC0tIERpc3BsYXkgaW4gcmFuZG9tIG9yZGVyIG9uIGVhY2ggcmVxdWVzdDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIHN1bW1hcnkgbW9kZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmVudCddID0gJ1BhcmVudCc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1RoZSBQcm9kdWN0cyBtb2R1bGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZCc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnVGhlIFByb2R1Y3RzIG1vZHVsZSBoYXMgYmVlbiByZW1vdmVkIGFsb25nIHdpdGggYWxsIGFzc29jaWF0ZWQgZGF0YSc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1ByZWZlcmVuY2VzJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ1JlbW92aW5nIHRoaXMgbW9kdWxlIHdpbGwgYWxzbyByZW1vdmUgYWxsIGFzc29jaWF0ZWQgZGF0YSwgYXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHByb2NlZWQ/JzsKJGxhbmdbJ3ByaWNlJ10gPSAnQ2VuYSc7CiRsYW5nWydwcmljZV9hZGp1c3RtZW50J10gPSAnTmFzdGF2ZW4maWFjdXRlOyBjZW55JzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCc7CiRsYW5nWydwcm9kdWN0J10gPSAnUHJvZHVrdCc7CiRsYW5nWydwcm9kdWN0bmFtZSddID0gJ04mYWFjdXRlO3pldiBwcm9kdWt0dSc7CiRsYW5nWydwcm9kdWN0cyddID0gJ1Byb2R1a3R5JzsKJGxhbmdbJ3Byb2R1Y3RfaGllcmFyY2h5J10gPSAnUHJvZHVjdCBIaWVyYXJjaHknOwokbGFuZ1sncHJvZHVjdF9tYW5hZ2VyJ10gPSAnUHJvZHVjdCBNYW5hZ2VyJzsKJGxhbmdbJ3Byb21wdCddID0gJ1Byb21wdCc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnXSA9ICdBbGxvdyB1cGxvYWQgb2YgZmlsZXMgd2l0aCB0aGVzZSBleHRlbnNpb25zIChmb3IgZmlsZSB0eXBlIGZpZWxkcyknOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2V0eXBlcyddID0gJ0FsbG93IHVwbG9hZCBvZiBpbWFnZXMgd2l0aCB0aGVzZSBleHRlbnNpb25zIChmb3IgaW1hZ2UgdHlwZSBmaWVsZHMpJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsJ10gPSAnQXV0b21hdGljYWxseSBjcmVhdGUgdGh1bWJuYWlscyBvZiBpbWFnZXMnOwokbGFuZ1sncHJvbXB0X2FwcGxpY2FibGUnXSA9ICdFbmFibGUgYnkgZGVmYXVsdCBmb3IgYWxsIG5ldyBwcm9kdWN0cyc7CiRsYW5nWydwcm9tcHRfY3VycmVuY3lzeW1ib2wnXSA9ICdTeW1ib2wgbcSbbnknOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gJ0RlbGV0ZSBhbnkgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm9kdWN0IHdoZW4gdGhlIHByb2R1Y3QgaXMgZGVsZXRlZD8nOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdEZWZhdWx0IERldGFpbCBQYWdlJzsKJGxhbmdbJ3Byb21wdF90YXhyYXRlJ10gPSAnViZ5YWN1dGU7JnNjYXJvbjtlIGRhbsSbJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnRGVmYXVsdCBTb3J0IE9yZGVyIGluIHN1bW1hcnkgbW9kZSc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICdEZWZhdWx0IFNvcnQgRmllbGQgaW4gc3VtbWFyeSBtb2RlJzsKJGxhbmdbJ3Byb21wdF90YXgxJ10gPSAnUHJ2biZpYWN1dGU7IGRhxYgnOwokbGFuZ1sncHJvbXB0X3RheDInXSA9ICdEcnVoJmFhY3V0ZTsgZGHFiCc7CiRsYW5nWydwcm9tcHRfdGF4bmFtZSddID0gJ04mYWFjdXRlO3pldiBkYW7Emyc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBTb3VyY2UnOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnSmVkbm90a2EgdiZhYWN1dGU7aHknOwokbGFuZ1sncHVibGljJ10gPSAnSXMgdGhpcyBhIHB1YmxpYyBmaWVsZD8nOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnWnZlxZllam7Em25vJzsKJGxhbmdbJ3JhbmRvbSddID0gJ1JhbmRvbSc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1Jlc2V0IHRvIEZhY3RvcnkgVmFsdWVzJzsKJGxhbmdbJ3Jvb3QnXSA9ICdSb290JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlY3QgT25lJzsKJGxhbmdbJ3NvcnRfYnknXSA9ICfFmGF6ZW5vIHBvZGxlJzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdTb3J0IE9yZGVyJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyc7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJyZTY2Fyb247YWJsb25hIHDFmWVobGVkdSc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IEEgU3VtbWFyeSBUZW1wbGF0ZSc7CiRsYW5nWyd0YXhhYmxlJ10gPSAnWmRhbml0ZWxuJmVhY3V0ZTsnOwokbGFuZ1sndGF4X21vZHVsZSddID0gJ1RheCBNb2R1bGUnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZXh0IEFyZWEnOwokbGFuZ1sndGV4dGJveCddID0gJ1RleHQgSW5wdXQnOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBOZXcgSGllcmFyY2h5IFJlcG9ydCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBOZXcgQ2F0ZWdvcnlMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdOb3YmYWFjdXRlOyB2JnlhY3V0ZTtjaG96JmlhY3V0ZTsgJnNjYXJvbjthYmxvbmEgZGV0YWlsdSc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ05vdiZhYWN1dGU7IHYmeWFjdXRlO2Nob3omaWFjdXRlOyAmc2Nhcm9uO2FibG9uYSBwxZllaGxlZHUnOwokbGFuZ1sndHlwZSddID0gJ1R5cCc7CiRsYW5nWyd1cGRhdGUnXSA9ICdBa3R1YWxpem92YXQnOwokbGFuZ1sndXBsb2FkJ10gPSAnVnliZXJ0ZSBzb3Vib3IgayBuYWhyJmFhY3V0ZTtuJmlhY3V0ZTsnOwokbGFuZ1sndmFsdWUnXSA9ICdIb2Rub3RhJzsKJGxhbmdbJ3ZhbHVlcyddID0gJ0hvZG5vdHknOwokbGFuZ1snd2VpZ2h0J10gPSAnViZhYWN1dGU7aGEnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xODEyNDQ2OTI3LjEyMDEyNTAyMzAuMTIxMDkzMDYwOC4xMjEwOTM2NzE0LjI5JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIxMDUzOTQwNS4yNS4xOC51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9ZWxla3Ryb2tvbXBsZXguY29tfHV0bWNjdD0vY21zL2FkbWluL2FkZGNvbnRlbnQucGhwfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/da_DK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZCddID0gJ1RpbGYmb3NsYXNoO2onOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdUaWxmJm9zbGFzaDtqIGVuIGthdGVnb3JpJzsKJGxhbmdbJ2FkZGZpZWxkZGVmJ10gPSAnVGlsZiZvc2xhc2g7aiBldCBmZWx0JzsKJGxhbmdbJ2FkZHByb2R1Y3QnXSA9ICdUaWxmJm9zbGFzaDtqIGV0IHByb2R1a3QnOwokbGFuZ1snYWRkX2F0dHJpYl9zZXQnXSA9ICdUaWxmJm9zbGFzaDtqIGVuIGVnZW5za2FiJzsKJGxhbmdbJ2FkZF9oaWVyYXJjaHlfaXRlbSddID0gJ0Ymb3NsYXNoO2ogZXQgZWxlbWVudCB0aWwgaGllcmFya2lldCc7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAnRiZvc2xhc2g7aiBlbiB2YWxnbXVsaWdoZWQgdGlsIGVuIGVnZW5za2FiJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdFciBkZXQga3VuIGFkbWluaXN0cmF0b3Jlciwgc29tIG0mYXJpbmc7IHNlIGRlbm5lIGVnZW5za2FiPyc7CiRsYW5nWydhbGxjYXRlZ29yaWVzJ10gPSAnQWxsZSBrYXRlZ29yaWVyJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdFciBkdSBzaWtrZXI/JzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlcHJvZHVjdCddID0gJ0VyIGR1IGhlbHQgc2lra2VyIHAmYXJpbmc7LCBhdCBkdSB2aWwgc2xldHRlIGRldHRlIHByb2R1a3Qgc2FtdCBhbGxlIGRlIGluZm9ybWF0aW9uZXIsIHNvbSBlciBrbnl0dGV0IHRpbCBkZXQ/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ1N0aWdlbmRlIG9yZGVuJzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnRWdlbnNrYWJlbnMgbmF2bic7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlcyddID0gJ1NrYWJlbG9uIHRpbCBoaWVyYXJraS1yYXBwb3J0JzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVfYWRkZWRpdCddID0gJ1RpbGYmb3NsYXNoO2ovcmV0IHNrYWJlbG9uIHRpbCBoaWVyYXJraS1yYXBwb3J0JzsKJGxhbmdbJ2NhbmNlbCddID0gJ0ZvcnRyeWQnOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpZXInOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdLYXRlZ29yaSc7CiRsYW5nWydjYXRlZ29yeWV4aXN0cyddID0gJ0RlciBmaW5kZXMgYWxsZXJlZGUgZW4ga2F0ZWdvcmkgbWVkIGRldCBuYXZuJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0thdGVnb3JpbGlzdGUtc2thYmVsb25lcic7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnVGlsZiZvc2xhc2g7ai9yZXQga2F0ZWdvcmlsaXN0ZS1za2FiZWxvbic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+VmVyc2lvbiAxLjAgLSBEZWNlbWJlciwgMjAwNw0KICAgPHA+RiZvc2xhc2g7cnN0ZSB1ZGdpdmVsc2U8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMS4wLjEgLSBKYW51YXIsIDIwMDgNCiAgIDx1bD4NCiAgICAgPGxpPlBhZ2luZXJpbmcgdGlsZiZvc2xhc2g7amV0IGkgcmVzdW0mZWFjdXRlOy12aXNuaW5nPC9saT4NCiAgICAgPGxpPlByb2JsZW0gbWVkIGRvYmJlbHQtbGlua3MgaSByZXN1bSZlYWN1dGU7LXZpc25pbmcgcmV0dGV0PC9saT4NCiAgIDwvdWw+DQo8L2xpPg0KPGxpPlZlcnNpb24gMi4wIC0gQXByaWwsIDIwMDgNCiAgPHVsPg0KICAgICA8bGk+SGllcmFya2lzayBpbmRkZWxpbmcgYWYga2F0ZWdvcmllciB0aWxmJm9zbGFzaDtqZXQuIERldCBzYW1tZSBnJmFlbGlnO2xkZXIgZGUgb3ByaW5kZWxpZ2UgJiMwMzk7dGFnJiMwMzk7LWJhc2VyZWRlIGthdGVnb3JpZXIuPGJyLz4NCiAgICAgICAgIEhpZXJhcmtpc2tlIGthdGVnb3JpZXIga2FuIGhhdmUgZXQgYmlsbGVkZSBzJmFyaW5nOyB2ZWwgc29tIGVuIGJlc2tyaXZlbHNlLjwvbGk+DQogICAgIDxsaT5GbGVyZSBicnVnZXJiZXN0ZW10ZSBmZWx0dHlwZXIgdGlsZiZvc2xhc2g7amV0IChiaWxsZWRlLCB2YWxnYm9rcyk8YnIvPg0KICAgICAgICAgSW5rbHVzaXYgZ2VuZXJlcmluZyBhZiB0aHVtYm5haWwgKGxpbGxlIHVkZ2F2ZSBhZiBiaWxsZWRlKS48L2xpPg0KICAgICA8bGk+RGUgb3ByaW5kZWxpZ2UgYmlsbGVkZmVsdGVyIGVyIGJsZXZldCBmamVybmV0PC9saT4NCiAgICAgPGxpPlRpbGYmb3NsYXNoO2plbHNlIGFmIHMmb3NsYXNoO2dlLW1vZHVsIGZ1bmt0aW9uYWxpdGV0PC9saT4NCiAgICAgPGxpPlRpbGYmb3NsYXNoO2plbHNlIGFmIGhpZXJhcmtpc2sgdmlzbmluZyBhZiBrYXRlZ29yaWVyIG1lZCB1bmRlcnN0Jm9zbGFzaDt0dGVsc2UgYWYgdW5kZXJwdW5rdGVyPC9saT4NCiAgICAgPGxpPk1lZ2V0LCBtZWdldCBtZXJlPC9saT4NCiAgPC91bD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAyLjAuMSAtIEFwcmlsLCAyMDA4DQogIDx1bD4NCiAgICAgPGxpPk1hbmdlIHNtJmFyaW5nO2ZlamwgcmV0dGV0LjwvbGk+DQogICAgIDxsaT5NZWxsZW1ydW0gb2cgYW5kcmUgdGVnbiBlciBudSB0aWxsYWR0ZSBpIGhpZXJhcmtpLW5hdm5lbmUuPC9saT4NCiAgPC91bD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAyLjAuMiAtIEF1Z3VzdCwgMjAwOA0KICA8dWw+DQogICAgIDxsaT5SZXR0ZWxzZSBhZiBmZWpsPC9saT4NCiAgICAgPGxpPkNHRXh0ZW5zaW9ucyAxLjkgbnUgcCZhcmluZztrciZhZWxpZzt2ZXQ8L2xpPg0KICAgICA8bGk+VGlsZiZvc2xhc2g7amUgdmFsZyBhZiBmb3JldHJ1a2tlbiB2YWx1dGFrb2RlPC9saT4NCiAgPC91bD4NCjwvbGk+DQo8L3VsPic7CiRsYW5nWydjaGVja2JveCddID0gJ1RqZWtib2tzJzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX2hpZXJhcmNoeV9ub2RlJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7LCBhdCBkdSB2aWwgc2xldHRlIGRldHRlIHB1bmt0PyBQcm9kdWt0ZXIgc29tIGgmb3NsYXNoO3JlciBpbmQgdW5kZXIgZGV0dGUgcHVua3QgdmlsIGhlbHQgbWlzdGUgZGVyZXMgcGxhZHMgaSBoaWVyYXJraWV0JzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnT3ByZXR0ZWxzZXNkYXRvJzsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICdOdXYmYWVsaWc7cmVuZGUgdiZhZWxpZztyZGknOwokbGFuZ1snZGVmYXVsdHRlbXBsYXRlcyddID0gJ1N0YW5kYXJkc2thYmVsb25lcic7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlX25vdGljZSddID0gJzxzdHJvbmc+QmVtJmFlbGlnO3JrOjwvc3Ryb25nPiBJbmRob2xkZXQgYWYgZGlzc2UgdGVrc3Rib2tzZSBicnVnZXMgdGlsIGF0IGJlc3RlbW1lIGRldCBpbmRob2xkIHNvbSB2aXNlcyBpIHNrYWJlbG9uZW4sIG4mYXJpbmc7ciBkdSBrbGlra2VyIHAmYXJpbmc7ICZxdW90O1RpbGYmb3NsYXNoO2ogc2thYmVsb24mcXVvdDsgaSBkZW4gZ2l2bmUgc2thYmVsb25mYW5lLiAgUmV0dGVsc2VyIGkgZW4gYWYgZGlzc2UgdGVrc3Rib2tzZSB2aWwgaWtrZSBoYXZlIG5vZ2VuIHVtaWRkZWxiYXIgYmV0eWRuaW5nIGZvciBkaW4gaGplbW1lc2lkZS4nOwokbGFuZ1snZGVsZXRlJ10gPSAnU2xldCc7CiRsYW5nWydkZWxldGVfYXR0cmlic2V0J10gPSAnU2xldCBlZ2Vuc2thYic7CiRsYW5nWydkZWxldGVfaGllcmFyY2h5X2l0ZW0nXSA9ICdGamVybiBlbGVtZW50IGZyYSBoaWVyYXJraWV0JzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdGYWxkZW5kZSc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Jlc2tyaXZlbHNlJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdEZXRhbGplcic7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdEZXRhbGplLXNrYWJlbG9uJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdUaWxmJm9zbGFzaDtqL3JldCBlbiBkZXRhbGplLXNrYWJlbG9uJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnU2wmYXJpbmc7ZXQgZnJhJzsKJGxhbmdbJ2RyYWZ0J10gPSAnS2xhZGRlJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnVmFsZ2Jva3MnOwokbGFuZ1snZHJvcGRvd25fb3B0aW9ucyddID0gJ1ZhbGdtdWxpZ2hlZGVyIDxlbT4oYW52ZW5kZXMga3VuIGkgdmFsZ2Jva3NlKTwvZW0+PGJyLz48YnIvPjxlbT4oZW4gdmFsZ211bGlnaGVkIHBlciBsaW5qZSk8L2VtPic7CiRsYW5nWydlZGl0J10gPSAnUmV0JzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0cyddID0gJ1JldCBlZ2Vuc2thYnNzJmFlbGlnO3QnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzX2ZvciddID0gJ1JldCBlZ2Vuc2thYnNzJmFlbGlnO3QgZm9yJzsKJGxhbmdbJ2VkaXRfYXR0cmlidXRlcyddID0gJ1JldCBlZ2Vuc2thYmVyJzsKJGxhbmdbJ2VkaXRfaGllcmFyY2h5X2l0ZW0nXSA9ICdSZXQgZWxlbWVudCBpIGhpZXJhcmtpZXQnOwokbGFuZ1snZXJyb3JfYXR0cmlic2V0X2V4aXN0cyddID0gJ0RlciBmaW5kZXMgYWxsZXJlZGUgZW4gZWdlbnNrYWIgbWVkIGRldCBuYXZuJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJlbnQnXSA9ICdJbnZhbGlkIFBhcmVudCAoYSBoaWVyYXJjaHkgbm9kZSBjYW5ub3QgYmUgaXQmIzAzOTtzIG93biBwYXJlbnQpJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfbmFtZSddID0gJ0RlbiBpbmR0YXN0ZWRlIHYmYWVsaWc7cmRpIGkgZGV0IGJydWdlcmRlZmluZXJlZGUgZmVsdCBlciB1Z3lsZGlnIChhbGxlIHRlZ24gc2thbCB2JmFlbGlnO3JlIGFsZmFudW1lcmlza2UpJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0VuIHAmYXJpbmc7a3ImYWVsaWc7dmV0IHBhcmFtZXRlciBtYW5nbGVyIGVsbGVyIGVyIHVneWxkaWcnOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdWJmFlbGlnO2xnIHZlbmxpZ3N0IGVuIGZlbHR0eXBlJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdEZXIgZmluZGVzIGFsbGVyZWRlIGV0IHByb2R1a3QgbWVkIGRldCBuYXZuJzsKJGxhbmdbJ2Vycm9yX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdWJmFlbGlnO3JkaWVuIHRpbCBqdXN0ZXJpbmcgYWYgcHJpc2VuIGZvciBlbGVtZW50ZXQgJXMgZXIgdWd5bGRpZyc7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnVXBsb2FkIG1pc2x5a2tlZGVzOiAlcyc7CiRsYW5nWydmaWVsZCddID0gJ0ZlbHQnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdGZWx0ZGVmaW5pdGlvbic7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdGZWx0ZGVmaW5pdGlvbmVyJzsKJGxhbmdbJ2ZpbGUnXSA9ICdGaWwnOwokbGFuZ1snZmlsdGVycyddID0gJ0ZpbHRyZSc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICcmYW1wO2x0OyZhbXA7bHQ7JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+SHZhZCBnJm9zbGFzaDtyIGRldHRlIG1vZHVsPzwvaDM+DQo8cD5EZXR0ZSBtb2R1bCBnJm9zbGFzaDtyIGRldCBtdWxpZ3QgYXQgaW5kc2FtbGUsIG9yZ2FuaXNlcmUgb2cgdmlzZSBpbmZvcm1hdGlvbmVyIG9tIHByb2R1a3RlciBvZyBkZSBrYXRlZ29yaWVyLCBzb20gZGUgdGlsaCZvc2xhc2g7cmVyLiBNb2R1bGV0IGthbiBlbnRlbiBzdCZhcmluZzsgYWxlbmUgZWxsZXIgYnJ1Z2VzIGkgc2FtbWVuaCZhZWxpZztuZyBtZWQgZW4gd2Vic2hvcC1sJm9zbGFzaDtzbmluZywgaHZpcyBkdSAmb3NsYXNoO25za2VyIGRldC4gTWVkIGRldHRlIG1vZHVsIGthbiBldCBwcm9kdWt0IHRpbGgmb3NsYXNoO3JlIG1lcmUgZW5kIGVuIGthdGVnb3JpIG9nIGV0IHByb2R1a3RzIHYmYWVsaWc7Z3QsIHByaXMgb2cgYW5kcmUgZWdlbnNrYWJlciBrYW4gc3BlY2lmaWNlcmVzLiBBbGxlIGVsZW1lbnRlciBpIGV0IHMmYWVsaWc7dCBhZiBlZ2Vuc2thYmVyIGthbiB0aWxmJm9zbGFzaDtqZXMgZW4ganVzdGVyaW5nIGFmIHByaXNlbi4gRW5kdmlkZXJlIGJlc3RlbW1lciBldCBnbG9iYWx0IGZsYWcsIG9tIGRlciBza2FsIGwmYWVsaWc7Z2dlcyBza2F0dGVyL21vbXMvYWZnaWZ0ZXIgcCZhcmluZzsgZWxsZXIgZWouPC9wPg0KICA8cD5Nb2R1bGV0IGdpdmVyIG11bGlnaGVkIGZvciBhdCBrbnl0dGUgb3AgdGlsIHRvIGJpbGxlZGVyIHRpbCBodmVydCBwcm9kdWt0LCBkZXIga2FuIGRlZmluZXJlcyBicnVnZXJiZXN0ZW10ZSBmZWx0ZXIgb2cgcHJpdmF0ZSBkYXRhIGthbiBhZHNraWxsZXMgZnJhIG9mZmVudGxpZ2UgZGF0YS48L3A+DQo8aDM+UHJpbSZhZWxpZztyZSBrYXJha3RlcmlzdGlrYTo8L2gzPg0KPHVsPg0KICA8bGk+RmxlcmUgdmlzbmluZ3Nmb3JtZXI8L2xpPg0KICAgIDx1bD4NCiAgICAgIDxsaT5SZXN1bSZlYWN1dGU7dmlzbmluZzwvbGk+DQogICAgICA8bGk+VmlzbmluZyBhZiBrYXRlZ29yaWxpc3RlPC9saT4NCiAgICAgIDxsaT5WaXNuaW5nIGFmIGZ1bGRlIHByb2R1a3RiZXNrcml2ZWxzZXI8L2xpPiANCiAgICAgIDxsaT5IaWVyYXJraXNrIHZpc25pbmcgLSBpbmtsdXNpdiB2aXNuaW5nIGFmIGFsbGUgdW5kZXJwdW5rdGVyPC9saT4NCiAgICA8L3VsPg0KICA8bGk+QWx0aW5nIHN0eXJlcyBhZiBza2FiZWxvbmVyIGZyYSBkYXRhYmFzZW48L2xpPg0KICA8cD5EZXIga2FuIGRlZmluZXJlcyBsaWdlIHMmYXJpbmc7IG1hbmdlIHNrYWJlbG9uZXIgZm9yIGh2ZXIgdmlzbmluZ3N0eXBlIGRldCBza2FsIHYmYWVsaWc7cmUsIGRlciBrYW4gYmVzdGVtbWVzIGVuIHN0YW5kYXJkc2thYmVsb24gZm9yIGh2ZXIgdHlwZSBvZyBodmVyIGFmIHZpc25pbmdzdHlwZS1za2FiZWxvbmVybmUga2FuIGFudmVuZGVzIHNvbSBldCBwYXJhbWV0ZXI8L3A+DQogIDxsaT5Tb3J0ZXJpbmcgb2cgc2lkZWluZGRlbGluZyBpIHJlc3VtJmVhY3V0ZTt2aXNuaW5nPC9saT4NCiAgPGxpPlByb2R1a3RlciBrYW4gbGlnZ2UgaSBmbGVyZSBrYXRlZ29yaWVyIHNhbXRpZGlndDwvbGk+DQogIDxsaT5EZXIga2FuIGRlZmluZXJlcyBsaWdlIHMmYXJpbmc7IG1hbmdlIGJydWdlcmJlc3RlbXRlIGZlbHRlciBkZXQgc2thbCB2JmFlbGlnO3JlLCBpbmtsdXNpdiBiaWxsZWRlcjwvbGk+DQogIDxsaT5BdXRvbWF0aXNrIGRhbm5lbHNlIGFmIHNtJmFyaW5nOyBiaWxsZWRyZXByJmFlbGlnO3NlbnRhdGlvbmVyICh0aHVtYm5haWxzKTwvbGk+DQogIDxsaT5BZG1pbmlzdHJhdG9yIGthbiBkZWZpbmVyZSBmZWx0ZXI8L2xpPg0KICA8bGk+UHJvZHVrdGVnZW5za2FiZXIgKGlua2x1c2l2IGp1c3RlcmluZ2VyIGFmIHByaXMpPC9saT4NCiAgPGxpPkZlbHRlciBmb3IgdiZhZWxpZztndCBvZyBtb21zIChlbGxlciBhbmRyZSBhZmdpZnRlcikgdGlsIGJydWcgZm9yIHdlYnNob3AtbCZvc2xhc2g7c25pbmdlcjwvbGk+DQogIDxsaT5Qcm9kdWt0ZXIga2FuIHRpbGRlbGVzIGVuIHN0YXR1cyAob2ZmZW50bGlnZ2pvcnQgZWxsZXIga2xhZGRlKSBzJmFyaW5nO2xlZGVzIGF0IHByb2R1a3RlciB0aWwgZW52aGVyIHRpZCBrYW4gc2tqdWxlcyBmb3Igb2ZmZW50bGlnaGVkZW48L2xpPg0KICA8bGk+VW5kZXJzdCZvc2xhc2g7dHRlbHNlIGFmIHAmYWVsaWc7bmUgVVJMJiMwMzk7ZXI8L2xpPg0KICA8bGk+PHN0cm9uZz5PZyBtZXJlIHRpbC4uLjwvc3Ryb25nPjwvbGk+DQo8L3VsPg0KDQo8aDM+SHZvcmRhbiBicnVnZXIgamVnIGRldD88L2gzPg0KPHVsPg0KPGxpPk9wcyZhZWxpZzt0IGluZHN0aWxsaW5nZXI8L2xpPg0KPHA+Tm9ybWFsdCBlciBkZXR0ZSBibG90IGVuIGZvcm1hbGl0ZXQuIER1IGImb3NsYXNoO3Igc3BlY2lmaWNlcmUgZW4gc3RhbmRhcmRlbmhlZCBmb3IgdiZhZWxpZztndCBvZyBldCBzdGFuZGFyZHN5bWJvbCBmb3IgZGVuIGxva2FsZSB2YWx1dGEuPC9wPg0KPGxpPk9wcyZhZWxpZzt0bmluZyBhZiBicnVnZXJlIG9nIHRpbGxhZGVsc2VyPC9saT4NCjxwPkRldHRlIG1vZHVsIGJydWdlciB0aWxsYWRlbHNlbiAmIzAzOTtNb2RpZnkgVGVtcGxhdGVzJiMwMzk7LCBodmlsa2V0IGcmb3NsYXNoO3IgZGV0IG11bGlndCBmb3IgYnJ1Z2VybmUgYXQgdGlscmV0dGUgZGUgZm9yc2tlbGxpZ2Ugc2thYmVsb25lciwgc29tIGthbiBhbnZlbmRlcyBhZiBkZXR0ZSBtb2R1bC4gRGV0IGVyIGRlc3VkZW4gbiZvc2xhc2g7ZHZlbmRpZ3QgYXQgdGlsbGFkZWxzZW4gJiMwMzk7TW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMmIzAzOTsgZXIgZ2l2ZXQsIHMmYXJpbmc7bGVkZXMgYXQgaW5kc3RpbGxpbmdlcm5lIGZvciBtb2R1bGV0IGthbiByZWRpZ2VyZXMuIFNrYWwgYnJ1Z2VybmUgb2dzJmFyaW5nOyBoYXZlIG11bGlnaGVkIGZvciBhdCByZXR0ZSBmZWx0ZGVmaW5pdGlvbmVyLCBrYXRlZ29yaWVyIG9nIHByb2R1a3RlciBlciBkZXQgZW5kdmlkZXJlIG4mb3NsYXNoO2R2ZW5kaWd0LCBhdCB0aWxsYWRlbHNlbiAmIzAzOTtNb2RpZnkgUHJvZHVjdHMmIzAzOTsgZXIgZ2l2ZXQuPC9wPg0KPGxpPih2YWxnZnJpKSBPcHJldCBlbiBlbGxlciBmbGVyZSBrYXRlZ29yaWVyPC9saT4NCjxwPlNlbHZvbSBkdSBpa2tlIGJlaCZvc2xhc2g7dmVyIGF0IG9wcmV0dGUga2F0ZWdvcmllciwgcyZhcmluZzsga2FuIGRldCBhbmJlZmFsZXMgYXQgZyZvc2xhc2g7cmUgZGV0IGYmb3NsYXNoO3JzdCBzb20gc2lkc3QsIHMmYXJpbmc7IGRldCBpa2tlIGJsaXZlciBuJm9zbGFzaDtkdmVuZGlndCBhdCBnJmFyaW5nOyB0aWxiYWdlIG9nIHJldHRlIGkgaHZlcnQgZW5rZWx0IHByb2R1a3QgcCZhcmluZzsgZXQgc2VuZXJlIHRpZHNwdW5rdC4gRGV0IGVyIGxpZ2UgcyZhcmluZzsgbGV0IGF0IG9wcmV0dGUgZW4ga2F0ZWdvcmkgc29tIGRldCBlciBhdCBrbGlra2UgcCZhcmluZzsgZmFuZW4gJiMwMzk7S2F0ZWdvcmllciYjMDM5OyBpIHByb2R1a3RoJmFyaW5nO25kdGVyaW5nZW5zIGFkbWluaXN0cmF0aW9uc2RlbC4gS2xpayBwJmFyaW5nOyAmIzAzOTtUaWxmJm9zbGFzaDtqIGVuIGthdGVnb3JpJiMwMzk7IG9nIGR1IHZpbCBibGl2ZSBiZWR0IG9tIGF0IGluZHRhc3RlIGV0IG5hdm4gcCZhcmluZzsga2F0ZWdvcmllbi48L3A+DQo8bGk+KHZhbGdmcmkpIE9wcmV0IGV0IGVsbGVyIGZsZXJlIGJydWdlcmRlZmluZXJlZGUgZmVsdGVyPC9saT4NCjxwPkRldHRlIGxlZCBpIG9wcyZhZWxpZzt0bmluZ2VuIGVyIHZhbGdmcml0LiBCcnVnZXJkZWZpbmVyZWRlIGZlbHRlciBlciBpa2tlIG4mb3NsYXNoO2R2ZW5kaWdlIHMmYXJpbmc7ZnJlbXQgZGV0dGUgbW9kdWwgLSBzb20gZGV0IGkgZm9ydmVqZW4gZXIgLSBwciZhZWxpZztjaXN0IHBhc3NlciB0aWwgZGluZSBiZWhvdi4gTWVuIGh2aXMgZHUgZ2VybmUgdmlsIGdlbW1lIHlkZXJsaWdlcmUgaW5mb3JtYXRpb25lciBvbSBodmVyIGFmIGRpbmUgcHJvZHVrdGVyLCBzJmFyaW5nOyBza2FsIGR1IG9wcmV0dGUgYnJ1Z2VyZGVmaW5lcmVkZSBmZWx0ZXIuIE9wcmV0dGVsc2UgYWYgYnJ1Z2VyZGVmaW5lcmVkZSBmZWx0ZXIgZm9yZWcmYXJpbmc7ciBwJmFyaW5nOyBzdG9ydCBzZXQgc2FtbWUgbSZhcmluZztkZSBzb20gb3ByZXR0ZWxzZSBhZiBrYXRlZ29yaWVyIC0gZG9nIHZpbCBkdSBibGl2ZSBiZWR0IG9tIGZsZXJlIG9wbHlzbmluZ2VyLjwvcD4NCjxwPkRlciBlciBwLnQuIG11bGlnaGVkIGZvciBhdCB2JmFlbGlnO2xnZSBtZWxsZW0gZGlzc2UgZmVsdHR5cGVyOiAmIzAzOTt0ZWtzdGZlbHQmIzAzOTssICYjMDM5O3RqZWtib2tzJiMwMzk7LCAmIzAzOTt0ZWtzdGJva3MmIzAzOTssICYjMDM5O3ZhbGdib2tzJiMwMzk7IG9nICYjMDM5O2ZpbCYjMDM5Oy4gViZhZWxpZztsZyBlbiBhZiBkaXNzZSwgbmF2bmdpdiBmZWx0ZXQgb2cgYW5naXYgb20gZGV0IHNrYWwgdiZhZWxpZztyZSB0aWxnJmFlbGlnO25nZWxpZ3QgZm9yIG9mZmVudGxpZ2hlZGVuIGkgZGUgZm9yc2tlbGxpZ2UgdmlzbmluZ3Nmb3JtZXIuIEtsaWsgZGVyZWZ0ZXIgcCZhcmluZzsgJnF1b3Q7SW5kc2VuZCZxdW90OzwvcD4NCjxsaT5PcHJldCBldCBlbGxlciBmbGVyZSBwcm9kdWt0ZXI8L2xpPg0KPHA+RHUgYiZvc2xhc2g7ciBvcHJldHRlIGV0IGVsbGVyIGZsZXJlIHByb2R1a3Rlciwgc29tIGthbiB2aXNlcyBwJmFyaW5nOyBkaW4gaGplbW1lc2lkZS4gIEdpdiBodmVydCBwcm9kdWt0IGV0IG5hdm4sIGVuIHByaXMgKHZhbGdmcml0KSBlbiB2JmFlbGlnO2d0ICh2YWxnZnJpdCksIGVuIHN0YXR1cyAoa2xhZGRlIGVsbGVyIG9mZmVudGxpZ2dqb3J0KSBzYW10IG5vZ2xlIGluZm9ybWF0aW9uZXIuIER1IGthbiBlbmR2aWRlcmUgYW5naXZlLCBvbSBkZXIgZXIgbGFndCBtb21zIHAmYXJpbmc7LjwvcD4NCjxwPkh2aXMgZGVyIGVyIG9wcmV0dGV0IGthdGVnb3JpZXIsIHMmYXJpbmc7IHZpbCBkZXIgdiZhZWxpZztyZSBlbiBhZmtyeWRzbmluZ3Nib2tzIGZvciBodmVyIGFmIGRlIGVrc2lzdGVyZW5kZSBrYXRlZ29yaWVyLiBEdSBza2FsIGJsb3QgcyZhZWxpZzt0dGUgZmx1ZWJlbiBpIGJva3NlbiB2ZWQgaHZlciBhZiBkZSBrYXRlZ29yaWVyLCBzb20gZGl0IHByb2R1a3Qgc2thbCB0aWxoJm9zbGFzaDtyZS48L3A+DQo8cD5IdmlzIGRlciBlciBvcHJldHRldCBicnVnZXJkZWZpbmVyZWRlIGZlbHRlciwgcyZhcmluZzsgdmlsIGRlciBvcHRyJmFlbGlnO2RlIGZvcnNrZWxsaWdlIGZvcm11bGFyZmVsdGVyIGFsdCBlZnRlciBodmlsa2VuIHR5cGUgYnJ1Z2VyZmVsdCwgZGVyIGVyIHRhbGUgb20sIGh2b3IgZHUga2FuIGFuZ2l2ZSBkYXRhIGZvciBodmVyIGFmIGRlbS4gIERhdGEgc29tIGRpc3NlIGVyIHZhbGdmcmllLjwvcD4NCjxsaT5JbmRzJmFlbGlnO3QgZGUgdGlsaCZvc2xhc2g7cmVuZGUgdGFncyBpIGVuIHNpZGVza2FiZWxvbiBlbGxlciBpIHNpZGVpbmRob2xkZXQuPC9saT4NCjxwPkRldCBrYW4gdiZhZWxpZztyZSwgZGVyIGlra2UgYmVoJm9zbGFzaDt2ZXMgYW5kZXQgZW5kIGJsb3QgYXQgaW5kcyZhZWxpZzt0dGUgdGFnJiMwMzk7ZXQgPHN0cm9uZz57UHJvZHVjdHN9PC9zdHJvbmc+IGkgZGVuIGJva3MsIGh2b3IgZHUgaW5kdGFzdGVyIGluZGhvbGRldCBhZiBlbnRlbiBlbiBzaWRlIGVsbGVyIGVuIHNpZGVza2FiZWxvbi48L3A+DQo8cD5IdmlzIGR1IHZpbCAmYWVsaWc7bmRyZSBwJmFyaW5nOyBhcHBsaWthdGlvbmVucyBzdGFuZGFyZGluZHN0aWxsaW5nZXIsIHNrYWwgZHUgYmxvdCBmJm9zbGFzaDtqZSBldCBlbGxlciBmbGVyZSBwYXJhbWV0cmUgdGlsIHRhZyYjMDM5O2V0IDxzdHJvbmc+e1Byb2R1Y3RzfTwvc3Ryb25nPi4gRGVuIGZ1bGRlIGxpc3RlIG92ZXIgcGFyYW1ldHJlIHNhbXQgZWZmZWt0ZW4gYWYgZGVtIGZpbmRlcyBuZWRlbmZvci4gTWVuIGh2aXMgZHUgZi5la3MuICZvc2xhc2g7bnNrZXIgYXQgZiZhcmluZzsgdmlzdCBlbiBsaXN0ZSBvdmVyIHByb2R1a3RlciBpIGVuIGVua2VsdCBla3Npc3RlcmVuZGUga2F0ZWdvcmksIGthbiBkdSBhbnZlbmRlIGV0IHRhZyBzJmFyaW5nO3NvbSA8Y29kZT57UHJvZHVjdHMgY2F0ZWdvcnk9JiMwMzk7a2F0ZWdvcmluYXZuJiMwMzk7fTwvY29kZT48L3A+DQo8L3VsPg0KPGgzPkhqJmFlbGlnO2xwIG9nIHZlamxlZG5pbmc8L2gzPg0KPHA+RGVyIHlkZXMgaWtrZSBrb21tZXJjaWVsIGhqJmFlbGlnO2xwIG9nIHZlamxlZG5pbmcgdGlsIGRldHRlIG1vZHVsLiBEb2cgZmluZGVzIGRlciBlbiByJmFlbGlnO2trZSByZXNzb3VyY2VyLCBzb20gc3QmYXJpbmc7ciB0aWwgciZhcmluZztkaWdoZWQgbWVkIGhqJmFlbGlnO2xwLjwvcD4NCjx1bD4NCjxsaT5Gb3Igbnllc3RlIHZlcnNpb24gYWYgZGV0dGUgbW9kdWwsIG9mdGUgc3RpbGxlZGUgc3Amb3NsYXNoO3Jnc20mYXJpbmc7bCBvZyByYXBwb3J0ZXJpbmcgYWYgZmVqbCBiZWRlcyBkdSBiZXMmb3NsYXNoO2dlIGNtcyBtYWRlIHNpbXBsZSA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5EZXZlbG9wZXJzIEZvcmdlPC9hPiBvZyBmb3JldGFnZSBlbiBzJm9zbGFzaDtnbmluZyBwJmFyaW5nOyAmIzAzOTtQcm9kdWN0cyYjMDM5OzwvbGk+DQo8bGk+Jk9zbGFzaDtuc2tlciBkdSBrb21tZXJjaWVsIGhqJmFlbGlnO2xwIG9nIHZlamxlZG5pbmcsIGJlZGVzIGR1IGtvbnRha3RlIHVkdmlrbGVyZW4gcCZhcmluZzsgZW1haWwgYWRyZXNzZW4gPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPlJvYmVydCBDYW1wYmVsbDwvYT4uPC9saT4NCjxsaT5ZZGVybGlnZXJlIGRyJm9zbGFzaDtmdGVsc2VyIHZlZHImb3NsYXNoO3JlbmRlIGRldHRlIG1vZHVsIGZvcmVmaW5kZXMgaSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZXMgZm9yYS48L2E+PC9saT4NCjxsaT5EcmVqZXIgZGV0IHNpZyBvbSBlbmtlbHRlIHNwJm9zbGFzaDtyZ3NtJmFyaW5nO2wgZWxsZXIgYmVnciZhZWxpZztuc2V0IHRla25pc2sgaGomYWVsaWc7bHAsIHMmYXJpbmc7IGVyIHVkdmlrbGVyZW4gaSByZWdsZW4gYXQgZmluZGUgcCZhcmluZzsgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8L3VsPic7CiRsYW5nWydoaWVyYXJjaHknXSA9ICdIaWVyYXJraSc7CiRsYW5nWydoaWVyYXJjaHlfcG9zaXRpb24nXSA9ICdIaWVyYXJraS1wbGFjZXJpbmcnOwokbGFuZ1snaWQnXSA9ICdJRCc7CiRsYW5nWydpbWFnZXRleHQnXSA9ICdCaWxsZWRlJzsKJGxhbmdbJ2luY2x1ZGVfY2hpbGRyZW4nXSA9ICdTa2FsIHVuZGVycHVua3RlciBpbmtsdWRlcmVzPyc7CiRsYW5nWydpbmZvX2FsbnVtb25seSddID0gJ0t1biBhbHBoYW51bW1lcmlza2UgdGVnbi4gSW5nZW4gbWVsbGVtcnVtLCBnJmFyaW5nO3NlJm9zbGFzaDtqbmUsIGVsbGVyIGtvbWJpbmF0aW9uZXIgYWYgaWtrZS1ib2dzdGF2ZXIvdGFsJzsKJGxhbmdbJ2luZm9fZmllbGRwcm9ibGVtcyddID0gJ0RlciBvcHN0b2QgcHJvYmxlbWVyIHZlZHImb3NsYXNoO3JlbmRlIGV0IGVsbGVyIGZsZXJlIGJydWdlcmRlZmluZXJlZGUgZmVsdGVyLiBTZWx2b20gaGFuZGxpbmdlbiBlciBibGV2ZXQgdWRmJm9zbGFzaDtydCwgYiZvc2xhc2g7ciBkdSB1bmRlcnMmb3NsYXNoO2dlIG9nIHJldHRlIGRpc3NlIHByb2JsZW1lcic7CiRsYW5nWydpbmZvX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdHeWxkaWdlIHYmYWVsaWc7cmRpZXIgb21mYXR0ZXIgKy0qIy4jIyc7CiRsYW5nWydpbmZvX3B1YmxpY2ZpZWxkJ10gPSAnT2ZmZW50bGlnZSBmZWx0ZXIga2FuIHNlcyBhZiBvZmZlbnRsaWdoZWRlbic7CiRsYW5nWydsYWJlbCddID0gJ0V0aWtldCc7CiRsYW5nWydsYXN0cGFnZSddID0gJyZhbXA7Z3Q7JmFtcDtndDsnOwokbGFuZ1snbGFzdF9tb2RpZmllZCddID0gJ1NlbmVzdCAmYWVsaWc7bmRyZXQnOwokbGFuZ1snbG9nb3RleHQnXSA9ICdCaWxsZWQgbnIuIHRvJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ01heGltdW0gdGVnbiA8ZW0+KGcmYWVsaWc7bGRlciBrdW4gZm9yIHRla3N0Ym9rc2UpPC9lbT4nOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnJkFFbGlnO25kcmluZ3NkYXRvJzsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gJ0V0IG1vZHVsIHRpbCBoJmFyaW5nO25kdGVyaW5nIGFmIHByb2R1a3RlciBpIGV0IGthdGFsb2cgLSBwcmlzZXIsIGJpbGxlZGVyLCBldGMuIC0gb2cgdGlsIGF0IGdpdmUgYnJ1Z2VyZSBtdWxpZ2hlZCBmb3IgYXQgayZvc2xhc2g7YmUgaW5kJzsKJGxhbmdbJ25hbWUnXSA9ICdOYXZuJzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnRHUgaGFyIGlra2UgZGVuIHAmYXJpbmc7a3ImYWVsaWc7dmVkZSB0aWxsYWRlbHNlOiAlcyc7CiRsYW5nWyduZXh0cGFnZSddID0gJyZhbXA7Z3Q7JzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnRGVyIGJsZXYgaWtrZSBhbmdpdmV0IG5vZ2V0IG5hdm4nOwokbGFuZ1snbm9uZSddID0gJ0luZ2VuJzsKJGxhbmdbJ29mJ10gPSAnQWYnOwokbGFuZ1sncGFnZSddID0gJ1NpZGUnOwokbGFuZ1sncGFnZV9vZiddID0gJ1NpZGUgJXMgYWYgJXMnOwokbGFuZ1sncGFnZV9saW1pdCddID0gJ01heC4gcGVyIHNpZGUnOwokbGFuZ1sncGFyYW1fYWN0aW9uJ10gPSAnU3BlY2lmaWNlciBodm9yZGFuIG1vZHVsZXQgc2thbCB2aXNlIHByb2R1a3Rlcm5lLiBNdWxpZ2UgdiZhZWxpZztyZGllciBlcjoNCjx1bD4NCiAgPGxpPmhpZXJhcmNoeSAtLSBWaXMgZW4gaGllcmFya2lzayBwcm9kdWt0bGlzdGU8L2xpPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0gVmlzIGVuIGxpc3RlIG92ZXIgcHJvZHVrdGthdGVnb3JpZXI8L2xpPg0KICA8bGk+PGVtPmRlZmF1bHQ8L2VtPiAtIFZpcyBwcm9kdWt0cmVzdW1lZXIgKHN0YW5kYXJkKTwvbGk+DQogIDxsaT5kZXRhaWwgLSBWaXMgZGVuIGZ1bGRlIGJlc2tyaXZlbHNlIGFmIGV0IHByb2R1a3Q8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdWZWQgYW52ZW5kZWxzZSBzYW1tZW4gbWVkIHByb2R1a3RyZXN1bWVlciAoaHZpbGtldCBlciBzdGFuZGFyZHZpc25pbmdzdHlwZW4pLCB2aWwgZGV0dGUgcGFyYW1ldGVyLCBzb20gYiZvc2xhc2g7ciBzdGVtbWUgb3ZlcmVucyBtZWQgZW4gZWtzaXN0ZXJlbmRlIGthdGVnb3JpLCBibGl2ZSBicnVndCB0aWwga3VuIGF0IHZpc2UgZGUgcHJvZHVrdGVyLCBzb20gYmVmaW5kZXIgc2lnIGkgZGVuIGFuZ2l2bmUga2F0ZWdvcmkuIChLYXRlZ29yaWVyIGthbiBhbmdpdmVzIHAmYXJpbmc7IGVuIGxpc3RlIGFkc2tpbHQgYWYga29tbWFlciknOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICdEZXR0ZSBwYXJhbWV0ZXIsIHNvbSBrdW4ga2FuIGJydWdlcyBzYW1tZW4gbWVkIHZpc25pbmcgYWYga2F0ZWdvcmlsaXN0ZSwgYW5naXZlciBodmlsa2VuIHNrYWJlbG9uIGRlciBza2FsIGJydWdlcyBpIGZvcmJpbmRlbHNlIG1lZCB2aXNuaW5nZW4uIEFuZ2l2ZXMgZGVyIGluZ2VuIHYmYWVsaWc7cmRpIGJydWdlcyBkZW4gc3RhbmRhcmRza2FiZWxvbiwgc29tIHAudC4gZXIgdmFsZ3QgZm9yIHZpc25pbmdzdHlwZW4uJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdEZXR0ZSBhbmdpdmVyIGlkIGVsbGVyIGFsaWFzIHAmYXJpbmc7IGRlbiBzaWRlLCBzb20gc2thbCBicnVnZXMgdGlsIHZpc25pbmcgYWYgZGVuIGZ1bGRlIGJlc2tyaXZlbHNlIGFmIGV0IHByb2R1a3QuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnRGV0dGUgcGFyYW1ldGVyIGFuZ2l2ZXIsIGh2aWxrZW4gc2thYmVsb24gZGVyIHNrYWwgYnJ1Z2VzIHRpbCB2aXNuaW5nIGFmIGRlbiBmdWxkZSBwcm9kdWt0YmVza3JpdmVsc2UuICBBbmdpdmVzIGRlciBpbmdlbiB2JmFlbGlnO3JkaSBicnVnZXMgZGVuIHN0YW5kYXJkc2thYmVsb24sIHNvbSBwLnQuIGVyIHZhbGd0IGZvciB2aXNuaW5nc3R5cGVuLic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHknXSA9ICdEZXR0ZSBwYXJhbWV0ZXIsIHNvbSBrdW4ga2FuIGJydWdlcyBzYW1tZW4gbWVkIHByb2R1a3RyZXN1bWVlciAoc3RhbmRhcmR2aXNuaW5nKSwgc3BlY2lmaWNlcmVyIGF0IGt1biBkZSBlbGVtZW50ZXIsIHNvbSBiZWZpbmRlciBzaWcgcCZhcmluZzsgZGV0dGUgYmVzdGVtdGUgc3RlZCBpIGhpZXJhcmtpZXQsIHNrYWwgdmlzZXMuIERlciBrYW4gYW52ZW5kZXMgam9rZXJ0ZWduLCBzJmFyaW5nO2xlZGVzIGF0IGR1IG9ncyZhcmluZzsga2FuIHNwZWNpZmljZXJlIGJlc3RlbXRlIHJlbGF0aW9uZXIgbWVsbGVtIGhvdmVkIC1vZyB1bmRlcnB1bmt0ZXIuIEYuZWtzLiB2aWwge1Byb2R1Y3RzIGhpZXJhcmNoeT0mIzAzOTtsYXN0YmlsZXIqJiMwMzk7fSByZXN1bHRlcmUgaSBlbiBvcHN1bW1lcmluZ3NyYXBwb3J0LCBkZXIgdmlzZXIgYWxsZSBsYXN0YmlsZXIuIFJhcHBvcnRlbiBpbmtsdWRlcmVyIHVuZGVycHVua3RlciBpIGhpZXJhcmtpZXQuIExpZ2VzJmFyaW5nOyB2aWwge1Byb2R1Y3RzIGhpZXJhcmNoeT0mIzAzOTsqbGFzdGJpbGVyJiMwMzk7fSByZXN1bHRlcmUgaSBlbiByYXBwb3J0IG92ZXIgYWxsZSBsYXN0YmlsZXIgb2cgcHJvZHVrdGVyLCBzb20gdGlsaCZvc2xhc2g7cmVyIGV0IGh2aWxrZXQgc29tIGhlbHN0IGhvdmVkcHVua3QgaSBoaWVyYXJraWV0Lic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZSddID0gJ0RldHRlIHBhcmFtZXRlciBhbmdpdmVyIGRlbiBza2FiZWxvbiwgc29tIHNrYWwgYnJ1Z2VzIHRpbCBoaWVyYXJraXZpc25pbmcuIEFuZ2l2ZXMgZGVyIGluZ2VuIHYmYWVsaWc7cmRpIGJydWdlcyBkZW4gc3RhbmRhcmRza2FiZWxvbiwgc29tIHAudC4gZXIgdmFsZ3QgZm9yIHZpc25pbmdzdHlwZW4uJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ0thbiBrdW4gYnJ1Z2VzIHNhbW1lbiBtZWQgcHJvZHVrdHJlc3VtJmVhY3V0ZTt2aXNuaW5nIChzdGFuZGFyZCkgb2cgYW5naXZlciwgaHZvciBtYW5nZSBlbGVtZW50ZXIgZGVyIHNrYWwgdmlzZXMgcGVyIHNpZGUuJzsKJGxhbmdbJ3BhcmFtX3BhcmVudCddID0gJ0t1biBicnVnYmFyIHZlZCA8ZW0+aGllcmFya2l2aXNuaW5nPC9lbT4uIFBhcmFtZXRyZXQgYW5naXZlciBpZCYjMDM5O2V0IGZvciBkZXQgaGllcmFya2kgc29tIHNrYWwgdWRnJm9zbGFzaDtyZSBiZWd5bmRlbHNlc3B1bmt0ZXQgZm9yIG92ZXJzaWd0ZW4uJzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RpZCddID0gJ0t1biBicnVnYmFyIHZlZCB2aXNuaW5nIGFmIGZ1bGQgcHJvZHVrdGJlc2tyaXZlbHNlLiBEZXR0ZSBwYXJhbWV0ZXIgZm9ydCZhZWxpZztsbGVyLCBodmlsa2V0IHByb2R1a3QgZGVyIHNrYWwgYnJ1Z2VzIHZlZCB2aXNuaW5nZW4uJzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ0FuZ2l2IGRlbiBvcmRlbiBpIGh2aWxrZW4gc29ydGVyZWRlIGZlbHRlciBza2FsIG9wdHImYWVsaWc7ZGUgaSByZXN1bSZlYWN1dGU7dmlzbmluZy4gIE11bGlnaGVkZXJuZSBlcjoNCjx1bD4NCiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIFN0aWdlbmRlIG9yZGVuPC9saT4NCiAgPGxpPmRlc2MgLS0gRmFsZGVuZGUgb3JkZW48L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnRGV0dGUgcGFyYW1ldGVyLCBzb20ga3VuIGthbiBicnVnZXMgaSBmb3JiaW5kZWxzZSBtZWQgcmVzdW0mZWFjdXRlO3Zpc25pbmcsIGJlc3RlbW1lciBodm9yZGFuIHByb2R1a3Rlcm5lIHNrYWwgc29ydGVyZXMuIE11bGlnZSB2JmFlbGlnO3JkaWVyIGVyOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5wcm9kdWN0X25hbWU8L3N0cm9uZz4gUHJvZHVrdG5hdm48L2xpPg0KICA8bGk+cHJpY2UgLS0gQmFzaXNwcmlzPC9saT4NCiAgPGxpPnN0YXR1cyAtLSBLbGFkZGUgZWxsZXIgb2ZmZW50bGlnPC9saT4NCiAgPGxpPnJhbmRvbSAtLSBWaXMgaSB0aWxmJmFlbGlnO2xkaWcgb3JkZW4gdmVkIGh2ZXIgZm9yZXNwJm9zbGFzaDtyZ3NlbDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIERlbiBkYXRvIGh2b3IgZGV0dGUgZmlybWEgYmxldiBvcHJldHRldCBzb20gZW4gcG9zdCBpIGRhdGFiYXNlbjwvbGk+DQogIDxsaT5tb2RpZmllZCAtLSBEYXRvZW4gZm9yIHNlbmVzdGUgb3BkYXRlcmluZyBhZiBmaXJtYWV0IGkgZGF0YWJhc2VuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ0RldHRlIHBhcmFtZXRlciBhbmdpdmVyIGh2aWxrZW4gc2thYmVsb24sIGRlciBza2FsIGJydWdlcyB0aWwgcmVzdW0mZWFjdXRlO3Zpc25pbmcuIEFuZ2l2ZXMgZGVyIGluZ2VuIHYmYWVsaWc7cmRpIGJydWdlcyBkZW4gc3RhbmRhcmRza2FiZWxvbiwgc29tIHAudC4gZXIgdmFsZ3QgZm9yIHZpc25pbmdzdHlwZW4uJzsKJGxhbmdbJ3BhcmVudCddID0gJ092ZXJvcmRuZXQgcHVua3QnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdNb2R1bGV0IFByb2R1Y3RzIGJsZXYgaW5zdGFsbGVyZXQnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ01vZHVsZXQgUHJvZHVjdHMgZXIgYmxldmV0IGZqZXJuZXQgc2FtbWVuIG1lZCBhbGxlIHRpbGgmb3NsYXNoO3JlbmRlIGRhdGEnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdJbmRzdGlsbGluZ2VyJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ1ZlZCBmamVybmVsc2UgYWYgZGV0dGUgbW9kdWwgZmplcm5lcyBvZ3MmYXJpbmc7IGFsbGUgZGUgdGlsaCZvc2xhc2g7cmVuZGUgZGF0YS4gRXIgZHUgc2lra2VyIHAmYXJpbmc7LCBhdCBkdSB2aWwgZm9ydHMmYWVsaWc7dHRlPyc7CiRsYW5nWydwcmljZSddID0gJ1ByaXMnOwokbGFuZ1sncHJpY2VfYWRqdXN0bWVudCddID0gJ1ByaXNyZWd1bGVyaW5nJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnJmFtcDtsdDsnOwokbGFuZ1sncHJvZHVjdCddID0gJ1Byb2R1a3QnOwokbGFuZ1sncHJvZHVjdG5hbWUnXSA9ICdQcm9kdWt0bmF2bic7CiRsYW5nWydwcm9kdWN0cyddID0gJ1Byb2R1a3Rlcic7CiRsYW5nWydwcm9kdWN0X2hpZXJhcmNoeSddID0gJ1Byb2R1a3QtaGllcmFya2knOwokbGFuZ1sncHJvZHVjdF9tYW5hZ2VyJ10gPSAnUHJvZHVrdGgmYXJpbmc7bmR0ZXJpbmcnOwokbGFuZ1sncHJvbXB0J10gPSAnRm9yZXNwJm9zbGFzaDtyZ3NlbCc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnXSA9ICdUaWxsYWQgdXBsb2FkIGFmIGRpc3NlIGZpbHR5cGVyICh0aWwgZmlsdHlwZS1mZWx0ZXIpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ltYWdldHlwZXMnXSA9ICdUaWxsYWQgdXBsb2FkIGFmIGYmb3NsYXNoO2xnZW5kZSBiaWxsZWRmaWx0eXBlciAodGlsIGJpbGxlZHR5cGUtZmVsdGVyKSc7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbCddID0gJ0RhbiBhdXRvbWF0aXNrIHNtJmFyaW5nOyB1ZGdhdmVyIGFmIGJpbGxlZGVyICh0aHVtYm5haWxzKSc7CiRsYW5nWydwcm9tcHRfYXBwbGljYWJsZSddID0gJ1NsJmFyaW5nO2V0IHRpbCBzb20gc3RhbmRhcmQgZm9yIGFsbGUgbnllIHByb2R1a3Rlcic7CiRsYW5nWydwcm9tcHRfY3VycmVuY3ljb2RlJ10gPSAnVmFsdXRha29kZSc7CiRsYW5nWydwcm9tcHRfY3VycmVuY3lzeW1ib2wnXSA9ICdWYWx1dGFzeW1ib2wnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gJ1NsZXQgYWxsZSBmaWxlciwgc29tIGVyIGZvcmJ1bmRldCBtZWQgcHJvZHVrdGV0LCBuJmFyaW5nO3IgcHJvZHVrdGV0IHNsZXR0ZXM/JzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnU3RhbmRhcmRzaWRlIHRpbCBmdWxkZSBwcm9kdWt0YmVza3JpdmVsc2VyJzsKJGxhbmdbJ3Byb21wdF90YXhyYXRlJ10gPSAnTW9tcyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRvcmRlciddID0gJ1N0YW5kYXJkIHNvcnRlcmluZ3NvcmRlbiBpIHJlc3VtJmVhY3V0ZTt2aXNuaW5nJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ0ZlbHQgZGVyIHNvbSBzdGFuZGFyZCBza2FsIHNvcnRlcmVzIHAmYXJpbmc7IGkgcmVzdW0mZWFjdXRlO3Zpc25pbmcnOwokbGFuZ1sncHJvbXB0X3RheDEnXSA9ICdTa2F0LCBhZmdpZnQsIG1vbXMnOwokbGFuZ1sncHJvbXB0X3RheDInXSA9ICdGbGVyZSBza2F0dGVyLCBhZmdpZnRlciwgbW9tcyc7CiRsYW5nWydwcm9tcHRfdGF4bmFtZSddID0gJ0FmZ2lmdHNuYXZuJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1NrYWJlbG9ua2lsZGUnOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnViZhZWxpZztndGVuaGVkJzsKJGxhbmdbJ3B1YmxpYyddID0gJ1NrYWwgZGV0dGUgZmVsdCB2JmFlbGlnO3JlIHRpbGcmYWVsaWc7bmdlbGlndCBmb3Igb2ZmZW50bGlnaGVkZW4/JzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ09mZmVudGxpZ2dqb3J0JzsKJGxhbmdbJ3JhbmRvbSddID0gJ1RpbGYmYWVsaWc7bGRpZyc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ0dlbmRhbiBzdGFuZGFyZHYmYWVsaWc7cmRpZXInOwokbGFuZ1sncm9vdCddID0gJ1JvZCc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnViZhZWxpZztsZyBlbic7CiRsYW5nWydzb3J0X2J5J10gPSAnU29ydGVyIGVmdGVyJzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdTb3J0ZXJpbmdzciZhZWxpZztra2VmJm9zbGFzaDtsZ2UnOwokbGFuZ1snc3RhdHVzJ10gPSAnU3RhdHVzJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ0luZHNlbmQnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ1Jlc3VtJmVhY3V0ZTtza2FiZWxvbmVyJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnVGlsZiZvc2xhc2g7ai9yZXQgZW4gcmVzdW0mZWFjdXRlO3NrYWJlbG9uJzsKJGxhbmdbJ3RheGFibGUnXSA9ICdTa2F0dGVwbGlndGlnJzsKJGxhbmdbJ3RheF9tb2R1bGUnXSA9ICdTa2F0dGVtb2R1bCc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ1Rla3N0Ym9rcyc7CiRsYW5nWyd0ZXh0Ym94J10gPSAnVGVrc3RmZWx0JzsKJGxhbmdbJ3RpdGxlX2J5aGllcmFyY2h5X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkc2thYmVsb24gZm9yIG55ZSBoaWVyYXJraXJhcHBvcnRlcic7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhcmRza2FiZWxvbiBmb3IgbnllIGthdGVnb3JpbGlzdGVyJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZHNrYWJlbG9uIGZvciBueWUgZnVsZGUgcHJvZHVrdGJlc2tyaXZlbHNlcic7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkc2thYmVsb24gZm9yIG55ZSBwcm9kdWt0cmVzdW1lZXInOwokbGFuZ1sndHlwZSddID0gJ1R5cGUnOwokbGFuZ1sndXBkYXRlJ10gPSAnT3BkYXRlcic7CiRsYW5nWyd1cGxvYWQnXSA9ICdWJmFlbGlnO2xnIGVuIGZpbCBhdCB1cGxvYWRlJzsKJGxhbmdbJ3ZhbHVlJ10gPSAnViZhZWxpZztyZGknOwokbGFuZ1sndmFsdWVzJ10gPSAnViZhZWxpZztyZGllcic7CiRsYW5nWyd3ZWlnaHQnXSA9ICdWJmFlbGlnO2d0JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTA5NDExNDQwNC4xMjA2NjM1NjAzLjEyMTY5MDY4NTQuMTIxNjkwOTg4Mi40OCc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMTY4MzA3NTQuNDAuMzEudXRtY3NyPWdvb2dsZXx1dG1jY249KG9yZ2FuaWMpfHV0bWNtZD1vcmdhbmljfHV0bWN0cj1jbXMgbWFkZSBzaW1wbGUnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfbGVuZ3RoJ10gPSAnTCAnOwokbGFuZ1snYWJicl93aWR0aCddID0gJ0IgJzsKJGxhbmdbJ2FiYnJfaGVpZ2h0J10gPSAnSCAnOwokbGFuZ1snYWRkJ10gPSAnSGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnRWluZSBLYXRlZ29yaWUgaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ2FkZGZpZWxkZGVmJ10gPSAnRWluIEZlbGQgaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ2FkanVzdGFibGUnXSA9ICdBbnBhc3NiYXInOwokbGFuZ1snYWRkcHJvZHVjdCddID0gJ0VpbmVuIEFydGlrZWwgaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ2FkZF9hdHRyaWJfc2V0J10gPSAnRWluIEF0dHJpYnV0IGhpbnp1ZiZ1dW1sO2dlbic7CiRsYW5nWydhZGRfY2F0ZWdvcnlfZmllbGQnXSA9ICdEYXMgRmVsZCBtaXQgZGVyIEthdGVnb3JpZSAmcXVvdDslcyZxdW90OyB2ZXJrbiZ1dW1sO3BmZW4nOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnRWluIEhpZXJhcmNoaWUtRWxlbWVudCBoaW56dWYmdXVtbDtnZW4nOwokbGFuZ1snYWRkX29wdGlvbiddID0gJ0F0dHJpYnV0LU9wdGlvbiBoaW56dWYmdXVtbDtnZW4nOwokbGFuZ1snYWRtaW5fb25seSddID0gJ1NvbGxlbiBudXIgQWRtaW5pc3RyYXRvcmVuIGRpZXNlcyBBdHRyaWJ1dCBzZWhlbiBrJm91bWw7bm5lbj8nOwokbGFuZ1snYWxpZ25fdWwnXSA9ICdPYmVuIExpbmtzJzsKJGxhbmdbJ2FsaWduX3VjJ10gPSAnT2JlbiBNaXR0ZSc7CiRsYW5nWydhbGlnbl91ciddID0gJ09wZW4gUmVjaHRzJzsKJGxhbmdbJ2FsaWduX21sJ10gPSAnTWl0dGUgTGlua3MnOwokbGFuZ1snYWxpZ25fbWMnXSA9ICdNaXR0ZSBNaXR0ZSc7CiRsYW5nWydhbGlnbl9tciddID0gJ01pdHRlIFJlY2h0cyc7CiRsYW5nWydhbGlnbl9sbCddID0gJ1VudGVuIExpbmtzJzsKJGxhbmdbJ2FsaWduX2xjJ10gPSAnVW50ZW4gTWl0dGUnOwokbGFuZ1snYWxpZ25fbHInXSA9ICdVbnRlbiBSZWNodHMnOwokbGFuZ1snYWxsJ10gPSAnQWxsZSc7CiRsYW5nWydhbGxjYXRlZ29yaWVzJ10gPSAnQWxsZSBLYXRlZ29yaWVuJzsKJGxhbmdbJ2FueSddID0gJ0lyZ2VuZCBlaW5lcyc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnU2luZCBTaWUgc2ljaGVyPyc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZXByb2R1Y3QnXSA9ICdXb2xsZW4gU2llIHdpcmtsaWNoIGRpZXNlbiBBcnRpa2VsIHVuZCBhbGxlIGRhbWl0IHZlcmtuJnV1bWw7cGZ0ZW4gSW5mb3JtYXRpb25lbiBsJm91bWw7c2NoZW4/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ0F1ZnN0ZWlnZW5kJzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnQXR0cmlidXRuYW1lJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpc2NoJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVzJ10gPSAnSGllcmFyY2hpZS1SZXBvcnQtVGVtcGxhdGVzJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0VpbiBIaWVyYXJjaGllLVJlcG9ydC1UZW1wbGF0ZSBoaW56dWYmdXVtbDtnZW4vJmF1bWw7bmRlcm4nOwokbGFuZ1snY2FuY2VsJ10gPSAnQWJicmVjaGVuJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdLYXRlZ29yaWVuJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnS2F0ZWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5ZXhpc3RzJ10gPSAnRWluZSBLYXRlZ29yaWUgbWl0IGRpZXNlbSBOYW1lbiBleGlzdGllcnQgYmVyZWl0cyc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdLYXRlZ29yaWVsaXN0ZW4tVGVtcGxhdGVzJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICcgRWluIEthdGVnb3JpZS1MaXN0ZW50ZW1wbGF0ZSBoaW56dWYmdXVtbDtnZW4vJmF1bWw7bmRlcm4nOwokbGFuZ1snY2VudGltZXRlcnMnXSA9ICdaZW50aW1ldGVyJzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnS29udHJvbGxrJmF1bWw7c3RjaGVuJzsKJGxhbmdbJ2NvbmZpcm1fY29weWF0dHJpYnV0ZXMnXSA9ICdBYW55IGV4aXN0aW5nIGF0dHJpYnV0ZSBzZXRzIGZvciB0aGlzIHByb2R1Y3Qgd2lsbCBiZSByZW1vdmVkLiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY29udGludWU/JzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX2hpZXJhcmNoeV9ub2RlJ10gPSAnTSZvdW1sO2NodGVuIFNpZSBkaWVzZW4gS25vdGVuIHdpcmtsaWNoIGwmb3VtbDtzY2hlbj8gQWxsZSBBcnRpa2VsLCBkaWUgZGllc2VuIEtub3RlbiBudXR6ZW4sIHdlcmRlbiBhdWYgJnF1b3Q7bm8gaGllcmFyY2h5JnF1b3Q7IGdlc2V0enQnOwokbGFuZ1snY29uZmlybV9pbXBvcnQnXSA9ICdXb2xsZW4gU2llIGRpZXMgV0lSS0xJQ0g/XG5cbkZhbHNjaGUgRWluc3RlbGx1bmdlbiBvZGVyIGVpbmUgdW5nJnV1bWw7bHRpZ2UgS29uZmlndXJhdGlvbnNkYXRlaSBrJm91bWw7bm5lbiBlaW4gYmlzbGFuZyBmdW5rdGlvbmllcmVuZGVzIFN5c3RlbSBrb21wbGV0dCB6ZXJzdCZvdW1sO3Jlbi4nOwokbGFuZ1snY29weSddID0gJ0tvcGllcmVuJzsKJGxhbmdbJ2NvcHlfYXR0cmliX3NldHMnXSA9ICdBdHJpYnV0IFMmYXVtbDt0emUga29waWVyZW4nOwokbGFuZ1snY29weV9jYXRlZ29yeSddID0gJ0thdGVnb3JpZSBrb3BpZXJlbic7CiRsYW5nWydjcmVhdGVkZGF0ZSddID0gJ0Vyc3RlbGx1bmdzZGF0dW0nOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ0FrdHVlbGxlciBXZXJ0JzsKJGxhbmdbJ2RhdGEnXSA9ICdEYXRlbic7CiRsYW5nWydkZWZhdWx0J10gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyc7CiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAnU3RhbmRhcmQtVGVtcGxhdGVzJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5BY2h0dW5nOjwvc3Ryb25nPiBEaWUgSW5oYWx0ZSBkaWVzZXIgVGV4dGZlbGRlciB3ZXJkZW4gZ2VudXR6dCwgdW0gZGllIHZvcmVpbmdlc3RlbGx0ZW4gSW5oYWx0ZSBkZXIgVGVtcGxhdGVzIGZlc3R6dWxlZ2VuLCB3ZW5uICZxdW90O1RlbXBsYXRlIGhpbnp1ZiZ1dW1sO2dlbiZxdW90OyBpbiBkZXIgamV3ZWlsaWdlbiBUZW1wbGF0ZS1SZWdpc3RlcmthcnRlIGdla2xpY2t0IHdpcmQuIERpZSBWZXImYXVtbDtuZGVydW5nIGVpbmVzIEZlbGRlcyBoYXQga2VpbmVuIGRpcmVrdGVuIEVmZmVrdCBhdWYgZGllIFdlYnNlaXRlLic7CiRsYW5nWydkZWxldGUnXSA9ICdMJm91bWw7c2NoZW4nOwokbGFuZ1snZGVsZXRlX2F0dHJpYnNldCddID0gJ0F0dHJpYnV0IGwmb3VtbDtzY2hlbic7CiRsYW5nWydkZWxldGVfaGllcmFyY2h5X2l0ZW0nXSA9ICdIaWVyYXJjaGllLUVsZW1lbnQgbCZvdW1sO3NjaGVuJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdBYnN0ZWlnZW5kJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnQmVzY2hyZWlidW5nJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uJ10gPSAnQmVzdGltbXVuZ3NvcnQnOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFpbHMgJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ0RldGFpbC1UZW1wbGF0ZXMnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ0VpbiBEZXRhaWwtVGVtcGxhdGUgaGluenVmJnV1bWw7Z2VuLyZhdW1sO25kZXJuJzsKJGxhbmdbJ2RpbWVuc2lvbnMnXSA9ICdEaW1lbnNpb25lbic7CiRsYW5nWydkaXNhYmxlZCddID0gJ0RlYWt0aXZpZXJ0JzsKJGxhbmdbJ2Rvd24nXSA9ICdOYWNoIHVudGVuJzsKJGxhbmdbJ2RyYWZ0J10gPSAnRW50d3VyZic7CiRsYW5nWydkcm9wZG93biddID0gJ0xpc3RlbmZlbGQnOwokbGFuZ1snZHJvcGRvd25fb3B0aW9ucyddID0gJ0xpc3RlbmZlbGQtT3B0aW9uZW4gPGVtPihudXIgaW4gTGlzdGVuZmVsZC1NZW4mdXVtbDtzIGVpbnNldHpiYXIpPC9lbT48YnIvPjxici8+PGVtPihlaW4gRWludHJhZyBwcm8gWmVpbGUpPC9lbT4nOwokbGFuZ1snZWRpdCddID0gJyZBdW1sO25kZXJuICc7CiRsYW5nWydlZGl0X2F0dHJpYnNldCddID0gJ0F0dHJpYnV0ZSBiZWFyYmVpdGVuJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0cyddID0gJ0F0dHJpYnV0ZWluc3RlbGx1bmdlbiBiZWFyYmVpdGVuJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0c19mb3InXSA9ICdBdHRyaWJ1dGVpbnN0ZWxsdW5nZW4gYmVhcmJlaXRlbiBmJnV1bWw7cic7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdBdHRyaWJ1dGUgYmVhcmJlaXRlbic7CiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAnS2F0ZWdvcmllIGJlYXJiZWl0ZW4nOwokbGFuZ1snZWRpdF9jYXRlZ29yeV9maWVsZHMnXSA9ICdLYXRlZ29yaWVuZmVsZGVyIGJlYXJiZWl0ZW4nOwokbGFuZ1snZWRpdF9oaWVyYXJjaHlfaXRlbSddID0gJ0hpZXJhcmNoaWUtRWxlbWVudCBiZWFyYmVpdGVuJzsKJGxhbmdbJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnXSA9ICdFaW4gQXR0cmlidXQgbWl0IGRpZXNlbSBOYW1lbiBleGlzdGllcnQgYmVyZWl0cy4nOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX3NrdSddID0gJ0RvcHBlbHRlIEFydGlrZWxudW1tZXIgZ2VmdW5kZW4nOwokbGFuZ1snZXJyb3JfZmllbGR2YWx1ZV9lbXB0eSddID0gJ0RlciBXZXJ0IGRlcyBGZWxkZXMgZGFyZiBuaWNodCBsZWVyIHNlaW4nOwokbGFuZ1snZXJyb3JfZmlsZWZvcm1hdCddID0gJ1Byb2JsZW0gbWl0IGRlbSBEYXRlaS1Gb3JtYXQnOwokbGFuZ1snZXJyb3JfZmlsZW5vdGZvdW5kJ10gPSAnRGllIERhdGVpIHd1cmRlIG5pY2h0IGdlZnVuZGVuJzsKJGxhbmdbJ2Vycm9yX2ZpbGVvcGVuJ10gPSAnUHJvYmxlbSBiZWltICZPdW1sO2ZmbmVuIGRlciBEYXRlaSAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnVW5nJnV1bWw7bHRpZ2VzLCAmdXVtbDtiZXJnZW9yZG5ldGVzIEVsZW1lbnQgKGVpbiBIaWVyYXJjaGllZWxlbWVudCBrYW5uIG5pY2h0IHNlaW4gZWlnZW5lcyAmdXVtbDtiZXJnZW9yZG5ldGVzIEVsZW1lbnQgc2VpbiknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9uYW1lJ10gPSAnRGVyIGVpbmdlZ2ViZW5lIFdlcnQgaW0gYmVudXR6ZXJkZWZpbmllcnRlbiBGb3JtdWxhci1GZWxkIGlzdCB1bmcmdXVtbDtsdGlnIChiZWluaGFsdGV0IG5pY2h0LWFscGhhbnVtZXJpc2NoZW4gWmVpY2hlbiknOwokbGFuZ1snZXJyb3JfaW52YWxpZF92YWx1ZSddID0gJ1VuZyZ1dW1sO2x0aWdlciBXZXJ0IGFuZ2VnZWJlbic7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdFaW4gYmVuJm91bWw7dGlndGVyIFBhcmFtZXRlciBmZWhsdCBvZGVyIGlzdCB1bmcmdXVtbDtsdGlnJzsKJGxhbmdbJ2Vycm9yX25hbWV1c2VkJ10gPSAnQW4gRWxlbWVudCBtaXQgZGllc2VtIE5hbWVuIGV4aXN0aWVydCBiZXJlaXRzJzsKJGxhbmdbJ2Vycm9yX25vZmllbGR0eXBlJ10gPSAnQml0dGUgdyZhdW1sO2hsZW4gU2llIGVpbmVuIEZlbGR0eXAnOwokbGFuZ1snZXJyb3Jfbm9uYW1lJ10gPSAnU2llIG0mdXVtbDtzc2VuIGVpbmVuIE5hbWVuIGFuZ2ViZW4nOwokbGFuZ1snZXJyb3Jfb25lc3Vic2NyaXB0aW9uZmllbGQnXSA9ICdFcyBrYW5uIG51ciBlaW4gQWJvbm5lbWVudC1GZWxkIGFuZ2VsZWd0IHdlcmRlbic7CiRsYW5nWydlcnJvcl9wZXJtaXNzaW9uZGVuaWVkJ10gPSAnQmVyZWNodGlndW5nIHZlcndlaWdlcnQnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9hbGlhc3VzZWQnXSA9ICdEZXIgZWluZ2VnZWJlbmUgQWxpYXMgd2lyZCBiZXJlaXRzIHZlcndlbmRldCc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X25hbWV1c2VkJ10gPSAnRWluIEFydGlrZWwgbWl0IGRpZXNlbSBOYW1lbiBleGlzdGllcnQgYmVyZWl0cyc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X25vdGZvdW5kJ10gPSAnRGFzIGFuZ2VmcmFndGUgUHJvZHVrdCBrb25udGUgbmljaHQgZ2VmdW5kZW4gd2VyZGVuJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3Rfc2t1dXNlZCddID0gJ0RpZXNlIEFydGlrZWxudW1tZXIgd2lyZCBiZXJlaXRzIHZvbiBlaW5lbSBhbmRlcmVuIEFydGlrZWwgdmVyd2VuZGV0JzsKJGxhbmdbJ2Vycm9yX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdVbmcmdXVtbDtsdGlnZSBQcmVpcy1BbmdhYmVuIGYmdXVtbDtyIGRhcyBFbGVtZW50ICVzJzsKJGxhbmdbJ2Vycm9yX3NrdV9yZXF1aXJlZCddID0gJ0JpdHRlIGVpbmUgZWluZGV1dGlnZSBBcnRpa2VsbnVtbWVyIGVpbmdlYmVuJzsKJGxhbmdbJ2Vycm9yX3VwbG9hZF9mYWlsZWQnXSA9ICdEYXMgSG9jaGxhZGVuIGlzdCBmZWhsZ2VzY2hsYWdlbjogJXMnOwokbGFuZ1snZXhjbHVkZV9jYXRlZ29yaWVzJ10gPSAnUHJvZHVrdGUgYXVzIGRlbiBnZXcmYXVtbDtobHRlbiBLYXRlZ29yaWVlbiBuaWNodCBpbSBFcmdlYm5pcyBhbnplaWdlbic7CiRsYW5nWydleHBpcmVfc2l4X21vbnRocyddID0gJ05hY2ggc2VjaHMgTW9uYXRlbic7CiRsYW5nWydleHBpcmVfb25lX3llYXInXSA9ICdOYWNoIGVpbmVtIEphaHInOwokbGFuZ1snZXhwaXJlX3R3b195ZWFyJ10gPSAnTmFjaCB6d2VpIEphaHJlbic7CiRsYW5nWydleHRyYTEnXSA9ICdFeHRyYWZlbGQgMSc7CiRsYW5nWydleHRyYTInXSA9ICdFeHRyYWZlbGQgMic7CiRsYW5nWydmaWVsZCddID0gJ0ZlbGQnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdGZWxkZGVmaW5pdGlvbic7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdGZWxkZGVmaW5pdGlvbmVuJzsKJGxhbmdbJ2ZpbGUnXSA9ICdEYXRlaSc7CiRsYW5nWydmaWx0ZXJzJ10gPSAnRmlsdGVyJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8JzsKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdBbGxnZW1laW5lIEVpbnN0ZWxsdW5nZW4nOwokbGFuZ1snZ28nXSA9ICdMb3MnOwokbGFuZ1snaGVscCddID0gJzxoMz5XYXMgbWFjaHQgZGllc2VzIE1vZHVsPzwvaDM+DQo8cD5EaWVzZXMgTW9kdWwgYmlldGV0IGRpZSBNJm91bWw7Z2xpY2hrZWl0LCBJbmZvcm1hdGlvbmVuICZ1dW1sO2JlciBQcm9kdWt0ZSB1bmQgZGVyZW4gS2F0ZWdvcmllbiB6dSBzYW1tZWxuLCBvcmdhbmlzaWVyZW4gdW5kIGFuenV6ZWlnZW4uIERpZXNlcyBNb2R1bCBrYW5uIGFsbGVpbiBlaW5nZXNldHp0IHdlcmRlbiBvZGVyIGFscyBUZWlsIGVpbmVyIEUtQ29tbWVyY2UgTCZvdW1sO3N1bmcuIERhcyBNb2R1bCB1bnRlcnN0JnV1bWw7dHp0IFByb2R1a3RlIGluIG1laHJlcmVuIEthdGVnb3JpZW4sIEFuZ2FiZW4genUgUHJlaXMsIEdld2ljaHQsIGV0Yy4gdW5kIGluZGl2aWR1ZWxsZSBGZWxkZXIgZiZ1dW1sO3IgamVkZXMgUHJvZHVrdC4gSW5kaXZpZHVlbGxlbiBQcm9kdWt0LUZlbGRlciBrJm91bWw7bm5lbiBlaWdlbmUgUHJlaXNlIHp1Z2VvcmRuZXQgd2VyZGVuLiBEaWUgVW1zYXR6c3RldWVyIGthbm4gZ2xvYmFsIG9kZXIgZiZ1dW1sO3IgamVkZXMgUHJvZHVrdCBpbmRpdmlkdWVsbCBha3RpdmllcnQgd2VyZGVuLjwvcD4NCjxwPkRpZXNlcyBNb2R1bCB1bnRlcnN0JnV1bWw7dHp0IG1laHJlcmUgQmlsZGVyIGplIFByb2R1a3QsIGluZGl2aWR1ZWxsZSBGZWxkZXIgdmVyc2NoaWVkZW5lciBUeXBlbiB1bmQgYXVjaCBpbnRlcm5lIChuaWNodCAmb3VtbDtmZmVudGxpY2hlKSBGZWxkZXIuPC9wPg0KPGgzPkZ1bmt0aW9uZW46PC9oMz4NCjx1bD4NCiAgPGxpPlZlcnNjaGllZGVuZSBBbnNpY2h0ZW48L2xpPg0KICAgIDx1bD4NCiAgICAgIDxsaT5Qcm9kdWt0LUxpc3RlbmFuc2ljaHQ8L2xpPg0KICAgICAgPGxpPkthdGVnb3JpZS1MaXN0ZW5hbnNpY2h0PC9saT4NCiAgICAgIDxsaT5EZXRhaWwgQW5zaWNodDwvbGk+IA0KICAgICAgPGxpPlZlcnp3ZWlndGUgSGllcmFyY2hpZSBBbnNpY2h0ZW48L2xpPg0KICAgIDwvdWw+DQogIDxsaT5Lb21wbGV0dCBEYXRlbmJhbmstYmFzaWVyZW5kZSBUZW1wbGF0ZXM8L2xpPg0KICA8cD5FcyBrJm91bWw7bm5lbiBtZWhyZXJlIFRlbXBsYXRlcyBmJnV1bWw7ciBqZWRlIEFuc2ljaHQgZ2VzcGVpY2hlcnQsIGYmdXVtbDtyIGplZGUgQW5zaWNodCBlaW4gU3RhbmRhcmQtVGVtcGxhdGUgZmVzdGdlbGVndCB1bmQgZGFzIGdldyZ1dW1sO25zY2h0ZSBUZW1wbGF0ZSBmJnV1bWw7ciBlaW5lIEFuc2ljaHQga2FubiBhbHMgUGFyYW1ldGVyIGltIFBsYXR6aGFsdGVyIGFuZ2VnZWJlbiB3ZXJkZW4uPC9wPg0KICA8bGk+U29ydGllcnVuZyB1bmQgQmwmYXVtbDt0dGVyLUZ1bmt0aW9uIGluIGRlciBMaXN0ZW5hbnNpY2h0PC9saT4NCiAgPGxpPkFydGlrZWwgayZvdW1sO25uZW4gbWVocmVyZW4gS2F0ZWdvcmllbiB6dWdlb3JkbmV0IHdlcmRlbjwvbGk+DQogIDxsaT5NZWhyZXJlIGluZGl2aWR1ZWxsZSBGZWxkZXIgayZvdW1sO25uZW4gZGVmaW5pZXJ0IHdlcmRlbiwgZGFiZWkgZ2lidCBlcyB2ZXJzY2hpZWRlbmUgVHlwZW4sIGlua2x1c2l2ZSBCaWxkZXI8L2xpPg0KICA8bGk+QXV0b21hdGlzY2hlIFRodW1ibmFpbC1FcnpldWd1bmc8L2xpPg0KICA8bGk+SW50ZXJuZSBGZWxkZXI8L2xpPg0KICA8bGk+SW5kaXZpZHVlbGxlIFByb2R1a3QtRWlnZW5zY2hhZnRlbiAobWl0IGVpZ2VuZW4gUHJlaXNlbik8L2xpPg0KICA8bGk+RmVsZGVyIGYmdXVtbDtyIEdld2ljaHQsIFVtc2F0enN0ZXVlciB1bmQgYW5kZXJlcyAoZiZ1dW1sO3IgZGllIFZlcndlbmR1bmcgaW4gRS1Db21tZXJjZSBMJm91bWw7c3VuZ2VuKTwvbGk+DQogIDxsaT5BcnRpa2VsIGsmb3VtbDtubmVuIGRlbiBTdGF0dXMgJnF1b3Q7VmVyJm91bWw7ZmZlbnRsaWNodCZxdW90OyBvZGVyICZxdW90O0VudHd1cmYmcXVvdDsgaGFiZW4uPC9saT4NCiAgPGxpPlVudGVyc3QmdXVtbDt0enVuZyB2b24gUHJldHR5IFVSTHM8L2xpPg0KICA8bGk+PHN0cm9uZz5WaWVsZXMgbWVoci4uLjwvc3Ryb25nPjwvbGk+DQo8L3VsPg0KDQo8aDM+V2llIGthbm4gZGllc2VzIE1vZHVsIHZlcndlbmRldCB3ZXJkZW46PC9oMz4NCjx1bD4NCjxsaT5FaW5zdGVsbHVuZ2VuPC9saT4NCjxwPkRpZXMgaXN0IG5vcm1hbGVyd2Vpc2UgbnVyIGVpbmUgRm9ybWFsaXQmYXVtbDt0LiBIaWVyIHdlcmRlbiBkYXMgUHJlaXMtU3ltYm9sIHVuZCAtVyZhdW1sO2hydW5nLCBkaWUgYW56dXplaWdlbmRlbiBGZWxkZXIgdS52Lm0uIGVpbmdlc3RlbGx0LjwvcD4NCjxsaT5TZXR1cCBmJnV1bWw7ciBCZW51dHplciB1bmQgQmVyZWNodGlndW5nZW48L2xpPg0KPHA+RGllc2VzIE1vZHVsIG51dHp0IGRpZSAmIzAzOTtNb2RpZnkgVGVtcGxhdGVzJiMwMzk7IEJlcmVjaHRpZ3VuZywgdW0gTnV0emVybiBkYXMgQmVhcmJlaXRlbiBkZXIgVGVtcGxhdGVzIHp1IGVybSZvdW1sO2dsaWNoZW4uIEViZW5zbyB3aXJkIGRpZSAmIzAzOTtNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcyYjMDM5OyBCZXJlY2h0aWd1bmcgdmVyd2VuZGV0IGYmdXVtbDtyIGRlbiBFaW5zdGVsbHVuZ3MtUmVpdGVyLiBVbSBGZWxkIERlZmluaXRpb25lbiwgQXJ0aWtlbCwgS2F0ZWdvcmllbiBvZGVyIEhpZXJhcmNoaWVuIHp1IGJlYXJiZWl0ZW4sIGJlbiZvdW1sO3RpZ3QgZGVyIEJlbnV0emVyIGRpZSBCZXJlY2h0aWd1bmcgJiMwMzk7TW9kaWZ5IFByb2R1Y3RzJiMwMzk7LjwvcD4NCjxsaT4ob3B0aW9uYWwpIEVyc3RlbGxlbiB2b24gZWluIG9kZXIgbWVocmVyZW4gS2F0ZWdvcmllbjwvbGk+DQo8cD5EaWVzZXIgU2Nocml0dCBpc3Qgb3B0aW9uYWwsIGFiZXIgZXMgaXN0IHNpY2hlciByYXRzYW0sIGRpZXMgc28gZnImdXVtbDtoIHdpZSBtJm91bWw7Z2xpY2ggenUgdHVuLCB1bSBzcCZhdW1sO3RlcmVuIE1laHJhdWZ3YW5kIHp1IHZlcm1laWRlbi4gVW0gZWluZSBLYXRlZ29yaWUgaGluenV6dWYmdXVtbDtnZW4sIGtsaWNrZW4gU2llIGF1ZiBkZW4gUmVpdGVyICZxdW90O0thdGVnb3JpZW4mcXVvdDsgdW5kIGRvcnQgYXVmIGRlbiBMaW5rICZxdW90O0thdGVnb3JpZSBoaW56dWYmdXVtbDtnZW4mcXVvdDssIHdvIHNjaGxpZSZzemxpZztsaWNoIGRlciBOYW1lIGRlciBLYXRlZ29yaWUgYW5nZWdlYmVuIHdlcmRlbiBrYW5uLjwvcD4NCjxsaT4ob3B0aW9uYWwpIEVyc3RlbGxlbiB2b24gZWluIG9kZXIgbWVocmVyZW4gaW5kaXZpZHVlbGxlbiBGZWxkZXJuPC9saT4NCjxwPkRpZXNlciBTY2hyaXR0IGlzdCBvcHRpb25hbC4gSW5kaXZpZHVlbGxlIEZlbGRlciB3ZXJkZW4gbm9jaHQgYmVuJm91bWw7dGlndCwgd2VubiBkaWVzZXMgTW9kdWwgZGFzIGdldyZ1dW1sO25zY2h0ZSBiaWV0ZXQuIFdlbm4gU2llIGplZG9jaCB6dXMmYXVtbDt0emxpY2hlIEluZm9ybWF0aW9uZW4genVtIEFydGlrZWwgYmVuJm91bWw7dGlnZW4sIGsmb3VtbDtubmVuIFNpZSBoaWVyIGluZGl2aWR1ZWxsZSBGZWxkZXIgZXJzdGVsbGVuLiBFaW4gaW5kaXZpZHVlbGxlcyBGZWxkIHp1IGVyc3RlbGxlbiBpc3QgJmF1bWw7aG5saWNoIHdpZSBlaW5lIEthdGVnb3JpZSB6dSBlcnN0ZWxsZW4sIGFiZ2VzZWhlbiBkYXZvbiwgZGFzcyBtZWhyIERhdGVuIGFuZ2VnZWJlbiB3ZXJkZW4gbSZ1dW1sO3NzZW4uPC9wPg0KPHA+RGVyemVpdCBzaW5kIHNlY2hzIFR5cGVuIHZvbiBpbmRpdmlkdWVsbGVuIEZlbGRlcm4gdmVyZiZ1dW1sO2diYXI6ICYjMDM5O3RleHRib3gmIzAzOTssICYjMDM5O2NoZWNrYm94JiMwMzk7LCAmIzAzOTt0ZXh0YXJlYSYjMDM5OywgJiMwMzk7ZHJvcGRvd24mIzAzOTsgdW5kICYjMDM5O2ZpbGUmIzAzOTsuIFcmYXVtbDtobGVuIFNpZSBlaW5lbiBUeXAgYXVzLCBnZWJlbiBTaWUgZGVtIEZlbGQgZWluZW4gTmFtZW4gdW5kIGxlZ2VuIFNpZSBmZXN0LCBvYiBkYXMgRmVsZCAmb3VtbDtmZmVudGxpY2ggc2VpbiBzb2xsIG9kZXIgaW50ZXJuLiBCZXN0JmF1bWw7dGlnZW4gU2llIHNjaGxpZSZzemxpZztsaWNoIG1pdCAmcXVvdDtBYnNlbmRlbiZxdW90Oy48L3A+DQo8bGk+RXJzdGVsbGVuIHZvbiBlaW4gb2RlciBtZWhyZXJlbiBBcnRpa2VsbjwvbGk+DQo8cD5TaWUgc29sbHRlbiBlaW4gb2RlciBtZWhyZXJlIEFydGlrZWwgZXJzdGVsbGVuLCBkaWUgYXVmIGRlciBXZWJzZWl0ZSBhbmdlemVpZ3Qgd2VyZGVuIHNvbGxlbi4gR2ViZW4gU2llIGplZGVtIEFydGlrZWwgZWluZW4gTmFtZW4sIGVpbmVuIFByZWlzIHVuZCB3ZWl0ZXJlIEluZm9ybWF0aW9uZW4uPC9wPg0KPHA+V2VubiBLYXRlZ29yaWVuIGVyc3RlbGx0IHd1cmRlbiwgd2lyZCBmJnV1bWw7ciBqZWRlIEthdGVnb3JpZSBlaW5lIENoZWNrYm94IGFuZ2V6ZWlndC4gVyZhdW1sO2hsZW4gU2llLCB1bnRlciB3ZWxjaGVuIEthdGVnb3JpZW4gZGVyIEFydGlrZWwgYW5nZXplaWd0IHdlcmRlbiBzb2xsLjwvcD4NCjxwPldlbm4gaW5kaXZpZHVlbGxlIEZlbGRlciBlcnN0ZWxsdCB3dXJkZW4sIHdlcmRlbiBkaWVzZSBhdWNoIGFiZ2VmcmFndC4gR2ViZW4gU2llIGF1Y2ggaGllciBkaWUgdm9yaGFuZGVuZW4gRGF0ZW4gZWluLiBEaWVzIGlzdCBvcHRpb25hbC48L3A+DQo8bGk+RWluZiZ1dW1sO2dlbiBkZXIgZW50c3ByZWNoZW5kZW4gVGFncyBpbiBkYXMgU2VpdGVuIFRlbXBsYXRlIG9kZXIgZGVuIFNlaXRlbiBJbmhhbHQ8L2xpPg0KPHA+RGllIGVpbmZhY2hzdGUgVmFyaWFudGUgaXN0IGVzLCBkZW4gPHN0cm9uZz57UHJvZHVjdHN9PC9zdHJvbmc+IFRhZyBpbiBkZW4gSW5oYWx0cy1UZXh0YmVyZWljaCBvZGVyIGluIGVpbmVtIFRlbXBsYXRlIGVpbnp1ZiZ1dW1sO2dlbi48L3A+DQo8cD5XZW5uIFNpZSBkYXMgVmVyaGFsdGVuIGRpZXNlcyBNb2R1bHMgbmFjaCBJaHJlbiBXJnV1bWw7bnNjaGVuIGFucGFzc2VuIHdvbGxlbiwgayZvdW1sO25uZW4gU2llIHZlcnNjaGllZGVuZSBQYXJhbWV0ZXIgenVtIDxzdHJvbmc+e1Byb2R1Y3RzfTwvc3Ryb25nPiBUYWcgaGluenVmJnV1bWw7Z2VuLiBEaWUga29tcGxldHRlIExpc3RlIGRlciBQYXJhbWV0ZXIgZmluZGVuIFNpZSB3ZWl0ZXIgdW50ZW4gaW0gVGV4dC4gV2VubiBTaWUgenVtIEJlaXNwaWVsIGVpbmUgTGlzdGUgdm9uIFByb2R1a3RlbiBlaW5lciBLYXRlZ29yaWUgYW56ZWlnZW4gd29sbGVuLCBrJm91bWw7bm5lbiBTaWUgZGVuIFRhZyB3aWUgZm9sZ3QgdmVyd2VuZGVuOiA8Y29kZT57UHJvZHVjdHMgY2F0ZWdvcnk9JiMwMzk7Y2F0ZWdvcnluYW1lJiMwMzk7fTwvY29kZT48L3A+DQo8L3VsPg0KPGgzPlNtYXJ0eSBQbHVnaW5zPC9oMz4NCjxwPkRpZXNlcyBNb2R1bCBlcndlaXRlcnQgU21hcnR5IHVtIGVpbiBvZGVyIG1laHJlcmUgUGx1Z2lucywgZGllIGRhcyBFaW5mJnV1bWw7Z2VuIHZvbiBBcnRpa2VsZGF0ZW4gaW4gZGllIFRlbXBsYXRlcyB2ZXJlaW5mYWNoZW46PC9wPg0KPHVsPg0KICA8bGk+PGNvZGU+e3Byb2R1Y3RzX2dldGNhdGVnb3J5IGNhdGVnb3J5aWQ9JiMwMzk7OTkmIzAzOTsgW2Fzc2lnbj0mIzAzOTt0bXAmIzAzOTtdfTwvY29kZT4NCiAgPHA+RGFzIFBsdWdpbiBsaWVmZXJ0IGRpZSBrb21wbGV0dGVuIERhdGVuIHp1IGVpbmVyIEthdGVnb3JpZS1JRCB1bmQgd2Vpc3N0IGRpZXNlIGRlciBnZ2YuIGFuZ2VnZWJlbmVuIFNtYXJ0eSBWYXJpYWJsZW4genUuICBEZXIgUiZ1dW1sO2NrZ2FiZXdlcnQgaXN0IGVpbiBPYmpla3QgbWl0IGFsbGVuIERhdGVuIGVpbmVyIEthdGVnb3JpZSwgaW5rbHVzaXZlIGRlciBGZWxkd2VydGUuPGJyLz5Cc3AuOiA8Y29kZT57cHJvZHVjdHNfZ2V0Y2F0ZWdvcnkgY2F0ZWdvcnlpZD0xIGFzc2lnbj0mIzAzOTt0bXAmIzAzOTt9Q2F0ZWdvcnkgbmFtZSA9IHskdG1wLT5uYW1lfTwvY29kZT48L3A+DQogIDwvbGk+DQo8L3VsPg0KDQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5EaWVzZXMgTW9kdWwgYmVpbmhhbHRldCBrZWluZW4ga29tbWVyemllbGxlbiBTdXBwb3J0LiBFcyBleGlzdGllcmVuIGplZG9jaCBlaW5lIFJlaWhlIHZvbiBSZXNzb3VyY2VuLCBkaWUgSWhuZW4gYmVpIGRpZXNlbSBNb2R1bCBoZWxmZW4gayZvdW1sO25uZW46PC9wPg0KPHVsPg0KPGxpPkYmdXVtbDtyIGRpZSBuZXVlc3RlIFZlcnNpb24gZGllc2VzIE1vZHVscywgZiZ1dW1sO3IgRkFRcyBvZGVyIEZlaGxlcmJlcmljaHRlLCBiZXN1Y2hlbiBTaWUgZGllIEVudHdpY2tsZXItV2Vic2VpdGUgdm9uIENNUyBtYWRlIHNpbXBsZTogPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+RGV2ZWxvcGVycyBGb3JnZTwvYT4gdW5kIHN1Y2hlbiBTaWUgbmFjaCAmIzAzOTtQcm9kdWN0cyYjMDM5Oy48L2xpPg0KPGxpPlVtIGtvbW1lcnppZWxsZW4gU3VwcG9ydCB6dSBlcmhhbHRlbiwgc2VuZGVuIFNpZSBlaW5lIEVNYWlsIHp1bSBBdXRob3IgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPlJvYmVydCBDYW1wYmVsbDwvYT4uPC9saT4NCjxsaT5adXMmYXVtbDt0emxpY2hlIERpc2t1c3Npb25lbiAmdXVtbDtiZXIgZGllc2VzIE1vZHVsIGZpbmRlbiBTaWUgaW0gQ01TIG1hZGUgc2ltcGxlIEZvcnVtOiA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bTwvYT4uPC9saT4NCjxsaT5GJnV1bWw7ciBGcmFnZW4gb2RlciBiZXNjaHImYXVtbDtua3RlbiB0ZWNobmlzY2hlbiBTdXBwb3J0IGthbm4gZGVyIEF1dGhvciB2aWEgSVJDIGVycmVpY2h0IHdlcmRlbjogPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8L3VsPg0KPGgzPlVyaGViZXJyZWNodCB1bmQgTGl6ZW56OjwvaDM+DQo8cD5Db3B5cmlnaHQgJmFtcDtjb3B5OyAyMDA4LCBSb2JlcnQgQ2FtcGJlbCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+JmFtcDtsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmFtcDtndDs8L2E+LiBBbGxlIFJlY2h0ZSB2b3JiZWhhbHRlbi48L3A+DQo8cD5EaWVzZXMgUHJvZ3JhbW0gaXN0IGZyZWllIFNvZnR3YXJlLiBTaWUgayZvdW1sO25uZW4gZXMgdW50ZXIgZGVuIEJlZGluZ3VuZ2VuIGRlciBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgd2llIHZvbiBkZXIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIHZlciZvdW1sO2ZmZW50bGljaHQsIHdlaXRlcmdlYmVuIHVuZC9vZGVyIG1vZGlmaXppZXJlbiwgZW50d2VkZXIgZ2VtJmF1bWw7JnN6bGlnOyBWZXJzaW9uIDIgZGVyIExpemVueiBvZGVyIChuYWNoIElocmVyIE9wdGlvbikgamVkZXIgc3AmYXVtbDt0ZXJlbiBWZXJzaW9uLjwvcD4NCjxwPkRvY2ggZGEgZGllc2UgU29mdHdhcmUgZWluIFp1c2F0em1vZHVsIHp1IENNUyBNYWRlIFNpbXBsZSBpc3QgZ2lsdCBlaW5lIGJlc29uZGVyZSBBdXNuYWhtZSB6dXIgR1BMLiANClNpZSBkJnV1bWw7cmZlbiBkaWVzZSBTb2Z0d2FyZSBpbiBrZWluZXIgVmVyc2lvbiB2b24gQ01TIE1hZGUgU2ltcGxlIGVpbnNldHplbiBkaWUgbmljaHQgdW50ZXIgZGVyIEdQTCBsaXplbnNpZXJ0IGlzdCwgb2RlciBpbSBBZG1pbmlzdHJhdGlvbnNiZXJlaWNoIG5pY2h0IGtsYXIgdW5kIGRldXRsaWNoIGRhcmF1ZiBoaW53ZWlzdCwgZGFzIGRpZSBTaXRlIG1pdCBDTVMgTWFkZSBTaW1wbGUgZXJzdGVsbHQgd3VyZGUuPC9wPg0KPHA+RGllIFZlciZvdW1sO2ZmZW50bGljaHVuZyBkaWVzZXMgUHJvZ3JhbW1zIGVyZm9sZ3QgaW4gZGVyIEhvZmZudW5nLCBkYSZzemxpZzsgZXMgSWhuZW4gdm9uIE51dHplbiBzZWluIHdpcmQsIGFiZXIgT0hORSBJUkdFTkRFSU5FIEdBUkFOVElFLCBzb2dhciBvaG5lIGRpZSBpbXBsaXppdGUgR2FyYW50aWUgZGVyIE1BUktUUkVJRkUgb2RlciBkZXIgVkVSV0VOREJBUktFSVQgRiZVdW1sO1IgRUlORU4gQkVTVElNTVRFTiBaV0VDSy4gRGV0YWlscyBmaW5kZW4gU2llIGluIGRlciBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS48L3A+DQo8cD5TaWUgc29sbHRlbiBlaW4gRXhlbXBsYXIgZGVyIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHp1c2FtbWVuIG1pdCBkaWVzZW0gUHJvZ3JhbW0gZXJoYWx0ZW4gaGFiZW4uIEZhbGxzIG5pY2h0LCBzY2hyZWliZW4gU2llIGFuIGRpZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBIG9kZXIgbGVzZW4gU2llIHNpZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+JzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0hpZXJhcmNoaWUnOwokbGFuZ1snaGllcmFyY2h5X3Bvc2l0aW9uJ10gPSAnSGllcmFyY2hpZS1Qb3NpdGlvbic7CiRsYW5nWydoaWVyYXJjaHlfc2V0dGluZ3MnXSA9ICdIaWVyYXJjaGllLUVpbnN0ZWxsdW5nZW4nOwokbGFuZ1snaWQnXSA9ICdJRCc7CiRsYW5nWydpbWFnZXRleHQnXSA9ICdCaWxkJzsKJGxhbmdbJ2ltYWdlX2hhbmRsaW5nX3NldHRpbmdzJ10gPSAnRWluc3RlbGx1bmdlbiBmJnV1bWw7ciBkaWUgQmlsZGVydmVyd2FsdHVuZyc7CiRsYW5nWydpbXBvcnRfZnJvbV9jc3YnXSA9ICdQcm9kdWt0ZSBhdXMgZWluZXIgQ1NWLURhdGVpIGltcG9ydGllcmVuJzsKJGxhbmdbJ2luY2hlcyddID0gJ1pvbGwnOwokbGFuZ1snaW5jbHVkZV9jaGlsZHJlbiddID0gJ0VpbnNjaGxpZSZzemxpZztsaWNoIFVudGVycHVua3RlPyc7CiRsYW5nWydpbmZvX2FsbnVtb25seSddID0gJ051ciBhbHBoYW51bWVyaXNjaGUgWmVpY2hlbi4gS2VpbmUgTGVlcnplaWNoZW4sIFppdGF0ZSBvZGVyIEJ1Y2hzdGFiZW4vTnVtbWVybi1Lb21iaW5hdGlvbmVuJzsKJGxhbmdbJ2luZm9fYXR0cmlidGVtcGxhdGUnXSA9ICdNJm91bWw7Z2xpY2hlIFZhcmlhYmxlbiBzaW5kOiB7JGF0dHJpYl90ZXh0fSx7JGF0dHJpYl9hZGp1c3R9LHskY3VycmVuY3lfc3ltYm9sfSc7CiRsYW5nWydpbmZvX2F0dHJpYnV0ZXNfY29waWVkJ10gPSAnQXRyaWJ1dGUga29waWVydCc7CiRsYW5nWydpbmZvX2F1dG93YXRlcm1hcmsnXSA9ICdFcyB3ZXJkZW4gZGllIFdhc3NlcnplaWNoZW4tRWluc3RlbGx1bmdlbiBkZXMgQ0dFeHRlbnNpb25zLU1vZHVscyB2ZXJ3ZW5kZXQnOwokbGFuZ1snaW5mb19iYXRjaHNpemUnXSA9ICdHZWJlbiBTaWUgZGllIEFuemFobCBkZXIgWmVpbGVuIGFuLCBkaWUgcHJvICZxdW90O0Jsb2NrJnF1b3Q7IHZlcmFyYmVpdGV0IHdlcmRlbiBzb2xsZW4uIE5hY2hkZW0gZWluIEJsb2NrIGFiZ2VhcmJlaXRldCBpc3QsIHdpcmQgZGVyIEltcG9ydCB3ZWl0ZXJnZWxlaXRldCB1bmQgdmVyYXJiZWl0ZXQgZGVuIG4mYXVtbDtjaHN0ZW4gQmxvY2suICBXZW5uIGJlaSBJaG5lbiBTcGVpY2hlcmZlaGxlciBvZGVyIFplaXQmdXVtbDtiZXJzY2hyZWl0dW5nZW4gYXVmZ3J1bmQgZGVyIEdyJm91bWw7JnN6bGlnO2UgZGVyIHZlcmFyYmVpdGV0ZW4gRGF0ZW5tZW5nZSBhdWZ0cmV0ZW4sIHdlbmRlbiBTaWUgc2ljaCBhbiBJaHJlbiBIb3N0aW5nLVByb3ZpZGVyIG9kZXIgdmVya2xlaW5lcm4gU2llIGRpZSBaZWlsZW5hbnphaGwnOwokbGFuZ1snaW5mb19jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdEaWVzZSBQYXJhbWV0ZXIgd2VyZGVuIHZlcndlbmRldCwgdW0gZWluIFdhcmVua29yYi1Nb2R1bCBmJnV1bWw7ciBkaWUgQXJ0aWtlbC1EZXRhaWwtIHVuZCAtTGlzdGVuYW5zaWNodCBhdXN6dXcmYXVtbDtobGVuLic7CiRsYW5nWydpbmZvX2NvcHlfYXR0cmlic2V0cyddID0gJ0hpZXJtaXQga29waWVyZW4gU2llIGRlbiBBdHRyaWJ1dHNhdHogKG9obmUgQXJ0aWtlbG51bW1lcikgZWluZXMgYW5kZXJlbiBBcnRpa2Vscy4nOwokbGFuZ1snaW5mb19jcmVhdGVmaWVsZHMnXSA9ICdVbmJla2FubnRlIEFydGlrZWxmZWxkZXIgYXV0b21hdGlzY2ggZXJzdGVsbGVuPyA8ZW0+KHdlcmRlbiBhbHMgVGV4dGZlbGRlciBlcnN0ZWxsdCk8L2VtPic7CiRsYW5nWydpbmZvX2NyZWF0ZWNhdGVnb3JpZXMnXSA9ICdJbiBkZXIgQ1NWLURhdGVpIGFuZ2VnZWJlbmUsIGFiZXIgYmlzaGVyIGZlaGxlbmRlIEFydGlrZWxrYXRlZ29yaWVuIGF1dG9tYXRpc2NoIGVyemV1Z2VuJzsKJGxhbmdbJ2luZm9fY3JlYXRlaGllcmFyY2h5J10gPSAnSW4gZGVyIENTVi1EYXRlaSBhbmdlZ2ViZW5lLCBhYmVyIGJpc2hlciBmZWhsZW5kZSBBcnRpa2VsaGllcmFyY2hpZW4gYXV0b21hdGlzY2ggZXJ6ZXVnZW4nOwokbGFuZ1snaW5mb19kZWNpbWFsX3VuaXRzJ10gPSAnRGllc2VzIFN5c3RlbSB2ZXJzdGVodCAoLikgYWxzIERlemltYWxzdGVsbGVuLVRyZW5uemVpY2hlbiwgei5CLjogPHN0cm9uZz41LjI1PC9zdHJvbmc+JzsKJGxhbmdbJ2luZm9fZGVsaW1pdGVyJ10gPSAnTGVnZW4gU2llIGhpZXIgZGFzIChvZGVyIGRpZSkgWmVpY2hlbiBmZXN0LCBkaWUgZGllIEZlbGRlciB2b25laW5hbmRlciB0cmVubmVuJzsKJGxhbmdbJ2luZm9fZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdMZWdlbiBTaWUgZmVzdCB3aWUgQXJ0aWtlbCBiZWhhbmRlbHQgd2VyZGVuLCBkZXJlbiBOYW1lIHNjaG9uIGluIGRlciBDU1YgRGF0ZWkgdm9yaGFuZGVuIGlzdCc7CiRsYW5nWydpbmZvX2ZpZWxkZGVmc190YWInXSA9ICc8c3Ryb25nPkFjaHR1bmc6IDwvc3Ryb25nPiBBbGxlIEZlbGRlciwgZGllIGhpZXIgZGVmaW5pZXJ0IHdlcmRlbiwgc2luZCBmJnV1bWw7ciBhbGxlIEFydGlrZWwgdmVyZiZ1dW1sO2diYXIuJzsKJGxhbmdbJ2luZm9fZmllbGRwcm9ibGVtcyddID0gJ0JlaSBlaW5lbSBvZGVyIG1laHJlcmVuIGJlbnV0emVyZGVmaW5pZXJ0ZW4gRmVsZGVybiB3dXJkZW4gUHJvYmxlbWUgZmVzdGdlc3RlbGx0LiBEaWUgQWt0aW9uIHd1cmRlIGVyZm9sZ3JlaWNoIGFiZ2VzY2hsb3NzZW4sIFNpZSBzb2xsdGVuIGplZG9jaCBkaWUgVXJzYWNoZSBkZXIgUHJvYmxlbWUgaGVyYXVzZmluZGVuLic7CiRsYW5nWydpbmZvX2hhbmRsZWltYWdlcyddID0gJ1NvbGxlbiBiZWltIEltcG9ydCBpbiBlaW5lciBTcGFsdGUgZ2VmdW5kZW5lIEJpbGRkYXRlaWVuIHZvbiBkZXIgUXVlbGxwb3NpdGlvbiB2ZXJzY2hvYmVuLCBtaXQgV2Fzc2VyemVpY2hlbiB2ZXJzZWhlbiB1bmQgZWluIFZvcnNjaGF1YmlsZCBlcnN0ZWxsdCB1bmQgZGVyIEZlbGR0eXAgYXVmICZxdW90O0JpbGQmcXVvdDsgZ2VzZXR6dCB3ZXJkZW4nOwokbGFuZ1snaW5mb19oaWVycGFnZSddID0gJ0RpZXNlIFNlaXRlIGYmdXVtbDtyIEhpZXJhcmNoaWVhbnNpY2h0ZW4gdmVyd2VuZGVuLiAgRGllIFNlaXRlbi1JRCB3aXJkIGluIGRlciBVUkwgbmljaHQgdmVyd2VuZGV0Lic7CiRsYW5nWydpbmZvX2ltYWdlcGF0aCddID0gJ0VpbiBQZmFkIChyZWxhdGl2IHp1bSBVcGxvYWRzIFZlcnplaWNobmlzKSBpbiBkZW0gZGllIGluIGRlciBJbXBvcnRkYXRlaSBhbmdlZ2ViZW5lbiBCaWxkZXIgbGllZ2VuJzsKJGxhbmdbJ2luZm9faW1wb3J0X3Rlc3RfcGFzc2VkJ10gPSAnRGllIGFuZ2VnZWJlbmUgRWluZ2FiZWRhdGVpIHd1cmRlIGVpbmVtIEt1cnp0ZXN0IHVudGVyem9nZW4gdW5kIGFsbGVzIHNjaGVpbnQgaW4gT3JkbnVuZyB6dSBzZWluLjxici8+RGllcyBpc3Qga2VpbiBJbmRpeiBkYWYmdXVtbDtyLCBkYXMgZGllIERhdGVpIGZlaGxlcmZyZWkgaXN0Lic7CiRsYW5nWydpbmZvX3ByZXR0eWhpZXJ1cmxzJ10gPSAnRGVuIEhpZXJhcmNoaWVuYW1lbiBpbiBkaWUgVVJMIGVpbmYmdXVtbDtnZW4nOwokbGFuZ1snaW5mb19wcmljZV9hZGp1c3RtZW50J10gPSAnRyZ1dW1sO2x0aWdlIEVpbmdhYmVuIHNpbmQgKy0qIy4jIyc7CiRsYW5nWydpbmZvX3Byb2Rub3Rmb3VuZCddID0gJ1dpZSB3aXJkIGVpbiBkaXJla3RlciBBdWZydWYgZWluZXIgQXJ0aWtlbGRldGFpbHNlaXRlIHBlciBVUkwgYmVoYW5kZWx0LCB3ZW5uIGRlciBBcnRpa2VsIC0gYXVzIHdlbGNoZW4gR3ImdXVtbDtuZGVuIGF1Y2ggaW1tZXIgKGRlYWt0aXZpZXJ0LCBnZWwmb3VtbDtzY2h0LCB1c3cpIC0gbmljaHQgdmVyZiZ1dW1sO2diYXIgaXN0Lic7CiRsYW5nWydpbmZvX3B1YmxpY2ZpZWxkJ10gPSAnJk91bWw7ZmZlbnRsaWNoZSBGZWxkZXIgc2luZCBhdWYgZGVyIFdlYnNlaXRlIGYmdXVtbDtyIGplZGVuIHNpY2h0YmFyLic7CiRsYW5nWydsYWJlbCddID0gJ0Jlc2NocmlmdHVuZyc7CiRsYW5nWydsYWJlbF9za2lwJ10gPSAnJlV1bWw7YmVyc3ByaW5nZW4nOwokbGFuZ1snbGFiZWxfb3ZlcndyaXRlJ10gPSAnJlV1bWw7YmVyc2NocmVpYmVuJzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnPj4nOwokbGFuZ1snbGFzdF9tb2RpZmllZCddID0gJ0xldHp0ZSAmQXVtbDtuZGVydW5nJzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnWndlaXRlcyBCaWxkJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ01heGltYWxlIEwmYXVtbDtuZ2UgPGVtPihudXIgYXVmIFRleHQtRmVsZGVyIGFud2VuZGJhcik8L2VtPic7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICcmQXVtbDtuZGVydW5ncy1EYXR1bSc7CiRsYW5nWydtb2R1bGVfZGVzY3JpcHRpb24nXSA9ICdFaW4gTW9kdWwsIHVtIGVpbmVuIEthdGFsb2cgdm9uIEFydGlrZWxuLCBkZXJlbiBQcmVpc2UsIEJpbGRlciwgZXRjLiB6dSB2ZXJ3YWx0ZW4gdW5kIEJlbnV0emVybiB6dSBlcmxhdWJlbiwgZGllc2UgYW4gZWluZW4gV2FyZW5rb3JiIHp1ICZ1dW1sO2JlcmdlYmVuLic7CiRsYW5nWydtb3ZlX2Rvd24nXSA9ICdOYWNoIHVudGVuJzsKJGxhbmdbJ21vdmVfdXAnXSA9ICdOYWNoIG9iZW4nOwokbGFuZ1snbmFtZSddID0gJ05hbWUgJzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnU2llIGhhYmVuIG5pY2h0IGRpZSBlcmZvcmRlcmxpY2hlIEJlcmVjaHRpZ3VuZzogJXMnOwokbGFuZ1snbmV3X2NhdGVnb3J5X25hbWUnXSA9ICdOZXVlciBLYXRlZ29yaWVuLU5hbWUnOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICc+JzsKJGxhbmdbJ25vJ10gPSAnTmVpbic7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ0VzIHd1cmRlIGtlaW4gTmFtZSBhbmdlZ2ViZW4nOwokbGFuZ1snbm9uZSddID0gJ0tlaW5lcyc7CiRsYW5nWydub3RoaW5nX3NlbGVjdGQnXSA9ICdOaWNodHMgYXVzZ2V3JmF1bWw7aGx0JzsKJGxhbmdbJ29mJ10gPSAnVm9uJzsKJGxhbmdbJ29wZXJhdGlvbl9jb21wbGV0ZSddID0gJ1ZvcmdhbmcgYWJnZXNjaGxvc3Nlbic7CiRsYW5nWydwYWdlJ10gPSAnU2VpdGUnOwokbGFuZ1sncGFnZV9vZiddID0gJ1NlaXRlICVzIHZvbiAlcyc7CiRsYW5nWydwYWdlX2xpbWl0J10gPSAnU2VpdGVuLUFuemFobCc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdMZWdlbiBTaWUgZGFzIFZlcmhhbHRlbiBkZXMgTW9kdWxzIGZlc3QuIE0mb3VtbDtnbGljaGUgV2VydGUgc2luZDoNCjx1bD4NCiAgPGxpPmhpZXJhcmNoeSAtLSB6ZWlndCBlaW5lIEFydGlrZWwtTGlzdGUgbmFjaCBkZXIgSGllcmFyY2hpZSBhbjwvbGk+DQogIDxsaT5jYXRlZ29yeWxpc3QgLSB6ZWlndCBlaW5lIExpc3RlIGRlciBQcm9kdWt0a2F0ZWdvcmllbiBhbjwvbGk+DQogIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gemVpZ3QgZWluZSBadXNhbW1lbmZhc3N1bmcgZGVyIFByb2R1a3RlIGFuPC9saT4NCiAgPGxpPmRldGFpbHMgLSB6ZWlndCBkaWUgRGV0YWlsYW5zaWNodCBlaW5lcyBlaW56ZWxuZW4gQXJ0aWtlbHMgYW48L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdXZW5uIGRpZXNlciBQYXJhbWV0ZXIgaW4gZGVyIDxlbT5kZWZhdWx0PC9lbT4gTGlzdGVuYW5zaWNodCB2ZXJ3ZW5kZXQgd2lyZCwgd2VyZGVuIG51ciBBcnRpa2VsIHp1ciBhbmdlZ2ViZW5lbiBLYXRlZ29yaWUgYW5nZXplaWd0LiBNZWhyZXJlIEthdGVnb3JpZW4gayZvdW1sO25uZW4gZHVyY2ggS29tbWFzIGdldHJlbm50IGFuZ2VnZWJlbiB3ZXJkZW4uIERlciBQYXJhbWV0ZXItTmFtZSBzb2xsdGUgbmljaHQgJnV1bWw7YmVyZWluc3RpbW1lbiBtaXQgZGVtIE5hbWVuIGVpbmVyIGV4aXN0aWVyZW5kZW4gS2F0ZWdvcmllLic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWZpZWxkJ10gPSAnRGllc2VyIFBhcmFtZXRlciBpc3QgbnVyIGluIGRlciBLYXRlZ29yaWUtQXVzZ2FiZSBzaW5udm9sbC4gTWl0IGlobSBrJm91bWw7bm5lbiBLYXRlZ29yaWVuIGFuaGFuZCBlaW5lcyBLYXRlZ29yaWVmZWxkZXMgZ2VmaWx0ZXJ0IHdlcmRlbi4gIERpZSBGaWx0ZXJ1bmcgZnVua3Rpb25pZXJ0IG5pY2h0IHdlbm4gZ2xlaWNoemVpdGlnIGVpbiAmcXVvdDtjYXRlZ29yeSZxdW90OyBvZGVyICZxdW90O2NhdGVnb3J5X2lkJnF1b3Q7IFBhcmFtZXRlciBhbmdlZ2ViZW4gd2lyZC4gIEdlYmVuIFNpZSBlaW5lIGtvbW1hZ2V0cmVubnRlIExpc3RlIHZvbiBLYXRlZ29yaWVmZWxkbmFtZW4gdW5kIC13ZXJ0ZW4gYW4uICBCc3AuOiAgY2F0ZWdvcnlsaXN0PSZxdW90O0ZlbGRuYW1lOldlcnQsV2VpdGVyZXIgRmVsZG5hbWU6V2VydCZxdW90Oyc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJ0RpZXNlciBQYXJhbWV0ZXIgaXN0IG51ciBpbiBkZXIgS2F0ZWdvcmllLUF1c2dhYmUgc2lubnZvbGwuIEVyIHdpcmQgYmVudXR6dCwgdW0gZGFzIFRlbXBsYXRlIGFuenVnZWJlbiwgd2VsY2hlcyB2ZXJ3ZW5kZXQgd2VyZGVuIHNvbGwuIFdlbm4ga2VpbiBXZXJ0IGFuZ2VnZWJlbiBpc3QsIHdpcmQgZGFzIERlZmF1bHQtVGVtcGxhdGUgdmVyd2VuZGV0Lic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3RkdGx0ZW1wbGF0ZSddID0gJ0RpZXNlciBQYXJhbWV0ZXIgaXN0IG51ciBpbiBkZXIgS2F0ZWdvcmllLUF1c2dhYmUgc2lubnZvbGwuICBFciBnaWJ0IGRhcyBLYXRlZ29yaWVsaXN0ZW4tVGVtcGxhdGUgYW4sIGRhcyBmJnV1bWw7ciBkaWUgQW56ZWlnZSB2b24gS2F0ZWdvcmllZGV0YWlscyB2ZXJ3ZW5kZXQgd2VyZGVuIHNvbGwuICBXZW5uIGtlaW4gV2VydCBhbmdlZ2ViZW4gaXN0LCB3aXJkIGRhcyBTdGFuZGFyZC1UZW1wbGF0ZSB2ZXJ3ZW5kZXQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdEaWVzIGxlZ3QgZGllIFNlaXRlbi1JRCAocGFnZWlkKSBvZGVyIGRlbiBBbGlhcyAoYWxpYXMpIGZlc3QsIHdlbGNoZShyKSBiZW51dHp0IHdlcmRlbiBzb2xsLCB1bSBkaWUgRGV0YWlsYW5zaWNodCBhdXN6dWdlYmVuLic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ0RpZXNlciBQYXJhbWV0ZXIgd2lyZCB2ZXJ3ZW5kZXQsIHVtIGRhcyBUZW1wbGF0ZSBmZXN0enVsZWdlbiwgd2VsY2hlcyBmJnV1bWw7ciBkaWUgQXJ0aWtlbC1EZXRhaWxhbnNpY2h0IHZlcndlbmRldCB3ZXJkZW4gc29sbC4gT2huZSBWb3JnYWJlIHdpcmQgZGFzIFN0YW5kYXJkLVRlbXBsYXRlIHZlcndlbmRldC4nOwokbGFuZ1sncGFyYW1fZXhjbHVkZWNhdCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCAoc3VtbWFyeSkgdmlldywgdGhpcyBwYXJhbWV0ZXIgd2lsbCBhbGxvdyBleGNsdWRpbmcgcHJvZHVjdHMgdGhhdCBhcmUgaW4gYSBzcGVjaWZpYyBjYXRlZ29yeSBmcm9tIHRoZSByZXN1bHQuIEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgY2F0ZWdvcnkgbmFtZXMgaXMgYWxsb3dlZC4gVGhpcyBwYXJhbWV0ZXIgY2FuIHdvcmsgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgY2F0ZWdvcnkgcGFyYW1ldGVyIHRvIHByb3ZpZGUgYSBsaXN0IG9mIHRoZSBwcm9kdWN0cyB0aGF0IGFyZSBpbiB0aGlzIGNhdGVnb3J5LCBidXQgbm90IGluIHRoYXQgY2F0ZWdvcnknOwokbGFuZ1sncGFyYW1fZmllbGQnXSA9ICdVc2VkIG9ubHkgaW4gdGhlIDxlbT5maWVsZGxpc3Q8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIHRvIHNwZWNpZnkgdGhlIG5hbWUgb2YgYSB1c2VyIGRlZmluZWQgcHJvcGVydHkgdG8gY3JlYXRlIGEgbGlzdCBmcm9tLic7CiRsYW5nWydwYXJhbV9maWVsZHZhbCddID0gJ1VzZWQgb25seSBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgZmllbGQgdmFsdWUgdG8gbGltaXQgcmVzdWx0cyBieS4gIFNwZWNpYWwgdmFsdWVzIGZvciB0aGlzIGZpZWxkIGFyZSAmcXVvdDs6Om51bGw6OiZxdW90OyAmcXVvdDs6Om5vdG51bGw6OiZxdW90Oyc7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHknXSA9ICdEaWVzZXIgUGFyYW1ldGVyIGlzdCBudXIgaW4gZGVyIDxlbT5kZWZhdWx0PC9lbT4tQW5zaWNodCBzaW5udm9sbC4gRXIgd2lyZCB2ZXJ3ZW5kZXQsIHVtIG51ciBBcnRpa2VsIGFuenV6ZWlnZW4sIGRpZSBlaW5lciBiZXN0aW1tdGVuIEhpZXJhcmNoaWUgYW5nZWgmb3VtbDtyZW4uIERhYmVpIGsmb3VtbDtubmVuIFdpbGRjYXJkcyB2ZXJ3ZW5kZXQgd2VyZGVuLCB1bSAmdXVtbDtiZXJnZW9yZG5ldGUvdW50ZXJnZW9yZG5ldGUgQmV6aWVodW5nZW4gZWJlbmZhbGxzIGFuenV6ZWlnZW4uIFouQi4gZ2lidCB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5O0xLV3MqJiMwMzk7fSBlaW5lIFp1c2FtbWVuZmFzc3VuZyBhbGxlciBMS1dzIGF1cywgZWluc2NobGllJnN6bGlnO2xpY2ggYWxsZXIgdW50ZXJnZW9yZG5ldGVuIEVsZW1lbnRlIGRlciBIaWVyYXJjaGllLiBHZW5hdXNvIGdpYnQge1Byb2R1Y3RzIGhpZXJhcmNoeT0mIzAzOTsqTEtXcyYjMDM5O30gZWluZSBadXNhbW1lbmZhc3N1bmcgYWxsZXIgTEtXcyBhdXMsIGVpbnNjaGxpZSZzemxpZztsaWNoIGRlciAmdXVtbDtiZXJnZW9yZG5ldGVuIEVsZW1lbnRlIGluIGRlciBIaWVyYXJjaGllLic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZSddID0gJ0RpZXNlciBQYXJhbWV0ZXIgd2lyZCB2ZXJ3ZW5kZXQsIHVtIGRhcyBUZW1wbGF0ZSBmZXN0enVsZWdlbiwgd2VsY2hlcyBmJnV1bWw7ciBkaWUgSGllcmFyY2hpZWFuc2ljaHQgdmVyd2VuZGV0IHdlcmRlbiBzb2xsLiBPaG5lIFZvcmdhYmUgd2lyZCBkYXMgU3RhbmRhcmQtVGVtcGxhdGUgdmVyd2VuZGV0Lic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhhdCB0aGUgb3V0cHV0IG9mIHRoZSBzdW1tYXJ5IHZpZXcgc2hvdWxkIGJlIGRpc3BsYXllZCBpbmxpbmUnOwokbGFuZ1sncGFyYW1fcGFnZWxpbWl0J10gPSAnRGllc2VyIFBhcmFtZXRlciBpc3QgbnVyIGluIGRlciA8ZW0+ZGVmYXVsdDwvZW0+LUF1c2dhYmUgc2lubnZvbGwuIEVyIGxlZ3QgZmVzdCwgd2llIHZpZWxlIEVsZW1lbnRlIHBybyBTZWl0ZSBhbmdlemVpZ3Qgd2VyZGVuIHNvbGxlbi4nOwokbGFuZ1sncGFyYW1fcGFyZW50J10gPSAnRGllc2VyIFBhcmFtZXRlciBpc3QgbnVyIGluIGRlciA8ZW0+aGllcmFyY2h5PC9lbT4tQXVzZ2FiZSBzaW5udm9sbC4gRXIgbGVndCBkaWUgSGllcmFyY2hpZS1JRCBmZXN0LCBhYiB3ZWxjaGVyIGRpZSBBcnRpa2VsIGF1c2dlZ2ViZW4gd2VyZGVuIHNvbGxlbi4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGlkJ10gPSAnRGllc2VyIFBhcmFtZXRlciBpc3QgbnVyIGluIGRlciA8ZW0+ZGV0YWlsPC9lbT4gQXJ0aWtlbGFuc2ljaHQgc2lubnZvbGwuIEVyIGxlZ3QgZmVzdCwgd2VsY2hlciBBcnRpa2VsIGFuZ2V6ZWlndCB3ZXJkZW4gc29sbC4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGxpc3QnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgKHN1bW1hcnkpIHZpZXcsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgaW50ZWdlciBwcm9kdWN0IGlkcyB0byBkaXNwbGF5LiAgTm8gcGFnaW5hdGlvbiBvciBzb3J0aW5nIGlzIHBlcmZvcm1lZCBvbiB0aGVzZSB2YWx1ZXMsIGFuZCBpZiBzcGVjaWZpZWQgdGhlIG90aGVyIGZpbHRlcmluZyBwYXJhbWV0ZXJzIHRvIHRoZSBzdW1tYXJ5IHZpZXcgYXJlIGlnbm9yZWQuJzsKJGxhbmdbJ3BhcmFtX3Jlc3VsdHBhZ2UnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCwgYW5kIGNhdGVnb3J5IGxpc3QgYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGEgcGFnZSBpZCBvciBhbGlhcyB0byB1c2UgdG8gZGlzcGxheSB0aGUgc3VtbWFyeSByZXN1bHRzJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZpZWxkJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBtYXkgY29udGFpbiBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGZpZWxkIG5hbWVzIHRvIGluY2x1ZGUgaW4gdGhlIHNlYXJjaCc7CiRsYW5nWydwYXJhbV9zZWFyY2hmb3JtdGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXNwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCBzZWFyY2ggZm9ybSB0ZW1wbGF0ZSc7CiRsYW5nWydwYXJhbV9zaG93YWxsJ10gPSAnRGllc2VyIFBhcmFtZXRlciBpc3QgbnVyIGluIGRlciA8ZW0+Y2F0ZWdvcnlsaXN0PC9lbT4gS2F0ZWdvcmllbGlzdGVuYW5zaWNodCBzaW5udm9sbC4gSXN0IGRpZXNlciBXZXJ0IGdyJm91bWw7JnN6bGlnO2VyIGFscyAwLCB3ZXJkZW4gYWxsZSBLYXRlZ2llbiBhbmdlemVpZ3QgKGF1JnN6bGlnO2VyIGRlbmVuLCBkaWUgbm9jaCBrZWluZSBBcnRpa2VsIGVudGhhbHRlbikuJzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ0xlZ3QgZGllIFJlaWhlbmZvbGdlIGRlciBGZWxkLVNvcnRpZXJ1bmcgaW4gZGVyIExpc3RlbmFuc2ljaHQgZmVzdC4gTSZvdW1sO2dsaWNoZSBXZXJ0ZSBzaW5kOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXVmc3RlaWdlbmRlIFJlaWhlbmZvbGdlPC9saT4NCiAgPGxpPmRlc2MgLS0gQWJzdGVpZ2VuZGUgUmVpaGVuZm9sZ2U8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnRGllc2VyIFBhcmFtZXRlciBpc3QgbnVyIGluIGRlciBMaXN0ZW5hbnNpY2h0IHNpbm52b2xsLiBFciBsZWd0IGRpZSBTb3J0aWVydW5nIGRlciBBcnRpa2VsIGZlc3QuIE0mb3VtbDtnbGljaGUgV2VydGUgc2luZDoNCjx1bD4NCiAgPGxpPjxzdHJvbmc+cHJvZHVjdF9uYW1lPC9zdHJvbmc+IC0tIGRlciBBcnRpa2VsbmFtZTwvbGk+DQogIDxsaT5pZCAtLSBkaWUgQXJ0aWtlbC1JRDwvbGk+DQogIDxsaT53ZWlnaHQgLS0gZGFzIEdld2ljaHQgZGVzIEFydGlrZWxzPC9saT4NCiAgPGxpPnByaWNlIC0tIGRlciBQcmVpcyBkZXMgQXJ0aWtlbHM8L2xpPg0KICA8bGk+c3RhdHVzIC0tIFN0YXR1cyAoRW50d3VyZiBvZGVyIFZlciZvdW1sO2ZmZW50bGljaHQpPC9saT4NCiAgPGxpPnJhbmRvbSAtLSB2ZXJ3ZW5kZXQgYmVpIGplZGVyIEFuZnJhZ2UgZWluZSB6dWYmYXVtbDtsbGlnZSBSZWloZW5mb2xnZTwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIGRhcyBFcnN0ZWxsdW5nc2RhdHVtIGRlcyBBcnRpa2Vscy9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIGRhcyAmQXVtbDtuZGVydW5nc2RhdHVtIGRlcyBBcnRpa2VsczwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0dHlwZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCBzdW1tYXJ5IHZpZXcsIHRoaXMgcGFyYW1ldGVyIGlzIHVzZWQgdG8gY29udmVydCB0aGUgdmFsdWVzIHRvIGFub3RoZXIgdHlwZSBmb3Igc29ydGluZy4gIHZhbGlkIHZhbHVlcyBhcmUgU1RSSU5HLFNJR05FRCBhbmQgVU5TSUdORUQuICBJZiBub3Qgc3VwcGxpZWQgdGhlIGRlZmF1bHQgU1RSSU5HIHR5cGUgaXMgYXNzdW1lZC4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXBhZ2UnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGFjdGlvbj1oaWVyYXJjaHksIGFsbG93cyBzcGVjaWZ5aW5nIGEgcGFnZSBpZCBvciBhbGlhcyB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgYW55IGxpbmtzIHRvIHN1bW1hcnkgdmlldyc7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdEaWVzZXIgUGFyYW1ldGVyIHdpcmQgdmVyd2VuZGV0LCB1bSBkYXMgVGVtcGxhdGUgZmVzdHp1bGVnZW4sIHdlbGNoZXMgZiZ1dW1sO3IgZGllIFp1c2FtbWVuZmFzc3VuZ3NhbnNpY2h0IHZlcndlbmRldCB3ZXJkZW4gc29sbC4gT2huZSBWb3JnYWJlIHdpcmQgZGFzIFN0YW5kYXJkLVRlbXBsYXRlIHZlcndlbmRldC4nOwokbGFuZ1sncGFyZW50J10gPSAnJlV1bWw7YmVyZ2VvcmRuZXRlcyBFbGVtZW50JzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnRGFzIFByb2R1Y3RzLU1vZHVsIHd1cmRlICBpbnN0YWxsaWVydC4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0RhcyBQcm9kdWN0cy1Nb2R1bCB3dXJkZSBlaW5zY2hsaWUmc3psaWc7bGljaCBhbGxlciB6dWdlaCZvdW1sO3JpZ2VuIERhdGVuIGVudGZlcm50Lic7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ0VpbnN0ZWxsdW5nZW4nOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnV2VubiBTaWUgZGllc2VzIE1vZHVsIGVudGZlcm5lbiwgd2VyZGVuIGF1Y2ggYWxsZSB6dWdlaCZvdW1sO3JpZ2VuIERhdGVuIGdlbCZvdW1sO3NjaHQuIFdvbGxlbiBTaWUgZGFzIHdpcmtsaWNoPyc7CiRsYW5nWydwcmljZSddID0gJ1ByZWlzJzsKJGxhbmdbJ3ByaWNlX2FkanVzdG1lbnQnXSA9ICdQcmVpcy1FaW5zdGVsbHVuZyc7CiRsYW5nWydwcmV2cGFnZSddID0gJzwnOwokbGFuZ1sncHJvZHVjdCddID0gJ0FydGlrZWwnOwokbGFuZ1sncHJvZHVjdG5hbWUnXSA9ICdBcnRpa2VsLU5hbWUnOwokbGFuZ1sncHJvZHVjdHMnXSA9ICdBcnRpa2VsJzsKJGxhbmdbJ3Byb2R1Y3RfZGV0YWlsX3NldHRpbmdzJ10gPSAnQXJ0aWtlbGRldGFpbC1FaW5zdGVsbHVuZ2VuJzsKJGxhbmdbJ3Byb2R1Y3RfZWRpdGluZ19zZXR0aW5ncyddID0gJ1Byb2R1a3QgQmVhcmJlaXR1bmdzb3B0aW9uZW4gJzsKJGxhbmdbJ3Byb2R1Y3Rfc3VtbWFyeV9zZXR0aW5ncyddID0gJ1Byb2R1a3QmdXVtbDtiZXJzaWNodCBFaW5zdGVsbHVuZ2VuJzsKJGxhbmdbJ3Byb2R1Y3RfaGllcmFyY2h5J10gPSAnQXJ0aWtlbC1IaWVyYXJjaGllJzsKJGxhbmdbJ3Byb2R1Y3RfbWFuYWdlciddID0gJ0FydGlrZWx2ZXJ3YWx0dW5nJzsKJGxhbmdbJ3Byb2dyZXNzJ10gPSAnRm9ydHNjaHJpdHQnOwokbGFuZ1sncHJvbXB0J10gPSAnRWluZ2FiZSc7CiRsYW5nWydwcm9tcHRfYWRkX2F0dHJpYnNldCddID0gJ0F0dHJpYnV0ZWluc3RlbGx1bmdlbiBoaW56dWYmdXVtbDtnZW4vYmVhcmJlaXRlbic7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnXSA9ICdEYXMgSG9jaGxhZGVuIHZvbiBEYXRlaWVuIG1pdCBkaWVzZW4gRW5kdW5nZW4gKGYmdXVtbDtyIEZlbGRlciBkZXMgVHlwcyAmIzAzOTtmaWxlJiMwMzk7KSBlcmxhdWJlbic7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZXR5cGVzJ10gPSAnRGFzIEhvY2hsYWRlbiB2b24gQmlsZGVybiBtaXQgZGllc2VuIEVuZHVuZ2VuIChmJnV1bWw7ciBGZWxkZXIgZGVzIFR5cHMgJiMwMzk7aW1hZ2UmIzAzOTspIGVybGF1YmVuJzsKJGxhbmdbJ3Byb21wdF9hdHRyaWJ0ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGYmdXVtbDtyIGRpZSBBbnplaWdlIHZvbiBQcm9kdWt0IEF0dHJpYnV0d2VydGUgaW4gRHJvcGRvd24nOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWwnXSA9ICdWb3JzY2hhdWJpbGRlciBhdXRvbWF0aXNjaCBlcnpldWdlbic7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbF9zaXplJ10gPSAnTWF4aW1hbGUgR3Imb3VtbDsmc3psaWc7ZSBkZXIgVm9yc2NoYXViaWxkZXIuJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZyddID0gJ0F1dG9tYXRpc2NoIFZvcnNjaGF1YmlsZGVyIGRlciBCaWxkZXIgZXJzdGVsbGVuJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZ19zaXplJ10gPSAnTWF4aW1hbGUgR3Imb3VtbDsmc3psaWc7ZSAoZ3Imb3VtbDsmc3psaWc7dGUgQXVzZGVobnVuZykgZGVzIFZvcnNjaGF1YmlsZGVzLic7CiRsYW5nWydwcm9tcHRfYXV0b3dhdGVybWFyayddID0gJ0F1dG9tYXRpc2NoIFdhc3NlcnplaWNoZW4gYXVmIGRlbiBCaWxkZXJuIGVyemV1Z2VuJzsKJGxhbmdbJ3Byb21wdF9hcHBsaWNhYmxlJ10gPSAnQWt0aXZpZXJ1bmcgcGVyIFZvcmVpbnN0ZWxsdW5nIGYmdXVtbDtyIGFsbGUgbmV1ZW4gQXJ0aWtlbCc7CiRsYW5nWydwcm9tcHRfYmF0Y2hzaXplJ10gPSAnQmxvY2tnciZvdW1sOyZzemxpZztlJzsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZSddID0gJ0NhcnQtTW9kdWwnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ0NhcnQtTW9kdWwgUGFyYW1ldGVyJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVjYXRlZ29yaWVzJ10gPSAnS2F0ZWdvcmllbiBlcnN0ZWxsZW4nOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWZpZWxkcyddID0gJ0FydGlrZWxmZWxkZXIgZXJzdGVsbGVuPyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlaGllcmFyY2h5J10gPSAnRWluZSBBcnRpa2VsLUhpZXJhcmNoaWUgZXJzdGVsbGVuJzsKJGxhbmdbJ3Byb21wdF9jc3ZmaWxlJ10gPSAnRWluZSBDU1YtRGF0ZWkgaG9jaGxhZGVuJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeWNvZGUnXSA9ICdXJmF1bWw7aHJ1bmdzLVplaWNoZW4nOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAnVyZhdW1sO2hydW5nc3N5bWJvbCc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF9zdGF0dXMnXSA9ICdWb3JlaW5nZXN0ZWxsdCBoYWJlbiBhbGxlIG5ldWVuIEFydGlrZWwgZGllc2VuIFN0YXR1cyc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF90YXhhYmxlJ10gPSAnVm9yZWluZ2VzdGVsbHQgZW50aGFsdGVuIGFsbGUgbmV1ZW4gQXJ0aWtlbCBlaW5lbiBTdGV1ZXJhbnRlaWwnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gJ0FsbGUgenVtIEFydGlrZWwgZ2VoJm91bWw7cmVuZGVuIERhdGVpZW4gbCZvdW1sO3NjaGVuLCB3ZW5uIGRlciBBcnRpa2VsIGdlbCZvdW1sO3NjaHQgd2lyZD8nOwokbGFuZ1sncHJvbXB0X2RlbGltaXRlciddID0gJ0ZlbGR0cmVubmVyJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnVm9yZWluZ2VzdGVsbHRlIERldGFpbC1TZWl0ZSc7CiRsYW5nWydwcm9tcHRfZGV0YWlsc2ZvciddID0gJ0RldGFpbHMgZiZ1dW1sO3IgJXMnOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnV2llIHNvbGxlbiBkb3BwZWx0ZSBQcm9kdWt0ZSBnZWhhbmRoYWJ0IHdlcmRlbj8nOwokbGFuZ1sncHJvbXB0X2ZhbHNlJ10gPSAnTmVpbic7CiRsYW5nWydwcm9tcHRfaGFuZGxlaW1hZ2VzJ10gPSAnQmlsZGVyIHZlcmFyYmVpdGVuPyc7CiRsYW5nWydwcm9tcHRfaW1hZ2VwYXRoJ10gPSAnQmlsZGVycGZhZCc7CiRsYW5nWydwcm9tcHRfbGVuZ3RodW5pdHMnXSA9ICdMJmF1bWw7bmdlbmVpbmhlaXRlbic7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfYmVoYXZpb3InXSA9ICdXZWxjaGUgQWt0aW9uIHNvbGwgYXVzZ2VmJnV1bWw7aHJ0IHdlcmRlbiwgd2VubiBlaW4gQXJ0aWtlbCBuaWNodCBhbmdlemVpZ3Qgd2VyZGVuIGtvbm50ZT8nOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzQwNCddID0gJ0VpbmVuIDQwNGVyIEZlaGxlciBlcnpldWdlbic7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfMzAxJ10gPSAnRWluZSAzMDFlciBXZWl0ZXJsZWl0dW5nIGVyemV1Z2VuJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9lcnJvcm1zZyddID0gJ0VpbmUgRmVobGVybWVsZHVuZyBhbnplaWdlbic7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfbXNnJ10gPSAnRmVobGVybWVsZHVuZywgd2VubiBlaW4gQXJ0aWtlbCBuaWNodCBnZWZ1bmRlbiB3ZXJkZW4ga29ubnRlJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9wYWdlJ10gPSAnU2VpdGUgZiZ1dW1sO3IgZGF1ZXJoYWZ0ZSBVbWxlaXR1bmc/JzsKJGxhbmdbJ3Byb21wdF9oaWVycGFnZSddID0gJ1ZvcmVpbmdlc3RlbGx0ZSBTZWl0ZSBmJnV1bWw7ciBIaWVyYXJjaGllLUxpc3RlbmFuc2ljaHQnOwokbGFuZ1sncHJvbXB0X3ByZXR0eWhpZXJ1cmxzJ10gPSAnU3VjaG1hc2NoaW5lbmZyZXVuZGxpY2hlIFVSTHMgKFByZXR0eSBVUkxTKSBmJnV1bWw7ciBIaWVyYXJjaGllYW5zaWNodGVuIHZlcndlbmRlbic7CiRsYW5nWydwcm9tcHRfcHJvZF9kZXRhaWxwYWdlJ10gPSAnU3RhbmRhcmRzZWl0ZSBmJnV1bWw7ciBQcm9kdWt0IERldGFpbGFuc2ljaHQnOwokbGFuZ1sncHJvbXB0X3Byb2R1Y3RzX21hdGNoaW5nJ10gPSAnUHJvZHVrdGUgcGFzc2VuZCAlcyc7CiRsYW5nWydwcm9tcHRfc2t1X3JlcXVpcmVkJ10gPSAnQXJ0Li1OciBpc3QgZWluIFBmbGljaHRmZWxkIChtdXNzIGJlaSBhbGxlbiBBcnRpa2VsbiBhbmdlZ2ViZW4gd2VyZGVuKSc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXBhZ2VsaW1pdCddID0gJ1ZvcmVpbmdlc3RlbGx0ZXMgUHJvZHVrdGxpbWl0IGluIGRlciBMaXN0ZW5hbnNpY2h0JzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnVm9yZWluZ2VzdGVsbHRlIFNvcnRpZXItUmVpaGVuZm9sZ2UgaW4gZGVyIExpc3RlbmFuc2ljaHQnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnVm9yZWluZ2VzdGVsbHRlcyBTb3J0aWVyLUZlbGQgaW4gZGVyIExpc3RlbmFuc2ljaHQnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUtUXVlbGxlJzsKJGxhbmdbJ3Byb21wdF90cnVlJ10gPSAnSmEnOwokbGFuZ1sncHJvbXB0X3VybHByZWZpeCddID0gJ0RpZXNlIFplaWNoZW5rZXR0ZSBpbiBhbGxlIFVSTHMgZWluZiZ1dW1sO2dlbiwgZGllIHNpY2ggYXVmIGRpZXNlcyBNb2R1bCBiZXppZWhlbic7CiRsYW5nWydwcm9tcHRfdXNlX2RldGFpbHBhZ2VfZm9yX3NlYXJjaCddID0gJ0RpZXNlIFNlaXRlIGF1Y2ggZiZ1dW1sO3IgU3VjaGVyZ2Vibmlzc2UgdmVyd2VuZGVuIDxlbT4oRXJzZXR6dCBkZW4gPGNvZGU+cmVzdWx0cGFnZTwvY29kZT4gUGFyYW1ldGVyIGRlcyBTdWNoZSBNb2R1bHMpPC9lbT4nOwokbGFuZ1sncHJvbXB0X3VzZWhpZXJwYXRodXJscyddID0gJ0RpZSBIaWVyYXJjaGllbmFtZW4gaW4gZGllIFVSTCB2b24gQXJ0aWtlbGRldGFpbHMgZWluZiZ1dW1sO2dlbic7CiRsYW5nWydwcm9tcHRfd2VpZ2h0dW5pdHMnXSA9ICdHZXdpY2h0cy1FaW5oZWl0JzsKJGxhbmdbJ3B1YmxpYyddID0gJ0lzdCBkaWVzIGVpbiAmb3VtbDtmZmVudGxpY2hlcyBGZWxkPyc7CiRsYW5nWydwdWJsaXNoZWQnXSA9ICdWZXImb3VtbDtmZmVudGxpY2h0JzsKJGxhbmdbJ3JhbmRvbSddID0gJ1p1ZiZhdW1sO2xsaWcnOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdBdWYgZGllIHByb2dyYW1tc2VpdGlnZW4gVm9yZWluc3RlbGx1bmdlbiB6dXImdXVtbDtja3NldHplbic7CiRsYW5nWydyZXR1cm4nXSA9ICdadXImdXVtbDtjayc7CiRsYW5nWydyZXR1cm5fdG9fdG9wJ10gPSAnWnVyJnV1bWw7Y2sgbmFjaCBvYmVuJzsKJGxhbmdbJ3Jvb3QnXSA9ICdXdXJ6ZWx2ZXJ6ZWljaG5pcyc7CiRsYW5nWydzZWFyY2hfZGVzY3JpcHRpb24nXSA9ICdTdWNoZSBuYWNoIEVpZ2Vuc2NoYWZ0IEJlc2NocmVpYnVuZyc7CiRsYW5nWydzZWFyY2hfZXhwciddID0gJ1NvbGx0ZSBkaWUgQWJmcmFnZSBmJnV1bWw7ciBhbGxlIG9kZXIgZWluZW4gZGVyIFRlc3RzIHVudGVuIGVudHNwcmVjaGVuPyc7CiRsYW5nWydzZWFyY2hfbmFtZSddID0gJ1N1Y2hlIG5hY2ggRWlnZW5zY2hhZnQgTmFtZSc7CiRsYW5nWydzZWFyY2hfcHJpY2UnXSA9ICdQcmVpc3NwYW5uZSc7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnSGluenVmJnV1bWw7Z2VuL0JlYXJiZWl0ZW4gU3VjaGZvcm11bGFyIFRlbXBsYXRlJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlcyddID0gJ1N1Y2hmb3JtdWxhciBUZW1wbGF0ZXMnOwokbGFuZ1snc2VsZWN0X2FsbCddID0gJ0FsbGUgYXVzdyZhdW1sO2hsZW4nOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ0JpdHRlIGF1c3cmYXVtbDtobGVuJzsKJGxhbmdbJ3NldGRyYWZ0J10gPSAnU3RhdHVzIGF1ZiAmcXVvdDtFbnR1cmYmcXVvdDsgc2V0emVuJzsKJGxhbmdbJ3NldHB1Ymxpc2hlZCddID0gJ1N0YXR1cyBhdWYgJnF1b3Q7VmVyJm91bWw7ZmZlbnRsaWNodCZxdW90OyBzZXR6ZW4nOwokbGFuZ1snc2t1J10gPSAnQXJ0Li1Oci4nOwokbGFuZ1snc29ydF9ieSddID0gJ1NvcnRpZXJ0IG5hY2gnOwokbGFuZ1snc29ydF9vcmRlciddID0gJ1NvcnRpZXItUmVpaGVuZm9sZ2UnOwokbGFuZ1snc291cmNlJ10gPSAnUXVlbGxlJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyAnOwokbGFuZ1snc3VibWl0J10gPSAnQWJzZW5kZW4nOwokbGFuZ1snc3Vic2NyaXB0aW9uJ10gPSAnQWJvbm5lbWVudCc7CiRsYW5nWydzdWJzY3JfZXhwaXJ5J10gPSAnVmVyZmFsbCc7CiRsYW5nWydzdWJzY3JfZXhwaXJ5MiddID0gJ1ZlcmYmYXVtbDtsbHQnOwokbGFuZ1snc3Vic2NyX21vbnRobHknXSA9ICdNb25hdGxpY2gnOwokbGFuZ1snc3Vic2NyX2RlbHBlcmlvZCddID0gJ0xpZWZlci1IJmF1bWw7dWZpZ2tlaXQnOwokbGFuZ1snc3Vic2NyX2RlbHBlcmlvZDInXSA9ICdHZWxpZWZlcnQnOwokbGFuZ1snc3Vic2NyX3BheXBlcmlvZCddID0gJ1phaGx1bmdzLUgmYXVtbDt1Zmlna2VpdCc7CiRsYW5nWydzdWJzY3JfcGF5cGVyaW9kMiddID0gJ0JlemFobHQnOwokbGFuZ1snc3Vic2NyX3F1YXJ0ZXJseSddID0gJ1ZpZXJ0ZWxqJmF1bWw7aHJsaWNoJzsKJGxhbmdbJ3N1YnNjcl9zZW1pYW51YWxseSddID0gJ0hhbGJqJmF1bWw7aHJsaWNoJzsKJGxhbmdbJ3N1YnNjcl95ZWFybHknXSA9ICdKJmF1bWw7aHJsaWNoJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdadXNhbW1lbmZhc3N1bmdzLVRlbXBsYXRlcyc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0VpbiBadXNhbW1lbmZhc3N1bmdzLVRlbXBsYXRlIGhpbnp1ZiZ1dW1sO2dlbi8mYXVtbDtuZGVybic7CiRsYW5nWyd0YXhhYmxlJ10gPSAnTXdTdC4nOwokbGFuZ1sndGVzdCddID0gJ1Rlc3QgJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnTWVocnplaWxpZ2VzIFRleHRmZWxkJzsKJGxhbmdbJ3RleHRib3gnXSA9ICdFaW56ZWlsaWdlcyBUZXh0ZmVsZCc7CiRsYW5nWyd0aXRsZV9ieWhpZXJhcmNoeV9kZmx0dGVtcGxhdGUnXSA9ICdWb3JlaW5zdGVsbHVuZyBOZXVlcyBIaWVyYXJjaGllIEF1c2dhYmUgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1ZvcmVpbnN0ZWxsdW5nIE5ldWVzIEthdGVnb3JpZS1BdXNnYWJlIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdWb3JlaW5zdGVsbHVuZyBOZXVlcyBBcnRpa2VsLURldGFpbGFuc2ljaHQgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfc2VhcmNoX2RmbHR0ZW1wbGF0ZSddID0gJ1ZvcmVpbnN0ZWxsdW5nIE5ldWVzIFN1Y2hmb3JtdWxhciBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1ZvcmVpbnN0ZWxsdW5nIE5ldWVzIEFydGlrZWwtTGlzdGVuYW5zaWNodCBUZW1wbGF0ZSc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwJzsKJGxhbmdbJ3VwJ10gPSAnTmFjaCBvYmVuJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0FrdHVhbGlzaWVyZW4nOwokbGFuZ1sndXBsb2FkJ10gPSAnSG9jaHp1bGFkZW5kZSBEYXRlaSBhdXN3JmF1bWw7aGxlbic7CiRsYW5nWyd1cmxfYWxpYXMnXSA9ICdVUkwtQWxpYXMnOwokbGFuZ1sndmFsaWQnXSA9ICdHJnV1bWw7bHRpZyc7CiRsYW5nWyd2YWx1ZSddID0gJ1dlcnQnOwokbGFuZ1sndmFsdWVzJ10gPSAnV2VydGUnOwokbGFuZ1sndmlldyddID0gJ0FuemVpZ2VuJzsKJGxhbmdbJ3ZpZXdhYmxlX2ZpZWxkcyddID0gJ1cmYXVtbDtobGVuIFNpZSBiZW51dHplcmRlZmluaWVydGUgRmVsZGVyIGluIGRlciBUYWJlbGxlbmFuc2ljaHQnOwokbGFuZ1snd2F0ZXJtYXJrX2xvY2F0aW9uJ10gPSAnUGxhdHppZXJ1bmcgZGVzIFdhc3NlcnplaWNoZW5zJzsKJGxhbmdbJ3dlaWdodCddID0gJ0dld2ljaHQnOwokbGFuZ1snd2l0aF9zZWxlY3RlZCddID0gJ0F1c2dldyZhdW1sO2hsdGUgRWludHImYXVtbDtnZSc7CiRsYW5nWyd5ZXMnXSA9ICdKYSc7CiRsYW5nWydxY2EnXSA9ICdQMC0xMzYyNzc5NzYwLTEzMDkyNjU2ODI2MzYnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xNjgxMjk1MjE3LjEzMTE5NjE4MjEuMTMxMjMxNzY5OC4xMzEyMzc3NzgzLjE2JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTMxMTk2MTgyMS4xLjEudXRtY2NuPShkaXJlY3QpfHV0bWNzcj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/et_EE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZCddID0gJ0xpc2EnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdMaXNhIGthdGVnb29yaWEnOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdMaXNhIHYmYXVtbDtsaSc7CiRsYW5nWydhZGp1c3RhYmxlJ10gPSAnTXV1ZGV0YXYnOwokbGFuZ1snYWRkcHJvZHVjdCddID0gJ0xpc2EgdG9vZGUnOwokbGFuZ1snYWRkX2F0dHJpYl9zZXQnXSA9ICdMaXNhIGF0dHJpYnV1dCc7CiRsYW5nWydhZGRfY2F0ZWdvcnlfZmllbGQnXSA9ICdTZW8gdiZhdW1sO2xpIGthdGVnb29yaWFnYTogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnTGlzYSBoaWVyYXJoaWEgZWxlbWVudCc7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAnTGlzYSBhdHRyaWJ1dWRpIHZhbGlrJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdLYXMgYWludWx0IGFkbWlubmlkIHNhYXZhZCBuJmF1bWw7aGEgc2VkYSBhdHRyaWJ1dXRpPyc7CiRsYW5nWydhbGlnbl91bCddID0gJyZVdW1sO2xlcyB2YXNha3VsZSc7CiRsYW5nWydhbGlnbl91YyddID0gJyZVdW1sO2xlcyBrZXNrZWxlJzsKJGxhbmdbJ2FsaWduX3VyJ10gPSAnJlV1bWw7bGVzIHBhcmVtYWxlJzsKJGxhbmdbJ2FsaWduX21sJ10gPSAnVmFzYWt1bGUga2Vza2VsZSc7CiRsYW5nWydhbGlnbl9tYyddID0gJ0tlc2tlbGUnOwokbGFuZ1snYWxpZ25fbXInXSA9ICdQYXJlbWFsZSBrZXNrZWxlJzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnQWxsYSB2YXNha3VsZSc7CiRsYW5nWydhbGlnbl9sYyddID0gJ0FsbGEga2Vza2VsZSc7CiRsYW5nWydhbGlnbl9sciddID0gJ0FsbGEgcGFyZW1hbGUnOwokbGFuZ1snYWxsY2F0ZWdvcmllcyddID0gJ0smb3RpbGRlO2lrIGthdGVnb29yaWFkJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdPbGVkIHNhIGtpbmRlbD8nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVwcm9kdWN0J10gPSAnT2xlZCBzYSBraW5kZWwsIGV0IHNvb3ZpZCBrdXN0dXRhZGEgc2VsbGUgdG9vdGUgamEgayZvdGlsZGU7aWsgc2VsbGVnYSBzZW9zdHV2YSBpbmZvcm1hdHNpb29uaT8nOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAnS2FzdmF2YWx0JzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnQXR0cmlidXVkaSBuaW1pJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYWF0bmUnOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZXMnXSA9ICdIaWVyYXJjaHkgUmVwb3J0IFRlbXBsYXRlcyc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBIaWVyYXJjaHkgUmVwb3J0IFRlbXBsYXRlJzsKJGxhbmdbJ2NhbmNlbCddID0gJ1QmdXVtbDtoaXN0YSc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnS2F0ZWdvb3JpYWQnOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdLYXRlZ29vcmlhJzsKJGxhbmdbJ2NhdGVnb3J5ZXhpc3RzJ10gPSAnU2VsbGlzZSBuaW1lZ2Ega2F0ZWdvb3JpYSBla3Npc3RlZXJpYiBqdWJhJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0NhdGVnb3J5TGlzdCBUZW1wbGF0ZXMnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IEEgQ2F0ZWdvcnlMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnQ2hlY2tib3gnOwokbGFuZ1snY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnXSA9ICdPbGVkIHNhIGtpbmRlbCwgZXQgc29vdmlkIGt1c3R1dGFkYSBzZWxsZSBlbGVtZW5kaT8gSyZvdGlsZGU7aWsgdG9vdGVkLCBtaXMga2FzdXRhdmFkIHNlZGEgZWxlbWVudGksIHNlYXRha3NlIHB1dWR1dmFrcyBoaWVyYXJoaWFrcyc7CiRsYW5nWydjb25maXJtX2ltcG9ydCddID0gJ09sZWQgc2Ega2luZGVsLCBldCBzYSB0Jm90aWxkZTtlc3RpIHNvb3ZpZCBzZWRhIHRlaGE/XG5cbkViYWtvcnJla3RzZWQgc2VhZGVkIHYmb3RpbGRlO2kgdmFsZSBrb25maWd1cmF0c2lvb25pIGZhaWwgdiZvdGlsZGU7aXZhZCB0JmF1bWw7aWVzdGkgcmlra3VkYSBwcmFlZ3VzZSB0b2ltaXZhIHMmdXVtbDtzdGVlbWkuJzsKJGxhbmdbJ2NvcHknXSA9ICdLb3BlZXJpJzsKJGxhbmdbJ2NvcHlfY2F0ZWdvcnknXSA9ICdLb3BlZXJpIGthdGVnb29yaWEnOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdMb29kdWQnOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ0hldGtldiZhdW1sOyZhdW1sO3J0dXMnOwokbGFuZ1snZGF0YSddID0gJ0FuZG1lZCc7CiRsYW5nWydkZWZhdWx0J10gPSAnVmFpa2ltaXNpJzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdWYWlraW1pc2kgbWFsbGlkJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGUgY29udGVudHMgb2YgdGhlc2UgdGV4dCBhcmVhcyBhcmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIGRlZmF1bHQgY29udGVudCBvZiB0ZW1wbGF0ZXMgd2hlbiB5b3UgY2xpY2sgJnF1b3Q7QWRkIFRlbXBsYXRlJnF1b3Q7IGluIHRoZSBhcHByb3ByaWF0ZSB0ZW1wbGF0ZSB0YWIuICBFZGl0aW5nIG9uZSBvZiB0aGVzZSB0ZXh0IGFyZWFzIHdpbGwgaGF2ZSBubyBpbW1lZGlhdGUgZWZmZWN0IG9uIHlvdXIgd2Vic2l0ZS4nOwokbGFuZ1snZGVsZXRlJ10gPSAnS3VzdHV0YSc7CiRsYW5nWydkZWxldGVfYXR0cmlic2V0J10gPSAnS3VzdHV0YSBhdHRyaWJ1dXQnOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAnS3VzdHV0YSBoaWVyYXJoaWEgZWxlbWVudCc7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnS2FoYW5ldmFsdCc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0tpcmplbGR1cyc7CiRsYW5nWydkZXRhaWxzJ10gPSAnRGV0YWlsaWQnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAnRGV0YWlsaWRlIG1hbGwnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ0xpc2EvTXV1ZGEgZGV0YWlsaWRlIG1hbGwnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdEaXNhYmxlZCc7CiRsYW5nWydkcmFmdCddID0gJ011c3RhbmQnOwokbGFuZ1snZHJvcGRvd24nXSA9ICdEcm9wZG93bic7CiRsYW5nWydkcm9wZG93bl9vcHRpb25zJ10gPSAnRHJvcGRvd24gT3B0aW9ucyA8ZW0+KGFwcGxpY2FibGUgb25seSBmb3IgZHJvcGRvd24gZmllbGRzKTwvZW0+PGJyLz48YnIvPjxlbT4ob25lIGVudHJ5IHBlciBsaW5lKTwvZW0+JzsKJGxhbmdbJ2VkaXQnXSA9ICdNdXVkYSc7CiRsYW5nWydlZGl0X2F0dHJpYnNldCddID0gJ011dWRhIGF0dHJpYnV1dGknOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzJ10gPSAnTXV1ZGEgYXR0cmlidXVkaSBzZWFkZWlkJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0c19mb3InXSA9ICdFZGl0IEF0dHJpYnV0ZSBTZXRzIEZvcic7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdNdXVkYSBhdHRyaWJ1dXRlJzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnknXSA9ICdNdXVkYSBrYXRlZ29vcmlhdCc7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ011dWRhIGthdGVnb29yaWEgdiZhdW1sO2xqdSc7CiRsYW5nWydlZGl0X2hpZXJhcmNoeV9pdGVtJ10gPSAnTXV1ZGEgaGllcmFyaGlhIGVsZW1lbnRpJzsKJGxhbmdbJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnXSA9ICdTZWxsaXNlIG5pbWVnYSBhdHRyaWJ1dXQgb24ganViYSBvbGVtYXMnOwokbGFuZ1snZXJyb3JfZmllbGR2YWx1ZV9lbXB0eSddID0gJ1YmYXVtbDtsamEgdiZhdW1sOyZhdW1sO3J0dXMgZWkgc2FhIG9sbGEgdCZ1dW1sO2hpJzsKJGxhbmdbJ2Vycm9yX2ZpbGVmb3JtYXQnXSA9ICdGYWlsaSBmb3JtYWFkaSBwcm9ibGVlbSc7CiRsYW5nWydlcnJvcl9maWxlbm90Zm91bmQnXSA9ICdGYWlsaSBlaSBsZWl0dWQnOwokbGFuZ1snZXJyb3JfZmlsZW9wZW4nXSA9ICdQcm9ibGVlbSBmYWlsaSAlcyBhdmFtaXNlbCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnVmFsZSB2YW5lbSAoaGllcmFyaGlhIGVsZW1lbnQgZWkgc2FhIG9sbGEgaXNlZW5kYSB2YW5lbSknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9uYW1lJ10gPSAnVGhlIGN1c3RvbSBmaWVsZCB2YWx1ZSBlbnRlcmVkIGlzIGludmFsaWQgKGNvbnRhaW5zIG5vbiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyknOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnQSByZXF1aXJlZCBwYXJhbWV0ZXIgaXMgbWlzc2luZyBvciBpbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX25hbWV1c2VkJ10gPSAnQW4gaXRlbSBieSB0aGF0IG5hbWUgaXMgYWxyZWFkeSBpbiB1c2UnOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdQbGVhc2Ugc2VsZWN0IGEgZmllbGQgdHlwZSc7CiRsYW5nWydlcnJvcl9ub25hbWUnXSA9ICdZb3UgbXVzdCBzdXBwbHkgYSBuYW1lJzsKJGxhbmdbJ2Vycm9yX3Blcm1pc3Npb25kZW5pZWQnXSA9ICdQZXJtaXNzaW9uIERlbmllZCc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X25hbWV1c2VkJ10gPSAnU2VsbGlzZSBuaW1lIHRvb2RlIG9uIGp1YmEgb2xlbWFzJzsKJGxhbmdbJ2Vycm9yX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdWYWxlIGhpbm5hIG11dWRhdHVzZSB2JmF1bWw7JmF1bWw7cnR1cyBlbGVtZW5kaWxlICVzJzsKJGxhbmdbJ2Vycm9yX3VwbG9hZF9mYWlsZWQnXSA9ICcmVXVtbDtsZXNsYWFkaW1pbmUgZWJhJm90aWxkZTtubmVzdHVzOiAlcyc7CiRsYW5nWydleHRyYTEnXSA9ICdFa3N0cmEgdiZhdW1sO2xpIDEnOwokbGFuZ1snZXh0cmEyJ10gPSAnRWtzdHJhIHYmYXVtbDtsaSAyJzsKJGxhbmdbJ2ZpZWxkJ10gPSAnViZhdW1sO2xpJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnViZhdW1sO2xqYSBkZWZpbml0c2lvb24nOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnViZhdW1sO2xqYSBkZWZpbml0c2lvb25pZCc7CiRsYW5nWydmaWxlJ10gPSAnRmFpbCc7CiRsYW5nWydmaWx0ZXJzJ10gPSAnRmlsdHJpZCc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICc8PCc7CiRsYW5nWydnZW5lcmFsX3NldHRpbmdzJ10gPSAnUGVhbWlzZWQgc2VhZGVkJzsKJGxhbmdbJ2dvJ10gPSAnTWluZSc7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+DQo8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBhIHdheSB0byBjb2xsZWN0LCBvcmdhbml6ZSwgYW5kIGRpc3BsYXkgaW5mb3JtYXRpb24gYWJvdXQgcHJvZHVjdHMgYW5kIHRoZWlyIGNhdGVnb3JpZXMuICBUaGlzIG1vZHVsZSBjYW4gc3RhbmQgb24gaXRzIG93biwgb3IgYmUgcGFydCBvZiBhbiBlLWNvbW1lcmNlIHNvbHV0aW9uIGlmIHlvdSB3aXNoLiAgVGhlIG1vZHVsZSBzdXBwb3J0cyBhIHByb2R1Y3QgZXhpc3RpbmcgaW4gbW9yZSB0aGFuIG9uZSBjYXRlZ29yeSwgc3VwcG9ydHMgcHJvZHVjdCB3ZWlnaHQsIHByaWNlLCBhbmQgYXR0cmlidXRlIHNldHMuICBFYWNoIGl0ZW0gaW4gYW4gYXR0cmlidXRlIHNldCBjYW4gaGF2ZSBhIHByaWNlIGFkanVzdG1lbnQuICBBbHNvIGEgZ2xvYmFsIGZsYWcgaW5kaWNhdGVzIHdldGhlciB0aGUgcHJvZHVjdCBpcyAmIzAzOTt0YXhhYmxlJiMwMzk7IG9yIG5vdC48L3A+DQogIDxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGZvciB1cCB0byB0d28gaW1hZ2VzIHBlciBwcm9kdWN0LCBjdXN0b20gZmllbGQgZGVmaW5pdGlvbnMsIGFuZCBmb3IgdGhlIGFiaWxpdHkgdG8gZGVzY3JpbWluYXRlIHByaXZhdGUgZnJvbSBwdWJsaWMgZGF0YS48L3A+DQo8aDM+RmVhdHVyZXM6PC9oMz4NCjx1bD4NCiAgPGxpPk51bWVyb3VzIFZpZXdzPC9saT4NCiAgICA8dWw+DQogICAgICA8bGk+U3VtbWFyeSB2aWV3PC9saT4NCiAgICAgIDxsaT5DYXRlZ29yeSBMaXN0IFZpZXc8L2xpPg0KICAgICAgPGxpPkRldGFpbCB2aWV3PC9saT4gDQogICAgICA8bGk+SGllcmFyY2h5IERyaWxsLWRvd24gVmlldzwvbGk+DQogICAgPC91bD4NCiAgPGxpPkVudGlyZWx5IERhdGFiYXNlIFRlbXBsYXRlIERyaXZlbjwvbGk+DQogIDxwPk51bWVyb3VzIHRlbXBsYXRlcyBvZiBlYWNoIHR5cGUgY2FuIGJlIGRlZmluZWQsIGRlZmF1bHRzIHNwZWNpZmllZCBmb3IgZWFjaCB0eXBlLCBhbmQgdGhlIHRlbXBsYXRlIHVzZWQgZm9yIGVhY2ggcGFydGljdWxhciB2aWV3IGNhbiBiZSBzcGVjaWZpZWQgYXMgYSBwYXJhbWV0ZXI8L3A+DQogIDxsaT5Tb3J0aW5nIGFuZCBwYWdpbmF0aW9uIGluIHRoZSBzdW1tYXJ5IHZpZXc8L2xpPg0KICA8bGk+UHJvZHVjdHMgY2FuIGV4aXN0IGluIG11bHRpcGxlIGNhdGVnb3JpZXM8L2xpPg0KICA8bGk+TnVtZXJvdXMgY3VzdG9tIGZpZWxkcyBjYW4gYmUgZGVmaW5lZCwgaW5jbHVkaW5nIGltYWdlczwvbGk+DQogIDxsaT5BdXRvbWF0aWMgdGh1bWJuYWlsIGNyZWF0aW9uPC9saT4NCiAgPGxpPkFkbWluIGRlZmluZWQgZmllbGRzPC9saT4NCiAgPGxpPlByb2R1Y3QgYXR0cmlidXRlcyAoaW5jbHVkaW5nIHByaWNlIGFkanVzdG1lbnQpPC9saT4NCiAgPGxpPldlaWdodCBhbmQgdGF4YWJsZSBmaWVsZHMgKGZvciB1c2UgaW4gZS1jb21tZXJjZSBzb2x1dGlvbnMpPC9saT4NCiAgPGxpPlByb2R1Y3RzIGNhbiBoYXZlIGEgc3RhdHVzIChwdWJsaXNoZWQgb3IgZHJhZnQpIGluIG9yZGVyIHRvIGhpZGUgcHJvZHVjdHMgZnJvbSBwdWJsaWMgZGlzcGxheSBhdCBhbnkgdGltZTwvbGk+DQogIDxsaT5QcmV0dHkgVVJMIFN1cHBvcnQ8L2xpPg0KICA8bGk+PHN0cm9uZz5Nb3JlLi4uPC9zdHJvbmc+PC9saT4NCjwvdWw+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgSXQ6PC9oMz4NCjx1bD4NCjxsaT5TZXQgcHJlZmVyZW5jZXM8L2xpPg0KPHA+VXN1YWxseSB0aGlzIGlzIGp1c3QgYSBmb3JtYWxpdHkuICBZb3Ugc2hvdWxkIHNwZWNpZnkgeW91ciBkZWZhdWx0IHdlaWdodCB1bml0cywgYW5kIHlvdXIgZGVmYXVsdCBjdXJyZW5jeSBzeW1ib2wgZm9yIHlvdXIgbG9jYWwgZW52aXJvbm1lbnQuPC9wPg0KPGxpPlNldHVwIHVzZXJzIGFuZCBwZXJtaXNzaW9uczwvbGk+DQo8cD5UaGlzIG1vZHVsZSB1c2VzIHRoZSAmIzAzOTtNb2RpZnkgVGVtcGxhdGVzJiMwMzk7IHBlcm1pc3Npb24gdG8gYWxsb3cgdXNlcnMgdG8gYmUgYWJsZSB0byBtb2RpZnkgdGhlIHZhcmlvdXMgdGVtcGxhdGVzIHRoYXQgY2FuIGJlIHVzZWQgYnkgdGhpcyBtb2R1bGUuICBBcyB3ZWxsLCB0aGUgJiMwMzk7TW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMmIzAzOTsgcGVybWlzc2lvbiBpcyBuZWVkZWQgdG8gYmUgYWJsZSB0byBhZGp1c3QgdGhlIG1vZHVsZXMgcHJlZmVyZW5jZXMuICBJbiBvcmRlciB0byBoYXZlIHRoZSBhYmlsaXR5IHRvIG1vZGlmeSBmaWVsZCBkZWZpbml0aW9ucywgY2F0ZWdvcmllcywgb3IgcHJvZHVjdHMsIHlvdXIgdXNlcnMgd2lsbCBuZWVkIHRoZSAmIzAzOTtNb2RpZnkgUHJvZHVjdHMmIzAzOTsgcGVybWlzc2lvbi48L3A+DQo8bGk+KG9wdGlvbmFsKSBEZWZpbmUgb25lIG9yIG1vcmUgY2F0ZWdvcmllczwvbGk+DQo8cD5UaGlzIGlzIGFuIG9wdGlvbmFsIHN0ZXAsIGJ1dCB5b3Ugd2lsbCBwcm9iYWJseSB3YW50IHRvIGRvIHRoaXMgZWFybHkgdG8gcHJldmVudCBoYXZpbmcgdG8gZ28gYmFjayB0byBtb2RpZnkgZWFjaCBhbmQgZXZlcnkgcHJvZHVjdCBsYXRlci4gIEFkZGluZyBhIGNhdGVnb3J5IGlzIGFzIHNpbXBsZSBhcyBjbGlja2luZyBvbiB0aGUgJiMwMzk7Q2F0ZWdvcmllcyYjMDM5OyB0YWIgaW4gdGhlIFByb2R1Y3QgTWFuYWdlcnMgYWRtaW4gc2VjdGlvbiwgYW5kIGNsaWNraW5nICYjMDM5O0FkZCBBIENhdGVnb3J5JiMwMzk7LiAgRnJvbSB0aGVyZSB5b3Ugd2lsbCBiZSBwcm9tcHRlZCBmb3IgYSBjYXRlZ29yeSBuYW1lLjwvcD4NCjxsaT4ob3B0aW9uYWwpIERlZmluZSBvbmUgb3IgbW9yZSBjdXN0b20gZmllbGRzPC9saT4NCjxwPlRoaXMgaXMgYW4gb3B0aW9uYWwgc3RlcC4gIEN1c3RvbSBmaWVsZHMgYXJlIG5vdCBuZWVkZWQgaWYgdGhpcyBtb2R1bGUgc3VpdHMgeW91IGV4YWN0bHkgYXMgaXQgaXMuICBIb3dldmVyIGlmIHlvdSB3b3VsZCBsaWtlIHRvIHN0b3JlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gZm9yIGVhY2ggb2YgeW91ciBwcm9kdWN0cyB5b3UgY2FuIGNyZWF0ZSBjdXN0b20gZmllbGRzLiAgQ3JlYXRpbmcgY3VzdG9tIGZpZWxkcyBpcyBzaW1pbGFyIHRvIGNyZWF0aW5nIGNhdGVnb3JpZXMsIGV4Y2VwdCB0aGF0IG1vcmUgZGF0YSBpcyByZXF1ZXN0ZWQuPC9wPg0KPHA+Q3VycmVudGx5IHNpeCB0eXBlcyBvZiBjdXN0b20gZmllbGRzIGFyZSBhdmFpbGFibGU6ICYjMDM5O3RleHRib3gmIzAzOTssJiMwMzk7Y2hlY2tib3gmIzAzOTssYW5kICYjMDM5O3RleHRhcmVhLCBkcm9wZG93biwgYW5kIGZpbGUmIzAzOTsuICBTZWxlY3Qgb25lIG9mIHRoZXNlLCBnaXZlIHlvdXIgbmV3IGZpZWxkIGEgbmFtZSwgYW5kIGluZGljYXRlIHdldGhlciB0aGF0IGZpZWxkIHNob3VsZCBiZSB2aXNpYmxlIHRvIHRoZSBwdWJsaWMgaW4gdGhlIHZhcmlvdXMgdmlld3MuICBUaGVuIGhpdCBzdWJtaXQ8L3A+DQo8bGk+Q3JlYXRlIG9uZSBvciBtb3JlIHByb2R1Y3RzPC9saT4NCjxwPllvdSBzaG91bGQgY3JlYXRlIG9uZSBvciBtb3JlIHByb2R1Y3RzIHRvIGRpc3BsYXkgaW4geW91ciB3ZWJzaXRlIGNvbnRlbnQuICBHaXZlIGVhY2ggcHJvZHVjdCBhIG5hbWUsIGEgcHJpY2UgKG9wdGlvbmFsKSBhIHdlaWdodCAob3B0aW9uYWwpLCBhIHN0YXR1cyAoZHJhZnQgb3IgcHVibGlzaGVkKSwgYW5kIHNvbWUgaW5mb3JtYXRpb24uICBBZGRpdGlvbmFsbHksIHlvdSBjYW4gYWxzbyBzcGVjaWZ5IGlmIHRoZSBwcm9kdWN0IGlzIHRheGFibGUuPC9wPg0KPHA+SWYgY2F0ZWdvcmllcyBhcmUgZGVmaW5lZCwgdGhlbiBhIGNoZWNrYm94IHdpbGwgYXBwZWFyIGZvciBlYWNoIGRlZmluZWQgY2F0ZWdvcnkuICBZb3UgY2FuIHNpbXBseSBjbGljayB0aGUgY2hlY2tib3ggZmllbGRzIGZvciBlYWNoIGNhdGVnb3J5IHRoYXQgdGhpcyBwcm9kdWN0IHNob3VsZCBiZWxvbmcgdG8uPC9wPg0KPHA+SWYgY3VzdG9tIGZpZWxkcyBhcmUgZGVmaW5lZCwgdGhlbiBpbnB1dCBmaWVsZHMgYXBwcm9wcmlhdGUgdG8gdGhlIHR5cGUgb2YgY3VzdG9tIGZpZWxkIHdpbGwgYXBwZWFyIGFuZCBhbGxvdyB5b3UgdG8gc3BlY2lmeSBkYXRhIGZvciBlYWNoIG9mIHRoZW0uICBUaGlzIGRhdGEgaXMgb3B0aW9uYWwuPC9wPg0KPGxpPkFkZCB0aGUgYXBwcm9wcmlhdGUgdGFncyBpbnRvIHlvdXIgcGFnZSB0ZW1wbGF0ZXMgb3IgcGFnZSBjb250ZW50PC9saT4NCjxwPlRoaXMgY2FuIGJlIGFzIHNpbXBsZSBhcyBhZGRpbmcgdGhlIDxzdHJvbmc+e1Byb2R1Y3RzfTwvc3Ryb25nPiB0YWcgaW50byB0aGUgY29udGVudCBhcmVhIG9mIG9uZSBvZiB5b3VyIHBhZ2VzLCBvciBpbnRvIHlvdXIgcGFnZSB0ZW1wbGF0ZS48L3A+DQo8cD5JZiB5b3Ugd2lzaCB0byBhbHRlciB0aGUgYmVoYXZpb3VyIG9mIHRoaXMgYXBwbGljYXRpb24gZnJvbSBpdHMgZGVmYXVsdCwgeW91IGNhbiBkbyB0aGF0IGJ5IGFkZGluZyBvbmUgb3IgbW9yZSBwYXJhbWV0ZXJzIHRvIHRoZSA8c3Ryb25nPntQcm9kdWN0c308L3N0cm9uZz4gdGFnLiAgVGhlIGNvbXBsZXRlIGxpc3Qgb2YgcGFyYW1ldGVycyBhbmQgdGhlaXIgYmVoYXZpb3VyIGlzIGxpc3RlZCBiZWxvdy4gIEJ1dCBmb3IgZXhhbXBsZSwgdG8gZGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdHMgaW4gYSBzaW5nbGUsIGV4aXN0aW5nIGNhdGVnb3J5LCB5b3UgY291bGQgdXNlIGEgdGFnIGxpa2UgPGNvZGU+e1Byb2R1Y3RzIGNhdGVnb3J5PSYjMDM5O2NhdGVnb3J5bmFtZSYjMDM5O308L2NvZGU+PC9wPg0KPC91bD4NCjxoMz5TbWFydHkgUGx1Z2luczwvaDM+DQo8cD5UaGlzIG1vZHVsZSBhbHNvIHJlZ2lzdGVycyBvbmUgb3IgbW9yZSBzbWFydHkgcGx1Z2lucyB0byBhaWRlIGluIHJldHJpZXZpbmcgdmFyaW91cyBwcm9kdWN0cyByZWxhdGVkIGluZm9ybWF0aW9uIHdoZW4gZGVzaWduaW5nIHByb2R1Y3RzIG1vZHVsZSB0ZW1wbGF0ZXM6PC9wPg0KPHVsPg0KICA8bGk+e3Byb2R1Y3RzX2dldGNhdGVnb3J5IGNhdGVnb3J5aWQ9JiMwMzk7OTkmIzAzOTsgW2Fzc2lnbj0mIzAzOTt0bXAmIzAzOTtdfQ0KICA8cD5UaGlzIHBsdWdpbiBhbGxvd3MgcmV0cmlldmluZyBhbGwgb2YgdGhlIGluZm9ybWF0aW9uIGZvciBhIHNwZWNpZmljIGNhdGVnb3J5IGlkIGFuZCBvcHRpb25hbGx5IGFzc2lnbmluZyBpdCB0byB0aGUgbmFtZWQgc21hcnR5IHZhcmlhYmxlLiAgVGhlIHJldHVybmVkIGlzIGFuIG9iamVjdCBjb250YWluaW5nIGFsbCBvZiB0aGUgaW5mb3JtYXRpb24gYWJvdXQgYSBjYXRlZ29yeSwgaW5jbHVkaW5nIGl0cyBmaWVsZCB2YWx1ZXMuPGJyLz5pLmU6LiA8Y29kZT57cHJvZHVjdHNfZ2V0Y2F0ZWdvcnkgY2F0ZWdvcnlpZD0xIGFzc2lnbj0mIzAzOTt0bXAmIzAzOTt9Q2F0ZWdvcnkgbmFtZSA9IHskdG1wLT5uYW1lfTwvY29kZT48L3A+DQogICANCiAgIDwvcD4NCiAgPC9saT4NCjwvdWw+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gIEhvd2V2ZXIgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcyBvciB0byBmaWxlIGEgYnVnIHJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBjbXMgbWFkZSBzaW1wbGUgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+RGV2ZWxvcGVycyBGb3JnZTwvYT4gYW5kIGRvIGEgc2VhcmNoIGZvciAmIzAzOTtQcm9kdWN0cyYjMDM5OzwvbGk+DQo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+Um9iZXJ0IENhbXBiZWxsPC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ybXMuPC9hPjwvbGk+DQo8bGk+Rm9yIHNvbWUgcXVlc3Rpb25zIGFuZCBsaW1pdGVkIHRlY2huaWNhbCBzdXBwb3J0LCB0aGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8L3VsPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj48Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZz48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQooYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4NCjxwPkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZA0KYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlDQppbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TDQpNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gDQpzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4NCjxwPlRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCkZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQpPciByZWFkIGl0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+b25saW5lPC9hPjwvcD4nOwokbGFuZ1snaGllcmFyY2h5J10gPSAnSGllcmFyaGlhJzsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gJ0hpZXJhcmhpYSBwb3NpdHNpb29uJzsKJGxhbmdbJ2lkJ10gPSAnSWQnOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnUGlsdCc7CiRsYW5nWydpbWFnZV9oYW5kbGluZ19zZXR0aW5ncyddID0gJ1BpbGRpIGsmYXVtbDtpdGxlbWlzZSBzZWFkZWQnOwokbGFuZ1snaW1wb3J0X2Zyb21fY3N2J10gPSAnSW1wb3J0IFByb2R1Y3RzIGZyb20gQ1NWIGZpbGUnOwokbGFuZ1snaW5jbHVkZV9jaGlsZHJlbiddID0gJ0luY2x1ZGUgQ2hpbGRyZW4/JzsKJGxhbmdbJ2luZm9fYWxudW1vbmx5J10gPSAnT25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycy4gTm8gd2hpdGVzcGFjZSwgcXVvdGVzLCBvciBub24gbGV0dGVyL251bWJlciBjb21iaW5hdGlvbnMnOwokbGFuZ1snaW5mb19hdXRvd2F0ZXJtYXJrJ10gPSAnV2F0ZXJtYXJrIHNldHRpbmdzIGFyZSB0YWtlbiBmcm9tIHRoZSBDR0V4dGVuc2lvbnMgTW9kdWxlJzsKJGxhbmdbJ2luZm9fYmF0Y2hzaXplJ10gPSAnU2V0IHRoZSBudW1iZXIgb2YgbGluZXMgdG8gcHJvY2VzcyBwZXIgJnF1b3Q7YmF0Y2gmcXVvdDsuICBBZnRlciBhIGJhdGNoIGlzIGNvbXBsZXRlLCB0aGUgaW1wb3J0ZXIgd2lsbCByZWRpcmVjdCwgYW5kIHJlc3VtZSBvcGVyYXRpb25zLiAgSWYgeW91IGFyZSBleHBlcmllbmNpbmcgbWVtb3J5IGVycm9ycywgb3IgdGltZW91dCBwcm9ibGVtcyBkdWUgdG8gbGFyZ2UgYW1vdW50cyBvZiBwcm9jZXNzaW5nLCB5b3UgbWF5IG5lZWQgdG8gY29uc3VsdCB5b3VyIGhvc3QgcHJvdmlkZXIsIG9yIHJlZHVjZSB0aGlzIG51bWJlcic7CiRsYW5nWydpbmZvX2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ1RoZXNlIHBhcmFtZXRlcnMgYXJlIGdpdmVuIHRvIHRoZSBzZWxlY3RlZCBjYXJ0IG1vZHVsZSBmcm9tIHRoZSBwcm9kdWN0IGRldGFpbCBhbmQgc3VtbWFyeSBkaXNwbGF5cyc7CiRsYW5nWydpbmZvX2NyZWF0ZWZpZWxkcyddID0gJ0NyZWF0ZSB1bmtub3duIHByb2R1Y3QgZmllbGRzIGF1dG9tYXRpY2FsbHk/IDxlbT4oVGhleSB3aWxsIGJlIGNyZWF0ZWQgYXMgdGV4dCBmaWVsZHMpPC9lbT4nOwokbGFuZ1snaW5mb19jcmVhdGVjYXRlZ29yaWVzJ10gPSAnQXV0b21hdGljYWxseSBjcmVhdGUgcHJvZHVjdCBjYXRlZ29yaWVzIHRvIG1hdGNoIHRob3NlIG9mIHRoZSBDU1YgZmlsZSwgaWYgaXQgZG9lcyBub3QgYWxyZWFkeSBleGlzdCc7CiRsYW5nWydpbmZvX2NyZWF0ZWhpZXJhcmNoeSddID0gJ0F1dG9tYXRpY2FsbHkgY3JlYXRlIHByb2R1Y3QgaGllcmFyY2hpZXMgdG8gbWF0Y2ggdGhvc2Ugb2YgdGhlIENTViBmaWxlIGlmIGl0IGRvZXMgbm90IGFscmVhZHkgZXhpc3QnOwokbGFuZ1snaW5mb19kZWNpbWFsX3VuaXRzJ10gPSAnVGhpcyBzeXN0ZW0gdW5kZXJzdGFuZHMgKC4pIGFzIHRoZSBkZWNpbWFsIHBvaW50IHNlcGFyYXRvci4gaS5lLjogPHN0cm9uZz41LjI1PC9zdHJvbmc+JzsKJGxhbmdbJ2luZm9fZGVsaW1pdGVyJ10gPSAnU3BlY2lmeSB0aGUgY2hhcmFjdGVyIChvciBjaGFyYWN0ZXJzKSB0aGF0IHNlcGVyYXRlIGVhY2ggZmllbGQnOwokbGFuZ1snaW5mb19kdXBsaWNhdGVwcm9kdWN0cyddID0gJ1NwZWNpZnkgaG93IHRoZSBzeXN0ZW0gc2hvdWxkIGhhbmRsZSBhIHByb2R1Y3Qgd2hvcyBuYW1lIGFscmVhZHkgZXhpc3RzIGluIHRoZSBDU1YgZmlsZSc7CiRsYW5nWydpbmZvX2ZpZWxkZGVmc190YWInXSA9ICc8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBBbGwgRmllbGRzIGRlZmluZWQgaGVyZSBhcmUgYXZhaWxhYmxlIHRvIGFsbCBwcm9kdWN0cy4nOwokbGFuZ1snaW5mb19maWVsZHByb2JsZW1zJ10gPSAnUHJvYmxlbXMgd2VyZSBlbmNvdW50ZXJlZCB3aGVuIGRlYWxpbmcgd2l0aCBvbmUgb3IgbW9yZSBjdXN0b20gZmllbGRzLiAgVGhlIGFjdGlvbiBoYXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSwgaG93ZXZlciB5b3Ugc2hvdWxkIGludmVzdGlnYXRlIGFuZCBjb3JyZWN0IHRoZXNlIHByb2JsZW1zJzsKJGxhbmdbJ2luZm9faGFuZGxlaW1hZ2VzJ10gPSAnVXBvbiBpbXBvcnQsIGlmIGFuIGltYWdlIGZpbGVuYW1lIGlzIGZvdW5kIGluIGEgZmllbGQgY29sdW1uLCBzaG91bGQgaXQgYmUgbW92ZWQgZnJvbSB0aGUgc291cmNlIGxvY2F0aW9uLCB3YXRlcm1hcmtlZCwgdGh1bWJuYWlsZWQsIGFuZCB0aGUgZmllbGQgdHlwZSBjaGFuZ2VkIHRvICZxdW90O2ltYWdlJnF1b3Q7JzsKJGxhbmdbJ2luZm9faW1hZ2VwYXRoJ10gPSAnVGhlIHBhdGggKHJlbGF0aXZlIHRvIHRoZSB1cGxvYWRzIGRpcmVjdG9yeSkgd2hlcmUgaW1hZ2VzIHJlZmVycmVkIHRvIGluIHRoZSBpbXBvcnQgZmlsZSwgY2FuIGJlIGZvdW5kJzsKJGxhbmdbJ2luZm9faW1wb3J0X3Rlc3RfcGFzc2VkJ10gPSAnQSBicmllZiB0ZXN0IGFzIGJlZW4gcGVyZm9ybWVkIG9uIHRoZSBpbnB1dCBmaWxlIHNwZWNpZmllZCwgYW5kIGV2ZXJ5dGhpbmcgYXBwZWFycyB0byBiZSBjb3JyZWN0Ljxici8+VGhpcyBpcyBubyBpbmRpY2F0aW9uIHRoYXQgdGhlcmUgYXJlIG5vIGVycm9ycyBpbiB0aGUgZmlsZS4nOwokbGFuZ1snaW5mb19wcmljZV9hZGp1c3RtZW50J10gPSAnVmFsaWQgdmFsdWVzIGFyZSArLSojLiMjJzsKJGxhbmdbJ2luZm9fcHVibGljZmllbGQnXSA9ICdQdWJsaWMgZmllbGRzIGFyZSBhdmFpbGFibGUgZm9yIHRoZSBwdWJsaWMgdG8gc2VlJzsKJGxhbmdbJ2xhYmVsJ10gPSAnTGFiZWwnOwokbGFuZ1snbGFiZWxfc2tpcCddID0gJ1NraXAnOwokbGFuZ1snbGFiZWxfb3ZlcndyaXRlJ10gPSAnT3ZlcndyaXRlJzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnPj4nOwokbGFuZ1snbGFzdF9tb2RpZmllZCddID0gJ1ZpaW1hdGkgbXV1ZGV0dWQnOwokbGFuZ1snbG9nb3RleHQnXSA9ICdUZWluZSBwaWx0JzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ01heGltdW0gbGVuZ3RoIDxlbT4oYXBwbGljYWJsZSBvbmx5IG9uIHRleHRib3ggZmllbGRzKTwvZW0+JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ211dWRldHVkJzsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gJ0EgbW9kdWxlIGZvciBtYW5hZ2luZyBhIGNhdGFsb2cgb2YgcHJvZHVjdHMsIHRoZWlyIHByaWNlLCBpbWFnZXMsIGV0YywgYW5kIGZvciBhbGxvd2luZyB1c2VycyB0byBidWlsZCBhIGNhcnQnOwokbGFuZ1snbmFtZSddID0gJ05pbWknOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdZb3UgZG8gbm90IGhhdmUgdGhlIHJlcXVpcmVkIHBlcm1pc3Npb246ICVzJzsKJGxhbmdbJ25ld19jYXRlZ29yeV9uYW1lJ10gPSAnVXVzIGthdGVnb29yaWEgbmltaSc7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbm8nXSA9ICdFaSc7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ05pbWUgZWkgZXNpdGF0dWQnOwokbGFuZ1snbm9uZSddID0gJ1BvbGUnOwokbGFuZ1snb2YnXSA9ICdrb2trdSc7CiRsYW5nWydwYWdlJ10gPSAnTGVoZWsmdXVtbDtsZyc7CiRsYW5nWydwYWdlX29mJ10gPSAnTGVoZWsmdXVtbDtsZyAlcyAlcyYjMDM5O3N0JzsKJGxhbmdbJ3BhZ2VfbGltaXQnXSA9ICdMZWhlayZ1dW1sO2xqZSBsaW1paXQnOwokbGFuZ1sncGFyYW1fYWN0aW9uJ10gPSAnU3BlY2lmeSB0aGUgYmVoYXZpb3VyIG9mIHRoZSBtb2R1bGUuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+aGllcmFyY2h5IC0tIERpc3BsYXkgYSBwcm9kdWN0IGxpc3QgYnkgaGllcmFyY2h5PC9saT4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtIERpc3BsYXkgYSBsaXN0IG9mIHByb2R1Y3QgY2F0ZWdvcmllczwvbGk+DQogIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gRGlzcGxheSBhIHN1bW1hcnkgb2YgcHJvZHVjdHM8L2xpPg0KICA8bGk+ZGV0YWlscyAtIERpc3BsYXkgYSBkZXRhaWwgdmlldyBvZiBhIHNpbmdsZSBwcm9kdWN0PC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnV2hlbiB1c2VkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIsIHdoaWNoIHNob3VsZCBtYXRjaCB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyBjYXRlZ29yeSB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBvbmx5IHRob3NlIHByb2R1Y3RzIHRoYXQgYXJlIGluIHRoYXQgY2F0ZWdvb3J5LiAoYSBjb21tYSBzZXBlcmF0ZWQgbGlzdCBjYW4gYmUgc3VwcGxpZWQpJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdUaGlzIHNwZWNpZmllcyB0aGUgcGFnZWlkIG9yIGFsaWFzIHRoYXQgc2hvdWxkIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgZGV0YWlsIHJlcG9ydC4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkZXRhaWwgbW9kZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeSddID0gJ1VzZWZ1bCBvbmx5IGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgb25seSBpdGVtcyBpbiB0aGF0IGxvY2F0aW9uIG9mIHRoZSBoaWVyYXJjaHkgc2hvdWxkIGJlIGRpc3BsYXllZC4gIFdpbGRjYXJkIGNoYXJhY3RlciBjYW4gYmUgdXNlZCBzbyB0aGF0IHlvdSBjYW4gc3BlY2lmeSBwYXJlbnQvY2hpbGQgcmVsYXRpb25zaGlwcyBhcyB3ZWxsLiAgaS5lIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7dHJ1Y2tzKiYjMDM5O30gd2lsbCBjcmVhdGUgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBpbmNsdWRpbmcgdGhlIGNoaWxkcmVuIGluIHRoZSBoaWVyYXJjaHkuICBTaW1pbGFybHksIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7KnRydWNrcyYjMDM5O30gd2lsbCBkaXNwbGF5IGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgYW5kIGFsbCBwcm9kdWN0cyBiZWxvZ2luZyB0byBhbnkgcGFyZW50IGluIHRoZSBoaWVyYXJjaHkuJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeXRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgaGllcmFyY2h5IGRpc3BsYXkuIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9wYWdlbGltaXQnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBsaXN0ZWQgb24gZWFjaCBwYWdlLic7CiRsYW5nWydwYXJhbV9wYXJlbnQnXSA9ICdVc2VmdWwgb25seSBpbiB0aGUgPGVtPmhpZXJhcmNoeTwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBoaWVyYXJjaHkgaWQgb2YgdGhlIHN0YXJ0aW5nIGxvY2F0aW9uIG9mIHRoZSByZXBvcnQuJzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RpZCddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGRldGFpbCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB3aGF0IHByb2R1Y3QgdG8gdXNlIGZvciB0aGUgZGlzcGxheS4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmeSB0aGUgb3JkZXIgb2Ygc29ydGVkIGZpZWxkcyBpbiBzdW1tYXJ5IHZpZXcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4NCiAgPGxpPmRlc2MgLS0gRGVzY2VuZGluZyBvcmRlcjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIG9ubHkgaW4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQgcHJvZHVjdHMuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5wcm9kdWN0X25hbWU8L3N0cm9uZz48L2xpPg0KICA8bGk+aWQgLS0gVGhlIHByb2R1Y3QgaWQ8L2xpPg0KICA8bGk+d2VpZ2h0IC0tIFRoZSBwcm9kdWN0IHdlaWdodDwvbGk+DQogIDxsaT5wcmljZSAtLSBUaGUgcHJvZHVjdCBiYXNlIHByaWNlPC9saT4NCiAgPGxpPnN0YXR1cyAtLSBEcmFmdCBvciBwdWJsaXNoZWQ8L2xpPg0KICA8bGk+cmFuZG9tIC0tIERpc3BsYXkgaW4gcmFuZG9tIG9yZGVyIG9uIGVhY2ggcmVxdWVzdDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIHN1bW1hcnkgbW9kZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmVudCddID0gJ0VlbG1pbmUnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdUb29kZXRlIG1vb2R1bCBvbiBlZHVrYWx0IHBhaWdhbGRhdHVkJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdUb29kZXRlIG1vb2R1bCBvbiBlZW1sZGF0dWQga29vcyBrJm90aWxkZTtpa2lkZSBzZW90dWQgYW5kbWV0ZWdhJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnRWVsaXN0dXNlZCc7CiRsYW5nWydwcmV1bmluc3RhbGwnXSA9ICdTZWxsZSBtb29kdWxpIGVlbWFsZGFtaW5lIGVlbWFsZGFiIGthIGsmb3RpbGRlO2lrIHNlb3R1ZCBhbmRtZWQsIG9sZWQgc2Ega2luZGVsLCBldCBzb292aWQgaiZhdW1sO3RrYXRhPyc7CiRsYW5nWydwcmljZSddID0gJ0hpbmQnOwokbGFuZ1sncHJpY2VfYWRqdXN0bWVudCddID0gJ0hpbm5hIG11dWRhdHVzJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCc7CiRsYW5nWydwcm9kdWN0J10gPSAnVG9vZGUnOwokbGFuZ1sncHJvZHVjdG5hbWUnXSA9ICdUb290ZSBuaW1pJzsKJGxhbmdbJ3Byb2R1Y3RzJ10gPSAnVG9vdGVkJzsKJGxhbmdbJ3Byb2R1Y3RfaGllcmFyY2h5J10gPSAnVG9vdGUgaGllcmFyaGlhJzsKJGxhbmdbJ3Byb2R1Y3RfbWFuYWdlciddID0gJ1Rvb3RlIGhhbGR1cic7CiRsYW5nWydwcm9ncmVzcyddID0gJ1Byb2dyZXNzJzsKJGxhbmdbJ3Byb21wdCddID0gJ1Byb21wdCc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnXSA9ICdBbGxvdyB1cGxvYWQgb2YgZmlsZXMgd2l0aCB0aGVzZSBleHRlbnNpb25zIChmb3IgZmlsZSB0eXBlIGZpZWxkcyknOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2V0eXBlcyddID0gJ0FsbG93IHVwbG9hZCBvZiBpbWFnZXMgd2l0aCB0aGVzZSBleHRlbnNpb25zIChmb3IgaW1hZ2UgdHlwZSBmaWVsZHMpJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsJ10gPSAnQXV0b21hdGljYWxseSBjcmVhdGUgdGh1bWJuYWlscyBvZiBpbWFnZXMnOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWxfc2l6ZSddID0gJ01heGltdW0gc2l6ZSAobGFyZ2VzdCBkaW1lbnNpb24pIG9mIHRoZSB0aHVtYm5haWwuJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZyddID0gJ0F1dG9tYXRpY2FsbHkgY3JlYXRlIHByZXZpZXcgaW1hZ2VzIG9mIGltYWdlcyc7CiRsYW5nWydwcm9tcHRfYXV0b3ByZXZpZXdpbWdfc2l6ZSddID0gJ01heGltdW0gc2l6ZSAobGFyZ2VzdCBkaW1lbnNpb24pIG9mIHRoZSBwcmV2aWV3IGltYWdlLic7CiRsYW5nWydwcm9tcHRfYXV0b3dhdGVybWFyayddID0gJ0F1dG9tYXRpY2FsbHkgcGxhY2Ugd2F0ZXJtYXJrcyBvbiBpbWFnZXMnOwokbGFuZ1sncHJvbXB0X2FwcGxpY2FibGUnXSA9ICdFbmFibGUgYnkgZGVmYXVsdCBmb3IgYWxsIG5ldyBwcm9kdWN0cyc7CiRsYW5nWydwcm9tcHRfYmF0Y2hzaXplJ10gPSAnQmF0Y2ggU2l6ZSc7CiRsYW5nWydwcm9tcHRfY2FydF9tb2R1bGUnXSA9ICdDYXJ0IE1vZHVsZSc7CiRsYW5nWydwcm9tcHRfY2FydF9tb2R1bGVfcGFyYW1zJ10gPSAnQ2FydCBNb2R1bGUgUGFyYW1ldGVycyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlY2F0ZWdvcmllcyddID0gJ0xvbyBrYXRlZ29vcmlhaWQnOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWZpZWxkcyddID0gJ0xvbyB0b290ZSB2JmF1bWw7bGphc2lkPyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlaGllcmFyY2h5J10gPSAnTG9vIHRvb3RlIGhpZXJhcmhpYSc7CiRsYW5nWydwcm9tcHRfY3N2ZmlsZSddID0gJ1VwbG9hZCBDU1YgRmlsZSc7CiRsYW5nWydwcm9tcHRfY3VycmVuY3ljb2RlJ10gPSAnVmFsdXV0YSBrb29kJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeXN5bWJvbCddID0gJ1ZhbHV1dGEgcyZ1dW1sO21ib2wnOwokbGFuZ1sncHJvbXB0X2RlZmF1bHRfc3RhdHVzJ10gPSAnVmFpa2ltaXNpIGsmb3RpbGRlO2lraWRlbCB1dXRlbCB0b29kZXRlbCBvbiBzZWUgb2xlayc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF90YXhhYmxlJ10gPSAnVmFpa2ltaXNpIGsmb3RpbGRlO2lrIHV1ZWQgdG9vdGVkIG9uIG1ha3N1c3RhdmFkJzsKJGxhbmdbJ3Byb21wdF9kZWxldGVwcm9kdWN0ZmlsZXMnXSA9ICdLdXN0dXRhIGsmb3RpbGRlO2lrIHRvb3RlZ2Egc2VvdHVkIGZhaWxpZCwga3VpIHRvb2RlIGt1c3R1dGF0YWtzZT8nOwokbGFuZ1sncHJvbXB0X2RlbGltaXRlciddID0gJ1YmYXVtbDtsamEgZXJhbGRhamEnOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdWYWlraW1pc2kgZGV0YWlsaSBsZWh0JzsKJGxhbmdbJ3Byb21wdF9kdXBsaWNhdGVwcm9kdWN0cyddID0gJ0hvdyB0byBoYW5kbGUgZHVwbGljYXRlIHByb2R1Y3RzPyc7CiRsYW5nWydwcm9tcHRfaGFuZGxlaW1hZ2VzJ10gPSAnSGFuZGxlIGltYWdlcz8nOwokbGFuZ1sncHJvbXB0X2ltYWdlcGF0aCddID0gJ0ltYWdlIFBhdGgnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdEZWZhdWx0IFNvcnQgT3JkZXIgaW4gc3VtbWFyeSBtb2RlJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ0RlZmF1bHQgU29ydCBGaWVsZCBpbiBzdW1tYXJ5IG1vZGUnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgU291cmNlJzsKJGxhbmdbJ3Byb21wdF91cmxwcmVmaXgnXSA9ICdQcmVmaXggdG8gdXNlIG9uIGFsbCBVUkxTIHRhcmdldGVkIHRvIHRoaXMgdGhpcyBtb2R1bGUnOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnS2FhbHUgJnV1bWw7aGlrdWQnOwokbGFuZ1sncHVibGljJ10gPSAnS2FzIHNlZSBvbiBhdmFsaWsgdiZhdW1sO2xpPz8nOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnQXZhbGRhdHVkJzsKJGxhbmdbJ3JhbmRvbSddID0gJ1N1dmFsaW5lJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnVGFhc3RhIHRlaGFzZSB2JmF1bWw7JmF1bWw7cnR1c2VkJzsKJGxhbmdbJ3JldHVybiddID0gJ1RhZ2FzaSc7CiRsYW5nWydyZXR1cm5fdG9fdG9wJ10gPSAnVGFnYXNpIHZhYXRlIHRpcHB1JzsKJGxhbmdbJ3Jvb3QnXSA9ICdKdXVyJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdWYWxpICZ1dW1sO2tzJzsKJGxhbmdbJ3NvcnRfYnknXSA9ICdTb3J0ZWVyaSc7CiRsYW5nWydzb3J0X29yZGVyJ10gPSAnU29ydGVlcmkgaiZhdW1sO3JqZWtvcmQnOwokbGFuZ1snc3RhdHVzJ10gPSAnT2xlayc7CiRsYW5nWydzdWJtaXQnXSA9ICdTYWFkYSc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVzJ10gPSAnS29ra3V2Jm90aWxkZTt0dGUgbWFsbCc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0xpc2EvTXV1ZGEga29ra3V2Jm90aWxkZTt0dGUgbWFsbCc7CiRsYW5nWyd0YXhhYmxlJ10gPSAnTWFrc3VzdGF0YXYnOwokbGFuZ1sndGVzdCddID0gJ1Rlc3QnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZXh0IEFyZWEnOwokbGFuZ1sndGV4dGJveCddID0gJ1RleHQgSW5wdXQnOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBOZXcgSGllcmFyY2h5IFJlcG9ydCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBOZXcgQ2F0ZWdvcnlMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IE5ldyBEZXRhaWwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IE5ldyBTdW1tYXJ5IFRlbXBsYXRlJzsKJGxhbmdbJ3R5cGUnXSA9ICdUJnV1bWw7JnV1bWw7cCc7CiRsYW5nWyd1cGRhdGUnXSA9ICdVdWVuZGEnOwokbGFuZ1sndXBsb2FkJ10gPSAnVmFsaSBmYWlsICZ1dW1sO2xlc2xhYWRpbWlzZWtzJzsKJGxhbmdbJ3ZhbGlkJ10gPSAnS2VodGl2JzsKJGxhbmdbJ3ZhbHVlJ10gPSAnViZhdW1sOyZhdW1sO3J0dXMnOwokbGFuZ1sndmFsdWVzJ10gPSAnViZhdW1sOyZhdW1sO3J0dXNlZCc7CiRsYW5nWyd3YXRlcm1hcmtfbG9jYXRpb24nXSA9ICdWZXNpcGlsZGkgYXN1a29odCc7CiRsYW5nWyd3ZWlnaHQnXSA9ICdLYWFsJzsKJGxhbmdbJ3llcyddID0gJ0phaCc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjMyMTU1NDUyNjY3MzIwMTkwMDAuMTI0MTA5MTc4Ny4xMjU1NTI4MzMwLjEyNTU2MDIyOTAuMTY1JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTI1NDQ2OTA4My4xNDUuMjgudXRtY2NuPShvcmdhbmljKXx1dG1jc3I9Z29vZ2xlfHV0bWN0cj1jbXNtcyByZXF1aXJlbWVudHN8dXRtY21kPW9yZ2FuaWMnOwokbGFuZ1sncWNhJ10gPSAnMTI0MDY4MzYxNS01ODQwOTk3My03OTkxNTMwMyc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjEuMTAuMTI1NTYwMjI5MCc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfbGVuZ3RoJ10gPSAnTGFyZy4nOwokbGFuZ1snYWJicl93aWR0aCddID0gJ0xvbmcuJzsKJGxhbmdbJ2FiYnJfaGVpZ2h0J10gPSAnSGF1dC4nOwokbGFuZ1snYWRkJ10gPSAnQWpvdXRlcic7CiRsYW5nWydhZGRjYXRlZ29yeSddID0gJ0Fqb3V0ZXIgdW5lIGNhdCZlYWN1dGU7Z29yaWUnOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdBam91dGVyIHVuIGNoYW1wJzsKJGxhbmdbJ2FkanVzdGFibGUnXSA9ICdBanVzdGFibGUnOwokbGFuZ1snYWRkcHJvZHVjdCddID0gJ0Fqb3V0ZXIgdW4gcHJvZHVpdCc7CiRsYW5nWydhZGRfYXR0cmliX3NldCddID0gJ0Fqb3V0ZXIgdW4gYXR0cmlidXQnOwokbGFuZ1snYWRkX2NhdGVnb3J5X2ZpZWxkJ10gPSAnQXNzb2NpZSB1biBjaGFtcCAmYWdyYXZlOyBsYSBjYXQmZWFjdXRlO2dvcmllIDogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnQWpvdXRlIHVuZSBoaSZlYWN1dGU7cmFyY2hpZSBkJiMwMzk7YXJ0aWNsZSc7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAnQWpvdXRlciB1bmUgb3B0aW9uIGQmIzAzOTthdHRyaWJ1dCc7CiRsYW5nWydhZG1pbl9vbmx5J10gPSAnU2V1bHMgbGVzIGFkbWluaXN0cmF0ZXVycyBwZXV2ZW50IHZvaXIgY2V0IGF0dHJpYnV0ID8nOwokbGFuZ1snYWR2YW5jZWQnXSA9ICdBdmFuYyZlYWN1dGU7JzsKJGxhbmdbJ2FsaWduX3VsJ10gPSAnSGF1dCBnYXVjaGUnOwokbGFuZ1snYWxpZ25fdWMnXSA9ICdIYXV0IGNlbnRyZSc7CiRsYW5nWydhbGlnbl91ciddID0gJ0hhdXQgZHJvaXQnOwokbGFuZ1snYWxpZ25fbWwnXSA9ICdNaWxpZXUgZ2F1Y2hlJzsKJGxhbmdbJ2FsaWduX21jJ10gPSAnQ2VudHJlJzsKJGxhbmdbJ2FsaWduX21yJ10gPSAnTWlsaWV1IGRyb2l0JzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnQmFzIGdhdWNoZSc7CiRsYW5nWydhbGlnbl9sYyddID0gJ0JhcyBjZW50cmUnOwokbGFuZ1snYWxpZ25fbHInXSA9ICdCYXMgZHJvaXQnOwokbGFuZ1snYWxsJ10gPSAnVG91cyc7CiRsYW5nWydhbGxjYXRlZ29yaWVzJ10gPSAnVG91dGVzIGxlcyBjYXQmZWFjdXRlO2dvcmllcyc7CiRsYW5nWydhbnknXSA9ICdBdWN1bic7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnJkVjaXJjO3Rlcy12b3VzIHMmdWNpcmM7ciA/JzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlcHJvZHVjdCddID0gJyZFY2lyYzt0ZXMtdm91cyBzJnVjaXJjO3IgZGUgdm91bG9pciBzdXBwcmltZXIgY2UgcHJvZHVpdCwgZXQgdG91dGUgbCYjMDM5O2luZm9ybWF0aW9uIGwmIzAzOTthY2NvbXBhZ25hbnQgPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdBc2NlbmRhbnQnOwokbGFuZ1snYXR0cmlidXRlX25hbWUnXSA9ICdOb20gZGUgbCYjMDM5O2F0dHJpYnV0JzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpcXVlJzsKJGxhbmdbJ2J0bl9zZXRlY29taGFuZGxlcnMnXSA9ICdJbnN0YWxsZXIgbGVzIGdlc3Rpb25uYWlyZXMgZCYjMDM5OyZlYWN1dGU7diZlZ3JhdmU7bmVtZW50cyBFLWNvbW1lcmNlJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVzJ10gPSAnR2FiYXJpdHMgZGUgaGkmZWFjdXRlO3JhcmNoaWUnOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWpvdXRlci9FZGl0ZXIgdW4gZ2FiYXJpdCBkZSBoaSZlYWN1dGU7cmFyY2hpZSc7CiRsYW5nWydjYW5jZWwnXSA9ICdBbm51bGVyJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXQmZWFjdXRlO2dvcmllcyc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0NhdCZlYWN1dGU7Z29yaWUnOwokbGFuZ1snY2F0ZWdvcnlleGlzdHMnXSA9ICdVbmUgY2F0JmVhY3V0ZTtnb3JpZSBkdSBtJmVjaXJjO21lIG5vbSBleGlzdGUgZCZlYWN1dGU7aiZhZ3JhdmU7JzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0dhYmFyaXRzIGRlIGxhIGxpc3RlIGRlcyBjYXQmZWFjdXRlO2dvcmllcyc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWpvdXQgb3UgJmVhY3V0ZTtkaXRpb24gZCYjMDM5O3VuIGdhYmFyaXQgZGUgbGlzdGUgZGUgY2F0JmVhY3V0ZTtnb3JpZXMnOwokbGFuZ1snY2VudGltZXRlcnMnXSA9ICdDZW50aW0mZWdyYXZlO3RyZXMnOwokbGFuZ1snY2hlY2tib3gnXSA9ICdDYXNlICZhZ3JhdmU7IGNvY2hlcic7CiRsYW5nWydjb25maXJtX2NvcHlhdHRyaWJ1dGVzJ10gPSAnVG91cyBsZXMgamV1eCBkJiMwMzk7YXR0cmlidXRzIGRlIGNlIHByb2R1aXQgdm9udCAmZWNpcmM7dHJlIHN1cHByaW0mZWFjdXRlO3MuICZFY2lyYzt0ZXMtdm91cyBzJnVjaXJjO3IgPyc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9oaWVyYXJjaHlfbm9kZSddID0gJ0NvbmZpcm1lei12b3VzIGxhIHN1cHByZXNzaW9uIGRlIGNldCAmZWFjdXRlO2wmZWFjdXRlO21lbnQgPyBUb3VzIGxlcyBwcm9kdWl0cyBxdWkgbCYjMDM5O3V0aWxpc2VudCBuZSBmaWd1cmVyb250IHBsdXMgZGFucyBsYSBoaSZlYWN1dGU7cmFyY2hpZS4nOwokbGFuZ1snY29uZmlybV9pbXBvcnQnXSA9ICdWb3VsZXotdm91cyByJmVhY3V0ZTtlbGxlbWVudCBlZmZlY3R1ZXIgY2V0dGUgYWN0aW9uID9cblxuRGVzIHBhcmFtJmVncmF2ZTt0cmVzIGluY29ycmVjdHMgb3UgdW4gZmljaGllciBkZSBjb25maWd1cmF0aW9uIGludmFsaWRlIHBldXZlbnQgY29ycm9tcHJlIGxlIGNhdGFsb2d1ZSBkZSBwcm9kdWl0cyBldCBsZSByZW5kcmUgaW51dGlsaXNhYmxlLic7CiRsYW5nWydjb3B5J10gPSAnQ29waWVyJzsKJGxhbmdbJ2NvcHlfYXR0cmliX3NldHMnXSA9ICdDb3BpZXIgbGVzIGpldXggZCYjMDM5O2F0dHJpYnV0cyc7CiRsYW5nWydjb3B5X2NhdGVnb3J5J10gPSAnQ29waWVyIGxhIGNhdCZlYWN1dGU7Z29yaWUnOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdEYXRlIGRlIGNyJmVhY3V0ZTthdGlvbic7CiRsYW5nWydjdXJyZW50X3ZhbHVlJ10gPSAnVmFsZXVyIGFjdHVlbGxlJzsKJGxhbmdbJ2RhdGEnXSA9ICdEb25uJmVhY3V0ZTtlcyc7CiRsYW5nWydkZWZhdWx0J10gPSAnRCZlYWN1dGU7ZmF1dCc7CiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAnR2FiYXJpdHMgcGFyIGQmZWFjdXRlO2ZhdXQnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPk5vdGU6PC9zdHJvbmc+TGUgY29udGVudSBkZSBjZXMgem9uZXMgZCYjMDM5OyZlYWN1dGU7ZGl0aW9uIHNvbnQgdXRpbGlzJmVhY3V0ZTtzIHBvdXIgZCZlYWN1dGU7dGVybWluZXIgbGUgY29udGVudSBwYXIgZCZlYWN1dGU7ZmF1dCBkZXMgZ2FiYXJpdHMgcXVhbmQgdm91cyBjbGlxdWV6IHN1ciAmcXVvdDtBam91dCBkJiMwMzk7dW4gbm91dmVhdSBnYWJhcml0JnF1b3Q7IGRhbnMgbCYjMDM5O29uZ2xldCBjb3JyZXNwb25kYW50LiBMYSBtb2RpZmljYXRpb24gZHUgY29udGVudSBkYW5zIGNlcyB6b25lcyBkJiMwMzk7JmVhY3V0ZTtkaXRpb24gbiYjMDM5O2F1cmEgcGFzIGQmIzAzOTtlZmZldCBpbW0mZWFjdXRlO2RpYXQgc3VyIHZvdHJlIHNpdGUnOwokbGFuZ1snZGVsZXRlJ10gPSAnU3VwcHJpbWVyJzsKJGxhbmdbJ2RlbGV0ZV9hdHRyaWJzZXQnXSA9ICdTdXBwcmltZXIgbCYjMDM5O2F0dHJpYnV0JzsKJGxhbmdbJ2RlbGV0ZV9oaWVyYXJjaHlfaXRlbSddID0gJ1N1cHByaW1lciB1biAmZWFjdXRlO2wmZWFjdXRlO21lbnQgZGUgaGkmZWFjdXRlO3JhcmNoaWUnOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ0Rlc2NlbmRhbnQnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdEZXNjcmlwdGlvbiAnOwokbGFuZ1snZGVzdGluYXRpb24nXSA9ICdEZXN0aW5hdGlvbiAnOwokbGFuZ1snZGV0YWlscyddID0gJ0QmZWFjdXRlO3RhaWxzJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ0dhYmFyaXRzIGQmZWFjdXRlO3RhaWxzJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBam91dCBvdSAmZWFjdXRlO2RpdGlvbiBkJiMwMzk7dW4gZ2FiYXJpdCBkJmVhY3V0ZTt0YWlscyc7CiRsYW5nWydkaW1lbnNpb25zJ10gPSAnRGltZW5zaW9ucyAnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdEJmVhY3V0ZTtzYWN0aXYmZWFjdXRlOyc7CiRsYW5nWydkb3duJ10gPSAnRGVzY2VuZHJlJzsKJGxhbmdbJ2RyYWZ0J10gPSAnJkVhY3V0ZTtiYXVjaGUnOwokbGFuZ1snZHJvcGRvd24nXSA9ICdNZW51IGQmZWFjdXRlO3JvdWxhbnQnOwokbGFuZ1snZHJvcGRvd25fb3B0aW9ucyddID0gJ09wdGlvbnMgZHUgbWVudSBkJmVhY3V0ZTtyb3VsYW50IDxlbT4odW5pcXVlbWVudCBwb3VyIGxlcyBjaGFtcHMgZGUgdHlwZSBNZW51IGQmZWFjdXRlO3JvdWxhbnQpPC9lbT48YnIvPjxici8+PGVtPih1bmUgb3B0aW9uIGRlIG1lbnUgcGFyIGxpZ25lKTwvZW0+JzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0ZXInOwokbGFuZ1snZWRpdF9hdHRyaWJzZXQnXSA9ICdFZGl0ZXIgbGVzIEF0dHJpYnV0cyc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICcmRWFjdXRlO2RpdGVyIGxlcyBqZXV4IGQmIzAzOTthdHRyaWJ1dHMnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzX2ZvciddID0gJyZFYWN1dGU7ZGl0ZXIgbGVzIGpldXggZCYjMDM5O2F0dHJpYnV0cyBwb3VyJzsKJGxhbmdbJ2VkaXRfYXR0cmlidXRlcyddID0gJyZFYWN1dGU7ZGl0ZXIgbGVzIGF0dHJpYnV0cyc7CiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAnRWRpdGVyIGxhIGNhdCZlYWN1dGU7Z29yaWUnOwokbGFuZ1snZWRpdF9jYXRlZ29yeV9maWVsZHMnXSA9ICdFZGl0ZXIgbGVzIGNoYW1wcyBkZSBsYSBjYXQmZWFjdXRlO2dvcmllJzsKJGxhbmdbJ2VkaXRfaGllcmFyY2h5X2l0ZW0nXSA9ICdFZGl0ZXIgbCYjMDM5OyZlYWN1dGU7bCZlYWN1dGU7bWVudCBkZSBoaSZlYWN1dGU7cmFyY2hpZSc7CiRsYW5nWydlcnJvcl9hdHRyaWJzZXRfZXhpc3RzJ10gPSAnSWwgeSBhIGQmZWFjdXRlO2omYWdyYXZlOyB1biBhdHRyaWJ1dCBkdSBtJmVjaXJjO21lIG5vbSc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfc2t1J10gPSAnUGx1c2lldXJzIHZhbGV1cnMgU0tVIGlkZW50aXF1ZXMgdHJvdXYmZWFjdXRlO2VzJzsKJGxhbmdbJ2Vycm9yX2ZpZWxkdmFsdWVfZW1wdHknXSA9ICdVbmUgdmFsZXVyIGRvaXQgJmVjaXJjO3RyZSBpbmRpcXUmZWFjdXRlO2UnOwokbGFuZ1snZXJyb3JfZmlsZWZvcm1hdCddID0gJ1Byb2JsJmVncmF2ZTttZSBkZSBmb3JtYXQgZGUgZmljaGllcic7CiRsYW5nWydlcnJvcl9maWxlbm90Zm91bmQnXSA9ICdGaWNoaWVyIGludHJvdXZhYmxlJzsKJGxhbmdbJ2Vycm9yX2ZpbGVvcGVuJ10gPSAnRXJyZXVyICZhZ3JhdmU7IGwmIzAzOTtvdXZlcnR1cmUgZHUgZmljaGllciAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnUGFyZW50IGludmFsaWRlICh1biBlbGVtZW50IGRlIGhpJmVhY3V0ZTtyYXJjaGllIG5lIHBldXQgJmVjaXJjO3RyZSBzb24gcHJvcHJlIHBhcmVudCknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9uYW1lJ10gPSAnTGEgdmFsZXVyIGR1IGNoYW1wIHBlcnNvbm5hbGlzJmVhY3V0ZTsgZXN0IGludmFsaWRlIChzZXVscyBsZXMgY2FyYWN0JmVncmF2ZTtyZXMgYWxwaGFudW0mZWFjdXRlO3JpcXVlcyBzb250IGF1dG9yaXMmZWFjdXRlO3MpJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfdmFsdWUnXSA9ICdWYWxldXIgaW5jb3JyZWN0ZSBlbnRyJmVhY3V0ZTtlJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ1VuIHBhcmFtJmVncmF2ZTt0cmUgcmVxdWlzIGVzdCBtYW5xdWFudCBvdSBpbnZhbGlkZSc7CiRsYW5nWydlcnJvcl9uYW1ldXNlZCddID0gJ1VuICZlYWN1dGU7bCZlYWN1dGU7bWVudCBwb3J0YW50IGNlIG5vbSBleGlzdGUgZCZlYWN1dGU7aiZhZ3JhdmU7JzsKJGxhbmdbJ2Vycm9yX25vZmllbGR0eXBlJ10gPSAnQ2hvaXNpc3NlciBsZSB0eXBlIGR1IGNoYW1wJzsKJGxhbmdbJ2Vycm9yX25vbmFtZSddID0gJ1VuIG5vbSBkb2l0ICZlY2lyYzt0cmUgaW5kaXF1JmVhY3V0ZTsnOwokbGFuZ1snZXJyb3Jfb25lcXVhbnRpdHlmaWVsZCddID0gJ1NldWwgdW4gY2hhbXAgZGUgcXVhbnRpdCZlYWN1dGU7IGVzdCBhdXRvcmlzJmVhY3V0ZTsnOwokbGFuZ1snZXJyb3Jfb25lc3Vic2NyaXB0aW9uZmllbGQnXSA9ICdVbiBzZXVsIGNoYW1wcyBkZSBzb3VzY3JpcHRpb24gZXN0IGF1dG9yaXMmZWFjdXRlOyc7CiRsYW5nWydlcnJvcl9wZXJtaXNzaW9uZGVuaWVkJ10gPSAnUGVybWlzc2lvbiByZWZ1cyZlYWN1dGU7ZSc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X2FsaWFzdXNlZCddID0gJ0wmIzAzOTthbGlhcyBzcCZlYWN1dGU7Y2lmaSZlYWN1dGU7IGVzdCBkJmVhY3V0ZTtqJmFncmF2ZTsgdXRpbGlzJmVhY3V0ZTsnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9uYW1ldXNlZCddID0gJ1VuIHByb2R1aXQgcG9ydGFudCBjZSBub20gZXhpc3RlIGQmZWFjdXRlO2omYWdyYXZlOyc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X25vdGZvdW5kJ10gPSAnTGUgcHJvZHVpdCBkJmVhY3V0ZTtzaXImZWFjdXRlOyBuJiMwMzk7YSBwYXMgcHUgJmVjaXJjO3RyZSByZXRyb3V2JmVhY3V0ZTsnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9za3V1c2VkJ10gPSAnQ2V0dGUgdmFsZXVyIFNLVSBlc3QgZCZlYWN1dGU7aiZhZ3JhdmU7IHV0aWxpcyZlYWN1dGU7ZSBwYXIgdW4gYXV0cmUgcHJvZHVpdCc7CiRsYW5nWydlcnJvcl9wcmljZV9hZGp1c3RtZW50J10gPSAnTGEgdmFsZXVyIGQmIzAzOTthanVzdGVtZW50IGR1IHByaXggZXN0IGludmFsaWRlIHBvdXIgbCYjMDM5O29iamV0ICVzJzsKJGxhbmdbJ2Vycm9yX3NrdV9yZXF1aXJlZCddID0gJ01lcmNpIGQmIzAzOTtlbnRyZXIgdW4gU0tVIHVuaXF1ZSc7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnTCYjMDM5O2Vudm9pIGR1IGZpY2hpZXIgYSAmZWFjdXRlO2Nob3UmZWFjdXRlOyA6ICVzJzsKJGxhbmdbJ2V4Y2x1ZGVfY2F0ZWdvcmllcyddID0gJ0V4Y2x1cmUgbGVzIHByb2R1aXRzIGRlcyBjYXQmZWFjdXRlO2dvcmllcyBzJmVhY3V0ZTtsZWN0aW9ubiZlYWN1dGU7ZXMgZGVzIHImZWFjdXRlO3N1bHRhdHMnOwokbGFuZ1snZXhwaXJlX3NpeF9tb250aHMnXSA9ICdBcHImZWdyYXZlO3Mgc2l4IG1vaXMnOwokbGFuZ1snZXhwaXJlX29uZV95ZWFyJ10gPSAnQXByJmVncmF2ZTtzIHVuIGFuJzsKJGxhbmdbJ2V4cGlyZV90d29feWVhciddID0gJ0FwciZlZ3JhdmU7cyBkZXV4IGFucyc7CiRsYW5nWydleHRyYTEnXSA9ICdDaGFtcCBzdXBwbCZlYWN1dGU7bWVudGFpcmUgMSc7CiRsYW5nWydleHRyYTInXSA9ICdDaGFtcCBzdXBwbCZlYWN1dGU7bWVudGFpcmUgMic7CiRsYW5nWydmaWVsZCddID0gJ0NoYW1wJzsKJGxhbmdbJ2ZpZWxkcyddID0gJ0NoYW1wcyc7CiRsYW5nWydmaWVsZGRlZiddID0gJ0QmZWFjdXRlO2Zpbml0aW9uIGQmIzAzOTt1biBjaGFtcCc7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdEJmVhY3V0ZTtmaW5pdGlvbnMgZGVzIGNoYW1wcyc7CiRsYW5nWydmaWxlJ10gPSAnRmljaGllcic7CiRsYW5nWydmaWx0ZXJzJ10gPSAnRmlsdHJlcyc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICcmYW1wO2x0OyZhbXA7bHQ7JzsKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdQYXJhbSZlZ3JhdmU7dHJlcyBnJmVhY3V0ZTtuJmVhY3V0ZTtyYXV4JzsKJGxhbmdbJ2dvJ10gPSAnRW52b3llcic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPlF1ZSBmYWl0IGNlIG1vZHVsZSA/PC9oMz4NCjxwPkNlIG1vZHVsZSBwZXJtZXQgZGUgZCZlYWN1dGU7ZmluaXIsIGQmIzAzOTtvcmdhbmlzZXIgZXQgZCYjMDM5O2FmZmljaGVyIGxlcyBkb25uJmVhY3V0ZTtlcyBkZSBwcm9kdWl0cyBldCBkZXMgY2F0JmVhY3V0ZTtnb3JpZXMgYXNzb2NpJmVhY3V0ZTtlcy4gSWwgcGV1dCBzJiMwMzk7aW50JmVhY3V0ZTtncmVyIGRhbnMgdW5lIHNvbHV0aW9uIGRlIGNvbW1lcmNlICZlYWN1dGU7bGVjdHJvbmlxdWUsIG1haXMgYXVzc2kgZm9uY3Rpb25uZXIgZGUgbWFuaSZlZ3JhdmU7cmUgYXV0b25vbWUuIExlcyBwcm9kdWl0cyBwZXV2ZW50IGFwcGFydGVuaXIgJmFncmF2ZTsgdW5lIG91IHBsdXNpZXVycyBjYXQmZWFjdXRlO2dvcmllcy4gTGUgcHJpeCBldCBsZSBwb2lkcyBkZXMgcHJvZHVpdHMgZXN0IGcmZWFjdXRlO3ImZWFjdXRlOyBwYXIgbGUgbW9kdWxlLCBldCBkZXMgaW5mb3JtYXRpb25zIHN1cHBsJmVhY3V0ZTttZW50YWlyZXMgKGF0dHJpYnV0cykgcGV1dmVudCAmZWNpcmM7dHJlIGFqb3V0JmVhY3V0ZTtlcy4gQ2hhcXVlIGF0dHJpYnV0IHBldXQgZCZlYWN1dGU7ZmluaXIgdW5lIG1vZGlmaWNhdGlvbiBkdSBwcml4IGR1IHByb2R1aXQuICBVbiBpbmRpY2F0ZXVyIHBlcm1ldCBkZSBkJmVhY3V0ZTtmaW5pciBzaSBwYXIgZCZlYWN1dGU7ZmF1dCB1biBwcm9kdWl0IGVzdCBvdSBub24gdGF4JmVhY3V0ZTsuPC9wPg0KICA8cD5MZSBtb2R1bGUgcGVybWV0IGQmIzAzOTthdHRhY2hlciBqdXNxdSYjMDM5OyZhZ3JhdmU7IGRldXggaW1hZ2VzICZhZ3JhdmU7IHVuIHByb2R1aXQsIGRlIGQmZWFjdXRlO2ZpbmlyIGRlcyBjaGFtcHMgcGVyc29ubmFsaXMmZWFjdXRlO3MgcHVibGljcyBvdSBwcml2JmVhY3V0ZTtzLjwvcD4NCjxoMz5Gb25jdGlvbnMgOjwvaDM+DQo8dWw+DQogIDxsaT5UeXBlcyBkJiMwMzk7YWZmaWNoYWdlPC9saT4NCiAgICA8dWw+DQogICAgICA8bGk+QWZmaWNoYWdlIHImZWFjdXRlO3N1bSZlYWN1dGU7PC9saT4NCiAgICAgIDxsaT5BZmZpY2hhZ2UgcGFyIGNhdCZlYWN1dGU7Z29yaWU8L2xpPg0KICAgICAgPGxpPkFmZmljaGFnZSBkJmVhY3V0ZTt0YWlsbCZlYWN1dGU7PC9saT4gDQogICAgICA8bGk+QWZmaWNoYWdlIGhpJmVhY3V0ZTtyYXJjaGlxdWU8L2xpPg0KICAgIDwvdWw+DQogIDxsaT5Ub3VzIGxlcyBnYWJhcml0cyBzb250IHN0b2NrJmVhY3V0ZTtzIGRhbnMgbGEgYmFzZSBkZSBkb25uJmVhY3V0ZTtlczwvbGk+DQogIDxwPlBvdXIgY2hhcXVlIHR5cGUgZCYjMDM5O2FmZmljaGFnZSBwbHVzaWV1cnMgZ2FiYXJpdHMgcGV1dCAmZWNpcmM7dHJlIGNyJmVhY3V0ZTsmZWFjdXRlO3MsIGF2ZWMgdW4gZ2FiYXJpdCBwYXIgZCZlYWN1dGU7ZmF1dCwgZXQgZGVzIGdhYmFyaXRzIHBhc3MmZWFjdXRlO3MgZW4gcGFyYW0mZWdyYXZlO3RyZSBkZSBjaGFjdW4gZGVzIHR5cGUgZCYjMDM5O2FmZmljaGFnZS48L3A+DQogIDxsaT5UcmkgZXQgYWZmaWNoYWdlIHBhZ2UgcGFyIHBhZ2UgZGFucyBkYW5zIGwmIzAzOTthZmZpY2hhZ2UgciZlYWN1dGU7c3VtJmVhY3V0ZTs8L2xpPg0KICA8bGk+TGVzIHByb2R1aXRzIHBldXZlbnQgZmlndXJlciBkYW5zIHBsdXNpZXVycyBjYXQmZWFjdXRlO2dvcmllczwvbGk+DQogIDxsaT5Qb3NzaWJpbGl0JmVhY3V0ZTsgZGUgZCZlYWN1dGU7ZmluaXIgYXV0YW50IGQmIzAzOTthdHRyaWJ1dHMgcGVyc29ubmFsaXMmZWFjdXRlO3MgcXVlIG4mZWFjdXRlO2Nlc3NhaXJlLCB5IGNvbXByaXMgZGUgdHlwZSBpbWFnZSBvdSBmaWNoaWVyLjwvbGk+DQogIDxsaT5DciZlYWN1dGU7YXRpb24gYXV0b21hdGlxdWUgZGVzIGltYWdlcyBtaW5pYXR1cmVzPC9saT4NCiAgPGxpPkF0dHJpYnV0cyBkJmVhY3V0ZTtmaW5pcyBwYXIgbCYjMDM5O2FkbWluaXN0cmF0ZXVyPC9saT4NCiAgPGxpPkF0dHJpYnV0cyBkZSBwcm9kdWl0cyAoYXZlYyBwb3NzaWJpbGl0JmVhY3V0ZTsgZCYjMDM5O2FqdXN0ZW1lbnQgZHUgcHJpeCk8L2xpPg0KICA8bGk+UG9pZHMgZXQgaW5kaWNhdGV1ciBkZSB0YXhhdGlvbiAocG91ciBsJiMwMzk7aW50JmVhY3V0ZTtncmF0aW9uICZhZ3JhdmU7IHVuIHN5c3QmZWdyYXZlO21lIGRlIGNvbW1lcmNlICZlYWN1dGU7bGVjdHJvbmlxdWUpPC9saT4NCiAgPGxpPkxlcyBwcm9kdWl0cyBvbnQgdW4gc3RhdHV0IGRlIHB1YmxpY2F0aW9uIChicm91aWxsb24vcHVibGkmZWFjdXRlOyksIHF1aSBwZXJtZXQgZGUgbGVzIG1hc3F1ZXIgZGFucyBsYSBwYXJ0aWUgcHVibGlxdWUgc2kgYmVzb2luIGVzdC48L2xpPg0KICA8bGk+U3VwcG9ydCBkZXMgVVJMIHNpbXBsZXM8L2xpPg0KICA8bGk+PHN0cm9uZz5FdCBiaWVuIHBsdXMgZW5jb3JlLi4uPC9zdHJvbmc+PC9saT4NCjwvdWw+DQoNCjxoMz5Db21tZW50IGwmIzAzOTt1dGlsaXNlciA/PC9oMz4NCjx1bD4NCjxsaT5EJmVhY3V0ZTtmaW5pciBsZXMgcHImZWFjdXRlO2YmZWFjdXRlO3JlbmNlczwvbGk+DQo8cD5DZSBuJiMwMzk7ZXN0IGVuIHByaW5jaXBlIHF1JiMwMzk7dW5lIGZvcm1hbGl0JmVhY3V0ZTsuIFZvdXMgZGV2ZXogaW5kaXF1ZXIgbCYjMDM5O3VuaXQmZWFjdXRlOyBkZSBwb2lkcyBldCBsZSBjb2RlIG1vbiZlYWN1dGU7dGFpcmUgcXVlIHZvdXMgc291aGFpdGV6IHV0aWxpc2VyLjwvcD4NCg0KPGxpPkNvbmZpZ3VyZXIgbGVzIHV0aWxpc2F0ZXVycyBkdSBjYXRhbG9ndWUgZXQgbGV1cnMgcGVybWlzc2lvbnM8L2xpPg0KPHA+Q2UgbW9kdWxlIHV0aWxpc2UgbGEgcGVybWlzc2lvbiAmIzAzOTtNb2RpZmllciBsZXMgZ2FiYXJpdHMmIzAzOTsgKE1vZGlmeVRlbXBsYXRlcykgcG91ciBhdHRyaWJ1ZXIgbCYjMDM5O2F1dG9yaXNhdGlvbiBkZSBtb2RpZmllciBsZXMgZGl2ZXJzIGdhYmFyaXRzIGR1IG1vZHVsZS4gIERlIG0mZWNpcmM7bWUsIGxhIHBlcm1pc3Npb24gJiMwMzk7TW9kaWZpZXIgbGVzIHByJmVhY3V0ZTtmJmVhY3V0ZTtyZW5jZXMgZHUgc2l0ZSYjMDM5OyAoTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMpIGVzdCBuJmVhY3V0ZTtjZXNzYWlyZSBwb3VyIG1vZGlmaWVyIGxlcyBwciZlYWN1dGU7ZiZlYWN1dGU7cmVuY2VzIGR1IG1vZHVsZS4gUG91ciBwb3V2b2lyIG1vZGlmaWVyIGxhIGQmZWFjdXRlO2Zpbml0aW9uIGRlcyBhdHRyaWJ1dHMsIGxlcyBjYXQmZWFjdXRlO2dvcmllcyBvdSBsZXMgcHJvZHVpdHMsIGxlcyB1dGlsaXNhdGV1cnMgZG9pdmVudCBhdm9pciBsYSBwZXJtaXNzaW9uICYjMDM5O01vZGlmaWVyIGxlcyBQcm9kdWl0cyYjMDM5OyAoTW9kaWZ5IFByb2R1Y3RzKS48L3A+DQoNCjxsaT5DciZlYWN1dGU7ZXIgZGVzIGNhdCZlYWN1dGU7Z29yaWVzIChvcHRpb25uZWwpPC9saT4NCjxwPkNldHRlICZlYWN1dGU7dGFwZSBuJiMwMzk7ZXN0IHBhcyBpbmRpc3BlbnNhYmxlLCBtYWlzIHZvdXMgZGV2cmlleiBkJmVhY3V0ZTtmaW5pciBkZXMgY2F0JmVhY3V0ZTtnb3JpZXMgbWFpbnRlbmFudCBwb3VyICZlYWN1dGU7dml0ZXIgcGx1cyB0YXJkIGQmIzAzOTthdm9pciAmYWdyYXZlOyByZXZlbmlyIG1vZGlmaWVyIGNoYXF1ZSBwcm9kdWl0IHNpIHZvdXMgY2hhbmdleiBkJiMwMzk7YXZpcy4gUG91ciBham91dGVyIHVuZSBjYXQmZWFjdXRlO2dvcmllLCBjbGlxdWVyIHN1ciBsJiMwMzk7b25nbGV0ICYjMDM5O0NhdCZlYWN1dGU7Z29yaWVzJiMwMzk7IGR1IEdlc3Rpb25uYWlyZSBkZSBQcm9kdWl0cywgcHVpcyBzdXIgJiMwMzk7QWpvdXRlciB1bmUgY2F0JmVhY3V0ZTtnb3JpZSYjMDM5Oy4gVm91cyBkZXZyZXogZW5zdWl0ZSBpbmRpcXVlciBsZSBub20gZGUgY2V0dGUgbm91dmVsbGUgY2F0JmVhY3V0ZTtnb3JpZS48L3A+DQoNCjxsaT5DciZlYWN1dGU7ZXIgZGVzIGF0dHJpYnV0cyAob3B0aW9ubmVsKTwvbGk+DQo8cD5DZXR0ZSAmZWFjdXRlO3RhcGUgbiYjMDM5O2VzdCBwYXMgaW5kaXNwZW5zYWJsZSBzaSBsZSBtb2R1bGUgciZlYWN1dGU7cG9uZCBleGFjdGVtZW50ICZhZ3JhdmU7IHZvdHJlIGJlc29pbi4gUGFyIGNvbnRyZSwgc2kgdm91cyBzb3VoYWl0ZXogZCZlYWN1dGU7ZmluaXIgZGVzIGluZm9ybWF0aW9ucyBzdXBwbCZlYWN1dGU7bWVudGFpcmVzIHBvdXIgY2hhcXVlIHByb2R1aXQsIHZvdXMgZGV2ZXogY3ImZWFjdXRlO2VyIGNlcyBhdHRyaWJ1dHMuICBMYSBjciZlYWN1dGU7YXRpb24gZCYjMDM5O2F0dHJpYnV0cyByZXNzZW1ibGUgJmFncmF2ZTsgbGEgY3ImZWFjdXRlO2F0aW9uIGRlIGNhdCZlYWN1dGU7Z29yaWVzLCBtYWlzIHZvdXMgZGV2ZXogaW5kaXF1ZXIgdW4gcGV1IHBsdXMgZCYjMDM5O2luZm9ybWF0aW9ucy48L3A+DQo8cD5BY3R1ZWxsZW1lbnQsIHNpeCB0eXBlIGQmIzAzOTthdHRyaWJ1dHMgc29udCBkaXNwb25pYmxlczogJiMwMzk7dGV4dGJveCYjMDM5OyAoY2hhbXAgZGUgdGV4dGUpLCYjMDM5O2NoZWNrYm94JiMwMzk7IChjYXNlICZhZ3JhdmU7IGNvY2hlciksICYjMDM5O3RleHRhcmVhJiMwMzk7ICh6b25lIGRlIHRleHRlKSwgZHJvcGRvd24gKG1lbnUgZCZlYWN1dGU7cm91bGFudCksICYjMDM5O2ltYWdlJiMwMzk7IChmaWNoaWVyIGltYWdlKSBldCAmIzAzOTtmaWxlJiMwMzk7IChmaWNoaWVyIHF1ZWxjb25xdWUpLiAgQ2hvaXNpc3NleiB1biB0eXBlIGQmIzAzOTthdHRyaWJ1dCwgZG9ubmV6LWx1aSB1biBub20sIHVuIGxhYmVsIGQmIzAzOTthZmZpY2hhZ2UsIGV0IGluZGlxdWV6IHNpIGNldCBhdHRyaWJ1dCBlc3QgdmlzaWJsZSBvdSBub24gZGFucyBsYSBwYXJ0aWUgcHVibGlxdWUuPC9wPg0KDQo8bGk+Q3ImZWFjdXRlO2VyIGRlcyBwcm9kdWl0czwvbGk+DQo8cD5Wb3VzIGRldmV6IGNyJmVhY3V0ZTtlciBkZXMgcHJvZHVpdHMgcG91ciBxdWUgY2UgbW9kdWxlIHB1aXNzZSBhZmZpY2hlciBxdWVscXVlIGNob3NlIGRhbnMgbGEgcGFydGllIHB1YmxpcXVlIGR1IHNpdGUuIFBvdXIgY2hhY3VuIGRlcyBwcm9kdWl0cywgaW5kaXF1ZXogdW4gbm9tLCB1biBwcml4IChvcHRpb25uZWwpIHVuIHBvaWRzIChvcHRpb25uZWwpLCB1biBzdGF0dXQgKHB1YmxpJmVhY3V0ZTsvYnJvdWlsbG9uKSwgZXQgJmVhY3V0ZTt2ZW50dWVsbGVtZW50IGQmIzAzOTthdXRyZXMgaW5mb3JtYXRpb25zLiBWb3VzIHBvdXZleiBhdXNzaSBpbmRpcXVlciBzaSBsZSBwcm9kdWl0IGVzdCBzb3VtaXMgYXV4IHRheGVzLjwvcD4NCjxwPlNpIHZvdXMgYXZleiBjciZlYWN1dGU7JmVhY3V0ZTsgZGVzIGNhdCZlYWN1dGU7Z29yaWVzLCBsYSBsaXN0ZSBkZSBjZXMgY2F0JmVhY3V0ZTtnb3JpZSBlc3QgYWZmaWNoJmVhY3V0ZTtlcywgZXQgdm91cyBwb3V2ZXogZW4gcyZlYWN1dGU7bGVjdGlvbm5lciBsYSBvdSBsZXMgY2F0JmVhY3V0ZTtnb3JpZXMgYXV4cXVlbGxlcyBjZSBwcm9kdWl0IGFwcGFydGllbnQuPC9wPg0KPHA+U2kgZGVzIGF0dHJpYnV0cyBvbnQgJmVhY3V0ZTt0JmVhY3V0ZTsgZCZlYWN1dGU7ZmluaXMsIGxlcyBjaGFtcHMgZGUgc2Fpc2llIGFzc29jaSZlYWN1dGU7cyBzb250IGFmZmljaCZlYWN1dGU7cywgZXQgdm91cyBwb3VycmV6IHNhaXNpciBsZXMgdmFsZXVycyBkZSBjaGFxdWUgYXR0cmlidXQuIExhIHNhaXNpZSBkZXMgYXR0cmlidXRzIGVzdCBvcHRpb25uZWxsZS48L3A+DQoNCjxsaT5Bam91dGV6IGxlcyBiYWxpc2VzIGR1IG1vZHVsZSBkYW5zIHZvcyBnYWJhcml0cyBldC9vdSBkYW5zIHZvcyBwYWdlczwvbGk+DQoNCjxwPklsIHN1ZmZpdCBkJiMwMzk7aW5zJmVhY3V0ZTtyZXIgbGEgYmFsaXNlIDxzdHJvbmc+e1Byb2R1Y3RzfTwvc3Ryb25nPiBkYW5zIGxlIGNvbnRlbnUgZCYjMDM5O3VuZSBkZSB2b3MgcGFnZXMsIG91IGRhbnMgdW4gZGUgdm9zIGdhYmFyaXRzLjwvcD4NCjxwPlBvdXIgdXRpbGlzZXIgZCYjMDM5O2F1dHJlcyBmb25jdGlvbnMsIHZvdXMgZGV2ZXogYWpvdXRlciB1biBvdSBwbHVzaWV1cnMgcGFyYW0mZWdyYXZlO3RyZXMgJmFncmF2ZTsgbGEgYmFsaXNlIDxzdHJvbmc+e1Byb2R1Y3RzfTwvc3Ryb25nPi4gTGEgbGlzdGUgZGUgY2VzIHBhcmFtJmVncmF2ZTt0cmVzIGZpZ3VyZSB1biBwZXUgcGx1cyBiYXMuIFBhciBleGVtcGxlLCBwb3VyIGFmZmljaGVyIGxhIGxpc3RlIGRlcyBwcm9kdWl0cyBhcHBhcnRlbmFudCAmYWdyYXZlOyB1bmUgY2F0JmVhY3V0ZTtnb3JpZSwgdXRpbGlzZXogdW5lIGJhbGlzZSBjb21tZSA8Y29kZT57UHJvZHVjdHMgY2F0ZWdvcnk9JiMwMzk7bm9tX2RlX2xhX2NhdGVnb3JpZSYjMDM5O308L2NvZGU+PC9wPg0KPC91bD4NCg0KPGgzPlBsdWdpbnMgU21hcnR5PC9oMz4NCjxwPkNlIG1vZHVsZSBkJmVhY3V0ZTtmaW5pdCB1biBvdSBwbHVzaWV1cnMgcGx1Z2lucyBTbWFydHkgYWZpbiBkZSB2b3VzIHBlcm1ldHRyZSBkZSByJmVhY3V0ZTtjdXAmZWFjdXRlO3JlciBkaWZmJmVhY3V0ZTtyZW50ZXMgaW5mb3JtYXRpb25zIHN1ciBsZXMgcHJvZHVpdHMgJmFncmF2ZTsgaW5jbHVyZSBkYW5zIGxlcyBnYWJhcml0cyBkZSBwcm9kdWl0cyA6PC9wPg0KPHVsPg0KICA8bGk+e3Byb2R1Y3RzX2dldGNhdGVnb3J5IGNhdGVnb3J5aWQ9JiMwMzk7OTkmIzAzOTsgW2Fzc2lnbj0mIzAzOTt0bXAmIzAzOTtdfQ0KICA8cD5DZSBwbHVnaW4gcGVybWV0IGxhIHImZWFjdXRlO2N1cCZlYWN1dGU7cmF0aW9uIGRlIHRvdXRlcyBsZXMgaW5mb3JtYXRpb25zIGQmIzAzOTt1bmUgY2F0JmVhY3V0ZTtnb3JpZSBzcCZlYWN1dGU7Y2lmaXF1ZSAocyZlYWN1dGU7bGVjdGlvbiBwYXIgY2hhbXAgSUQpLiBJbCBwZXV0IGRlIG1hbmkmZWdyYXZlO3JlIG9wdGlvbm5lbGxlIGFzc2lnbmVyIGNlcyBpbmZvcm1hdGlvbnMgJmFncmF2ZTsgdW5lIHZhcmlhYmxlIHNtYXJ0eSAoZGFucyBsJiMwMzk7ZXhlbXBsZSA6IDxlbT50bXA8L2VtPikuIENldHRlIHZhcmlhYmxlIGRldmllbnQgYWxvcnMgdW4gb2JqZXQgY29udGVuYW50IHRvdXRlcyBsZXMgaW5mb3JtYXRpb25zIGRlIGxhIGNhdCZlYWN1dGU7Z29yaWUsIHkgY29tcHJpcyBsZXMgdmFsZXVycyBkZXMgY2hhbXBzLjxici8+UGFyIGV4ZW1wbGUgOiA8Y29kZT4NCntwcm9kdWN0c19nZXRjYXRlZ29yeSBjYXRlZ29yeWlkPTEgYXNzaWduPSYjMDM5O3RtcCYjMDM5O31Ob20gZGUgbGEgY2F0JmVhY3V0ZTtnb3JpZSA9IHskdG1wLT5uYW1lfTwvY29kZT48L3A+DQogIDwvbGk+DQo8L3VsPg0KDQo8aDM+QXNzaXN0YW5jZTwvaDM+DQo8cD5DZSBtb2R1bGUgZXN0IGZvdXJuaSBzYW5zIGF1Y3VuZSBhc3Npc3RhbmNlIGNvbW1lcmNpYWxlLiBDZXBlbmRhbnQsIHZvdXMgcG91dmV6IHRvdXQgZGUgbSZlY2lyYzttZSBvYnRlbmlyIGRlIGwmIzAzOTthaWRlOjwvcD4NCjx1bD4NCjxsaT5Qb3VyIG9idGVuaXIgbGEgZGVybmkmZWdyYXZlO3JlIHZlcnNpb24gZGUgY2UgbW9kdWxlLCBjb25zdWx0ZXIgbGEgRkFRLCBvdSBzaWduYWxlciB1biBidWcsIHJlbmRlei12b3VzIHN1ciBsYSA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5EZXZlbG9wZXJzIEZvcmdlPC9hPiBkZSBDTVMgTWFkZSBTaW1wbGUsIGV0IGZhaXRlcyB1bmUgcmVjaGVyY2hlIGRlICYjMDM5O1Byb2R1Y3RzJiMwMzk7LjwvbGk+DQo8bGk+UG91ciBvYnRlbmlyIHVuZSBhc3Npc3RhbmNlIGNvbW1lcmNpYWxlLCBjb250YWN0ZXogcGFyIG1haWwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPlJvYmVydCBDYW1wYmVsbDwvYT4sIGwmIzAzOTthdXRldXIgZGUgY2UgbW9kdWxlLjwvbGk+DQo8bGk+TGVzIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Rm9ydW1zIENNUyBNYWRlIFNpbXBsZTwvYT4gc29udCBhdXNzaSB1bmUgcHImZWFjdXRlO2Npc2V1c2Ugc291cmNlIGQmIzAzOTtpbmZvcm1hdGlvbnMuPC9saT4NCjxsaT5Qb3VyIGRlcyBxdWVzdGlvbnMgc2ltcGxlcyBlc3QgdW4gc3VwcG9ydCB0ZWNobmlxdWUgZGUgYmFzZSwgdm91cyBwb3V2ZXogY29udGFjdGVyIGwmIzAzOTthdXRldXIgZHUgbW9kdWxlIHN1ciA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPmxlIGNoYW5uZWwgSVJDIENNUzwvYT4uPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0hpZXJhcmNoaWUnOwokbGFuZ1snaGllcmFyY2h5X3Bvc2l0aW9uJ10gPSAnUG9zaXRpb24gZGFucyBsYSBoaSZlYWN1dGU7cmFyY2hpZSc7CiRsYW5nWydoaWVyYXJjaHlfc2V0dGluZ3MnXSA9ICdQYXJhbSZlZ3JhdmU7dHJlcyBkZSBoaSZlYWN1dGU7cmFyY2hpZSc7CiRsYW5nWydpZCddID0gJ0lkICc7CiRsYW5nWydpbWFnZXRleHQnXSA9ICdJbWFnZSAnOwokbGFuZ1snaW1hZ2VfaGFuZGxpbmdfc2V0dGluZ3MnXSA9ICdQYXJhbSZlZ3JhdmU7dHJlcyBkZSBtYW5pcHVsYXRpb24gZGVzIGltYWdlcyc7CiRsYW5nWydpbXBvcnRfZnJvbV9jc3YnXSA9ICdJbXBvcnRlciBsZXMgcHJvZHVpdHMgZGVwdWlzIHVuIGZpY2hpZXIgQ1NWJzsKJGxhbmdbJ2luY2hlcyddID0gJ1BvdWNlcyc7CiRsYW5nWydpbmNsdWRlX2NoaWxkcmVuJ10gPSAnQXZlYyBsZXMgZGVzY2VuZGFudHMgPyc7CiRsYW5nWydpbmZvX2FsbnVtb25seSddID0gJ0NhcmFjdCZlZ3JhdmU7cmVzIGFscGhhbnVtJmVhY3V0ZTtyaXF1ZXMgdW5pcXVlbWVudC4gUGFzIGQmIzAzOTtlc3BhY2VzLCBkZSBndWlsbGVtZXRzIG91IGRlIGNvbWJpbmFpc29ucyBhdXRyZXMgcXVlIGxldHRyZXMgZXQgY2hpZmZyZXMuJzsKJGxhbmdbJ2luZm9fYXR0cmlidGVtcGxhdGUnXSA9ICdMZXMgdmFyaWFibGVzIHBvc3NpYmxlcyBzb250IDogeyRhdHRyaWJfdGV4dH0seyRhdHRyaWJfYWRqdXN0fSx7JGN1cnJlbmN5X3N5bWJvbH0nOwokbGFuZ1snaW5mb19hdHRyaWJ1dGVzX2NvcGllZCddID0gJ0F0dHJpYnV0cyBjb3BpJmVhY3V0ZTtzJzsKJGxhbmdbJ2luZm9fYXV0b3dhdGVybWFyayddID0gJ0xhIGNvbmZpZ3VyYXRpb24gZGVzIGZpbGlncmFuZXMgZXN0IGNlbGxlIGR1IG1vZHVsZSBDR0V4dGVuc2lvbnMnOwokbGFuZ1snaW5mb19iYXRjaHNpemUnXSA9ICdJbmRpcXVleiBsZSBub21icmUgZGUgbGlnbmVzICZhZ3JhdmU7IHRyYWl0ZXIgJmFncmF2ZTsgY2hhcXVlIGl0JmVhY3V0ZTtyYXRpb24uIEQmZWdyYXZlO3MgcXUmIzAzOTt1bmUgaXQmZWFjdXRlO3JhdGlvbiBlc3QgdGVybWluJmVhY3V0ZTtlLCBsZSBzeXN0JmVncmF2ZTttZSBkJiMwMzk7aW1wb3J0YXRpb24gZCZlYWN1dGU7bWFycmUgbGEgc3VpdmFudGUuIFNpIGRlcyBwcm9ibCZlZ3JhdmU7bWVzIGRlIG0mZWFjdXRlO21vaXJlIG91IGRlIHRlbXBzIGQmIzAzOTtleCZlYWN1dGU7Y3V0aW9uIHNlIHByb2R1aXNlbnQsIHImZWFjdXRlO2R1aXNleiBjZXR0ZSB2YWxldXIsIG91IGNvbnN1bHRleiBsZSBmb3Vybmlzc2V1ciBkZSB2b3RyZSBoJmVhY3V0ZTtiZXJnZW1lbnQuJzsKJGxhbmdbJ2luZm9fY2FydF9tb2R1bGVfcGFyYW1zJ10gPSAnQ2VzIHBhcmFtJmVncmF2ZTt0cmVzIHNvbnQgcGFzcyZlYWN1dGU7cyBhdSBtb2R1bGUgcGFuaWVyIHMmZWFjdXRlO2xlY3Rpb25uJmVhY3V0ZTssICZhZ3JhdmU7IHBhcnRpciBkZSBsYSBkZXNjcmlwdGlvbiBldCBkdSByJmVhY3V0ZTtzdW0mZWFjdXRlOyBkdSBwcm9kdWl0Lic7CiRsYW5nWydpbmZvX2NvcHlfYXR0cmlic2V0cyddID0gJ0NldHRlIGFjdGlvbiBjb3BpZSBsZXMgamV1eCBkJiMwMzk7YXR0cmlidXRzIChob3JzIHZhbGV1cnMgU0tVKSBkZXB1aXMgdW4gYXV0cmUgcHJvZHVpdC4nOwokbGFuZ1snaW5mb19jcmVhdGVmaWVsZHMnXSA9ICdDciZlYWN1dGU7ZXIgYXV0b21hdGlxdWVtZW50IGxlcyBjaGFtcHMgaW5jb25udXMgPyA8ZW0+KGNyJmVhY3V0ZTthdGlvbiBkZSBjaGFtcHMgZGUgdHlwZSB0ZXh0ZSk8L2VtPic7CiRsYW5nWydpbmZvX2NyZWF0ZWNhdGVnb3JpZXMnXSA9ICdDciZlYWN1dGU7ZXIgYXV0b21hdGlxdWVtZW50IGxlcyBjYXQmZWFjdXRlO2dvcmllcyBkZSBwcm9kdWl0cyBwciZlYWN1dGU7c2VudGVzIGRhbnMgbGUgZmljaGllciBDU1YsIHNpIGVsbGVzIG4mIzAzOTtleGlzdGVudCBwYXMgZCZlYWN1dGU7aiZhZ3JhdmU7JzsKJGxhbmdbJ2luZm9fY3JlYXRlaGllcmFyY2h5J10gPSAnQ3ImZWFjdXRlO2VyIGF1dG9tYXRpcXVlbWVudCBsZXMgJmVhY3V0ZTtsJmVhY3V0ZTttZW50cyBkZSBoaSZlYWN1dGU7cmFyY2hpZSBkZSBwcm9kdWl0cyBwciZlYWN1dGU7c2VudGVzIGRhbnMgbGUgZmljaGllciBDU1YsIHNpIGlscyBuJiMwMzk7ZXhpc3RlbnQgcGFzIGQmZWFjdXRlO2omYWdyYXZlOyc7CiRsYW5nWydpbmZvX2RlY2ltYWxfdW5pdHMnXSA9ICdVdGlsaXNlciBsZSBwb2ludCAoLikgY29tbWUgcyZlYWN1dGU7cGFyYXRldXIgZCZlYWN1dGU7Y2ltYWwuIEV4ZW1wbGU6ICA8c3Ryb25nPjUuMjU8L3N0cm9uZz4nOwokbGFuZ1snaW5mb19kZWxpbWl0ZXInXSA9ICdJbmRpcXVlciBsZSBjYXRhY3QmZWdyYXZlO3JlIChvdSBsZXMgY2FyYWN0JmVncmF2ZTtyZXMpIHMmZWFjdXRlO3BhcmF0ZXVycyBkZSBjaGFtcHMnOwokbGFuZ1snaW5mb19kdXBsaWNhdGVwcm9kdWN0cyddID0gJ1RyYWl0ZW1lbnQgYSBhcHBsaXF1ZXIgYXV4IHByb2R1aXRzIGRvbnQgbGUgbm9tIGV4aXN0ZSBkJmVhY3V0ZTtqJmFncmF2ZTsgZGFucyBsZSBmaWNoaWVyIENTVic7CiRsYW5nWydpbmZvX2ZpZWxkZGVmc190YWInXSA9ICc8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBMZXMgY2hhbXBzIGQmZWFjdXRlO2ZpbmlzIGljaSBzb250IGNvbW11bnMgJmFncmF2ZTsgdG91cyBsZXMgcHJvZHVpdHMnOwokbGFuZ1snaW5mb19maWVsZHByb2JsZW1zJ10gPSAnVW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkdSB0cmFpdGVtZW50IGQmIzAzOTt1biBvdSBwbHVzaWV1cnMgY2hhbXBzIHBlcnNvbm5hbGlzJmVhY3V0ZTtzLiBMJiMwMzk7YWN0aW9uIHMmIzAzOTtlc3QgdGVybWluJmVhY3V0ZTtlIGNvcnJlY3RlbWVudCwgbWFpcyB2b3VzIGRldnJpZXogY2hlcmNoZXIgbGEgY2F1c2UgZGUgbCYjMDM5O2VycmV1ci4nOwokbGFuZ1snaW5mb19oYW5kbGVpbWFnZXMnXSA9ICdMb3JzIGRlIGwmIzAzOTtpbXBvcnRhdGlvbiwgc2kgdW4gbm9tIGRlIGZpY2hpZXIgaW1hZ2UgZXN0IHRyb3V2JmVhY3V0ZTsgZGFucyB1bmUgY29sb25uZSwgZmF1dC1pbCBsZSBkJmVhY3V0ZTtwbGFjZXIgZGUgc29uIHImZWFjdXRlO3BlcnRvaXJlIGQmIzAzOTtvcmlnaW5lLCBsdWkgYWpvdXRlciB1biBmaWxpZ3JhbmUsIGNyJmVhY3V0ZTtlciB1bmUgbWluaWF0dXJlLCBldCBjaGFuZ2VyIGxlIHR5cGUgZHUgY2hhbXAgYXNzb2NpJmVhY3V0ZTsgZW4gY2hhbXAgJnF1b3Q7aW1hZ2UmcXVvdDsgPyc7CiRsYW5nWydpbmZvX2hpZXJwYWdlJ10gPSAnUGFyIGQmZWFjdXRlO2ZhdXQsIHV0aWxpc2VyIGNldHRlIHBhZ2UgcG91ciBsYSB2dWUgZGUgaGllcmFyY2hpZS4gTCYjMDM5O0lEIGRlIGxhIHBhZ2UgbmUgc2VyYSBwYXMgc3AmZWFjdXRlO2NpZmkmZWFjdXRlOyBkYW5zIGwmIzAzOTtVUkwuJzsKJGxhbmdbJ2luZm9faW1hZ2VwYXRoJ10gPSAnQ2hlbWluIChyZWxhdGlmIGF1IHImZWFjdXRlO3BlcnRvaXJlIHVwbG9hZHMpIGRlcyBpbWFnZXMgciZlYWN1dGU7ZiZlYWN1dGU7cmVuYyZlYWN1dGU7ZXMgcGFyIGxlIGZpY2hpZXIgaW1wb3J0JmVhY3V0ZTsgJzsKJGxhbmdbJ2luZm9faW1hZ2VzdHVmZl9kZXByZWNhdGVkJ10gPSAnTGVzIGZvbmN0aW9ucyBkZSB0cmFpdGVtZW50IGQmIzAzOTtpbWFnZXMgc29udCBkJmVhY3V0ZTtwciZlYWN1dGU7Y2kmZWFjdXRlO2VzIGV0IHZvbnQgJmVjaXJjO3RyZSBzdXBwcmltJmVhY3V0ZTtlcyBkYW5zIHVuZSBmdXR1cmUgdmVyc2lvbi4gVXRpbGlzZXogbGUgbW9kdWxlIENHU21hcnRJbWFnZSBwb3VyIGxlIHRyYWl0ZW1lbnQgZCYjMDM5O2ltYWdlcy4nOwokbGFuZ1snaW5mb19pbXBvcnRfdGVzdF9wYXNzZWQnXSA9ICdBcHImZWdyYXZlO3MgdW4gZXhhbWVuIHByJmVhY3V0ZTtsaW1pbmFpcmUsIGxlIGZpY2hpZXIgc2VtYmxlIGNvcnJlY3QuPGJyLz5DZXBlbmRhbnQsIGlsIHNlIHBldXQgcXUmIzAzOTtpbCBjb250aWVubmUgdG91dCBkZSBtJmVjaXJjO21lIGRlcyBlcnJldXJzIHF1aSBuZSBwb3Vycm9udCAmZWNpcmM7dHJlIGQmZWFjdXRlO3RlY3QmZWFjdXRlO2VzIHF1ZSBsb3JzIGRlIGwmIzAzOTtpbXBvcnRhdGlvbi4nOwokbGFuZ1snaW5mb19wcmV0dHloaWVydXJscyddID0gJ0luY2x1cmUgbGUgbm9tIGRlIGxhIGhpJmVhY3V0ZTtyYXJjaGllIGRhbnMgbCYjMDM5O1VSTCc7CiRsYW5nWydpbmZvX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdMZXMgdmFsZXVycyB2YWxpZGVzIHNvbnQgKy0qIy4jIyc7CiRsYW5nWydpbmZvX3Byb2Rub3Rmb3VuZCddID0gJ0NldHRlIG9wdGlvbiBwYXJhbSZlZ3JhdmU7dHJlIGxlIGNvbXBvcnRlbWVudCBkdSBzaXRlIGxvcnNxdSYjMDM5O3VuZSBmaWNoZSBwcm9kdWl0IGVzdCBhZmZpY2gmZWFjdXRlO2UgZGlyZWN0ZW1lbnQgJmFncmF2ZTsgbGEgc2Fpc2llIGQmIzAzOTt1bmUgVVJMLCBldCBxdWUgY2UgcHJvZHVpdCBuZSBwZXV0ICZlY2lyYzt0cmUgYWZmaWNoJmVhY3V0ZTsgKHBvdXIgdG91dGVzIHJhaXNvbnMgOiBkJmVhY3V0ZTtzYWN0aXYmZWFjdXRlOywgc3VwcHJpbSZlYWN1dGU7LCBldGMuKS4nOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gJ0xlcyBjaGFtcHMgcHVibGljcyBzb250IHZpc2libGVzIHBhciBsZXMgdXRpbGlzYXRldXJzLic7CiRsYW5nWydpbmZvX3Jlb3JkZXJfY29udGVudCddID0gJ1RoaXMgb3BlcmF0aW9uIGFsbG93cyBkcmFnZ2luZyB0aGUgaW5kaXZpZHVhbCBub2RlcyBpbiB0aGUgdHJlZSB0byBhZGp1c3R0aCBvcmRlciB0aGF0IHRoZXkgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gaW4gdGhlIGhpZXJhcmNoeSB2aWV3JzsKJGxhbmdbJ2luZm9fc2V0ZWNvbWhhbmRsZXJzJ10gPSAnQ2V0dGUgZm9uY3Rpb24gdmEgcyYjMDM5O2Fzc3VyZXIgcXVlIHRvdXMgbGVzIGdlc3Rpb25uYWlyZXMgZCYjMDM5OyZlYWN1dGU7diZlZ3JhdmU7bmVtZW50cyBFLWNvbW1lcmNlIHNvbnQgaW5zdGFsbCZlYWN1dGU7cy4gQ2VjaSBlc3QgdXRpbGUgbG9yc3F1ZSB2b3VzIHNvdWhhaXRleiBnJmVhY3V0ZTtyZXIgbGVzIHN0b2NrcyAvIHF1YW50aXQmZWFjdXRlO3MgZXQgcXVlIGxlcyBnZXN0aW9ubmFpcmVzIG4mIzAzOTtvbnQgcGFzICZlYWN1dGU7dCZlYWN1dGU7cyBtaXMgZW4gcGxhY2UgbG9ycyBkZSBsJiMwMzk7aW5zdGFsbGF0aW9uIG91IGxhIG1pc2UgJmFncmF2ZTsgam91ci4nOwokbGFuZ1snbGFiZWwnXSA9ICcmRWFjdXRlO3RpcXVldHRlJzsKJGxhbmdbJ2xhYmVsX3NraXAnXSA9ICdJZ25vcmVyJzsKJGxhbmdbJ2xhYmVsX292ZXJ3cml0ZSddID0gJ0VjcmFzZXInOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICcmYW1wO2d0OyZhbXA7Z3Q7JzsKJGxhbmdbJ2xhc3RfbW9kaWZpZWQnXSA9ICdEZXJuaSZlZ3JhdmU7cmUgbW9kaWZpY2F0aW9uJzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnTG9nbyAnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTG9uZ2V1ciBNYXhpbWFsZSA8ZW0+KGFwcGxpY2FibGUgc2V1bGVtZW50IGF1eCBjaGFtcHMgdGV4dGJveCk8L2VtPic7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICdEYXRlIGRlIG1vZGlmaWNhdGlvbic7CiRsYW5nWydtb2R1bGVfZGVzY3JpcHRpb24nXSA9ICdVbiBtb2R1bGUgZGUgZ2VzdGlvbiBkJiMwMzk7dW4gY2F0YWxvZ3VlIGRlIHByb2R1aXRzLCBkZSBsZXVycyBwcml4LCBpbWFnZXMsIGV0Yy4gUGVybWV0IGF1c3NpIGF1eCB1dGlsaXNhdGV1cnMgZGUgcmVtcGxpciB1biBwYW5pZXIgZCYjMDM5O2FjaGF0Lic7CiRsYW5nWydtb3ZlX2Rvd24nXSA9ICdEZXNjZW5kcmUnOwokbGFuZ1snbW92ZV91cCddID0gJ1JlbW9udGVyJzsKJGxhbmdbJ21zZ19ldmVudGhhbmRsZXJzX2NyZWF0ZWQnXSA9ICdHZXN0aW9ubmFpcmVzIGQmIzAzOTsmZWFjdXRlO3YmZWdyYXZlO25lbWVudHMgY3ImZWFjdXRlO2VzJzsKJGxhbmdbJ25hbWUnXSA9ICdOb20nOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdWb3VzIG4mIzAzOTthdmV6IHBhcyBsYSBwZXJtaXNzaW9uIHJlcXVpc2UmbmJzcDs6ICVzJzsKJGxhbmdbJ25ld19jYXRlZ29yeV9uYW1lJ10gPSAnTm91dmVhdSBub20gZGUgY2F0JmVhY3V0ZTtnb3JpZSc7CiRsYW5nWyduZXh0cGFnZSddID0gJyZhbXA7Z3Q7JzsKJGxhbmdbJ25vJ10gPSAnTm9uJzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnVm91cyBuJiMwMzk7YXZleiBwYXMgZG9ubiZlYWN1dGU7IGRlIG5vbSc7CiRsYW5nWydub25lJ10gPSAnQXVjdW4nOwokbGFuZ1snbm90aGluZ19zZWxlY3RkJ10gPSAnVm91cyBuJiMwMzk7YXZleiByaWVuIHMmZWFjdXRlO2xlY3Rpb25uJmVhY3V0ZTsnOwokbGFuZ1snb2YnXSA9ICdkZSc7CiRsYW5nWydvcGVyYXRpb25fY2FuY2VsbGVkJ10gPSAnT3AmZWFjdXRlO3JhdGlvbiBhbm51bCZlYWN1dGU7ZSc7CiRsYW5nWydvcGVyYXRpb25fY29tcGxldGUnXSA9ICdPcCZlYWN1dGU7cmF0aW9uIHImZWFjdXRlO2FsaXMmZWFjdXRlO2UnOwokbGFuZ1sncGFnZSddID0gJ1BhZ2UgJzsKJGxhbmdbJ3BhZ2Vfb2YnXSA9ICdQYWdlICVzIHN1ciAlcyc7CiRsYW5nWydwYWdlX2xpbWl0J10gPSAnRWwmZWFjdXRlO21lbnRzIHBhciBwYWdlJzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ1NwJmVhY3V0ZTtjaWZpZSBsZSBjb21wb3J0ZW1lbnQgZHUgbW9kdWxlLiBMZXMgdmFsZXVycyBwb3NzaWJsZXMgc29udCZuYnNwOzoNCjx1bD4NCiAgPGxpPmhpZXJhcmNoeSAtIEFmZmljaGVyIGxhIGhpJmVhY3V0ZTtyYXJjaGllIGRlIHByb2R1aXRzPC9saT4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtIEFmZmljaGVyIHVuZSBsaXN0ZSBkZSBjYXQmZWFjdXRlO2dvcmllcyBkZSBwcm9kdWl0czwvbEkNCiAgPGxpPjxlbT5kZWZhdWx0PC9lbT4gLSBBZmZpY2hlIGxlIHNvbW1haXJlIGRlcyBwcm9kdWl0czwvbGk+DQogIDxsaT5kZXRhaWxzIC0gQWZmaWNoZSBsZSBkJmVhY3V0ZTt0YWlsIGQmIzAzOTt1biBwcm9kdWl0IGRvbm4mZWFjdXRlOzwvbGk+DQogIDxsaT5maWVsZGxpc3QgLSBBZmZpY2hlIGxhIGxpc3RlIGRlcyB2YWxldXJzIGR1IGNoYW1wIHNwJmVhY3V0ZTtjaWZpJmVhY3V0ZTsuDQogICAgIDxwPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7LSBDZXR0ZSBhY3Rpb24gcGV1dCAmZWNpcmM7dHJlIHV0aWxpcyZlYWN1dGU7ZSBwb3VyIGNyJmVhY3V0ZTtlciB1bmUgbmF2aWdhdGlvbiAmYWdyYXZlOyBwYXJ0aXIgZGVzIHZhbGV1cnMgZCYjMDM5O3VuIGNoYW1wIHNwJmVhY3V0ZTtjaWZpcXVlLiBQYXIgZXhlbXBsZSwgdm91cyBwb3V2ZXogY3ImZWFjdXRlO2VyIHVuZSBsaXN0ZSBkJmVhY3V0ZTtyb3VsYW50ZSBwZXJzb25uYWxpcyZlYWN1dGU7ZSBhcHBlbCZlYWN1dGU7ZSAmcXVvdDtDb3VsZXVyJnF1b3Q7IGV0IGFsb3JzIGNyJmVhY3V0ZTtlciB1bmUgbmF2aWdhdGlvbiBiYXMmZWFjdXRlO2Ugc3VyIGxlcyBkaWZmJmVhY3V0ZTtyZW50ZXMgY291bGV1cnMuDQogICAgIDwvcD4NCiAgPC9saT4NCiAgPGxpPnNlYXJjaCAtIEFmZmljaGVyIHVuIGZvcm11bGFpcmUgZGUgcmVjaGVyY2hlIGRlIHByb2R1aXRzIG11bHRpLWNyaXQmZWdyYXZlO3JlczwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ0xvcnMgZGUgbCYjMDM5O3V0aWxpc2F0aW9uIGVuIG1vZGUgc29tbWFpcmUgKDxlbT5kZWZhdWx0PC9lbT4pLCBjZSBwYXJhbSZlZ3JhdmU7dHJlLCBxdWkgZGV2cmFpdCBjb3JyZXNwb25kcmUgYXUgbm9tIGQmIzAzOTt1bmUgY2F0JmVhY3V0ZTtnb3JpZSBleGlzdGFudGUsIHNlcmEgdXRpbGlzJmVhY3V0ZTsgcG91ciBhZmZpY2hlciBzZXVsZW1lbnQgbGVzIGVudHImZWFjdXRlO2VzIHF1aSBzb250IGRhbnMgY2V0dGUgY2F0JmVhY3V0ZTtnb3JpZSAodW5lIGxpc3RlIHMmZWFjdXRlO3BhciZlYWN1dGU7ZSBwYXIgZGVzIHZpcmd1bGVzIHBldXQgJmVjaXJjO3RyZSBmb3VybmllKSc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWZpZWxkJ10gPSAnVXRpbGlzJmVhY3V0ZTsgc2V1bGVtZW50IGFjdGlvbiBsJiMwMzk7YWN0aW9uIDxlbT5jYXRlZ29yeWxpc3Q8L2VtPiwgY2UgcGFyYW0mZWdyYXZlO3RyZSBwZXV0ICZlY2lyYzt0cmUgdXRpbGlzJmVhY3V0ZTsgcG91ciBmaWx0cmVyIGxlcyBjYXQmZWFjdXRlO2dvcmllcyBlbiBzZSBiYXNhbnQgc3VyIHVuZSB2YWxldXIgZCYjMDM5O3VuIGNoYW1wIGRlIGNhdCZlYWN1dGU7Z29yaWUuIElsIG5lIGZvbmN0aW9ubmVyYSBwYXMgYXZlYyBsZXMgcGFyYW0mZWdyYXZlO3RyZXMgPGVtPmNhdGVnb3J5PC9lbT4gb3UgPGVtPmNhdGVnb3J5X2lkPC9lbT4uIExhIHN5bnRheGUgZGUgY2UgcGFyYW0mZWdyYXZlO3RyZSBlc3QgdW5lIGxpc3RlIGRlIG5vbXMgZGUgY2hhbXBzIGV0IGRlIHZhbGV1cnMgcyZlYWN1dGU7cGFyJmVhY3V0ZTtlcyBwYXIgZGVzIHZpcmd1bGVzLiAgUGFyIGV4ZW1wbGUgOiBjYXRlZ29yeWxpc3Q9JnF1b3Q7bm9tX2NoYW1wOnZhbGV1cixub21fY2hhbXAyOnZhbGV1cl8yJnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnVXRpbGlzJmVhY3V0ZTsgc2V1bGVtZW50IGF2ZWMgbCYjMDM5O2FjdGlvbiA8ZW0+Y2F0ZWdvcnlsaXN0PC9lbT4sIGNlIHBhcmFtJmVncmF2ZTt0cmUgaW5kaXF1ZSBxdWVsIGdhYmFyaXQgZG9pdCAmZWNpcmM7dHJlIHV0aWxpcyZlYWN1dGU7IHBvdXIgbCYjMDM5O2FmZmljaGFnZS4gU2kgYXVjdW5lIHZhbGV1ciBuJiMwMzk7ZXN0IGZvdXJuaWUsIGxlIGdhYmFyaXQgcGFyIGQmZWFjdXRlO2ZhdXQgYWN0dWVsIGRlIGNlIHR5cGUgZXN0IHV0aWxpcyZlYWN1dGU7Lic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3RkdGx0ZW1wbGF0ZSddID0gJ1V0aWxpcyZlYWN1dGU7IHNldWxlbWVudCBhdmVjIGwmIzAzOTthY3Rpb24gPGVtPmNhdGVnb3J5bGlzdDwvZW0+LCBjZSBwYXJhbSZlZ3JhdmU7dHJlIGluZGlxdWUgcXVlbCBnYWJhcml0IGRvaXQgJmVjaXJjO3RyZSB1dGlsaXMmZWFjdXRlOyBwb3VyIGwmIzAzOTthZmZpY2hhZ2UgZHUgZCZlYWN1dGU7dGFpbCBkJiMwMzk7dW5lIGNhdCZlYWN1dGU7Z29yaWUuIENlIHBhcmFtJmVncmF2ZTt0cmUgdXRpbGlzZSB1biBnYWJhcml0IGRlIGxpc3RlIGRlIGNhdCZlYWN1dGU7Z29yaWVzLi4uIFNpIGF1Y3VuZSB2YWxldXIgbiYjMDM5O2VzdCBzcCZlYWN1dGU7Y2lmaSZlYWN1dGU7ZSwgYyYjMDM5O2VzdCBsZSBnYWJhcml0IHBhciBkJmVhY3V0ZTtmYXV0IGRlIGNlIHR5cGUgcXVpIGVzdCB1dGlsaXMmZWFjdXRlOy4nOwokbGFuZ1sncGFyYW1fZGV0YWlscGFnZSddID0gJ1NwJmVhY3V0ZTtjaWZpZSBsJiMwMzk7aWQgb3UgbCYjMDM5O2FsaWFzIGRlIGxhIHBhZ2UgcXVpIGRvaXQgJmVjaXJjO3RyZSB1dGlsaXMmZWFjdXRlO2UgcG91ciBhZmZpY2hlciBsZSBkJmVhY3V0ZTt0YWlsLic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ0NlIHBhcmFtJmVncmF2ZTt0cmUgc3AmZWFjdXRlO2NpZmllIHF1ZWwgZ2FiYXJpdCBkZXZyYWl0ICZlY2lyYzt0cmUgdXRpbGlzJmVhY3V0ZTsgcG91ciBsJiMwMzk7YWZmaWNoYWdlIGVuIG1vZGUgZCZlYWN1dGU7dGFpbHMuIFNpIGF1Y3VuZSB2YWxldXIgbiYjMDM5O2VzdCBmb3VybmllLCBsZSBnYWJhcml0IHBhciBkJmVhY3V0ZTtmYXV0IGFjdHVlbCBkZSBjZSB0eXBlIGVzdCB1dGlsaXMmZWFjdXRlOy4nOwokbGFuZ1sncGFyYW1fZXhjbHVkZWNhdCddID0gJ1V0aWxpcyZlYWN1dGU7IHNldWxlbWVudCBhdmVjIGwmIzAzOTthY3Rpb24gcGFyIGQmZWFjdXRlO2ZhdXQgKHN1bW1hcnkpLCBjZSBwYXJhbSZlZ3JhdmU7dHJlIHZvdXMgcGVybWV0IGQmIzAzOTtleGNsdXJlIGxlcyBwcm9kdWl0cyBkZSBjZXJ0YWluZXMgY2F0JmVhY3V0ZTtnb3JpZXMgZHUgciZlYWN1dGU7c3VsdGF0LiBWb3VzIHBvdXZleiB1dGlsaXNlciB1bmUgbGlzdGUgZGUgbm9tcyBkZSBjYXQmZWFjdXRlO2dvcmllcyBzJmVhY3V0ZTtwYXImZWFjdXRlO3MgcGFyIGRlcyB2aXJndWxlcy4gQ2UgcGFyYW0mZWdyYXZlO3RyZSBwZXV0IGZvbmN0aW9ubmVyIGVuIGNvbmpvbmN0aW9uIGF2ZWMgbGUgcGFyYW0mZWdyYXZlO3RyZSA8ZW0+Y2F0ZWdvcnk8L2VtPiBwb3VyIGFmZmljaGVyIHVuZSBsaXN0ZSBkZSBwcm9kdWl0cyBxdWkgc29udCBkYW5zIHVuZSBjYXQmZWFjdXRlO2dvcmllIG1haXMgcGFzIGRhbnMgZCYjMDM5O2F1dHJlcy4nOwokbGFuZ1sncGFyYW1fZmllbGQnXSA9ICdVdGlsaXMmZWFjdXRlOyBzZXVsZW1lbnQgYXZlYyBsJiMwMzk7YWN0aW9uIDxlbT5maWVsZGxpc3Q8L2VtPiwgY2UgcGFyYW0mZWdyYXZlO3RyZSBlc3Qgb2JsaWdhdG9pcmUgcG91ciBwciZlYWN1dGU7Y2lzZXIgbGUgbm9tIGR1IGNoYW1wIHByb2R1aXQgJmFncmF2ZTsgdXRpbGlzZXIgcG91ciBjciZlYWN1dGU7ZXIgbGEgbGlzdGUgZCZlYWN1dGU7cm91bGFudGUuJzsKJGxhbmdbJ3BhcmFtX2ZpZWxkdmFsJ10gPSAnVXRpbGlzJmVhY3V0ZTsgc2V1bGVtZW50IGF2ZWMgbCYjMDM5O2FjdGlvbiA8ZW0+ZGVmYXVsdDwvZW0+LCBjZSBwYXJhbSZlZ3JhdmU7dHJlIHBlcm1ldCBkZSBzcCZlYWN1dGU7Y2lmaWVyIGxhIHZhbGV1ciBkJiMwMzk7dW4gY2hhbXAgcG91ciBsaW1pdGVyIGxlcyByJmVhY3V0ZTtzdWx0YXRzIGFmZmljaCZlYWN1dGU7cy4gVmFsZXVycyBzcCZlYWN1dGU7Y2lhbGVzIHBvc3NpYmxlcyA6ICZxdW90Ozo6bnVsbDo6JnF1b3Q7IC0gJnF1b3Q7Ojpub3RudWxsOjomcXVvdDsnOwokbGFuZ1sncGFyYW1faGllcmFyY2h5J10gPSAnVXRpbGlzJmVhY3V0ZTsgc2V1bGVtZW50IGF2ZWMgbCYjMDM5O2FjdGlvbiA8ZW0+ZGVmYXVsdDwvZW0+LCBjZSBwYXJhbSZlZ3JhdmU7dHJlIGluZGlxdWUgcXVlIHNldWxzIGxlcyBwcm9kdWl0cyBhcHBhcnRlbmFudCAmYWdyYXZlOyBjZXQgJmVhY3V0ZTtsJmVhY3V0ZTttZW50IGRlIGhpJmVhY3V0ZTtyYXJjaGllIGRvaXZlbnQgJmVjaXJjO3RyZSBhZmZpY2gmZWFjdXRlO3MuICBEZXMgam9rZXJzIHBldXZlbnQgJmVjaXJjO3RyZSB1dGlsaXMmZWFjdXRlO3MgcG91ciAmZWFjdXRlO3RlbmRyZSBsJiMwMzk7YWZmaWNoYWdlIGF1eCBwYXJlbnQgb3UgZW5mYW50cyBkZSBsJiMwMzk7JmVhY3V0ZTtsJmVhY3V0ZTttZW50IGRlIGhpJmVhY3V0ZTtyYXJjaGllIGluZGlxdSZlYWN1dGU7LiAgUGFyIGV4ZW1wbGUge1Byb2R1Y3RzIGhpZXJhcmNoeT0mIzAzOTtwb3Rpcm9ucyomIzAzOTt9IGFmZmljaGUgdW4gc29tbWFpcmUgZGUgdG91cyBsZXMgcG90aXJvbnMsIGV0IGRlcyBwcm9kdWl0cyBhcHBhcnRlbmFudCBhdXggZGVzY2VuZGFudHMgZGUgbCYjMDM5OyZlYWN1dGU7bCZlYWN1dGU7bWVudCBkZSBoaSZlYWN1dGU7cmFyY2hpZSAmIzAzOTtwb3Rpcm9ucyYjMDM5Oy4gIERlIG0mZWNpcmM7bWUsIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7KnBvdGlyb25zJiMwMzk7fSBhZmZpY2hlIHVuIHNvbW1haXJlIGRlIHRvdXMgbGVzIHBvdGlyb25zLCBldCBkZXMgcHJvZHVpdHMgYXBwYXJ0ZW5hbnQgYXV4IHBhcmVudHMgZGUgbCYjMDM5OyZlYWN1dGU7bCZlYWN1dGU7bWVudCBkZSBoaSZlYWN1dGU7cmFyY2hpZSAmIzAzOTtwb3Rpcm9ucyYjMDM5Oyc7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZSddID0gJ0NlIHBhcmFtJmVncmF2ZTt0cmUgaW5kaXF1ZSBsZSBnYWJhcml0ICZhZ3JhdmU7IHV0aWxpc2VyIGxvcnMgZGUgbCYjMDM5O2FmZmljaGFnZSBkZSBsYSBoaSZlYWN1dGU7cmFyY2hpZS4gTGUgZ2FiYXJpdCBkZSBoaSZlYWN1dGU7cmFyY2hpZSBwYXIgZCZlYWN1dGU7ZmF1dCBlc3QgdXRpbGlzJmVhY3V0ZTsgc2kgY2UgcGFyYW0mZWdyYXZlO3RyZSBlc3QgYWJzZW50IG91IHZpZGUuJzsKJGxhbmdbJ3BhcmFtX2lubGluZSddID0gJ1V0aWxpcyZlYWN1dGU7IHNldWxlbWVudCBhdmVjIGwmIzAzOTthY3Rpb24gPGVtPnNlYXJjaDwvZW0+LCBjZSBwYXJhbSZlZ3JhdmU7dHJlIHNwJmVhY3V0ZTtjaWZpZSBxdWUgbGEgcGFnZSBkZSByJmVhY3V0ZTtzdWx0YXRzIGFmZmljaCZlYWN1dGU7ZSBkb2l0ICZlY2lyYzt0cmUgYWZmaWNoJmVhY3V0ZTtlICZxdW90O2VuIGxpZ25lJnF1b3Q7IG91IG5vbi4nOwokbGFuZ1sncGFyYW1fcGFnZWxpbWl0J10gPSAnVXRpbGlzJmVhY3V0ZTsgc2V1bGVtZW50IGF2ZWMgbCYjMDM5O2FjdGlvbiA8ZW0+ZGVmYXVsdDwvZW0+LCBjZSBwYXJhbSZlZ3JhdmU7dHJlIHNwJmVhY3V0ZTtjaWZpZSBjb21iaWVuIGQmIzAzOTthcnRpY2xlcyBkb2l2ZW50ICZlY2lyYzt0cmUgbGlzdCZlYWN1dGU7cyBzdXIgY2hhcXVlIHBhZ2UuJzsKJGxhbmdbJ3BhcmFtX3BhcmVudCddID0gJ1V0aWxpcyZlYWN1dGU7IHNldWxlbWVudCBhdmVjIGwmIzAzOTthY3Rpb24gPGVtPmhpZXJhcmNoeTwvZW0+LCBjZSBwYXJhbSZlZ3JhdmU7dHJlIGluZGlxdWUgcXVlbCBlc3QgIGwmIzAzOTtJRCBkdSBwcmVtaWVyICZlYWN1dGU7bCZlYWN1dGU7bWVudCBkZSBsYSBoaSZlYWN1dGU7cmFyY2hpZSAmYWdyYXZlOyBhZmZpY2hlcic7CiRsYW5nWydwYXJhbV9wcm9kdWN0aWQnXSA9ICdVdGlsaXMmZWFjdXRlOyBzZXVsZW1lbnQgYXZlYyBsJiMwMzk7YWN0aW9uIGQmZWFjdXRlO3RhaWwsIGNlIHBhcmFtJmVncmF2ZTt0cmUgaW5kaXF1ZSBxdWVscyBwcm9kdWl0cyB1dGlsaXNlciBwb3VyIGwmIzAzOTthZmZpY2hhZ2UuJzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RsaXN0J10gPSAnVXRpbGlzJmVhY3V0ZTsgc2V1bGVtZW50IGF2ZWMgbCYjMDM5O2FjdGlvbiA8ZW0+ZGVmYXVsdDwvZW0+LCBjZSBwYXJhbSZlZ3JhdmU7dHJlIHBlcm1ldCBkZSBzcCZlYWN1dGU7Y2lmaWVyIHVuZSBsaXN0ZSBkZXMgcHJvZHVpdHMgJmFncmF2ZTsgYWZmaWNoZXIgdmlhIGxldXJzIElEcyAoJmVhY3V0ZTtsJmVhY3V0ZTttZW50cyBzJmVhY3V0ZTtwYXImZWFjdXRlO3MgcGFyIGRlcyB2aXJndWxlcykuDQpBdWN1bmUgcGFnaW5hdGlvbiBvdSB0cmkgbiYjMDM5O2VzdCByJmVhY3V0ZTthbGlzJmVhY3V0ZTsgZW4gc2UgYmFzYW50IHN1ciBjZXMgdmFsZXVycywgYW5kIGlmIHNwZWNpZmllZCB0aGUgb3RoZXIgZmlsdGVyaW5nIHBhcmFtZXRlcnMgdG8gdGhlIHN1bW1hcnkgdmlldyBhcmUgaWdub3JlZC4nOwokbGFuZ1sncGFyYW1fcmVzdWx0cGFnZSddID0gJ1V0aWxpcyZlYWN1dGU7IHNldWxlbWVudCBhdmVjIGxlcyBhY3Rpb25zIDxlbT5zZWFyY2g8L2VtPiBldCA8ZW0+Y2F0ZWdvcnlsaXN0PC9lbT4sIGNlIHBhcmFtJmVncmF2ZTt0cmUgc3AmZWFjdXRlO2NpZmllIGwmIzAzOTtJRCBvdSBsJiMwMzk7YWxpYXMgZGUgcGFnZSAmYWdyYXZlOyB1dGlsaXNlciBwb3VyIGFmZmljaGVyIGxhIGxpc3RlIGRlcyByJmVhY3V0ZTtzdWx0YXRzLic7CiRsYW5nWydwYXJhbV9zZWFyY2hmaWVsZCddID0gJ1V0aWxpcyZlYWN1dGU7IHNldWxlbWVudCBhdmVjIGwmIzAzOTthY3Rpb24gPGVtPnNlYXJjaDwvZW0+LCBjZSBwYXJhbSZlZ3JhdmU7dHJlIHBldXQgY29udGVuaXIgdW5lIGxpc3RlIHMmZWFjdXRlO3BhciZlYWN1dGU7ZSBwYXIgZGVzIHZpcmd1bGVzIGRlIG5vbXMgZGUgY2hhbXBzICZhZ3JhdmU7IGluY2x1cmUgZGFucyBsYSByZWNoZXJjaGUuJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZvcm10ZW1wbGF0ZSddID0gJ1V0aWxpcyZlYWN1dGU7IHNldWxlbWVudCBhdmVjIGwmIzAzOTthY3Rpb24gPGVtPnNlYXJjaDwvZW0+LCBjZSBwYXJhbSZlZ3JhdmU7dHJlIHBlcm1ldCBkZSBkJmVhY3V0ZTtmaW5pciBsZSBnYWJhcml0IGR1IGZvcm11bGFpcmUgZGUgcmVjaGVyY2hlLic7CiRsYW5nWydwYXJhbV9zaG93YWxsJ10gPSAnVXRpbGlzJmVhY3V0ZTsgc2V1bGVtZW50IGF2ZWMgbGVzIGFjdGlvbnMgPGVtPmZpZWxkbGlzdDwvZW0+IGV0IDxlbT5jYXRlZ29yeWxpc3Q8L2VtPiwgc2kgY2UgcGFyYW0mZWdyYXZlO3RyZSBlc3QgdW4gZW50aWVyIGRpZmYmZWFjdXRlO3JlbnQgZGUgMCwgdG91dGVzIGxlcyBjYXQmZWFjdXRlO2dvcmllcyAobSZlY2lyYzttZSBjZWxsZXMgc2FucyBwcm9kdWl0cykgc2Vyb250IGFmZmljaCZlYWN1dGU7ZXMuJzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ1NwJmVhY3V0ZTtjaWZpZSBsJiMwMzk7b3JkcmUgZGVzIGNoYW1wcyB0cmkmZWFjdXRlO3MgZW4gbW9kZSBzb21tYWlyZS4gTGVzIHZhbGV1cnMgcG9zc2libGVzIHNvbnQ6DQo8dWw+DQogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBPcmRyZSBhc2NlbmRhbnQ8L2xpPg0KICA8bGk+ZGVzYyAtLSBPcmRlciBkZXNjZW5kYW50PC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gJ1V0aWxpcyZlYWN1dGU7IHNldWxlbWVudCBhdmVjIGxlcyBhY3Rpb25zIDxlbT5zdW1tYXJ5PC9lbT4sIDxlbT5jYXRlZ29yeWxpc3Q8L2VtPiBldCA8ZW0+c2VhcmNoPC9lbT4sIGNlIHBhcmFtJmVncmF2ZTt0cmUgZCZlYWN1dGU7dGVybWluZSBsZSB0cmkgZGVzIGVudHImZWFjdXRlO2VzLiBMZXMgdmFsZXVycyBwb3NzaWJsZXMgZGUgdHJpIHNvbnQgOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5wcm9kdWN0X25hbWU8L3N0cm9uZz4gLS0gbm9tIGRlIHByb2R1aXQ8L2xpPg0KICA8bGk+aWQgLS0gSUQ8L2xpPg0KICA8bGk+d2VpZ2h0IC0tIFBvaWRzIGR1IHByb2R1aXQ8L2xpPg0KICA8bGk+cHJpY2UgLS0gUHJpeCBkZSBiYXNlIGR1IHByb2R1aXQ8L2xpPg0KICA8bGk+c3RhdHVzIC0tIFN0YXR1dCA6IDxlbT5kcmFmdDwvZW0+ICgmZWFjdXRlO2JhdWNoZSkgb3UgPGVtPnB1Ymxpc2hlZDwvZW0+IChwdWJsaSZlYWN1dGU7KTwvbGk+DQogIDxsaT5yYW5kb20gLS0gQWZmaWNoZSB1bmUgbGlzdGUgYWwmZWFjdXRlO2F0b2lyZSAmYWdyYXZlOyBjaGFxdWUgYWZmaWNoYWdlPC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gRGF0ZSBkZSBjciZlYWN1dGU7YXRpb24gZGUgbCYjMDM5OyZlYWN1dGU7bCZlYWN1dGU7bWVudDwvbGk+DQogIDxsaT5tb2RpZmllZCAtLSBEYXRlIGRlIG1vZGlmaWNhdGlvbiBkZSBsJiMwMzk7JmVhY3V0ZTtsJmVhY3V0ZTttZW50PC9saT4NCiAgPGxpPmY6ZmllbGRuYW1lIC0tIFRyaSBzZWxvbiBsZXMgdmFsZXVycyBkZXMgY2hhbXBzIHBlcnNvbm5hbGlzJmVhY3V0ZTtzLiBFeGVtcGxlIDogPGVtPmY6Y291bGV1cjwvZW0+IG8mdWdyYXZlOyAmcXVvdDtjb3VsZXVyJnF1b3Q7IGVzdCB1biBjaGFtcCBwZXJzb25uYWxpcyZlYWN1dGU7PC9saT4NCjwvdWw+DQo8cD5MYSB2dWUgZGUgbGlzdGUgZGUgY2F0JmVhY3V0ZTtnb3JpZXMgcGV1dCBwcmVuZHJlIGVuIGNvbXB0ZSBkJiMwMzk7YXV0cmVzIG9wdGlvbnMgZGUgdHJpIDoNCjx1bD4NCiAgPGxpPmlkIC0tIElEIGRlIGNhdCZlYWN1dGU7Z29yaWU8L2xpPg0KICA8bGk+PHN0cm9uZz5uYW1lPC9zdHJvbmc+IC0tIE5vbSBkZSBjYXQmZWFjdXRlO2dvcmllPC9saT4NCjwvdWw+PC9wPic7CiRsYW5nWydwYXJhbV9zb3J0dHlwZSddID0gJ1V0aWxpcyZlYWN1dGU7IHNldWxlbWVudCBhdmVjIGwmIzAzOTthY3Rpb24gPGVtPmRlZmF1bHQ8L2VtPiwgY2UgcGFyYW0mZWdyYXZlO3RyZSBlc3QgdXRpbGlzJmVhY3V0ZTsgcG91ciBjb252ZXJ0aXIgZGVzIHZhbGV1cnMgZCYjMDM5O2F1dHJlcyB0eXBlcyBwb3VyIGxlIHRyaS4gTGVzIHZhbGV1cnMgdmFsaWRlcyBzb250IDogU1RSSU5HLCBTSUdORUQgZXQgVU5TSUdORUQuIFNpIG5vbiBwciZlYWN1dGU7Y2lzJmVhY3V0ZTssIGxlIHR5cGUgU1RSSU5HIGVzdCB1dGlsaXMmZWFjdXRlOyBwYXIgZCZlYWN1dGU7ZmF1dC4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXBhZ2UnXSA9ICdVdGlsbGlzJmVhY3V0ZTsgc2V1bGVtZW50IGF2ZWMgbCYjMDM5O2FjdGlvbiA8ZW0+aGllcmFyY2h5PC9lbT4sIGNlIHBhcmFtJmVncmF2ZTt0cmUgcGVybWV0IGRlIHByJmVhY3V0ZTtjaXNlciBsJiMwMzk7SUQgb3UgQWxpYXMgZGUgcGFnZSAmYWdyYXZlOyB1dGlsaXNlciBwb3VyIGxlcyBsaWVucyB2ZXJzIGxhIGxpc3RlIGRlcyBwcm9kdWl0cyBkJiMwMzk7dW4gJmVhY3V0ZTtsJmVhY3V0ZTttZW50ICBkZSBoaSZlYWN1dGU7cmFyY2hpZS4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnQ2UgcGFyYW0mZWdyYXZlO3RyZSBzcCZlYWN1dGU7Y2lmaWUgcXVlbCBnYWJhcml0IGRvaXQgJmVjaXJjO3RyZSB1dGlsaXMmZWFjdXRlOyBlbiBhZmZpY2hhZ2UgbW9kZSBzb21tYWlyZS4gU2kgYXVjdW5lIHZhbGV1ciBuJiMwMzk7ZXN0IGZvdXJuaWUsIGxlIGdhYmFyaXQgcGFyIGQmZWFjdXRlO2ZhdXQgYWN0dWVsIGRlIGNlIHR5cGUgZXN0IHV0aWxpcyZlYWN1dGU7Lic7CiRsYW5nWydwYXJlbnQnXSA9ICdQYXJlbnQgJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTGUgbW9kdWxlIFByb2R1aXRzIGEgJmVhY3V0ZTt0JmVhY3V0ZTsgaW5zdGFsbCZlYWN1dGU7IGF2ZWMgc3VjYyZlZ3JhdmU7cyc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnTGUgbW9kdWxlIFByb2R1aXRzIGEgJmVhY3V0ZTt0JmVhY3V0ZTsgc3VwcHJpbSZlYWN1dGU7LCBhaW5zaSBxdWUgdG91dGVzIGxlcyBkb25uJmVhY3V0ZTtlcyBhc3NvY2kmZWFjdXRlO2VzLic7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1ByJmVhY3V0ZTtmJmVhY3V0ZTtyZW5jZXMnOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnU3VwcHJpbWVyIGNlIG1vZHVsZSB2YSBhdXNzaSBzdXBwcmltZXIgdG91dGVzIGxlcyBkb25uJmVhY3V0ZTtlcyBhc3NvY2kmZWFjdXRlO2VzLCAmZWNpcmM7dGVzLXZvdXMgcyZ1Y2lyYztyIGRlIHZvdWxvaXIgY29udGludWVyPyc7CiRsYW5nWydwcmljZSddID0gJ1ByaXgnOwokbGFuZ1sncHJpY2VfYWRqdXN0bWVudCddID0gJ0FqdXN0ZW1lbnQgZGUgcHJpeCc7CiRsYW5nWydwcmV2cGFnZSddID0gJyZhbXA7bHQ7JzsKJGxhbmdbJ3Byb2R1Y3QnXSA9ICdQcm9kdWl0JzsKJGxhbmdbJ3Byb2R1Y3RuYW1lJ10gPSAnTm9tIGR1IHByb2R1aXQnOwokbGFuZ1sncHJvZHVjdHMnXSA9ICdHZXN0aW9ubmFpcmUgZGUgcHJvZHVpdHMnOwokbGFuZ1sncHJvZHVjdF9kZXRhaWxfc2V0dGluZ3MnXSA9ICdQYXJhbSZlZ3JhdmU7dHJlcyBEJmVhY3V0ZTt0YWlscyBkdSBwcm9kdWl0JzsKJGxhbmdbJ3Byb2R1Y3RfZWRpdGluZ19zZXR0aW5ncyddID0gJ1BhcmFtJmVncmF2ZTt0cmVzIGQmIzAzOTsmZWFjdXRlO2RpdGlvbiBkZSBwcm9kdWl0JzsKJGxhbmdbJ3Byb2R1Y3Rfc3VtbWFyeV9zZXR0aW5ncyddID0gJ1BhcmFtJmVncmF2ZTt0cmVzIGRlcyBsaXN0ZXMgZGUgcHJvZHVpdHMnOwokbGFuZ1sncHJvZHVjdF9oaWVyYXJjaHknXSA9ICdIaWVyYXJjaGllIGRlIHByb2R1aXRzJzsKJGxhbmdbJ3Byb2R1Y3RfaW5mbyddID0gJ0luZm9ybWF0aW9uIHByb2R1aXQnOwokbGFuZ1sncHJvZHVjdF9tYW5hZ2VyJ10gPSAnR2VzdGlvbm5haXJlIGRlIHByb2R1aXRzJzsKJGxhbmdbJ3Byb2dyZXNzJ10gPSAnUHJvZ3Jlc3Npb24nOwokbGFuZ1sncHJvbXB0J10gPSAnTGliZWxsJmVhY3V0ZTsnOwokbGFuZ1sncHJvbXB0X2FkZF9hdHRyaWJzZXQnXSA9ICdBam91dGVyL01vZGlmaWVyIGxlcyBwYXJhbSZlZ3JhdmU7dHJlcyBkZXMgYXR0cmlidXRzJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ZpbGV0eXBlcyddID0gJ0V4dGVuc2lvbnMgZGUgZmljaGllcnMgYXV0b3JpcyZlYWN1dGU7ZXMgKHBvdXIgbGVzIGNoYW1wcyBkZSB0eXBlIGZpY2hpZXIpICc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZXR5cGVzJ10gPSAnRXh0ZW5zaW9ucyBkZSBmaWNoaWVycyBpbWFnZSBhdXRvcmlzJmVhY3V0ZTtlcyAocG91ciBsZXMgY2hhbXBzIGRlIHR5cGUgaW1hZ2UpICc7CiRsYW5nWydwcm9tcHRfYXR0cmlidGVtcGxhdGUnXSA9ICdHYWJhcml0IGQmIzAzOTthZmZpY2hhZ2UgZGVzIHZhbGV1cnMgZCYjMDM5O2F0dHJpYnV0cyBkZSBwcm9kdWl0cyBkYW5zIGxhIGxpc3RlIGQmZWFjdXRlO3JvdWxhbnRlJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsJ10gPSAnQ3ImZWFjdXRlO2VyIGF1dG9tYXRpcXVlbWVudCBsZXMgbWluaWF0dXJlcyBkZXMgaW1hZ2VzJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsX3NpemUnXSA9ICdUYWlsbGUgbWF4aW11bSAoYyZvY2lyYzt0JmVhY3V0ZTsgbGUgcGx1cyBsb25nKSBkZSBsYSBtaW5pYXR1cmUuJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZyddID0gJ0NyJmVhY3V0ZTtlciBhdXRvbWF0aXF1ZW1lbnQgdW5lIHByJmVhY3V0ZTt2aXN1YWxpc2F0aW9uIGRlIGwmIzAzOTtpbWFnZSc7CiRsYW5nWydwcm9tcHRfYXV0b3ByZXZpZXdpbWdfc2l6ZSddID0gJ1RhaWxsZSBtYXhpbXVtIChjJm9jaXJjO3QmZWFjdXRlOyBsZSBwbHVzIGxvbmcpIGRlIGxhIHByJmVhY3V0ZTt2aXN1YWxpc2F0aW9uIGRlIGwmIzAzOTtpbWFnZS4nOwokbGFuZ1sncHJvbXB0X2F1dG93YXRlcm1hcmsnXSA9ICdQbGFjZXIgYXV0b21hdGlxdWVtZW50IHVuIGZpbGlncmFuZSBkYW5zIGxlcyBpbWFnZXMnOwokbGFuZ1sncHJvbXB0X2FwcGxpY2FibGUnXSA9ICdBY3RpdmVyIHBhciBkJmVhY3V0ZTtmYXV0IHBvdXIgdG91cyBsZXMgbm91dmVhdXggcHJvZHVpdHMnOwokbGFuZ1sncHJvbXB0X2JhdGNoc2l6ZSddID0gJ05vbWJyZSBkZSBsaWduZXMgaW1wb3J0JmVhY3V0ZTtlcyAmYWdyYXZlOyBjaGFxdWUgaXQmZWFjdXRlO3JhdGlvbic7CiRsYW5nWydwcm9tcHRfY2FydF9tb2R1bGUnXSA9ICdNb2R1bGUgUGFuaWVyIChDYXJ0KSc7CiRsYW5nWydwcm9tcHRfY2FydF9tb2R1bGVfcGFyYW1zJ10gPSAnUGFyYW0mZWdyYXZlO3RyZSBkdSBtb2R1bGUgcGFuaWVyJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVjYXRlZ29yaWVzJ10gPSAnQ3ImZWFjdXRlO2VyIGRlcyBjYXQmZWFjdXRlO2dvcmllcyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlZmllbGRzJ10gPSAnQ3ImZWFjdXRlO2VyIGxlcyBjaGFtcHMgZGVzIHByb2R1aXRzID8nOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWhpZXJhcmNoeSddID0gJ0NyJmVhY3V0ZTtlciB1bmUgaGkmZWFjdXRlO3JhcmNoaWUgZGUgcHJvZHVpdHMnOwokbGFuZ1sncHJvbXB0X2NzdmZpbGUnXSA9ICdFbnZveWVyIHVuIGZpY2hpZXIgQ1NWJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeWNvZGUnXSA9ICdDb2RlIG1vbiZlYWN1dGU7dGFpcmUnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAnTW9ubmFpZSc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF9zdGF0dXMnXSA9ICdTdGF0dXQgcGFyIGQmZWFjdXRlO2ZhdXQgZGVzIG5vdXZlYXV4IHByb2R1aXRzJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0X3RheGFibGUnXSA9ICdUb3VzIGxlcyBwcm9kdWl0cyBzb250IHRheCZlYWN1dGU7cyBwYXIgZCZlYWN1dGU7ZmF1dCc7CiRsYW5nWydwcm9tcHRfZGVsZXRlcHJvZHVjdGZpbGVzJ10gPSAnRWZmYWNlciBsZXMgZmljaGllcnMgYXR0YWNoJmVhY3V0ZTtzIGF1IHByb2R1aXQgbG9ycyBkZSBzYSBzdXBwcmVzc2lvbiA/JzsKJGxhbmdbJ3Byb21wdF9kZWxpbWl0ZXInXSA9ICdTJmVhY3V0ZTtwYXJhdGV1ciBkZSBjaGFtcHMnOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdQYWdlIGQmZWFjdXRlO3RhaWwgcGFyIGQmZWFjdXRlO2ZhdXQnOwokbGFuZ1sncHJvbXB0X2RldGFpbHNmb3InXSA9ICdEJmVhY3V0ZTt0YWlscyBwb3VyICVzJzsKJGxhbmdbJ3Byb21wdF9kdXBsaWNhdGVwcm9kdWN0cyddID0gJ01vZGUgZGUgZ2VzdGlvbiBkZXMgcHJvZHVpdHMgZW4gZG91YmxvbiA/JzsKJGxhbmdbJ3Byb21wdF9mYWxzZSddID0gJ0ZhdXgnOwokbGFuZ1sncHJvbXB0X2hhbmRsZWltYWdlcyddID0gJ0cmZWFjdXRlO3JlciBsZXMgaW1hZ2VzID8nOwokbGFuZ1sncHJvbXB0X2ltYWdlcGF0aCddID0gJ0NoZW1pbiBkZXMgaW1hZ2VzJzsKJGxhbmdbJ3Byb21wdF9sZW5ndGh1bml0cyddID0gJ1VuaXQmZWFjdXRlO3MgZGUgbG9uZ3VldXInOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX2JlaGF2aW9yJ10gPSAnUXVlbGxlIGFjdGlvbiBkb2l0ICZlY2lyYzt0cmUgciZlYWN1dGU7YWxpcyZlYWN1dGU7ZSBsb3JzcXUmIzAzOTt1biBwcm9kdWl0IG5lIHBldXQgJmVjaXJjO3RyZSBhZmZpY2gmZWFjdXRlOyAnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzQwNCddID0gJ0cmZWFjdXRlO24mZWFjdXRlO3JlciB1bmUgZXJyZXVyIDQwNCc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfMzAxJ10gPSAnRyZlYWN1dGU7biZlYWN1dGU7cmVyIHVuZSByZWRpcmVjdGlvbiAzMDEnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX2Vycm9ybXNnJ10gPSAnQWZmaWNoZXIgdW4gbWVzc2FnZSBkJiMwMzk7ZXJyZXVyJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9tc2cnXSA9ICdNZXNzYWdlIGQmIzAzOTtlcnJldXIgbG9yc3F1JiMwMzk7dW4gcHJvZHVpdCBuJiMwMzk7ZXN0IHBhcyB0cm91diZlYWN1dGU7ICc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfcGFnZSddID0gJ1BhZ2UgcG91ciBmYWlyZSBsZXMgcmVkaXJlY3Rpb25zIHBlcm1hbmVudGVzICc7CiRsYW5nWydwcm9tcHRfaGllcnBhZ2UnXSA9ICdQYWdlIHBhciBkJmVhY3V0ZTtmYXV0IHBvdXIgbGEgdnVlIGRlIGhpJmVhY3V0ZTtyYXJjaGllICc7CiRsYW5nWydwcm9tcHRfcHJldHR5aGllcnVybHMnXSA9ICdVdGlsaXNlciBsZXMgVXJscyByJmVhY3V0ZTsmZWFjdXRlO2NyaXRlcyBwb3VyIGxlcyB2dWVzIGRlIGhpJmVhY3V0ZTtyYXJjaGllICc7CiRsYW5nWydwcm9tcHRfcHJvZF9kZXRhaWxwYWdlJ10gPSAnUGFnZSBwYXIgZCZlYWN1dGU7ZmF1dCBwb3VyIHZvaXIgbGUgZCZlYWN1dGU7dGFpbCBkZXMgcHJvZHVpdHMgJzsKJGxhbmdbJ3Byb21wdF9wcm9kdWN0c19tYXRjaGluZyddID0gJ1Byb2R1aXRzIGNvcnJlc3BvbmRhbnQgJmFncmF2ZTsgJXMnOwokbGFuZ1sncHJvbXB0X3NrdV9yZXF1aXJlZCddID0gJ0xlIFNLVSAoVUdTIC0gVW5pdCZlYWN1dGU7IGRlIGdlc3Rpb24gZGVzIHN0b2NrcykgZXN0IHJlcXVpcyBwb3VyIHRvdXMgbGVzIHByb2R1aXRzIGV0IGF0dHJpYnV0cyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXBhZ2VsaW1pdCddID0gJ05vbWJyZSBkZSBwcm9kdWl0cyBwYXIgZCZlYWN1dGU7ZmF1dCBldCBwYXIgcGFnZSBlbiBtb2RlIFNvbW1haXJlICc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRvcmRlciddID0gJ09yZHJlIGRlIHRyaSBwYXIgZCZlYWN1dGU7ZmF1dCBlbiBtb2RlIHNvbW1haXJlICc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICdDaGFtcCBkZSB0cmkgcGFyIGQmZWFjdXRlO2ZhdXQgZW4gbW9kZSBzb21tYWlyZSAnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnU291cmNlIGR1IGdhYmFyaXQnOwokbGFuZ1sncHJvbXB0X3RydWUnXSA9ICdWcmFpJzsKJGxhbmdbJ3Byb21wdF91cmxwcmVmaXgnXSA9ICdQciZlYWN1dGU7Zml4ZSAmYWdyYXZlOyB1dGlsaXNlciBzdXIgdG91dGVzIGxlcyBVUkwgY2libCZlYWN1dGU7ZXMgZGUgY2UgbW9kdWxlJzsKJGxhbmdbJ3Byb21wdF91c2VfZGV0YWlscGFnZV9mb3Jfc2VhcmNoJ10gPSAnVXRpbGlzZXIgY2V0dGUgcGFnZSBwb3VyIGxlcyByJmVhY3V0ZTtzdWx0YXRzIGRlIHJlY2hlcmNoZTxlbT4ocmVtcGxhY2UgbGUgcGFyYW0mZWdyYXZlO3RyZSAmIzAzOTtwYWdlIGRlcyByJmVhY3V0ZTtzdWx0YXRzIGRlIGxhIHJlY2hlcmNoZSYjMDM5OyBkYW5zIGxlIG1vZHVsZSBzZWFyY2gpPC9lbT4nOwokbGFuZ1sncHJvbXB0X3VzZWhpZXJwYXRodXJscyddID0gJ1V0aWxpc2VyIGxlIGNoZW1pbiBkZSBoaSZlYWN1dGU7cmFyY2hpZSBkYW5zIGxlcyB1cmxzIGRlcyBkJmVhY3V0ZTt0YWlscyBkZSBwcm9kdWl0JzsKJGxhbmdbJ3Byb21wdF93ZWlnaHR1bml0cyddID0gJ1VuaXQmZWFjdXRlO3MgZGUgcG9pZHMnOwokbGFuZ1sncHVibGljJ10gPSAnRXN0LWNlIHVuIGNoYW1wIHB1YmxpYyA/JzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ1B1YmxpJmVhY3V0ZTsnOwokbGFuZ1sncXVhbnRpdHlfb25faGFuZCddID0gJ1F1YW50aXQmZWFjdXRlOyBlbiBzdG9jayc7CiRsYW5nWydyYW5kb20nXSA9ICdBdSBoYXNhcmQnOwokbGFuZ1sncmVvcmRlcl9oaWVyYXJjaHknXSA9ICdSJmVhY3V0ZTtvcmRvbm5lciBsYSBoaSZlYWN1dGU7cmFyY2hpZSc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1ImZWFjdXRlO2luaXRpYWxpc2VyIGF1eCB2YWxldXJzIHBhciBkJmVhY3V0ZTtmYXV0JzsKJGxhbmdbJ3JldHVybiddID0gJ1JldG91cic7CiRsYW5nWydyZXR1cm5fdG9fdG9wJ10gPSAnUmV0b3VyIGVuIGhhdXQgZGUgcGFnZSc7CiRsYW5nWydyb290J10gPSAnUmFjaW5lJzsKJGxhbmdbJ3NlYXJjaF9kZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXB0aW9uJzsKJGxhbmdbJ3NlYXJjaF9leHByJ10gPSAnTGEgcmVxdSZlY2lyYzt0ZSBkZXZyYSBlbGxlIGNvcnJlc3BvbmRlbnQgJmFncmF2ZTsgbGEgdG90YWxpdCZlYWN1dGU7LCBvdSBhdSBtb2lucyAmYWdyYXZlOyBsJiMwMzk7dW4gZGVzIHRlc3RzIGNpLWRlc3NvdXM/JzsKJGxhbmdbJ3NlYXJjaF9uYW1lJ10gPSAnTm9tIGRlIHByb2R1aXQnOwokbGFuZ1snc2VhcmNoX3ByaWNlJ10gPSAnR2FtbWUgZGUgcHJpeCc7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWpvdXRlci9Nb2RpZmllciBsZSBnYWJhcml0IGRlIGZvcm11bGFpcmUgZGUgcmVjaGVyY2hlJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlcyddID0gJ0dhYmFyaXQgZGUgcmVjaGVyY2hlJzsKJGxhbmdbJ3NlbGVjdF9hbGwnXSA9ICdUb3V0IHMmZWFjdXRlO2xlY3Rpb25uZXInOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ0Nob2lzaXIuLi4nOwokbGFuZ1snc2V0ZHJhZnQnXSA9ICdEJmVhY3V0ZTtmaW5pciAmYWdyYXZlOyBCcm91aWxsb24nOwokbGFuZ1snc2V0cHVibGlzaGVkJ10gPSAnRCZlYWN1dGU7ZmluaXIgJmFncmF2ZTsgUHVibGkmZWFjdXRlOyc7CiRsYW5nWydza3UnXSA9ICdTS1UgKGlkZW50aWZpYW50IGRlIHF1YW50aXQmZWFjdXRlOyBlbiBzdG9jayknOwokbGFuZ1snc29ydF9ieSddID0gJ1RyaSBwYXInOwokbGFuZ1snc29ydF9vcmRlciddID0gJ09yZHJlIGRlIHRyaSc7CiRsYW5nWydzb3VyY2UnXSA9ICdTb3VyY2UgJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1dCc7CiRsYW5nWydzdWJtaXQnXSA9ICdTb3VtZXR0cmUnOwokbGFuZ1snc3Vic2NyaXB0aW9uJ10gPSAnQWJvbm5lbWVudCc7CiRsYW5nWydzdWJzY3JfZXhwaXJ5J10gPSAnRXhwaXImZWFjdXRlOyc7CiRsYW5nWydzdWJzY3JfZXhwaXJ5MiddID0gJ0V4cGlyJmVhY3V0ZTtzJzsKJGxhbmdbJ3N1YnNjcl9tb250aGx5J10gPSAnTWVuc3VlbCc7CiRsYW5nWydzdWJzY3JfZGVscGVyaW9kJ10gPSAnRnImZWFjdXRlO3F1ZW5jZSBkZSBsaXZyYWlzb24nOwokbGFuZ1snc3Vic2NyX2RlbHBlcmlvZDInXSA9ICdMaXZyJmVhY3V0ZTsnOwokbGFuZ1snc3Vic2NyX3BheXBlcmlvZCddID0gJ0ZyJmVhY3V0ZTtxdWVuY2UgZGUgcGFpZW1lbnQnOwokbGFuZ1snc3Vic2NyX3BheXBlcmlvZDInXSA9ICdQYXkmZWFjdXRlOyc7CiRsYW5nWydzdWJzY3JfcXVhcnRlcmx5J10gPSAnVHJpbWVzdHJpZWwnOwokbGFuZ1snc3Vic2NyX3NlbWlhbnVhbGx5J10gPSAnU2VtaS1Bbm51ZWwnOwokbGFuZ1snc3Vic2NyX3llYXJseSddID0gJ0FubnVlbCc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVzJ10gPSAnR2FiYXJpdHMgZGUgc29tbWFpcmUnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBam91dCBvdSAmZWFjdXRlO2RpdGlvbiBkJiMwMzk7dW4gZ2FiYXJpdCBkZSBzb21tYWlyZSc7CiRsYW5nWyd0YXhhYmxlJ10gPSAnVGF4YWJsZSAnOwokbGFuZ1sndGVzdCddID0gJ1Rlc3QgJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnWm9uZSBkZSB0ZXh0ZSc7CiRsYW5nWyd0ZXh0Ym94J10gPSAnQ2hhbXAgdGV4dGUnOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnR2FiYXJpdCBkZSBoaSZlYWN1dGU7cmFyY2hpZSBwYXIgZCZlYWN1dGU7ZmF1dCc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnR2FiYXJpdCBwYXIgZCZlYWN1dGU7ZmF1dCBwb3VyIHVuZSBub3V2ZWxsZSBsaXN0ZSBkZSBjYXQmZWFjdXRlO2dvcmllcyc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnR2FiYXJpdCBwYXIgZCZlYWN1dGU7ZmF1dCBwb3VyIGwmIzAzOTthZmZpY2hhZ2UgZHUgZCZlYWN1dGU7dGFpbCc7CiRsYW5nWyd0aXRsZV9zZWFyY2hfZGZsdHRlbXBsYXRlJ10gPSAnR2FiYXJpdCBwYXIgZCZlYWN1dGU7ZmF1dCBkZXMgTm91dmVsbGVzIHJlY2hlcmNoZXMnOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdHYWJhcml0IHBhciBkJmVhY3V0ZTtmYXV0IHBvdXIgbCYjMDM5O2FmZmljaGFnZSBkdSBzb21tYWlyZSc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwZSAnOwokbGFuZ1sndXAnXSA9ICdSZW1vbnRlcic7CiRsYW5nWyd1cGRhdGUnXSA9ICdNaXNlICZhZ3JhdmU7IGpvdXInOwokbGFuZ1sndXBsb2FkJ10gPSAnQ2hvaXNpc3NleiBsZSBmaWNoaWVyICZhZ3JhdmU7IGVudm95ZXInOwokbGFuZ1sndXJsX2FsaWFzJ10gPSAnQWxpYXMgVVJMICc7CiRsYW5nWyd2YWxpZCddID0gJ1ZhbGlkZSc7CiRsYW5nWyd2YWx1ZSddID0gJ1ZhbGV1cic7CiRsYW5nWyd2YWx1ZXMnXSA9ICdWYWxldXJzJzsKJGxhbmdbJ3ZpZXcnXSA9ICdWdWUnOwokbGFuZ1sndmlld2FibGVfZmllbGRzJ10gPSAnUyZlYWN1dGU7bGVjdGlvbm5lciBsZXMgY2hhbXBzIHBlcnNvbm5hbGlzJmVhY3V0ZTtzICZhZ3JhdmU7IGFmZmljaGVyIGRhbnMgbGEgbGlzdGUnOwokbGFuZ1snd2F0ZXJtYXJrX2xvY2F0aW9uJ10gPSAnRW1wbGFjZW1lbnQgZHUgZmlsaWdyYW5lJzsKJGxhbmdbJ3dlaWdodCddID0gJ1BvaWRzJzsKJGxhbmdbJ3dpdGhfc2VsZWN0ZWQnXSA9ICdQcm9kdWl0cyBzJmVhY3V0ZTtsZWN0aW9ubiZlYWN1dGU7cyc7CiRsYW5nWyd5ZXMnXSA9ICdPdWknOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4yMDY1NjgwNTcuMTMxNzYyODA1My4xMzE3NjI4MDUzLjEzMTc2MjgwNTMuMSc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTMxNzYyODA1My4xLjEudXRtY2NuPShkaXJlY3QpfHV0bWNzcj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/it_IT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfbGVuZ3RoJ10gPSAnUCc7CiRsYW5nWydhYmJyX3dpZHRoJ10gPSAnTCc7CiRsYW5nWydhYmJyX2hlaWdodCddID0gJ0EnOwokbGFuZ1snYWRkJ10gPSAnQWdnaXVuZ2VyZSc7CiRsYW5nWydhZGRjYXRlZ29yeSddID0gJ0FnZ2l1bmdlcmUgdW5hIGNhdGVnb3JpYSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0FnZ2l1bmdlcmUgdW4gY2FtcG8nOwokbGFuZ1snYWRqdXN0YWJsZSddID0gJ01vZGlmaWNhYmlsZSc7CiRsYW5nWydhZGRwcm9kdWN0J10gPSAnQWdnaXVuZ2VyZSB1biBQcm9kb3R0byc7CiRsYW5nWydhZGRfYXR0cmliX3NldCddID0gJ0FnZ2l1bmdlcmUgdW4gYXR0cmlidXRvJzsKJGxhbmdbJ2FkZF9jYXRlZ29yeV9maWVsZCddID0gJ0Fzc29jaWEgY2FtcG8gY29uIGNhdGVnb3JpYTogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnQWdnaXVuZ2VyZSB1biBJdGVtIGdlcmFyY2hpY28nOwokbGFuZ1snYWRkX29wdGlvbiddID0gJ0FnZ2l1bmdlcmUgdW5hIG9wemlvbmUgYXR0cmlidXRvJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdTb2xvIGwmIzAzOTthZG1pbiBwdSZvZ3JhdmU7IHZlcmUgcXVlc3RvIGF0dHJpYnV0bz8nOwokbGFuZ1snYWxpZ25fdWwnXSA9ICdBbHRvIFNpbmlzdHJvJzsKJGxhbmdbJ2FsaWduX3VjJ10gPSAnQWx0byBDZW50cmF0byc7CiRsYW5nWydhbGlnbl91ciddID0gJ0FsdG8gRGVzdHJvJzsKJGxhbmdbJ2FsaWduX21sJ10gPSAnTWVkaW8gU2luaXN0cm8nOwokbGFuZ1snYWxpZ25fbWMnXSA9ICdDZW50cmF0byc7CiRsYW5nWydhbGlnbl9tciddID0gJ01lZGlvIERlc3Rybyc7CiRsYW5nWydhbGlnbl9sbCddID0gJ0Jhc3NvIFNpbmlzdHJvJzsKJGxhbmdbJ2FsaWduX2xjJ10gPSAnQmFzc28gQ2VudHJhdG8nOwokbGFuZ1snYWxpZ25fbHInXSA9ICdCYXNzbyBEZXN0cm8nOwokbGFuZ1snYWxsJ10gPSAnVHV0dGknOwokbGFuZ1snYWxsY2F0ZWdvcmllcyddID0gJ1R1dHRlIGxlIGNhdGVnb3JpZSc7CiRsYW5nWydhbnknXSA9ICdRdWFsc2lhc2knOwokbGFuZ1snYXJleW91c3VyZSddID0gJ1NpZXRlIHNpY3VyaT8nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVwcm9kdWN0J10gPSAnU2lldGUgc2ljdXJvIGRpIHZvbGVyIHByb3ByaW8gY2FuY2VsbGFyZSBxdWVzdG8gcHJvZG90dG8gZSB0dXR0ZSBsZSBpbmZvcm1hemlvbmkgY29ycmVsYXRlPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdBc2NlbmRlbnRlJzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnTm9tZSBhdHRyaWJ1dG8nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGljbyc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlcyddID0gJ01vZGVsbGkgUmVwb3J0IGdlcmFyY2hpY2knOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWdnaXVuZ2VyZS9Nb2RpZmljYSB1biBNb2RlbGxvIFJlcG9ydCBnZXJhcmNoaWNvJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbGxhJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yaWUnOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdDYXRlZ29yaWEnOwokbGFuZ1snY2F0ZWdvcnlleGlzdHMnXSA9ICdVbmEgY2F0ZWdvcmlhIGNvbiBxdWVsIG5vbWUgZ2kmYWdyYXZlOyBlc2lzdGUnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVzJ10gPSAnTW9kZWxsaSBMaXN0YSBjYXRlZ29yaWUnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FnZ2l1bmdlcmUvTW9kaWZpY2EgdW4gTW9kZWxsbyBMaXN0YUNhdGVnb3JpZSc7CiRsYW5nWydjZW50aW1ldGVycyddID0gJ0NlbnRpbWV0cmknOwokbGFuZ1snY2hlY2tib3gnXSA9ICdDaGVja2JveCAnOwokbGFuZ1snY29uZmlybV9jb3B5YXR0cmlidXRlcyddID0gJ1R1dHRpIGwmIzAzOTtpbnNpZW1lIGRpIGF0dHJpYnV0aSBwZXIgcXVlc3RvIHByb2RvdHRvIHNhciZhZ3JhdmU7IHJpbW9zc28uIFNpZXRlIHNpY3VybyBkaSB2b2xlciBjb250aW51YXJlPyc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9oaWVyYXJjaHlfbm9kZSddID0gJ1NpZXRlIHNpY3VybyBkaSB2b2xlciBwcm9wcmlvIGNhbmNlbGxhcmUgcXVlc3RvIG5vZG8/IFR1dHRpIGkgcHJvZG90dGkgY2hlIHN0YW5ubyB1c2FuZG8gcXVlc3RvIG5vZG8gbm9uIHNhcmFubm8gcGkmdWdyYXZlOyBnZXJhcmNoaWNpJzsKJGxhbmdbJ2NvbmZpcm1faW1wb3J0J10gPSAnU2lldGUgdmVyYW1lbnRlIHNpY3VyaSBkaSB2b2xlciBmYXJlIHF1ZXN0bz9cblxuQ29uZmlndXJhemlvbmkgbm9uIGNvcnJldHRlIG8gdW4gZmlsZSBkaSBjb25maWd1cmF6aW9uZSBub24gdmFsaWRvIHBvdHJlYmJlcm8gY29ycm9tcGVyZSBpbCBzaXN0ZW1hLic7CiRsYW5nWydjb3B5J10gPSAnQ29waWEnOwokbGFuZ1snY29weV9hdHRyaWJfc2V0cyddID0gJ0NvcGlhIGwmIzAzOTtpbnNpZW1lIGRlZ2xpIEF0dHJpYnV0aSc7CiRsYW5nWydjb3B5X2NhdGVnb3J5J10gPSAnQ29waWEgQ2F0ZWdvcmlhJzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRGF0YSBkaSBjcmVhemlvbmUnOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ1ZhbG9yZSBjb3JyZW50ZSc7CiRsYW5nWydkYXRhJ10gPSAnRGF0YSAnOwokbGFuZ1snZGVmYXVsdCddID0gJ1ByZWRlZmluaXRvJzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdNb2RlbGxpIHByZWRlZmluaXRpJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5Ob3RhOjwvc3Ryb25nPiBJbCBjb250ZW51dG8gZGkgcXVlc3RlIGFyZWUgdGVzdG8gc29ubyB1c2F0ZSBwZXIgZGV0ZXJtaW5hcmUgaWwgY29udGVudXRvIHByZWRlZmluaXRvIGRlaSBNb2RlbGxpIHF1YW5kbyBzY2VnbGlldGUgJnF1b3Q7QWdnaXVuZ2VyZSBNb2RlbGxvJnF1b3Q7IG5lbGwmIzAzOTthcHByb3ByaWF0byB0YWIuIE1vZGlmaWNhbmRvIHVuYSBkaSBxdWVzdGUgYXJlZSB0ZXN0byBub24gYXZyYW5ubyBuZXNzdW4gZWZmZXR0byBzdWwgdm9zdHJvIHNpdG8uJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0NhbmNlbGxhJzsKJGxhbmdbJ2RlbGV0ZV9hdHRyaWJzZXQnXSA9ICdDYW5jZWxsYSBhdHRyaWJ1dG8nOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAnQ2FuY2VsbGEgdW4gSXRlbSBnZXJhcmNoaWNvJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdEaXNjZW5kZW50ZSc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXppb25lJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uJ10gPSAnRGVzdGluYXppb25lJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdEZXR0YWdsaSc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdNb2RlbGxpIERldHRhZ2xpbyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWdnaXVuZ2VyZS9Nb2RpZmljYSB1biBNb2RlbGxvIERldHRhZ2xpbyc7CiRsYW5nWydkaW1lbnNpb25zJ10gPSAnRGltZW5zaW9uaSc7CiRsYW5nWydkaXNhYmxlZCddID0gJ0Rpc2FiaWxpdGF0byc7CiRsYW5nWydkb3duJ10gPSAnTXVvdmkgZ2kmdWdyYXZlOyc7CiRsYW5nWydkcmFmdCddID0gJ0JvenphJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnVGVuZGluYSc7CiRsYW5nWydkcm9wZG93bl9vcHRpb25zJ10gPSAnT3B6aW9uaSBUZW5kaW5hIDxlbT4oYXBwbGljYWJpbGUgc29sbyBwZXIgY2FtcGkgZHJvcGRvd24pPC9lbT48YnIvPjxici8+PGVtPih1biB0ZXJtaW5lIHBlciBvZ25pIHJpZ2EpPC9lbT4nOwokbGFuZ1snZWRpdCddID0gJ01vZGlmaWNhJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0J10gPSAnTW9kaWZpY2EgQXR0cmlidXRvJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0cyddID0gJ01vZGlmaWNhIHNldHRhZ2dpIEF0dHJpYnV0byc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHNfZm9yJ10gPSAnTW9kaWZpY2Egc2V0dGFnZ2kgQXR0cmlidXRvIHBlcic7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdNb2RpZmljYSBBdHRyaWJ1dGknOwokbGFuZ1snZWRpdF9jYXRlZ29yeSddID0gJ01vZGlmaWNhIENhdGVnb3JpYSc7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ01vZGlmaWNhIGNhbXBpIGRlbGxhIENhdGVnb3JpYSc7CiRsYW5nWydlZGl0X2hpZXJhcmNoeV9pdGVtJ10gPSAnTW9kaWZpY2EgdW4gSXRlbSBnZXJhcmNoaWNvJzsKJGxhbmdbJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnXSA9ICdVbiBhdHRyaWJ1dG8gY29uIHF1ZWwgbm9tZSBnaSZhZ3JhdmU7IGVzaXN0ZSc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfc2t1J10gPSAnRHVwbGljYSBpbCB2YWxvcmUgU0tVIHRyb3ZhdG8nOwokbGFuZ1snZXJyb3JfZmllbGR2YWx1ZV9lbXB0eSddID0gJ0lsIHZhbG9yZSBkZWwgY2FtcG8gbm9uIHB1Jm9ncmF2ZTsgZXNzZXJlIHZ1b3RvJzsKJGxhbmdbJ2Vycm9yX2ZpbGVmb3JtYXQnXSA9ICdQcm9ibGVtYSBuZWwgZm9ybWF0byBGaWxlJzsKJGxhbmdbJ2Vycm9yX2ZpbGVub3Rmb3VuZCddID0gJ0ZpbGUgbm9uIHRyb3ZhdG8nOwokbGFuZ1snZXJyb3JfZmlsZW9wZW4nXSA9ICdQcm9ibGVtYSBuZWxsJiMwMzk7YXBlcnR1cmEgZGVsIEZpbGUgJXMnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmVudCddID0gJ1BhcmVudCBpbnZhbGlkbyAodW4gbm9kbyBnZXJhcmNoaWNvIG5vbiBwdSZvZ3JhdmU7IGVzc2VyZSBpbCBwcm9wcmlvIHBhcmVudCknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9uYW1lJ10gPSAnSWwgdmFsb3JlIGRlbCBjYW1wbyBwZXJzb25hbGl6emF0byBub24gJmVncmF2ZTsgdmFsaWRvIChjb250aWVuZSBjYXJhdHRlcmkgbm9uIGFsZmFudW1lcmljaSknOwokbGFuZ1snZXJyb3JfaW52YWxpZF92YWx1ZSddID0gJ1ZhbHVlIHNwZWNpZmljYXRvIG5vbiB2YWxpZG8nOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnVW4gcGFyYW1ldHJvIHJpY2hpZXN0byAmZWdyYXZlOyBtYW5jYW50ZSBvIG5vbiB2YWxpZG8nOwokbGFuZ1snZXJyb3JfbmFtZXVzZWQnXSA9ICdVbiBpdGVtIGNvbiBxdWVsIG5vbWUgJmVncmF2ZTsgZ2kmYWdyYXZlOyBpbiB1c28nOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdTaSBwcmVnYSBzaSBzZWxlemlvbmFyZSBpbCB0aXBvIGRpIGNhbXBvJzsKJGxhbmdbJ2Vycm9yX25vbmFtZSddID0gJ1R1IGRldmkgYWdnaXVuZ2VyZSB1biBub21lJzsKJGxhbmdbJ2Vycm9yX29uZXN1YnNjcmlwdGlvbmZpZWxkJ10gPSAnU29sbyB1biBjYW1wbyBkaSBzb3R0b3Njcml6aW9uZSAmZWdyYXZlOyBwZXJtZXNzbyc7CiRsYW5nWydlcnJvcl9wZXJtaXNzaW9uZGVuaWVkJ10gPSAnUGVybWVzc28gbmVnYXRvJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfYWxpYXN1c2VkJ10gPSAnTG8gc3BlY2lmaWNhdG8gYWxpYXMgJmVncmF2ZTsgZ2kmYWdyYXZlOyBpbiB1c28nOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9uYW1ldXNlZCddID0gJ1VuIFByb2RvdHRvIGNvbiBxdWVsIG5vbWUgZ2kmYWdyYXZlOyBlc2lzdGUnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9ub3Rmb3VuZCddID0gJ2lsIHByb2RvdHRvIHJpY2hpZXN0byBub24gcHUmb2dyYXZlOyBlc3NlcmUgdHJvdmF0byc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X3NrdXVzZWQnXSA9ICdJbCB2YWxvcmUgZGkgU0tVICZlZ3JhdmU7IGdpJmFncmF2ZTsgaW4gdXNvIGRhIHVuJiMwMzk7YWx0cm8gcHJvZG90dG8nOwokbGFuZ1snZXJyb3JfcHJpY2VfYWRqdXN0bWVudCddID0gJ1ZhbG9yZSBkZWwgcHJlenpvIGRpIGFkZWd1YW1lbnRvIG5vbiB2YWxpZG8gcGVyIGlsIHRlcm1pbmUgJXMnOwokbGFuZ1snZXJyb3JfdXBsb2FkX2ZhaWxlZCddID0gJ1VwbG9hZCBmYWxsaXRvOiAlcyc7CiRsYW5nWydleHBpcmVfc2l4X21vbnRocyddID0gJ0RvcG8gNiBNZXNpJzsKJGxhbmdbJ2V4cGlyZV9vbmVfeWVhciddID0gJ0RvcG8gMSBhbm5vJzsKJGxhbmdbJ2V4cGlyZV90d29feWVhciddID0gJ0RvcG8gMiBhbm5pJzsKJGxhbmdbJ2V4dHJhMSddID0gJ0NhbXBvIEV4dHJhIDEnOwokbGFuZ1snZXh0cmEyJ10gPSAnQ2FtcG8gRXh0cmEgMic7CiRsYW5nWydmaWVsZCddID0gJ0NhbXBvJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRGVmaW5pemlvbmUgQ2FtcG8nOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnRGVmaW5pemlvbmkgQ2FtcG8nOwokbGFuZ1snZmlsZSddID0gJ0ZpbGUgJzsKJGxhbmdbJ2ZpbHRlcnMnXSA9ICdGaWx0cmknOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snZ2VuZXJhbF9zZXR0aW5ncyddID0gJ0NvbmZpZ3VyYXppb25pIGdlbmVyYWxpJzsKJGxhbmdbJ2dvJ10gPSAnVmFpJzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+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+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcyBvciB0byBmaWxlIGEgYnVnIHJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBjbXMgbWFkZSBzaW1wbGUgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+RGV2ZWxvcGVycyBGb3JnZTwvYT4gYW5kIGRvIGEgc2VhcmNoIGZvciAmIzAzOTtQcm9kdWN0cyYjMDM5OzwvbGk+DQo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+Um9iZXJ0IENhbXBiZWxsPC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ybXMuPC9hPjwvbGk+DQo8bGk+Rm9yIHNvbWUgcXVlc3Rpb25zIGFuZCBsaW1pdGVkIHRlY2huaWNhbCBzdXBwb3J0LCB0aGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8L3VsPic7CiRsYW5nWydoaWVyYXJjaHknXSA9ICdHZXJhcmNoaWEnOwokbGFuZ1snaGllcmFyY2h5X3Bvc2l0aW9uJ10gPSAnUG9zaXppb25lIGdlcmFyY2hpYSc7CiRsYW5nWydoaWVyYXJjaHlfc2V0dGluZ3MnXSA9ICdDb25maWd1cmF6aW9uaSBkZWxsYSBHZXJhcmNoaWEnOwokbGFuZ1snaWQnXSA9ICdJRCc7CiRsYW5nWydpbWFnZXRleHQnXSA9ICdJbW1hZ2luZSc7CiRsYW5nWydpbWFnZV9oYW5kbGluZ19zZXR0aW5ncyddID0gJ0NvbmZpZ3VyYXppb25lIEltbWFnaW5pJzsKJGxhbmdbJ2ltcG9ydF9mcm9tX2NzdiddID0gJ1Byb2RvdHRpIGltcG9ydGF0aSBkYSBmaWxlIENTVic7CiRsYW5nWydpbmNoZXMnXSA9ICdQb2xsaWNpJzsKJGxhbmdbJ2luY2x1ZGVfY2hpbGRyZW4nXSA9ICdJbmNsdWRvIEZpZ2xpPyc7CiRsYW5nWydpbmZvX2FsbnVtb25seSddID0gJ1NvbG8gY2FyYXR0ZXJpIGFsZmFudW1lcmljaS4gTm8gc3BhemksIHZpcmdvbGV0dGUsIGFwaWNpIG8gY29tYmluYXppb25pIGxldHRlcmUvbnVtZXJpJzsKJGxhbmdbJ2luZm9fYXR0cmlidGVtcGxhdGUnXSA9ICdWYWxvcmkgcG9zc2liaWxpIHNvbm86IHskYXR0cmliX3RleHR9LHskYXR0cmliX2FkanVzdH0seyRjdXJyZW5jeV9zeW1ib2x9JzsKJGxhbmdbJ2luZm9fYXR0cmlidXRlc19jb3BpZWQnXSA9ICdBdHRyaWJ1dGkgQ29waWF0aSc7CiRsYW5nWydpbmZvX2F1dG93YXRlcm1hcmsnXSA9ICdDb25maWd1cmF6aW9uZSBkZWkgV2F0ZXJtYXJrIHNvbm8gcHJlc2UgZGFsIG1vZHVsbyBDR0V4dGVuc2lvbnMnOwokbGFuZ1snaW5mb19iYXRjaHNpemUnXSA9ICdTZXQgdGhlIG51bWJlciBvZiBsaW5lcyB0byBwcm9jZXNzIHBlciAmcXVvdDtiYXRjaCZxdW90Oy4gIEFmdGVyIGEgYmF0Y2ggaXMgY29tcGxldGUsIHRoZSBpbXBvcnRlciB3aWxsIHJlZGlyZWN0LCBhbmQgcmVzdW1lIG9wZXJhdGlvbnMuICBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBtZW1vcnkgZXJyb3JzLCBvciB0aW1lb3V0IHByb2JsZW1zIGR1ZSB0byBsYXJnZSBhbW91bnRzIG9mIHByb2Nlc3NpbmcsIHlvdSBtYXkgbmVlZCB0byBjb25zdWx0IHlvdXIgaG9zdCBwcm92aWRlciwgb3IgcmVkdWNlIHRoaXMgbnVtYmVyJzsKJGxhbmdbJ2luZm9fY2FydF9tb2R1bGVfcGFyYW1zJ10gPSAnUXVlc3RpIHBhcmFtZXRyaSBzb25vIGRhdGkgYWwgbW9kdWxvIENhcnJlbGxvIHNlbGV6aW9uYXRvIGRhbCBkZXR0YWdsaW8gcHJvZG90dGkgZSB2aXN1YWxpenphemlvbmUgc29tbWFyaW8nOwokbGFuZ1snaW5mb19jb3B5X2F0dHJpYnNldHMnXSA9ICdRdWVzdGEgYXppb25lIGNvcGllciZhZ3JhdmU7IGwmIzAzOTtpbnNpZW1lIGRlZ2xpIEF0dHJpYnV0aSAoZXNjbHVkZW5kbyBpIHZhbG9yaSBza3UpIGRhIHVuIGFsdHJvIHByb2RvdHRvLic7CiRsYW5nWydpbmZvX2NyZWF0ZWZpZWxkcyddID0gJ0NyZW8gYXV0b21hdGljYW1lbnRlIGNhbXBpIHByb2RvdHRpIHNlbnphIG5vbWU/IDxlbT4oU2FyYW5ubyBjcmVhdGkgY29tZSBjYW1waSB0ZXN0byk8L2VtPic7CiRsYW5nWydpbmZvX2NyZWF0ZWNhdGVnb3JpZXMnXSA9ICdBdXRvbWF0aWNhbWVudGUgY3JlbyBjYXRlZ29yaWUgcHJvZHV0dG8gY2hlIGNvaW5jaWRvbm8gY29uIHF1ZWxsZSBkZWwgZmlsZSBDU1YsIHNlIG5vbiBlc2lzdG9ubyBhbmNvcmEnOwokbGFuZ1snaW5mb19jcmVhdGVoaWVyYXJjaHknXSA9ICdBdXRvbWF0aWNhbWVudGUgY3JlbyBnZXJhcmNoaWUgcHJvZHV0dG8gY2hlIGNvaW5jaWRvbm8gY29uIHF1ZWxsZSBkZWwgZmlsZSBDU1YsIHNlIG5vbiBlc2lzdG9ubyBhbmNvcmEnOwokbGFuZ1snaW5mb19kZWNpbWFsX3VuaXRzJ10gPSAnUXVlc3RvIHNpc3RlbWEgY2FwaXNjZSBpbCBwdW50byAoLikgY29tZSBzZXBhcmF0b3JlIGRlY2ltYWxlLiBhZCBlc2VtcGlvOiA8c3Ryb25nPjUuMjU8L3N0cm9uZz4nOwokbGFuZ1snaW5mb19kZWxpbWl0ZXInXSA9ICdTcGVjaWZpY2EgaWwgY2FyYXR0ZXJlIChvIGNhcmF0dGVyaSkgY2hlIHNlcGFyYW5vIGNpYXNjdW4gY2FtcG8nOwokbGFuZ1snaW5mb19kdXBsaWNhdGVwcm9kdWN0cyddID0gJ1NwZWNpZmljYSBjb21lIGlsIHNpc3RlbWEgZG92cmViYmUgdGVuZXJlIHVuIHByb2RvdHRvIHF1YW5kbyBpbCBub21lIHNlbXByZSBlc2lzdGUgbmVsIGZpbGUgQ1NWJzsKJGxhbmdbJ2luZm9fZmllbGRkZWZzX3RhYiddID0gJzxzdHJvbmc+Tm90YTo8L3N0cm9uZz4gVHV0dGkgaSBDYW1waSBxdWEgZGVmaW5pdGkgc29ubyB1dGlsaXp6YWJpbGkgcGVyIHR1dHRpIGkgcHJvZG90dGkuJzsKJGxhbmdbJ2luZm9fZmllbGRwcm9ibGVtcyddID0gJ1Byb2JsZW1hIGNvbiB1bm8gbyBwaSZ1Z3JhdmU7IGRlaSBjYW1waSBwZXJzb25hbGl6emF0aS4gTCYjMDM5O2F6aW9uZSBoYSB0ZXJtaW5hdG8gY29uIHN1Y2Nlc3NvLCB0dXR0YXZpYSB2b2kgZG92cmVzdGUgaW52ZXN0aWdhcmUgZSBjb3JyZWdnZXJlIHF1ZXN0aSBwcm9ibGVtaSc7CiRsYW5nWydpbmZvX2hhbmRsZWltYWdlcyddID0gJ1Vwb24gaW1wb3J0LCBpZiBhbiBpbWFnZSBmaWxlbmFtZSBpcyBmb3VuZCBpbiBhIGZpZWxkIGNvbHVtbiwgc2hvdWxkIGl0IGJlIG1vdmVkIGZyb20gdGhlIHNvdXJjZSBsb2NhdGlvbiwgd2F0ZXJtYXJrZWQsIHRodW1ibmFpbGVkLCBhbmQgdGhlIGZpZWxkIHR5cGUgY2hhbmdlZCB0byAmcXVvdDtpbWFnZSZxdW90Oyc7CiRsYW5nWydpbmZvX2hpZXJwYWdlJ10gPSAnVXNhIHF1ZXN0YSBwYWdpbmEgcGVyIGxhIHZpc3VhbGl6emF6aW9uZSBnZXJhcmNoaWNhLiAgSWwgcGFnZWlkIG5vbiBzYXImYWdyYXZlOyBzcGVjaWZpY2F0byBuZWxsJiMwMzk7VVJMLic7CiRsYW5nWydpbmZvX2ltYWdlcGF0aCddID0gJ0lsIHBhdGggKHJlbGF0aXZvIGFsbGEgZGlyZWN0b3J5IGRpIHVwbG9hZHMpIGRvdmUgbGUgaW1tYWdpbmksIHJpZmVyaXRlIGFsIGZpbGUgZGkgaW1wb3J0YXppb25lLCBwb3Nzb25vIGVzc2VyZSB0cm92YXRlJzsKJGxhbmdbJ2luZm9faW1wb3J0X3Rlc3RfcGFzc2VkJ10gPSAnQSBicmllZiB0ZXN0IGFzIGJlZW4gcGVyZm9ybWVkIG9uIHRoZSBpbnB1dCBmaWxlIHNwZWNpZmllZCwgYW5kIGV2ZXJ5dGhpbmcgYXBwZWFycyB0byBiZSBjb3JyZWN0Ljxici8+VGhpcyBpcyBubyBpbmRpY2F0aW9uIHRoYXQgdGhlcmUgYXJlIG5vIGVycm9ycyBpbiB0aGUgZmlsZS4nOwokbGFuZ1snaW5mb19wcmV0dHloaWVydXJscyddID0gJ0luY2x1ZGUgdGhlIGhpZXJhcmNoeSBpdGVtIG5hbWUgb24gdGhlIFVSTCc7CiRsYW5nWydpbmZvX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdWYWxvcmkgdmFsaWRpIHNvbm8gKy0qIy4jIyc7CiRsYW5nWydpbmZvX3Byb2Rub3Rmb3VuZCddID0gJ1RoaXMgb3B0aW9uIGRldGVybWluZXMgdGhlIGJlaGF2aW91ciBvZiB0aGUgd2Vic2l0ZSBpZiBhIHByb2R1Y3QgZGV0YWlsIHZpZXcgaXMgYWNjZXNzZWQgZGlyZWN0bHkgYnkgVVJMLCBhbmQgdGhhdCBwcm9kdWN0IGZvciB3aGF0ZXZlciByZWFzb24gKGRpc2FibGVkLCBkZWxldGVkLCBldGMpIGNhbm5vdCBiZSBhY2Nlc3NlZC4nOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gJ0NhbXBpIHB1YmJsaWNpIHNvbm8gdXRpbGl6emFiaWxpIHBlciBpbCBwdWJibGljbyBkYSB2ZWRlcmUnOwokbGFuZ1snbGFiZWwnXSA9ICdFdGljaGV0dGEnOwokbGFuZ1snbGFiZWxfc2tpcCddID0gJ1NhbHRhJzsKJGxhbmdbJ2xhYmVsX292ZXJ3cml0ZSddID0gJ1NvdnJhc2NyaXZvJzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnPj4nOwokbGFuZ1snbGFzdF9tb2RpZmllZCddID0gJ1VsdGltYSBtb2RpZmljYSc7CiRsYW5nWydsb2dvdGV4dCddID0gJ1NlY29uZGEgaW1tYWdpbmUnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWFzc2ltYSBsdW5naGV6emEgPGVtPihhcHBsaWNhYmlsZSBzb2xvIHN1IGNhbXBpIHRleHRib3gpPC9lbT4nOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnRGF0YSBkaSBtb2RpZmljYSc7CiRsYW5nWydtb2R1bGVfZGVzY3JpcHRpb24nXSA9ICdVbiBtb2R1bG8gcGVyIGdlc3RpcmUgdW4gY2F0YWxvZ28gZGkgcHJvZG90dGksIGxvcm8gcHJlenppLCBpbW1hZ2luaSwgZXRjLCBlIHBlcm1ldHRlIGFnbGkgdXRlbnRpIGRpIGNvc3RydWlyZSB1biBjYXJyZWxsbyc7CiRsYW5nWydtb3ZlX2Rvd24nXSA9ICdNdW92aSBnaSZ1Z3JhdmU7JzsKJGxhbmdbJ21vdmVfdXAnXSA9ICdNdW92aSBzdSc7CiRsYW5nWyduYW1lJ10gPSAnTm9tZSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ05vbiBhdmV0ZSBpIHBlcm1lc3NpIHJpY2hpZXN0aTogJXMnOwokbGFuZ1snbmV3X2NhdGVnb3J5X25hbWUnXSA9ICdOdW92byBub21lIENhdGVnb3JpYSc7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbm8nXSA9ICdObyAnOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICdOZXNzdW4gbm9tZSBpbnNlcml0byc7CiRsYW5nWydub25lJ10gPSAnTmVzc3Vubyc7CiRsYW5nWydvZiddID0gJ2RpJzsKJGxhbmdbJ3BhZ2UnXSA9ICdQYWdpbmEnOwokbGFuZ1sncGFnZV9vZiddID0gJ1BhZ2luYSAlcyBkaSAlcyc7CiRsYW5nWydwYWdlX2xpbWl0J10gPSAnTGltaXRlIHBhZ2luYSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcGVjaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5oaWVyYXJjaHkgLS0gRGlzcGxheSBhIHByb2R1Y3QgbGlzdCBieSBoaWVyYXJjaHk8L2xpPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdCBjYXRlZ29yaWVzPC9saT4NCiAgPGxpPjxlbT5kZWZhdWx0PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyeSBvZiBwcm9kdWN0czwvbGk+DQogIDxsaT5kZXRhaWxzIC0gRGlzcGxheSBhIGRldGFpbCB2aWV3IG9mIGEgc2luZ2xlIHByb2R1Y3Q8L2xpPg0KICA8bGk+ZmllbGRsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgdmFsdWVzIGZyb20gYSBzcGVjaWZpZWQgZmllbGQuDQogICAgIDxwPg0KIC0gVGhpcyBhY3Rpb24gY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGEgbmF2aWdhdGlvbiBmcm9tIHRoZSB2YWx1ZXMgb2YgYSBzcGVjaWZpYyBmaWVsZC4gIGkuZTogIHlvdSBjb3VsZCBjcmVhdGUgYSBjdXN0b20gZHJvcGRvd24gZmllbGQgY2FsbGVkICZxdW90O2NvbG9yJnF1b3Q7IGFuZCB0aGVuIGNyZWF0ZSBhIG5hdmlnYXRpb24gYmFzZWQgb24gdGhlIGRpZmZlcmVudCBjb2xvcnMuDQogICAgIDwvcD4NCiAgPC9saT4NCiAgPGxpPnNlYXJjaCAtIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IHNlYXJjaGluZyBwcm9kdWN0cyBvbiB2YXJpb3VzIGNyaXRlcml1bTwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ1F1YW5kbyB1c2F0byBuZWwgbW9kbyA8ZW0+ZGVmYXVsdDwvZW0+IHNvbW1hcmlvLCBxdWVzdG8gcGFyYW1ldHJvLCBkb3ZyZWJiZSBjb3JyaXNwb25kZXJlIGNvbCBub21lIGRpIHVuYSBjYXRlZ29yaWEgZXNpc3RlbnRlIHVzYXRhIHBlciB2aXN1YWxpenphcmUgc29sbyBxdWVpIHRlcm1pbmkgY2hlIHNvbm8gaW4gcXVlbGxhIGNhdGVnb3JpYS4gKHB1Jm9ncmF2ZTsgZXNzZXJlIGZvcm5pdGEgdW5hIGxpc3RhIHNlcGFyYXRhIGRhIHZpcmdvbGEpJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnVXRpbGUgc29sbyBjb24gbCYjMDM5O2F6aW9uZSBjYXRlZ29yeWxpc3QsIHF1ZXN0byBwYXJhbWV0cm8gaW5kaWNhIGlsIE1vZGVsbG8gY2hlIGRvdnJlYmJlIGVzc2VyZSB1dGlsaXp6YXRvIHBlciBsYSB2aXN1YWxpenphemlvbmUuIFNlIG5lc3N1biB2YWxvcmUgJmVncmF2ZTsgc3BlY2lmaWNhdG8gYWxsb3JhICZlZ3JhdmU7IHVzYXRvIGlsIE1vZGVsbG8gcHJlZGVmaW5pdG8gY29ycmVudGUgZGkgcXVlbCB0aXBvLic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3RkdGx0ZW1wbGF0ZSddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkaXNwbGF5IG9mIHRoZSBjYXRlZ29yeSBkZXRhaWxzLiAgVGhpcyB1c2VzIGEgY2F0ZWdvcnkgbGlzdCB0ZW1wbGF0ZS4uICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnUXVlc3RvIHNwZWNpZmljYSBpbCBJRCBkaSBwYWdpbmEgbyBhbGlhcyBjaGUgZG92cmViYmUgZXNzZXJlIHVzYXRvIHBlciB2aXN1YWxpenphcmUgaWwgcmVwb3J0IGRldHRhZ2xpby4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdRdWVzdG8gcGFyYW1ldHJvIHNwZWNpZmljYSBpbCBNb2RlbGxvIGNoZSBkb3ZyZWJiZSBlc3NlcmUgdXNhdG8gcGVyIGxhIHZpc3VhbGl6emF6aW9uZSBkZXR0YWdsaW8uIFNlIG5lc3N1biB2YWxvcmUgJmVncmF2ZTsgc3BlY2lmaWNhdG8sIGFsbG9yYSBzYXImYWdyYXZlOyB1c2F0byBpbCBNb2RlbGxvIHByZWRlZmluaXRvIGRlbCB0aXBvIGNvcnJlbnRlLic7CiRsYW5nWydwYXJhbV9maWVsZCddID0gJ1VzYXRvIHNvbG8gbmVsIDxlbT5maWVsZGxpc3Q8L2VtPiBxdWVzdG8gcGFyYW1ldHJvICZlZ3JhdmU7IHJpY2hpZXN0byBwZXIgc3BlY2lmaWNhcmUgaWwgbm9tZSBkaSB1biB1c2VyIGRlZmluZWQgcHJvcGVydHkgcGVyIGNyZWFyZSB1bmEgbGlzdGEuJzsKJGxhbmdbJ3BhcmFtX2ZpZWxkdmFsJ10gPSAnVXNlZCBvbmx5IGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBmaWVsZCB2YWx1ZSB0byBsaW1pdCByZXN1bHRzIGJ5LiAgU3BlY2lhbCB2YWx1ZXMgZm9yIHRoaXMgZmllbGQgYXJlICZxdW90Ozo6bnVsbDo6JnF1b3Q7ICZxdW90Ozo6bm90bnVsbDo6JnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeSddID0gJ1V0aWxlIHNvbG8gY29uIGwmIzAzOTthemlvbmUgPGVtPmRlZmF1bHQ8L2VtPiwgcXVlc3RvIHBhcmFtZXRybyBzcGVjaWZpY2EgY2hlIHNvbG9pIHRlcm1pbmkgbmVsbGEgbG9jYXppb25lIGdlcmFyY2hpY2EgZG92cmViYmVybyBlc3NlcmUgdmlzdWFsaXp6YXRpLiBDYXJhdHRlcmkgd2lsZGNhcmQgcG9zc29ubyBlc3NlcmUgdXNhdGkgY29zJmlncmF2ZTsgY2hlIHZvaSBwb3RldGUgc3BlY2lmaWNhcmUgcmVsYXppb25pIHBhcmVudC9maWdsaS4gUGVyIGVzZW1waW8ge1Byb2R1Y3RzIGhpZXJhcmNoeT0mIzAzOTt0cnVja3MqJiMwMzk7fSBjcmVhIHVuIHJlcG9ydCBzb21tYXJpbyBkaSB0dXR0aSBpIHRydWNrcywgaW5jbHVzbyBpIGZpZ2xpIG5lbGxhIGdlcmFyY2hpYS4gU2ltaWxtZW50ZSwge1Byb2R1Y3RzIGhpZXJhcmNoeT0mIzAzOTsqdHJ1Y2tzJiMwMzk7fSB2aXN1YWxpenphIHVuIHJlcG9ydCBzb21tYXJpbyBkaSB0dXR0aSBpIHRydWNrcyBlIHR1dHRpIGkgcHJvZG90dGkgdGVudXRpIGRhIG9nbmkgcGFyZW50IG5lbGxhIGdlcmFyY2hpYS4nOwokbGFuZ1sncGFyYW1faGllcmFyY2h5dGVtcGxhdGUnXSA9ICdRdWVzdG8gcGFyYW1ldHJvIHNwZWNpZmljYSBpbCBNb2RlbGxvIGNoZSBkb3ZyZWJiZSBlc3NlcmUgdXNhdG8gcGVyIGxhIHZpc3VhbGl6emF6aW9uZSBnZXJhcmNoaWEuIFNlIG5lc3N1biB2YWxvcmUgJmVncmF2ZTsgc3BlY2lmaWNhdG8sIGFsbG9yYSBzYXImYWdyYXZlOyB1c2F0byBpbCBNb2RlbGxvIHByZWRlZmluaXRvIGRpIHF1ZWwgdGlwby4nOwokbGFuZ1sncGFyYW1faW5saW5lJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgdGhlIG91dHB1dCBvZiB0aGUgc3VtbWFyeSB2aWV3IHNob3VsZCBiZSBkaXNwbGF5ZWQgaW5saW5lJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ1V0aWxlIHNvbG8gY29uIGwmIzAzOTthemlvbmUgPGVtPmRlZmF1bHQ8L2VtPiwgcXVlc3RvIHBhcmFtZXRybyBzcGVjaWZpY2EgcXVhbnRpIHRlcm1pbmkgZG92cmViYmVybyBlc3NlcmUgdmlzdWFsaXp6YXRpIHN1IGNpYXNjdW5hIHBhZ2luYS4nOwokbGFuZ1sncGFyYW1fcGFyZW50J10gPSAnVXRpbGUgc29sbyBjb24gbCYjMDM5O2F6aW9uZSA8ZW0+Z2VyYXJjaGlhPC9lbT4sIHF1ZXN0byBwYXJhbWV0cm8gc3BlY2lmaWNhIGwmIzAzOTtpZCBkZWxsYSBnZXJhcmNoaWEgZGVsbGEgbG9jYXppb25lIGRpIHBhcnRlbnphIGRlbCByZXBvcnQuJzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RpZCddID0gJ1V0aWxlIHNvbG8gY29uIGwmIzAzOTthemlvbmUgZGV0dGFnbGlvLCBxdWVzdG8gcGFyYW1ldHJvIGluZGljYSBpbCBwcm9kb3R0byBjaGUgZG92cmViYmUgZXNzZXJlIHV0aWxpenphdG8gcGVyIGxhIHZpc3VhbGl6emF6aW9uZS4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGxpc3QnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgKHN1bW1hcnkpIHZpZXcsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgaW50ZWdlciBwcm9kdWN0IGlkcyB0byBkaXNwbGF5LiAgTm8gcGFnaW5hdGlvbiBvciBzb3J0aW5nIGlzIHBlcmZvcm1lZCBvbiB0aGVzZSB2YWx1ZXMsIGFuZCBpZiBzcGVjaWZpZWQgdGhlIG90aGVyIGZpbHRlcmluZyBwYXJhbWV0ZXJzIHRvIHRoZSBzdW1tYXJ5IHZpZXcgYXJlIGlnbm9yZWQuJzsKJGxhbmdbJ3BhcmFtX3Jlc3VsdHBhZ2UnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCwgYW5kIGNhdGVnb3J5IGxpc3QgYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGEgcGFnZSBpZCBvciBhbGlhcyB0byB1c2UgdG8gZGlzcGxheSB0aGUgc3VtbWFyeSByZXN1bHRzJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZpZWxkJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBtYXkgY29udGFpbiBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGZpZWxkIG5hbWVzIHRvIGluY2x1ZGUgaW4gdGhlIHNlYXJjaCc7CiRsYW5nWydwYXJhbV9zZWFyY2hmb3JtdGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXNwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCBzZWFyY2ggZm9ybSB0ZW1wbGF0ZSc7CiRsYW5nWydwYXJhbV9zaG93YWxsJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBjYXRlZ29yeWxpc3QgYW5kIGZpZWxkbGlzdCBhY3Rpb25zLCBpZiB0aGlzIHBhcmFtZXRlciBpcyBzZXQgdG8gYSBub24gMCBpbnRlZ2VyIHZhbHVlIGFsbCBjYXRlZ29yaWVzIChldmVuIHRob3NlIHdpdGhvdXQgcHJvZHVjdHMpIHdpbGwgYmUgZGlzcGxheWVkLic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcGVjaWZ5IHRoZSBvcmRlciBvZiBzb3J0ZWQgZmllbGRzIGluIHN1bW1hcnkgdmlldy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBBc2NlbmRpbmcgb3JkZXI8L2xpPg0KICA8bGk+ZGVzYyAtLSBEZXNjZW5kaW5nIG9yZGVyPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gJ0FwcGxpY2FibGUgb25seSBpbiB0aGUgc3VtbWFyeSBvciBzZWFyY2ggYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgZGV0ZXJtaW5lcyB0aGUgc29ydGluZyBvZiB0aGUgb3V0cHV0IHByb2R1Y3RzLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+cHJvZHVjdF9uYW1lPC9zdHJvbmc+PC9saT4NCiAgPGxpPmlkIC0tIFRoZSBwcm9kdWN0IGlkPC9saT4NCiAgPGxpPndlaWdodCAtLSBUaGUgcHJvZHVjdCB3ZWlnaHQ8L2xpPg0KICA8bGk+cHJpY2UgLS0gVGhlIHByb2R1Y3QgYmFzZSBwcmljZTwvbGk+DQogIDxsaT5zdGF0dXMgLS0gRHJhZnQgb3IgcHVibGlzaGVkPC9saT4NCiAgPGxpPnJhbmRvbSAtLSBEaXNwbGF5IGluIHJhbmRvbSBvcmRlciBvbiBlYWNoIHJlcXVlc3Q8L2xpPg0KICA8bGk+Y3JlYXRlZCAtLSBUaGUgY3JlYXRpb24gZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQogIDxsaT5tb2RpZmllZCAtLSBUaGUgbW9kaWZpZWQgZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQogIDxsaT5mOmZpZWxkbmFtZSAtLSBBbGxvd3Mgc29ydGluZyBieSB2YWx1ZXMgb2YgY3VzdG9tIGZpZWxkcy48L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydHR5cGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgc3VtbWFyeSB2aWV3LCB0aGlzIHBhcmFtZXRlciBpcyB1c2VkIHRvIGNvbnZlcnQgdGhlIHZhbHVlcyB0byBhbm90aGVyIHR5cGUgZm9yIHNvcnRpbmcuICB2YWxpZCB2YWx1ZXMgYXJlIFNUUklORyxTSUdORUQgYW5kIFVOU0lHTkVELiAgSWYgbm90IHN1cHBsaWVkIHRoZSBkZWZhdWx0IFNUUklORyB0eXBlIGlzIGFzc3VtZWQuJzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnlwYWdlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBhY3Rpb249aGllcmFyY2h5LCBhbGxvd3Mgc3BlY2lmeWluZyBhIHBhZ2UgaWQgb3IgYWxpYXMgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIGFueSBsaW5rcyB0byBzdW1tYXJ5IHZpZXcnOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnUXVlc3RvIHBhcmFtZXRybyBzcGVjaWZpY2EgaWwgTW9kZWxsbyBjaGUgc2FyJmFncmF2ZTsgdXRpbGl6emF0byBwZXIgbGEgdmlzdWFsaXp6YXppb25lIGRlbCBtb2RvIHNvbW1hcmlvLiBTZSBuZXNzdW4gdmFsb3JlICZlZ3JhdmU7IHNwZWNpZmljYXRvLCBhbGxvcmEgaWwgc2FyJmFncmF2ZTsgdXRpbGl6emF0byBpbCBNb2RlbGxvIHByZWRlZmluaXRvIGRpIHF1ZWwgdGlwby4nOwokbGFuZ1sncGFyZW50J10gPSAnUGFkcmUnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdJbCBtb2R1bG8gUHJvZHVjdHMgJmVncmF2ZTsgc3RhdG8gaW5zdGFsbGF0byBjb24gc3VjY2Vzc28nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0lsIG1vZHVsbyBQcm9kdWN0cyAmZWdyYXZlOyBzdGF0byByaW1vc3NvIGNvbiB0dXR0aSBpIGRhdGkgYXNzb2NpYXRpJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnUHJlZmVyZW56ZSc7CiRsYW5nWydwcmV1bmluc3RhbGwnXSA9ICdSaW11b3ZlcmUgcXVlc3RvIG1vZHVsbyByaW11b3ZlciZhZ3JhdmU7IGFuY2hlIHR1dHRpIGkgZGF0aSBhc3NvY2lhdGksIHNpZXRlIHNpY3VyaSBkaSB2b2xlciBwcm9jZWRlcmU/JzsKJGxhbmdbJ3ByaWNlJ10gPSAnUHJlenpvJzsKJGxhbmdbJ3ByaWNlX2FkanVzdG1lbnQnXSA9ICdQcmV6em8gZGkgYWRlZ3VhbWVudG8nOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb2R1Y3QnXSA9ICdQcm9kb3R0byc7CiRsYW5nWydwcm9kdWN0bmFtZSddID0gJ05vbWUgUHJvZG90dG8nOwokbGFuZ1sncHJvZHVjdHMnXSA9ICdHZXN0aW9uZSBQcm9kb3R0byc7CiRsYW5nWydwcm9kdWN0X2RldGFpbF9zZXR0aW5ncyddID0gJ0NvbmZpZ3VyYXppb25pIGRldHRhZ2xpbyBQcm9kb3R0aSc7CiRsYW5nWydwcm9kdWN0X2VkaXRpbmdfc2V0dGluZ3MnXSA9ICdQcm9kdWN0IEVkaXRpbmcgU2V0dGluZ3MnOwokbGFuZ1sncHJvZHVjdF9zdW1tYXJ5X3NldHRpbmdzJ10gPSAnUHJvZHVjdCBTdW1tYXJ5IFNldHRpbmdzJzsKJGxhbmdbJ3Byb2R1Y3RfaGllcmFyY2h5J10gPSAnR2VyYXJjaGlhIFByb2RvdHRvJzsKJGxhbmdbJ3Byb2R1Y3RfbWFuYWdlciddID0gJ0dlc3RvcmUgUHJvZG90dG8nOwokbGFuZ1sncHJvZ3Jlc3MnXSA9ICdBdmFuemFtZW50byc7CiRsYW5nWydwcm9tcHQnXSA9ICdQcm9tcHQgJzsKJGxhbmdbJ3Byb21wdF9hZGRfYXR0cmlic2V0J10gPSAnQWdnaXVuZ2VyZS9Nb2RpZmljYSBBdHRyaWJ1dGknOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfZmlsZXR5cGVzJ10gPSAnUGVybWV0dGVyZSBsJiMwMzk7dXBsb2FkIGRpIGZpbGVzIGNvbiBxdWVzdGUgZXN0ZW5zaW9uaSAocGVyIGNhbXBpIHRpcG8gZmlsZSknOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2V0eXBlcyddID0gJ1Blcm1ldHRlcmUgbCYjMDM5O3VwbG9hZCBkaSBpbW1hZ2luaSBjb24gcXVlc3RlIGVzdGVuc2lvbmkgIChwZXIgY2FtcGkgdGlwbyBpbW1hZ2luZSknOwokbGFuZ1sncHJvbXB0X2F0dHJpYnRlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIGRpc3BsYXkgb2YgcHJvZHVjdCBhdHRyaWJ1dGUgdmFsdWVzIGluIGRyb3Bkb3duJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsJ10gPSAnQXV0b21hdGljYW1lbnRlIGNyZWEgbWluaWF0dXJlIGRpIGltbWFnaW5pJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsX3NpemUnXSA9ICdEaW1lbnNpb25lIG1hc3NpbWEgKGxhIHBpJnVncmF2ZTsgZ3JhbmRlKSBkZWxsYSBtaW5pYXR1cmEuJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZyddID0gJ0F1dG9tYXRpY2FtZW50ZSBjcmVhIGltbWFnaW5pIGRpIGFudGVwcmltYSBkZWxsZSBpbW1hZ2luaSc7CiRsYW5nWydwcm9tcHRfYXV0b3ByZXZpZXdpbWdfc2l6ZSddID0gJ0RpbWVuc2lvbmUgbWFzc2ltYSAobGEgcGkmdWdyYXZlOyBncmFuZGUpIGRlbGxhIGltbWFnaW5lIGRpIGFudGVwcmltYS4nOwokbGFuZ1sncHJvbXB0X2F1dG93YXRlcm1hcmsnXSA9ICdBdXRvbWF0aWNhbWVudGUgcG9zaXppb25hIHdhdGVybWFya3Mgc3VsbGUgaW1tYWdpbmknOwokbGFuZ1sncHJvbXB0X2FwcGxpY2FibGUnXSA9ICdBYmlsaXRhdG8gcGVyIHR1dHRpIGkgbnVvdmkgcHJvZG90dGknOwokbGFuZ1sncHJvbXB0X2JhdGNoc2l6ZSddID0gJ0JhdGNoIFNpemUnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlJ10gPSAnTW9kdWxvIENhcnQnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ1BhcmFtZXRyaSBkZWwgbW9kdWxvIENhcnQnOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWNhdGVnb3JpZXMnXSA9ICdDcmVhIENhdGVnb3JpZSc7CiRsYW5nWydwcm9tcHRfY3JlYXRlZmllbGRzJ10gPSAnQ3JlbyBjYW1waSBQcm9kb3R0bz8nOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWhpZXJhcmNoeSddID0gJ0NyZWEgZ2VyYXJjaGlhIFByb2RvdHRvJzsKJGxhbmdbJ3Byb21wdF9jc3ZmaWxlJ10gPSAnVXBsb2FkIGZpbGUgQ1NWJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeWNvZGUnXSA9ICdDb2RpY2UgcGVyIGxhIHZhbHV0YSc7CiRsYW5nWydwcm9tcHRfY3VycmVuY3lzeW1ib2wnXSA9ICdTaW1ib2xvIGRpIHZhbHV0YSc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF9zdGF0dXMnXSA9ICdJbCBwcmVkZWZpbml0byAmZWdyYXZlOyBjaGUgdHV0dGkgaSBudW92aSBwcm9kb3R0aSBoYW5ubyBxdWVzdG8gc3RhdG8nOwokbGFuZ1sncHJvbXB0X2RlZmF1bHRfdGF4YWJsZSddID0gJ0lsIHByZWRlZmluaXRvICZlZ3JhdmU7IGNoZSB0dXR0aSBpIG51b3ZpIHByb2RvdHRpIGhhbm5vIGxhIHRhc3NhJzsKJGxhbmdbJ3Byb21wdF9kZWxldGVwcm9kdWN0ZmlsZXMnXSA9ICdDYW5jZWxsYSBpIGZpbGVzIGFzc29jaWF0aSBjb24gaWwgcHJvZG90dG8gcXVhbmRvIHZpZW5lIGNhbmNlbGxhdG8/JzsKJGxhbmdbJ3Byb21wdF9kZWxpbWl0ZXInXSA9ICdDYW1wbyBkZWxpbWl0YXRvcmUnOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdQYWdpbmEgZGV0dGFnbGlvIHByZWRlZmluaXRhJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxzZm9yJ10gPSAnRGV0dGFnbGlvIHBlciAlcyc7CiRsYW5nWydwcm9tcHRfZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdDb21lIGRldm8gdGVuZXJlIHByb2RvdHRpIGR1cGxpY2F0aT8nOwokbGFuZ1sncHJvbXB0X2ZhbHNlJ10gPSAnRmFsc28nOwokbGFuZ1sncHJvbXB0X2hhbmRsZWltYWdlcyddID0gJ01hbmVnZ2lhcmUgbGUgaW1tYWdpbmk/JzsKJGxhbmdbJ3Byb21wdF9pbWFnZXBhdGgnXSA9ICdQYXRoIGltbWFnaW5lJzsKJGxhbmdbJ3Byb21wdF9sZW5ndGh1bml0cyddID0gJ1VuaXQmYWdyYXZlOyBkaSBsdW5naGV6emEnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX2JlaGF2aW9yJ10gPSAnUXVhbGUgYXppb25lIGRvdnJlYmJlIGVzc2VyZSBlc2VndWl0YSBxdWFuZG8gdW4gcHJvZG90dG8gbm9uIHB1Jm9ncmF2ZTsgZXNzZXJlIHZpc3VhbGl6emF0bz8nOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzQwNCddID0gJ0dlbmVyYSB1biBlcnJvcmUgNDA0JzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF8zMDEnXSA9ICdHZW5lcmEgdW5hIHJlZGlyZXppb25lIDMwMSc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfZXJyb3Jtc2cnXSA9ICdWaXN1YWxpenphIHVuIG1lc3NhZ2dpbyBkaSBlcnJvcmUnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX21zZyddID0gJ01lc3NhZ2dpbyBkaSBlcnJvcmUgcXVhbmRvIHVuIHByb2RvdHRvIG5vbiBwdSZvZ3JhdmU7IGVzc2VyZSB0cm92YXRvJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9wYWdlJ10gPSAnUGFnaW5hIHBlciBmYXJlIHVuYSByZWRpcmV6aW9uZSBwZXJtYW5lbnRlPyc7CiRsYW5nWydwcm9tcHRfaGllcnBhZ2UnXSA9ICdEZWZhdWx0IFBhZ2UgZm9yIEhpZXJhcmNoeSBWaWV3JzsKJGxhbmdbJ3Byb21wdF9wcmV0dHloaWVydXJscyddID0gJ1VzZSBQcmV0dHkgVVJMUyB0byBIaWVyYXJjaHkgVmlld3MnOwokbGFuZ1sncHJvbXB0X3Byb2RfZGV0YWlscGFnZSddID0gJ1BhZ2luYSBwcmVkZWZpbml0YSBwZXIgbGEgVmlzdWFsaXp6YXppb25lIERldHRhZ2xpbyBQcm9kdXR0byc7CiRsYW5nWydwcm9tcHRfcHJvZHVjdHNfbWF0Y2hpbmcnXSA9ICdQcm9kb3R0aSBjaGUgY29tYmFjaWFubyBjb24gJXMnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlwYWdlbGltaXQnXSA9ICdEZWZhdWx0IHBhZ2UgbGltaXQgaW4gc3VtbWFyeSBtb2RlJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnT3JkaW5lIHByZWRlZmluaXRvIG5lbCBtb2RvIHNvbW1hcmlvJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ0NhbXBvIGRlbGwmIzAzOTtvcmRpbmUgcHJlZGVmaW5pdG8gbmVsIG1vZG8gc29tbWFyaW8nOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnTW9kZWxsbyBzb3JnZW50ZSc7CiRsYW5nWydwcm9tcHRfdHJ1ZSddID0gJ1Zlcm8nOwokbGFuZ1sncHJvbXB0X3VybHByZWZpeCddID0gJ1ByZWZpeCB0byB1c2Ugb24gYWxsIFVSTFMgdGFyZ2V0ZWQgdG8gdGhpcyB0aGlzIG1vZHVsZSc7CiRsYW5nWydwcm9tcHRfdXNlX2RldGFpbHBhZ2VfZm9yX3NlYXJjaCddID0gJ1VzZSB0aGlzIHBhZ2UgZm9yIHNlYXJjaCByZXN1bHRzIHRvbyA8ZW0+KG92ZXJyaWRlcyB0aGUgc2VhcmNocmVzdWx0cyBwYWdlIHBhcmFtZXRlciBpbiB0aGUgc2VhcmNoIG1vZHVsZSk8L2VtPic7CiRsYW5nWydwcm9tcHRfdXNlaGllcnBhdGh1cmxzJ10gPSAnVXNlIEhpZXJhcmNoeSBQYXRoIGluIFByb2R1Y3QgRGV0YWlsIFVSTFMnOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnVW5pdCZhZ3JhdmU7IGRpIHBlc28nOwokbGFuZ1sncHVibGljJ10gPSAnRSYjMDM5OyB1biBjYW1wbyBwdWJibGljbz8nOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnUHViYmxpY2F0byc7CiRsYW5nWydyYW5kb20nXSA9ICdSYW5kb20gJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnQXp6ZXJhIGFpIHZhbG9yaSBpbml6aWFsaSc7CiRsYW5nWydyZXR1cm4nXSA9ICdSaXRvcm5hJzsKJGxhbmdbJ3JldHVybl90b190b3AnXSA9ICdSaXRvcm5hIGFsbCYjMDM5O2luaXppbyc7CiRsYW5nWydyb290J10gPSAnUmFkaWNlJzsKJGxhbmdbJ3NlYXJjaF9kZXNjcmlwdGlvbiddID0gJ1NlYXJjaCBQcm9wZXJ0eSBEZXNjcmlwdGlvbic7CiRsYW5nWydzZWFyY2hfZXhwciddID0gJ1Nob3VsZCB0aGUgcXVlcnkgbWF0Y2ggYWxsLCBvciBhbnkgb2YgdGhlIHRlc3RzIGJlbG93Pyc7CiRsYW5nWydzZWFyY2hfbmFtZSddID0gJ0NlcmNhIG5vbWUgZGVsbGEgcHJvcHJpZXQmYWdyYXZlOyc7CiRsYW5nWydzZWFyY2hfcHJpY2UnXSA9ICdJbnRlcnZhbGxvIGRpIHByZXp6byc7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWdnaXVnZS9Nb2RpZmljYSBNb2R1bG8gU2VhcmNoIFRlbXBsYXRlJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlcyddID0gJ1RlbXBsYXRlIGRpIFJpY2VyY2EnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1NlbGV6aW9uYSB1bm8nOwokbGFuZ1snc2t1J10gPSAnU0tVICc7CiRsYW5nWydzb3J0X2J5J10gPSAnT3JkaW5lIHBlcic7CiRsYW5nWydzb3J0X29yZGVyJ10gPSAnVGlwbyBvcmRpbmUnOwokbGFuZ1snc291cmNlJ10gPSAnU29yZ2VudGUnOwokbGFuZ1snc3RhdHVzJ10gPSAnU3RhdG8nOwokbGFuZ1snc3VibWl0J10gPSAnSW52aW8nOwokbGFuZ1snc3Vic2NyaXB0aW9uJ10gPSAnU290dG9zY3JpemlvbmUnOwokbGFuZ1snc3Vic2NyX2V4cGlyeSddID0gJ1NjYWRlbnphJzsKJGxhbmdbJ3N1YnNjcl9leHBpcnkyJ10gPSAnU2NhZHV0aSc7CiRsYW5nWydzdWJzY3JfbW9udGhseSddID0gJ01lbnNpbG1lbnRlJzsKJGxhbmdbJ3N1YnNjcl9kZWxwZXJpb2QnXSA9ICdGcmVxdWVuemEgZGkgZGlzdHJpYnV6aW9uZSc7CiRsYW5nWydzdWJzY3JfZGVscGVyaW9kMiddID0gJ0Rpc3RyaWJ1emlvbmUnOwokbGFuZ1snc3Vic2NyX3BheXBlcmlvZCddID0gJ0ZyZXF1ZW56YSBkaSBwYWdhbWVudG8nOwokbGFuZ1snc3Vic2NyX3BheXBlcmlvZDInXSA9ICdQYWdhbWVudG8nOwokbGFuZ1snc3Vic2NyX3F1YXJ0ZXJseSddID0gJ1F1YWRpbWVzdHJhbGUnOwokbGFuZ1snc3Vic2NyX3NlbWlhbnVhbGx5J10gPSAnU2VtZXN0cmFsZSc7CiRsYW5nWydzdWJzY3JfeWVhcmx5J10gPSAnQW5udWFsZSc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVzJ10gPSAnTW9kZWxsaSBTb21tYXJpbyc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FnZ2l1bmdlcmUvTW9kaWZpY2EgdW4gTW9kZWxsbyBTb21tYXJpbyc7CiRsYW5nWyd0YXhhYmxlJ10gPSAnSW1wb25pYmlsZSc7CiRsYW5nWyd0ZXN0J10gPSAnVGVzdCAnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZXh0IGFyZWEnOwokbGFuZ1sndGV4dGJveCddID0gJ1RleHQgaW5wdXQnOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnTW9kZWxsbyBudW92byBSZXBvcnQgZ2VyYXJjaGljbyc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnTW9kZWxsbyBudW92byBMaXN0YSBjYXRlZ29yaWUgcHJlZGVmaW5pdG8nOwokbGFuZ1sndGl0bGVfZGV0YWlsX2RmbHR0ZW1wbGF0ZSddID0gJ01vZGVsbG8gbnVvdm8gZGV0dGFnbGlvIHByZWRlZmluaXRvJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaF9kZmx0dGVtcGxhdGUnXSA9ICdOdW92byBTZWFyY2ggVGVtcGxhdGUgcHJlZGVmaW5pdG8nOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdNb2RlbGxvIG51b3ZvIHNvbW1hcmlvIHByZWRlZmluaXRvJzsKJGxhbmdbJ3R5cGUnXSA9ICdUaXBvJzsKJGxhbmdbJ3VwJ10gPSAnTXVvdmkgc3UnOwokbGFuZ1sndXBkYXRlJ10gPSAnQWdnaW9ybmEnOwokbGFuZ1sndXBsb2FkJ10gPSAnU2VsZXppb25hIHVuIGZpbGUgcGVyIHVwbG9hZCc7CiRsYW5nWyd1cmxfYWxpYXMnXSA9ICdVUkwgYWxpYXMnOwokbGFuZ1sndmFsaWQnXSA9ICdWYWxpZG8nOwokbGFuZ1sndmFsdWUnXSA9ICdWYWxvcmUnOwokbGFuZ1sndmFsdWVzJ10gPSAnVmFsb3JpJzsKJGxhbmdbJ3ZpZXcnXSA9ICdWaXN1YWxpenphJzsKJGxhbmdbJ3ZpZXdhYmxlX2ZpZWxkcyddID0gJ0NhbXBpIFNlbGVjdCBjYXN0b21penphdGkgcGVyIHZpc3VhbGl6emFyZSBpbiB1bmEgdGFiZWxsYSc7CiRsYW5nWyd3YXRlcm1hcmtfbG9jYXRpb24nXSA9ICdMb2NhemlvbmUgZGVsIFdhdGVybWFyayc7CiRsYW5nWyd3ZWlnaHQnXSA9ICdQZXNvJzsKJGxhbmdbJ3llcyddID0gJ1MmaWdyYXZlOyc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjk3NDM0OTE1NS4xMjk5MDcyNDY4LjEyOTkwNzI0NjguMTI5OTA3NDU1NC4yJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjk5MDcyNDY4LjEuMS51dG1jY249KGRpcmVjdCl8dXRtY3NyPShkaXJlY3QpfHV0bWNtZD0obm9uZSknOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/lt_LT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZCddID0gJ1ByaWTEl3RpJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnUHJpZMSXdGkga2F0ZWdvcmlqxIUnOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdQcmlkxJd0aSBsYXVrxIUnOwokbGFuZ1snYWRqdXN0YWJsZSddID0gJ0FkanVzdGFibGUnOwokbGFuZ1snYWRkcHJvZHVjdCddID0gJ1ByaWTEl3RpIHByb2R1a3TEhSc7CiRsYW5nWydhZGRfYXR0cmliX3NldCddID0gJ1ByaWTEl3RpIGF0cmlidXTEhSc7CiRsYW5nWydhZGRfY2F0ZWdvcnlfZmllbGQnXSA9ICdBc3NvY2lhdGUgRmllbGQgd2l0aCBDYXRlZ29yeTogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnUHJpZMSXdGkgaGllcmFyY2hpam9zIHB1bmt0xIUnOwokbGFuZ1snYWRkX29wdGlvbiddID0gJ1ByaWTEl3RpIGF0cmlidXRvIHNhdnlixJknOwokbGFuZ1snYWRtaW5fb25seSddID0gJ0FyIHRpayBhZG1pbmlzdHJhdG9yaXVzIGdhbGkgbWF0eXRpICZzY2Fyb247xK8gYXRyaWJ1dMSFPyc7CiRsYW5nWydhbGlnbl91bCddID0gJ1RvcCBMZWZ0JzsKJGxhbmdbJ2FsaWduX3VjJ10gPSAnVG9wIENlbnRlcic7CiRsYW5nWydhbGlnbl91ciddID0gJ1RvcCBSaWdodCc7CiRsYW5nWydhbGlnbl9tbCddID0gJ01pZGRsZSBMZWZ0JzsKJGxhbmdbJ2FsaWduX21jJ10gPSAnQ2VudGVyJzsKJGxhbmdbJ2FsaWduX21yJ10gPSAnTWlkZGxlIFJpZ2h0JzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnQm90dG9tIExlZnQnOwokbGFuZ1snYWxpZ25fbGMnXSA9ICdCb3R0b20gQ2VudGVyJzsKJGxhbmdbJ2FsaWduX2xyJ10gPSAnQm90dG9tIFJpZ2h0JzsKJGxhbmdbJ2FsbGNhdGVnb3JpZXMnXSA9ICdWaXNvcyBrYXRlZ29yaWpvcyc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnQXIgSsWrcyDEr3NpdGlraW7EmXM/JzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlcHJvZHVjdCddID0gJ0FyIHRpa3JhaSBub3JpdGUgaSZzY2Fyb247dHJpbnRpICZzY2Fyb247xK8gcHJvZHVrdMSFIGlyIHZpc8SFIHN1IGp1byBzdXNpanVzacSFIGluZm9ybWFjaWrEhT8nOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAnRGlkxJdqYW7EjWlhaSc7CiRsYW5nWydhdHRyaWJ1dGVfbmFtZSddID0gJ0F0cmlidXRvIHBhdmFkaW5pbWFzJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpYyc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlcyddID0gJ0hpZXJhcmNoaW7El3MgYXRhc2thaXRvcyAmc2Nhcm9uO2FibG9uYXMnOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnUHJpZMSXdGkva2Vpc3RpIGhpZXJhcmNoaW7El3MgYXRhc2thaXRvcyAmc2Nhcm9uO2FibG9uxIUnOwokbGFuZ1snY2FuY2VsJ10gPSAnQXQmc2Nhcm9uO2F1a3RpJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdLYXRlZ29yaWpvcyc7CiRsYW5nWydjYXRlZ29yeSddID0gJ2thdGVnb3JpamEnOwokbGFuZ1snY2F0ZWdvcnlleGlzdHMnXSA9ICdLYXRlZ29yaWphIHRva2kgcGF2YWRpbmltdSBqYXUgeXJhJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0thdGVnb3JpasWzIHPEhXJhJnNjYXJvbjtvICZzY2Fyb247YWJsb25hcyc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnUHJpZMSXdGkva2Vpc3RpIGthdGVnb3JpasWzIHPEhXJhJnNjYXJvbjtvICZzY2Fyb247YWJsb27EhSc7CiRsYW5nWydjaGVja2JveCddID0gJ1Zhcm5lbMSXJzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX2hpZXJhcmNoeV9ub2RlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vZGU/ICBBbnkgcHJvZHVjdHMgdGhhdCBhcmUgdXNpbmcgdGhpcyBub2RlIHdpbGwgYmUgc2V0IHRvIG5vIGhpZXJhcmNoeSc7CiRsYW5nWydjb3B5J10gPSAnQ29weSc7CiRsYW5nWydjb3B5X2NhdGVnb3J5J10gPSAnQ29weSBDYXRlZ29yeSc7CiRsYW5nWydjcmVhdGVkZGF0ZSddID0gJ1N1a8WrcmltbyBkYXRhJzsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICdQYXN0YXJvamkgcmVpayZzY2Fyb247bcSXJzsKJGxhbmdbJ2RhdGEnXSA9ICdEYXRhJzsKJGxhbmdbJ2RlZmF1bHQnXSA9ICdEZWZhdWx0JzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdOdW1hdHl0aWVqaSAmc2Nhcm9uO2FibG9uYWknOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZSBjb250ZW50cyBvZiB0aGVzZSB0ZXh0IGFyZWFzIGFyZSB1c2VkIHRvIGRldGVybWluZSB0aGUgZGVmYXVsdCBjb250ZW50IG9mIHRlbXBsYXRlcyB3aGVuIHlvdSBjbGljayAmcXVvdDtBZGQgVGVtcGxhdGUmcXVvdDsgaW4gdGhlIGFwcHJvcHJpYXRlIHRlbXBsYXRlIHRhYi4gIEVkaXRpbmcgb25lIG9mIHRoZXNlIHRleHQgYXJlYXMgd2lsbCBoYXZlIG5vIGltbWVkaWF0ZSBlZmZlY3Qgb24geW91ciB3ZWJzaXRlLic7CiRsYW5nWydkZWxldGUnXSA9ICdUcmludGknOwokbGFuZ1snZGVsZXRlX2F0dHJpYnNldCddID0gJ1RyaW50aSBhdHJpYnV0xIUnOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAnVHJpbnRpIGhpZXJhcmNoaWpvcyBwdW5rdMSFJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdNYcW+xJdqYW7EjWlhaSc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0FwaWLFq2RpbmltYXMnOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFsxJdzJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ0RldGFsacWzICZzY2Fyb247YWJsb25hcyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnUHJpZMSXdGkva2Vpc3RpIGRldGFsacWzICZzY2Fyb247YWJsb27EhSc7CiRsYW5nWydkaXNhYmxlZCddID0gJ0kmc2Nhcm9uO2p1bmd0YXMnOwokbGFuZ1snZHJhZnQnXSA9ICdKdW9kcmEmc2Nhcm9uO3Rpcyc7CiRsYW5nWydkcm9wZG93biddID0gJ0kmc2Nhcm9uO2tyZW50YW50aXMgbWVuaXUnOwokbGFuZ1snZHJvcGRvd25fb3B0aW9ucyddID0gJ0Ryb3Bkb3duIE9wdGlvbnMgPGVtPihhcHBsaWNhYmxlIG9ubHkgZm9yIGRyb3Bkb3duIGZpZWxkcyk8L2VtPjxici8+PGJyLz48ZW0+KG9uZSBlbnRyeSBwZXIgbGluZSk8L2VtPic7CiRsYW5nWydlZGl0J10gPSAnS2Vpc3RpJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0cyddID0gJ0tlaXN0aSBhdHJpYnV0xbMgcmlua2luxK8nOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzX2ZvciddID0gJ0tlaXN0aSBhdHJpYnV0xbMgcmlua2luxK8gKGthbT8pJzsKJGxhbmdbJ2VkaXRfYXR0cmlidXRlcyddID0gJ0tlaXN0aSBhdHJpYnV0dXMnOwokbGFuZ1snZWRpdF9jYXRlZ29yeSddID0gJ1JlZGFndW90aSBrYXRlZ29yaWrEhSc7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ0VkaXQgQ2F0ZWdvcnkgRmllbGRzJzsKJGxhbmdbJ2VkaXRfaGllcmFyY2h5X2l0ZW0nXSA9ICdLZWlzdGkgaGllcmFyY2hpam9zIHB1bmt0xIUnOwokbGFuZ1snZXJyb3JfYXR0cmlic2V0X2V4aXN0cyddID0gJ0F0cmlidXRhcyB0b2tpdSB2YXJkdSBqYXUgeXJhJzsKJGxhbmdbJ2Vycm9yX2ZpZWxkdmFsdWVfZW1wdHknXSA9ICdUaGUgRmllbGQgVmFsdWUgY2Fubm90IGJlIGVtcHR5JzsKJGxhbmdbJ2Vycm9yX2ZpbGVub3Rmb3VuZCddID0gJ0ZpbGUgTm90IEZvdW5kJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJlbnQnXSA9ICdJbnZhbGlkIFBhcmVudCAoYSBoaWVyYXJjaHkgbm9kZSBjYW5ub3QgYmUgaXQmIzAzOTtzIG93biBwYXJlbnQpJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfbmFtZSddID0gJ1RoZSBjdXN0b20gZmllbGQgdmFsdWUgZW50ZXJlZCBpcyBpbnZhbGlkIChjb250YWlucyBub24gYWxwaGFudW1lcmljIGNoYXJhY3RlcnMpJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ1Ryxatrc3RhIGFyYmEgbmV0ZWlzaW5nYXMgcHJpdmFsb21hcyBwYXJhbWV0cmFzJzsKJGxhbmdbJ2Vycm9yX25hbWV1c2VkJ10gPSAnQW4gaXRlbSBieSB0aGF0IG5hbWUgaXMgYWxyZWFkeSBpbiB1c2UnOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdQYXNpcmlua2l0ZSBsYXVrbyB0aXDEhSc7CiRsYW5nWydlcnJvcl9ub25hbWUnXSA9ICdZb3UgbXVzdCBzdXBwbHkgYSBuYW1lJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdQcm9kdWt0YXMgdG9raXUgcGF2YWRpbmltdSBqYXUgeXJhJzsKJGxhbmdbJ2Vycm9yX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdOZXRlaXNpbmdhIGthaW5vcyBwYWtlaXRpbW8gcmVpayZzY2Fyb247bcSXICAmc2Nhcm9uO2lhbSDEr3JhJnNjYXJvbjt1aTogJXMnOwokbGFuZ1snZXJyb3JfdXBsb2FkX2ZhaWxlZCddID0gJ8Sua8SXbGltYXMgbmVwYXZ5a286ICVzJzsKJGxhbmdbJ2ZpZWxkJ10gPSAnTGF1a2FzJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnTGF1a28gYXBpYnLEl8W+aW1hcyc7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdMYXVrbyBhcGlicsSXxb5pbWFpJzsKJGxhbmdbJ2ZpbGUnXSA9ICdCeWxhJzsKJGxhbmdbJ2ZpbHRlcnMnXSA9ICdGaWx0cmFpJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBkb2VzIHRoaXMgZG8/PC9oMz4NCjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgd2F5IHRvIGNvbGxlY3QsIG9yZ2FuaXplLCBhbmQgZGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCBwcm9kdWN0cyBhbmQgdGhlaXIgY2F0ZWdvcmllcy4gIFRoaXMgbW9kdWxlIGNhbiBzdGFuZCBvbiBpdHMgb3duLCBvciBiZSBwYXJ0IG9mIGFuIGUtY29tbWVyY2Ugc29sdXRpb24gaWYgeW91IHdpc2guICBUaGUgbW9kdWxlIHN1cHBvcnRzIGEgcHJvZHVjdCBleGlzdGluZyBpbiBtb3JlIHRoYW4gb25lIGNhdGVnb3J5LCBzdXBwb3J0cyBwcm9kdWN0IHdlaWdodCwgcHJpY2UsIGFuZCBhdHRyaWJ1dGUgc2V0cy4gIEVhY2ggaXRlbSBpbiBhbiBhdHRyaWJ1dGUgc2V0IGNhbiBoYXZlIGEgcHJpY2UgYWRqdXN0bWVudC4gIEFsc28gYSBnbG9iYWwgZmxhZyBpbmRpY2F0ZXMgd2V0aGVyIHRoZSBwcm9kdWN0IGlzICYjMDM5O3RheGFibGUmIzAzOTsgb3Igbm90LjwvcD4NCiAgPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgZm9yIHVwIHRvIHR3byBpbWFnZXMgcGVyIHByb2R1Y3QsIGN1c3RvbSBmaWVsZCBkZWZpbml0aW9ucywgYW5kIGZvciB0aGUgYWJpbGl0eSB0byBkZXNjcmltaW5hdGUgcHJpdmF0ZSBmcm9tIHB1YmxpYyBkYXRhLjwvcD4NCjxoMz5GZWF0dXJlczo8L2gzPg0KPHVsPg0KICA8bGk+TnVtZXJvdXMgVmlld3M8L2xpPg0KICAgIDx1bD4NCiAgICAgIDxsaT5TdW1tYXJ5IHZpZXc8L2xpPg0KICAgICAgPGxpPkNhdGVnb3J5IExpc3QgVmlldzwvbGk+DQogICAgICA8bGk+RGV0YWlsIHZpZXc8L2xpPiANCiAgICAgIDxsaT5IaWVyYXJjaHkgRHJpbGwtZG93biBWaWV3PC9saT4NCiAgICA8L3VsPg0KICA8bGk+RW50aXJlbHkgRGF0YWJhc2UgVGVtcGxhdGUgRHJpdmVuPC9saT4NCiAgPHA+TnVtZXJvdXMgdGVtcGxhdGVzIG9mIGVhY2ggdHlwZSBjYW4gYmUgZGVmaW5lZCwgZGVmYXVsdHMgc3BlY2lmaWVkIGZvciBlYWNoIHR5cGUsIGFuZCB0aGUgdGVtcGxhdGUgdXNlZCBmb3IgZWFjaCBwYXJ0aWN1bGFyIHZpZXcgY2FuIGJlIHNwZWNpZmllZCBhcyBhIHBhcmFtZXRlcjwvcD4NCiAgPGxpPlNvcnRpbmcgYW5kIHBhZ2luYXRpb24gaW4gdGhlIHN1bW1hcnkgdmlldzwvbGk+DQogIDxsaT5Qcm9kdWN0cyBjYW4gZXhpc3QgaW4gbXVsdGlwbGUgY2F0ZWdvcmllczwvbGk+DQogIDxsaT5OdW1lcm91cyBjdXN0b20gZmllbGRzIGNhbiBiZSBkZWZpbmVkLCBpbmNsdWRpbmcgaW1hZ2VzPC9saT4NCiAgPGxpPkF1dG9tYXRpYyB0aHVtYm5haWwgY3JlYXRpb248L2xpPg0KICA8bGk+QWRtaW4gZGVmaW5lZCBmaWVsZHM8L2xpPg0KICA8bGk+UHJvZHVjdCBhdHRyaWJ1dGVzIChpbmNsdWRpbmcgcHJpY2UgYWRqdXN0bWVudCk8L2xpPg0KICA8bGk+V2VpZ2h0IGFuZCB0YXhhYmxlIGZpZWxkcyAoZm9yIHVzZSBpbiBlLWNvbW1lcmNlIHNvbHV0aW9ucyk8L2xpPg0KICA8bGk+UHJvZHVjdHMgY2FuIGhhdmUgYSBzdGF0dXMgKHB1Ymxpc2hlZCBvciBkcmFmdCkgaW4gb3JkZXIgdG8gaGlkZSBwcm9kdWN0cyBmcm9tIHB1YmxpYyBkaXNwbGF5IGF0IGFueSB0aW1lPC9saT4NCiAgPGxpPlByZXR0eSBVUkwgU3VwcG9ydDwvbGk+DQogIDxsaT48c3Ryb25nPk1vcmUuLi48L3N0cm9uZz48L2xpPg0KPC91bD4NCg0KPGgzPkhvdyBEbyBJIFVzZSBJdDo8L2gzPg0KPHVsPg0KPGxpPlNldCBwcmVmZXJlbmNlczwvbGk+DQo8cD5Vc3VhbGx5IHRoaXMgaXMganVzdCBhIGZvcm1hbGl0eS4gIFlvdSBzaG91bGQgc3BlY2lmeSB5b3VyIGRlZmF1bHQgd2VpZ2h0IHVuaXRzLCBhbmQgeW91ciBkZWZhdWx0IGN1cnJlbmN5IHN5bWJvbCBmb3IgeW91ciBsb2NhbCBlbnZpcm9ubWVudC48L3A+DQo8bGk+U2V0dXAgdXNlcnMgYW5kIHBlcm1pc3Npb25zPC9saT4NCjxwPlRoaXMgbW9kdWxlIHVzZXMgdGhlICYjMDM5O01vZGlmeSBUZW1wbGF0ZXMmIzAzOTsgcGVybWlzc2lvbiB0byBhbGxvdyB1c2VycyB0byBiZSBhYmxlIHRvIG1vZGlmeSB0aGUgdmFyaW91cyB0ZW1wbGF0ZXMgdGhhdCBjYW4gYmUgdXNlZCBieSB0aGlzIG1vZHVsZS4gIEFzIHdlbGwsIHRoZSAmIzAzOTtNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcyYjMDM5OyBwZXJtaXNzaW9uIGlzIG5lZWRlZCB0byBiZSBhYmxlIHRvIGFkanVzdCB0aGUgbW9kdWxlcyBwcmVmZXJlbmNlcy4gIEluIG9yZGVyIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbW9kaWZ5IGZpZWxkIGRlZmluaXRpb25zLCBjYXRlZ29yaWVzLCBvciBwcm9kdWN0cywgeW91ciB1c2VycyB3aWxsIG5lZWQgdGhlICYjMDM5O01vZGlmeSBQcm9kdWN0cyYjMDM5OyBwZXJtaXNzaW9uLjwvcD4NCjxsaT4ob3B0aW9uYWwpIERlZmluZSBvbmUgb3IgbW9yZSBjYXRlZ29yaWVzPC9saT4NCjxwPlRoaXMgaXMgYW4gb3B0aW9uYWwgc3RlcCwgYnV0IHlvdSB3aWxsIHByb2JhYmx5IHdhbnQgdG8gZG8gdGhpcyBlYXJseSB0byBwcmV2ZW50IGhhdmluZyB0byBnbyBiYWNrIHRvIG1vZGlmeSBlYWNoIGFuZCBldmVyeSBwcm9kdWN0IGxhdGVyLiAgQWRkaW5nIGEgY2F0ZWdvcnkgaXMgYXMgc2ltcGxlIGFzIGNsaWNraW5nIG9uIHRoZSAmIzAzOTtDYXRlZ29yaWVzJiMwMzk7IHRhYiBpbiB0aGUgUHJvZHVjdCBNYW5hZ2VycyBhZG1pbiBzZWN0aW9uLCBhbmQgY2xpY2tpbmcgJiMwMzk7QWRkIEEgQ2F0ZWdvcnkmIzAzOTsuICBGcm9tIHRoZXJlIHlvdSB3aWxsIGJlIHByb21wdGVkIGZvciBhIGNhdGVnb3J5IG5hbWUuPC9wPg0KPGxpPihvcHRpb25hbCkgRGVmaW5lIG9uZSBvciBtb3JlIGN1c3RvbSBmaWVsZHM8L2xpPg0KPHA+VGhpcyBpcyBhbiBvcHRpb25hbCBzdGVwLiAgQ3VzdG9tIGZpZWxkcyBhcmUgbm90IG5lZWRlZCBpZiB0aGlzIG1vZHVsZSBzdWl0cyB5b3UgZXhhY3RseSBhcyBpdCBpcy4gIEhvd2V2ZXIgaWYgeW91IHdvdWxkIGxpa2UgdG8gc3RvcmUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBmb3IgZWFjaCBvZiB5b3VyIHByb2R1Y3RzIHlvdSBjYW4gY3JlYXRlIGN1c3RvbSBmaWVsZHMuICBDcmVhdGluZyBjdXN0b20gZmllbGRzIGlzIHNpbWlsYXIgdG8gY3JlYXRpbmcgY2F0ZWdvcmllcywgZXhjZXB0IHRoYXQgbW9yZSBkYXRhIGlzIHJlcXVlc3RlZC48L3A+DQo8cD5DdXJyZW50bHkgc2l4IHR5cGVzIG9mIGN1c3RvbSBmaWVsZHMgYXJlIGF2YWlsYWJsZTogJiMwMzk7dGV4dGJveCYjMDM5OywmIzAzOTtjaGVja2JveCYjMDM5OyxhbmQgJiMwMzk7dGV4dGFyZWEsIGRyb3Bkb3duLCBhbmQgZmlsZSYjMDM5Oy4gIFNlbGVjdCBvbmUgb2YgdGhlc2UsIGdpdmUgeW91ciBuZXcgZmllbGQgYSBuYW1lLCBhbmQgaW5kaWNhdGUgd2V0aGVyIHRoYXQgZmllbGQgc2hvdWxkIGJlIHZpc2libGUgdG8gdGhlIHB1YmxpYyBpbiB0aGUgdmFyaW91cyB2aWV3cy4gIFRoZW4gaGl0IHN1Ym1pdDwvcD4NCjxsaT5DcmVhdGUgb25lIG9yIG1vcmUgcHJvZHVjdHM8L2xpPg0KPHA+WW91IHNob3VsZCBjcmVhdGUgb25lIG9yIG1vcmUgcHJvZHVjdHMgdG8gZGlzcGxheSBpbiB5b3VyIHdlYnNpdGUgY29udGVudC4gIEdpdmUgZWFjaCBwcm9kdWN0IGEgbmFtZSwgYSBwcmljZSAob3B0aW9uYWwpIGEgd2VpZ2h0IChvcHRpb25hbCksIGEgc3RhdHVzIChkcmFmdCBvciBwdWJsaXNoZWQpLCBhbmQgc29tZSBpbmZvcm1hdGlvbi4gIEFkZGl0aW9uYWxseSwgeW91IGNhbiBhbHNvIHNwZWNpZnkgaWYgdGhlIHByb2R1Y3QgaXMgdGF4YWJsZS48L3A+DQo8cD5JZiBjYXRlZ29yaWVzIGFyZSBkZWZpbmVkLCB0aGVuIGEgY2hlY2tib3ggd2lsbCBhcHBlYXIgZm9yIGVhY2ggZGVmaW5lZCBjYXRlZ29yeS4gIFlvdSBjYW4gc2ltcGx5IGNsaWNrIHRoZSBjaGVja2JveCBmaWVsZHMgZm9yIGVhY2ggY2F0ZWdvcnkgdGhhdCB0aGlzIHByb2R1Y3Qgc2hvdWxkIGJlbG9uZyB0by48L3A+DQo8cD5JZiBjdXN0b20gZmllbGRzIGFyZSBkZWZpbmVkLCB0aGVuIGlucHV0IGZpZWxkcyBhcHByb3ByaWF0ZSB0byB0aGUgdHlwZSBvZiBjdXN0b20gZmllbGQgd2lsbCBhcHBlYXIgYW5kIGFsbG93IHlvdSB0byBzcGVjaWZ5IGRhdGEgZm9yIGVhY2ggb2YgdGhlbS4gIFRoaXMgZGF0YSBpcyBvcHRpb25hbC48L3A+DQo8bGk+QWRkIHRoZSBhcHByb3ByaWF0ZSB0YWdzIGludG8geW91ciBwYWdlIHRlbXBsYXRlcyBvciBwYWdlIGNvbnRlbnQ8L2xpPg0KPHA+VGhpcyBjYW4gYmUgYXMgc2ltcGxlIGFzIGFkZGluZyB0aGUgPHN0cm9uZz57UHJvZHVjdHN9PC9zdHJvbmc+IHRhZyBpbnRvIHRoZSBjb250ZW50IGFyZWEgb2Ygb25lIG9mIHlvdXIgcGFnZXMsIG9yIGludG8geW91ciBwYWdlIHRlbXBsYXRlLjwvcD4NCjxwPklmIHlvdSB3aXNoIHRvIGFsdGVyIHRoZSBiZWhhdmlvdXIgb2YgdGhpcyBhcHBsaWNhdGlvbiBmcm9tIGl0cyBkZWZhdWx0LCB5b3UgY2FuIGRvIHRoYXQgYnkgYWRkaW5nIG9uZSBvciBtb3JlIHBhcmFtZXRlcnMgdG8gdGhlIDxzdHJvbmc+e1Byb2R1Y3RzfTwvc3Ryb25nPiB0YWcuICBUaGUgY29tcGxldGUgbGlzdCBvZiBwYXJhbWV0ZXJzIGFuZCB0aGVpciBiZWhhdmlvdXIgaXMgbGlzdGVkIGJlbG93LiAgQnV0IGZvciBleGFtcGxlLCB0byBkaXNwbGF5IGEgbGlzdCBvZiBwcm9kdWN0cyBpbiBhIHNpbmdsZSwgZXhpc3RpbmcgY2F0ZWdvcnksIHlvdSBjb3VsZCB1c2UgYSB0YWcgbGlrZSA8Y29kZT57UHJvZHVjdHMgY2F0ZWdvcnk9JiMwMzk7Y2F0ZWdvcnluYW1lJiMwMzk7fTwvY29kZT48L3A+DQo8L3VsPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuICBIb3dldmVyIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMgb3IgdG8gZmlsZSBhIGJ1ZyByZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgY21zIG1hZGUgc2ltcGxlIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlcnMgRm9yZ2U8L2E+IGFuZCBkbyBhIHNlYXJjaCBmb3IgJiMwMzk7UHJvZHVjdHMmIzAzOTs8L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPlJvYmVydCBDYW1wYmVsbDwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcm1zLjwvYT48L2xpPg0KPGxpPkZvciBzb21lIHF1ZXN0aW9ucyBhbmQgbGltaXRlZCB0ZWNobmljYWwgc3VwcG9ydCwgdGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPC91bD4nOwokbGFuZ1snaGllcmFyY2h5J10gPSAnSGllcmFyY2hpamEnOwokbGFuZ1snaGllcmFyY2h5X3Bvc2l0aW9uJ10gPSAnSGllcmFyY2hpam9zIHBvemljaWphJzsKJGxhbmdbJ2lkJ10gPSAnSWQnOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnUGF2ZWlrc2xhcyc7CiRsYW5nWydpbmNsdWRlX2NoaWxkcmVuJ10gPSAnxK50cmF1a3RpIHZpZGluZXM/JzsKJGxhbmdbJ2luZm9fYWxudW1vbmx5J10gPSAnT25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycy4gTm8gd2hpdGVzcGFjZSwgcXVvdGVzLCBvciBub24gbGV0dGVyL251bWJlciBjb21iaW5hdGlvbnMnOwokbGFuZ1snaW5mb19hdXRvdGh1bWJuYWlsJ10gPSAnVGh1bWJuYWlsIHNldHRpbmdzIGFyZSB0YWtlbiBmcm9tIHRoZSBDR0V4dGVuc2lvbnMgTW9kdWxlJzsKJGxhbmdbJ2luZm9fYXV0b3dhdGVybWFyayddID0gJ1dhdGVybWFyayBzZXR0aW5ncyBhcmUgdGFrZW4gZnJvbSB0aGUgQ0dFeHRlbnNpb25zIE1vZHVsZSc7CiRsYW5nWydpbmZvX2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ1RoZXNlIHBhcmFtZXRlcnMgYXJlIGdpdmVuIHRvIHRoZSBzZWxlY3RlZCBjYXJ0IG1vZHVsZSBmcm9tIHRoZSBwcm9kdWN0IGRldGFpbCBhbmQgc3VtbWFyeSBkaXNwbGF5cyc7CiRsYW5nWydpbmZvX2RlY2ltYWxfdW5pdHMnXSA9ICdUaGlzIHN5c3RlbSB1bmRlcnN0YW5kcyAoLikgYXMgdGhlIGRlY2ltYWwgcG9pbnQgc2VwYXJhdG9yLiBpLmUuOiA8c3Ryb25nPjUuMjU8L3N0cm9uZz4nOwokbGFuZ1snaW5mb19maWVsZGRlZnNfdGFiJ10gPSAnPHN0cm9uZz5Ob3RlOiA8L3N0cm9uZz4gQWxsIEZpZWxkcyBkZWZpbmVkIGhlcmUgYXJlIGF2YWlsYWJsZSB0byBhbGwgcHJvZHVjdHMuJzsKJGxhbmdbJ2luZm9fZmllbGRwcm9ibGVtcyddID0gJ1Byb2JsZW1zIHdlcmUgZW5jb3VudGVyZWQgd2hlbiBkZWFsaW5nIHdpdGggb25lIG9yIG1vcmUgY3VzdG9tIGZpZWxkcy4gIFRoZSBhY3Rpb24gaGFzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHksIGhvd2V2ZXIgeW91IHNob3VsZCBpbnZlc3RpZ2F0ZSBhbmQgY29ycmVjdCB0aGVzZSBwcm9ibGVtcyc7CiRsYW5nWydpbmZvX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdHYWxpbW9zIHRpayB0b2tpb3MgdmVydMSXczogKy0qIy4jIyc7CiRsYW5nWydpbmZvX3B1YmxpY2ZpZWxkJ10gPSAnVmllJnNjYXJvbjtpIGxhdWthaSB5cmEgdmllJnNjYXJvbjthaSBtYXRvbWknOwokbGFuZ1snbGFiZWwnXSA9ICdFdGlrZXTElyc7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xhc3RfbW9kaWZpZWQnXSA9ICdQYXNrdXRpbsSXIG1vZGlmaWthY2lqYSc7CiRsYW5nWydsb2dvdGV4dCddID0gJ0FudHJhcyBwYXZlaWtzbGFzJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ01ha3NpbWFsdXMgaWxnaXM8ZW0+KHRhaWtvbWEgdGlrICZxdW90O3RleHRib3gmcXVvdDsgbGF1a3VpKTwvZW0+JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ01vZGlmaWthdmltbyBkYXRhJzsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gJ0EgbW9kdWxlIGZvciBtYW5hZ2luZyBhIGNhdGFsb2cgb2YgcHJvZHVjdHMsIHRoZWlyIHByaWNlLCBpbWFnZXMsIGV0YywgYW5kIGZvciBhbGxvd2luZyB1c2VycyB0byBidWlsZCBhIGNhcnQnOwokbGFuZ1snbmFtZSddID0gJ1BhdmFkaW5pbWFzJzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnSsWrcyBuZXR1cml0ZSByZWlraWFtxbMgbGVpZGltxbM6ICVzJzsKJGxhbmdbJ25ld19jYXRlZ29yeV9uYW1lJ10gPSAnTmV3IENhdGVnb3J5IE5hbWUnOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICc+JzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnSm9rcyB2YXJkYXMgbmVwYXRlaWt0YXMnOwokbGFuZ1snbm9uZSddID0gJ0pva2lvJzsKJGxhbmdbJ29mJ10gPSAnT2YnOwokbGFuZ1sncGFnZSddID0gJ1B1c2xhcGlzJzsKJGxhbmdbJ3BhZ2Vfb2YnXSA9ICdQdXNsYXBpcyAlcyBpJnNjYXJvbjsgJXMnOwokbGFuZ1sncGFnZV9saW1pdCddID0gJ8SucmEmc2Nhcm9uO8WzIHNrYWnEjWl1cyBwdXNsYXB5amUnOwokbGFuZ1sncGFyYW1fYWN0aW9uJ10gPSAnU3BlY2lmeSB0aGUgYmVoYXZpb3VyIG9mIHRoZSBtb2R1bGUuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+aGllcmFyY2h5IC0tIERpc3BsYXkgYSBwcm9kdWN0IGxpc3QgYnkgaGllcmFyY2h5PC9saT4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtIERpc3BsYXkgYSBsaXN0IG9mIHByb2R1Y3QgY2F0ZWdvcmllczwvbGk+DQogIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gRGlzcGxheSBhIHN1bW1hcnkgb2YgcHJvZHVjdHM8L2xpPg0KICA8bGk+ZGV0YWlsIC0gRGlzcGxheSBhIGRldGFpbCB2aWV3IG9mIGEgc2luZ2xlIHByb2R1Y3Q8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdXaGVuIHVzZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciwgd2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBuYW1lIG9mIGFuIGV4aXN0aW5nIGNhdGVnb3J5IHdpbGwgYmUgdXNlZCB0byBkaXNwbGF5IG9ubHkgdGhvc2UgcHJvZHVjdHMgdGhhdCBhcmUgaW4gdGhhdCBjYXRlZ29vcnkuIChhIGNvbW1hIHNlcGVyYXRlZCBsaXN0IGNhbiBiZSBzdXBwbGllZCknOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1fZGV0YWlscGFnZSddID0gJ1RoaXMgc3BlY2lmaWVzIHRoZSBwYWdlaWQgb3IgYWxpYXMgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBkZXRhaWwgcmVwb3J0Lic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRldGFpbCBtb2RlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1faGllcmFyY2h5J10gPSAnVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhhdCBvbmx5IGl0ZW1zIGluIHRoYXQgbG9jYXRpb24gb2YgdGhlIGhpZXJhcmNoeSBzaG91bGQgYmUgZGlzcGxheWVkLiAgV2lsZGNhcmQgY2hhcmFjdGVyIGNhbiBiZSB1c2VkIHNvIHRoYXQgeW91IGNhbiBzcGVjaWZ5IHBhcmVudC9jaGlsZCByZWxhdGlvbnNoaXBzIGFzIHdlbGwuICBpLmUge1Byb2R1Y3RzIGhpZXJhcmNoeT0mIzAzOTt0cnVja3MqJiMwMzk7fSB3aWxsIGNyZWF0ZSBhIHN1bW1hcnkgcmVwb3J0IG9mIGFsbCB0cnVja3MsIGluY2x1ZGluZyB0aGUgY2hpbGRyZW4gaW4gdGhlIGhpZXJhcmNoeS4gIFNpbWlsYXJseSwge1Byb2R1Y3RzIGhpZXJhcmNoeT0mIzAzOTsqdHJ1Y2tzJiMwMzk7fSB3aWxsIGRpc3BsYXkgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBhbmQgYWxsIHByb2R1Y3RzIGJlbG9naW5nIHRvIGFueSBwYXJlbnQgaW4gdGhlIGhpZXJhcmNoeS4nOwokbGFuZ1sncGFyYW1faGllcmFyY2h5dGVtcGxhdGUnXSA9ICdUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBoaWVyYXJjaHkgZGlzcGxheS4gSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIGxpc3RlZCBvbiBlYWNoIHBhZ2UuJzsKJGxhbmdbJ3BhcmFtX3BhcmVudCddID0gJ1VzZWZ1bCBvbmx5IGluIHRoZSA8ZW0+aGllcmFyY2h5PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIGhpZXJhcmNoeSBpZCBvZiB0aGUgc3RhcnRpbmcgbG9jYXRpb24gb2YgdGhlIHJlcG9ydC4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGlkJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgZGV0YWlsIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHdoYXQgcHJvZHVjdCB0byB1c2UgZm9yIHRoZSBkaXNwbGF5Lic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcGVjaWZ5IHRoZSBvcmRlciBvZiBzb3J0ZWQgZmllbGRzIGluIHN1bW1hcnkgdmlldy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBBc2NlbmRpbmcgb3JkZXI8L2xpPg0KICA8bGk+ZGVzYyAtLSBEZXNjZW5kaW5nIG9yZGVyPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gJ0FwcGxpY2FibGUgb25seSBpbiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyIGRldGVybWluZXMgdGhlIHNvcnRpbmcgb2YgdGhlIG91dHB1dCBwcm9kdWN0cy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPnByb2R1Y3RfbmFtZTwvc3Ryb25nPjwvbGk+DQogIDxsaT5wcmljZSAtLSBUaGUgcHJvZHVjdCBiYXNlIHByaWNlPC9saT4NCiAgPGxpPnN0YXR1cyAtLSBEcmFmdCBvciBwdWJsaXNoZWQ8L2xpPg0KICA8bGk+cmFuZG9tIC0tIERpc3BsYXkgaW4gcmFuZG9tIG9yZGVyIG9uIGVhY2ggcmVxdWVzdDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIHN1bW1hcnkgbW9kZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmVudCddID0gJ1TEl3Zhcyc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1Byb2R1Y3RzIG1vZHVsaXMgaW5zdGFsaXVvdGFzIHPEl2ttaW5nYWknOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1RoZSBQcm9kdWN0cyBtb2R1bGUgaGFzIGJlZW4gcmVtb3ZlZCBhbG9uZyB3aXRoIGFsbCBhc3NvY2lhdGVkIGRhdGEnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQYXNpcmlua2ltYWknOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnUmVtb3ZpbmcgdGhpcyBtb2R1bGUgd2lsbCBhbHNvIHJlbW92ZSBhbGwgYXNzb2NpYXRlZCBkYXRhLCBhcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcHJvY2VlZD8nOwokbGFuZ1sncHJpY2UnXSA9ICdLYWluYSc7CiRsYW5nWydwcmljZV9hZGp1c3RtZW50J10gPSAnS2Fpbm9zIHBha2VpdGltYXMnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb2R1Y3QnXSA9ICdQcm9kdWt0YXMnOwokbGFuZ1sncHJvZHVjdG5hbWUnXSA9ICdQcm9kdWt0byBwYXZhZGluaW1hcyc7CiRsYW5nWydwcm9kdWN0cyddID0gJ1Byb2R1a3RhaSc7CiRsYW5nWydwcm9kdWN0X2hpZXJhcmNoeSddID0gJ1Byb3R1a3TFsyBoaWVyYXJjaGlqYSc7CiRsYW5nWydwcm9kdWN0X21hbmFnZXInXSA9ICdQcm9kdWt0xbMgdHZhcmt5bWFzJzsKJGxhbmdbJ3Byb21wdCddID0gJ1XFvnVvbWluYSc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnXSA9ICdMZWlzdGkgdGlrIHRva2lvIGZvcm1hdG8gcGF2ZWlrc2zFsyDEr2vEl2xpbcSFIGJ5bMWzIHRpcG8gbGF1a3Vvc2UnOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2V0eXBlcyddID0gJ0xlaXN0aSB0aWsgdG9raW8gZm9ybWF0byBwYXZlaWtzbMWzIMSva8SXbGltxIUgcGF2ZWlrc2zFsyB0aXBvIGxhdWt1b3NlJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsJ10gPSAnQXV0b21hdGkmc2Nhcm9uO2thaSBnZW5lcnVvdGkgcGF2ZWlrc2zFsyBtaW5pYXRpxatyYXMnOwokbGFuZ1sncHJvbXB0X2F1dG93YXRlcm1hcmsnXSA9ICdBdXRvbWF0aWNhbGx5IHBsYWNlIHdhdGVybWFya3Mgb24gaW1hZ2VzJzsKJGxhbmdbJ3Byb21wdF9hcHBsaWNhYmxlJ10gPSAnTGVpc3RpIHBhZ2FsIG51dHlsxJdqaW3EhSB2aXNpZW1zIG5hdWppZW1zIHByb2R1a3RhbXMnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlJ10gPSAnQ2FydCBNb2R1bGUnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ0NhcnQgTW9kdWxlIFBhcmFtZXRlcnMnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5Y29kZSddID0gJ1ZhbGl1dG9zIGtvZGFzJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeXN5bWJvbCddID0gJ1ZhbGl1dG9zIHNpbWJvbGlzJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0X3N0YXR1cyddID0gJ0J5IGRlZmF1bHQgYWxsIG5ldyBwcm9kdWN0cyBoYXZlIHRoaXMgc3RhdHVzJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0X3RheGFibGUnXSA9ICdCeSBkZWZhdWx0IGFsbCBuZXcgcHJvZHVjdHMgYXJlIHRheGFibGUnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gJ0kmc2Nhcm9uO3RyaW50aSBieWxhcyBzdXNpanVzaWFzIHN1IHByb2R1a3RhaXMsIGthaSAmc2Nhcm9uO2llIHlyYSBpJnNjYXJvbjt0cmluYW1pPyc7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ051bWF0eXRhc2lzIGRldGFsacWzIHB1c2xhcGlzJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnTnVtYXR5dG9qaSByxasmc2Nhcm9uO2lhdmltbyB0dmFya2Egc2FudHJhdWtvcyBtb2RvamUnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnTnVtYXR5dGFzaXMgcsWrJnNjYXJvbjtpYXZpbW8gbGF1a2FzIHNhbnRyYXVrb3MgbW9kb2plJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJyZTY2Fyb247YWJsb25vICZzY2Fyb247YWx0aW5pcyc7CiRsYW5nWydwcm9tcHRfd2VpZ2h0dW5pdHMnXSA9ICdTdm9yaW8gdmllbmV0YWknOwokbGFuZ1sncHVibGljJ10gPSAnQXIgJnNjYXJvbjtpcyBsYXVrYXMgdmllJnNjYXJvbjthcz8nOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnUGFza2VsYnRhJzsKJGxhbmdbJ3JhbmRvbSddID0gJ0F0c2l0aWt0aWluYWknOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdHcsSFxb5pbnRpIGdhbXlrbGluZXMgcmVpayZzY2Fyb247bWVzJzsKJGxhbmdbJ3JldHVybiddID0gJ1JldHVybic7CiRsYW5nWydyZXR1cm5fdG9fdG9wJ10gPSAnUmV0dXJuIHRvIHRoZSB0b3Agb2YgdGhlIHZpZXcnOwokbGFuZ1sncm9vdCddID0gJ1Jvb3QnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1Bhc2lyaW5raXRlIHZpZW7EhSc7CiRsYW5nWydzb3J0X2J5J10gPSAnUsWrJnNjYXJvbjtpdW90aSBwYWdhbCc7CiRsYW5nWydzb3J0X29yZGVyJ10gPSAnUsWrJnNjYXJvbjtpYXZpbW8gdHZhcmthJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1c2FzJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1BhdGVpa3RpJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdTYW50cmF1a29zICZzY2Fyb247YWJsb25hcyc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ1ByaWTEl3RpL2tlaXN0aSBzYW50cmF1a29zICZzY2Fyb247YWJsb27EhSc7CiRsYW5nWyd0YXhhYmxlJ10gPSAnQXBtb2tlc3RpbmFtYSc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ1Rla3N0aW7ElyBzcml0aXMnOwokbGFuZ1sndGV4dGJveCddID0gJ1Rla3N0byDEr3Zlc3Rpcyc7CiRsYW5nWyd0aXRsZV9ieWhpZXJhcmNoeV9kZmx0dGVtcGxhdGUnXSA9ICdOdW1hdHl0YXNpcyBuYXVqb3MgaGllcmFyY2hpbsSXcyBhdGFza2FpdG9zICZzY2Fyb247YWJsb25hcyc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnTnVtYXR5dGFzaXMgbmF1am8ga2F0ZWdvcmlqxbMgc8SFcmEmc2Nhcm9uO28gJnNjYXJvbjthYmxvbmFzJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdOdW1hdHl0YXNpcyBuYXVqxbMgZGV0YWxpxbMgJnNjYXJvbjthYmxvbmFzJzsKJGxhbmdbJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJ10gPSAnTnVtYXR5dGFzaXMgbmF1am9zIHNhbnRyYXVrb3MgJnNjYXJvbjthYmxvbmFzJzsKJGxhbmdbJ3R5cGUnXSA9ICdUaXBhcyc7CiRsYW5nWyd1cGRhdGUnXSA9ICdOYXVqaW50aSc7CiRsYW5nWyd1cGxvYWQnXSA9ICdQYXNpcmlua3RpIGJ5bMSFIMSva8SXbGltdWknOwokbGFuZ1sndmFsaWQnXSA9ICdWYWxpZCc7CiRsYW5nWyd2YWx1ZSddID0gJ1JlaWsmc2Nhcm9uO23Elyc7CiRsYW5nWyd2YWx1ZXMnXSA9ICdSZWlrJnNjYXJvbjttxJdzJzsKJGxhbmdbJ3dhdGVybWFya19sb2NhdGlvbiddID0gJ1dhdGVybWFyayBMb2NhdGlvbic7CiRsYW5nWyd3ZWlnaHQnXSA9ICdTdm9yaXMnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4zMzAxMTU1MzA1NzYyNTc5MDAwLjEyMjAzNDUwNzAuMTIyODkwMjg0Ny4xMjI4OTg2MzUxLjIwJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIyODk4NjM1MS4yMC4xNS51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9Zm9ydW0uY21zbWFkZXNpbXBsZS5vcmd8dXRtY2N0PS9pbmRleC5waHAvdG9waWMsMjgyMTkuMC5odG1sfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfbGVuZ3RoJ10gPSAnTCAnOwokbGFuZ1snYWJicl93aWR0aCddID0gJ0IgJzsKJGxhbmdbJ2FiYnJfaGVpZ2h0J10gPSAnSCAnOwokbGFuZ1snYWRkJ10gPSAnTGVnZyB0aWwnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdMZWdnIHRpbCBlbiBrYXRlZ29yaSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0xlZ2cgdGlsIGZlbHQnOwokbGFuZ1snYWRqdXN0YWJsZSddID0gJ0pzdXRlcmJhcnQnOwokbGFuZ1snYWRkcHJvZHVjdCddID0gJ0xlZ2cgdGlsIHByb2R1a3QnOwokbGFuZ1snYWRkX2F0dHJpYl9zZXQnXSA9ICdMZWdnIHRpbCBhdHRyaWJ1dHQnOwokbGFuZ1snYWRkX2NhdGVnb3J5X2ZpZWxkJ10gPSAnQXNzb3NpZXIgRmVsdCBtZWQgS2F0ZWdvcmk6ICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2FkZF9oaWVyYXJjaHlfaXRlbSddID0gJ0xlZ2cgdGlsIGhpZXJhcmtpIGFydGlra2VsJzsKJGxhbmdbJ2FkZF9vcHRpb24nXSA9ICdMZWdnIHRpbCBhdHRyaWJ1dHQgdmFsZyc7CiRsYW5nWydhZG1pbl9vbmx5J10gPSAnS2FuIGt1biBhZG1pbmlzdHJhdG9yZXIgc2UgZGVubmUgYXR0cmlidXR0ZW4/JzsKJGxhbmdbJ2FkdmFuY2VkJ10gPSAnQXZhbnNlcnQnOwokbGFuZ1snYWxpZ25fdWwnXSA9ICdUb3BwIHZlbnN0cmUnOwokbGFuZ1snYWxpZ25fdWMnXSA9ICdUb3BwIHNlbnRlcic7CiRsYW5nWydhbGlnbl91ciddID0gJ1RvcHAgaCZvc2xhc2g7eXJlJzsKJGxhbmdbJ2FsaWduX21sJ10gPSAnTWlkdGVuIHZlbnN0cmUnOwokbGFuZ1snYWxpZ25fbWMnXSA9ICdTZW50ZXInOwokbGFuZ1snYWxpZ25fbXInXSA9ICdNaWR0ZW4gaCZvc2xhc2g7eXJlJzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnQnVubiB2ZW5zdHJlJzsKJGxhbmdbJ2FsaWduX2xjJ10gPSAnQnVubiBzZW50ZXInOwokbGFuZ1snYWxpZ25fbHInXSA9ICdCdW5uIGgmb3NsYXNoO3lyZSc7CiRsYW5nWydhbGwnXSA9ICdBbGxlJzsKJGxhbmdbJ2FsbGNhdGVnb3JpZXMnXSA9ICdBbGxlIGthdGVnb3JpZXInOwokbGFuZ1snYW55J10gPSAnTm9lbic7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnRXIgZHUgc2lra2VyPyc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZXByb2R1Y3QnXSA9ICdFciBkdSB2aXJrZWxpZyBzaWtrZXIgcCZhcmluZzsgYXQgZHUgdmlsIHNsZXR0ZSBkZXR0ZSBwcm9kdWt0ZXQgb2cgYWxsIGRldHMgdGlsaCZvc2xhc2g7cmVuZGUgaW5mb3JtYXNqb24/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ1N0aWdlbmRlJzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnQXR0cmlidXR0IG5hdm4nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzayc7CiRsYW5nWydidG5fc2V0ZWNvbWhhbmRsZXJzJ10gPSAnU2V0dCBFY29tbWVyY2UgaGVuZGVsc2VzIGJlaGFuZGxlcmUnOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZXMnXSA9ICdIaWVyYXJraSByYXBwb3JtYWxlcic7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbC9yZWRpZ2VyIEhpZXJhcmtpIHJhcHBvcm1hbCc7CiRsYW5nWydjYW5jZWwnXSA9ICdBdmJyeXQnOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpZXInOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdLYXRlZ29yaSc7CiRsYW5nWydjYXRlZ29yeWV4aXN0cyddID0gJ0VuIGthdGVnb3JpIG1lZCBkZXQgbmF2bmV0IGVrc2lzdGVyZXIgYWxsZXJlZGUnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVzJ10gPSAnS2F0ZWdvcmlsaXN0ZSBtYWxlcic7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGVnZyB0aWwvcmVkaWdlciBrYXRlZ29yaSBMaXN0ZW1hbCc7CiRsYW5nWydjZW50aW1ldGVycyddID0gJ0NlbnRpbWV0ZXInOwokbGFuZ1snY2hlY2tib3gnXSA9ICdBdmtyeXNuaW5nc2Jva3MnOwokbGFuZ1snY29uZmlybV9jb3B5YXR0cmlidXRlcyddID0gJ0V2ZW50dWVsbGUgZWtzaXN0ZXJlbmRlIGF0dHJpYnV0dHNldHQgZm9yIGRldHRlIHByb2R1a3RldCB2aWwgYmxpIGZqZXJuZXQuIEVyIGR1IHNpa2tlciBwJmFyaW5nOyBhdCBkdSB2aWwgZm9ydHNldHRlPyc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9oaWVyYXJjaHlfbm9kZSddID0gJ0VyIGR1IHNpa2tlciBwJmFyaW5nOyBhdCBkdSB2aWwgc2xldHRlIGRlbm5lIG5vZGVuPyBBbGxlIHByb2R1a3RlciBzb20gYnJ1a2VyIGRlbm5lIG5vZGVuIHZpbCBibGkgc2F0dCB0aWwgaW5nZW4gaGllcmFya2knOwokbGFuZ1snY29uZmlybV9pbXBvcnQnXSA9ICdFciBkdSBoZWx0IHNpa2tlciBwJmFyaW5nOyBhdCBkdSB2aWwgZ2omb3NsYXNoO3JlIGRldHRlP1xuXG5GZWlsIGlubnN0aWxsaW5nZXIgZWxsZXIgZW4gdWd5bGRpZyBrb25maWd1cmFzam9uc2ZpbCBrYW4gZnVsbHN0ZW5kaWcgJm9zbGFzaDtkZWxlZ2dlIGV0IG4mYXJpbmc7IGd5bGRpZyBvZyBmdW5nZXJlbmRlIHN5c3RlbS4nOwokbGFuZ1snY29weSddID0gJ0tvcGllcic7CiRsYW5nWydjb3B5X3Byb2R1Y3QnXSA9ICdLb3BpZXIgZGV0dGUgcHJvZHVrdGV0JzsKJGxhbmdbJ2NvcHlfYXR0cmliX3NldHMnXSA9ICdLb3BpZXIgYXR0cmlidXR0c2V0dGVuZSc7CiRsYW5nWydjb3B5X2NhdGVnb3J5J10gPSAnS29waWVyIGthdGVnb3JpJzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnT3BwcmV0dGV0IGRhdG8nOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ04mYXJpbmc7diZhZWxpZztyZW5kZSB2ZXJkaSc7CiRsYW5nWydkYXRhJ10gPSAnRGF0YSAnOwokbGFuZ1snZGVmYXVsdCddID0gJ1N0YW5kYXJkJzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdTdGFuZGFyZCBtYWxlcic7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlX25vdGljZSddID0gJzxzdHJvbmc+TWVyazo8L3N0cm9uZz4gSW5uaG9sZGV0IGkgZGlzc2UgdGVrc29tciZhcmluZztkZW5lIGJlbnl0dGVzIGZvciAmYXJpbmc7IGxhZ2Ugc3RhbmRhcmRpbm5ob2xkIGkgbWFsZW5lIG4mYXJpbmc7ciBkdSBrbGlra2VyICYjMDM5O0xlZ2cgdGlsIG1hbCYjMDM5OyBpIGRlbiBha3R1ZWxsZSBtYWxmYW5lbi4gJkFyaW5nOyByZWRpZ2VyZSBlbiBhdiBkaXNzZSB0ZWtzdG9tciZhcmluZztkZW5lIHZpbCBpa2tlIGhhIHVtaWRkZWxiYXIgZWZmZWt0IHAmYXJpbmc7IGRpdHQgbmV0dHN0ZWQuJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1NsZXR0JzsKJGxhbmdbJ2RlbGV0ZV9hdHRyaWJzZXQnXSA9ICdTbGV0dCBhdHRyaWJ1dHQnOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAnU2xldHQgaGllcmFya2kgYXJ0aWtrZWwnOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ1N5bmtlbmRlJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnQmVza3JpdmVsc2UnOwokbGFuZ1snZGVzdGluYXRpb24nXSA9ICdNJmFyaW5nO2wnOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFsamVyJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ0RldGFsam1hbGVyJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbC9yZWRpZ2VyIGVuIGRldGFsam1hbCc7CiRsYW5nWydkaW1lbnNpb25zJ10gPSAnTSZhcmluZztsJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnRGVha3RpdmVydCc7CiRsYW5nWydkb3duJ10gPSAnRmx5dHQgbmVkJzsKJGxhbmdbJ2RyYWZ0J10gPSAnS2xhZGQnOwokbGFuZ1snZHJvcGRvd24nXSA9ICdOZWR0cmVrayc7CiRsYW5nWydkcm9wZG93bl9vcHRpb25zJ10gPSAnTmVkdHJla2tzdmFsZyA8ZW0+KGt1biBneWxkaWcgZm9yIG5lZHRyZWtrc2ZlbHQpPC9lbT48YnIvPjxici8+PGVtPihlbiBwb3N0IHByIGxpbmplKTwvZW0+JzsKJGxhbmdbJ2VkaXQnXSA9ICdSZWRpZ2VyJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0J10gPSAnUmVkaWdlciBhdHRyaWJ1dHQnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzJ10gPSAnUmVkaWdlciBhdHRyaWJ1dHQgc2V0dCc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHNfZm9yJ10gPSAnUmVkaWdlciBhdHRyaWJ1dHQgc2V0dCBmb3InOwokbGFuZ1snZWRpdF9hdHRyaWJ1dGVzJ10gPSAnUmVkaWdlciBhdHRyaWJ1dHRlcic7CiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAnUmVkaWdlciBLYXRlZ29yaSc7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ1JlZGlnZXIgS2F0ZWdvcmkgZmVsdGVyJzsKJGxhbmdbJ2VkaXRfaGllcmFyY2h5X2l0ZW0nXSA9ICdSZWRpZ2VyIGhpZXJhcmtpIGFydGlra2VsJzsKJGxhbmdbJ2Vycm9ycyddID0gJ0ZlaWwnOwokbGFuZ1snZXJyb3JfYXR0cmlic2V0X2V4aXN0cyddID0gJ0VuIGF0dHJpYnV0dCBtZWQgZGV0IG5hdm5ldCBla3Npc3RlcmVyIGFsbGVyZWRlJzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdEYXRhYmFzZWZlaWwnOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX3NrdSddID0gJ0R1cGxpa2F0IFYubnIuKFNLVSkgZnVubmV0JzsKJGxhbmdbJ2Vycm9yX2ZpZWxkdmFsdWVfZW1wdHknXSA9ICdGZWx0dmVyZGllbiBrYW4gaWtrZSB2JmFlbGlnO3JlIHRvbSc7CiRsYW5nWydlcnJvcl9maWxlZm9ybWF0J10gPSAnRmlsZm9ybWF0IHJwb2JsZW0nOwokbGFuZ1snZXJyb3JfZmlsZW5vdGZvdW5kJ10gPSAnRmlsIGlra2UgZnVubmV0JzsKJGxhbmdbJ2Vycm9yX2ZpbGVvcGVuJ10gPSAnUHJvYmxlbSBtZWQgJmFyaW5nOyAmYXJpbmc7cG5lIGZpbGVuICVzJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJlbnQnXSA9ICdVZ3lsZGlnIGZvcmVsZHJlIChlbiBoaWVyYXJraSBub2RlIGthbiBpa2tlIHYmYWVsaWc7cmUgc2luIGVnZW4gZm9yZWxkcmUpJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfbmFtZSddID0gJ0Vrc3RyYShjdXN0b20pIGZlbHR2ZXJkaWVuIHNvbSBibGUgb3BwZ2l0dCBlciB1Z3lsZGlnIChpbm5laG9sZGVyIGlra2UtYWxmYW51bW1lcmlza2UgdGVnbiknOwokbGFuZ1snZXJyb3JfaW52YWxpZF92YWx1ZSddID0gJ1VneWxkaWcgdmVyZGkgb3BwZ2l0dCc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdFbiBuJm9zbGFzaDtkdmVuZGlnIHBhcmFtZXRlciBtYW5nbGVyIGVsbGVyIGVyIHVneWxkaWcnOwokbGFuZ1snZXJyb3JfbmFtZXVzZWQnXSA9ICdFbiBhcnRpa2tlbCBtZWQgZGV0IG5hdm5ldCBla3Npc3RlcmVyIGFsbGVyZWRlJzsKJGxhbmdbJ2Vycm9yX25vZmllbGR0eXBlJ10gPSAnVmVubmxpZ3N0IHZlbGcgZW4gZmVsdHR5cGUnOwokbGFuZ1snZXJyb3Jfbm9uYW1lJ10gPSAnRHUgbSZhcmluZzsgb3BwZ2kgZXQgbmF2bic7CiRsYW5nWydlcnJvcl9vbmVxdWFudGl0eWZpZWxkJ10gPSAnS3VuIGV0IG1lbmdkZS1mZWx0IHRpbGxhdHQnOwokbGFuZ1snZXJyb3Jfb25lc3Vic2NyaXB0aW9uZmllbGQnXSA9ICdCYXJlIGV0dCBhYm9ubmVtZW50IGZlbHQgZXIgdGlsbGF0dCc7CiRsYW5nWydlcnJvcl9wZXJtaXNzaW9uZGVuaWVkJ10gPSAnVGlsZ2FuZyBuZWt0ZXQnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9hbGlhc3VzZWQnXSA9ICdBbGlhcyBzb20gYmxlIG9wcGdpdHQgZXIgYWxsZXJlZGUgaSBicnVrJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdFdCBwcm9kdWt0IG1lZCBkZXQgbmF2bmV0IGVrc2lzdGVyZXIgYWxsZXJlZGUnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9ub3Rmb3VuZCddID0gJ1Byb2R1a3RldCBibGUgaWtrZSBmdW5uZXQnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9za3V1c2VkJ10gPSAnRGV0dGUgVi5uci4oU0tVKSBlciBhbGxlcmVkZSBpIGJydWsgYXYgZXQgYW5uZXQgcHJvZHVrdCc7CiRsYW5nWydlcnJvcl9wcmljZV9hZGp1c3RtZW50J10gPSAnVWd5bGRpZyBwcmlzanVzdGVyaW5nc3ZlcmRpIGZvciBlbmhldCAlcyc7CiRsYW5nWydlcnJvcl9za3VfcmVxdWlyZWQnXSA9ICdWZW5ubGlnc3Qgb3BwZ2l0IGV0IHVuaWt0IFYubnIuKFNLVSkgJzsKJGxhbmdbJ2Vycm9yX3VwbG9hZF9mYWlsZWQnXSA9ICdPcHBsYXN0aW5nIGZlaWxldDogJXMnOwokbGFuZ1snZXhjbHVkZV9jYXRlZ29yaWVzJ10gPSAnRWtza2x1ZGVyIHByb2R1a3RlciBpIGRlIHZhbGd0ZSBrYXRlZ29yaWVuZSBmcmEgcmVzdWx0YXRlbmUnOwokbGFuZ1snZXhwaXJlX3NpeF9tb250aHMnXSA9ICdFdHRlciBzZWtzIG0mYXJpbmc7bmVkZXInOwokbGFuZ1snZXhwaXJlX29uZV95ZWFyJ10gPSAnRXR0ZXIgZXR0ICZhcmluZztyJzsKJGxhbmdbJ2V4cGlyZV90d29feWVhciddID0gJ0V0dGVyIHRvICZhcmluZztyJzsKJGxhbmdbJ2V4cG9ydF90b19jc3YnXSA9ICdFa3Nwb3J0IHRpbCBDU1YnOwokbGFuZ1snZXhwb3J0YXR0cmlicyddID0gJ0Vrc3BvcnQgYXRyaWJ1dHRlcic7CiRsYW5nWydleHBvcnRjYXRzJ10gPSAnRWtzcG9ydCBrYXRlZ29yaWVyJzsKJGxhbmdbJ2V4cG9ydGRlbGltJ10gPSAnRWtzcG9ydCBmZWx0c2tpbGxldGVnbic7CiRsYW5nWydleHBvcnRkcmFmdCddID0gJ0Vrc3BvcnQga2xhZGQgcHJvZHVrdGVyJzsKJGxhbmdbJ2V4cG9ydGZpZWxkcyddID0gJ0Vrc3BvcnQgZWdlbmRlZmluZXJ0ZSBmZWx0ZXInOwokbGFuZ1snZXh0cmExJ10gPSAnRWtzdHJhZmVsdCAxJzsKJGxhbmdbJ2V4dHJhMiddID0gJ0Vrc3RyYWZlbHQgMic7CiRsYW5nWydmaWVsZCddID0gJ0ZlbHQnOwokbGFuZ1snZmllbGRzJ10gPSAnRmVsdGVyJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRmVsdGRlZmluaXNqb24nOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnRmVsdGRlZmluaXNqb25lcic7CiRsYW5nWydmaWxlJ10gPSAnRmlsJzsKJGxhbmdbJ2ZpbHRlciddID0gJ0ZpbHRlciAnOwokbGFuZ1snZmlsdGVyaW51c2UnXSA9ICdha3RpdmVydCc7CiRsYW5nWydmaWx0ZXJzJ10gPSAnRmlsdHJlJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8ICc7CiRsYW5nWydnZW5lcmFsX3NldHRpbmdzJ10gPSAnR2VuZXJlbGxlIGlubnN0aWxsaW5nZXInOwokbGFuZ1snZ28nXSA9ICdTdGFydCc7CiRsYW5nWydoaWVyYXJjaHknXSA9ICdIaWVyYXJraSc7CiRsYW5nWydoaWVyYXJjaHlfcG9zaXRpb24nXSA9ICdIaWVyYXJraSBwb3Npc2pvbic7CiRsYW5nWydoaWVyYXJjaHlfc2V0dGluZ3MnXSA9ICdIaWVyYXJraSBpbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ2lkJ10gPSAnSWQgJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ0JpbGRlJzsKJGxhbmdbJ2ltYWdlX2hhbmRsaW5nX3NldHRpbmdzJ10gPSAnQmlsZGViZWhhbmRsaW5nc2lubnN0aWxsaW5nZXInOwokbGFuZ1snaW1wb3J0X2Zyb21fY3N2J10gPSAnSW1wb3J0ZXIgcHJvZHVrdGVyIGZyYSBDU1YgZmlsJzsKJGxhbmdbJ2luY2hlcyddID0gJ1RvbW1lcic7CiRsYW5nWydpbmNsdWRlX2NoaWxkcmVuJ10gPSAnSW5rbHVkZXIgYmFybj8nOwokbGFuZ1snaW5mb19hbG51bW9ubHknXSA9ICdLdW4gYWxmYW51bW1lcmlza2UgdGVnbi4gSW5nZW4gbWVsbG9tcm9tLCBhbmYmb3NsYXNoO3JzZWxzdGVnbiBlbGxlciBpa2tlLWJva3N0YXYvdGFsbCBrb21iaW5hc2pvbmVyJzsKJGxhbmdbJ2luZm9fYXR0cmlidGVtcGxhdGUnXSA9ICdNdWxpZ2UgdmFyaWFibGVyIGVyOiAoJGF0dHJpYl90ZXh0KSwgKCRhdHRyaWJfYWRqdXN0KSwgKCRjdXJyZW5jeV9zeW1ib2wpJzsKJGxhbmdbJ2luZm9fYXR0cmlidXRlc19jb3BpZWQnXSA9ICdBdHJpYnV0dGVyIGtvcGllcnQnOwokbGFuZ1snaW5mb19hdXRvd2F0ZXJtYXJrJ10gPSAnVmFubm1lcmtlIGlubnN0aWxsaW5nZW5lIGVyIGhlbnRldCBmcmEgQ0dFeHRlbnNpb25zIE1vZHVsZW4nOwokbGFuZ1snaW5mb19iYXRjaHNpemUnXSA9ICdTZXR0IGV0IGFudGFsbCBsaW5qZXIgc29tIHNrYWwgcHJvc2Vzc2VyZXMgcGVyICZxdW90O2JhdGNoJnF1b3Q7LiBFdHRlciBodmVyIGJhdGNoIGVyIGZlcmRpZywgdmlsIGltcG9ydGVyZXJlbiBvbWRpcmlnZXJlLCBvZyBmb3J0c2V0dGUgb3BlcmFzam9uZW5lLiBPbSBkdSBvcHBsZXZlciBtaW5uZSBmZWlsIGVsbGVyIHRpZHNhdmJydWRkIHByb2JsZW1lciBwJmFyaW5nOyBncnVubiBhdiBzdG9yZSBtZW5nZGVyIGkgcHJvc2Vzc2VyaW5nLCBzbyBiJm9zbGFzaDtyIGR1IGthbnNramUga29udGFrdGUgZGluIGRpbiBuZXR0c3RlZHN2ZXJ0LCBlbGxlciByZWR1c2VyZSBkZXR0ZSBhbnRhbGxldCc7CiRsYW5nWydpbmZvX2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ0Rpc3NlIHBhcmFtZXRlcmUgZ2lzIHRpbCBkZW4gdmFsZ3RlIGhhbmRsZWt1cnYoY2FydCkgbW9kdWxlbiBmcmEgcHJvZHVrdC1kZXRhbGogb2cgLXNhbW1lbmRyYWdzdmlzbmluZ2VuZSc7CiRsYW5nWydpbmZvX2NvcHlfYXR0cmlic2V0cyddID0gJ0Rlbm5lIGhhbmRsaW5nZW4gdmlsIGtvcGllcmUgYXR0cmlidXR0c2V0dCAodW5udGF0dCBza3UgdmVyZGllcikgZnJhIGV0IGFubmV0IHByb2R1a3QuJzsKJGxhbmdbJ2luZm9fY2xlYXJhdHRyaWJzJ10gPSAnR2plbGRlciBiYXJlIG4mYXJpbmc7ciBkdSBvcHBkYXRlcmVyIGVrc2lzdGVyZW5kZSBwcm9kdWt0ZXIsIGRldHRlIHZpbCBmamVybmUgYWxsIGF0dHJpYnV0dCBpbmZvcm1hc2pvbiBmcmEgZGF0YWJhc2VuIGZvciBwcm9kdWt0ZXIgZiZvc2xhc2g7ciBvcHByZXR0aW5nIGF2IG55ZSc7CiRsYW5nWydpbmZvX2NsZWFyY2F0ZWdvcmllcyddID0gJ0dqZWxkZXIgYmFyZSBuJmFyaW5nO3IgZHUgb3BwZGF0ZXJlciBla3Npc3RlcmVuZGUgcHJvZHVrdGVyLCB2aWwgZGV0dGUgZmplcm5lIGFsbGUga2F0ZWdvcmkgbWVkbGVtc2thcCBmJm9zbGFzaDtyIG55ZSBvcHByZXR0ZXMnOwokbGFuZ1snaW5mb19jbGVhcmZpZWxkcyddID0gJ0dqZWxkZXIgYmFyZSBuJmFyaW5nO3IgZHUgb3BwZGF0ZXJlciBla3Npc3RlcmVuZGUgcHJvZHVrdGVyLCB2aWwgZGV0dGUgZmplcm5lIGFsbGUgZmVsdCBmJm9zbGFzaDtyIG55ZSBmZWx0dmVyZGllciBvcHByZXR0ZXMnOwokbGFuZ1snaW5mb19jcmVhdGVmaWVsZHMnXSA9ICdPcHByZXR0IHVramVudGUgcHJvZHVrdGZlbHRlciBhdXRvbWF0aXNrPyA8ZW0+KERlIHZpbCBibGkgb3BwcmV0dGV0IHNvbSB0ZWtzdGZlbHRlcik8L2VtPic7CiRsYW5nWydpbmZvX2NyZWF0ZWNhdGVnb3JpZXMnXSA9ICdPcHByZXR0IGF1dG9tYXRpc2sgcHJvZHVrdGthdGVnb3JpZXIgZm9yICZhcmluZzsgc2Ftc3ZhcmUgbWVkIGRlIHNvbSBlciBpIENTViBmaWxlbiwgb20gZGUgaWtrZSBhbGxlcmVkZSBla3Npc3RlcmVyJzsKJGxhbmdbJ2luZm9fY3JlYXRlaGllcmFyY2h5J10gPSAnT3BwcmV0dCBwcm9kdWt0aGllcmFya2llciBhdXRvbWF0aXNrIGZvciAmYXJpbmc7IHNhbXN2YXJlIG1lZCBkZSBzb20gZXIgaSBDU1YgZmlsZW4sIG9tIGRlIGlra2UgYWxsZXJlZGUgZWtzaXN0ZXJlcic7CiRsYW5nWydpbmZvX2RlY2ltYWxfdW5pdHMnXSA9ICdTeXN0ZW1ldCBmb3JzdCZhcmluZztyICguKSBzb20gZGVzaW1hbHNlcGFyYXRvciAoaWtrZSBrb21tYSEpLiBGLmVrcy46IDxzdHJvbmc+NS4yNTwvc3Ryb25nPic7CiRsYW5nWydpbmZvX2RlbGltaXRlciddID0gJ1NwZXNpZmlzZXIgYm9rc3RhdmVuIChlbGxlciBib2tzdGF2ZW5lKSBzb20gc2VwYXJlcmVyIGh2ZXJ0IGZlbHQnOwokbGFuZ1snaW5mb19kdXBsaWNhdGVwcm9kdWN0cyddID0gJ1NwZXNpZmlzZXIgaHZvcmRhbiBzeXN0ZW1ldCBza2FsIGJlaGFuZGxlIGV0IHByb2R1a3Qgc29tIGhhciBldCBuYXZuIHNvbSBhbGxlcmVkZSBla3Npc3RlcmVyIGkgQ1NWIGZpbGVuJzsKJGxhbmdbJ2luZm9fZmllbGRkZWZzX3RhYiddID0gJzxzdHJvbmc+TWVyazogPC9zdHJvbmc+IEFsbGUgZmVsdGVyIGRlZmluZXJ0IGhlciBlciB0aWxnamVuZ2plbGlnZSBmb3IgYWxsZSBwcm9kdWt0ZXIuJzsKJGxhbmdbJ2luZm9fZmllbGRwcm9ibGVtcyddID0gJ1Byb2JsZW1lciBibGUgb3BwZGFnZXQgdW5kZXIgaCZhcmluZztuZHRlcmluZyBhdiBldCBlbGxlciBmbGVyZSBla3N0cmEoY3VzdG9tKSBmZWx0ZXIuIEhhbmRsaW5nZW4gZXIgdmVsbHlra2V0IGZ1bGxmJm9zbGFzaDtydCwgbWVuIGR1IGImb3NsYXNoO3IgdW5kZXJzJm9zbGFzaDtrZSBvZyBrb3JyaWdlcmUgZGlzc2UgcHJvYmxlbWVuZSc7CiRsYW5nWydpbmZvX2hhbmRsZWltYWdlcyddID0gJ1ZlZCBpbXBvcnQsIG9tIGV0IGJpbGRlIGZpbG5hdm4gYmxpciBmdW5uZXQgaSBlbiBmZWx0a29sb25uZSwgc2thbCBkZXQgYmxpIGZqZXJuZXQgZnJhIGtpbGRlIGxva2Fzam9uZW4sIHZhbm5tZXJrZXQsIG1pbmlhdHlyYmlsZGV0LCBvZyBmZWx0dHlwZW4gZW5kcmVzIHRpbCAmcXVvdDtpbWFnZSZxdW90Oyc7CiRsYW5nWydpbmZvX2hpZXJwYWdlJ10gPSAnQnJ1ayBkZW5uZSBzaWRlbiBmb3IgaGllcmFya2l2aXNuaW5nZXIuIERlbmUgc2lkZUlEIHZpbCBpa2tlIGJsaSBzcGVzaWZpc2VydCBwJmFyaW5nOyB3ZWJhZHJlc3Nlbi4nOwokbGFuZ1snaW5mb19pbWFnZXBhdGgnXSA9ICdTdGllbiAocmVsYXRpdnQgdGlsIHVwbG9hZHMga2F0YWxvZ2VuKSBodm9yIGJpbGRlciByZWZlcmVydCB0aWwgaSBpbXBvcnRmaWxlbiwga2FuIGJsaSBmdW5uZXQnOwokbGFuZ1snaW5mb19pbWFnZXN0dWZmX2RlcHJlY2F0ZWQnXSA9ICdCaWxkZWJlaGFuZGxpbmdzZnVua3Nqb25lciBlciBmb3JlbGRldCBvZyB2aWwgYmxpIGZqZXJuZXQgaSBlbiBmcmVtdGlkaWcgdmVyc2pvbi4gQnJ1ayBDR1NtYXJ0SW1hZ2UgZm9yIGlubGluZSBiaWxkZWJlaGFuZGxpbmcuJzsKJGxhbmdbJ2luZm9faW1wb3J0X3Rlc3RfcGFzc2VkJ10gPSAnRW4ga29ydCB0ZXN0IGhhciBibGl0dCB1dGYmb3NsYXNoO3J0IHAmYXJpbmc7IGRlbiBzcGVzaWZpc2VydGUgaW5uZmlsZW4sIG9nIGFsdCBzZXIgdXQgdGlsICZhcmluZzsgdiZhZWxpZztyZSBpIG9yZGVuLjxici8+RGV0dGUgZXIgaWtrZSBlbiBpbmRpa2Fzam9uIHAmYXJpbmc7IGF0IGRldCBpa2tlIGthbiB2JmFlbGlnO3JlIGZlaWwgaSBmaWxlbi4nOwokbGFuZ1snaW5mb19wcmV0dHloaWVydXJscyddID0gJ0lua2x1ZGVyIGhpZXJhcmtpIGVsZW1lbnRuYXZuZXQgcCZhcmluZzsgVVJMZW4nOwokbGFuZ1snaW5mb19wcmljZV9hZGp1c3RtZW50J10gPSAnR3lsZGlnZSB2ZXJkaWVyIGVyICstKiMuIyMnOwokbGFuZ1snaW5mb19wcm9kbm90Zm91bmQnXSA9ICdEZXR0ZSBhbHRlcm5hdGl2ZXQgYmVzdGVtbWVyIG9wcGYmb3NsYXNoO3JzZWxlbiB0aWwgbmV0dHN0ZWRldCBodmlzIGVuIGhhciBnJmFyaW5nO3R0IHJldHQgdGlsIHByb2R1a3QtZGV0YWxqdmlzbmluZyB2aWEgZW4gbmV0dGFkcmVzc2UsIG9nIGF0IHByb2R1a3RldCBhdiBlbiBlbGxlciBhbm5lbiBncnVubiAoZGVha3RpdmVydCwgc2xldHRldCwgb3N2LikgaWtrZSBrYW4gJmFyaW5nO3BuZXMuJzsKJGxhbmdbJ2luZm9fcHVibGljZmllbGQnXSA9ICdPZmZlbnRsaWdlIGZlbHQgZXIgdGlsZ2plbmdlbGlnZSAmYXJpbmc7IHNlIGZvciBhbGxlJzsKJGxhbmdbJ2luZm9fcmVvcmRlcl9jb250ZW50J10gPSAnRGVubmUgb3BlcmFzam9uZW4gdGlsbGF0ZXIgJmFyaW5nOyBkcmEgZGUgZW5rZWx0ZSBub2RlciBpIHRyZWV0IGZvciAmYXJpbmc7IGVuZHJlIHJla2tlZiZvc2xhc2g7bGdlbiBkZSB2aXNlcyBwJmFyaW5nOyBpIGhpZXJhcmtpdmlzbmluZyc7CiRsYW5nWydpbmZvX3NldGVjb21oYW5kbGVycyddID0gJ0Rlbm5lIGtuYXBwZW4gdmlsIHNpa3JlIGF0IGhlbmRlbHNlc2JlaGFuZGxlcm5lIGZvciBlLWhhbmRlbCBoZW5kZWxzZXIgZXIgcCZhcmluZzsgcGxhc3MuIERldHRlIGVyIG55dHRpZyBvbSBlbiBiZXIgUHJvZHVrdG1vZHVsZW4gb20gJmFyaW5nOyBob2xkZSBzdHlyIHAmYXJpbmc7IG1lbmdkZSB0aWxnamVuZ2VsaWcsIG1lbiBoZW5kaW5nc2FrdGl2YXRvcmVyIGlra2UgYmxlIG9wcHJldHRldCB1bmRlciBpbnN0YWxsYXNqb24gZWxsZXIgb3BwZ3JhZGVyaW5nJzsKJGxhbmdbJ2xhYmVsJ10gPSAnRXRpa2V0dCc7CiRsYW5nWydsYWJlbF9za2lwJ10gPSAnSG9wcCBvdmVyJzsKJGxhbmdbJ2xhYmVsX292ZXJ3cml0ZSddID0gJ092ZXJza3Jpdic7CiRsYW5nWydsYWJlbF91cGRhdGUnXSA9ICdPcHBkYXRlcic7CiRsYW5nWydsYXN0cGFnZSddID0gJyA+Pic7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnU2lzdCBlbmRyZXQnOwokbGFuZ1snbG9nb3RleHQnXSA9ICdBbmRyZSBiaWxkZSc7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYWtzaW11bSBsZW5nZGUgPGVtPihrYW4gYmVueXR0ZXMga3VuIHAmYXJpbmc7IHRla3N0Ym9rcyBmZWx0ZXIpPC9lbT4nOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnRW5kcmV0IGRhdG8nOwokbGFuZ1snbW9kdWxlX2Rlc2NyaXB0aW9uJ10gPSAnRW4gbW9kdWwgZm9yICZhcmluZzsgYmVoYW5kbGUgZW4ga2F0YWxvZyBtZWQgcHJvZHVrdGVyLCBkZXRzIHByaXMsIGJpbGRlciwgb3N2LCBvZyBmb3IgJmFyaW5nOyB0aWxsYXRlIGJydWtlcmUgJmFyaW5nOyBieWdnZSBlbiBoYW5kbGVrdXJ2JzsKJGxhbmdbJ21vdmVfZG93biddID0gJ0ZseXR0IG5lZCc7CiRsYW5nWydtb3ZlX3VwJ10gPSAnRmx5dHQgb3BwJzsKJGxhbmdbJ21zZ19ldmVudGhhbmRsZXJzX2NyZWF0ZWQnXSA9ICdIZW5kZWxzZXNiZWhhbmRsZXJlIG9wcHJldHRldCc7CiRsYW5nWydtc2dfcHJvZHVjdGNvcGllZCddID0gJ1Byb2R1a3RldCBibGUga29waWVydC4gRHUgcmVkaWdlcmVyIG4mYXJpbmc7IGtvcGllbi4gRW5odmVyIHNrdS92YXJlbnVtbWVyIGluZm9ybWFzam9uIGkgcHJvZHVrdGV0LCBvZy9lbGxlciBhdHRyaWJ1dHRlciBlciBmamVybmV0JzsKJGxhbmdbJ25hbWUnXSA9ICdOYXZuJzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnRHUgaGFyIGlra2UgZGVuIG4mb3NsYXNoO2R2ZW5kaWdlIHJldHRpZ2hldGVuOiAlcyc7CiRsYW5nWyduZXdfY2F0ZWdvcnlfbmFtZSddID0gJ055dHQga2F0ZWdvcmkgbmF2bic7CiRsYW5nWyduZXh0cGFnZSddID0gJyA+JzsKJGxhbmdbJ25vJ10gPSAnTmVpJzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnSW5nZW4gbmF2biBvcHBnaXR0JzsKJGxhbmdbJ25vbmUnXSA9ICdJbmdlbic7CiRsYW5nWydub3RoaW5nX3NlbGVjdGQnXSA9ICdJbmdlbnRpbmcgdmFsZ3QnOwokbGFuZ1snb2YnXSA9ICdhdic7CiRsYW5nWydvcGVyYXRpb25fY2FuY2VsbGVkJ10gPSAnT3BlcmFzam9uIGF2YnJ1dHQnOwokbGFuZ1snb3BlcmF0aW9uX2NvbXBsZXRlJ10gPSAnT3BlcmFzam9uIGZlcmRpZyc7CiRsYW5nWydwYWdlJ10gPSAnU2lkZSc7CiRsYW5nWydwYWdlX29mJ10gPSAnU2lkZSAlcyBhdiAlcyc7CiRsYW5nWydwYWdlX2xpbWl0J10gPSAnU2lkZSBiZWdyZW5zbmluZyc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcGVjaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5oaWVyYXJjaHkgLS0gRGlzcGxheSBhIHByb2R1Y3QgbGlzdCBieSBoaWVyYXJjaHk8L2xpPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdCBjYXRlZ29yaWVzPC9saT4NCiAgPGxpPjxlbT5kZWZhdWx0PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyeSBvZiBwcm9kdWN0czwvbGk+DQogIDxsaT5kZXRhaWxzIC0gRGlzcGxheSBhIGRldGFpbCB2aWV3IG9mIGEgc2luZ2xlIHByb2R1Y3Q8L2xpPg0KICA8bGk+ZmllbGRsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgdmFsdWVzIGZyb20gYSBzcGVjaWZpZWQgZmllbGQuDQogICAgIDxwPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7LSBUaGlzIGFjdGlvbiBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYSBuYXZpZ2F0aW9uIGZyb20gdGhlIHZhbHVlcyBvZiBhIHNwZWNpZmljIGZpZWxkLiAgaS5lOiAgeW91IGNvdWxkIGNyZWF0ZSBhIGN1c3RvbSBkcm9wZG93biBmaWVsZCBjYWxsZWQgJmFtcDtxdW90O2NvbG9yJmFtcDtxdW90OyBhbmQgdGhlbiBjcmVhdGUgYSBuYXZpZ2F0aW9uIGJhc2VkIG9uIHRoZSBkaWZmZXJlbnQgY29sb3JzLg0KICAgICA8L3A+DQogIDwvbGk+DQogIDxsaT5zZWFyY2ggLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBzZWFyY2hpbmcgcHJvZHVjdHMgb24gdmFyaW91cyBjcml0ZXJpdW08L2xpPg0KPGxpPmFqYXhfcHJvcHZhbCAtIFJldHVybiBhIGpzb24gZW5jb2RlZCBsaXN0IG9mIHByb3BlcnR5IHZhbHVlcyBtYXRjaGluZyB0aGUgY3JpdGVyaWEgc3BlY2lmaWVkLiAgVGhpcyBhY3Rpb24gaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB2aWEgYWpheCwgYW5kIHNob3VsZCBiZSBjYWxsZWQgd2l0aCB0aGUgc2hvd3RlbXBsYXRlPWZhbHNlIHBhcmFtZXRlciBvbiB0aGUgVVJMLjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ04mYXJpbmc7ciBiZW55dHRldCBtZWQgPGVtPnN0YW5kYXJkPC9lbT4gc2FtbWVuZHJhZ3Ntb2R1cyB2aWwgZGVubmUgcGFyYW1ldGVyLCBzb20gc2thbCB2JmFlbGlnO3JlIGxpayBuYXZuZXQgcCZhcmluZzsgZW4gZWtzaXN0ZXJlbmRlIGthdGVnb3JpLCBibGkgYmVueXR0ZXQgZm9yICZhcmluZzsgdmlzZSBrdW4gZGUgcHJvZHVrdGVuZSBzb20gZXIgaSBkZW5uZSBrYXRlZ29yaWVuLiAoZW4ga29tbWFzZXBhcmVydCBsaXN0ZSBrYW4gb3BwZ2lzKSBEZW5uZSBwYXJhbWV0ZXJlbiBrYW4gb2dzJmFyaW5nOyBiZW55dHRlcyBtZWQgY2F0ZWdvcnlsaXN0IGhhbmRsaW5nZW4gZm9yICZhcmluZzsgYmVncmVuc2UgdXRkYXRhIHRpbCBkZSBzcGVzaWZpc2VydGUgcHJvZHVrdGthdGFnb3JpZW5lLic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWZpZWxkJ10gPSAnR2plbGRlciBrdW4gdGlsICZxdW90O2NhdGVnb3J5bGlzdCZxdW90OyBoYW5kbGluZywgaHZvciBkZW5uZSBwYXJhbWV0ZXJlbiBrYW4gYnJ1a2VzIHRpbCAmYXJpbmc7IGZpbHRyZXJlIGthdGVnb3JpZXIgYmFzZXJ0IHAmYXJpbmc7IHZlcmRpZW4gYXYgZXQga2F0ZWdvcmlmZWx0LiBEZXR0ZSB2aWwgaWtrZSBmdW5nZXJlIGkgZm9yYmluZGVsc2UgbWVkICZxdW90O2thdGVnb3JpJnF1b3Q7IGVsbGVyICZxdW90O2NhdGVnb3J5X2lkJnF1b3Q7IHBhcmFtZXRlcmUuIFN5bnRha3NlbiBmb3IgZGVubmUgcGFyYW1ldGVyZW4gZXIgZW4ga29tbWFzZXBhcmVydCBsaXN0ZSBtZWQgZmVsdG5hdm4sIG9nIGZlbHR2ZXJkaWVyLiBkdnMuOiBjYXRlZ29yeWxpc3Q9JmFtcDtxdW90O2ZlbHRuYXZuZXQ6dmVyZGksZmVsdG5hdm4yOnZlcmRpZW4gMiZhbXA7cXVvdDsnOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICdNZWQga2F0ZWdvcmlsaXN0ZSAgb2cgZmllbGRsaXN0IGhhbmRsaW5nZW5lLCB2aWwgZGVubmUgcGFyYW1ldGVyIGluZGlrZXJlIG1hbGVuIHNvbSBza2FsIGJlbnl0dGVzIGZvciB2aXNuaW5nLiBPbSBpbmdlbiB2ZXJkaSBlciBvcHBnaXR0IHZpbCBuJmFyaW5nO3YmYWVsaWc7cmVuZGUgc3RhbmRhcmQgbWFsIGF2IGRlbm5lIHR5cGUgYmxpIGJlbnl0dGV0Lic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3RkdGx0ZW1wbGF0ZSddID0gJ0thbiBrdW4gYmVueXR0ZXMgbWVkIGNhdGVnb3J5bGlzdCBoYW5kbGluZ2VuZSwgaHZvciBkZW5uZSBwYXJhbWV0ZXJlbiBpbmRpa2VyZXIgbWFsZW4gc29tIHNrYWwgYmVueXR0ZXMgZm9yIHZpc25pbmcgYXYga2F0ZWdvcmlkZXRhbGplci4gRGV0dGUgYmVueXR0ZXIgZW4ga2F0YWdvcmlsaXN0ZW1hbC4uIE9tIGluZ2VuIHZlcmRpIGVyIHNwZXNpZmlzZXJ0IHMmYXJpbmc7IHZpbCBuJmFyaW5nO3YmYWVsaWc7cmVuZGUgc3RhbmRhcmRtYWwgYXYgZGVubmUgdHlwZW4gYmxpIGJlbnl0dGV0Lic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnRGV0dGUgc3Blc2lmaXNlcmVyIHNpZGVpZCYjMDM5O2VuIGVsbGVyIHNpZGVhbGlhcyBzb20gc2thbCBiZW55dHRlcyBmb3IgJmFyaW5nOyB2aXNlIGRldGFsanJhcHBvcnRlbi4gRGV0dGUga2FuIGJlbnl0dGVzIG1lZCA8ZW0+ZGVmYXVsdDwvZW0+IGVsbGVyIHMmb3NsYXNoO2sgaGFuZGxpbmdlbmUuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnRGVubmUgcGFyYW1ldGVyIHNwZXNpZmlzZXJlciBtYWxlbiBzb20gc2thbCBiZW55dHRlcyBmb3IgZGV0YWxqbW9kdXMgdmlzbmluZy4gT20gaW5nZW4gdmVyZGkgZXIgb3BwZ2l0dCB2aWwgbiZhcmluZzt2JmFlbGlnO3JlbmRlIHN0YW5kYXJkIG1hbCBhdiBkZW5uZSB0eXBlIGJsaSBiZW55dHRldC4gRGVubmUgcGFyYW1ldGVyIGhhciBpbmdlbiB2aXJrbmluZyBuJmFyaW5nO3IgdmFrcmUgdXJsZXIgZXIgcCZhcmluZztzbCZhcmluZzt0dC4nOwokbGFuZ1sncGFyYW1fZXhjbHVkZWNhdCddID0gJ0dqZWxkZXIga3VuIHRpbCBzdGFuZGFyZCAoc2FtbWVuZHJhZykgdmlzbmluZywgaHZvciBkZW5uZSBwYXJhbWV0ZXJlbiB2aWwgdGlsbGF0ZSB1bm50YWsgYXYgcHJvZHVrdGVyIHNvbSBlciBpIGVuIGJlc3RlbXQga2F0ZWdvcmkgZnJhIHJlc3VsdGF0ZXQuIEVuIGtvbW1hc2VwYXJlcnQgbGlzdGUgbWVkIGthdGVnb3JpbmF2biBlciB0aWxsYXR0LiBEZW5uZSBwYXJhbWV0ZXJlbiBrYW4gZnVuZ2VyZSBzYW1tZW4gbWVkIGthdGVnb3JpLXBhcmFtZXRlcmVuIGZvciAmYXJpbmc7IGdpIGVuIGxpc3RlIG92ZXIgcHJvZHVrdGVyIHNvbSBlciBpIGRlbm5lIGthdGVnb3JpZW4sIG1lbiBpa2tlIGkgZGVuIGthdGVnb3JpZW4nOwokbGFuZ1sncGFyYW1fZmllbGQnXSA9ICcNClVzZWQgaW4gdGhlIDxlbT5maWVsZGxpc3Q8L2VtPiBhbmQgdGhlIDxlbT5hamF4X3Byb3B2YWw8L2VtPiBhY3Rpb25zLiBJbiB0aGUgZmllbGRsaXN0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgdG8gc3BlY2lmeSB0aGUgbmFtZSBvZiBhIHVzZXIgZGVmaW5lZCBwcm9wZXJ0eSB0byBjcmVhdGUgYSBsaXN0IGZyb20uICBJbiB0aGUgYWpheF9wcm9wdmFsIGFjdGlvbiB0aGlzIHBhcmFtZXRlciBpcyB1c2VkIHRvIHNwZWNpZnkgd2hpY2ggZmllbGQgdG8gdXNlIHRvIGV4dHJhY3QgYSBsaXN0IG9mIHZhbHVlcy4gIEFueSB2YWxpZCBmaWVsZCBuYW1lcyBhcmUgYWNjZXB0ZWQgKHRob3VnaCBvbmx5IHRleHQgZmllbGQgYW5kIGRyb3Bkb3duIGZpZWxkIG5hbWVzIHdpbGwgd29yayBwcm9wZXJseS4gIEFkZGl0aW9uYWxseSB0aGUgc3BlY2lhbCB2YWx1ZXMgOjpuYW1lOjosIDo6c2t1OjosIGFuZCA6OmFsaWFzOjogY2FuIGJlIHNwZWNpZmllZCB0byByZXR1cm4gdmFsdWVzIGZyb20gdGhlIHByb2R1Y3QgbmFtZSwgc2t1IGFuZCBhbGlhcyByZXNwZWN0aXZlbHkuJzsKJGxhbmdbJ3BhcmFtX2ZpZWxkdmFsJ10gPSAnDQpVc2VkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFuZCA8ZW0+YWpheF9wcm9wdmFsPC9lbT4gYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBmaWVsZCB2YWx1ZSB0byBsaW1pdCByZXN1bHRzIGJ5LiAgSW4gdGhlIGRlZmF1bHQgdmFsdWUgdGhlc2Ugc3BlY2lhbCB2YWx1ZXMgYXJlIGFjY2VwdGVkOiAmYW1wO3F1b3Q7OjpudWxsOjomYW1wO3F1b3Q7ICZhbXA7cXVvdDs6Om5vdG51bGw6OiZhbXA7cXVvdDsuIEluIHRoZSBhamF4X3Byb3B2YWwgYWN0aW9uIHRoaXMgZmllbGQgaXMgZXhwZWN0ZWQgdG8gY29udGFpbiBvbmx5IGEgZmV3IGxldHRlcnMsIHRvIGluZGljYXRlIGEgc21hbGwgZmlsdGVyLiAgaS5lOiBmaWVsZHZhbD1iIHRvIHJldHVybiBhbGwgZmllbGQgdmFsdWVzIHRoYXQgYmVnaW4gd2l0aCB0aGUgbGV0dGVyIGIuJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeSddID0gJ0thbiBrdW4gYmVueXR0ZXMgaSA8ZW0+ZGVmYXVsdDwvZW0+IG9nIGhpZXJhcmtpIGhhbmRsaW5nZXIuIERlbm5lIHBhcmFtZXRlciBoYXIgdG8gb3BwZ2F2ZXIgLSBkZW4gc3Blc2lmaXNlcmVyIGF0IGt1biBhcnRpa2xlciBpIGRlbm5lIGxva2Fzam9uZW4gaSBoaWVyYXJraWV0IHNrYWwgdmlzZXMuICBKb2tlcnRlZ24ga2FuIGJlbnl0dGVzIHMmYXJpbmc7IGR1IG9ncyZhcmluZzsga2FuIHNwZXNpZmlzZXJlIGZvcmVsZHJlL2Jhcm4gcmVsYXNqb25lci4gRi5la3MuIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7dHJ1Y2tzKiYjMDM5O30gdmlsIGxhZ2UgZW4gc2FtbWVuZHJhZ3NyYXBwb3J0IG1lZCBhbGxlIHRydWNrcywgaW5rbHVkZXJ0IGJhcm5hIGkgaGllcmFya2lldC4gIFAmYXJpbmc7IHNhbW1lIG0mYXJpbmc7dGUsIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7KnRydWNrcyYjMDM5O30gdmlsIHZpc2UgZW4gc2FtbWVuZHJhZ3NyYXBwb3J0IG1lZCBhbGxlIHRydWNrcyBvZyBhbGxlIHByb2R1a3RlciB0aWxoJm9zbGFzaDtyZW5kZSBlbmh2ZXIgZm9yZWxkcmUgaSBoaWVyYXJraWV0LiBOJmFyaW5nO3IgYmVueXR0ZXQgbWVkIGhpZXJhcmtpaGFuZGxpbmdlbiBzJmFyaW5nOyBrYW4gZGVubmUgcGFyYW1ldGVyIGdpIGVuIGxpc3RlIG1lZCBoaWVyYXJraW5hdm4gZm9yICZhcmluZzsgdmlzZSBha2t1cmF0IGRpc3NlLiBGLmVrcy4ge1Byb2R1Y3RzIGFjdGlvbj1oaWVyYXJjaHkgaGllcmFyY2h5PSYjMDM5O3RydWNrcyxjYXJzJiMwMzk7fSc7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZSddID0gJ0Rlbm5lIHBhcmFtZXRlciBzcGVzaWZpc2VyZXIgbWFsZW4gc29tIHNrYWwgYnJ1a2VzIGZvciBoaWVyYXJraSB2aXNuaW5nLiBPbSBpbmdlbiB2ZXJkaSBlciBzYXR0IHZpbCBzdGFuZGFyZCBtYWwgYXYgZGVuIHR5cGVuIGJsaSBiZW55dHRldC4nOwokbGFuZ1sncGFyYW1faW5saW5lJ10gPSAnS3VuIG55dHRpZyBmb3IgcyZvc2xhc2g7ay1oYW5kbGluZ2VuLCBkZXIgZGVubmUgcGFyYW1ldGVyZW4gc3Blc2lmaXNlcmVyIGF0IHV0ZGF0YSBmb3Igc2FtbWVuZHJhZ2VzdmlzbmluZ2VuIHNrYWwgdmlzZXMgaW5saW5lJzsKJGxhbmdbJ3BhcmFtX25vdHByZXR0eSddID0gJ1RoaWUgcGFyYW1ldGVyIHNwZWNpZmllcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGFjdGlvbnMgdG8gd2hpY2ggcHJldHR5IHVybHMgc2hvdWxkIG5vdCBiZSBnZW5lcmF0ZWQuICBpLmU6IG5vdHByZXR0eT1oaWVyYXJjaHksZGVmYXVsdCB3aWxsIG5vdCBnZW5lcmF0ZSBwcmV0dHkgdXJscyB0byBoaWVyYXJjaHksIG9yIHN1bW1hcnkgKGRlZmF1bHQpIGFjdGlvbnMsIGJ1dCB3aWxsIGFsbG93IGdlbmVyYXRpb24gb2YgcHJldHR5IHVybHMgdG8gZGV0YWlsIHZpZXdzLiAgQXMgYSBzcGVjaWFsIHZhdWUgJnF1b3Q7YWxsJnF1b3Q7IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhhdCBubyBwcmV0dHkgdXJscyBzaG91bGQgYmUgZ2VuZXJhdGVkJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ0Jlbnl0dGV0IG1lZCA8ZW0+c3RhbmRhcmQ8L2VtPiBoYW5kbGluZ2VuIHZpbCBkZW5uZSBwYXJhbWV0ZXIgc3Blc2lmaXNlcmUgaHZvciBtYW5nZSBwcm9kdWt0ZXIgc29tIHNrYWwgbGlzdGVzIHAmYXJpbmc7IGh2ZXIgc2lkZS4nOwokbGFuZ1sncGFyYW1fcGFyZW50J10gPSAnS2FuIGt1biBiZW55dHRlcyBpIDxlbT5oaWVyYXJjaHk8L2VtPiBoYW5kbGluZ2VuLiBEZW5uZSBwYXJhbWV0ZXIgc3Blc2lmaXNlcmVyIGhpZXJhcmtpIGlkIHRpbCBzdGFydCBwb3Npc2pvbmVuIGkgcmFwcG9ydGVuLic7CiRsYW5nWydwYXJhbV9wYXJlbnRzJ10gPSAnVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5oaWVyYXJjaHk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGhpZXJhcmNoeSBuYW1lcyB0aGF0IHNwZWNpZnkgdG8gY3JlYXRlIG51bWVyb3VzIGhlaXJhcmNoeSB0cmVlcyBmcm9tIHRoZSBzcGVjaWZpZWQgbG9jYXRpb24ocykuICBIaWVyYXJjaHkgbmFtZXMgbXVzdCBiZSB1bmlxdWUsIGFuZCBub3QgY29udGFpbiBhbnkgc3BlY2lhbCBjaGFycy4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGlkJ10gPSAnQmVueXR0ZXQgbWVkIGRldGFsaiBoYW5kbGluZ2VuIHZpbCBkZW5uZSBwYXJhbWV0ZXIgaW5kaWtlcmUgaHZpbGtldCBwcm9kdWt0IHNvbSBza2FsIHZpc2VzIHAmYXJpbmc7IHNpZGVuLic7CiRsYW5nWydwYXJhbV9wcm9kdWN0bGlzdCddID0gJ0dqZWxkZXIga3VuIHRpbCBzdGFuZGFyZCAoc2FtbWVuZHJhZykgdmlzbmluZywgaHZvciBkZW5uZSBwYXJhbWV0ZXJlbiBrYW4gYW5naSBlbiBrb21tYXNlcGFyZXJ0IGxpc3RlIG1lZCBoZWx0YWxsIHByb2R1a3QtSURlciAmYXJpbmc7IHZpc2UuIEluZ2VuIHBhZ2luZXJpbmcgZWxsZXIgc29ydGVyaW5nIHV0ZiZvc2xhc2g7cmVzIGRhIHAmYXJpbmc7IGRpc3NlIHZlcmRpZW5lLiBBbmRyZSBzcGVzaWZpc2VydGUgZmlsdHJlcmluZ3NwYXJhbWV0ZXJlLCBvbSBkZXR0ZSBlciBzcGVzaWZpc2VydCBmb3Igc2FtbWVuZHJhZ3N2aXNuaW5nZW4sIHZpbCBvZ3MmYXJpbmc7IGlnbm9yZXJlcy4nOwokbGFuZ1sncGFyYW1fcmVzdWx0cGFnZSddID0gJ0t1biBneWxkaWcgZm9yIHMmb3NsYXNoO2sgaGFuZGxpbmdlbiwgaHZvciBkZW5uZSBwYXJhbWV0ZXJlbiBzcGVzaWZpc2VyZXIgZW4gc2lkZS1pZCBlbGxlciBhbGlhcyAmYXJpbmc7IGJlbnl0dGUgZm9yICZhcmluZzsgdmlzZSBzJm9zbGFzaDtrZXJlc3VsdGF0ZW5lJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZpZWxkJ10gPSAnS3VuIGd5bGRpZyBmb3IgcyZvc2xhc2g7ayBoYW5kbGluZ2VuLCBodm9yIGRlbm5lIHBhcmFtZXRlcmVuIGthbiBpbm5laG9sZGUgZW4ga29tbWFzZXBhcmVydCBsaXN0ZSBtZWQgZmVsdG5hdm4gJmFyaW5nOyBpbmtsdWRlcmUgaSBzJm9zbGFzaDtrZXQnOwokbGFuZ1sncGFyYW1fc2VhcmNoZm9ybXRlbXBsYXRlJ10gPSAnS3VuIGd5bGRpZyBmb3IgcyZvc2xhc2g7ayBoYW5kbGluZ2VuLCBodm9yIGRlbm5lIHBhcmFtZXRlcmVuIHRpbGxhdGVyICZhcmluZzsgc3Blc2lmaXNlcmUgZW4gaWtrZS1zdGFuZGFyZCBzJm9zbGFzaDtrZXNramVtYW1hbCc7CiRsYW5nWydwYXJhbV9zaG93YWxsJ10gPSAnR2plbGRlciBrdW4gdGlsIGNhdGVnb3J5bGlzdCBvZyBmaWVsZGxpc3QgaGFuZGxpbmdlbmUsIGRlcnNvbSBkZW5uZSBwYXJhbWV0ZXJlbiBlciBzYXR0IHRpbCBlbiBpa2tlIDAgaGVsdGFsbHN2ZXJkaSB2aWwgYWxsZSBrYXRlZ29yaWVyIChvZ3MmYXJpbmc7IGRlIHV0ZW4gcHJvZHVrdGVyKSBibGkgdmlzdC4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmeSB0aGUgb3JkZXIgb2Ygc29ydGVkIGZpZWxkcyBpbiBzdW1tYXJ5IHZpZXcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4NCiAgPGxpPmRlc2MgLS0gRGVzY2VuZGluZyBvcmRlcjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIGluIHRoZSBzdW1tYXJ5LCBjYXRlZ29yeWxpc3Qgb3Igc2VhcmNoIGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGRldGVybWluZXMgdGhlIHNvcnRpbmcgb2YgdGhlIG91dHB1dC4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPnByb2R1Y3RfbmFtZTwvc3Ryb25nPjwvbGk+DQogIDxsaT5pZCAtLSBUaGUgcHJvZHVjdCBpZDwvbGk+DQogIDxsaT53ZWlnaHQgLS0gVGhlIHByb2R1Y3Qgd2VpZ2h0PC9saT4NCiAgPGxpPnByaWNlIC0tIFRoZSBwcm9kdWN0IGJhc2UgcHJpY2U8L2xpPg0KICA8bGk+c3RhdHVzIC0tIERyYWZ0IG9yIHB1Ymxpc2hlZDwvbGk+DQogIDxsaT5yYW5kb20gLS0gRGlzcGxheSBpbiByYW5kb20gb3JkZXIgb24gZWFjaCByZXF1ZXN0PC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gVGhlIGNyZWF0aW9uIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KICA8bGk+bW9kaWZpZWQgLS0gVGhlIG1vZGlmaWVkIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KICA8bGk+ZjpmaWVsZG5hbWUgLS0gQWxsb3dzIHNvcnRpbmcgYnkgdmFsdWVzIG9mIGN1c3RvbSBmaWVsZHMuPC9saT4NCjwvdWw+DQo8cD5UaGUgY2F0ZWdvcnkgbGlzdCB2aWV3IHN1cHBvcnRzIG9ubHkgYSBmZXcgc3BlY2lmaWMgc29ydGluZyBvcHRpb25zOjwvcD4NCjx1bD4NCiAgPGxpPmlkIC0tIFRoZSBjYXRlZ29yeSBpZC48L2xpPg0KICA8bGk+PHN0cm9uZz5uYW1lPC9zdHJvbmc+IC0tIFRoZSBjYXRlZ29yeSBuYW1lLjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0dHlwZSddID0gJ0Rlbm5lIHBhcmFtZXRlcmVuIGVyIGt1biBneWxkaWcgZm9yIHN0YW5kYXJkIHNhbWVtbmRyYWdzdmlzbmluZ2VuLCBodm9yIGRlbm5lIHBhcmFtZXRlcmVuIGJlbnl0dGVzIHRpbCAmYXJpbmc7IGtvbnZlcnRlcmUgdmVyZGllbmUgdGlsIGVuIGFubmVuIHR5cGUgcyZhcmluZzsgZGUga2FuIGJlbnl0dGVzIHRpbCBzb3J0ZXJpbmcuIEd5bGRpZ2UgdmVyZGllciBlciBTVFJJTkcsU0lHTkVEIG9nIFVOU0lHTkVELiBPbSBkZXR0ZSBpa2tlIGVyIHNhdHQgaGVyIHMmYXJpbmc7IHZpbCBzdGFuZGFyZHR5cGVuIFNUUklORyBibGkgYmVueXR0ZXQuJzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnlwYWdlJ10gPSAnRGVubmUgcGFyYW1ldGVyIGVyIGt1biBha3R1ZWxsIGZvciBhY3Rpb249aGllcmFyY2h5LCBodm9yIGRlbiB0aWxsYXRlciAmYXJpbmc7IHNwZXNpZmlzZXJlIGVuIHNpZGVJRCBlbGxlciBhbGlhcyBzb20gdmlsIGJsaSBiZW55dHRldCBmb3IgYWxsZSBsZW5rZXIgZm9yIHNhbW1lbmRyYWdzdmlzbmluZyc7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdEZW5uZSBwYXJhbWV0ZXIgc3Blc2lmaXNlcmVyIG1hbGVuIHNvbSBza2FsIGJlbnl0dGVzIGZvciBzYW1tZW5kcmFnc21vZHVzIHZpc25pbmdlbi4gT20gaW5nZW4gdmVyZGkgZXIgb3BwZ2l0dCB2aWwgbiZhcmluZzt2JmFlbGlnO3JlbmRlIHN0YW5kYXJkIG1hbCBhdiBkZW5uZSB0eXBlIGJsaSBiZW55dHRldC4nOwokbGFuZ1sncGFyZW50J10gPSAnRm9yZWxkcmUnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdQcm9kdWN0cyBtb2R1bGVuIGhhciBibGl0dCBpbnN0YWxsZXJ0JzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdQcm9kdWN0cyBtb2R1bGVuIG9nIGFsbGUgYXNzb3NpZXJ0ZSBkYXRhIGhhciBibGl0dCBmamVybmV0JzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnUHJlZmVyYW5zZXInOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnJkFyaW5nOyBmamVybmUgZGVubmUgbW9kdWxlbiB2aWwgb2dzJmFyaW5nOyBmamVybmUgYWxsZSBhc3Nvc2llcnRlIGRhdGEsIGVyIGR1IHNpa2tlciBwJmFyaW5nOyBhdCBkdSB2aWwgZm9ydHNldHRlPyc7CiRsYW5nWydwcmljZSddID0gJ1ByaXMnOwokbGFuZ1sncHJpY2VfYWRqdXN0bWVudCddID0gJ1ByaXNqdXN0ZXJpbmcnOwokbGFuZ1sncHJlZml4X2NvcHlvZiddID0gJ0tvcGkgYXYgJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCAnOwokbGFuZ1sncHJvZHVjdCddID0gJ1Byb2R1a3QnOwokbGFuZ1sncHJvZHVjdG5hbWUnXSA9ICdQcm9kdWt0bmF2bic7CiRsYW5nWydwcm9kdWN0cyddID0gJ1Byb2R1a3QgYWRtaW5pc3RyYXNqb24nOwokbGFuZ1sncHJvZHVjdF9kZXRhaWxfc2V0dGluZ3MnXSA9ICdQcm9kdWt0IGRldGFsamlubnN0aWxsaW5nZXInOwokbGFuZ1sncHJvZHVjdF9lZGl0aW5nX3NldHRpbmdzJ10gPSAnUHJvZHVrdHJlZGlnZXJpbmdzIGlubnN0aWxsaW5nZXInOwokbGFuZ1sncHJvZHVjdF9zdW1tYXJ5X3NldHRpbmdzJ10gPSAnUHJvZHVrdHNhbW1lbmRyYWcgaW5uc3RpbGxpbmdlcic7CiRsYW5nWydwcm9kdWN0X2hpZXJhcmNoeSddID0gJ1Byb2R1a3QgaGllcmFya2knOwokbGFuZ1sncHJvZHVjdF9pbmZvJ10gPSAnUHJvZHVrdGluZm9ybWFzam9uJzsKJGxhbmdbJ3Byb2R1Y3RfbWFuYWdlciddID0gJ1Byb2R1a3QgYmVoYW5kbGVyJzsKJGxhbmdbJ3Byb2dyZXNzJ10gPSAnRnJlbWRyaWZ0JzsKJGxhbmdbJ3Byb21wdCddID0gJ0V0aWtldHQgKHNwJm9zbGFzaDtyc20mYXJpbmc7bC9wcm9tcHQpJzsKJGxhbmdbJ3Byb21wdF9hZGRfYXR0cmlic2V0J10gPSAnTGVnZyB0aWwvcmVkaWdlciBhdHJpYnV0dHNldHQnOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfZmlsZXR5cGVzJ10gPSAnVGlsbGF0IG9wcGxhc3RpbmcgYXYgZmlsZSBtZWQgZGlzc2UgZmlsZW5kZWxzZXIgKGZvciBmaWwgdHlwZSBmZWx0ZXIpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ltYWdldHlwZXMnXSA9ICdUaWxsYXQgb3BwbGFzdGluZyBhdiBiaWxkZXIgbWVkIGRpc3NlIGZpbGVuZGVsc2VyIChmb3IgYmlsZGUgdHlwZSBmZWx0ZXIpJzsKJGxhbmdbJ3Byb21wdF9hdHRyaWJ0ZW1wbGF0ZSddID0gJ01hbCBmb3IgdmlzbmluZyBhdiBwcm9kdWt0ZXRzIGF0dHJpYnV0dHZlcmRpZXIgaSBuZWR0cmVrayc7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbCddID0gJ09wcHJldHQgbWluaWF0eXJiaWxkZXIgYXV0b21hdGlzayBmcmEgYmlsZGVyJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsX3NpemUnXSA9ICdNYWtzaW11bSBzdCZvc2xhc2g7cnJlbHNlIChzdCZvc2xhc2g7cnN0ZSBkaW1lbnNqb24pIGZvciBtaW5pYXR5cmJpbGRldC4nOwokbGFuZ1sncHJvbXB0X2F1dG9wcmV2aWV3aW1nJ10gPSAnTGFnIGZvcmgmYXJpbmc7bmRzdmlzbmluZ3NiaWxkZXIgYXV0b21hdGlzayBhdiBiaWxkZW5lJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZ19zaXplJ10gPSAnTWFrc2ltdW0gc3Qmb3NsYXNoO3JyZWxzZSAoc3Qmb3NsYXNoO3JzdGUgZGltZW5zam9uKSBmb3IgZm9yaCZhcmluZztuZHN2aXNuaW5nc2JpbGRldC4nOwokbGFuZ1sncHJvbXB0X2F1dG93YXRlcm1hcmsnXSA9ICdQbGFzc2VyIHZhbm5tZXJrZXIgcCZhcmluZzsgYmlsZGVyIGF1dG9tYXRpc2snOwokbGFuZ1sncHJvbXB0X2FwcGxpY2FibGUnXSA9ICdTbCZhcmluZzsgcCZhcmluZzsgc29tIHN0YW5kYXJkIGZvciBhbGxlIG55ZSBwcm9kdWt0ZXInOwokbGFuZ1sncHJvbXB0X2JhdGNoc2l6ZSddID0gJ0JhdGNoIHN0Jm9zbGFzaDtycmVsc2UnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlJ10gPSAnSGFuZGxla3VydihjYXJ0KSBtb2R1bCc7CiRsYW5nWydwcm9tcHRfY2FydF9tb2R1bGVfcGFyYW1zJ10gPSAnSGFuZGxla3VydihjYXJ0KSBtb2R1bCBwYXJhbWV0ZXJlJzsKJGxhbmdbJ3Byb21wdF9jbGVhcmF0dHJpYnMnXSA9ICdSZW5zIGF0dHJpYnV0dGVyIHZlZCBvcHBkYXRlcmluZyc7CiRsYW5nWydwcm9tcHRfY2xlYXJjYXRlZ29yaWVzJ10gPSAnUmVucyBrYXRlZ29yaWVyIHZlZCBvcHBkYXRlcmluZyc7CiRsYW5nWydwcm9tcHRfY2xlYXJmaWVsZHMnXSA9ICdSZW5zIGZlbHRlciB2ZWQgb3BwZGF0ZXJpbmcnOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWNhdGVnb3JpZXMnXSA9ICdPcHByZXR0IGthdGVnb3JpZXInOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWZpZWxkcyddID0gJ09wcHJldHQgcHJvZHVrdGthdGVnb3JpZXI/JzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVoaWVyYXJjaHknXSA9ICdPcHByZXR0IHByb2R1a3RrYXRlZ29yaSc7CiRsYW5nWydwcm9tcHRfY3N2ZmlsZSddID0gJ0xhc3Qgb3BwIENTViBmaWwnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5Y29kZSddID0gJ1ZhbHV0YWtvZGUnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAnVmFsdXRhc3ltYm9sJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0X3N0YXR1cyddID0gJ1NvbSBzdGFuZGFyZCBoYXIgYWxsZSBueWUgcHJvZHVrdGVyIGRlbm5lIHN0YXR1c2VuJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0X3RheGFibGUnXSA9ICdTb20gc3RhbmRhcmQgZXIgYWxsZSBueWUgcHJvZHVrdGVyIGF2Z2lmdHNwbGlrdGlnZSc7CiRsYW5nWydwcm9tcHRfZGVsZXRlcHJvZHVjdGZpbGVzJ10gPSAnU2xldHQgYWxsZSBmaWxlciB0aWxrbnl0dGV0IHByb2R1a3RldCBuJmFyaW5nO3IgcHJvZHVrdGV0IHNsZXR0ZXM/JzsKJGxhbmdbJ3Byb21wdF9kZWxpbWl0ZXInXSA9ICdGZWx0IHNraWxsZXRlZ24nOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdTdGFuZGFyZCBkZXRhbGpzaWRlJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxzZm9yJ10gPSAnRGV0YWxqZXIgZm8gJXMnOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnSHZvcmRhbiBza2FsIGR1cGxpa2F0ZSBwcm9kdWt0ZXIgYmVoYW5kbGVzPyc7CiRsYW5nWydwcm9tcHRfZmFsc2UnXSA9ICdVc2Fubic7CiRsYW5nWydwcm9tcHRfaGFuZGxlaW1hZ2VzJ10gPSAnQmVoYW5kbGUgYmlsZGVyPyc7CiRsYW5nWydwcm9tcHRfaW1hZ2VwYXRoJ10gPSAnQmlsZGVzdGknOwokbGFuZ1sncHJvbXB0X2xlbmd0aHVuaXRzJ10gPSAnTGVuZ2RlZW5oZXRlcic7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfYmVoYXZpb3InXSA9ICdIdmlsa2VuIGhhbmRsaW5nIHNrYWwgdXRmJm9zbGFzaDtyZXMgb20gZXQgcHJvZHVrdCBpa2tlIGthbiB2aXNlcz8nOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzQwNCddID0gJ0dlbmVyZXIgZW4gNDA0IGZlaWwnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzMwMSddID0gJ0dlbmVyZXIgZW4gMzAxIG9tZGlyaWdlcmluZyc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfZXJyb3Jtc2cnXSA9ICdWaXMgZW4gZmVpbG1lbGRpbmcnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX21zZyddID0gJ0ZlaWxtZWxkaW5nIGZvciBuJmFyaW5nO3IgZXQgcHJvZHVrdCBpa2tlIGJsaXIgZnVubmV0JzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9wYWdlJ10gPSAnU2lkZSAmYXJpbmc7IG9tZGlyaWdlcmUgdGlsIHBlcm1hbmVudD8nOwokbGFuZ1sncHJvbXB0X2hpZXJwYWdlJ10gPSAnU3RhbmRhcmRzaWRlIGZvciBoaWVyYXJraXZpc25pbmcnOwokbGFuZ1sncHJvbXB0X3ByZXR0eWhpZXJ1cmxzJ10gPSAnQmVueXR0IHZha3JlIFVSTGVyIGZvciBoaWVyYXJraXZpc25pbmdlbmUnOwokbGFuZ1sncHJvbXB0X3Byb2RfZGV0YWlscGFnZSddID0gJ1N0YW5kYXJkc2lkZSBmb3IgUHJvZHVjdCBkZXRhbGp2aXNuaW5nJzsKJGxhbmdbJ3Byb21wdF9wcm9kdWN0c19tYXRjaGluZyddID0gJ1Byb2R1a3RlciBzb20gcGFzc2VyICVzJzsKJGxhbmdbJ3Byb21wdF9za3VfcmVxdWlyZWQnXSA9ICdWLm5yLihTS1UpIGVyIHAmYXJpbmc7a3JldmQgZm9yIGFsbGUgcHJvZHVrdGVyIG9nIGF0dHJpYnV0dGVyJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5X25ld2RlZmF1bHQnXSA9ICdCZW55dHQgbnkgc2FtZW5kcmFnc3Zpc25pbmcnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlwYWdlbGltaXQnXSA9ICdTdGFuZGFyZCBzaWRlZ3JlbnNlIGkgc2FtbWVuZHJhZ3Ntb2R1cyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRvcmRlciddID0gJ1N0YW5kYXJkIHNvcnRlcmluZyBpIHNhbW1lbmRyYWdzbW9kdXMnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnU3RhbmRhcmQgc29ydGVyaW5nc2ZlbHQgaSBzYW1tZW5kcmFnc21vZHVzJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ01hbGtpbGRlJzsKJGxhbmdbJ3Byb21wdF90cnVlJ10gPSAnU2Fubic7CiRsYW5nWydwcm9tcHRfdXJscHJlZml4J10gPSAnUHJlZmlrcyB0aWwgYnJ1ayBwJmFyaW5nOyBhbGxlIG5ldHRhZHJlc3NlciBtJmFyaW5nO2xyZXR0ZXQgdGlsIGRlbm5lIGRlbm5lIG1vZHVsZW4nOwokbGFuZ1sncHJvbXB0X3VzZV9kZXRhaWxwYWdlX2Zvcl9zZWFyY2gnXSA9ICdCZW55dHQgZGVubmUgc2lkZW4gZm9yIHMmb3NsYXNoO2tlcmVzdWx0YXRlciBvZ3MmYXJpbmc7IDxlbT4ob3ZlcnN0eXJlciBzZWFyY2hyZXN1bHRzIHNpZGVwYXJhbWV0ZXJlbiBpIHMmb3NsYXNoO2tlbW9kdWxlbik8L2VtPic7CiRsYW5nWydwcm9tcHRfdXNlaGllcnBhdGh1cmxzJ10gPSAnQmVueXR0IGhpZXJha2lzdGkgaSBQcm9kdWN0IGRldGFsaiBVUkxlcic7CiRsYW5nWydwcm9tcHRfd2VpZ2h0dW5pdHMnXSA9ICdWZWt0ZW5oZXRlcic7CiRsYW5nWydwdWJsaWMnXSA9ICdFciBkZXR0ZSBldCBvZmZlbnRsaWcgZmVsdD8nOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnUHVibGlzZXJ0JzsKJGxhbmdbJ3F1YW50aXR5X29uX2hhbmQnXSA9ICdNZW5nZGUgdGlsZ2plbmdlbGlnJzsKJGxhbmdbJ3JhbmRvbSddID0gJ1RpbGZlbGRpZyc7CiRsYW5nWydyZW9yZGVyX2hpZXJhcmNoeSddID0gJ09tb3JnYW5pc2VyIGhpZXJhcmtpJzsKJGxhbmdbJ3Jlc2V0J10gPSAnTnVsbHN0aWxsJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnU2V0dCB0aWxiYWtlIHRpbCBmYWJyaWtraW5uc3RpbGxpbmdlcic7CiRsYW5nWydyZXR1cm4nXSA9ICdUaWxiYWtlJzsKJGxhbmdbJ3JldHVybl90b190b3AnXSA9ICdSZXR1cm5lciB0aWwgdG9wcGVuIGF2IHZpc25pbmdlbic7CiRsYW5nWydyb290J10gPSAnUm90YSc7CiRsYW5nWydzZWFyY2hfZGVzY3JpcHRpb24nXSA9ICdTJm9zbGFzaDtrZWVnZW5za2FwIGJlc2tyaXZlbHNlJzsKJGxhbmdbJ3NlYXJjaF9leHByJ10gPSAnU2thbCBzcCZvc2xhc2g7cnJpbmdlbiBwYXNzZSBhbGxlIGVsbGVyIG5vZW4gYXYga3JpdGVyaWVuZSBuZWRlbmZvcj8nOwokbGFuZ1snc2VhcmNoX25hbWUnXSA9ICdTJm9zbGFzaDtrZWVnZW5za2Fwc25hdm4nOwokbGFuZ1snc2VhcmNoX3ByaWNlJ10gPSAnUHJpc2ludGVydmFsbCc7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGVnZyB0aWwvcmVkaWdlciBTJm9zbGFzaDtrZXNramVtYW1hbCc7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZXMnXSA9ICdTJm9zbGFzaDtrZSBtYWxlcic7CiRsYW5nWydzZWxlY3RfYWxsJ10gPSAnVmVsZyBhbGxlJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdWZWxnIGVuJzsKJGxhbmdbJ3NldGRyYWZ0J10gPSAnU2V0dCBzb20ga2xhZGQnOwokbGFuZ1snc2V0cHVibGlzaGVkJ10gPSAnU2V0dCBzb20gcHVibGlzZXJ0JzsKJGxhbmdbJ3NrdSddID0gJ1YubnIuKFNLVSknOwokbGFuZ1snc29ydF9ieSddID0gJ1NvcnRlciBldHRlcic7CiRsYW5nWydzb3J0X29yZGVyJ10gPSAnU29ydGVyaW5nc3Jla2tlZiZvc2xhc2g7bGdlJzsKJGxhbmdbJ3NvdXJjZSddID0gJ0tpbGRlJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyAnOwokbGFuZ1snc3VibWl0J10gPSAnVXRmJm9zbGFzaDtyJzsKJGxhbmdbJ3N1YnNjcmlwdGlvbiddID0gJ0Fib25uZW1lbnQnOwokbGFuZ1snc3Vic2NyX2V4cGlyeSddID0gJ1V0bCZvc2xhc2g7cGVyJzsKJGxhbmdbJ3N1YnNjcl9leHBpcnkyJ10gPSAnVXRsJm9zbGFzaDtwZXInOwokbGFuZ1snc3Vic2NyX21vbnRobHknXSA9ICdNJmFyaW5nO25lZGxpZyc7CiRsYW5nWydzdWJzY3JfZGVscGVyaW9kJ10gPSAnRGV2ZXJpbmdzZnJla3ZlbnMnOwokbGFuZ1snc3Vic2NyX2RlbHBlcmlvZDInXSA9ICdMZXZlcnQnOwokbGFuZ1snc3Vic2NyX3BheXBlcmlvZCddID0gJ0JldGFsaW5nc2ZyZWt2ZW5zJzsKJGxhbmdbJ3N1YnNjcl9wYXlwZXJpb2QyJ10gPSAnQmV0YWx0JzsKJGxhbmdbJ3N1YnNjcl9xdWFydGVybHknXSA9ICdLdmFydGFsc3Zpcyc7CiRsYW5nWydzdWJzY3Jfc2VtaWFudWFsbHknXSA9ICdIYWx2JmFyaW5nO3JsaWcnOwokbGFuZ1snc3Vic2NyX3llYXJseSddID0gJyZBcmluZztybGlnJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdTYW1tZW5kcmFnc21hbCc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0xlZ2cgdGlsL3JlZGlnZXIgc2FtbWVuZHJhZ3NtYWwnOwokbGFuZ1sndGF4YWJsZSddID0gJ0thbiBpbGVnZ2VzIGF2Z2lmdCc7CiRsYW5nWyd0ZXN0J10gPSAnVGVzdCAnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZWtzdG9tciZhcmluZztkZSc7CiRsYW5nWyd0ZXh0Ym94J10gPSAnVGVrc3QgaW5uc2tyaXZpbmcnOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhcmQgSGllcmFya2kgcmFwcG9ydG1hbCc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhcmQgbnkga2F0ZWdvcmlsaXN0ZW1hbCc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhcmQgbnkgZGV0YWxqbWFsJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZCBueSBzJm9zbGFzaDtrZW1hbCc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkIG55IHNhbW1lbmRyYWdzbWFsJzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXBlICc7CiRsYW5nWyd1cCddID0gJ0ZseXR0IG9wcCc7CiRsYW5nWyd1cGRhdGUnXSA9ICdPcHBkYXRlcic7CiRsYW5nWyd1cGxvYWQnXSA9ICdWZWxnIGVuIGZpbCAmYXJpbmc7IGxhc3RlIG9wcCc7CiRsYW5nWyd1cmxfYWxpYXMnXSA9ICdVUkwgYWxpYXMnOwokbGFuZ1sndmFsaWQnXSA9ICdHeWxkaWcnOwokbGFuZ1sndmFsdWUnXSA9ICdWZXJkaSc7CiRsYW5nWyd2YWx1ZXMnXSA9ICdWZXJkaWVyJzsKJGxhbmdbJ3ZpZXcnXSA9ICdWaXMnOwokbGFuZ1sndmlld2FibGVfZmllbGRzJ10gPSAnVmVsZyBicnVrZXJkZWZpbmVydGUgZmVsdGVyIHNvbSBza2FsIHZpc2VzIGkgdGFiZWxsZW4nOwokbGFuZ1snd2F0ZXJtYXJrX2xvY2F0aW9uJ10gPSAnVmFubm1lcmtlIGxva2Fzam9uJzsKJGxhbmdbJ3dlaWdodCddID0gJ1Zla3QnOwokbGFuZ1snd2l0aF9zZWxlY3RlZCddID0gJ01lZCB2YWxndGUnOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1sncWNhJ10gPSAnUDAtNTM2ODQ5MTE1LTEzMDc5ODM0OTUyMTAnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xNDAwNjk4Nzg0LjEzMzk1MzA5OTYuMTMzOTg3ODg2Ni4xMzM5ODgyMTY1LjE2JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTMzOTUzMDk5Ni4xLjEudXRtY3NyPShkaXJlY3QpfHV0bWNjbj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfbGVuZ3RoJ10gPSAnTCAnOwokbGFuZ1snYWJicl93aWR0aCddID0gJ0JyJzsKJGxhbmdbJ2FiYnJfaGVpZ2h0J10gPSAnSGcnOwokbGFuZ1snYWRkJ10gPSAnVm9lZyB0b2UnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdWb2VnIGNhdGVnb3JpZSB0b2UnOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdWb2VnIHZlbGQgdG9lJzsKJGxhbmdbJ2FkanVzdGFibGUnXSA9ICdXaWp6aWdiYWFyJzsKJGxhbmdbJ2FkZHByb2R1Y3QnXSA9ICdWb2VnIHByb2R1Y3QgdG9lJzsKJGxhbmdbJ2FkZF9hdHRyaWJfc2V0J10gPSAnVm9lZyBhdHRyaWJ1dXQgdG9lJzsKJGxhbmdbJ2FkZF9jYXRlZ29yeV9maWVsZCddID0gJ0tvcHBlbCB2ZWxkIG1ldCBjYXRlZ29yaWU6ICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2FkZF9oaWVyYXJjaHlfaXRlbSddID0gJ1ZvZWcgaGllcmFyY2hpZS1hcnRpa2VsIHRvZSc7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAnVm9lZyBhdHRyaWJ1dXRvcHRpZSB0b2UnOwokbGFuZ1snYWRtaW5fb25seSddID0gJ0thbiBhbGxlZW4gZGUgYWRtaW5pc3RyYXRvciBkaXQgYXR0cmlidXV0IHppZW4/JzsKJGxhbmdbJ2FkdmFuY2VkJ10gPSAnR2VhdmFuY2VlcmQnOwokbGFuZ1snYWxpZ25fdWwnXSA9ICdCb3ZlbiBMaW5rcyc7CiRsYW5nWydhbGlnbl91YyddID0gJ0JvdmVuIE1pZGRlbic7CiRsYW5nWydhbGlnbl91ciddID0gJ0JvdmVuIFJlY2h0cyc7CiRsYW5nWydhbGlnbl9tbCddID0gJ01pZGRlbiBMaW5rcyc7CiRsYW5nWydhbGlnbl9tYyddID0gJ01pZGRlbic7CiRsYW5nWydhbGlnbl9tciddID0gJ01pZGRlbiBSZWNodHMnOwokbGFuZ1snYWxpZ25fbGwnXSA9ICdPbmRlciBMaW5rcyc7CiRsYW5nWydhbGlnbl9sYyddID0gJ09uZGVyIE1pZGRlbic7CiRsYW5nWydhbGlnbl9sciddID0gJ09uZGVyIFJlY2h0cyc7CiRsYW5nWydhbGwnXSA9ICdBbGxlJzsKJGxhbmdbJ2FsbGNhdGVnb3JpZXMnXSA9ICdBbGxlIGNhdGVnb3JpZSZldW1sO24nOwokbGFuZ1snYW55J10gPSAnRW5pZ2UnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ1dlZXQgdSBkaXQgemVrZXI/JzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlcHJvZHVjdCddID0gJ1dlZXQgdSB6ZWtlciBkYXQgdSBkaXQgcHJvZHVjdCBlbiBhbGxlIGJpamJlaG9yZW5kZSBpbmZvcm1hdGllIHdpbHQgdmVyd2lqZGVyZW4/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ09wbG9wZW5kJzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnQXRyaWJ1dXQgTmFhbSc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aXNjaCc7CiRsYW5nWydidG5fc2V0ZWNvbWhhbmRsZXJzJ10gPSAnRWNvbW1lcmNlIEdlYmV1cnRlbmlzc2VuIGluc3RlbGxlbic7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlcyddID0gJ0hpZXJhcmNoaWUgUmFwcG9ydCBTamFibG9uZW4nOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnSGllcmFyY2hpZSBSYXBwb3J0IFNqYWJsb29uIHRvZXZvZWdlbi9hYW5wYXNzZW4nOwokbGFuZ1snY2FuY2VsJ10gPSAnQW5udWxlcmVuJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yaWUmZXVtbDtuJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnQ2F0ZWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5ZXhpc3RzJ10gPSAnRXIgYmVzdGFhdCBhbCBlZW4gY2F0ZWdvcmllIG1ldCBkZXplIG5hYW0nOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVzJ10gPSAnQ2F0ZWdvcmllIExpanN0IFNqYWJsb25lbic7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQ2F0ZWdvcmllIExpanN0IFNqYWJsb29uIHRvZXZvZWdlbi9hYW5wYXNzZW4nOwokbGFuZ1snY2VudGltZXRlcnMnXSA9ICdDZW50aW1ldGVyJzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnVmlua3Zha2plJzsKJGxhbmdbJ2NvbmZpcm1fY29weWF0dHJpYnV0ZXMnXSA9ICdFdmVudHVlbGUgYmVzdGFhbmRlIGF0dHJpYnV0ZW4gdm9vciBkaXQgcHJvZHVjdCB6dWxsZW4gd29yZGVuIHZlcndpamRlcmQuIFdlZXQgdSB6ZWtlciBkYXQgdSBkb29yIHdpbHQgZ2Fhbj8nOwokbGFuZ1snY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnXSA9ICdCZW50IHUgemVrZXIgZGF0IHUgZGV6ZSBub2RlIHdpbHQgdmVyd2lqZGVyZW4/ICBFbGsgcHJvZHVjdCB3YXQgZ2VicnVpayBtYWFrdCB2YW4gZGV6ZSBub2RlIHphbCBuaWV0IG1lZXIgb25kZXIgZWVuIGhpJmV1bWw7cmFyY2hpZSB2YWxsZW4uJzsKJGxhbmdbJ2NvbmZpcm1faW1wb3J0J10gPSAnQmVudCB1IHpla2VyIGRhdCB1IGRpdCB3aWx0IHVpdHZvZXJlbj9cblxuVmVya2VlcmRlIGluc3RlbGxpbmdlbiBvZiBlZW4gdmVya2VlcmQgY29uZmlndXJhdGllYmVzdGFuZCBrYW4gaGV0IGhlbGUgc3lzdGVlbSBpbiBkZSB3YXIgYnJlbmdlbi4gV2F0IHJlc3VsdGVlcnQgaW4gZWVuIG5pZXQgd2Vya2VuZGUgcHJvZHVjdGVuIG1vZHVsZS4nOwokbGFuZ1snY29weSddID0gJ0tvcGllJzsKJGxhbmdbJ2NvcHlfYXR0cmliX3NldHMnXSA9ICdLb3BpZWVyIGF0dHJpYnV0ZW5zZXQnOwokbGFuZ1snY29weV9jYXRlZ29yeSddID0gJ0NhdGVnb3JpZSBrb3BpZXJlbic7CiRsYW5nWydjcmVhdGVkZGF0ZSddID0gJ0FhbmdlbWFha3Qgb3AnOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ0h1aWRpZ2Ugd2FhcmRlJzsKJGxhbmdbJ2RhdGEnXSA9ICdEYXRhICc7CiRsYW5nWydkZWZhdWx0J10gPSAnU3RhbmRhYXJkJzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdTdGFuZGFhcmQgU2phYmxvbmVuJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5PcG1lcmtpbmc6PC9zdHJvbmc+IERlIGluaG91ZCB2YW4gZGV6ZSB0ZWtzdGJsb2trZW4gd29yZGVuIGdlYnJ1aWt0IG9tIGRlIHN0YW5kYWFyZCB3YWFyZGVuIHZhbiBlZW4gdGVtcGxhdGUgb3AgdGUgc2xhYW4uIEFscyB1IG9wIGRlIGtub3AgJnF1b3Q7Vm9lZyB0ZW1wbGF0ZSB0b2UmcXVvdDsga2xpa3QgZGFuIHp1bGxlbiBkZXplIHN0YW5kYWFyZCB3YWFyZGVuIGluIGhldCBuaWV1d2UgdGVtcGxhdGUgd29yZGVuIG9wZ2Vub21lbi4nOwokbGFuZ1snZGVsZXRlJ10gPSAnVmVyd2lqZGVyZW4nOwokbGFuZ1snZGVsZXRlX2F0dHJpYnNldCddID0gJ0F0dHJpYnV1dCB2ZXJ3aWpkZXJlbic7CiRsYW5nWydkZWxldGVfaGllcmFyY2h5X2l0ZW0nXSA9ICdWZXJ3aWpkZXIgSGllcmFyY2hpZSBJdGVtJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdBZmxvcGVuZCc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ09tc2NocmlqdmluZyc7CiRsYW5nWydkZXN0aW5hdGlvbiddID0gJ0Jlc3RlbW1pbmcnOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFpbHMgJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ0RldGFpbCBTamFibG9uZW4nOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ1RvZXZvZWdlbi93aWp6aWdlbiBEZXRhaWwgU2phYmxvb24nOwokbGFuZ1snZGltZW5zaW9ucyddID0gJ0RpbWVuc2llJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnVWl0Z2VzY2hha2VsZCc7CiRsYW5nWydkb3duJ10gPSAnTmFhciBiZW5lZGVuJzsKJGxhbmdbJ2RyYWZ0J10gPSAnQ29uY2VwdCc7CiRsYW5nWydkcm9wZG93biddID0gJ0Ryb3Bkb3duICc7CiRsYW5nWydkcm9wZG93bl9vcHRpb25zJ10gPSAnRHJvcGRvd24gb3B0aWVzIDxlbT4od29yZHQgYWxsZWVuIHRvZWdlcGFzdCBvcCB2ZWxkZW4pPC9lbT48YnIvPjxici8+PGVtPigxIGludm9lciBwZXIgcmVnZWwpPC9lbT4nOwokbGFuZ1snZWRpdCddID0gJ0FhbnBhc3Nlbic7CiRsYW5nWydlZGl0X2F0dHJpYnNldCddID0gJ1dpanppZyBhdHRyaWJ1dXQnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzJ10gPSAnQXR0cmlidXV0IEdyb2VwZW4gYWFucGFzc2VuJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0c19mb3InXSA9ICdBdHRyaWJ1dXQgR3JvZXAgYWFucGFzZW4gdm9vcic7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdBdHRyaWJ1dXQgYWFucGFzc2VuJzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnknXSA9ICdDYXRlZ29yaWUgYWFucGFzc2VuJzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnlfZmllbGRzJ10gPSAnQ2F0ZWdvcmllIFZlbGRlbiBhYW5wYXNzZW4nOwokbGFuZ1snZWRpdF9oaWVyYXJjaHlfaXRlbSddID0gJ0hpZXJhcmNoaWUgSXRlbSBhYW5wYXNzZW4nOwokbGFuZ1snZXJyb3JfYXR0cmlic2V0X2V4aXN0cyddID0gJ0VyIGJlc3RhYXQgYWwgZWVuIGF0dHJpYnV1dCBtZXQgZGV6ZSBuYWFtJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZV9za3UnXSA9ICdEdWJiZWxlIFVpdGxldmVyZWVuaGVpZCB3YWFyZGUgZ2V2b25kZW4nOwokbGFuZ1snZXJyb3JfZmllbGR2YWx1ZV9lbXB0eSddID0gJ0RlIFZlbGQgV2FhcmRlIG1hZyBuaWV0IGxlZWcgemlqbic7CiRsYW5nWydlcnJvcl9maWxlZm9ybWF0J10gPSAnRmlsZSBGb3JtYXQgcHJvYmxlZW0nOwokbGFuZ1snZXJyb3JfZmlsZW5vdGZvdW5kJ10gPSAnQmVzdGFuZCBuaWV0IGdldm9uZGVuJzsKJGxhbmdbJ2Vycm9yX2ZpbGVvcGVuJ10gPSAnUHJvYmxlZW0gbWV0IG9wZW5lbiB2YW4gYmVzdGFuZCAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnT25nZWxkaWdlIE91ZGVyIChlZW4gaGllcmFyY2hpZSBub2RlIGthbiBuaWV0IHppam4gZWlnZW4gb3VkZXIgemlqbiknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9uYW1lJ10gPSAnRGUgYWFuZ2VwYXN0ZSB2ZWxkIHdhYXJkZSBkaWUgdSBoZWVmdCBpbmdldm9lcmQga2xvcHQgbmlldCAoZXIgc3RhYW4gb29rIG5pZXQgYWxmbnVtZXJpZWtlIGthcmFrdGVycyBpbiknOwokbGFuZ1snZXJyb3JfaW52YWxpZF92YWx1ZSddID0gJ09uZ2VsZGlnZSB3YWFyZGUgb3BnZWdldmVuJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0VlbiBiZW5vZGlnZGUgcGFyYW1ldGVyIG1pc3Qgb2YgaXMgbmlldCBnZWxkaWcnOwokbGFuZ1snZXJyb3JfbmFtZXVzZWQnXSA9ICdFZW4gaXRlbSBtZXQgZGV6ZSBuYWFtIGlzIGFsIGluIGdlYnJ1aWsnOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdTZWxlY3RlZXIgYS51LmIuIGVlbiB2ZWxkdHlwZSc7CiRsYW5nWydlcnJvcl9ub25hbWUnXSA9ICdVIG1vZXQgZWVuIG5hYW0gaW52b2VyZW4nOwokbGFuZ1snZXJyb3Jfb25lcXVhbnRpdHlmaWVsZCddID0gJ0VyIGlzIHNsZWNodHMgZWVuIHZlbGQgbWV0IGRlIGhvZXZlZWxoZWlkIHRvZWdlc3RhYW4nOwokbGFuZ1snZXJyb3Jfb25lc3Vic2NyaXB0aW9uZmllbGQnXSA9ICdFciBpcyAmZWFjdXRlOyZlYWN1dGU7biBsaWRtYWF0c2NoYXB2ZWxkIHRvZWdlc3RhYW4nOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbmRlbmllZCddID0gJ1RvZWdhbmcgZ2V3ZWlnZXJkJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfYWxpYXN1c2VkJ10gPSAnRGUgZ2Vub2VtZGUgYWxpYXMgaXMgYWwgaW4gZ2VicnVpayc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X25hbWV1c2VkJ10gPSAnRXIgYmVzdGFhdCBhbCBlZW4gcHJvZHVjdCBtZXQgZGV6ZSBuYWFtJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3Rfbm90Zm91bmQnXSA9ICdIZXQgZ2V2cmFhZ2RlIHByb2R1Y3Qga2FuIG5pZXQgd29yZGVuIGdldm9uZGVuJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3Rfc2t1dXNlZCddID0gJ0RlemUgVWl0bGV2ZXJlZW5oZWlkIGlzIGFsIGluIGdlYnJ1aWsgZG9vciBlZW4gYW5kZXIgcHJvZHVjdCc7CiRsYW5nWydlcnJvcl9wcmljZV9hZGp1c3RtZW50J10gPSAnT25nZWxkaWdlIHByaWpzIGFhbnBhc3NpbmcgdmFuIGl0ZW0gJXMnOwokbGFuZ1snZXJyb3Jfc2t1X3JlcXVpcmVkJ10gPSAnVm9lciBlZW4gdW5pZWtlIFNLVSBpbic7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnVXBsb2FkIG1pc2x1a3Q6ICVzJzsKJGxhbmdbJ2V4Y2x1ZGVfY2F0ZWdvcmllcyddID0gJ1NsdWl0IHByb2R1Y3RlbiBpbiBkZSBnZXNlbGVjdGVlcmRlIGNhdGVnb3JpJmV1bWw7biB1aXQgdmFuIGRlIHJlc3VsdGF0ZW4nOwokbGFuZ1snZXhwaXJlX3NpeF9tb250aHMnXSA9ICdOYSB6ZXMgbWFhbmRlbic7CiRsYW5nWydleHBpcmVfb25lX3llYXInXSA9ICdOYSBlZW4gamFhcic7CiRsYW5nWydleHBpcmVfdHdvX3llYXInXSA9ICdOYSB0d2VlIGphYXInOwokbGFuZ1snZXh0cmExJ10gPSAnRXh0cmEgdmVsZCAxJzsKJGxhbmdbJ2V4dHJhMiddID0gJ0V4dHJhIHZlbGQgMic7CiRsYW5nWydmaWVsZCddID0gJ1ZlbGQnOwokbGFuZ1snZmllbGRzJ10gPSAnVmVsZGVuJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnVmVsZGRlZmluaXRpZSc7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdWZWxkZGVmaW5pdGllcyc7CiRsYW5nWydmaWxlJ10gPSAnQmVzdGFuZCc7CiRsYW5nWydmaWx0ZXJzJ10gPSAnRmlsdGVycyAnOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snZ2VuZXJhbF9zZXR0aW5ncyddID0gJ0FsZ2VtZW5lIGluc3RlbGxpbmdlbic7CiRsYW5nWydnbyddID0gJ0dhIG5hYXInOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IGRvZXMgdGhpcyBkbz8gPC9oMz4NCjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgd2F5IHRvIGNvbGxlY3QsIG9yZ2FuaXplLCBhbmQgZGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCBwcm9kdWN0cyBhbmQgdGhlaXIgY2F0ZWdvcmllcy4gIFRoaXMgbW9kdWxlIGNhbiBzdGFuZCBvbiBpdHMgb3duLCBvciBiZSBwYXJ0IG9mIGFuIGUtY29tbWVyY2Ugc29sdXRpb24gaWYgeW91IHdpc2guICBUaGUgbW9kdWxlIHN1cHBvcnRzIGEgcHJvZHVjdCBleGlzdGluZyBpbiBtb3JlIHRoYW4gb25lIGNhdGVnb3J5LCBzdXBwb3J0cyBwcm9kdWN0IHdlaWdodCwgcHJpY2UsIGFuZCBhdHRyaWJ1dGUgc2V0cy4gIEVhY2ggaXRlbSBpbiBhbiBhdHRyaWJ1dGUgc2V0IGNhbiBoYXZlIGEgcHJpY2UgYWRqdXN0bWVudC4gIEFsc28gYSBnbG9iYWwgZmxhZyBpbmRpY2F0ZXMgd2V0aGVyIHRoZSBwcm9kdWN0IGlzICYjMDM5O3RheGFibGUmIzAzOTsgb3Igbm90LjwvcD4NCiAgPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgZm9yIHVwIHRvIHR3byBpbWFnZXMgcGVyIHByb2R1Y3QsIGN1c3RvbSBmaWVsZCBkZWZpbml0aW9ucywgYW5kIGZvciB0aGUgYWJpbGl0eSB0byBkZXNjcmltaW5hdGUgcHJpdmF0ZSBmcm9tIHB1YmxpYyBkYXRhLjwvcD4NCjxoMz5GZWF0dXJlczo8L2gzPg0KPHVsPg0KICA8bGk+TnVtZXJvdXMgVmlld3M8L2xpPg0KICAgIDx1bD4NCiAgICAgIDxsaT5TdW1tYXJ5IHZpZXc8L2xpPg0KICAgICAgPGxpPkNhdGVnb3J5IExpc3QgVmlldzwvbGk+DQogICAgICA8bGk+RGV0YWlsIHZpZXc8L2xpPiANCiAgICAgIDxsaT5IaWVyYXJjaHkgRHJpbGwtZG93biBWaWV3PC9saT4NCiAgICA8L3VsPg0KICA8bGk+RW50aXJlbHkgRGF0YWJhc2UgVGVtcGxhdGUgRHJpdmVuPC9saT4NCiAgPHA+TnVtZXJvdXMgdGVtcGxhdGVzIG9mIGVhY2ggdHlwZSBjYW4gYmUgZGVmaW5lZCwgZGVmYXVsdHMgc3BlY2lmaWVkIGZvciBlYWNoIHR5cGUsIGFuZCB0aGUgdGVtcGxhdGUgdXNlZCBmb3IgZWFjaCBwYXJ0aWN1bGFyIHZpZXcgY2FuIGJlIHNwZWNpZmllZCBhcyBhIHBhcmFtZXRlcjwvcD4NCiAgPGxpPlNvcnRpbmcgYW5kIHBhZ2luYXRpb24gaW4gdGhlIHN1bW1hcnkgdmlldzwvbGk+DQogIDxsaT5Qcm9kdWN0cyBjYW4gZXhpc3QgaW4gbXVsdGlwbGUgY2F0ZWdvcmllczwvbGk+DQogIDxsaT5OdW1lcm91cyBjdXN0b20gZmllbGRzIGNhbiBiZSBkZWZpbmVkLCBpbmNsdWRpbmcgaW1hZ2VzPC9saT4NCiAgPGxpPkF1dG9tYXRpYyB0aHVtYm5haWwgY3JlYXRpb248L2xpPg0KICA8bGk+QWRtaW4gZGVmaW5lZCBmaWVsZHM8L2xpPg0KICA8bGk+UHJvZHVjdCBhdHRyaWJ1dGVzIChpbmNsdWRpbmcgcHJpY2UgYWRqdXN0bWVudCk8L2xpPg0KICA8bGk+V2VpZ2h0IGFuZCB0YXhhYmxlIGZpZWxkcyAoZm9yIHVzZSBpbiBlLWNvbW1lcmNlIHNvbHV0aW9ucyk8L2xpPg0KICA8bGk+UHJvZHVjdHMgY2FuIGhhdmUgYSBzdGF0dXMgKHB1Ymxpc2hlZCBvciBkcmFmdCkgaW4gb3JkZXIgdG8gaGlkZSBwcm9kdWN0cyBmcm9tIHB1YmxpYyBkaXNwbGF5IGF0IGFueSB0aW1lPC9saT4NCiAgPGxpPlByZXR0eSBVUkwgU3VwcG9ydDwvbGk+DQogIDxsaT48c3Ryb25nPk1vcmUuLi48L3N0cm9uZz48L2xpPg0KPC91bD4NCg0KPGgzPkhvdyBEbyBJIFVzZSBJdDo8L2gzPg0KPHVsPg0KPGxpPlNldCBwcmVmZXJlbmNlczwvbGk+DQo8cD5Vc3VhbGx5IHRoaXMgaXMganVzdCBhIGZvcm1hbGl0eS4gIFlvdSBzaG91bGQgc3BlY2lmeSB5b3VyIGRlZmF1bHQgd2VpZ2h0IHVuaXRzLCBhbmQgeW91ciBkZWZhdWx0IGN1cnJlbmN5IHN5bWJvbCBmb3IgeW91ciBsb2NhbCBlbnZpcm9ubWVudC48L3A+DQo8bGk+U2V0dXAgdXNlcnMgYW5kIHBlcm1pc3Npb25zPC9saT4NCjxwPlRoaXMgbW9kdWxlIHVzZXMgdGhlICYjMDM5O01vZGlmeSBUZW1wbGF0ZXMmIzAzOTsgcGVybWlzc2lvbiB0byBhbGxvdyB1c2VycyB0byBiZSBhYmxlIHRvIG1vZGlmeSB0aGUgdmFyaW91cyB0ZW1wbGF0ZXMgdGhhdCBjYW4gYmUgdXNlZCBieSB0aGlzIG1vZHVsZS4gIEFzIHdlbGwsIHRoZSAmIzAzOTtNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcyYjMDM5OyBwZXJtaXNzaW9uIGlzIG5lZWRlZCB0byBiZSBhYmxlIHRvIGFkanVzdCB0aGUgbW9kdWxlcyBwcmVmZXJlbmNlcy4gIEluIG9yZGVyIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbW9kaWZ5IGZpZWxkIGRlZmluaXRpb25zLCBjYXRlZ29yaWVzLCBvciBwcm9kdWN0cywgeW91ciB1c2VycyB3aWxsIG5lZWQgdGhlICYjMDM5O01vZGlmeSBQcm9kdWN0cyYjMDM5OyBwZXJtaXNzaW9uLjwvcD4NCjxsaT4ob3B0aW9uYWwpIERlZmluZSBvbmUgb3IgbW9yZSBjYXRlZ29yaWVzPC9saT4NCjxwPlRoaXMgaXMgYW4gb3B0aW9uYWwgc3RlcCwgYnV0IHlvdSB3aWxsIHByb2JhYmx5IHdhbnQgdG8gZG8gdGhpcyBlYXJseSB0byBwcmV2ZW50IGhhdmluZyB0byBnbyBiYWNrIHRvIG1vZGlmeSBlYWNoIGFuZCBldmVyeSBwcm9kdWN0IGxhdGVyLiAgQWRkaW5nIGEgY2F0ZWdvcnkgaXMgYXMgc2ltcGxlIGFzIGNsaWNraW5nIG9uIHRoZSAmIzAzOTtDYXRlZ29yaWVzJiMwMzk7IHRhYiBpbiB0aGUgUHJvZHVjdCBNYW5hZ2VycyBhZG1pbiBzZWN0aW9uLCBhbmQgY2xpY2tpbmcgJiMwMzk7QWRkIEEgQ2F0ZWdvcnkmIzAzOTsuICBGcm9tIHRoZXJlIHlvdSB3aWxsIGJlIHByb21wdGVkIGZvciBhIGNhdGVnb3J5IG5hbWUuPC9wPg0KPGxpPihvcHRpb25hbCkgRGVmaW5lIG9uZSBvciBtb3JlIGN1c3RvbSBmaWVsZHM8L2xpPg0KPHA+VGhpcyBpcyBhbiBvcHRpb25hbCBzdGVwLiAgQ3VzdG9tIGZpZWxkcyBhcmUgbm90IG5lZWRlZCBpZiB0aGlzIG1vZHVsZSBzdWl0cyB5b3UgZXhhY3RseSBhcyBpdCBpcy4gIEhvd2V2ZXIgaWYgeW91IHdvdWxkIGxpa2UgdG8gc3RvcmUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBmb3IgZWFjaCBvZiB5b3VyIHByb2R1Y3RzIHlvdSBjYW4gY3JlYXRlIGN1c3RvbSBmaWVsZHMuICBDcmVhdGluZyBjdXN0b20gZmllbGRzIGlzIHNpbWlsYXIgdG8gY3JlYXRpbmcgY2F0ZWdvcmllcywgZXhjZXB0IHRoYXQgbW9yZSBkYXRhIGlzIHJlcXVlc3RlZC48L3A+DQo8cD5DdXJyZW50bHkgc2l4IHR5cGVzIG9mIGN1c3RvbSBmaWVsZHMgYXJlIGF2YWlsYWJsZTogJiMwMzk7dGV4dGJveCYjMDM5OywmIzAzOTtjaGVja2JveCYjMDM5OyxhbmQgJiMwMzk7dGV4dGFyZWEsIGRyb3Bkb3duLCBhbmQgZmlsZSYjMDM5Oy4gIFNlbGVjdCBvbmUgb2YgdGhlc2UsIGdpdmUgeW91ciBuZXcgZmllbGQgYSBuYW1lLCBhbmQgaW5kaWNhdGUgd2V0aGVyIHRoYXQgZmllbGQgc2hvdWxkIGJlIHZpc2libGUgdG8gdGhlIHB1YmxpYyBpbiB0aGUgdmFyaW91cyB2aWV3cy4gIFRoZW4gaGl0IHN1Ym1pdDwvcD4NCjxsaT5DcmVhdGUgb25lIG9yIG1vcmUgcHJvZHVjdHM8L2xpPg0KPHA+WW91IHNob3VsZCBjcmVhdGUgb25lIG9yIG1vcmUgcHJvZHVjdHMgdG8gZGlzcGxheSBpbiB5b3VyIHdlYnNpdGUgY29udGVudC4gIEdpdmUgZWFjaCBwcm9kdWN0IGEgbmFtZSwgYSBwcmljZSAob3B0aW9uYWwpIGEgd2VpZ2h0IChvcHRpb25hbCksIGEgc3RhdHVzIChkcmFmdCBvciBwdWJsaXNoZWQpLCBhbmQgc29tZSBpbmZvcm1hdGlvbi4gIEFkZGl0aW9uYWxseSwgeW91IGNhbiBhbHNvIHNwZWNpZnkgaWYgdGhlIHByb2R1Y3QgaXMgdGF4YWJsZS48L3A+DQo8cD5JZiBjYXRlZ29yaWVzIGFyZSBkZWZpbmVkLCB0aGVuIGEgY2hlY2tib3ggd2lsbCBhcHBlYXIgZm9yIGVhY2ggZGVmaW5lZCBjYXRlZ29yeS4gIFlvdSBjYW4gc2ltcGx5IGNsaWNrIHRoZSBjaGVja2JveCBmaWVsZHMgZm9yIGVhY2ggY2F0ZWdvcnkgdGhhdCB0aGlzIHByb2R1Y3Qgc2hvdWxkIGJlbG9uZyB0by48L3A+DQo8cD5JZiBjdXN0b20gZmllbGRzIGFyZSBkZWZpbmVkLCB0aGVuIGlucHV0IGZpZWxkcyBhcHByb3ByaWF0ZSB0byB0aGUgdHlwZSBvZiBjdXN0b20gZmllbGQgd2lsbCBhcHBlYXIgYW5kIGFsbG93IHlvdSB0byBzcGVjaWZ5IGRhdGEgZm9yIGVhY2ggb2YgdGhlbS4gIFRoaXMgZGF0YSBpcyBvcHRpb25hbC48L3A+DQo8bGk+QWRkIHRoZSBhcHByb3ByaWF0ZSB0YWdzIGludG8geW91ciBwYWdlIHRlbXBsYXRlcyBvciBwYWdlIGNvbnRlbnQ8L2xpPg0KPHA+VGhpcyBjYW4gYmUgYXMgc2ltcGxlIGFzIGFkZGluZyB0aGUgPHN0cm9uZz57UHJvZHVjdHN9PC9zdHJvbmc+IHRhZyBpbnRvIHRoZSBjb250ZW50IGFyZWEgb2Ygb25lIG9mIHlvdXIgcGFnZXMsIG9yIGludG8geW91ciBwYWdlIHRlbXBsYXRlLjwvcD4NCjxwPklmIHlvdSB3aXNoIHRvIGFsdGVyIHRoZSBiZWhhdmlvdXIgb2YgdGhpcyBhcHBsaWNhdGlvbiBmcm9tIGl0cyBkZWZhdWx0LCB5b3UgY2FuIGRvIHRoYXQgYnkgYWRkaW5nIG9uZSBvciBtb3JlIHBhcmFtZXRlcnMgdG8gdGhlIDxzdHJvbmc+e1Byb2R1Y3RzfTwvc3Ryb25nPiB0YWcuICBUaGUgY29tcGxldGUgbGlzdCBvZiBwYXJhbWV0ZXJzIGFuZCB0aGVpciBiZWhhdmlvdXIgaXMgbGlzdGVkIGJlbG93LiAgQnV0IGZvciBleGFtcGxlLCB0byBkaXNwbGF5IGEgbGlzdCBvZiBwcm9kdWN0cyBpbiBhIHNpbmdsZSwgZXhpc3RpbmcgY2F0ZWdvcnksIHlvdSBjb3VsZCB1c2UgYSB0YWcgbGlrZSA8Y29kZT57UHJvZHVjdHMgY2F0ZWdvcnk9JiMwMzk7Y2F0ZWdvcnluYW1lJiMwMzk7fTwvY29kZT48L3A+DQo8L3VsPg0KPGgzPlNtYXJ0eSBQbHVnaW5zPC9oMz4NCjxwPlRoaXMgbW9kdWxlIGFsc28gcmVnaXN0ZXJzIG9uZSBvciBtb3JlIHNtYXJ0eSBwbHVnaW5zIHRvIGFpZGUgaW4gcmV0cmlldmluZyB2YXJpb3VzIHByb2R1Y3RzIHJlbGF0ZWQgaW5mb3JtYXRpb24gd2hlbiBkZXNpZ25pbmcgcHJvZHVjdHMgbW9kdWxlIHRlbXBsYXRlczo8L3A+DQo8dWw+DQogIDxsaT57cHJvZHVjdHNfZ2V0Y2F0ZWdvcnkgY2F0ZWdvcnlpZD0mIzAzOTs5OSYjMDM5OyBbYXNzaWduPSYjMDM5O3RtcCYjMDM5O119DQogIDxwPlRoaXMgcGx1Z2luIGFsbG93cyByZXRyaWV2aW5nIGFsbCBvZiB0aGUgaW5mb3JtYXRpb24gZm9yIGEgc3BlY2lmaWMgY2F0ZWdvcnkgaWQgYW5kIG9wdGlvbmFsbHkgYXNzaWduaW5nIGl0IHRvIHRoZSBuYW1lZCBzbWFydHkgdmFyaWFibGUuICBUaGUgcmV0dXJuZWQgaXMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgYWxsIG9mIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBhIGNhdGVnb3J5LCBpbmNsdWRpbmcgaXRzIGZpZWxkIHZhbHVlcy48YnIvPmkuZTouIDxjb2RlPntwcm9kdWN0c19nZXRjYXRlZ29yeSBjYXRlZ29yeWlkPTEgYXNzaWduPSYjMDM5O3RtcCYjMDM5O31DYXRlZ29yeSBuYW1lID0geyR0bXAtPm5hbWV9PC9jb2RlPjwvcD4NCiAgIA0KICAgPC9wPg0KICA8L2xpPg0KPC91bD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiAgSG93ZXZlciB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzIG9yIHRvIGZpbGUgYSBidWcgcmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIGNtcyBtYWRlIHNpbXBsZSA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5EZXZlbG9wZXJzIEZvcmdlPC9hPiBhbmQgZG8gYSBzZWFyY2ggZm9yICYjMDM5O1Byb2R1Y3RzJiMwMzk7PC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj5Sb2JlcnQgQ2FtcGJlbGw8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3Jtcy48L2E+PC9saT4NCjxsaT5Gb3Igc29tZSBxdWVzdGlvbnMgYW5kIGxpbWl0ZWQgdGVjaG5pY2FsIHN1cHBvcnQsIHRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjwvdWw+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmYW1wO2NvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mYW1wO2x0O2NhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcmYW1wO2d0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPg0KPHA+SG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkDQphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUNCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMNCk1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiANCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPg0KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQpidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCk9yIHJlYWQgaXQgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5vbmxpbmU8L2E+PC9wPic7CiRsYW5nWydoaWVyYXJjaHknXSA9ICdIaWVyYXJjaGllJzsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gJ0hpZXJhcmNoaWUgUG9zaXRpZSc7CiRsYW5nWydoaWVyYXJjaHlfc2V0dGluZ3MnXSA9ICdIaWVyYWNoaWUgaW5zdGVsbGluZ2VuJzsKJGxhbmdbJ2lkJ10gPSAnSWQgJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ0FmYmVlbGRpbmcnOwokbGFuZ1snaW1hZ2VfaGFuZGxpbmdfc2V0dGluZ3MnXSA9ICdJbnN0ZWxsaW5nZW4gYWZiZWVsZGluZyBhZmhhbmRlbGluZyc7CiRsYW5nWydpbXBvcnRfZnJvbV9jc3YnXSA9ICdJbXBvcnRlZXIgcHJvZHVjdGVuIHZhbnVpdCBlZW4gQ1NWIGZpbGUnOwokbGFuZ1snaW5jaGVzJ10gPSAnSW5jaGVzICc7CiRsYW5nWydpbmNsdWRlX2NoaWxkcmVuJ10gPSAnSW5jbHVzaWVmIG9uZGVybGlnZ2VuZGVuPyc7CiRsYW5nWydpbmZvX2FsbnVtb25seSddID0gJ0FsbGVlbiBhbGZhbnVtZXJpZWtlIGthcmFrdGVycy4gR2VlbiB3aXRydWltdGUsIGFhbmhhbGluZ3N0ZWtlbnMgb2YgbGV0dGVyL251bW1lciBjb21iaW5hdGllcyc7CiRsYW5nWydpbmZvX2F0dHJpYnRlbXBsYXRlJ10gPSAnTW9nZWxpamtlIHdhYXJkZW4gemlqbjogeyRhdHRyaWJfdGV4dH0sIHskYXR0cmliX2FkanVzdH0sIHskY3VycmVuY3lfc3ltYm9sfSc7CiRsYW5nWydpbmZvX2F0dHJpYnV0ZXNfY29waWVkJ10gPSAnQXR0cmlidXRlbiBnZWtvcGllJmV1bWw7cmQnOwokbGFuZ1snaW5mb19hdXRvd2F0ZXJtYXJrJ10gPSAnRGUgd2F0ZXJtZXJrIGluc3RlbGxpbmdlbiB6aWpuIGFma29tc3RpZyB1aXQgZGUgQ0dFeHRlbnNpb25zIE1vZHVsZSc7CiRsYW5nWydpbmZvX2JhdGNoc2l6ZSddID0gJ1N0ZWwgaGV0IGFhbnRhbCByZWdlbHMgb20gdWl0IHRlIHZvZXJlbiBwZXIgJiMwMzk7YmF0Y2gmIzAzOTsgaW4uIE5hZGF0IGVlbiBiYXRjaCBpcyB2b2x0b29pZCwgemFsIGRlIGltcG9ydGVyIHdvcmRlbiBkb29ydmVyd2V6ZW4gZW4gZG9vcmdhYW4gbWV0IGRlIG9wZXJhdGllLiBBbHMgdSB2ZXJ3YWNodCBkYXQgZXIgbW9nZWxpamsgZ2VoZXVnZW5mb3V0ZW4gZ2FhbiBvbnRzdGFhbiBvZiB0aW1lLW91dHByb2JsZW1lbiBkb29yIGhldCBob2dlIGFhbnRhbCByZWdlbHMgcGVyIGtlZXIsIGRhbiBrdW50IHUgYmV0ZXIgY29udGFjdCBvcG5lbWVuIG1ldCB1dyBob3N0aW5ncHJvdmlkZXIgb2YgZGl0IG51bW1lciBsYWdlciBpbnN0ZWxsZW4uJzsKJGxhbmdbJ2luZm9fY2FydF9tb2R1bGVfcGFyYW1zJ10gPSAnRGV6ZSBwYXJhbWV0ZXJzIHdvcmRlbiBkb29yZ2VnZXZlbiBhYW4gZGUgZ2VzZWxlY3RlZXJkZSBjYXJ0IG1vZHVsZSB2YW51aXQgaGV0ICBwcm9kdWN0IHVpdGdlYnJlaWQgZW4gb3Bzb21taW5nIGRpc3BsYXlzJzsKJGxhbmdbJ2luZm9fY29weV9hdHRyaWJzZXRzJ10gPSAnRGV6ZSBhY3RpZSB6YWwgZGUgYXR0cmlidXRlbnNldHMga29waWUmZXVtbDtyZW4gKGV4Y2x1c2llZiBza3Ugd2FhcmRlcykgdmFuIGVlbiBhbmRlciBwcm9kdWN0JzsKJGxhbmdbJ2luZm9fY3JlYXRlZmllbGRzJ10gPSAnTWFhayBvbmJla2VuZGUgcHJvZHVjdHZlbGRlbiBhdXRvbWF0aXNjaCBhYW4/IDxlbT4oWmUgd29yZGVuIGRhbiBhYW5nZW1hYWt0IGFscyB0ZWtzdHZlbGQpPC9lbT4nOwokbGFuZ1snaW5mb19jcmVhdGVjYXRlZ29yaWVzJ10gPSAnTWFhayBhdXRvbWF0aXNjaCBlZW4gcHJvZHVjdGNhdGVnb3JpZSBhYW4gZGllIHZvb3Jrb210IGluIGhldCBDU1YgZmlsZSBhbHMgZGV6ZSBub2cgbmlldCBiZXN0YWF0JzsKJGxhbmdbJ2luZm9fY3JlYXRlaGllcmFyY2h5J10gPSAnTWFhayBhdXRvbWF0aXNjaCBlZW4gcHJvZHVjdCBoaSZldW1sO3JhcmNoaWUgYWFuIGRpZSB2b29ya29tdCBpbiBoZXQgQ1NWIGZpbGUgYWxzIGRlemUgbm9nIG5pZXQgYmVzdGFhbic7CiRsYW5nWydpbmZvX2RlY2ltYWxfdW5pdHMnXSA9ICdEZSBtb2R1bGUgZ2VicnVpa3QgZWVuIHB1bnQgKC4pIGFscyBoZXQgZGVjaW1hbGUgc2NoZWlkaW5nc3Rla2VuIGIudi46IDxzdHJvbmc+NS4yNTwvc3Ryb25nPic7CiRsYW5nWydpbmZvX2RlbGltaXRlciddID0gJ1NwZWNpZmljZWVyIGhldCBrYXJha3RlcihzKSBkYXQgZ2VicnVpa3QgbW9ldCB3b3JkZW4gb20gdmVsZGVuIHRlIHNjaGVpZGVuJzsKJGxhbmdbJ2luZm9fZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdTcGVjaWZpY2VlciBob2UgaGV0IHN5c3RlZW0gbW9ldCBoYW5kZWxlbiBhbHMgZXIgZWVuIHByb2R1Y3Qgdm9vcmtvbXQgbWV0IGRlemVsZmRlIG5hYW0gaW4gaGV0IENTViBmaWxlJzsKJGxhbmdbJ2luZm9fZmllbGRkZWZzX3RhYiddID0gJzxzdHJvbmc+T3BtZXJraW5nOjwvc3Ryb25nPiBEZSBoaWVyIGFhbndlemlnZSB2ZWxkZW4gemlqbiBiZXNjaGlrYmFhciB2b29yIGFsbGUgcHJvZHVjdGVuLic7CiRsYW5nWydpbmZvX2ZpZWxkcHJvYmxlbXMnXSA9ICdFciBpcyBwcm9ibGVlbSBvbnRzdGFhbiBtZXQgaGV0IHZlcndlcmtlbiB2YW4gZWVuIG9mIG1lZXIgYWFuZ2VtYWFrdGUgdmVsZGVuLiAgRGV6ZSBhY3RpZSBpcyBjb3JyZWN0IHVpdGdldm9lcmQuIG1hYXIgaGV0IGlzIHZlcnN0YW5kaWcgYWxsZXMgdGUgY29udHJvbGVyZW4gZW4gZXZlbnR1ZWVsIHRlIGhlcnN0ZWxsZW4uJzsKJGxhbmdbJ2luZm9faGFuZGxlaW1hZ2VzJ10gPSAnQWxzIGJpaiBlZW4gaW1wb3J0IGVlbiBiZXN0YW5kc25hYW0gdmFuIGVlbiBhZmJlZWxkaW5nIHdvcmR0IGdldm9uZGVuLCBtb2V0IGhldCBkYW4gdmVycGxhYXRzdCB3b3JkZW4gdmFuIGRlIGJyb25sb2NhdGllLCB3b3JkZW4gZ2V3YXRlcm1lcmt0LCBnZXRodW1uYWlsZWQgb2YgaGV0IGJlc3RhbmRzdHlwZSB3b3JkZW4gZ2V3aWp6aWdkIG5hYXIgJnF1b3Q7aW1hZ2UmcXVvdDsuJzsKJGxhbmdbJ2luZm9faGllcnBhZ2UnXSA9ICdHZWJydWlrIGRlemUgcGFnaW5hIHZvb3IgZGUgaGllJmF1bWw7cmNoaXNjaGUgd2VlcmdhdmUuIERlIHBhZ2luYWlkIHphbCBuaWV0IHdvcmRlbiB3ZWVyZ2VnZXZlbiBpbiBkZSBVUkwuJzsKJGxhbmdbJ2luZm9faW1hZ2VwYXRoJ10gPSAnSW4gZGl0IHBhZCAoZ2V6aWVuIHZhbmFmIGRlIHVwbG9hZHMtbWFwKSBrdW5uZW4gZGUgYWZiZWVsZGluZ2VuIHdvcmRlbiBnZXZvbmRlbiBkaWUgemlqbiBvcGdlZ2V2ZW4gaW4gaGV0IGdlJml1bWw7bXBvcnRlZXJkZSBiZXN0YW5kLic7CiRsYW5nWydpbmZvX2ltYWdlc3R1ZmZfZGVwcmVjYXRlZCddID0gJ0RlIGZ1bmN0aWVzIHZlcndlcmtlbiB2YW4gYWZiZWVsZGluZ2VuIHppam4gdmVybG9wZW4gZW4genVsbGVuIHdvcmRlbiB2ZXJ3aWpkZXJkIGluIHRvZWtvbXN0aWdlIHZlcnNpZXMuIEdlYnJ1aWsgQ0dTbWFydEltYWdlIHZvb3IgaGV0IHZlcndlcmtlbiB2YW4gYWZiZWVsZGluZ2VuLic7CiRsYW5nWydpbmZvX2ltcG9ydF90ZXN0X3Bhc3NlZCddID0gJ0VlbiBrb3J0ZSB0ZXN0IGhlZWZ0IHBsYWF0c2dldm9uZGVuIG9wIGhldCBnZXNlbGVjdGVlcmRlIGdlc2VsZWN0ZWVyZGUgYmVzdGFuZCBlbiBhbGxlcyBsaWprdCBpbiBvcmRlLjxici8+RGl0IGlzIGVjaHRlciBnZWVuIGdhcmFudGllIGRhdCBlciBnZWVuIGZvdXRlbiBpbiBoZXQgYmVzdGFuZCBhYW53ZXppZyB6aWpuLic7CiRsYW5nWydpbmZvX3ByZXR0eWhpZXJ1cmxzJ10gPSAnVm9lZyBkZSBoaWUmYXVtbDtyY2hpZSBuYWFtIHRvZSBhYW4gZGUgVVJMJzsKJGxhbmdbJ2luZm9fcHJpY2VfYWRqdXN0bWVudCddID0gJ0dlYWNjZXB0ZWVyZGUgd2FhcmRlbiB6aWpuICstKiMuIyMnOwokbGFuZ1snaW5mb19wcm9kbm90Zm91bmQnXSA9ICdEZXplIG9wdGllIGJlcGFhbGQgaGV0IGdlZHJhZyB2YW4gZGUgd2Vic2l0ZSB3YW5uZWVyIGVlbiBkZXRhaWx3ZWVyZ2F2ZSB2YW4gZWVuIHByb2R1Y3QgcmVjaHRzdHJlZWtzIHdvcmR0IGJlem9jaHQgbWV0IGVlbiBVUkwgZW4gZGF0IHByb2R1Y3Qgb20gZWVuIGJlcGFhbGRlIHJlZGVuICh1aXRnZXNjaGFrZWxkLCB2ZXJ3aWpkZXJkLCBldGMuKSBuaWV0IGthbiB3b3JkZW4gYmV6b2NodC4nOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gJ1B1YmxpZWtlIHZlbGRlbiB6aWpuIHppY2h0YmFhciB2b29yIGhldCBwdWJsaWVrJzsKJGxhbmdbJ2luZm9fcmVvcmRlcl9jb250ZW50J10gPSAnRGV6ZSBhY3RpZSBzdGFhdCBoZXQgc2xlcGVuIHZhbiBpbmRpdmlkdWVsZSBpdGVtcyBpbiBkZSBib29tc3RydWN0dXVyIHRvZS4gWm8ga3VudCB1IGRlIHZvbGdvcmRlIGFhbnBhc3NlbiB3YWFyaW4gZGUgaXRlbXMgd29yZGVuIHdlZXJnZXZlbiBpbiBkZSBoaSZldW1sO3JhcmNoaXNjaGUgd2VlcmdhdmUuJzsKJGxhbmdbJ2luZm9fc2V0ZWNvbWhhbmRsZXJzJ10gPSAnRGV6ZSBrbm9wIGdhcmFuZGVlcnQgZGF0IGRlIGdlYmV1cnRlbmlzc2VuIHZvb3IgZS1jb21tZXJjZWFjdGl2aXRlaXRlbiBqdWlzdCB6aWpuIGdlJml1bWw7bnN0YWxsZWVyZC4gRGl0IGlzIGhhbmRpZyB3YW5uZWVyIGRlIHByb2R1Y3Rlbm1vZHVsZSBkZSBiZXNjaGlrYmFyZSBob2V2ZWVsaGVkZW4gYmlqIHdpbCBob3VkZW4sIG1hYXIgZGUgZ2ViZXVydGVuaXNoYW5kbGVycyBuaWV0IHppam4gYWFuZ2VtYWFrdCB0aWpkZW4gZGUgaW5zdGFsbGF0aWUgb2YgdXBncmFkZS4nOwokbGFuZ1snbGFiZWwnXSA9ICdMYWJlbCAnOwokbGFuZ1snbGFiZWxfc2tpcCddID0gJ1NsYSBvdmVyJzsKJGxhbmdbJ2xhYmVsX292ZXJ3cml0ZSddID0gJ092ZXJzY2hyaWp2ZW4nOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnTGFhdHN0IGFhbmdlcGFzdCBvcCc7CiRsYW5nWydsb2dvdGV4dCddID0gJ1R3ZWVkZSBBZmJlZWxkaW5nJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ01heGltYWxlIGxlbmd0ZSA8ZW0+KGFsbGVlbiB2YW4gdG9lcGFzc2luZyBvcCBoZXQgdGVrc3R2ZWxkKTwvZW0+JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ0FhbmdlcGFzdCBvcCc7CiRsYW5nWydtb2R1bGVfZGVzY3JpcHRpb24nXSA9ICdFZW4gbW9kdWxlIHZvb3IgaGV0IG1hbmFnZW4gdmFuIGVlbiBwcm9kdWN0Y2F0YWxvZ3VzLiBEZSBwcm9kdWN0ZW4gemlqbiB2b29yemllbiB2YW4gZWVuIHByaWpzLCBlZW4gZm90bywgZXRjLiBPb2sgaXMgZXIgZWVuIG1vZ2VsaWpraGVpZCB2b29yIGVlbiB3aW5rZWx3YWdlbiB0ZSBtYWtlbi4nOwokbGFuZ1snbW92ZV9kb3duJ10gPSAnVmVyc2NodWlmIG5hYXIgYmVuZWRlbic7CiRsYW5nWydtb3ZlX3VwJ10gPSAnVmVyc2NodWlmIG5hYXIgYm92ZW4nOwokbGFuZ1snbXNnX2V2ZW50aGFuZGxlcnNfY3JlYXRlZCddID0gJ0dlYmV1cnRlbmlzaGFuZGxlcnMgZ2VjcmVlJmV1bWw7cmQuJzsKJGxhbmdbJ25hbWUnXSA9ICdOYWFtJzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnVSBoZWVmdCBuaWV0IGRlIHZlcmVpc3RlIHJlY2h0ZW46ICVzJzsKJGxhbmdbJ25ld19jYXRlZ29yeV9uYW1lJ10gPSAnTmlldXdlIENhdGVnb3JpZSBOYWFtJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydubyddID0gJ05lZSc7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ0VyIGlzIGdlZW4gbmFhbSBpbmdldnVsZCc7CiRsYW5nWydub25lJ10gPSAnR2Vlbic7CiRsYW5nWydub3RoaW5nX3NlbGVjdGQnXSA9ICdOaWV0cyBnZXNlbGVjdGVlcmQnOwokbGFuZ1snb2YnXSA9ICdWYW4nOwokbGFuZ1snb3BlcmF0aW9uX2NhbmNlbGxlZCddID0gJ0FjdGllIGdlYW5udWxlZXJkJzsKJGxhbmdbJ29wZXJhdGlvbl9jb21wbGV0ZSddID0gJ09wZXJhdGllIHVpdGdldm9lcmQnOwokbGFuZ1sncGFnZSddID0gJ1BhZ2luYSc7CiRsYW5nWydwYWdlX29mJ10gPSAnUGFnaW5hICVzIHZhbiAlcyc7CiRsYW5nWydwYWdlX2xpbWl0J10gPSAnUGFnaW5hIExpbWlldCc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcGVjaWZpY2VlciBkZSB3ZXJraW5nIHZhbiBkZSBtb2R1bGUuICBNb2dlbGlqa2Ugd2FhcmRlbiB6aWpuOg0KPHVsPg0KICA8bGk+aGllcmFyY2h5IC0tIFRvb24gZWVuIHByb2R1Y3RsaWpzdCBvcCBiYXNpcyB2YW4gaGkmZXVtbDtyYXJjaGllPC9saT4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtIFRvb24gZWVuIHByb2R1Y3RsaWpzdCBvcCBiYXNpcyB2YW4gY2F0ZWdvcmllbjwvbGk+DQogIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gRGlzcGxheSBhIHN1bW1hcnkgb2YgcHJvZHVjdHM8L2xpPg0KICA8bGk+ZGV0YWlscyAtIERpc3BsYXkgYSBkZXRhaWwgdmlldyBvZiBhIHNpbmdsZSBwcm9kdWN0PC9saT4NCjxsaT5maWVsZGxpc3QgLSBEaXNwbGF5IGEgbGlzdCBvZiB2YWx1ZXMgZnJvbSBhIHNwZWNpZmllZCBmaWVsZC4NCiAgICAgPHA+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDstIFRoaXMgYWN0aW9uIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIG5hdmlnYXRpb24gZnJvbSB0aGUgdmFsdWVzIG9mIGEgc3BlY2lmaWMgZmllbGQuICBpLmU6ICB5b3UgY291bGQgY3JlYXRlIGEgY3VzdG9tIGRyb3Bkb3duIGZpZWxkIGNhbGxlZCAmYW1wO3F1b3Q7Y29sb3ImYW1wO3F1b3Q7IGFuZCB0aGVuIGNyZWF0ZSBhIG5hdmlnYXRpb24gYmFzZWQgb24gdGhlIGRpZmZlcmVudCBjb2xvcnMuDQogICAgIDwvcD4NCiAgPC9saT4NCiAgPGxpPnNlYXJjaCAtIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IHNlYXJjaGluZyBwcm9kdWN0cyBvbiB2YXJpb3VzIGNyaXRlcml1bTwvbGk+DQoNCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnV2hlbiB1c2VkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIsIHdoaWNoIHNob3VsZCBtYXRjaCB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyBjYXRlZ29yeSB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBvbmx5IHRob3NlIHByb2R1Y3RzIHRoYXQgYXJlIGluIHRoYXQgY2F0ZWdvb3J5LiAoYSBjb21tYSBzZXBlcmF0ZWQgbGlzdCBjYW4gYmUgc3VwcGxpZWQpJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5ZmllbGQnXSA9ICdBbGxlZW4gdmFuIHRvZXBhc3Npbmcgb3AgZGUgJnF1b3Q7Y2F0ZWdvcnlsaXN0JnF1b3Q7IGFjdGllLCBkZXplIHBhcmFtZXRlciBrYW4gZ2VicnVpa3Qgd29yZGVuIG9tIGNhdGVnb3JpJmV1bWw7biB0ZSBmaWx0ZXJlbiBvcCBiYXNpcyB2YW4gZGUgd2FhcmRlIHZhbiBoZXQgY2F0ZWdvcmlldmVsZC4gSGV0IHdlcmt0IG5pZXQgaW4gY29tYmluYXRpZSBtZXQgZGUgJnF1b3Q7Y2F0ZWdvcnkmcXVvdDsgb2YgZGUgJnF1b3Q7Y2F0ZWdvcnlfaWQmcXVvdDsgcGFyYW1ldGVycy4gRGUgc3ludGF4IHZhbiBkZXplIHBhcmFtZXRlciBpcyBlZW4ga29tbWFnZXNjaGVpZGVuIGxpanN0IG1ldCB2ZWxkbmFtZW4gZW4gdmVsZHdhYXJkZW4uICBCaWp2b29yYmVlbGQ6ICBjYXRlZ29yeWxpc3Q9JnF1b3Q7dmVsZG5hYW06d2FhcmRlLHZlbGRuYWFtIDI6d2FhcmRlIDImcXVvdDsnOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0ZHRsdGVtcGxhdGUnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGlzcGxheSBvZiB0aGUgY2F0ZWdvcnkgZGV0YWlscy4gIFRoaXMgdXNlcyBhIGNhdGVnb3J5IGxpc3QgdGVtcGxhdGUuLiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4gJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdUaGlzIHNwZWNpZmllcyB0aGUgcGFnZWlkIG9yIGFsaWFzIHRoYXQgc2hvdWxkIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgZGV0YWlsIHJlcG9ydC4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkZXRhaWwgbW9kZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2V4Y2x1ZGVjYXQnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgKHN1bW1hcnkpIHZpZXcsIHRoaXMgcGFyYW1ldGVyIHdpbGwgYWxsb3cgZXhjbHVkaW5nIHByb2R1Y3RzIHRoYXQgYXJlIGluIGEgc3BlY2lmaWMgY2F0ZWdvcnkgZnJvbSB0aGUgcmVzdWx0LiBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGNhdGVnb3J5IG5hbWVzIGlzIGFsbG93ZWQuIFRoaXMgcGFyYW1ldGVyIGNhbiB3b3JrIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGNhdGVnb3J5IHBhcmFtZXRlciB0byBwcm92aWRlIGEgbGlzdCBvZiB0aGUgcHJvZHVjdHMgdGhhdCBhcmUgaW4gdGhpcyBjYXRlZ29yeSwgYnV0IG5vdCBpbiB0aGF0IGNhdGVnb3J5ICc7CiRsYW5nWydwYXJhbV9maWVsZCddID0gJ1VzZWQgb25seSBpbiB0aGUgPGVtPmZpZWxkbGlzdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgdG8gc3BlY2lmeSB0aGUgbmFtZSBvZiBhIHVzZXIgZGVmaW5lZCBwcm9wZXJ0eSB0byBjcmVhdGUgYSBsaXN0IGZyb20uJzsKJGxhbmdbJ3BhcmFtX2ZpZWxkdmFsJ10gPSAnQWxsZWVuIHZvb3IgZGUgPGVtPnN0YW5kYWFyZDwvZW0+IGFjdGllLCBkZXplIHBhcmFtZXRlciBzdGFhdCB0b2UgZWVuIHdhYXJkZSBvcCB0ZSBnZXZlbiBvbSBkZSByZXN1bHRhdGVuIGJpaiB0ZSBsaW1pdGVyZW4uICBTcGVjaWFsZSB3YWFyZGVuIHZvb3IgZGl0IHZlbGQgemlqbjogJnF1b3Q7OjpudWxsOjomcXVvdDsgJnF1b3Q7Ojpub3RudWxsOjomcXVvdDsnOwokbGFuZ1sncGFyYW1faGllcmFyY2h5J10gPSAnVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhhdCBvbmx5IGl0ZW1zIGluIHRoYXQgbG9jYXRpb24gb2YgdGhlIGhpZXJhcmNoeSBzaG91bGQgYmUgZGlzcGxheWVkLiAgV2lsZGNhcmQgY2hhcmFjdGVyIGNhbiBiZSB1c2VkIHNvIHRoYXQgeW91IGNhbiBzcGVjaWZ5IHBhcmVudC9jaGlsZCByZWxhdGlvbnNoaXBzIGFzIHdlbGwuICBpLmUge1Byb2R1Y3RzIGhpZXJhcmNoeT0mIzAzOTt0cnVja3MqJiMwMzk7fSB3aWxsIGNyZWF0ZSBhIHN1bW1hcnkgcmVwb3J0IG9mIGFsbCB0cnVja3MsIGluY2x1ZGluZyB0aGUgY2hpbGRyZW4gaW4gdGhlIGhpZXJhcmNoeS4gIFNpbWlsYXJseSwge1Byb2R1Y3RzIGhpZXJhcmNoeT0mIzAzOTsqdHJ1Y2tzJiMwMzk7fSB3aWxsIGRpc3BsYXkgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBhbmQgYWxsIHByb2R1Y3RzIGJlbG9naW5nIHRvIGFueSBwYXJlbnQgaW4gdGhlIGhpZXJhcmNoeS4nOwokbGFuZ1sncGFyYW1faGllcmFyY2h5dGVtcGxhdGUnXSA9ICdUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBoaWVyYXJjaHkgZGlzcGxheS4gSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuICc7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhhdCB0aGUgb3V0cHV0IG9mIHRoZSBzdW1tYXJ5IHZpZXcgc2hvdWxkIGJlIGRpc3BsYXllZCBpbmxpbmUgJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIGxpc3RlZCBvbiBlYWNoIHBhZ2UuJzsKJGxhbmdbJ3BhcmFtX3BhcmVudCddID0gJ1VzZWZ1bCBvbmx5IGluIHRoZSA8ZW0+aGllcmFyY2h5PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIGhpZXJhcmNoeSBpZCBvZiB0aGUgc3RhcnRpbmcgbG9jYXRpb24gb2YgdGhlIHJlcG9ydC4gJzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RpZCddID0gJ0hlZWZ0IGFsbGVlbiB6aW4gaW4gZGUgdWl0Z2VicmVpZGUgc2phYmxvb24uIERlemUgcGFyYW1ldGVyIGdlZWZ0IGFhbiB3ZWxrIHByb2R1Y3QgdGUgZ2VicnVpa2VuIGJpaiBoZXQgd2VlcmdldmVuLic7CiRsYW5nWydwYXJhbV9wcm9kdWN0bGlzdCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCAoc3VtbWFyeSkgdmlldywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBpbnRlZ2VyIHByb2R1Y3QgaWRzIHRvIGRpc3BsYXkuICBObyBwYWdpbmF0aW9uIG9yIHNvcnRpbmcgaXMgcGVyZm9ybWVkIG9uIHRoZXNlIHZhbHVlcywgYW5kIGlmIHNwZWNpZmllZCB0aGUgb3RoZXIgZmlsdGVyaW5nIHBhcmFtZXRlcnMgdG8gdGhlIHN1bW1hcnkgdmlldyBhcmUgaWdub3JlZC4gJzsKJGxhbmdbJ3BhcmFtX3Jlc3VsdHBhZ2UnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBhIHBhZ2UgaWQgb3IgYWxpYXMgdG8gdXNlIHRvIGRpc3BsYXkgdGhlIHNlYXJjaCByZXN1bHRzJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZpZWxkJ10gPSAnQWxsZWVuIHZhbiB0b2VwYXNzaW5nIG9wIGRlIHpvZWthY3RpZXMsIGRlemUgcGFyYW1ldGVyIGthbiBlZW4ga29tbWFnZXNjaGVpZGVuIGxpanN0IGJldmF0dGVuIG1ldCBkYWFyaW4gdmVsZG5hbWVuIGRpZSBrdW5uZW4gd29yZGVuIHRvZWdldm9lZ2QgaW4gZGUgem9la2FjdGllLic7CiRsYW5nWydwYXJhbV9zZWFyY2hmb3JtdGVtcGxhdGUnXSA9ICdBbGxlZW4gdmFuIHRvZXBhc3Npbmcgb3AgZGUgem9la2FjdGllcywgZGV6ZSBwYXJhbWV0ZXIgc3RhYXQgbnUgb20gZWVuIG5pZXQgc3RhbmRhYXJkIHpvZWtzamFibG9vbiB0ZSBnZWJydWlrZW4nOwokbGFuZ1sncGFyYW1fc2hvd2FsbCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbiwgaWYgdGhpcyBwYXJhbWV0ZXIgaXMgc2V0IHRvIGEgbm9uIDAgaW50ZWdlciB2YWx1ZSBhbGwgY2F0ZWdvcmllcyAoZXZlbiB0aG9zZSB3aXRob3V0IHByb2R1Y3RzKSB3aWxsIGJlIGRpc3BsYXllZC4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmeSB0aGUgb3JkZXIgb2Ygc29ydGVkIGZpZWxkcyBpbiBzdW1tYXJ5IHZpZXcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4NCiAgPGxpPmRlc2MgLS0gRGVzY2VuZGluZyBvcmRlcjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIG9ubHkgaW4gdGhlIHN1bW1hcnkgb3Igc2VhcmNoIGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGRldGVybWluZXMgdGhlIHNvcnRpbmcgb2YgdGhlIG91dHB1dCBwcm9kdWN0cy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6IA0KPHVsPg0KICA8bGk+PHN0cm9uZz5wcm9kdWN0X25hbWU8L3N0cm9uZz48L2xpPg0KICA8bGk+aWQgLS0gVGhlIHByb2R1Y3QgaWQ8L2xpPg0KICA8bGk+d2VpZ2h0IC0tIFRoZSBwcm9kdWN0IHdlaWdodDwvbGk+DQogIDxsaT5wcmljZSAtLSBUaGUgcHJvZHVjdCBiYXNlIHByaWNlPC9saT4NCiAgPGxpPnN0YXR1cyAtLSBEcmFmdCBvciBwdWJsaXNoZWQ8L2xpPg0KICA8bGk+cmFuZG9tIC0tIERpc3BsYXkgaW4gcmFuZG9tIG9yZGVyIG9uIGVhY2ggcmVxdWVzdDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPmY6ZmllbGRuYW1lIC0tIEFsbG93cyBzb3J0aW5nIGJ5IHZhbHVlcyBvZiBjdXN0b20gZmllbGRzLjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0dHlwZSddID0gJ0FsbGVlbiB2YW4gdG9lcGFzc2luZyBvcCBkZSBzdGFuZGFhcmQgc2FtZW52YXR0aW5nc3dlZXJnYXZlLCBkZXplIHBhcmFtZXRlciBrYW4gd29yZGVuIGdlYnJ1aWt0IG9tIHdhYXJkZXMgb20gdGUgemV0dGVuIG5hYXIgZWVuIGFuZGVyIHR5cGUgdm9vciBzb3J0ZXJpbmcuICBHZWxkaWdlIHdhYXJkZW4gemlqbiBTVFJJTkcsIFNJR05FRCBlbiBVTlNJR05FRC4gQWxzIGRpdCBuaWV0IGlzIG9wZ2VnZXZlbiBkYW4gemFsIHN0YW5kYWFyZCBTVFJJTkcgd29yZGVuIGdla296ZW4uJzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnlwYWdlJ10gPSAnQWxsZWVuIHZhbiB0b2VwYXNzaW5nIG9wIGFjdGlvbj1oaWVyYXJjaHksIHN0YWF0IHRvZSBvcCBlZW4gcGFnaW5hIGlkIG9mIGFsaWFzIG9wIHRlIGdldmVuIGRpZSBtb2V0IHdvcmRlbiBnZWJydWlrdCB2b29yIGRlIGxpbmtzIGluIGRlIHNhbWVudmF0dGluZ3N3ZWVyZ2F2ZS4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnRGV6ZSBwYXJhbWV0ZXIgZ2VlZnQgYWFuIHdlbGtlIG9wc29tbWluZyBzamFibG9vbiBlciBnZWJydWlrdCBtb2V0IHdvcmRlbi4gQWxzIGVyIGdlZW4gZ2VzZWxlY3RlZXJkIHdvcmR0IGRhbiB3b3JkIGRlIHN0YW5kYWFyZCBzamFibG9vbiBnZWJydWlrdC4nOwokbGFuZ1sncGFyZW50J10gPSAnQm92ZW5saWdnZW5kZSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0RlIFByb2R1Y3RzIG1vZHVsZSBpcyBnZWluc3RhbGxlZXJkJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdEZSBQcm9kdWN0cyBtb2R1bGUgaXMgdmVyd2lqZGVyZCBpbmNsdXNpZWYgYWxsZSBiaWpiZWhvcmVuZGUgZGF0YSc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1Zvb3JrZXVyZW4nOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnQWxzIGRlIG1vZHVsZSB3b3JkdCB2ZXJ3aWpkZXJkIGRhbiB3b3JkIG9vayBhbGxlIGFhbndlemlnZSBkYXRhIGdld2lzdC4gQmVudCB1IHpla2VyIGRhdCB1IHdpbHQgdmVyZGVyZ2Fhbj8nOwokbGFuZ1sncHJpY2UnXSA9ICdQcmlqcyc7CiRsYW5nWydwcmljZV9hZGp1c3RtZW50J10gPSAnUHJpanN3aWp6aWdpbmcnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb2R1Y3QnXSA9ICdQcm9kdWN0ICc7CiRsYW5nWydwcm9kdWN0bmFtZSddID0gJ1Byb2R1Y3RuYWFtJzsKJGxhbmdbJ3Byb2R1Y3RzJ10gPSAnUHJvZHVjdGVuJzsKJGxhbmdbJ3Byb2R1Y3RfZGV0YWlsX3NldHRpbmdzJ10gPSAnUHJvZHVjdCBEZXRhaWwgSW5zdGVsbGluZ2VuJzsKJGxhbmdbJ3Byb2R1Y3RfZWRpdGluZ19zZXR0aW5ncyddID0gJ1Byb2R1Y3QgV2lqemlnZW4gaW5zdGVsbGluZ2VuJzsKJGxhbmdbJ3Byb2R1Y3Rfc3VtbWFyeV9zZXR0aW5ncyddID0gJ1Byb2R1Y3RzYW1lbnZhdHRpbmcgaW5zdGVsbGluZ2VuJzsKJGxhbmdbJ3Byb2R1Y3RfaGllcmFyY2h5J10gPSAnUHJvZHVjdGhpZXJhcmNoaWUnOwokbGFuZ1sncHJvZHVjdF9pbmZvJ10gPSAnUHJvZHVjdGluZm9ybWF0aWUnOwokbGFuZ1sncHJvZHVjdF9tYW5hZ2VyJ10gPSAnUHJvZHVjdG1hbmFnZXInOwokbGFuZ1sncHJvZ3Jlc3MnXSA9ICdWb29ydGdhbmcnOwokbGFuZ1sncHJvbXB0J10gPSAnUHJvbXB0ICc7CiRsYW5nWydwcm9tcHRfYWRkX2F0dHJpYnNldCddID0gJ1RvZXZvZWdlbi9XaWp6aWdlbiBBdHRyaWJ1dGVuIFNldCc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnXSA9ICdTdGEgaGV0IHVwbG9hZGVuIHZhbiBiZXN0YW5kZW4gdG9lIG1ldCBkZXplIGV4dGVuc2llcyAodm9vciBuaWV0LWFmYmVlbGRpbmdlbiknOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2V0eXBlcyddID0gJ1N0YSBoZXQgdXBsb2FkZW4gdmFuIGJlc3RhbmRlbiB0b2UgbWV0IGRlemUgZXh0ZW5zaWVzICh2b29yIGFmYmVlbGRpbmdlbiknOwokbGFuZ1sncHJvbXB0X2F0dHJpYnRlbXBsYXRlJ10gPSAnU2phYmxvb24gdm9vciBoZXQsIGluIGVlbiBkcm9wZG93biB0b25lbiB2YW4gcHJvZHVjdCBhdHRyaWJ1dGVuJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsJ10gPSAnTWFhayBhdXRvbWF0aXNjaCBtaW5pYXR1cmVuIHZhbiBkZSBhZmJlZWxkaW5nZW4nOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWxfc2l6ZSddID0gJ01heGltYWxlIGFmbWV0aW5nIChncm9vdHN0ZSB6aWpkZSkgdmFuIGhldCBtaW5pYXR1dXIuJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZyddID0gJ0F1dG9tYXRpc2NoIGdlbmVyZXJlbiB2YW4ga2xlaW5lIHByb2R1Y3RhZmJlZWxkaW5nZW4gdmFuIGRlIGFmYmVlbGRpbmdlbic7CiRsYW5nWydwcm9tcHRfYXV0b3ByZXZpZXdpbWdfc2l6ZSddID0gJ01heGltYWxlIGFmbWV0aW5nIChncm9vdHN0ZSB6aWpkZSkgdmFuIGRlIGtsZWluZSBwcm9kdWN0YWZiZWVsZGluZy4nOwokbGFuZ1sncHJvbXB0X2F1dG93YXRlcm1hcmsnXSA9ICdQbGFhdHMgYXV0b21hdGlzY2ggZWVuIHdhdGVybWVyayBvcCBkZSBhZmJlZWxkaW5nZW4nOwokbGFuZ1sncHJvbXB0X2FwcGxpY2FibGUnXSA9ICdTY2hha2VsIHN0YW5kYWFyZCBpbiB2b29yIGFsbGUgbmlldXdlIHByb2R1Y3Rlbic7CiRsYW5nWydwcm9tcHRfYmF0Y2hzaXplJ10gPSAnVm9sdW1lIGdyb290dGUnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlJ10gPSAnQ2FydCBNb2R1bGUgJzsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdDYXJ0IE1vZHVsZSBQYXJhbWV0ZXJzICc7CiRsYW5nWydwcm9tcHRfY3JlYXRlY2F0ZWdvcmllcyddID0gJ01hYWsgY2F0ZWdvcmkmZXVtbDtuJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVmaWVsZHMnXSA9ICdNYWFrIHByb2R1Y3QgdmVsZGVuPyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlaGllcmFyY2h5J10gPSAnTWFhayBwcm9kdWN0IGhpJmV1bWw7cmFyY2hpZSc7CiRsYW5nWydwcm9tcHRfY3N2ZmlsZSddID0gJ1VwbG9hZCBlZW4gQ1NWIGJlc3RhbmQnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5Y29kZSddID0gJ1ZhbHV0YWNvZGUnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAnVmFsdXRhdGVrZW4nOwokbGFuZ1sncHJvbXB0X2RlZmF1bHRfc3RhdHVzJ10gPSAnU3RhbmRhYXJkIGhlYmJlbiBhbGxlIG5pZXV3ZSBwcm9kdWN0ZW4gZGV6ZSBzdGF0dXMnOwokbGFuZ1sncHJvbXB0X2RlZmF1bHRfdGF4YWJsZSddID0gJ1N0YW5kYWFyZCB6aWpuIGFsbGUgcHJvZHVjdGVuIGJlbGFzdGJhYXInOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gJ0FscyBlZW4gcHJvZHVjdCB3b3JkdCB2ZXJ3aWpkZXJkLCBtb2V0ZW4gYWxsZSBiZXN0YW5kZW4gZGllIGVyIGFhbiBnZWtvcHBlbGQgemlqbiBvb2sgd29yZGVuIHZlcndpamRlcmQ/JzsKJGxhbmdbJ3Byb21wdF9kZWxpbWl0ZXInXSA9ICdWZWxkIHNjaGVpZGluZ3N0ZWtlbic7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ1N0YW5kYWFyZCBkZXRhaWxwYWdpbmEnOwokbGFuZ1sncHJvbXB0X2RldGFpbHNmb3InXSA9ICdEZXRhaWxzIHZvb3IgJXMnOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnSG9lIG9tIHRlIGdhYW4gbWV0IGRlemVsZmRlIHByb2R1Y3Rlbj8nOwokbGFuZ1sncHJvbXB0X2ZhbHNlJ10gPSAnTmlldCc7CiRsYW5nWydwcm9tcHRfaGFuZGxlaW1hZ2VzJ10gPSAnVmVyd2VyayBhZmJlZWxkaW5nZW4/JzsKJGxhbmdbJ3Byb21wdF9pbWFnZXBhdGgnXSA9ICdBZmJlZWxkaW5nIHBhZCc7CiRsYW5nWydwcm9tcHRfbGVuZ3RodW5pdHMnXSA9ICdMZW5ndGUgRWVuaGVkZW4nOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX2JlaGF2aW9yJ10gPSAnV2F0IG1vZXQgZXIgd29yZGVuIGdlZGFhbiBhbHMgZWVuIHByb2R1Y3QgbmlldCBnZXZvbmRlbiB3b3JkdD8nOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzQwNCddID0gJ0dlbmVyZWVyIGVlbiA0MDQgbWVsZGluZyc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfMzAxJ10gPSAnR2VuZXJlZXIgZWVuIDMwMSByZWRpcmVjdCc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfZXJyb3Jtc2cnXSA9ICdUb29uIGVlbiBmb3V0bWVsZGluZyc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfbXNnJ10gPSAnRm91dG1lbGRpbmcgYWxzIGVlbiBwcm9kdWN0IG5pZXQgZ2V2b25kZW4gaXMnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX3BhZ2UnXSA9ICdQYWdpbmEgb20gcGVybWFuZW50IG5hYXIgdGUgdmVyd2lqemVuPyc7CiRsYW5nWydwcm9tcHRfaGllcnBhZ2UnXSA9ICdTdGFuZGFhcmQgcGFnaW5hIHZvb3IgaGllJmF1bWw7cmNoaXNjaGUgd2VlcmdhdmUnOwokbGFuZ1sncHJvbXB0X3ByZXR0eWhpZXJ1cmxzJ10gPSAnR2VicnVpayBQcmV0dHkgVVJMJiMwMzk7cyB2b29yIGRlIGhpZSZhdW1sO3JjaGlzY2hlIHdlZXJnYXZlJzsKJGxhbmdbJ3Byb21wdF9wcm9kX2RldGFpbHBhZ2UnXSA9ICdTdGFuZGFhcmQgUGFnaW5hIHZvb3IgUHJvZHVjdCBEZXRhaWwgT3ZlcnppY2h0ZW4nOwokbGFuZ1sncHJvbXB0X3Byb2R1Y3RzX21hdGNoaW5nJ10gPSAnUHJvZHVjdGVuIGdlbGlqayBhYW4gJXMnOwokbGFuZ1sncHJvbXB0X3NrdV9yZXF1aXJlZCddID0gJ0VlbiBTS1UgaXMgdmVyZWlzdCB2b29yIGFsbGUgcHJvZHVjdGVuIGVuIGF0dHJpYnV0ZW4nOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlwYWdlbGltaXQnXSA9ICdTdGFuZGFhcmQgcGFnaW5hbGltaWV0IGluIHNhbWVudmF0dGluZ3Ntb2R1cyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRvcmRlciddID0gJ1N0YW5kYWFyZCBzb3J0ZWVydm9sZ29yZGUgaW4gc2FtZW52YXR0aW5nc21vZHVzJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ1N0YW5kYWFyZCB2ZWxkdm9sZ29yZGUgaW4gc2FtZW52YXR0aW5nc21vZHVzJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1NqYWJsb29uIEJyb24nOwokbGFuZ1sncHJvbXB0X3RydWUnXSA9ICdXZWwnOwokbGFuZ1sncHJvbXB0X3VybHByZWZpeCddID0gJ1RlIGdlYnJ1aWtlbiBwcmVmaXggdm9vciBhbGxlIFVSTHMgZGllIGRlemUgbW9kdWxlIGdlYnJ1aWt0JzsKJGxhbmdbJ3Byb21wdF91c2VfZGV0YWlscGFnZV9mb3Jfc2VhcmNoJ10gPSAnR2VicnVpayBkZXplIHBhZ2luYSBvb2sgdm9vciB6b2VrcmVzdWx0YXRlbiA8ZW0+KG92ZXJzY2hyaWpmdCBkZSB6b2VrcmVzdWx0YXRlbiBwYWdpbmEgcGFyYW1ldGVyIGluIGRlIFpvZWsgbW9kdWxlKTwvZW0+JzsKJGxhbmdbJ3Byb21wdF91c2VoaWVycGF0aHVybHMnXSA9ICdHZWJydWlrIFBhZCBIaWVyYXJjaGllIGluIGRlIFByb2R1Y3QgRGV0YWlsIFVybCYjMDM5O3MnOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnR2V3aWNodGVlbmhlaWQnOwokbGFuZ1sncHVibGljJ10gPSAnSXMgZGl0IGVlbiBwdWJsaWVrIHZlbGQ/JzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ0dlcHVibGljZWVyZCc7CiRsYW5nWydxdWFudGl0eV9vbl9oYW5kJ10gPSAnQmVzY2hpa2JhcmUgaG9ldmVlbGhlaWQnOwokbGFuZ1sncmFuZG9tJ10gPSAnV2lsbGVrZXVyaWcnOwokbGFuZ1sncmVvcmRlcl9oaWVyYXJjaHknXSA9ICdIZXJvcmRlciBoaWVyYXJjaGllJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnUmVzZXQgbmFhciBzdGFuZGFhcmRpbnN0ZWxsaW5nZW4nOwokbGFuZ1sncmV0dXJuJ10gPSAnS2VlciB0ZXJ1Zyc7CiRsYW5nWydyZXR1cm5fdG9fdG9wJ10gPSAnR2EgdGVydWcgbmFhciBkZSBib3ZlbmthbnQgdmFuIGRlIHBhZ2luYSc7CiRsYW5nWydyb290J10gPSAnU3RhcnQnOwokbGFuZ1snc2VhcmNoX2Rlc2NyaXB0aW9uJ10gPSAnWm9la2VpZ2Vuc2NoYXAgT21zY2hyaWp2aW5nJzsKJGxhbmdbJ3NlYXJjaF9leHByJ10gPSAnTW9ldCBkZSB6b2Vrb3BkcmFjaHQgdm9sZG9lbiBhYW4gJmVhY3V0ZTsmZWFjdXRlO24sIG9mIGFhbiBhbGxlIHRlc3RlbiBoaWVyb25kZXI/JzsKJGxhbmdbJ3NlYXJjaF9uYW1lJ10gPSAnWm9la2VpZ2Vuc2NoYXAgTmFhbSc7CiRsYW5nWydzZWFyY2hfcHJpY2UnXSA9ICdQcmlqcyBtYXJnZSc7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnVG9ldm9lZ2VuL3dpanppZ2VuIFpvZWtmb3JtdWxpZXIgc2phYmxvb24nOwokbGFuZ1snc2VhcmNodGVtcGxhdGVzJ10gPSAnWm9layBTamFibG9uZW4nOwokbGFuZ1snc2VsZWN0X2FsbCddID0gJ1NlbGVjdGVlciBha2tlcyc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnS2llcyAmZWFjdXRlOyZlYWN1dGU7bic7CiRsYW5nWydzZXRkcmFmdCddID0gJ01hcmtlZXIgYWxzIGNvbmNlcHQnOwokbGFuZ1snc2V0cHVibGlzaGVkJ10gPSAnTWFya2VlciBhbHMgZ2VwdWJsaWNlZXJkJzsKJGxhbmdbJ3NrdSddID0gJ1VpdGxldmVyZWVuaGVpZCAnOwokbGFuZ1snc29ydF9ieSddID0gJ1NvcnRlZXIgb3AnOwokbGFuZ1snc29ydF9vcmRlciddID0gJ1NvcnRlZXJ2b2xnb3JkZSc7CiRsYW5nWydzb3VyY2UnXSA9ICdCcm9uJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyAnOwokbGFuZ1snc3VibWl0J10gPSAnVmVyc3R1cmVuJzsKJGxhbmdbJ3N1YnNjcmlwdGlvbiddID0gJ0xpZG1hYXRzY2hhcCc7CiRsYW5nWydzdWJzY3JfZXhwaXJ5J10gPSAnVmVybG9wZW4nOwokbGFuZ1snc3Vic2NyX2V4cGlyeTInXSA9ICdWZXJsb29wdCc7CiRsYW5nWydzdWJzY3JfbW9udGhseSddID0gJ01hYW5kZWxpamtzJzsKJGxhbmdbJ3N1YnNjcl9kZWxwZXJpb2QnXSA9ICdVaXRsZXZlcmZyZXF1ZW50aWUnOwokbGFuZ1snc3Vic2NyX2RlbHBlcmlvZDInXSA9ICdVaXRnZWxldmVyZCc7CiRsYW5nWydzdWJzY3JfcGF5cGVyaW9kJ10gPSAnQmV0YWxpbmdzZnJlcXVlbnRpZSc7CiRsYW5nWydzdWJzY3JfcGF5cGVyaW9kMiddID0gJ0JldGFhbGQnOwokbGFuZ1snc3Vic2NyX3F1YXJ0ZXJseSddID0gJ1BlciBrd2FydGFhbCc7CiRsYW5nWydzdWJzY3Jfc2VtaWFudWFsbHknXSA9ICdPbSBoZXQgamFhcic7CiRsYW5nWydzdWJzY3JfeWVhcmx5J10gPSAnSmFhcmxpamtzJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdTYW1lbnZhdHRpbmdzc2FibG9uZW4nOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdUb2V2b2VnZW4vd2lqemlnZW4gU2FtZW52YXR0aW5nIFNqYWJsb29uJzsKJGxhbmdbJ3RheGFibGUnXSA9ICdCZWxhc3RiYWFyJzsKJGxhbmdbJ3Rlc3QnXSA9ICdUZXN0ZW4nOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZWtzdHJ1aW10ZSc7CiRsYW5nWyd0ZXh0Ym94J10gPSAnVGVrc3QgSW52b2VyJzsKJGxhbmdbJ3RpdGxlX2J5aGllcmFyY2h5X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYWFyZCBuaWV1dyBIaWVyYWNoaWUgUmFwcG9ydCBTamFibG9vbic7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhYXJkIG5pZXV3IENhdGVnb3JpZWxpanN0IFNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFhcmQgbmlldXcgRGV0YWlsIFNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFhcmQgbmlldXcgWm9layBTamFibG9vbic7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYWFyZCBuaWV1d2UgU2FtZW52YXR0aW5nIFNqYWJsb29uJzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXBlICc7CiRsYW5nWyd1cCddID0gJ09taG9vZyc7CiRsYW5nWyd1cGRhdGUnXSA9ICdCaWp3ZXJrZW4gJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1NlbGVjdGVlciBlZW4gYmVzdGFuZCBvbSB0ZSB1cGxvYWRlbic7CiRsYW5nWyd1cmxfYWxpYXMnXSA9ICdBbGlhcyBpbiBwYWdpbmEgdXJsJzsKJGxhbmdbJ3ZhbGlkJ10gPSAnQ29ycmVjdCc7CiRsYW5nWyd2YWx1ZSddID0gJ1dhYXJkZSc7CiRsYW5nWyd2YWx1ZXMnXSA9ICdXYWFyZGVuJzsKJGxhbmdbJ3ZpZXcnXSA9ICdCZWtpamsnOwokbGFuZ1sndmlld2FibGVfZmllbGRzJ10gPSAnU2VsZWN0ZWVyIHZlbGRlbiBvbSBpbiBoZXQgdGFiZWwgdGUgdG9uZW4nOwokbGFuZ1snd2F0ZXJtYXJrX2xvY2F0aW9uJ10gPSAnUGxhYXRzIFdhdGVybWVyayc7CiRsYW5nWyd3ZWlnaHQnXSA9ICdHZXdpY2h0JzsKJGxhbmdbJ3dpdGhfc2VsZWN0ZWQnXSA9ICdNZXQgZ2VzZWxlY3RlZXJkZW4nOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My44MjY5OTAzMDQuMTMxNDY5NTg0MS4xMzE0Njk2MDU0LjEzMTQ3MTUxMzguMyc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEzMTQ2OTU4NDEuMS4xLnV0bWNzcj1kZXYuY21zbWFkZXNpbXBsZS5vcmd8dXRtY2NuPShyZWZlcnJhbCl8dXRtY21kPXJlZmVycmFsfHV0bWNjdD0vJzsKJGxhbmdbJ3FjYSddID0gJ1AwLTg1NjYxNzQ2Ny0xMzEwMzcwMzUyNTg4JzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pl_PL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfbGVuZ3RoJ10gPSAnTCc7CiRsYW5nWydhYmJyX3dpZHRoJ10gPSAnVyc7CiRsYW5nWydhYmJyX2hlaWdodCddID0gJ0gnOwokbGFuZ1snYWRkJ10gPSAnRG9kYWonOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdEb2RhaiBrYXRlZ29yacSZJzsKJGxhbmdbJ2FkZGZpZWxkZGVmJ10gPSAnRG9kYWogcG9sZSc7CiRsYW5nWydhZGp1c3RhYmxlJ10gPSAnWm1pZW5pYWxueSc7CiRsYW5nWydhZGRwcm9kdWN0J10gPSAnRG9kYWogcHJvZHVrdCc7CiRsYW5nWydhZGRfYXR0cmliX3NldCddID0gJ0RvZGFqIGF0cnlidXQnOwokbGFuZ1snYWRkX2NhdGVnb3J5X2ZpZWxkJ10gPSAnUHJ6eXBpc2HEhyBwb2xlIGRvIGthdGVnb3JpaTogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnRG9kYWogZWxlbWVudCBoaWVyYXJjaGlpJzsKJGxhbmdbJ2FkZF9vcHRpb24nXSA9ICdEb2RhaiBvcGNqxJkgYXRyeWJ1dHUnOwokbGFuZ1snYWRtaW5fb25seSddID0gJ0N6eSB0eWxrbyBhZG1pbmlzdHJhdG9yenkgbW9nxIUgd2lkemllxIcgdGVuIGF0cnlidXQ/JzsKJGxhbmdbJ2FkdmFuY2VkJ10gPSAnWmFhd2Fuc293YW5lJzsKJGxhbmdbJ2FsaWduX3VsJ10gPSAnRyZvYWN1dGU7cm55IGxld3knOwokbGFuZ1snYWxpZ25fdWMnXSA9ICdHJm9hY3V0ZTtybnkgxZtyb2Rlayc7CiRsYW5nWydhbGlnbl91ciddID0gJ0cmb2FjdXRlO3JueSBwcmF3eSc7CiRsYW5nWydhbGlnbl9tbCddID0gJ8Wacm9kZWsgbGV3eSc7CiRsYW5nWydhbGlnbl9tYyddID0gJ8Wacm9kZWsnOwokbGFuZ1snYWxpZ25fbXInXSA9ICfFmnJvZGVrIHByYXd5JzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnRCZvYWN1dGU7xYIgbGV3eSc7CiRsYW5nWydhbGlnbl9sYyddID0gJ0Qmb2FjdXRlO8WCIMWbcm9kZWsnOwokbGFuZ1snYWxpZ25fbHInXSA9ICdEJm9hY3V0ZTvFgiBwcmF3eSc7CiRsYW5nWydhbGwnXSA9ICdXc3p5c3RraWUnOwokbGFuZ1snYWxsY2F0ZWdvcmllcyddID0gJ1dzenlzdGtpZSBrYXRlZ29yaWUnOwokbGFuZ1snYW55J10gPSAnSmFraWtvbHdpZWsnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0N6eSBuYSBwZXdubyB1c3VuxIXEhz8nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVwcm9kdWN0J10gPSAnQ3p5IG5hcGV3bm8gY2hjZXN6IHVzdW7EhcSHIHRlbiBwcm9kdWt0IG9yYXogd3N6eXN0a2llIGRvZGF0a293ZSBpbmZvcm1hY2plIG5hIGplZ28gdGVtYXQ/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ1Jvc27EhWNvJzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnTmF6d2EgYXRyeWJ1dHUnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdHljem5pZSc7CiRsYW5nWydidG5fc2V0ZWNvbWhhbmRsZXJzJ10gPSAnU2V0IEVjb21tZXJjZSBFdmVudCBIYW5kbGVycyc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlcyddID0gJ1N6YWJsb255IHJhcG9ydCZvYWN1dGU7dyBoaWVyYXJjaGlpJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0RvZGFqL0VkeXR1aiBzemFibG9uIHJhcG9ydHUgaGllcmFyY2hpaSc7CiRsYW5nWydjYW5jZWwnXSA9ICdBbnVsdWonOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpZSc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0thdGVnb3JpYSc7CiRsYW5nWydjYXRlZ29yeWV4aXN0cyddID0gJ0thdGVnb3JpYSBvIHRlaiBuYXp3aWUganXFvCBpc3RuaWVqZSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdTemFibG9ueSBsaXN0eSBrYXRlZ29yaWknOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0RvZGFqL0VkeXR1aiBzemFibG9uIGxpc3R5IGthdGVnb3JpaSc7CiRsYW5nWydjZW50aW1ldGVycyddID0gJ0NlbnR5bWV0cnknOwokbGFuZ1snY2hlY2tib3gnXSA9ICdDaGVja2JveCc7CiRsYW5nWydjb25maXJtX2NvcHlhdHRyaWJ1dGVzJ10gPSAnQW55IGV4aXN0aW5nIGF0dHJpYnV0ZSBzZXRzIGZvciB0aGlzIHByb2R1Y3Qgd2lsbCBiZSByZW1vdmVkLiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY29udGludWU/JzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX2hpZXJhcmNoeV9ub2RlJ10gPSAnQ3p5IG5hcGV3bm8gY2hjZXN6IHVzdW7EhcSHIHRlbiBlbGVtZW50IGhpZXJhcmNoaWk/IFdzenlzdGtpZSBwcm9kdWt0eSB1xbx5d2FqxIVjZSB0ZWdvIGVsZW1lbnR1IG5pZSBixJlkxIUgcHJ6eXBpc2FuZSBkbyDFvGFkbmVqIGhpZXJhcmNoaWknOwokbGFuZ1snY29uZmlybV9pbXBvcnQnXSA9ICdBcmUgeW91IHN1cmUgeW91IHJlYWxseSB3YW50IHRvIGRvIHRoaXM/XG5cbkltcHJvcGVyIHNldHRpbmdzLCBvciBhbiBpbnZhbGlkIGNvbmZpZyBmaWxlIGNvdWxkIGNvbXBsZXRlbHkgY29ycnVwdCBhIGN1cnJlbnRseSB2YWxpZCBhbmQgd29ya2luZyBzeXN0ZW0uJzsKJGxhbmdbJ2NvcHknXSA9ICdTa29waXVqJzsKJGxhbmdbJ2NvcHlfYXR0cmliX3NldHMnXSA9ICdDb3B5IEF0dHJpYnV0ZSBTZXRzJzsKJGxhbmdbJ2NvcHlfY2F0ZWdvcnknXSA9ICdTa29waXVqIGthdGVnb3JpxJknOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdEYXRhIHV0d29yemVuaWEnOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ0FrdHVhbG5hIHdhcnRvxZvEhyc7CiRsYW5nWydkYXRhJ10gPSAnRGFuZSc7CiRsYW5nWydkZWZhdWx0J10gPSAnRG9tecWbbG55JzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdTemFibG9ueSBkb215xZtsbmUnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPlV3YWdhOjwvc3Ryb25nPiBaYXdhcnRvxZvEhyB0eWNoIHAmb2FjdXRlO2wgdGVrc3Rvd3ljaCBqZXN0IHXFvHl3YW5hIGRvIG9rcmXFm2xlbmlhIGRvbXnFm2xuZWogemF3YXJ0b8WbY2kgc3phYmxvbiZvYWN1dGU7dyB3IG1vbWVuY2llIHd5YnJhbmlhIG9wY2ppICZhbXA7cXVvdDtEb2RhaiBzemFibG9uJmFtcDtxdW90OyBuYSBvZHBvd2llZG5pZWogemFrxYJhZGNlLiBFZHljamEgdHljaCBwJm9hY3V0ZTtsIG5pZSB3cMWCeXdhIGJlenBvxZtyZWRuaW8gbmEgaXN0bmllasSFY2Ugc3phYmxvbnkuJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1NrYXN1aic7CiRsYW5nWydkZWxldGVfYXR0cmlic2V0J10gPSAnU2thc3VqIGF0cnlidXQnOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAnU2thc3VqIGVsZW1lbnQgaGllcmFyY2hpaSc7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnTWFsZWrEhWNvJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnT3Bpcyc7CiRsYW5nWydkZXN0aW5hdGlvbiddID0gJ0Rlc3RpbmF0aW9uJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdTemN6ZWcmb2FjdXRlO8WCeSc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdTemFibG9ueSBzemN6ZWcmb2FjdXRlO8WCb3dlJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdEb2Rhai9lZHl0dWogc3phYmxvbiBzemN6ZWcmb2FjdXRlO8WCb3d5JzsKJGxhbmdbJ2RpbWVuc2lvbnMnXSA9ICdXeW1pYXJ5JzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnV3nFgsSFY3pvbnknOwokbGFuZ1snZG93biddID0gJ1ByemVzdcWEIHcgZCZvYWN1dGU7xYInOwokbGFuZ1snZHJhZnQnXSA9ICdLb3BpYSByb2JvY3phJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnTGlzdGEgcm96d2lqYWxuYSc7CiRsYW5nWydkcm9wZG93bl9vcHRpb25zJ10gPSAnT3BjamVsaXN0eSByb3p3aWphbG5laiA8ZW0+KGF0byBwb2xlIGplc3QgdcW8eXdhbmUgdHlsa28gcHJ6eSBsaXN0YWNoIHJvendpamFsbnljaCk8L2VtPjxici8+PGJyLz48ZW0+KGplZG5hIGxpbmlhIHRvIGplZG5hIG9wY2phKTwvZW0+JzsKJGxhbmdbJ2VkaXQnXSA9ICdFZHl0dWonOwokbGFuZ1snZWRpdF9hdHRyaWJzZXQnXSA9ICdFZHl0dWogYXRyeWJ1dCc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICdFZHl0dWogemVzdGF3IGF0cnlidXQmb2FjdXRlO3cnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzX2ZvciddID0gJ0VkeXR1aiBhdHJ5YnV0eSBkbGEnOwokbGFuZ1snZWRpdF9hdHRyaWJ1dGVzJ10gPSAnRWR5dHVqIGF0cnlidXR5JzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnknXSA9ICdFZHl0dWoga2F0ZWdvcmnEmSc7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ0VkeXR1aiBwb2xhIGthdGVnb3JpaSc7CiRsYW5nWydlZGl0X2hpZXJhcmNoeV9pdGVtJ10gPSAnRWR5dHVqIGVsZW1lbnQgaGllcmFyY2hpaSc7CiRsYW5nWydlcnJvcl9hdHRyaWJzZXRfZXhpc3RzJ10gPSAnQXRyeWJ1dCB6IHRha8SFIG5henfEhSBqdcW8IGlzdG5pZWplJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZV9za3UnXSA9ICdabmFsZXppb25vIHpkdXBsaWtvd2FuxIUgd2FydG/Fm8SHIFNLVSc7CiRsYW5nWydlcnJvcl9maWVsZHZhbHVlX2VtcHR5J10gPSAnV2FydG/Fm8SHIHBvbGEgbmllIG1vxbxlIGJ5xIcgcHVzdGEnOwokbGFuZ1snZXJyb3JfZmlsZWZvcm1hdCddID0gJ1Byb2JsZW0geiBmb3JtYXRlbSBwbGlrdSc7CiRsYW5nWydlcnJvcl9maWxlbm90Zm91bmQnXSA9ICdOaWUgb2RuYWxlemlvbm8gcGxpa3UnOwokbGFuZ1snZXJyb3JfZmlsZW9wZW4nXSA9ICdQcm9ibGVtIHBvZGN6YXMgb3R3aWVyYW5pYSBwbGlrdSAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnTmllcHJhd2lkxYJvd3kgZWxlbWVudCBuYWRyesSZZG55IChnYcWCxIXFuiBoaWVyYXJjaGlpIG5pZSBtb8W8ZSBiecSHIHN3b2ltIHfFgmFzbnltIGVsZW1lbnRlbSBuYWRyesSZZG55bSknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9uYW1lJ10gPSAnV2FydG/Fm8SHIHBvbGEgamVzdCBuaWVwb3ByYXduYSAobW/FvGUgemF3aWVyYcSHIHR5bGtvIHpuYWtpIGFsZmFudW1lcnljem5lKSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX3ZhbHVlJ10gPSAnSW52YWxpZCB2YWx1ZSBzcGVjaWZpZWQnOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnV1ltYWdhbnkgcGFyYW1ldHIgamVzdCBuaWVwcmF3aWTFgm93eSBsdWIgcHVzdHknOwokbGFuZ1snZXJyb3JfbmFtZXVzZWQnXSA9ICdFbGVtZW50IHogdGFrxIUgbmF6d8SFIGp1xbwgaXN0bmllamUnOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdQcm9zesSZIHd5YnJhxId0eXAgcG9sYSc7CiRsYW5nWydlcnJvcl9ub25hbWUnXSA9ICdNdXNpc3ogd3Bpc2HEhyBuYXp3xJknOwokbGFuZ1snZXJyb3Jfb25lcXVhbnRpdHlmaWVsZCddID0gJ09ubHkgb25lIHF1YW50aXR5IGZpZWxkIGlzIGFsbG93ZWQnOwokbGFuZ1snZXJyb3Jfb25lc3Vic2NyaXB0aW9uZmllbGQnXSA9ICdPbmx5IG9uZSBzdWJzY3JpcHRpb24gZmllbGQgaXMgYWxsb3dlZCc7CiRsYW5nWydlcnJvcl9wZXJtaXNzaW9uZGVuaWVkJ10gPSAnRG9zdMSZcCB6YWJyb25pb255JzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfYWxpYXN1c2VkJ10gPSAnT2tyZcWbbG9ueSBhbGlhcyBqZXN0IGp1xbwgdcW8eXR5JzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdQcm9kdWt0IHogdGFrxIUgbmF6d8SFIGp1xbwgaXN0bmllamUnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9ub3Rmb3VuZCddID0gJ1RoZSByZXF1ZXN0ZWQgcHJvZHVjdCBjb3VsZCBub3QgYmUgZm91bmQnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9za3V1c2VkJ10gPSAnVGEgd2FydG/Fm8SHIFNLVSBqZXN0IGp1xbwgcHJ6eXBpc2FuYSBpbm5lbXUgcHJvZHVrdG93aSc7CiRsYW5nWydlcnJvcl9wcmljZV9hZGp1c3RtZW50J10gPSAnTmllcHJhd2lkxYJvd2Egem1pYW5hIHdhcnRvxZtjaSBjZW55IGRsYSBlbGVtZW50dSAlcyc7CiRsYW5nWydlcnJvcl9za3VfcmVxdWlyZWQnXSA9ICdXcGlzeiB1bmlrYWxuZSBTS1UnOwokbGFuZ1snZXJyb3JfdXBsb2FkX2ZhaWxlZCddID0gJ1phxYJhZG93YW5pZSBwbGlrdSBuaWUgcG93aW9kxYJvIHNpxJk6ICVzJzsKJGxhbmdbJ2V4Y2x1ZGVfY2F0ZWdvcmllcyddID0gJ0V4Y2x1ZGUgcHJvZHVjdHMgaW4gdGhlIHNlbGVjdGVkIGNhdGVnb3JpZXMgZnJvbSB0aGUgcmVzdWx0cyc7CiRsYW5nWydleHBpcmVfc2l4X21vbnRocyddID0gJ1BvIHN6ZcWbY2l1IG1pZXNpxIVjYWNoJzsKJGxhbmdbJ2V4cGlyZV9vbmVfeWVhciddID0gJ1BvIHJva3UnOwokbGFuZ1snZXhwaXJlX3R3b195ZWFyJ10gPSAnUG8gZHcmb2FjdXRlO2NoIGxhdGFjaCc7CiRsYW5nWydleHRyYTEnXSA9ICdQb2xlIEV4dHJhIDEnOwokbGFuZ1snZXh0cmEyJ10gPSAnUG9sZSBFeHRyYSAyJzsKJGxhbmdbJ2ZpZWxkJ10gPSAnUG9sZSc7CiRsYW5nWydmaWVsZHMnXSA9ICdQb2xhJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRGVmaW5pY2phIHBvbGEnOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnRGVmaW5pY2plIHAmb2FjdXRlO2wnOwokbGFuZ1snZmlsZSddID0gJ1BsaWsnOwokbGFuZ1snZmlsdGVycyddID0gJ0ZpbHRyeSc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICc8PCc7CiRsYW5nWydnZW5lcmFsX3NldHRpbmdzJ10gPSAnVXN0YXdpZW5pYSc7CiRsYW5nWydnbyddID0gJ0dvJzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBkb2VzIHRoaXMgZG8/PC9oMz4NCjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgd2F5IHRvIGNvbGxlY3QsIG9yZ2FuaXplLCBhbmQgZGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCBwcm9kdWN0cyBhbmQgdGhlaXIgY2F0ZWdvcmllcy4gIFRoaXMgbW9kdWxlIGNhbiBzdGFuZCBvbiBpdHMgb3duLCBvciBiZSBwYXJ0IG9mIGFuIGUtY29tbWVyY2Ugc29sdXRpb24gaWYgeW91IHdpc2guICBUaGUgbW9kdWxlIHN1cHBvcnRzIGEgcHJvZHVjdCBleGlzdGluZyBpbiBtb3JlIHRoYW4gb25lIGNhdGVnb3J5LCBzdXBwb3J0cyBwcm9kdWN0IHdlaWdodCwgcHJpY2UsIGFuZCBhdHRyaWJ1dGUgc2V0cy4gIEVhY2ggaXRlbSBpbiBhbiBhdHRyaWJ1dGUgc2V0IGNhbiBoYXZlIGEgcHJpY2UgYWRqdXN0bWVudC4gIEFsc28gYSBnbG9iYWwgZmxhZyBpbmRpY2F0ZXMgd2V0aGVyIHRoZSBwcm9kdWN0IGlzICYjMDM5O3RheGFibGUmIzAzOTsgb3Igbm90LjwvcD4NCiAgPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgbXVsdGlwbGUgY3VzdG9tIGZpZWxkIGRlZmluaXRpb25zLCBhbmQgZm9yIHRoZSBhYmlsaXR5IHRvIGRpc2NyaW1pbmF0ZSBwcml2YXRlIGZyb20gcHVibGljIGRhdGEuPC9wPg0KPGgzPkZlYXR1cmVzOjwvaDM+DQo8dWw+DQogIDxsaT5OdW1lcm91cyBWaWV3czwvbGk+DQogICAgPHVsPg0KICAgICAgPGxpPlN1bW1hcnkgdmlldzwvbGk+DQogICAgICA8bGk+Q2F0ZWdvcnkgTGlzdCBWaWV3PC9saT4NCiAgICAgIDxsaT5EZXRhaWwgdmlldzwvbGk+IA0KICAgICAgPGxpPkhpZXJhcmNoeSBEcmlsbC1kb3duIFZpZXc8L2xpPg0KICAgIDwvdWw+DQogIDxsaT5FbnRpcmVseSBEYXRhYmFzZSBUZW1wbGF0ZSBEcml2ZW48L2xpPg0KICA8cD5OdW1lcm91cyB0ZW1wbGF0ZXMgb2YgZWFjaCB0eXBlIGNhbiBiZSBkZWZpbmVkLCBkZWZhdWx0cyBzcGVjaWZpZWQgZm9yIGVhY2ggdHlwZSwgYW5kIHRoZSB0ZW1wbGF0ZSB1c2VkIGZvciBlYWNoIHBhcnRpY3VsYXIgdmlldyBjYW4gYmUgc3BlY2lmaWVkIGFzIGEgcGFyYW1ldGVyPC9wPg0KICA8bGk+U29ydGluZyBhbmQgcGFnaW5hdGlvbiBpbiB0aGUgc3VtbWFyeSB2aWV3PC9saT4NCiAgPGxpPlByb2R1Y3RzIGNhbiBleGlzdCBpbiBtdWx0aXBsZSBjYXRlZ29yaWVzPC9saT4NCiAgPGxpPk51bWVyb3VzIGN1c3RvbSBmaWVsZHMgY2FuIGJlIGRlZmluZWQsIGluY2x1ZGluZyBpbWFnZXM8L2xpPg0KICA8bGk+QXV0b21hdGljIHRodW1ibmFpbCBjcmVhdGlvbjwvbGk+DQogIDxsaT5BZG1pbiBkZWZpbmVkIGZpZWxkczwvbGk+DQogIDxsaT5Qcm9kdWN0IGF0dHJpYnV0ZXMgKGluY2x1ZGluZyBwcmljZSBhZGp1c3RtZW50KTwvbGk+DQogIDxsaT5XZWlnaHQgYW5kIHRheGFibGUgZmllbGRzIChmb3IgdXNlIGluIGUtY29tbWVyY2Ugc29sdXRpb25zKTwvbGk+DQogIDxsaT5Qcm9kdWN0cyBjYW4gaGF2ZSBhIHN0YXR1cyAocHVibGlzaGVkIG9yIGRyYWZ0KSBpbiBvcmRlciB0byBoaWRlIHByb2R1Y3RzIGZyb20gcHVibGljIGRpc3BsYXkgYXQgYW55IHRpbWU8L2xpPg0KICA8bGk+UHJldHR5IFVSTCBTdXBwb3J0PC9saT4NCiAgPGxpPjxzdHJvbmc+TW9yZS4uLjwvc3Ryb25nPjwvbGk+DQo8L3VsPg0KDQo8aDM+SG93IERvIEkgVXNlIEl0OjwvaDM+DQo8dWw+DQo8bGk+U2V0IHByZWZlcmVuY2VzPC9saT4NCjxwPlVzdWFsbHkgdGhpcyBpcyBqdXN0IGEgZm9ybWFsaXR5LiAgWW91IHNob3VsZCBzcGVjaWZ5IHlvdXIgZGVmYXVsdCB3ZWlnaHQgdW5pdHMsIGFuZCB5b3VyIGRlZmF1bHQgY3VycmVuY3kgc3ltYm9sIGZvciB5b3VyIGxvY2FsIGVudmlyb25tZW50LjwvcD4NCjxsaT5TZXR1cCB1c2VycyBhbmQgcGVybWlzc2lvbnM8L2xpPg0KPHA+VGhpcyBtb2R1bGUgdXNlcyB0aGUgJiMwMzk7TW9kaWZ5IFRlbXBsYXRlcyYjMDM5OyBwZXJtaXNzaW9uIHRvIGFsbG93IHVzZXJzIHRvIGJlIGFibGUgdG8gbW9kaWZ5IHRoZSB2YXJpb3VzIHRlbXBsYXRlcyB0aGF0IGNhbiBiZSB1c2VkIGJ5IHRoaXMgbW9kdWxlLiAgQXMgd2VsbCwgdGhlICYjMDM5O01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJiMwMzk7IHBlcm1pc3Npb24gaXMgbmVlZGVkIHRvIGJlIGFibGUgdG8gYWRqdXN0IHRoZSBtb2R1bGVzIHByZWZlcmVuY2VzLiAgSW4gb3JkZXIgdG8gaGF2ZSB0aGUgYWJpbGl0eSB0byBtb2RpZnkgZmllbGQgZGVmaW5pdGlvbnMsIGNhdGVnb3JpZXMsIG9yIHByb2R1Y3RzLCB5b3VyIHVzZXJzIHdpbGwgbmVlZCB0aGUgJiMwMzk7TW9kaWZ5IFByb2R1Y3RzJiMwMzk7IHBlcm1pc3Npb24uPC9wPg0KPGxpPihvcHRpb25hbCkgRGVmaW5lIG9uZSBvciBtb3JlIGNhdGVnb3JpZXM8L2xpPg0KPHA+VGhpcyBpcyBhbiBvcHRpb25hbCBzdGVwLCBidXQgeW91IHdpbGwgcHJvYmFibHkgd2FudCB0byBkbyB0aGlzIGVhcmx5IHRvIHByZXZlbnQgaGF2aW5nIHRvIGdvIGJhY2sgdG8gbW9kaWZ5IGVhY2ggYW5kIGV2ZXJ5IHByb2R1Y3QgbGF0ZXIuICBBZGRpbmcgYSBjYXRlZ29yeSBpcyBhcyBzaW1wbGUgYXMgY2xpY2tpbmcgb24gdGhlICYjMDM5O0NhdGVnb3JpZXMmIzAzOTsgdGFiIGluIHRoZSBQcm9kdWN0IE1hbmFnZXJzIGFkbWluIHNlY3Rpb24sIGFuZCBjbGlja2luZyAmIzAzOTtBZGQgQSBDYXRlZ29yeSYjMDM5Oy4gIEZyb20gdGhlcmUgeW91IHdpbGwgYmUgcHJvbXB0ZWQgZm9yIGEgY2F0ZWdvcnkgbmFtZS48L3A+DQo8bGk+KG9wdGlvbmFsKSBEZWZpbmUgb25lIG9yIG1vcmUgY3VzdG9tIGZpZWxkczwvbGk+DQo8cD5UaGlzIGlzIGFuIG9wdGlvbmFsIHN0ZXAuICBDdXN0b20gZmllbGRzIGFyZSBub3QgbmVlZGVkIGlmIHRoaXMgbW9kdWxlIHN1aXRzIHlvdSBleGFjdGx5IGFzIGl0IGlzLiAgSG93ZXZlciBpZiB5b3Ugd291bGQgbGlrZSB0byBzdG9yZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZvciBlYWNoIG9mIHlvdXIgcHJvZHVjdHMgeW91IGNhbiBjcmVhdGUgY3VzdG9tIGZpZWxkcy4gIENyZWF0aW5nIGN1c3RvbSBmaWVsZHMgaXMgc2ltaWxhciB0byBjcmVhdGluZyBjYXRlZ29yaWVzLCBleGNlcHQgdGhhdCBtb3JlIGRhdGEgaXMgcmVxdWVzdGVkLjwvcD4NCjxwPkN1cnJlbnRseSBhIG51bWJlciBvZiB0eXBlcyBvZiBjdXN0b20gZmllbGRzIGFyZSBhdmFpbGFibGUsIGluY2x1ZGluZzogJiMwMzk7dGV4dGJveCYjMDM5OywmIzAzOTtjaGVja2JveCYjMDM5OyxhbmQgJiMwMzk7dGV4dGFyZWEmIzAzOTssICYjMDM5O2Ryb3Bkb3duJiMwMzk7LCBhbmQgJiMwMzk7ZmlsZSYjMDM5Oy4gIFNlbGVjdCBvbmUgb2YgdGhlc2UsIGdpdmUgeW91ciBuZXcgZmllbGQgYSBuYW1lLCBhbmQgaW5kaWNhdGUgd2V0aGVyIHRoYXQgZmllbGQgc2hvdWxkIGJlIHZpc2libGUgdG8gdGhlIHB1YmxpYyBpbiB0aGUgdmFyaW91cyB2aWV3cy4gIFRoZW4gaGl0IHN1Ym1pdDwvcD4NCjxsaT5DcmVhdGUgb25lIG9yIG1vcmUgcHJvZHVjdHM8L2xpPg0KPHA+WW91IHNob3VsZCBjcmVhdGUgb25lIG9yIG1vcmUgcHJvZHVjdHMgdG8gZGlzcGxheSBpbiB5b3VyIHdlYnNpdGUgY29udGVudC4gIEdpdmUgZWFjaCBwcm9kdWN0IGEgbmFtZSwgYSBwcmljZSAob3B0aW9uYWwpIGEgd2VpZ2h0IChvcHRpb25hbCksIGEgc3RhdHVzIChkcmFmdCBvciBwdWJsaXNoZWQpLCBhbmQgc29tZSBpbmZvcm1hdGlvbi4gIEFkZGl0aW9uYWxseSwgeW91IGNhbiBhbHNvIHNwZWNpZnkgaWYgdGhlIHByb2R1Y3QgaXMgdGF4YWJsZS48L3A+DQo8cD5JZiBjYXRlZ29yaWVzIGFyZSBkZWZpbmVkLCB0aGVuIGEgY2hlY2tib3ggd2lsbCBhcHBlYXIgZm9yIGVhY2ggZGVmaW5lZCBjYXRlZ29yeS4gIFlvdSBjYW4gc2ltcGx5IGNsaWNrIHRoZSBjaGVja2JveCBmaWVsZHMgZm9yIGVhY2ggY2F0ZWdvcnkgdGhhdCB0aGlzIHByb2R1Y3Qgc2hvdWxkIGJlbG9uZyB0by48L3A+DQo8cD5JZiBjdXN0b20gZmllbGRzIGFyZSBkZWZpbmVkLCB0aGVuIGlucHV0IGZpZWxkcyBhcHByb3ByaWF0ZSB0byB0aGUgdHlwZSBvZiBjdXN0b20gZmllbGQgd2lsbCBhcHBlYXIgYW5kIGFsbG93IHlvdSB0byBzcGVjaWZ5IGRhdGEgZm9yIGVhY2ggb2YgdGhlbS4gIFRoaXMgZGF0YSBpcyBvcHRpb25hbC48L3A+DQo8bGk+QWRkIHRoZSBhcHByb3ByaWF0ZSB0YWdzIGludG8geW91ciBwYWdlIHRlbXBsYXRlcyBvciBwYWdlIGNvbnRlbnQ8L2xpPg0KPHA+VGhpcyBjYW4gYmUgYXMgc2ltcGxlIGFzIGFkZGluZyB0aGUgPHN0cm9uZz57UHJvZHVjdHN9PC9zdHJvbmc+IHRhZyBpbnRvIHRoZSBjb250ZW50IGFyZWEgb2Ygb25lIG9mIHlvdXIgcGFnZXMsIG9yIGludG8geW91ciBwYWdlIHRlbXBsYXRlLjwvcD4NCjxwPklmIHlvdSB3aXNoIHRvIGFsdGVyIHRoZSBiZWhhdmlvdXIgb2YgdGhpcyBhcHBsaWNhdGlvbiBmcm9tIGl0cyBkZWZhdWx0LCB5b3UgY2FuIGRvIHRoYXQgYnkgYWRkaW5nIG9uZSBvciBtb3JlIHBhcmFtZXRlcnMgdG8gdGhlIDxzdHJvbmc+e1Byb2R1Y3RzfTwvc3Ryb25nPiB0YWcuICBUaGUgY29tcGxldGUgbGlzdCBvZiBwYXJhbWV0ZXJzIGFuZCB0aGVpciBiZWhhdmlvdXIgaXMgbGlzdGVkIGJlbG93LiAgQnV0IGZvciBleGFtcGxlLCB0byBkaXNwbGF5IGEgbGlzdCBvZiBwcm9kdWN0cyBpbiBhIHNpbmdsZSwgZXhpc3RpbmcgY2F0ZWdvcnksIHlvdSBjb3VsZCB1c2UgYSB0YWcgbGlrZSA8Y29kZT57UHJvZHVjdHMgY2F0ZWdvcnk9JiMwMzk7Y2F0ZWdvcnluYW1lJiMwMzk7fTwvY29kZT48L3A+DQo8L3VsPg0KPGgzPlNtYXJ0eSBQbHVnaW5zPC9oMz4NCjxwPlRoaXMgbW9kdWxlIGFsc28gcmVnaXN0ZXJzIG9uZSBvciBtb3JlIHNtYXJ0eSBwbHVnaW5zIHRvIGFpZGUgaW4gcmV0cmlldmluZyB2YXJpb3VzIHByb2R1Y3RzIHJlbGF0ZWQgaW5mb3JtYXRpb24gd2hlbiBkZXNpZ25pbmcgcHJvZHVjdHMgbW9kdWxlIHRlbXBsYXRlczo8L3A+DQo8dWw+DQogIDxsaT57cHJvZHVjdHNfZ2V0Y2F0ZWdvcnkgY2F0ZWdvcnlpZD0mIzAzOTs5OSYjMDM5OyBbYXNzaWduPSYjMDM5O3RtcCYjMDM5O119DQogIDxwPlRoaXMgcGx1Z2luIGFsbG93cyByZXRyaWV2aW5nIGFsbCBvZiB0aGUgaW5mb3JtYXRpb24gZm9yIGEgc3BlY2lmaWMgY2F0ZWdvcnkgaWQgYW5kIG9wdGlvbmFsbHkgYXNzaWduaW5nIGl0IHRvIHRoZSBuYW1lZCBzbWFydHkgdmFyaWFibGUuICBUaGUgcmV0dXJuZWQgaXMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgYWxsIG9mIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBhIGNhdGVnb3J5LCBpbmNsdWRpbmcgaXRzIGZpZWxkIHZhbHVlcy48YnIvPmkuZTouIDxjb2RlPntwcm9kdWN0c19nZXRjYXRlZ29yeSBjYXRlZ29yeWlkPTEgYXNzaWduPSYjMDM5O3RtcCYjMDM5O31DYXRlZ29yeSBuYW1lID0geyR0bXAtPm5hbWV9PC9jb2RlPjwvcD4NCiAgIA0KICAgPC9wPg0KICA8L2xpPg0KPC91bD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiAgSG93ZXZlciB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzIG9yIHRvIGZpbGUgYSBidWcgcmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIGNtcyBtYWRlIHNpbXBsZSA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5EZXZlbG9wZXJzIEZvcmdlPC9hPiBhbmQgZG8gYSBzZWFyY2ggZm9yICYjMDM5O1Byb2R1Y3RzJiMwMzk7PC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj5Sb2JlcnQgQ2FtcGJlbGw8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3Jtcy48L2E+PC9saT4NCjxsaT5Gb3Igc29tZSBxdWVzdGlvbnMgYW5kIGxpbWl0ZWQgdGVjaG5pY2FsIHN1cHBvcnQsIHRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjwvdWw+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmYW1wO2NvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mYW1wO2x0O2NhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcmYW1wO2d0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPg0KPHA+SG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkDQphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUNCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMNCk1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiANCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPg0KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQpidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCk9yIHJlYWQgaXQgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5vbmxpbmU8L2E+PC9wPic7CiRsYW5nWydoaWVyYXJjaHknXSA9ICdIaWVyYXJjaGlhJzsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gJ1BvenljamEgdyBoaWVyYXJjaGlpJzsKJGxhbmdbJ2hpZXJhcmNoeV9zZXR0aW5ncyddID0gJ1VzdGF3aWVuaWEgaGllcmFyY2hpaSc7CiRsYW5nWydpZCddID0gJ0lEJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ09icmF6ZWsnOwokbGFuZ1snaW1hZ2VfaGFuZGxpbmdfc2V0dGluZ3MnXSA9ICdVc3Rhd2llbmlhIG9ic8WCdWdpIG9icmF6ayZvYWN1dGU7dyc7CiRsYW5nWydpbXBvcnRfZnJvbV9jc3YnXSA9ICdaYWltcG9ydHVqIFByb2R1a3R5IHogcGxpa3UgQ1NWJzsKJGxhbmdbJ2luY2hlcyddID0gJ0NhbGUnOwokbGFuZ1snaW5jbHVkZV9jaGlsZHJlbiddID0gJ0RvxYLEhWN6ecSHIGVsZW1lbnR5IHBvZHJ6xJlkbmU/JzsKJGxhbmdbJ2luZm9fYWxudW1vbmx5J10gPSAnVHlsa28gem5ha2kgYWxmYW51bWVyeWN6bmUgKGJleiBzcGFjamksIGFwb3N0cm9mJm9hY3V0ZTt3LCBjdWR6eXPFgm93Jm9hY3V0ZTt3LCBwb2xza2ljaCB6bmFrJm9hY3V0ZTt3KSc7CiRsYW5nWydpbmZvX2F0dHJpYnRlbXBsYXRlJ10gPSAnTW/FvGxpd2Ugd2FydG/Fm2NpIHRvOiB7JGF0dHJpYl90ZXh0fSx7JGF0dHJpYl9hZGp1c3R9LHskY3VycmVuY3lfc3ltYm9sfSc7CiRsYW5nWydpbmZvX2F0dHJpYnV0ZXNfY29waWVkJ10gPSAnQXRyeWJ1dHkgc2tvcGlvd2FuZSc7CiRsYW5nWydpbmZvX2F1dG93YXRlcm1hcmsnXSA9ICdVc3Rhd2llbmlhIHpuYWsmb2FjdXRlO3cgd29kbnljaCBzxIUgcG9iaWVyYW5lIHogbW9kdcWCdSBDR0V4dGVuc2lvbnMnOwokbGFuZ1snaW5mb19iYXRjaHNpemUnXSA9ICdTZXQgdGhlIG51bWJlciBvZiBsaW5lcyB0byBwcm9jZXNzIHBlciAmcXVvdDtiYXRjaCZxdW90Oy4gIEFmdGVyIGEgYmF0Y2ggaXMgY29tcGxldGUsIHRoZSBpbXBvcnRlciB3aWxsIHJlZGlyZWN0LCBhbmQgcmVzdW1lIG9wZXJhdGlvbnMuICBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBtZW1vcnkgZXJyb3JzLCBvciB0aW1lb3V0IHByb2JsZW1zIGR1ZSB0byBsYXJnZSBhbW91bnRzIG9mIHByb2Nlc3NpbmcsIHlvdSBtYXkgbmVlZCB0byBjb25zdWx0IHlvdXIgaG9zdCBwcm92aWRlciwgb3IgcmVkdWNlIHRoaXMgbnVtYmVyJzsKJGxhbmdbJ2luZm9fY2FydF9tb2R1bGVfcGFyYW1zJ10gPSAnVGhlc2UgcGFyYW1ldGVycyBhcmUgZ2l2ZW4gdG8gdGhlIHNlbGVjdGVkIGNhcnQgbW9kdWxlIGZyb20gdGhlIHByb2R1Y3QgZGV0YWlsIGFuZCBzdW1tYXJ5IGRpc3BsYXlzJzsKJGxhbmdbJ2luZm9fY29weV9hdHRyaWJzZXRzJ10gPSAnVGhpcyBhY3Rpb24gd2lsbCBjb3B5IEF0dHJpYnV0ZSBzZXRzIChleGNsdWRpbmcgc2t1IHZhbHVlcykgZnJvbSBhbm90aGVyIHByb2R1Y3QuJzsKJGxhbmdbJ2luZm9fY3JlYXRlZmllbGRzJ10gPSAnQ3JlYXRlIHVua25vd24gcHJvZHVjdCBmaWVsZHMgYXV0b21hdGljYWxseT8gPGVtPihUaGV5IHdpbGwgYmUgY3JlYXRlZCBhcyB0ZXh0IGZpZWxkcyk8L2VtPic7CiRsYW5nWydpbmZvX2NyZWF0ZWNhdGVnb3JpZXMnXSA9ICdBdXRvbWF0aWNhbGx5IGNyZWF0ZSBwcm9kdWN0IGNhdGVnb3JpZXMgdG8gbWF0Y2ggdGhvc2Ugb2YgdGhlIENTViBmaWxlLCBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0JzsKJGxhbmdbJ2luZm9fY3JlYXRlaGllcmFyY2h5J10gPSAnQXV0b21hdGljYWxseSBjcmVhdGUgcHJvZHVjdCBoaWVyYXJjaGllcyB0byBtYXRjaCB0aG9zZSBvZiB0aGUgQ1NWIGZpbGUgaWYgaXQgZG9lcyBub3QgYWxyZWFkeSBleGlzdCc7CiRsYW5nWydpbmZvX2RlY2ltYWxfdW5pdHMnXSA9ICdUaGlzIHN5c3RlbSB1bmRlcnN0YW5kcyAoLikgYXMgdGhlIGRlY2ltYWwgcG9pbnQgc2VwYXJhdG9yLiBpLmUuOiA8c3Ryb25nPjUuMjU8L3N0cm9uZz4nOwokbGFuZ1snaW5mb19kZWxpbWl0ZXInXSA9ICdTcGVjaWZ5IHRoZSBjaGFyYWN0ZXIgKG9yIGNoYXJhY3RlcnMpIHRoYXQgc2VwZXJhdGUgZWFjaCBmaWVsZCc7CiRsYW5nWydpbmZvX2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnU3BlY2lmeSBob3cgdGhlIHN5c3RlbSBzaG91bGQgaGFuZGxlIGEgcHJvZHVjdCB3aG9zIG5hbWUgYWxyZWFkeSBleGlzdHMgaW4gdGhlIENTViBmaWxlJzsKJGxhbmdbJ2luZm9fZmllbGRkZWZzX3RhYiddID0gJzxzdHJvbmc+VXdhZ2E6IDwvc3Ryb25nPiBXc3p5c3RraWUgcG9sYSB6ZGVmaW5pb3dhbmUgdHV0YWogc8SFIGRvc3TEmXBuZSBkbGEgd3N6eXN0a2ljaCBwcm9kdWt0Jm9hY3V0ZTt3Lic7CiRsYW5nWydpbmZvX2ZpZWxkcHJvYmxlbXMnXSA9ICdXeXN0xIVwacWCeSBwcm9ibGVteSB6IG9ic8WCdWfEhSBqZWRuZWdvIGx1YiB3acSZY2VqIHAmb2FjdXRlO2wgemRlZmluaW93YW55Y2guIEFrY2phIHpvc3RhxYJhIHByemVwcm93YWR6b25hIHBvcHJhd25pZSwgamVkbmFrIHBvd2luaWVuZcWbIHNwcmF3ZHppxIcgY3p5IHdzenlzdGtvIGplc3QgdyBwb3J6xIVka3UnOwokbGFuZ1snaW5mb19oYW5kbGVpbWFnZXMnXSA9ICdVcG9uIGltcG9ydCwgaWYgYW4gaW1hZ2UgZmlsZW5hbWUgaXMgZm91bmQgaW4gYSBmaWVsZCBjb2x1bW4sIHNob3VsZCBpdCBiZSBtb3ZlZCBmcm9tIHRoZSBzb3VyY2UgbG9jYXRpb24sIHdhdGVybWFya2VkLCB0aHVtYm5haWxlZCwgYW5kIHRoZSBmaWVsZCB0eXBlIGNoYW5nZWQgdG8gJnF1b3Q7aW1hZ2UmcXVvdDsnOwokbGFuZ1snaW5mb19oaWVycGFnZSddID0gJ1VzZSB0aGlzIHBhZ2UgZm9yIGhpZXJhcmNoeSB2aWV3cy4gIFRoZSBwYWdlaWQgd2lsbCBub3QgYmUgc3BlZmlyaWVkIG9uIHRoZSBVUkwuJzsKJGxhbmdbJ2luZm9faW1hZ2VwYXRoJ10gPSAnVGhlIHBhdGggKHJlbGF0aXZlIHRvIHRoZSB1cGxvYWRzIGRpcmVjdG9yeSkgd2hlcmUgaW1hZ2VzIHJlZmVycmVkIHRvIGluIHRoZSBpbXBvcnQgZmlsZSwgY2FuIGJlIGZvdW5kJzsKJGxhbmdbJ2luZm9faW1hZ2VzdHVmZl9kZXByZWNhdGVkJ10gPSAnS29ud2VydG93YW5pZSBvYnJhemsmb2FjdXRlO3cgamVzdCBwcnplc3RhcnphxYJlIGkgem9zdGFuaWUgdXN1bmnEmXRlIHcgbm93c3p5Y2ggd2Vyc2phY2guIFXFvHlqIENHU21hcnRJbWFnZSBkbGEga29ud2VydG93YW5pYSBvYnJhemsmb2FjdXRlO3cgdyBsb2NpZS4nOwokbGFuZ1snaW5mb19pbXBvcnRfdGVzdF9wYXNzZWQnXSA9ICdBIGJyaWVmIHRlc3QgYXMgYmVlbiBwZXJmb3JtZWQgb24gdGhlIGlucHV0IGZpbGUgc3BlY2lmaWVkLCBhbmQgZXZlcnl0aGluZyBhcHBlYXJzIHRvIGJlIGNvcnJlY3QuPGJyLz5UaGlzIGlzIG5vIGluZGljYXRpb24gdGhhdCB0aGVyZSBhcmUgbm8gZXJyb3JzIGluIHRoZSBmaWxlLic7CiRsYW5nWydpbmZvX3ByZXR0eWhpZXJ1cmxzJ10gPSAnSW5jbHVkZSB0aGUgaGllcmFyY2h5IGl0ZW0gbmFtZSBvbiB0aGUgVVJMJzsKJGxhbmdbJ2luZm9fcHJpY2VfYWRqdXN0bWVudCddID0gJ1BvcHJhd25lIHdhcnRvxZtjaSBwb2xhIHRvICstKiMuIyMnOwokbGFuZ1snaW5mb19wcm9kbm90Zm91bmQnXSA9ICdUaGlzIG9wdGlvbiBkZXRlcm1pbmVzIHRoZSBiZWhhdmlvdXIgb2YgdGhlIHdlYnNpdGUgaWYgYSBwcm9kdWN0IGRldGFpbCB2aWV3IGlzIGFjY2Vzc2VkIGRpcmVjdGx5IGJ5IFVSTCwgYW5kIHRoYXQgcHJvZHVjdCBmb3Igd2hhdGV2ZXIgcmVhc29uIChkaXNhYmxlZCwgZGVsZXRlZCwgZXRjKSBjYW5ub3QgYmUgYWNjZXNzZWQuJzsKJGxhbmdbJ2luZm9fcHVibGljZmllbGQnXSA9ICdQb2xhIHB1YmxpY3puZSBzxIUgd2lkb2N6bmUgZGxhIHdzenlzdGtpY2gnOwokbGFuZ1snaW5mb19yZW9yZGVyX2NvbnRlbnQnXSA9ICdUaGlzIG9wZXJhdGlvbiBhbGxvd3MgZHJhZ2dpbmcgdGhlIGluZGl2aWR1YWwgbm9kZXMgaW4gdGhlIHRyZWUgdG8gYWRqdXN0IHRoZSBvcmRlciB0aGF0IHRoZXkgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gaW4gdGhlIGhpZXJhcmNoeSB2aWV3JzsKJGxhbmdbJ2luZm9fc2V0ZWNvbWhhbmRsZXJzJ10gPSAnVGhpcyBidXR0b24gd2lsbCBlbnN1cmUgdGhhdCBldmVudCBoYW5kbGVycyBmb3IgZWNvbW1lcmNlIGV2ZW50cyBhcmUgaW4gcGxhY2UuICBUaGlzIGlzIHVzZWZ1bCBpZiBhc2tpbmcgdGhlIHByb2R1Y3RzIG1vZHVsZSB0byBrZWVwIHRyYWNrIG9mIGEgcXVhbnRpdHkgb24gaGFuZCwgYnV0IHRoZSBldmVudCBoYW5kbGVycyBkaWQgbm90IGdldCBjcmVhdGVkIGR1cmluZyBpbnN0YWxsIG9yIHVwZ3JhZGUnOwokbGFuZ1snbGFiZWwnXSA9ICdFdHlraWV0YSc7CiRsYW5nWydsYWJlbF9za2lwJ10gPSAnUG9tacWEJzsKJGxhbmdbJ2xhYmVsX292ZXJ3cml0ZSddID0gJ05hZHBpc3onOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnT3N0YXRuaWEgbW9keWZpa2FjamEnOwokbGFuZ1snbG9nb3RleHQnXSA9ICdEcnVnaSBvYnJhemVrJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ01ha3N5bWFsbmEgZMWCdWdvxZvEhyA8ZW0+KGRvdHljenkgdHlsa28gcCZvYWN1dGU7bCB0ZWtzdG93eWNoKTwvZW0+JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ0RhdGEgbW9keWZpa2FjamknOwokbGFuZ1snbW9kdWxlX2Rlc2NyaXB0aW9uJ10gPSAnTW9kdcWCIHBvendhbGFqxIVjeSBuYSBzdHdvcnplbmllIGthdGFsb2d1IHByb2R1a3Qmb2FjdXRlO3cgeiBjZW5hbWksIHpkasSZY2lhbWkgaXRwLiBQb3p3YWxhIHRha8W8ZSBuYSB0d29yemVuaWUga29zenlrYS4nOwokbGFuZ1snbW92ZV9kb3duJ10gPSAnUHJ6ZXN1xYQgdyBkJm9hY3V0ZTvFgic7CiRsYW5nWydtb3ZlX3VwJ10gPSAnUHJ6ZXN1xYQgdyBnJm9hY3V0ZTtyxJknOwokbGFuZ1snbXNnX2V2ZW50aGFuZGxlcnNfY3JlYXRlZCddID0gJ09ic8WCdWdhIHpkYXJ6ZcWEIHN0d29yem9uYSc7CiRsYW5nWyduYW1lJ10gPSAnTmF6d2EnOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdOaWUgcG9zaWFkYXN6IHd5bWFnYW5lZ28gdXByYXduaWVuaWE6ICVzJzsKJGxhbmdbJ25ld19jYXRlZ29yeV9uYW1lJ10gPSAnTm93YSBuYXp3YSBrYXRlZ29yaWknOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICc+JzsKJGxhbmdbJ25vJ10gPSAnTmllJzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnTmllIHBvZGFubyBuYXp3eSc7CiRsYW5nWydub25lJ10gPSAnQnJhayc7CiRsYW5nWydub3RoaW5nX3NlbGVjdGQnXSA9ICdOaWMgbmllIHphem5hY3pvbm8nOwokbGFuZ1snb2YnXSA9ICd6JzsKJGxhbmdbJ29wZXJhdGlvbl9jYW5jZWxsZWQnXSA9ICdPcGVyYWNqYSBhbnVsb3dhbmEnOwokbGFuZ1snb3BlcmF0aW9uX2NvbXBsZXRlJ10gPSAnT3BlcmFjamEgemFrb8WEY3pvbmEnOwokbGFuZ1sncGFnZSddID0gJ1N0cm9uYSc7CiRsYW5nWydwYWdlX29mJ10gPSAnU3Ryb25hICVzIHogJXMnOwokbGFuZ1sncGFnZV9saW1pdCddID0gJ0xpbWl0IG5hIHN0cm9uxJknOwokbGFuZ1sncGFyYW1fYWN0aW9uJ10gPSAnU1NwZWNpZnkgdGhlIGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPmhpZXJhcmNoeSAtLSBEaXNwbGF5IGEgcHJvZHVjdCBsaXN0IGJ5IGhpZXJhcmNoeTwvbGk+DQogIDxsaT5jYXRlZ29yeWxpc3QgLSBEaXNwbGF5IGEgbGlzdCBvZiBwcm9kdWN0IGNhdGVnb3JpZXM8L2xpPg0KICA8bGk+PGVtPmRlZmF1bHQ8L2VtPiAtIERpc3BsYXkgYSBzdW1tYXJ5IG9mIHByb2R1Y3RzPC9saT4NCiAgPGxpPmRldGFpbHMgLSBEaXNwbGF5IGEgZGV0YWlsIHZpZXcgb2YgYSBzaW5nbGUgcHJvZHVjdDwvbGk+DQogIDxsaT5maWVsZGxpc3QgLSBEaXNwbGF5IGEgbGlzdCBvZiB2YWx1ZXMgZnJvbSBhIHNwZWNpZmllZCBmaWVsZC4NCiAgICAgPHA+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDstIFRoaXMgYWN0aW9uIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIG5hdmlnYXRpb24gZnJvbSB0aGUgdmFsdWVzIG9mIGEgc3BlY2lmaWMgZmllbGQuICBpLmU6ICB5b3UgY291bGQgY3JlYXRlIGEgY3VzdG9tIGRyb3Bkb3duIGZpZWxkIGNhbGxlZCAmYW1wO3F1b3Q7Y29sb3ImYW1wO3F1b3Q7IGFuZCB0aGVuIGNyZWF0ZSBhIG5hdmlnYXRpb24gYmFzZWQgb24gdGhlIGRpZmZlcmVudCBjb2xvcnMuDQogICAgIDwvcD4NCiAgPC9saT4NCiAgPGxpPnNlYXJjaCAtIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IHNlYXJjaGluZyBwcm9kdWN0cyBvbiB2YXJpb3VzIGNyaXRlcml1bTwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ1doZW4gdXNlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyLCB3aGljaCBzaG91bGQgbWF0Y2ggdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgY2F0ZWdvcnkgd2lsbCBiZSB1c2VkIHRvIGRpc3BsYXkgb25seSB0aG9zZSBwcm9kdWN0cyB0aGF0IGFyZSBpbiB0aGF0IGNhdGVnb29yeS4gKGEgY29tbWEgc2VwZXJhdGVkIGxpc3QgY2FuIGJlIHN1cHBsaWVkKS4gIFRoaXMgcGFyYW1ldGVyIGNhbiBhbHNvIGJlIHVzZWQgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbiB0byBsaW1pdCB0aGUgb3V0cHV0IHRvIHRoZSBzcGVjaWZpZWQgcHJvZHVjdCBjYXRlZ29yaWVzLic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWZpZWxkJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSAmcXVvdDtjYXRlZ29yeWxpc3QmcXVvdDsgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBjYW4gYmUgdXNlZCB0byBmaWx0ZXIgY2F0ZWdvcmllcyBiYXNlZCBvbiB0aGUgdmFsdWUgb2YgYSBjYXRlZ29yeSBmaWVsZC4gIEl0IHdpbGwgbm90IHdvcmsgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgJnF1b3Q7Y2F0ZWdvcnkmcXVvdDsgb3IgJnF1b3Q7Y2F0ZWdvcnlfaWQmcXVvdDsgcGFyYW1ldGVycy4gICBUaGUgc3ludGF4IG9mIHRoaXMgcGFyYW1ldGVyIGlzIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZmllbGQgbmFtZXMsIGFuZCBmaWVsZCB2YWx1ZXMuICBpLmU6ICBjYXRlZ29yeWxpc3Q9JnF1b3Q7ZmllbGQgbmFtZTp2YWx1ZSxmaWVsZCBuYW1lIDI6dmFsdWUgMiZxdW90Oyc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3RkdGx0ZW1wbGF0ZSddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkaXNwbGF5IG9mIHRoZSBjYXRlZ29yeSBkZXRhaWxzLiAgVGhpcyB1c2VzIGEgY2F0ZWdvcnkgbGlzdCB0ZW1wbGF0ZS4uICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnVGhpcyBzcGVjaWZpZXMgdGhlIHBhZ2VpZCBvciBhbGlhcyB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIGRldGFpbCByZXBvcnQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGV0YWlsIG1vZGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9leGNsdWRlY2F0J10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IChzdW1tYXJ5KSB2aWV3LCB0aGlzIHBhcmFtZXRlciB3aWxsIGFsbG93IGV4Y2x1ZGluZyBwcm9kdWN0cyB0aGF0IGFyZSBpbiBhIHNwZWNpZmljIGNhdGVnb3J5IGZyb20gdGhlIHJlc3VsdC4gQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBjYXRlZ29yeSBuYW1lcyBpcyBhbGxvd2VkLiBUaGlzIHBhcmFtZXRlciBjYW4gd29yayBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBjYXRlZ29yeSBwYXJhbWV0ZXIgdG8gcHJvdmlkZSBhIGxpc3Qgb2YgdGhlIHByb2R1Y3RzIHRoYXQgYXJlIGluIHRoaXMgY2F0ZWdvcnksIGJ1dCBub3QgaW4gdGhhdCBjYXRlZ29yeSc7CiRsYW5nWydwYXJhbV9maWVsZCddID0gJ1VzZWQgb25seSBpbiB0aGUgPGVtPmZpZWxkbGlzdDwvZW0+IHRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIHRvIHNwZWNpZnkgdGhlIG5hbWUgb2YgYSB1c2VyIGRlZmluZWQgcHJvcGVydHkgdG8gY3JlYXRlIGEgbGlzdCBmcm9tLic7CiRsYW5nWydwYXJhbV9maWVsZHZhbCddID0gJ1VzZWQgb25seSBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgZmllbGQgdmFsdWUgdG8gbGltaXQgcmVzdWx0cyBieS4gIFNwZWNpYWwgdmFsdWVzIGZvciB0aGlzIGZpZWxkIGFyZSAmcXVvdDs6Om51bGw6OiZxdW90OyAmcXVvdDs6Om5vdG51bGw6OiZxdW90Oyc7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHknXSA9ICdVc2VmdWwgb25seSBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGF0IG9ubHkgaXRlbXMgaW4gdGhhdCBsb2NhdGlvbiBvZiB0aGUgaGllcmFyY2h5IHNob3VsZCBiZSBkaXNwbGF5ZWQuICBXaWxkY2FyZCBjaGFyYWN0ZXIgY2FuIGJlIHVzZWQgc28gdGhhdCB5b3UgY2FuIHNwZWNpZnkgcGFyZW50L2NoaWxkIHJlbGF0aW9uc2hpcHMgYXMgd2VsbC4gIGkuZSB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5O3RydWNrcyomIzAzOTt9IHdpbGwgY3JlYXRlIGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgaW5jbHVkaW5nIHRoZSBjaGlsZHJlbiBpbiB0aGUgaGllcmFyY2h5LiAgU2ltaWxhcmx5LCB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5Oyp0cnVja3MmIzAzOTt9IHdpbGwgZGlzcGxheSBhIHN1bW1hcnkgcmVwb3J0IG9mIGFsbCB0cnVja3MsIGFuZCBhbGwgcHJvZHVjdHMgYmVsb2dpbmcgdG8gYW55IHBhcmVudCBpbiB0aGUgaGllcmFyY2h5Lic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGhpZXJhcmNoeSBkaXNwbGF5LiBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1faW5saW5lJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgdGhlIG91dHB1dCBvZiB0aGUgc3VtbWFyeSB2aWV3IHNob3VsZCBiZSBkaXNwbGF5ZWQgaW5saW5lJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIDxlbT5kZWZhdWx0PC9lbT4gb3Igc2VhcmNoIGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBob3cgbWFueSBpdGVtcyBzaG91bGQgYmUgbGlzdGVkIG9uIGVhY2ggcGFnZS4nOwokbGFuZ1sncGFyYW1fcGFyZW50J10gPSAnVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5oaWVyYXJjaHk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgaGllcmFyY2h5IGlkIG9mIHRoZSBzdGFydGluZyBsb2NhdGlvbiBvZiB0aGUgcmVwb3J0Lic7CiRsYW5nWydwYXJhbV9wcm9kdWN0aWQnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSBkZXRhaWwgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgd2hhdCBwcm9kdWN0IHRvIHVzZSBmb3IgdGhlIGRpc3BsYXkuJzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RsaXN0J10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IChzdW1tYXJ5KSB2aWV3LCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGludGVnZXIgcHJvZHVjdCBpZHMgdG8gZGlzcGxheS4gIE5vIHBhZ2luYXRpb24gb3Igc29ydGluZyBpcyBwZXJmb3JtZWQgb24gdGhlc2UgdmFsdWVzLCBhbmQgaWYgc3BlY2lmaWVkIHRoZSBvdGhlciBmaWx0ZXJpbmcgcGFyYW1ldGVycyB0byB0aGUgc3VtbWFyeSB2aWV3IGFyZSBpZ25vcmVkLic7CiRsYW5nWydwYXJhbV9yZXN1bHRwYWdlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBzZWFyY2gsIGFuZCBjYXRlZ29yeSBsaXN0IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBhIHBhZ2UgaWQgb3IgYWxpYXMgdG8gdXNlIHRvIGRpc3BsYXkgdGhlIHN1bW1hcnkgcmVzdWx0cyc7CiRsYW5nWydwYXJhbV9zZWFyY2hmaWVsZCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgbWF5IGNvbnRhaW4gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBmaWVsZCBuYW1lcyB0byBpbmNsdWRlIGluIHRoZSBzZWFyY2gnOwokbGFuZ1sncGFyYW1fc2VhcmNoZm9ybXRlbXBsYXRlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbm9uIGRlZmF1bHQgc2VhcmNoIGZvcm0gdGVtcGxhdGUnOwokbGFuZ1sncGFyYW1fc2hvd2FsbCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgY2F0ZWdvcnlsaXN0IGFuZCBmaWVsZGxpc3QgYWN0aW9ucywgaWYgdGhpcyBwYXJhbWV0ZXIgaXMgc2V0IHRvIGEgbm9uIDAgaW50ZWdlciB2YWx1ZSBhbGwgY2F0ZWdvcmllcyAoZXZlbiB0aG9zZSB3aXRob3V0IHByb2R1Y3RzKSB3aWxsIGJlIGRpc3BsYXllZC4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmeSB0aGUgb3JkZXIgb2Ygc29ydGVkIGZpZWxkcyBpbiBzdW1tYXJ5IHZpZXcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4NCiAgPGxpPmRlc2MgLS0gRGVzY2VuZGluZyBvcmRlcjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIGluIHRoZSBzdW1tYXJ5LCBjYXRlZ29yeWxpc3Qgb3Igc2VhcmNoIGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGRldGVybWluZXMgdGhlIHNvcnRpbmcgb2YgdGhlIG91dHB1dC4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPnByb2R1Y3RfbmFtZTwvc3Ryb25nPjwvbGk+DQogIDxsaT5pZCAtLSBUaGUgcHJvZHVjdCBpZDwvbGk+DQogIDxsaT53ZWlnaHQgLS0gVGhlIHByb2R1Y3Qgd2VpZ2h0PC9saT4NCiAgPGxpPnByaWNlIC0tIFRoZSBwcm9kdWN0IGJhc2UgcHJpY2U8L2xpPg0KICA8bGk+c3RhdHVzIC0tIERyYWZ0IG9yIHB1Ymxpc2hlZDwvbGk+DQogIDxsaT5yYW5kb20gLS0gRGlzcGxheSBpbiByYW5kb20gb3JkZXIgb24gZWFjaCByZXF1ZXN0PC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gVGhlIGNyZWF0aW9uIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KICA8bGk+bW9kaWZpZWQgLS0gVGhlIG1vZGlmaWVkIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KICA8bGk+ZjpmaWVsZG5hbWUgLS0gQWxsb3dzIHNvcnRpbmcgYnkgdmFsdWVzIG9mIGN1c3RvbSBmaWVsZHMuPC9saT4NCjwvdWw+DQo8cD5UaGUgY2F0ZWdvcnkgbGlzdCB2aWV3IHN1cHBvcnRzIG9ubHkgYSBmZXcgc3BlY2lmaWMgc29ydGluZyBvcHRpb25zOjwvcD4NCjx1bD4NCiAgPGxpPmlkIC0tIFRoZSBjYXRlZ29yeSBpZC48L2xpPg0KICA8bGk+PHN0cm9uZz5uYW1lPC9zdHJvbmc+IC0tIFRoZSBjYXRlZ29yeSBuYW1lLjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0dHlwZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCBzdW1tYXJ5IHZpZXcsIHRoaXMgcGFyYW1ldGVyIGlzIHVzZWQgdG8gY29udmVydCB0aGUgdmFsdWVzIHRvIGFub3RoZXIgdHlwZSBmb3Igc29ydGluZy4gIHZhbGlkIHZhbHVlcyBhcmUgU1RSSU5HLFNJR05FRCBhbmQgVU5TSUdORUQuICBJZiBub3Qgc3VwcGxpZWQgdGhlIGRlZmF1bHQgU1RSSU5HIHR5cGUgaXMgYXNzdW1lZC4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXBhZ2UnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGFjdGlvbj1oaWVyYXJjaHksIGFsbG93cyBzcGVjaWZ5aW5nIGEgcGFnZSBpZCBvciBhbGlhcyB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgYW55IGxpbmtzIHRvIHN1bW1hcnkgdmlldyc7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBzdW1tYXJ5IG1vZGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJlbnQnXSA9ICdFbGVtZW50IG5hZHJ6xJlkbnknOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdNb2R1xYIgS2F0YWxvZyBwcm9kdWt0Jm9hY3V0ZTt3IHpvc3RhxYIgcG9tecWbbG5pZSB6YWluc3RhbG93YW55JzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdNb2R1xYIgS2F0YWxvZyBwcm9kdWt0Jm9hY3V0ZTt3IHpvc3RhxYIgb2RpbnN0YWxvd2FueS4nOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdVc3Rhd2llbmlhJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ1VzdW5pxJljaWUgdGVnbyBtb2R1xYJ1IHNwb3dvZHVqZSB1c3VuacSZY2llIHdzenlzdGtpY2ggZGFueWNoIGthdGFsb2d1LiBDenkgbmFwZXdubyBjaGNlc3oga29udHludW93YcSHPyc7CiRsYW5nWydwcmljZSddID0gJ0NlbmEnOwokbGFuZ1sncHJpY2VfYWRqdXN0bWVudCddID0gJ1ptaWFuYSBjZW55JzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCc7CiRsYW5nWydwcm9kdWN0J10gPSAnUHJvZHVrdCc7CiRsYW5nWydwcm9kdWN0bmFtZSddID0gJ05hendhIHByb2R1a3R1JzsKJGxhbmdbJ3Byb2R1Y3RzJ10gPSAnUHJvZHVrdHknOwokbGFuZ1sncHJvZHVjdF9kZXRhaWxfc2V0dGluZ3MnXSA9ICdVc3Rhd2llbmlhIHN6Y3plZyZvYWN1dGU7xYImb2FjdXRlO3cgcHJvZHVrdCZvYWN1dGU7dyc7CiRsYW5nWydwcm9kdWN0X2VkaXRpbmdfc2V0dGluZ3MnXSA9ICdVc3Rhd2llbmlhIGVkeWNqaSBwcm9kdWt0Jm9hY3V0ZTt3JzsKJGxhbmdbJ3Byb2R1Y3Rfc3VtbWFyeV9zZXR0aW5ncyddID0gJ1VzdGF3aWVuaWEgd2lkb2t1IG9nJm9hY3V0ZTtsbmVnbyc7CiRsYW5nWydwcm9kdWN0X2hpZXJhcmNoeSddID0gJ0hpZXJhcmNoaWEgcHJvZHVrdCZvYWN1dGU7dyc7CiRsYW5nWydwcm9kdWN0X2luZm8nXSA9ICdJbmZvcm1hY2plIG8gcHJvZHVrY2llJzsKJGxhbmdbJ3Byb2R1Y3RfbWFuYWdlciddID0gJ0thdGFsb2cgcHJvZHVrdCZvYWN1dGU7dyc7CiRsYW5nWydwcm9ncmVzcyddID0gJ1Byb2dyZXNzJzsKJGxhbmdbJ3Byb21wdCddID0gJ1phY2jEmXRhJzsKJGxhbmdbJ3Byb21wdF9hZGRfYXR0cmlic2V0J10gPSAnQWRkL0VkaXQgQXR0cmlidXRlIFNldCc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnXSA9ICdQb3p3Jm9hY3V0ZTtsIG5hIHVwbG9hZCBwbGlrJm9hY3V0ZTt3IHRlZ28gdHlwdSAoZGxhIHAmb2FjdXRlO2wgdHlwdSBwbGlrKSc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZXR5cGVzJ10gPSAnUG96dyZvYWN1dGU7bCBuYSB1cGxvYWQgb2JyYXprJm9hY3V0ZTt3IHRlZ28gdHlwdSAoZGxhIHAmb2FjdXRlO2wgdHlwdSBvYnJhemVrKSc7CiRsYW5nWydwcm9tcHRfYXR0cmlidGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3IgZGlzcGxheSBvZiBwcm9kdWN0IGF0dHJpYnV0ZSB2YWx1ZXMgaW4gZHJvcGRvd24nOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWwnXSA9ICdUdyZvYWN1dGU7cnogYXV0b21hdHljem5pZSBtaW5pYXR1cnkgb2JyYXprJm9hY3V0ZTt3JzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsX3NpemUnXSA9ICdNYWtzeW1hbG55IHJvem1pYXIgKG5hamTFgnXFvHN6eSBib2spIG1pbmlhdHVya2kuJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZyddID0gJ0F1dG9tYXR5Y3puaWUgdHcmb2FjdXRlO3J6IG9icmF6a2kgcG9nbMSFZG93ZSc7CiRsYW5nWydwcm9tcHRfYXV0b3ByZXZpZXdpbWdfc2l6ZSddID0gJ01ha3N5bWFsbnkgcm96bWlhciAobmFqZMWCdcW8c3p5IGJvaykgb2JyYXprYSBwb2dsxIVkb3dlZ28uJzsKJGxhbmdbJ3Byb21wdF9hdXRvd2F0ZXJtYXJrJ10gPSAnQXV0b21hdHljem5pZSBuYWvFgmFkYWogem5ha2kgd29kbmUgbmEgxYJhZG93YW5lIG9icmF6a2knOwokbGFuZ1sncHJvbXB0X2FwcGxpY2FibGUnXSA9ICdXxYLEhWN6IGRvbXnFm2xuaWUgZGxhIG5vd3ljaCBwcm9kdWt0Jm9hY3V0ZTt3JzsKJGxhbmdbJ3Byb21wdF9iYXRjaHNpemUnXSA9ICdCYXRjaCBTaXplJzsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZSddID0gJ0NhcnQgTW9kdWxlJzsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdDYXJ0IE1vZHVsZSBQYXJhbWV0ZXJzJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVjYXRlZ29yaWVzJ10gPSAnQ3JlYXRlIENhdGVnb3JpZXMnOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWZpZWxkcyddID0gJ0NyZWF0ZSBQcm9kdWN0IEZpZWxkcz8nOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWhpZXJhcmNoeSddID0gJ0NyZWF0ZSBQcm9kdWN0IEhpZXJhcmNoeSc7CiRsYW5nWydwcm9tcHRfY3N2ZmlsZSddID0gJ1dncmFqIHBsaWsgQ1NWJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeWNvZGUnXSA9ICdLb2Qgd2FsdXR5JzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeXN5bWJvbCddID0gJ1N5bWJvbCB3YWx1dHknOwokbGFuZ1sncHJvbXB0X2RlZmF1bHRfc3RhdHVzJ10gPSAnRG9tecWbbG55IHN0YXR1cyB3c3p5c3RraWNoIG5vd3ljaCBwcm9kdWt0Jm9hY3V0ZTt3JzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0X3RheGFibGUnXSA9ICdEb215xZtsbmllIHdzenlzdGtpZSBub3dlIHByb2R1a3R5IHPEhSBvcG9kYXRrb3dhbmUnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gJ1NrYXNvd2HEhyB3c3p5c3RraWUgcGxpa2kgendpxIV6YW5lIHogcHJvZHVrdGVtIGdkeSBqZXN0IG9uIGthc293YW55Pyc7CiRsYW5nWydwcm9tcHRfZGVsaW1pdGVyJ10gPSAnRmllbGQgRGVsaW1pdGVyJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnRG9tecWbbG5hIHN0cm9uYSB3aWRva3Ugc3pjemVnJm9hY3V0ZTvFgm93ZWdvJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxzZm9yJ10gPSAnRGV0YWlscyBmb3IgJXMnOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnSG93IHRvIGhhbmRsZSBkdXBsaWNhdGUgcHJvZHVjdHM/JzsKJGxhbmdbJ3Byb21wdF9mYWxzZSddID0gJ0ZhxYJzeic7CiRsYW5nWydwcm9tcHRfaGFuZGxlaW1hZ2VzJ10gPSAnSGFuZGxlIGltYWdlcz8nOwokbGFuZ1sncHJvbXB0X2ltYWdlcGF0aCddID0gJ0ltYWdlIFBhdGgnOwokbGFuZ1sncHJvbXB0X2xlbmd0aHVuaXRzJ10gPSAnSmVkbm9zdGtpIG1pYXJ5JzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9iZWhhdmlvciddID0gJ0NvIHpyb2JpxIcsIGplxbxlbGkgcHJvZHVrdCBuaWUgbW/FvGUgem9zdGHEhyB3ecWbd2lldGxvbnk/JzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF80MDQnXSA9ICdHZW5lcnVqIGLFgsSFZCA0MDQnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzMwMSddID0gJ0dlbmVydWogcHJ6ZWtpZXJvd2FuaWUgMzAxJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9lcnJvcm1zZyddID0gJ1d5xZt3aWV0bCB3aWFkb21vxZvEhyBvIGLFgsSZZHppZSc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfbXNnJ10gPSAnRXJyb3IgbWVzc2FnZSBmb3Igd2hlbiBhIHByb2R1Y3QgY2Fubm90IGJlIGZvdW5kJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9wYWdlJ10gPSAnUGFnZSB0byBkbyBwZXJtYW5lbnQgcmVkaXJlY3QgdG8/JzsKJGxhbmdbJ3Byb21wdF9oaWVycGFnZSddID0gJ0RvbXnFm2xuYSBzdHJvbmEgZGxhIHdpZG9rdSBoaWVyYXJjaGlpJzsKJGxhbmdbJ3Byb21wdF9wcmV0dHloaWVydXJscyddID0gJ1VzZSBQcmV0dHkgVVJMUyB0byBIaWVyYXJjaHkgVmlld3MnOwokbGFuZ1sncHJvbXB0X3Byb2RfZGV0YWlscGFnZSddID0gJ0RlZmF1bHQgUGFnZSBmb3IgUHJvZHVjdCBEZXRhaWwgVmlld3MnOwokbGFuZ1sncHJvbXB0X3Byb2R1Y3RzX21hdGNoaW5nJ10gPSAnUHJvZHVjdHMgbWF0Y2hpbmcgJXMnOwokbGFuZ1sncHJvbXB0X3NrdV9yZXF1aXJlZCddID0gJ1NLVSBpcyByZXF1aXJlZCBmb3IgYWxsIHByb2R1Y3RzIGFuZCBhdHRyaWJ1dGVzJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5cGFnZWxpbWl0J10gPSAnRG9tecWbbG55IGxpbWl0IHN0cm9uIHcgd2lkb2t1IHBvZHN1bW93YW5pYSc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRvcmRlciddID0gJ0RvbXnFm2xuYSBrb2xlam5vxZvEhyBzb3J0b3dhbmlhIHcgd2lkb2t1IGxpc3R5JzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ0RvbXnFm2xuZSBwb2xlIHXFvHl3YW5lIGRvIHNvcnRvd2FuaWEgdyB3aWRva3UgbGlzdHknOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnxblyJm9hY3V0ZTtkxYJvIHN6YWJsb251JzsKJGxhbmdbJ3Byb21wdF90cnVlJ10gPSAnUHJhd2RhJzsKJGxhbmdbJ3Byb21wdF91cmxwcmVmaXgnXSA9ICdQcmVmaXggdG8gdXNlIG9uIGFsbCBVUkxTIHRhcmdldGVkIHRvIHRoaXMgdGhpcyBtb2R1bGUnOwokbGFuZ1sncHJvbXB0X3VzZV9kZXRhaWxwYWdlX2Zvcl9zZWFyY2gnXSA9ICdVc2UgdGhpcyBwYWdlIGZvciBzZWFyY2ggcmVzdWx0cyB0b28gPGVtPihvdmVycmlkZXMgdGhlIHNlYXJjaHJlc3VsdHMgcGFnZSBwYXJhbWV0ZXIgaW4gdGhlIHNlYXJjaCBtb2R1bGUpPC9lbT4nOwokbGFuZ1sncHJvbXB0X3VzZWhpZXJwYXRodXJscyddID0gJ1VzZSBIaWVyYXJjaHkgUGF0aCBpbiBQcm9kdWN0IERldGFpbCBVUkxTJzsKJGxhbmdbJ3Byb21wdF93ZWlnaHR1bml0cyddID0gJ0plZG5vc3RpIHdhZ2knOwokbGFuZ1sncHVibGljJ10gPSAnQ3p5IHRvIGplc3QgcG9sZSBkb3N0xJlwbmUgZGxhIHdzenlzdGtpY2g/JzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ09wdWJsaWtvd2FueSc7CiRsYW5nWydxdWFudGl0eV9vbl9oYW5kJ10gPSAnRG9zdMSZcG5hIGlsb8WbxIcgdyBtYWdhenluaWUnOwokbGFuZ1sncmFuZG9tJ10gPSAnTG9zb3d5JzsKJGxhbmdbJ3Jlb3JkZXJfaGllcmFyY2h5J10gPSAnWm1pZcWEIGtvbGVqbm/Fm8SHIGhpZXJhcmNoaWknOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdQcnp5d3Imb2FjdXRlO8SHIHdhcnRvxZtjaSBkb215xZtsbmUnOwokbGFuZ1sncmV0dXJuJ10gPSAnUG93ciZvYWN1dGU7dCc7CiRsYW5nWydyZXR1cm5fdG9fdG9wJ10gPSAnUmV0dXJuIHRvIHRoZSB0b3Agb2YgdGhlIHZpZXcnOwokbGFuZ1sncm9vdCddID0gJ0fFgiZvYWN1dGU7d255JzsKJGxhbmdbJ3NlYXJjaF9kZXNjcmlwdGlvbiddID0gJ1NlYXJjaCBQcm9wZXJ0eSBEZXNjcmlwdGlvbic7CiRsYW5nWydzZWFyY2hfZXhwciddID0gJ1Nob3VsZCB0aGUgcXVlcnkgbWF0Y2ggYWxsLCBvciBhbnkgb2YgdGhlIHRlc3RzIGJlbG93Pyc7CiRsYW5nWydzZWFyY2hfbmFtZSddID0gJ1NlYXJjaCBQcm9wZXJ0eSBOYW1lJzsKJGxhbmdbJ3NlYXJjaF9wcmljZSddID0gJ1ByaWNlIFJhbmdlJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBTZWFyY2ggRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZXMnXSA9ICdTZWFyY2ggVGVtcGxhdGVzJzsKJGxhbmdbJ3NlbGVjdF9hbGwnXSA9ICdaYXpuYWN6IHdzenlzdGtpZSc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnV3liaWVyeiBvcGNqxJknOwokbGFuZ1snc2V0ZHJhZnQnXSA9ICdVc3RhdyBqYWtvIGtvcGlhIHJvYm9jemEnOwokbGFuZ1snc2V0cHVibGlzaGVkJ10gPSAnVXN0YXcgamFrbyBvcHVibGlrb3dhbmUnOwokbGFuZ1snc2t1J10gPSAnU0tVICc7CiRsYW5nWydzb3J0X2J5J10gPSAnU29ydHVqIHBvJzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdLb2xlam5vxZvEhyBzb3J0b3dhbmlhJzsKJGxhbmdbJ3NvdXJjZSddID0gJ1NvdXJjZSc7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF0dXMgJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1phcGlzeic7CiRsYW5nWydzdWJzY3JpcHRpb24nXSA9ICdTdWJzY3JpcHRpb24nOwokbGFuZ1snc3Vic2NyX2V4cGlyeSddID0gJ0V4cGlyeSc7CiRsYW5nWydzdWJzY3JfZXhwaXJ5MiddID0gJ0V4cGlyZXMnOwokbGFuZ1snc3Vic2NyX21vbnRobHknXSA9ICdNb250aGx5JzsKJGxhbmdbJ3N1YnNjcl9kZWxwZXJpb2QnXSA9ICdEZWxpdmVyeSBGcmVxdWVuY3knOwokbGFuZ1snc3Vic2NyX2RlbHBlcmlvZDInXSA9ICdEZWxpZXZlcmVkJzsKJGxhbmdbJ3N1YnNjcl9wYXlwZXJpb2QnXSA9ICdQYXltZW50IEZyZXF1ZW5jeSc7CiRsYW5nWydzdWJzY3JfcGF5cGVyaW9kMiddID0gJ1BhaWQnOwokbGFuZ1snc3Vic2NyX3F1YXJ0ZXJseSddID0gJ1F1YXJ0ZXJseSc7CiRsYW5nWydzdWJzY3Jfc2VtaWFudWFsbHknXSA9ICdTZW1pIEFudWFsbHknOwokbGFuZ1snc3Vic2NyX3llYXJseSddID0gJ1llYXJseSc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVzJ10gPSAnU3phYmxvbnkgbGlzdCc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0RvZGFqL2VkeXR1aiBzemFibG9uIGxpc3R5JzsKJGxhbmdbJ3RheGFibGUnXSA9ICdPcG9kYXRrb3dhbnknOwokbGFuZ1sndGVzdCddID0gJ1Rlc3QnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdQb2xlIHRla3N0b3dlICh0ZXh0YXJlYSknOwokbGFuZ1sndGV4dGJveCddID0gJ1BvbGUgdGVrc3Rvd2UnOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnRG9tecWbbG55IG5vd3kgc3phYmxvbiByYXBvcnR1IGhpZXJhcmNoaWknOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ0RvbXnFm2xueSBub3d5IHN6YWJsb24gbGlzdHkga2F0ZWdvcmlpJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdEb215xZtsbnkgbm93eSBzemFibG9uIHdpZG9rdSBzemN6ZWcmb2FjdXRlO8WCb3dlZ28nOwokbGFuZ1sndGl0bGVfc2VhcmNoX2RmbHR0ZW1wbGF0ZSddID0gJ0RvbXnFm2xueSBub3d5IHN6YWJsb24gd3lzenVraXdhcmtpJzsKJGxhbmdbJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJ10gPSAnRG9tecWbbG55IG5vd3kgc3phYmxvbiB3aWRva3UgbGlzdHknOwokbGFuZ1sndHlwZSddID0gJ1R5cCc7CiRsYW5nWyd1cCddID0gJ1ByemVzdcWEIGRvIGcmb2FjdXRlO3J5JzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0FrdHVhbGl6dWonOwokbGFuZ1sndXBsb2FkJ10gPSAnV3liaWVyeiBwbGlrJzsKJGxhbmdbJ3VybF9hbGlhcyddID0gJ0FsaWFzIFVSTCc7CiRsYW5nWyd2YWxpZCddID0gJ1BvcHJhd255JzsKJGxhbmdbJ3ZhbHVlJ10gPSAnV2FydG/Fm8SHJzsKJGxhbmdbJ3ZhbHVlcyddID0gJ1dhcnRvxZtjaSc7CiRsYW5nWyd2aWV3J10gPSAnWm9iYWN6JzsKJGxhbmdbJ3ZpZXdhYmxlX2ZpZWxkcyddID0gJ1NlbGVjdCBjdXN0b20gZmllbGRzIHRvIHZpZXcgaW4gdGhlIHRhYmxlJzsKJGxhbmdbJ3dhdGVybWFya19sb2NhdGlvbiddID0gJ8WaY2llxbxrYSBkbyBwbGlrdSB6ZSB6bmFraWVtIHdvZG55bSc7CiRsYW5nWyd3ZWlnaHQnXSA9ICdXYWdhJzsKJGxhbmdbJ3dpdGhfc2VsZWN0ZWQnXSA9ICdaYXpuYWN6b25lJzsKJGxhbmdbJ3llcyddID0gJ1Rhayc7CiRsYW5nWydxY2EnXSA9ICdQMC0xMzE4MjEzNzM5LTEyNzU2NjgzNzEzMDMnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xODczNDk2MjgzLjEyOTQzNDA3NjIuMTI5NDM0MDc2Mi4xMjk0MzQwNzYyLjEnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pt_PT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfbGVuZ3RoJ10gPSAnTCAnOwokbGFuZ1snYWJicl93aWR0aCddID0gJ1cgJzsKJGxhbmdbJ2FiYnJfaGVpZ2h0J10gPSAnSCAnOwokbGFuZ1snYWRkJ10gPSAnQWRpY2lvbmFyJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnQWRpY2lvbmFyIENhdGVnb3JpYSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0FkaWNpb25hciBDYW1wbyc7CiRsYW5nWydhZGp1c3RhYmxlJ10gPSAnQWRqdXN0JmFhY3V0ZTt2ZWwnOwokbGFuZ1snYWRkcHJvZHVjdCddID0gJ0FkaWNpb25hciBQcm9kdXRvJzsKJGxhbmdbJ2FkZF9hdHRyaWJfc2V0J10gPSAnQWRpY2lvbmFyIEF0cmlidXRvJzsKJGxhbmdbJ2FkZF9jYXRlZ29yeV9maWVsZCddID0gJ0NhbXBvIEFzc29jaSZhYWN1dGU7dmVsIGNvbSBhIENhdGVnb3JpYTogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnQWRpY2lvbmFyIEl0ZW0gJmFncmF2ZTsgSGllcmFycXVpYSc7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAnQWRpY2lvbmFyIE9wJmNjZWRpbDsmYXRpbGRlO28gZGUgQXRyaWJ1dG8nOwokbGFuZ1snYWRtaW5fb25seSddID0gJ1Mmb2FjdXRlOyBhcGVuYXMgQWRtaW4mIzAzOTtzIHBvZGVtIHZpc3VhbGl6YXIgZXN0ZSBhdHJpYnV0bz8nOwokbGFuZ1snYWxpZ25fdWwnXSA9ICdUb3BvIEVzcXVlcmRhJzsKJGxhbmdbJ2FsaWduX3VjJ10gPSAnVG9wbyBDZW50cm8nOwokbGFuZ1snYWxpZ25fdXInXSA9ICdUb3BvIERpcmVpdGEnOwokbGFuZ1snYWxpZ25fbWwnXSA9ICdNZWlvIEVzcXVlcmRhJzsKJGxhbmdbJ2FsaWduX21jJ10gPSAnQ2VudHJvJzsKJGxhbmdbJ2FsaWduX21yJ10gPSAnTWVpbyBEaXJlaXRhJzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnQmFpeG8gRXNxdWVyZGEnOwokbGFuZ1snYWxpZ25fbGMnXSA9ICdCYWl4byBDZW50cm8nOwokbGFuZ1snYWxpZ25fbHInXSA9ICdCYWl4byBEaXJlaXRhJzsKJGxhbmdbJ2FsbCddID0gJ1RvZG9zJzsKJGxhbmdbJ2FsbGNhdGVnb3JpZXMnXSA9ICdUb2RhcyBhcyBDYXRlZ29yaWFzJzsKJGxhbmdbJ2FueSddID0gJ1F1YWxxdWVyJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdUZW0gYSBjZXJ0ZXphPyc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZXByb2R1Y3QnXSA9ICdUZW0gY2VydGV6YSBxdWUgZGVzZWphIGFwYWdhciBlc3RlIHByb2R1dG8sIGJlbSBjb21vIG8gYWNvbXBhbmhhbWVudG8gZGUgdG9kYXMgYXMgaW5mb3JtYSZjY2VkaWw7Jm90aWxkZTtlcyByZWZlcmVudGVzIGFvIG1lc21vPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdBc2NlbmRlbnRlJzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnQXRyaWJ1dG8gTm9tZSc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbSZhYWN1dGU7dGljbyc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlcyddID0gJ0hpZXJhcnF1aWEgUmVsYXQmb2FjdXRlO3JpbyB0ZW1wbGF0ZXMnOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRpY2lvbmFyL0VkaXRhciBIaWVyYXJxdWlhIFJlbGF0Jm9hY3V0ZTtyaW8gdGVtcGxhdGVzJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbGFyJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yaWFzJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnQ2F0ZWdvcmlhJzsKJGxhbmdbJ2NhdGVnb3J5ZXhpc3RzJ10gPSAnTyBub21lIGRhIGNhdGVnb3JpYSBqJmFhY3V0ZTsgZXhpc3RlJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ1RlbXBsYXRlcyBMaXN0YSBkZSBDYXRlZ29yaWFzJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGljaW9uYXIvRWRpdGFyIFRlbXBsYXRlcyBMaXN0YSBkZSBDYXRlZ29yaWFzJzsKJGxhbmdbJ2NlbnRpbWV0ZXJzJ10gPSAnQ2VudCZpYWN1dGU7bWV0cm9zJzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnQ2FpeGEgZGUgVmVyaWZpY2EmY2NlZGlsOyZhdGlsZGU7byc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9oaWVyYXJjaHlfbm9kZSddID0gJ1RlbSBjZXJ0ZXphIGRlIHF1ZSBkZXNlamEgZXhjbHVpciBlc3RlIG4mb2FjdXRlOz8gUXVhbHF1ZXIgcHJvZHV0byBxdWUgZXN0ZWphIGEgdXNhciBlc3RlIG4mb2FjdXRlOyBzZXImYWFjdXRlOyBjb25maWd1cmFkbyBwYXJhIG4mYXRpbGRlO28gdXNhcmVtIGhpZXJhcnF1aWEnOwokbGFuZ1snY29uZmlybV9pbXBvcnQnXSA9ICdUZW0gY2VydGV6YSBkZSBxdWUgcmVhbG1lbnRlIHF1ZXIgZmF6ZXIgaXNzbz9cblxuQ29uZmlndXJhJmNjZWRpbDsmb3RpbGRlO2VzIGltcHJvcHJpYXMgb3UgaW52JmFhY3V0ZTtsaWRhcyBwb2RlciZhYWN1dGU7IGhhdmVyIGNvbXBsZXRhbWVudGUgdW1hIGNvcnJ1cCZjY2VkaWw7JmF0aWxkZTtvIG5vIHNpc3RlbWEgYWN0dWFsbWVudGUgZW0gdmlnb3IuJzsKJGxhbmdbJ2NvcHknXSA9ICdDb3BpYXInOwokbGFuZ1snY29weV9jYXRlZ29yeSddID0gJ0NvcGlhciBDYXRlZ29yaWEnOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdEYXRhIGRhIENyaWEmY2NlZGlsOyZhdGlsZGU7byc7CiRsYW5nWydjdXJyZW50X3ZhbHVlJ10gPSAnVmFsb3IgQWN0dWFsJzsKJGxhbmdbJ2RhdGEnXSA9ICdEYXRhICc7CiRsYW5nWydkZWZhdWx0J10gPSAnUGFkciZhdGlsZGU7byc7CiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAnVGVtcGxhdGVzIFBhZHImYXRpbGRlO28nOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPk5vdGE6PC9zdHJvbmc+IE8gY29udGUmdWFjdXRlO2RvIGRlc3RhcyAmYWFjdXRlO3JlYXMgdGV4dG9zICBzJmF0aWxkZTtvIHVzYWRhcyBwYXJhIGRldGVybWluYXIgbyBjb250ZSZ1YWN1dGU7ZG8gZG9zIHRlbXBsYXRlcyBwYWRyJmF0aWxkZTtvIHF1YW5kbyBjbGljYXIgZW0gJnF1b3Q7QWRpY2lvbmFyIFRlbXBsYXRlJnF1b3Q7IG5hIFRhYiBhcHJvcHJpYWRhLiBFZGl0YW5kbyB1bWEgZGVzdGFzICZhYWN1dGU7cmVhcyBkZSB0ZXh0byBuJmF0aWxkZTtvIHRlciZhYWN1dGU7IGVmZWl0b3MgaW1lZGlhdG9zIG5vIHNldSBzaXRlLic7CiRsYW5nWydkZWxldGUnXSA9ICdFbGltaW5hcic7CiRsYW5nWydkZWxldGVfYXR0cmlic2V0J10gPSAnRWxpbWluYXIgQXRyaWJ1dG8nOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAnRWxpbWluYXIgSGllcmFycXVpYSBJdGVtJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdEZXNjZW5kZW50ZSc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Rlc2NyaSZjY2VkaWw7JmF0aWxkZTtvJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdEZXRhbGhlcyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdUZW1wbGF0ZXMgRGV0YWxoZXMnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkaWNpb25hci9FZGl0YXIgVGVtcGxhdGVzIERldGFsaGVzJzsKJGxhbmdbJ2RpbWVuc2lvbnMnXSA9ICdEaW1lbnMmb3RpbGRlO2VzJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnRGVzYXRpdmFkbyc7CiRsYW5nWydkcmFmdCddID0gJ1Jhc2N1bmhvJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnTWVudSBNJnVhY3V0ZTtsdGlwbG8gKERyb3Bkb3duKSc7CiRsYW5nWydkcm9wZG93bl9vcHRpb25zJ10gPSAnTWVudSBNJnVhY3V0ZTtsdGlwbG8gKERyb3Bkb3duKSA8ZW0+KGFwbGljYXIgcyZvYWN1dGU7IGNhbXBvcyBNZW51IE0mdWFjdXRlO2x0aXBsbyAoRHJvcGRvd24pICk8L2VtPjxici8+PGJyLz48ZW0+KHVtYSBlbnRyYWRhIHBvciBsaW5oYSk8L2VtPic7CiRsYW5nWydlZGl0J10gPSAnRWRpdGFyICc7CiRsYW5nWydlZGl0X2F0dHJpYnNldCddID0gJ0VkaXRhciBBdHJpYnV0byc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICdFZGl0YXIgRGVmaW5pJmNjZWRpbDsmb3RpbGRlO2VzIGRlIEF0cmlidXRvcyc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHNfZm9yJ10gPSAnRWRpdGFyIERlZmluaSZjY2VkaWw7Jm90aWxkZTtlcyBkZSBBdHJpYnV0b3MgUGFyYSc7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdFZGl0YXIgQXRyaWJ1dG9zJzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnknXSA9ICdFZGl0YXIgQ2F0ZWdvcmlhJzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnlfZmllbGRzJ10gPSAnRWRpdGFyIENhdGVnb3JpYSBDYW1wb3MnOwokbGFuZ1snZWRpdF9oaWVyYXJjaHlfaXRlbSddID0gJ0VkaXRhciBIaWVyYXJxdWlhIEl0ZW0nOwokbGFuZ1snZXJyb3JfYXR0cmlic2V0X2V4aXN0cyddID0gJ1VtIGF0cmlidXRvIGNvbSBlc3NlIG5vbWUgaiZhYWN1dGU7IGV4aXN0ZSc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfc2t1J10gPSAnVmFsb3IgU0tVIGR1cGxpY2FkbyBmb2kgZW5jb250cmFkbyc7CiRsYW5nWydlcnJvcl9maWVsZHZhbHVlX2VtcHR5J10gPSAnTyB2YWxvciBkbyBDYW1wbyBuJmF0aWxkZTtvIHBvZGUgZXN0YXIgdmF6aW8nOwokbGFuZ1snZXJyb3JfZmlsZWZvcm1hdCddID0gJ1Byb2JsZW1hIGNvbSBvIGZvcm1hdG8gZG8gZmljaGVpcm8nOwokbGFuZ1snZXJyb3JfZmlsZW5vdGZvdW5kJ10gPSAnRmljaGVpcm8gTiZhdGlsZGU7byBFbmNvbnRyYWRvJzsKJGxhbmdbJ2Vycm9yX2ZpbGVvcGVuJ10gPSAnUHJvYmxlbWEgYW8gYWJyaXIgbyBmaWNoZWlybyAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnUGFyZW50ZSBJbnYmYWFjdXRlO2xpZG8gIChvIG5vZGUgZGUgSGllcmFycXVpYSAgbiZhdGlsZGU7byBwb2RlIHNlciwgJmVhY3V0ZTsgbyBwciZvYWN1dGU7cHJpbyknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9uYW1lJ10gPSAnTyB2YWxvciBkbyBjYW1wbyBwZXJzb25hbGl6YWRvIGRpZ2l0YWRvICZlYWN1dGU7IGludiZhYWN1dGU7bGlkbyAobiZhdGlsZGU7byBjb250JmVhY3V0ZTttIGNhcmFjdGVyZXMgYWxmYW51bSZlYWN1dGU7cmljb3MpJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ1VtIHBhciZhY2lyYzttZXRybyBvYnJpZ2F0Jm9hY3V0ZTtyaW8gZXN0JmFhY3V0ZTsgYXVzZW50ZSBvdSAmZWFjdXRlOyBpbnYmYWFjdXRlO2xpZG8nOwokbGFuZ1snZXJyb3JfbmFtZXVzZWQnXSA9ICdVbSBpdGVtIGNvbSBlc3NlIG5vbWUgaiZhYWN1dGU7IGVzdCZhYWN1dGU7IGVtIHVzbyc7CiRsYW5nWydlcnJvcl9ub2ZpZWxkdHlwZSddID0gJ1BvciBGYXZvciBzZWxlY2lvbmUgdW0gdGlwbyBkZSBjYW1wbyc7CiRsYW5nWydlcnJvcl9ub25hbWUnXSA9ICdZb3UgZGV2ZSBmb3JuZWNlciB1bSBub21lJzsKJGxhbmdbJ2Vycm9yX3Blcm1pc3Npb25kZW5pZWQnXSA9ICdQZXJtaXNzJmF0aWxkZTtvIE5lZ2FkYSc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X2FsaWFzdXNlZCddID0gJ08gYWxpYXMgZXNwZWNpZmljYWRvIGomYWFjdXRlOyBlc3QmYWFjdXRlOyBlbSB1c28nOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9uYW1ldXNlZCddID0gJ1VtIHByb2R1dG8gcG9yIGVzc2Ugbm9tZSBqJmFhY3V0ZTsgZXhpc3RlJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3Rfbm90Zm91bmQnXSA9ICdPIHByb2R1dG8gc29saWNpdGFkbyBuJmF0aWxkZTtvIHAmb2NpcmM7ZGUgc2VyIGVuY29udHJhZG8nOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9za3V1c2VkJ10gPSAnU0tVIGNvbSBlc3RlIHZhbG9yIGomYWFjdXRlOyBlc3QmYWFjdXRlOyBlbSB1c28gZW0gdW0gb3V0cm8gcHJvZHV0byc7CiRsYW5nWydlcnJvcl9wcmljZV9hZGp1c3RtZW50J10gPSAnTyB2YWxvciBhanVzdGFkbyBkbyBwcmUmY2NlZGlsO28gJmVhY3V0ZTsgaW52JmFhY3V0ZTtsaWRvIHBhcmEgbyBpdGVtICVzJzsKJGxhbmdbJ2Vycm9yX3VwbG9hZF9mYWlsZWQnXSA9ICdDYXJyZWdhbWVudG8gZmFsaG91OiAlcyc7CiRsYW5nWydleHRyYTEnXSA9ICdDYW1wbyBFeHRyYSAxJzsKJGxhbmdbJ2V4dHJhMiddID0gJ0NhbXBvIEV4dHJhIDInOwokbGFuZ1snZmllbGQnXSA9ICdDYW1wbyc7CiRsYW5nWydmaWVsZGRlZiddID0gJ0RlZmluaSZjY2VkaWw7JmF0aWxkZTtvIGRvIENhbXBvJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0RlZmluaSZjY2VkaWw7Jm90aWxkZTtlcyBkb3MgQ2FtcG9zJzsKJGxhbmdbJ2ZpbGUnXSA9ICdBcnF1aXZvJzsKJGxhbmdbJ2ZpbHRlcnMnXSA9ICdGaWx0cm9zJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8JzsKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdDb25maWd1cmEmY2NlZGlsOyZvdGlsZGU7ZXMgR2VyYWlzJzsKJGxhbmdbJ2dvJ10gPSAnSXInOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IGRvZXMgdGhpcyBkbz88L2gzPg0KPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgYSB3YXkgdG8gY29sbGVjdCwgb3JnYW5pemUsIGFuZCBkaXNwbGF5IGluZm9ybWF0aW9uIGFib3V0IHByb2R1Y3RzIGFuZCB0aGVpciBjYXRlZ29yaWVzLiAgVGhpcyBtb2R1bGUgY2FuIHN0YW5kIG9uIGl0cyBvd24sIG9yIGJlIHBhcnQgb2YgYW4gZS1jb21tZXJjZSBzb2x1dGlvbiBpZiB5b3Ugd2lzaC4gIFRoZSBtb2R1bGUgc3VwcG9ydHMgYSBwcm9kdWN0IGV4aXN0aW5nIGluIG1vcmUgdGhhbiBvbmUgY2F0ZWdvcnksIHN1cHBvcnRzIHByb2R1Y3Qgd2VpZ2h0LCBwcmljZSwgYW5kIGF0dHJpYnV0ZSBzZXRzLiAgRWFjaCBpdGVtIGluIGFuIGF0dHJpYnV0ZSBzZXQgY2FuIGhhdmUgYSBwcmljZSBhZGp1c3RtZW50LiAgQWxzbyBhIGdsb2JhbCBmbGFnIGluZGljYXRlcyB3ZXRoZXIgdGhlIHByb2R1Y3QgaXMgJiMwMzk7dGF4YWJsZSYjMDM5OyBvciBub3QuPC9wPg0KICA8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBtdWx0aXBsZSBjdXN0b20gZmllbGQgZGVmaW5pdGlvbnMsIGFuZCBmb3IgdGhlIGFiaWxpdHkgdG8gZGlzY3JpbWluYXRlIHByaXZhdGUgZnJvbSBwdWJsaWMgZGF0YS48L3A+DQo8aDM+RmVhdHVyZXM6PC9oMz4NCjx1bD4NCiAgPGxpPk51bWVyb3VzIFZpZXdzPC9saT4NCiAgICA8dWw+DQogICAgICA8bGk+U3VtbWFyeSB2aWV3PC9saT4NCiAgICAgIDxsaT5DYXRlZ29yeSBMaXN0IFZpZXc8L2xpPg0KICAgICAgPGxpPkRldGFpbCB2aWV3PC9saT4gDQogICAgICA8bGk+SGllcmFyY2h5IERyaWxsLWRvd24gVmlldzwvbGk+DQogICAgPC91bD4NCiAgPGxpPkVudGlyZWx5IERhdGFiYXNlIFRlbXBsYXRlIERyaXZlbjwvbGk+DQogIDxwPk51bWVyb3VzIHRlbXBsYXRlcyBvZiBlYWNoIHR5cGUgY2FuIGJlIGRlZmluZWQsIGRlZmF1bHRzIHNwZWNpZmllZCBmb3IgZWFjaCB0eXBlLCBhbmQgdGhlIHRlbXBsYXRlIHVzZWQgZm9yIGVhY2ggcGFydGljdWxhciB2aWV3IGNhbiBiZSBzcGVjaWZpZWQgYXMgYSBwYXJhbWV0ZXI8L3A+DQogIDxsaT5Tb3J0aW5nIGFuZCBwYWdpbmF0aW9uIGluIHRoZSBzdW1tYXJ5IHZpZXc8L2xpPg0KICA8bGk+UHJvZHVjdHMgY2FuIGV4aXN0IGluIG11bHRpcGxlIGNhdGVnb3JpZXM8L2xpPg0KICA8bGk+TnVtZXJvdXMgY3VzdG9tIGZpZWxkcyBjYW4gYmUgZGVmaW5lZCwgaW5jbHVkaW5nIGltYWdlczwvbGk+DQogIDxsaT5BdXRvbWF0aWMgdGh1bWJuYWlsIGNyZWF0aW9uPC9saT4NCiAgPGxpPkFkbWluIGRlZmluZWQgZmllbGRzPC9saT4NCiAgPGxpPlByb2R1Y3QgYXR0cmlidXRlcyAoaW5jbHVkaW5nIHByaWNlIGFkanVzdG1lbnQpPC9saT4NCiAgPGxpPldlaWdodCBhbmQgdGF4YWJsZSBmaWVsZHMgKGZvciB1c2UgaW4gZS1jb21tZXJjZSBzb2x1dGlvbnMpPC9saT4NCiAgPGxpPlByb2R1Y3RzIGNhbiBoYXZlIGEgc3RhdHVzIChwdWJsaXNoZWQgb3IgZHJhZnQpIGluIG9yZGVyIHRvIGhpZGUgcHJvZHVjdHMgZnJvbSBwdWJsaWMgZGlzcGxheSBhdCBhbnkgdGltZTwvbGk+DQogIDxsaT5QcmV0dHkgVVJMIFN1cHBvcnQ8L2xpPg0KICA8bGk+PHN0cm9uZz5Nb3JlLi4uPC9zdHJvbmc+PC9saT4NCjwvdWw+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgSXQ6PC9oMz4NCjx1bD4NCjxsaT5TZXQgcHJlZmVyZW5jZXM8L2xpPg0KPHA+VXN1YWxseSB0aGlzIGlzIGp1c3QgYSBmb3JtYWxpdHkuICBZb3Ugc2hvdWxkIHNwZWNpZnkgeW91ciBkZWZhdWx0IHdlaWdodCB1bml0cywgYW5kIHlvdXIgZGVmYXVsdCBjdXJyZW5jeSBzeW1ib2wgZm9yIHlvdXIgbG9jYWwgZW52aXJvbm1lbnQuPC9wPg0KPGxpPlNldHVwIHVzZXJzIGFuZCBwZXJtaXNzaW9uczwvbGk+DQo8cD5UaGlzIG1vZHVsZSB1c2VzIHRoZSAmIzAzOTtNb2RpZnkgVGVtcGxhdGVzJiMwMzk7IHBlcm1pc3Npb24gdG8gYWxsb3cgdXNlcnMgdG8gYmUgYWJsZSB0byBtb2RpZnkgdGhlIHZhcmlvdXMgdGVtcGxhdGVzIHRoYXQgY2FuIGJlIHVzZWQgYnkgdGhpcyBtb2R1bGUuICBBcyB3ZWxsLCB0aGUgJiMwMzk7TW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMmIzAzOTsgcGVybWlzc2lvbiBpcyBuZWVkZWQgdG8gYmUgYWJsZSB0byBhZGp1c3QgdGhlIG1vZHVsZXMgcHJlZmVyZW5jZXMuICBJbiBvcmRlciB0byBoYXZlIHRoZSBhYmlsaXR5IHRvIG1vZGlmeSBmaWVsZCBkZWZpbml0aW9ucywgY2F0ZWdvcmllcywgb3IgcHJvZHVjdHMsIHlvdXIgdXNlcnMgd2lsbCBuZWVkIHRoZSAmIzAzOTtNb2RpZnkgUHJvZHVjdHMmIzAzOTsgcGVybWlzc2lvbi48L3A+DQo8bGk+KG9wdGlvbmFsKSBEZWZpbmUgb25lIG9yIG1vcmUgY2F0ZWdvcmllczwvbGk+DQo8cD5UaGlzIGlzIGFuIG9wdGlvbmFsIHN0ZXAsIGJ1dCB5b3Ugd2lsbCBwcm9iYWJseSB3YW50IHRvIGRvIHRoaXMgZWFybHkgdG8gcHJldmVudCBoYXZpbmcgdG8gZ28gYmFjayB0byBtb2RpZnkgZWFjaCBhbmQgZXZlcnkgcHJvZHVjdCBsYXRlci4gIEFkZGluZyBhIGNhdGVnb3J5IGlzIGFzIHNpbXBsZSBhcyBjbGlja2luZyBvbiB0aGUgJiMwMzk7Q2F0ZWdvcmllcyYjMDM5OyB0YWIgaW4gdGhlIFByb2R1Y3QgTWFuYWdlcnMgYWRtaW4gc2VjdGlvbiwgYW5kIGNsaWNraW5nICYjMDM5O0FkZCBBIENhdGVnb3J5JiMwMzk7LiAgRnJvbSB0aGVyZSB5b3Ugd2lsbCBiZSBwcm9tcHRlZCBmb3IgYSBjYXRlZ29yeSBuYW1lLjwvcD4NCjxsaT4ob3B0aW9uYWwpIERlZmluZSBvbmUgb3IgbW9yZSBjdXN0b20gZmllbGRzPC9saT4NCjxwPlRoaXMgaXMgYW4gb3B0aW9uYWwgc3RlcC4gIEN1c3RvbSBmaWVsZHMgYXJlIG5vdCBuZWVkZWQgaWYgdGhpcyBtb2R1bGUgc3VpdHMgeW91IGV4YWN0bHkgYXMgaXQgaXMuICBIb3dldmVyIGlmIHlvdSB3b3VsZCBsaWtlIHRvIHN0b3JlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gZm9yIGVhY2ggb2YgeW91ciBwcm9kdWN0cyB5b3UgY2FuIGNyZWF0ZSBjdXN0b20gZmllbGRzLiAgQ3JlYXRpbmcgY3VzdG9tIGZpZWxkcyBpcyBzaW1pbGFyIHRvIGNyZWF0aW5nIGNhdGVnb3JpZXMsIGV4Y2VwdCB0aGF0IG1vcmUgZGF0YSBpcyByZXF1ZXN0ZWQuPC9wPg0KPHA+Q3VycmVudGx5IGEgbnVtYmVyIG9mIHR5cGVzIG9mIGN1c3RvbSBmaWVsZHMgYXJlIGF2YWlsYWJsZSwgaW5jbHVkaW5nOiAmIzAzOTt0ZXh0Ym94JiMwMzk7LCYjMDM5O2NoZWNrYm94JiMwMzk7LGFuZCAmIzAzOTt0ZXh0YXJlYSYjMDM5OywgJiMwMzk7ZHJvcGRvd24mIzAzOTssIGFuZCAmIzAzOTtmaWxlJiMwMzk7LiAgU2VsZWN0IG9uZSBvZiB0aGVzZSwgZ2l2ZSB5b3VyIG5ldyBmaWVsZCBhIG5hbWUsIGFuZCBpbmRpY2F0ZSB3ZXRoZXIgdGhhdCBmaWVsZCBzaG91bGQgYmUgdmlzaWJsZSB0byB0aGUgcHVibGljIGluIHRoZSB2YXJpb3VzIHZpZXdzLiAgVGhlbiBoaXQgc3VibWl0PC9wPg0KPGxpPkNyZWF0ZSBvbmUgb3IgbW9yZSBwcm9kdWN0czwvbGk+DQo8cD5Zb3Ugc2hvdWxkIGNyZWF0ZSBvbmUgb3IgbW9yZSBwcm9kdWN0cyB0byBkaXNwbGF5IGluIHlvdXIgd2Vic2l0ZSBjb250ZW50LiAgR2l2ZSBlYWNoIHByb2R1Y3QgYSBuYW1lLCBhIHByaWNlIChvcHRpb25hbCkgYSB3ZWlnaHQgKG9wdGlvbmFsKSwgYSBzdGF0dXMgKGRyYWZ0IG9yIHB1Ymxpc2hlZCksIGFuZCBzb21lIGluZm9ybWF0aW9uLiAgQWRkaXRpb25hbGx5LCB5b3UgY2FuIGFsc28gc3BlY2lmeSBpZiB0aGUgcHJvZHVjdCBpcyB0YXhhYmxlLjwvcD4NCjxwPklmIGNhdGVnb3JpZXMgYXJlIGRlZmluZWQsIHRoZW4gYSBjaGVja2JveCB3aWxsIGFwcGVhciBmb3IgZWFjaCBkZWZpbmVkIGNhdGVnb3J5LiAgWW91IGNhbiBzaW1wbHkgY2xpY2sgdGhlIGNoZWNrYm94IGZpZWxkcyBmb3IgZWFjaCBjYXRlZ29yeSB0aGF0IHRoaXMgcHJvZHVjdCBzaG91bGQgYmVsb25nIHRvLjwvcD4NCjxwPklmIGN1c3RvbSBmaWVsZHMgYXJlIGRlZmluZWQsIHRoZW4gaW5wdXQgZmllbGRzIGFwcHJvcHJpYXRlIHRvIHRoZSB0eXBlIG9mIGN1c3RvbSBmaWVsZCB3aWxsIGFwcGVhciBhbmQgYWxsb3cgeW91IHRvIHNwZWNpZnkgZGF0YSBmb3IgZWFjaCBvZiB0aGVtLiAgVGhpcyBkYXRhIGlzIG9wdGlvbmFsLjwvcD4NCjxsaT5BZGQgdGhlIGFwcHJvcHJpYXRlIHRhZ3MgaW50byB5b3VyIHBhZ2UgdGVtcGxhdGVzIG9yIHBhZ2UgY29udGVudDwvbGk+DQo8cD5UaGlzIGNhbiBiZSBhcyBzaW1wbGUgYXMgYWRkaW5nIHRoZSA8c3Ryb25nPntQcm9kdWN0c308L3N0cm9uZz4gdGFnIGludG8gdGhlIGNvbnRlbnQgYXJlYSBvZiBvbmUgb2YgeW91ciBwYWdlcywgb3IgaW50byB5b3VyIHBhZ2UgdGVtcGxhdGUuPC9wPg0KPHA+SWYgeW91IHdpc2ggdG8gYWx0ZXIgdGhlIGJlaGF2aW91ciBvZiB0aGlzIGFwcGxpY2F0aW9uIGZyb20gaXRzIGRlZmF1bHQsIHlvdSBjYW4gZG8gdGhhdCBieSBhZGRpbmcgb25lIG9yIG1vcmUgcGFyYW1ldGVycyB0byB0aGUgPHN0cm9uZz57UHJvZHVjdHN9PC9zdHJvbmc+IHRhZy4gIFRoZSBjb21wbGV0ZSBsaXN0IG9mIHBhcmFtZXRlcnMgYW5kIHRoZWlyIGJlaGF2aW91ciBpcyBsaXN0ZWQgYmVsb3cuICBCdXQgZm9yIGV4YW1wbGUsIHRvIGRpc3BsYXkgYSBsaXN0IG9mIHByb2R1Y3RzIGluIGEgc2luZ2xlLCBleGlzdGluZyBjYXRlZ29yeSwgeW91IGNvdWxkIHVzZSBhIHRhZyBsaWtlIDxjb2RlPntQcm9kdWN0cyBjYXRlZ29yeT0mIzAzOTtjYXRlZ29yeW5hbWUmIzAzOTt9PC9jb2RlPjwvcD4NCjwvdWw+DQo8aDM+U21hcnR5IFBsdWdpbnM8L2gzPg0KPHA+VGhpcyBtb2R1bGUgYWxzbyByZWdpc3RlcnMgb25lIG9yIG1vcmUgc21hcnR5IHBsdWdpbnMgdG8gYWlkZSBpbiByZXRyaWV2aW5nIHZhcmlvdXMgcHJvZHVjdHMgcmVsYXRlZCBpbmZvcm1hdGlvbiB3aGVuIGRlc2lnbmluZyBwcm9kdWN0cyBtb2R1bGUgdGVtcGxhdGVzOjwvcD4NCjx1bD4NCiAgPGxpPntwcm9kdWN0c19nZXRjYXRlZ29yeSBjYXRlZ29yeWlkPSYjMDM5Ozk5JiMwMzk7IFthc3NpZ249JiMwMzk7dG1wJiMwMzk7XX0NCiAgPHA+VGhpcyBwbHVnaW4gYWxsb3dzIHJldHJpZXZpbmcgYWxsIG9mIHRoZSBpbmZvcm1hdGlvbiBmb3IgYSBzcGVjaWZpYyBjYXRlZ29yeSBpZCBhbmQgb3B0aW9uYWxseSBhc3NpZ25pbmcgaXQgdG8gdGhlIG5hbWVkIHNtYXJ0eSB2YXJpYWJsZS4gIFRoZSByZXR1cm5lZCBpcyBhbiBvYmplY3QgY29udGFpbmluZyBhbGwgb2YgdGhlIGluZm9ybWF0aW9uIGFib3V0IGEgY2F0ZWdvcnksIGluY2x1ZGluZyBpdHMgZmllbGQgdmFsdWVzLjxici8+aS5lOi4gPGNvZGU+e3Byb2R1Y3RzX2dldGNhdGVnb3J5IGNhdGVnb3J5aWQ9MSBhc3NpZ249JiMwMzk7dG1wJiMwMzk7fUNhdGVnb3J5IG5hbWUgPSB7JHRtcC0+bmFtZX08L2NvZGU+PC9wPg0KICAgDQogICA8L3A+DQogIDwvbGk+DQo8L3VsPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuICBIb3dldmVyIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMgb3IgdG8gZmlsZSBhIGJ1ZyByZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgY21zIG1hZGUgc2ltcGxlIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlcnMgRm9yZ2U8L2E+IGFuZCBkbyBhIHNlYXJjaCBmb3IgJiMwMzk7UHJvZHVjdHMmIzAzOTs8L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPlJvYmVydCBDYW1wYmVsbDwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcm1zLjwvYT48L2xpPg0KPGxpPkZvciBzb21lIHF1ZXN0aW9ucyBhbmQgbGltaXRlZCB0ZWNobmljYWwgc3VwcG9ydCwgdGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPC91bD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZhbXA7Y29weTsgMjAwOCwgUm9iZXJ0IENhbXBiZWwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPiZhbXA7bHQ7Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZhbXA7Z3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+DQo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQNCmFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQ0KaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUw0KTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIA0Kc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS48L3A+DQo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQpNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCmFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+JzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0hpZXJhcnF1aWEnOwokbGFuZ1snaGllcmFyY2h5X3Bvc2l0aW9uJ10gPSAnUG9zaSZjY2VkaWw7JmF0aWxkZTtvIHBvciBIaWVyYXJxdWlhICc7CiRsYW5nWydpZCddID0gJ0lEJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ0ltYWdlbSc7CiRsYW5nWydpbWFnZV9oYW5kbGluZ19zZXR0aW5ncyddID0gJ0RlZmluaSZjY2VkaWw7Jm90aWxkZTtlcyBEZSBJbWFnZSc7CiRsYW5nWydpbXBvcnRfZnJvbV9jc3YnXSA9ICdJbXBvcnRhJmNjZWRpbDsmYXRpbGRlO28gZGUgUHJvZHV0b3MgcG9yIENTVic7CiRsYW5nWydpbmNoZXMnXSA9ICdQb2xlZ2FkYXMnOwokbGFuZ1snaW5jbHVkZV9jaGlsZHJlbiddID0gJ0luY2x1aXIgRmlsaG9zPyc7CiRsYW5nWydpbmZvX2FsbnVtb25seSddID0gJ1NvbWVudGUgY2FyYWN0ZXJlcyBhbGZhbnVtJmVhY3V0ZTtyaWNvcy4gTiZhdGlsZGU7byBhY2VpdGEgZXNwYSZjY2VkaWw7b3MgZW0gYnJhbmNvLCBhc3Bhcywgb3UgbGV0cmEvbiZ1YWN1dGU7bWVybyBzZW0gY29tYmluYSZjY2VkaWw7Jm90aWxkZTtlcyc7CiRsYW5nWydpbmZvX2F0dHJpYnRlbXBsYXRlJ10gPSAnUG9zcyZpYWN1dGU7dmVpcyB2YXJpJmFhY3V0ZTt2ZWlzIHMmYXRpbGRlO286IHskYXR0cmliX3RleHR9LHskYXR0cmliX2FkanVzdH0seyRjdXJyZW5jeV9zeW1ib2x9JzsKJGxhbmdbJ2luZm9fYXV0b3dhdGVybWFyayddID0gJ0RlZmluaSZjY2VkaWw7Jm90aWxkZTtlcyBXYXRlcm1hcmsgcyZhdGlsZGU7byByZWFsaXphZGFzIGEgcGFydGlyIGRvIE0mb2FjdXRlO2R1bG8gQ0dFeHRlbnNpb25zJzsKJGxhbmdbJ2luZm9fYmF0Y2hzaXplJ10gPSAnRGVmaW5pciBvIG4mdWFjdXRlO21lcm8gZGUgbGluaGFzIGEgcHJvY2Vzc28gcG9yICZxdW90O2xvdGUmcXVvdDsuIE9wZXJhJmNjZWRpbDsmb3RpbGRlO2VzIGFwJm9hY3V0ZTtzIHVtIGxvdGUgc2VyIGNvbXBsZXRvLCBvIGltcG9ydGFkb3IgaXImYWFjdXRlOyByZWRpcmVjY2lvbmFyLCBlIHJldG9tYXIgYXMgb3BlcmEmY2NlZGlsOyZvdGlsZGU7ZXMuIFNlIGVzdCZhYWN1dGU7IGNvbSBlcnJvcyBkZSBtZW0mb2FjdXRlO3JpYSwgb3UgcHJvYmxlbWFzIGRlICZxdW90O3RpbWVvdXQmcXVvdDsgZGV2aWRvIGEgZ3JhbmRlIHF1YW50aWRhZGUgZGUgcHJvY2Vzc2FtZW50bywgcG9kZSBwcmVjaXNhciBkZSBjb25zdWx0YXIgbyBzZXUgcHJvdmVkb3IgZGUgaG9zcGVkYWdlbSwgb3UgcmVkdXppciBlc3RlIG4mdWFjdXRlO21lcm8nOwokbGFuZ1snaW5mb19jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdFc3NlcyBwYXImYWNpcmM7bWV0cm9zIHMmYXRpbGRlO28gaW5kaWNhZG9zIHBhcmEgbyBtJm9hY3V0ZTtkdWxvIENhcnJpbmhvIHNlbGVjY2lvbmFkbyBkbyBwcm9kdXRvIGRldGFsaGUgZSBleGliZSBzdW0mYWFjdXRlO3Jpbyc7CiRsYW5nWydpbmZvX2NyZWF0ZWZpZWxkcyddID0gJ0NyaWFyIGNhbXBvcyBkZSBwcm9kdXRvIGRlc2NvbmhlY2lkbyBhdXRvbWF0aWNhbWVudGU/IDxlbT4gKEVsZXMgc2VyJmF0aWxkZTtvIGNyaWFkb3MgY29tbyBjYW1wb3MgZGUgdGV4dG8pIDwvZW0+JzsKJGxhbmdbJ2luZm9fY3JlYXRlY2F0ZWdvcmllcyddID0gJ0NyaWFyIGF1dG9tYXRpY2FtZW50ZSBhcyBjYXRlZ29yaWFzIGRlIHByb2R1dG9zIHBhcmEgY29pbmNpZGlyIGNvbSBhcyBkbyBhcnF1aXZvIENTViwgc2UgbiZhdGlsZGU7byBleGlzdGlyIGFpbmRhJzsKJGxhbmdbJ2luZm9fY3JlYXRlaGllcmFyY2h5J10gPSAnQ3JpYXIgYXV0b21hdGljYW1lbnRlIGFzICBoaWVyYXJxdWlhcyBkZSBwcm9kdXRvcyBwYXJhIGNvaW5jaWRpciBjb20gYXMgZG8gYXJxdWl2byBDU1YsIHNlIG4mYXRpbGRlO28gZXhpc3RpciBhaW5kYSc7CiRsYW5nWydpbmZvX2RlY2ltYWxfdW5pdHMnXSA9ICdFc3RlIHNpc3RlbWEgY29tcHJlZW5kZSAoLikgQ29tbyBvIHBvbnRvIGRlY2ltYWwgc2VwYXJhZG9yLiBvdSBzZWphOiA8c3Ryb25nPiA1LjI1IDwvc3Ryb25nPic7CiRsYW5nWydpbmZvX2RlbGltaXRlciddID0gJ0VzcGVjaWZpcXVlIG8gY2FyJmFhY3V0ZTtjdGVyIChvdSBjYXJhY3RlcmVzKSBxdWUgc2VwYXJhbSBjYWRhIGNhbXBvJzsKJGxhbmdbJ2luZm9fZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdFc3BlY2lmaWNhciBjb21vIG8gc2lzdGVtYSBkZXZlIHRyYXRhciB1bSBwcm9kdXRvIGVtIHF1ZSBvIG5vbWUgaiZhYWN1dGU7IGV4aXN0ZSBubyBhcnF1aXZvIENTVic7CiRsYW5nWydpbmZvX2ZpZWxkZGVmc190YWInXSA9ICc8c3Ryb25nPk5vdGE6IDwvc3Ryb25nPlRvZG9zIG9zIGNhbXBvcyBkZWZpbmlkb3MgZXN0JmF0aWxkZTtvIGFxdWkgZGlzcG9uJmlhY3V0ZTt2ZWlzIHBhcmEgdG9kb3Mgb3MgcHJvZHV0b3MuJzsKJGxhbmdbJ2luZm9fZmllbGRwcm9ibGVtcyddID0gJ0ZvcmFtIGVuY29udHJhZG9zIHByb2JsZW1hcyBxdWFuZG8gc2UgdHJhdGEgZGUgdW0gb3UgbWFpcyBjYW1wb3MgcGVyc29uYWxpemFkb3MuIEEgYWMmY2NlZGlsOyZhdGlsZGU7byBmb2kgY29uY2x1JmlhY3V0ZTtkYSBjb20gc3VjZXNzbywgbm8gZW50YW50byB2b2MmZWNpcmM7IGRldmVyJmFhY3V0ZTsgaW52ZXN0aWdhciBlIGNvcnJpZ2lyIGVzdGVzIHByb2JsZW1hcyc7CiRsYW5nWydpbmZvX2hhbmRsZWltYWdlcyddID0gJ0FwJm9hY3V0ZTtzIGEgaW1wb3J0YSZjY2VkaWw7JmF0aWxkZTtvLCBzZSB1bSBhcnF1aXZvIGRlIGltYWdlbSBmb3IgZW5jb250cmFkYSBlbSB1bWEgY29sdW5hIGRlIGNhbXBvLCBlbGEgZGV2ZSBzZXIgdHJhbnNmZXJpZGEgZG8gbG9jYWwgZGUgb3JpZ2VtLCBtYXJjYSBkZSAmYWFjdXRlO2d1YSwgbWluaWF0dXJhcywgZSBvIHRpcG8gZGUgY2FtcG8gYWx0ZXJhZG8gcGFyYSBhICZxdW90O2ltYWdlbSZxdW90Oyc7CiRsYW5nWydpbmZvX2ltYWdlcGF0aCddID0gJ08gY2FtaW5obyAocmVsYXRpdm8gYW8gZGlyZWN0Jm9hY3V0ZTtyaW8gZGUgL3VwbG9hZHMpIGVtIHF1ZSBhcyBpbWFnZW5zIHJlZmVyaWRhcyBubyBhcnF1aXZvIGRlIGltcG9ydGEmY2NlZGlsOyZhdGlsZGU7bywgcG9kZW0gc2VyIGVuY29udHJhZGFzJzsKJGxhbmdbJ2luZm9faW1wb3J0X3Rlc3RfcGFzc2VkJ10gPSAnVW0gdGVzdGUgYnJldmUgIGZvaSByZWFsaXphZG8gbmEgZW50cmFkYSBkbyBjYW1wbyBlc3BlY2lmaWNhZG8sIGUgdHVkbyBwYXJlY2UgZXN0YXIgY29ycmV0by4gPGJyLz4gRXN0ZSBuJmF0aWxkZTtvICZlYWN1dGU7IHVtIGluZCZpYWN1dGU7Y2lvIGRlIHF1ZSBuJmF0aWxkZTtvIGgmYWFjdXRlOyBlcnJvcyBubyBhcnF1aXZvLic7CiRsYW5nWydpbmZvX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdWYWxvcmVzIFYmYWFjdXRlO2xpZG9zIHMmYXRpbGRlO28gKy0qIy4jIyc7CiRsYW5nWydpbmZvX3Byb2Rub3Rmb3VuZCddID0gJ0VzdGEgb3AmY2NlZGlsOyZhdGlsZGU7byBkZXRlcm1pbmEgbyBjb21wb3J0YW1lbnRvIGRvIHNpdGUsIHNlIHVtIGRldGFpbCB2aWV3IGRvIHByb2R1dG8gJmVhY3V0ZTsgYWNlc3MmaWFjdXRlO3ZlbCBkaXJlY3RhbWVudGUgcGVsYSBVUkwsIGUgcXVlIG8gcHJvZHV0byBwb3IgcXVhbHF1ZXIgbW90aXZvIChkZXNhYmlsaXRhZG8sIGV4Y2x1JmlhY3V0ZTtkbywgZXRjKSBuJmF0aWxkZTtvIHBvZGVtIHNlciBhY2VzcyZpYWN1dGU7dmVpcy4nOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gJyZBYWN1dGU7cmVhcyBwJnVhY3V0ZTtibGljYXMgZXN0JmF0aWxkZTtvIGRpc3BvbiZpYWN1dGU7dmVpcyBwYXJhIHNlcmVtIHZpc3VhbGl6YWRhcyc7CiRsYW5nWydsYWJlbCddID0gJ0Jsb2NvIChMYWJlbCknOwokbGFuZ1snbGFiZWxfc2tpcCddID0gJ1NhbHRhcic7CiRsYW5nWydsYWJlbF9vdmVyd3JpdGUnXSA9ICdTdWJzdGl0dWlyJzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnPj4nOwokbGFuZ1snbGFzdF9tb2RpZmllZCddID0gJyZVYWN1dGU7bHRpbWEgTW9kaWZpY2EmY2NlZGlsOyZhdGlsZGU7byc7CiRsYW5nWydsb2dvdGV4dCddID0gJ1NlZ3VuZGEgSW1hZ2VtJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ0NvbXByaW1lbnRvIG0mYWFjdXRlO3hpbW8gPGVtPihhcGxpYyZhYWN1dGU7dmVsIHNvbWVudGUgbm9zIGNhbXBvcyBjYWl4YXMgZGUgdGV4dG8gKTwvZW0+JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ0RhdGEgZGEgbW9kaWZpY2EmY2NlZGlsOyZhdGlsZGU7byc7CiRsYW5nWydtb2R1bGVfZGVzY3JpcHRpb24nXSA9ICdVbSBtJm9hY3V0ZTtkdWxvIGRlIGdlc3QmYXRpbGRlO28gZGUgdW0gY2F0JmFhY3V0ZTtsb2dvIGRlIHByb2R1dG9zLCBvcyBzZXVzIHByZSZjY2VkaWw7b3MsIGltYWdlbnMsIGV0YywgZSBwYXJhIHBlcm1pdGlyIHF1ZSBvcyB1c3UmYWFjdXRlO3Jpb3MgdGVuaGFtIHVtIGNhcnJpbmhvJzsKJGxhbmdbJ21vdmVfZG93biddID0gJ0Rlc2Nlcic7CiRsYW5nWydtb3ZlX3VwJ10gPSAnU3ViaXInOwokbGFuZ1snbmFtZSddID0gJ05vbWUnOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdOJmF0aWxkZTtvIHRlbSBhIGF1dG9yaXphJmNjZWRpbDsmYXRpbGRlO28gbmVjZXNzJmFhY3V0ZTtyaWE6ICVzJzsKJGxhbmdbJ25ld19jYXRlZ29yeV9uYW1lJ10gPSAnTm92YSBDYXRlZ29yaWEgTm9tZSc7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbm8nXSA9ICdOJmF0aWxkZTtvJzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnTmVuaHVtIG5vbWUgZm9pIGZvcm5lY2lkbyc7CiRsYW5nWydub25lJ10gPSAnTiZhdGlsZGU7byc7CiRsYW5nWydvZiddID0gJ2RlJzsKJGxhbmdbJ3BhZ2UnXSA9ICdQJmFhY3V0ZTtnaW5hJzsKJGxhbmdbJ3BhZ2Vfb2YnXSA9ICdQJmFhY3V0ZTtnaW5hICVzIGRlICVzJzsKJGxhbmdbJ3BhZ2VfbGltaXQnXSA9ICdQJmFhY3V0ZTtnaW5hIEwmaWFjdXRlO21pdGUnOwokbGFuZ1sncGFyYW1fYWN0aW9uJ10gPSAnU3BlY2lmeSB0aGUgYmVoYXZpb3VyIG9mIHRoZSBtb2R1bGUuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+aGllcmFyY2h5IC0tIERpc3BsYXkgYSBwcm9kdWN0IGxpc3QgYnkgaGllcmFyY2h5PC9saT4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtIERpc3BsYXkgYSBsaXN0IG9mIHByb2R1Y3QgY2F0ZWdvcmllczwvbGk+DQogIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gRGlzcGxheSBhIHN1bW1hcnkgb2YgcHJvZHVjdHM8L2xpPg0KICA8bGk+ZGV0YWlscyAtIERpc3BsYXkgYSBkZXRhaWwgdmlldyBvZiBhIHNpbmdsZSBwcm9kdWN0PC9saT4NCiAgPGxpPmZpZWxkbGlzdCAtIERpc3BsYXkgYSBsaXN0IG9mIHZhbHVlcyBmcm9tIGEgc3BlY2lmaWVkIGZpZWxkLg0KICAgICA8cD4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOy0gVGhpcyBhY3Rpb24gY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGEgbmF2aWdhdGlvbiBmcm9tIHRoZSB2YWx1ZXMgb2YgYSBzcGVjaWZpYyBmaWVsZC4gIGkuZTogIHlvdSBjb3VsZCBjcmVhdGUgYSBjdXN0b20gZHJvcGRvd24gZmllbGQgY2FsbGVkICZhbXA7cXVvdDtjb2xvciZhbXA7cXVvdDsgYW5kIHRoZW4gY3JlYXRlIGEgbmF2aWdhdGlvbiBiYXNlZCBvbiB0aGUgZGlmZmVyZW50IGNvbG9ycy4NCiAgICAgPC9wPg0KICA8L2xpPg0KICA8bGk+c2VhcmNoIC0gRGlzcGxheSBhIGZvcm0gdG8gYWxsb3cgc2VhcmNoaW5nIHByb2R1Y3RzIG9uIHZhcmlvdXMgY3JpdGVyaXVtPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnUXVhbmRvIHV0aWxpemFkbyBlbSA8ZW0+IHBhZHImYXRpbGRlO28gPC8gZW0+IG1vZG8gc3VtJmFhY3V0ZTtyaW8sIGVzdGUgcGFyJmFjaXJjO21ldHJvLCBkZXZlIHNlciBpZ3VhbCBhbyBub21lIGRlIHVtYSBjYXRlZ29yaWEgZXhpc3RlbnRlIHNlciZhYWN1dGU7IHV0aWxpemFkbyBwYXJhIGV4aWJpciBhcGVuYXMgYXMgZW1wcmVzYXMgcXVlIGVzdCZhdGlsZGU7byBuZXNzYSBjYXRlZ29yaWEuIChVbWEgbGlzdGEgc2VwYXJhZGEgcG9yIHYmaWFjdXRlO3JndWxhcyBwb2RlIHNlciBmb3JuZWNpZGEpJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnJlVhY3V0ZTt0aWwgYXBlbmFzIGNvbSBvIGxpc3RhcyBkZSBjYXRlZ29yaWFzLCBlc3RlIHBhciZhY2lyYzttZXRybyBpbmRpY2EgbyB0ZW1wbGF0ZSBxdWUgZGV2ZSBzZXIgdXRpbGl6YWRvIHBhcmEgYSBleGliaSZjY2VkaWw7JmF0aWxkZTtvLiBTZSBuZW5odW0gdmFsb3IgZm9yIGVzcGVjaWZpY2FkbywgZW50JmF0aWxkZTtvIG8gYWN0dWFsIHRlbXBsYXRlIHBhZHImYXRpbGRlO28gJmVhY3V0ZTsgdXNhZG8uJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdGR0bHRlbXBsYXRlJ10gPSAnJlVhY3V0ZTt0aWwgYXBlbmFzIGNvbSBhcyBhJmNjZWRpbDsmb3RpbGRlO2VzICZxdW90O2NhdGVnb3J5bGlzdCZxdW90OyAsIGVzdGUgcGFyJmFjaXJjO21ldHJvIGluZGljYSBvIHRlbXBsYXRlIHF1ZSBkZXZlIHNlciB1dGlsaXphZG8gcGFyYSBhIGV4aWJpJmNjZWRpbDsmYXRpbGRlO28gZG8gZGV0YWxoZSBkYSBjYXRlZ29yaWEuIFNlIG5lbmh1bSB2YWxvciBmb3IgZXNwZWNpZmljYWRvLCBlbnQmYXRpbGRlO28gbyBhY3R1YWwgdGVtcGxhdGUgcGFkciZhdGlsZGU7byAmZWFjdXRlOyB1c2Fkby4nOwokbGFuZ1sncGFyYW1fZGV0YWlscGFnZSddID0gJ0VzcGVjaWZpY2EgbyBwYWdlaWQgb3UgYWxpYXMgcXVlIGRldmUgc2VyIHVzYWRvIHBhcmEgZXhpYmlyIG8gcmVsYXQmb2FjdXRlO3JpbyBkZSBkZXRhbGhlcyAuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnRXN0ZSBwYXImYWNpcmM7bWV0cm8gZXNwZWNpZmljYSBvIHRlbXBsYXRlIHF1ZSBkZXZlIHNlciB1dGlsaXphZG8gcGFyYSBvIGRldGFsaGUuIFNlIG5lbmh1bSB2YWxvciBmb3IgZXNwZWNpZmljYWRvLCBvIHRlbXBsYXRlIHBhZHImYXRpbGRlO28gJmVhY3V0ZTsgdXNhZG8uJzsKJGxhbmdbJ3BhcmFtX2ZpZWxkJ10gPSAnVXNhZG8gcyZvYWN1dGU7IGVtIDxlbT5maWVsZGxpc3Q8L2VtPiBhYyZjY2VkaWw7JmF0aWxkZTtvLCBuZXN0ZSBwYXImYWNpcmM7bWV0cm8gJmVhY3V0ZTsgbmVjZXNzJmFhY3V0ZTtyaW8gZXNwZWNpZmljYXIgbyBub21lIGRlIHVtYSBwcm9wcmllZGFkZSBkZWZpbmlkYSBwZWxvIHV0aWxpemFkb3IgcGFyYSBjcmlhciB1bWEgbGlzdGEgZGUgZGUuJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeSddID0gJyZVYWN1dGU7dGVpcyBhcGVuYXMgbm8gPGVtPiBwYWRyJmF0aWxkZTtvIDwvZW0+LCBlc3RlIHBhciZhY2lyYzttZXRybyBlc3BlY2lmaWNhIHF1ZSBhcGVuYXMgb3MgaXRlbnMgZW0gcXVlIGEgbG9jYWxpemEmY2NlZGlsOyZhdGlsZGU7byBkYSBoaWVyYXJxdWlhIGRldmUgc2VyIGV4aWJpZG8uIFdpbGRjYXJkIHBvZGVtIHNlciB1dGlsaXphZG9zIGRlIG1vZG8gcXVlIHBvZGUgZXNwZWNpZmljYXIgbSZhdGlsZGU7ZS9maWxobyByZWxhY2lvbmFtZW50b3MuIEUuWC4ge1Byb2R1Y3RzIGhpZXJhcmNoeT0mIzAzOTt0cnVja3MqJiMwMzk7fSBpciZhYWN1dGU7IGNyaWFyIHVtYSBzJmlhY3V0ZTtudGVzZSBkZSB0b2RvcyBvcyBjYW1pJm90aWxkZTtlcywgaW5jbHVpbmRvIG9zIGZpbGhvcyBuYSBoaWVyYXJxdWlhLiBEYSBtZXNtYSBtYW5laXJhLCB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5Oyp0cnVja3MmIzAzOTt9IGV4aWJpciZhYWN1dGU7IHVtIHJlbGF0Jm9hY3V0ZTtyaW8tcyZpYWN1dGU7bnRlc2UgZGUgdG9kb3Mgb3MgY2FtaSZvdGlsZGU7ZXMsIGUgdG9kb3Mgb3MgcHJvZHV0b3MgcGVydGVuY2VudGVzIGEgcXVhbHF1ZXIgcGFpIG5hIGhpZXJhcnF1aWEuJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeXRlbXBsYXRlJ10gPSAnRXN0ZSBwYXImYWNpcmM7bWV0cm8gZXNwZWNpZmljYSBvIHRlbXBsYXRlIHF1ZSBkZXZlIHNlciB1c2FkbyBwYXJhIGV4aWJpciBhIGhpZXJhcnF1aWEuIFNlIG5lbmh1bSB2YWxvciBmb3IgZXNwZWNpZmljYWRvLCBlbnQmYXRpbGRlO28gbyBhY3R1YWwgdGVtcGxhdGUgcGFkciZhdGlsZGU7byBkbyB0aXBvIHF1ZSBlc3QmYWFjdXRlOyBzZXIgdXNhZG8uJzsKJGxhbmdbJ3BhcmFtX2lubGluZSddID0gJyZVYWN1dGU7dGlsIGFwZW5hcyBjb20gYSBhYyZjY2VkaWw7JmF0aWxkZTtvIGRlIHBlc3F1aXNhLCBlc3RlIHBhciZhY2lyYzttZXRybyBlc3BlY2lmaWNhIHF1ZSBhIHNhJmlhY3V0ZTtkYSBkYSBleGliaSZjY2VkaWw7JmF0aWxkZTtvIGRlIHN1bW0mYWFjdXRlO3JpbyBkZXZlIHNlciBleGliaWRvICZxdW90O2lubGluZSZxdW90Oyc7CiRsYW5nWydwYXJhbV9wYWdlbGltaXQnXSA9ICcmVWFjdXRlO3RpbCBhcGVuYXMgY29tIGEgYWMmY2NlZGlsOyZhdGlsZGU7byAgPGVtPnBhZHImYXRpbGRlO288L2VtPiAsIGVzdGUgcGFyJmFjaXJjO21ldHJvIGVzcGVjaWZpY2EgcXVhbnRvcyBpdGVucyBkZXZlbSBzZXIgbGlzdGFkb3MgZW0gY2FkYSBwJmFhY3V0ZTtnaW5hLic7CiRsYW5nWydwYXJhbV9wYXJlbnQnXSA9ICcmVWFjdXRlO3RlaXMgYXBlbmFzIG5hIDxlbT4gaGllcmFycXVpYSA8L2VtPiwgZXN0ZSBwYXImYWNpcmM7bWV0cm8gZXNwZWNpZmljYSBhIGhpZXJhcnF1aWEgaWQgZGEgcGFydGlkYSBkYSBsb2NhbGl6YSZjY2VkaWw7JmF0aWxkZTtvIGRvIHJlbGF0Jm9hY3V0ZTtyaW8uJzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RpZCddID0gJyZVYWN1dGU7dGlsIGFwZW5hcyBjb20gYSBhYyZjY2VkaWw7JmF0aWxkZTtvIGRlIGRldGFsaGUgLCBlc3RlIHBhciZhY2lyYzttZXRybyBpbmRpY2EgbyBwcm9kdXRvIHF1ZSBwcmV0ZW5kZSBleGliaXIuJzsKJGxhbmdbJ3BhcmFtX3Jlc3VsdHBhZ2UnXSA9ICdBcGxpYyZhYWN1dGU7dmVsIGFwZW5hcyAmYWdyYXZlOyBhYyZjY2VkaWw7JmF0aWxkZTtvIGRlIHBlc3F1aXNhLCBlc3RlIHBhciZhY2lyYzttZXRybyBlc3BlY2lmaWNhIHVtYSAmcXVvdDtwYWdlSUQmcXVvdDsgIG91ICZxdW90O2FsaWFzJnF1b3Q7IGEgc2VyIHVzYWRvIHBhcmEgZXhpYmlyIG9zIHJlc3VsdGFkb3MgZGUgcGVzcXVpc2EnOwokbGFuZ1sncGFyYW1fc2VhcmNoZmllbGQnXSA9ICdBcGxpYyZhYWN1dGU7dmVsIGFwZW5hcyAmYWdyYXZlOyBhYyZjY2VkaWw7JmF0aWxkZTtvIGRlIHBlc3F1aXNhLCBlc3RlIHBhciZhY2lyYzttZXRybyBwb2RlIGNvbnRlciB1bWEgbGlzdGEgc2VwYXJhZGEgcG9yIHYmaWFjdXRlO3JndWxhcyBkZSBub21lcyBkZSBjYW1wb3MgcGFyYSBpbmNsdWlyIG5hIHBlc3F1aXNhJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZvcm10ZW1wbGF0ZSddID0gJ0FwbGljJmFhY3V0ZTt2ZWwgYXBlbmFzICZhZ3JhdmU7IGFjJmNjZWRpbDsmYXRpbGRlO28gZGUgcGVzcXVpc2EsIGVzdGUgcGFyJmFjaXJjO21ldHJvIHBlcm1pdGUgZXNwZWNpZmljYXIgdW0sICB0ZW1wbGF0ZSBuJmF0aWxkZTtvIHBhZHImYXRpbGRlO28gZGUgbyBmb3JtdWwmYWFjdXRlO3JpbyBkYSBwZXNxdWlzYSAnOwokbGFuZ1sncGFyYW1fc2hvd2FsbCddID0gJ0FwbGljJmFhY3V0ZTt2ZWwgYXBlbmFzICZhZ3JhdmU7IGFjJmNjZWRpbDsmYXRpbGRlO28gY2F0ZWdvcnlsaXN0LCBzZSBlc3RlIHBhciZhY2lyYzttZXRybyBmb3IgZGVmaW5pZG8gcGFyYSB1bSB2YWxvciBuJmF0aWxkZTtvIGludGVpcm8gMCwgdG9kYXMgYXMgY2F0ZWdvcmlhcyAobWVzbW8gYXF1ZWxlcyBzZW0gcHJvZHV0b3MpIHNlciZhdGlsZGU7byBleGliaWRhcy4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnRXNwZWNpZmljYXIgYSBvcmRlbSBkb3MgY2FtcG9zIG9yZGVuYWRvcyBubyBzdW0mYWFjdXRlO3Jpby4gT3MgdmFsb3JlcyBwb3NzJmlhY3V0ZTt2ZWlzIHMmYXRpbGRlO286DQo8dWw+DQogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBBc2NlbmRpbmcgb3JkZXI8L2xpPg0KICA8bGk+ZGVzYyAtLSBEZXNjZW5kaW5nIG9yZGVyPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gJ0FwbGljJmFhY3V0ZTt2ZWwgYXBlbmFzIGVtIG1vZG8gc3VtJmFhY3V0ZTtyaW8sIGVzdGUgcGFyJmFjaXJjO21ldHJvIGRldGVybWluYSBhIHRyaWFnZW0gZGFzIGVtcHJlc2FzIGRlIHNhJmlhY3V0ZTtkYS4gT3MgdmFsb3JlcyBwb3NzJmlhY3V0ZTt2ZWlzIHMmYXRpbGRlO286DQo8dWw+DQogIDxsaT48c3Ryb25nPnByb2R1Y3RfbmFtZTwvc3Ryb25nPjwvbGk+DQogIDxsaT5pZCAtLSBUaGUgcHJvZHVjdCBpZDwvbGk+DQogIDxsaT53ZWlnaHQgLS0gVGhlIHByb2R1Y3Qgd2VpZ2h0PC9saT4NCiAgPGxpPnByaWNlIC0tIFRoZSBwcm9kdWN0IGJhc2UgcHJpY2U8L2xpPg0KICA8bGk+c3RhdHVzIC0tIERyYWZ0IG9yIHB1Ymxpc2hlZDwvbGk+DQogIDxsaT5yYW5kb20gLS0gRGlzcGxheSBpbiByYW5kb20gb3JkZXIgb24gZWFjaCByZXF1ZXN0PC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gVGhlIGNyZWF0aW9uIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KICA8bGk+bW9kaWZpZWQgLS0gVGhlIG1vZGlmaWVkIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KICA8bGk+ZjpmaWVsZG5hbWUgLS0gQWxsb3dzIHNvcnRpbmcgYnkgdmFsdWVzIG9mIGN1c3RvbSBmaWVsZHMuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnR0eXBlJ10gPSAnQXBsaWMmYWFjdXRlO3ZlbCBhcGVuYXMgYW8gc3VtbWFyeSB2aWV3IHBhZHImYXRpbGRlO28sIGVzc2UgcGFyJmFjaXJjO21ldHJvICZlYWN1dGU7IHVzYWRvIHBhcmEgY29udmVydGVyIG9zIHZhbG9yZXMgcGFyYSBvdXRybyB0aXBvIGRlIG9yZGVuYSZjY2VkaWw7JmF0aWxkZTtvLiBWYWxvcmVzIHYmYWFjdXRlO2xpZG9zIHMmYXRpbGRlO286IFNUUklORyxTSUdORUQgZSBVTlNJR05FRC4gU2UgbiZhdGlsZGU7byBmb3IgZm9ybmVjaWRvIHF1YWxxdWVyIGRhZG8sIG8gdGlwbyBTVFJJTkcgJmVhY3V0ZTsgYXNzdW1pZG8gcG9yIHBhZHImYXRpbGRlO28uJzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnlwYWdlJ10gPSAnQXBsaWMmYWFjdXRlO3ZlbCBhcGVuYXMgJmFncmF2ZTsgJnF1b3Q7YWN0aW9uPWhpZXJhcmNoeSZxdW90OywgcGVybWl0ZSBlc3BlY2lmaWNhciB1bWEgaWQgZGEgcCZhYWN1dGU7Z2luYSBvdSBhbGlhcyBxdWUgc2VyJmFhY3V0ZTsgdXRpbGl6YWRvIHBhcmEgcXVhaXNxdWVyIGxpbmtzIHBhcmEgdmVyIHN1bW1hcnknOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnRXN0ZSBwYXImYWNpcmM7bWV0cm8gZXNwZWNpZmljYSBubyB0ZW1wbGF0ZSBxdWUgZGV2ZSBzZXIgdXRpbGl6YWRvIHBhcmEgYSBleGliaSZjY2VkaWw7JmF0aWxkZTtvIGRvIHN1bSZhYWN1dGU7cmlvLiBTZSBuZW5odW0gdmFsb3IgZm9yIGVzcGVjaWZpY2FkbywgbyBwYWRyJmF0aWxkZTtvIGFjdHVhbCAmZWFjdXRlOyB1c2Fkby4nOwokbGFuZ1sncGFyYW1fdXNlb2xkaGllcmFyY2h5J10gPSAnVXNhciBvIG1vZG8gYW50aWdhIGRhIGhpZXJhcnF1aWEgcXVlIGdlcmEgdW1hIGxpc3RhIGZpeGEgZGUgaGllcmFycXVpYXMgYWJhaXhvIGRvIG4maWFjdXRlO3ZlbCBhY3R1YWwuIEVzdGEgbW9kYWxpZGFkZSBlc3QmYWFjdXRlOyBvYnNvbGV0YSBlIHNlciZhYWN1dGU7IHJlbW92aWRhIGVtIHVtYSBkYXRhIHBvc3Rlcmlvci4nOwokbGFuZ1sncGFyZW50J10gPSAnUGFyZW50ZSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ00mb2FjdXRlO2R1bG8gUHJvZHV0b3MgZm9pIGluc3RhbGFkbyBjb20gc3VjZXNzbyc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnTyBtJm9hY3V0ZTtkdWxvIFByb2R1dG9zIGZvaSByZW1vdmlkbyBqdW50YW1lbnRlIGNvbSB0b2RvcyBvcyBkYWRvcyBhc3NvY2lhZG9zJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnUHJlZmVyJmVjaXJjO25jaWFzJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ1JlbW92ZW5kbyBlc3RlIG0mb2FjdXRlO2R1bG8gdGFtYiZlYWN1dGU7bSBpciZhYWN1dGU7IHJlbW92ZXIgdG9kb3Mgb3MgZGFkb3MgYXNzb2NpYWRvcywgdGVtIGNlcnRlemEgZGUgcXVlIGRlc2VqYSBwcm9zc2VndWlyPyc7CiRsYW5nWydwcmljZSddID0gJ1ByZSZjY2VkaWw7byc7CiRsYW5nWydwcmljZV9hZGp1c3RtZW50J10gPSAnQWp1c3RlcyBkZSBwcmUmY2NlZGlsO29zJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCc7CiRsYW5nWydwcm9kdWN0J10gPSAnUHJvZHVjdG8nOwokbGFuZ1sncHJvZHVjdG5hbWUnXSA9ICdQcm9kdWN0byBOb21lJzsKJGxhbmdbJ3Byb2R1Y3RzJ10gPSAnR2VzdCZhdGlsZGU7byBkbyBQcm9kdWN0byc7CiRsYW5nWydwcm9kdWN0X2RldGFpbF9zZXR0aW5ncyddID0gJ0NvbmZpZ3VyYSZjY2VkaWw7JmF0aWxkZTtvIERldGFsaGUgZG8gUHJvZHV0byc7CiRsYW5nWydwcm9kdWN0X2hpZXJhcmNoeSddID0gJ0hpZXJhcnF1aWEgUHJvZHVjdG8nOwokbGFuZ1sncHJvZHVjdF9tYW5hZ2VyJ10gPSAnR2VzdCZhdGlsZGU7byBkZSBQcm9kdXRvcyc7CiRsYW5nWydwcm9ncmVzcyddID0gJ1Byb2dyZXNzbyc7CiRsYW5nWydwcm9tcHQnXSA9ICdDb21hbmRvJzsKJGxhbmdbJ3Byb21wdF9hZGRfYXR0cmlic2V0J10gPSAnQWRpY2luYXIvRWRpdGFyIENvbmp1bnRvIGRlIGF0cmlidXRvcyc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnXSA9ICdQZXJtaXRpciBjYXJyZWdhciBhcnF1aXZvcyBjb20gYXMgZXh0ZW5zJm90aWxkZTtlcyAocGFyYSBvIHRpcG8gY2FtcG9zIGRlIGFycXVpdm8gKSc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZXR5cGVzJ10gPSAnUGVybWl0aXIgY2FycmVnYXIgaW1hZ2VucyBjb20gZXNzYXMgZXh0ZW5zJm90aWxkZTtlcyAocGFyYSBvIHRpcG8gY2FtcG9zIGRlIGltYWdlbSknOwokbGFuZ1sncHJvbXB0X2F0dHJpYnRlbXBsYXRlJ10gPSAnVGVtcGxhdGUgcGFyYSBhcHJlc2VudGEmY2NlZGlsOyZhdGlsZGU7byBkZSB2YWxvcmVzIGRvcyBhdHJpYnV0b3MgZG8gcHJvZHV0byBlbSBtZW51IHN1c3BlbnNvJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsJ10gPSAnQ3JpYXIgYXV0b21hdGljYW1lbnRlIG1pbmlhdHVyYXMgZGFzIGltYWdlbnMnOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWxfc2l6ZSddID0gJ1RhbWFuaG8gbSZhYWN1dGU7eGltbyAobWFpb3IgZGltZW5zJmF0aWxkZTtvKSBkYSBtaW5pYXR1cmEuJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZyddID0gJ0NyaWFyIGF1dG9tYXRpY2FtZW50ZSBpbWFnZW5zIGRlIHZpc3VhbGl6YSZjY2VkaWw7JmF0aWxkZTtvJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZ19zaXplJ10gPSAnVGFtYW5obyBtJmFhY3V0ZTt4aW1vIChtYWlvciBkaW1lbnMmYXRpbGRlO28pIGRhIGltYWdlbSBkZSB2aXN1YWxpemEmY2NlZGlsOyZhdGlsZGU7by4nOwokbGFuZ1sncHJvbXB0X2F1dG93YXRlcm1hcmsnXSA9ICdMdWdhciBhdXRvbSZhYWN1dGU7dGljbyBkYXMgbWFyY2FzIGQmIzAzOTsmYWFjdXRlO2d1YSBlbSBpbWFnZW5zJzsKJGxhbmdbJ3Byb21wdF9hcHBsaWNhYmxlJ10gPSAnQWN0aXZhciBwb3IgcGFkciZhdGlsZGU7byBwYXJhIHRvZG9zIG9zIG5vdm9zIHByb2R1dG9zJzsKJGxhbmdbJ3Byb21wdF9iYXRjaHNpemUnXSA9ICdUYW1hbmhvIGRvIExvdGUnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlJ10gPSAnQ2FycmluaG8gTSZvYWN1dGU7ZHVsbyc7CiRsYW5nWydwcm9tcHRfY2FydF9tb2R1bGVfcGFyYW1zJ10gPSAnQ2FycmluaG8gTSZvYWN1dGU7ZHVsbyBQYXImYWNpcmM7bWV0cm9zJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVjYXRlZ29yaWVzJ10gPSAnQ3JpYXIgQ2F0ZWdvcmlhcyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlZmllbGRzJ10gPSAnQ3JpYXIgQ2FtcG9zIG5vIFByb2R1dG8/JzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVoaWVyYXJjaHknXSA9ICdDcmlhciB1bSBQcm9kdWN0byBIaWVyYXJxdWlhJzsKJGxhbmdbJ3Byb21wdF9jc3ZmaWxlJ10gPSAnQ2FycmVnYXIgZmljaGVpcm8gQ1NWJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeWNvZGUnXSA9ICdDJm9hY3V0ZTtkaWdvIGRvIFMmaWFjdXRlO21ib2xvJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeXN5bWJvbCddID0gJ1MmaWFjdXRlO21ib2xvIGRhIG1vZWRhJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0X3N0YXR1cyddID0gJ1BvciBkZWZlaXRvLCB0b2RvcyBvcyBub3ZvcyBwcm9kdXRvcyB0JmVjaXJjO20gZXN0ZSBlc3RhZG8nOwokbGFuZ1sncHJvbXB0X2RlZmF1bHRfdGF4YWJsZSddID0gJ1BvciBkZWZlaXRvLCB0b2RvcyBvcyBub3ZvcyBwcm9kdXRvcyBzJmF0aWxkZTtvIHRyaWJ1dCZhYWN1dGU7dmVpcyc7CiRsYW5nWydwcm9tcHRfZGVsZXRlcHJvZHVjdGZpbGVzJ10gPSAnRXhjbHVhIHF1YWlzcXVlciBhcnF1aXZvcyBhc3NvY2lhZG9zIGNvbSBvIHByb2R1dG8sIHF1YW5kbyBvIHByb2R1dG8gZm9yIGV4Y2x1JmlhY3V0ZTtkbz8nOwokbGFuZ1sncHJvbXB0X2RlbGltaXRlciddID0gJ0RlbGltaXRhZG9yIGRlIENhbXBvJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnUCZhYWN1dGU7Z2luYSBEZXRhbGhlIFBhZHImYXRpbGRlO28nOwokbGFuZ1sncHJvbXB0X2RldGFpbHNmb3InXSA9ICdEZXRhaWxoZXMgcGFyYSAlcyc7CiRsYW5nWydwcm9tcHRfZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdDb21vIGxpZGFyIGNvbSBwcm9kdXRvcyBkdXBsaWNhZG9zPyc7CiRsYW5nWydwcm9tcHRfaGFuZGxlaW1hZ2VzJ10gPSAnTWFuaXB1bGFyIGltYWdlbnM/JzsKJGxhbmdbJ3Byb21wdF9pbWFnZXBhdGgnXSA9ICdDYW1pbmhvIGRhIEltYWdlbSc7CiRsYW5nWydwcm9tcHRfbGVuZ3RodW5pdHMnXSA9ICdVbmlkYWRlcyBkZSBjb21wcmltZW50byc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfYmVoYXZpb3InXSA9ICdRdWUgYWMmY2NlZGlsOyZhdGlsZGU7byBkZXZlIHNlciB0b21hZGEgcXVhbmRvIHVtIHByb2R1dG8gbiZhdGlsZGU7byBwb2RlIHNlciBleGliaWRvPyc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfNDA0J10gPSAnR2VyYXIgdW0gZXJybyA0MDQnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzMwMSddID0gJ0dlcmFyIHVtIHJlZGlyZWNpb25hbWVudG8gMzAxJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9lcnJvcm1zZyddID0gJ0V4aWJpciB1bWEgbWVuc2FnZW0gZGUgZXJybyc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfbXNnJ10gPSAnTWVuc2FnZW0gZGUgZXJybyBwYXJhIHF1YW5kbyB1bSBwcm9kdXRvIG4mYXRpbGRlO28gcG9kZSBzZXIgZW5jb250cmFkbyc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfcGFnZSddID0gJ1AmYWFjdXRlO2dpbmEgZGUgZmF6ZXIgcmVkaXJlY2lvbmFtZW50byBwZXJtYW5lbnRlIHBhcmE/JzsKJGxhbmdbJ3Byb21wdF9wcm9kX2RldGFpbHBhZ2UnXSA9ICdQJmFhY3V0ZTtnaW5hIHBhZHImYXRpbGRlO28gcGFyYSBvcyBWaWV3cyBQcm9kdWN0IERldGFpbCc7CiRsYW5nWydwcm9tcHRfcHJvZHVjdHNfbWF0Y2hpbmcnXSA9ICdQcm9kdXRvcyBxdWUgY29ycmVzcG9uZGVtICAlcyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRvcmRlciddID0gJ09yZGVuYSZjY2VkaWw7JmF0aWxkZTtvIFBhZHImYXRpbGRlO28gZG8gc3VtJmFhY3V0ZTtyaW8nOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnT3JkZW5hJmNjZWRpbDsmYXRpbGRlO28gUGFkciZhdGlsZGU7byBkb3MgY2FtcG9zIG5vIHN1bSZhYWN1dGU7cmlvJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIEZvbnRlJzsKJGxhbmdbJ3Byb21wdF91cmxwcmVmaXgnXSA9ICdQcmVmaXhvIGEgc2VyIHVzYWRvIGVtIHRvZGFzIGFzIFVSTHMgZGlyZWNpb25hZG9zIHBhcmEgZXN0ZSBtJm9hY3V0ZTtkdWxvJzsKJGxhbmdbJ3Byb21wdF91c2VfZGV0YWlscGFnZV9mb3Jfc2VhcmNoJ10gPSAnVXNlIGVzdGEgcCZhYWN1dGU7Z2luYSBwYXJhIHJlc3VsdGFkb3MgZGUgcGVzcXVpc2EgdGFtYiZlYWN1dGU7bSA8ZW0+KHN1YnN0aXR1aSBvIHBhciZhY2lyYzttZXRybyBkYSBwJmFhY3V0ZTtnaW5hIFNlYXJjaHJlc3VsdHMgbm8gbSZvYWN1dGU7ZHVsbyBkZSBwZXNxdWlzYSk8L2VtPic7CiRsYW5nWydwcm9tcHRfdXNlaGllcnBhdGh1cmxzJ10gPSAnVXNhciBDYW1pbmhvIHBhcmEgYSBIaWVyYXJxdWlhIG5vIGRldGFsaGUgZGFzIFVSTFMnOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnVW5pZGFkZXMgZGUgUGVzbyAnOwokbGFuZ1sncHVibGljJ10gPSAnJkVhY3V0ZTsgdW0gY2FtcG8gcCZ1YWN1dGU7YmxpY28/JzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ1AmdWFjdXRlO2JsaWNhZG8nOwokbGFuZ1sncmFuZG9tJ10gPSAnQWxpYXQmb2FjdXRlO3Jpbyc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1JlZGVmZW5pciBwYXJhIG9zIHZhbG9yZXMgUGFkciZhdGlsZGU7byc7CiRsYW5nWydyZXR1cm4nXSA9ICdWb2x0YXInOwokbGFuZ1sncmV0dXJuX3RvX3RvcCddID0gJ1ZvbHRhciBwYXJhIG8gdG9wbyBkYSB2aXN0YSc7CiRsYW5nWydyb290J10gPSAnUmFpeiAoUm9vdCknOwokbGFuZ1snc2VhcmNoX2Rlc2NyaXB0aW9uJ10gPSAnUGVzcXVpc2EgUHJvcHJpZWRhZGUgRGVzY3JpJmNjZWRpbDsmYXRpbGRlO28nOwokbGFuZ1snc2VhcmNoX2V4cHInXSA9ICdQb2RlIGEgY29uc3VsdGEgY29ycmVzcG9uZGVyIGEgdG9kYXMsIG91IHF1YWxxdWVyIHVtIGRvcyB0ZXN0ZXMgYWJhaXhvPyc7CiRsYW5nWydzZWFyY2hfbmFtZSddID0gJ1Blc3F1aXNhIE5vbWUgZGEgcHJvcHJpZWRhZGUnOwokbGFuZ1snc2VhcmNoX3ByaWNlJ10gPSAnT3JkZW5hJmNjZWRpbDsmYXRpbGRlO28gUHJlJmNjZWRpbDtvJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGljaW9uYXIvRWRpdGFyIFBlc3F1aXNhIEZvcm11bCZhYWN1dGU7cmlvIFRlbXBsYXRlJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlcyddID0gJ1RlbXBsYXRlIFBlc3F1aXNhJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlY2Npb25hciBVbSc7CiRsYW5nWydza3UnXSA9ICdTS1UgJzsKJGxhbmdbJ3NvcnRfYnknXSA9ICdPcmRlbmFyIFBvcic7CiRsYW5nWydzb3J0X29yZGVyJ10gPSAnT3JkZW0gZGEgT3JkZW5hJmNjZWRpbDsmYXRpbGRlO28nOwokbGFuZ1snc3RhdHVzJ10gPSAnRXN0YWRvJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1Byb2Nlc3Nhcic7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVzJ10gPSAnU3VtJmFhY3V0ZTtyaW8gVGVtcGxhdGVzJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRpY2lvbmFyL0VkaXRhciAgU3VtJmFhY3V0ZTtyaW8gVGVtcGxhdGVzJzsKJGxhbmdbJ3RheGFibGUnXSA9ICdUcmlidXQmYWFjdXRlO3ZlaXMnOwokbGFuZ1sndGVzdCddID0gJ1Rlc3RlJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnJkFhY3V0ZTtyZWEgZGUgVGV4dG8nOwokbGFuZ1sndGV4dGJveCddID0gJ0NhbXBvIGRlIFRleHRvJzsKJGxhbmdbJ3RpdGxlX2J5aGllcmFyY2h5X2RmbHR0ZW1wbGF0ZSddID0gJ0hpZXJhcnF1aWEgUGFkciZhdGlsZGU7byBub3ZvIHRlbXBsYXRlIGRlIHJlbGF0Jm9hY3V0ZTtyaW8nOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ05vdm8gVGVtcGxhdGUgUGFkciZhdGlsZGU7byBDYXRlZ29yaWEgTGlzdGEnOwokbGFuZ1sndGl0bGVfZGV0YWlsX2RmbHR0ZW1wbGF0ZSddID0gJ05vdm8gVGVtcGxhdGUgUGFkciZhdGlsZGU7byBEZXRhbGhlcyc7CiRsYW5nWyd0aXRsZV9zZWFyY2hfZGZsdHRlbXBsYXRlJ10gPSAnTm92byBUZW1wbGF0ZSBQYWRyJmF0aWxkZTtvIFBlc3F1aXNhJzsKJGxhbmdbJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJ10gPSAnTm92byBUZW1wbGF0ZSBQYWRyJmF0aWxkZTtvIFN1bSZhYWN1dGU7cmlvJzsKJGxhbmdbJ3R5cGUnXSA9ICdUaXBvJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0FjdHVhbGl6YXInOwokbGFuZ1sndXBsb2FkJ10gPSAnU2VsZWNjaW9uZSB1bSBhcnF1aXZvIGEgY2FycmVnYXInOwokbGFuZ1sndXJsX2FsaWFzJ10gPSAnVVJMIEFsaWFzICc7CiRsYW5nWyd2YWxpZCddID0gJ1YmYWFjdXRlO2xpZG8nOwokbGFuZ1sndmFsdWUnXSA9ICdWYWxvcic7CiRsYW5nWyd2YWx1ZXMnXSA9ICdWYWxvcmVzJzsKJGxhbmdbJ3ZpZXcnXSA9ICdWaXN0YSc7CiRsYW5nWyd2aWV3YWJsZV9maWVsZHMnXSA9ICdTZWxlY2lvbmFyIGNhbXBvcyBwZXJzb25hbGl6YWRvcyBwYXJhIHZlciBuYSB0YWJlbGEnOwokbGFuZ1snd2F0ZXJtYXJrX2xvY2F0aW9uJ10gPSAnV2F0ZXJtYXJrIExvY2FsaXphJmNjZWRpbDsmYXRpbGRlO28nOwokbGFuZ1snd2VpZ2h0J10gPSAnUGVzbyc7CiRsYW5nWyd5ZXMnXSA9ICdTaW0nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My45Nzk3MzU0NDIuMTI3MjMyNTc5Ni4xMjc0MDM0NDUzLjEyNzQxMzA2MTkuMjEnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjczMDU5NjQ5LjEzLjQudXRtY3NyPWRldi5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY249KHJlZmVycmFsKXx1dG1jbWQ9cmVmZXJyYWx8dXRtY2N0PS9wcm9qZWN0L2ZpbGVzLzY5JzsKJGxhbmdbJ3FjYSddID0gJ1AwLTE5ODM2NTA0MDEtMTI3MjMyNTc5NjY0NSc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ru_RU.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfbGVuZ3RoJ10gPSAn0JQnOwokbGFuZ1snYWJicl93aWR0aCddID0gJ9CoJzsKJGxhbmdbJ2FiYnJfaGVpZ2h0J10gPSAn0JInOwokbGFuZ1snYWRkJ10gPSAn0JTQvtCx0LDQstC40YLRjCc7CiRsYW5nWydhZGRjYXRlZ29yeSddID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0LrQsNGC0LXQs9C+0YDQuNGOJzsKJGxhbmdbJ2FkZGZpZWxkZGVmJ10gPSAn0JTQvtCx0LDQstC40YLRjCDQv9C+0LvQtSc7CiRsYW5nWydhZGp1c3RhYmxlJ10gPSAn0JLRgNGD0YfQvdGD0Y4nOwokbGFuZ1snYWRkcHJvZHVjdCddID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0L/RgNC+0LTRg9C60YInOwokbGFuZ1snYWRkX2F0dHJpYl9zZXQnXSA9ICfQlNC+0LHQsNCy0LjRgtGMINCw0YLRgNC40LHRg9GCJzsKJGxhbmdbJ2FkZF9jYXRlZ29yeV9maWVsZCddID0gJ0Fzc29jaWF0ZSBGaWVsZCB3aXRoIENhdGVnb3J5OiAiJXMiJzsKJGxhbmdbJ2FkZF9oaWVyYXJjaHlfaXRlbSddID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0Y3Qu9C10LzQtdC90YIg0LIg0LjQtdGA0LDRgNGF0LjRjic7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAn0JTQvtCx0LDQstC40YLRjCDQstCw0YDQuNCw0L3RgiDQsNGC0YDQuNCx0YPRgtCwJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICfQkNGC0YDQuNCx0YPRgtGLINC00L7RgdGC0YPQv9C90Ysg0YLQvtC70YzQutC+INCw0LTQvNC40L3Rgz8nOwokbGFuZ1snYWxpZ25fdWwnXSA9ICfQktCy0LXRgNGF0YMg0YHQu9C10LLQsCc7CiRsYW5nWydhbGlnbl91YyddID0gJ9CS0LLQtdGA0LfRgyDQsiDRhtC10L3RgtGA0LUnOwokbGFuZ1snYWxpZ25fdXInXSA9ICfQktCy0LXRgNGF0YMg0YHQv9GA0LDQstCwJzsKJGxhbmdbJ2FsaWduX21sJ10gPSAn0J/QvtGB0LXRgNC10LTQuNC90LUg0YHQu9C10LLQsCc7CiRsYW5nWydhbGlnbl9tYyddID0gJ9CSINGG0LXQvdGC0YDQtSc7CiRsYW5nWydhbGlnbl9tciddID0gJ9Cf0L7RgdC10YDQtdC00LjQvdC1INGB0L/RgNCw0LLQsCc7CiRsYW5nWydhbGlnbl9sbCddID0gJ9CS0L3QuNC30YMg0YHQu9C10LLQsCc7CiRsYW5nWydhbGlnbl9sYyddID0gJ9CS0L3QuNC30YMg0LIg0YbQtdC90YLRgNC1JzsKJGxhbmdbJ2FsaWduX2xyJ10gPSAn0JLQvdC40LfRgyDRgdC/0YDQsNCy0LAnOwokbGFuZ1snYWxsJ10gPSAn0JLRgdC1JzsKJGxhbmdbJ2FsbGNhdGVnb3JpZXMnXSA9ICfQktGB0LUg0LrQsNGC0LXQs9C+0YDQuNC4JzsKJGxhbmdbJ2FueSddID0gJ9Cb0Y7QsdC+0LknOwokbGFuZ1snYXJleW91c3VyZSddID0gJ9CS0Ysg0YPQstC10YDQtdC90Ys/JzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlcHJvZHVjdCddID0gJ9CS0Ysg0YPQstC10YDQtdC90YssINGH0YLQviDRhdC+0YLQuNGC0LUg0YPQtNCw0LvQuNGC0Ywg0Y3RgtC+0YIg0YLQvtCy0LDRgCwg0Lgg0LLRgdGOINC40L3RhNC+0YDQvNCw0YbQuNGOINC+INC90LXQvD8nOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAn0J/QviDQstC+0LfRgNCw0YHRgtCw0L3QuNGOJzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAn0J3QsNC30LLQsNC90LjQtSDQsNGC0YDQuNCx0YPRgtCwJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ9CQ0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4JzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVzJ10gPSAn0KjQsNCx0LvQvtC90Ysg0LjQtdGA0LDRgNGF0LjQuCc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICfQlNC+0LHQsNCy0LjRgtGML9CY0LfQvNC10L3QuNGC0Ywg0YjQsNCx0LvQvtC9INCy0YvQstC+0LTQsCDQuNC10YDQsNGA0YXQuNC4JzsKJGxhbmdbJ2NhbmNlbCddID0gJ9Ce0YLQvNC10L3QsCc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAn0JrQsNGC0LXQs9C+0YDQuNC4JzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAn0JrQsNGC0LXQs9C+0YDQuNGPJzsKJGxhbmdbJ2NhdGVnb3J5ZXhpc3RzJ10gPSAn0JrQsNGC0LXQs9C+0YDQuNGPINGBINGC0LDQutC40Lwg0LjQvNC10L3QtdC8INGD0LbQtSDRgdGD0YnQtdGB0YLQstGD0LXRgic7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICfQqNCw0LHQu9C+0L0g0YHQv9C40YHQutCwINC60LDRgtC10LPQvtGA0LjQuSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAn0JTQvtCx0LDQstC40YLRjC/QoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDRiNCw0LHQu9C+0L0g0YHQv9C40YHQutCwINC60LDRgtC10LPQvtGA0LjQuSc7CiRsYW5nWydjZW50aW1ldGVycyddID0gJ9Ch0LDQvdGC0LjQvNC10YLRgNGLJzsKJGxhbmdbJ2NoZWNrYm94J10gPSAn0KfQtdC60LHQvtC60YEnOwokbGFuZ1snY29uZmlybV9jb3B5YXR0cmlidXRlcyddID0gJ9CS0YHQtSDRgdGD0YnQtdGB0YLQstGD0Y7RidC40LUg0LDRgtGA0LjQsdGD0YLRiyDQv9GA0L7QtNGD0LrRgtGLINCx0YPQtNGD0YIg0YPQtNCw0LvQtdC90YsuINCS0Ysg0YPQstC10YDQtdC90YssINGH0YLQviDRhdC+0YLQuNGC0LUg0L/RgNC+0LTQvtC70LbQuNGC0Yw/JzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX2hpZXJhcmNoeV9ub2RlJ10gPSAn0JLRiyDRg9Cy0LXRgNC10L3Riywg0YfRgtC+INGF0L7RgtC40YLQtSDRg9C00LDQu9C40YLRjCDRjdGC0L7RgiDRg9C30LXQuz8g0JLRgdC1INC/0YDQvtC00YPQutGC0YssINC90LDRhdC+0LTQtdGJ0LjQtdGB0Y8g0LIg0YPQt9C70LUg0LHRg9C00YPRgiDQv9C10YDQtdC80LXRidC10L3RiyDQsiDQutC+0YDQtdC90YwnOwokbGFuZ1snY29uZmlybV9pbXBvcnQnXSA9ICfQktGLINGD0LLQtdGA0LXQvdGLLCDRh9GC0L4g0YXQvtGC0LjRgtC1INGD0LTQsNC70LjRgtGMP1xcblxcbtCd0LXQstC10YDQvdGL0LUg0L3QsNGB0YLRgNC+0LnQutC4INC40LvQuCDQutC+0L3RhNC40LPRg9GA0LDRhtC40Y8g0LzQvtC20LXRgiDQv9C+0LvQvdC+0YHRgtGM0Y4g0L3QsNGA0YPRiNC40YLRjCDRgNCw0LHQvtGC0L7RgdC/0L7RgdC+0LHQvdC+0YHRgtGMINCS0LDRiNC10LPQviDRgdCw0LnRgtCwLic7CiRsYW5nWydjb3B5J10gPSAn0JrQvtC/0LjRgNC+0LLQsNGC0YwnOwokbGFuZ1snY29weV9hdHRyaWJfc2V0cyddID0gJ9Ch0LrQvtC/0LjRgNC+0LLQsNGC0Ywg0LDRgtGA0LjQsdGD0YLRiyDQv9GA0L7QtNGD0LrRgtCwJzsKJGxhbmdbJ2NvcHlfY2F0ZWdvcnknXSA9ICfQmtC+0L/QuNGA0L7QstCw0YLRjCDQutCw0YLQtdCz0L7RgNC40Y4nOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICfQodC+0LfQtNCw0L0nOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ9CX0L3QsNGH0LXQvdC40LUnOwokbGFuZ1snZGF0YSddID0gJ9CU0LDRgtCwJzsKJGxhbmdbJ2RlZmF1bHQnXSA9ICfQn9C+INGD0LzQvtC70YfQsNC90LjRjic7CiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAn0KjQsNCx0LvQvtC90Ysg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4nOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZSBjb250ZW50cyBvZiB0aGVzZSB0ZXh0IGFyZWFzIGFyZSB1c2VkIHRvIGRldGVybWluZSB0aGUgZGVmYXVsdCBjb250ZW50IG9mIHRlbXBsYXRlcyB3aGVuIHlvdSBjbGljayAiQWRkIFRlbXBsYXRlIiBpbiB0aGUgYXBwcm9wcmlhdGUgdGVtcGxhdGUgdGFiLiAgRWRpdGluZyBvbmUgb2YgdGhlc2UgdGV4dCBhcmVhcyB3aWxsIGhhdmUgbm8gaW1tZWRpYXRlIGVmZmVjdCBvbiB5b3VyIHdlYnNpdGUuJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ9Cj0LTQsNC70LjRgtGMJzsKJGxhbmdbJ2RlbGV0ZV9hdHRyaWJzZXQnXSA9ICfQo9C00LDQu9C40YLRjCDQsNGC0YDQuNCx0YPRgic7CiRsYW5nWydkZWxldGVfaGllcmFyY2h5X2l0ZW0nXSA9ICfQo9C00LDQu9C40YLRjCDQrdC70LXQvNC10L3RgiDQmNC10YDQsNGA0YXQuNC4JzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICfQn9C+INGD0LHRi9Cy0LDQvdC40Y4nOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICfQntC/0LjRgdCw0L3QuNC1JzsKJGxhbmdbJ2Rlc3RpbmF0aW9uJ10gPSAn0J3QsNC30L3QsNGH0LXQvdC40LUnOwokbGFuZ1snZGV0YWlscyddID0gJ9Ce0L/QuNGB0LDQvdC40LUnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAn0KjQsNCx0LvQvtC9INCa0LDRgNGC0L7Rh9C60Lgg0YLQvtCy0LDRgNCwJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICfQlNC+0LHQsNCy0LjRgtGML9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINGI0LDQsdC70L7QvSDQutCw0YDRgtC+0YfQutC4INGC0L7QstCw0YDQsCc7CiRsYW5nWydkaW1lbnNpb25zJ10gPSAn0KDQsNC30LzQtdGA0YsnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICfQntGC0LrQu9GO0YfQtdC90L4nOwokbGFuZ1snZG93biddID0gJ9Cf0LXRgNC10LTQstC40L3Rg9GC0Ywg0LLQvdC40LcnOwokbGFuZ1snZHJhZnQnXSA9ICfQp9C10YDQvdC+0LLQuNC6JzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAn0JLRi9C/0LDQtNCw0Y7RidC40Lkg0YHQv9C40YHQvtC6JzsKJGxhbmdbJ2Ryb3Bkb3duX29wdGlvbnMnXSA9ICfQrdC70LXQvNC10L3RgtGLINCy0YvQv9Cw0LTQsNGO0YnQtdCz0L4g0YHQv9C40YHQutCwIDxlbT4o0L/RgNC40LzQtdC90LjQvNC+INGC0L7Qu9GM0LrQviDQtNC70Y8g0L/QvtC70LXQuSDRgtC40L/QsCAi0LLRi9C/0LDQtNCw0Y7RidC40Lkg0YHQv9C40YHQvtC6Iik8L2VtPjxici8+PGJyLz48ZW0+KNCy0YHQtSDRjdC70LXQvNC10L3RgtGLINCyINGA0LDQt9C90YvRhSDRgdGC0YDQvtC60LDRhSk8L2VtPic7CiRsYW5nWydlZGl0J10gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0YwnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXQnXSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQsNGC0YDQuNCx0YPRgic7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQvdCw0LHQvtGAINCw0YLRgNC40LHRg9GC0L7Qsic7CiRsYW5nWydlZGl0X2F0dHJpYnNldHNfZm9yJ10gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0L3QsNCx0L7RgCDQsNGC0YDQuNCx0YPRgtC+0LIg0LTQu9GPJzsKJGxhbmdbJ2VkaXRfYXR0cmlidXRlcyddID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINCw0YLRgNC40LHRg9GC0YsnOwokbGFuZ1snZWRpdF9jYXRlZ29yeSddID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC60LDRgtC10LPQvtGA0LjRjic7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC/0L7Qu9GPINC60LDRgtC10LPQvtGA0LjQuCc7CiRsYW5nWydlZGl0X2hpZXJhcmNoeV9pdGVtJ10gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0Y3Qu9C10LzQtdC90YIg0LjQtdGA0LDRgNGF0LjQuCc7CiRsYW5nWydlcnJvcl9hdHRyaWJzZXRfZXhpc3RzJ10gPSAn0JDRgtGA0LjQsdGD0YIg0YEg0Y3RgtC40Lwg0LjQvNC10L3QtdC8INGD0LbQtSDRgdGD0YnQtdGB0YLQstGD0LXRgic7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfc2t1J10gPSAn0JTRg9Cx0LvQuNGA0YPQtdGC0YHRjyDQt9C90LDRh9C10L3QuNC1IFNLVSc7CiRsYW5nWydlcnJvcl9maWVsZHZhbHVlX2VtcHR5J10gPSAn0J3QtdC+0LHRhdC+0LTQuNC80L4g0LfQsNC/0L7Qu9C90LjRgtGMINC/0L7Qu9C1JzsKJGxhbmdbJ2Vycm9yX2ZpbGVmb3JtYXQnXSA9ICfQntGI0LjQsdC60LAg0YTQvtGA0LzQsNGC0LAg0YTQsNC50LvQsCc7CiRsYW5nWydlcnJvcl9maWxlbm90Zm91bmQnXSA9ICfQpNCw0LnQuyDQvdC1INC90LDQudC00LXQvSc7CiRsYW5nWydlcnJvcl9maWxlb3BlbiddID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L7RgtC60YDRi9GC0Ywg0YTQsNC50LsgJXMnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmVudCddID0gJ0ludmFsaWQgUGFyZW50IChhIGhpZXJhcmNoeSBub2RlIGNhbm5vdCBiZSBpdFwncyBvd24gcGFyZW50KSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX25hbWUnXSA9ICdUaGUgY3VzdG9tIGZpZWxkIHZhbHVlIGVudGVyZWQgaXMgaW52YWxpZCAoY29udGFpbnMgbm9uIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzKSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX3ZhbHVlJ10gPSAn0KPQutCw0LfQsNC90L4g0L3QtdCy0LXRgNC90L7QtSDQt9C90LDRh9C10L3QuNC1JzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ9Ce0LHRj9C30LDRgtC10LvRjNC90YvQuSDQv9Cw0YDQsNC80LXRgtGAINC/0YDQvtC/0YPRidC10L0g0LjQu9C4INGD0LrQsNC30LDQvSDQvdC10LLQtdGA0L3Qvic7CiRsYW5nWydlcnJvcl9uYW1ldXNlZCddID0gJ9Ci0L7QstCw0YAg0YEg0YLQsNC60LjQvCDQvdCw0LfQstCw0L3QuNC10Lwg0YPQttC1INGB0YPRidC10YHRgtCy0YPQtdGCJzsKJGxhbmdbJ2Vycm9yX25vZmllbGR0eXBlJ10gPSAn0J/QvtC20LDQu9GD0LnRgdGC0LAg0YPQutCw0LbQuNGC0LUg0YLQuNC/INC/0L7Qu9GPJzsKJGxhbmdbJ2Vycm9yX25vbmFtZSddID0gJ9CS0Ysg0LTQvtC70LbQvdGLINGD0LrQsNC30LDRgtGMINC40LzRjyc7CiRsYW5nWydlcnJvcl9vbmVzdWJzY3JpcHRpb25maWVsZCddID0gJ09ubHkgb25lIHN1YnNjcmlwdGlvbiBmaWVsZCBpcyBhbGxvd2VkJzsKJGxhbmdbJ2Vycm9yX3Blcm1pc3Npb25kZW5pZWQnXSA9ICfQlNC+0YHRgtGD0L8g0LfQsNC/0YDQtdGJ0LXQvSc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X2FsaWFzdXNlZCddID0gJ9Cj0LrQsNC30LDQvdGL0Lkg0LDQu9C40LDRgSDRg9C20LUg0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICfQotC+0LLQsNGAINGBINGC0LDQutC40Lwg0L3QsNC30LLQsNC90LjQtdC8INGD0LbQtSDRgdGD0YnQtdGB0YLQstGD0LXRgic7CiRsYW5nWydlcnJvcl9wcm9kdWN0X25vdGZvdW5kJ10gPSAn0JfQsNC/0YDQsNGI0LjQstCw0LXQvNGL0Lkg0YLQvtCy0LDRgCDQvdC1INC90LDQudC00LXQvSc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X3NrdXVzZWQnXSA9ICdUaGF0IFNLVSB2YWx1ZSBpcyBhbHJlYWR5IGluIHVzZSBieSBhbm90aGVyIHByb2R1Y3QnOwokbGFuZ1snZXJyb3JfcHJpY2VfYWRqdXN0bWVudCddID0gJ0ludmFsaWQgcHJpY2UgYWRqdXN0bWVudCB2YWx1ZSBmb3IgaXRlbSAlcyc7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnVXBsb2FkIGZhaWxlZDogJXMnOwokbGFuZ1snZXhwaXJlX3NpeF9tb250aHMnXSA9ICdBZnRlciBTaXggTW9udGhzJzsKJGxhbmdbJ2V4cGlyZV9vbmVfeWVhciddID0gJ0FmdGVyIE9uZSBZZWFyJzsKJGxhbmdbJ2V4cGlyZV90d29feWVhciddID0gJ0FmdGVyIFR3byBZZWFycyc7CiRsYW5nWydleHRyYTEnXSA9ICfQlNC+0L/QvtC70L3QuNGC0LXQu9GM0L3QvtC1INC/0L7Qu9C1IDEnOwokbGFuZ1snZXh0cmEyJ10gPSAn0JTQvtC/0L7Qu9C90LjRgtC10LvRjNC90L7QtSDQv9C+0LvQtSAyJzsKJGxhbmdbJ2ZpZWxkJ10gPSAn0J/QvtC70LUnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdGaWVsZCBEZWZpbml0aW9uJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ9Cf0L7Qu9GPJzsKJGxhbmdbJ2ZpbGUnXSA9ICfQpNCw0LnQuyc7CiRsYW5nWydmaWx0ZXJzJ10gPSAn0KTQuNC70YzRgtGAJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8JzsKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICfQntCx0YnQuNC1INC90LDRgdGC0YDQvtC50LrQuCc7CiRsYW5nWydnbyddID0gJ0dvJzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBkb2VzIHRoaXMgZG8/PC9oMz4NCjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgd2F5IHRvIGNvbGxlY3QsIG9yZ2FuaXplLCBhbmQgZGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCBwcm9kdWN0cyBhbmQgdGhlaXIgY2F0ZWdvcmllcy4gIFRoaXMgbW9kdWxlIGNhbiBzdGFuZCBvbiBpdHMgb3duLCBvciBiZSBwYXJ0IG9mIGFuIGUtY29tbWVyY2Ugc29sdXRpb24gaWYgeW91IHdpc2guICBUaGUgbW9kdWxlIHN1cHBvcnRzIGEgcHJvZHVjdCBleGlzdGluZyBpbiBtb3JlIHRoYW4gb25lIGNhdGVnb3J5LCBzdXBwb3J0cyBwcm9kdWN0IHdlaWdodCwgcHJpY2UsIGFuZCBhdHRyaWJ1dGUgc2V0cy4gIEVhY2ggaXRlbSBpbiBhbiBhdHRyaWJ1dGUgc2V0IGNhbiBoYXZlIGEgcHJpY2UgYWRqdXN0bWVudC4gIEFsc28gYSBnbG9iYWwgZmxhZyBpbmRpY2F0ZXMgd2V0aGVyIHRoZSBwcm9kdWN0IGlzIFwndGF4YWJsZVwnIG9yIG5vdC48L3A+DQogIDxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGZvciB1cCB0byB0d28gaW1hZ2VzIHBlciBwcm9kdWN0LCBjdXN0b20gZmllbGQgZGVmaW5pdGlvbnMsIGFuZCBmb3IgdGhlIGFiaWxpdHkgdG8gZGVzY3JpbWluYXRlIHByaXZhdGUgZnJvbSBwdWJsaWMgZGF0YS48L3A+DQo8aDM+RmVhdHVyZXM6PC9oMz4NCjx1bD4NCiAgPGxpPk51bWVyb3VzIFZpZXdzPC9saT4NCiAgICA8dWw+DQogICAgICA8bGk+U3VtbWFyeSB2aWV3PC9saT4NCiAgICAgIDxsaT5DYXRlZ29yeSBMaXN0IFZpZXc8L2xpPg0KICAgICAgPGxpPkRldGFpbCB2aWV3PC9saT4gDQogICAgICA8bGk+SGllcmFyY2h5IERyaWxsLWRvd24gVmlldzwvbGk+DQogICAgPC91bD4NCiAgPGxpPkVudGlyZWx5IERhdGFiYXNlIFRlbXBsYXRlIERyaXZlbjwvbGk+DQogIDxwPk51bWVyb3VzIHRlbXBsYXRlcyBvZiBlYWNoIHR5cGUgY2FuIGJlIGRlZmluZWQsIGRlZmF1bHRzIHNwZWNpZmllZCBmb3IgZWFjaCB0eXBlLCBhbmQgdGhlIHRlbXBsYXRlIHVzZWQgZm9yIGVhY2ggcGFydGljdWxhciB2aWV3IGNhbiBiZSBzcGVjaWZpZWQgYXMgYSBwYXJhbWV0ZXI8L3A+DQogIDxsaT5Tb3J0aW5nIGFuZCBwYWdpbmF0aW9uIGluIHRoZSBzdW1tYXJ5IHZpZXc8L2xpPg0KICA8bGk+UHJvZHVjdHMgY2FuIGV4aXN0IGluIG11bHRpcGxlIGNhdGVnb3JpZXM8L2xpPg0KICA8bGk+TnVtZXJvdXMgY3VzdG9tIGZpZWxkcyBjYW4gYmUgZGVmaW5lZCwgaW5jbHVkaW5nIGltYWdlczwvbGk+DQogIDxsaT5BdXRvbWF0aWMgdGh1bWJuYWlsIGNyZWF0aW9uPC9saT4NCiAgPGxpPkFkbWluIGRlZmluZWQgZmllbGRzPC9saT4NCiAgPGxpPlByb2R1Y3QgYXR0cmlidXRlcyAoaW5jbHVkaW5nIHByaWNlIGFkanVzdG1lbnQpPC9saT4NCiAgPGxpPldlaWdodCBhbmQgdGF4YWJsZSBmaWVsZHMgKGZvciB1c2UgaW4gZS1jb21tZXJjZSBzb2x1dGlvbnMpPC9saT4NCiAgPGxpPlByb2R1Y3RzIGNhbiBoYXZlIGEgc3RhdHVzIChwdWJsaXNoZWQgb3IgZHJhZnQpIGluIG9yZGVyIHRvIGhpZGUgcHJvZHVjdHMgZnJvbSBwdWJsaWMgZGlzcGxheSBhdCBhbnkgdGltZTwvbGk+DQogIDxsaT5QcmV0dHkgVVJMIFN1cHBvcnQ8L2xpPg0KICA8bGk+PHN0cm9uZz5Nb3JlLi4uPC9zdHJvbmc+PC9saT4NCjwvdWw+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgSXQ6PC9oMz4NCjx1bD4NCjxsaT5TZXQgcHJlZmVyZW5jZXM8L2xpPg0KPHA+VXN1YWxseSB0aGlzIGlzIGp1c3QgYSBmb3JtYWxpdHkuICBZb3Ugc2hvdWxkIHNwZWNpZnkgeW91ciBkZWZhdWx0IHdlaWdodCB1bml0cywgYW5kIHlvdXIgZGVmYXVsdCBjdXJyZW5jeSBzeW1ib2wgZm9yIHlvdXIgbG9jYWwgZW52aXJvbm1lbnQuPC9wPg0KPGxpPlNldHVwIHVzZXJzIGFuZCBwZXJtaXNzaW9uczwvbGk+DQo8cD5UaGlzIG1vZHVsZSB1c2VzIHRoZSBcJ01vZGlmeSBUZW1wbGF0ZXNcJyBwZXJtaXNzaW9uIHRvIGFsbG93IHVzZXJzIHRvIGJlIGFibGUgdG8gbW9kaWZ5IHRoZSB2YXJpb3VzIHRlbXBsYXRlcyB0aGF0IGNhbiBiZSB1c2VkIGJ5IHRoaXMgbW9kdWxlLiAgQXMgd2VsbCwgdGhlIFwnTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXNcJyBwZXJtaXNzaW9uIGlzIG5lZWRlZCB0byBiZSBhYmxlIHRvIGFkanVzdCB0aGUgbW9kdWxlcyBwcmVmZXJlbmNlcy4gIEluIG9yZGVyIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbW9kaWZ5IGZpZWxkIGRlZmluaXRpb25zLCBjYXRlZ29yaWVzLCBvciBwcm9kdWN0cywgeW91ciB1c2VycyB3aWxsIG5lZWQgdGhlIFwnTW9kaWZ5IFByb2R1Y3RzXCcgcGVybWlzc2lvbi48L3A+DQo8bGk+KG9wdGlvbmFsKSBEZWZpbmUgb25lIG9yIG1vcmUgY2F0ZWdvcmllczwvbGk+DQo8cD5UaGlzIGlzIGFuIG9wdGlvbmFsIHN0ZXAsIGJ1dCB5b3Ugd2lsbCBwcm9iYWJseSB3YW50IHRvIGRvIHRoaXMgZWFybHkgdG8gcHJldmVudCBoYXZpbmcgdG8gZ28gYmFjayB0byBtb2RpZnkgZWFjaCBhbmQgZXZlcnkgcHJvZHVjdCBsYXRlci4gIEFkZGluZyBhIGNhdGVnb3J5IGlzIGFzIHNpbXBsZSBhcyBjbGlja2luZyBvbiB0aGUgXCdDYXRlZ29yaWVzXCcgdGFiIGluIHRoZSBQcm9kdWN0IE1hbmFnZXJzIGFkbWluIHNlY3Rpb24sIGFuZCBjbGlja2luZyBcJ0FkZCBBIENhdGVnb3J5XCcuICBGcm9tIHRoZXJlIHlvdSB3aWxsIGJlIHByb21wdGVkIGZvciBhIGNhdGVnb3J5IG5hbWUuPC9wPg0KPGxpPihvcHRpb25hbCkgRGVmaW5lIG9uZSBvciBtb3JlIGN1c3RvbSBmaWVsZHM8L2xpPg0KPHA+VGhpcyBpcyBhbiBvcHRpb25hbCBzdGVwLiAgQ3VzdG9tIGZpZWxkcyBhcmUgbm90IG5lZWRlZCBpZiB0aGlzIG1vZHVsZSBzdWl0cyB5b3UgZXhhY3RseSBhcyBpdCBpcy4gIEhvd2V2ZXIgaWYgeW91IHdvdWxkIGxpa2UgdG8gc3RvcmUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBmb3IgZWFjaCBvZiB5b3VyIHByb2R1Y3RzIHlvdSBjYW4gY3JlYXRlIGN1c3RvbSBmaWVsZHMuICBDcmVhdGluZyBjdXN0b20gZmllbGRzIGlzIHNpbWlsYXIgdG8gY3JlYXRpbmcgY2F0ZWdvcmllcywgZXhjZXB0IHRoYXQgbW9yZSBkYXRhIGlzIHJlcXVlc3RlZC48L3A+DQo8cD5DdXJyZW50bHkgc2l4IHR5cGVzIG9mIGN1c3RvbSBmaWVsZHMgYXJlIGF2YWlsYWJsZTogXCd0ZXh0Ym94XCcsXCdjaGVja2JveFwnLGFuZCBcJ3RleHRhcmVhLCBkcm9wZG93biwgYW5kIGZpbGVcJy4gIFNlbGVjdCBvbmUgb2YgdGhlc2UsIGdpdmUgeW91ciBuZXcgZmllbGQgYSBuYW1lLCBhbmQgaW5kaWNhdGUgd2V0aGVyIHRoYXQgZmllbGQgc2hvdWxkIGJlIHZpc2libGUgdG8gdGhlIHB1YmxpYyBpbiB0aGUgdmFyaW91cyB2aWV3cy4gIFRoZW4gaGl0IHN1Ym1pdDwvcD4NCjxsaT5DcmVhdGUgb25lIG9yIG1vcmUgcHJvZHVjdHM8L2xpPg0KPHA+WW91IHNob3VsZCBjcmVhdGUgb25lIG9yIG1vcmUgcHJvZHVjdHMgdG8gZGlzcGxheSBpbiB5b3VyIHdlYnNpdGUgY29udGVudC4gIEdpdmUgZWFjaCBwcm9kdWN0IGEgbmFtZSwgYSBwcmljZSAob3B0aW9uYWwpIGEgd2VpZ2h0IChvcHRpb25hbCksIGEgc3RhdHVzIChkcmFmdCBvciBwdWJsaXNoZWQpLCBhbmQgc29tZSBpbmZvcm1hdGlvbi4gIEFkZGl0aW9uYWxseSwgeW91IGNhbiBhbHNvIHNwZWNpZnkgaWYgdGhlIHByb2R1Y3QgaXMgdGF4YWJsZS48L3A+DQo8cD5JZiBjYXRlZ29yaWVzIGFyZSBkZWZpbmVkLCB0aGVuIGEgY2hlY2tib3ggd2lsbCBhcHBlYXIgZm9yIGVhY2ggZGVmaW5lZCBjYXRlZ29yeS4gIFlvdSBjYW4gc2ltcGx5IGNsaWNrIHRoZSBjaGVja2JveCBmaWVsZHMgZm9yIGVhY2ggY2F0ZWdvcnkgdGhhdCB0aGlzIHByb2R1Y3Qgc2hvdWxkIGJlbG9uZyB0by48L3A+DQo8cD5JZiBjdXN0b20gZmllbGRzIGFyZSBkZWZpbmVkLCB0aGVuIGlucHV0IGZpZWxkcyBhcHByb3ByaWF0ZSB0byB0aGUgdHlwZSBvZiBjdXN0b20gZmllbGQgd2lsbCBhcHBlYXIgYW5kIGFsbG93IHlvdSB0byBzcGVjaWZ5IGRhdGEgZm9yIGVhY2ggb2YgdGhlbS4gIFRoaXMgZGF0YSBpcyBvcHRpb25hbC48L3A+DQo8bGk+QWRkIHRoZSBhcHByb3ByaWF0ZSB0YWdzIGludG8geW91ciBwYWdlIHRlbXBsYXRlcyBvciBwYWdlIGNvbnRlbnQ8L2xpPg0KPHA+VGhpcyBjYW4gYmUgYXMgc2ltcGxlIGFzIGFkZGluZyB0aGUgPHN0cm9uZz57UHJvZHVjdHN9PC9zdHJvbmc+IHRhZyBpbnRvIHRoZSBjb250ZW50IGFyZWEgb2Ygb25lIG9mIHlvdXIgcGFnZXMsIG9yIGludG8geW91ciBwYWdlIHRlbXBsYXRlLjwvcD4NCjxwPklmIHlvdSB3aXNoIHRvIGFsdGVyIHRoZSBiZWhhdmlvdXIgb2YgdGhpcyBhcHBsaWNhdGlvbiBmcm9tIGl0cyBkZWZhdWx0LCB5b3UgY2FuIGRvIHRoYXQgYnkgYWRkaW5nIG9uZSBvciBtb3JlIHBhcmFtZXRlcnMgdG8gdGhlIDxzdHJvbmc+e1Byb2R1Y3RzfTwvc3Ryb25nPiB0YWcuICBUaGUgY29tcGxldGUgbGlzdCBvZiBwYXJhbWV0ZXJzIGFuZCB0aGVpciBiZWhhdmlvdXIgaXMgbGlzdGVkIGJlbG93LiAgQnV0IGZvciBleGFtcGxlLCB0byBkaXNwbGF5IGEgbGlzdCBvZiBwcm9kdWN0cyBpbiBhIHNpbmdsZSwgZXhpc3RpbmcgY2F0ZWdvcnksIHlvdSBjb3VsZCB1c2UgYSB0YWcgbGlrZSA8Y29kZT57UHJvZHVjdHMgY2F0ZWdvcnk9XCdjYXRlZ29yeW5hbWVcJ308L2NvZGU+PC9wPg0KPC91bD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiAgSG93ZXZlciB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzIG9yIHRvIGZpbGUgYSBidWcgcmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIGNtcyBtYWRlIHNpbXBsZSA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5EZXZlbG9wZXJzIEZvcmdlPC9hPiBhbmQgZG8gYSBzZWFyY2ggZm9yIFwnUHJvZHVjdHNcJzwvbGk+DQo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+Um9iZXJ0IENhbXBiZWxsPC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ybXMuPC9hPjwvbGk+DQo8bGk+Rm9yIHNvbWUgcXVlc3Rpb25zIGFuZCBsaW1pdGVkIHRlY2huaWNhbCBzdXBwb3J0LCB0aGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8L3VsPic7CiRsYW5nWydoaWVyYXJjaHknXSA9ICfQmNC10YDQsNGA0YXQuNGPJzsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gJ9Cf0L7Qt9C40YbQuNGPINCyINC40LXRgNCw0YDRhdC40LgnOwokbGFuZ1snaGllcmFyY2h5X3NldHRpbmdzJ10gPSAnSGllcmFyY2h5IFNldHRpbmdzJzsKJGxhbmdbJ2lkJ10gPSAnINCa0L7QtCc7CiRsYW5nWydpbWFnZXRleHQnXSA9ICfQmNC30L7QsdGA0LDQttC10L3QuNC1JzsKJGxhbmdbJ2ltYWdlX2hhbmRsaW5nX3NldHRpbmdzJ10gPSAnSW1hZ2UgSGFuZGxpbmcgU2V0dGluZ3MnOwokbGFuZ1snaW1wb3J0X2Zyb21fY3N2J10gPSAn0JjQvNC/0L7RgNGCINC/0YDQvtC00YPQutGC0L7QsiDQuNC3IENTViDRhNCw0LnQu9CwJzsKJGxhbmdbJ2luY2hlcyddID0gJ0luY2hlcyc7CiRsYW5nWydpbmNsdWRlX2NoaWxkcmVuJ10gPSAn0JLQutC70Y7Rh9Cw0YLRjCDQv9C+0LTQutCw0YLQtdCz0L7RgNC40Lg/JzsKJGxhbmdbJ2luZm9fYWxudW1vbmx5J10gPSAn0KLQvtC70YzQutC+INC70LDRgtC40L3RgdC60LjQtSDQsdGD0LrQstC10L3QvdC+LdGG0LjRhNGA0L7QstGL0LUg0YHQuNC80LLQvtC70YsuINCR0LXQtyDQv9GA0L7QsdC10LvQvtCyLCDQutCw0LLRi9GH0LrQuCwg0LjQu9C4INC90LXQv9C10YfQsNGC0LDQtdC80YvRhSDRgdC40LzQstC+0LvQvtCyJzsKJGxhbmdbJ2luZm9fYXR0cmlidGVtcGxhdGUnXSA9ICdQb3NzaWJsZSB2YXJpYWJsZXMgYXJlOiB7JGF0dHJpYl90ZXh0fSx7JGF0dHJpYl9hZGp1c3R9LHskY3VycmVuY3lfc3ltYm9sfSc7CiRsYW5nWydpbmZvX2F0dHJpYnV0ZXNfY29waWVkJ10gPSAnQXR0cmlidXRlcyBDb3BpZWQnOwokbGFuZ1snaW5mb19hdXRvd2F0ZXJtYXJrJ10gPSAn0J/QsNGA0LDQvNC10YLRgNGLINCy0L7QtNC90YvRhSDQt9C90LDQutC+0LIg0YPRgdGC0LDQvdCw0LLQu9C40LLQsNGO0YLRjNGB0Y8g0LjQtyBDR0V4dGVuc2lvbnMg0LzQvtC00YPQu9GPJzsKJGxhbmdbJ2luZm9fYmF0Y2hzaXplJ10gPSAnU2V0IHRoZSBudW1iZXIgb2YgbGluZXMgdG8gcHJvY2VzcyBwZXIgImJhdGNoIi4gIEFmdGVyIGEgYmF0Y2ggaXMgY29tcGxldGUsIHRoZSBpbXBvcnRlciB3aWxsIHJlZGlyZWN0LCBhbmQgcmVzdW1lIG9wZXJhdGlvbnMuICBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBtZW1vcnkgZXJyb3JzLCBvciB0aW1lb3V0IHByb2JsZW1zIGR1ZSB0byBsYXJnZSBhbW91bnRzIG9mIHByb2Nlc3NpbmcsIHlvdSBtYXkgbmVlZCB0byBjb25zdWx0IHlvdXIgaG9zdCBwcm92aWRlciwgb3IgcmVkdWNlIHRoaXMgbnVtYmVyJzsKJGxhbmdbJ2luZm9fY2FydF9tb2R1bGVfcGFyYW1zJ10gPSAnVGhlc2UgcGFyYW1ldGVycyBhcmUgZ2l2ZW4gdG8gdGhlIHNlbGVjdGVkIGNhcnQgbW9kdWxlIGZyb20gdGhlIHByb2R1Y3QgZGV0YWlsIGFuZCBzdW1tYXJ5IGRpc3BsYXlzJzsKJGxhbmdbJ2luZm9fY29weV9hdHRyaWJzZXRzJ10gPSAnVGhpcyBhY3Rpb24gd2lsbCBjb3B5IEF0dHJpYnV0ZSBzZXRzIChleGNsdWRpbmcgc2t1IHZhbHVlcykgZnJvbSBhbm90aGVyIHByb2R1Y3QuJzsKJGxhbmdbJ2luZm9fY3JlYXRlZmllbGRzJ10gPSAnQ3JlYXRlIHVua25vd24gcHJvZHVjdCBmaWVsZHMgYXV0b21hdGljYWxseT8gPGVtPihUaGV5IHdpbGwgYmUgY3JlYXRlZCBhcyB0ZXh0IGZpZWxkcyk8L2VtPic7CiRsYW5nWydpbmZvX2NyZWF0ZWNhdGVnb3JpZXMnXSA9ICdBdXRvbWF0aWNhbGx5IGNyZWF0ZSBwcm9kdWN0IGNhdGVnb3JpZXMgdG8gbWF0Y2ggdGhvc2Ugb2YgdGhlIENTViBmaWxlLCBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0JzsKJGxhbmdbJ2luZm9fY3JlYXRlaGllcmFyY2h5J10gPSAnQXV0b21hdGljYWxseSBjcmVhdGUgcHJvZHVjdCBoaWVyYXJjaGllcyB0byBtYXRjaCB0aG9zZSBvZiB0aGUgQ1NWIGZpbGUgaWYgaXQgZG9lcyBub3QgYWxyZWFkeSBleGlzdCc7CiRsYW5nWydpbmZvX2RlY2ltYWxfdW5pdHMnXSA9ICfQkiDQutCw0YfQtdGB0YLQstC1INC00LXRgdGP0YLQuNGH0L3QvtCz0L4g0YDQsNC30LTQtdC70LjRgtC10LvRjyDQuNGB0L/QvtC70YzQt9GD0LnRgtC1INGC0L7Rh9C60YMgKC4pINC90LDQv9GA0LjQvNC10YA6IDxzdHJvbmc+IDU5LjkwIDwvIFNUUk9ORz4nOwokbGFuZ1snaW5mb19kZWxpbWl0ZXInXSA9ICdTcGVjaWZ5IHRoZSBjaGFyYWN0ZXIgKG9yIGNoYXJhY3RlcnMpIHRoYXQgc2VwZXJhdGUgZWFjaCBmaWVsZCc7CiRsYW5nWydpbmZvX2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnU3BlY2lmeSBob3cgdGhlIHN5c3RlbSBzaG91bGQgaGFuZGxlIGEgcHJvZHVjdCB3aG9zIG5hbWUgYWxyZWFkeSBleGlzdHMgaW4gdGhlIENTViBmaWxlJzsKJGxhbmdbJ2luZm9fZmllbGRkZWZzX3RhYiddID0gJzxzdHJvbmc+0J/RgNC40LzQtdGH0LDQvdC40LU6IDwvc3Ryb25nPiDQktGB0LUg0L/QvtC70Y8g0L7Qv9GA0LXQtNC10LvRj9C10LzRi9C1INC30LTQtdGB0Ywg0LTQvtGB0YLRg9C/0L3RiyDQtNC70Y8g0LLRgdC10YUg0YLQvtCy0LDRgNC+0LIuJzsKJGxhbmdbJ2luZm9fZmllbGRwcm9ibGVtcyddID0gJ9CS0L7Qt9C90LjQutC70Lgg0L/RgNC+0LHQu9C10LzRiyDQv9GA0Lgg0YDQsNCx0L7RgtC1INGBINC+0LTQvdC40Lwg0LjQu9C4INCx0L7Qu9C10LUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GM0YHQutC40YUg0L/QvtC70LXQuS4g0LTQtdC50YHRgtCy0LjQtSDQt9Cw0LLQtdGA0YjQtdC90L4g0YPRgdC/0LXRiNC90L4sINC+0LTQvdCw0LrQviDQstGLINC00L7Qu9C20L3RiyDQuNC30YPRh9C40YLRjCDQuCDQuNGB0L/RgNCw0LLQuNGC0Ywg0Y3RgtC4INC/0YDQvtCx0LvQtdC80YsuJzsKJGxhbmdbJ2luZm9faGFuZGxlaW1hZ2VzJ10gPSAnVXBvbiBpbXBvcnQsIGlmIGFuIGltYWdlIGZpbGVuYW1lIGlzIGZvdW5kIGluIGEgZmllbGQgY29sdW1uLCBzaG91bGQgaXQgYmUgbW92ZWQgZnJvbSB0aGUgc291cmNlIGxvY2F0aW9uLCB3YXRlcm1hcmtlZCwgdGh1bWJuYWlsZWQsIGFuZCB0aGUgZmllbGQgdHlwZSBjaGFuZ2VkIHRvICJpbWFnZSInOwokbGFuZ1snaW5mb19oaWVycGFnZSddID0gJ1VzZSB0aGlzIHBhZ2UgZm9yIGhpZXJhcmNoeSB2aWV3cy4gIFRoZSBwYWdlaWQgd2lsbCBub3QgYmUgc3BlZmlyaWVkIG9uIHRoZSBVUkwuJzsKJGxhbmdbJ2luZm9faW1hZ2VwYXRoJ10gPSAnVGhlIHBhdGggKHJlbGF0aXZlIHRvIHRoZSB1cGxvYWRzIGRpcmVjdG9yeSkgd2hlcmUgaW1hZ2VzIHJlZmVycmVkIHRvIGluIHRoZSBpbXBvcnQgZmlsZSwgY2FuIGJlIGZvdW5kJzsKJGxhbmdbJ2luZm9faW1wb3J0X3Rlc3RfcGFzc2VkJ10gPSAnQSBicmllZiB0ZXN0IGFzIGJlZW4gcGVyZm9ybWVkIG9uIHRoZSBpbnB1dCBmaWxlIHNwZWNpZmllZCwgYW5kIGV2ZXJ5dGhpbmcgYXBwZWFycyB0byBiZSBjb3JyZWN0Ljxici8+VGhpcyBpcyBubyBpbmRpY2F0aW9uIHRoYXQgdGhlcmUgYXJlIG5vIGVycm9ycyBpbiB0aGUgZmlsZS4nOwokbGFuZ1snaW5mb19wcmV0dHloaWVydXJscyddID0gJ0luY2x1ZGUgdGhlIGhpZXJhcmNoeSBpdGVtIG5hbWUgb24gdGhlIFVSTCc7CiRsYW5nWydpbmZvX3ByaWNlX2FkanVzdG1lbnQnXSA9ICfQlNC+0L/Rg9GB0YLQuNC80YvQtSDQt9C90LDRh9C10L3QuNGPICstKiMuIyMnOwokbGFuZ1snaW5mb19wcm9kbm90Zm91bmQnXSA9ICdUaGlzIG9wdGlvbiBkZXRlcm1pbmVzIHRoZSBiZWhhdmlvdXIgb2YgdGhlIHdlYnNpdGUgaWYgYSBwcm9kdWN0IGRldGFpbCB2aWV3IGlzIGFjY2Vzc2VkIGRpcmVjdGx5IGJ5IFVSTCwgYW5kIHRoYXQgcHJvZHVjdCBmb3Igd2hhdGV2ZXIgcmVhc29uIChkaXNhYmxlZCwgZGVsZXRlZCwgZXRjKSBjYW5ub3QgYmUgYWNjZXNzZWQuJzsKJGxhbmdbJ2luZm9fcHVibGljZmllbGQnXSA9ICfQn9GD0LHQu9C40YfQvdGL0LUg0L/QvtC70Y8g0LTQvtGB0YLRg9C/0L3RiyDQtNC70Y8g0L/RgNC+0YHQvNC+0YLRgNCwINC/0L7RgdC10YLQuNGC0LXQu9GP0LzQuCc7CiRsYW5nWydsYWJlbCddID0gJ9Cf0L7QtNC/0LjRgdGMJzsKJGxhbmdbJ2xhYmVsX3NraXAnXSA9ICfQn9GA0L7Qv9GD0YHRgtC40YLRjCc7CiRsYW5nWydsYWJlbF9vdmVyd3JpdGUnXSA9ICfQn9C10YDQtdC30LDQv9C40YHQsNGC0YwnOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAn0JjQt9C80LXQvdC10L0nOwokbGFuZ1snbG9nb3RleHQnXSA9ICfQktGC0L7RgNC+0LUg0LjQt9C+0LHRgNCw0LbQtdC90LjQtSc7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYXhpbXVtIGxlbmd0aCA8ZW0+KGFwcGxpY2FibGUgb25seSBvbiB0ZXh0Ym94IGZpZWxkcyk8L2VtPic7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICfQmNC30LzQtdC90LXQvSc7CiRsYW5nWydtb2R1bGVfZGVzY3JpcHRpb24nXSA9ICdBIG1vZHVsZSBmb3IgbWFuYWdpbmcgYSBjYXRhbG9nIG9mIHByb2R1Y3RzLCB0aGVpciBwcmljZSwgaW1hZ2VzLCBldGMsIGFuZCBmb3IgYWxsb3dpbmcgdXNlcnMgdG8gYnVpbGQgYSBjYXJ0JzsKJGxhbmdbJ21vdmVfZG93biddID0gJ01vdmUgRG93bic7CiRsYW5nWydtb3ZlX3VwJ10gPSAnTW92ZSBVcCc7CiRsYW5nWyduYW1lJ10gPSAn0J3QsNC30LLQsNC90LjQtSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ1lvdSBkbyBub3QgaGF2ZSB0aGUgcmVxdWlyZWQgcGVybWlzc2lvbjogJXMnOwokbGFuZ1snbmV3X2NhdGVnb3J5X25hbWUnXSA9ICfQndC+0LLQvtC1INC90LDQt9Cy0LDQvdC40LUg0LrQsNGC0LXQs9C+0YDQuNC4JzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydubyddID0gJ9Cd0LXRgic7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ05vIG5hbWUgd2FzIHN1cHBsaWVkJzsKJGxhbmdbJ25vbmUnXSA9ICc80J3QtdGCPic7CiRsYW5nWydvZiddID0gJ9CY0LcnOwokbGFuZ1sncGFnZSddID0gJ9Ch0YLRgNCw0L3QuNGG0LAnOwokbGFuZ1sncGFnZV9vZiddID0gJ9Ch0YLRgNCw0L3QuNGG0LAgJXMg0LjQtyAlcyc7CiRsYW5nWydwYWdlX2xpbWl0J10gPSAn0J/RgNC+0LTRg9C60YLQvtCyINC90LAg0YHRgtGA0LDQvdC40YbQtSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcGVjaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5oaWVyYXJjaHkgLS0gRGlzcGxheSBhIHByb2R1Y3QgbGlzdCBieSBoaWVyYXJjaHk8L2xpPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdCBjYXRlZ29yaWVzPC9saT4NCiAgPGxpPjxlbT5kZWZhdWx0PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyeSBvZiBwcm9kdWN0czwvbGk+DQogIDxsaT5kZXRhaWxzIC0gRGlzcGxheSBhIGRldGFpbCB2aWV3IG9mIGEgc2luZ2xlIHByb2R1Y3Q8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdXaGVuIHVzZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciwgd2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBuYW1lIG9mIGFuIGV4aXN0aW5nIGNhdGVnb3J5IHdpbGwgYmUgdXNlZCB0byBkaXNwbGF5IG9ubHkgdGhvc2UgcHJvZHVjdHMgdGhhdCBhcmUgaW4gdGhhdCBjYXRlZ29vcnkuIChhIGNvbW1hIHNlcGVyYXRlZCBsaXN0IGNhbiBiZSBzdXBwbGllZCknOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0ZHRsdGVtcGxhdGUnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGlzcGxheSBvZiB0aGUgY2F0ZWdvcnkgZGV0YWlscy4gIFRoaXMgdXNlcyBhIGNhdGVnb3J5IGxpc3QgdGVtcGxhdGUuLiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1fZGV0YWlscGFnZSddID0gJ1RoaXMgc3BlY2lmaWVzIHRoZSBwYWdlaWQgb3IgYWxpYXMgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBkZXRhaWwgcmVwb3J0Lic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRldGFpbCBtb2RlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1fZmllbGQnXSA9ICdVc2VkIG9ubHkgaW4gdGhlIDxlbT5maWVsZGxpc3Q8L2VtPiB0aGlzIHBhcmFtZXRlciBpcyByZXF1aXJlZCB0byBzcGVjaWZ5IHRoZSBuYW1lIG9mIGEgdXNlciBkZWZpbmVkIHByb3BlcnR5IHRvIGNyZWF0ZSBhIGxpc3QgZnJvbS4nOwokbGFuZ1sncGFyYW1fZmllbGR2YWwnXSA9ICdVc2VkIG9ubHkgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGZpZWxkIHZhbHVlIHRvIGxpbWl0IHJlc3VsdHMgYnkuICBTcGVjaWFsIHZhbHVlcyBmb3IgdGhpcyBmaWVsZCBhcmUgIjo6bnVsbDo6IiAiOjpub3RudWxsOjoiJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeSddID0gJ1VzZWZ1bCBvbmx5IGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgb25seSBpdGVtcyBpbiB0aGF0IGxvY2F0aW9uIG9mIHRoZSBoaWVyYXJjaHkgc2hvdWxkIGJlIGRpc3BsYXllZC4gIFdpbGRjYXJkIGNoYXJhY3RlciBjYW4gYmUgdXNlZCBzbyB0aGF0IHlvdSBjYW4gc3BlY2lmeSBwYXJlbnQvY2hpbGQgcmVsYXRpb25zaGlwcyBhcyB3ZWxsLiAgaS5lIHtQcm9kdWN0cyBoaWVyYXJjaHk9XCd0cnVja3MqXCd9IHdpbGwgY3JlYXRlIGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgaW5jbHVkaW5nIHRoZSBjaGlsZHJlbiBpbiB0aGUgaGllcmFyY2h5LiAgU2ltaWxhcmx5LCB7UHJvZHVjdHMgaGllcmFyY2h5PVwnKnRydWNrc1wnfSB3aWxsIGRpc3BsYXkgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBhbmQgYWxsIHByb2R1Y3RzIGJlbG9naW5nIHRvIGFueSBwYXJlbnQgaW4gdGhlIGhpZXJhcmNoeS4nOwokbGFuZ1sncGFyYW1faGllcmFyY2h5dGVtcGxhdGUnXSA9ICdUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBoaWVyYXJjaHkgZGlzcGxheS4gSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2lubGluZSddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGF0IHRoZSBvdXRwdXQgb2YgdGhlIHN1bW1hcnkgdmlldyBzaG91bGQgYmUgZGlzcGxheWVkIGlubGluZSc7CiRsYW5nWydwYXJhbV9wYWdlbGltaXQnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBsaXN0ZWQgb24gZWFjaCBwYWdlLic7CiRsYW5nWydwYXJhbV9wYXJlbnQnXSA9ICdVc2VmdWwgb25seSBpbiB0aGUgPGVtPmhpZXJhcmNoeTwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBoaWVyYXJjaHkgaWQgb2YgdGhlIHN0YXJ0aW5nIGxvY2F0aW9uIG9mIHRoZSByZXBvcnQuJzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RpZCddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGRldGFpbCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB3aGF0IHByb2R1Y3QgdG8gdXNlIGZvciB0aGUgZGlzcGxheS4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGxpc3QnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgKHN1bW1hcnkpIHZpZXcsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgaW50ZWdlciBwcm9kdWN0IGlkcyB0byBkaXNwbGF5LiAgTm8gcGFnaW5hdGlvbiBvciBzb3J0aW5nIGlzIHBlcmZvcm1lZCBvbiB0aGVzZSB2YWx1ZXMsIGFuZCBpZiBzcGVjaWZpZWQgdGhlIG90aGVyIGZpbHRlcmluZyBwYXJhbWV0ZXJzIHRvIHRoZSBzdW1tYXJ5IHZpZXcgYXJlIGlnbm9yZWQuJzsKJGxhbmdbJ3BhcmFtX3Jlc3VsdHBhZ2UnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCwgYW5kIGNhdGVnb3J5IGxpc3QgYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGEgcGFnZSBpZCBvciBhbGlhcyB0byB1c2UgdG8gZGlzcGxheSB0aGUgc3VtbWFyeSByZXN1bHRzJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZpZWxkJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBtYXkgY29udGFpbiBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGZpZWxkIG5hbWVzIHRvIGluY2x1ZGUgaW4gdGhlIHNlYXJjaCc7CiRsYW5nWydwYXJhbV9zZWFyY2hmb3JtdGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXNwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCBzZWFyY2ggZm9ybSB0ZW1wbGF0ZSc7CiRsYW5nWydwYXJhbV9zaG93YWxsJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBjYXRlZ29yeWxpc3QgYW5kIGZpZWxkbGlzdCBhY3Rpb25zLCBpZiB0aGlzIHBhcmFtZXRlciBpcyBzZXQgdG8gYSBub24gMCBpbnRlZ2VyIHZhbHVlIGFsbCBjYXRlZ29yaWVzIChldmVuIHRob3NlIHdpdGhvdXQgcHJvZHVjdHMpIHdpbGwgYmUgZGlzcGxheWVkLic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcGVjaWZ5IHRoZSBvcmRlciBvZiBzb3J0ZWQgZmllbGRzIGluIHN1bW1hcnkgdmlldy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBBc2NlbmRpbmcgb3JkZXI8L2xpPg0KICA8bGk+ZGVzYyAtLSBEZXNjZW5kaW5nIG9yZGVyPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gJ0FwcGxpY2FibGUgb25seSBpbiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyIGRldGVybWluZXMgdGhlIHNvcnRpbmcgb2YgdGhlIG91dHB1dCBwcm9kdWN0cy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPnByb2R1Y3RfbmFtZTwvc3Ryb25nPjwvbGk+DQogIDxsaT5pZCAtLSBUaGUgcHJvZHVjdCBpZDwvbGk+DQogIDxsaT53ZWlnaHQgLS0gVGhlIHByb2R1Y3Qgd2VpZ2h0PC9saT4NCiAgPGxpPnByaWNlIC0tIFRoZSBwcm9kdWN0IGJhc2UgcHJpY2U8L2xpPg0KICA8bGk+c3RhdHVzIC0tIERyYWZ0IG9yIHB1Ymxpc2hlZDwvbGk+DQogIDxsaT5yYW5kb20gLS0gRGlzcGxheSBpbiByYW5kb20gb3JkZXIgb24gZWFjaCByZXF1ZXN0PC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gVGhlIGNyZWF0aW9uIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KICA8bGk+bW9kaWZpZWQgLS0gVGhlIG1vZGlmaWVkIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydHR5cGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgc3VtbWFyeSB2aWV3LCB0aGlzIHBhcmFtZXRlciBpcyB1c2VkIHRvIGNvbnZlcnQgdGhlIHZhbHVlcyB0byBhbm90aGVyIHR5cGUgZm9yIHNvcnRpbmcuICB2YWxpZCB2YWx1ZXMgYXJlIFNUUklORyxTSUdORUQgYW5kIFVOU0lHTkVELiAgSWYgbm90IHN1cHBsaWVkIHRoZSBkZWZhdWx0IFNUUklORyB0eXBlIGlzIGFzc3VtZWQuJzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnlwYWdlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBhY3Rpb249aGllcmFyY2h5LCBhbGxvd3Mgc3BlY2lmeWluZyBhIHBhZ2UgaWQgb3IgYWxpYXMgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIGFueSBsaW5rcyB0byBzdW1tYXJ5IHZpZXcnOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgc3VtbWFyeSBtb2RlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyZW50J10gPSAn0KDQvtC00LjRgtC10LvRjCc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1RoZSBQcm9kdWN0cyBtb2R1bGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZCc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnVGhlIFByb2R1Y3RzIG1vZHVsZSBoYXMgYmVlbiByZW1vdmVkIGFsb25nIHdpdGggYWxsIGFzc29jaWF0ZWQgZGF0YSc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ9Cd0LDRgdGC0YDQvtC50LrQuCc7CiRsYW5nWydwcmV1bmluc3RhbGwnXSA9ICdSZW1vdmluZyB0aGlzIG1vZHVsZSB3aWxsIGFsc28gcmVtb3ZlIGFsbCBhc3NvY2lhdGVkIGRhdGEsIGFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBwcm9jZWVkPyc7CiRsYW5nWydwcmljZSddID0gJ9Cm0LXQvdCwJzsKJGxhbmdbJ3ByaWNlX2FkanVzdG1lbnQnXSA9ICfQmtC+0YDRgNC10LrRgtC40YDQvtCy0LrQsCDRhtC10L0nOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb2R1Y3QnXSA9ICfQotC+0LLQsNGAJzsKJGxhbmdbJ3Byb2R1Y3RuYW1lJ10gPSAn0J3QsNC30LLQsNC90LjQtSc7CiRsYW5nWydwcm9kdWN0cyddID0gJ9Ci0L7QstCw0YDRiyc7CiRsYW5nWydwcm9kdWN0X2RldGFpbF9zZXR0aW5ncyddID0gJ1Byb2R1Y3QgRGV0YWlsIFNldHRpbmdzJzsKJGxhbmdbJ3Byb2R1Y3RfZWRpdGluZ19zZXR0aW5ncyddID0gJ1Byb2R1Y3QgRWRpdGluZyBTZXR0aW5ncyc7CiRsYW5nWydwcm9kdWN0X3N1bW1hcnlfc2V0dGluZ3MnXSA9ICdQcm9kdWN0IFN1bW1hcnkgU2V0dGluZ3MnOwokbGFuZ1sncHJvZHVjdF9oaWVyYXJjaHknXSA9ICfQmNC10YDQsNGA0YXQuNGPINCa0LDRgtCw0LvQvtCz0LAnOwokbGFuZ1sncHJvZHVjdF9tYW5hZ2VyJ10gPSAn0KPQv9GA0LDQstC70LXQvdC40LUg0L/RgNC+0LTRg9C60YLQsNC80LgnOwokbGFuZ1sncHJvZ3Jlc3MnXSA9ICdQcm9ncmVzcyc7CiRsYW5nWydwcm9tcHQnXSA9ICfQn9C+0LTRgdC60LDQt9C60LAnOwokbGFuZ1sncHJvbXB0X2FkZF9hdHRyaWJzZXQnXSA9ICdBZGQvRWRpdCBBdHRyaWJ1dGUgU2V0JzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ZpbGV0eXBlcyddID0gJ9Cg0LDQt9GA0LXRiNC40YLRjCDQt9Cw0LPRgNGD0LbQsNGC0Ywg0YTQsNC50LvRiyDRgSDRgNCw0YHRiNC40YDQtdC90LjRj9C80LggKNC00LvRjyDQv9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60LjRhSDQv9C+0LvQtdC5INGC0LjQv9CwICLRhNCw0LnQuyIpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ltYWdldHlwZXMnXSA9ICfQoNCw0LfRgNC10YjQuNGC0Ywg0LfQsNCz0YDRg9C20LDRgtGMINC40LfQvtCx0YDQsNC20LXQvdC40Y8g0YEg0Y3RgtC40LzQuCDRgNCw0YHRiNC40YDQtdC90LjRj9C80LggKNC00LvRjyDQv9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60LjRhSDQv9C+0LvQtdC5INGC0LjQv9CwICLQuNC30L7QsdGA0LDQttC10L3QuNC1IiknOwokbGFuZ1sncHJvbXB0X2F0dHJpYnRlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIGRpc3BsYXkgb2YgcHJvZHVjdCBhdHRyaWJ1dGUgdmFsdWVzIGluIGRyb3Bkb3duJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsJ10gPSAn0JDQstGC0L7QvNCw0YLQuNGH0LXRgdC60Lgg0YHQvtC30LTQsNCy0LDRgtGMINGN0YHQutC40LfRiyDQuNC30L7QsdGA0LDQttC10L3QuNC5JzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsX3NpemUnXSA9ICdNYXhpbXVtIHNpemUgKGxhcmdlc3QgZGltZW5zaW9uKSBvZiB0aGUgdGh1bWJuYWlsLic7CiRsYW5nWydwcm9tcHRfYXV0b3ByZXZpZXdpbWcnXSA9ICdBdXRvbWF0aWNhbGx5IGNyZWF0ZSBwcmV2aWV3IGltYWdlcyBvZiBpbWFnZXMnOwokbGFuZ1sncHJvbXB0X2F1dG9wcmV2aWV3aW1nX3NpemUnXSA9ICdNYXhpbXVtIHNpemUgKGxhcmdlc3QgZGltZW5zaW9uKSBvZiB0aGUgcHJldmlldyBpbWFnZS4nOwokbGFuZ1sncHJvbXB0X2F1dG93YXRlcm1hcmsnXSA9ICfQkNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuCDRgdGC0LDQstC40YLRjCDQstC+0LTRj9C90YvQtSDQt9C90LDQutC4INC90LAg0LjQt9C+0LHRgNCw0LbQtdC90LjRj9GFJzsKJGxhbmdbJ3Byb21wdF9hcHBsaWNhYmxlJ10gPSAnRW5hYmxlIGJ5IGRlZmF1bHQgZm9yIGFsbCBuZXcgcHJvZHVjdHMnOwokbGFuZ1sncHJvbXB0X2JhdGNoc2l6ZSddID0gJ0JhdGNoIFNpemUnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlJ10gPSAn0JzQvtC00YPQu9GMINC60L7RgNC30LjQvdGLJzsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICfQn9Cw0YDQvNC10YLRgNGLINC80L7QtNGD0LvRjyDQutC+0YDQt9C40L3Riyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlY2F0ZWdvcmllcyddID0gJ0NyZWF0ZSBDYXRlZ29yaWVzJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVmaWVsZHMnXSA9ICdDcmVhdGUgUHJvZHVjdCBGaWVsZHM/JzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVoaWVyYXJjaHknXSA9ICdDcmVhdGUgUHJvZHVjdCBIaWVyYXJjaHknOwokbGFuZ1sncHJvbXB0X2NzdmZpbGUnXSA9ICfQl9Cw0LPRgNGD0LfQuNGC0YwgQ1ZTINGE0LDQudC7JzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeWNvZGUnXSA9ICfQmtC+0LQg0LLQsNC70Y7RgtGLJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeXN5bWJvbCddID0gJ9Ch0LjQvNCy0L7QuyDQstCw0LvRjtGC0YsnOwokbGFuZ1sncHJvbXB0X2RlZmF1bHRfc3RhdHVzJ10gPSAn0J/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LLRgdC1INC90L7QstGL0LUg0L/RgNC+0LTRg9C60YLRiyDQuNC80LXRjtGCINGB0YLQsNGC0YPRgSc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF90YXhhYmxlJ10gPSAn0J/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LLRgdC1INC90L7QstGL0LUg0L/RgNC+0LTRg9C60YLRiyDQvtCx0LvQsNCz0LDRjtGC0YHRjyDQvdCw0LvQvtCz0L7QvCc7CiRsYW5nWydwcm9tcHRfZGVsZXRlcHJvZHVjdGZpbGVzJ10gPSAn0KPQtNCw0LvRj9GC0Ywg0LLRgdC1INGE0LDQudC70YssINGB0LLRj9C30LDQvdC90YvQtSDRgSDQv9GA0L7QtNGD0LrRgtC+0LwsINC60L7Qs9C00LAg0L/RgNC+0LTRg9C60YIg0LHRg9C00LXRgiDRg9C00LDQu9C10L0/JzsKJGxhbmdbJ3Byb21wdF9kZWxpbWl0ZXInXSA9ICdGaWVsZCBEZWxpbWl0ZXInOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICfQodGC0YDQsNC90LjRhtCwINC+0L/QuNGB0LDQvdC40Y8g0YLQvtCy0LDRgNCwINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxzZm9yJ10gPSAnRGV0YWlscyBmb3IgJXMnOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnSG93IHRvIGhhbmRsZSBkdXBsaWNhdGUgcHJvZHVjdHM/JzsKJGxhbmdbJ3Byb21wdF9mYWxzZSddID0gJ0ZhbHNlJzsKJGxhbmdbJ3Byb21wdF9oYW5kbGVpbWFnZXMnXSA9ICdIYW5kbGUgaW1hZ2VzPyc7CiRsYW5nWydwcm9tcHRfaW1hZ2VwYXRoJ10gPSAnSW1hZ2UgUGF0aCc7CiRsYW5nWydwcm9tcHRfbGVuZ3RodW5pdHMnXSA9ICdMZW5ndGggVW5pdHMnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX2JlaGF2aW9yJ10gPSAnV2hhdCBhY3Rpb24gc2hvdWxkIGJlIHRha2VuIHdoZW4gYSBwcm9kdWN0IGNhbm5vdCBiZSBkaXNwbGF5ZWQ/JzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF80MDQnXSA9ICdHZW5lcmF0ZSBhIDQwNCBlcnJvcic7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfMzAxJ10gPSAnR2VuZXJhdGUgYSAzMDEgcmVkaXJlY3QnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX2Vycm9ybXNnJ10gPSAnRGlzcGxheSBhbiBlcnJvciBtZXNzYWdlJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9tc2cnXSA9ICdFcnJvciBtZXNzYWdlIGZvciB3aGVuIGEgcHJvZHVjdCBjYW5ub3QgYmUgZm91bmQnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX3BhZ2UnXSA9ICdQYWdlIHRvIGRvIHBlcm1hbmVudCByZWRpcmVjdCB0bz8nOwokbGFuZ1sncHJvbXB0X2hpZXJwYWdlJ10gPSAnRGVmYXVsdCBQYWdlIGZvciBIaWVyYXJjaHkgVmlldyc7CiRsYW5nWydwcm9tcHRfcHJldHR5aGllcnVybHMnXSA9ICdVc2UgUHJldHR5IFVSTFMgdG8gSGllcmFyY2h5IFZpZXdzJzsKJGxhbmdbJ3Byb21wdF9wcm9kX2RldGFpbHBhZ2UnXSA9ICdEZWZhdWx0IFBhZ2UgZm9yIFByb2R1Y3QgRGV0YWlsIFZpZXdzJzsKJGxhbmdbJ3Byb21wdF9wcm9kdWN0c19tYXRjaGluZyddID0gJ1Byb2R1Y3RzIG1hdGNoaW5nICVzJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5cGFnZWxpbWl0J10gPSAnRGVmYXVsdCBwYWdlIGxpbWl0IGluIHN1bW1hcnkgbW9kZSc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRvcmRlciddID0gJ9Cf0L7RgNGP0LTQvtC6INGB0L7RgNGC0LjRgNC+0LLQutC4INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINCyINGB0YPQvNC80LDRgNC90L7QvCDRgNC10LbQuNC80LUnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAn0J/QvtC70Y8g0YHQvtGA0YLQuNGA0L7QstC60Lgg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LIg0YHRg9C80LzQsNGA0L3QvtC8INGA0LXQttC40LzQtSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBTb3VyY2UnOwokbGFuZ1sncHJvbXB0X3RydWUnXSA9ICdUcnVlJzsKJGxhbmdbJ3Byb21wdF91cmxwcmVmaXgnXSA9ICdQcmVmaXggdG8gdXNlIG9uIGFsbCBVUkxTIHRhcmdldGVkIHRvIHRoaXMgdGhpcyBtb2R1bGUnOwokbGFuZ1sncHJvbXB0X3VzZV9kZXRhaWxwYWdlX2Zvcl9zZWFyY2gnXSA9ICdVc2UgdGhpcyBwYWdlIGZvciBzZWFyY2ggcmVzdWx0cyB0b28gPGVtPihvdmVycmlkZXMgdGhlIHNlYXJjaHJlc3VsdHMgcGFnZSBwYXJhbWV0ZXIgaW4gdGhlIHNlYXJjaCBtb2R1bGUpPC9lbT4nOwokbGFuZ1sncHJvbXB0X3VzZWhpZXJwYXRodXJscyddID0gJ1VzZSBIaWVyYXJjaHkgUGF0aCBpbiBQcm9kdWN0IERldGFpbCBVUkxTJzsKJGxhbmdbJ3Byb21wdF93ZWlnaHR1bml0cyddID0gJ9CV0LTQuNC90LjRhtCwINCy0LXRgdCwJzsKJGxhbmdbJ3B1YmxpYyddID0gJ9Cv0LLQu9GP0LXRgtGB0Y8g0LvQuCDRjdGC0L4g0L/QvtC70LUg0L/Rg9Cx0LvQuNGH0L3Ri9C8Pyc7CiRsYW5nWydwdWJsaXNoZWQnXSA9ICfQntC/0YPQsdC70LjQutC+0LLQsNC9JzsKJGxhbmdbJ3JhbmRvbSddID0gJ1JhbmRvbSc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1Jlc2V0IHRvIEZhY3RvcnkgVmFsdWVzJzsKJGxhbmdbJ3JldHVybiddID0gJ9Cd0LDQt9Cw0LQnOwokbGFuZ1sncmV0dXJuX3RvX3RvcCddID0gJ1JldHVybiB0byB0aGUgdG9wIG9mIHRoZSB2aWV3JzsKJGxhbmdbJ3Jvb3QnXSA9ICfQmtCw0YLQsNC70L7Qsyc7CiRsYW5nWydzZWFyY2hfZGVzY3JpcHRpb24nXSA9ICdTZWFyY2ggUHJvcGVydHkgRGVzY3JpcHRpb24nOwokbGFuZ1snc2VhcmNoX2V4cHInXSA9ICdTaG91bGQgdGhlIHF1ZXJ5IG1hdGNoIGFsbCwgb3IgYW55IG9mIHRoZSB0ZXN0cyBiZWxvdz8nOwokbGFuZ1snc2VhcmNoX25hbWUnXSA9ICdTZWFyY2ggUHJvcGVydHkgTmFtZSc7CiRsYW5nWydzZWFyY2hfcHJpY2UnXSA9ICdQcmljZSBSYW5nZSc7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgU2VhcmNoIEZvcm0gVGVtcGxhdGUnOwokbGFuZ1snc2VhcmNodGVtcGxhdGVzJ10gPSAnU2VhcmNoIFRlbXBsYXRlcyc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2VsZWN0IE9uZSc7CiRsYW5nWydza3UnXSA9ICdTS1UnOwokbGFuZ1snc29ydF9ieSddID0gJ9Ch0L7RgNGC0LjRgNC+0LLQsNGC0Ywg0L/Qvic7CiRsYW5nWydzb3J0X29yZGVyJ10gPSAn0J/QvtGA0Y/QtNC+0Log0YHQvtGA0YLQuNGA0L7QstC60LgnOwokbGFuZ1snc291cmNlJ10gPSAnU291cmNlJzsKJGxhbmdbJ3N0YXR1cyddID0gJ9Ch0YLQsNGC0YPRgSc7CiRsYW5nWydzdWJtaXQnXSA9ICfQntGC0L/RgNCw0LLQuNGC0YwnOwokbGFuZ1snc3Vic2NyaXB0aW9uJ10gPSAnU3Vic2NyaXB0aW9uJzsKJGxhbmdbJ3N1YnNjcl9leHBpcnknXSA9ICdFeHBpcnknOwokbGFuZ1snc3Vic2NyX2V4cGlyeTInXSA9ICdFeHBpcmVzJzsKJGxhbmdbJ3N1YnNjcl9tb250aGx5J10gPSAnTW9udGhseSc7CiRsYW5nWydzdWJzY3JfZGVscGVyaW9kJ10gPSAnRGVsaXZlcnkgRnJlcXVlbmN5JzsKJGxhbmdbJ3N1YnNjcl9kZWxwZXJpb2QyJ10gPSAnRGVsaWV2ZXJlZCc7CiRsYW5nWydzdWJzY3JfcGF5cGVyaW9kJ10gPSAnUGF5bWVudCBGcmVxdWVuY3knOwokbGFuZ1snc3Vic2NyX3BheXBlcmlvZDInXSA9ICdQYWlkJzsKJGxhbmdbJ3N1YnNjcl9xdWFydGVybHknXSA9ICdRdWFydGVybHknOwokbGFuZ1snc3Vic2NyX3NlbWlhbnVhbGx5J10gPSAnU2VtaSBBbnVhbGx5JzsKJGxhbmdbJ3N1YnNjcl95ZWFybHknXSA9ICdZZWFybHknOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ9Ch0YPQvNC80LDRgNC90YvQuSDRiNCw0LHQu9C+0L0nOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICfQlNC+0LHQsNCy0LjRgtGML9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINGB0YPQvNC80LDRgNC90YvQuSDRiNCw0LHQu9C+0L0nOwokbGFuZ1sndGF4YWJsZSddID0gJ9Ce0LHQu9Cw0LPQsNC10LzRi9C5INC90LDQu9C+0LPQvtC8JzsKJGxhbmdbJ3Rlc3QnXSA9ICfQn9GA0L7QstC10YDQutCwJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAn0KLQtdC60YHRgtC+0LLQsNGPINC+0LHQu9Cw0YHRgtGMJzsKJGxhbmdbJ3RleHRib3gnXSA9ICfQotC10LrRgdGC0L7QstCw0Y8g0YHRgtGA0L7QutCwJzsKJGxhbmdbJ3RpdGxlX2J5aGllcmFyY2h5X2RmbHR0ZW1wbGF0ZSddID0gJ9Co0LDQsdC70L7QvSDQuNC10YDQsNGA0YXQuNC4INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOJzsKJGxhbmdbJ3RpdGxlX2NhdGVnb3J5bGlzdF9kZmx0dGVtcGxhdGUnXSA9ICfQqNCw0LHQu9C+0L0g0YHQv9C40YHQutCwINC60LDRgtC10LPQvtGA0LjQuSDQv9C+INGD0LzQvtC70YfQsNC90LjRjic7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAn0KjQsNCx0LvQvtC9INC60LDRgNGC0L7Rh9C60Lgg0YLQvtCy0LDRgNCwINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaF9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IE5ldyBTZWFyY2ggVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICfQodGD0LzQvNCw0YDQvdGL0Lkg0YjQsNCx0LvQvtC9INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOJzsKJGxhbmdbJ3R5cGUnXSA9ICfQotC40L8nOwokbGFuZ1sndXAnXSA9ICdNb3ZlIFVwJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ9Ce0LHQvdC+0LLQuNGC0YwnOwokbGFuZ1sndXBsb2FkJ10gPSAn0JLRi9Cx0LXRgNC40YLQtSDRhNCw0LnQuyDQtNC70Y8g0LfQsNCz0YDRg9C30LrQuCc7CiRsYW5nWyd1cmxfYWxpYXMnXSA9ICdVUkwgQWxpYXMnOwokbGFuZ1sndmFsaWQnXSA9ICdWYWxpZCc7CiRsYW5nWyd2YWx1ZSddID0gJ9CX0L3QsNGH0LXQvdC40LUnOwokbGFuZ1sndmFsdWVzJ10gPSAn0JfQvdCw0YfQtdC90LjRjyc7CiRsYW5nWyd2aWV3J10gPSAnVmlldyc7CiRsYW5nWyd2aWV3YWJsZV9maWVsZHMnXSA9ICdTZWxlY3QgY3VzdG9tIGZpZWxkcyB0byB2aWV3IGluIHRoZSB0YWJsZSc7CiRsYW5nWyd3YXRlcm1hcmtfbG9jYXRpb24nXSA9ICfQoNCw0YHQv9C+0LvQvtC20LXQvdC40LUg0LLQvtC00Y/QvdGL0YUg0LfQvdCw0LrQvtCyKNC/0L7QtNC/0LjRgdC4INC90LAg0LjQt9C+0LHRgNCw0LbQtdC90LjQtSknOwokbGFuZ1snd2VpZ2h0J10gPSAn0JLQtdGBJzsKJGxhbmdbJ3llcyddID0gJ9CU0LAnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xNTg2MjUyMTc0LjEzMDI1NTQxMTIuMTMwMjU1NDExMi4xMzAyNTU0MTEyLjEnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1My40LjkuMTMwMjU1NDYyMzQ1Myc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTMwMjU1NDExMi4xLjEudXRtY3NyPXlhbmRleHx1dG1jY249KG9yZ2FuaWMpfHV0bWNtZD1vcmdhbmljfHV0bWN0cj1jbXMgbWFkZSBzaW1wbGUnOwokbGFuZ1sncWNhJ10gPSAnUDAtNTQ3NTcwMjUtMTMwMjU1NDExMjA5OCc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sk_SK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZCddID0gJ1ByaWRhxaUnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdQcmlkYcWlIGthdGVnJm9hY3V0ZTtyaXUnOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdQcmlkYcWlIHBvbGUnOwokbGFuZ1snYWRqdXN0YWJsZSddID0gJ05hc3Rhdml0ZcS+biZlYWN1dGU7JzsKJGxhbmdbJ2FkZHByb2R1Y3QnXSA9ICdQcmlkYcWlIHByb2R1a3QnOwokbGFuZ1snYWRkX2F0dHJpYl9zZXQnXSA9ICdQcmlkYcWlIGF0cmliJnVhY3V0ZTt0JzsKJGxhbmdbJ2FkZF9jYXRlZ29yeV9maWVsZCddID0gJ1ByaXBvamnFpSAgcG9sZSBrdSBrYXRlZyZvYWN1dGU7cmlpOiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydhZGRfaGllcmFyY2h5X2l0ZW0nXSA9ICdQcmlkYcWlIHBvbG/Fvmt1IHYgaGllcmFyY2hpaSc7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAnUHJpZGHFpSBhdHJpYiZ1YWN1dGU7dCB2b8S+YnknOwokbGFuZ1snYWRtaW5fb25seSddID0gJ00mb2NpcmM7xb51IHRlbnRvIGF0cmliJnVhY3V0ZTt0IHZpZGllxaUgbGVuIGFkbWluaXN0ciZhYWN1dGU7dG9yaT8nOwokbGFuZ1snYWxpZ25fdWwnXSA9ICdWxL5hdm8gaG9yZSc7CiRsYW5nWydhbGlnbl91YyddID0gJ1Ygc3RyZWRlIGhvcmUnOwokbGFuZ1snYWxpZ25fdXInXSA9ICdWcHJhdm8gaG9yZSc7CiRsYW5nWydhbGlnbl9tbCddID0gJ1Ygc3RyZWRlIHbEvmF2byc7CiRsYW5nWydhbGlnbl9tYyddID0gJ1Ygc3RyZWRlJzsKJGxhbmdbJ2FsaWduX21yJ10gPSAnViBzdHJlZGUgdnByYXZvJzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnRG9sZSB2xL5hdm8nOwokbGFuZ1snYWxpZ25fbGMnXSA9ICdEb2xlIHYgc3RyZWRlJzsKJGxhbmdbJ2FsaWduX2xyJ10gPSAnRG9sZSB2cHJhdm8nOwokbGFuZ1snYWxsY2F0ZWdvcmllcyddID0gJ1Ymc2Nhcm9uO2V0a3kga2F0ZWcmb2FjdXRlO3JpZSc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnU3RlIHNpIGlzdCZ5YWN1dGU7Pyc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZXByb2R1Y3QnXSA9ICdTdGUgc2kgaXN0JnlhY3V0ZTssLCDFvmUgY2hjZXRlIHNrdXRvxI1uZSBvZHN0ciZhYWN1dGU7bmnFpSB0ZW50byBwcm9kdWt0LCB2ciZhYWN1dGU7dGFuZSB2JnNjYXJvbjtldGt5Y2ggcHJpZHJ1xb5lbiZ5YWN1dGU7Y2ggaW5mb3JtJmFhY3V0ZTtjaWk/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ1Z6b3N0dXBuZSc7CiRsYW5nWydhdHRyaWJ1dGVfbmFtZSddID0gJ04mYWFjdXRlO3pvdiBhdHJpYiZ1YWN1dGU7dHUnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGljayZ5YWN1dGU7JzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVzJ10gPSAnJlNjYXJvbjthYmwmb2FjdXRlO25hIHYmeWFjdXRlO3Bpc3UgdiBoaWVyYXJjaGlpJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVfYWRkZWRpdCddID0gJ1ByaWRhxaUvVXByYXZpxaUgJnNjYXJvbjthYmwmb2FjdXRlO25hIHYmeWFjdXRlO3Bpc3UgdiBoaWVyYXJjaGlpJzsKJGxhbmdbJ2NhbmNlbCddID0gJ1pydSZzY2Fyb247acWlJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdLYXRlZyZvYWN1dGU7cmllJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnS2F0ZWcmb2FjdXRlO3JpYSc7CiRsYW5nWydjYXRlZ29yeWV4aXN0cyddID0gJ0thdGVnJm9hY3V0ZTtyaWEgcyB0JnlhY3V0ZTttdG8gbiZhYWN1dGU7enZvbSB1xb4gZXhpc3R1amUnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVzJ10gPSAnJlNjYXJvbjthYmwmb2FjdXRlO25hICB6b3puYW11IGthdGVnJm9hY3V0ZTtyaWknOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ1ByaWRhxaUvVXByYXZpxaUgJnNjYXJvbjthYmwmb2FjdXRlO251IHpvem5hbXUga2F0ZWcmb2FjdXRlO3JpaSc7CiRsYW5nWydjaGVja2JveCddID0gJ1phJnNjYXJvbjtrcnQmYWFjdXRlO3ZhY2llIHBvbGUnOwokbGFuZ1snY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnXSA9ICdTdGUgc2kgaXN0JnlhY3V0ZTssIMW+ZSBjaGNldGUgb2RzdHImYWFjdXRlO25pxaUgdCZ1YWN1dGU7dG8gJnVhY3V0ZTtyb3ZlxYg/ICBQcm9kdWt0eSB2IHRlanRvICZ1YWN1dGU7cm92bmkgIHByJmlhY3V0ZTtkdSBhdXRvbWF0aWNreSBvIHphcmFkZW5pZSB2IGhpZXJhcmNoaWknOwokbGFuZ1snY29weSddID0gJ0tvcCZpYWN1dGU7cm92YcWlJzsKJGxhbmdbJ2NvcHlfY2F0ZWdvcnknXSA9ICdLb3AmaWFjdXRlO3JvdmHFpSBrYXRlZyZvYWN1dGU7cml1JzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRCZhYWN1dGU7dHVtIHZ5dHZvcmVuaWEnOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ1MmdWFjdXRlO8SNYXNuJmFhY3V0ZTsgaG9kbm90YSc7CiRsYW5nWydkYXRhJ10gPSAnRCZhYWN1dGU7dGEnOwokbGFuZ1snZGVmYXVsdCddID0gJ1ByZWRuYXN0YXZlbiZlYWN1dGU7JzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdQcmVkYXN0YXZlbiZlYWN1dGU7ICZzY2Fyb247YWJsJm9hY3V0ZTtueSc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlX25vdGljZSddID0gJzxzdHJvbmc+UG96biZhYWN1dGU7bWthOjwvc3Ryb25nPiBPYnNhaHkgdCZ5YWN1dGU7Y2h0byB0ZXh0b3YmeWFjdXRlO2NoIG9ibGFzdCZpYWN1dGU7IHNhIHBvdcW+JmlhY3V0ZTt2YWomdWFjdXRlOyBuYSB2eXR2b3JlbmllIHByZWRuYXN0YXZlbiZlYWN1dGU7aG8gb2JzYWh1ICZzY2Fyb247YWJsJm9hY3V0ZTtuIHByZSBqZWRub3RsaXYmZWFjdXRlOyAmc2Nhcm9uO2FsYiZvYWN1dGU7bnkuIEljaCAmdWFjdXRlO3ByYXZvdm91IG5lc3Amb2NpcmM7c29iJmlhY3V0ZTt0ZSDFvmlhZGVuIGVmZWt0IG5hIHMmdWFjdXRlO8SNYXNuZSB2eXR2b3JlbiZlYWN1dGU7ICZzY2Fyb247YWJsJm9hY3V0ZTtueS4nOwokbGFuZ1snZGVsZXRlJ10gPSAnT2RzdHImYWFjdXRlO25pxaUnOwokbGFuZ1snZGVsZXRlX2F0dHJpYnNldCddID0gJ09kc3RyJmFhY3V0ZTtuacWlIGF0cmliJnVhY3V0ZTt0JzsKJGxhbmdbJ2RlbGV0ZV9oaWVyYXJjaHlfaXRlbSddID0gJ09kc3RyJmFhY3V0ZTtuacWlIHBvbG/Fvmt1IHYgaGllcmFyY2hpaSc7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnWm9zdHVwbmUnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdQb3Bpcyc7CiRsYW5nWydkZXRhaWxzJ10gPSAnRGV0YWlseSc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICcmU2Nhcm9uO2FibCZvYWN1dGU7bmEgZGV0YWlseSAnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ1ByaWRhxaUvdXByYXZpxaUgJnNjYXJvbjthYmwmb2FjdXRlO251IGRldGFpbHUnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdWeXBuJnVhY3V0ZTvFpSc7CiRsYW5nWydkcmFmdCddID0gJ04mYWFjdXRlO3ZyaCc7CiRsYW5nWydkcm9wZG93biddID0gJ1YmeWFjdXRlO2Jlcm92JmVhY3V0ZTsgcG9sZSc7CiRsYW5nWydkcm9wZG93bl9vcHRpb25zJ10gPSAnSG9kbm90eSB2JnlhY3V0ZTtiZXJvdiZlYWN1dGU7aG8gcG/EvmEgPGVtPihidWQmdWFjdXRlOyBwb3XFvml0JmVhY3V0ZTsgaWJhIHByZSB2JnlhY3V0ZTtiZXJvdiZlYWN1dGU7IHBvbGlhKTwvZW0+PGJyLz48YnIvPjxlbT4obm92JmFhY3V0ZTsgcG9sb8W+a2EgbmEgbm92JnlhY3V0ZTsgcmlhZG9rKTwvZW0+JzsKJGxhbmdbJ2VkaXQnXSA9ICdVcHJhdmnFpSc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICdVcHJhdmnFpSBzZXR5IGF0cmliJnVhY3V0ZTt0b3YnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzX2ZvciddID0gJ1VwcmF2acWlIHNldHkgYXRyaWImdWFjdXRlO3RvdiBwcmUnOwokbGFuZ1snZWRpdF9hdHRyaWJ1dGVzJ10gPSAnVXByYXZpxaUgYXRyaWImdWFjdXRlO3R5JzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnknXSA9ICdVcHJhdmnFpSBrYXRlZyZvYWN1dGU7cml1JzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnlfZmllbGRzJ10gPSAnVXByYXZpxaUgcG9saWEga2F0ZWcmb2FjdXRlO3JpZSc7CiRsYW5nWydlZGl0X2hpZXJhcmNoeV9pdGVtJ10gPSAnVXByYXZpxaUgcG9sb8W+a3UgdiBoaWVyYXJjaGlpJzsKJGxhbmdbJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnXSA9ICdBdHJpYiZ1YWN1dGU7xaUgcyB0JnlhY3V0ZTttdG8gbiZhYWN1dGU7enZvbSB1xb4gZXhpc3R1amUnOwokbGFuZ1snZXJyb3JfZmllbGR2YWx1ZV9lbXB0eSddID0gJ0hvZG5vdGEgbmVtJm9jaXJjO8W+ZSBiecWlIHByJmFhY3V0ZTt6ZG5hJzsKJGxhbmdbJ2Vycm9yX2ZpbGVub3Rmb3VuZCddID0gJ1MmdWFjdXRlO2JvciBuZW4mYWFjdXRlO2pkZW4meWFjdXRlOyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnTmVwbGF0biZ5YWN1dGU7IHJvZGnEjSAocHJ2b2sgdiBoaWVyYXJjaGlpIG5lbSZvY2lyYzvFvmUgYnnFpSBzdm9qIHZsYXN0biZ5YWN1dGU7IHJvZGnEjSknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9uYW1lJ10gPSAnSG9kbm90YSB2bGFzdG4mZWFjdXRlO2hvIHBvxL5hIG9ic2FodWplIG5lcG92b2xlbiZlYWN1dGU7IHpuYWt5IChwb3ZvbGVuJmVhY3V0ZTsgcyZ1YWN1dGU7IGxlbiBhbGZhbnVtZXJpY2smZWFjdXRlOyknOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnUG92aW5uJnlhY3V0ZTsgcGFyYW1ldGVyIG5lYm9sIHZ5cGxuZW4mZWFjdXRlOywgYWxlIGJvbCB2eXBsbmVuJnlhY3V0ZTsgbmVzcHImYWFjdXRlO3ZuZSc7CiRsYW5nWydlcnJvcl9uYW1ldXNlZCddID0gJ1BvbG/FvmthIHMgdCZ5YWN1dGU7bXRvIG4mYWFjdXRlO3p2b20gZXhpc3R1amUnOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdQcm9zJmlhY3V0ZTttIHZ5YmVydGUgdHlwIHBvxL5hJzsKJGxhbmdbJ2Vycm9yX25vbmFtZSddID0gJ011cyZpYWN1dGU7dGUgdnlwbG5pxaUgbiZhYWN1dGU7em92JzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdQcm9kdWt0IHMgdCZ5YWN1dGU7bXRvIG4mYWFjdXRlO3p2b20gZXhpc3R1amUnOwokbGFuZ1snZXJyb3JfcHJpY2VfYWRqdXN0bWVudCddID0gJ05lcGxhdG4mYWFjdXRlOyBob2Rub3RhIHVwcmF2ZW5laiBjZW55IHByZSBwb2xvxb5rdSAgJXMnOwokbGFuZ1snZXJyb3JfdXBsb2FkX2ZhaWxlZCddID0gJ05haHImYWFjdXRlO3ZhbmllIHpseWhhbG86ICVzJzsKJGxhbmdbJ2ZpZWxkJ10gPSAnUG9sZSc7CiRsYW5nWydmaWVsZGRlZiddID0gJ0RlZmluJmlhY3V0ZTtjaWEgcG/EvmEnOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnRGVmaW4maWFjdXRlO2NpYSBwb2wmaWFjdXRlOyc7CiRsYW5nWydmaWxlJ10gPSAnUyZ1YWN1dGU7Ym9yJzsKJGxhbmdbJ2ZpbHRlcnMnXSA9ICdGaWx0cmUnOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IGRvZXMgdGhpcyBkbz88L2gzPg0KPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgYSB3YXkgdG8gY29sbGVjdCwgb3JnYW5pemUsIGFuZCBkaXNwbGF5IGluZm9ybWF0aW9uIGFib3V0IHByb2R1Y3RzIGFuZCB0aGVpciBjYXRlZ29yaWVzLiAgVGhpcyBtb2R1bGUgY2FuIHN0YW5kIG9uIGl0cyBvd24sIG9yIGJlIHBhcnQgb2YgYW4gZS1jb21tZXJjZSBzb2x1dGlvbiBpZiB5b3Ugd2lzaC4gIFRoZSBtb2R1bGUgc3VwcG9ydHMgYSBwcm9kdWN0IGV4aXN0aW5nIGluIG1vcmUgdGhhbiBvbmUgY2F0ZWdvcnksIHN1cHBvcnRzIHByb2R1Y3Qgd2VpZ2h0LCBwcmljZSwgYW5kIGF0dHJpYnV0ZSBzZXRzLiAgRWFjaCBpdGVtIGluIGFuIGF0dHJpYnV0ZSBzZXQgY2FuIGhhdmUgYSBwcmljZSBhZGp1c3RtZW50LiAgQWxzbyBhIGdsb2JhbCBmbGFnIGluZGljYXRlcyB3ZXRoZXIgdGhlIHByb2R1Y3QgaXMgJiMwMzk7dGF4YWJsZSYjMDM5OyBvciBub3QuPC9wPg0KICA8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBmb3IgdXAgdG8gdHdvIGltYWdlcyBwZXIgcHJvZHVjdCwgY3VzdG9tIGZpZWxkIGRlZmluaXRpb25zLCBhbmQgZm9yIHRoZSBhYmlsaXR5IHRvIGRlc2NyaW1pbmF0ZSBwcml2YXRlIGZyb20gcHVibGljIGRhdGEuPC9wPg0KPGgzPkZlYXR1cmVzOjwvaDM+DQo8dWw+DQogIDxsaT5OdW1lcm91cyBWaWV3czwvbGk+DQogICAgPHVsPg0KICAgICAgPGxpPlN1bW1hcnkgdmlldzwvbGk+DQogICAgICA8bGk+Q2F0ZWdvcnkgTGlzdCBWaWV3PC9saT4NCiAgICAgIDxsaT5EZXRhaWwgdmlldzwvbGk+IA0KICAgICAgPGxpPkhpZXJhcmNoeSBEcmlsbC1kb3duIFZpZXc8L2xpPg0KICAgIDwvdWw+DQogIDxsaT5FbnRpcmVseSBEYXRhYmFzZSBUZW1wbGF0ZSBEcml2ZW48L2xpPg0KICA8cD5OdW1lcm91cyB0ZW1wbGF0ZXMgb2YgZWFjaCB0eXBlIGNhbiBiZSBkZWZpbmVkLCBkZWZhdWx0cyBzcGVjaWZpZWQgZm9yIGVhY2ggdHlwZSwgYW5kIHRoZSB0ZW1wbGF0ZSB1c2VkIGZvciBlYWNoIHBhcnRpY3VsYXIgdmlldyBjYW4gYmUgc3BlY2lmaWVkIGFzIGEgcGFyYW1ldGVyPC9wPg0KICA8bGk+U29ydGluZyBhbmQgcGFnaW5hdGlvbiBpbiB0aGUgc3VtbWFyeSB2aWV3PC9saT4NCiAgPGxpPlByb2R1Y3RzIGNhbiBleGlzdCBpbiBtdWx0aXBsZSBjYXRlZ29yaWVzPC9saT4NCiAgPGxpPk51bWVyb3VzIGN1c3RvbSBmaWVsZHMgY2FuIGJlIGRlZmluZWQsIGluY2x1ZGluZyBpbWFnZXM8L2xpPg0KICA8bGk+QXV0b21hdGljIHRodW1ibmFpbCBjcmVhdGlvbjwvbGk+DQogIDxsaT5BZG1pbiBkZWZpbmVkIGZpZWxkczwvbGk+DQogIDxsaT5Qcm9kdWN0IGF0dHJpYnV0ZXMgKGluY2x1ZGluZyBwcmljZSBhZGp1c3RtZW50KTwvbGk+DQogIDxsaT5XZWlnaHQgYW5kIHRheGFibGUgZmllbGRzIChmb3IgdXNlIGluIGUtY29tbWVyY2Ugc29sdXRpb25zKTwvbGk+DQogIDxsaT5Qcm9kdWN0cyBjYW4gaGF2ZSBhIHN0YXR1cyAocHVibGlzaGVkIG9yIGRyYWZ0KSBpbiBvcmRlciB0byBoaWRlIHByb2R1Y3RzIGZyb20gcHVibGljIGRpc3BsYXkgYXQgYW55IHRpbWU8L2xpPg0KICA8bGk+UHJldHR5IFVSTCBTdXBwb3J0PC9saT4NCiAgPGxpPjxzdHJvbmc+TW9yZS4uLjwvc3Ryb25nPjwvbGk+DQo8L3VsPg0KDQo8aDM+SG93IERvIEkgVXNlIEl0OjwvaDM+DQo8dWw+DQo8bGk+U2V0IHByZWZlcmVuY2VzPC9saT4NCjxwPlVzdWFsbHkgdGhpcyBpcyBqdXN0IGEgZm9ybWFsaXR5LiAgWW91IHNob3VsZCBzcGVjaWZ5IHlvdXIgZGVmYXVsdCB3ZWlnaHQgdW5pdHMsIGFuZCB5b3VyIGRlZmF1bHQgY3VycmVuY3kgc3ltYm9sIGZvciB5b3VyIGxvY2FsIGVudmlyb25tZW50LjwvcD4NCjxsaT5TZXR1cCB1c2VycyBhbmQgcGVybWlzc2lvbnM8L2xpPg0KPHA+VGhpcyBtb2R1bGUgdXNlcyB0aGUgJiMwMzk7TW9kaWZ5IFRlbXBsYXRlcyYjMDM5OyBwZXJtaXNzaW9uIHRvIGFsbG93IHVzZXJzIHRvIGJlIGFibGUgdG8gbW9kaWZ5IHRoZSB2YXJpb3VzIHRlbXBsYXRlcyB0aGF0IGNhbiBiZSB1c2VkIGJ5IHRoaXMgbW9kdWxlLiAgQXMgd2VsbCwgdGhlICYjMDM5O01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJiMwMzk7IHBlcm1pc3Npb24gaXMgbmVlZGVkIHRvIGJlIGFibGUgdG8gYWRqdXN0IHRoZSBtb2R1bGVzIHByZWZlcmVuY2VzLiAgSW4gb3JkZXIgdG8gaGF2ZSB0aGUgYWJpbGl0eSB0byBtb2RpZnkgZmllbGQgZGVmaW5pdGlvbnMsIGNhdGVnb3JpZXMsIG9yIHByb2R1Y3RzLCB5b3VyIHVzZXJzIHdpbGwgbmVlZCB0aGUgJiMwMzk7TW9kaWZ5IFByb2R1Y3RzJiMwMzk7IHBlcm1pc3Npb24uPC9wPg0KPGxpPihvcHRpb25hbCkgRGVmaW5lIG9uZSBvciBtb3JlIGNhdGVnb3JpZXM8L2xpPg0KPHA+VGhpcyBpcyBhbiBvcHRpb25hbCBzdGVwLCBidXQgeW91IHdpbGwgcHJvYmFibHkgd2FudCB0byBkbyB0aGlzIGVhcmx5IHRvIHByZXZlbnQgaGF2aW5nIHRvIGdvIGJhY2sgdG8gbW9kaWZ5IGVhY2ggYW5kIGV2ZXJ5IHByb2R1Y3QgbGF0ZXIuICBBZGRpbmcgYSBjYXRlZ29yeSBpcyBhcyBzaW1wbGUgYXMgY2xpY2tpbmcgb24gdGhlICYjMDM5O0NhdGVnb3JpZXMmIzAzOTsgdGFiIGluIHRoZSBQcm9kdWN0IE1hbmFnZXJzIGFkbWluIHNlY3Rpb24sIGFuZCBjbGlja2luZyAmIzAzOTtBZGQgQSBDYXRlZ29yeSYjMDM5Oy4gIEZyb20gdGhlcmUgeW91IHdpbGwgYmUgcHJvbXB0ZWQgZm9yIGEgY2F0ZWdvcnkgbmFtZS48L3A+DQo8bGk+KG9wdGlvbmFsKSBEZWZpbmUgb25lIG9yIG1vcmUgY3VzdG9tIGZpZWxkczwvbGk+DQo8cD5UaGlzIGlzIGFuIG9wdGlvbmFsIHN0ZXAuICBDdXN0b20gZmllbGRzIGFyZSBub3QgbmVlZGVkIGlmIHRoaXMgbW9kdWxlIHN1aXRzIHlvdSBleGFjdGx5IGFzIGl0IGlzLiAgSG93ZXZlciBpZiB5b3Ugd291bGQgbGlrZSB0byBzdG9yZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZvciBlYWNoIG9mIHlvdXIgcHJvZHVjdHMgeW91IGNhbiBjcmVhdGUgY3VzdG9tIGZpZWxkcy4gIENyZWF0aW5nIGN1c3RvbSBmaWVsZHMgaXMgc2ltaWxhciB0byBjcmVhdGluZyBjYXRlZ29yaWVzLCBleGNlcHQgdGhhdCBtb3JlIGRhdGEgaXMgcmVxdWVzdGVkLjwvcD4NCjxwPkN1cnJlbnRseSBzaXggdHlwZXMgb2YgY3VzdG9tIGZpZWxkcyBhcmUgYXZhaWxhYmxlOiAmIzAzOTt0ZXh0Ym94JiMwMzk7LCYjMDM5O2NoZWNrYm94JiMwMzk7LGFuZCAmIzAzOTt0ZXh0YXJlYSwgZHJvcGRvd24sIGFuZCBmaWxlJiMwMzk7LiAgU2VsZWN0IG9uZSBvZiB0aGVzZSwgZ2l2ZSB5b3VyIG5ldyBmaWVsZCBhIG5hbWUsIGFuZCBpbmRpY2F0ZSB3ZXRoZXIgdGhhdCBmaWVsZCBzaG91bGQgYmUgdmlzaWJsZSB0byB0aGUgcHVibGljIGluIHRoZSB2YXJpb3VzIHZpZXdzLiAgVGhlbiBoaXQgc3VibWl0PC9wPg0KPGxpPkNyZWF0ZSBvbmUgb3IgbW9yZSBwcm9kdWN0czwvbGk+DQo8cD5Zb3Ugc2hvdWxkIGNyZWF0ZSBvbmUgb3IgbW9yZSBwcm9kdWN0cyB0byBkaXNwbGF5IGluIHlvdXIgd2Vic2l0ZSBjb250ZW50LiAgR2l2ZSBlYWNoIHByb2R1Y3QgYSBuYW1lLCBhIHByaWNlIChvcHRpb25hbCkgYSB3ZWlnaHQgKG9wdGlvbmFsKSwgYSBzdGF0dXMgKGRyYWZ0IG9yIHB1Ymxpc2hlZCksIGFuZCBzb21lIGluZm9ybWF0aW9uLiAgQWRkaXRpb25hbGx5LCB5b3UgY2FuIGFsc28gc3BlY2lmeSBpZiB0aGUgcHJvZHVjdCBpcyB0YXhhYmxlLjwvcD4NCjxwPklmIGNhdGVnb3JpZXMgYXJlIGRlZmluZWQsIHRoZW4gYSBjaGVja2JveCB3aWxsIGFwcGVhciBmb3IgZWFjaCBkZWZpbmVkIGNhdGVnb3J5LiAgWW91IGNhbiBzaW1wbHkgY2xpY2sgdGhlIGNoZWNrYm94IGZpZWxkcyBmb3IgZWFjaCBjYXRlZ29yeSB0aGF0IHRoaXMgcHJvZHVjdCBzaG91bGQgYmVsb25nIHRvLjwvcD4NCjxwPklmIGN1c3RvbSBmaWVsZHMgYXJlIGRlZmluZWQsIHRoZW4gaW5wdXQgZmllbGRzIGFwcHJvcHJpYXRlIHRvIHRoZSB0eXBlIG9mIGN1c3RvbSBmaWVsZCB3aWxsIGFwcGVhciBhbmQgYWxsb3cgeW91IHRvIHNwZWNpZnkgZGF0YSBmb3IgZWFjaCBvZiB0aGVtLiAgVGhpcyBkYXRhIGlzIG9wdGlvbmFsLjwvcD4NCjxsaT5BZGQgdGhlIGFwcHJvcHJpYXRlIHRhZ3MgaW50byB5b3VyIHBhZ2UgdGVtcGxhdGVzIG9yIHBhZ2UgY29udGVudDwvbGk+DQo8cD5UaGlzIGNhbiBiZSBhcyBzaW1wbGUgYXMgYWRkaW5nIHRoZSA8c3Ryb25nPntQcm9kdWN0c308L3N0cm9uZz4gdGFnIGludG8gdGhlIGNvbnRlbnQgYXJlYSBvZiBvbmUgb2YgeW91ciBwYWdlcywgb3IgaW50byB5b3VyIHBhZ2UgdGVtcGxhdGUuPC9wPg0KPHA+SWYgeW91IHdpc2ggdG8gYWx0ZXIgdGhlIGJlaGF2aW91ciBvZiB0aGlzIGFwcGxpY2F0aW9uIGZyb20gaXRzIGRlZmF1bHQsIHlvdSBjYW4gZG8gdGhhdCBieSBhZGRpbmcgb25lIG9yIG1vcmUgcGFyYW1ldGVycyB0byB0aGUgPHN0cm9uZz57UHJvZHVjdHN9PC9zdHJvbmc+IHRhZy4gIFRoZSBjb21wbGV0ZSBsaXN0IG9mIHBhcmFtZXRlcnMgYW5kIHRoZWlyIGJlaGF2aW91ciBpcyBsaXN0ZWQgYmVsb3cuICBCdXQgZm9yIGV4YW1wbGUsIHRvIGRpc3BsYXkgYSBsaXN0IG9mIHByb2R1Y3RzIGluIGEgc2luZ2xlLCBleGlzdGluZyBjYXRlZ29yeSwgeW91IGNvdWxkIHVzZSBhIHRhZyBsaWtlIDxjb2RlPntQcm9kdWN0cyBjYXRlZ29yeT0mIzAzOTtjYXRlZ29yeW5hbWUmIzAzOTt9PC9jb2RlPjwvcD4NCjwvdWw+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gIEhvd2V2ZXIgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcyBvciB0byBmaWxlIGEgYnVnIHJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBjbXMgbWFkZSBzaW1wbGUgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+RGV2ZWxvcGVycyBGb3JnZTwvYT4gYW5kIGRvIGEgc2VhcmNoIGZvciAmIzAzOTtQcm9kdWN0cyYjMDM5OzwvbGk+DQo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+Um9iZXJ0IENhbXBiZWxsPC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ybXMuPC9hPjwvbGk+DQo8bGk+Rm9yIHNvbWUgcXVlc3Rpb25zIGFuZCBsaW1pdGVkIHRlY2huaWNhbCBzdXBwb3J0LCB0aGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8L3VsPic7CiRsYW5nWydoaWVyYXJjaHknXSA9ICdIaWVyYXJjaGlhJzsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gJ1BveiZpYWN1dGU7Y2lhIHYgaGllcmFyY2hpaSc7CiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ09iciZhYWN1dGU7em9rJzsKJGxhbmdbJ2luY2x1ZGVfY2hpbGRyZW4nXSA9ICdWciZhYWN1dGU7dGFuZSBwb2QmdWFjdXRlO3Jvdm5lPyc7CiRsYW5nWydpbmZvX2FsbnVtb25seSddID0gJ0liYSBhbGZhbnVtZXJpY2smZWFjdXRlOyB6bmFta3ksIGJleiBtZWR6aWVyLCAmdWFjdXRlO3ZvZHpvdmllaywgYSBvc3RhdG4meWFjdXRlO2NoIHpuYWtvdiBtaW1vIMSNJmlhY3V0ZTtzaWVsIGEgcCZpYWN1dGU7c21lbi4nOwokbGFuZ1snaW5mb19hdXRvdGh1bWJuYWlsJ10gPSAnTmFzdGF2ZW5pZSBuJmFhY3V0ZTtoxL5hZG92JnlhY3V0ZTtjaCBvYnImYWFjdXRlO3prb3YgcyZ1YWN1dGU7IHogbW9kdWx1IENHRXh0ZW5zaW9ucyc7CiRsYW5nWydpbmZvX2F1dG93YXRlcm1hcmsnXSA9ICdOYXN0YXZlbmlhIHZvZG96bmFrdSBzJnVhY3V0ZTsgIHogbW9kdWx1IENHRXh0ZW5zaW9ucyc7CiRsYW5nWydpbmZvX2ZpZWxkZGVmc190YWInXSA9ICc8c3Ryb25nPlBvem4mYWFjdXRlO21rYTogPC9zdHJvbmc+IFYmc2Nhcm9uO2V0a3kgcG9saWEgdHUgcyZ1YWN1dGU7IGRvc3R1cG4mZWFjdXRlOyBwcmUgdiZzY2Fyb247ZXRreSBwcm9kdWt0eSc7CiRsYW5nWydpbmZvX2ZpZWxkcHJvYmxlbXMnXSA9ICdQcm9ibGVtcyB3ZXJlIGVuY291bnRlcmVkIHdoZW4gZGVhbGluZyB3aXRoIG9uZSBvciBtb3JlIGN1c3RvbSBmaWVsZHMuICBUaGUgYWN0aW9uIGhhcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LCBob3dldmVyIHlvdSBzaG91bGQgaW52ZXN0aWdhdGUgYW5kIGNvcnJlY3QgdGhlc2UgcHJvYmxlbXMnOwokbGFuZ1snaW5mb19wcmljZV9hZGp1c3RtZW50J10gPSAnUG92b2xlbiZlYWN1dGU7IHpuYWt5IHMmdWFjdXRlOyArLSojLiMjJzsKJGxhbmdbJ2luZm9fcHVibGljZmllbGQnXSA9ICdWZXJlam4mZWFjdXRlOyBwb2xpYSBzJnVhY3V0ZTsgdmlkaXRlxL5uJmVhY3V0ZTsgcHJlIHYmc2Nhcm9uO2V0az15Y2gnOwokbGFuZ1snbGFiZWwnXSA9ICdabmHEjWthJzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnPj4nOwokbGFuZ1snbGFzdF9tb2RpZmllZCddID0gJ1Bvc2xlZG4mYWFjdXRlOyB6bWVuYSc7CiRsYW5nWydsb2dvdGV4dCddID0gJ0RydWgmeWFjdXRlOyBvYnImYWFjdXRlO3pvayc7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYXhpbSZhYWN1dGU7bG5hIGTEusW+bGEgPGVtPihwbGF0biZlYWN1dGU7IGliYSB2IHRleHRvdm9tIHBvbGkpPC9lbT4nOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnRCZhYWN1dGU7dHVtICZ1YWN1dGU7cHJhdnknOwokbGFuZ1snbW9kdWxlX2Rlc2NyaXB0aW9uJ10gPSAnTW9kdWwgcHJlIHNwciZhYWN1dGU7dnUgcHJvZHVrdG92LCBpY2ggY2llbiwgb2JyJmFhY3V0ZTt6a292LCBhdMSPLiBNJm9jaXJjO8W+bm9zxaUgcG91xb5pxaUgdiBrb21iaW4mYWFjdXRlO2NpaSBzIG1vZHVsb20gbiZhYWN1dGU7a3VwbiZlYWN1dGU7aG8ga28mc2Nhcm9uOyZpYWN1dGU7a2EgKENhcnQpIGEgbW9kdWxvbSBvYmplZG4mYWFjdXRlO3ZvayAoT3JkZXJzKSc7CiRsYW5nWyduYW1lJ10gPSAnTiZhYWN1dGU7em92JzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnTmVtJmFhY3V0ZTt0ZSBwb3RyZWJuJmVhY3V0ZTsgcHImYWFjdXRlO3ZhOiAlcyc7CiRsYW5nWyduZXdfY2F0ZWdvcnlfbmFtZSddID0gJ04mYWFjdXRlO3pvdiBub3ZlaiBrYXRlZyZvYWN1dGU7cmllJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ8W9aWFkbnkgbiZhYWN1dGU7em92IG5lYm9sIHphZGFuJnlhY3V0ZTsnOwokbGFuZ1snbm9uZSddID0gJ8W9aWFkbmUnOwokbGFuZ1snb2YnXSA9ICd6JzsKJGxhbmdbJ3BhZ2UnXSA9ICdTdHJhbmEnOwokbGFuZ1sncGFnZV9vZiddID0gJ1N0cmFuYSAlcyB6ICVzJzsKJGxhbmdbJ3BhZ2VfbGltaXQnXSA9ICdNYXguIG5hIHN0ciZhYWN1dGU7bmt1JzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ1NwZWNpZnkgdGhlIGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPmhpZXJhcmNoeSAtLSBEaXNwbGF5IGEgcHJvZHVjdCBsaXN0IGJ5IGhpZXJhcmNoeTwvbGk+DQogIDxsaT5jYXRlZ29yeWxpc3QgLSBEaXNwbGF5IGEgbGlzdCBvZiBwcm9kdWN0IGNhdGVnb3JpZXM8L2xpPg0KICA8bGk+PGVtPmRlZmF1bHQ8L2VtPiAtIERpc3BsYXkgYSBzdW1tYXJ5IG9mIHByb2R1Y3RzPC9saT4NCiAgPGxpPmRldGFpbCAtIERpc3BsYXkgYSBkZXRhaWwgdmlldyBvZiBhIHNpbmdsZSBwcm9kdWN0PC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnV2hlbiB1c2VkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIsIHdoaWNoIHNob3VsZCBtYXRjaCB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyBjYXRlZ29yeSB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBvbmx5IHRob3NlIHByb2R1Y3RzIHRoYXQgYXJlIGluIHRoYXQgY2F0ZWdvb3J5LiAoYSBjb21tYSBzZXBlcmF0ZWQgbGlzdCBjYW4gYmUgc3VwcGxpZWQpJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdUaGlzIHNwZWNpZmllcyB0aGUgcGFnZWlkIG9yIGFsaWFzIHRoYXQgc2hvdWxkIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgZGV0YWlsIHJlcG9ydC4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkZXRhaWwgbW9kZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeSddID0gJ1VzZWZ1bCBvbmx5IGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgb25seSBpdGVtcyBpbiB0aGF0IGxvY2F0aW9uIG9mIHRoZSBoaWVyYXJjaHkgc2hvdWxkIGJlIGRpc3BsYXllZC4gIFdpbGRjYXJkIGNoYXJhY3RlciBjYW4gYmUgdXNlZCBzbyB0aGF0IHlvdSBjYW4gc3BlY2lmeSBwYXJlbnQvY2hpbGQgcmVsYXRpb25zaGlwcyBhcyB3ZWxsLiAgaS5lIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7dHJ1Y2tzKiYjMDM5O30gd2lsbCBjcmVhdGUgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBpbmNsdWRpbmcgdGhlIGNoaWxkcmVuIGluIHRoZSBoaWVyYXJjaHkuICBTaW1pbGFybHksIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7KnRydWNrcyYjMDM5O30gd2lsbCBkaXNwbGF5IGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgYW5kIGFsbCBwcm9kdWN0cyBiZWxvZ2luZyB0byBhbnkgcGFyZW50IGluIHRoZSBoaWVyYXJjaHkuJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeXRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgaGllcmFyY2h5IGRpc3BsYXkuIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9wYWdlbGltaXQnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBsaXN0ZWQgb24gZWFjaCBwYWdlLic7CiRsYW5nWydwYXJhbV9wYXJlbnQnXSA9ICdVc2VmdWwgb25seSBpbiB0aGUgPGVtPmhpZXJhcmNoeTwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBoaWVyYXJjaHkgaWQgb2YgdGhlIHN0YXJ0aW5nIGxvY2F0aW9uIG9mIHRoZSByZXBvcnQuJzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RpZCddID0gJ1BvdcW+JmlhY3V0ZTt2YSBzYSB2JnlhY3V0ZTtocmFkbmUgcHJpIG0mb2FjdXRlO2RlIGRldGFpbCxhIHpvYnJhenVqZSBkZXRhaWwgcHJvZHVrdHUnOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmeSB0aGUgb3JkZXIgb2Ygc29ydGVkIGZpZWxkcyBpbiBzdW1tYXJ5IHZpZXcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4NCiAgPGxpPmRlc2MgLS0gRGVzY2VuZGluZyBvcmRlcjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdQb3XFviZpYWN1dGU7dmEgc2EgdiZ5YWN1dGU7aHJhZG5lIHYgbSZvYWN1dGU7ZGUgcHJlaMS+YWR1IChzdW1tYXJ5KSBhIHphYmV6cGXEjXVqZSB0cmllZGVuaWUgcHJvZHVrdG92IG5hIHYmeWFjdXRlO3N0dXBlLiBNb8W+biZlYWN1dGU7IGhvZG5vdHkgcGFyYW1ldHJhOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5wcm9kdWN0X25hbWU8L3N0cm9uZz48L2xpPg0KICA8bGk+cHJpY2UgLS0geiZhYWN1dGU7a2xhZG4mYWFjdXRlOyBjZW5hIHByb2R1a3R1PC9saT4NCiAgPGxpPnN0YXR1cyAtLSBEcmFmdCBhbGVibyBwdWJsaXNoZWQ8L2xpPg0KICA8bGk+cmFuZG9tIC0tIG4mYWFjdXRlO2hvZG4meWFjdXRlOyB2JnlhY3V0ZTtiZXI8L2xpPg0KICA8bGk+Y3JlYXRlZCAtLSBkJmFhY3V0ZTt0dW0gdnl0dm9ycmVuaWE8L2xpPg0KICA8bGk+bW9kaWZpZWQgLS0gZCZhYWN1dGU7dHVtIHBvc2xlZG5laiAmdWFjdXRlO3ByYXZ5PC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ1RlbnRvIHBhcmFtZXRlciAmc2Nhcm9uO3BlY2lmaWt1amUgJnNjYXJvbjthYmwmb2FjdXRlO251IHByZSBwcmUgbSZvYWN1dGU7ZCBwcmVoxL5hZHkgJnF1b3Q7c3VtbWFyeSZxdW90Oy4gQWsgbmllamUgemFkYW4meWFjdXRlOywgcG91xb5pamUgc2EgcHJlZG5hc3RhdmVuJmFhY3V0ZTsgJnNjYXJvbjthYmwmb2FjdXRlO25hLic7CiRsYW5nWydwYXJlbnQnXSA9ICdSb2RpxI0nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdNb2R1bCBib2wgJnVhY3V0ZTtzcGUmc2Nhcm9uO25lIG5haW4mc2Nhcm9uO3RhbG92YW4meWFjdXRlOyc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnUHJvZHVrdG92JnlhY3V0ZTsgbW9kdWwgYm9sIG9kc3RyJmFhY3V0ZTtuZW4meWFjdXRlOyBzbyB2JnNjYXJvbjtldGsmeWFjdXRlO21pIGQmYWFjdXRlO3RhbWl1JzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnTmFzdGF2ZW5pYSc7CiRsYW5nWydwcmV1bmluc3RhbGwnXSA9ICdPZHN0ciZhYWN1dGU7bmVuJmlhY3V0ZTttIG1vZHVsdSBzdHJhdCZpYWN1dGU7dGUgdiZzY2Fyb247ZXRreSBkJmFhY3V0ZTt0YSBzIG4maWFjdXRlO20gcyZ1YWN1dGU7dmlzZWomdWFjdXRlO2NlLCBjaGNldGUgcG9rcmHEjW92YcWlPyc7CiRsYW5nWydwcmljZSddID0gJ0NlbmEnOwokbGFuZ1sncHJpY2VfYWRqdXN0bWVudCddID0gJ1ByaXAmb2NpcmM7c29iZW5pZSBjZW55JzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCc7CiRsYW5nWydwcm9kdWN0J10gPSAnUHJvZHVrdCc7CiRsYW5nWydwcm9kdWN0bmFtZSddID0gJ04mYWFjdXRlO3pvdiBwcm9kdWt0dSc7CiRsYW5nWydwcm9kdWN0cyddID0gJ1Byb2R1a3R5JzsKJGxhbmdbJ3Byb2R1Y3RfaGllcmFyY2h5J10gPSAnSGllcmFyY2hpYSBwcm9kdWt0b3YnOwokbGFuZ1sncHJvZHVjdF9tYW5hZ2VyJ10gPSAnUHJvZHVrdG92JnlhY3V0ZTsgbW9kdWwnOwokbGFuZ1sncHJvbXB0J10gPSAnSGwmYWFjdXRlOyZzY2Fyb247a2EnOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfZmlsZXR5cGVzJ10gPSAnUG92b2xpxaUgbmFociZhYWN1dGU7dmHFpSBzJnVhY3V0ZTtib3J5IHMgdCZ5YWN1dGU7bWl0byBrb25jb3ZrYW1pIChwcmUgcG9sZSBzJnVhY3V0ZTtib3IpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ltYWdldHlwZXMnXSA9ICdQb3ZvbGnFpSBuYWhyJmFhY3V0ZTt2YcWlIG9iciZhYWN1dGU7emt5IHMgdCZ5YWN1dGU7bWkga29uY292a2FtaSAocHJlIHBvbGUgb2JyJmFhY3V0ZTt6b2spJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsJ10gPSAnQXV0b21hdGlja3kgdnl0dm9yacWlIG5haMS+YWQgb2JyJmFhY3V0ZTt6a2EnOwokbGFuZ1sncHJvbXB0X2F1dG93YXRlcm1hcmsnXSA9ICdBdXRvbWF0aWNreSB2bG/FvmnFpSB2b2Rvem5hayBkbyBvYnImYWFjdXRlO3prb3YnOwokbGFuZ1sncHJvbXB0X2FwcGxpY2FibGUnXSA9ICdaYXBuJnVhY3V0ZTvFpSBha28gcHJlZG5hc3RhdmVuJmVhY3V0ZTsgcHJlIHYmc2Nhcm9uO2V0a3kgbm92JmVhY3V0ZTsgcHJvZHVrdHknOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5Y29kZSddID0gJ1MmdWFjdXRlO8SNYXNuJnlhY3V0ZTsgayZvYWN1dGU7ZCc7CiRsYW5nWydwcm9tcHRfY3VycmVuY3lzeW1ib2wnXSA9ICdTJnVhY3V0ZTvEjWFzbiZ5YWN1dGU7IHN5bWJvbCc7CiRsYW5nWydwcm9tcHRfZGVsZXRlcHJvZHVjdGZpbGVzJ10gPSAnT2RzdHJhbmnFpSB2JnNjYXJvbjtldGt5IHMmdWFjdXRlO2Jvcnkgc3BvamVuJmVhY3V0ZTsgcyB0JnlhY3V0ZTttdG8gcHJvZHVrdG9tIHByaSBqZWhvIG9kc3RyJmFhY3V0ZTtuZW4maWFjdXRlOz8nOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdQcmVkbmFzdGF2ZW4mYWFjdXRlOyBzdHImYWFjdXRlO25rYSBkZXRhaWx1JzsKJGxhbmdbJ3Byb21wdF90YXhyYXRlJ10gPSAnU2FkemJhIGRhbmUnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdQcmVkbmFzdGF2ZW4mZWFjdXRlOyB0cmllZGVuaWUgdiBtJm9hY3V0ZTtkZSBwcmVoxL5hZHUgKHN1bW1hcnkpJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ1ByZWRuYXN0YXZlbiZlYWN1dGU7IHRyaWVkZW5pZSB2IG0mb2FjdXRlO2RlIHByZWjEvmFkdSAoc3VtbWFyeSknOwokbGFuZ1sncHJvbXB0X3RheDEnXSA9ICdQcnYmYWFjdXRlOyBkYcWIJzsKJGxhbmdbJ3Byb21wdF90YXgyJ10gPSAnRHJ1aCZhYWN1dGU7IGRhxYgnOwokbGFuZ1sncHJvbXB0X3RheG5hbWUnXSA9ICdOJmFhY3V0ZTt6b3YgZGFuZSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdaZHJvaiAmc2Nhcm9uO2FibCZvYWN1dGU7bnknOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnSmVkbm90a3kgaG1vdG5vc3RpJzsKJGxhbmdbJ3B1YmxpYyddID0gJ0plIHRvdG8gdmVyZWpuJmVhY3V0ZTsgcG9sZT8nOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnUHVibGlrb3ZhbiZlYWN1dGU7JzsKJGxhbmdbJ3JhbmRvbSddID0gJ04mYWFjdXRlO2hvZG5lJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnUHJlZG5hc3RhdmnFpSBuYSBwcmVkdm9sZW4mZWFjdXRlOyBob2Rub3R5JzsKJGxhbmdbJ3Jvb3QnXSA9ICdSb2RpxI1vdnNrJnlhY3V0ZTsgYWRyZXMmYWFjdXRlO3InOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1Z5YmVydGUgamVkbnUnOwokbGFuZ1snc29ydF9ieSddID0gJ1pvdHJpZWRpxaUgcG9kxL5hJzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdQb3JhZGllJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXYnOwokbGFuZ1snc3VibWl0J10gPSAnT2Rvc2xhxaUnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJyZTY2Fyb247YWJsJm9hY3V0ZTtueSBwcmVoxL5hZG92IChzdW1tYXJ5KSc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ1ByaWRhxaUvdXByYXZpxaUgJnNjYXJvbjthYmwmb2FjdXRlO251IHByZWjEvmFkdSc7CiRsYW5nWyd0YXhhYmxlJ10gPSAnWmRhbmVuJmVhY3V0ZTsnOwokbGFuZ1sndGF4X21vZHVsZSddID0gJ01vZHVsIHByZSBkYW5lJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnVGV4dG92JmFhY3V0ZTsgb2JsYXPFpSc7CiRsYW5nWyd0ZXh0Ym94J10gPSAnVGV4dG92JmVhY3V0ZTsgcG9sZSc7CiRsYW5nWyd0aXRsZV9ieWhpZXJhcmNoeV9kZmx0dGVtcGxhdGUnXSA9ICdQcmVkbmFzdGF2ZW4mYWFjdXRlOyAmc2Nhcm9uO2FibCZvYWN1dGU7bmEgdiZ5YWN1dGU7cGlzdSB2IGhpZXJhcmNoaSZpYWN1dGU7JzsKJGxhbmdbJ3RpdGxlX2NhdGVnb3J5bGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdQcmVkbmFzdGF2ZW4mYWFjdXRlOyAmc2Nhcm9uO2FibCZvYWN1dGU7bmEgdiZ5YWN1dGU7cGlzdSBrYXRlZyZvYWN1dGU7cmlpJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdQcmVkbmFzdGF2ZW4mYWFjdXRlOyAmc2Nhcm9uO2FibCZvYWN1dGU7bmEgZGV0YWlsdSc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1ByZWRuYXN0YXZlbiZhYWN1dGU7ICZzY2Fyb247YWJsJm9hY3V0ZTtuYSBzJnVhY3V0ZTtocm51JzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXAnOwokbGFuZ1sndXBkYXRlJ10gPSAnVXByYXZpxaUnOwokbGFuZ1sndXBsb2FkJ10gPSAnVnlicmHFpSBzJnVhY3V0ZTtib3IgcHJlIG5haHJhdGllJzsKJGxhbmdbJ3ZhbGlkJ10gPSAnU3ByJmFhY3V0ZTt2bmUnOwokbGFuZ1sndmFsdWUnXSA9ICdIb2Rub3RhJzsKJGxhbmdbJ3ZhbHVlcyddID0gJ0hvZG5vdHknOwokbGFuZ1snd2F0ZXJtYXJrX2xvY2F0aW9uJ10gPSAnQWRyZXNhIHZvZG96bmFrdSc7CiRsYW5nWyd3ZWlnaHQnXSA9ICdWJmFhY3V0ZTtoYSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMjQ3NjExMDcuMzg4LjI2LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj12YXNzYWxneW0uc2t8dXRtY2N0PS9hZG1pbi9saXN0Y29udGVudC5waHB8dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuNDMwMDc0MjY4OTI3NTYwMTQwMC4xMjEzMjU2OTUzLjEyMjUxMTAyODAuMTIyNTExNDQ0MS4zOTknOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjUuMTAuMTIyNTExNDQ0MSc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sl_SI.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZCddID0gJ0RvZGFqJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnRG9kYWoga2F0ZWdvcmlqbyc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0RvZGFqIHBvbGplJzsKJGxhbmdbJ2FkanVzdGFibGUnXSA9ICdOYXN0YXZsaml2byc7CiRsYW5nWydhZGRwcm9kdWN0J10gPSAnRG9kYWogYXJ0aWtlbCc7CiRsYW5nWydhZGRfYXR0cmliX3NldCddID0gJ0RvZGFqIGF0cmlidXQnOwokbGFuZ1snYWRkX2NhdGVnb3J5X2ZpZWxkJ10gPSAnRG9kZWxpIHBvbGplIGthdGVnb3Jpamk6ICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2FkZF9oaWVyYXJjaHlfaXRlbSddID0gJ0RvZGFqIGVsZW1lbnQgaGllcmFyaGlqZSc7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAnRG9kYWogbW/Fvm5vc3QgYXRyaWJ1dGEnOwokbGFuZ1snYWRtaW5fb25seSddID0gJ0FsaSBsYWhrbyBzYW1vIGFkbWluaXN0cmF0b3JqaSB2aWRpam8gdGEgYXRyaWJ1dD8nOwokbGFuZ1snYWxpZ25fdWwnXSA9ICdaZ29yYWogbGV2byc7CiRsYW5nWydhbGlnbl91YyddID0gJ1pnb3JhaiBzcmVkaW5hJzsKJGxhbmdbJ2FsaWduX3VyJ10gPSAnWmdvcmFqIGRlc25vJzsKJGxhbmdbJ2FsaWduX21sJ10gPSAnU3JlZGluYSBsZXZvJzsKJGxhbmdbJ2FsaWduX21jJ10gPSAnU3JlZGluYSc7CiRsYW5nWydhbGlnbl9tciddID0gJ1NyZWRpbmEgZGVzbm8nOwokbGFuZ1snYWxpZ25fbGwnXSA9ICdTcG9kYWogbGV2byc7CiRsYW5nWydhbGlnbl9sYyddID0gJ1Nwb2RhaiBzcmVkaW5hJzsKJGxhbmdbJ2FsaWduX2xyJ10gPSAnU3BvZGFqIGRlc25vJzsKJGxhbmdbJ2FsbGNhdGVnb3JpZXMnXSA9ICdWc2Uga2F0ZWdvcmlqZSc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnU3RlIHByZXByacSNYW5pPyc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZXByb2R1Y3QnXSA9ICdTdGUgcHJlcHJpxI1hbmksIGRhIMW+ZWxpdGUgaXpicmlzYXRpIHRhIGFydGlrZWwgdGVyIHZzZSBpbmZvcm1hY2lqZSwga2kgc28geiBuamltIHBvdmV6YW5lPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdOYXJhJnNjYXJvbjvEjWFqb8SNZSc7CiRsYW5nWydhdHRyaWJ1dGVfbmFtZSddID0gJ0ltZSBhdHJpYnV0YSc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdnRvbWF0acSNbm8nOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZXMnXSA9ICdQcmVkbG9nZSB6YSBwb3JvxI1pbG8gaGllcmFyaGlqZSc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdEb2Rhai91cmVkaSBwcmVkbG9nbyBwb3JvxI1pbGEgaGllcmFyaGlqZSc7CiRsYW5nWydjYW5jZWwnXSA9ICdQcmVrbGnEjWknOwokbGFuZ1snY2FydF9tb2R1bGUnXSA9ICdNb2R1bCB6YSB2b3ppxI1layc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnS2F0ZWdvcmlqZSc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0thdGVnb3JpamEnOwokbGFuZ1snY2F0ZWdvcnlleGlzdHMnXSA9ICdLYXRlZ29yaWphIHMgdGVtIGltZW5vbSDFvmUgb2JzdGFqYSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdQcmVkbG9nZSB6YSBwcmVnbGVkIGthdGVnb3Jpaic7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnRG9kYWovdXJlZGkgcHJlZGxvZ28gemEgcHJlZ2xlZCBrYXRlZ29yaWonOwokbGFuZ1snY2hlY2tib3gnXSA9ICdDaGVja2JveCc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9oaWVyYXJjaHlfbm9kZSddID0gJ1N0ZSBwcmVwcmnEjWFuaSwgZGEgxb5lbGl0ZSBpemJyaXNhdGkgdGEgbml2bz8gVnNpIGFydGlrbGksIGtpIHVwb3JhYmxqYWpvIHRhIG5pdm8gYm9kbyBvZHN0cmFuamVuaSBpeiBoaWVyYXJoaWplLic7CiRsYW5nWydjb3B5J10gPSAnS29waXJhaic7CiRsYW5nWydjb3B5X2NhdGVnb3J5J10gPSAnS29waXJhaiBrYXRlZ29yaWpvJzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRGF0dW0gdm5vc2EnOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ1RyZW51dG5hIHZyZWRub3N0JzsKJGxhbmdbJ2RhdGEnXSA9ICdQb2RhdGtpJzsKJGxhbmdbJ2RlZmF1bHQnXSA9ICdQcml2emV0byc7CiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAnUHJpdnpldGUgcHJlZGxvZ2UnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPlBvem9yOjwvc3Ryb25nPiBWc2ViaW5hIHRlaCBwb2xqIGplIHVwb3JhYmxqZW5hIHphIGRvbG/EjWFuamUgcHJpdnpldGUgdnNlYmluZSBwcmVkbG9nLCBrbyBrbGlrbmV0ZSAmcXVvdDtEb2RhaiBwcmVkbG9nbyZxdW90OyB2IHVzdHJlem5lbSB6YXZpaGt1IHMgcHJlZGxvZ2FtaS4gU3ByZW1pbmphbmplIHZzZWJpbmUgdGVoIHBvbCBuZSBibyB2cGxpdmFsbyBuYSB2YSZzY2Fyb247byBzcGxldG5vIHN0cmFuLic7CiRsYW5nWydkZWxldGUnXSA9ICdJemJyaSZzY2Fyb247aSc7CiRsYW5nWydkZWxldGVfYXR0cmlic2V0J10gPSAnSXpicmkmc2Nhcm9uO2kgYXRyaWJ1dCc7CiRsYW5nWydkZWxldGVfaGllcmFyY2h5X2l0ZW0nXSA9ICdJemJyaSZzY2Fyb247aSBlbGVtZW50IGhpZXJhcmhpamUnOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ1BhZGFqb8SNZSc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ09waXMnOwokbGFuZ1snZGV0YWlscyddID0gJ1BvZHJvYm5vc3RpJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ1ByZWRsb2dlIHphIHBvZHJvYm5vc3QnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ0RvZGFqL3VyZWRpIHByZWRsb2dvIHphIHBvZHJvYm5vc3QnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdPbmVtb2dvxI1lbm8nOwokbGFuZ1snZHJhZnQnXSA9ICdPc251dGVrJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnSXp2bGXEjW5pIG1lbmknOwokbGFuZ1snZHJvcGRvd25fb3B0aW9ucyddID0gJ01vxb5ub3N0aSBpenZsZcSNbmVnYSBtZW5pamEgPGVtPihzYW1vIHByaSBpenZsZcSNbmloIHBvbGppaCk8L2VtPjxici8+PGJyLz48ZW0+KGVuIHphcGlzIG5hIHZyc3RpY28pPC9lbT4nOwokbGFuZ1snZWRpdCddID0gJ1VyZWRpJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0cyddID0gJ1VyZWphbmplIG5hYm9yb3YgYXRyaWJ1dG92JzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0c19mb3InXSA9ICdVcmVqYW5qZSBuYWJvcm92IGF0cmlidXRvdiB6YSc7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdVcmVqYW5qZSBhdHJpYnV0b3YnOwokbGFuZ1snZWRpdF9jYXRlZ29yeSddID0gJ1VyZWphbmplIGthdGVnb3JpamUnOwokbGFuZ1snZWRpdF9jYXRlZ29yeV9maWVsZHMnXSA9ICdVcmVqYW5qZSBwb2xqIGthdGVnb3JpamUnOwokbGFuZ1snZWRpdF9oaWVyYXJjaHlfaXRlbSddID0gJ1VyZWphbmplIGVsZW1lbnRhIGhpZXJhcmhpamUnOwokbGFuZ1snZXJyb3JfYXR0cmlic2V0X2V4aXN0cyddID0gJ0F0cmlidXQgcyB0ZW0gaW1lbm9tIMW+ZSBvYnN0YWphJzsKJGxhbmdbJ2Vycm9yX2ZpZWxkdmFsdWVfZW1wdHknXSA9ICdWcmVkbm9zdCBwb2xqYSBuZSBtb3JlIGJpdGkgcHJhem5hJzsKJGxhbmdbJ2Vycm9yX2ZpbGVub3Rmb3VuZCddID0gJ0RhdG90ZWthIG5lIG9ic3RhamEnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmVudCddID0gJ05hcGHEjWVuIG5hZHJlamVuaSBlbGVtZW50IChlbGVtZW50IGhpZXJhcmhpamUgbmUgbW9yZSBiaXRpIG5hZHJlamVuIHNhbWVtdSBzZWJpKSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX25hbWUnXSA9ICdWcmVkbm9zdCBwcmlsYWdvamVuZWdhIHBvbGphIGplIG5hcGHEjW5hICh2c2VidWplIHBvc2VibmUgem5ha2UpJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ09idmV6ZW4gcGFyYW1ldGVyIG5lIG9ic3RhamEgYWxpIHBhIGplIG5hcGHEjWVuJzsKJGxhbmdbJ2Vycm9yX25hbWV1c2VkJ10gPSAnRWxlbWVudCBzIHRlbSBpbWVub20gxb5lIG9ic3RhamEnOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdQcm9zaW1vLCBpemJlcml0ZSB0aXAgcG9samEnOwokbGFuZ1snZXJyb3Jfbm9uYW1lJ10gPSAnVnBpc2F0aSBtb3JhdGUgaW1lJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdBcnRpa2VsIHMgdGVtIGltZW5vbSDFvmUgb2JzdGFqYSc7CiRsYW5nWydlcnJvcl9wcmljZV9hZGp1c3RtZW50J10gPSAnTmFwYcSNbmEgdnJlZG5vc3QgY2VuZSB6YSBhcnRpa2VsICVzJzsKJGxhbmdbJ2Vycm9yX3VwbG9hZF9mYWlsZWQnXSA9ICdQcmVub3MgbmkgdXNwZSZzY2Fyb247ZW46ICVzJzsKJGxhbmdbJ2ZpZWxkJ10gPSAnUG9samUnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdEZWZpbmljaWphIHBvbGphJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0RlZmluaWNpamUgcG9saic7CiRsYW5nWydmaWxlJ10gPSAnRGF0b3Rla2EnOwokbGFuZ1snZmlsdGVycyddID0gJ0ZpbHRyaSc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICc8PCc7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+DQo8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBhIHdheSB0byBjb2xsZWN0LCBvcmdhbml6ZSwgYW5kIGRpc3BsYXkgaW5mb3JtYXRpb24gYWJvdXQgcHJvZHVjdHMgYW5kIHRoZWlyIGNhdGVnb3JpZXMuICBUaGlzIG1vZHVsZSBjYW4gc3RhbmQgb24gaXRzIG93biwgb3IgYmUgcGFydCBvZiBhbiBlLWNvbW1lcmNlIHNvbHV0aW9uIGlmIHlvdSB3aXNoLiAgVGhlIG1vZHVsZSBzdXBwb3J0cyBhIHByb2R1Y3QgZXhpc3RpbmcgaW4gbW9yZSB0aGFuIG9uZSBjYXRlZ29yeSwgc3VwcG9ydHMgcHJvZHVjdCB3ZWlnaHQsIHByaWNlLCBhbmQgYXR0cmlidXRlIHNldHMuICBFYWNoIGl0ZW0gaW4gYW4gYXR0cmlidXRlIHNldCBjYW4gaGF2ZSBhIHByaWNlIGFkanVzdG1lbnQuICBBbHNvIGEgZ2xvYmFsIGZsYWcgaW5kaWNhdGVzIHdldGhlciB0aGUgcHJvZHVjdCBpcyAmIzAzOTt0YXhhYmxlJiMwMzk7IG9yIG5vdC48L3A+DQogIDxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGZvciB1cCB0byB0d28gaW1hZ2VzIHBlciBwcm9kdWN0LCBjdXN0b20gZmllbGQgZGVmaW5pdGlvbnMsIGFuZCBmb3IgdGhlIGFiaWxpdHkgdG8gZGVzY3JpbWluYXRlIHByaXZhdGUgZnJvbSBwdWJsaWMgZGF0YS48L3A+DQo8aDM+RmVhdHVyZXM6PC9oMz4NCjx1bD4NCiAgPGxpPk51bWVyb3VzIFZpZXdzPC9saT4NCiAgICA8dWw+DQogICAgICA8bGk+U3VtbWFyeSB2aWV3PC9saT4NCiAgICAgIDxsaT5DYXRlZ29yeSBMaXN0IFZpZXc8L2xpPg0KICAgICAgPGxpPkRldGFpbCB2aWV3PC9saT4gDQogICAgICA8bGk+SGllcmFyY2h5IERyaWxsLWRvd24gVmlldzwvbGk+DQogICAgPC91bD4NCiAgPGxpPkVudGlyZWx5IERhdGFiYXNlIFRlbXBsYXRlIERyaXZlbjwvbGk+DQogIDxwPk51bWVyb3VzIHRlbXBsYXRlcyBvZiBlYWNoIHR5cGUgY2FuIGJlIGRlZmluZWQsIGRlZmF1bHRzIHNwZWNpZmllZCBmb3IgZWFjaCB0eXBlLCBhbmQgdGhlIHRlbXBsYXRlIHVzZWQgZm9yIGVhY2ggcGFydGljdWxhciB2aWV3IGNhbiBiZSBzcGVjaWZpZWQgYXMgYSBwYXJhbWV0ZXI8L3A+DQogIDxsaT5Tb3J0aW5nIGFuZCBwYWdpbmF0aW9uIGluIHRoZSBzdW1tYXJ5IHZpZXc8L2xpPg0KICA8bGk+UHJvZHVjdHMgY2FuIGV4aXN0IGluIG11bHRpcGxlIGNhdGVnb3JpZXM8L2xpPg0KICA8bGk+TnVtZXJvdXMgY3VzdG9tIGZpZWxkcyBjYW4gYmUgZGVmaW5lZCwgaW5jbHVkaW5nIGltYWdlczwvbGk+DQogIDxsaT5BdXRvbWF0aWMgdGh1bWJuYWlsIGNyZWF0aW9uPC9saT4NCiAgPGxpPkFkbWluIGRlZmluZWQgZmllbGRzPC9saT4NCiAgPGxpPlByb2R1Y3QgYXR0cmlidXRlcyAoaW5jbHVkaW5nIHByaWNlIGFkanVzdG1lbnQpPC9saT4NCiAgPGxpPldlaWdodCBhbmQgdGF4YWJsZSBmaWVsZHMgKGZvciB1c2UgaW4gZS1jb21tZXJjZSBzb2x1dGlvbnMpPC9saT4NCiAgPGxpPlByb2R1Y3RzIGNhbiBoYXZlIGEgc3RhdHVzIChwdWJsaXNoZWQgb3IgZHJhZnQpIGluIG9yZGVyIHRvIGhpZGUgcHJvZHVjdHMgZnJvbSBwdWJsaWMgZGlzcGxheSBhdCBhbnkgdGltZTwvbGk+DQogIDxsaT5QcmV0dHkgVVJMIFN1cHBvcnQ8L2xpPg0KICA8bGk+PHN0cm9uZz5Nb3JlLi4uPC9zdHJvbmc+PC9saT4NCjwvdWw+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgSXQ6PC9oMz4NCjx1bD4NCjxsaT5TZXQgcHJlZmVyZW5jZXM8L2xpPg0KPHA+VXN1YWxseSB0aGlzIGlzIGp1c3QgYSBmb3JtYWxpdHkuICBZb3Ugc2hvdWxkIHNwZWNpZnkgeW91ciBkZWZhdWx0IHdlaWdodCB1bml0cywgYW5kIHlvdXIgZGVmYXVsdCBjdXJyZW5jeSBzeW1ib2wgZm9yIHlvdXIgbG9jYWwgZW52aXJvbm1lbnQuPC9wPg0KPGxpPlNldHVwIHVzZXJzIGFuZCBwZXJtaXNzaW9uczwvbGk+DQo8cD5UaGlzIG1vZHVsZSB1c2VzIHRoZSAmIzAzOTtNb2RpZnkgVGVtcGxhdGVzJiMwMzk7IHBlcm1pc3Npb24gdG8gYWxsb3cgdXNlcnMgdG8gYmUgYWJsZSB0byBtb2RpZnkgdGhlIHZhcmlvdXMgdGVtcGxhdGVzIHRoYXQgY2FuIGJlIHVzZWQgYnkgdGhpcyBtb2R1bGUuICBBcyB3ZWxsLCB0aGUgJiMwMzk7TW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMmIzAzOTsgcGVybWlzc2lvbiBpcyBuZWVkZWQgdG8gYmUgYWJsZSB0byBhZGp1c3QgdGhlIG1vZHVsZXMgcHJlZmVyZW5jZXMuICBJbiBvcmRlciB0byBoYXZlIHRoZSBhYmlsaXR5IHRvIG1vZGlmeSBmaWVsZCBkZWZpbml0aW9ucywgY2F0ZWdvcmllcywgb3IgcHJvZHVjdHMsIHlvdXIgdXNlcnMgd2lsbCBuZWVkIHRoZSAmIzAzOTtNb2RpZnkgUHJvZHVjdHMmIzAzOTsgcGVybWlzc2lvbi48L3A+DQo8bGk+KG9wdGlvbmFsKSBEZWZpbmUgb25lIG9yIG1vcmUgY2F0ZWdvcmllczwvbGk+DQo8cD5UaGlzIGlzIGFuIG9wdGlvbmFsIHN0ZXAsIGJ1dCB5b3Ugd2lsbCBwcm9iYWJseSB3YW50IHRvIGRvIHRoaXMgZWFybHkgdG8gcHJldmVudCBoYXZpbmcgdG8gZ28gYmFjayB0byBtb2RpZnkgZWFjaCBhbmQgZXZlcnkgcHJvZHVjdCBsYXRlci4gIEFkZGluZyBhIGNhdGVnb3J5IGlzIGFzIHNpbXBsZSBhcyBjbGlja2luZyBvbiB0aGUgJiMwMzk7Q2F0ZWdvcmllcyYjMDM5OyB0YWIgaW4gdGhlIFByb2R1Y3QgTWFuYWdlcnMgYWRtaW4gc2VjdGlvbiwgYW5kIGNsaWNraW5nICYjMDM5O0FkZCBBIENhdGVnb3J5JiMwMzk7LiAgRnJvbSB0aGVyZSB5b3Ugd2lsbCBiZSBwcm9tcHRlZCBmb3IgYSBjYXRlZ29yeSBuYW1lLjwvcD4NCjxsaT4ob3B0aW9uYWwpIERlZmluZSBvbmUgb3IgbW9yZSBjdXN0b20gZmllbGRzPC9saT4NCjxwPlRoaXMgaXMgYW4gb3B0aW9uYWwgc3RlcC4gIEN1c3RvbSBmaWVsZHMgYXJlIG5vdCBuZWVkZWQgaWYgdGhpcyBtb2R1bGUgc3VpdHMgeW91IGV4YWN0bHkgYXMgaXQgaXMuICBIb3dldmVyIGlmIHlvdSB3b3VsZCBsaWtlIHRvIHN0b3JlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gZm9yIGVhY2ggb2YgeW91ciBwcm9kdWN0cyB5b3UgY2FuIGNyZWF0ZSBjdXN0b20gZmllbGRzLiAgQ3JlYXRpbmcgY3VzdG9tIGZpZWxkcyBpcyBzaW1pbGFyIHRvIGNyZWF0aW5nIGNhdGVnb3JpZXMsIGV4Y2VwdCB0aGF0IG1vcmUgZGF0YSBpcyByZXF1ZXN0ZWQuPC9wPg0KPHA+Q3VycmVudGx5IHNpeCB0eXBlcyBvZiBjdXN0b20gZmllbGRzIGFyZSBhdmFpbGFibGU6ICYjMDM5O3RleHRib3gmIzAzOTssJiMwMzk7Y2hlY2tib3gmIzAzOTssYW5kICYjMDM5O3RleHRhcmVhLCBkcm9wZG93biwgYW5kIGZpbGUmIzAzOTsuICBTZWxlY3Qgb25lIG9mIHRoZXNlLCBnaXZlIHlvdXIgbmV3IGZpZWxkIGEgbmFtZSwgYW5kIGluZGljYXRlIHdldGhlciB0aGF0IGZpZWxkIHNob3VsZCBiZSB2aXNpYmxlIHRvIHRoZSBwdWJsaWMgaW4gdGhlIHZhcmlvdXMgdmlld3MuICBUaGVuIGhpdCBzdWJtaXQ8L3A+DQo8bGk+Q3JlYXRlIG9uZSBvciBtb3JlIHByb2R1Y3RzPC9saT4NCjxwPllvdSBzaG91bGQgY3JlYXRlIG9uZSBvciBtb3JlIHByb2R1Y3RzIHRvIGRpc3BsYXkgaW4geW91ciB3ZWJzaXRlIGNvbnRlbnQuICBHaXZlIGVhY2ggcHJvZHVjdCBhIG5hbWUsIGEgcHJpY2UgKG9wdGlvbmFsKSBhIHdlaWdodCAob3B0aW9uYWwpLCBhIHN0YXR1cyAoZHJhZnQgb3IgcHVibGlzaGVkKSwgYW5kIHNvbWUgaW5mb3JtYXRpb24uICBBZGRpdGlvbmFsbHksIHlvdSBjYW4gYWxzbyBzcGVjaWZ5IGlmIHRoZSBwcm9kdWN0IGlzIHRheGFibGUuPC9wPg0KPHA+SWYgY2F0ZWdvcmllcyBhcmUgZGVmaW5lZCwgdGhlbiBhIGNoZWNrYm94IHdpbGwgYXBwZWFyIGZvciBlYWNoIGRlZmluZWQgY2F0ZWdvcnkuICBZb3UgY2FuIHNpbXBseSBjbGljayB0aGUgY2hlY2tib3ggZmllbGRzIGZvciBlYWNoIGNhdGVnb3J5IHRoYXQgdGhpcyBwcm9kdWN0IHNob3VsZCBiZWxvbmcgdG8uPC9wPg0KPHA+SWYgY3VzdG9tIGZpZWxkcyBhcmUgZGVmaW5lZCwgdGhlbiBpbnB1dCBmaWVsZHMgYXBwcm9wcmlhdGUgdG8gdGhlIHR5cGUgb2YgY3VzdG9tIGZpZWxkIHdpbGwgYXBwZWFyIGFuZCBhbGxvdyB5b3UgdG8gc3BlY2lmeSBkYXRhIGZvciBlYWNoIG9mIHRoZW0uICBUaGlzIGRhdGEgaXMgb3B0aW9uYWwuPC9wPg0KPGxpPkFkZCB0aGUgYXBwcm9wcmlhdGUgdGFncyBpbnRvIHlvdXIgcGFnZSB0ZW1wbGF0ZXMgb3IgcGFnZSBjb250ZW50PC9saT4NCjxwPlRoaXMgY2FuIGJlIGFzIHNpbXBsZSBhcyBhZGRpbmcgdGhlIDxzdHJvbmc+e1Byb2R1Y3RzfTwvc3Ryb25nPiB0YWcgaW50byB0aGUgY29udGVudCBhcmVhIG9mIG9uZSBvZiB5b3VyIHBhZ2VzLCBvciBpbnRvIHlvdXIgcGFnZSB0ZW1wbGF0ZS48L3A+DQo8cD5JZiB5b3Ugd2lzaCB0byBhbHRlciB0aGUgYmVoYXZpb3VyIG9mIHRoaXMgYXBwbGljYXRpb24gZnJvbSBpdHMgZGVmYXVsdCwgeW91IGNhbiBkbyB0aGF0IGJ5IGFkZGluZyBvbmUgb3IgbW9yZSBwYXJhbWV0ZXJzIHRvIHRoZSA8c3Ryb25nPntQcm9kdWN0c308L3N0cm9uZz4gdGFnLiAgVGhlIGNvbXBsZXRlIGxpc3Qgb2YgcGFyYW1ldGVycyBhbmQgdGhlaXIgYmVoYXZpb3VyIGlzIGxpc3RlZCBiZWxvdy4gIEJ1dCBmb3IgZXhhbXBsZSwgdG8gZGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdHMgaW4gYSBzaW5nbGUsIGV4aXN0aW5nIGNhdGVnb3J5LCB5b3UgY291bGQgdXNlIGEgdGFnIGxpa2UgPGNvZGU+e1Byb2R1Y3RzIGNhdGVnb3J5PSYjMDM5O2NhdGVnb3J5bmFtZSYjMDM5O308L2NvZGU+PC9wPg0KPC91bD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiAgSG93ZXZlciB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzIG9yIHRvIGZpbGUgYSBidWcgcmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIGNtcyBtYWRlIHNpbXBsZSA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5EZXZlbG9wZXJzIEZvcmdlPC9hPiBhbmQgZG8gYSBzZWFyY2ggZm9yICYjMDM5O1Byb2R1Y3RzJiMwMzk7PC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj5Sb2JlcnQgQ2FtcGJlbGw8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3Jtcy48L2E+PC9saT4NCjxsaT5Gb3Igc29tZSBxdWVzdGlvbnMgYW5kIGxpbWl0ZWQgdGVjaG5pY2FsIHN1cHBvcnQsIHRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0hpZXJhcmhpamEnOwokbGFuZ1snaGllcmFyY2h5X3Bvc2l0aW9uJ10gPSAnUG9sb8W+YWogdiBoaWVyYXJoaWppJzsKJGxhbmdbJ2lkJ10gPSAnSUQnOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnU2xpa2EnOwokbGFuZ1snaW5jbHVkZV9jaGlsZHJlbiddID0gJ1ZrbGp1xI1pIHBvZHJlamVuZT8nOwokbGFuZ1snaW5mb19hbG51bW9ubHknXSA9ICdTYW1vIGFsZmFudW1lcmnEjW5pIHpuYWtpLiBCcmV6IHByZXNsZWRrb3YsIG5hcmVrb3ZhamV2LCAmc2Nhcm9uO3Vtbmlrb3YgaW4gcG9zZWJuaWggem5ha292Lic7CiRsYW5nWydpbmZvX2F1dG90aHVtYm5haWwnXSA9ICdOYXN0YXZpdHZlIHBvbWFuaiZzY2Fyb247YW5paCBzbGlrIG5hc3Rhdml0ZSB2IG1vZHVsdSBDR0V4dGVuc2lvbnMnOwokbGFuZ1snaW5mb19hdXRvd2F0ZXJtYXJrJ10gPSAnTmFzdGF2aXR2ZSB2b2RuZWdhIMW+aWdhIG5hc3Rhdml0ZSB2IG1vZHVsdSBDR0V4dGVuc2lvbnMnOwokbGFuZ1snaW5mb19maWVsZGRlZnNfdGFiJ10gPSAnPHN0cm9uZz5PcG96b3JpbG86IDwvc3Ryb25nPiBWc2EgdHVrYWogZGVmaW5pcmFuYSBwb2xqYSBzbyBuYSB2b2xqbyB2c2VtIGFydGlrbG9tLic7CiRsYW5nWydpbmZvX2ZpZWxkcHJvYmxlbXMnXSA9ICdQcmkmc2Nhcm9uO2xvIGplIGRvIHRlxb5hdiBwcmkgdXByYXZsamFuanUgeiBlbmltIGFsaSB2ZcSNIHByaWxhZ29qZW5paCBwb2xqLiBBa2NpamEgamUgYmlsYSB1c3BlJnNjYXJvbjtubyB6YWtsanXEjWVuYSwgdmVuZGFyIHByZXZlcml0ZSBpbiBvZHByYXZpdGUgbmFwYWtlLic7CiRsYW5nWydpbmZvX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdEb3ZvbGplbmUgdnJlZG5vc3RpIHNvICstKiMuIyMnOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gJ0phdm5hIHBvbGphIGxhaGtvIHZpZGlqbyB2c2knOwokbGFuZ1snbGFiZWwnXSA9ICdOYXppdic7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xhc3RfbW9kaWZpZWQnXSA9ICdaYWRuamEgc3ByZW1lbWJhJzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnRHJ1Z2Egc2xpa2EnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTmFqdmXEjWphIGRvbMW+aW5hIDxlbT4oc2FtbyBwcmkgdGV4dGJveCBwb2xqaWgpPC9lbT4nOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnRGF0dW0gc3ByZW1lbWJlJzsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gJ01vZHVsIHphIHVwcmF2bGphbmplIHMga2F0YWxvZ29tIGFydGlrbG92LCBjZW5hbWksIHNsaWthbWkgaXRkLic7CiRsYW5nWyduYW1lJ10gPSAnSW1lJzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnTmltYXRlIHphZG9zdG5paCBwcmF2aWM6ICVzJzsKJGxhbmdbJ25ld19jYXRlZ29yeV9uYW1lJ10gPSAnSW1lIG5vdmUga2F0ZWdvcmlqZSc7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICdJbWUgbmkgYmlsbyBwb2Rhbm8nOwokbGFuZ1snbm9uZSddID0gJ05vYmVuJzsKJGxhbmdbJ29mJ10gPSAnb2QnOwokbGFuZ1sncGFnZSddID0gJ1N0cmFuJzsKJGxhbmdbJ3BhZ2Vfb2YnXSA9ICdTdHJhbiAlcyBvZCAlcyc7CiRsYW5nWydwYWdlX2xpbWl0J10gPSAnT21laml0ZXYgc3RyYW5pJzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ1NwZWNpZnkgdGhlIGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPmhpZXJhcmNoeSAtLSBEaXNwbGF5IGEgcHJvZHVjdCBsaXN0IGJ5IGhpZXJhcmNoeTwvbGk+DQogIDxsaT5jYXRlZ29yeWxpc3QgLSBEaXNwbGF5IGEgbGlzdCBvZiBwcm9kdWN0IGNhdGVnb3JpZXM8L2xpPg0KICA8bGk+PGVtPmRlZmF1bHQ8L2VtPiAtIERpc3BsYXkgYSBzdW1tYXJ5IG9mIHByb2R1Y3RzPC9saT4NCiAgPGxpPmRldGFpbHMgLSBEaXNwbGF5IGEgZGV0YWlsIHZpZXcgb2YgYSBzaW5nbGUgcHJvZHVjdDwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ1doZW4gdXNlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyLCB3aGljaCBzaG91bGQgbWF0Y2ggdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgY2F0ZWdvcnkgd2lsbCBiZSB1c2VkIHRvIGRpc3BsYXkgb25seSB0aG9zZSBwcm9kdWN0cyB0aGF0IGFyZSBpbiB0aGF0IGNhdGVnb29yeS4gKGEgY29tbWEgc2VwZXJhdGVkIGxpc3QgY2FuIGJlIHN1cHBsaWVkKSc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnVGhpcyBzcGVjaWZpZXMgdGhlIHBhZ2VpZCBvciBhbGlhcyB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIGRldGFpbCByZXBvcnQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGV0YWlsIG1vZGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHknXSA9ICdVc2VmdWwgb25seSBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGF0IG9ubHkgaXRlbXMgaW4gdGhhdCBsb2NhdGlvbiBvZiB0aGUgaGllcmFyY2h5IHNob3VsZCBiZSBkaXNwbGF5ZWQuICBXaWxkY2FyZCBjaGFyYWN0ZXIgY2FuIGJlIHVzZWQgc28gdGhhdCB5b3UgY2FuIHNwZWNpZnkgcGFyZW50L2NoaWxkIHJlbGF0aW9uc2hpcHMgYXMgd2VsbC4gIGkuZSB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5O3RydWNrcyomIzAzOTt9IHdpbGwgY3JlYXRlIGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgaW5jbHVkaW5nIHRoZSBjaGlsZHJlbiBpbiB0aGUgaGllcmFyY2h5LiAgU2ltaWxhcmx5LCB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5Oyp0cnVja3MmIzAzOTt9IHdpbGwgZGlzcGxheSBhIHN1bW1hcnkgcmVwb3J0IG9mIGFsbCB0cnVja3MsIGFuZCBhbGwgcHJvZHVjdHMgYmVsb2dpbmcgdG8gYW55IHBhcmVudCBpbiB0aGUgaGllcmFyY2h5Lic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGhpZXJhcmNoeSBkaXNwbGF5LiBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1fcGFnZWxpbWl0J10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBob3cgbWFueSBpdGVtcyBzaG91bGQgYmUgbGlzdGVkIG9uIGVhY2ggcGFnZS4nOwokbGFuZ1sncGFyYW1fcGFyZW50J10gPSAnVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5oaWVyYXJjaHk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgaGllcmFyY2h5IGlkIG9mIHRoZSBzdGFydGluZyBsb2NhdGlvbiBvZiB0aGUgcmVwb3J0Lic7CiRsYW5nWydwYXJhbV9wcm9kdWN0aWQnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSBkZXRhaWwgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgd2hhdCBwcm9kdWN0IHRvIHVzZSBmb3IgdGhlIGRpc3BsYXkuJzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ1NwZWNpZnkgdGhlIG9yZGVyIG9mIHNvcnRlZCBmaWVsZHMgaW4gc3VtbWFyeSB2aWV3LiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIEFzY2VuZGluZyBvcmRlcjwvbGk+DQogIDxsaT5kZXNjIC0tIERlc2NlbmRpbmcgb3JkZXI8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnQXBwbGljYWJsZSBvbmx5IGluIHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgZGV0ZXJtaW5lcyB0aGUgc29ydGluZyBvZiB0aGUgb3V0cHV0IHByb2R1Y3RzLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+cHJvZHVjdF9uYW1lPC9zdHJvbmc+PC9saT4NCiAgPGxpPnByaWNlIC0tIFRoZSBwcm9kdWN0IGJhc2UgcHJpY2U8L2xpPg0KICA8bGk+c3RhdHVzIC0tIERyYWZ0IG9yIHB1Ymxpc2hlZDwvbGk+DQogIDxsaT5yYW5kb20gLS0gRGlzcGxheSBpbiByYW5kb20gb3JkZXIgb24gZWFjaCByZXF1ZXN0PC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gVGhlIGNyZWF0aW9uIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KICA8bGk+bW9kaWZpZWQgLS0gVGhlIG1vZGlmaWVkIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgc3VtbWFyeSBtb2RlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyZW50J10gPSAnTmFkcmVqZW5pIGVsZW1lbnQnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdNb2R1bCBQcm9kdWt0aSBqZSBiaWwgdXNwZSZzY2Fyb247bm8gbmFtZSZzY2Fyb247xI1lbic7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnTW9kdWwgUHJvZHVrdGkgamUgYmlsIHVzcGUmc2Nhcm9uO25vIG9kc3RyYW5qZW4geiB2c2VtaSBwb2RhdGtpJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnTmFzdGF2aXR2ZSc7CiRsYW5nWydwcmV1bmluc3RhbGwnXSA9ICfEjGUgb2RzdHJhbml0ZSB0YSBtb2R1bCwgYm9zdGUgb2RzdHJhbmlsaSB0dWRpIHZzZSBwb2RhdGtlLCBraSBtdSBwcmlwYWRham8uIFN0ZSBwcmVwcmnEjWFuaSwgZGEgxb5lbGl0ZSBuYWRhbGpldmF0aT8nOwokbGFuZ1sncHJpY2UnXSA9ICdDZW5hJzsKJGxhbmdbJ3ByaWNlX2FkanVzdG1lbnQnXSA9ICdOYXN0YXZpdGV2IGNlbmUnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb2R1Y3QnXSA9ICdBcnRpa2VsJzsKJGxhbmdbJ3Byb2R1Y3RuYW1lJ10gPSAnSW1lIGFydGlrbGEnOwokbGFuZ1sncHJvZHVjdHMnXSA9ICdQcm9kdWt0aSc7CiRsYW5nWydwcm9kdWN0X2hpZXJhcmNoeSddID0gJ0hpZXJhcmhpamEgcHJvZHVrdG92JzsKJGxhbmdbJ3Byb2R1Y3RfbWFuYWdlciddID0gJ1VwcmF2aXRlbGogcHJvZHVrdG92JzsKJGxhbmdbJ3Byb21wdCddID0gJ1ZwcmEmc2Nhcm9uO2FuamUnOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfZmlsZXR5cGVzJ10gPSAnRG92b2xpIG5hbGFnYW5qZSBkYXRvdGVrIHMgdGVtaSBrb27EjW5pY2FtaSAoemEgcG9samEgdGlwYSBkYXRvdGVrYSknOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2V0eXBlcyddID0gJ0Rvdm9saSBuYWxhZ2FuamUgZGF0b3RlayBzIHRlbWkga29uxI1uaWNhbWkgKHphIHBvbGphIHRpcGEgc2xpa2EpJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsJ10gPSAnQXZ0b21hdGnEjW5vIHVzdHZhcmkgcG9tYW5qJnNjYXJvbjthbmUgc2xpa2UnOwokbGFuZ1sncHJvbXB0X2F1dG93YXRlcm1hcmsnXSA9ICdBdnRvbWF0acSNbm8gdnN0YXZpIHZvZG5pIMW+aWcgbmEgc2xpa2UnOwokbGFuZ1sncHJvbXB0X2FwcGxpY2FibGUnXSA9ICdPbW9nb8SNaSBwcml2emV0byB6YSB2c2Ugbm92ZSBhcnRpa2xlJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeWNvZGUnXSA9ICcmU2Nhcm9uO2lmcmEgdmFsdXRlJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeXN5bWJvbCddID0gJ1NpbWJvbCB2YWx1dGUnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gJ0l6YnJpJnNjYXJvbjtlbSB2c2UgZGF0b3Rla2UsIGtpIHNvIHBvdmV6YW5lIHogYXJ0aWtsb20sIGtvIGl6YnJpJnNjYXJvbjtlbSBhcnRpa2VsPyc7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ1ByaXZ6ZXRhIHN0cmFuIHMgcG9kcm9ibm9zdG1pJzsKJGxhbmdbJ3Byb21wdF90YXhyYXRlJ10gPSAnU3RvcG5qYSBkYXZrYSc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRvcmRlciddID0gJ1ByaXZ6ZXRhIHNtZXIgcmF6dnImc2Nhcm9uO8SNYW5qYSBhcnRpa2xvdiB2IHBvdnpldGt1JzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ1ByaXZ6ZXRvIHBvbGplIHphIHJhenZyJnNjYXJvbjvEjWFuamUgYXJ0aWtsb3YgdiBwb3Z6ZXRrdSc7CiRsYW5nWydwcm9tcHRfdGF4MSddID0gJ1BydmkgZGF2ZWsnOwokbGFuZ1sncHJvbXB0X3RheDInXSA9ICdEcnVnaSBkYXZlayc7CiRsYW5nWydwcm9tcHRfdGF4bmFtZSddID0gJ0ltZSBkYXZrYSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdLb2RhIHByZWRsb2dlJzsKJGxhbmdbJ3Byb21wdF93ZWlnaHR1bml0cyddID0gJ0Vub3RhIHRlxb5lJzsKJGxhbmdbJ3B1YmxpYyddID0gJ0plIHRvIHBvbGplIGphdm5vPyc7CiRsYW5nWydwdWJsaXNoZWQnXSA9ICdPYmphdmxqZW5vJzsKJGxhbmdbJ3JhbmRvbSddID0gJ05ha2xqdcSNbm8nOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdQb25hc3RhdmkgbmEgdG92YXJuaSZzY2Fyb247a2UgbmFzdGF2aXR2ZSc7CiRsYW5nWydyb290J10gPSAnS29yZW4nOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ0l6YmVyaXRlIGVubyc7CiRsYW5nWydzb3J0X2J5J10gPSAnUmF6dnJzdGkgcG8nOwokbGFuZ1snc29ydF9vcmRlciddID0gJ1NtZXIgcmF6dnImc2Nhcm9uO8SNYW5qYSc7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF0dXMnOwokbGFuZ1snc3VibWl0J10gPSAnUG8mc2Nhcm9uO2xqaSc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVzJ10gPSAnUHJlZGxvZ2UgemEgcG92emV0ZWsnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdEb2Rhai91cmVkaSBwcmVkbG9nbyB6YSBwb3Z6ZXRlayc7CiRsYW5nWyd0YXhhYmxlJ10gPSAnT2JkYXbEjWVubyc7CiRsYW5nWyd0YXhfbW9kdWxlJ10gPSAnTW9kdWwgemEgZGF2ZWsnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZWtzdG92bm8gcG9kcm/EjWplJzsKJGxhbmdbJ3RleHRib3gnXSA9ICdUZWtzdG92bmkgdm5vcyc7CiRsYW5nWyd0aXRsZV9ieWhpZXJhcmNoeV9kZmx0dGVtcGxhdGUnXSA9ICdQcml2emV0byB6YSBub3ZlIHByZWRsb2dlIGhpZXJhcmhpamUnOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1ByaXZ6ZXRvIHphIG5vdmUgcHJlZGxvZ2UgcHJlZ2xlZGEga2F0ZWdvcmlqJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdQcml2emV0byB6YSBub3ZlIHByZWRsb2dlIHBvZHJvYm5vc3RpJzsKJGxhbmdbJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJ10gPSAnUHJpdnpldG8gemEgbm92ZSBwcmVkbG9nZSBwb3Z6ZXRrYSc7CiRsYW5nWyd0eXBlJ10gPSAnVGlwJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ1Bvc29kb2JpJzsKJGxhbmdbJ3VwbG9hZCddID0gJ0l6YmVyaXRlIGRhdG90ZWtvIHphIG5hbGFnYW5qZSc7CiRsYW5nWyd2YWxpZCddID0gJ1ZlbGphdm5vJzsKJGxhbmdbJ3ZhbHVlJ10gPSAnVnJlZG5vc3QnOwokbGFuZ1sndmFsdWVzJ10gPSAnVnJlZG5vc3RpJzsKJGxhbmdbJ3dhdGVybWFya19sb2NhdGlvbiddID0gJ0xva2FjaWphIHZvZG5lZ2Egxb5pZ2EnOwokbGFuZ1snd2VpZ2h0J10gPSAnVGXFvmEnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My41ODc5NTkyNzcuMTIxNzQzMzU5NS4xMjIyNTg4MjE2LjEyMjY2NzcxNjcuMjEnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjIyNTg4MjE2LjIwLjExLnV0bWNzcj1nb29nbGV8dXRtY2NuPShvcmdhbmljKXx1dG1jbWQ9b3JnYW5pY3x1dG1jdHI9Y21zIG1hZGUgc2ltcGxlJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sv_SE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfbGVuZ3RoJ10gPSAnTCc7CiRsYW5nWydhYmJyX3dpZHRoJ10gPSAnVyc7CiRsYW5nWydhYmJyX2hlaWdodCddID0gJ0gnOwokbGFuZ1snYWRkJ10gPSAnTCZhdW1sO2dnIHRpbGwnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdMJmF1bWw7Z2cgdGlsbCBlbiBrYXRlZ29yaSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0wmYXVtbDtnZyB0aWxsIGV0dCBmJmF1bWw7bHQnOwokbGFuZ1snYWRqdXN0YWJsZSddID0gJ0p1c3RlcmJhcic7CiRsYW5nWydhZGRwcm9kdWN0J10gPSAnTCZhdW1sO2dnIHRpbGwgZW4gcHJvZHVrdCc7CiRsYW5nWydhZGRfYXR0cmliX3NldCddID0gJ0wmYXVtbDtnZyB0aWxsIGF0dHJpYnV0JzsKJGxhbmdbJ2FkZF9jYXRlZ29yeV9maWVsZCddID0gJ0Fzc29jaWVyYW5kZSBmJmF1bWw7bHQgbWVkIGthdGVnb3JpOiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydhZGRfaGllcmFyY2h5X2l0ZW0nXSA9ICdMJmF1bWw7Z2cgdGlsbCBoaWVyYXJraSBvYmpla3QnOwokbGFuZ1snYWRkX29wdGlvbiddID0gJ0wmYXVtbDtnZyB0aWxsIGV0dCBhdHRyaWJ1dCBhbHRlcm5hdGl2JzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdEZXR0YSBhdHRyaWJ1dCBrYW4gZW5kYXN0IHNlcyBhdiBhZG1pbj8nOwokbGFuZ1snYWxpZ25fdWwnXSA9ICdUb3BwZW4gdGlsbCB2JmF1bWw7bnN0ZXInOwokbGFuZ1snYWxpZ25fdWMnXSA9ICdUb3BwZW4gY2VudHJlcmF0JzsKJGxhbmdbJ2FsaWduX3VyJ10gPSAnVG9wcGVuIGgmb3VtbDtnZXInOwokbGFuZ1snYWxpZ25fbWwnXSA9ICdNaXR0ZW4gdGlsbCB2JmF1bWw7bnN0ZXInOwokbGFuZ1snYWxpZ25fbWMnXSA9ICdDZW50cmVyYXQnOwokbGFuZ1snYWxpZ25fbXInXSA9ICdNaXR0ZW4gdGlsbCBoJm91bWw7Z2VyJzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnTmVkZXJzdCB0aWxsIHYmYXVtbDtuc3Rlcic7CiRsYW5nWydhbGlnbl9sYyddID0gJ05lZGVyc3QgQ2VudHJlcmF0JzsKJGxhbmdbJ2FsaWduX2xyJ10gPSAnTmVkZXJzdCB0aWxsIGgmb3VtbDtnZXInOwokbGFuZ1snYWxsJ10gPSAnQWxsYSc7CiRsYW5nWydhbGxjYXRlZ29yaWVzJ10gPSAnQWxsYSBrYXRlZ29yaWVyJzsKJGxhbmdbJ2FueSddID0gJ1ZpbGtlbic7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnJkF1bWw7ciBkdSBzJmF1bWw7a2VyPyc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZXByb2R1Y3QnXSA9ICcmQXVtbDtyIGR1IHMmYXVtbDtrZXIgcCZhcmluZzsgYXR0IGR1IHZlcmtsaWdlbiB2aWxsIHRhIGJvcnQgZGVuIGgmYXVtbDtyIHByb2R1a3Rlbiwgb2NoIGFsbGEgZGUga29tcGxldHRlcmFuZGUgaW5mb3JtYXRpb24gZiZvdW1sO3IgZGVuPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdTdGlnYW5kZSc7CiRsYW5nWydhdHRyaWJ1dGVfbmFtZSddID0gJ0F0dHJpYnV0IG5hbW4nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlza3QnOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZXMnXSA9ICdIaWVyYXJraW1hbGxhcic7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMJmF1bWw7Z2cgdGlsbC9SZWRpZ2VyYSBIaWVyYXJraW1hbGwnOwokbGFuZ1snY2FuY2VsJ10gPSAnQXZicnl0JzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdLYXRlZ29yaWVyJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnS2F0ZWdvcmknOwokbGFuZ1snY2F0ZWdvcnlleGlzdHMnXSA9ICdFbiBrYXRlZ29yaSBtZWQgZGV0IG5hbW5ldCBmaW5ucyByZWRhbic7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdLYXRlZ29yaW1hbGxhcic7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTCZhdW1sO2dnIHRpbGwvcmVkaWdlcmEga2F0ZWdvcmltYWxsJzsKJGxhbmdbJ2NlbnRpbWV0ZXJzJ10gPSAnQ2VudGltZXRlcic7CiRsYW5nWydjaGVja2JveCddID0gJ0tyeXNzcnV0YSc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9oaWVyYXJjaHlfbm9kZSddID0gJyZBdW1sO3IgZHUgcyZhdW1sO2tlciBwJmFyaW5nOyBhdHQgZHUgdmlsbCB0YSBib3J0IGRlbm5hIG5vZD8gQWxsYSBwcm9kdWt0ZXIgc29tIGFudiZhdW1sO25kZXIgZGVubmEgbm9kIGtvbW1lciBpbnRlIGF0dCB0aWxsaCZvdW1sO3JhIG4mYXJpbmc7Z29uIGhpZXJhcmtpJzsKJGxhbmdbJ2NvbmZpcm1faW1wb3J0J10gPSAnJkF1bWw7ciBkdSBzJmF1bWw7a2VyIHAmYXJpbmc7IGF0dCBkdSB2ZXJrbGlnZW4gdmlsbCBnJm91bWw7cmEgZGV0dGE/IFwgbiBcIG5JbXByb3BlciBpbnN0JmF1bWw7bGxuaW5nYXIsIGVsbGVyIGVuIG9naWx0aWd0IGtvbmZpZ3VyYXRpb25zZmlsIGt1bmRlIGhlbHQgZiZvdW1sO3JkJmF1bWw7cnZhdCBmdW5nZXJhbmRlIHN5c3RlbS4nOwokbGFuZ1snY29weSddID0gJ0tvcGllcmEnOwokbGFuZ1snY29weV9jYXRlZ29yeSddID0gJ0tvcGllcmEgS2F0ZWdvcmknOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdTa2FwYWQgZGF0dW0nOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ051dmFyYW5kZSB2JmF1bWw7cmRlJzsKJGxhbmdbJ2RhdGEnXSA9ICdEYXRhICc7CiRsYW5nWydkZWZhdWx0J10gPSAnU3RhbmRhcmQnOwokbGFuZ1snZGVmYXVsdHRlbXBsYXRlcyddID0gJ1N0YW5kYXJkbWFsbGFyJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5Ob3Rpczo8L3N0cm9uZz4gSW5uZWgmYXJpbmc7bGxldCBpIGRlc3NhIHRleHQgb21yJmFyaW5nO2RlbiBhbnYmYXVtbDtuZHMgZiZvdW1sO3IgYXR0IGJlc3QmYXVtbDttbWEgc3RhbmRhcmRpbm5laCZhcmluZztsbCBhdiBkaW5hIG1hbGxhciBuJmF1bWw7ciBkdSBrbGlja2FyIHAmYXJpbmc7ICZxdW90O0wmYXVtbDtnZyB0aWxsIG1hbGwmcXVvdDsgaSBsJmF1bWw7bXBsaWcgbWFsbCBmbGlrLiBSZWRpZ2VyaW5nIGF2IGVuIHRleHQgaSBkZXNzYSBvbXImYXJpbmc7ZGVuIGtvbW1lciBhdHQgaGEgb21lZGVsYmFyIGVmZmVrdCBwJmFyaW5nOyBkaW4gd2ViYnBsYXRzLic7CiRsYW5nWydkZWxldGUnXSA9ICdSYWRlcmEnOwokbGFuZ1snZGVsZXRlX2F0dHJpYnNldCddID0gJ1JhZGVyYSBhdHRyaWJ1dCc7CiRsYW5nWydkZWxldGVfaGllcmFyY2h5X2l0ZW0nXSA9ICdSYWRlcmEgaGllcmFya2kgb2JqZWt0ZXQnOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ0ZhbGxhbmRlJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnQmVza3Jpdm5pbmcnOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFsamVyJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ0RldGFsam1hbGwnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ0wmYXVtbDtnZyB0aWxsL3JlZGlnZXJhIGVuIGRldGFsam1hbGwnOwokbGFuZ1snZGltZW5zaW9ucyddID0gJ0RpbWVuc2lvbmVyJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnSW5ha3RpdmVyYWQnOwokbGFuZ1snZHJhZnQnXSA9ICdVdGthc3QnOwokbGFuZ1snZHJvcGRvd24nXSA9ICdOZWRydWxsbmluZ3NiYXInOwokbGFuZ1snZHJvcGRvd25fb3B0aW9ucyddID0gJ0Ryb3Bkb3duIFZhbCA8ZW0+KGcmYXVtbDtsbGVyIGVuZGFzdCBmJm91bWw7ciBkcm9wZG93biBvbXImYXJpbmc7ZGVuKTwvZW0+PGJyLz48YnIvPjxlbT4oZW4gcG9zdCBwZXIgcmFkKTwvZW0+JzsKJGxhbmdbJ2VkaXQnXSA9ICdSZWRpZ2VyYSc7CiRsYW5nWydlZGl0X2F0dHJpYnNldCddID0gJ1JlZGlnZXJhIGF0dHJpYnV0JzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0cyddID0gJ1JlZGlnZXJhIGF0dHJpYnV0dXBwcyZhdW1sO3R0bmluZ2FyJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0c19mb3InXSA9ICdSZWRpZ2VyYSBhdHRyaWJ1dHVwcHMmYXVtbDt0dG5pbmdhciBmJm91bWw7cic7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdSZWRpZ2VyYSBhdHRyaWJ1dGVyJzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnknXSA9ICdSZWRpZ2VyYSBrYXRlZ29yaSc7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ1JlZGlnZXJhIGthdGVnb3JpIGYmYXVtbDtsdGV0JzsKJGxhbmdbJ2VkaXRfaGllcmFyY2h5X2l0ZW0nXSA9ICdSZWRpZ2VyYSBoaWVyYWtpIG9iamVrdGV0JzsKJGxhbmdbJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnXSA9ICdFbiBhdHRyaWJ1dCBtZWQgZGV0IG5hbW5ldCBmaW5ucyByZWRhbic7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfc2t1J10gPSAnRGV0dGEgU0tVIHYmYXVtbDtyZGV0IGZpbm5zIHJlZGFuJzsKJGxhbmdbJ2Vycm9yX2ZpZWxkdmFsdWVfZW1wdHknXSA9ICdGJmF1bWw7bHRldHMgdiZhdW1sO3JkZSBrYW4gaW50ZSB2YXJhIHRvbXQnOwokbGFuZ1snZXJyb3JfZmlsZWZvcm1hdCddID0gJ0ZpbGZvcm1hdHNwcm9ibGVtJzsKJGxhbmdbJ2Vycm9yX2ZpbGVub3Rmb3VuZCddID0gJ0ZpbGVuIGhpdHRhZGVzIGludGUnOwokbGFuZ1snZXJyb3JfZmlsZW9wZW4nXSA9ICdQcm9ibGVtIGF0dCAmb3VtbDtwcG5hIGZpbCUgcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnSW52YWxpZCBQYXJlbnQgKGEgaGllcmFyY2h5IG5vZGUgY2Fubm90IGJlIGl0JiMwMzk7cyBvd24gcGFyZW50KSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX25hbWUnXSA9ICdGJmF1bWw7bHRldHMgdiZhdW1sO3JkZSAmYXVtbDtyIG9naWx0aWcgKGlubmVoJmFyaW5nO2xsZXIgaWNrZSBhbGZhbnVtZXJpc2thIHRlY2tlbiknOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnRW4gbiZvdW1sO2R2JmF1bWw7bmRpZyBwYXJhbWV0ZXIgc2FrbmFzIGVsbGVyICZhdW1sO3Igb2dpbHRpZyc7CiRsYW5nWydlcnJvcl9uYW1ldXNlZCddID0gJ0V0dCBvYmpla3QgbWVkIGRldCBuYW1uZXQgYW52JmF1bWw7bmRzIHJlZGFuJzsKJGxhbmdbJ2Vycm9yX25vZmllbGR0eXBlJ10gPSAnViZhdW1sO2xqIGYmYXVtbDtsdCB0eXAnOwokbGFuZ1snZXJyb3Jfbm9uYW1lJ10gPSAnRHUgbSZhcmluZztzdGUgdXBwZ2UgZXR0IG5hbW4nOwokbGFuZ1snZXJyb3Jfb25lc3Vic2NyaXB0aW9uZmllbGQnXSA9ICdPbmx5IG9uZSBzdWJzY3JpcHRpb24gZmllbGQgaXMgYWxsb3dlZCc7CiRsYW5nWydlcnJvcl9wZXJtaXNzaW9uZGVuaWVkJ10gPSAnTmVrYXQgdGlsbHN0JmFyaW5nO25kJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfYWxpYXN1c2VkJ10gPSAnRGV0IHNwZWNpZmljZXJhZGUgYWxpYXMgYW52JmF1bWw7bmRzIHJlZGFuJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdFbiBwcm9kdWt0IG1lZCBkZXQgbmFtbmV0IGZpbm5zIHJlZGFuJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3Rfbm90Zm91bmQnXSA9ICdEZW4gYmVnJmF1bWw7cmRhIHByb2R1a3RlbiBrdW5kZSBpbnRlIGhpdHRhcyc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X3NrdXVzZWQnXSA9ICdTS1UtdiZhdW1sO3JkZXQgYW52JmF1bWw7bmRzIHJlZGFuIGF2IGVuIGFubmFuIHByb2R1a3QnOwokbGFuZ1snZXJyb3JfcHJpY2VfYWRqdXN0bWVudCddID0gJ09naWx0aWcgcHJpc2p1c3RlcmluZ3MgdiZhdW1sO3JkZSBmJm91bWw7ciBvYmpla3RldCAlcyc7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnVXBwbGFkZG5pbmdzIGZlbDogJXMnOwokbGFuZ1snZXhwaXJlX3NpeF9tb250aHMnXSA9ICdFZnRlciA2IG0mYXJpbmc7bmFkZXInOwokbGFuZ1snZXhwaXJlX29uZV95ZWFyJ10gPSAnRWZ0ZXIgMSAmYXJpbmc7cic7CiRsYW5nWydleHBpcmVfdHdvX3llYXInXSA9ICdFZnRlciAyICZhcmluZztyJzsKJGxhbmdbJ2V4dHJhMSddID0gJ0V4dHJhIGYmYXVtbDtsdCAxJzsKJGxhbmdbJ2V4dHJhMiddID0gJ0V4dHJhIGYmYXVtbDtsdCAyJzsKJGxhbmdbJ2ZpZWxkJ10gPSAnRiZhdW1sO2x0JzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRiZhdW1sO2x0ZGVmaW5pdGlvbic7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdGJmF1bWw7bHRkZWZpbml0aW9uZXInOwokbGFuZ1snZmlsZSddID0gJ0ZpbCc7CiRsYW5nWydmaWx0ZXJzJ10gPSAnRmlsdGVyJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8JzsKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdTdGFuZGFyZCBpbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1snZ28nXSA9ICdWaWRhcmUnOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IGRvZXMgdGhpcyBkbz88L2gzPg0KPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgYSB3YXkgdG8gY29sbGVjdCwgb3JnYW5pemUsIGFuZCBkaXNwbGF5IGluZm9ybWF0aW9uIGFib3V0IHByb2R1Y3RzIGFuZCB0aGVpciBjYXRlZ29yaWVzLiAgVGhpcyBtb2R1bGUgY2FuIHN0YW5kIG9uIGl0cyBvd24sIG9yIGJlIHBhcnQgb2YgYW4gZS1jb21tZXJjZSBzb2x1dGlvbiBpZiB5b3Ugd2lzaC4gIFRoZSBtb2R1bGUgc3VwcG9ydHMgYSBwcm9kdWN0IGV4aXN0aW5nIGluIG1vcmUgdGhhbiBvbmUgY2F0ZWdvcnksIHN1cHBvcnRzIHByb2R1Y3Qgd2VpZ2h0LCBwcmljZSwgYW5kIGF0dHJpYnV0ZSBzZXRzLiAgRWFjaCBpdGVtIGluIGFuIGF0dHJpYnV0ZSBzZXQgY2FuIGhhdmUgYSBwcmljZSBhZGp1c3RtZW50LiAgQWxzbyBhIGdsb2JhbCBmbGFnIGluZGljYXRlcyB3ZXRoZXIgdGhlIHByb2R1Y3QgaXMgJiMwMzk7dGF4YWJsZSYjMDM5OyBvciBub3QuPC9wPg0KICA8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBmb3IgdXAgdG8gdHdvIGltYWdlcyBwZXIgcHJvZHVjdCwgY3VzdG9tIGZpZWxkIGRlZmluaXRpb25zLCBhbmQgZm9yIHRoZSBhYmlsaXR5IHRvIGRlc2NyaW1pbmF0ZSBwcml2YXRlIGZyb20gcHVibGljIGRhdGEuPC9wPg0KPGgzPkZlYXR1cmVzOjwvaDM+DQo8dWw+DQogIDxsaT5OdW1lcm91cyBWaWV3czwvbGk+DQogICAgPHVsPg0KICAgICAgPGxpPlN1bW1hcnkgdmlldzwvbGk+DQogICAgICA8bGk+Q2F0ZWdvcnkgTGlzdCBWaWV3PC9saT4NCiAgICAgIDxsaT5EZXRhaWwgdmlldzwvbGk+IA0KICAgICAgPGxpPkhpZXJhcmNoeSBEcmlsbC1kb3duIFZpZXc8L2xpPg0KICAgIDwvdWw+DQogIDxsaT5FbnRpcmVseSBEYXRhYmFzZSBUZW1wbGF0ZSBEcml2ZW48L2xpPg0KICA8cD5OdW1lcm91cyB0ZW1wbGF0ZXMgb2YgZWFjaCB0eXBlIGNhbiBiZSBkZWZpbmVkLCBkZWZhdWx0cyBzcGVjaWZpZWQgZm9yIGVhY2ggdHlwZSwgYW5kIHRoZSB0ZW1wbGF0ZSB1c2VkIGZvciBlYWNoIHBhcnRpY3VsYXIgdmlldyBjYW4gYmUgc3BlY2lmaWVkIGFzIGEgcGFyYW1ldGVyPC9wPg0KICA8bGk+U29ydGluZyBhbmQgcGFnaW5hdGlvbiBpbiB0aGUgc3VtbWFyeSB2aWV3PC9saT4NCiAgPGxpPlByb2R1Y3RzIGNhbiBleGlzdCBpbiBtdWx0aXBsZSBjYXRlZ29yaWVzPC9saT4NCiAgPGxpPk51bWVyb3VzIGN1c3RvbSBmaWVsZHMgY2FuIGJlIGRlZmluZWQsIGluY2x1ZGluZyBpbWFnZXM8L2xpPg0KICA8bGk+QXV0b21hdGljIHRodW1ibmFpbCBjcmVhdGlvbjwvbGk+DQogIDxsaT5BZG1pbiBkZWZpbmVkIGZpZWxkczwvbGk+DQogIDxsaT5Qcm9kdWN0IGF0dHJpYnV0ZXMgKGluY2x1ZGluZyBwcmljZSBhZGp1c3RtZW50KTwvbGk+DQogIDxsaT5XZWlnaHQgYW5kIHRheGFibGUgZmllbGRzIChmb3IgdXNlIGluIGUtY29tbWVyY2Ugc29sdXRpb25zKTwvbGk+DQogIDxsaT5Qcm9kdWN0cyBjYW4gaGF2ZSBhIHN0YXR1cyAocHVibGlzaGVkIG9yIGRyYWZ0KSBpbiBvcmRlciB0byBoaWRlIHByb2R1Y3RzIGZyb20gcHVibGljIGRpc3BsYXkgYXQgYW55IHRpbWU8L2xpPg0KICA8bGk+UHJldHR5IFVSTCBTdXBwb3J0PC9saT4NCiAgPGxpPjxzdHJvbmc+TW9yZS4uLjwvc3Ryb25nPjwvbGk+DQo8L3VsPg0KDQo8aDM+SG93IERvIEkgVXNlIEl0OjwvaDM+DQo8dWw+DQo8bGk+U2V0IHByZWZlcmVuY2VzPC9saT4NCjxwPlVzdWFsbHkgdGhpcyBpcyBqdXN0IGEgZm9ybWFsaXR5LiAgWW91IHNob3VsZCBzcGVjaWZ5IHlvdXIgZGVmYXVsdCB3ZWlnaHQgdW5pdHMsIGFuZCB5b3VyIGRlZmF1bHQgY3VycmVuY3kgc3ltYm9sIGZvciB5b3VyIGxvY2FsIGVudmlyb25tZW50LjwvcD4NCjxsaT5TZXR1cCB1c2VycyBhbmQgcGVybWlzc2lvbnM8L2xpPg0KPHA+VGhpcyBtb2R1bGUgdXNlcyB0aGUgJiMwMzk7TW9kaWZ5IFRlbXBsYXRlcyYjMDM5OyBwZXJtaXNzaW9uIHRvIGFsbG93IHVzZXJzIHRvIGJlIGFibGUgdG8gbW9kaWZ5IHRoZSB2YXJpb3VzIHRlbXBsYXRlcyB0aGF0IGNhbiBiZSB1c2VkIGJ5IHRoaXMgbW9kdWxlLiAgQXMgd2VsbCwgdGhlICYjMDM5O01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJiMwMzk7IHBlcm1pc3Npb24gaXMgbmVlZGVkIHRvIGJlIGFibGUgdG8gYWRqdXN0IHRoZSBtb2R1bGVzIHByZWZlcmVuY2VzLiAgSW4gb3JkZXIgdG8gaGF2ZSB0aGUgYWJpbGl0eSB0byBtb2RpZnkgZmllbGQgZGVmaW5pdGlvbnMsIGNhdGVnb3JpZXMsIG9yIHByb2R1Y3RzLCB5b3VyIHVzZXJzIHdpbGwgbmVlZCB0aGUgJiMwMzk7TW9kaWZ5IFByb2R1Y3RzJiMwMzk7IHBlcm1pc3Npb24uPC9wPg0KPGxpPihvcHRpb25hbCkgRGVmaW5lIG9uZSBvciBtb3JlIGNhdGVnb3JpZXM8L2xpPg0KPHA+VGhpcyBpcyBhbiBvcHRpb25hbCBzdGVwLCBidXQgeW91IHdpbGwgcHJvYmFibHkgd2FudCB0byBkbyB0aGlzIGVhcmx5IHRvIHByZXZlbnQgaGF2aW5nIHRvIGdvIGJhY2sgdG8gbW9kaWZ5IGVhY2ggYW5kIGV2ZXJ5IHByb2R1Y3QgbGF0ZXIuICBBZGRpbmcgYSBjYXRlZ29yeSBpcyBhcyBzaW1wbGUgYXMgY2xpY2tpbmcgb24gdGhlICYjMDM5O0NhdGVnb3JpZXMmIzAzOTsgdGFiIGluIHRoZSBQcm9kdWN0IE1hbmFnZXJzIGFkbWluIHNlY3Rpb24sIGFuZCBjbGlja2luZyAmIzAzOTtBZGQgQSBDYXRlZ29yeSYjMDM5Oy4gIEZyb20gdGhlcmUgeW91IHdpbGwgYmUgcHJvbXB0ZWQgZm9yIGEgY2F0ZWdvcnkgbmFtZS48L3A+DQo8bGk+KG9wdGlvbmFsKSBEZWZpbmUgb25lIG9yIG1vcmUgY3VzdG9tIGZpZWxkczwvbGk+DQo8cD5UaGlzIGlzIGFuIG9wdGlvbmFsIHN0ZXAuICBDdXN0b20gZmllbGRzIGFyZSBub3QgbmVlZGVkIGlmIHRoaXMgbW9kdWxlIHN1aXRzIHlvdSBleGFjdGx5IGFzIGl0IGlzLiAgSG93ZXZlciBpZiB5b3Ugd291bGQgbGlrZSB0byBzdG9yZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZvciBlYWNoIG9mIHlvdXIgcHJvZHVjdHMgeW91IGNhbiBjcmVhdGUgY3VzdG9tIGZpZWxkcy4gIENyZWF0aW5nIGN1c3RvbSBmaWVsZHMgaXMgc2ltaWxhciB0byBjcmVhdGluZyBjYXRlZ29yaWVzLCBleGNlcHQgdGhhdCBtb3JlIGRhdGEgaXMgcmVxdWVzdGVkLjwvcD4NCjxwPkN1cnJlbnRseSBzaXggdHlwZXMgb2YgY3VzdG9tIGZpZWxkcyBhcmUgYXZhaWxhYmxlOiAmIzAzOTt0ZXh0Ym94JiMwMzk7LCYjMDM5O2NoZWNrYm94JiMwMzk7LGFuZCAmIzAzOTt0ZXh0YXJlYSwgZHJvcGRvd24sIGFuZCBmaWxlJiMwMzk7LiAgU2VsZWN0IG9uZSBvZiB0aGVzZSwgZ2l2ZSB5b3VyIG5ldyBmaWVsZCBhIG5hbWUsIGFuZCBpbmRpY2F0ZSB3ZXRoZXIgdGhhdCBmaWVsZCBzaG91bGQgYmUgdmlzaWJsZSB0byB0aGUgcHVibGljIGluIHRoZSB2YXJpb3VzIHZpZXdzLiAgVGhlbiBoaXQgc3VibWl0PC9wPg0KPGxpPkNyZWF0ZSBvbmUgb3IgbW9yZSBwcm9kdWN0czwvbGk+DQo8cD5Zb3Ugc2hvdWxkIGNyZWF0ZSBvbmUgb3IgbW9yZSBwcm9kdWN0cyB0byBkaXNwbGF5IGluIHlvdXIgd2Vic2l0ZSBjb250ZW50LiAgR2l2ZSBlYWNoIHByb2R1Y3QgYSBuYW1lLCBhIHByaWNlIChvcHRpb25hbCkgYSB3ZWlnaHQgKG9wdGlvbmFsKSwgYSBzdGF0dXMgKGRyYWZ0IG9yIHB1Ymxpc2hlZCksIGFuZCBzb21lIGluZm9ybWF0aW9uLiAgQWRkaXRpb25hbGx5LCB5b3UgY2FuIGFsc28gc3BlY2lmeSBpZiB0aGUgcHJvZHVjdCBpcyB0YXhhYmxlLjwvcD4NCjxwPklmIGNhdGVnb3JpZXMgYXJlIGRlZmluZWQsIHRoZW4gYSBjaGVja2JveCB3aWxsIGFwcGVhciBmb3IgZWFjaCBkZWZpbmVkIGNhdGVnb3J5LiAgWW91IGNhbiBzaW1wbHkgY2xpY2sgdGhlIGNoZWNrYm94IGZpZWxkcyBmb3IgZWFjaCBjYXRlZ29yeSB0aGF0IHRoaXMgcHJvZHVjdCBzaG91bGQgYmVsb25nIHRvLjwvcD4NCjxwPklmIGN1c3RvbSBmaWVsZHMgYXJlIGRlZmluZWQsIHRoZW4gaW5wdXQgZmllbGRzIGFwcHJvcHJpYXRlIHRvIHRoZSB0eXBlIG9mIGN1c3RvbSBmaWVsZCB3aWxsIGFwcGVhciBhbmQgYWxsb3cgeW91IHRvIHNwZWNpZnkgZGF0YSBmb3IgZWFjaCBvZiB0aGVtLiAgVGhpcyBkYXRhIGlzIG9wdGlvbmFsLjwvcD4NCjxsaT5BZGQgdGhlIGFwcHJvcHJpYXRlIHRhZ3MgaW50byB5b3VyIHBhZ2UgdGVtcGxhdGVzIG9yIHBhZ2UgY29udGVudDwvbGk+DQo8cD5UaGlzIGNhbiBiZSBhcyBzaW1wbGUgYXMgYWRkaW5nIHRoZSA8c3Ryb25nPntQcm9kdWN0c308L3N0cm9uZz4gdGFnIGludG8gdGhlIGNvbnRlbnQgYXJlYSBvZiBvbmUgb2YgeW91ciBwYWdlcywgb3IgaW50byB5b3VyIHBhZ2UgdGVtcGxhdGUuPC9wPg0KPHA+SWYgeW91IHdpc2ggdG8gYWx0ZXIgdGhlIGJlaGF2aW91ciBvZiB0aGlzIGFwcGxpY2F0aW9uIGZyb20gaXRzIGRlZmF1bHQsIHlvdSBjYW4gZG8gdGhhdCBieSBhZGRpbmcgb25lIG9yIG1vcmUgcGFyYW1ldGVycyB0byB0aGUgPHN0cm9uZz57UHJvZHVjdHN9PC9zdHJvbmc+IHRhZy4gIFRoZSBjb21wbGV0ZSBsaXN0IG9mIHBhcmFtZXRlcnMgYW5kIHRoZWlyIGJlaGF2aW91ciBpcyBsaXN0ZWQgYmVsb3cuICBCdXQgZm9yIGV4YW1wbGUsIHRvIGRpc3BsYXkgYSBsaXN0IG9mIHByb2R1Y3RzIGluIGEgc2luZ2xlLCBleGlzdGluZyBjYXRlZ29yeSwgeW91IGNvdWxkIHVzZSBhIHRhZyBsaWtlIDxjb2RlPntQcm9kdWN0cyBjYXRlZ29yeT0mIzAzOTtjYXRlZ29yeW5hbWUmIzAzOTt9PC9jb2RlPjwvcD4NCjwvdWw+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gIEhvd2V2ZXIgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcyBvciB0byBmaWxlIGEgYnVnIHJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBjbXMgbWFkZSBzaW1wbGUgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+RGV2ZWxvcGVycyBGb3JnZTwvYT4gYW5kIGRvIGEgc2VhcmNoIGZvciAmIzAzOTtQcm9kdWN0cyYjMDM5OzwvbGk+DQo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+Um9iZXJ0IENhbXBiZWxsPC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ybXMuPC9hPjwvbGk+DQo8bGk+Rm9yIHNvbWUgcXVlc3Rpb25zIGFuZCBsaW1pdGVkIHRlY2huaWNhbCBzdXBwb3J0LCB0aGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8L3VsPic7CiRsYW5nWydoaWVyYXJjaHknXSA9ICdIaWVyYXJraSc7CiRsYW5nWydoaWVyYXJjaHlfcG9zaXRpb24nXSA9ICdIaWVyYXJraSBwb3NpdGlvbic7CiRsYW5nWydpZCddID0gJ0lEJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ0JpbGQnOwokbGFuZ1snaW1hZ2VfaGFuZGxpbmdfc2V0dGluZ3MnXSA9ICdCaWxkaGFudGVyaW5ncyBpbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1snaW1wb3J0X2Zyb21fY3N2J10gPSAnSW1wb3J0ZXJhIHByb2R1a3RlciBmciZhcmluZztuIENTVi1maWwnOwokbGFuZ1snaW5jaGVzJ10gPSAnVHVtJzsKJGxhbmdbJ2luY2x1ZGVfY2hpbGRyZW4nXSA9ICdJbmtsdWRlcmEgY2hpbGRyZW4/JzsKJGxhbmdbJ2luZm9fYWxudW1vbmx5J10gPSAnRW5kYXN0IGFsZmFudW1lcmlza2EgdGVja2VuLiBJbmdhIGJsYW5rc3RlZywgY2l0YXR0ZWNrZW4gZWxsZXIgaWNrZSBza3JpdmVsc2UgLyBudW1tZXIga29tYmluYXRpb25lcic7CiRsYW5nWydpbmZvX2F0dHJpYnRlbXBsYXRlJ10gPSAnTSZvdW1sO2psaWdhIHZhcmlhYmxlciAmYXVtbDtyOiB7JGF0dHJpYl90ZXh0fSx7JGF0dHJpYl9hZGp1c3R9LHskY3VycmVuY3lfc3ltYm9sfSc7CiRsYW5nWydpbmZvX2F1dG93YXRlcm1hcmsnXSA9ICdWYXR0ZW5zdCZhdW1sO21wZWxzIGluc3QmYXVtbDtsbG5pbmdhcm5hICZhdW1sO3IgaCZhdW1sO210YWRlIGZyJmFyaW5nO24gQ0dFeHRlbnNpb25zIE1vZHVsZSc7CiRsYW5nWydpbmZvX2JhdGNoc2l6ZSddID0gJ1NldCB0aGUgbnVtYmVyIG9mIGxpbmVzIHRvIHByb2Nlc3MgcGVyICZxdW90O2JhdGNoJnF1b3Q7LiAgQWZ0ZXIgYSBiYXRjaCBpcyBjb21wbGV0ZSwgdGhlIGltcG9ydGVyIHdpbGwgcmVkaXJlY3QsIGFuZCByZXN1bWUgb3BlcmF0aW9ucy4gIElmIHlvdSBhcmUgZXhwZXJpZW5jaW5nIG1lbW9yeSBlcnJvcnMsIG9yIHRpbWVvdXQgcHJvYmxlbXMgZHVlIHRvIGxhcmdlIGFtb3VudHMgb2YgcHJvY2Vzc2luZywgeW91IG1heSBuZWVkIHRvIGNvbnN1bHQgeW91ciBob3N0IHByb3ZpZGVyLCBvciByZWR1Y2UgdGhpcyBudW1iZXInOwokbGFuZ1snaW5mb19jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdEZXNzYSBwYXJhbWV0cmFyIGZpbm5zIHRpbGwgZGVuIHZhbGRhIGt1bmR2YWduc21vZHVsZW4gZnImYXJpbmc7biBwcm9kdWt0ZGV0YWxqIG9jaCBzYW1tYW5mYXR0bmluZyc7CiRsYW5nWydpbmZvX2NyZWF0ZWZpZWxkcyddID0gJ1NrYXBhIGF1dG9tYXRpc2t0IGV0dCBvayZhdW1sO250IHByb2R1a3RmJmF1bWw7bHQ/IDxlbT4gKERlIGtvbW1lciBhdHQgc2thcGFzIHNvbSB0ZXh0ZiZhdW1sO2x0KSA8LyBlbT4nOwokbGFuZ1snaW5mb19jcmVhdGVjYXRlZ29yaWVzJ10gPSAnQXV0b21hdGlza3Qgc2thcGEgcHJvZHVrdGthdGVnb3JpZXIgZiZvdW1sO3IgYXR0IG1hdGNoYSBkZW0gaSBDU1YtZmlsZW4sIG9tIGRldCBpbnRlIHJlZGFuIGZpbm5zJzsKJGxhbmdbJ2luZm9fY3JlYXRlaGllcmFyY2h5J10gPSAnQXV0b21hdGlza3Qgc2thcGEgcHJvZHVrdCBoaWVyYXJraWVyIGYmb3VtbDtyIGF0dCBtYXRjaGEgZGVtIGkgQ1NWLWZpbGVuIG9tIGRldCBpbnRlIHJlZGFuIGZpbm5zJzsKJGxhbmdbJ2luZm9fZGVjaW1hbF91bml0cyddID0gJ0RldHRhIHN5c3RlbSBmJm91bWw7cnN0JmFyaW5nO3IgKC4pIHNvbSBkZWNpbWFsdGVja2Vuc2VwYXJhdG9yLiBkdnM6IDxzdHJvbmc+NSwyNTwvc3Ryb25nPic7CiRsYW5nWydpbmZvX2RlbGltaXRlciddID0gJ0FuZ2Ugdmlsa2V0IHRlY2tlbiAoZWxsZXIgdGVja2VuKSBzb20gc2VwYXJlcmEgdmFyamUgZiZhdW1sO2x0JzsKJGxhbmdbJ2luZm9fZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdBbmdlIGh1ciBzeXN0ZW1ldCBza2EgaGFudGVyYSBlbiBwcm9kdWt0IHZpbGtldHMgbmFtbiByZWRhbiBmaW5ucyBpIENTVi1maWxlbic7CiRsYW5nWydpbmZvX2ZpZWxkZGVmc190YWInXSA9ICc8c3Ryb25nPk5vdGlzOiA8L3N0cm9uZz4gQWxsYSBmJmF1bWw7bHQgc29tIGRlZmluaWVyYXMgaCZhdW1sO3IgJmF1bWw7ciB0aWxsZyZhdW1sO25nbGlnYSBmJm91bWw7ciBhbGxhIHByb2R1a3Rlci4nOwokbGFuZ1snaW5mb19maWVsZHByb2JsZW1zJ10gPSAnUHJvYmxlbSB1cHBzdG9kIG4mYXVtbDtyIG1hbiBoYXIgYXR0IGcmb3VtbDtyYSBtZWQgZW4gZWxsZXIgZmxlcmEgZWduYSBmJmF1bWw7bHQuICZBcmluZzt0ZyZhdW1sO3JkZW4gJmF1bWw7ciBrbGFyLCBtZW4gZHUgYiZvdW1sO3IgdW5kZXJzJm91bWw7a2Egb2NoIHImYXVtbDt0dGEgdGlsbCBkZXNzYSBwcm9ibGVtJzsKJGxhbmdbJ2luZm9faGFuZGxlaW1hZ2VzJ10gPSAnVXBvbiBpbXBvcnQsIGlmIGFuIGltYWdlIGZpbGVuYW1lIGlzIGZvdW5kIGluIGEgZmllbGQgY29sdW1uLCBzaG91bGQgaXQgYmUgbW92ZWQgZnJvbSB0aGUgc291cmNlIGxvY2F0aW9uLCB3YXRlcm1hcmtlZCwgdGh1bWJuYWlsZWQsIGFuZCB0aGUgZmllbGQgdHlwZSBjaGFuZ2VkIHRvICZxdW90O2ltYWdlJnF1b3Q7JzsKJGxhbmdbJ2luZm9faW1hZ2VwYXRoJ10gPSAnViZhdW1sO2dlbiAoaSBmJm91bWw7cmgmYXJpbmc7bGxhbmRlIHRpbGwgaW5sYWdkYSBrYXRhbG9nZW4pIHZhciBiaWxkZXJuYSBzb20gYXZzZXMgaSBpbXBvcnRmaWxlbiwgZmlubnMnOwokbGFuZ1snaW5mb19pbXBvcnRfdGVzdF9wYXNzZWQnXSA9ICdBIGJyaWVmIHRlc3QgYXMgYmVlbiBwZXJmb3JtZWQgb24gdGhlIGlucHV0IGZpbGUgc3BlY2lmaWVkLCBhbmQgZXZlcnl0aGluZyBhcHBlYXJzIHRvIGJlIGNvcnJlY3QuPGJyLz5UaGlzIGlzIG5vIGluZGljYXRpb24gdGhhdCB0aGVyZSBhcmUgbm8gZXJyb3JzIGluIHRoZSBmaWxlLic7CiRsYW5nWydpbmZvX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdHaWx0aWdhIHYmYXVtbDtyZGVuICZhdW1sO3IgKy0qIy4jIyc7CiRsYW5nWydpbmZvX3Byb2Rub3Rmb3VuZCddID0gJ1RoaXMgb3B0aW9uIGRldGVybWluZXMgdGhlIGJlaGF2aW91ciBvZiB0aGUgd2Vic2l0ZSBpZiBhIHByb2R1Y3QgZGV0YWlsIHZpZXcgaXMgYWNjZXNzZWQgZGlyZWN0bHkgYnkgVVJMLCBhbmQgdGhhdCBwcm9kdWN0IGZvciB3aGF0ZXZlciByZWFzb24gKGRpc2FibGVkLCBkZWxldGVkLCBldGMpIGNhbm5vdCBiZSBhY2Nlc3NlZC4nOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gJ09mZmVudGxpZ2EgZiZhdW1sO2x0IHNvbSAmYXVtbDtyIHRpbGxnJmF1bWw7bmdsaWdhIGYmb3VtbDtyIGFsbG0mYXVtbDtuaGV0ZW4gYXR0IHNlJzsKJGxhbmdbJ2xhYmVsJ10gPSAnRXRpa2V0dCc7CiRsYW5nWydsYWJlbF9za2lwJ10gPSAnSG9wcGEgJm91bWw7dmVyJzsKJGxhbmdbJ2xhYmVsX292ZXJ3cml0ZSddID0gJ1Nrcml2ICZvdW1sO3Zlcic7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xhc3RfbW9kaWZpZWQnXSA9ICdTZW5hc3QgdXBwZGF0ZXJhZCc7CiRsYW5nWydsb2dvdGV4dCddID0gJ0FuZHJhIGJpbGQnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4aW1hbCBsJmF1bWw7bmdkIDxlbT4odGlsbCZhdW1sO21wYXMgZW5kYXN0IHAmYXJpbmc7IHRleHRydXRhbnMgb21yJmFyaW5nO2Rlbik8L2VtPic7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICcmQXVtbDtuZHJhdCBkYXR1bSc7CiRsYW5nWydtb2R1bGVfZGVzY3JpcHRpb24nXSA9ICdFbiBtb2R1bCBmJm91bWw7ciBhdHQgaGFudGVyYSBldHQgc29ydGltZW50IGF2IHByb2R1a3RlciwgZGVyYXMgcHJpcywgYmlsZGVyLCBldGMsIG9jaCBnJm91bWw7cmEgZGV0IG0mb3VtbDtqbGlndCBmJm91bWw7ciBhbnYmYXVtbDtuZGFyZSBhdHQgYnlnZ2EgZW4ga3VuZHZhZ24nOwokbGFuZ1snbW92ZV9kb3duJ10gPSAnRmx5dHRhIG5lcic7CiRsYW5nWydtb3ZlX3VwJ10gPSAnRmx5dHRhIHVwcCc7CiRsYW5nWyduYW1lJ10gPSAnUHJvZHVrdG5hbW4nOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdEdSBoYXIgaW50ZSByJmF1bWw7dHRpZ2hldGVyIGYmb3VtbDtyOiAlcyc7CiRsYW5nWyduZXdfY2F0ZWdvcnlfbmFtZSddID0gJ055dHQga2F0ZWdvcmluYW1uJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydubyddID0gJ05laic7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ0luZ2V0IHByb2R1a3RuYW1uIGhhciB1cHBnZXR0cyc7CiRsYW5nWydub25lJ10gPSAnSW5nZW4nOwokbGFuZ1snb2YnXSA9ICdBdic7CiRsYW5nWydwYWdlJ10gPSAnU2lkYSc7CiRsYW5nWydwYWdlX29mJ10gPSAnU2lkYSAlcyBvZiAlcyc7CiRsYW5nWydwYWdlX2xpbWl0J10gPSAnTWF4IGFudGFsIHNpZG9yJzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ1NwZWNpZnkgdGhlIGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPmhpZXJhcmNoeSAtLSBEaXNwbGF5IGEgcHJvZHVjdCBsaXN0IGJ5IGhpZXJhcmNoeTwvbGk+DQogIDxsaT5jYXRlZ29yeWxpc3QgLSBEaXNwbGF5IGEgbGlzdCBvZiBwcm9kdWN0IGNhdGVnb3JpZXM8L2xpPg0KICA8bGk+PGVtPmRlZmF1bHQ8L2VtPiAtIERpc3BsYXkgYSBzdW1tYXJ5IG9mIHByb2R1Y3RzPC9saT4NCiAgPGxpPmRldGFpbHMgLSBEaXNwbGF5IGEgZGV0YWlsIHZpZXcgb2YgYSBzaW5nbGUgcHJvZHVjdDwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ1doZW4gdXNlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyLCB3aGljaCBzaG91bGQgbWF0Y2ggdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgY2F0ZWdvcnkgd2lsbCBiZSB1c2VkIHRvIGRpc3BsYXkgb25seSB0aG9zZSBwcm9kdWN0cyB0aGF0IGFyZSBpbiB0aGF0IGNhdGVnb29yeS4gKGEgY29tbWEgc2VwZXJhdGVkIGxpc3QgY2FuIGJlIHN1cHBsaWVkKSc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJ0FudiZhdW1sO25kYmFyIGVuZGFzdCBtZWQga2F0ZWdvcmlsaXN0YW5zICZhcmluZzt0ZyZhdW1sO3JkZXIsIGRlbiBoJmF1bWw7ciBwYXJhbWV0ZXJuIGFuZ2VyIGRlbiBtYWxsIHNvbSBza2EgYW52JmF1bWw7bmRhcyBmJm91bWw7ciBodXIgbGlzdGFuIHNrYSB2aXNhcy4gT20gaW5nZXQgdiZhdW1sO3JkZSBhbmdlcyBrb21tZXIgZGVuIG51dmFyYW5kZSBzdGFuZGFyZG1hbGwgYXYgZGVubmEgdHlwIGFudiZhdW1sO25kYXMuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdGR0bHRlbXBsYXRlJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRpc3BsYXkgb2YgdGhlIGNhdGVnb3J5IGRldGFpbHMuICBUaGlzIHVzZXMgYSBjYXRlZ29yeSBsaXN0IHRlbXBsYXRlLi4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdEZXR0YSBhbmdlciBwYWdlaWQgZWxsZXIgYWxpYXMgc29tIGImb3VtbDtyIGFudiZhdW1sO25kYXMgZiZvdW1sO3IgYXR0IHZpc2EgZW4gZGV0YWxqIHJhcHBvcnQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnRGVuIGgmYXVtbDtyIHBhcmFtZXRlcm4gYW5nZXIgZGVuIG1hbGwgc29tIHNrYSBhbnYmYXVtbDtuZGFzIGYmb3VtbDtyIGh1ciBkZXRhbGotbCZhdW1sO2dlIHZpc2FzLiBPbSBpbmdldCB2JmF1bWw7cmRlIGFuZ2VzLCBkJmFyaW5nOyBrb21tZXIgZGVuIG51dmFyYW5kZSBzdGFuZGFyZG1hbGwgYXYgZGVubmEgdHlwIGF0dCBhbnYmYXVtbDtuZGFzLic7CiRsYW5nWydwYXJhbV9maWVsZCddID0gJ1VzZWQgb25seSBpbiB0aGUgPGVtPmZpZWxkbGlzdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgdG8gc3BlY2lmeSB0aGUgbmFtZSBvZiBhIHVzZXIgZGVmaW5lZCBwcm9wZXJ0eSB0byBjcmVhdGUgYSBsaXN0IGZyb20uJzsKJGxhbmdbJ3BhcmFtX2ZpZWxkdmFsJ10gPSAnVXNlZCBvbmx5IGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBmaWVsZCB2YWx1ZSB0byBsaW1pdCByZXN1bHRzIGJ5LiAgU3BlY2lhbCB2YWx1ZXMgZm9yIHRoaXMgZmllbGQgYXJlICZxdW90Ozo6bnVsbDo6JnF1b3Q7ICZxdW90Ozo6bm90bnVsbDo6JnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeSddID0gJ1VzZWZ1bCBvbmx5IGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgb25seSBpdGVtcyBpbiB0aGF0IGxvY2F0aW9uIG9mIHRoZSBoaWVyYXJjaHkgc2hvdWxkIGJlIGRpc3BsYXllZC4gIFdpbGRjYXJkIGNoYXJhY3RlciBjYW4gYmUgdXNlZCBzbyB0aGF0IHlvdSBjYW4gc3BlY2lmeSBwYXJlbnQvY2hpbGQgcmVsYXRpb25zaGlwcyBhcyB3ZWxsLiAgaS5lIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7dHJ1Y2tzKiYjMDM5O30gd2lsbCBjcmVhdGUgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBpbmNsdWRpbmcgdGhlIGNoaWxkcmVuIGluIHRoZSBoaWVyYXJjaHkuICBTaW1pbGFybHksIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7KnRydWNrcyYjMDM5O30gd2lsbCBkaXNwbGF5IGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgYW5kIGFsbCBwcm9kdWN0cyBiZWxvZ2luZyB0byBhbnkgcGFyZW50IGluIHRoZSBoaWVyYXJjaHkuJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeXRlbXBsYXRlJ10gPSAnRGVuIGgmYXVtbDtyIHBhcmFtZXRlcm4gYW5nZXIgZGVuIG1hbGwgc29tIHNrYSBhbnYmYXVtbDtuZGFzIGYmb3VtbDtyIGhpZXJhcmtpbiBkaXNwbGF5ZW4uIE9tIGluZ2V0IHYmYXVtbDtyZGUgYW5nZXMsIGQmYXJpbmc7IGtvbW1lciBkZW4gbnV2YXJhbmRlIHN0YW5kYXJkbWFsbCBhdiBkZW5uYSB0eXAgYXR0IGFudiZhdW1sO25kYXMuJzsKJGxhbmdbJ3BhcmFtX2lubGluZSddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGF0IHRoZSBvdXRwdXQgb2YgdGhlIHN1bW1hcnkgdmlldyBzaG91bGQgYmUgZGlzcGxheWVkIGlubGluZSc7CiRsYW5nWydwYXJhbV9wYWdlbGltaXQnXSA9ICdBbnYmYXVtbDtuZGJhciBlbmRhc3QgbWVkIDxlbT4gc3RhbmRhcmQgPC8gZW0+ICZhcmluZzt0ZyZhdW1sO3JkZXIsIGRlbm5hIHBhcmFtZXRlciBhbmdlciBodXIgbSZhcmluZztuZ2Egb2JqZWt0IHNrYSBhbmdlcyBwJmFyaW5nOyB2YXJqZSBzaWRhLic7CiRsYW5nWydwYXJhbV9wYXJlbnQnXSA9ICdBbnYmYXVtbDtuZGJhciBlbmRhc3QgaSA8ZW0+IGhpZXJhcmtpIDwvIGVtPiAmYXJpbmc7dGcmYXVtbDtyZGVyLCBkZW5uYSBwYXJhbWV0ZXIgYW5nZXIgaGllcmFya2luIGlkIGImb3VtbDtyamFucyBwbGF0cyBpIHJhcHBvcnRlbi4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGlkJ10gPSAnQW52JmF1bWw7bmRiYXIgZW5kYXN0IG1lZCBkZXRhbGogJmFyaW5nO3RnJmF1bWw7cmRlciwgZGVuIGgmYXVtbDtyIHBhcmFtZXRlcm4gYW5nZXIgdmlsa2VuIHByb2R1a3Qgc29tIHNrYSBhbnYmYXVtbDtuZGFzIGYmb3VtbDtyIHZpc25pbmcuJzsKJGxhbmdbJ3BhcmFtX3Jlc3VsdHBhZ2UnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCwgYW5kIGNhdGVnb3J5IGxpc3QgYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGEgcGFnZSBpZCBvciBhbGlhcyB0byB1c2UgdG8gZGlzcGxheSB0aGUgc3VtbWFyeSByZXN1bHRzJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZpZWxkJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBtYXkgY29udGFpbiBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGZpZWxkIG5hbWVzIHRvIGluY2x1ZGUgaW4gdGhlIHNlYXJjaCc7CiRsYW5nWydwYXJhbV9zZWFyY2hmb3JtdGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXNwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCBzZWFyY2ggZm9ybSB0ZW1wbGF0ZSc7CiRsYW5nWydwYXJhbV9zaG93YWxsJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uLCBpZiB0aGlzIHBhcmFtZXRlciBpcyBzZXQgdG8gYSBub24gMCBpbnRlZ2VyIHZhbHVlIGFsbCBjYXRlZ29yaWVzIChldmVuIHRob3NlIHdpdGhvdXQgcHJvZHVjdHMpIHdpbGwgYmUgZGlzcGxheWVkLic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcGVjaWZ5IHRoZSBvcmRlciBvZiBzb3J0ZWQgZmllbGRzIGluIHN1bW1hcnkgdmlldy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBBc2NlbmRpbmcgb3JkZXI8L2xpPg0KICA8bGk+ZGVzYyAtLSBEZXNjZW5kaW5nIG9yZGVyPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gJ0FwcGxpY2FibGUgb25seSBpbiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyIGRldGVybWluZXMgdGhlIHNvcnRpbmcgb2YgdGhlIG91dHB1dCBwcm9kdWN0cy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPnByb2R1Y3RfbmFtZTwvc3Ryb25nPjwvbGk+DQogIDxsaT5wcmljZSAtLSBUaGUgcHJvZHVjdCBiYXNlIHByaWNlPC9saT4NCiAgPGxpPnN0YXR1cyAtLSBEcmFmdCBvciBwdWJsaXNoZWQ8L2xpPg0KICA8bGk+cmFuZG9tIC0tIERpc3BsYXkgaW4gcmFuZG9tIG9yZGVyIG9uIGVhY2ggcmVxdWVzdDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnR0eXBlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IHN1bW1hcnkgdmlldywgdGhpcyBwYXJhbWV0ZXIgaXMgdXNlZCB0byBjb252ZXJ0IHRoZSB2YWx1ZXMgdG8gYW5vdGhlciB0eXBlIGZvciBzb3J0aW5nLiAgdmFsaWQgdmFsdWVzIGFyZSBTVFJJTkcsU0lHTkVEIGFuZCBVTlNJR05FRC4gIElmIG5vdCBzdXBwbGllZCB0aGUgZGVmYXVsdCBTVFJJTkcgdHlwZSBpcyBhc3N1bWVkLic7CiRsYW5nWydwYXJhbV9zdW1tYXJ5cGFnZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgYWN0aW9uPWhpZXJhcmNoeSwgYWxsb3dzIHNwZWNpZnlpbmcgYSBwYWdlIGlkIG9yIGFsaWFzIHRoYXQgd2lsbCBiZSB1c2VkIGZvciBhbnkgbGlua3MgdG8gc3VtbWphcnkgdmlldyc7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdEZW4gaCZhdW1sO3IgcGFyYW1ldGVybiBhbmdlciBkZW4gbWFsbCBzb20gc2thIGFudiZhdW1sO25kYXMgZiZvdW1sO3Igc2FtbWFuZmF0dG5pbmdzIGwmYXVtbDtnZS4gT20gaW5nZXQgdiZhdW1sO3JkZSBhbmdlcywgZCZhcmluZzsga29tbWVyIGRlbiBudXZhcmFuZGUgc3RhbmRhcmRtYWxsIGF2IGRlbm5hIHR5cCBhdHQgYW52JmF1bWw7bmRhcy4nOwokbGFuZ1sncGFyZW50J10gPSAnRiZvdW1sO3JlZyZhcmluZztlbmRlJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnUHJvZHVjdHMgbW9kdWxlbiAmYXVtbDtyIG51IGluc3RhbGxlcmFkJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdQcm9kdWN0cyBtb2R1bGVuICZhdW1sO3IgbnUgYm9ydHRhZ2VuIHNhbXQgYWxsIHRpbGxoJm91bWw7cmFuZGUgZGF0YSc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ0luc3QmYXVtbDtsbG5pbmdhcic7CiRsYW5nWydwcmV1bmluc3RhbGwnXSA9ICdHZW5vbSBhdHQgdGEgYm9ydCBkZW4gaCZhdW1sO3IgbW9kdWxlbiBzJmFyaW5nOyBrb21tZXIgb2NrcyZhcmluZzsgYXR0IGFsbCB0aWxsaCZvdW1sO3JhbmRlIGRhdGEgdGFzIGJvcnQsICZhdW1sO3IgZHUgcyZhdW1sO2tlciBwJmFyaW5nOyBhdHQgZHUgdmlsbCBmb3J0cyZhdW1sO3R0YT8nOwokbGFuZ1sncHJpY2UnXSA9ICdQcmlzJzsKJGxhbmdbJ3ByaWNlX2FkanVzdG1lbnQnXSA9ICdQcmlzanVzdGVyaW5nJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCc7CiRsYW5nWydwcm9kdWN0J10gPSAnUHJvZHVrdCc7CiRsYW5nWydwcm9kdWN0bmFtZSddID0gJ1Byb2R1a3RuYW1uJzsKJGxhbmdbJ3Byb2R1Y3RzJ10gPSAnUHJvZHVrdGVyJzsKJGxhbmdbJ3Byb2R1Y3RfZGV0YWlsX3NldHRpbmdzJ10gPSAnUHJvZHVrdCBEZXRhbGppbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1sncHJvZHVjdF9oaWVyYXJjaHknXSA9ICdQcm9kdWt0IEhpZXJhcmtpJzsKJGxhbmdbJ3Byb2R1Y3RfbWFuYWdlciddID0gJ1Byb2R1a3QgTWFuYWdlcic7CiRsYW5nWydwcm9ncmVzcyddID0gJ0ZyYW1zdGVnJzsKJGxhbmdbJ3Byb21wdCddID0gJ1VwcG1hbmEnOwokbGFuZ1sncHJvbXB0X2FkZF9hdHRyaWJzZXQnXSA9ICdMJmF1bWw7Z2cgdGlsbCAvIHJlZGlnZXJhIGF0dHJpYnV0dXBwcyZhdW1sO3R0bmluZyc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnXSA9ICdUaWxsJmFyaW5nO3QgYXR0IGxhZGRhIHVwcCBmaWxlciBtZWQgZGVzc2EgZiZvdW1sO3JsJmF1bWw7bmduaW5nYXIgKGYmb3VtbDtyIGZpbHR5cGVuIGYmYXVtbDtsdCknOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2V0eXBlcyddID0gJ1RpbGwmYXJpbmc7dCB1cHBsYWRkbmluZyBhdiBiaWxkZXIgbWVkIGRlc3NhIGZpbHQmYXVtbDtuZGVsc2VyKGYmb3VtbDtyIGJpbGRmJmF1bWw7bHRlbiknOwokbGFuZ1sncHJvbXB0X2F0dHJpYnRlbXBsYXRlJ10gPSAnTWFsbCBmJm91bWw7ciB2aXNuaW5nIGF2IHByb2R1a3RhdHRyaWJ1dGVyIGkgZW4gZHJvcGRvd24nOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWwnXSA9ICdBdXRvbWF0aXNrdCBza2FwYSB0dW1uYWdlbGJpbGQgKHRodW1ibmFpbCkgYXYgYmlsZGVyJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsX3NpemUnXSA9ICdNYXhpbWFsIHN0b3JsZWsgcCZhcmluZzsgdHVtbmFnZWxiaWxkICh0aHVtYm5haWwpJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZyddID0gJ0F1dG9tYXRpc2t0IHNrYXBhIGYmb3VtbDtyaGFuZHNncmFuc2tuaW5nc2JpbGRlciBhdiBiaWxkZXInOwokbGFuZ1sncHJvbXB0X2F1dG9wcmV2aWV3aW1nX3NpemUnXSA9ICdNYXhpbWFsIHN0b3JsZWsgcCZhcmluZzsgZiZvdW1sO3JoYW5kc2dyYW5za25pbmdzYmlsZCc7CiRsYW5nWydwcm9tcHRfYXV0b3dhdGVybWFyayddID0gJ0F1dG9tYXRpc2t0IHBsYWNlcmEgdmF0dGVubSZhdW1sO3JrZSBwJmFyaW5nOyBiaWxkZXInOwokbGFuZ1sncHJvbXB0X2FwcGxpY2FibGUnXSA9ICdBa3RpdmVyYSBhdXRvbWF0aXNrdCBmJm91bWw7ciBhbGxhIG55YSBwcm9kdWt0ZXInOwokbGFuZ1sncHJvbXB0X2JhdGNoc2l6ZSddID0gJ1BhcnRpc3Rvcmxlayc7CiRsYW5nWydwcm9tcHRfY2FydF9tb2R1bGUnXSA9ICdLdW5kdmFnbnNtb2R1bCc7CiRsYW5nWydwcm9tcHRfY2FydF9tb2R1bGVfcGFyYW1zJ10gPSAnUGFyYW1ldHJhciBmJm91bWw7ciBLdW5kdmFnbnNtb2R1bCc7CiRsYW5nWydwcm9tcHRfY3JlYXRlY2F0ZWdvcmllcyddID0gJ1NrYXBhIGthdGVnb3JpZXInOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWZpZWxkcyddID0gJ1NrYXBhIHByb2R1a3RmJmF1bWw7bHQ/JzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVoaWVyYXJjaHknXSA9ICdTa2FwYSBwcm9kdWt0aGlyYXJraSc7CiRsYW5nWydwcm9tcHRfY3N2ZmlsZSddID0gJ0xhZGRhIHVwcCBDU1YtZmlsJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeWNvZGUnXSA9ICdWYWx1dGFrb2QnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAnVmFsdXRhc3ltYm9sJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0X3N0YXR1cyddID0gJ1NvbSBzdGFuZGFyZCBoYXIgYWxsYSBueWEgcHJvZHVrdGVyIGRlbm5hIHN0YXR1cyc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF90YXhhYmxlJ10gPSAnU29tIHN0YW5kYXJkICZhdW1sO3IgYWxsYSBuIHlhIHByb2R1a3RlciBiZXNrYXR0bmluZ3NiYXJhJzsKJGxhbmdbJ3Byb21wdF9kZWxldGVwcm9kdWN0ZmlsZXMnXSA9ICdUYSBib3J0IGFsbGEgZmlsZXIgaSBzYW1iYW5kIG1lZCBwcm9kdWt0ZW4gbiZhdW1sO3IgcHJvZHVrdGVuIHNrYWxsIHJhZGVyYXM/JzsKJGxhbmdbJ3Byb21wdF9kZWxpbWl0ZXInXSA9ICdGJmF1bWw7bHQgYXZnciZhdW1sO25zYXJlJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnU3RhbmRhcmQgZGV0YWxqc2lkYSc7CiRsYW5nWydwcm9tcHRfZGV0YWlsc2ZvciddID0gJ0RldGFsamVyIGYmb3VtbDtyICVzJzsKJGxhbmdbJ3Byb21wdF9kdXBsaWNhdGVwcm9kdWN0cyddID0gJ0h1ciBtYW4gaGFudGVyYXIgZHVwbGlrYXQgcHJvZHVrdGVyPyc7CiRsYW5nWydwcm9tcHRfZmFsc2UnXSA9ICdGYWxzayc7CiRsYW5nWydwcm9tcHRfaGFuZGxlaW1hZ2VzJ10gPSAnSGFudGVyYSBiaWxkZXI/JzsKJGxhbmdbJ3Byb21wdF9pbWFnZXBhdGgnXSA9ICdCaWxkcyZvdW1sO2t2JmF1bWw7Zyc7CiRsYW5nWydwcm9tcHRfbGVuZ3RodW5pdHMnXSA9ICdMJmF1bWw7bmdkZW5oZXRlcic7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfYmVoYXZpb3InXSA9ICdWYWQgc2thIGgmYXVtbDtuZGEgbiZhdW1sO3IgZW4gcHJvZHVrdCBpbnRlIGthbiB2aXNhcz8nOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzQwNCddID0gJ0dlbmVyZXJhIGV0dCA0MDQtZmVsJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF8zMDEnXSA9ICdHZW5lcmVyYSBldHQgMzAxLW9tZGlyaWdlcmluZyc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfZXJyb3Jtc2cnXSA9ICdWaXNhIGV0dCBmZWxtZWRkZWxhbmRlJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9tc2cnXSA9ICdGZWxtZWRkZWxhbmRlIGYmb3VtbDtyIG4mYXVtbDtyIGVuIHByb2R1a3QgaW50ZSBrYW4gaGl0dGFzJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9wYWdlJ10gPSAnU2lkYSBhdHQgZyZvdW1sO3JhIHBlcm1hbmVudCBvbWRpcmlnZXJpbmcgdGlsbD8nOwokbGFuZ1sncHJvbXB0X3Byb2RfZGV0YWlscGFnZSddID0gJ1N0YW5kYXJkc2lkYSBmJm91bWw7ciBQcm9kdWt0IGRldGFsanZ5ZXInOwokbGFuZ1sncHJvbXB0X3Byb2R1Y3RzX21hdGNoaW5nJ10gPSAnUHJvZHVrdGVyIG1hdGNoYXIgJXMnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdTdGFuZGFyZCBzb3J0ZXJpbmdzb3JkbmluZyBpIHNhbW1hbmRyYWdzIGwmYXVtbDtnZSc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICdTdGFuZGFyZCBzb3J0ZXJpbmdzb3JkbmluZyBpIGYmYXVtbDtsdGVucyBzYW1tYW5kcmFncyBsJmF1bWw7Z2UnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnTWFsbGVucyBrJmF1bWw7bGxhJzsKJGxhbmdbJ3Byb21wdF90cnVlJ10gPSAnU2Fubic7CiRsYW5nWydwcm9tcHRfdXJscHJlZml4J10gPSAnUHJlZml4IGF0dCBhbnYmYXVtbDtuZGEgcCZhcmluZzsgYWxsYSB3ZWJiYWRyZXNzZXIgc29tICZhdW1sO3IgaW5yaWt0YWQgcCZhcmluZzsgZGVubmEgbW9kdWxlbic7CiRsYW5nWydwcm9tcHRfdXNlX2RldGFpbHBhZ2VfZm9yX3NlYXJjaCddID0gJ0FudiZhdW1sO25kIGRlbiBoJmF1bWw7ciBzaWRhbiBmJm91bWw7ciBzJm91bWw7a3Jlc3VsdGF0IGYmb3VtbDtyIDxlbT4gKCZhcmluZztzaWRvcyZhdW1sO3R0ZXIgcyZvdW1sO2tyZXN1bHRhdCBzaWRwYXJhbWV0ZXJuIGkgbW9kdWxlbikgPC8gZW0+JzsKJGxhbmdbJ3Byb21wdF91c2VoaWVycGF0aHVybHMnXSA9ICdVc2UgSGllcmFyY2h5IFBhdGggaW4gUHJvZHVjdCBEZXRhaWwgVVJMUyc7CiRsYW5nWydwcm9tcHRfd2VpZ2h0dW5pdHMnXSA9ICdWaWt0IGVuaGV0ZXInOwokbGFuZ1sncHVibGljJ10gPSAnJkF1bWw7ciBkZXR0YSBldHQgb2ZmZW50bGlndCBmJmF1bWw7bHQ/JzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ1B1YmxpY2VyYWQnOwokbGFuZ1sncmFuZG9tJ10gPSAnU2x1bXB2aXMnOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICcmQXJpbmc7dGVyc3QmYXVtbDtsbCB0aWxsIGZhYnJpa3NpbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1sncmV0dXJuJ10gPSAnJkFyaW5nO3RlcnYmYXVtbDtuZCc7CiRsYW5nWydyZXR1cm5fdG9fdG9wJ10gPSAnJkFyaW5nO3RlcnYmYXVtbDtuZCB0aWxsIHRvcHBlbic7CiRsYW5nWydyb290J10gPSAnUk9PVCc7CiRsYW5nWydzZWFyY2hfZGVzY3JpcHRpb24nXSA9ICdTZWFyY2ggUHJvcGVydHkgRGVzY3JpcHRpb24nOwokbGFuZ1snc2VhcmNoX2V4cHInXSA9ICdTa2EgZnImYXJpbmc7Z2FuIG1hdGNoYSBhbGxhIGVsbGVyIG4mYXJpbmc7Z29uIGF2IHRlc3RlbiBuZWRhbj8nOwokbGFuZ1snc2VhcmNoX25hbWUnXSA9ICdTZWFyY2ggUHJvcGVydHkgTmFtZSc7CiRsYW5nWydzZWFyY2hfcHJpY2UnXSA9ICdQcmlzaW50ZXJ2YWxsJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMJmF1bWw7Z2cgdGlsbCAvIHJlZGlnZXJhIFMmb3VtbDtrIGZvcm11bCZhdW1sO3JzbWFsbCc7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZXMnXSA9ICdTJm91bWw7ayBtYWxsJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdWJmF1bWw7bGogZW4nOwokbGFuZ1snc2t1J10gPSAnU0tVJzsKJGxhbmdbJ3NvcnRfYnknXSA9ICdTb3J0ZXJhJzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdTb3J0ZXJpbmdzb3JkZXInOwokbGFuZ1snc3RhdHVzJ10gPSAnU3RhdHVzICc7CiRsYW5nWydzdWJtaXQnXSA9ICdTcGFyYSc7CiRsYW5nWydzdWJzY3JpcHRpb24nXSA9ICdTdWJzY3JpcHRpb24nOwokbGFuZ1snc3Vic2NyX2V4cGlyeSddID0gJ0V4cGlyeSc7CiRsYW5nWydzdWJzY3JfZXhwaXJ5MiddID0gJ0V4cGlyZXMnOwokbGFuZ1snc3Vic2NyX21vbnRobHknXSA9ICdNb250aGx5JzsKJGxhbmdbJ3N1YnNjcl9kZWxwZXJpb2QnXSA9ICdEZWxpdmVyeSBGcmVxdWVuY3knOwokbGFuZ1snc3Vic2NyX2RlbHBlcmlvZDInXSA9ICdMZXZlcmVyYWQnOwokbGFuZ1snc3Vic2NyX3BheXBlcmlvZCddID0gJ1BheW1lbnQgRnJlcXVlbmN5JzsKJGxhbmdbJ3N1YnNjcl9wYXlwZXJpb2QyJ10gPSAnQmV0YWxkJzsKJGxhbmdbJ3N1YnNjcl9xdWFydGVybHknXSA9ICdRdWFydGVybHknOwokbGFuZ1snc3Vic2NyX3NlbWlhbnVhbGx5J10gPSAnU2VtaSBBbnVhbGx5JzsKJGxhbmdbJ3N1YnNjcl95ZWFybHknXSA9ICcmQXJpbmc7cmxpZyc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVzJ10gPSAnU3VtbWVyaW5nc21hbGxhcic7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0wmYXVtbDtnZyB0aWxsL3JlZGlnZXJhIGVuIHN1bW1lcmluZ3NtYWxsJzsKJGxhbmdbJ3RheGFibGUnXSA9ICdCZXNrYXR0bmluZ3NiYXJhJzsKJGxhbmdbJ3Rlc3QnXSA9ICdUZXN0ICc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ1RleHQtQXJlYSc7CiRsYW5nWyd0ZXh0Ym94J10gPSAnVGV4dC1JbnB1dCc7CiRsYW5nWyd0aXRsZV9ieWhpZXJhcmNoeV9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZGhpZXJhcmtpbWFsbCc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhcmRrYXRlZ29yaW1hbGwnOwokbGFuZ1sndGl0bGVfZGV0YWlsX2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkZGV0YWxqbWFsbCc7CiRsYW5nWyd0aXRsZV9zZWFyY2hfZGZsdHRlbXBsYXRlJ10gPSAnTnkgc3RhbmRhcmQgcyZvdW1sO2ttYWxsJzsKJGxhbmdbJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhcmRzYW1tYW5mYXR0bmluZ3NtYWxsJzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXAnOwokbGFuZ1sndXBkYXRlJ10gPSAnVXBwZGF0ZXJhJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1YmYXVtbDtsaiBlbiBmaWwgc29tIHNrYSBsYWRkYXMgdXBwJzsKJGxhbmdbJ3VybF9hbGlhcyddID0gJ1VybCBBbGlhcyc7CiRsYW5nWyd2YWxpZCddID0gJ0dpbHRpZyc7CiRsYW5nWyd2YWx1ZSddID0gJ1YmYXVtbDtyZGUnOwokbGFuZ1sndmFsdWVzJ10gPSAnViZhdW1sO3JkZW4nOwokbGFuZ1sndmlldyddID0gJ0dyYW5za2EnOwokbGFuZ1sndmlld2FibGVfZmllbGRzJ10gPSAnViZhdW1sO2xqIGFucGFzc2FkZSBmJmF1bWw7bHQgZiZvdW1sO3IgYXR0IHZpc2EgaSB0YWJlbGxlbic7CiRsYW5nWyd3YXRlcm1hcmtfbG9jYXRpb24nXSA9ICdWYXR0ZW5tJmF1bWw7cmtldHMgcGxhY2VyaW5nJzsKJGxhbmdbJ3dlaWdodCddID0gJ1Zpa3QnOwokbGFuZ1sneWVzJ10gPSAnSmE/JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuNjIyNjEzMjkwLjEyODIwNjg4MDEuMTI4NTYxODYyOC4xMjg1NjIxMzcwLjE5JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTI4NDY1MjMxNC4xNC40LnV0bWNzcj1mZWVkYnVybmVyfHV0bWNjbj1GZWVkOiBjbXNtYWRlc2ltcGxlL2Jsb2cgKENNUyBNYWRlIFNpbXBsZSl8dXRtY21kPWZlZWQnOwokbGFuZ1sncWNhJ10gPSAnUDAtMTI2NzIxODM2OC0xMjgyMDY4ODAxNzg4JzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1My4yLjEwLjEyODU2MjEzNzAnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/tr_TR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZCddID0gJ0VrbGUnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdLYXRlZ29yaSBFa2xlJzsKJGxhbmdbJ2FkZGZpZWxkZGVmJ10gPSAnQWxhbiBFa2xlJzsKJGxhbmdbJ2FkanVzdGFibGUnXSA9ICdVeWFybGFuYWJpbGlyJzsKJGxhbmdbJ2FkZHByb2R1Y3QnXSA9ICcmVXVtbDtyJnV1bWw7biBFa2xlJzsKJGxhbmdbJ2FkZF9hdHRyaWJfc2V0J10gPSAnTml0ZWxpayBFa2xlJzsKJGxhbmdbJ2FkZF9jYXRlZ29yeV9maWVsZCddID0gJ0Fzc29jaWF0ZSBGaWVsZCB3aXRoIENhdGVnb3J5OiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydhZGRfaGllcmFyY2h5X2l0ZW0nXSA9ICdBZGQgSGllcmFyY2h5IEl0ZW0nOwokbGFuZ1snYWRkX29wdGlvbiddID0gJ0FkZCBBdHRyaWJ1dGUgT3B0aW9uJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdDYW4gb25seSBhZG1pbnMgc2VlIHRoaXMgYXR0cmlidXRlPyc7CiRsYW5nWydhbGlnbl91bCddID0gJyZVdW1sO3N0IFNvbCc7CiRsYW5nWydhbGlnbl91YyddID0gJyZVdW1sO3N0IE9ydGEnOwokbGFuZ1snYWxpZ25fdXInXSA9ICcmVXVtbDtzdCBTYcSfJzsKJGxhbmdbJ2FsaWduX21sJ10gPSAnT3J0YSBTb2wnOwokbGFuZ1snYWxpZ25fbWMnXSA9ICdPcnRhJzsKJGxhbmdbJ2FsaWduX21yJ10gPSAnT3J0YSBTYcSfJzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnQWx0IFNvbCc7CiRsYW5nWydhbGlnbl9sYyddID0gJ0FsdCBPcnRhJzsKJGxhbmdbJ2FsaWduX2xyJ10gPSAnQWx0IFNhxJ8nOwokbGFuZ1snYWxsY2F0ZWdvcmllcyddID0gJ1QmdXVtbDttIEthdGVnb3JpbGVyJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdBcmUgWW91IFN1cmU/JzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlcHJvZHVjdCddID0gJ0FyZSB5b3Ugc3VyZSB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgcHJvZHVjdCwgYW5kIGFsbCBvZiB0aGUgYWNjb21wYW55aW5nIGluZm9ybWF0aW9uIGZvciBpdD8nOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAnQXNjZW5kaW5nJzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnQXR0cmlidXRlIE5hbWUnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGljJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVzJ10gPSAnSGllcmFyY2h5IFJlcG9ydCBUZW1wbGF0ZXMnOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgSGllcmFyY2h5IFJlcG9ydCBUZW1wbGF0ZSc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWwnOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0NhdGVnb3JpZXMnOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdDYXRlZ29yeSc7CiRsYW5nWydjYXRlZ29yeWV4aXN0cyddID0gJ0EgY2F0ZWdvcnkgYnkgdGhhdCBuYW1lIGFscmVhZHkgZXhpc3RzJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0NhdGVnb3J5TGlzdCBUZW1wbGF0ZXMnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IEEgQ2F0ZWdvcnlMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnQ2hlY2tib3gnOwokbGFuZ1snY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm9kZT8gIEFueSBwcm9kdWN0cyB0aGF0IGFyZSB1c2luZyB0aGlzIG5vZGUgd2lsbCBiZSBzZXQgdG8gbm8gaGllcmFyY2h5JzsKJGxhbmdbJ2NvbmZpcm1faW1wb3J0J10gPSAnQXJlIHlvdSBzdXJlIHlvdSByZWFsbHkgd2FudCB0byBkbyB0aGlzP1xuXG5JbXByb3BlciBzZXR0aW5ncywgb3IgYW4gaW52YWxpZCBjb25maWcgZmlsZSBjb3VsZCBjb21wbGV0ZWx5IGNvcnJ1cHQgYSBjdXJyZW50bHkgdmFsaWQgYW5kIHdvcmtpbmcgc3lzdGVtLic7CiRsYW5nWydjb3B5J10gPSAnQ29weSc7CiRsYW5nWydjb3B5X2NhdGVnb3J5J10gPSAnQ29weSBDYXRlZ29yeSc7CiRsYW5nWydjcmVhdGVkZGF0ZSddID0gJ0NyZWF0ZWQgRGF0ZSc7CiRsYW5nWydjdXJyZW50X3ZhbHVlJ10gPSAnQ3VycmVudCBWYWx1ZSc7CiRsYW5nWydkYXRhJ10gPSAnRGF0YSc7CiRsYW5nWydkZWZhdWx0J10gPSAnRGVmYXVsdCc7CiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAnRGVmYXVsdCBUZW1wbGF0ZXMnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZSBjb250ZW50cyBvZiB0aGVzZSB0ZXh0IGFyZWFzIGFyZSB1c2VkIHRvIGRldGVybWluZSB0aGUgZGVmYXVsdCBjb250ZW50IG9mIHRlbXBsYXRlcyB3aGVuIHlvdSBjbGljayAmcXVvdDtBZGQgVGVtcGxhdGUmcXVvdDsgaW4gdGhlIGFwcHJvcHJpYXRlIHRlbXBsYXRlIHRhYi4gIEVkaXRpbmcgb25lIG9mIHRoZXNlIHRleHQgYXJlYXMgd2lsbCBoYXZlIG5vIGltbWVkaWF0ZSBlZmZlY3Qgb24geW91ciB3ZWJzaXRlLic7CiRsYW5nWydkZWxldGUnXSA9ICdEZWxldGUnOwokbGFuZ1snZGVsZXRlX2F0dHJpYnNldCddID0gJ0RlbGV0ZSBBdHRyaWJ1dGUnOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAnRGVsZXRlIEhpZXJhcmNoeSBJdGVtJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdEZXNjZW5kaW5nJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnRGVzY3JpcHRpb24nOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFpbHMnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAnRGV0YWlsIFRlbXBsYXRlcyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgQSBEZXRhaWwgVGVtcGxhdGUnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdEaXNhYmxlZCc7CiRsYW5nWydkcmFmdCddID0gJ0RyYWZ0JzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24nOwokbGFuZ1snZHJvcGRvd25fb3B0aW9ucyddID0gJ0Ryb3Bkb3duIE9wdGlvbnMgPGVtPihhcHBsaWNhYmxlIG9ubHkgZm9yIGRyb3Bkb3duIGZpZWxkcyk8L2VtPjxici8+PGJyLz48ZW0+KG9uZSBlbnRyeSBwZXIgbGluZSk8L2VtPic7CiRsYW5nWydlZGl0J10gPSAnRWRpdCc7CiRsYW5nWydlZGl0X2F0dHJpYnNldCddID0gJ0VkaXQgQXR0cmlidXRlJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0cyddID0gJ0VkaXQgQXR0cmlidXRlIFNldHMnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzX2ZvciddID0gJ0VkaXQgQXR0cmlidXRlIFNldHMgRm9yJzsKJGxhbmdbJ2VkaXRfYXR0cmlidXRlcyddID0gJ0VkaXQgQXR0cmlidXRlcyc7CiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAnRWRpdCBDYXRlZ29yeSc7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ0VkaXQgQ2F0ZWdvcnkgRmllbGRzJzsKJGxhbmdbJ2VkaXRfaGllcmFyY2h5X2l0ZW0nXSA9ICdFZGl0IEhpZXJhcmNoeSBJdGVtJzsKJGxhbmdbJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnXSA9ICdBbiBhdHRyaWJ1dGUgd2l0aCB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snZXJyb3JfZmllbGR2YWx1ZV9lbXB0eSddID0gJ1RoZSBGaWVsZCBWYWx1ZSBjYW5ub3QgYmUgZW1wdHknOwokbGFuZ1snZXJyb3JfZmlsZWZvcm1hdCddID0gJ0ZpbGUgRm9ybWF0IFByb2JsZW0nOwokbGFuZ1snZXJyb3JfZmlsZW5vdGZvdW5kJ10gPSAnRmlsZSBOb3QgRm91bmQnOwokbGFuZ1snZXJyb3JfZmlsZW9wZW4nXSA9ICdQcm9ibGVtIG9wZW5pbmcgZmlsZSAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnSW52YWxpZCBQYXJlbnQgKGEgaGllcmFyY2h5IG5vZGUgY2Fubm90IGJlIGl0JiMwMzk7cyBvd24gcGFyZW50KSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX25hbWUnXSA9ICdUaGUgY3VzdG9tIGZpZWxkIHZhbHVlIGVudGVyZWQgaXMgaW52YWxpZCAoY29udGFpbnMgbm9uIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzKSc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdBIHJlcXVpcmVkIHBhcmFtZXRlciBpcyBtaXNzaW5nIG9yIGludmFsaWQnOwokbGFuZ1snZXJyb3JfbmFtZXVzZWQnXSA9ICdBbiBpdGVtIGJ5IHRoYXQgbmFtZSBpcyBhbHJlYWR5IGluIHVzZSc7CiRsYW5nWydlcnJvcl9ub2ZpZWxkdHlwZSddID0gJ1BsZWFzZSBzZWxlY3QgYSBmaWVsZCB0eXBlJzsKJGxhbmdbJ2Vycm9yX25vbmFtZSddID0gJ1lvdSBtdXN0IHN1cHBseSBhIG5hbWUnOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbmRlbmllZCddID0gJ1Blcm1pc3Npb24gRGVuaWVkJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdBIHByb2R1Y3QgYnkgdGhhdCBuYW1lIGFscmVhZHkgZXhpc3RzJzsKJGxhbmdbJ2Vycm9yX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdJbnZhbGlkIHByaWNlIGFkanVzdG1lbnQgdmFsdWUgZm9yIGl0ZW0gJXMnOwokbGFuZ1snZXJyb3JfdXBsb2FkX2ZhaWxlZCddID0gJ1VwbG9hZCBmYWlsZWQ6ICVzJzsKJGxhbmdbJ2V4dHJhMSddID0gJ0V4dHJhIEZpZWxkIDEnOwokbGFuZ1snZXh0cmEyJ10gPSAnRXh0cmEgRmllbGQgMic7CiRsYW5nWydmaWVsZCddID0gJ0ZpZWxkJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRmllbGQgRGVmaW5pdGlvbic7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdGaWVsZCBEZWZpbml0aW9ucyc7CiRsYW5nWydmaWxlJ10gPSAnRmlsZSc7CiRsYW5nWydmaWx0ZXJzJ10gPSAnRmlsdGVycyc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICc8PCc7CiRsYW5nWydnZW5lcmFsX3NldHRpbmdzJ10gPSAnR2VuZXJhbCBTZXR0aW5ncyc7CiRsYW5nWydnbyddID0gJ0dvJzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBkb2VzIHRoaXMgZG8/PC9oMz4NCjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgd2F5IHRvIGNvbGxlY3QsIG9yZ2FuaXplLCBhbmQgZGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCBwcm9kdWN0cyBhbmQgdGhlaXIgY2F0ZWdvcmllcy4gIFRoaXMgbW9kdWxlIGNhbiBzdGFuZCBvbiBpdHMgb3duLCBvciBiZSBwYXJ0IG9mIGFuIGUtY29tbWVyY2Ugc29sdXRpb24gaWYgeW91IHdpc2guICBUaGUgbW9kdWxlIHN1cHBvcnRzIGEgcHJvZHVjdCBleGlzdGluZyBpbiBtb3JlIHRoYW4gb25lIGNhdGVnb3J5LCBzdXBwb3J0cyBwcm9kdWN0IHdlaWdodCwgcHJpY2UsIGFuZCBhdHRyaWJ1dGUgc2V0cy4gIEVhY2ggaXRlbSBpbiBhbiBhdHRyaWJ1dGUgc2V0IGNhbiBoYXZlIGEgcHJpY2UgYWRqdXN0bWVudC4gIEFsc28gYSBnbG9iYWwgZmxhZyBpbmRpY2F0ZXMgd2V0aGVyIHRoZSBwcm9kdWN0IGlzICYjMDM5O3RheGFibGUmIzAzOTsgb3Igbm90LjwvcD4NCiAgPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgZm9yIHVwIHRvIHR3byBpbWFnZXMgcGVyIHByb2R1Y3QsIGN1c3RvbSBmaWVsZCBkZWZpbml0aW9ucywgYW5kIGZvciB0aGUgYWJpbGl0eSB0byBkZXNjcmltaW5hdGUgcHJpdmF0ZSBmcm9tIHB1YmxpYyBkYXRhLjwvcD4NCjxoMz5GZWF0dXJlczo8L2gzPg0KPHVsPg0KICA8bGk+TnVtZXJvdXMgVmlld3M8L2xpPg0KICAgIDx1bD4NCiAgICAgIDxsaT5TdW1tYXJ5IHZpZXc8L2xpPg0KICAgICAgPGxpPkNhdGVnb3J5IExpc3QgVmlldzwvbGk+DQogICAgICA8bGk+RGV0YWlsIHZpZXc8L2xpPiANCiAgICAgIDxsaT5IaWVyYXJjaHkgRHJpbGwtZG93biBWaWV3PC9saT4NCiAgICA8L3VsPg0KICA8bGk+RW50aXJlbHkgRGF0YWJhc2UgVGVtcGxhdGUgRHJpdmVuPC9saT4NCiAgPHA+TnVtZXJvdXMgdGVtcGxhdGVzIG9mIGVhY2ggdHlwZSBjYW4gYmUgZGVmaW5lZCwgZGVmYXVsdHMgc3BlY2lmaWVkIGZvciBlYWNoIHR5cGUsIGFuZCB0aGUgdGVtcGxhdGUgdXNlZCBmb3IgZWFjaCBwYXJ0aWN1bGFyIHZpZXcgY2FuIGJlIHNwZWNpZmllZCBhcyBhIHBhcmFtZXRlcjwvcD4NCiAgPGxpPlNvcnRpbmcgYW5kIHBhZ2luYXRpb24gaW4gdGhlIHN1bW1hcnkgdmlldzwvbGk+DQogIDxsaT5Qcm9kdWN0cyBjYW4gZXhpc3QgaW4gbXVsdGlwbGUgY2F0ZWdvcmllczwvbGk+DQogIDxsaT5OdW1lcm91cyBjdXN0b20gZmllbGRzIGNhbiBiZSBkZWZpbmVkLCBpbmNsdWRpbmcgaW1hZ2VzPC9saT4NCiAgPGxpPkF1dG9tYXRpYyB0aHVtYm5haWwgY3JlYXRpb248L2xpPg0KICA8bGk+QWRtaW4gZGVmaW5lZCBmaWVsZHM8L2xpPg0KICA8bGk+UHJvZHVjdCBhdHRyaWJ1dGVzIChpbmNsdWRpbmcgcHJpY2UgYWRqdXN0bWVudCk8L2xpPg0KICA8bGk+V2VpZ2h0IGFuZCB0YXhhYmxlIGZpZWxkcyAoZm9yIHVzZSBpbiBlLWNvbW1lcmNlIHNvbHV0aW9ucyk8L2xpPg0KICA8bGk+UHJvZHVjdHMgY2FuIGhhdmUgYSBzdGF0dXMgKHB1Ymxpc2hlZCBvciBkcmFmdCkgaW4gb3JkZXIgdG8gaGlkZSBwcm9kdWN0cyBmcm9tIHB1YmxpYyBkaXNwbGF5IGF0IGFueSB0aW1lPC9saT4NCiAgPGxpPlByZXR0eSBVUkwgU3VwcG9ydDwvbGk+DQogIDxsaT48c3Ryb25nPk1vcmUuLi48L3N0cm9uZz48L2xpPg0KPC91bD4NCg0KPGgzPkhvdyBEbyBJIFVzZSBJdDo8L2gzPg0KPHVsPg0KPGxpPlNldCBwcmVmZXJlbmNlczwvbGk+DQo8cD5Vc3VhbGx5IHRoaXMgaXMganVzdCBhIGZvcm1hbGl0eS4gIFlvdSBzaG91bGQgc3BlY2lmeSB5b3VyIGRlZmF1bHQgd2VpZ2h0IHVuaXRzLCBhbmQgeW91ciBkZWZhdWx0IGN1cnJlbmN5IHN5bWJvbCBmb3IgeW91ciBsb2NhbCBlbnZpcm9ubWVudC48L3A+DQo8bGk+U2V0dXAgdXNlcnMgYW5kIHBlcm1pc3Npb25zPC9saT4NCjxwPlRoaXMgbW9kdWxlIHVzZXMgdGhlICYjMDM5O01vZGlmeSBUZW1wbGF0ZXMmIzAzOTsgcGVybWlzc2lvbiB0byBhbGxvdyB1c2VycyB0byBiZSBhYmxlIHRvIG1vZGlmeSB0aGUgdmFyaW91cyB0ZW1wbGF0ZXMgdGhhdCBjYW4gYmUgdXNlZCBieSB0aGlzIG1vZHVsZS4gIEFzIHdlbGwsIHRoZSAmIzAzOTtNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcyYjMDM5OyBwZXJtaXNzaW9uIGlzIG5lZWRlZCB0byBiZSBhYmxlIHRvIGFkanVzdCB0aGUgbW9kdWxlcyBwcmVmZXJlbmNlcy4gIEluIG9yZGVyIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbW9kaWZ5IGZpZWxkIGRlZmluaXRpb25zLCBjYXRlZ29yaWVzLCBvciBwcm9kdWN0cywgeW91ciB1c2VycyB3aWxsIG5lZWQgdGhlICYjMDM5O01vZGlmeSBQcm9kdWN0cyYjMDM5OyBwZXJtaXNzaW9uLjwvcD4NCjxsaT4ob3B0aW9uYWwpIERlZmluZSBvbmUgb3IgbW9yZSBjYXRlZ29yaWVzPC9saT4NCjxwPlRoaXMgaXMgYW4gb3B0aW9uYWwgc3RlcCwgYnV0IHlvdSB3aWxsIHByb2JhYmx5IHdhbnQgdG8gZG8gdGhpcyBlYXJseSB0byBwcmV2ZW50IGhhdmluZyB0byBnbyBiYWNrIHRvIG1vZGlmeSBlYWNoIGFuZCBldmVyeSBwcm9kdWN0IGxhdGVyLiAgQWRkaW5nIGEgY2F0ZWdvcnkgaXMgYXMgc2ltcGxlIGFzIGNsaWNraW5nIG9uIHRoZSAmIzAzOTtDYXRlZ29yaWVzJiMwMzk7IHRhYiBpbiB0aGUgUHJvZHVjdCBNYW5hZ2VycyBhZG1pbiBzZWN0aW9uLCBhbmQgY2xpY2tpbmcgJiMwMzk7QWRkIEEgQ2F0ZWdvcnkmIzAzOTsuICBGcm9tIHRoZXJlIHlvdSB3aWxsIGJlIHByb21wdGVkIGZvciBhIGNhdGVnb3J5IG5hbWUuPC9wPg0KPGxpPihvcHRpb25hbCkgRGVmaW5lIG9uZSBvciBtb3JlIGN1c3RvbSBmaWVsZHM8L2xpPg0KPHA+VGhpcyBpcyBhbiBvcHRpb25hbCBzdGVwLiAgQ3VzdG9tIGZpZWxkcyBhcmUgbm90IG5lZWRlZCBpZiB0aGlzIG1vZHVsZSBzdWl0cyB5b3UgZXhhY3RseSBhcyBpdCBpcy4gIEhvd2V2ZXIgaWYgeW91IHdvdWxkIGxpa2UgdG8gc3RvcmUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBmb3IgZWFjaCBvZiB5b3VyIHByb2R1Y3RzIHlvdSBjYW4gY3JlYXRlIGN1c3RvbSBmaWVsZHMuICBDcmVhdGluZyBjdXN0b20gZmllbGRzIGlzIHNpbWlsYXIgdG8gY3JlYXRpbmcgY2F0ZWdvcmllcywgZXhjZXB0IHRoYXQgbW9yZSBkYXRhIGlzIHJlcXVlc3RlZC48L3A+DQo8cD5DdXJyZW50bHkgc2l4IHR5cGVzIG9mIGN1c3RvbSBmaWVsZHMgYXJlIGF2YWlsYWJsZTogJiMwMzk7dGV4dGJveCYjMDM5OywmIzAzOTtjaGVja2JveCYjMDM5OyxhbmQgJiMwMzk7dGV4dGFyZWEsIGRyb3Bkb3duLCBhbmQgZmlsZSYjMDM5Oy4gIFNlbGVjdCBvbmUgb2YgdGhlc2UsIGdpdmUgeW91ciBuZXcgZmllbGQgYSBuYW1lLCBhbmQgaW5kaWNhdGUgd2V0aGVyIHRoYXQgZmllbGQgc2hvdWxkIGJlIHZpc2libGUgdG8gdGhlIHB1YmxpYyBpbiB0aGUgdmFyaW91cyB2aWV3cy4gIFRoZW4gaGl0IHN1Ym1pdDwvcD4NCjxsaT5DcmVhdGUgb25lIG9yIG1vcmUgcHJvZHVjdHM8L2xpPg0KPHA+WW91IHNob3VsZCBjcmVhdGUgb25lIG9yIG1vcmUgcHJvZHVjdHMgdG8gZGlzcGxheSBpbiB5b3VyIHdlYnNpdGUgY29udGVudC4gIEdpdmUgZWFjaCBwcm9kdWN0IGEgbmFtZSwgYSBwcmljZSAob3B0aW9uYWwpIGEgd2VpZ2h0IChvcHRpb25hbCksIGEgc3RhdHVzIChkcmFmdCBvciBwdWJsaXNoZWQpLCBhbmQgc29tZSBpbmZvcm1hdGlvbi4gIEFkZGl0aW9uYWxseSwgeW91IGNhbiBhbHNvIHNwZWNpZnkgaWYgdGhlIHByb2R1Y3QgaXMgdGF4YWJsZS48L3A+DQo8cD5JZiBjYXRlZ29yaWVzIGFyZSBkZWZpbmVkLCB0aGVuIGEgY2hlY2tib3ggd2lsbCBhcHBlYXIgZm9yIGVhY2ggZGVmaW5lZCBjYXRlZ29yeS4gIFlvdSBjYW4gc2ltcGx5IGNsaWNrIHRoZSBjaGVja2JveCBmaWVsZHMgZm9yIGVhY2ggY2F0ZWdvcnkgdGhhdCB0aGlzIHByb2R1Y3Qgc2hvdWxkIGJlbG9uZyB0by48L3A+DQo8cD5JZiBjdXN0b20gZmllbGRzIGFyZSBkZWZpbmVkLCB0aGVuIGlucHV0IGZpZWxkcyBhcHByb3ByaWF0ZSB0byB0aGUgdHlwZSBvZiBjdXN0b20gZmllbGQgd2lsbCBhcHBlYXIgYW5kIGFsbG93IHlvdSB0byBzcGVjaWZ5IGRhdGEgZm9yIGVhY2ggb2YgdGhlbS4gIFRoaXMgZGF0YSBpcyBvcHRpb25hbC48L3A+DQo8bGk+QWRkIHRoZSBhcHByb3ByaWF0ZSB0YWdzIGludG8geW91ciBwYWdlIHRlbXBsYXRlcyBvciBwYWdlIGNvbnRlbnQ8L2xpPg0KPHA+VGhpcyBjYW4gYmUgYXMgc2ltcGxlIGFzIGFkZGluZyB0aGUgPHN0cm9uZz57UHJvZHVjdHN9PC9zdHJvbmc+IHRhZyBpbnRvIHRoZSBjb250ZW50IGFyZWEgb2Ygb25lIG9mIHlvdXIgcGFnZXMsIG9yIGludG8geW91ciBwYWdlIHRlbXBsYXRlLjwvcD4NCjxwPklmIHlvdSB3aXNoIHRvIGFsdGVyIHRoZSBiZWhhdmlvdXIgb2YgdGhpcyBhcHBsaWNhdGlvbiBmcm9tIGl0cyBkZWZhdWx0LCB5b3UgY2FuIGRvIHRoYXQgYnkgYWRkaW5nIG9uZSBvciBtb3JlIHBhcmFtZXRlcnMgdG8gdGhlIDxzdHJvbmc+e1Byb2R1Y3RzfTwvc3Ryb25nPiB0YWcuICBUaGUgY29tcGxldGUgbGlzdCBvZiBwYXJhbWV0ZXJzIGFuZCB0aGVpciBiZWhhdmlvdXIgaXMgbGlzdGVkIGJlbG93LiAgQnV0IGZvciBleGFtcGxlLCB0byBkaXNwbGF5IGEgbGlzdCBvZiBwcm9kdWN0cyBpbiBhIHNpbmdsZSwgZXhpc3RpbmcgY2F0ZWdvcnksIHlvdSBjb3VsZCB1c2UgYSB0YWcgbGlrZSA8Y29kZT57UHJvZHVjdHMgY2F0ZWdvcnk9JiMwMzk7Y2F0ZWdvcnluYW1lJiMwMzk7fTwvY29kZT48L3A+DQo8L3VsPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuICBIb3dldmVyIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMgb3IgdG8gZmlsZSBhIGJ1ZyByZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgY21zIG1hZGUgc2ltcGxlIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlcnMgRm9yZ2U8L2E+IGFuZCBkbyBhIHNlYXJjaCBmb3IgJiMwMzk7UHJvZHVjdHMmIzAzOTs8L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPlJvYmVydCBDYW1wYmVsbDwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcm1zLjwvYT48L2xpPg0KPGxpPkZvciBzb21lIHF1ZXN0aW9ucyBhbmQgbGltaXRlZCB0ZWNobmljYWwgc3VwcG9ydCwgdGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPC91bD4nOwokbGFuZ1snaGllcmFyY2h5J10gPSAnSGllcmFyY2h5JzsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gJ0hpZXJhcmNoeSBQb3NpdGlvbic7CiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ0ltYWdlJzsKJGxhbmdbJ2ltYWdlX2hhbmRsaW5nX3NldHRpbmdzJ10gPSAnSW1hZ2UgSGFuZGxpbmcgU2V0dGluZ3MnOwokbGFuZ1snaW1wb3J0X2Zyb21fY3N2J10gPSAnSW1wb3J0IFByb2R1Y3RzIGZyb20gQ1NWIGZpbGUnOwokbGFuZ1snaW5jbHVkZV9jaGlsZHJlbiddID0gJ0luY2x1ZGUgQ2hpbGRyZW4/JzsKJGxhbmdbJ2luZm9fYWxudW1vbmx5J10gPSAnT25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycy4gTm8gd2hpdGVzcGFjZSwgcXVvdGVzLCBvciBub24gbGV0dGVyL251bWJlciBjb21iaW5hdGlvbnMnOwokbGFuZ1snaW5mb19hdXRvd2F0ZXJtYXJrJ10gPSAnV2F0ZXJtYXJrIHNldHRpbmdzIGFyZSB0YWtlbiBmcm9tIHRoZSBDR0V4dGVuc2lvbnMgTW9kdWxlJzsKJGxhbmdbJ2luZm9fYmF0Y2hzaXplJ10gPSAnU2V0IHRoZSBudW1iZXIgb2YgbGluZXMgdG8gcHJvY2VzcyBwZXIgJnF1b3Q7YmF0Y2gmcXVvdDsuICBBZnRlciBhIGJhdGNoIGlzIGNvbXBsZXRlLCB0aGUgaW1wb3J0ZXIgd2lsbCByZWRpcmVjdCwgYW5kIHJlc3VtZSBvcGVyYXRpb25zLiAgSWYgeW91IGFyZSBleHBlcmllbmNpbmcgbWVtb3J5IGVycm9ycywgb3IgdGltZW91dCBwcm9ibGVtcyBkdWUgdG8gbGFyZ2UgYW1vdW50cyBvZiBwcm9jZXNzaW5nLCB5b3UgbWF5IG5lZWQgdG8gY29uc3VsdCB5b3VyIGhvc3QgcHJvdmlkZXIsIG9yIHJlZHVjZSB0aGlzIG51bWJlcic7CiRsYW5nWydpbmZvX2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ1RoZXNlIHBhcmFtZXRlcnMgYXJlIGdpdmVuIHRvIHRoZSBzZWxlY3RlZCBjYXJ0IG1vZHVsZSBmcm9tIHRoZSBwcm9kdWN0IGRldGFpbCBhbmQgc3VtbWFyeSBkaXNwbGF5cyc7CiRsYW5nWydpbmZvX2NyZWF0ZWZpZWxkcyddID0gJ0NyZWF0ZSB1bmtub3duIHByb2R1Y3QgZmllbGRzIGF1dG9tYXRpY2FsbHk/IDxlbT4oVGhleSB3aWxsIGJlIGNyZWF0ZWQgYXMgdGV4dCBmaWVsZHMpPC9lbT4nOwokbGFuZ1snaW5mb19jcmVhdGVjYXRlZ29yaWVzJ10gPSAnQXV0b21hdGljYWxseSBjcmVhdGUgcHJvZHVjdCBjYXRlZ29yaWVzIHRvIG1hdGNoIHRob3NlIG9mIHRoZSBDU1YgZmlsZSwgaWYgaXQgZG9lcyBub3QgYWxyZWFkeSBleGlzdCc7CiRsYW5nWydpbmZvX2NyZWF0ZWhpZXJhcmNoeSddID0gJ0F1dG9tYXRpY2FsbHkgY3JlYXRlIHByb2R1Y3QgaGllcmFyY2hpZXMgdG8gbWF0Y2ggdGhvc2Ugb2YgdGhlIENTViBmaWxlIGlmIGl0IGRvZXMgbm90IGFscmVhZHkgZXhpc3QnOwokbGFuZ1snaW5mb19kZWNpbWFsX3VuaXRzJ10gPSAnVGhpcyBzeXN0ZW0gdW5kZXJzdGFuZHMgKC4pIGFzIHRoZSBkZWNpbWFsIHBvaW50IHNlcGFyYXRvci4gaS5lLjogPHN0cm9uZz41LjI1PC9zdHJvbmc+JzsKJGxhbmdbJ2luZm9fZGVsaW1pdGVyJ10gPSAnU3BlY2lmeSB0aGUgY2hhcmFjdGVyIChvciBjaGFyYWN0ZXJzKSB0aGF0IHNlcGVyYXRlIGVhY2ggZmllbGQnOwokbGFuZ1snaW5mb19kdXBsaWNhdGVwcm9kdWN0cyddID0gJ1NwZWNpZnkgaG93IHRoZSBzeXN0ZW0gc2hvdWxkIGhhbmRsZSBhIHByb2R1Y3Qgd2hvcyBuYW1lIGFscmVhZHkgZXhpc3RzIGluIHRoZSBDU1YgZmlsZSc7CiRsYW5nWydpbmZvX2ZpZWxkZGVmc190YWInXSA9ICc8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBBbGwgRmllbGRzIGRlZmluZWQgaGVyZSBhcmUgYXZhaWxhYmxlIHRvIGFsbCBwcm9kdWN0cy4nOwokbGFuZ1snaW5mb19maWVsZHByb2JsZW1zJ10gPSAnUHJvYmxlbXMgd2VyZSBlbmNvdW50ZXJlZCB3aGVuIGRlYWxpbmcgd2l0aCBvbmUgb3IgbW9yZSBjdXN0b20gZmllbGRzLiAgVGhlIGFjdGlvbiBoYXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSwgaG93ZXZlciB5b3Ugc2hvdWxkIGludmVzdGlnYXRlIGFuZCBjb3JyZWN0IHRoZXNlIHByb2JsZW1zJzsKJGxhbmdbJ2luZm9faGFuZGxlaW1hZ2VzJ10gPSAnVXBvbiBpbXBvcnQsIGlmIGFuIGltYWdlIGZpbGVuYW1lIGlzIGZvdW5kIGluIGEgZmllbGQgY29sdW1uLCBzaG91bGQgaXQgYmUgbW92ZWQgZnJvbSB0aGUgc291cmNlIGxvY2F0aW9uLCB3YXRlcm1hcmtlZCwgdGh1bWJuYWlsZWQsIGFuZCB0aGUgZmllbGQgdHlwZSBjaGFuZ2VkIHRvICZxdW90O2ltYWdlJnF1b3Q7JzsKJGxhbmdbJ2luZm9faW1hZ2VwYXRoJ10gPSAnVGhlIHBhdGggKHJlbGF0aXZlIHRvIHRoZSB1cGxvYWRzIGRpcmVjdG9yeSkgd2hlcmUgaW1hZ2VzIHJlZmVycmVkIHRvIGluIHRoZSBpbXBvcnQgZmlsZSwgY2FuIGJlIGZvdW5kJzsKJGxhbmdbJ2luZm9faW1wb3J0X3Rlc3RfcGFzc2VkJ10gPSAnQSBicmllZiB0ZXN0IGFzIGJlZW4gcGVyZm9ybWVkIG9uIHRoZSBpbnB1dCBmaWxlIHNwZWNpZmllZCwgYW5kIGV2ZXJ5dGhpbmcgYXBwZWFycyB0byBiZSBjb3JyZWN0Ljxici8+VGhpcyBpcyBubyBpbmRpY2F0aW9uIHRoYXQgdGhlcmUgYXJlIG5vIGVycm9ycyBpbiB0aGUgZmlsZS4nOwokbGFuZ1snaW5mb19wcmljZV9hZGp1c3RtZW50J10gPSAnVmFsaWQgdmFsdWVzIGFyZSArLSojLiMjJzsKJGxhbmdbJ2luZm9fcHVibGljZmllbGQnXSA9ICdQdWJsaWMgZmllbGRzIGFyZSBhdmFpbGFibGUgZm9yIHRoZSBwdWJsaWMgdG8gc2VlJzsKJGxhbmdbJ2xhYmVsJ10gPSAnTGFiZWwnOwokbGFuZ1snbGFiZWxfc2tpcCddID0gJ1NraXAnOwokbGFuZ1snbGFiZWxfb3ZlcndyaXRlJ10gPSAnT3ZlcndyaXRlJzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnPj4nOwokbGFuZ1snbGFzdF9tb2RpZmllZCddID0gJ0xhc3QgTW9kaWZpZWQnOwokbGFuZ1snbG9nb3RleHQnXSA9ICdTZWNvbmQgSW1hZ2UnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4aW11bSBsZW5ndGggPGVtPihhcHBsaWNhYmxlIG9ubHkgb24gdGV4dGJveCBmaWVsZHMpPC9lbT4nOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnTW9kaWZpZWQgRGF0ZSc7CiRsYW5nWydtb2R1bGVfZGVzY3JpcHRpb24nXSA9ICdBIG1vZHVsZSBmb3IgbWFuYWdpbmcgYSBjYXRhbG9nIG9mIHByb2R1Y3RzLCB0aGVpciBwcmljZSwgaW1hZ2VzLCBldGMsIGFuZCBmb3IgYWxsb3dpbmcgdXNlcnMgdG8gYnVpbGQgYSBjYXJ0JzsKJGxhbmdbJ25hbWUnXSA9ICdOYW1lJzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnWW91IGRvIG5vdCBoYXZlIHRoZSByZXF1aXJlZCBwZXJtaXNzaW9uOiAlcyc7CiRsYW5nWyduZXdfY2F0ZWdvcnlfbmFtZSddID0gJ05ldyBDYXRlZ29yeSBOYW1lJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydubyddID0gJ05vJzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnTm8gbmFtZSB3YXMgc3VwcGxpZWQnOwokbGFuZ1snbm9uZSddID0gJ05vbmUnOwokbGFuZ1snb2YnXSA9ICdPZic7CiRsYW5nWydwYWdlJ10gPSAnUGFnZSc7CiRsYW5nWydwYWdlX29mJ10gPSAnUGFnZSAlcyBvZiAlcyc7CiRsYW5nWydwYWdlX2xpbWl0J10gPSAnUGFnZSBMaW1pdCc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcGVjaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5oaWVyYXJjaHkgLS0gRGlzcGxheSBhIHByb2R1Y3QgbGlzdCBieSBoaWVyYXJjaHk8L2xpPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdCBjYXRlZ29yaWVzPC9saT4NCiAgPGxpPjxlbT5kZWZhdWx0PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyeSBvZiBwcm9kdWN0czwvbGk+DQogIDxsaT5kZXRhaWxzIC0gRGlzcGxheSBhIGRldGFpbCB2aWV3IG9mIGEgc2luZ2xlIHByb2R1Y3Q8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdXaGVuIHVzZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciwgd2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBuYW1lIG9mIGFuIGV4aXN0aW5nIGNhdGVnb3J5IHdpbGwgYmUgdXNlZCB0byBkaXNwbGF5IG9ubHkgdGhvc2UgcHJvZHVjdHMgdGhhdCBhcmUgaW4gdGhhdCBjYXRlZ29vcnkuIChhIGNvbW1hIHNlcGVyYXRlZCBsaXN0IGNhbiBiZSBzdXBwbGllZCknOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1fZGV0YWlscGFnZSddID0gJ1RoaXMgc3BlY2lmaWVzIHRoZSBwYWdlaWQgb3IgYWxpYXMgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBkZXRhaWwgcmVwb3J0Lic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRldGFpbCBtb2RlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1faGllcmFyY2h5J10gPSAnVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhhdCBvbmx5IGl0ZW1zIGluIHRoYXQgbG9jYXRpb24gb2YgdGhlIGhpZXJhcmNoeSBzaG91bGQgYmUgZGlzcGxheWVkLiAgV2lsZGNhcmQgY2hhcmFjdGVyIGNhbiBiZSB1c2VkIHNvIHRoYXQgeW91IGNhbiBzcGVjaWZ5IHBhcmVudC9jaGlsZCByZWxhdGlvbnNoaXBzIGFzIHdlbGwuICBpLmUge1Byb2R1Y3RzIGhpZXJhcmNoeT0mIzAzOTt0cnVja3MqJiMwMzk7fSB3aWxsIGNyZWF0ZSBhIHN1bW1hcnkgcmVwb3J0IG9mIGFsbCB0cnVja3MsIGluY2x1ZGluZyB0aGUgY2hpbGRyZW4gaW4gdGhlIGhpZXJhcmNoeS4gIFNpbWlsYXJseSwge1Byb2R1Y3RzIGhpZXJhcmNoeT0mIzAzOTsqdHJ1Y2tzJiMwMzk7fSB3aWxsIGRpc3BsYXkgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBhbmQgYWxsIHByb2R1Y3RzIGJlbG9naW5nIHRvIGFueSBwYXJlbnQgaW4gdGhlIGhpZXJhcmNoeS4nOwokbGFuZ1sncGFyYW1faGllcmFyY2h5dGVtcGxhdGUnXSA9ICdUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBoaWVyYXJjaHkgZGlzcGxheS4gSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIGxpc3RlZCBvbiBlYWNoIHBhZ2UuJzsKJGxhbmdbJ3BhcmFtX3BhcmVudCddID0gJ1VzZWZ1bCBvbmx5IGluIHRoZSA8ZW0+aGllcmFyY2h5PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIGhpZXJhcmNoeSBpZCBvZiB0aGUgc3RhcnRpbmcgbG9jYXRpb24gb2YgdGhlIHJlcG9ydC4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGlkJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgZGV0YWlsIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHdoYXQgcHJvZHVjdCB0byB1c2UgZm9yIHRoZSBkaXNwbGF5Lic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcGVjaWZ5IHRoZSBvcmRlciBvZiBzb3J0ZWQgZmllbGRzIGluIHN1bW1hcnkgdmlldy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBBc2NlbmRpbmcgb3JkZXI8L2xpPg0KICA8bGk+ZGVzYyAtLSBEZXNjZW5kaW5nIG9yZGVyPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gJ0FwcGxpY2FibGUgb25seSBpbiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyIGRldGVybWluZXMgdGhlIHNvcnRpbmcgb2YgdGhlIG91dHB1dCBwcm9kdWN0cy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPnByb2R1Y3RfbmFtZTwvc3Ryb25nPjwvbGk+DQogIDxsaT5pZCAtLSBUaGUgcHJvZHVjdCBpZDwvbGk+DQogIDxsaT53ZWlnaHQgLS0gVGhlIHByb2R1Y3Qgd2VpZ2h0PC9saT4NCiAgPGxpPnByaWNlIC0tIFRoZSBwcm9kdWN0IGJhc2UgcHJpY2U8L2xpPg0KICA8bGk+c3RhdHVzIC0tIERyYWZ0IG9yIHB1Ymxpc2hlZDwvbGk+DQogIDxsaT5yYW5kb20gLS0gRGlzcGxheSBpbiByYW5kb20gb3JkZXIgb24gZWFjaCByZXF1ZXN0PC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gVGhlIGNyZWF0aW9uIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KICA8bGk+bW9kaWZpZWQgLS0gVGhlIG1vZGlmaWVkIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgc3VtbWFyeSBtb2RlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyZW50J10gPSAnUGFyZW50JzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnVGhlIFByb2R1Y3RzIG1vZHVsZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW5zdGFsbGVkJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdUaGUgUHJvZHVjdHMgbW9kdWxlIGhhcyBiZWVuIHJlbW92ZWQgYWxvbmcgd2l0aCBhbGwgYXNzb2NpYXRlZCBkYXRhJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnUHJlZmVyZW5jZXMnOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnUmVtb3ZpbmcgdGhpcyBtb2R1bGUgd2lsbCBhbHNvIHJlbW92ZSBhbGwgYXNzb2NpYXRlZCBkYXRhLCBhcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcHJvY2VlZD8nOwokbGFuZ1sncHJpY2UnXSA9ICdQcmljZSc7CiRsYW5nWydwcmljZV9hZGp1c3RtZW50J10gPSAnUHJpY2UgQWRqdXN0bWVudCc7CiRsYW5nWydwcmV2cGFnZSddID0gJzwnOwokbGFuZ1sncHJvZHVjdCddID0gJ1Byb2R1Y3QnOwokbGFuZ1sncHJvZHVjdG5hbWUnXSA9ICdQcm9kdWN0IE5hbWUnOwokbGFuZ1sncHJvZHVjdHMnXSA9ICdQcm9kdWN0cyc7CiRsYW5nWydwcm9kdWN0X2hpZXJhcmNoeSddID0gJ1Byb2R1Y3QgSGllcmFyY2h5JzsKJGxhbmdbJ3Byb2R1Y3RfbWFuYWdlciddID0gJ1Byb2R1Y3QgTWFuYWdlcic7CiRsYW5nWydwcm9ncmVzcyddID0gJ1Byb2dyZXNzJzsKJGxhbmdbJ3Byb21wdCddID0gJ1Byb21wdCc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnXSA9ICdBbGxvdyB1cGxvYWQgb2YgZmlsZXMgd2l0aCB0aGVzZSBleHRlbnNpb25zIChmb3IgZmlsZSB0eXBlIGZpZWxkcyknOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2V0eXBlcyddID0gJ0FsbG93IHVwbG9hZCBvZiBpbWFnZXMgd2l0aCB0aGVzZSBleHRlbnNpb25zIChmb3IgaW1hZ2UgdHlwZSBmaWVsZHMpJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsJ10gPSAnQXV0b21hdGljYWxseSBjcmVhdGUgdGh1bWJuYWlscyBvZiBpbWFnZXMnOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWxfc2l6ZSddID0gJ01heGltdW0gc2l6ZSAobGFyZ2VzdCBkaW1lbnNpb24pIG9mIHRoZSB0aHVtYm5haWwuJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZyddID0gJ0F1dG9tYXRpY2FsbHkgY3JlYXRlIHByZXZpZXcgaW1hZ2VzIG9mIGltYWdlcyc7CiRsYW5nWydwcm9tcHRfYXV0b3ByZXZpZXdpbWdfc2l6ZSddID0gJ01heGltdW0gc2l6ZSAobGFyZ2VzdCBkaW1lbnNpb24pIG9mIHRoZSBwcmV2aWV3IGltYWdlLic7CiRsYW5nWydwcm9tcHRfYXV0b3dhdGVybWFyayddID0gJ0F1dG9tYXRpY2FsbHkgcGxhY2Ugd2F0ZXJtYXJrcyBvbiBpbWFnZXMnOwokbGFuZ1sncHJvbXB0X2FwcGxpY2FibGUnXSA9ICdFbmFibGUgYnkgZGVmYXVsdCBmb3IgYWxsIG5ldyBwcm9kdWN0cyc7CiRsYW5nWydwcm9tcHRfYmF0Y2hzaXplJ10gPSAnQmF0Y2ggU2l6ZSc7CiRsYW5nWydwcm9tcHRfY2FydF9tb2R1bGUnXSA9ICdDYXJ0IE1vZHVsZSc7CiRsYW5nWydwcm9tcHRfY2FydF9tb2R1bGVfcGFyYW1zJ10gPSAnQ2FydCBNb2R1bGUgUGFyYW1ldGVycyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlY2F0ZWdvcmllcyddID0gJ0NyZWF0ZSBDYXRlZ29yaWVzJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVmaWVsZHMnXSA9ICdDcmVhdGUgUHJvZHVjdCBGaWVsZHM/JzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVoaWVyYXJjaHknXSA9ICdDcmVhdGUgUHJvZHVjdCBIaWVyYXJjaHknOwokbGFuZ1sncHJvbXB0X2NzdmZpbGUnXSA9ICdVcGxvYWQgQ1NWIEZpbGUnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5Y29kZSddID0gJ0N1cnJlbmN5IENvZGUnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAnQ3VycmVuY3kgU3ltYm9sJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0X3N0YXR1cyddID0gJ0J5IGRlZmF1bHQgYWxsIG5ldyBwcm9kdWN0cyBoYXZlIHRoaXMgc3RhdHVzJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0X3RheGFibGUnXSA9ICdCeSBkZWZhdWx0IGFsbCBuZXcgcHJvZHVjdHMgYXJlIHRheGFibGUnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gJ0RlbGV0ZSBhbnkgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm9kdWN0IHdoZW4gdGhlIHByb2R1Y3QgaXMgZGVsZXRlZD8nOwokbGFuZ1sncHJvbXB0X2RlbGltaXRlciddID0gJ0ZpZWxkIERlbGltaXRlcic7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ0RlZmF1bHQgRGV0YWlsIFBhZ2UnOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnSG93IHRvIGhhbmRsZSBkdXBsaWNhdGUgcHJvZHVjdHM/JzsKJGxhbmdbJ3Byb21wdF9oYW5kbGVpbWFnZXMnXSA9ICdIYW5kbGUgaW1hZ2VzPyc7CiRsYW5nWydwcm9tcHRfaW1hZ2VwYXRoJ10gPSAnSW1hZ2UgUGF0aCc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRvcmRlciddID0gJ0RlZmF1bHQgU29ydCBPcmRlciBpbiBzdW1tYXJ5IG1vZGUnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnRGVmYXVsdCBTb3J0IEZpZWxkIGluIHN1bW1hcnkgbW9kZSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBTb3VyY2UnOwokbGFuZ1sncHJvbXB0X3VybHByZWZpeCddID0gJ1ByZWZpeCB0byB1c2Ugb24gYWxsIFVSTFMgdGFyZ2V0ZWQgdG8gdGhpcyB0aGlzIG1vZHVsZSc7CiRsYW5nWydwcm9tcHRfd2VpZ2h0dW5pdHMnXSA9ICdXZWlnaHQgVW5pdHMnOwokbGFuZ1sncHVibGljJ10gPSAnSXMgdGhpcyBhIHB1YmxpYyBmaWVsZD8nOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnUHVibGlzaGVkJzsKJGxhbmdbJ3JhbmRvbSddID0gJ1JhbmRvbSc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1Jlc2V0IHRvIEZhY3RvcnkgVmFsdWVzJzsKJGxhbmdbJ3JldHVybiddID0gJ1JldHVybic7CiRsYW5nWydyZXR1cm5fdG9fdG9wJ10gPSAnUmV0dXJuIHRvIHRoZSB0b3Agb2YgdGhlIHZpZXcnOwokbGFuZ1sncm9vdCddID0gJ1Jvb3QnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1NlbGVjdCBPbmUnOwokbGFuZ1snc29ydF9ieSddID0gJ1NvcnQgQnknOwokbGFuZ1snc29ydF9vcmRlciddID0gJ1NvcnQgT3JkZXInOwokbGFuZ1snc3RhdHVzJ10gPSAnU3RhdHVzJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1N1Ym1pdCc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVzJ10gPSAnU3VtbWFyeSBUZW1wbGF0ZXMnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBBIFN1bW1hcnkgVGVtcGxhdGUnOwokbGFuZ1sndGF4YWJsZSddID0gJ1RheGFibGUnOwokbGFuZ1sndGVzdCddID0gJ1Rlc3QnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZXh0IEFyZWEnOwokbGFuZ1sndGV4dGJveCddID0gJ1RleHQgSW5wdXQnOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBOZXcgSGllcmFyY2h5IFJlcG9ydCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBOZXcgQ2F0ZWdvcnlMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IE5ldyBEZXRhaWwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IE5ldyBTdW1tYXJ5IFRlbXBsYXRlJzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXBlJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ1VwZGF0ZSc7CiRsYW5nWyd1cGxvYWQnXSA9ICdTZWxlY3QgYSBmaWxlIHRvIHVwbG9hZCc7CiRsYW5nWyd2YWxpZCddID0gJ1ZhbGlkJzsKJGxhbmdbJ3ZhbHVlJ10gPSAnVmFsdWUnOwokbGFuZ1sndmFsdWVzJ10gPSAnVmFsdWVzJzsKJGxhbmdbJ3dhdGVybWFya19sb2NhdGlvbiddID0gJ1dhdGVybWFyayBMb2NhdGlvbic7CiRsYW5nWyd3ZWlnaHQnXSA9ICdXZWlnaHQnOwokbGFuZ1sneWVzJ10gPSAnWWVzJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuODk2MTg3NjMxLjEyMzY2NzYxMjEuMTI0MjkwNDA4OS4xMjQyOTEwMjIwLjI1JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTI0MjkwNDA4OS4yNC45LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1kZXYuY21zbWFkZXNpbXBsZS5vcmd8dXRtY2N0PS9wcm9qZWN0L2xpc3R8dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.hierarchy_ops.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBoaWVyYXJjaHlfb3BzCnsKICBwcml2YXRlIHN0YXRpYyAkX2FsbGhpZXJhcmNoeTsKCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX3VwZGF0ZV9oaWVyYXJjaHlfY291bnRzKCYkZGF0YSwkcGFyZW50X2lkID0gLTEpCiAgewogICAgJG4gPSAwOwogICAgZm9yZWFjaCggJGRhdGEgYXMgJiRyZWMgKSB7CiAgICAgIGlmKCAhaXNzZXQoJHJlY1snY291bnQnXSkgKSBjb250aW51ZTsKICAgICAgaWYoICRyZWNbJ3BhcmVudF9pZCddICE9ICRwYXJlbnRfaWQgKSBjb250aW51ZTsKICAgICAgaWYoICRyZWNbJ2NvdW50J10gPT0gMCApIHsKCSRyZWNbJ2NvdW50J10gPSBzZWxmOjpfdXBkYXRlX2hpZXJhcmNoeV9jb3VudHMoJGRhdGEsJHJlY1snaWQnXSk7CiAgICAgIH0KICAgICAgJG4gKz0gKGludCkkcmVjWydjb3VudCddOwogICAgfQogICAgcmV0dXJuICRuOwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfYWxsX2hpZXJhcmNoeV9pbmZvKCRjb3VudCA9IEZBTFNFLCAkYWxsID0gVFJVRSkKICB7CiAgICBpZiggIWlzX2FycmF5KHNlbGY6OiRfYWxsaGllcmFyY2h5KSApIHNlbGY6OiRfYWxsaGllcmFyY2h5ID0gYXJyYXkoKTsKCiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgaWYoICEkY291bnQgKSB7CiAgICAgICRrZXkgPSAnbm9jb3VudCc7CgogICAgICBpZiggIWlzc2V0KHNlbGY6OiRfYWxsaGllcmFyY2h5WyRrZXldKSApIHsKCSRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5JzsKCSR0bXAgPSAkZGItPkdldEFycmF5KCRxdWVyeSk7CglpZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgKSB7CgkgICR0bXAgPSBjZ2VfYXJyYXk6OnRvX2hhc2goJHRtcCwnaWQnKTsKCX0KCXNlbGY6OiRfYWxsaGllcmFyY2h5WyRrZXldID0gJHRtcDsKICAgICAgfQogICAgfQogICAgZWxzZSB7CiAgICAgIC8vIGFsbCBpcyBvbmx5IGFwcGxpY2FibGUgaGVyZS4KICAgICAgJGtleSA9ICdjb3VudCc7CiAgICAgIGlmKCAhaXNzZXQoc2VsZjo6JF9hbGxoaWVyYXJjaHlbJGtleV0pICkgewoJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCSRxdWVyeSA9ICdTRUxFQ1QgcGguKixjb3VudChwci5pZCkgQVMgY291bnQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBwaAogICAgICAgICAgICAgICAgICBMRUZUIE9VVEVSIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdG9oaWVyIHB0aAogICAgICAgICAgICAgICAgICBPTiBwaC5pZCA9IHB0aC5oaWVyYXJjaHlfaWQKICAgICAgICAgICAgICAgICAgTEVGVCBPVVRFUiBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgcHIKICAgICAgICAgICAgICAgICAgT04gcHRoLnByb2R1Y3RfaWQgPSBwci5pZCc7CglpZiggISRhbGwgKSAkcXVlcnkgLicgQU5EIHByLnN0YXR1cyA9ICcuJGRiLT5xc3RyKCdwdWJsaXNoZWQnKTsKCSRxdWVyeSAuPSAnIEdST1VQIEJZIHBoLmlkCiAgICAgICAgICAgICAgICAgICBPUkRFUiBCWSBwaC5oaWVyYXJjaHknOwoJJHRtcCA9ICRkYi0+R2V0QWxsKCRxdWVyeSk7CglpZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgKSB7CgkgICR0bXAgPSBjZ2VfYXJyYXk6OnRvX2hhc2goJHRtcCwnaWQnKTsKCX0KCXNlbGY6Ol91cGRhdGVfaGllcmFyY2h5X2NvdW50cygkdG1wKTsKCXNlbGY6OiRfYWxsaGllcmFyY2h5WyRrZXldID0gJHRtcDsKICAgICAgfQogICAgfQogICAgcmV0dXJuIHNlbGY6OiRfYWxsaGllcmFyY2h5WyRrZXldOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2hpZXJhcmNoeV9pbmZvKCRoaWVyYXJjaHlfaWQpCiAgewogICAgJGFsbGluZm8gPSBzZWxmOjpnZXRfYWxsX2hpZXJhcmNoeV9pbmZvKCk7CiAgICBpZiggaXNfYXJyYXkoJGFsbGluZm8pICYmIGNvdW50KCRhbGxpbmZvKSAmJiBpc3NldCgkYWxsaW5mb1skaGllcmFyY2h5X2lkXSkgKSB7CiAgICAgIHJldHVybiAkYWxsaW5mb1skaGllcmFyY2h5X2lkXTsKICAgIH0KICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9oaWVyYXJjaHlfcGF0aCgkaGllcl9pZCkKICB7CiAgICAkb3V0ID0gYXJyYXkoKTsKICAgIHdoaWxlKCAkaGllcl9pZCA+IDAgKQogICAgICB7Cgkkb3V0W10gPSAkaGllcl9pZDsKCgkkaGllcl9pbmZvID0gc2VsZjo6Z2V0X2hpZXJhcmNoeV9pbmZvKCRoaWVyX2lkKTsKCWlmKCAhJGhpZXJfaW5mbyApIGJyZWFrOwoKCSRoaWVyX2lkID0gJGhpZXJfaW5mb1sncGFyZW50X2lkJ107CglpZiggJGhpZXJfaWQgPCAwICkgYnJlYWs7CiAgICAgIH0KCiAgICByZXR1cm4gYXJyYXlfcmV2ZXJzZSgkb3V0KTsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9icmVhZGNydW1iKCRpZCwkaGllcl9pZCwkaGllcnBhZ2UsJGRlbGltID0gJyAmZ3Q7ICcpCiAgewogICAgJGhpZXJhcmNoeV9wYXRoID0gc2VsZjo6Z2V0X2hpZXJhcmNoeV9wYXRoKCRoaWVyX2lkKTsKICAgIGlmKCAhJGhpZXJhcmNoeV9wYXRoICkgcmV0dXJuIEZBTFNFOwoKICAgICRtb2R1bGUgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1Byb2R1Y3RzJyk7CiAgICAkdG1wID0gYXJyYXkoKTsKICAgIGZvcmVhY2goICRoaWVyYXJjaHlfcGF0aCBhcyAkb25lICkgewogICAgICAkaW5mbyA9IGhpZXJhcmNoeV9vcHM6OmdldF9oaWVyYXJjaHlfaW5mbygkb25lKTsKICAgICAgJGxpbmsgPSAkbW9kdWxlLT5DcmVhdGVQcmV0dHlMaW5rKCRpZCwnaGllcmFyY2h5JywkaGllcnBhZ2UsCgkJCQkJJGluZm9bJ25hbWUnXSxhcnJheSgncGFyZW50Jz0+JGluZm9bJ2lkJ10pKTsKICAgICAgJHRtcFtdID0gJGxpbms7CiAgICB9CiAgICBpZiggJGRlbGltICE9ICcnICkgewogICAgICByZXR1cm4gaW1wbG9kZSgkZGVsaW0sJHRtcCk7CiAgICB9CiAgICByZXR1cm4gJHRtcDsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2ZsYXRfbGlzdCgkZnVsbCA9IFRSVUUsJGlkID0gJ3Byb2QnLCRyZXR1cm5kaWQgPSAnJykKICB7CiAgICBpZiggIWZ1bmN0aW9uX2V4aXN0cygnX19oaWVydHJlZV9jYicpICkgewogICAgICBmdW5jdGlvbiBfX2hpZXJ0cmVlX2NiKCYkcm93KSAKICAgICAgewoJZ2xvYmFsICRpZCwkcmV0dXJuaWQsJGVudHJ5YXJyYXk7CgkkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdQcm9kdWN0cycpOwoJaWYoIGlzX29iamVjdCgkbW9kKSApIHsKCSAgJHJvd1snZWRpdF91cmwnXSA9ICRtb2QtPkNyZWF0ZVVSTCgkaWQsJ2FkbWluX2VkaXRfaGllcmFyY2h5X2l0ZW0nLAoJCQkJCSAgICAgJHJldHVybmlkLAoJCQkJCSAgICAgYXJyYXkoJ2hpZXJhcmNoeV9pZCc9PiRyb3dbJ2lkJ10pKTsKCSAgJHJvd1snZGVwdGgnXSA9IGNvdW50KGV4cGxvZGUoJy4nLCAkcm93WydoaWVyYXJjaHknXSkpIC0gMTsKCSAgJHJvd1snZWRpdF9saW5rJ10gPSAkbW9kLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdhZG1pbl9lZGl0X2hpZXJhcmNoeV9pdGVtJywKCQkJCQkJICAgICRyZXR1cm5pZCwKCQkJCQkJICAgICRtb2QtPkxhbmcoJ2VkaXRfaGllcmFyY2h5X2l0ZW0nKSwKCQkJCQkJICAgICdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLAoJCQkJCQkgICAgYXJyYXkoJ2hpZXJhcmNoeV9pZCc9PiRyb3dbJ2lkJ10pKTsKCSAgJHJvd1snZGVsZXRlX2xpbmsnXSA9ICRtb2QtPkNyZWF0ZUltYWdlTGluaygkaWQsJ2FkbWluX2RlbGV0ZV9oaWVyYXJjaHlfaXRlbScsCgkJCQkJCSAgICAgICRyZXR1cm5pZCwKCQkJCQkJICAgICAgJG1vZC0+TGFuZygnZGVsZXRlX2hpZXJhcmNoeV9pdGVtJyksCgkJCQkJCSAgICAgICdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsCgkJCQkJCSAgICAgIGFycmF5KCdoaWVyYXJjaHlfaWQnPT4kcm93WydpZCddKSwnJywKCQkJCQkJICAgICAgJG1vZC0+TGFuZygnY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnKSk7CgoJICAkZW50cnlhcnJheVtdID0gJHJvdzsKCX0KICAgICAgfQoKICAgICAgZnVuY3Rpb24gX19oaWVydHJlZV9mbGF0dGVuKCR0cmVlLCYkZW50cnlhcnJheSkKICAgICAgewoJaWYoIGlzX2FycmF5KCR0cmVlKSAmJiBjb3VudCgkdHJlZSkgKSB7CgkgIGZvcmVhY2goICR0cmVlIGFzICRvbmUgKSB7CgkgICAgJGNvcHkgPSAkb25lOwoJICAgIHVuc2V0KCRjb3B5WydjaGlsZHJlbiddKTsKCSAgICAkZW50cnlhcnJheVtdID0gJGNvcHk7CgkgICAgaWYoIGlzc2V0KCRvbmVbJ2NoaWxkcmVuJ10pICkgewoJICAgICAgX19oaWVydHJlZV9mbGF0dGVuKCRvbmVbJ2NoaWxkcmVuJ10sJGVudHJ5YXJyYXkpOwoJICAgIH0KCSAgfQoJfQogICAgICB9IC8vIGZ1bmN0aW9uLgogICAgfQoKICAgICRlbnRyeWFycmF5ID0gYXJyYXkoKTsKICAgICRjYiA9ICcnOwogICAgaWYoICRmdWxsICkgJGNiID0gJ19faGllcnRyZWVfY2InOwogICAgJHRyZWUgPSBwcm9kdWN0X3V0aWxzOjpoaWVyYXJjaHlfZ2V0X3RyZWUoLTEsMCwkY2IpOwogICAgX19oaWVydHJlZV9mbGF0dGVuKCR0cmVlLCRlbnRyeWFycmF5KTsKICAgIHJldHVybiAkZW50cnlhcnJheTsKICB9Cn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.importImageHandler.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBpbXBvcnRJbWFnZUhhbmRsZXIKewogIHZhciAkX21vZHVsZTsKICB2YXIgJF9zcmNwYXRoOwogIHZhciAkX2Rlc3RwYXRoOwogIHZhciAkX3VuaXF1ZV9uYW1lczsKCiAgZnVuY3Rpb24gaW1wb3J0SW1hZ2VIYW5kbGVyKCYkbW9kKQogIHsKICAgICR0aGlzLT5fbW9kdWxlID0gJG1vZDsKICAgICR0aGlzLT5fdW5pcXVlX25hbWVzID0gMDsKICB9CgoKICBmdW5jdGlvbiBzZXRVbmlxdWVOYW1lcygkdmFsdWUgPSAxKQogIHsKICAgICR0aGlzLT5fdW5pcXVlX25hbWVzID0gKGludCkkdmFsdWU7CiAgfQoKCiAgZnVuY3Rpb24gc2V0U291cmNlTG9jYXRpb24oJHBhdGgpCiAgewogICAgaWYoIGlzX2RpcigkcGF0aCkgKQogICAgICB7CgkkdGhpcy0+X3NyY3BhdGggPSAkcGF0aDsKICAgICAgfQogIH0KCgogIGZ1bmN0aW9uIHNldERlc3RpbmF0aW9uQmFzZSgkcGF0aCkKICB7CiAgICAkdGhpcy0+X2Rlc3RwYXRoID0gJHBhdGg7CiAgfQoKCiAgZnVuY3Rpb24gaGFuZGxlSW1hZ2UoJHByb2R1Y3RfaWQsJGZpbGVuYW1lKQogIHsKICAgICRkZXN0cGF0aCA9IGNtc19qb2luX3BhdGgoJHRoaXMtPl9kZXN0cGF0aCwncHJvZHVjdF8nLiRwcm9kdWN0X2lkKTsKICAgICRtb2QgPSYgJHRoaXMtPl9tb2R1bGU7CiAgICBjZ2VfZGlyOjpta2RpcnIoJGRlc3RwYXRoKTsKICAgIGlmKCAhaXNfZGlyKCRkZXN0cGF0aCkgKSByZXR1cm4gRkFMU0U7CgogICAgJGV4dCA9IHN1YnN0cigkZmlsZW5hbWUsIHN0cnJwb3MoJGZpbGVuYW1lLCAnLicpICsgMSk7CiAgICAkYWxsb3dlZCA9IGV4cGxvZGUoJywnLCRtb2QtPkdldFByZWZlcmVuY2UoJ2FsbG93ZWRfaW1hZ2V0eXBlcycpKTsKICAgIGlmKCAhaW5fYXJyYXkoJGV4dCwkYWxsb3dlZCkgKSByZXR1cm4gRkFMU0U7CgogICAgJHNyY3NwZWMgPSBjbXNfam9pbl9wYXRoKCR0aGlzLT5fc3JjcGF0aCwkZmlsZW5hbWUpOwogICAgaWYoICFmaWxlX2V4aXN0cygkc3Jjc3BlYykgKSByZXR1cm4gRkFMU0U7CgogICAgJHBvc3RmaXggPSAwOwogICAgJGZuYW1lID0gc3Vic3RyKCRmaWxlbmFtZSwwLHN0cmxlbigkZmlsZW5hbWUpLXN0cmxlbigkZXh0KSk7CiAgICAkZGVzdHNwZWMgPSBjbXNfam9pbl9wYXRoKCRkZXN0cGF0aCwkZmlsZW5hbWUpOwogICAgd2hpbGUoIGZpbGVfZXhpc3RzKCRkZXN0c3BlYykgJiYgJHRoaXMtPl91bmlxdWVfbmFtZXMgJiYgKCRwb3N0Zml4IDwgMTAwKSApCiAgICAgIHsKCSRwb3N0Zml4Kys7CgkkZGVzdHNwZWMgPSBjbXNfam9pbl9wYXRoKCRkZXN0cGF0aCwkZm5hbWUuJ18nLiRwb3N0Zml4LiRleHQpOwogICAgICB9CiAgICBpZiggZmlsZV9leGlzdHMoJGRlc3RzcGVjKSApIHJldHVybiBGQUxTRTsKCiAgICAvLyB3ZSBoYXZlIHRoZSBzb3VyY2UgbmFtZSwgYW5kIGRlc3RpbmF0aW9uIG5hbWUKICAgIC8vIGNvcHkgdGhlIGZpbGUKICAgIEBjb3B5KCRzcmNzcGVjLCRkZXN0c3BlYyk7CiAgICBpZiggIWZpbGVfZXhpc3RzKCRkZXN0c3BlYykgKSByZXR1cm4gRkFMU0U7CiAgICAvLyBhbmQgcHJvY2VzcyBpdC4KICAgIC8vIG9wdGlvbmFsbHkgZG8gdGh1bWJuYWlsaW5nCiAgICAkcmVzID0gJHRoaXMtPl9tb2R1bGUtPlByb2Nlc3NJbWFnZSgkZGVzdHNwZWMpOwogICAgaWYoICEkcmVzICkKICAgICAgewoJQHVubGluaygkZGVzdHNwZWMpOwogICAgICB9CgogICAgcmV0dXJuIGJhc2VuYW1lKCRkZXN0c3BlYyk7CiAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.productsCsvImporter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmaW5hbCBjbGFzcyBwcm9kdWN0c0NzdkltcG9ydGVyCnsKICB2YXIgJF9kZWZzX2J5bmFtZTsKICB2YXIgJF9kZWZzX2J5aW5kZXg7CiAgdmFyICRfcmVjb3JkOwogIHZhciAkX2xpbmVudW07CiAgdmFyICRfbGluZTsKICB2YXIgJF9kZWxpbTsKICB2YXIgJF9lcnJvcnM7CiAgdmFyICRfbW9kdWxlOwogIHZhciAkX2ZpZWxkX21hcDsKICB2YXIgJF9jYXRlZ29yeV9tYXA7CiAgdmFyICRfaGllcmFyY2h5X21hcDsKICB2YXIgJF9wb2xpY3k7CiAgdmFyICRfaW1hZ2VIYW5kbGVyOwoKCiAgcHVibGljIGZ1bmN0aW9uIHByb2R1Y3RzQ3N2SW1wb3J0ZXIoJiRtb2QpCiAgewogICAgJHRoaXMtPl9tb2R1bGUgPSAkbW9kOwogICAgJHRoaXMtPl9saW5lbnVtID0gMDsKICAgICR0aGlzLT5fZGVsaW0gPSAnfCc7CiAgICAkdGhpcy0+X3BvbGljeSA9IGFycmF5KCk7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHNldEltYWdlSGFuZGxlcigmJGhhbmRsZXIpCiAgewogICAgaWYoICFpc19vYmplY3QoJGhhbmRsZXIpICkgcmV0dXJuIEZBTFNFOwogICAgJHRoaXMtPl9pbWFnZUhhbmRsZXIgPSAkaGFuZGxlcjsKICAgIHJldHVybiBUUlVFOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBzZXRQb2xpY3lWYWx1ZSgka2V5LCR2YWx1ZSkKICB7CiAgICAkdGhpcy0+X3BvbGljeVska2V5XSA9ICR2YWx1ZTsKICB9CgogIAogIHByaXZhdGUgZnVuY3Rpb24gX2dldFBvbGljeVZhbHVlKCRrZXksJGRmbHQgPSBGQUxTRSkKICB7CiAgICBpZiggIWlzc2V0KCR0aGlzLT5fcG9saWN5WyRrZXldKSApIHJldHVybiAkZGZsdDsKICAgIHJldHVybiAkdGhpcy0+X3BvbGljeVska2V5XTsKICB9CgoKICBwcml2YXRlIGZ1bmN0aW9uIF9zZXRFcnJvcigkdG1wKQogIHsKICAgIGlmKCAhaXNfYXJyYXkoJHRoaXMtPl9lcnJvcnMpICkKICAgICAgewoJJHRoaXMtPl9lcnJvcnMgPSBhcnJheSgpOwogICAgICB9CiAgICAkdGhpcy0+X2Vycm9yc1tdID0gJHRoaXMtPl9saW5lbnVtLic6ICcuJHRtcDsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gY2xlYXJFcnJvcnMoKQogIHsKICAgICR0aGlzLT5fZXJyb3JzID0gYXJyYXkoKTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0RXJyb3JzKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9lcnJvcnM7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHNldERlbGltKCRkZWxpbSkKICB7CiAgICBpZiggZW1wdHkoJGRlbGltKSApIHJldHVybiBGQUxTRTsKICAgICR0aGlzLT5fZGVsaW0gPSAkZGVsaW07CiAgICByZXR1cm4gVFJVRTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gc2V0RmllbGREZWZzQnlOYW1lKCR0bXApCiAgewogICAgaWYoICFpc19hcnJheSgkdG1wKSApIHJldHVybiBGQUxTRTsKICAgICR0aGlzLT5fZGVmc19ieW5hbWUgPSAkdG1wOwogICAgcmV0dXJuIFRSVUU7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHNldEZpZWxkRGVmc0J5SW5kZXgoJHRtcCkKICB7CiAgICBpZiggIWlzX2FycmF5KCR0bXApICkgcmV0dXJuIEZBTFNFOwogICAgJHRoaXMtPl9kZWZzX2J5aW5kZXggPSAkdG1wOwogICAgcmV0dXJuIEZBTFNFOwogIH0KCgogIHByaXZhdGUgZnVuY3Rpb24gX3NldExpbmUoJHRtcCkKICB7CiAgICAkdGhpcy0+X2xpbmUgPSAkdG1wOwogICAgJHRoaXMtPl9saW5lbnVtKys7CiAgICAkdGhpcy0+X3JlY29yZCA9IGNnZV9hcnJheTo6c21hcnRfZXhwbG9kZSgkdGhpcy0+X2xpbmUsJHRoaXMtPl9kZWxpbSk7CiAgICBpZiggZW5kc3dpdGgoJHRtcCwkdGhpcy0+X2RlbGltKSApIHsKICAgICAgJHRoaXMtPl9yZWNvcmRbXSA9ICcnOwogICAgfQogICAgcmV0dXJuIFRSVUU7CiAgfQoKCiAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0RmllbGRJZCgkbmFtZSkKICB7CiAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5fZmllbGRfbWFwKSApIHsKICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCxuYW1lLHR5cGUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyc7CiAgICAgICR0bXAgPSAkZGItPkdldEFycmF5KCRxdWVyeSk7CiAgICAgIGlmKCBpc19hcnJheSgkdG1wKSApIHsKCSR0aGlzLT5fZmllbGRfbWFwID0gY2dlX2FycmF5Ojp0b19oYXNoKCR0bXAsJ25hbWUnKTsKICAgICAgfQogICAgfQogICAgaWYoIGlzX2FycmF5KCR0aGlzLT5fZmllbGRfbWFwKSAmJiBpc3NldCgkdGhpcy0+X2ZpZWxkX21hcFskbmFtZV0pICkgewogICAgICByZXR1cm4gJHRoaXMtPl9maWVsZF9tYXBbJG5hbWVdWydpZCddOwogICAgfQogICAgcmV0dXJuIEZBTFNFOwogIH0KCgogIHByaXZhdGUgZnVuY3Rpb24gX2dldEZpZWxkVHlwZSgkbmFtZSkKICB7CiAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5fZmllbGRfbWFwKSApCiAgICAgIHsKCSR0bXAgPSAkdGhpcy0+X2dldEZpZWxkSWQoJG5hbWUpOwogICAgICB9CiAgICBpZiggaXNfYXJyYXkoJHRoaXMtPl9maWVsZF9tYXApICYmIGlzc2V0KCR0aGlzLT5fZmllbGRfbWFwWyRuYW1lXSkgKQogICAgICB7CglyZXR1cm4gJHRoaXMtPl9maWVsZF9tYXBbJG5hbWVdWyd0eXBlJ107CiAgICAgIH0KICAgIHJldHVybiBGQUxTRTsKICB9CgoKICBwcml2YXRlIGZ1bmN0aW9uIF9zZXRGaWVsZFZhbHVlKCRwcm9kdWN0X2lkLCRmaWQsJHZhbCkKICB7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJHF1ZXJ5ID0gJ1NFTEVDVCB2YWx1ZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIFdIRVJFIHByb2R1Y3RfaWQgPSA/IEFORCBmaWVsZGRlZl9pZCA9ID8nOwogICAgJHRtcCA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkcHJvZHVjdF9pZCwkZmlkKSk7CiAgICBpZiggJHRtcCApIHsKICAgICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyBTRVQgdmFsdWUgPSA/IFdIRVJFIHByb2R1Y3RfaWQgPSA/IEFORCBmaWVsZGRlZl9pZCA9ID8nOwogICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkdmFsLCRwcm9kdWN0X2lkLCRmaWQpKTsKICAgIH0gZWxzZSB7CiAgICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyAodmFsdWUsIHByb2R1Y3RfaWQsIGZpZWxkZGVmX2lkKSBWQUxVRVMgKD8sPyw/KSc7CiAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR2YWwsJHByb2R1Y3RfaWQsJGZpZCkpOwogICAgfQogICAgaWYoICEkZGJyICkgewogICAgICAkdGhpcy0+X3NldEVycm9yKCdQcm9ibGVtIGluc2VydGluZyBmaWVsZCB2YWx1ZSBmb3IgZmllbGQgJy4kZmlkKTsKICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQogICAgcmV0dXJuIFRSVUU7CiAgfQoKCiAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0Q2F0ZWdvcnlJZCgkbmFtZSkKICB7CiAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5fY2F0ZWdvcnlfbWFwKSApCiAgICAgIHsKCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgkkcXVlcnkgPSAnU0VMRUNUIGlkLG5hbWUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMnOwoJJHRtcCA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKCWlmKCBpc19hcnJheSgkdG1wKSApCgkgIHsKCSAgICAkdGhpcy0+X2NhdGVnb3J5X21hcCA9IGNnZV9hcnJheTo6dG9faGFzaCgkdG1wLCduYW1lJyk7CgkgIH0KICAgICAgfQogICAgaWYoIGlzX2FycmF5KCR0aGlzLT5fY2F0ZWdvcnlfbWFwKSAmJiBpc3NldCgkdGhpcy0+X2NhdGVnb3J5X21hcFskbmFtZV0pICkKICAgICAgewoJcmV0dXJuICR0aGlzLT5fY2F0ZWdvcnlfbWFwWyRuYW1lXVsnaWQnXTsKICAgICAgfQogICAgcmV0dXJuIEZBTFNFOwogIH0KCgogIHByaXZhdGUgZnVuY3Rpb24gX19nZXRIaWVyYXJjaHlDYWNoZSgpCiAgewogICAgLy8gbWFrZSBzdXJlIHdlIGhhdmUgZXZlcnl0aGluZyBpbiBtZW1vcnkuCiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCxsb25nX25hbWUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSc7CiAgICAkdG1wID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgaWYoIGlzX2FycmF5KCR0bXApICkKICAgICAgewoJJHRoaXMtPl9oaWVyYXJjaHlfbWFwID0gY2dlX2FycmF5Ojp0b19oYXNoKCR0bXAsJ2xvbmdfbmFtZScpOwogICAgICB9CiAgfQoKCiAgcHJpdmF0ZSBmdW5jdGlvbiBfc2V0SGllcmFyY2h5SWQoJHByb2R1Y3RfaWQsJGhpZXJfaWQpCiAgewogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCiAgICAkcXVlcnkgPSAnU0VMRUNUIGhpZXJhcmNoeV9pZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHRvaGllcgogICAgICAgICAgICAgICBXSEVSRSBwcm9kdWN0X2lkID0gPyc7CiAgICAkdG1wID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRwcm9kdWN0X2lkKSk7CiAgICBpZiggJHRtcCApIHsKICAgICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hpZXIKICAgICAgICAgICAgICAgIFNFVCBoaWVyYXJjaHlfaWQgPSA/IFdIRVJFIHByb2R1Y3RfaWQgPSA/JzsKICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGhpZXJfaWQsJHByb2R1Y3RfaWQpKTsKICAgIH0KICAgIGVsc2UgewogICAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdG9oaWVyCiAgICAgICAgICAgICAgICAgKHByb2R1Y3RfaWQsaGllcmFyY2h5X2lkKSBWQUxVRVMgKD8sPyknOwogICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkcHJvZHVjdF9pZCwkaGllcl9pZCkpOwogICAgfQogICAgaWYoICEkZGJyICkgewogICAgICAkdGhpcy0+X3NldEVycm9yKCdwcm9ibGVtIGFkanVzdGluZyBoaWVyYXJjaHkgZm9yICcuJHByb2R1Y3RfaWQpOwogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CiAgICByZXR1cm4gVFJVRTsKICB9CgogIHByaXZhdGUgZnVuY3Rpb24gX2dldEhpZXJhcmNoeUlkKCRoaWVyKQogIHsKICAgIGlmKCAhaXNfYXJyYXkoJHRoaXMtPl9oaWVyYXJjaHlfbWFwKSApCiAgICAgIHsKCSR0aGlzLT5fX2dldEhpZXJhcmNoeUNhY2hlKCk7CiAgICAgIH0KICAgIGlmKCAkdGhpcy0+X2dldFBvbGljeVZhbHVlKCdjcmVhdGVfaGllcmFyY2h5JykgKQogICAgICB7CglpZiggKGlzX2FycmF5KCR0aGlzLT5faGllcmFyY2h5X21hcCkgJiYgIWlzc2V0KCR0aGlzLT5faGllcmFyY2h5X21hcFskaGllcl0pKSB8fAoJICAgICFpc19hcnJheSgkdGhpcy0+X2hpZXJhcmNoeV9tYXApICkKCSAgewoJICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgoJICAgIC8vIHdlIGhhdmUgZXZlcnl0aGluZyBpbiBtZW1vcnkKCSAgICAvLyBpdCdzIGp1c3Qgbm90IHRoZXJlCgkgICAgLy8gc28gd2UgaGF2ZSB0byBjcmVhdGUgaXQuCgkgICAgJHBhdGggPSBleHBsb2RlKCcgfCAnLCRoaWVyKTsKCSAgICAkcGFyZW50ID0gLTE7CgkgICAgJGl0ZW1fb3JkZXIgPSAxOwoJICAgICRmcXVlcnkgPSAnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkgV0hFUkUgbmFtZSA9ID8gQU5EIHBhcmVudF9pZCA9ID8nOwoJICAgICRpcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkgKG5hbWUscGFyZW50X2lkKSBWQUxVRVMgKD8sPyknOwoJICAgIGZvcmVhY2goICRwYXRoIGFzICRvbmUgKQoJICAgICAgewoJCSRuYW1lID0gdHJpbSgkb25lKTsKCQkkbmFtZSA9IHRyaW0oJG5hbWUsJyJcJycpOwoJCWlmKCBlbXB0eSgkbmFtZSkgKSBjb250aW51ZTsKCQkkdF9pZCA9ICRkYi0+R2V0T25lKCRmcXVlcnksYXJyYXkoJG5hbWUsJHBhcmVudCkpOwoJCWlmKCAhJHRfaWQgKQoJCSAgewoJCSAgICAvLyBnb3R0YSBpbnNlcnQgaXQKCQkgICAgJGRiLT5FeGVjdXRlKCRpcXVlcnksYXJyYXkoJG5hbWUsJHBhcmVudCkpOwoJCSAgICAkdF9pZCA9ICRkYi0+SW5zZXJ0X0lEKCk7CgkJICAgICR0aGlzLT5fbW9kdWxlLT5VcGRhdGVIaWVyYXJjaHlQb3NpdGlvbnMoKTsKCQkgIH0KCQkkcGFyZW50ID0gJHRfaWQ7CgkgICAgICB9CgkgIH0KCgkvLyByZWZyZXNoIHRoZSBtZW1vcnkKCSR0aGlzLT5fX2dldEhpZXJhcmNoeUNhY2hlKCk7CiAgICAgIH0KCiAgICAvLyByZXR1cm4gdGhlIGRlc2lyZWQgdmFsdWUKICAgIGlmKCBpc19hcnJheSgkdGhpcy0+X2hpZXJhcmNoeV9tYXApICYmIGlzc2V0KCR0aGlzLT5faGllcmFyY2h5X21hcFskaGllcl0pICkKICAgICAgewoJcmV0dXJuICR0aGlzLT5faGllcmFyY2h5X21hcFskaGllcl1bJ2lkJ107CiAgICAgIH0KCiAgICAvLyB0aGlzIGlhIHJlYWxseSBhIHByb2JsZW0KICAgIHJldHVybiBGQUxTRTsKICB9CgoKICBwcml2YXRlIGZ1bmN0aW9uIF9oYXNGaWVsZCgkbmFtZSkKICB7CiAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5fcmVjb3JkKSApIHJldHVybiBGQUxTRTsKICAgIGlmKCAhaXNfYXJyYXkoJHRoaXMtPl9kZWZzX2J5bmFtZSkgKSByZXR1cm4gRkFMU0U7CiAgICBpZiggIWlzc2V0KCR0aGlzLT5fZGVmc19ieW5hbWVbJG5hbWVdKSApIHJldHVybiBGQUxTRTsKICAgICRpZHggPSAkdGhpcy0+X2RlZnNfYnluYW1lWyRuYW1lXTsKICAgIGlmKCAkaWR4ID49IGNvdW50KCR0aGlzLT5fcmVjb3JkKSApIHJldHVybiBGQUxTRTsKICAgIHJldHVybiAkaWR4OwogIH0KCgogIHByaXZhdGUgZnVuY3Rpb24gX2dldEZpZWxkKCRuYW1lLCRkZmx0ID0gRkFMU0UpCiAgewogICAgJGlkeCA9ICR0aGlzLT5faGFzRmllbGQoJG5hbWUpOwogICAgaWYoICRpZHggPT09IEZBTFNFICkKICAgICAgewoJcmV0dXJuICRkZmx0OwogICAgICB9CiAgICAkdmFsID0gdHJpbSgkdGhpcy0+X3JlY29yZFskaWR4XSwnXCciJyk7CiAgICByZXR1cm4gJHZhbDsKICB9CgoKICBwcml2YXRlIGZ1bmN0aW9uIF9nZXREZWZDb3VudCgpCiAgewogICAgcmV0dXJuIGNvdW50KCR0aGlzLT5fZGVmc19ieWluZGV4KTsKICB9CgoKICBwcml2YXRlIGZ1bmN0aW9uIF9nZXRGaWVsZENvdW50KCkgIHsKICAgIHJldHVybiBjb3VudCgkdGhpcy0+X3JlY29yZCk7CiAgfQoKCiAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0Q3VycmVuY3koJHN0cikKICB7CiAgICAkTG9jYWxlSW5mbyA9IGxvY2FsZWNvbnYoKTsKICAgICRjdXJyZW5jeV9zeW1ib2wgPSAnJCc7CiAgICBpZiggaXNzZXQoJExvY2FsZUluZm9bJ2N1cnJlbmN5X3N5bWJvbCddKSAmJiAkTG9jYWxlSW5mb1snY3VycmVuY3lfc3ltYm9sJ10gIT0gJycgKQogICAgICAkY3VycmVuY3lfc3ltYm9sID0gJExvY2FsZUluZm9bJ2N1cnJlbmN5X3N5bWJvbCddOwoKICAgICRzdHIgPSB0cmltKCRzdHIpOwogICAgJHN0ciA9IHRyaW0oJHN0ciwkY3VycmVuY3lfc3ltYm9sKTsKICAgICRzdHIgPSBzdHJfcmVwbGFjZSgkTG9jYWxlSW5mb1sibW9uX3Rob3VzYW5kc19zZXAiXSAsICIiLCAkc3RyKTsKICAgICRzdHIgPSBzdHJfcmVwbGFjZSgkTG9jYWxlSW5mb1sibW9uX2RlY2ltYWxfcG9pbnQiXSAsICIuIiwgJHN0cik7CiAgICAkdmFsID0gZmxvYXR2YWwoJHN0cik7IAogICAgcmV0dXJuICR2YWw7CiAgfQoKCiAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0RmllbGROYW1lc0xpa2UoJHByZWZpeCkKICB7CiAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5fZGVmc19ieWluZGV4KSApIHJldHVybiBGQUxTRTsKICAgICRyZXMgPSBhcnJheSgpOwogICAgZm9yKCRpID0gMDsgJGkgPCBjb3VudCgkdGhpcy0+X2RlZnNfYnlpbmRleCk7ICRpKysgKQogICAgICB7CgkkdG1wID0gdHJpbSh0cmltKCR0aGlzLT5fZGVmc19ieWluZGV4WyRpXSksJ1wnIicpOwoJaWYoIHN0YXJ0c3dpdGgoJHRtcCwkcHJlZml4KSApCgkgIHsKCSAgICAkcmVzW10gPSAkdG1wOwoJICB9CiAgICAgIH0KICAgIHJldHVybiAkcmVzOwogIH0KCgogIHByaXZhdGUgZnVuY3Rpb24gX2hhbmRsZUZpcnN0TGluZSgpCiAgewogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRub3cgPSAkZGItPkRiVGltZVN0YW1wKHRpbWUoKSk7CgogICAgLy8gMC4gIEdldCB0aGUgZmllbGQgZGVmaW5pdGlvbnMKICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0aGlzLT5fcmVjb3JkKTsgJGkrKyApCiAgICAgIHsKCSR0bXAgPSB0cmltKHRyaW0oJHRoaXMtPl9yZWNvcmRbJGldKSwnIlwnJyk7CgkkYnluYW1lWyR0bXBdID0gJGk7CiAgICAgIH0KICAgICR0aGlzLT5fZGVmc19ieW5hbWUgPSAkYnluYW1lOwogICAgJHRoaXMtPl9kZWZzX2J5aW5kZXggPSAkdGhpcy0+X3JlY29yZDsKCgogICAgLy8gMS4gZmlyc3QgbWFrZSBzdXJlIHdlIGhhdmUgYWxsIHRoZSByZXF1aXJlZCBmaWVsZHMuCiAgICAkcmVxdWlyZWRfZmllbGRzID0gZXhwbG9kZSgnLCcsJyNGTEFHLCNuYW1lLCNwcmljZScpOwogICAgZm9yZWFjaCggJHJlcXVpcmVkX2ZpZWxkcyBhcyAkb25lICkKICAgICAgewoJaWYoICFhcnJheV9rZXlfZXhpc3RzKCRvbmUsJHRoaXMtPl9kZWZzX2J5bmFtZSkgKQoJICB7CgkgICAgJHRoaXMtPl9zZXRFcnJvcignbWlzc2luZyByZXF1aXJlZCBmaWVsZCAnLiRvbmUpOwoJICAgIHJldHVybiBGQUxTRTsKCSAgfQogICAgICB9CgogICAgLy8gMi4gZ28gdGhyb3VnaCBhbmQgZ2V0IGNhdGVnb3JpZXMKICAgIC8vIGFuZCBtYWtlIHN1cmUgdGhleSBleGlzdAogICAgaWYoICR0aGlzLT5fZ2V0UG9saWN5VmFsdWUoJ2NyZWF0ZV9jYXRlZ29yaWVzJykgKQogICAgICB7CgkkY2F0cyA9ICR0aGlzLT5fZ2V0RmllbGROYW1lc0xpa2UoJyNDQVQnKTsKCWlmKCBpc19hcnJheSgkY2F0cykgKQoJICB7CgkgICAgJGZxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMgV0hFUkUgbmFtZSA9ID8nOwoJICAgICRpcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19jYXRlZ29yaWVzIChuYW1lLGNyZWF0ZV9kYXRlLG1vZGlmaWVkX2RhdGUpIFZBTFVFUyAoPywkbm93LCRub3cpIjsKCSAgICBmb3JlYWNoKCAkY2F0cyBhcyAkb25lICkKCSAgICAgIHsKCQkkdG1wID0gdHJpbShzdWJzdHIoJG9uZSw1KSk7CgkJJHRtcCA9IHRyaW0oJHRtcCwnIlwnJyk7CgkJaWYoIGVtcHR5KCR0bXApICkgY29udGludWU7CgkJJHRfaWQgPSAkZGItPkdldE9uZSgkZnF1ZXJ5LGFycmF5KCR0bXApKTsKCQlpZiggISR0X2lkICkKCQkgIHsKCQkgICAgLy8gb29wcywgZ290dGEgYWRkIGl0CgkJICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJGlxdWVyeSxhcnJheSgkdG1wKSk7CgkJICAgIGlmKCAhJGRiciApCgkJICAgICAgewoJCQkkdGhpcy0+X3NldEVycm9yKCdwcm9ibGVtIGNyZWF0aW5nIGNhdGVnb3J5ICcuJHRtcCk7CgkJCSR0aGlzLT5fc2V0RXJyb3IoJ0RFQlVHOiAnLiRkYi0+c3FsLicgLS0gJy4kZGItPkVycm9yTXNnKCkpOwoJCSAgICAgIH0KCQkgIH0KCSAgICAgIH0KCSAgfQogICAgICB9CgogICAgLy8gMy4gdGhlbiBmaWVsZHMKICAgIC8vIGFuZCBtYWtlIHN1cmUgdGhleSBleGlzdAogICAgaWYoICR0aGlzLT5fZ2V0UG9saWN5VmFsdWUoJ2NyZWF0ZV9maWVsZHMnKSApIHsKICAgICAgJGZpZWxkcyA9ICR0aGlzLT5fZ2V0RmllbGROYW1lc0xpa2UoJyNGSUVMRCcpOwogICAgICBpZiggaXNfYXJyYXkoJGZpZWxkcykgKSB7CgkkZmllbGRfdHlwZXMgPSBhcnJheV9rZXlzKHByb2R1Y3RfdXRpbHM6OmdldF9maWVsZF90eXBlcygpKTsKCSRmcXVlcnkgPSAnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMgV0hFUkUgbmFtZSA9ID8nOwoJJG9xdWVyeSA9ICdTRUxFQ1QgbWF4KGl0ZW1fb3JkZXIpICsgMSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzJzsKCSRpcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMgCiAgICAgICAgICAgICAgICAgICAgICAobmFtZSwgcHJvbXB0LCB0eXBlLCBtYXhfbGVuZ3RoLCBpdGVtX29yZGVyLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSwgcHVibGljKQogICAgICAgICAgICAgICAgICAgVkFMVUVTKD8sPyw/LD8sPywkbm93LCRub3csMSkiOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoJZm9yZWFjaCggJGZpZWxkcyBhcyAkb25lICkgewoJICAkdG1wID0gZXhwbG9kZSgnOicsJG9uZSk7CgkgIGlmKCBjb3VudCgkdG1wKSAhPSAzICkgY29udGludWU7CgkgICR0eXBlID0gdHJpbSh0cmltKCR0bXBbMV0pLCciXCcnKTsKCSAgJG5hbWUgPSB0cmltKHRyaW0oJHRtcFsyXSksJyJcJycpOwoJICBpZiggZW1wdHkoJHR5cGUpIHx8IGVtcHR5KCRuYW1lKSApIGNvbnRpbnVlOwoJICBpZiggIWluX2FycmF5KCR0eXBlLCRmaWVsZF90eXBlcykgKSB7CgkgICAgJHRoaXMtPl9zZXRFcnJvcignSW52YWxpZCBmaWVsZCB0eXBlOiAnLiR0eXBlLicgZm9yIGZpZWxkICcuJG5hbWUpOwoJICAgIHJldHVybiBGQUxTRTsKCSAgfQoJICAkdF9pZCA9ICRkYi0+R2V0T25lKCRmcXVlcnksYXJyYXkoJG5hbWUpKTsKCSAgaWYoICEkdF9pZCApIHsKCSAgICAkcHJvbXB0ID0gdWN3b3JkcygkbmFtZSk7CgkgICAgLy8gb29wcywgZ290dGEgYWRkIGl0LgoJICAgICRtYXggPSAkZGItPkdldE9uZSgkb3F1ZXJ5KTsKCSAgICBpZiggISRtYXggKSAkbWF4ID0gMDsKCSAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRpcXVlcnksYXJyYXkoJG5hbWUsJHByb21wdCwkdHlwZSwyNTUsJG1heCkpOwoJICAgIGlmKCAhJGRiciApIHsKCSAgICAgICR0aGlzLT5fc2V0RXJyb3IoJ1Byb2JsZW0gY3JlYXRpbmcgZmllbGQgJy4kbmFtZSk7CgkgICAgICAkdGhpcy0+X3NldEVycm9yKCdERUJVRzogJy4kZGItPnNxbC4nIC0tICcuJGRiLT5FcnJvck1zZygpKTsKCSAgICB9CgkgIH0KCX0KICAgICAgfQogICAgfQoKICAgIHJldHVybiBUUlVFOwogIH0KCgogIHByaXZhdGUgZnVuY3Rpb24gX2hhbmRsZVByb2R1Y3RMaW5lKCkKICB7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJG5vdyA9ICRkYi0+RGJUaW1lU3RhbXAodGltZSgpKTsKICAgIAogICAgLy8gZ2V0IHRoZSBpbmZvIGZvciB0aGUgcHJvZHVjdAogICAgLy8gYW5kIGluc2VydCBpdAogICAgJHRub3cgPSB0cmltKCRub3csIiciKTsKICAgICRuYW1lID0gJHRoaXMtPl9nZXRGaWVsZCgnI25hbWUnKTsKICAgIGlmKCBlbXB0eSgkbmFtZSkgKSB7CiAgICAgICR0aGlzLT5fc2V0RXJyb3IoImVtcHR5IHByb2R1Y3QgbmFtZSIpOwogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CiAgICAkZnF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgV0hFUkUgcHJvZHVjdF9uYW1lID0gPyc7CiAgICAkdF9pZCA9ICRkYi0+R2V0T25lKCRmcXVlcnksYXJyYXkoJG5hbWUpKTsKICAgICRpc191cGRhdGUgPSBGQUxTRTsKICAgIGlmKCAkdF9pZCApIHsKICAgICAgLy8gdWgtb2gsIGl0J3MgYSBkdXBsaWNhdGUgcHJvZHVjdC4KICAgICAgJGhhbmRsZXIgPSAkdGhpcy0+X2dldFBvbGljeVZhbHVlKCdvbl9kdXBsaWNhdGVfcHJvZHVjdCcpOwogICAgICBpZiggJGhhbmRsZXIgPT0gJ3NraXAnICkgewoJLy8gd29vaG9vLCB3ZSBnZXQgdG8gc2tpcCB0aGlzIHdob2xlIGxpbmUKCSR0aGlzLT5fc2V0RXJyb3IoImR1cGxpY2F0ZSBwcm9kdWN0ICRuYW1lIik7CglyZXR1cm4gRkFMU0U7CiAgICAgIH0KICAgICAgZWxzZSBpZiggJGhhbmRsZXIgPT0gJ3VwZGF0ZScgKSB7CgkvLyBpdCdzIGFuIHVwZGF0ZS4uLiBub3RoaW5nIGhlcmUuCgkkaXNfdXBkYXRlID0gVFJVRTsKICAgICAgfQogICAgICBlbHNlIHsKCS8vIHVoLW9oIHdlIGdvdHRhIGRlbGV0ZSB0aGlzIGV4aXN0aW5nIHByb2R1Y3QgZmlyc3QuCgkkdGhpcy0+X21vZHVsZS0+RGVsZXRlUHJvZHVjdCgkdF9pZCk7CgkkdF9pZCA9IG51bGw7CiAgICAgIH0KICAgIH0KCiAgICBpZiggISR0X2lkICkgewogICAgICAkaXF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHMKICAgICAgICAgICAgICAgICAocHJvZHVjdF9uYW1lLGRldGFpbHMscHJpY2UsY3JlYXRlX2RhdGUsbW9kaWZpZWRfZGF0ZSx0YXhhYmxlLHN0YXR1cyx3ZWlnaHQsc2t1KQogICAgICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/LD8pIjsKICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkaXF1ZXJ5LGFycmF5KCR0aGlzLT5fZ2V0RmllbGQoJyNuYW1lJyksCgkJCQkJJHRoaXMtPl9nZXRGaWVsZCgnI2RldGFpbHMnLCcnKSwKCQkJCQkkdGhpcy0+X2dldEN1cnJlbmN5KCR0aGlzLT5fZ2V0RmllbGQoJyNwcmljZScsMCkpLAoJCQkJCSR0aGlzLT5fZ2V0RmllbGQoJyNjcmVhdGVfZGF0ZScsJHRub3cpLAoJCQkJCSR0aGlzLT5fZ2V0RmllbGQoJyNtb2RpZmllZF9kYXRlJywkdG5vdyksCgkJCQkJJHRoaXMtPl9nZXRGaWVsZCgnI3RheGFibGUnLDEpLAoJCQkJCSR0aGlzLT5fZ2V0RmllbGQoJyNzdGF0dXMnLCdwdWJsaXNoZWQnKSwKCQkJCQkkdGhpcy0+X2dldEZpZWxkKCcjd2VpZ2h0JywwKSwKCQkJCQkkdGhpcy0+X2dldEZpZWxkKCcjc2t1JywnJykpKTsKICAgICAgaWYoICEkZGJyICkgewoJJHRoaXMtPl9zZXRFcnJvcigncHJvZHVjdCBpbnNlcnQgZmFpbGVkJyk7CglyZXR1cm4gRkFMU0U7CiAgICAgIH0KICAgICAgJHByb2R1Y3RfaWQgPSAkZGItPkluc2VydF9JRCgpOwogICAgfQogICAgZWxzZSB7CiAgICAgIC8vIGl0J3MgYSBwcm9kdWN0IHVwZGF0ZS4KICAgICAgJHByb2R1Y3RfaWQgPSAkdF9pZDsKICAgICAgJHVxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cwogICAgICAgICAgICAgICAgIFNFVCBwcm9kdWN0X25hbWUgPSA/LCBkZXRhaWxzID0gPywgcHJpY2UgPSA/LCBtb2RpZmllZF9kYXRlID0gPywgdGF4YWJsZSA9ID8sIAogICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSA/LCB3ZWlnaHQgPSA/LCBza3UgPSA/CiAgICAgICAgICAgICAgICAgV0hFUkUgaWQgPSA/JzsKICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkdXF1ZXJ5LGFycmF5KCR0aGlzLT5fZ2V0RmllbGQoJyNuYW1lJyksCgkJCQkgICAgICAgICR0aGlzLT5fZ2V0RmllbGQoJyNkZXRhaWxzJywnJyksCgkJCQkgICAgICAgICR0aGlzLT5fZ2V0Q3VycmVuY3koJHRoaXMtPl9nZXRGaWVsZCgnI3ByaWNlJywwKSksCgkJCQkgICAgICAgICR0aGlzLT5fZ2V0RmllbGQoJyNtb2RpZmllZF9kYXRlJywkdG5vdyksCgkJCQkgICAgICAgICR0aGlzLT5fZ2V0RmllbGQoJyN0YXhhYmxlJywxKSwKCQkJCSAgICAgICAgJHRoaXMtPl9nZXRGaWVsZCgnI3N0YXR1cycsJ3B1Ymxpc2hlZCcpLAoJCQkJICAgICAgICAkdGhpcy0+X2dldEZpZWxkKCcjd2VpZ2h0JywwKSwKCQkJCSAgICAgICAgJHRoaXMtPl9nZXRGaWVsZCgnI3NrdScsJycpLAoJCQkJICAgICAgICAkcHJvZHVjdF9pZCkpOwogICAgfQoKCiAgICAvLyBnZXQgdGhlIGhpZXJhcmNoeQogICAgLy8gYW5kIGluc2VydCBpdAogICAgJGhpZXIgPSAkdGhpcy0+X2dldEZpZWxkKCcjSElFUicpOwogICAgaWYoICRoaWVyICkgewogICAgICAkdG1wID0gZXhwbG9kZSgnPj4nLCRoaWVyKTsKICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKSB7CgkkdG1wWyRpXSA9IHRyaW0odHJpbSgkdG1wWyRpXSksJyJcJycpOwogICAgICB9CiAgICAgICRoaWVyID0gaW1wbG9kZSgnIHwgJywkdG1wKTsKCiAgICAgICRoaWQgPSAkdGhpcy0+X2dldEhpZXJhcmNoeUlkKCRoaWVyKTsKICAgICAgaWYoICRoaWQgKSB7CgkkdCA9ICR0aGlzLT5fc2V0SGllcmFyY2h5SWQoJHByb2R1Y3RfaWQsJGhpZCk7CiAgICAgIH0KICAgIH0KCiAgICAvLyBnZXQgdGhlIGluZm8gZm9yIGZpZWxkcwogICAgLy8gYW5kIGluc2VydCB0aGVtCiAgICBpZiggJGlzX3VwZGF0ZSAmJiAkdGhpcy0+X2dldFBvbGljeVZhbHVlKCdjbGVhcmZpZWxkcycpICkgewogICAgICAkcXVlcnkgPSAnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgV0hFUkUgcHJvZHVjdF9pZCA9ID8nOwogICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRwcm9kdWN0X2lkKSk7CiAgICB9CiAgICAkZmllbGRzID0gJHRoaXMtPl9nZXRGaWVsZE5hbWVzTGlrZSgnI0ZJRUxEJyk7CiAgICBpZiggaXNfYXJyYXkoJGZpZWxkcykgKSB7CiAgICAgIGZvcmVhY2goICRmaWVsZHMgYXMgJG9uZSApIHsKCSR0bXAgPSBleHBsb2RlKCc6Jywkb25lKTsKCWlmKCBjb3VudCgkdG1wKSAhPSAzICkgY29udGludWU7CgkkbmFtZSA9IHRyaW0odHJpbSgkdG1wWzJdKSwnIlwnJyk7CgkkdHlwZV9hID0gdHJpbSh0cmltKCR0bXBbMV0pLCciXCcnKTsKCSR2YWwgPSAkdGhpcy0+X2dldEZpZWxkKCRvbmUpOwoJJHZhbCA9IHRyaW0odHJpbSgkdmFsKSwnIlwnJyk7CgoJJGZpZCA9ICR0aGlzLT5fZ2V0RmllbGRJZCgkbmFtZSk7CglpZiggJGZpZCA9PT0gRkFMU0UgKSB7CgkgICR0aGlzLT5fc2V0RXJyb3IoJ2ZpZWxkICcuJG5hbWUuJyBub3QgZm91bmQnKTsKCSAgY29udGludWU7Cgl9CgoJJHR5cGUgPSAkdGhpcy0+X2dldEZpZWxkVHlwZSgkbmFtZSk7CglpZiggJHR5cGVfYSAhPSAkdHlwZSApIHsKCSAgJHRoaXMtPl9zZXRFcnJvcignSW52YWxpZCB0eXBlIGZvciBmaWVsZCAnLiRuYW1lKTsKCSAgY29udGludWU7Cgl9CgoJaWYoICR0eXBlID09ICdzdWJzY3JpcHRpb24nICkgewoJICAvLyB3ZSBkb24ndCBpbXBvcnQgdGhlc2UuCgkgIGNvbnRpbnVlOwoJfQoKCWlmKCAkdHlwZSA9PSAnZGltZW5zaW9ucycgKSB7CgkgICRwYXJ0cyA9IGV4cGxvZGUoJywnLCR2YWwpOwoJICBpZiggY291bnQoJHBhcnRzKSAhPSAzICkgewoJICAgICR0aGlzLT5fc2V0RXJyb3IoJ0ludmFsaWQgdmFsdWUgZm9yIGRpbWVuc2lvbnMgZmllbGQnKTsKCSAgICBjb250aW51ZTsKCSAgfQoJICAkZGF0YSA9IGFycmF5KCdsZW5ndGgnPT4nJywnd2lkdGgnPT4nJywnaGVpZ2h0Jz0+JycpOwoJICAkZXJyID0gZmFsc2U7CgkgIGZvcmVhY2goICRwYXJ0cyBhcyAkb25lICkgewoJICAgIGxpc3QoJGssJHYpID0gZXhwbG9kZSgnOicsJG9uZSwyKTsKCSAgICBzd2l0Y2goJGspIHsKCSAgICBjYXNlICdsJzoKCSAgICAgICRkYXRhWydsZW5ndGgnXSA9ICR2OwoJICAgICAgYnJlYWs7CgkgICAgY2FzZSAndyc6CgkgICAgICAkZGF0YVsnd2lkdGgnXSA9ICR2OwoJICAgICAgYnJlYWs7CgkgICAgY2FzZSAnaCc6CgkgICAgICAkZGF0YVsnaGVpZ2h0J10gPSAkdjsKCSAgICAgIGJyZWFrOwoJICAgIGRlZmF1bHQ6CgkgICAgICAkdGhpcy0+X3NldEVycm9yKCdJbnZhbGlkIHZhbHVlIGZvciBkaW1lbnNpb25zIGZpZWxkJyk7CgkgICAgICAkZXJyID0gdHJ1ZTsKCSAgICAgIGJyZWFrOwoJICAgIH0KCSAgfQoJICBpZiggJGVyciApIGNvbnRpbnVlOwoJICAkdmFsID0gc2VyaWFsaXplKCRkYXRhKTsKCX0KCgkkaW5zZXJ0ID0gdHJ1ZTsKCWlmKCAkdHlwZSA9PSAnaW1hZ2UnKSB7CgkgIC8vIGl0J3MgYW4gaW1hZ2UuLi4gCgkgIGlmKCAhJHRoaXMtPl9nZXRQb2xpY3lWYWx1ZSgnaGFuZGxlX2ltYWdlcycpIHx8IGVtcHR5KCR2YWwpCgkgICAgICB8fCBlbXB0eSgkdGhpcy0+X2ltYWdlSGFuZGxlcikgfHwgIWlzX29iamVjdCgkdGhpcy0+X2ltYWdlSGFuZGxlcikgKSB7CgkgICAgLy8gd2UncmUgbm90IGhhbmRsaW5nIGltYWdlcywgb3IgdGhlIHZhbHVlIGlzIGVtcHR5LgoJICAgICRpbnNlcnQgPSBmYWxzZTsKCSAgfQoJICBlbHNlIHsKCSAgICAvLyBidWlsZCBzb3VyY2UgbmFtZQoJICAgICRyZXMgPSAkdGhpcy0+X2ltYWdlSGFuZGxlci0+aGFuZGxlSW1hZ2UoJHByb2R1Y3RfaWQsJHZhbCk7CgkgICAgaWYoICRyZXMgPT0gRkFMU0UgKSB7CgkgICAgICAkdGhpcy0+X3NldEVycm9yKCdwcm9ibGVtIGhhbmRsaW5nIGltYWdlICcuJHZhbCk7CgkgICAgICAkaW5zZXJ0ID0gZmFsc2U7CgkgICAgfQoJICAgIGVsc2UgewoJICAgICAgJHZhbCA9ICRyZXM7CgkgICAgfQoJICB9Cgl9CgoJaWYoICRpbnNlcnQgKSB7CgkgIC8vIGdvb2QgdG8gaW5zZXJ0LgoJICBpZiggISR0aGlzLT5fc2V0RmllbGRWYWx1ZSgkcHJvZHVjdF9pZCwkZmlkLCR2YWwpICkgewoJICAgIGNvbnRpbnVlOwoJICB9Cgl9CQogICAgICB9IC8vIGZpZWxkcy4KICAgIH0KCiAgICAvLyBnZXQgdGhlIGluZm8gZm9yIGNhdGVnb3JpZXMKICAgIC8vIGFuZCBpbnNlcnQgdGhlbQogICAgLy8gaGVyZSBzaG91bGQgd2UgbnVrZSBleGlzdGluZyBjYXRlZ29yaWVzPwogICAgaWYoICRpc191cGRhdGUgJiYgJHRoaXMtPl9nZXRQb2xpY3lWYWx1ZSgnY2xlYXJjYXRlZ29yaWVzJykgKSB7CiAgICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcwogICAgICAgICAgICAgICAgV0hFUkUgcHJvZHVjdF9pZCA9ID8nOwogICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRwcm9kdWN0X2lkKSk7CiAgICB9CiAgICAkY2F0cyA9ICR0aGlzLT5fZ2V0RmllbGROYW1lc0xpa2UoJyNDQVQnKTsKICAgIGlmKCBpc19hcnJheSgkY2F0cykgKSB7CiAgICAgICRpcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19wcm9kdWN0X2NhdGVnb3JpZXMKICAgICAgICAgICAgICAgICAocHJvZHVjdF9pZCxjYXRlZ29yeV9pZCxjcmVhdGVfZGF0ZSxtb2RpZmllZF9kYXRlKQogICAgICAgICAgICAgICAgIFZBTFVFUyAoPyw/LCRub3csJG5vdykiOyAKICAgICAgZm9yZWFjaCggJGNhdHMgYXMgJG9uZSApIHsKCSR0bXAgPSBleHBsb2RlKCc6Jywkb25lKTsKCWlmKCBjb3VudCgkdG1wKSAhPSAyICkgY29udGludWU7CgkkbmFtZSA9IHRyaW0odHJpbSgkdG1wWzFdKSwnIlwnJyk7CgkkdmFsID0gJHRoaXMtPl9nZXRGaWVsZCgkb25lKTsKCSR2YWwgPSB0cmltKHRyaW0oJHZhbCksJyJcJycpOwoKCSRjaWQgPSAkdGhpcy0+X2dldENhdGVnb3J5SWQoJG5hbWUpOwoJaWYoICEoaW50KSR2YWwgJiYgISR0aGlzLT5fZ2V0UG9saWN5VmFsdWUoJ2NsZWFyY2F0ZWdvcmllcycpICkgewoJICBpZiggJGNpZCApIHsKCSAgICAkZHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzIAogICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIHByb2R1Y3RfaWQgPSA/IEFORCBjYXRlZ29yeV9pZCA9ID8nOwoJICAgICRkYi0+RXhlY3V0ZSgkZHF1ZXJ5LGFycmF5KCRwcm9kdWN0X2lkLCRjaWQpKTsKCSAgICBjb250aW51ZTsKCSAgfQoJfQkKCS8vIGdldCB0aGUgY2F0ZWdvcnkgaWQgZnJvbSBjYWNoZQoJaWYoICRjaWQgPT09IEZBTFNFICkgewoJICAkdGhpcy0+X3NldEVycm9yKCdmaWVsZCAnLiRuYW1lLicgbm90IGZvdW5kJyk7Cgl9CgllbHNlIGlmKCAkdmFsICkgewoJICAkZGJyID0gJGRiLT5FeGVjdXRlKCRpcXVlcnksYXJyYXkoJHByb2R1Y3RfaWQsJGNpZCkpOwoJICBpZiggISRkYnIgKSB7CgkgICAgJHRoaXMtPl9zZXRFcnJvcigicHJvYmxlbSBhc3NvY2lhdGluZyBjYXRlZ29yeSAkY2lkIHdpdGggcHJvZHVjdCAkcHJvZHVjdF9pZCIpOwoJICB9Cgl9CiAgICAgIH0KICAgIH0KCiAgICAvLyBnZXQgYXR0cmlidXRlcwogICAgLy8gaW5zZXJ0IHRoZW0uCiAgICBpZiggJGlzX3VwZGF0ZSAmJiAkdGhpcy0+X2dldFBvbGljeVZhbHVlKCdjbGVhcmF0dHJpYnMnKSApIHsKICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBhdHRyaWJfc2V0X2lkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJzZXRzCiAgICAgICAgICAgICAgICBXSEVSRSBwcm9kdWN0X2lkID0gPyc7CiAgICAgICR0bXAgPSAkZGItPkdldENvbCgkcXVlcnksYXJyYXkoJHByb2R1Y3RfaWQpKTsKICAgICAgCiAgICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnV0ZXMKICAgICAgICAgICAgICAgIFdIRVJFIGF0dHJpYl9zZXRfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJHRtcCkuJyknOwogICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCiAgICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnNldHMKICAgICAgICAgICAgICAgIFdIRVJFIHByb2R1Y3RfaWQgPSA/JzsKICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkcHJvZHVjdF9pZCkpOwogICAgfQogICAgJHRtcCA9ICR0aGlzLT5fZ2V0RmllbGQoJyNBVFRSSUJTJyk7CiAgICBpZiggIWVtcHR5KCR0bXApICkgewogICAgICAkYXR0cmlicyA9IGV4cGxvZGUoJy0tJywkdG1wKTsKICAgICAgZm9yZWFjaCggJGF0dHJpYnMgYXMgJG9uZSApIHsKCSRvbmUgPSB0cmltKCRvbmUpOwoJJG9uZSA9IHRyaW0oJG9uZSwnIlwnJyk7CglpZiggc3Ryc3RyKCRvbmUsJzonKSA9PT0gRkFMU0UgKSBjb250aW51ZTsKCWxpc3QoJHNldCwkYXR0ciwkYWRqLCRza3UpID0gZXhwbG9kZSgnOicsJG9uZSk7Cgkkc2V0ID0gdHJpbSgkc2V0LCciXCcnKTsKCSRzZXQgPSB0cmltKCRzZXQpOwoJJGF0dHIgPSB0cmltKCRhdHRyLCciXCcnKTsKCSRhdHRyID0gdHJpbSgkYXR0cik7CgkkYWRqID0gdHJpbSgkYWRqLCciXCcnKTsKCSRhZGogPSB0cmltKCRhZGopOwoJJHNrdSA9IHRyaW0oJHNrdSwnIlwnJyk7Cgkkc2t1ID0gdHJpbSgkc2t1KTsKCQoJaWYoIGVtcHR5KCRzZXQpIHx8IGVtcHR5KCRhdHRyKSApIGNvbnRpbnVlOwoJCgkvLyBhZGQgdGhlIGF0dHJpYnV0ZSBzZXQKCSRmcXVlcnkgPSAnU0VMRUNUIGF0dHJpYl9zZXRfaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnNldHMKICAgICAgICAgICAgICAgICAgIFdIRVJFIHByb2R1Y3RfaWQgPSA/IEFORCBhdHRyaWJfc2V0X25hbWUgPSA/JzsKCSR0X2lkID0gJGRiLT5HZXRPbmUoJGZxdWVyeSxhcnJheSgkcHJvZHVjdF9pZCwkc2V0KSk7CglpZiggISR0X2lkICkgewoJICAkc3F1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlic2V0cwogICAgICAgICAgICAgICAgICAgKHByb2R1Y3RfaWQsIGF0dHJpYl9zZXRfbmFtZSkgVkFMVUVTICg/LD8pJzsKCSAgJGRiLT5FeGVjdXRlKCRzcXVlcnksYXJyYXkoJHByb2R1Y3RfaWQsJHNldCkpOwoJICAkdF9pZCA9ICRkYi0+SW5zZXJ0X0lEKCk7Cgl9CgoJLy8gYWRkIHRoZSBhdHRyaWJ1dGUgdmFsdWUKCSRmcXVlcnkgPSAnU0VMRUNUIGF0dHJpYl9pZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcwogICAgICAgICAgICAgICAgICAgV0hFUkUgYXR0cmliX3NldF9pZCA9ID8gQU5EIGF0dHJpYl90ZXh0ID0gPyc7CgkkYXR0cl9pZCA9ICRkYi0+R2V0T25lKCRmcXVlcnksYXJyYXkoJHRfaWQsJGF0dHIpKTsKCWlmKCAhJGF0dHJfaWQgKSB7CgkgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnV0ZXMKICAgICAgICAgICAgICAgICAgICAoYXR0cmliX3NldF9pZCxhdHRyaWJfdGV4dCxhdHRyaWJfYWRqdXN0bWVudCxza3UpCiAgICAgICAgICAgICAgICAgICAgVkFMVUVTICg/LD8sPyw/KSc7CgkgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHRfaWQsJGF0dHIsJGFkaiwkc2t1KSk7Cgl9CiAgICAgIAogICAgICB9IC8vIGZvcmVhY2gKICAgIH0KCiAgICByZXR1cm4gVFJVRTsKICB9CgoKICBwcml2YXRlIGZ1bmN0aW9uIF90ZXN0Rmlyc3RMaW5lKCYkbWVzc2FnZXMpCiAgewogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdGhpcy0+X3JlY29yZCk7ICRpKysgKQogICAgICB7CgkkdG1wID0gdHJpbSh0cmltKCR0aGlzLT5fcmVjb3JkWyRpXSksJyJcJycpOwoJJGJ5bmFtZVskdG1wXSA9ICRpOwogICAgICB9CiAgICAkdGhpcy0+X2RlZnNfYnluYW1lID0gJGJ5bmFtZTsKICAgICR0aGlzLT5fZGVmc19ieWluZGV4ID0gJHRoaXMtPl9yZWNvcmQ7CgogICAgJHJlcXVpcmVkX2ZpZWxkcyA9IGV4cGxvZGUoJywnLCcjRkxBRywjbmFtZSwjcHJpY2UnKTsKICAgIGZvcmVhY2goICRyZXF1aXJlZF9maWVsZHMgYXMgJG9uZSApCiAgICAgIHsKCWlmKCAhYXJyYXlfa2V5X2V4aXN0cygkb25lLCR0aGlzLT5fZGVmc19ieW5hbWUpICkKCSAgewoJICAgICR0aGlzLT5fc2V0RXJyb3IoJ21pc3NpbmcgcmVxdWlyZWQgZmllbGQgJy4kb25lKTsKCSAgICByZXR1cm4gRkFMU0U7CgkgIH0KICAgICAgfQoKICAgICRtZXNzYWdlc1tdID0gJ2ZvdW5kIGFsbCByZXF1aXJlZCBmaWVsZHMnOwoKICAgICRjYXRzID0gJHRoaXMtPl9nZXRGaWVsZE5hbWVzTGlrZSgnI0NBVCcpOwogICAgaWYoIGlzX2FycmF5KCRjYXRzKSApCiAgICAgIHsKCWZvcmVhY2goICRjYXRzIGFzICRvbmUgKQoJICB7CgkgICAgJGZxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMgV0hFUkUgbmFtZSA9ID8nOwoKCSAgICAkdG1wID0gdHJpbShzdWJzdHIoJG9uZSw1KSk7CgkgICAgJHRtcCA9IHRyaW0oJHRtcCwnIlwnJyk7CgkgICAgaWYoIGVtcHR5KCR0bXApICkgY29udGludWU7CgkgICAgJHRfaWQgPSAkZGItPkdldE9uZSgkZnF1ZXJ5LGFycmF5KCR0bXApKTsKCSAgICBpZiggJHRfaWQgKQoJICAgICAgewoJCSRtZXNzYWdlc1tdID0gJ2ZvdW5kIGV4aXN0aW5nIGNhdGVnb3J5ICcuJHRtcDsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJG1lc3NhZ2VzW10gPSAndW5rbm93biBjYXRlZ29yeSAnLiR0bXA7CgkgICAgICB9CgkgIH0KICAgICAgfQogICAgCiAgICAkZmllbGRzID0gJHRoaXMtPl9nZXRGaWVsZE5hbWVzTGlrZSgnI0ZJRUxEJyk7CiAgICBpZiggaXNfYXJyYXkoJGZpZWxkcykgKQogICAgICB7CgkkZmllbGRfdHlwZXMgPSBhcnJheV9rZXlzKHByb2R1Y3RfdXRpbHM6OmdldF9maWVsZF90eXBlcygpKTsKCSRmcXVlcnkgPSAnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMgV0hFUkUgbmFtZSA9ID8nOwoJZm9yZWFjaCggJGZpZWxkcyBhcyAkb25lICkKCSAgewoJICAgICR0bXAgPSBleHBsb2RlKCc6Jywkb25lKTsKCSAgICBpZiggY291bnQoJHRtcCkgIT0gMyApIGNvbnRpbnVlOwoJICAgICR0eXBlID0gdHJpbSh0cmltKCR0bXBbMV0pLCciXCcnKTsKCSAgICAkbmFtZSA9IHRyaW0odHJpbSgkdG1wWzJdKSwnIlwnJyk7CgkgICAgaWYoIGVtcHR5KCR0eXBlKSB8fCBlbXB0eSgkbmFtZSkgKQoJICAgICAgewoJCSR0aGlzLT5fc2V0RXJyb3IoJ0ludmFsaWQgZmllbGQgZGVmaW5pdGlvbjogJy4kb25lKTsKCQlyZXR1cm4gRkFMU0U7CgkgICAgICB9CgkgICAgaWYoICFpbl9hcnJheSgkdHlwZSwkZmllbGRfdHlwZXMpICkKCSAgICAgIHsKCQkkdGhpcy0+X3NldEVycm9yKCdJbnZhbGlkIGZpZWxkIHR5cGU6ICcuJHR5cGUpOwoJCXJldHVybiBGQUxTRTsKCSAgICAgIH0KCSAgICAkdF9pZCA9ICRkYi0+R2V0T25lKCRmcXVlcnksYXJyYXkoJG5hbWUpKTsKCSAgICBpZiggISR0X2lkICkKCSAgICAgIHsKCQkkbWVzc2FnZXNbXSA9ICd1bmtub3duIGZpZWxkICcuJG5hbWU7CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCSRtZXNzYWdlc1tdID0gJ2ZvdW5kIGZpZWxkICcuJG5hbWUuJyBvZiB0eXBlICcuJHR5cGU7CgkgICAgICB9CgkgIH0KICAgICAgfQoKICAgIHJldHVybiBUUlVFOwogIH0KCgogIHByaXZhdGUgZnVuY3Rpb24gX3Rlc3ROZXdQcm9kdWN0KCYkbWVzc2FnZSkKICB7CiAgICAvLyBtYWtlIHN1cmUgd2UgaGF2ZSB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mIGZpZWxkcwogICAgLy8gYWNjb3JkaW5nIHRvIHRoZSBoZWFkZXIuCiAgICBpZiggJHRoaXMtPl9nZXRGaWVsZENvdW50KCkgIT0gJHRoaXMtPl9nZXREZWZDb3VudCgpICkKICAgICAgewoJJHRoaXMtPl9zZXRFcnJvcignaW52YWxpZCBmaWVsZCBjb3VudCAoJy4kdGhpcy0+X2dldEZpZWxkQ291bnQoKS4nIG9mIGV4cGVjdGVkICcuJHRoaXMtPl9nZXREZWZDb3VudCgpLicpJyk7CglyZXR1cm4gRkFMU0U7CiAgICAgIH0KCiAgICByZXR1cm4gVFJVRTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gdGVzdExpbmUoJGxpbmUsJiRtZXNzYWdlcykKICB7CiAgICAkcG9zID0gc3RycG9zKCRsaW5lLCcvLycpOwogICAgaWYoICRwb3MgIT09IEZBTFNFICkKICAgICAgewoJJGxpbmUgPSBzdWJzdHIoJGxpbmUsMCwkcG9zKTsKICAgICAgfQogICAgJGxpbmUgPSB0cmltKCRsaW5lKTsKICAgIGlmKCBlbXB0eSgkbGluZSkgKSByZXR1cm4gVFJVRTsKICAgIAogICAgJHJlcyA9ICR0aGlzLT5fc2V0TGluZSgkbGluZSk7CiAgICBpZiggJHJlcyA9PT0gRkFMU0UgKSByZXR1cm4gRkFMU0U7CgogICAgaWYoICR0aGlzLT5fbGluZW51bSA9PSAxICkKICAgICAgewoJJHJlcyA9ICR0aGlzLT5fdGVzdEZpcnN0TGluZSgkbWVzc2FnZXMpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCWlmKCAkdGhpcy0+X2dldEZpZWxkKCcjRkxBRycpID09ICdQJyApCgkgIHsKCSAgICAkcmVzID0gJHRoaXMtPl90ZXN0TmV3UHJvZHVjdCgkbWVzc2FnZXMpOwoJICB9CgllbHNlCgkgIHsKCSAgICAkdGhpcy0+X3NldEVycm9yKCdpbnZhbGlkIGZpZWxkOiAjRkxBRycpOwoJICAgICRyZXMgPSBGQUxTRTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gJHJlczsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlTGluZSgkbGluZSkKICB7CiAgICAvLyB0cmltIG9mZiBjb21tZW50cy4KICAgICRwb3MgPSBzdHJwb3MoJGxpbmUsJy8vJyk7CiAgICBpZiggJHBvcyAhPT0gRkFMU0UgKQogICAgICB7CgkkbGluZSA9IHN1YnN0cigkbGluZSwwLCRwb3MpOwogICAgICB9CiAgICAkbGluZSA9IHRyaW0oJGxpbmUpOwogICAgaWYoIGVtcHR5KCRsaW5lKSApIHJldHVybiBUUlVFOwoKICAgICRyZXMgPSAkdGhpcy0+X3NldExpbmUoJGxpbmUpOwogICAgaWYoICRyZXMgPT09IEZBTFNFICkgcmV0dXJuIEZBTFNFOwogICAgaWYoICR0aGlzLT5fbGluZW51bSA9PSAxICkgewogICAgICAkcmVzID0gJHRoaXMtPl9oYW5kbGVGaXJzdExpbmUoKTsKICAgIH0KICAgIGVsc2UgewogICAgICBpZiggJHRoaXMtPl9nZXRGaWVsZCgnI0ZMQUcnKSA9PSAnUCcgKSB7CgkkcmVzID0gJHRoaXMtPl90ZXN0TmV3UHJvZHVjdCgkbWVzc2FnZXMpOwoJaWYoICRyZXMgKSB7CgkgICRyZXMgPSAkdGhpcy0+X2hhbmRsZVByb2R1Y3RMaW5lKCk7Cgl9CiAgICAgIH0gZWxzZSB7CgkkdGhpcy0+X3NldEVycm9yKCdpbnZhbGlkIGZpZWxkOiAjRkxBRycpOwoJJHJlcyA9IEZBTFNFOwogICAgICB9CiAgICB9CgogICAgcmV0dXJuICRyZXM7CiAgfQoKCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIGlzX25ld19yZWNvcmQoJGxpbmUpCiAgewogICAgLy8gYSBmdW5jdGlvbiB0byB0ZXN0IGlmIHRoaXMgbGluZSBkZW5vdGVzIHRoZSBzdGFydCBvZiBhIG5ldyByZWNvcmQuCiAgICAkdmFsaWQgPSBhcnJheSgnI0ZMQUcnLCdQJywnIiNGTEFHIicsJyJQIicpOwoKICAgIGZvcmVhY2goICR2YWxpZCBhcyAkb25lICkKICAgICAgewoJJG9uZSAuPSAkdGhpcy0+X2RlbGltOwoJaWYoIHN0YXJ0c3dpdGgoJGxpbmUsJG9uZSkgKSByZXR1cm4gVFJVRTsKICAgICAgfQogICAgcmV0dXJuIEZBTFNFOwogIH0KCgogIHByaXZhdGUgZnVuY3Rpb24gbXlfZmdldHMoJGZoKQogIHsKICAgIGlmKCAhJGZoICkgcmV0dXJuOwogICAgJHBvczEgPSBmdGVsbCgkZmgpOwogICAgCiAgICAkbGluZSA9IGZnZXRzKCRmaCk7CiAgICBpZiggc3RycG9zKCRsaW5lLCJcciIpID09PSBGQUxTRSApCiAgICAgIHsKCXJldHVybiAkbGluZTsKICAgICAgfQogICAgCiAgICAvLyBsaW5lIGlzIHByb2JhYmx5IGEgY3JhcHB5IG1hYyBsaW5lLgogICAgJGxlbjEgPSBzdHJsZW4oJGxpbmUpOwogICAgJHBvcyA9IHN0cnBvcygkbGluZSwiXHIiKTsKICAgIAogICAgJGxpbmUgPSBzdWJzdHIoJGxpbmUsMCwkcG9zKTsKICAgIGZzZWVrKCRmaCwoJGxlbjEgLSAkcG9zIC0xICkgKiAtMSxTRUVLX0NVUik7CiAgICByZXR1cm4gJGxpbmU7ICAgIAogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfdW5wYXJzZWRfcmVjb3JkKCRmaCkKICB7CiAgICAkbGluZSA9ICcnOwogICAgd2hpbGUoICFmZW9mKCRmaCkgKSB7CiAgICAgICRwb3MgPSBmdGVsbCgkZmgpOwogICAgICAkdGRhdGEgPSAkdGhpcy0+bXlfZmdldHMoJGZoKTsKICAgICAgaWYoICEkdGhpcy0+aXNfbmV3X3JlY29yZCgkdGRhdGEpICkgewoJJGxpbmUgLj0gJHRkYXRhOwoJY29udGludWU7CiAgICAgIH0KCiAgICAgIGlmKCBzdHJsZW4oJGxpbmUpID4gMCApIHsKCWZzZWVrKCRmaCwkcG9zKTsKCWJyZWFrOwogICAgICB9CiAgICAgICRsaW5lID0gJHRkYXRhOwogICAgfQoKICAgIHJldHVybiAkbGluZTsKICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwoKCgojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/class.products_query.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBQcm9kdWN0cyAoYykgMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBwcm9kdWN0c19xdWVyeSBpbXBsZW1lbnRzIEFycmF5QWNjZXNzCnsKICBwcml2YXRlIHN0YXRpYyAkX2tleXMgPSBhcnJheSgncHJvZHVjdGlkJywncHJvZHVjdF9pZCcsJ3Byb2R1Y3RsaXN0JywnY2F0ZWdvcnknLCdjYXRlZ29yeWlkJywnZXhjbHVkZWNhdCcsJ2hpZXJhcmNoeScsJ2hpZXJhcmNoeWlkJywnZmllbGRpZCcsJ2ZpZWxkdmFsJywnc29ydG9yZGVyJywKCQkJCSdzb3J0YnknLCdzb3J0dHlwZScsJ3BhZ2VsaW1pdCcsJ2xpbWl0JywncGFnZScsJ3N0YXR1cycpOwogIHByaXZhdGUgc3RhdGljICRfc29ydGluZ3MgPSBhcnJheSgnaWQnLCdwcm9kdWN0X25hbWUnLCdwcmljZScsJ2NyZWF0ZV9kYXRlJywnbW9kaWZpZWQnLCdzdGF0dXMnLCd3ZWlnaHQnLCdyYW5kb20nKTsKICBwcml2YXRlICRfZGF0YSA9IGFycmF5KCk7CiAgcHJpdmF0ZSAkX29yaWdwYXJtcyA9IG51bGw7CiAgcHJpdmF0ZSAkX3NvcnRmaWVsZCA9IDA7CiAgCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRkYXRhID0gYXJyYXkoKSkKICB7CiAgICAkdGhpcy0+X29yaWdwYXJtcyA9ICRkYXRhOwogICAgJHRoaXMtPnJlc2V0KCk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gcmVzZXQoKQogIHsKICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1Byb2R1Y3RzJyk7CiAgICAkdGhpcy0+X2RhdGFbJ3BhZ2VsaW1pdCddID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnc3VtbWFyeV9wYWdlbGltaXQnLDEwMDAwKTsKICAgICR0aGlzLT5fZGF0YVsnc29ydGJ5J10gPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdzb3J0YnknLCdwcm9kdWN0X25hbWUnKTsKICAgICR0aGlzLT5fZGF0YVsnc29ydG9yZGVyJ10gPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdzb3J0b3JkZXInLCdERVNDJyk7CiAgICAkdGhpcy0+X2RhdGFbJ3N0YXR1cyddID0gJ3B1Ymxpc2hlZCc7CgkkdGhpcy0+X2RhdGFbJ3BhZ2UnXSA9IDE7CgogICAgZm9yZWFjaCggJHRoaXMtPl9vcmlncGFybXMgYXMgJGtleSA9PiAkdmFsdWUgKSB7CiAgICAgIGlmKCBpbl9hcnJheSgka2V5LHNlbGY6OiRfa2V5cykgKSB7CgkJJHRoaXNbJGtleV0gPSAkdmFsdWU7CiAgICAgIH0KICAgIH0KICB9CgogIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRHZXQoJGtleSkKICB7CiAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApCiAgICAgIHRocm93IG5ldyBQcm9kdWN0c0V4Y2VwdGlvbignR2V0OiBpbnZhbGlkIGtleSAnLiRrZXkuJyBzcGVjaWZpZWQgZm9yIHByb2R1Y3RzX3F1ZXJ5Jyk7CgogICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVska2V5XSkgKQogICAgICByZXR1cm4gJHRoaXMtPl9kYXRhWyRrZXldOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIG9mZnNldFNldCgka2V5LCR2YWx1ZSkKICB7CiAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApCiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1NldDogSW52YWxpZCBLZXkgJy4ka2V5Licgc3BlY2lmaWVkIGZvciBwcm9kdWN0c19xdWVyeScpOwoKICAgIGlmKCAhJHZhbHVlICkgcmV0dXJuOwoKICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1Byb2R1Y3RzJyk7CiAgICBzd2l0Y2goICRrZXkgKSB7CgljYXNlICdzdGF0dXMnOgoJICAkdmFsdWUgPSBzdHJ0b2xvd2VyKCR2YWx1ZSk7CgkgIHN3aXRjaCggJHZhbHVlICkgewoJICBjYXNlICdkcmFmdCc6CgkgIGNhc2UgJ2Rpc2FibGVkJzoKCSAgY2FzZSAncHVibGlzaGVkJzoKCSAgY2FzZSAnIWRyYWZ0JzoKCSAgY2FzZSAnIWRpc2FibGVkJzoKCSAgY2FzZSAnIXB1Ymxpc2hlZCc6CgkgIGNhc2UgJyonOgoJCSR0aGlzLT5fZGF0YVsnc3RhdHVzJ10gPSAkdmFsdWU7CgkJYnJlYWs7CgkgIH0KCSAgYnJlYWs7CgogICAgY2FzZSAncHJvZHVjdGlkJzoKICAgIGNhc2UgJ3Byb2R1Y3RfaWQnOgogICAgICAkdGhpcy0+X2RhdGFbJ3Byb2R1Y3RfaWQnXSA9IChpbnQpJHZhbHVlOwogICAgICB1bnNldCgkdGhpcy0+X2RhdGFbJ3Byb2R1Y3RsaXN0J10pOwogICAgICBicmVhazsKICAgICAgCiAgICBjYXNlICdwcm9kdWN0bGlzdCc6CiAgICAgICR0bXAgPSBleHBsb2RlKCcsJywkdmFsdWUpOwogICAgICBpZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgKSB7CgkJZm9yZWFjaCggJHRtcCBhcyAmJG9uZSApIHsKCQkgICRvbmUgPSAoaW50KSRvbmU7CgkJfQoJCSR2YWx1ZSA9IGltcGxvZGUoJywnLCR0bXApOwoJCSR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWx1ZTsKICAgICAgfQogICAgICB1bnNldCgkdGhpcy0+X2RhdGFbJ3Byb2R1Y3RfaWQnXSk7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ2NhdGVnb3J5JzoKICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gdHJpbSgkdmFsdWUpOwogICAgICB1bnNldCgkdGhpcy0+X2RhdGFbJ2NhdGVnb3J5aWQnXSk7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ2NhdGVnb3J5aWQnOgogICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAoaW50KSR2YWx1ZTsKICAgICAgdW5zZXQoJHRoaXMtPl9kYXRhWydjYXRlZ29yeSddKTsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnZXhjbHVkZWNhdCc6CiAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IHRyaW0oJHZhbHVlKTsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnaGllcmFyY2h5JzoKICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gdHJpbSgkdmFsdWUpOwogICAgICB1bnNldCgkdGhpcy0+X2RhdGFbJ2hpZXJhcmNoeWlkJ10pOwogICAgICBicmVhazsKCiAgICBjYXNlICdoaWVyYXJjaHlpZCc6CiAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IChpbnQpJHZhbHVlOwogICAgICB1bnNldCgkdGhpcy0+X2RhdGFbJ2hpZXJhcmNoeSddKTsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnZmllbGRpZCc6CiAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IChpbnQpJHZhbHVlOwogICAgICBicmVhazsKCiAgICBjYXNlICdmaWVsZHZhbCc6CiAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IHRyaW0oJHZhbHVlKTsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnc29ydG9yZGVyJzoKICAgICAgJHZhbHVlID0gc3RydG9sb3dlcih0cmltKCR2YWx1ZSkpOwogICAgICBzd2l0Y2goICR2YWx1ZSApIHsKICAgICAgY2FzZSAnYXNjJzoKICAgICAgY2FzZSAnZGVzYyc6CgkJJHRoaXMtPl9kYXRhWyRrZXldID0gJHZhbHVlOwoJCWJyZWFrOwogICAgICB9CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ3NvcnRieSc6CiAgICAgICR2YWx1ZSA9IHN0cnRvbG93ZXIodHJpbSgkdmFsdWUpKTsKICAgICAgaWYoIGluX2FycmF5KCR2YWx1ZSxzZWxmOjokX3NvcnRpbmdzKSApIHsKCSR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWx1ZTsKICAgICAgfSBlbHNlIGlmKCBzdGFydHN3aXRoKCR2YWx1ZSwnZjonKSApIHsKCSRmaWVsZG5hbWUgPSBzdWJzdHIoJHRtcCxzdHJsZW4oJ2Y6JykpOwoJaWYoIGlzc2V0KCR0aGlzLT5fZmllbGRkZWZzWyRmaWVsZG5hbWVdKSApIHsKCSAgJHRoaXMtPl9kYXRhWyRrZXldID0gJHZhbHVlOwoJfQogICAgICB9CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ3NvcnR0eXBlJzoKICAgICAgJHZhbHVlID0gdHJpbShzdHJ0b3VwcGVyKCR2YWx1ZSkpOwogICAgICBzd2l0Y2goICR2YWx1ZSApIHsKICAgICAgY2FzZSAnU1RSSU5HJzoKCQkkdGhpcy0+X2RhdGFbJGtleV0gPSAnJzsKCQlicmVhazsKICAgICAgY2FzZSAnU0lHTkVEJzoKICAgICAgY2FzZSAnVU5TSUdORUQnOgoJCSR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWx1ZTsKCQlicmVhazsKICAgICAgfQogICAgICBicmVhazsKCiAgICBjYXNlICdwYWdlbGltaXQnOgogICAgY2FzZSAnbGltaXQnOgogICAgICAkdmFsdWUgPSBtYXgoMSwoaW50KSR2YWx1ZSk7CiAgICAgICR0aGlzLT5fZGF0YVsncGFnZWxpbWl0J10gPSAkdmFsdWU7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ3BhZ2UnOgogICAgICAkdmFsdWUgPSBtYXgoMSwoaW50KSR2YWx1ZSk7CiAgICAgICR0aGlzLT5fZGF0YVsncGFnZSddID0gJHZhbHVlOwogICAgICBicmVhazsKICAgIH0KICB9CgogIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRFeGlzdHMoJGtleSkKICB7CiAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApCiAgICAgIHRocm93IG5ldyBQcm9kdWN0c0V4Y2VwdGlvbignRXhpc3RzOiBJbnZhbGlkIEtleSAnLiRrZXkuJyBzcGVjaWZpZWQgZm9yIHByb2R1Y3RzX3F1ZXJ5Jyk7CgogICAgcmV0dXJuIGlzc2V0KCR0aGlzLT5fZGF0YVska2V5XSk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0VW5zZXQoJGtleSkKICB7CiAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApCiAgICAgIHRocm93IG5ldyBQcm9kdWN0c0V4Y2VwdGlvbignRXhpc3RzOiBJbnZhbGlkIEtleSAnLiRrZXkuJyBzcGVjaWZpZWQgZm9yIHByb2R1Y3RzX3F1ZXJ5Jyk7CgogICAgcmV0dXJuIEZBTFNFOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uICZleGVjdXRlKCkKICB7CiAgICAkcnMgPSBuZXcgcHJvZHVjdHNfcmVzdWx0c2V0KCR0aGlzKTsKICAgIHJldHVybiAkcmVzOwogIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.products_resultset.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBQcm9kdWN0cyAoYykgMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmaW5hbCBjbGFzcyBwcm9kdWN0c19yZXN1bHRzZXQKewogIHByaXZhdGUgJF9xdWVyeTsKICBwcml2YXRlICRfcnM7CiAgcHJpdmF0ZSAkX3RvdGFsbWF0Y2hpbmdyb3dzOwogIHByaXZhdGUgJF9jYXRlZ29yeV9jYWNoZTsKICBwcml2YXRlICRfZmllbGRfY2FjaGU7CiAgcHJpdmF0ZSAkX2F0dHJpYnV0ZV9jYWNoZTsKICBwcml2YXRlICRfZGV0YWlscGFnZTsKICBwcml2YXRlICRfaGllcnBhZ2U7CiAgcHJpdmF0ZSAkX2N1cnBhZ2U7CiAgcHJpdmF0ZSAkX25vdHByZXR0eTsKICBwcml2YXRlICRfZGV0YWlsdGVtcGxhdGU7CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChwcm9kdWN0c19xdWVyeSAkcXVlcnkpCiAgewogICAgJHRoaXMtPl9xdWVyeSA9ICRxdWVyeTsKICB9CgogIHByaXZhdGUgZnVuY3Rpb24gX2V4ZWN1dGUoKQogIHsKCWlmKCAhaXNfbnVsbCgkdGhpcy0+X3JzKSApIHJldHVybjsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAkb2JqID0gJHRoaXMtPl9xdWVyeTsKCiAgICAkcXVlcnkgPSAnU0VMRUNUIFNRTF9DQUxDX0ZPVU5EX1JPV1MgQy4qLFBILmhpZXJhcmNoeV9pZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgQyc7CiAgICAkd2hlcmUgPSBhcnJheSgpOwogICAgJHFwYXJtcyA9IGFycmF5KCk7CiAgICAkam9pbnMgPSBhcnJheSgpOwoKCSRqb2luc1tdID0gY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHRvaGllciBQSCBPTiBQSC5wcm9kdWN0X2lkID0gQy5pZCc7CgoJaWYoIGlzc2V0KCRvYmpbJ3Byb2R1Y3RfaWQnXSkgJiYgJG9ialsncHJvZHVjdF9pZCddICE9ICcnICkgewoJICAkd2hlcmVbXSA9ICdDLmlkID0gPyc7CgkgICRxcGFybXNbXSA9ICRvYmpbJ3Byb2R1Y3RfaWQnXTsKCX0KCWVsc2UgaWYoIGlzc2V0KCRvYmpbJ3Byb2R1Y3RsaXN0J10pICYmICRvYmpbJ3Byb2R1Y3RsaXN0J10gIT0gJycgKSB7CgkgICR0bXAgPSAkb2JqWydwcm9kdWN0bGlzdCddOwoJICBpZiggIWlzX2FycmF5KCR0bXApICkgewoJCSR0bXAgPSBleHBsb2RlKCcsJywkdG1wKTsKCSAgfQoJICAkbGlzdCA9IGFycmF5KCk7CgkgIGZvcmVhY2goICR0bXAgYXMgJG9uZSApIHsKCQkkb25lID0gKGludCkkb25lOwoJCWlmKCAkb25lID4gMCApICRsaXN0W10gPSAoaW50KSRvbmU7CiAgICAgIH0KCSAgJGxpc3QgPSBhcnJheV91bmlxdWUoJGxpc3QpOwoJICAkd2hlcmVbXSA9ICdDLmlkIElOICgnLmltcGxvZGUoJywnLCRsaXN0KS4nKSc7Cgl9CgoJaWYoIGlzc2V0KCRvYmpbJ3N0YXR1cyddKSAmJiAkb2JqWydzdGF0dXMnXSAhPSAnKicpIHsKCSAgJHZhbCA9ICRvYmpbJ3N0YXR1cyddOwoJICBpZiggc3RhcnRzd2l0aCgkdmFsLCchJykgKSB7CgkJJHdoZXJlW10gPSAnQy5zdGF0dXMgIT0gPyc7CgkJJHZhbCA9IHN1YnN0cigkdmFsLDEpOwoJICB9IGVsc2UgewoJCSR3aGVyZVtdID0gJ0Muc3RhdHVzID0gPyc7CgkgIH0KCSAgJHFwYXJtc1tdID0gJHZhbDsKCX0KCiAgICBpZiggaXNzZXQoJG9ialsnY2F0ZWdvcnlpZCddKSAmJiAkb2JqWydjYXRlZ29yeWlkJ10gIT0gJycgKSB7CiAgICAgICRqb2luc1tdID0gY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdHNfY2F0ZWdvcmllcyBjYyBPTiBjYy5wcm9kdWN0X2lkID0gQy5pZCc7CiAgICAgICR3aGVyZVtdID0gJ2NjLmNhdGVnb3J5X2lkID0gPyc7CiAgICAgICRxcGFybXNbXSA9ICRvYmpbJ2NhdGVnb3J5aWQnXTsKICAgIH0KCglpZiggaXNzZXQoJG9ialsnaGllcmFyY2h5J10pICYmICRvYmpbJ2hpZXJhcmNoeSddICE9ICcnICkgewoJICAkc3VicXVlcnkgPSAnU0VMRUNUIERJU1RJTkNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkgV0hFUkUgJzsKCSAgJHN1YnBhcm1zID0gYXJyYXkoKTsKCSAgJHRtcCA9IGV4cGxvZGUoJywnLCRvYmpbJ2hpZXJhcmNoeSddKTsKCSAgJHRtcDIgPSBhcnJheSgpOwoJICBmb3JlYWNoKCAkdG1wIGFzICRvbmUgKSB7CgkJaWYoIHN0cnN0cigkb25lLCcqJykgIT09IEZBTFNFICkgewoJCSAgJHRtcDJbXSA9ICd1cHBlcihoLmxvbmdfbmFtZSkgTElLRSB1cHBlcig/KSc7CgkJfQoJCWVsc2UgewoJCSAgJHRtcDJbXSA9ICd1cHBlcihoLm5hbWUpID0gdXBwZXIoPyknOwoJCX0KCQkKCQkkb25lID0gY21zX2h0bWxfZW50aXR5X2RlY29kZSgkb25lKTsKCQkkb25lID0gdHJpbShzdHJfcmVwbGFjZSgnKicsJyUnLHN0cl9yZXBsYWNlKCciJywnXycsJG9uZSkpKTsKCQkkc3VicGFybXNbXSA9ICRvbmU7CgkgIH0KCSAgJHN1YnF1ZXJ5IC49IGltcGxvZGUoJyBPUiAnLCR0bXAyKTsKCSAgJGhpZXJhcmNoeV9pZHMgPSAkZGItPkdldENvbCgkc3VicXVlcnksJHN1YnBhcm1zKTsKCgkgIGlmKCBpc19hcnJheSgkaGllcmFyY2h5X2lkcykgJiYgY291bnQoJGhpZXJhcmNoeV9pZHMpICkgewoJCSRqb2luc1tdID0gY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHRvaGllciBwaCBPTiBwaC5wcm9kdWN0X2lkID0gQy5pZCc7CgkJJHdoZXJlW10gPSAncGguaGllcmFyY2h5X2lkIElOICgnLmltcGxvZGUoJywnLCRoaWVyYXJjaHlfaWRzKS4nKSc7CgkgIH0KCX0KCWVsc2UgaWYoIGlzc2V0KCRvYmpbJ2hpZXJhcmNoeWlkJ10pICkgewoJICAkd2hlcmVbXSA9ICdQSC5oaWVyYXJjaHlfaWQgPSA/JzsKCSAgJHFwYXJtc1tdID0gKGludCkkb2JqWydoaWVyYXJjaHlpZCddOwoJfQoKICAgIGlmKCBpc3NldCgkb2JqWydjYXRlZ29yeSddKSAmJiAkb2JqWydjYXRlZ29yeSddICE9ICcnICkgewogICAgICAvLyBnZXQgdGhlIGNhdGVnb3J5J3MKICAgICAgJG9jYXRzID0gcHJvZHVjdF91dGlsczo6Z2V0X2NhdGVnb3JpZXMoVFJVRSk7CiAgICAgICRpY2F0cyA9IGV4cGxvZGUoJywnLCRvYmpbJ2NhdGVnb3J5J10pOwogICAgICBpZiggaXNfYXJyYXkoJGljYXRzKSAmJiBjb3VudCgkaWNhdHMpICkgewoJCSRpY2F0aWRzID0gYXJyYXkoKTsKCQlmb3JlYWNoKCAkaWNhdHMgYXMgJG9uZSApIHsKCQkgICRvbmUgPSB0cmltKCRvbmUpOwoJCSAgaWYoIGlzc2V0KCRvY2F0c1skb25lXSkgKSB7CgkJCSRpY2F0aWRzW10gPSAoaW50KSRvY2F0c1skb25lXVsnaWQnXTsKCQkgIH0KCQl9CgkJaWYoIGNvdW50KCRpY2F0aWRzKSApIHsKCQkgICRqb2luc1tdID0gY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdHNfY2F0ZWdvcmllcyBjYyBPTiBjYy5wcm9kdWN0X2lkID0gYy5pZCc7CgkJICAkd2hlcmVbXSA9ICdjYy5jYXRlZ29yeV9pZCBJTiAoJy5pbXBsb2RlKCcsJywkaWNhdGlkcykuJyknOwoJCX0KICAgICAgfQogICAgfQoKICAgIGlmKCBpc3NldCgkb2JqWydleGNsdWRlY2F0J10pICYmICRvYmpbJ2V4Y2x1ZGVjYXQnXSAhPSAnJyApIHsKICAgICAgLy8gZ2V0IHRoZSBjYXRlb2dyeSBpZCdzIGZyb20gdGhlIG5hbWUuCiAgICAgICRvY2F0cyA9IHByb2R1Y3RfdXRpbHM6OmdldF9jYXRlZ29yaWVzKFRSVUUpOwoJICAkZWNhdHMgPSBleHBsb2RlKCcsJywkb2JqWydleGNsdWRlY2F0J10pOwoJICAkZXhjbHVkZV9pZHMgPSBhcnJheSgpOwoJICBmb3JlYWNoKCAkaWNhdHMgYXMgJGVjYXQgKSB7CgkJaWYoIGlzX251bWVyaWMoJGVjYXQpICkgewoJCSAgJGV4Y2x1ZGVfaWRzID0gKGludCkkZWNhdDsKCQl9CgkJZWxzZSB7CgkJICBpZiggaXNzZXQoJG9jYXRzWyRlY2F0XSkgKSB7CgkJCSRleGNsdWRlX2lkcyA9IChpbnQpJG9jYXRzWyRjYXRdWydpZCddOwoJCSAgfQoJCX0KCSAgfQogICAgfQoKCWlmKCBpc3NldCgkb2JqWydmaWVsZGlkJ10pICYmICRvYmpbJ2ZpZWxkaWQnXSA+IDAgJiYgaXNzZXQoJG9ialsnZmllbGR2YWwnXSkgJiYgJG9ialsnZmllbGR2YWwnXSAhPSAnJyApIHsKCSAgJGZpZWxkaWQgPSAkb2JqWydmaWVsZGlkJ107CgkgICRmaWVsZHZhbCA9ICRvYmpbJ2ZpZWxkdmFsJ107CgoJICBpZiggJGZpZWxkdmFsID09ICc6Om51bGw6OicgKSB7CgkJLy8gaGFuZGxlIGEgY2FzZSB3aGVyZSBhIGZpZWxkIGlzIG5vdCBzZXQgZm9yIGEgcHJvZHVjdC4KCQkkam9pbnNbXSA9IGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyBGVkEgT04gQy5pZCA9IEZWQS5wcm9kdWN0X2lkIEFORCBGVkEuZmllbGRkZWZfaWQgPSA/JzsKCQkkd2hlcmVbXSA9ICcoRlZBLnZhbHVlIElTIE5VTEwpJzsKCQlhcnJheV91bnNoaWZ0KCRxcGFybXMsJGZpZWxkaWQpOwoJICB9CgkgIGVsc2UgaWYoICRmaWVsZHZhbCA9PSAnOjpub3RudWxsOjonICkgewoJCS8vIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSBhIGZpZWxkIGlzIHNldCBmb3IgYSBwcm9kdWN0LCBidXQgd2UgZG9uJ3QgY2FyZSBhYm91dCB0aGUgdmFsdWUuCgkJJGpvaW5zW10gPSBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgRlZBIE9OIEMuaWQgPSBGVkEucHJvZHVjdF9pZCBBTkQgRlZBLmZpZWxkZGVmX2lkID0gPyc7CgkJJHdoZXJlW10gPSAnKEZWQS52YWx1ZSAhPSBcJ1wnKSc7CgkJYXJyYXlfdW5zaGlmdCgkcXBhcm1zLCRmaWVsZGlkKTsKCSAgfQoJICBlbHNlIHsKCQkvLyBsaW1pdCByZXN1bHRzIHRvIGFsbCBvZiB0aGUgaXRlbXMgdGhhdCBoYXZlIHRoaXMgZmllbGQsIGFuZCBmaWVsZCB2YWx1ZS4KCQkkam9pbnNbXSA9IGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyBGVkEgT04gQy5pZCA9IEZWQS5wcm9kdWN0X2lkIEFORCBGVkEuZmllbGRkZWZfaWQgPSA/JzsKCQkkd2hlcmVbXSA9ICcoRlZBLnZhbHVlID0gPyknOwoJCWFycmF5X3Vuc2hpZnQoJHFwYXJtcywkZmllbGRpZCk7CgkJJHFwYXJtc1tdID0gJGZpZWxkdmFsOwoJICB9Cgl9CgoJLy8KCS8vIGJ1aWxkIHRoZSBxdWVyeSBub3cuCgkvLwoJaWYoIGNvdW50KCRqb2lucykgKSB7CgkgICRxdWVyeSAuPSAnIExFRlQgSk9JTiAnLmltcGxvZGUoJyBMRUZUIEpPSU4gJywkam9pbnMpOwoJfQoJaWYoIGNvdW50KCR3aGVyZSkgKSB7CgkgICRxdWVyeSAuPSAnIFdIRVJFICcuaW1wbG9kZSgnIEFORCAnLCR3aGVyZSk7Cgl9CglpZiggJG9ialsnc29ydHR5cGUnXSA9PSAnJyApIHsKCSAgJHF1ZXJ5IC49ICcgT1JERVIgQlkgJy4kb2JqWydzb3J0YnknXS4nICcuJG9ialsnc29ydG9yZGVyJ107Cgl9CgllbHNlIHsKCSAgJHF1ZXJ5IC49ICcgT1JERVIgQlkgQ0FTVCgnLiRzb3J0YnkuJyBBUyAnLiRzb3J0dHlwZS4nKSAnLiRzb3J0b3JkZXI7Cgl9CgkKCSRzdGFydGVsZW1lbnQgPSAwOwoJJGxpbWl0ID0gMTAwMDAwOwoJaWYoIGlzc2V0KCRvYmpbJ3BhZ2UnXSkgJiYgJG9ialsncGFnZSddID4gMCAmJiBpc3NldCgkb2JqWydwYWdlbGltaXQnXSkgJiYgJG9ialsncGFnZWxpbWl0J10gPiAwICkgewoJICAkbGltaXQgPSAoaW50KSRvYmpbJ3BhZ2VsaW1pdCddOwoJICAkc3RhcnRlbGVtZW50ID0gKChpbnQpJG9ialsncGFnZSddIC0gMSkgKiAkbGltaXQ7Cgl9CgkkdGhpcy0+X3JzID0gJGRiLT5TZWxlY3RMaW1pdCgkcXVlcnksJGxpbWl0LCRzdGFydGVsZW1lbnQsJHFwYXJtcyk7CglpZiggISR0aGlzLT5fcnMgKSB7CgkgIHRocm93IG5ldyBFeGNlcHRpb24oJ0lOVEVSTkFMIEVSUk9SOiBRdWVyeSBmYWlsZWQgLSAnLiRkYi0+c3FsLicgLS0gJy4kZGItPkVycm9yTXNnKCkpOwoJfQoJJHRoaXMtPl90b3RhbG1hdGNoaW5ncm93cyA9ICRkYi0+R2V0T25lKCdTRUxFQ1QgRk9VTkRfUk9XUygpJyk7CgoJJHRoaXMtPl9wcmVsb2FkKCk7CiAgfSAvLyBfZXhlY3V0ZQoKCiAgcHJpdmF0ZSBmdW5jdGlvbiBfcHJlbG9hZF9jYXRlZ29yaWVzKCRwcm9kdWN0X2lkcykKICB7CglpZiggIWlzX2FycmF5KCRwcm9kdWN0X2lkcykgfHwgY291bnQoJHByb2R1Y3RfaWRzKSA9PSAwICkgcmV0dXJuOwoKCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgkkcXVlcnkgPSAnU0VMRUNUIHByb2R1Y3RfaWQsY2F0ZWdvcnlfaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcwogICAgICAgICAgICAgIFdIRVJFIHByb2R1Y3RfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJHByb2R1Y3RfaWRzKS4nKSBPUkRFUiBCWSBwcm9kdWN0X2lkIEFTQyc7CgkkZGJyID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwoJaWYoICFpc19hcnJheSgkZGJyKSB8fCBjb3VudCgkZGJyKSA9PSAwICkgcmV0dXJuOwoKCSR0aGlzLT5fY2F0ZWdvcnlfY2FjaGUgPSAkZGJyOwogIH0KCgogIHByaXZhdGUgZnVuY3Rpb24gX3ByZWxvYWRfZmllbGRzKCRwcm9kdWN0X2lkcykKICB7CglpZiggIWlzX2FycmF5KCRwcm9kdWN0X2lkcykgfHwgY291bnQoJHByb2R1Y3RfaWRzKSA9PSAwICkgcmV0dXJuOwoKCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgkkcXVlcnkgPSAnU0VMRUNUIHByb2R1Y3RfaWQsZmllbGRkZWZfaWQsdmFsdWUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscwogICAgICAgICAgICAgIFdIRVJFIHByb2R1Y3RfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJHByb2R1Y3RfaWRzKS4nKSBPUkRFUiBCWSBwcm9kdWN0X2lkIEFTQyc7CgkkZGJyID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwoJaWYoICFpc19hcnJheSgkZGJyKSB8fCBjb3VudCgkZGJyKSA9PSAwICkgcmV0dXJuOwoKCSR0aGlzLT5fZmllbGRfY2FjaGUgPSAkZGJyOwogIH0KCgogIHByaXZhdGUgZnVuY3Rpb24gX3ByZWxvYWRfYXR0cmlidXRlcygkcHJvZHVjdF9pZHMpCiAgewoJaWYoICFpc19hcnJheSgkcHJvZHVjdF9pZHMpIHx8IGNvdW50KCRwcm9kdWN0X2lkcykgPT0gMCApIHJldHVybjsKCgkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJzZXRzCiAgICAgICAgICAgICAgV0hFUkUgcHJvZHVjdF9pZCBJTiAoJy5pbXBsb2RlKCcsJywkcHJvZHVjdF9pZHMpLicpIE9SREVSIEJZIHByb2R1Y3RfaWQgQVNDLGF0dHJpYl9zZXRfaWQgJzsKCSRhdHRyaWJzZXRzID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwoJaWYoICFpc19hcnJheSgkYXR0cmlic2V0cykgfHwgY291bnQoJGF0dHJpYnNldHMpID09IDAgKSByZXR1cm47CgoJJGF0dHJpYnNldF9pZHMgPSBjZ2VfYXJyYXk6OmV4dHJhY3RfZmllbGQoJGF0dHJpYnNldHMsJ2F0dHJpYl9zZXRfaWQnKTsKCSRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcwogICAgICAgICAgICAgIFdIRVJFIGF0dHJpYl9zZXRfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJGF0dHJpYnNldF9pZHMpLicpIE9SREVSIEJZIGF0dHJpYl9zZXRfaWQgQVNDJzsKCSRhdHRyaWJ1dGVzID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwoJCgkkdGhpcy0+X2F0dHJpYnV0ZV9jYWNoZSA9IGFycmF5KCk7Cglmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkYXR0cmlic2V0cyk7ICRpKysgKSB7CgkgICRvbmVzZXQgPSYgJGF0dHJpYnNldHNbJGldOwoJICAkcGlkID0gJG9uZXNldFsncHJvZHVjdF9pZCddOwoJICBpZiggIWlzc2V0KCR0aGlzLT5fYXR0cmlidXRlX2NhY2hlWyRwaWRdKSApICR0aGlzLT5fYXR0cmlidXRlX2NhY2hlWyRwaWRdID0gYXJyYXkoKTsKCSAgJGRhdGEgPSYgJHRoaXMtPl9hdHRyaWJ1dGVfY2FjaGVbJHBpZF07CgoJICAkYXR0cmlicyA9IGFycmF5KCk7CgkgIGZvciggJGogPSAwOyAkaiA8IGNvdW50KCRhdHRyaWJ1dGVzKTsgJGorKyApIHsKCQkkb25lYXR0cmliID0mICRhdHRyaWJ1dGVzWyRqXTsKCQlpZiggJG9uZWF0dHJpYlsnYXR0cmliX3NldF9pZCddIDwgJG9uZXNldFsnYXR0cmliX3NldF9pZCddICkgY29udGludWU7CgkJaWYoICRvbmVhdHRyaWJbJ2F0dHJpYl9zZXRfaWQnXSA+ICRvbmVzZXRbJ2F0dHJpYl9zZXRfaWQnXSApIGJyZWFrOwoKCQkkYXR0cmlic1skb25lYXR0cmliWydhdHRyaWJfdGV4dCddXSA9ICRvbmVhdHRyaWI7CgkgIH0KCSAgJGRhdGFbJG9uZXNldFsnYXR0cmliX3NldF9uYW1lJ11dID0gJGF0dHJpYnM7Cgl9CiAgfQoKCiAgcHJpdmF0ZSBmdW5jdGlvbiBfcHJlbG9hZCgpIAogIHsKCWlmKCAhJHRoaXMtPl9ycyApIHJldHVybjsKCgkkcHJvZHVjdF9pZHMgPSBhcnJheSgpOwoJJHRoaXMtPl9ycy0+TW92ZUZpcnN0KCk7Cgl3aGlsZSggISR0aGlzLT5fcnMtPkVPRiApIHsKCSAgJHByb2R1Y3RfaWRzW10gPSAkdGhpcy0+X3JzLT5maWVsZHNbJ2lkJ107CgkgICR0aGlzLT5fcnMtPk1vdmVOZXh0KCk7Cgl9CgkkdGhpcy0+X3JzLT5Nb3ZlRmlyc3QoKTsKCglpZiggIWNvdW50KCRwcm9kdWN0X2lkcykgKSByZXR1cm47CgkkcHJvZHVjdF9pZHMgPSBhcnJheV91bmlxdWUoJHByb2R1Y3RfaWRzKTsKCgkvLyBwcmVsb2FkIGNhdGVnb3J5IGluZm8gZm9yIHByb3VkY3QocykuCgkkYWxsY2F0cyA9IHByb2R1Y3RfdXRpbHM6OmdldF9jYXRlZ29yaWVzKFRSVUUpOwoJaWYoIGlzX2FycmF5KCRhbGxjYXRzKSAmJiBjb3VudCgkYWxsY2F0cykgKSB7CgkgICR0aGlzLT5fcHJlbG9hZF9jYXRlZ29yaWVzKCRwcm9kdWN0X2lkcyk7Cgl9CgoJLy8gcHJlbG9hZCBmaWVsZCBpbmZvCgkkYWxsZmllbGRzID0gcHJvZHVjdF91dGlsczo6Z2V0X2ZpZWxkZGVmcyhUUlVFLFRSVUUpOwoJaWYoIGlzX2FycmF5KCRhbGxmaWVsZHMpICYmIGNvdW50KCRhbGxmaWVsZHMpICkgewoJICAkdGhpcy0+X3ByZWxvYWRfZmllbGRzKCRwcm9kdWN0X2lkcyk7Cgl9CgoJLy8gcHJlbG9hZCBhdHRyaWJ1dGVzCgkkdGhpcy0+X3ByZWxvYWRfYXR0cmlidXRlcygkcHJvZHVjdF9pZHMpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIFJlY29yZENvdW50KCkgCiAgewoJJHRoaXMtPl9leGVjdXRlKCk7CglpZiggJHRoaXMtPl9ycyApIHJldHVybiAkdGhpcy0+X3JzLT5SZWNvcmRDb3VudCgpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIE1vdmVOZXh0KCkKICB7CgkkdGhpcy0+X2V4ZWN1dGUoKTsKCWlmKCAkdGhpcy0+X3JzICkgcmV0dXJuICR0aGlzLT5fcnMtPk1vdmVOZXh0KCk7CglyZXR1cm4gRkFMU0U7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gTW92ZUZpcnN0KCkKICB7CgkkdGhpcy0+X2V4ZWN1dGUoKTsKCWlmKCAkdGhpcy0+X3JzICkgcmV0dXJuICR0aGlzLT5fcnMtPk1vdmVGaXJzdCgpOwoJcmV0dXJuIEZBTFNFOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIFJld2luZCgpCiAgewoJJHRoaXMtPl9leGVjdXRlKCk7CglyZXR1cm4gJHRoaXMtPk1vdmVGaXJzdCgpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIE1vdmVMYXN0KCkKICB7CgkkdGhpcy0+X2V4ZWN1dGUoKTsKCWlmKCAkdGhpcy0+X3JzICkgcmV0dXJuICR0aGlzLT5fcnMtPk1vdmVMYXN0KCk7CglyZXR1cm4gRkFMU0U7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gRU9GKCkKICB7CgkkdGhpcy0+X2V4ZWN1dGUoKTsKICAgIGlmKCAkdGhpcy0+X3JzICkgcmV0dXJuICR0aGlzLT5fcnMtPkVPRigpOwogICAgcmV0dXJuIFRSVUU7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gQ2xvc2UoKQogIHsKCSR0aGlzLT5fZXhlY3V0ZSgpOwogICAgaWYoICR0aGlzLT5fcnMgKSByZXR1cm4gJHRoaXMtPl9ycy0+Q2xvc2UoKTsKICAgIHJldHVybiBUUlVFOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgewoJJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnUHJvZHVjdHMnKTsKCglpZiggJGtleSA9PSAnZGV0YWlscGFnZScgKSB7CgkgIGlmKCAkdGhpcy0+X2RldGFpbHBhZ2UgKSByZXR1cm4gJHRoaXMtPl9kZXRhaWxwYWdlOwoJICAkZGZsdHJldHVybmlkID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnZGV0YWlscGFnZScsLTEpOwoJICBpZiggJGRmbHRyZXR1cm5pZCA+IDAgKSByZXR1cm4gJGRmbHRyZXR1cm5pZDsKCSAgaWYoICR0aGlzLT5fY3VycGFnZSApIHJldHVybiAkdGhpcy0+X2N1cnBhZ2U7CgkgIHJldHVybiBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpLT5HZXREZWZhdWx0Q29udGVudCgpOwoJfQoJaWYoICRrZXkgPT0gJ2RldGFpbHRlbXBsYXRlJyApIHsKCSAgcmV0dXJuICR0aGlzLT5fZGV0YWlsdGVtcGxhdGU7Cgl9CglpZiggJGtleSA9PSAnaGllcnBhZ2UnICkgewoJICBpZiggJHRoaXMtPl9oaWVycGFnZSApIHJldHVybiAkdGhpcy0+X2hpZXJwYWdlOwoJICAkZGZsdHJldHVybmlkID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnaGllcnBhZ2UnLC0xKTsKCSAgaWYoICRkZmx0cmV0dXJuaWQgPiAwICkgcmV0dXJuICRkZmx0cmV0dXJuaWQ7CgkgIGlmKCAkdGhpcy0+X2N1cnBhZ2UgKSByZXR1cm4gJHRoaXMtPl9jdXJwYWdlOwoJICByZXR1cm4gY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKS0+R2V0RGVmYXVsdENvbnRlbnQoKTsKCX0KCWlmKCAka2V5ID09ICdjdXJwYWdlJyApIHsKCSAgcmV0dXJuICR0aGlzLT5fY3VycGFnZTsKCX0KCWlmKCAka2V5ID09ICdub3RwcmV0dHknICkgewoJICByZXR1cm4gJHRoaXMtPl9ub3RwcmV0dHk7Cgl9CgoJJHRoaXMtPl9leGVjdXRlKCk7CglpZiggJGtleSA9PSAnRU9GJyApIHsKCSAgcmV0dXJuICR0aGlzLT5fcnMtPkVPRigpOwoJfQoJaWYoICRrZXkgPT0gJ3RvdGFscm93cycgKSB7CgkgIHJldHVybiAkdGhpcy0+X3RvdGFsbWF0Y2hpbmdyb3dzOwoJfQoJaWYoICRrZXkgPT0gJ2ZpZWxkcycgJiYgJHRoaXMtPl9ycyAmJiAhJHRoaXMtPl9ycy0+RU9GKCkgKSB7CgkgIHJldHVybiAkdGhpcy0+X3JzLT5maWVsZHM7Cgl9CglpZiggJGtleSA9PSAnbnVtcGFnZXMnICkgewoJICByZXR1cm4gY2VpbCgkdGhpcy0+X3RvdGFsbWF0Y2hpbmdyb3dzIC8gJHRoaXMtPl9xdWVyeVsncGFnZWxpbWl0J10pOwoJfQogIH0KCiAgcHVibGljIGZ1bmN0aW9uIF9fc2V0KCRrZXksJHZhbHVlKQogIHsKCSRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1Byb2R1Y3RzJyk7Cglzd2l0Y2goICRrZXkgKSB7CgljYXNlICdkZXRhaWxwYWdlJzoKCSAgJHRtcCA9ICRtb2QtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHZhbHVlKTsKCSAgaWYoICR0bXAgKSAkdGhpcy0+X2RldGFpbHBhZ2UgPSAkdG1wOwoJICBicmVhazsKCWNhc2UgJ2hpZXJwYWdlJzoKCSAgJHRtcCA9ICRtb2QtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHZhbHVlKTsKCSAgaWYoICR0bXAgKSAkdGhpcy0+X2hpZXJwYWdlID0gJHZhbHVlOwoJICBicmVhazsKCWNhc2UgJ2N1cnBhZ2UnOgoJICAkdG1wID0gJG1vZC0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkdmFsdWUpOwoJICBpZiggJHRtcCApICR0aGlzLT5fY3VycGFnZSA9ICR2YWx1ZTsKCSAgYnJlYWs7CgljYXNlICdub3RwcmV0dHknOgoJICAkdGhpcy0+X25vdHByZXR0eSA9IHRyaW0oJHZhbHVlKTsKCSAgYnJlYWs7CgljYXNlICdkZXRhaWx0ZW1wbGF0ZSc6CgkgICR0aGlzLT5fZGV0YWlsdGVtcGxhdGUgPSAkdmFsdWU7CgkgIGlmKCAkdGhpcy0+X25vdHByZXR0eSA9PSAnJyApIHsKCQkkdGhpcy0+X25vdHByZXR0eSA9ICdkZXRhaWxzJzsKCSAgfQoJICBicmVhazsKCglkZWZhdWx0OgoJICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdDYW5ub3Qgc2V0ICcuJGtleS4nIGludG8gdGhpcyBvYmplY3QnKTsKCX0KICB9CgogIC8vIHJldHVybiB0aGUgZnVsbCBwcm9kdWN0ICh3aXRoIGZpZWxkcywgYW5kIGF0dHJpYnV0ZXMpCiAgcHVibGljIGZ1bmN0aW9uICZnZXRfcHJvZHVjdCgkYmFyZSA9IGZhbHNlKQogIHsKCSRyZXQgPSBudWxsOwoJaWYoICEkdGhpcy0+X3JzICkgcmV0dXJuICRyZXQ7CgoJcHJvZHVjdF9vcHM6OnNldF9wcm9kdWN0KCR0aGlzLT5fcnMtPmZpZWxkcyk7IC8vIHVzZWQgYnkgb3RoZXIgc3R1ZmYgdGhhdCByZXF1aXJlcyBhIHByb2R1Y3QuLi4gc2hvdWxkIG1pbmltaXplIGR1cGxpY2F0ZSBsb2Fkcy4KCSRvbmVyb3cgPSBjZ2VfYXJyYXk6OnRvX29iamVjdCgkdGhpcy0+X3JzLT5maWVsZHMpOwkKCgkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CgkkbW9kdWxlID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdQcm9kdWN0cycpOwoJJGZpbGVkaXIgPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCRtb2R1bGUtPkdldE5hbWUoKSwncHJvZHVjdF8nLiRvbmVyb3ctPmlkKTsKCgkvLyBjYXRlZ29yaWVzCglpZiggaXNfYXJyYXkoJHRoaXMtPl9jYXRlZ29yeV9jYWNoZSkgJiYgY291bnQoJHRoaXMtPl9jYXRlZ29yeV9jYWNoZSkgKSB7CgkgICRjYXRzID0gcHJvZHVjdF91dGlsczo6Z2V0X2Z1bGxfY2F0ZWdvcmllcygpOwoJICAkY2F0YXJyYXkgPSBhcnJheSgpOwoJICAkY2F0bmFtZWFycmF5ID0gYXJyYXkoKTsKCSAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRoaXMtPl9jYXRlZ29yeV9jYWNoZSk7ICRpKysgKSB7CgkJaWYoICR0aGlzLT5fY2F0ZWdvcnlfY2FjaGVbJGldWydwcm9kdWN0X2lkJ10gPCAkb25lcm93LT5pZCApIGNvbnRpbnVlOwoJCWlmKCAkdGhpcy0+X2NhdGVnb3J5X2NhY2hlWyRpXVsncHJvZHVjdF9pZCddID4gJG9uZXJvdy0+aWQgKSBicmVhazsKCgkJZm9yZWFjaCggJGNhdHMgYXMgJG9uZWNhdCApIHsKCQkgIGlmKCAkdGhpcy0+X2NhdGVnb3J5X2NhY2hlWyRpXVsnY2F0ZWdvcnlfaWQnXSAhPSAkb25lY2F0LT5pZCApIGNvbnRpbnVlOwoJCSAgJGVudHJ5ID0gY2xvbmUgJG9uZWNhdDsKCQkgICRlbnRyeS0+dmFsdWUgPSB0cnVlOwoJCSAgJGNhdG5hbWVhcnJheVtdID0gJGVudHJ5LT5uYW1lOwoJCSAgJGNhdGFycmF5W10gPSAkZW50cnk7CgkJfQoJICB9CgkgICRvbmVyb3ctPmNhdGVnb3JpZXMgPSAkY2F0YXJyYXk7CgkgICRvbmVyb3ctPmNhdG5hbWVhcnJheSA9ICRjYXRuYW1lYXJyYXk7Cgl9CgoJLy8gZmllbGRzCglpZiggaXNfYXJyYXkoJHRoaXMtPl9maWVsZF9jYWNoZSkgJiYgY291bnQoJHRoaXMtPl9maWVsZF9jYWNoZSkgKSB7CgkgICRmbGRkZWZzID0gcHJvZHVjdF91dGlsczo6Z2V0X2ZpZWxkZGVmcyhGQUxTRSxUUlVFKTsKCSAgJGZsZGFycmF5ID0gYXJyYXkoKTsKCSAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRoaXMtPl9maWVsZF9jYWNoZSk7ICRpKysgKSB7CgkJaWYoICR0aGlzLT5fZmllbGRfY2FjaGVbJGldWydwcm9kdWN0X2lkJ10gPCAkb25lcm93LT5pZCApIGNvbnRpbnVlOwoJCWlmKCAkdGhpcy0+X2ZpZWxkX2NhY2hlWyRpXVsncHJvZHVjdF9pZCddID4gJG9uZXJvdy0+aWQgKSBicmVhazsKCgkJZm9yZWFjaCggJGZsZGRlZnMgYXMgJG9uZWRlZiApIHsKCQkgIGlmKCAkdGhpcy0+X2ZpZWxkX2NhY2hlWyRpXVsnZmllbGRkZWZfaWQnXSAhPSAkb25lZGVmLT5pZCApIGNvbnRpbnVlOwoKCQkgICRlbnRyeSA9IGNsb25lICRvbmVkZWY7CgkJICAkZW50cnktPnZhbHVlID0gJHRoaXMtPl9maWVsZF9jYWNoZVskaV1bJ3ZhbHVlJ107CgkJICBpZiggJGVudHJ5LT50eXBlID09ICdkaW1lbnNpb25zJyB8fCAkZW50cnktPnR5cGUgPT0gJ3N1YnNjcmlwdGlvbicgKSB7CgkJCSRlbnRyeS0+dmFsdWUgPSB1bnNlcmlhbGl6ZSgkZW50cnktPnZhbHVlKTsKCQkgIH0KCQkgIGVsc2UgaWYoICRlbnRyeS0+dHlwZSA9PSAnaW1hZ2UnICkgewoJCQlpZiggJGVudHJ5LT52YWx1ZSAmJiBmaWxlX2V4aXN0cyhjbXNfam9pbl9wYXRoKCRmaWxlZGlyLCd0aHVtYl8nLiRlbnRyeS0+dmFsdWUpKSApIHsKCQkJICAkZW50cnktPnRodW1ibmFpbCA9ICd0aHVtYl8nLiRlbnRyeS0+dmFsdWU7CgkJCX0KCQkJaWYoICRlbnRyeS0+dmFsdWUgJiYgZmlsZV9leGlzdHMoY21zX2pvaW5fcGF0aCgkZmlsZWRpciwncHJldmlld18nLiRlbnRyeS0+dmFsdWUpKSApIHsKCQkJICAkZW50cnktPnRodW1ibmFpbCA9ICdwcmV2aWV3XycuJGVudHJ5LT52YWx1ZTsKCQkJfQoJCSAgfQoJCSAgJGVudHJ5LT5maWVsZGRlZl9pZCA9ICRlbnRyeS0+aWQ7IC8vID8/CgkJICAkZmxkYXJyYXlbJGVudHJ5LT5uYW1lXSA9ICRlbnRyeTsKCQl9CgkgIH0KCSAgJG9uZXJvdy0+ZmllbGRzID0gJGZsZGFycmF5OwoJfQoKCS8vIGF0dHJpYnV0ZXMKCWlmKCBpc19hcnJheSgkdGhpcy0+X2F0dHJpYnV0ZV9jYWNoZSkgJiYgaXNzZXQoJHRoaXMtPl9hdHRyaWJ1dGVfY2FjaGVbJG9uZXJvdy0+aWRdKSAmJgoJCWlzX2FycmF5KCR0aGlzLT5fYXR0cmlidXRlX2NhY2hlWyRvbmVyb3ctPmlkXSkgJiYKCQljb3VudCgkdGhpcy0+X2F0dHJpYnV0ZV9jYWNoZVskb25lcm93LT5pZF0pICkgewoJICAkb25lcm93LT5hdHRyaWJ1dGVzID0gJHRoaXMtPl9hdHRyaWJ1dGVfY2FjaGVbJG9uZXJvdy0+aWRdOwoJICAkb25lcm93LT5hdHRyaWJ1dGVzX2Z1bGwgPSAkdGhpcy0+X2F0dHJpYnV0ZV9jYWNoZVskb25lcm93LT5pZF07Cgl9CgoJcmV0dXJuICRvbmVyb3c7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uICZnZXRfcHJvZHVjdF9mb3JfZGlzcGxheSgpCiAgewoJJHJldCA9IG51bGw7CglpZiggISR0aGlzLT5fcnMgKSByZXR1cm4gJHJldDsKCgkkb25lcm93ID0gJHRoaXMtPmdldF9wcm9kdWN0KCk7CglpZiggISRvbmVyb3cgKSByZXR1cm4gJHJldDsKCgkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CgkkbW9kdWxlID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdQcm9kdWN0cycpOwoKCSRvbmVyb3ctPmZpbGVfbG9jYXRpb24gPSAkY29uZmlnWyd1cGxvYWRzX3VybCddLicvJy4kbW9kdWxlLT5HZXROYW1lKCkuJy9wcm9kdWN0XycuJG9uZXJvdy0+aWQ7CgoJJHByZXR0eV91cmwgPSAnJzsKCSRwYXJtcyA9IGFycmF5KCk7CglpZiggJHRoaXMtPl9ub3RwcmV0dHkgIT0gJycgKSB7CgkgICRwYXJtc1snbm90cHJldHR5J10gPSAkdGhpcy0+X25vdHByZXR0eTsKCX0KCWlmKCBwcm9kdWN0X3V0aWxzOjpjYW5fZG9fcHJldHR5KCdkZXRhaWxzJywkcGFybXMpICkgewoJICAkcHJldHR5X3VybCA9IHByb2R1Y3Rfb3BzOjpwcmV0dHlfdXJsKCRvbmVyb3ctPmlkLCR0aGlzLT5kZXRhaWxwYWdlKTsKCX0KCgkkcGFybXMgPSBhcnJheSgpOwoJJHBhcm1zWydwcm9kdWN0aWQnXSA9ICRvbmVyb3ctPmlkOwoJaWYoICR0aGlzLT5fZGV0YWlscGFnZSApICRwYXJtc1snZGV0YWlscGFnZSddID0gJHRoaXMtPl9kZXRhaWxwYWdlOwoJaWYoICR0aGlzLT5fZGV0YWlsdGVtcGxhdGUgKSAkcGFybXNbJ2RldGFpbHRlbXBsYXRlJ10gPSAkdGhpcy0+X2RldGFpbHRlbXBsYXRlOwoJJG9uZXJvdy0+ZGV0YWlsX3VybCA9ICRtb2R1bGUtPmNyZWF0ZV91cmwoJ3Byb2QnLCdkZXRhaWxzJywkdGhpcy0+ZGV0YWlscGFnZSwkcGFybXMsZmFsc2UsZmFsc2UsJHByZXR0eV91cmwpOwoJaWYoICRvbmVyb3ctPmhpZXJhcmNoeV9pZCApIHsKCSAgJG9uZXJvdy0+YnJlYWRjcnVtYiA9IGhpZXJhcmNoeV9vcHM6OmdldF9icmVhZGNydW1iKCdjbnRudDAxJywkb25lcm93LT5oaWVyYXJjaHlfaWQsJHRoaXMtPmhpZXJwYWdlKTsKCX0KCglyZXR1cm4gJG9uZXJvdzsKICB9IC8vIGZ1bmN0aW9uCn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.product_ops.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgoKZmluYWwgY2xhc3MgcHJvZHVjdF9vcHMKewogIHN0YXRpYyBwcml2YXRlICRfZmllbGRkZWZzOwogIHN0YXRpYyBwcml2YXRlICRfcHJvZGhpZXI7CiAgc3RhdGljIHByaXZhdGUgJF9wcm9kdWN0X2NhY2hlOwoKICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIHNldF9wcm9kdWN0KCRwcm9kdWN0KQogIHsKICAgIGlmKCAhaXNfYXJyYXkoJHByb2R1Y3QpIHx8ICFpc3NldCgkcHJvZHVjdFsnaWQnXSkgKSByZXR1cm47CiAgICBpZiggIWlzX2FycmF5KHNlbGY6OiRfcHJvZHVjdF9jYWNoZSkgKSBzZWxmOjokX3Byb2R1Y3RfY2FjaGUgPSBhcnJheSgpOwogICAgc2VsZjo6JF9wcm9kdWN0X2NhY2hlWyRwcm9kdWN0WydpZCddXSA9ICRwcm9kdWN0OwogIH0KCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBnZXRfcHJvZHVjdCgkcHJvZHVjdF9pZCkKICB7CiAgICBpZiggaXNfYXJyYXkoc2VsZjo6JF9wcm9kdWN0X2NhY2hlKSAmJiBpc3NldChzZWxmOjokX3Byb2R1Y3RfY2FjaGVbJHByb2R1Y3RfaWRdKSApIHsKICAgICAgcmV0dXJuIHNlbGY6OiRfcHJvZHVjdF9jYWNoZVskcHJvZHVjdF9pZF07CiAgICB9CgogICAgJHF1ZXJ5ID0gbmV3IHByb2R1Y3RzX3F1ZXJ5KCk7CiAgICAkcXVlcnlbJ3Byb2R1Y3RfaWQnXSA9ICRwcm9kdWN0X2lkOwogICAgJHJlc3VsdHMgPSBuZXcgcHJvZHVjdHNfcmVzdWx0c2V0KCRxdWVyeSk7CiAgICBpZiggJHJlc3VsdHMtPlJlY29yZENvdW50KCkgPiAxICkgewogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJTlRFUk5BTCBFUlJPUjogTW9yZSB0aGFuIG9uZSBwcm9kdWN0IHdpdGggdGhlIGlkICcuJHByb2R1Y3RfaWQpOwogICAgfQogICAgCiAgICBpZiggIWlzX2FycmF5KHNlbGY6OiRfcHJvZHVjdF9jYWNoZSkgKSBzZWxmOjokX3Byb2R1Y3RfY2FjaGUgPSBhcnJheSgpOwogICAgc2VsZjo6JF9wcm9kdWN0X2NhY2hlWyRwcm9kdWN0X2lkXSA9ICRyZXN1bHRzLT5maWVsZHM7CiAgICBpZiggJHByb2R1Y3RfaWQgIT0gJHJlc3VsdHMtPmZpZWxkc1snaWQnXSApIHsKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignSU5URVJOQUwgRVJST1I6IHF1ZXJ5IGRpZCBub3QgcmV0dXJuIGluZm9ybWF0aW9uIGZvciAnLiRwcm9kdWN0X2lkKTsKICAgIH0KICAgIHJldHVybiBzZWxmOjokX3Byb2R1Y3RfY2FjaGVbJHByb2R1Y3RfaWRdOwogIH0KCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBpc192YWxpZF9jYXRlZ29yeSgkbmFtZSkKICB7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcwogICAgICAgICAgICAgICBXSEVSRSBuYW1lID0gPyc7CiAgICAkdG1wID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRuYW1lKSk7CiAgICBpZiggJHRtcCApIHJldHVybiBUUlVFOwogICAgcmV0dXJuIEZBTFNFOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXNfdmFsaWRfcHJvZHVjdF9pZCgkcGlkKQogIHsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAkcXVlcnkgPSAnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cyAKICAgICAgICAgICAgICAgV0hFUkUgaWQgPSA/JzsKICAgICR0bXAgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRwaWQpKTsKICAgIGlmKCAkdG1wICkgcmV0dXJuIFRSVUU7CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpc192YWxpZF9oaWVyYXJjaHkoJHN0cikKICB7CiAgICAvLyBhY2NlcHQgc3RyaW5nIG9mICJuYW1lLm5hbWUubmFtZS5uYW1lIiBhbmQgCiAgICAvLyBjb252ZXJ0IGludG8gIm5hbWUgfCBuYW1lIHwgbmFtZSB8IG5hbWUiOwogICAgJHRtcCA9IGV4cGxvZGUoJy4nLCRzdHIpOwogICAgJHRtcDIgPSBhcnJheSgpOwogICAgZm9yZWFjaCggJHRtcCBhcyAkb25lICkKICAgICAgewoJJHRtcDJbXSA9IHRyaW0odHJpbSgkb25lLCciJykpOwogICAgICB9CiAgICAkdG1wMyA9IGltcGxvZGUoJyB8ICcsJHRtcDIpOwoKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAkcXVlcnkgPSAnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkKICAgICAgICAgICAgICAgV0hFUkUgbG9uZ19uYW1lID0gPyc7CiAgICAkdG1wID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCR0bXAzKSk7CiAgICBpZiggISR0bXAgKSByZXR1cm4gRkFMU0U7CiAgICByZXR1cm4gVFJVRTsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNoZWNrX3NrdV91c2VkKCRza3UsJHByb2R1Y3RpZCA9ICcnLCRwcm9kdWN0b25seSA9IGZhbHNlKQogIHsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAkcXVlcnkgPSAnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cwogICAgICAgICAgICAgICBXSEVSRSBza3UgPSA/JzsKICAgICRwYXJtcyA9IGFycmF5KCRza3UpOwogICAgaWYoICFlbXB0eSgkcHJvZHVjdGlkKSApCiAgICAgIHsKCSRxdWVyeSAuPSAnIEFORCBpZCAhPSA/JzsKCSRwYXJtc1tdID0gJHByb2R1Y3RpZDsKICAgICAgfQogICAgJHRtcCA9ICRkYi0+R2V0T25lKCRxdWVyeSwkcGFybXMpOwogICAgaWYoICR0bXAgKSByZXR1cm4gVFJVRTsKCiAgICBpZiggISRwcm9kdWN0b25seSApCiAgICAgIHsKCSRxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnV0ZXMKICAgICAgICAgICAgICAgICAgIFdIRVJFIHNrdSA9ID8nOwoJJHRtcCA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkc2t1KSk7CglpZiggJHRtcCApIHJldHVybiBUUlVFOwogICAgICB9CgogICAgcmV0dXJuIEZBTFNFOwogIH0KCgogIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gY2hlY2tfYWxpYXNfdXNlZCgkYWxpYXMsJHByb2R1Y3RpZCA9ICcnKQogIHsKICAgIGdsb2JhbCAkZ0NtczsKICAgICRkYiA9ICRnQ21zLT5HZXREYigpOwoKICAgICRwYXJtcyA9IGFycmF5KCk7CiAgICAkcGFybXNbXSA9ICRhbGlhczsKICAgICRxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzCiAgICAgICAgICAgICAgIFdIRVJFIGFsaWFzID0gPyc7CiAgICBpZiggIWVtcHR5KCRwcm9kdWN0aWQpICkKICAgICAgewoJJHF1ZXJ5IC49ICdBTkQgaWQgIT0gPyc7CgkkcGFybXNbXSA9IChpbnQpJHByb2R1Y3RpZDsKICAgICAgfQogICAgJHRtcCA9ICRkYi0+R2V0T25lKCRxdWVyeSwkcGFybXMpOwogICAgaWYoICEkdG1wICkgcmV0dXJuIEZBTFNFOwogICAgcmV0dXJuIFRSVUU7CiAgfQoKCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBnZW5lcmF0ZV9hbGlhcygkcHJvZHVjdF9uYW1lKQogIHsKICAgICRzdHIgPSBtdW5nZV9zdHJpbmdfdG9fdXJsKCRwcm9kdWN0X25hbWUpOwogICAgJHBvc3RmaXggPSAnJzsKICAgIAogICAgd2hpbGUoICRwb3N0Zml4IDwgMTAwMCApCiAgICAgIHsKCSRhbGlhcyA9ICRzdHIuJHBvc3RmaXg7CglpZiggIXNlbGY6OmNoZWNrX2FsaWFzX3VzZWQoJGFsaWFzKSApIHJldHVybiAkYWxpYXM7CglpZiggJHBvc3RmaXggPT0gJycgKSAkcG9zdGZpeCA9IDE7CgkkcG9zdGZpeCsrOwogICAgICB9CgogICAgcmV0dXJuIEZBTFNFOwogIH0KCgogIC8vIGNyZWF0ZXMgYSBwcm9kdWN0IGRldGFpbCB1cmwuCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBwcmV0dHlfdXJsKCRwaWQsJHJldHVybmlkID0gJycpCiAgewogICAgJG1vZHVsZSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnUHJvZHVjdHMnKTsKICAgICRwcm9kdWN0ID0gc2VsZjo6Z2V0X3Byb2R1Y3QoJHBpZCk7CiAgICBpZiggISRwcm9kdWN0ICkgcmV0dXJuOwogICAgJGRiID0gY21zbXMoKS0+R2V0REIoKTsKICAgIAogICAgJHVzZXJldHVybmlkID0gdHJ1ZTsgICAgCiAgICBpZiggJHJldHVybmlkID09IC0xICkKICAgICAgewoJZ2xvYmFsICRnQ21zOwoJJGNvbnRlbnRvcHMgPSAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKCSRyZXR1cm5pZCA9ICRjb250ZW50b3BzLT5HZXREZWZhdWx0Q29udGVudCgpOwogICAgICB9CiAgICAkZGZsdHJldHVybmlkID0gJG1vZHVsZS0+R2V0UHJlZmVyZW5jZSgnZGV0YWlscGFnZScsLTEpOwogICAgaWYoICRkZmx0cmV0dXJuaWQgPT0gJHJldHVybmlkIHx8ICRyZXR1cm5pZCA9PSAnJyApCiAgICAgIHsKCSR1c2VyZXR1cm5pZCA9IGZhbHNlOwoJJHJldHVybmlkID0gJGRmbHRyZXR1cm5pZDsKICAgICAgfQoKICAgICRwcmV0dHlfdXJsID0gJG1vZHVsZS0+R2V0UHJlZmVyZW5jZSgndXJscHJlZml4JywkbW9kdWxlLT5HZXROYW1lKCkpOwogICAgJGRvbmUgPSBmYWxzZTsKICAgIGlmKCAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCd1c2VoaWVycGF0aHVybHMnLDApICYmICFlbXB0eSgkcHJvZHVjdFsnYWxpYXMnXSkgJiYgKCRwcm9kdWN0WydoaWVyX2lkJ10gPiAwKSApCiAgICAgIHsKCSRoaWVyX2lkID0gc2VsZjo6Z2V0X3Byb2R1Y3RfaGllcmFyY2h5X2lkKCRwaWQpOwoJaWYoICRoaWVyX2lkICkKCSAgewoJICAgICR0bXAgPSBoaWVyYXJjaHlfb3BzOjpnZXRfaGllcmFyY2h5X2luZm8oJGhpZXJfaWQpOwoJICAgIGlmKCAkdG1wICkKCSAgICAgIHsKCQkkdG1wMiA9IGV4cGxvZGUoJyB8ICcsJHRtcFsnbG9uZ19uYW1lJ10pOwoJCWZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0bXAyKTsgJGkrKyApCgkJICB7CgkJICAgICR0bXAyWyRpXSA9IG11bmdlX3N0cmluZ190b191cmwoJHRtcDJbJGldKTsKCQkgIH0KCQkkcGF0aCA9IGltcGxvZGUoJy8nLCR0bXAyKTsKCQkKCQkkcHJldHR5X3VybCAuPSAnL2RldGFpbHMnOwoKCQlpZiggJHVzZXJldHVybmlkICkKCQkgIHsKCQkgICAgJHByZXR0eV91cmwgLj0gIi8kcmV0dXJuaWQiOwoJCSAgfQoKCQlpZiggIWVtcHR5KCRwYXRoKSApCgkJICB7CgkJICAgICRwcmV0dHlfdXJsIC49ICIvJHBhdGgiOwoJCSAgfQoJCQoJCSRwcmV0dHlfdXJsIC49ICIvIi4kcHJvZHVjdFsnYWxpYXMnXTsKCQkkZG9uZSA9IHRydWU7CgkgICAgICB9CgkgIH0KICAgICAgfQoKICAgIGlmKCAhJGRvbmUgKQogICAgICB7CgkkcHJldHR5X3VybCAuPSAiLyRwaWQiOwoJaWYoICR1c2VyZXR1cm5pZCApCgkgIHsKCSAgICAkcHJldHR5X3VybCAuPSAiLyRyZXR1cm5pZCI7CgkgIH0KCSRhbGlhcyA9ICRwcm9kdWN0WydhbGlhcyddOwoJaWYoIGVtcHR5KCRhbGlhcykgKQoJICB7CgkgICAgJGFsaWFzID0gJG1vZHVsZS0+bWFrZV9hbGlhcygkcHJvZHVjdFsncHJvZHVjdF9uYW1lJ10pOwoJICB9CgkkcHJldHR5X3VybCAuPSAiLyRhbGlhcyI7CiAgICAgIH0KICAgIHJldHVybiAkcHJldHR5X3VybDsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9wcm9kdWN0X2hpZXJhcmNoeV9pZCgkcHJvZHVjdGlkKQogIHsKICAgIGlmKCAhaXNfYXJyYXkoc2VsZjo6JF9wcm9kaGllcikgfHwgIWlzc2V0KHNlbGY6OiRfcHJvZGhpZXJbJHByb2R1Y3RpZF0pICkKICAgICAgewoJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCSRxdWVyeSA9ICdTRUxFQ1QgaGllcmFyY2h5X2lkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdG9oaWVyCiAgICAgICAgICAgICAgV0hFUkUgcHJvZHVjdF9pZCA9ID8gTElNSVQgMSc7CgkkaGllcl9pZCA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkcHJvZHVjdGlkKSk7CglpZiggJGhpZXJfaWQgPD0gMCApIHJldHVybiBGQUxTRTsKCWlmKCAhaXNfYXJyYXkoc2VsZjo6JF9wcm9kaGllcikgKQoJICB7CgkgICAgc2VsZjo6JF9wcm9kaGllciA9IGFycmF5KCk7CgkgIH0KCXNlbGY6OiRfcHJvZGhpZXJbJHByb2R1Y3RpZF0gPSAkaGllcl9pZDsKICAgICAgfQogICAgcmV0dXJuIHNlbGY6OiRfcHJvZGhpZXJbJHByb2R1Y3RpZF07CiAgfQoKCiAgLyogZGVwcmVjYXRlZCAqLwogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3Byb2R1Y3RfaGllcmFyY2h5X3BhdGgoJHByb2R1Y3RpZCkKICB7CiAgICAkaGllcl9pZCA9IHNlbGY6OmdldF9wcm9kdWN0X2hpZXJhcmNoeV9pZCgkcHJvZHVjdGlkKTsKICAgIGlmKCAkaGllcl9pZCApCiAgICAgIHsKCXJldHVybiBoaWVyYXJjaHlfb3BzOjpnZXRfaGllcmFyY2h5X3BhdGgoJGhpZXJfaWQpOwogICAgICB9CiAgfQoKCiAgLyogZGVwcmVjYXRlZCAqLwogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY3JlYXRlX2hpZXJhcmNoeV9icmVhZGNydW1iKCRpZCwkcHJvZHVjdF9pZCwgJGhpZXJwYWdlLCAkZGVsaW0gPSAnICZndDsgJykKICB7CiAgICAkaGllcl9pZCA9IHNlbGY6OmdldF9wcm9kdWN0X2hpZXJhcmNoeV9pZCgkcHJvZHVjdF9pZCk7CiAgICBpZiggJGhpZXJfaWQgPD0gMCApIHJldHVybiBGQUxTRTsKICAgIHJldHVybiBoaWVyYXJjaHlfb3BzOjpnZXRfYnJlYWRjcnVtYigkaWQsJGhpZXJfaWQsJGhpZXJwYWdlLCRkZWxpbSk7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfc2VhcmNoX3Jlc3VsdCgkcmV0dXJuaWQsICRwcm9kdWN0aWQsICRhdHRyID0gJycpCiAgewogICAgJHJlc3VsdCA9IGFycmF5KCk7CiAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdQcm9kdWN0cycpOwogICAgCiAgICBpZiAoJGF0dHIgIT0gJ3Byb2R1Y3QnKQogICAgICB7CglyZXR1cm4gJHJlc3VsdDsKICAgICAgfQoKICAgIGlmKCAkbW9kLT5HZXRQcmVmZXJlbmNlKCd1c2VfZGV0YWlscGFnZV9mb3Jfc2VhcmNoJywwKSApCiAgICAgIHsKCSRyZXR1cm5pZCA9ICcnOwogICAgICB9CgogICAgJGRiID0gJG1vZC0+R2V0RGIoKTsKICAgICRxID0gIlNFTEVDVCBwcm9kdWN0X25hbWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzIFdIRVJFCgkJCSAgICAgIGlkID0gPyI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxLCBhcnJheSggJHByb2R1Y3RpZCApICk7CiAgICBpZiAoJGRicmVzdWx0KQogICAgICB7Cgkkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpOwoJCgkvLzAgcG9zaXRpb24gaXMgdGhlIHByZWZpeCBkaXNwbGF5ZWQgaW4gdGhlIGxpc3QgcmVzdWx0cy4KCSRyZXN1bHRbMF0gPSAkbW9kLT5HZXRGcmllbmRseU5hbWUoKTsKCQoJLy8xIHBvc2l0aW9uIGlzIHRoZSB0aXRsZQoJJHJlc3VsdFsxXSA9ICRyb3dbJ3Byb2R1Y3RfbmFtZSddOwoJCgkvLzIgcG9zaXRpb24gaXMgdGhlIFVSTCB0byB0aGUgdGl0bGUuCgkkcHJldHR5dXJsID0gc2VsZjo6cHJldHR5X3VybCgkcHJvZHVjdGlkLCRyZXR1cm5pZCk7CgkkcmVzdWx0WzJdID0gJG1vZC0+Q3JlYXRlTGluaygnY250bnQwMScsICdkZXRhaWxzJywgJHJldHVybmlkLCAnJywgYXJyYXkoJ3Byb2R1Y3RpZCcgPT4gJHByb2R1Y3RpZCkgLAoJCQkJICAgICAgJycsIHRydWUsIGZhbHNlLCAnJywgdHJ1ZSwgJHByZXR0eXVybCk7CiAgICAgIH0KICAgIAogICAgcmV0dXJuICRyZXN1bHQ7CiAgfQoJCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2N1cnJlbmN5X3N5bWJvbCgpCiAgewogICAgaWYoIGNsYXNzX2V4aXN0cygnY2dfZWNvbW0nKSApCiAgICAgIHsKCXJldHVybiBjZ19lY29tbTo6Z2V0X2N1cnJlbmN5X3N5bWJvbCgpOwogICAgICB9CiAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdQcm9kdWN0cycpOwogICAgcmV0dXJuICRtb2QtPkdldFByZWZlcmVuY2UoJ3Byb2R1Y3RzX2N1cnJlbmN5c3ltYm9sJywnJCcpOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3dlaWdodF91bml0cygpCiAgewogICAgaWYoIGNsYXNzX2V4aXN0cygnY2dfZWNvbW0nKSApCiAgICAgIHsKCXJldHVybiBjZ19lY29tbTo6Z2V0X3dlaWdodF91bml0cygpOwogICAgICB9CiAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdQcm9kdWN0cycpOwogICAgcmV0dXJuICRtb2QtPkdldFByZWZlcmVuY2UoJ3Byb2R1Y3RzX3dlaWdodHVuaXRzJywna2cnKTsKICB9CgogIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2xlbmd0aF91bml0cygpCiAgewogICAgaWYoIGNsYXNzX2V4aXN0cygnY2dfZWNvbW0nKSApCiAgICAgIHsKCXJldHVybiBjZ19lY29tbTo6Z2V0X2xlbmd0aF91bml0cygpOwogICAgICB9CiAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdQcm9kdWN0cycpOwogICAgcmV0dXJuICRtb2QtPkdldFByZWZlcmVuY2UoJ3Byb2R1Y3RzX2xlbmd0aHVuaXRzJywna2cnKTsKICB9CgogIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2ZpZWxkcygpCiAgewogICAgaWYoICFpc19hcnJheShzZWxmOjokX2ZpZWxkZGVmcykgKQogICAgICB7CglnbG9iYWwgJGdDbXM7CgkkZGIgPSAkZ0Ntcy0+R2V0RGIoKTsKCQoJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMgT1JERVIgQlkgaXRlbV9vcmRlcic7CglzZWxmOjokX2ZpZWxkZGVmcyA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKICAgICAgfQogICAgcmV0dXJuIHNlbGY6OiRfZmllbGRkZWZzOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2ZpZWxkX29wdGlvbnMoJHR5cGUgPSAnJykKICB7CiAgICAkdG1wID0gc2VsZjo6Z2V0X2ZpZWxkcygpOwogICAgaWYoICFpc19hcnJheSgkdG1wKSApIHJldHVybjsKCiAgICAkcmVzdWx0ID0gYXJyYXkoKTsKICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0bXApOyAkaSsrICkKICAgICAgewoJaWYoICR0eXBlID09ICcnIHx8ICR0bXBbJGldWyd0eXBlJ10gPT0gJHR5cGUgKQoJICB7CgkgICAgJHJlc3VsdFskdG1wWyRpXVsnaWQnXV0gPSAkdG1wWyRpXVsncHJvbXB0J107CgkgIH0KICAgICAgfQogICAgcmV0dXJuICRyZXN1bHQ7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfcHJvZHVjdF9hdHRyaWJ1dGVzX2Z1bGwoJHByb2R1Y3RfaWQpCiAgewogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRkYXRhID0gYXJyYXkoKTsKCiAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnNldHMKICAgICAgICAgICAgICBXSEVSRSBwcm9kdWN0X2lkID0gPyc7CiAgICAkdG1wID0gJGRiLT5HZXRBcnJheSgkcXVlcnksYXJyYXkoJHByb2R1Y3RfaWQpKTsJCgogICAgJHRtcDIgPSBjZ2VfYXJyYXk6OmV4dHJhY3RfZmllbGQoJHRtcCwnYXR0cmliX3NldF9pZCcpOwogICAgJHEyID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJ1dGVzCiAgICAgICAgICAgIFdIRVJFIGF0dHJpYl9zZXRfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJHRtcDIpLicpIE9SREVSIEJZIGF0dHJpYl9zZXRfaWQgQVNDJzsKICAgICR0bXAzID0gJGRiLT5HZXRBcnJheSgkcTIpOwoKICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0bXApOyAkaSsrICkKICAgICAgewoJJHJvdyA9JiAkdG1wWyRpXTsKCgkkYXR0cmlicyA9IGFycmF5KCk7Cglmb3IoICRqID0gMDsgJGogPCBjb3VudCgkdG1wMyk7ICRqKysgKQoJICB7CgkgICAgJHJvdzIgPSYgJHRtcDNbJGpdOwoJICAgIGlmKCAkcm93MlsnYXR0cmliX3NldF9pZCddIDwgJHJvd1snYXR0cmliX3NldF9pZCddICkgY29udGludWU7CgkgICAgaWYoICRyb3cyWydhdHRyaWJfc2V0X2lkJ10gPiAkcm93WydhdHRyaWJfc2V0X2lkJ10gKSBicmVhazsKCgkgICAgJGF0dHJpYnNbJHJvdzJbJ2F0dHJpYl90ZXh0J11dID0gJHJvdzI7CgkgIH0KCSRkYXRhWyRyb3dbJ2F0dHJpYl9zZXRfbmFtZSddXSA9ICRhdHRyaWJzOwogICAgICB9CgogICAgaWYoICFjb3VudCgkZGF0YSkgKSByZXR1cm4gZmFsc2U7CiAgICByZXR1cm4gJGRhdGE7CiAgfQp9IC8vIGNsYXNzCgoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.product_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmaW5hbCBjbGFzcyBwcm9kdWN0X3V0aWxzCnsKICBwcm90ZWN0ZWQgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7fQogIHByaXZhdGUgc3RhdGljICRfY2F0ZWdvcnlfY2FjaGU7CiAgc3RhdGljIHByaXZhdGUgJF9mbGRkZWZfY2FjaGU7CgogIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpZWxkX3R5cGVzKCRzZWxlY3RvbmUgPSBmYWxzZSkKICB7CiAgICAkbW9kID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdQcm9kdWN0cycpOwogICAgJGl0ZW1zID0gYXJyYXkoKTsKICAgIGlmKCAkc2VsZWN0b25lICkKICAgICAgewoJJGl0ZW1zWyRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKV0gPSAnJzsKICAgICAgfQogICAgJGl0ZW1zWyRtb2QtPkxhbmcoJ3RleHRib3gnKV0gPSAndGV4dGJveCc7CiAgICAkaXRlbXNbJG1vZC0+TGFuZygnY2hlY2tib3gnKV0gPSAnY2hlY2tib3gnOwogICAgJGl0ZW1zWyRtb2QtPkxhbmcoJ3RleHRhcmVhJyldID0gJ3RleHRhcmVhJzsKICAgICRpdGVtc1skbW9kLT5MYW5nKCdkcm9wZG93bicpXSA9ICdkcm9wZG93bic7CiAgICAkaXRlbXNbJG1vZC0+TGFuZygnaW1hZ2V0ZXh0JyldID0gJ2ltYWdlJzsKICAgICRpdGVtc1skbW9kLT5MYW5nKCdmaWxlJyldID0gJ2ZpbGUnOwogICAgJGl0ZW1zWyRtb2QtPkxhbmcoJ2RpbWVuc2lvbnMnKV0gPSAnZGltZW5zaW9ucyc7CiAgICAkaXRlbXNbJG1vZC0+TGFuZygnc3Vic2NyaXB0aW9uJyldID0gJ3N1YnNjcmlwdGlvbic7CiAgICAkaXRlbXNbJG1vZC0+TGFuZygncXVhbnRpdHlfb25faGFuZCcpXSA9ICdxdWFudGl0eSc7CiAgICByZXR1cm4gYXJyYXlfZmxpcCgkaXRlbXMpOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlhYmxlX2ZpZWxkdmFsKCRmaWVsZG5hbWUsJGZpZWxkdmFsKQogIHsKICAgICRtb2QgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ1Byb2R1Y3RzJyk7CiAgICAkZmllbGRzID0gcHJvZHVjdF9vcHM6OmdldF9maWVsZHMoKTsKICAgICRmaWVsZHMgPSBjZ2VfYXJyYXk6OnRvX2hhc2goJGZpZWxkcywnbmFtZScpOwogICAgJGZpZWxkdHlwZSA9ICRmaWVsZHNbJGZpZWxkbmFtZV1bJ3R5cGUnXTsKICAgICRyZXMgPSAkZmllbGR2YWw7CiAgICBzd2l0Y2goICRmaWVsZHR5cGUgKQogICAgICB7CiAgICAgIGNhc2UgJ2NoZWNrYm94JzoKCWlmKCAhaXNfbnVsbCgkcmVzKSApCgkgICRyZXMgPSAkbW9kLT5MYW5nKCdwcm9tcHRfJy4kcmVzKTsKCWJyZWFrOwogICAgICBjYXNlICd0ZXh0YXJlYSc6CgkkcmVzID0gJyc7CglicmVhazsKICAgICAgY2FzZSAnZHJvcGRvd24nOgogICAgICBjYXNlICdpbWFnZSc6CiAgICAgIGNhc2UgJ2ZpbGUnOgoJYnJlYWs7CiAgICAgIGNhc2UgJ2RpbWVuc2lvbnMnOgoJewoJICBpZiggaXNfYXJyYXkoJHJlcykgJiYgJHJlc1snbGVuZ3RoJ10gPiAwICYmICRyZXNbJ3dpZHRoJ10gPiAwICYmICRyZXNbJ2hlaWdodCddID4gMCApCgkgICAgewoJICAgICAgJHJlcyA9IHNwcmludGYoJyVzOiAlZCwgJXM6ICVkLCAlczogJWQnLAoJCQkgICAgICRtb2QtPkxhbmcoJ2FiYnJfbGVuZ3RoJyksJHJlc1snbGVuZ3RoJ10sCgkJCSAgICAgJG1vZC0+TGFuZygnYWJicl93aWR0aCcpLCRyZXNbJ3dpZHRoJ10sCgkJCSAgICAgJG1vZC0+TGFuZygnYWJicl9oZWlnaHQnKSwkcmVzWydoZWlnaHQnXSk7CgkgICAgfQoJICBlbHNlCgkgICAgewoJICAgICAgJHJlcyA9ICRtb2QtPkxhbmcoJ25vbmUnKTsKCSAgICB9Cgl9CglicmVhazsKICAgICAgY2FzZSAnc3Vic2NyaXB0aW9uJzoKCXsKCSAgaWYoIGlzX2FycmF5KCRyZXMpICYmICRyZXNbJ3BheXBlcmlvZCddICE9IC0xICYmICRyZXNbJ2RlbHBlcmlvZCddICE9IC0xICkKCSAgICB7CgkgICAgICAkc3Vic2NyaWJlX29wdHMgPSBhcnJheSgpOwoJICAgICAgJHN1YnNjcmliZV9vcHRzWy0xXSA9ICRtb2QtPkxhbmcoJ25vbmUnKTsKCSAgICAgICRzdWJzY3JpYmVfb3B0c1snbW9udGhseSddID0gJG1vZC0+TGFuZygnc3Vic2NyX21vbnRobHknKTsKCSAgICAgICRzdWJzY3JpYmVfb3B0c1sncXVhcnRlcmx5J10gPSAkbW9kLT5MYW5nKCdzdWJzY3JfcXVhcnRlcmx5Jyk7CgkgICAgICAkc3Vic2NyaWJlX29wdHNbJ3NlbWlhbnVhbGx5J10gPSAkbW9kLT5MYW5nKCdzdWJzY3Jfc2VtaWFudWFsbHknKTsKCSAgICAgICRzdWJzY3JpYmVfb3B0c1sneWVhcmx5J10gPSAkbW9kLT5MYW5nKCdzdWJzY3JfeWVhcmx5Jyk7CgoJICAgICAgJGV4cGlyZV9vcHRzID0gYXJyYXkoKTsKCSAgICAgICRleHBpcmVfb3B0c1skbW9kLT5MYW5nKCdub25lJyldID0gLTE7CgkgICAgICAkZXhwaXJlX29wdHNbJG1vZC0+TGFuZygnZXhwaXJlX3NpeF9tb250aCcpXSA9ICc2JzsKCSAgICAgICRleHBpcmVfb3B0c1skbW9kLT5MYW5nKCdleHBpcmVfb25lX3llYXInKV0gPSAnMTInOwoJICAgICAgJGV4cGlyZV9vcHRzWyRtb2QtPkxhbmcoJ2V4cGlyZV90d29feWVhcicpXSA9ICcyNCc7CgkgICAgICAkZXhwaXJlX29wdHMgPSBhcnJheV9mbGlwKCRleHBpcmVfb3B0cyk7CgoJICAgICAgJGV4cGlyeSA9ICdub25lJzsKCSAgICAgIGlmKCAkZmllbGR2YWxbJ2V4cGlyZSddICE9IC0xICkKCQl7CgkJICAkZXhwaXJ5ID0gJGZpZWxkdmFsWydleHBpcmUnXTsKCQl9CgkgICAgICAkcmVzID0gc3ByaW50ZignJXM6ICVzLCAlczogJXMsICVzOiAlcycsCgkJCSAgICAgJG1vZC0+TGFuZygnc3Vic2NyX3BheXBlcmlvZDInKSwkZmllbGR2YWxbJ3BheXBlcmlvZCddLAoJCQkgICAgICRtb2QtPkxhbmcoJ3N1YnNjcl9kZWxwZXJpb2QyJyksJGZpZWxkdmFsWydkZWxwZXJpb2QnXSwKCQkJICAgICAkbW9kLT5MYW5nKCdzdWJzY3JfZXhwaXJ5MicpLCRleHBpcnkpOwoJICAgIH0KCSAgZWxzZQoJICAgIHsKCSAgICAgICRyZXMgPSAkbW9kLT5MYW5nKCdub25lJyk7CgkgICAgfQoJfQoJYnJlYWs7CiAgICAgIH0KCiAgICByZXR1cm4gJHJlczsKICB9CgoKICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIGhpZXJhcmNoeV9nZXRfdHJlZSgkcGFyZW50X2lkID0gLTEsJHNob3dhbGwgPSAwLCRjYWxsYmFja19mbiA9ICcnKQogIHsKICAgICRoaWVyYXJjaHlfbWFwID0gaGllcmFyY2h5X29wczo6Z2V0X2FsbF9oaWVyYXJjaHlfaW5mbyhUUlVFLCRzaG93YWxsKTsKICAgIGlmKCAhaXNfYXJyYXkoJGhpZXJhcmNoeV9tYXApIHx8IGNvdW50KCRoaWVyYXJjaHlfbWFwKSA9PSAwICkgcmV0dXJuIEZBTFNFOwoKICAgICRvdXQgPSBhcnJheSgpOwogICAgZm9yZWFjaCggJGhpZXJhcmNoeV9tYXAgYXMgJG9uZWhpZXIgKSB7CiAgICAgIGlmKCAkb25laGllclsncGFyZW50X2lkJ10gIT0gJHBhcmVudF9pZCApIGNvbnRpbnVlOwogICAgICBpZiggJGNhbGxiYWNrX2ZuICE9ICcnICYmIGZ1bmN0aW9uX2V4aXN0cygkY2FsbGJhY2tfZm4pICkgewoJJGNhbGxiYWNrX2ZuKCRvbmVoaWVyKTsKICAgICAgfQogICAgICAkdG1wID0gc2VsZjo6aGllcmFyY2h5X2dldF90cmVlKCRvbmVoaWVyWydpZCddLCRzaG93YWxsLCRjYWxsYmFja19mbik7CiAgICAgIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKCSRvbmVoaWVyWydjaGlsZHJlbiddID0gJHRtcDsKICAgICAgfQogICAgICAkb3V0W10gPSAkb25laGllcjsKICAgIH0KICAgIHJldHVybiAkb3V0OwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gdXBkYXRlX2hpZXJhcmNoeV9wb3NpdGlvbnMoKQogIHsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgkKICAgICRxdWVyeSA9ICJTRUxFQ1QgaWQsIGl0ZW1fb3JkZXIsIG5hbWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgIGlmKCAhJGRicmVzdWx0ICkgeyBlY2hvICRkYi0+c3FsLic8YnIvPic7IGRpZSggJGRiLT5FcnJvck1zZygpICk7IH0KICAgIHdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKICAgICAgewoJJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uID0gIiI7CgkkY3VycmVudF9sb25nX25hbWUgPSAiIjsKCSRjb250ZW50X2lkID0gJHJvd1snaWQnXTsKCSRjdXJyZW50X3BhcmVudF9pZCA9ICRyb3dbJ2lkJ107CgkkY291bnQgPSAwOwoJCQoJd2hpbGUgKCRjdXJyZW50X3BhcmVudF9pZCA+IC0xKQoJICB7CgkgICAgJHF1ZXJ5ID0gIlNFTEVDVCBpZCwgaXRlbV9vcmRlciwgbmFtZSwgcGFyZW50X2lkIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkgCiAgICAgICAgICAgICAgICAgICAgIFdIRVJFIGlkID0gPyI7CgkgICAgJHJvdzIgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRjdXJyZW50X3BhcmVudF9pZCkpOwoJICAgIGlmICgkcm93MikKCSAgICAgIHsKCQkkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24gPSBzdHJfcGFkKCRyb3cyWydpdGVtX29yZGVyJ10sIDUsICcwJywgU1RSX1BBRF9MRUZUKSAuICIuIiAuICRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbjsKCQkkY3VycmVudF9sb25nX25hbWUgPSAkcm93MlsnbmFtZSddIC4gJyB8ICcgLiAkY3VycmVudF9sb25nX25hbWU7CgkJJGN1cnJlbnRfcGFyZW50X2lkID0gJHJvdzJbJ3BhcmVudF9pZCddOwoJCSRjb3VudCsrOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkY3VycmVudF9wYXJlbnRfaWQgPSAwOwoJICAgICAgfQoKCSAgfQoJCSAgCglpZiAoc3RybGVuKCRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbikgPiAwKQoJICB7CgkgICAgJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uID0gc3Vic3RyKCRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbiwgMCwgc3RybGVuKCRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbikgLSAxKTsKCSAgfQoJCSAgCglpZiAoc3RybGVuKCRjdXJyZW50X2xvbmdfbmFtZSkgPiAwKQoJICB7CgkgICAgJGN1cnJlbnRfbG9uZ19uYW1lID0gc3Vic3RyKCRjdXJyZW50X2xvbmdfbmFtZSwgMCwgc3RybGVuKCRjdXJyZW50X2xvbmdfbmFtZSkgLSAzKTsKCSAgfQoJICAKCSRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkgCiAgICAgICAgICAgICAgICAgIFNFVCBoaWVyYXJjaHkgPSA/LCBsb25nX25hbWUgPSA/IFdIRVJFIGlkID0gPyI7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24sICRjdXJyZW50X2xvbmdfbmFtZSwgJGNvbnRlbnRfaWQpKTsKICAgICAgfQogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaGllcmFyY2h5X3NhdmVfdHJlZSgkdHJlZSwkZGVwdGggPSAwLCR1cGRhdGVfaGllcmFyY2h5ID0gVFJVRSkKICB7CiAgICAkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IAogICAgICAgICAgICAgIFNFVCBwYXJlbnRfaWQgPSA/LCBpdGVtX29yZGVyID0gPyBXSEVSRSBpZCA9ID8nOwogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgIGZvcmVhY2goICR0cmVlIGFzICYkbm9kZSApCiAgICAgIHsKCSRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRub2RlWydwYXJlbnRfaWQnXSwkbm9kZVsnaXRlbV9vcmRlciddLCRub2RlWydpZCddKSk7CglpZiggaXNzZXQoJG5vZGVbJ2NoaWxkcmVuJ10pICkKCSAgewoJICAgIHNlbGY6OmhpZXJhcmNoeV9zYXZlX3RyZWUoJG5vZGVbJ2NoaWxkcmVuJ10sJGRlcHRoKzEpOwoJICB9CiAgICAgIH0KCiAgICBpZiggJGRlcHRoID09IDAgJiYgJHVwZGF0ZV9oaWVyYXJjaHkgKQogICAgICB7CglzZWxmOjp1cGRhdGVfaGllcmFyY2h5X3Bvc2l0aW9ucygpOwogICAgICB9CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfY2F0ZWdvcmllcygkYnlfbmFtZSA9IEZBTFNFKQogIHsKICAgIGlmKCBpc19udWxsKHNlbGY6OiRfY2F0ZWdvcnlfY2FjaGUpICkgewogICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMgT1JERVIgQlkgbmFtZSBBU0MnOwogICAgICAkdG1wID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgICBzZWxmOjokX2NhdGVnb3J5X2NhY2hlID0gRkFMU0U7CiAgICAgIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKCXNlbGY6OiRfY2F0ZWdvcnlfY2FjaGUgPSBhcnJheSgpOwoJZm9yZWFjaCggJHRtcCBhcyAkcm93ICkgewoJICAkcm93ID0gY2dlX2FycmF5Ojp0b19vYmplY3QoJHJvdyk7CgkgIHNlbGY6OiRfY2F0ZWdvcnlfY2FjaGVbJHJvdy0+aWRdID0gJHJvdzsKCX0KICAgICAgfQogICAgfQoKICAgIGlmKCAhJGJ5X25hbWUgKSB7CiAgICAgIHJldHVybiBzZWxmOjokX2NhdGVnb3J5X2NhY2hlOwogICAgfQoKICAgIGlmKCBpc19hcnJheShzZWxmOjokX2NhdGVnb3J5X2NhY2hlKSApIHsKICAgICAgJG91dCA9IGFycmF5KCk7CiAgICAgIGZvcmVhY2goIHNlbGY6OiRfY2F0ZWdvcnlfY2FjaGUgYXMgJHJvdyApIHsKCSRvdXRbJHJvdy0+bmFtZV0gPSAkcm93OwogICAgICB9CiAgICAgIHJldHVybiAkb3V0OwogICAgfQogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfZnVsbF9jYXRlZ29yaWVzKCRieV9uYW1lID0gRkFMU0UpCiAgewogICAgJGNhdGVnb3JpZXMgPSBzZWxmOjpnZXRfY2F0ZWdvcmllcygpOwogICAgaWYoICFpc19hcnJheSgkY2F0ZWdvcmllcykgfHwgY291bnQoJGNhdGVnb3JpZXMpID09IDAgKSB7CiAgICAgIHJldHVybjsKICAgIH0KICAgIAogICAgJGtleXMgPSBhcnJheV9rZXlzKCRjYXRlZ29yaWVzKTsKICAgICRmaWQgPSAka2V5c1swXTsgLy8gZmlyc3QgZmllbGQuCiAgICBpZiggIWlzc2V0KHNlbGY6OiRfY2F0ZWdvcnlfY2FjaGVbJGZpZF0tPmRhdGEpICkgewogICAgICAvLyB3ZSdyZSBnb25uYSB1c2UgdGhlIHNhbWUgY2FjaGUgYWdhaW4uLi4KICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMgT1JERVIgQlkgY2F0ZWdvcnlfaWQsZmllbGRfb3JkZXInOwogICAgICAkZGJyID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgICBmb3JlYWNoKCAka2V5cyBhcyAkb25lICkgewoJJGNhdCA9JiBzZWxmOjokX2NhdGVnb3J5X2NhY2hlWyRvbmVdOwoJaWYoICFpc3NldCgkY2F0LT5kYXRhKSApICRjYXQtPmRhdGEgPSBhcnJheSgpOwoJZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGRicik7ICRpKysgKSB7CgkgICRjYXRpZCA9ICRkYnJbJGldWydjYXRlZ29yeV9pZCddOwoJICAkY2F0LT5kYXRhW10gPSAkZGJyWyRpXTsKCX0KICAgICAgfQogICAgfQoKICAgIGlmKCAhJGJ5X25hbWUgKSB7CiAgICAgIHJldHVybiBzZWxmOjokX2NhdGVnb3J5X2NhY2hlOwogICAgfQoKICAgIGlmKCBpc19hcnJheShzZWxmOjokX2NhdGVnb3J5X2NhY2hlKSApIHsKICAgICAgJG91dCA9IGFycmF5KCk7CiAgICAgIGZvcmVhY2goIHNlbGY6OiRfY2F0ZWdvcnlfY2FjaGUgYXMgJHJvdyApIHsKCSRvdXRbJHJvdy0+bmFtZV0gPSAkcm93OwogICAgICB9CiAgICAgIHJldHVybiAkb3V0OwogICAgfQogIH0KCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmllbGRkZWZzKCRhZG1pbiA9IGZhbHNlLCRwdWJsaWMgPSB0cnVlKQogIHsKICAgIGlmKCAhaXNfYXJyYXkoc2VsZjo6JF9mbGRkZWZfY2FjaGUpICkgewogICAgICAkZW50cnlhcnJheSA9IGFycmF5KCk7CiAgICAgICRkYiA9IGNtc21zKCktPkdldERCKCk7CgkJCiAgICAgIGlmKCAkYWRtaW4gPT0gdHJ1ZSAmJiAkcHVibGljID09IHRydWUgKSB7CgkkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBPUkRFUiBCWSBpdGVtX29yZGVyJzsKICAgICAgfQogICAgICBlbHNlIGlmKCAkcHVibGljID09IHRydWUgKSB7CgkkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBXSEVSRSBwdWJsaWMgPiAwIE9SREVSIEJZIGl0ZW1fb3JkZXInOwogICAgICB9CiAgICAgIGVsc2UgewoJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMgV0hFUkUgYWRtaW5fb25seSA8PSAwIE9SREVSIEJZIGl0ZW1fb3JkZXInOwogICAgICB9CiAgICAgICRkYnJlc3VsdCA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKCQkKICAgICAgaWYoIGlzX2FycmF5KCRkYnJlc3VsdCkgKSB7Cglmb3JlYWNoKCAkZGJyZXN1bHQgYXMgJHJvdyApIHsKCSAgJG9uZXJvdyA9IG5ldyBzdGRDbGFzcygpOwoJCQkJCgkgICRvbmVyb3ctPmlkID0gJHJvd1snaWQnXTsKCSAgJG9uZXJvdy0+bmFtZSA9ICRyb3dbJ25hbWUnXTsKCSAgJG9uZXJvdy0+cHJvbXB0ID0gJHJvd1sncHJvbXB0J107CgkgICRvbmVyb3ctPnR5cGUgPSAkcm93Wyd0eXBlJ107CgkgICR0bXAgPSBleHBsb2RlKCJcbiIsJHJvd1snb3B0aW9ucyddKTsKCSAgJHRtcDIgPSBhcnJheSgpOwoJICBmb3JlYWNoKCAkdG1wIGFzICRvbmUgKSB7CgkgICAgJG9uZSA9IHRyaW0oJG9uZSk7CgkgICAgJHRtcDJbJG9uZV0gPSAkb25lOwoJICB9CgkgICRvbmVyb3ctPm9wdGlvbnMgPSAkdG1wMjsKCSAgJG9uZXJvdy0+bWF4X2xlbmd0aCA9ICRyb3dbJ21heF9sZW5ndGgnXTsKCSAgCgkgICRlbnRyeWFycmF5W10gPSAkb25lcm93OwoJfQogICAgICB9CiAgICAgIHNlbGY6OiRfZmxkZGVmX2NhY2hlID0gJGVudHJ5YXJyYXk7CiAgICB9CgkJCiAgICByZXR1cm4gc2VsZjo6JF9mbGRkZWZfY2FjaGU7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNhbl9kb19wcmV0dHkoJGFjdGlvbiwkcGFyYW1zKSB7CiAgICBpZiggIWlzc2V0KCRwYXJhbXNbJ25vdHByZXR0eSddKSApIHJldHVybiBUUlVFOwoKICAgIGlmKCBzdHJwb3MoJHBhcmFtc1snbm90cHJldHR5J10sJ2FsbCcpICE9PSBGQUxTRSB8fCBzdHJwb3MoJHBhcmFtc1snbm90cHJldHR5J10sJGFjdGlvbikgIT09IEZBTFNFICkgewogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgogICAgcmV0dXJuIFRSVUU7CiAgfQp9IC8vIHByb2R1Y3QgdXRpbHMKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJGRiID0gJHRoaXMtPkdldERiKCk7CgokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CiRmbGRzID0gIgoJaWQgSSBLRVkgQVVUTywKCXByb2R1Y3RfbmFtZSBDKDI1NSkgTk9UIE5VTEwsCglkZXRhaWxzIFgsCiAgICAgICAgcHJpY2UgRiwKCWNyZWF0ZV9kYXRlICIgLiBDTVNfQURPREJfRFQgLiAiLAoJbW9kaWZpZWRfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwKICAgICAgICB0YXhhYmxlIEksCiAgICAgICAgc3RhdHVzIEMoNTApLAogICAgICAgIHdlaWdodCBGLAogICAgICAgIHNrdSAgICBDKDI1KSwKICAgICAgICBhbGlhcyAgQygyNTUpCiI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0cyIsIAoJCSRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoKJGZsZHMgPSAiCglpZCBJIEtFWSBBVVRPLAoJbmFtZSBDKDI1NSkgTk9UIE5VTEwsCgljcmVhdGVfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwKCW1vZGlmaWVkX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIKIjsKCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19jYXRlZ29yaWVzIiwgCgkJJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgokZmxkcyA9ICIKCXByb2R1Y3RfaWQgSSBOT1QgTlVMTCwKCWNhdGVnb3J5X2lkIEkgTk9UIE5VTEwsCgljcmVhdGVfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwKCW1vZGlmaWVkX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIKIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcyIsIAoJCSRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoKJGZsZHMgPSAiCiAgICAgICAgY2F0ZWdvcnlfaWQgSSwKICAgICAgICBmaWVsZF90eXBlICBDKDIwKSwKICAgICAgICBmaWVsZF9uYW1lICBDKDI1NSksCiAgICAgICAgZmllbGRfcHJvbXB0IEMoMjU1KSwKICAgICAgICBmaWVsZF92YWx1ZSAgWCwKICAgICAgICBmaWVsZF9vcmRlciAgSQoiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcnlfZmllbGRzIiwgCgkJJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgokZmxkcyA9ICIKCWlkIEkgS0VZIEFVVE8sCgluYW1lIEMoMjU1KSBOT1QgTlVMTCwKICAgICAgICBwcm9tcHQgQygyNTUpLAoJdHlwZSBDKDUwKSwKCW1heF9sZW5ndGggSSwKICAgICAgICBvcHRpb25zIFgsCgljcmVhdGVfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwKCW1vZGlmaWVkX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIsCiAgICAgICAgaXRlbV9vcmRlciBJLAogICAgICAgIHB1YmxpYyBJCiI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMiLCAKCQkkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCiRmbGRzID0gIgoJcHJvZHVjdF9pZCBJLAoJZmllbGRkZWZfaWQgSSwKCXZhbHVlIFgsCgljcmVhdGVfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwKCW1vZGlmaWVkX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIKIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyIsIAoJCSRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoKJGZsZHMgPSAiCiAgICAgICAgYXR0cmliX3NldF9pZCBJIEtFWSBBVVRPLAogICAgICAgIHByb2R1Y3RfaWQgSSBLRVksCiAgICAgICAgYXR0cmliX3NldF9uYW1lIEMoMjU1KSBOT1QgTlVMTAoiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlic2V0cyIsIAoJCSRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoKJGZsZHMgPSAiCiAgICAgICAgYXR0cmliX2lkIEkgS0VZIEFVVE8sCiAgICAgICAgYXR0cmliX3NldF9pZCBJIEtFWSwKICAgICAgICBhdHRyaWJfdGV4dCAgIEMoMjU1KSBLRVksCiAgICAgICAgYXR0cmliX2FkanVzdG1lbnQgQyg1MCksCiAgICAgICAgc2t1IEMoMjUpCiI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19hdHRyaWJ1dGVzIiwgCgkJJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgokZmxkcyA9ICJpZCBJIEtFWSBBVVRPLAogICAgICAgICBuYW1lIEMoMjU1KSBOT1QgTlVMTCwKICAgICAgICAgcGFyZW50X2lkIEksCiAgICAgICAgIGl0ZW1fb3JkZXIgSSwKICAgICAgICAgaGllcmFyY2h5IEMoMjU1KSwKICAgICAgICAgaW1hZ2UgQygyNTUpLAogICAgICAgICBsb25nX25hbWUgWCwKICAgICAgICAgZGVzY3JpcHRpb24gWCwKICAgICAgICAgZXh0cmExIEMoMjU1KSwKICAgICAgICAgZXh0cmEyIEMoMjU1KSI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHknLAoJCQkJICAkZmxkcywkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokZmxkcyA9ICJwcm9kdWN0X2lkIEkgS0VZLAogICAgICAgICBoaWVyYXJjaHlfaWQgSSBLRVkiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHRvaGllcicsCgkJCQkgICRmbGRzLCR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiMKIyBJbmRleGVzCiMKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdwcm9kdWN0c19uYW1lJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cycsJ3Byb2R1Y3RfbmFtZScpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfc3RhdHVzJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cycsJ3N0YXR1cycpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfc3RhdHVzJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cycsJ2FsaWFzJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdwcm9kdWN0c19wcmljZScsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMnLCdwcmljZScpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfZGF0ZXMnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzJywnY3JlYXRlX2RhdGUsbW9kaWZpZWRfZGF0ZScpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfY2F0X25hbWUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMnLCduYW1lJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdwcm9kdWN0c19wcm9kX2NhdCcsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzJywncHJvZHVjdF9pZCxjYXRlZ29yeV9pZCcpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfY2F0X3Byb2QnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcycsJ2NhdGVnb3J5X2lkLHByb2R1Y3RfaWQnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX2NhdF9mbGRfbmFtZScsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcnlfZmllbGRzJywnY2F0ZWdvcnlfaWQsZmllbGRfbmFtZScpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfZmxkZGVmX25hbWUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcycsJ25hbWUnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX2ZsZGRlZl90eXBlJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMnLCd0eXBlJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdwcm9kdWN0c19mbGR2YWxfcHJvZF9kZWYnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWx2YWxzJywncHJvZHVjdF9pZCxmaWVsZGRlZl9pZCcpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfZmxkdmFsX2RlZl9wcm9kJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsdmFscycsJ2ZpZWxkZGVmX2lkLHByb2R1Y3RfaWQnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX2hpZXJfbmFtZScsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5JywnbmFtZScpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfaGllcl9uYW1lJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHknLCduYW1lJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdwcm9kdWN0c19oaWVyX3BhcmVudCcsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5JywncGFyZW50X2lkJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdwcm9kdWN0c19oaWVyX2xvbmduYW1lJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHknLCdsb25nX25hbWUnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX2hpZXJfaGllcmFyY2h5JyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHknLCdoaWVyYXJjaHknKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX25hbWUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzJywncHJvZHVjdF9hbGlhcycpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoKCiMKIyBUZW1wbGF0ZXMKIwoKCiMgU2V0dXAgc3VtbWFyeSB0ZW1wbGF0ZQokZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX3N1bW1hcnlfdGVtcGxhdGUudHBsJyk7CmlmKCBmaWxlX2V4aXN0cyggJGZuICkgKQogIHsKICAgICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkZm4gKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXU1VNTUFSWV9URU1QTEFURSwkdGVtcGxhdGUpOwogICAgJHRoaXMtPlNldFRlbXBsYXRlKCdzdW1tYXJ5X1NhbXBsZScsJHRlbXBsYXRlKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVFNVTU1BUllfVEVNUExBVEUsJ1NhbXBsZScpOwogIH0KCiMgU2V0dXAgZGV0YWlsIHRlbXBsYXRlCiRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ29yaWdfZGV0YWlsX3RlbXBsYXRlLnRwbCcpOwppZiggZmlsZV9leGlzdHMoICRmbiApICkKICB7CiAgICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV0RFVEFJTF9URU1QTEFURSwkdGVtcGxhdGUpOwogICAgJHRoaXMtPlNldFRlbXBsYXRlKCdkZXRhaWxfU2FtcGxlJywkdGVtcGxhdGUpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ERkxUREVUQUlMX1RFTVBMQVRFLCdTYW1wbGUnKTsKICB9CgojIFNldHVwIGRlZmF1bHQgaGllcmFyY2h5IHJlcG9ydCB0ZW1wbGF0ZQokZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX2J5aGllcmFyY2h5X3RlbXBsYXRlLnRwbCcpOwppZiggZmlsZV9leGlzdHMoICRmbiApICkKICB7CiAgICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV0JZSElFUkFSQ0hZX1RFTVBMQVRFLCR0ZW1wbGF0ZSk7CiAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2J5aGllcmFyY2h5X1NhbXBsZScsJHRlbXBsYXRlKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVEJZSElFUkFSQ0hZX1RFTVBMQVRFLCdTYW1wbGUnKTsKICB9CgojIFNldHVwIGRlZmF1bHQgY2F0ZWdvcnkgbGlzdCB0ZW1wbGF0ZQokZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX2NhdGVnb3J5bGlzdF90ZW1wbGF0ZS50cGwnKTsKaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApCiAgewogICAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ORVdDQVRFR09SWUxJU1RfVEVNUExBVEUsJHRlbXBsYXRlKTsKICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnY2F0ZWdvcnlsaXN0X1NhbXBsZScsJHRlbXBsYXRlKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVENBVEVHT1JZTElTVF9URU1QTEFURSwnU2FtcGxlJyk7CiAgfQoKIyBTZXR1cCBkZWZhdWx0IHNlYXJjaCB0ZW1wbGF0ZQokZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX3NlYXJjaF90ZW1wbGF0ZS50cGwnKTsKaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApCiAgewogICAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ORVdTRUFSQ0hfVEVNUExBVEUsJHRlbXBsYXRlKTsKICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnc2VhcmNoX1NhbXBsZScsJHRlbXBsYXRlKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVFNFQVJDSF9URU1QTEFURSwnU2FtcGxlJyk7CiAgfQoKCiNTZXQgUGVybWlzc2lvbgokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignTW9kaWZ5IFByb2R1Y3RzJywgJ01vZGlmeSBQcm9kdWN0cycpOwoKI1ByZWZlcmVuY2VzCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwcm9kdWN0c19jdXJyZW5jeXN5bWJvbCcsJyQnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Byb2R1Y3RzX3dlaWdodHVuaXRzJywna2cnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FsbG93ZWRfaW1hZ2V0eXBlcycsJ2pwZyxqcGVnLGdpZixwbmcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FsbG93ZWRfZmlsZXR5cGVzJywncGRmLGRvYyx0eHQsanBnLGpwZWcsZ2lmLHBuZycpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYXV0b3RodW1ibmFpbCcsMSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWxldGVwcm9kdWN0ZmlsZXMnLDEpOwoKIyBFdmVudHMKJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ0dFY29tbWVyY2VCYXNlJywnT3JkZXJVcGRhdGVkJyxGQUxTRSk7CgojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4IGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIyAKIyBWZXJzaW9uOiAxLjEuNQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJGRiID0gJHRoaXMtPkdldERiKCk7CgokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCAkZGIgKTsKCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19jYXRlZ29yaWVzIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19wcm9kdWN0X2NhdGVnb3JpZXMiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnNldHMiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnV0ZXMiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfcHJvZHRvaGllciIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHRoaXMtPkRlbGV0ZVRlbXBsYXRlKCk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCk7CiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBQcm9kdWN0cyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMgCiMgVmVyc2lvbjogMS4xLjUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKc3dpdGNoKCAkb2xkdmVyc2lvbiApCiAgewogIGNhc2UgJzEuMCc6CiAgY2FzZSAnMS4wLjEnOgogICAgewogICAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKICAgICAgJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwogICAgICAkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoKICAgICAgJGZsZHMgPSAiCiAgICAgICAgYXR0cmliX3NldF9pZCBJIEtFWSBBVVRPLAogICAgICAgIHByb2R1Y3RfaWQgSSBLRVksCiAgICAgICAgYXR0cmliX3NldF9uYW1lIEMoMjU1KQogICAgICAiOwogICAgICAkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwogICAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlic2V0cyIsIAoJCQkJCSRmbGRzLCAkdGFib3B0YXJyYXkpOwogICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICAgICAkZmxkcyA9ICIKICAgICAgICBhdHRyaWJfc2V0X2lkIEkgS0VZLAogICAgICAgIGF0dHJpYl90ZXh0ICAgQygyNTUpIEtFWSwKICAgICAgICBhdHRyaWJfYWRqdXN0bWVudCBDKDUwKQogICAgICAiOwogICAgICAkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwogICAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcyIsIAoJCQkJCSRmbGRzLCAkdGFib3B0YXJyYXkpOwogICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgICB9CgoKICBjYXNlICcyLjAnOgogIGNhc2UgJzIuMC4xJzoKICBjYXNlICcyLjAuMic6CiAgICB7CiAgICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwogICAgICAkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiAgICAgICR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CgogICAgICAkZmxkcyA9ICIKICAgICAgICAgIGNhdGVnb3J5X2lkIEksCiAgICAgICAgICBmaWVsZF90eXBlICBDKDIwKSwKICAgICAgICAgIGZpZWxkX25hbWUgIEMoMjU1KSwKICAgICAgICAgIGZpZWxkX3Byb21wdCBDKDI1NSksCiAgICAgICAgICBmaWVsZF92YWx1ZSAgWAogICAgICAiOwogICAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcnlfZmllbGRzIiwgCgkgICAgICRmbGRzLCAkdGFib3B0YXJyYXkpOwogICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgICB9CgogIGNhc2UgJzIuMSc6CiAgICB7CiAgICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwogICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnV0ZXMnOwogICAgICAkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiAgICAgICRkYXRhID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwoKICAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJ1dGVzJyk7CiAgICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiAgICAgICRmbGRzID0gIgogICAgICAgIGF0dHJpYl9pZCBJIEtFWSBBVVRPLAogICAgICAgIGF0dHJpYl9zZXRfaWQgSSwKICAgICAgICBhdHRyaWJfdGV4dCAgIEMoMjU1KSwKICAgICAgICBhdHRyaWJfYWRqdXN0bWVudCBDKDUwKQogICAgICAiOwogICAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcyIsIAoJCSRmbGRzLCAkdGFib3B0YXJyYXkpOwogICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJ1dGVzCiAgICAgICAgICAgICAgICAoYXR0cmliX3NldF9pZCwgYXR0cmliX3RleHQsIGF0dHJpYl9hZGp1c3RtZW50KQogICAgICAgICAJICAgIFZBTFVFUyAoPyw/LD8pJzsKICAgICAgZm9yZWFjaCggJGRhdGEgYXMgJG9uZSApCiAgICAgIHsKICAgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LAogICAgICAgICAgIGFycmF5KCRvbmVbJ2F0dHJpYl9zZXRfaWQnXSwkb25lWydhdHRyaWJfdGV4dCddLCRvbmVbJ2F0dHJpYl9hZGp1c3RtZW50J10pKTsKICAgICAgfQogICAgfQogCiAgY2FzZSAnMi4xLjInOgoJewoJICAkbmV3bmFtZSA9IHN0cl9yZXBsYWNlKCcuJywnXycsJ3VwZ3JhZGVfdG9fJy4kdGhpcy0+R2V0VmVyc2lvbigpKTsKCSAgCgkgIC8vIHNldHVwIGEgbmV3IGRlZmF1bHQgc3VtbWFyeSB0ZW1wbGF0ZS4KCSAgLy8gYnV0IGRvbid0IGRlc3Ryb3kgYW55IG90aGVycy4KCSAgJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwndGVtcGxhdGVzJywnb3JpZ19zdW1tYXJ5X3RlbXBsYXRlLnRwbCcpOwoJICBpZiggZmlsZV9leGlzdHMoICRmbiApICkKCQl7CgkJICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CgkJICAkdGhpcy0+U2V0VGVtcGxhdGUoJ3N1bW1hcnlfJy4kbmV3bmFtZSwkdGVtcGxhdGUpOwoJCSAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ERkxUU1VNTUFSWV9URU1QTEFURSwkbmV3bmFtZSk7CgkJfQoKCSAgLy8gc2V0dXAgYSBuZXcgZGVmYXVsdCBkZXRhaWwgdGVtcGxhdGUuCgkgIC8vIGJ1dCBkb24ndCBkZXN0cm95IGFueSBvdGhlcnMuCgkgICRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ29yaWdfZGV0YWlsX3RlbXBsYXRlLnRwbCcpOwoJICBpZiggZmlsZV9leGlzdHMoICRmbiApICkKCQl7CgkJICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CgkJICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2RldGFpbF8nLiRuZXduYW1lLCR0ZW1wbGF0ZSk7CgkJICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX0RGTFRERVRBSUxfVEVNUExBVEUsJG5ld25hbWUpOwoJCX0KCgkgIC8vIHNldHVwIGEgbmV3IGRlZmF1bHQgYnloaWVyYXJjaHkgdGVtcGxhdGUuCgkgIC8vIGJ1dCBkb24ndCBkZXN0cm95IGFueSBvdGhlcnMuCgkgICRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ29yaWdfYnloaWVyYXJjaHlfdGVtcGxhdGUudHBsJyk7CgkgIGlmKCBmaWxlX2V4aXN0cyggJGZuICkgKQoJCXsKCQkgICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkZm4gKTsKCQkgICR0aGlzLT5TZXRUZW1wbGF0ZSgnYnloaWVyYXJjaHlfJy4kbmV3bmFtZSwkdGVtcGxhdGUpOwoJCSAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ERkxUQllISUVSQVJDSFlfVEVNUExBVEUsJG5ld25hbWUpOwoJCX0KCgkgIC8vIHNldHVwIGEgbmV3IGRlZmF1bHQgY2F0ZWdvcnlsaXN0IHRlbXBsYXRlLgoJICAvLyBidXQgZG9uJ3QgZGVzdHJveSBhbnkgb3RoZXJzLgoJICAkZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX2NhdGVnb3J5bGlzdF90ZW1wbGF0ZS50cGwnKTsKCSAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApCgkJewoJCSAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwoJCSAgJHRoaXMtPlNldFRlbXBsYXRlKCdjYXRlZ29yeWxpc3RfJy4kbmV3bmFtZSwkdGVtcGxhdGUpOwoJCSAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ERkxUQ0FURUdPUllMSVNUX1RFTVBMQVRFLCRuZXduYW1lKTsKCQl9CgoJfSAvLyAyLjEuMQoKICBjYXNlICcyLjInOgogIGNhc2UgJzIuMi4xJzoKICBjYXNlICcyLjIuMic6CiAgY2FzZSAnMi4yLjMnOgogIGNhc2UgJzIuMi40JzoKCXsKICAgICAgJGRiID0gJHRoaXMtPkdldERiKCk7CiAgICAgICRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCgkgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfbmFtZScsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMnLCdwcm9kdWN0X25hbWUnKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX3N0YXR1cycsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMnLCdwcm9kdWN0X3N0YXR1cycpOwoJICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfcHJpY2UnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzJywncHJvZHVjdF9wcmljZScpOwoJICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfZGF0ZXMnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzJywnY3JlYXRlX2RhdGUsbW9kaWZpZWRfZGF0ZScpOwoJICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfY2F0X25hbWUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMnLCduYW1lJyk7CgkgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCSAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdwcm9kdWN0c19wcm9kX2NhdCcsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzJywncHJvZHVjdF9pZCxjYXRlZ29yeV9pZCcpOwoJICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfY2F0X3Byb2QnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcycsJ2NhdGVnb3J5X2lkLHByb2R1Y3RfaWQnKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX2NhdF9mbGRfbmFtZScsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcnlfZmllbGRzJywnY2F0ZWdvcnlfaWQsZmllbGRfbmFtZScpOwoJICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfZmxkZGVmX25hbWUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcycsJ25hbWUnKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX2ZsZGRlZl90eXBlJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMnLCd0eXBlJyk7CgkgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCSAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdwcm9kdWN0c19mbGR2YWxfcHJvZF9kZWYnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWx2YWxzJywncHJvZHVjdF9pZCxmaWVsZGRlZl9pZCcpOwoJICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfZmxkdmFsX2RlZl9wcm9kJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsdmFscycsJ2ZpZWxkZGVmX2lkLHByb2R1Y3RfaWQnKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX2hpZXJfbmFtZScsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5JywnbmFtZScpOwoJICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfaGllcl9uYW1lJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHknLCduYW1lJyk7CgkgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCSAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdwcm9kdWN0c19oaWVyX3BhcmVudCcsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5JywncGFyZW50X2lkJyk7CgkgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCSAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdwcm9kdWN0c19oaWVyX2xvbmduYW1lJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHknLCdsb25nX25hbWUnKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX2hpZXJfaGllcmFyY2h5JyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHknLCdoaWVyYXJjaHknKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCSAgJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkiLCAiZXh0cmExIEMoMjU1KSxleHRyYTIgQygyNTUpIik7CgkgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgl9CgogIGNhc2UgJzIuMyc6CiAgY2FzZSAnMi4zLjEnOgoJewoJICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYXV0b190aHVtYm5haWxfc2l6ZScsNzUpOwoJICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYXV0b3ByZXZpZXdpbWcnLDApOwoJICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYXV0b19wcmV2aWV3aW1nX3NpemUnLDE1MCk7CgkgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1cmxwcmVmaXgnLCdwcm9kdWN0cycpOwoJfQoKICBjYXNlICcyLjQnOgogIGNhc2UgJzIuNC4xJzoKICBjYXNlICcyLjQuMic6CiAgY2FzZSAnMi40LjMnOgogIGNhc2UgJzIuNC40JzoKICBjYXNlICcyLjQuNSc6CiAgY2FzZSAnMi40LjYnOgogIGNhc2UgJzIuNC43JzoKICBjYXNlICcyLjQuOCc6Cgl7CiAgICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwogICAgICAkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgoJICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzIiwgInNrdSBDKDI1KSIpOwoJICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnV0ZXMiLCAic2t1IEMoMjUpIik7CgkgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCX0KCiAgY2FzZSAnMi41JzoKCXsKICAgICAgJGRiID0gJHRoaXMtPkdldERiKCk7CiAgICAgICRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCgkgICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHMiLCAiYWxpYXMgQygyNTUpIik7CgkgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfbmFtZScsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMnLCdwcm9kdWN0X2FsaWFzJyk7CgkgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgl9CgogIGNhc2UgJzIuNic6CiAgY2FzZSAnMi42LjEnOgogIGNhc2UgJzIuNi4yJzoKICBjYXNlICcyLjcnOgoJewoJICAvLyBTZXR1cCBkZWZhdWx0IHNlYXJjaCB0ZW1wbGF0ZQoJICAkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV1NFQVJDSF9URU1QTEFURSk7CgkgICR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVFNFQVJDSF9URU1QTEFURSk7CgkgICRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ29yaWdfc2VhcmNoX3RlbXBsYXRlLnRwbCcpOwoJICBpZiggZmlsZV9leGlzdHMoICRmbiApICkKCQl7CgkJICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CgkJICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV1NFQVJDSF9URU1QTEFURSwkdGVtcGxhdGUpOwoJCSAgJHRoaXMtPlNldFRlbXBsYXRlKCdzZWFyY2hfU2FtcGxlJywkdGVtcGxhdGUpOwoJCSAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ERkxUU0VBUkNIX1RFTVBMQVRFLCdTYW1wbGUnKTsKCQl9Cgl9CgogIGNhc2UgJzIuNy4xJzoKICBjYXNlICcyLjcuMic6CiAgY2FzZSAnMi43LjMnOgogIGNhc2UgJzIuNy40JzoKCXsKCSAgLy8gU2V0dXAgZGVmYXVsdCBzZWFyY2ggdGVtcGxhdGUKCSAgJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ORVdTRUFSQ0hfVEVNUExBVEUpOwoJICAkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX0RGTFRTRUFSQ0hfVEVNUExBVEUpOwoJICAkZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX3NlYXJjaF90ZW1wbGF0ZS50cGwnKTsKCSAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApCgkJewoJCSAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwoJCSAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ORVdTRUFSQ0hfVEVNUExBVEUsJHRlbXBsYXRlKTsKCQkgICR0aGlzLT5TZXRUZW1wbGF0ZSgnc2VhcmNoX1NhbXBsZScsJHRlbXBsYXRlKTsKCQkgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVFNFQVJDSF9URU1QTEFURSwnU2FtcGxlJyk7CgkJfQoJfQoKCS8vIGFkZCBhIG5ldyBmaWVsZCB0byB0aGUgY2F0ZWdvcnkgZmllbGRzIHRhYmxlLgoJJGRiID0gJHRoaXMtPkdldERiKCk7CgkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7Cgkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcyIsICJmaWVsZF9vcmRlciBJIik7CgkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJLy8gbm93IHVwZGF0ZSB0aGUgY2F0ZWdvcnkgZmllbGRzIHN0dWZmLgoJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMKICAgICAgICAgICAgICAgT1JERVIgQlkgY2F0ZWdvcnlfaWQsZmllbGRfbmFtZSc7CgkkZGF0YSA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKCSRwcmV2X2NhdGVnb3J5X2lkID0gLTE7Cgkkb3JkZXIgPSAwOwoJZm9yZWFjaCgkZGF0YSBhcyAkcm93KQoJICB7CgkJaWYoICRyb3dbJ2NhdGVnb3J5X2lkJ10gIT0gJHByZXZfY2F0ZWdvcnlfaWQgKQoJCSAgewoJCQkkb3JkZXIgPSAwOwoJCSAgfQoKCQkkcm93WydmaWVsZF9vcmRlciddID0gJG9yZGVyOwoJCSRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMKICAgICAgICAgICAgICAgICAgICAgU0VUIGZpZWxkX29yZGVyID0gPyBXSEVSRSBjYXRlZ29yeV9pZCA9ID8gQU5EIGZpZWxkX25hbWUgPSA/JzsKCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRvcmRlciwkcm93WydjYXRlZ29yeV9pZCddLCRyb3dbJ2ZpZWxkX25hbWUnXSkpOwoKCQkkb3JkZXIrKzsKCQkkcHJldl9jYXRlZ29yeV9pZCA9ICRyb3dbJ2NhdGVnb3J5X2lkJ107CgkgIH0KCiAgY2FzZSAnMi43LjUnOgoJLy8gbm93IHJlLW9yZGVyIGNhdGVnb3J5IGZpZWxkIHN0dWZmIGFnYWluLgoJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMKICAgICAgICAgICAgICAgT1JERVIgQlkgY2F0ZWdvcnlfaWQsZmllbGRfbmFtZSc7CgkkZGF0YSA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKCSRwcmV2X2NhdGVnb3J5X2lkID0gLTE7Cgkkb3JkZXIgPSAwOwoJZm9yZWFjaCgkZGF0YSBhcyAkcm93KQoJICB7CgkJaWYoICRyb3dbJ2NhdGVnb3J5X2lkJ10gIT0gJHByZXZfY2F0ZWdvcnlfaWQgKQoJCSAgewoJCQkkb3JkZXIgPSAwOwoJCSAgfQoKCQkkcm93WydmaWVsZF9vcmRlciddID0gJG9yZGVyOwoJCSRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMKICAgICAgICAgICAgICAgICAgICAgU0VUIGZpZWxkX29yZGVyID0gPyBXSEVSRSBjYXRlZ29yeV9pZCA9ID8gQU5EIGZpZWxkX25hbWUgPSA/JzsKCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRvcmRlciwkcm93WydjYXRlZ29yeV9pZCddLCRyb3dbJ2ZpZWxkX25hbWUnXSkpOwoKCQkkb3JkZXIrKzsKCQkkcHJldl9jYXRlZ29yeV9pZCA9ICRyb3dbJ2NhdGVnb3J5X2lkJ107CgkgIH0KCiAgfQoKaWYoIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwnMi4xNCcpIDwgMCApCiAgewoJZnVuY3Rpb24gcHJvZHVjdHNfaGllcnRyZWVfdXBkYXRlX29yZGVyKCYkdHJlZSkKCXsKCSAgJG9yZGVyID0gMTsKCSAgZm9yZWFjaCggJHRyZWUgYXMgJiRub2RlICkKCQl7CgkJICAkbm9kZVsnaXRlbV9vcmRlciddID0gJG9yZGVyKys7CgkJICBpZiggaXNzZXQoJG5vZGVbJ2NoaWxkcmVuJ10pICkKCQkJewoJCQkgIHByb2R1Y3RzX2hpZXJ0cmVlX3VwZGF0ZV9vcmRlcigkbm9kZVsnY2hpbGRyZW4nXSk7CgkJCX0KCQl9Cgl9CgoJJGRiID0gJHRoaXMtPkdldERiKCk7CgkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7Cgkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSIsICJpdGVtX29yZGVyIEkiKTsKCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkkdHJlZSA9IHByb2R1Y3RfdXRpbHM6OmhpZXJhcmNoeV9nZXRfdHJlZSgpOwoJcHJvZHVjdHNfaGllcnRyZWVfdXBkYXRlX29yZGVyKCR0cmVlKTsKCXByb2R1Y3RfdXRpbHM6OmhpZXJhcmNoeV9zYXZlX3RyZWUoJHRyZWUpOwogIH0KCgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcyLjE0JykgPCAwICkKICB7CgkkdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCdDR0Vjb21tZXJjZUJhc2UnLCdPcmRlclVwZGF0ZWQnLEZBTFNFKTsKICB9CgovLyBFT0YKPz4K]]></data>
	</file>
	<file>
	  <filename>/Products.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBQcm9kdWN0cyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgokY2dleHRlbnNpb25zID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWydyb290X3BhdGgnXSwnbW9kdWxlcycsCgkJCSAgICAgICdDR0V4dGVuc2lvbnMnLCdDR0V4dGVuc2lvbnMubW9kdWxlLnBocCcpOwppZiggIWlzX3JlYWRhYmxlKCAkY2dleHRlbnNpb25zICkgKQp7CiAgZWNobyAnPGgxPjxmb250IGNvbG9yPSJyZWQiPkVSUk9SOiBUaGUgQ0dFeHRlbnNpb25zIG1vZHVsZSBjb3VsZCBub3QgYmUgZm91bmQuPC9mb250PjwvaDE+JzsKICByZXR1cm47Cn0KcmVxdWlyZV9vbmNlKCRjZ2V4dGVuc2lvbnMpOwoKZGVmaW5lKCdQUk9EVUNUU19QUkVGX05FV1NVTU1BUllfVEVNUExBVEUnLCdwcm9kdWN0c19wcmVmX25ld3N1bW1hcnlfdGVtcGxhdGUnKTsKZGVmaW5lKCdQUk9EVUNUU19QUkVGX0RGTFRTVU1NQVJZX1RFTVBMQVRFJywncHJvZHVjdHNfcHJlZl9kZmx0c3VtbWFyeV90ZW1wbGF0ZScpOwpkZWZpbmUoJ1BST0RVQ1RTX1BSRUZfTkVXREVUQUlMX1RFTVBMQVRFJywncHJvZHVjdHNfcHJlZl9uZXdkZXRhaWxfdGVtcGxhdGUnKTsKZGVmaW5lKCdQUk9EVUNUU19QUkVGX0RGTFRERVRBSUxfVEVNUExBVEUnLCdwcm9kdWN0c19wcmVmX2RmbHRkZXRhaWxfdGVtcGxhdGUnKTsKZGVmaW5lKCdQUk9EVUNUU19QUkVGX05FV0NBVEVHT1JZTElTVF9URU1QTEFURScsJ3Byb2R1Y3RzX3ByZWZfbmV3Y2F0ZWdvcnlsaXN0X3RlbXBsYXRlJyk7CmRlZmluZSgnUFJPRFVDVFNfUFJFRl9ERkxUQ0FURUdPUllMSVNUX1RFTVBMQVRFJywncHJvZHVjdHNfcHJlZl9kZmx0Y2F0ZWdvcnlsaXN0X3RlbXBsYXRlJyk7CmRlZmluZSgnUFJPRFVDVFNfUFJFRl9ORVdCWUhJRVJBUkNIWV9URU1QTEFURScsJ3Byb2R1Y3RzX3ByZWZfbmV3YnloaWVyYXJjaHlfdGVtcGxhdGUnKTsKZGVmaW5lKCdQUk9EVUNUU19QUkVGX0RGTFRCWUhJRVJBUkNIWV9URU1QTEFURScsJ3Byb2R1Y3RzX3ByZWZfZGZsdGJ5aGllcmFyY2h5X3RlbXBsYXRlJyk7CmRlZmluZSgnUFJPRFVDVFNfUFJFRl9ORVdTRUFSQ0hfVEVNUExBVEUnLCdwcm9kdWN0c19wcmVmX25ld3NlYXJjaF90ZW1wbGF0ZScpOwpkZWZpbmUoJ1BST0RVQ1RTX1BSRUZfREZMVFNFQVJDSF9URU1QTEFURScsJ3Byb2R1Y3RzX3ByZWZfZGZsdHNlYXJjaF90ZW1wbGF0ZScpOwoKY2xhc3MgUHJvZHVjdHMgZXh0ZW5kcyBDR0V4dGVuc2lvbnMKewogIHZhciAkX2hpZXJhcmNoeV9jYWNoZTsKICB2YXIgJF9jYXRlZ29yeV9jYWNoZTsKICB2YXIgJF9hZG1pbl9sb2FkZWQ7CiAgdmFyICRfZmxkZGVmX2NhY2hlOwoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQogIHsKICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoKTsKCSR0aGlzLT5faGllcmFyY2h5X2NhY2hlID0gYXJyYXkoKTsKCSR0aGlzLT5fY2F0ZWdvcnlfY2FjaGUgPSBhcnJheSgpOwoJJHRoaXMtPl9hZG1pbl9sb2FkZWQgPSBmYWxzZTsKCgkkdGhpcy0+QWRkSW1hZ2VEaXIoJ2ljb25zJyk7CgogICAgJHNtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOwoJJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ3Byb2R1Y3RzX2dldGNhdGVnb3J5JywKCQkJCQkJCSAgIGFycmF5KCR0aGlzLCdfc21hcnR5X3Byb2R1Y3RzX2dldGNhdGVnb3J5JykpOwoJJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ3Byb2R1Y3RzX2hpZXJhcmNoeV9icmVhZGNydW1iJywKCQkJCQkJCSAgIGFycmF5KCR0aGlzLCdfc21hcnR5X3Byb2R1Y3RzX2hpZXJhcmNoeV9icmVhZGNydW1iJykpOwoJJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ3Byb2R1Y3RzX2hpZXJhcmNoeV9wYXJlbnQnLAoJCQkJCQkJICAgYXJyYXkoJHRoaXMsJ19zbWFydHlfcHJvZHVjdHNfaGllcmFyY2h5X3BhcmVudCcpKTsKICB9CgogIGZ1bmN0aW9uIEdldE5hbWUoKQogIHsKCXJldHVybiAnUHJvZHVjdHMnOwogIH0KCiAgZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkKICB7CglyZXR1cm4gJHRoaXMtPkxhbmcoJ3Byb2R1Y3RfbWFuYWdlcicpOwogIH0KCiAgZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkKICB7CglyZXR1cm4gYXJyYXkoJ0NHRXh0ZW5zaW9ucyc9PicxLjI0JywKCQkJCSAnQ0dTaW1wbGVTbWFydHknPT4nMS40LjQnLAoJCQkJICdKUXVlcnlUb29scyc9PicxLjAuMTEnKTsKICB9CgogIGZ1bmN0aW9uIEFsbG93QXV0b0luc3RhbGwoKQogIHsKCXJldHVybiBGQUxTRTsKICB9CgogIGZ1bmN0aW9uIEFsbG93QXV0b1VwZ3JhZGUoKQogIHsKCXJldHVybiBGQUxTRTsKICB9CgogIGZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkKICB7CglyZXR1cm4gdHJ1ZTsKICB9CgogIGZ1bmN0aW9uIEhhc0FkbWluKCkKICB7CglyZXR1cm4gdHJ1ZTsKICB9CgogIGZ1bmN0aW9uIEdldFZlcnNpb24oKQogIHsKCXJldHVybiAnMi4xOC4yJzsKICB9CgogIGZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkKICB7CglyZXR1cm4gJzEuMTAuMic7CiAgfQoKICBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkKICB7CglyZXR1cm4gJHRoaXMtPkxhbmcoJ21vZHVsZV9kZXNjcmlwdGlvbicpOwogIH0KCiAgZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkKICB7CglyZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFByb2R1Y3RzJykgfHwKCSAgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpIHx8CgkgICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJyk7CiAgfQoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRIZWFkZXJIVE1MKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRIZWFkZXJIVE1MKCkKICB7Cgkkb2JqID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdKUXVlcnlUb29scycpOwogICAgaWYoIGlzX29iamVjdCgkb2JqKSApCiAgICAgIHsKJHRtcGwgPSA8PDxFT1QKe0pRdWVyeVRvb2xzIGFjdGlvbj0naW5janMnIGV4Y2x1ZGU9J2Zvcm0nfQp7SlF1ZXJ5VG9vbHMgYWN0aW9uPSdyZWFkeSd9CkVPVDsKICAgICAgICByZXR1cm4gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCR0bXBsKTsKICAgICAgfQogIH0JCgoKICBmdW5jdGlvbiBTZXRQYXJhbWV0ZXJzKCkKICB7CgkkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsKCSR0aGlzLT5SZXN0cmljdFVua25vd25QYXJhbXMoKTsKCgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdhY3Rpb24nLCdkZWZhdWx0JywkdGhpcy0+TGFuZygncGFyYW1fYWN0aW9uJykpOwoKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3Byb2R1Y3RpZCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3Byb2R1Y3RpZCcpKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdwcm9kdWN0aWQnLENMRUFOX0lOVCk7CgoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZGV0YWlscGFnZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2RldGFpbHBhZ2UnKSk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZGV0YWlscGFnZScsQ0xFQU5fU1RSSU5HKTsKCgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdjYXRlZ29yeWxpc3R0ZW1wbGF0ZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJykpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NhdGVnb3J5bGlzdHRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignY2F0ZWdvcnlsaXN0ZHRsdGVtcGxhdGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9jYXRlZ29yeWxpc3RkdGx0ZW1wbGF0ZScpKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdjYXRlZ29yeWxpc3RkdGx0ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKCgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdkZXRhaWx0ZW1wbGF0ZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2RldGFpbHRlbXBsYXRlJykpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2RldGFpbHRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwoKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3N1bW1hcnl0ZW1wbGF0ZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZScpKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzdW1tYXJ5dGVtcGxhdGUnLENMRUFOX1NUUklORyk7CgoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignaGllcmFyY2h5dGVtcGxhdGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZScpKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdoaWVyYXJjaHl0ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2hpZXJhcmNoeXBhZ2UnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9oaWVyYXJjaHlwYWdlJykpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2hpZXJhcmNoeXBhZ2UnLENMRUFOX1NUUklORyk7CgoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc29ydGJ5JywncHJvZHVjdF9uYW1lJywkdGhpcy0+TGFuZygncGFyYW1fc29ydGJ5JykpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NvcnRieScsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3NvcnRvcmRlcicsJ2FzYycsJHRoaXMtPkxhbmcoJ3BhcmFtX3NvcnRvcmRlcicpKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzb3J0b3JkZXInLENMRUFOX1NUUklORyk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzb3J0dHlwZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3NvcnR0eXBlJykpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NvcnR0eXBlJyxDTEVBTl9TVFJJTkcpOwovLyAJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc2VsZWN0Y2F0ZWdvcnknLDAsJHRoaXMtPkxhbmcoJ3BhcmFtX3NlbGVjdGNhdGVnb3J5JykpOwovLyAJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NlbGVjdGNhdGVnb3J5JyxDTEVBTl9JTlQpOwoJCgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdleGNsdWRlY2F0JywnJywkdGhpcy0+TGFuZygncGFyYW1fZXhjbHVkZWNhdCcpKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdleGNsdWRlY2F0JyxDTEVBTl9TVFJJTkcpOwoKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ25vdHByZXR0eScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX25vdHByZXR0eScpKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdub3RwcmV0dHknLENMRUFOX1NUUklORyk7CgkKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2NhdGVnb3J5JywnJywkdGhpcy0+TGFuZygncGFyYW1fY2F0ZWdvcnknKSk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnY2F0ZWdvcnknLENMRUFOX1NUUklORyk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnY2F0ZWdvcnluYW1lJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignaGllcmFyY2h5JywnJywkdGhpcy0+TGFuZygncGFyYW1faGllcmFyY2h5JykpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2hpZXJhcmNoeScsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3BhZ2VsaW1pdCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3BhZ2VsaW1pdCcpKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdwYWdlbGltaXQnLENMRUFOX0lOVCk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdwYXJlbnQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9wYXJlbnQnKSk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncGFyZW50JyxDTEVBTl9JTlQpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigncGFyZW50cycsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3BhcmVudHMnKSk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncGFyZW50cycsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3Nob3dhbGwnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9zaG93YWxsJykpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Nob3dhbGwnLENMRUFOX0lOVCk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWVsZCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpZWxkJykpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2ZpZWxkJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2ZpZWxkaWQnLENMRUFOX0lOVCk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZmllbGR2YWwnLENMRUFOX1NUUklORyk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWVsZHZhbCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpZWxkdmFsJykpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NhdGVnb3J5ZmllbGQnLENMRUFOX1NUUklORyk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdjYXRlZ29yeWZpZWxkJywnJywkdGhpcy0+TGFuZygncGFyYW1fY2F0ZWdvcnlmaWVsZCcpKTsKCgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdpbmxpbmUnLDAsJHRoaXMtPkxhbmcoJ3BhcmFtX2lubGluZScpKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpbmxpbmUnLENMRUFOX0lOVCk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdyZXN1bHRwYWdlJywnJywkdGhpcy0+TGFuZygncGFyYW1fcmVzdWx0cGFnZScpKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdyZXN1bHRwYWdlJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc2VhcmNoZm9ybXRlbXBsYXRlJywnJywkdGhpcy0+TGFuZygncGFyYW1fc2VhcmNoZm9ybXRlbXBsYXRlJykpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NlYXJjaGZvcm10ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3NlYXJjaGZpZWxkJywnJywkdGhpcy0+TGFuZygncGFyYW1fc2VhcmNoZmllbGQnKSk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc2VhcmNoZmllbGQnLENMRUFOX1NUUklORyk7CgoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc3VtbWFyeXBhZ2UnLCR0aGlzLT5MYW5nKCdwYXJhbV9zdW1tYXJ5cGFnZScpKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzdW1tYXJ5cGFnZScsQ0xFQU5fU1RSSU5HKTsKCgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnanVuaycsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdwYWdlJyxDTEVBTl9JTlQpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2FsaWFzJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2hpZXJhcmNoeWlkJyxDTEVBTl9JTlQpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NhdGVnb3J5aWQnLENMRUFOX0lOVCk7CgoJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigncHJvZHVjdGxpc3QnLCR0aGlzLT5MYW5nKCdwYXJhbV9wcm9kdWN0bGlzdCcpKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdwcm9kdWN0bGlzdCcsQ0xFQU5fTk9ORSk7CgoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoQ0xFQU5fUkVHRVhQLicvY2RfLiovJyxDTEVBTl9TVFJJTkcpOwoKCS8vIEZyaWVuZGx5IFVSTCBzdHVmZgogICAgJGRldGFpbHBhZ2UgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGV0YWlscGFnZScsLTEpOwoJJGNvbnRlbnRvcHMgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwogICAgaWYoICRkZXRhaWxwYWdlID09IC0xICkKICAgICAgewoJCSRkZXRhaWxwYWdlID0gJGNvbnRlbnRvcHMtPkdldERlZmF1bHRQYWdlSUQoKTsKICAgICAgfQoJJHN0ciA9ICcvJy4kdGhpcy0+R2V0UHJlZmVyZW5jZSgndXJscHJlZml4JywnW1BwXXJvZHVjdHMnKTsKCWlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXNlaGllcnBhdGh1cmxzJykgKQoJICB7CgkJJHRoaXMtPlJlZ2lzdGVyUm91dGUoJHN0ci4nXC9kZXRhaWxzXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKVwvKFteXC9dK1wvKSsoP1A8YWxpYXM+LiopJC8nLAoJCQkJCQkJIGFycmF5KCdhY3Rpb24nPT4nZGV0YWlscycsJ3JldHVybmlkJz0+JGRldGFpbHBhZ2UpKTsKCQkkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgkc3RyLidcL2RldGFpbHNcLyhbXlwvXStcLykrKD9QPGFsaWFzPi4qKSQvJywKCQkJCQkJCSBhcnJheSgnYWN0aW9uJz0+J2RldGFpbHMnLCdyZXR1cm5pZCc9PiRkZXRhaWxwYWdlKSk7CgkgIH0KCgkkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgkc3RyLidcLyg/UDxwcm9kdWN0aWQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKylcLyg/UDxqdW5rPi4qPykkLycsCgkJCQkJCSBhcnJheSgnYWN0aW9uJz0+J2RldGFpbHMnKSk7CgkkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgkc3RyLidcLyg/UDxwcm9kdWN0aWQ+WzAtOV0rKVwvKD9QPGp1bms+Lio/KSQvJywKCQkJCQkJIGFycmF5KCdhY3Rpb24nPT4nZGV0YWlscycsJ3JldHVybmlkJz0+JGRldGFpbHBhZ2UpKTsKCSR0aGlzLT5SZWdpc3RlclJvdXRlKCRzdHIuJ1wvdmlld2NhdGVnb3J5XC8oP1A8Y2F0ZWdvcnlpZD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKSQvJywKCQkJCQkJIGFycmF5KCdhY3Rpb24nPT4nY2F0ZWdvcnlsaXN0JykpOwoJJHRoaXMtPlJlZ2lzdGVyUm91dGUoJHN0ci4nXC8oP1A8cHJvZHVjdGlkPlswLTldKykkLycpOwoJJHRoaXMtPlJlZ2lzdGVyUm91dGUoJHN0ci4nXC9zdW1tYXJ5XC8oJFA8cmV0dXJuaWQ+WzAtOV0rKVwvKD9QPGp1bms+Lio/KSQvJyk7CgkkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgkc3RyLidcL3N1bW1hcnlcLygkUDxyZXR1cm5pZD5bMC05XSspJC8nKTsKCSR0aGlzLT5SZWdpc3RlclJvdXRlKCRzdHIuJ1wvYnljYXRlZ29yeVwvKD9QPGNhdGVnb3J5aWQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKylcLyg/UDxqdW5rPi4qPykkLycpOwoJJHRoaXMtPlJlZ2lzdGVyUm91dGUoJHN0ci4nXC9ieWNhdGVnb3J5XC8oP1A8Y2F0ZWdvcnlpZD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKSQvJyk7CgkkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgkc3RyLidcL2J5aGllcmFyY2h5XC8oP1A8aGllcmFyY2h5aWQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKylcLyg/UDxqdW5rPi4qPykkLycpOwoJJHRoaXMtPlJlZ2lzdGVyUm91dGUoJHN0ci4nXC9ieWhpZXJhcmNoeVwvKD9QPGhpZXJhcmNoeWlkPlswLTldKylcLyg/UDxyZXR1cm5pZD5bMC05XSspJC8nKTsKCgkkaGllcnBhZ2UgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaGllcnBhZ2UnLC0xKTsKCWlmKCAkaGllcnBhZ2UgPD0gMCApCgkgIHsKCQkkaGllcnBhZ2UgPSAkZGV0YWlscGFnZTsKCSAgfQoJJHRoaXMtPlJlZ2lzdGVyUm91dGUoJHN0ci4nXC9oaWVyYXJjaHlcLyg/UDxwYXJlbnQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKykkLycpOwoJJHRoaXMtPlJlZ2lzdGVyUm91dGUoJHN0ci4nXC9oaWVyYXJjaHlcLyg/UDxwYXJlbnQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKylcLyg/UDxqdW5rPi4qPykkLycpOwoJJHRoaXMtPlJlZ2lzdGVyUm91dGUoJHN0ci4nXC9oaWVyYXJjaHlcLyg/UDxwYXJlbnQ+WzAtOV0rKVwvKD9QPGp1bms+Lio/KSQvJywKCQkJCQkJIGFycmF5KCdhY3Rpb24nPT4naGllcmFyY2h5JywncmV0dXJuaWQnPT4kaGllcnBhZ2UpKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBMYXp5TG9hZEZyb250ZW5kKCkgeyByZXR1cm4gRkFMU0U7IH0gIAogIHB1YmxpYyBmdW5jdGlvbiBMYXp5TG9hZEFkbWluKCkgeyByZXR1cm4gVFJVRTsgfQoKICBmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKQogIHsKCXJldHVybiAkdGhpcy0+TGFuZygncG9zdGluc3RhbGwnKTsKICB9CgogIGZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkKICB7CglyZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsKICB9CgogIGZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKQogIHsKCXJldHVybiAkdGhpcy0+TGFuZygncHJldW5pbnN0YWxsJyk7CiAgfQoKICBmdW5jdGlvbiBHZXRIZWxwKCRsYW5nPSdlbl9VUycpCiAgewoJcmV0dXJuIGZpbGVfZ2V0X2NvbnRlbnRzKGRpcm5hbWUoX19GSUxFX18pLicvaGVscC5pbmMnKTsKICB9CgogIGZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpCiAgewoJcmV0dXJuICdjb250ZW50JzsKICB9CgogIGZ1bmN0aW9uIEdldEF1dGhvcigpCiAgewoJcmV0dXJuICdjYWxndXkxMDAwJzsKICB9CgogIGZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkKICB7CglyZXR1cm4gJ2NhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcnOwogIH0KCiAgZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkKICB7CglyZXR1cm4gZmlsZV9nZXRfY29udGVudHMoZGlybmFtZShfX0ZJTEVfXykuJy9jaGFuZ2Vsb2cuaHRtbCcpOwogIH0KCiAgZnVuY3Rpb24gR2V0RXZlbnREZXNjcmlwdGlvbiggJGV2ZW50bmFtZSApCiAgewoJcmV0dXJuICR0aGlzLT5sYW5nKCdldmVudGRlc2MtJyAuICRldmVudG5hbWUpOwogIH0KCiAgZnVuY3Rpb24gR2V0RXZlbnRIZWxwKCAkZXZlbnRuYW1lICkKICB7CglyZXR1cm4gJHRoaXMtPmxhbmcoJ2V2ZW50aGVscC0nIC4gJGV2ZW50bmFtZSk7CiAgfQoKICBmdW5jdGlvbiBIYW5kbGVyc0V2ZW50cygpCiAgewoJcmV0dXJuIFRSVUU7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgRG9BY3Rpb24oKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIERvQWN0aW9uKCRuYW1lLCRpZCwkcGFyYW1zLCRyZXR1cm5pZD0nJykKICB7CiAgICAkc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7CgogICAgJHNtYXJ0eS0+YXNzaWduX2J5X3JlZignbW9kJywkdGhpcyk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3JldHVybmlkJywkcmV0dXJuaWQpOwogICAgcGFyZW50OjpEb0FjdGlvbigkbmFtZSwkaWQsJHBhcmFtcywkcmV0dXJuaWQpOwogIH0KCgogIGZ1bmN0aW9uIF9sb2FkX2FkbWluKCkKICB7CglpZiggISR0aGlzLT5fYWRtaW5fbG9hZGVkICkKCSAgewoJCXJlcXVpcmVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9ucy5hZG1pbl90b29scy5waHAnKTsKCQkkdGhpcy0+X2FkbWluX2xvYWRlZCA9IHRydWU7CgkgIH0KICB9CgoKICAvLyBkZXByZWNhdGVkCiAgZnVuY3Rpb24gR2V0VHlwZXNEcm9wZG93biggJGlkLCAkbmFtZSwgJHNlbGVjdGVkID0gJycsICRhZGR0ZXh0ID0gJycsICRzZWxlY3RvbmUgPSBmYWxzZSApCiAgewoJJHRoaXMtPl9sb2FkX2FkbWluKCk7CglyZXR1cm4gcHJvZHVjdHNfR2V0VHlwZXNEcm9wZG93bigkdGhpcywkaWQsJG5hbWUsJHNlbGVjdGVkLCRhZGR0ZXh0LCRzZWxlY3RvbmUpOwogIH0KCQoKICAvLyBkZXByZWNhdGVkCiAgZnVuY3Rpb24gJkdldENhdGVnb3J5KCRjYXRlZ29yeV9pZCwkZnVsbCA9IGZhbHNlKQogIHsKCSRnQ21zID0gY21zbXMoKTsKCSRkYiA9ICRnQ21zLT5HZXREYigpOwoJJGNvbmZpZyA9ICRnQ21zLT5HZXRDb25maWcoKTsKCgkkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMgV0hFUkUgaWQgPSA/JzsKICAgICRxdWVyeTIgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcyAKICAgICAgICAgICAgICAgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/JzsKCgkkcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LGFycmF5KCRjYXRlZ29yeV9pZCkpOwoJaWYoICEkcm93ICkgcmV0dXJuIEZBTFNFOwoKCSRvbmVyb3cgPSBuZXcgc3RkQ2xhc3MoKTsKCSRvbmVyb3ctPmlkID0gJHJvd1snaWQnXTsKCSRvbmVyb3ctPm5hbWUgPSAkcm93WyduYW1lJ107Cgkkb25lcm93LT52YWx1ZSA9IGZhbHNlOwoJJG9uZXJvdy0+ZmlsZV9sb2NhdGlvbiA9ICRjb25maWdbJ3VwbG9hZHNfdXJsJ10uJy8nLiR0aGlzLT5HZXROYW1lKCkuJy9jYXRlZ29yaWVzLycuJG9uZXJvdy0+aWQ7CgoJaWYoICRmdWxsICkKCSAgewoJCSR0bXAyID0gJGRiLT5HZXRBcnJheSgkcXVlcnkyLCRyb3dbJ2lkJ10pOwoJCWlmKCBpc19hcnJheSgkdG1wMikgKQoJCSAgewoJCQkkb25lcm93LT5kYXRhID0gJHRtcDI7CgkJICB9CgkgIH0KCglyZXR1cm4gJG9uZXJvdzsKICB9CgoKICAvLyBkZXByZWNhdGVkCiAgZnVuY3Rpb24gR2V0Q2F0ZWdvcmllcygkZnVsbCA9IGZhbHNlKQogIHsKCWlmKCAkZnVsbCApIHJldHVybiBwcm9kdWN0X3V0aWxzOjpnZXRfZnVsbF9jYXRlZ29yaWVzKCRmdWxsKTsKCXJldHVybiBwcm9kdWN0X3V0aWxzOjpnZXRfY2F0ZWdvcmllcygkZnVsbCk7CiAgfQoKCiAgLy8gZGVwcmVjYXRlZAogIGZ1bmN0aW9uIEdldENhdGVnb3JpZXNGb3JQcm9kdWN0KCRwcm9kdWN0LCRicmllZiA9IGZhbHNlLCRmdWxsID0gZmFsc2UpCiAgewoJJGVudHJ5YXJyYXkgPSBhcnJheSgpOwoKCSRnQ21zID0gY21zbXMoKTsKCSRkYiA9ICRnQ21zLT5HZXREQigpOwoJCgkkZW50cnlhcnJheSA9ICR0aGlzLT5HZXRDYXRlZ29yaWVzKCRmdWxsKTsKCgkkcXVlcnkgPSAnU0VMRUNUIGMuKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzIGMgV0hFUkUgYy5wcm9kdWN0X2lkID0gPyBPUkRFUiBCWSBjLmNhdGVnb3J5X2lkJzsKCSRwcm9kY2F0cyA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5LGFycmF5KCRwcm9kdWN0KSk7CgkKCSRyZXN1bHRzID0gYXJyYXkoKTsKCWlmKCAkYnJpZWYgKQoJICB7CgkJZm9yZWFjaCggJHByb2RjYXRzIGFzICRvbmVwcm9kY2F0ICkKCQkgIHsKCQkJZm9yZWFjaCggJGVudHJ5YXJyYXkgYXMgJGVudHJ5ICkKCQkJICB7CgkJCQlpZiggJG9uZXByb2RjYXRbJ2NhdGVnb3J5X2lkJ10gPT0gJGVudHJ5LT5pZCApCgkJCQkgIHsKCQkJCQkkZW50cnktPnZhbHVlID0gdHJ1ZTsKCQkJCQkkcmVzdWx0c1tdID0gJGVudHJ5OwoJCQkJCWJyZWFrOwoJCQkJICB9CgkJCSAgfQoJCSAgfQoJICB9CgllbHNlCgkgIHsKCQkvLyBmdWxsIGxpc3Qgb2YgY2F0ZWdvcmllcywKCQkvLyBzZXQgdmFsdWUgdG8gdHJ1ZSBpZiB0aGlzIHByb2R1Y3QgaXMgYSBtZW1iZXIgb2YgdGhpcyBjYXRlZ29yeQoJCWZvcmVhY2goICRlbnRyeWFycmF5IGFzICRlbnRyeSApCgkJICB7CgkJCSRlbnRyeS0+dmFsdWUgPSBmYWxzZTsKCQkJZm9yZWFjaCggJHByb2RjYXRzIGFzICRvbmVwcm9kY2F0ICkKCQkJICB7CgkJCQlpZiggJG9uZXByb2RjYXRbJ2NhdGVnb3J5X2lkJ10gPT0gJGVudHJ5LT5pZCApCgkJCQkgIHsKCQkJCQkkZW50cnktPnZhbHVlID0gdHJ1ZTsKCQkJCQlicmVhazsKCQkJCSAgfQoJCQkJCgkJCSAgfQoKCQkJJHJlc3VsdHNbXSA9ICRlbnRyeTsKCQkgIH0KCSAgfQoJcmV0dXJuICRyZXN1bHRzOwogIH0KCQoKICAvLyBkZXByZWNhdGVkCiAgZnVuY3Rpb24gR2V0RmllbGREZWZzKCRhZG1pbiA9IGZhbHNlLCRwdWJsaWMgPSB0cnVlKQogIHsKCXJldHVybiBwcm9kdWN0X3V0aWxzOjpnZXRfZmllbGRkZWZzKCRhZG1pbiwkcHVibGljKTsKICB9CgoKICAvLyBkZXByZWNhdGVkLCBtb3ZlIHRvIGNsYXNzCiAgZnVuY3Rpb24gR2V0RmllbGREZWZzRm9yUHJvZHVjdCgkaWQsJGFkbWluID0gZmFsc2UsJHB1YmxpYyA9IHRydWUpCiAgewoJJGdDbXMgPSBjbXNtcygpOwoJJGRiID0gJGdDbXMtPkdldERCKCk7CgkJCgkkZW50cnlhcnJheSA9ICR0aGlzLT5HZXRGaWVsZERlZnMoJGFkbWluLCRwdWJsaWMpOwoKCSRxdWVyeSA9ICcnOwoJaWYoICRhZG1pbiA9PSB0cnVlICYmICRwdWJsaWMgPT0gdHJ1ZSApCgkgIHsKCQkkcXVlcnkgPSAnU0VMRUNUIGZ2LiogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyBmdiBXSEVSRSBmdi5wcm9kdWN0X2lkID0gPyc7CgkgIH0KCWVsc2UgaWYoICRwdWJsaWMgPT0gdHJ1ZSApCgkgIHsKCQkkcXVlcnkgPSAnU0VMRUNUIGIuKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIGEsICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIGIgV0hFUkUgYS5pZCA9IGIuZmllbGRkZWZfaWQgQU5EIGEucHVibGljID4gMCBhbmQgYi5wcm9kdWN0X2lkID0gPyc7CgkgIH0KCWVsc2UgCgkgIHsKCQkkcXVlcnkgPSAnU0VMRUNUIGIuKiBGUk9NICAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBhLCAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyBiIFdIRVJFIGEuaWQgPSBiLmZpZWxkZGVmX2lkIEFORCBhLmFkbWluX29ubHkgPD0gMCBhbmQgYi5wcm9kdWN0X2lkID0gPyc7CgkgIH0KCSRkYnJlc3VsdCA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5LCBhcnJheSgkaWQpKTsKCgkkcmVzID0gYXJyYXkoKTsKCWZvcmVhY2goICRlbnRyeWFycmF5IGFzICRlbnRyeSApCgkgIHsKCQkkbmV3ZW50cnkgPSBjbG9uZSAkZW50cnk7CgkJJG5ld2VudHJ5LT52YWx1ZSA9IG51bGw7CgkJZm9yZWFjaCAoJGRicmVzdWx0IGFzICRyb3cpCgkJICB7CgkJCWlmICgkcm93WydmaWVsZGRlZl9pZCddID09ICRuZXdlbnRyeS0+aWQpCgkJCSAgewoJCQkJaWYoICRuZXdlbnRyeS0+dHlwZSA9PSAnZGltZW5zaW9ucycgfHwgJG5ld2VudHJ5LT50eXBlID09ICdzdWJzY3JpcHRpb24nKQoJCQkJICB7CgkJCQkJJHJvd1sndmFsdWUnXSA9IHVuc2VyaWFsaXplKCRyb3dbJ3ZhbHVlJ10pOwoJCQkJICB9CgkJCQkkbmV3ZW50cnktPnZhbHVlID0gJHJvd1sndmFsdWUnXTsKCQkJCSRuZXdlbnRyeS0+ZmllbGRkZWZfaWQgPSAkbmV3ZW50cnktPmlkOyAvLyA/PwoKCQkJCWJyZWFrOwoJCQkgIH0KCQkgIH0KCQkkcmVzW10gPSAkbmV3ZW50cnk7CgkgIH0KCglyZXR1cm4gJHJlczsKICB9CgkKCiAgZnVuY3Rpb24gU2VhcmNoUmVzdWx0KCRyZXR1cm5pZCwgJHByb2R1Y3RpZCwgJGF0dHIgPSAnJykKICB7CglyZXR1cm4gcHJvZHVjdF9vcHM6OmdldF9zZWFyY2hfcmVzdWx0KCRyZXR1cm5pZCwkcHJvZHVjdGlkLCRhdHRyKTsKICB9CgkKCiAgZnVuY3Rpb24gU2VhcmNoUmVpbmRleCgmJG1vZHVsZSkKICB7CgkkdGhpcy0+X2xvYWRfYWRtaW4oKTsKCXJldHVybiBwcm9kdWN0c19TZWFyY2hSZWluZGV4KCR0aGlzLCRtb2R1bGUpOwogIH0KCgogIC8vIGRlcHJlY2F0ZWQgLi4uIG1vdmUgdG8gY2xhc3MKICBmdW5jdGlvbiBHZXRTZWFyY2hhYmxlVGV4dCgkcHJvZHVjdF9pZCkKICB7CgkvLyB0aGUgcHJvZHVjdCBuYW1lLCB0aGUgZGVzY3JpcHRpb24sIGFuZCBhbGwgZGF0YSBmcm9tCgkvLyB0ZXh0IGZpZWxkcywgdGV4dGFyYSBmaWVsZHMsIGFuZCBkcm9wZG93bnMKCSRwcm9kdWN0ID0gcHJvZHVjdF9vcHM6OmdldF9wcm9kdWN0KCRwcm9kdWN0X2lkKTsKCWlmKCAkcHJvZHVjdFsnc3RhdHVzJ10gIT0gJ3B1Ymxpc2hlZCcgKSByZXR1cm4gYXJyYXkoKTsKCSRkZWZzID0gJHRoaXMtPkdldEZpZWxkRGVmc0ZvclByb2R1Y3QoJHByb2R1Y3RfaWQpOwoKCSRyZXN1bHRzID0gYXJyYXkoKTsKCSRyZXN1bHRzW10gPSAkcHJvZHVjdFsncHJvZHVjdF9uYW1lJ107CgkkcmVzdWx0c1tdID0gJHByb2R1Y3RbJ2RldGFpbHMnXTsKCSRyZXN1bHRzW10gPSAkcHJvZHVjdFsnc2t1J107CgkkcmVzdWx0c1tdID0gJHByb2R1Y3RbJ2FsaWFzJ107Cglmb3JlYWNoKCAkZGVmcyBhcyAkb25lZGVmICkKCSAgewoJCXN3aXRjaCggJG9uZWRlZi0+dHlwZSApCgkJICB7CgkJICBjYXNlICd0ZXh0Ym94JzoKCQkgIGNhc2UgJ3RleHRhcmVhJzoKCQkgIGNhc2UgJ2Ryb3Bkb3duJzoKICAgICAgICAgICAgaWYoIGlzc2V0KCRvbmVkZWYtPnZhbHVlKSApCiAgICAgICAgICAgICAgewogICAgCQkJJHJlc3VsdHNbXSA9ICRvbmVkZWYtPnZhbHVlOwoJCQkgIH0KCQkJYnJlYWs7CgkJICB9CgkgIH0KCQoJcmV0dXJuICRyZXN1bHRzOwogIH0KCgogIC8vIGRlcHJlY2F0ZWQKICBmdW5jdGlvbiBHZXRQcm9kdWN0TmFtZUZyb21JZCggJGlkICkKICB7CgkkcHJvZHVjdCA9IHByb2R1Y3Rfb3BzOjpnZXRfcHJvZHVjdCgkaWQpOwoJcmV0dXJuICRwcm9kdWN0Wydwcm9kdWN0X25hbWUnXTsKICB9CgoKICAvLyBkZXByZWFjYXRlZAogIGZ1bmN0aW9uIGlzX3RheGFibGUoJHByb2R1Y3RfaWQpCiAgewoJJHRtcCA9IHByb2R1Y3Rfb3BzOjpnZXRfcHJvZHVjdCgkcHJvZHVjdF9pZCk7CglyZXR1cm4gJHRtcFsndGF4YWJsZSddOwogIH0KCgogIGZ1bmN0aW9uIGlzX3NoaXBwYWJsZSgkcHJvZHVjdF9pZCkKICB7CgkvLyB0b2RvOiBhZGQgc29tZXRoaW5nIGhlcmUuCglyZXR1cm4gVFJVRTsKICB9CgoKICAvLyBkZXByZWNhdGVkCiAgZnVuY3Rpb24gR2V0UHJvZHVjdCggJGlkICkKICB7CglyZXR1cm4gcHJvZHVjdF9vcHM6OmdldF9wcm9kdWN0KCRpZCk7CiAgfQoKCiAgLy8gZGVwcmVjYXRlZAogIGZ1bmN0aW9uIEdldFByb2R1Y3RBdHRyaWJ1dGVzKCRwcm9kdWN0X2lkKQogIHsKCSRyZXN1bHRzID0gYXJyYXkoKTsKCSRkYiA9ICR0aGlzLT5HZXREYigpOwoJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19hdHRyaWJzZXRzCiAgICAgICAgICAgICAgIFdIRVJFIHByb2R1Y3RfaWQgPSA/IE9SREVSIEJZIGF0dHJpYl9zZXRfaWQiOwoJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkcHJvZHVjdF9pZCkpOwoJd2hpbGUoICRkYnJlc3VsdCAmJiAoJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkgKQoJICB7CgkJJHJlc3VsdHNbJHJvd1snYXR0cmliX3NldF9pZCddXSA9ICAkcm93WydhdHRyaWJfc2V0X25hbWUnXTsKCSAgfQoJcmV0dXJuICRyZXN1bHRzOwogIH0KCgogIC8vIGRlcHJlY2F0ZWQKICAvLyByZWFkeSB0byByZW1vdmUgbm93PwogIGZ1bmN0aW9uIEdldFByb2R1Y3RBdHRyaWJ1dGVEYXRhQ29tcGxldGUoJHByb2R1Y3RfaWQpCiAgewoJJGRiID0gJHRoaXMtPkdldERiKCk7CgkkZGF0YSA9IGFycmF5KCk7CgoJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJzZXRzCiAgICAgICAgICAgICAgV0hFUkUgcHJvZHVjdF9pZCA9ID8gT1JERVIgQlkgYXR0cmliX3NldF9pZCc7CgkkdG1wID0gJGRiLT5HZXRBcnJheSgkcXVlcnksYXJyYXkoJHByb2R1Y3RfaWQpKTsKCQoKCSR0bXAyID0gY2dlX2FycmF5OjpleHRyYWN0X2ZpZWxkKCR0bXAsJ2F0dHJpYl9zZXRfaWQnKTsKCSRxMiA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcwogICAgICAgICAgICBXSEVSRSBhdHRyaWJfc2V0X2lkIElOICgnLmltcGxvZGUoJywnLCR0bXAyKS4nKSBPUkRFUiBCWSBhdHRyaWJfaWQgQVNDJzsKCSR0bXAzID0gJGRiLT5HZXRBcnJheSgkcTIpOwoKCWZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0bXApOyAkaSsrICkKCSAgewoJCSRyb3cgPSYgJHRtcFskaV07CgoJCSRhdHRyaWJzID0gYXJyYXkoKTsKCQlmb3IoICRqID0gMDsgJGogPCBjb3VudCgkdG1wMyk7ICRqKysgKQoJCSAgewoJCQkkcm93MiA9JiAkdG1wM1skal07CgkJCWlmKCAkcm93MlsnYXR0cmliX3NldF9pZCddIDwgJHJvd1snYXR0cmliX3NldF9pZCddICkgY29udGludWU7CgkJCWlmKCAkcm93MlsnYXR0cmliX3NldF9pZCddID4gJHJvd1snYXR0cmliX3NldF9pZCddICkgYnJlYWs7CgoJCQkkYXR0cmlic1skcm93MlsnYXR0cmliX3RleHQnXV0gPSAkcm93MlsnYXR0cmliX2FkanVzdG1lbnQnXTsKCQkgIH0KCQkkZGF0YVskcm93WydhdHRyaWJfc2V0X25hbWUnXV0gPSAkYXR0cmliczsKCSAgfQoKCWlmKCAhY291bnQoJGRhdGEpICkgcmV0dXJuIGZhbHNlOwoJcmV0dXJuICRkYXRhOwogIH0KCgogIC8vIGRlcHJlY2F0ZWQKICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIEdldFByb2R1Y3RJZHNGcm9tQ2F0ZWdvcmllcygkc3RyLCRkZWxpbSA9ICcsJykKICB7CglpZiggZW1wdHkoJHN0cikgKSByZXR1cm4gRkFMU0U7CgkkbmFtZXMgPSBleHBsb2RlKCRkZWxpbSwkc3RyKTsKCWZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRuYW1lcyk7ICRpKysgKQoJICB7CgkJJG5hbWVzWyRpXSA9IHRyaW0odHJpbSgkbmFtZXNbJGldKSwiJyIpOwoJICB9CgoJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCgkvLyBjb252ZXJ0IG5hbWVzIHRvIGNhdGVnb3J5IGlkcy4KCSRxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMKICAgICAgICAgICAgICAgV0hFUkUgbmFtZSBJTiAoJy5pbXBsb2RlKCcsJywkbmFtZXMpLicpJzsKCSRjYXRlZ29yaWVzID0gJGRiLT5HZXRDb2woJHF1ZXJ5KTsKCWlmKCAhJGNhdGVnb3JpZXMgKSByZXR1cm4gRkFMU0U7CgkKCSRxdWVyeSA9ICdTRUxFQ1QgcHJvZHVjdF9pZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzCiAgICAgICAgICAgICAgIFdIRVJFIGNhdGVnb3J5X2lkIElOICgnLmltcGxvZGUoJywnLCRjYXRlZ29yaWVzKS4nKSc7CgkkcHJvZHVjdHMgPSAkZGItPkdldENvbCgkcXVlcnkpOwoJcmV0dXJuICRwcm9kdWN0czsKICB9CgoKICAvLyBkZXByZWNhdGVkIAogIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gR2V0UHJvZHVjdElkc0Zyb21IaWVyYXJjaHkoJGhpZXJfc3RyLCRkZWxpbSA9ICcgfCAnKQogIHsKCWlmKCBlbXB0eSgkaGllcl9zdHIpICkgcmV0dXJuIEZBTFNFOwoJJGhpZXJfc3RyID0gdHJpbSgkaGllcl9zdHIpOwoJaWYoICRkZWxpbSAhPSAnIHwgJyApCgkgIHsKCQkkaGllcl9zdHIgPSBzdHJfcmVwbGFjZSgkZGVsaW0sJyB8ICcsJGhpZXJfc3RyKTsKCSAgfQoJCgkkZ0NtcyA9IGNtc21zKCk7CgkkZGIgPSAkZ0Ntcy0+R2V0RGIoKTsKCSRoaWVyYXJjaGllcyA9IGFycmF5KCk7CglpZiggZW5kc3dpdGgoJGhpZXJfc3RyLCcqJykgKQoJICB7CgkJJGhpZXJfc3RyID0gc3RyX3JlcGxhY2UoJyonLCclJywkaGllcl9zdHIpOwoJCQoJCSRxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSAKICAgICAgICAgICAgICAgV0hFUkUgdXBwZXIobG9uZ19uYW1lKSBMSUtFIHVwcGVyKD8pJzsKCQkkaGllcmFyY2hpZXMgPSAkZGItPkdldENvbCgkcXVlcnksYXJyYXkoJGhpZXJfc3RyKSk7CgkgIH0KCWVsc2UKCSAgewoJCSRxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeQogICAgICAgICAgICAgICBXSEVSRSB1cHBlcihsb25nX25hbWUpID0gdXBwZXIoPyknOwoJCSRoaWVyX2lkID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRoaWVyX3N0cikpOwoJCWlmKCAhJGhpZXJfaWQgKQoJCSAgewoJCQlyZXR1cm4gRkFMU0U7CgkJICB9CgkJJGhpZXJhcmNoaWVzW10gPSAkaGllcl9pZDsKCSAgfQoKCSR0bXAgPSBpbXBsb2RlKCcsJywkaGllcmFyY2hpZXMpOwoJJHF1ZXJ5ID0gJ1NFTEVDVCBwcm9kdWN0X2lkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19wcm9kdG9oaWVyCiAgICAgICAgICAgICAgICAgV0hFUkUgaGllcmFyY2h5X2lkIElOICgkdG1wKSI7CgkkcHJvZHVjdHMgPSAkZGItPkdldENvbCgkcXVlcnkpOwoJcmV0dXJuICRwcm9kdWN0czsKICB9CgoKICAvLyBkZXByZWNhdGVkLCBtb3ZlIHRvIG9wcwogIGZ1bmN0aW9uIFVwZGF0ZUhpZXJhcmNoeVBvc2l0aW9ucygpCiAgewoJcmV0dXJuIHByb2R1Y3RfdXRpbHM6OnVwZGF0ZV9oaWVyYXJjaHlfcG9zaXRpb25zKCk7CiAgfQoKCiAgLy8gZGVwcmVjYXRlZCwgbW92ZSB0byBvcHMKICBmdW5jdGlvbiBCdWlsZEhpZXJhcmNoeUxpc3QoKQogIHsKCSR0bXAgPSBoaWVyYXJjaHlfb3BzOjpnZXRfZmxhdF9saXN0KEZBTFNFKTsKCSRsaXN0ID0gYXJyYXkoJHRoaXMtPkxhbmcoJ25vbmUnKT0+LTEpOwoJaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgewoJICBmb3JlYWNoKCAkdG1wIGFzICRvbmUgKSB7CgkJJGxpc3RbJG9uZVsnbG9uZ19uYW1lJ11dID0gJG9uZVsnaWQnXTsgLy8gYmFja3dhcmRzLgoJICB9Cgl9CglyZXR1cm4gJGxpc3Q7CiAgfQoKCiAgLy8gZGVwcmVjYXRlZCwgbW92ZSB0byBvcHMKICBmdW5jdGlvbiBDcmVhdGVIaWVyYXJjaHlEcm9wZG93bigkaWQsJG5hbWUsJHNlbGVjdGVkdmFsdWUpCiAgewoJJHRtcCA9ICR0aGlzLT5CdWlsZEhpZXJhcmNoeUxpc3QoKTsKCSR0bXAgPSBhcnJheV9tZXJnZShhcnJheSgkdGhpcy0+TGFuZygnYW55Jyk9PicnKSwkdG1wKTsKCXJldHVybiAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJG5hbWUsJHRtcCwtMSwkc2VsZWN0ZWR2YWx1ZSk7CiAgfQoKCiAgLy8gZGVwcmVjYXRlZC4uLiB1c2UgZ2V0X3ByZXR0eV91cmwKICBmdW5jdGlvbiBDcmVhdGVQcmV0dHlMaW5rKCRpZCwgJGFjdGlvbiwgJHJldHVybmlkPScnLCAkY29udGVudHM9JycsICRwYXJhbXM9YXJyYXkoKSwgCgkJCQkJCQkkd2Fybl9tZXNzYWdlPScnLCAkb25seWhyZWY9ZmFsc2UsICRpbmxpbmU9ZmFsc2UsICRhZGR0ZXh0PScnLCAKCQkJCQkJCSR0YXJnZXRjb250ZW50b25seT1mYWxzZSwgJHByZXR0eXVybD0nJykKICB7CgkvLyB0aGlzIG1ldGhvZCwgaWYgb3ZlcnJpZGRlbiwgc2hvdWxkIGNhbGwgQ3JlYXRlTGluayBmb3IgYWxsIHN0dWZmIGl0IGNhbid0CgkvLyB1bmRlcnN0YW5kCgkkcHJvZHVjdHMgPSAnJzsKCSRwcmV0dHl1cmwgPSAnJzsKCglpZiggcHJvZHVjdF91dGlsczo6Y2FuX2RvX3ByZXR0eSgkYWN0aW9uLCRwYXJhbXMpICkgewoJICBzd2l0Y2goICRhY3Rpb24gKSB7CgkgIGNhc2UgJ2RldGFpbHMnOgoJCSRwcmV0dHl1cmwgPSBwcm9kdWN0X29wczo6cHJldHR5X3VybCgkcGFyYW1zWydwcm9kdWN0aWQnXSwkcmV0dXJuaWQsJHBhcmFtcyk7CgkJYnJlYWs7CgoJICBjYXNlICdkZWZhdWx0JzoKCQlpZiggaXNzZXQoJHBhcmFtc1snY2F0ZWdvcnlpZCddKSApIHsKCQkgIC8vIGlmIHRoZSBjYXRlZ29yeSBpZCBwYXJhbWV0ZXIgaXMgc2V0LCB1c2UgYnljYXRlZ29yeQoJCSAgJHByZXR0eXVybCA9IHNwcmludGYoIiVzL2J5Y2F0ZWdvcnkvJWQvJWQiLAoJCQkJCQkJICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VybHByZWZpeCcsJ3Byb2R1Y3RzJyksCgkJCQkJCQkgICAoaW50KSRwYXJhbXNbJ2NhdGVnb3J5aWQnXSwkcmV0dXJuaWQpOwoJCSAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5bmFtZSddKSApIHsKCQkJJHByZXR0eXVybCAuPSAnLycubXVuZ2Vfc3RyaW5nX3RvX3VybCgkcGFyYW1zWydjYXRlZ29yeW5hbWUnXSk7CgkJICB9CgkJfQoJCWVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ2hpZXJhcmNoeWlkJ10pICkgewoJCSAgLy8gaWYgdGhlIGhpZXJhcmNoeSBpZCBwYXJhbWV0ZXIgaXMgc2V0LCB1c2UgYnloaWVyYXJjaHkKCQkgICRwcmV0dHl1cmwgPSBzcHJpbnRmKCIlcy9ieWhpZXJhcmNoeS8lZC8lZCIsCgkJCQkJCQkgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXJscHJlZml4JywncHJvZHVjdHMnKSwKCQkJCQkJCSAgIChpbnQpJHBhcmFtc1snaGllcmFyY2h5aWQnXSwkcmV0dXJuaWQpOwoJCX0KCQllbHNlIGlmKCBpc3NldCgkcGFyYW1zWydmaWVsZGlkJ10pICkgewoJCSAgLy8gbm8gcHJldHR5IHVybHMgZm9yIHRoaXMgYXRtLgoJCSAgJHByZXR0eXVybCA9ICcnOwoJCX0KCQllbHNlIHsKCQkgIC8vIG90aGVyd2lzZSB1c2Ugc3VtbWFyeQoJCSAgJHByZXR0eXVybCA9IHNwcmludGYoIiVzL3N1bW1hcnkvJWQiLAoJCQkJCQkJICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VybHByZWZpeCcsJ3Byb2R1Y3RzJyksCgkJCQkJCQkgICAkcmV0dXJuaWQpOwoJCX0KCQlicmVhazsKCgkgIGNhc2UgJ2NhdGVnb3J5bGlzdCc6CgkJewoJCSAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5aWQnXSkgJiYgIWlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5bGlzdGR0bHRlbXBsYXRlJ10pICkgewoJCQkkcHJldHR5dXJsID0gc3ByaW50ZigiJXMvdmlld2NhdGVnb3J5LyVzLyVzIiwKCQkJCQkJCQkgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VybHByZWZpeCcsJ3Byb2R1Y3RzJyksCgkJCQkJCQkJIChpbnQpJHBhcmFtc1snY2F0ZWdvcnlpZCddLCRyZXR1cm5pZCk7CgkJICB9CgkJfQoJCWJyZWFrOwoKCSAgY2FzZSAnaGllcmFyY2h5JzoKCQkkcHJldHR5dXJsID0gc3ByaW50ZignJXMvaGllcmFyY2h5LyVkJywKCQkJCQkJCSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXJscHJlZml4JywncHJvZHVjdHMnKSwKCQkJCQkJCSAoaW50KSRwYXJhbXNbJ3BhcmVudCddKTsKCQlpZiggJHRoaXMtPkdldFByZWZlcmVuY2UoJ2hpZXJwYWdlJywtMSkgPT0gLTEgKSB7CgkJICAvLyB1c2UgcmV0dXJuaWQgaW4gdGhlIGxpbmsuCgkJICAkcHJldHR5dXJsIC49ICcvJy4kcmV0dXJuaWQ7CgkJfQoJCWlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJldHR5aGllcnVybHMnLDApICkgewoJCSAgLy8gYWRkIHRoZSBuYW1lIHRvIHRoZSB1cmwuCgkJICAkaW5mbyA9IGhpZXJhcmNoeV9vcHM6OmdldF9oaWVyYXJjaHlfaW5mbygkcGFyYW1zWydwYXJlbnQnXSk7CgkJICBpZiggaXNfYXJyYXkoJGluZm8pICkgewoJCQl7CgkJCSAgJHByZXR0eXVybCAuPSAnLycubXVuZ2Vfc3RyaW5nX3RvX3VybCgkaW5mb1snbmFtZSddKTsKCQkJfQoJCSAgfQoJCX0KCQlicmVhazsKCSAgfSAvLyBzd2l0Y2gKCX0KCglpZiggaXNzZXQoJHBhcmFtc1sncmV0dXJuaWQnXSkgKSB1bnNldCgkcGFyYW1zWydyZXR1cm5pZCddKTsKCSRvdXQgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJGFjdGlvbiwkcmV0dXJuaWQsJGNvbnRlbnRzLCRwYXJhbXMsJHdhcm5fbWVzc2FnZSwKCQkJCQkJCSAkb25seWhyZWYsJGlubGluZSwkYWRkdGV4dCwkdGFyZ2V0Y29udGVudG9ubHksJHByZXR0eXVybCk7CgoJcmV0dXJuICRvdXQ7CiAgfQoKCiAgLy8gY3JlYXRlcyBhIGZvcm0tc2FmZSBhbGlhcyBzdHJpbmcKICBmdW5jdGlvbiBtYWtlX2FsaWFzKCRzdHJpbmcsICRpc0Zvcm09ZmFsc2UpCiAgewoJJHN0cmluZyA9IG11bmdlX3N0cmluZ190b191cmwoJHN0cmluZyk7Cgkkc3RyaW5nID0gdHJpbSgkc3RyaW5nLCAnXycpOwoJcmV0dXJuIHN0cnRvbG93ZXIoJHN0cmluZyk7CiAgfQoKCiAgZnVuY3Rpb24gSGFuZGxlVXBsb2FkZWRJbWFnZSgkaWQsJG5hbWUsJGRlc3RkaXIsJiRlcnJvcnMsJHN1YmZpZWxkPScnLCR3bWxvY2F0aW9uPScnLCRvdmVyd3JpdGU9ZmFsc2UpCiAgewoJJHRoaXMtPl9sb2FkX2FkbWluKCk7CglyZXR1cm4gcHJvZHVjdHNfSGFuZGxlVXBsb2FkZWRJbWFnZSgkdGhpcywkaWQsJG5hbWUsJGRlc3RkaXIsJGVycm9ycywkc3ViZmllbGQsCgkJCQkJCQkJCQkkd21sb2NhdGlvbiwkb3ZlcndyaXRlKTsKICB9CgoKICBmdW5jdGlvbiBQcm9jZXNzSW1hZ2UoJHNyY25hbWUsJHdtbG9jYXRpb249J2RlZmF1bHQnKQogIHsKCSR0aGlzLT5fbG9hZF9hZG1pbigpOwoJcmV0dXJuIHByb2R1Y3RzX1Byb2Nlc3NJbWFnZSgkdGhpcywkc3JjbmFtZSwkd21sb2NhdGlvbik7CiAgfQoKCiAgLy8gZGVwcmVjYXRlZAogIGZ1bmN0aW9uIEdldEhpZXJhcmNoeUluZm8oJGhpZXJhcmNoeV9pZCkKICB7CglyZXR1cm4gaGllcmFyY2h5X29wczo6Z2V0X2hpZXJhcmNoeV9pbmZvKCRoaWVyYXJjaHlfaWQpOwogIH0KCgogIC8vIGRlcHJlY2F0ZWQKICBmdW5jdGlvbiBHZXRIaWVyYXJjaHlQYXRoKCRoaWVhcmNoeV9pZCkKICB7CglyZXR1cm4gaGllcmFyY2h5X29wczo6Z2V0X2hpZXJhcmNoeV9wYXRoKCRoaWVyYXJjaHlfaWQpOwogIH0KCgogIC8vIGRlcHJlY2F0ZWQKICBmdW5jdGlvbiBHZXRQcm9kdWN0SGllcmFyY2h5UGF0aCgkcHJvZHVjdGlkKQogIHsKCXJldHVybiBwcm9kdWN0X29wczo6Z2V0X3Byb2R1Y3RfaGllcmFyY2h5X3BhdGgoJHByb2R1Y3RpZCk7CiAgfQoKCiAgZnVuY3Rpb24gRGVsZXRlUHJvZHVjdCgkcHJvZHVjdGlkLCR1cGRhdGVfc2VhcmNoPXRydWUpCiAgewoJJHRoaXMtPl9sb2FkX2FkbWluKCk7CglyZXR1cm4gcHJvZHVjdHNfRGVsZXRlUHJvZHVjdCgkdGhpcywkcHJvZHVjdGlkLCR1cGRhdGVfc2VhcmNoKTsKICB9CgoKICBmdW5jdGlvbiBfc21hcnR5X3Byb2R1Y3RzX2dldGNhdGVnb3J5KCRwYXJhbXMsJiRzbWFydHkpCiAgewoJaWYoICFpc3NldCgkcGFyYW1zWydjYXRlZ29yeWlkJ10pICkgcmV0dXJuOwoKCSRjYXRpZCA9IChpbnQpJHBhcmFtc1snY2F0ZWdvcnlpZCddOwoJJG9iaiA9ICR0aGlzLT5HZXRDYXRlZ29yeSgkY2F0aWQpOwoJCglpZiggaXNzZXQoJHBhcmFtc1snYXNzaWduJ10pICkKCSAgewoJCSRzbWFydHktPmFzc2lnbigkcGFyYW1zWydhc3NpZ24nXSwkb2JqKTsKCQlyZXR1cm47CgkgIH0KCXJldHVybiAkb2JqOwogIH0KCiAgZnVuY3Rpb24gX3NtYXJ0eV9wcm9kdWN0c19oaWVyYXJjaHlfYnJlYWRjcnVtYigkcGFyYW1zLCYkc21hcnR5KQogIHsKCWlmKCAhaXNzZXQoJHBhcmFtc1snaGllcmFyY2h5aWQnXSkgKSByZXR1cm47CgkkcmV0dXJuaWQgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaGllcnBhZ2UnKTsKCWlmKCAkcmV0dXJuaWQgPD0gMCApICRyZXR1cm5pZCA9IGNtc191dGlsczo6Z2V0X2N1cnJlbnRfcGFnZWlkKCk7CglpZiggaXNzZXQoJHBhcmFtc1sncGFnZWlkJ10pICkgewoJICAkdG1wID0gJHRoaXMtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHBhcmFtc1sncGFnZWlkJ10pOwoJICBpZiggJHRtcCApICRyZXR1cm5pZCA9ICR0bXA7Cgl9CgkkZGVsaW0gPSAnICZyYXF1byAnOwoJaWYoIGlzc2V0KCRwYXJhbXNbJ2RlbGltJ10pICkgewoJICAkZGVsaW0gPSAkcGFyYW1zWydkZWxpbSddOwoJfQoKCSRoaWVyaWQgPSAoaW50KSRwYXJhbXNbJ2hpZXJhcmNoeWlkJ107CgkkYmMgPSBoaWVyYXJjaHlfb3BzOjpnZXRfYnJlYWRjcnVtYigncHJvZCcsJGhpZXJpZCwkcmV0dXJuaWQsJGRlbGltKTsKCglpZiggaXNzZXQoJHBhcmFtc1snYXNzaWduJ10pICkgewoJICAkc21hcnR5LT5hc3NpZ24oJHBhcmFtc1snYXNzaWduJ10sJGJjKTsKCSAgcmV0dXJuOwoJfQoJcmV0dXJuICRiYzsKICB9CgogIGZ1bmN0aW9uIF9zbWFydHlfcHJvZHVjdHNfaGllcmFyY2h5X3BhcmVudCgkcGFyYW1zLCYkc21hcnR5KQogIHsKCWlmKCAhaXNzZXQoJHBhcmFtc1snaGllcmFyY2h5aWQnXSkgKSByZXR1cm47CgkkaGlkID0gKGludCkkcGFyYW1zWydoaWVyYXJjaHlpZCddOwoJJGluZm8gPSBoaWVyYXJjaHlfb3BzOjpnZXRfaGllcmFyY2h5X2luZm8oJGhpZCk7CglpZiggIWlzX2FycmF5KCRpbmZvKSApIHJldHVybjsKCglpZiggaXNzZXQoJHBhcmFtc1snYXNzaWduJ10pICkgewoJICAkc21hcnR5LT5hc3NpZ24oJHBhcmFtc1snYXNzaWduJ10sJGluZm9bJ3BhcmVudF9pZCddKTsKCSAgcmV0dXJuOwoJfQoJcmV0dXJuICRpbmZvWydwYXJlbnRfaWQnXTsKICB9CgogIGZ1bmN0aW9uIGdldF9wcm9kdWN0X2luZm8oJHByb2R1Y3RfaWQpCiAgewoJJHRtcCA9ICR0aGlzLT5HZXRQcm9kdWN0KCRwcm9kdWN0X2lkKTsKCWlmKCAhaXNfYXJyYXkoJHRtcCkgKQoJICB7CgkJcmV0dXJuIEZBTFNFOwoJICB9CgkkdG1wMiA9ICR0aGlzLT5HZXRQcm9kdWN0QXR0cmlidXRlcygkcHJvZHVjdF9pZCk7CglpZiggJHRtcDIgKQoJICB7CgkJJGRiID0gJHRoaXMtPkdldERiKCk7CgkJJGF0dHJfcmVzdWx0cyA9IGFycmF5KCk7CgkJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJ1dGVzCiAgICAgICAgICAgICAgICAgICBXSEVSRSBhdHRyaWJfc2V0X2lkID0gPyBPUkRFUiBCWSBhdHRyaWJfaWQnOwoJCWZvcmVhY2goICR0bXAyIGFzICRhdHRyX3NldF9pZCA9PiAkYXR0cl9zZXRfbmFtZSApCgkJICB7CgkJCSRhdHRyX2RhdGEgPSBhcnJheSgnbmFtZSc9PiRhdHRyX3NldF9uYW1lKTsKCQkJJHRtcDMgPSAkZGItPkdldEFycmF5KCRxdWVyeSxhcnJheSgkYXR0cl9zZXRfaWQpKTsKCQkJaWYoIGlzX2FycmF5KCR0bXAzKSApCgkJCSAgewoJCQkJJHRtcDMgPSBjZ2VfYXJyYXk6OnRvX2hhc2goJHRtcDMsJ2F0dHJpYl9pZCcpOwoJCQkJJGF0dHJfZGF0YVsndmFsdWVzJ10gPSAkdG1wMzsKCQkJICB9CgkJCSRhdHRyX3Jlc3VsdHNbJGF0dHJfc2V0X2lkXSA9ICRhdHRyX2RhdGE7CgkJICB9CgkJJHRtcFsnYXR0cmlidXRlcyddID0gJGF0dHJfcmVzdWx0czsKCSAgfQoJJHRtcDMgPSAkdGhpcy0+R2V0RmllbGREZWZzRm9yUHJvZHVjdCgkcHJvZHVjdF9pZCx0cnVlLHRydWUpOwoJaWYoIGlzX2FycmF5KCR0bXAzKSApCgkgIHsKCQkkdG1wWydmaWVsZHMnXSA9ICR0bXAzOwoJICB9CglyZXR1cm4gJHRtcDsKICB9Cn0gLy8gY2xhc3MKCiMgdmltOnRzPTQgc3c9NCBub2V0Cj8+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/addcategoryfield.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdhZGRfY2F0ZWdvcnlfZmllbGQnLCRjYXRlZ29yeS5uYW1lKX08L2gzPgoKeyRmb3Jtc3RhcnR9CjxkaXY+eyRoaWRkZW4xfTwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3R5cGUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZmllbGR0eXBlfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnbmFtZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9maWVsZG5hbWV9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHQnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZmllbGRwcm9tcHR9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCd2YWx1ZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAge2lmICRmaWVsZHR5cGUgPT0gJ2ZpbGUnIHx8ICRmaWVsZHR5cGUgPT0gJ2ltYWdlJ30KICAgIHtpZiBpc3NldCgkaW5wdXRfaGlkZGVuKX08ZGl2PnskaW5wdXRfaGlkZGVufTwvZGl2PnsvaWZ9CiAgICB7JG1vZC0+TGFuZygnY3VycmVudF92YWx1ZScpfTombmJzcDt7JGZpZWxkdmFsdWV9CiAgICB7aWYgaXNzZXQoJGZpbGVleGlzdHMpfSZuYnNwO3skbW9kLT5MYW5nKCd2YWxpZCcpfXtlbHNlfTxlbT4oeyRtb2QtPkxhbmcoJ2Vycm9yX2ZpbGVub3Rmb3VuZCcpfSk8L2VtPnsvaWZ9CiAgICA8YnIvPgogIHsvaWZ9CiAgeyRpbnB1dF9maWVsZHZhbHVlfQogIHtpZiAkZmllbGR0eXBlID09ICdpbWFnZScgJiYgaXNzZXQoJGlucHV0X3dhdGVybWFya2xvY2F0aW9uKX0KICAgIDxici8+CiAgICB7JHByb21wdF93YXRlcm1hcmtsb2NhdGlvbn06Jm5ic3A7eyRpbnB1dF93YXRlcm1hcmtsb2NhdGlvbn0KICB7L2lmfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdWJtaXR9eyRjYW5jZWx9PC9wPgo8L2Rpdj4KeyRmb3JtZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/add_attrib_set.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdwcm9tcHRfYWRkX2F0dHJpYnNldCcpfTwvaDM+CjxoND57JG1vZC0+TGFuZygncHJvZHVjdCcpfTombmJzcDsgeyRwcm9kdWN0LnByb2R1Y3RfbmFtZX0gKHskcHJvZHVjdC5pZH0pe2lmICRwcm9kdWN0LnNrdSAhPSAnJ308YnIvPnskbW9kLT5MYW5nKCdza3UnKX06Jm5ic3A7eyRwcm9kdWN0LnNrdX17L2lmfTwvaDQ+CnskZm9ybXN0YXJ0fQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfc2V0X25hbWV9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3NldF9uYW1lfTwvcD4KPC9kaXY+Cgp7aWYgY291bnQoJHZhbHVlcyl9Cjxici8+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cjx0YWJsZT4KICA8dGhlYWQ+CiAgICA8dGg+eyRpZHRleHR9PC90aD4KICAgIDx0aD4qeyRrZXl0ZXh0fTwvdGg+CiAgICA8dGg+eyR2YWx1ZXRleHR9PGJyLz57JGluZm9fdmFsdWV0ZXh0fTwvdGg+CiAgICA8dGg+e2lmICRtb2QtPkdldFByZWZlcmVuY2UoJ3NrdXJlcXVpcmVkJyl9KnsvaWZ9eyRtb2QtPkxhbmcoJ3NrdScpfTwvdGg+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAge2ZvcmVhY2ggZnJvbT0kdmFsdWVzIGl0ZW09J29uZXZhbHVlJ30KICA8dHI+CiAgICA8dGQ+eyRvbmV2YWx1ZS0+aWR4fTwvdGQ+CiAgICA8dGQ+eyRvbmV2YWx1ZS0+a2V5fTwvdGQ+CiAgICA8dGQ+eyRvbmV2YWx1ZS0+dmFsdWV9PC90ZD4KICAgIDx0ZD57JG9uZXZhbHVlLT5za3V9PC90ZD4KICA8L3RyPgogIHsvZm9yZWFjaH0KICA8L3Rib2R5Pgo8L3RhYmxlPgo8L2Rpdj4KPGJyLz4Key9pZn0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCIgYm9yZGVyPSIwIj4KICAgICB7JGlucHV0X3VwZGF0ZX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fSZuYnNwO3skY2FuY2VsfTwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_add_hierarchy_item.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPntsaXRlcmFsfQokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogICQoJ2EucG9wdXBfaW1hZ2UnKS5mYW5jeWJveCgpOwp9KTsKey9saXRlcmFsfTwvc2NyaXB0Pgp7aWYgaXNzZXQoJGhpZXJhcmNoeV9pZCl9CjxoMz57JG1vZC0+TGFuZygnZWRpdF9oaWVyYXJjaHlfaXRlbScpfTwvaDM+CntlbHNlfQo8aDM+eyRtb2QtPkxhbmcoJ2FkZF9oaWVyYXJjaHlfaXRlbScpfTwvaDM+CnsvaWZ9Cgp7JGZvcm1zdGFydH0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCduYW1lJyl9PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfW5hbWUiIHZhbHVlPSJ7JG5hbWV9IiBzaXplPSI1MCIgbWF4bGVuZ3RoPSIyNTUiPjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncGFyZW50Jyl9PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRhY3Rpb25pZCwncGFyZW50JywkaGllcmFyY2h5X2l0ZW1zLCctMScsJHBhcmVudCl9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdkZXNjcmlwdGlvbicpfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JG1vZC0+Q3JlYXRlVGV4dEFyZWEoJ3RydWUnLCRhY3Rpb25pZCwkZGVzY3JpcHRpb24sJ2Rlc2NyaXB0aW9uJyl9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdpbWFnZXRleHQnKX08L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAge2lmIGlzc2V0KCRpbWFnZSkgJiYgIWVtcHR5KCRpbWFnZSkgJiYgJGltYWdlICE9ICcwJ317JG1vZC0+TGFuZygnY3VycmVudF92YWx1ZScpfTombmJzcDs8YSBjbGFzcz0icG9wdXBfaW1hZ2UiIGhyZWY9InskaW1hZ2VfdXJsfSI+eyRpbWFnZX08L2E+PGJyLz4KICAgICAgIHskbW9kLT5MYW5nKCdkZWxldGUnKX06PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JG1vZC0+R2V0QWN0aW9uSWQoKX1kZWxldGVpbWciIHZhbHVlPSIxIj48YnIvPgogICAgIHsvaWZ9CiAgICAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9InskYWN0aW9uaWR9ZmlsZSIgc2l6ZT0iNTAiIG1heGxlbmd0aD0iMjU1Ij4KICAgICB7aWYgaXNzZXQoJHdhdGVybWFya19sb2NhdGlvbil9CiAgICAgICA8YnIvPgogICAgICAgeyRtb2QtPkxhbmcoJ3dhdGVybWFya19sb2NhdGlvbicpfTombmJzcDt7JHdhdGVybWFya19sb2NhdGlvbn0KICAgICB7L2lmfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnZXh0cmExJyl9PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWV4dHJhMSIgdmFsdWU9InskZXh0cmExfSIgc2l6ZT0iNTAiIG1heGxlbmd0aD0iMjU1Ij48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2V4dHJhMicpfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1leHRyYTIiIHZhbHVlPSJ7JGV4dHJhMn0iIHNpemU9IjUwIiBtYXhsZW5ndGg9IjI1NSI+PC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ij4mbmJzcDs8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iPjwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_copyattribsets.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdjb3B5X2F0dHJpYl9zZXRzJyl9PC9oMz4KPHA+eyRtb2QtPkxhbmcoJ2luZm9fY29weV9hdHRyaWJzZXRzJyl9PC9wPgp7JGZvcm1zdGFydH0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdzb3VyY2UnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfXNyY19jb21waWQiPgogICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRwcm9kdWN0X2xpc3R9CiAgICA8L3NlbGVjdD4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdkZXN0aW5hdGlvbicpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7JGRlc3RfcHJvZHVjdF9uYW1lfQogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9IiBvbmNsaWNrPSJyZXR1cm4gY29uZmlybSgneyRtb2QtPkxhbmcoJ2NvbmZpcm1fY29weWF0dHJpYnV0ZXMnKX0nKTsiLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_hierarchy_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGNvdW50KCRlbnRyaWVzKX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSIgY2VsbHNwYWNpbmc9IjAiPgogICAgPHRoZWFkPgogICAgICA8dHI+CiAgICAgICAgPHRoIHdpZHRoPSIyJSI+eyRtb2QtPkxhbmcoJ2lkJyl9PC90aD4KICAgICAgICA8dGg+eyRtb2QtPkxhbmcoJ2hpZXJhcmNoeScpfTwvdGg+CiAgICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KICAgICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgICA8L3RyPgogICAgPC90aGVhZD4KICAgIDx0Ym9keT4KICAgIHtmb3JlYWNoIGZyb209JGVudHJpZXMgaXRlbT0nb25lZW50cnknfQogICAgICB7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIiIGFzc2lnbj0ncm93Y2xhc3MnfQogICAgICA8dHIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPgoJPHRkPnskb25lZW50cnkuaWR9PC90ZD4KICAgICAgICA8dGQ+e2NncmVwZWF0IHRleHQ9JyZuYnNwOyZndDsmbmJzcDsnIGNvdW50PSRvbmVlbnRyeS5kZXB0aH08YSBocmVmPSJ7JG9uZWVudHJ5LmVkaXRfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0X2hpZXJhcmNoeV9pdGVtJyl9Ij57JG9uZWVudHJ5Lm5hbWV9PC9hPjwvdGQ+CiAgICAgICAgPHRkPnskb25lZW50cnkuZWRpdF9saW5rfTwvdGQ+CiAgICAgICAgPHRkPnskb25lZW50cnkuZGVsZXRlX2xpbmt9PC90ZD4KICAgICAgPC90cj4KICAgIHsvZm9yZWFjaH0KICAgIDwvdGJvZHk+CiAgPC90YWJsZT4KPC9kaXY+CnsvaWZ9Cgo8cCBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICB7JGFkZF9oaWVyYXJjaHlfbGlua30mbmJzcDt7JHJlb3JkZXJfbGlua3xkZWZhdWx0OicnfQo8L3A+]]></data>
	</file>
	<file>
	  <filename>/templates/admin_reorder_hierarchy.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRkZXB0aCA9PSAwfQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CntsaXRlcmFsfQpmdW5jdGlvbiBwYXJzZVRyZWUodWwpewoJdmFyIHRhZ3MgPSBbXTsKCXVsLmNoaWxkcmVuKCJsaSIpLmVhY2goZnVuY3Rpb24oKXsKCQl2YXIgc3VidHJlZSA9CSQodGhpcykuY2hpbGRyZW4oInVsIik7CgkJaWYoc3VidHJlZS5zaXplKCkgPiAwKQoJCQl0YWdzLnB1c2goWyQodGhpcykuYXR0cigiaWQiKSwgcGFyc2VUcmVlKHN1YnRyZWUpXSk7CgkJZWxzZQoJCQl0YWdzLnB1c2goJCh0aGlzKS5hdHRyKCJpZCIpKTsKCX0pOwoJcmV0dXJuIHRhZ3M7Cn0KCiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7CiAgJCgndWwuc29ydGFibGUnKS5uZXN0ZWRTb3J0YWJsZSh7CiAgICAgZGlzYWJsZU5lc3Rpbmc6ICduby1uZXN0JywKICAgICBmb3JjZVBsYWNlaG9sZGVyU2l6ZTogdHJ1ZSwKICAgICBoYW5kbGU6ICdkaXYnLAogICAgIGl0ZW1zOiAnbGknLAogICAgIG9wYWNpdHk6IDYsCiAgICAgcGxhY2Vob2xkZXI6ICdwbGFjZWhvbGRlcicsCiAgICAgdGFiU2l6ZTogMzUsCiAgICAgdG9sZXJhbmNlOiAncG9pbnRlcicsCiAgICAgbGlzdFR5cGU6ICd1bCcsCiAgICAgdG9sZXJhbmNlRWxlbWVudDogJz4gZGl2JwogIH0pOwoKICAkKCcjc3VibWl0X2J0bicpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICAgdmFyIHRyZWUgPSAkLnRvSlNPTihwYXJzZVRyZWUoJCgndWwuc29ydGFibGUnKSkpOwogICAgICQoJyNvcmRlcmRhdGEnKS52YWwodHJlZSk7CiAgfSk7Cgp9KTsKey9saXRlcmFsfQo8L3NjcmlwdD4KCjxoMz57JG1vZC0+TGFuZygncmVvcmRlcl9oaWVyYXJjaHknKX08L2gzPgo8ZGl2IGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2luZm9fcmVvcmRlcl9jb250ZW50Jyl9PC9kaXY+CnskZm9ybXN0YXJ0fQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfW9yZGVyZGF0YSIgdmFsdWU9IiIgaWQ9Im9yZGVyZGF0YSIvPgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8ZGl2IGNsYXNzPSJyZW9yZGVyLXBhZ2VzIHBhZ2VpbnB1dCI+CnsvaWZ9CiAgICA8dWwgY2xhc3M9InNvcnRhYmxlTGlzdCB7aWYgJGRlcHRoPT0wfXNvcnRhYmxley9pZn0iPgogICAge2ZvcmVhY2ggZnJvbT0kdHJlZSBpdGVtPSdpdGVtJ30KICAgICAgPGxpIGlkPSJoaWVyX3skaXRlbS5pZH0iPjxkaXYgY2xhc3M9ImxhYmVsIj48c3Bhbj4mbmJzcDs8L3NwYW4+eyRpdGVtLm5hbWV9PC9kaXY+CiAgICAgICAge2lmIGlzc2V0KCRpdGVtLmNoaWxkcmVuKX0KICAgICAgICAgIHtpbmNsdWRlIGZpbGU9JHNtYXJ0eS50ZW1wbGF0ZSBkZXB0aD0kZGVwdGgrMSB0cmVlPSRpdGVtLmNoaWxkcmVufQogICAgICAgIHsvaWZ9CiAgICAgIDwvbGk+CiAgICB7L2ZvcmVhY2h9CiAgICA8L3VsPgp7aWYgJGRlcHRoID09IDB9CiAgPC9kaXY+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCBpZD0ic3VibWl0X2J0biIgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0Key9pZn0=]]></data>
	</file>
	<file>
	  <filename>/templates/categorylist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAkKKn0KCntpZiAkaXRlbWNvdW50ID4gMH0KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD57JG1vZC0+TGFuZygnY2F0ZWdvcnknKX08L3RoPgoJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRib2R5Pgp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQoJCTx0ciBjbGFzcz0ieyRlbnRyeS0+cm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skZW50cnktPnJvd2NsYXNzfWhvdmVyJzsiIG9ubW91c2VvdXQ9InRoaXMuY2xhc3NOYW1lPSd7JGVudHJ5LT5yb3djbGFzc30nOyI+CgkJCTx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5maWVsZHNsaW5rfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5jb3B5bGlua308L3RkPgoJCQk8dGQ+eyRlbnRyeS0+ZWRpdGxpbmt9PC90ZD4KCQkJPHRkPnskZW50cnktPmRlbGV0ZWxpbmt9PC90ZD4KCQk8L3RyPgp7L2ZvcmVhY2h9Cgk8L3Rib2R5Pgo8L3RhYmxlPgp7L2lmfQoKPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPjxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRhZGRsaW5rfTwvcD48L2Rpdj4K]]></data>
	</file>
	<file>
	  <filename>/templates/copycategory.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdjb3B5X2NhdGVnb3J5Jyl9OiB7JGNhdGVnb3J5Lm5hbWV9PC9oMz4KeyRzdGFydGZvcm19CjxkaXY+eyRoaWRkZW59PC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnbmV3X2NhdGVnb3J5X25hbWUnKX08L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dG5hbWV9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH17JGNhbmNlbH08L3A+CjwvZGl2Pgp7JGVuZGZvcm19]]></data>
	</file>
	<file>
	  <filename>/templates/dflt_templates.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0X2NhdGVnb3J5bGlzdHRlbXBsYXRlfSZuYnNwO3skcmVzZXRfY2F0ZWdvcnlsaXN0dGVtcGxhdGV9PC9wPgogIDwvZGl2Pgo8L2ZpZWxkc2V0PgoKPGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRsZWdlbmRfc2VhcmNodGVtcGxhdGV9PC9sZWdlbmQ+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfc2VhcmNodGVtcGxhdGV9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc2VhcmNodGVtcGxhdGV9PC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0X3NlYXJjaHRlbXBsYXRlfSZuYnNwO3skcmVzZXRfc2VhcmNodGVtcGxhdGV9PC9wPgogIDwvZGl2Pgo8L2ZpZWxkc2V0PgoKeyRmb3JtZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/editcategory.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAkKKn0KCntpZiBlbXB0eSgkaGlkZGVuKX0KPGgzPnskbW9kLT5MYW5nKCdhZGRjYXRlZ29yeScpfTwvaDM+CntlbHNlfQo8aDM+eyRtb2QtPkxhbmcoJ2VkaXRfY2F0ZWdvcnknKX08L2gzPgp7L2lmfQoKeyRzdGFydGZvcm19Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+KnskbmFtZXRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0bmFtZX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRoaWRkZW59eyRzdWJtaXR9eyRjYW5jZWx9PC9wPgoJPC9kaXY+CnskZW5kZm9ybX0K]]></data>
	</file>
	<file>
	  <filename>/templates/editcategoryfields.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X2NhdGVnb3J5X2ZpZWxkcycsJGNhdGVnb3J5Lm5hbWUpfTwvaDM+CntpZiBpc3NldCgkZmllbGRzKSAmJiBjb3VudCgkZmllbGRzKX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD57JG1vZC0+TGFuZygnbmFtZScpfTwvdGg+CiAgICAgIDx0aD57JG1vZC0+TGFuZygndHlwZScpfTwvdGg+CiAgICAgIDx0aD57JG1vZC0+TGFuZygndmFsdWUnKX08L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICB7Zm9yZWFjaCBmcm9tPSRmaWVsZHMgaXRlbT0nb25lZmllbGQnfQogICAgIHtjeWNsZSB2YWx1ZXM9InJvdzEscm93MiIgYXNzaWduPSdyb3djbGFzcyd9CiAgICAgPHRyIGNsYXNzPSJ7JHJvd2NsYXNzfSIgb25tb3VzZW92ZXI9InRoaXMuY2xhc3NOYW1lPSd7JHJvd2NsYXNzfWhvdmVyJzsiIG9ubW91c2VvdXQ9InRoaXMuY2xhc3NOYW1lPSd7JHJvd2NsYXNzfSc7Ij4KICAgICAgIDx0ZD57JG9uZWZpZWxkLmZpZWxkX25hbWV9PC90ZD4KICAgICAgIDx0ZD57JG9uZWZpZWxkLmZpZWxkX3R5cGV9PC90ZD4KICAgICAgIDx0ZD57JG9uZWZpZWxkLmZpZWxkX3ZhbHVlfHN0cmlwX3RhZ3N8c3VtbWFyaXplOjEwfTwvdGQ+CiAgICAgICA8dGQ+eyRvbmVmaWVsZC5tb3ZlX3VwfTwvdGQ+CiAgICAgICA8dGQ+eyRvbmVmaWVsZC5tb3ZlX2Rvd259PC90ZD4KICAgICAgIDx0ZD57JG9uZWZpZWxkLmVkaXRsaW5rfTwvdGQ+CiAgICAgICA8dGQ+eyRvbmVmaWVsZC5kZWxldGVsaW5rfTwvdGQ+CiAgICAgPC90cj4KICB7L2ZvcmVhY2h9CiAgPC90Ym9keT4KPC90YWJsZT4KPC9kaXY+CnsvaWZ9Cgo8cCBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICB7JGFkZGxpbmt9Jm5ic3A7eyRyZXR1cm5fbGlua30KPC9wPg==]]></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[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAkKKn0Ke2xpdGVyYWx9CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KalF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogalF1ZXJ5KCcuZmFuY3lib3gnKS5mYW5jeWJveCgpOwp9KTsKPC9zY3JpcHQ+CnsvbGl0ZXJhbH0KCnskc3RhcnRmb3JtfQp7aWYgaXNzZXQoJGNvbXBpZCl9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRpZHRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGNvbXBpZH08L3A+Cgk8L2Rpdj4Key9pZn0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRoaWRkZW59eyRzdWJtaXR9eyRjYW5jZWx9PC9wPgoJPC9kaXY+Cnskc3RhcnR0YWJoZWFkZXJzfQp7JHRhYmhlYWRlcl9tYWlufQp7aWYgJGN1c3RvbWZpZWxkc2NvdW50IGd0IDB9eyR0YWJoZWFkZXJfZmllbGRzfXsvaWZ9CnskdGFiaGVhZGVyX2FkdmFuY2VkfQp7JGVuZHRhYmhlYWRlcnN9Cgp7JHN0YXJ0dGFiY29udGVudH0KeyR0YWJfbWFpbn0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4qeyRuYW1ldGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRuYW1lfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskcHJpY2V0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRjdXJyZW5jeV9zeW1ib2x9eyRpbnB1dHByaWNlfTxici8+CgkgICAgICAgICAgeyRtb2QtPkxhbmcoJ2luZm9fZGVjaW1hbF91bml0cycpfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskc3RhdHVzdGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRzdGF0dXN9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRkZXRhaWxzdGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRkZXRhaWxzfTwvcD4KCTwvZGl2PgoKCXsqIHRoZSBoaWVyYXJjaHkgc3R1ZmYgKn0KCXtpZiBjb3VudCgkaGllcmFyY2h5X2l0ZW1zKX0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdoaWVyYXJjaHlfcG9zaXRpb24nKX06PC9wPgogICAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGFjdGlvbmlkLCdoaWVyYXJjaHknLCRoaWVyYXJjaHlfaXRlbXMsJy0xJywkaGllcmFyY2h5X3Bvcyl9PC9wPgoJICAgICAgICAgICAgICAgICAgCgk8L2Rpdj4KICAgICAgICB7L2lmfQoKCXsqIHRheGFibGU/ICp9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0YXhhYmxldGV4dH06PC9wPgoJICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0dGF4YWJsZX08L3A+Cgk8L2Rpdj4KCQogICAgICAgIHsqIGNhdGVnb3JpZXMgKn0KICAgICAgICB7aWYgaXNzZXQoJGlucHV0X2NhdGVnb3JpZXMpfQogICAgICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnY2F0ZWdvcmllcycpfTwvcD4KICAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2NhdGVnb3JpZXN9PC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIHsvaWZ9CgoKeyRlbmR0YWJ9Cgp7KiBkaXNwbGF5IGN1c3RvbSBmaWVsZHMgKn0Ke2lmICRjdXN0b21maWVsZHNjb3VudCBndCAwfQp7JHRhYl9maWVsZHN9CiAge2ZvcmVhY2ggZnJvbT0kY3VzdG9tZmllbGRzIGl0ZW09Y3VzdG9tZmllbGR9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+e2lmIGlzc2V0KCRjdXN0b21maWVsZC0+cHJvbXB0KX17JGN1c3RvbWZpZWxkLT5wcm9tcHR9e2Vsc2V9eyRjdXN0b21maWVsZC0+bmFtZX17L2lmfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgICAgICAgICAgICB7aWYgaXNzZXQoJGN1c3RvbWZpZWxkLT52YWx1ZSl9IAogICAgICAgICAgICAgICAgICB7aWYgJGN1c3RvbWZpZWxkLT50eXBlID09ICdpbWFnZScgJiYgaXNzZXQoJGN1c3RvbWZpZWxkLT5pbWFnZSkgJiYgaXNzZXQoJGN1c3RvbWZpZWxkLT50aHVtYm5haWwpfQogICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJ7JGN1c3RvbWZpZWxkLT5pbWFnZX0iIGNsYXNzPSJmYW5jeWJveCI+PGltZyBzcmM9InskY3VzdG9tZmllbGQtPnRodW1ibmFpbH0iIGFsdD0ieyRjdXN0b21maWVsZC0+dmFsdWV9Ii8+PC9hPgogICAgICAgICAgICAgICAgICB7ZWxzZWlmICRjdXN0b21maWVsZC0+dHlwZSAhPSAndGV4dGFyZWEnICYmICRjdXN0b21maWVsZC0+dHlwZSAhPSAnZGltZW5zaW9ucyd9eyRtb2QtPkxhbmcoJ2N1cnJlbnRfdmFsdWUnKX06Jm5ic3A7eyRjdXN0b21maWVsZC0+dmFsdWV9PGJyLz4KICAgICAgICAgICAgICAgICAgey9pZn0KCiAgICAgICAgICAgICAgICAgIHtpZiBpc3NldCgkY3VzdG9tZmllbGQtPmRlbGV0ZSl9eyRtb2QtPkxhbmcoJ2RlbGV0ZScpfSZuYnNwO3skY3VzdG9tZmllbGQtPmRlbGV0ZX08YnIvPnsvaWZ9CiAgICAgICAgICAgICAgICB7L2lmfSAgICAgICAgIAogICAgICAgICAgICAgICAge2lmIGlzc2V0KCRjdXN0b21maWVsZC0+aGlkZGVuKX17JGN1c3RvbWZpZWxkLT5oaWRkZW59ey9pZn17JGN1c3RvbWZpZWxkLT5pbnB1dF9ib3h9CiAgICAgICAgICAgICAgICB7aWYgaXNzZXQoJGN1c3RvbWZpZWxkLT5hdHRyaWJ1dGUpfTxici8+eyRjdXN0b21maWVsZC0+YXR0cmlidXRlfXsvaWZ9CiAgICAgICAgICAgICAgICA8L3A+Cgk8L2Rpdj4KICB7L2ZvcmVhY2h9CnskZW5kdGFifQp7L2lmfQoKeyR0YWJfYWR2YW5jZWR9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+e2lmICRtb2QtPkdldFByZWZlcmVuY2UoJ3NrdXJlcXVpcmVkJyl9KnsvaWZ9eyRtb2QtPkxhbmcoJ3NrdScpfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dHNrdX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHdlaWdodHRleHR9ICh7JHdlaWdodHVuaXRzfSk6PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXR3ZWlnaHR9PGJyLz4KICAgICAgICAgICAgICAgICAgeyRtb2QtPkxhbmcoJ2luZm9fZGVjaW1hbF91bml0cycpfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCd1cmxfYWxpYXMnKX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRhbGlhc308L3A+Cgk8L2Rpdj4KeyRlbmR0YWJ9Cgp7JGVuZHRhYmNvbnRlbnR9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaGlkZGVufXskc3VibWl0fXskY2FuY2VsfTwvcD4KCTwvZGl2Pgp7JGVuZGZvcm19Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/edit_attribsets.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfYXR0cmlic2V0c19mb3J9OiZuYnNwO3skcHJvZHVjdF9uYW1lfTwvaDM+Cgp7aWYgJGl0ZW1jb3VudCA+IDB9Cjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+eyRpZHRleHR9PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnskbmFtZXRleHR9PC90aD4KCQkJPHRoPnskY291bnR0ZXh0fTwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+Cntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9Cgl7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIiIGFzc2lnbj0ncm93Y2xhc3MnfQoJCTx0ciBjbGFzcz0ieyRyb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc30nOyI+CgkJCTx0ZD57JGVudHJ5LT5hdHRyaWJfc2V0X2lkfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5hdHRyaWJfc2V0X25hbWV9PC90ZD4KCQkJPHRkPnskZW50cnktPmNvdW50fTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5lZGl0bGlua308L3RkPgoJCQk8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPgoJCTwvdHI+CnsvZm9yZWFjaH0KCTwvdGJvZHk+CjwvdGFibGU+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+CiAgeyRhZGRfbGlua30mbmJzcDt7JGNvcHlfbGlua30mbmJzcDt7JHJldHVybl9saW5rfQo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/templates/exportcsv.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdleHBvcnRfdG9fY3N2Jyl9PC9oMz4KeyRmb3Jtc3RhcnR9Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2V4cG9ydGRlbGltJyl9PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9ZXhwb3J0ZGVsaW0iIHZhbHVlPSJ7JG9wdGlvbnMuZXhwb3J0ZGVsaW19IiBzaXplPSI1IiBtYXhsZW5ndGg9IjUiLz4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdleHBvcnRkcmFmdCcpfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9ZXhwb3J0ZHJhZnQgc2VsZWN0ZWQ9JG9wdGlvbnMuZXhwb3J0ZHJhZnR9CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnZXhwb3J0Y2F0cycpfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9ZXhwb3J0Y2F0cyBzZWxlY3RlZD0kb3B0aW9ucy5leHBvcnRjYXRzfQogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2V4cG9ydGZpZWxkcycpfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9ZXhwb3J0ZmllbGRzIHNlbGVjdGVkPSRvcHRpb25zLmV4cG9ydGZpZWxkc30KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdleHBvcnRhdHRyaWJzJyl9PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1leHBvcnRhdHRyaWJzIHNlbGVjdGVkPSRvcHRpb25zLmV4cG9ydGF0dHJpYnN9CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/fielddeflist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAkKKn0KCjxwPnskbW9kLT5MYW5nKCdpbmZvX2ZpZWxkZGVmc190YWInKX08L3A+Cgp7aWYgJGl0ZW1jb3VudCA+IDB9Cjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+eyRmaWVsZGRlZnRleHR9PC90aD4KCQkJPHRoPnskdHlwZXRleHR9PC90aD4KCQkJPHRoIGNsYXNzPSJtb3ZlIj4mbmJzcDs8L3RoPgoJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRib2R5Pgp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQoJe2N5Y2xlIHZhbHVlcz0icm93MSxyb3cyIiBhc3NpZ249J3Jvd2NsYXNzJ30KCQk8dHIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPgoJCQk8dGQ+eyRlbnRyeS0+bmFtZX08L3RkPgoJCQk8dGQ+e2Fzc2lnbiB2YXI9J3RtcCcgdmFsdWU9JGVudHJ5LT50eXBlfXskZmllbGR0eXBlcy4kdG1wfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT51cGxpbmt9IHskZW50cnktPmRvd25saW5rfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5lZGl0bGlua308L3RkPgoJCQk8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPgoJCTwvdHI+CnsvZm9yZWFjaH0KCTwvdGJvZHk+CjwvdGFibGU+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+PHAgY2xhc3M9InBhZ2VvcHRpb25zIj57JGFkZGxpbmt9PC9wPjwvZGl2Pgo=]]></data>
	</file>
	<file>
	  <filename>/templates/importcsv.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdpbXBvcnRfZnJvbV9jc3YnKX08L2gzPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPntsaXRlcmFsfQojZXJyb3JibG9jayB7IGRpc3BsYXk6IG5vbmU7IH0KI29wdGlvbmJsb2NrIHsgZGlzcGxheTogbm9uZTsgfQojcHJvY2Vzc2Jsb2NrIHsgZGlzcGxheTogbm9uZTsgfQojcHJvZ3Jlc3MgeyB3aWR0aDogOTAlOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0Key9saXRlcmFsfTwvc3R5bGU+Cgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+e2xpdGVyYWx9CiQoZnVuY3Rpb24oKXsKICAkKCcjcHJvZ3Jlc3MnKS5wcm9ncmVzc2Jhcih7dmFsdWU6IDB9KTsKICAkKCcjcmV0dXJuYnRuJykuY2xpY2soZnVuY3Rpb24oKXsKICAgIHdpbmRvdy5sb2NhdGlvbiA9ICd7L2xpdGVyYWx9eyRkb25ldXJsfXtsaXRlcmFsfSc7CiAgfSk7Cn0pOwpmdW5jdGlvbiBwcm9ncmVzcyhwY3QpIHsKICAkKCcjcHJvZ3Jlc3MnKS5wcm9ncmVzc2JhcigndmFsdWUnLHBjdCk7CiAgJCgnLnVpLXByb2dyZXNzYmFyLXZhbHVlJykuaHRtbChwY3QrJyUnKTsKfQpmdW5jdGlvbiBvbkVycm9yKHN0cikgewogICQoJyNlcnJvcmJsb2NrJykuc2hvdygpOwogICQoJyNlcnJvcnMnKS52YWwoJCgnI2Vycm9ycycpLnZhbCgpK3N0cisnXG4nKTsKfQpmdW5jdGlvbiBkb25lKCkgewogICQoJyNvcHRpb25ibG9jaycpLmZhZGVJbigpOwp9CnsvbGl0ZXJhbH08L3NjcmlwdD4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvZ3Jlc3MnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiIGlkPSJwcm9ncmVzcyI+PC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyIgaWQ9ImVycm9yYmxvY2siPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2Vycm9ycycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8dGV4dGFyZWEgaWQ9ImVycm9ycyI+PC90ZXh0YXJlYT4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0iYWdlb3ZlcmZsb3ciIGlkPSJvcHRpb25ibG9jayI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBpZD0icmV0dXJuYnRuIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3JldHVybicpfSIvPgogIDwvcD4KPC9kaXY+Cgo8aWZyYW1lIHNyYz0ieyRwcm9jZXNzdXJsfSIgaWQ9InByb2Nlc3NibG9jayI+PC9pZnJhbWU+]]></data>
	</file>
	<file>
	  <filename>/templates/importproducts.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW1wb3J0IHByb2R1Y3RzIGZvcm0gKn0KPGgzPnskbW9kLT5MYW5nKCdpbXBvcnRfZnJvbV9jc3YnKX08L2gzPgoKeyRmb3Jtc3RhcnR9CntpZiBpc3NldCgkbWVzc2FnZXMpfQoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KPGRpdiBzdHlsZT0ib3ZlcmZsb3c6IGF1dG87IGhlaWdodDogMTBlbTsgd2lkdGg6IDc1JTsgbWFyZ2luLWxlZnQ6IDVlbTsgYm9yZGVyOiAxcHggZGFzaGVkICNjY2M7Ii8+CntzdHJpcH0Ke2ZvcmVhY2ggZnJvbT0kbWVzc2FnZXMgaXRlbT0nb25lJ30KICB7JG9uZX08YnIvPgp7L2ZvcmVhY2h9Cnsvc3RyaXB9CjwvZGl2Pgo8L2Rpdj4KCntlbHNlaWYgaXNzZXQoJGVycm9ycyl9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CjxkaXYgc3R5bGU9Im92ZXJmbG93OiBhdXRvOyBoZWlnaHQ6IDEwZW07IHdpZHRoOiA3NSU7IG1hcmdpbi1sZWZ0OiA1ZW07IGJvcmRlcjogMXB4IGRhc2hlZCAjY2NjOyIvPgp7c3RyaXB9Cntmb3JlYWNoIGZyb209JGVycm9ycyBpdGVtPSdvbmUnfQogIHskb25lfTxici8+CnsvZm9yZWFjaH0Key9zdHJpcH0KPC9kaXY+CjwvZGl2Pgp7L2lmfQoKe2lmICFpc3NldCgkY3N2ZmlsZSl9CnsqIGRpc3BsYXkgdGhlIGZvcm0gKn0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZGVsaW1pdGVyJyl9PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9ZGVsaW1pdGVyIiB2YWx1ZT0ieyRkZWxpbWl0ZXJ9IiBzaXplPSI1IiBtYXhsZW5ndGg9IjEwIi8+CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fZGVsaW1pdGVyJyl9CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2NyZWF0ZWZpZWxkcycpfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1jcmVhdGVmaWVsZHMiPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHllc25vIHNlbGVjdGVkPSRmbGFnX2NyZWF0ZWZpZWxkc30KICAgIDwvc2VsZWN0PgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2NyZWF0ZWZpZWxkcycpfQogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9oYW5kbGVpbWFnZXMnKX08L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9aGFuZGxlaW1hZ2VzIj4KICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSR5ZXNubyBzZWxlY3RlZD0kZmxhZ19oYW5kbGVpbWFnZXN9CiAgICA8L3NlbGVjdD4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19oYW5kbGVpbWFnZXMnKX0KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfaW1hZ2VwYXRoJyl9PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9aW1hZ2VwYXRoIiB2YWx1ZT0ieyRpbWFnZXBhdGh9IiBzaXplPSI2MCIvPgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2ltYWdlcGF0aCcpfQogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9jcmVhdGVoaWVyYXJjaHknKX08L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y3JlYXRlaGllcmFyY2h5Ij4KICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSR5ZXNubyBzZWxlY3RlZD0kZmxhZ19jcmVhdGVoaWVyYXJjaHl9CiAgICA8L3NlbGVjdD4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19jcmVhdGVoaWVyYXJjaHknKX0KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfY3JlYXRlY2F0ZWdvcmllcycpfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1jcmVhdGVjYXRlZ29yaWVzIj4KICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSR5ZXNubyBzZWxlY3RlZD0kZmxhZ19jcmVhdGVjYXRlZ29yaWVzfQogICAgPC9zZWxlY3Q+CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fY3JlYXRlY2F0ZWdvcmllcycpfQogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9kdXBsaWNhdGVwcm9kdWN0cycpfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1kdXBsaWNhdGVwcm9kdWN0cyI+CiAgICAgICA8b3B0aW9uIGxhYmVsPSJ7JG1vZC0+TGFuZygnbGFiZWxfc2tpcCcpfSIgdmFsdWU9InNraXAiIHtpZiAkZmxhZ19kdXBsaWNhdGVwcm9kdWN0cyBlcSAic2tpcCJ9c2VsZWN0ZWQ9InNlbGVjdGVkInsvaWZ9PnskbW9kLT5MYW5nKCdsYWJlbF9za2lwJyl9PC9vcHRpb24+CiAgICAgICA8b3B0aW9uIGxhYmVsPSJ7JG1vZC0+TGFuZygnbGFiZWxfdXBkYXRlJyl9IiB2YWx1ZT0idXBkYXRlIiB7aWYgJGZsYWdfZHVwbGljYXRlcHJvZHVjdHMgZXEgInVwZGF0ZSJ9c2VsZWN0ZWQ9InNlbGVjdGVkInsvaWZ9PnskbW9kLT5MYW5nKCdsYWJlbF91cGRhdGUnKX08L29wdGlvbj4KICAgICAgIDxvcHRpb24gbGFiZWw9InskbW9kLT5MYW5nKCdsYWJlbF9vdmVyd3JpdGUnKX0iIHZhbHVlPSJvdmVyd3JpdGUiIHtpZiAkZmxhZ19kdXBsaWNhdGVwcm9kdWN0cyBlcSAib3ZlcndyaXRlIn1zZWxlY3RlZD0ic2VsZWN0ZWQiey9pZn0+eyRtb2QtPkxhbmcoJ2xhYmVsX292ZXJ3cml0ZScpfTwvb3B0aW9uPgogICAgPC9zZWxlY3Q+CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fZHVwbGljYXRlcHJvZHVjdHMnKX0KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfYmF0Y2hzaXplJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWJhdGNoc2l6ZSIgdmFsdWU9InskYmF0Y2hzaXplfSIgc2l6ZT0iMyIgbWF4bGVuZ3RoPSIzIi8+CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fYmF0Y2hzaXplJyl9CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2NsZWFyZmllbGRzJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9Y2xlYXJmaWVsZHMgc2VsZWN0ZWQ9JGNsZWFyZmllbGRzfQogICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb19jbGVhcmZpZWxkcycpfQogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9jbGVhcmF0dHJpYnMnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1jbGVhcmF0dHJpYnMgc2VsZWN0ZWQ9JGNsZWFyYXR0cmlic30KICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fY2xlYXJhdHRyaWJzJyl9CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2NsZWFyY2F0ZWdvcmllcycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWNsZWFyY2F0ZWdvcmllcyBzZWxlY3RlZD0kY2xlYXJjYXRlZ29yaWVzfQogICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb19jbGVhcmNhdGVnb3JpZXMnKX0KICA8L3A+CjwvZGl2PgoKey9pZn0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2NzdmZpbGUnKX08L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7aWYgaXNzZXQoJGNzdmZpbGUpfQogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3N2ZmlsZSIgdmFsdWU9InskY3N2ZmlsZX0iIHJlYWRvbmx5PXJlYWRvbmx5Lz4KICAgIHtlbHNlfQogICAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9InskYWN0aW9uaWR9Y3N2ZmlsZSIgdmFsdWU9IiIgc2l6ZT0iNjAiLz4KICAgIHsvaWZ9CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7aWYgaXNzZXQoJGNzdmZpbGUpfQogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1nbyIgdmFsdWU9InskbW9kLT5MYW5nKCdnbycpfSIgb25jbGljaz0icmV0dXJuIGNvbmZpcm0oJ3skbW9kLT5MYW5nKCdjb25maXJtX2ltcG9ydCcpfScpOyIvPgogICAge2Vsc2V9CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXRlc3QiIHZhbHVlPSJ7JG1vZC0+TGFuZygndGVzdCcpfSIvPgogICAgey9pZn0KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_byhierarchy_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGllcmFyY2h5IHJlcG9ydCB0ZW1wbGF0ZSAqfQp7aWYgIWlzc2V0KCRoZGVwdGgpICYmIGlzc2V0KCRoaWVyYXJjaHlfaXRlbSl9CjxoMz5IaWVyYXJjaHkgRGF0YSBmb3IgeyRoaWVyYXJjaHlfaXRlbS5uYW1lfSAoeyRoaWVyYXJjaHlfaXRlbS5pZH0pPC9oMz4Key9pZn0KCntpZiAhaXNzZXQoJGhkZXB0aCl9e2Fzc2lnbiB2YXI9J2hkZXB0aCcgdmFsdWU9JzAnfXsvaWZ9CnsqCiAvLyBjcmVhdGUgYSBuZXN0ZWQgc2V0IG9mIHVub3JkZXJlZCBsaXN0cyAKIC8vIGlmIHRoZSBhY3RpdmVfaGllcmFyY2h5IHNtYXJ0eSB2YXJpYWJsZSBleGlzdHMKIC8vIGFuZCBtYXRjaGVzIHRoZSBjdXJyZW50IGhpZXJhcmNoeSBpZAogLy8gdGhlIGFjdGl2ZSBjbGFzcyB3aWxsIGJlIGdpdmVuCiAvLyB0byB0aGUgdWwuICBZb3UgbWF5IHdhbnQgdG8gbW9kaWZ5IHlvdXIgc3VtbWFyeSB0ZW1wbGF0ZQogLy8gdG8gc2V0IHRoaXMgdmFyaWFibGUKKn0KPHVsIGNsYXNzPSJwcm9kdWN0c19oaWVyYXJjaHlfbGV2ZWx7JGhkZXB0aH0iPgp7Zm9yZWFjaCBmcm9tPSRoaWVyZGF0YSBrZXk9J2tleScgaXRlbT0naXRlbSd9CntzdHJpcH0KICA8bGkge2lmIGlzc2V0KCRhY3RpdmVfaGllcmFyY2h5KSBhbmQgJGl0ZW0uaWQgPT0gJGFjdGl2ZV9oaWVyYXJjaHl9IGNsYXNzPSJhY3RpdmUiey9pZn0+CiAge2lmICRpdGVtLmNvdW50IGd0IDB9CiAgICAgPGEgaHJlZj0ieyRpdGVtLnVybH0iPnskaXRlbS5uYW1lfSAoeyRpdGVtLmNvdW50fSk8L2E+CiAge2Vsc2V9CiAgICAgeyRpdGVtLm5hbWV9ICh7JGl0ZW0uY291bnR9KQogIHsvaWZ9CiAgCiAge2lmIGlzc2V0KCRpdGVtLmNoaWxkcmVuKSB9CiAgICB7KiB0aGVyZSBhcmUgY2hpbGRyZW4gY2FsbCB0aGlzIHRlbXBsYXRlIGFnYWluICp9CiAgICB7aW5jbHVkZSBmaWxlPSRzbWFydHkudGVtcGxhdGUgaGllcmRhdGE9JGl0ZW0uY2hpbGRyZW4gaGRlcHRoPSRoZGVwdGgrMX0KICB7L2lmfQogIAogIDwvbGk+Cnsvc3RyaXB9CnsvZm9yZWFjaH0KPC91bD4K]]></data>
	</file>
	<file>
	  <filename>/templates/orig_categorylist_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icHJvZHVjdHNfY2F0ZWdvcnlfbGlzdCI+Cntmb3JlYWNoIGZyb209JGNhdGVnb3J5bGlzdCBpdGVtPSdvYmonfQogIDxkaXYgY2xhc3M9InByb2R1Y3RzX2NhdGVnb3J5Ij4KICAgIHsqIGNhdGVnb3J5IGZpZWxkcyBhcmUgYXZhaWxhYmxlIGFzIGFuIGFycmF5IGluICRvYmotPmZpZWxkcyAqfQogICAgeyogaS5lOiAkb2JqLT5maWVsZHMuZmllbGRuYW1lLmZpZWxkX3ZhbHVlICp9CiAgICB7aWYgaXNzZXQoJG9iai0+ZmllbGRzKX0KICAgIHtmb3JlYWNoIGZyb209JG9iai0+ZmllbGRzIGtleT0nZmllbGRfbmFtZScgaXRlbT0nZmllbGRkYXRhJ30KICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdHNfY2F0ZWdvcnlfZmllbGQiPgogICAgICAgIHskZmllbGRkYXRhLmZpZWxkX3Byb21wdH0gPSB7JGZpZWxkZGF0YS5maWVsZF92YWx1ZX0KICAgICAgPC9kaXY+CiAgICB7L2ZvcmVhY2h9CiAgICB7L2lmfQogICAge2lmIGlzc2V0KCRvYmotPmRldGFpbF91cmwpfQogICAgICA8YSBocmVmPSJ7JG9iai0+ZGV0YWlsX3VybH0iPkRldGFpbHMgRm9yIHskb2JqLT5uYW1lfTwvYT4mbmJzcDsmbmJzcDsKICAgIHsvaWZ9CiAgICA8YSBocmVmPSJ7JG9iai0+c3VtbWFyeV91cmx9Ij5Qcm9kdWN0cyBNYXRjaGluZyB7JG9iai0+bmFtZX08L2E+KHskb2JqLT5jb3VudH0pCiAgPC9kaXY+CnsvZm9yZWFjaH0KPC9kaXY+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_detail_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogdGhpcyBpcyBhIHNhbXBsZSBwcm9kdWN0IGRldGFpbCB0ZW1wbGF0ZSAqfQp7YXNzaWduIHZhcj0ncHJvZHVjdHMnIHZhbHVlPSRtb2R9CjxkaXYgY2xhc3M9IlByb2R1Y3REaXJlY3RvcnlJdGVtIj4KCntpZiBpc19hcnJheSgkZW50cnktPmJyZWFkY3J1bWIpfQpCcmVhZGNydW1iOiAgeycgPj4gJ3xpbXBsb2RlOiRlbnRyeS0+YnJlYWRjcnVtYn08YnIvPgp7L2lmfQoKTmFtZTogPGEgbmFtZT0icHJvZHVjdF9uYW1lIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiBub25lOyI+eyRlbnRyeS0+cHJvZHVjdF9uYW1lfTwvYT48YnIgLz4KRmlsZSBMb2NhdGlvbjogeyRlbnRyeS0+ZmlsZV9sb2NhdGlvbn08YnIvPgoKCntpZiAkZW50cnktPndlaWdodCBuZSAnJ30KV2VpZ2h0IHskd2VpZ2h0X3VuaXRzfTogeyRlbnRyeS0+d2VpZ2h0fTxiciAvPgp7L2lmfQoKQnJlYWRjcnVtYjogeyRlbnRyeS0+YnJlYWRjcnVtYn0KCntpZiAkZW50cnktPmRldGFpbHMgbmUgJyd9CkRldGFpbHM6PGJyIC8+CnskZW50cnktPmRldGFpbHN9PGJyIC8+CnsvaWZ9Cgp7KiB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIGlmIHRoZSBQcm9tb3Rpb25zIG1vZHVsZSBpcyBpbnN0YWxsZWQgKn0KeyogcHJvbW9fZ2V0X3Byb2RfZGlzY291bnQgcHJvZHVjdF9pZD0kZW50cnktPmlkIGFzc2lnbj0nZm9vJyAqfQp7aWYgaXNzZXQoJGZvby5wcm9tb19pZCl9CjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+RGlzY291bnQ6ICB7JGN1cnJlbmN5X3N5bWJvbH17JGZvby5kaXNjb3VudHxudW1iZXJfZm9ybWF0OjJ9ICh7JGZvby5wZXJjZW50YWdlfG51bWJlcl9mb3JtYXQ6Mn0lKTwvc3Bhbj48YnIvPgp7aWYgJGVudHJ5LT5wcmljZSBuZSAnJ30KUHJpY2UgeyRjdXJyZW5jeV9zeW1ib2x9OiB7JGVudHJ5LT5wcmljZSAqICRmb28uZGVjaW1hbHxudW1iZXJfZm9ybWF0OjJ9PGJyIC8+CnsvaWZ9CntlbHNlaWYgJGVudHJ5LT5wcmljZSBuZSAnJ30KUHJpY2UgeyRjdXJyZW5jeV9zeW1ib2x9OiB7JGVudHJ5LT5wcmljZX08YnIgLz4Key9pZn0KCnsqIGFjY2Vzc2luZyBhbGwgb2YgdGhlIGZpZWxkcyBpbiBhIGxpc3QgKn0Ke2lmIGNvdW50KCRlbnRyeS0+ZmllbGRzKX0KICA8aDQ+Q3VzdG9tIEZpZWxkczwvaDQ+CiAge2ZvcmVhY2ggZnJvbT0kZW50cnktPmZpZWxkcyBrZXk9J25hbWUnIGl0ZW09J2ZpZWxkJ30KICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0X2RldGFpbF9maWVsZCI+PHA+CiAgICAgICB7JG1vZC0+TGFuZygnbmFtZScpfTogeyRuYW1lfTxici8+CiAgICAgICB7JG1vZC0+bGFuZygndHlwZScpfTogeyRmaWVsZC0+dHlwZX08YnIvPgogICAgICAgeyRtb2QtPmxhbmcoJ3ZhbHVlJyl9OiB7JGZpZWxkLT52YWx1ZX08YnIvPgogICAgICAge2lmICRmaWVsZC0+dHlwZSA9PSAnaW1hZ2UnICYmIGlzc2V0KCRmaWVsZC0+dGh1bWJuYWlsKX0KICAgICAgICAgPGltZyBzcmM9InskZW50cnktPmZpbGVfbG9jYXRpb259L3skZmllbGQtPnRodW1ibmFpbH0iIGFsdD0ieyRmaWVsZC0+dmFsdWV9Ii8+CiAgICAgICB7L2lmfQogICAgIDwvcD48L2Rpdj4KICB7L2ZvcmVhY2h9CnsvaWZ9Cgp7KiBwcmludCBvdXQgYXR0cmlidXRlcyAqfQp7aWYgaXNzZXQoJGVudHJ5LT5hdHRyaWJzX2Z1bGwpfQogIDxoND5BdHRyaWJ1dGVzPC9oND4KICB7Zm9yZWFjaCBmcm9tPSRlbnRyeS0+YXR0cmlidXRlcyBrZXk9J25hbWUnIGl0ZW09J2F0dHJpYnNldCd9CiAgICAgPGg2PnskbmFtZX08L2g2PgogICAgIDxkaXYgY2xhc3M9InByb2R1Y3RfZGV0YWlsX2ZpZWxkIj48cD4KICAgICAgIHtmb3JlYWNoIGZyb209JGF0dHJpYnNldCBrZXk9J2xhYmVsJyBpdGVtPSdhdHRyaWJ1dGUnfQogICAgICAgICB7JGxhYmVsfSAoeyRhdHRyaWJ1dGUuc2t1fSk6IHskYXR0cmlidXRlLmF0dHJpYl9hZGp1c3RtZW50fTxici8+CiAgICAgICB7L2ZvcmVhY2h9CiAgICAgPC9wPjwvZGl2PgogIHsvZm9yZWFjaH0Key9pZn0KCnsqIHByaW50IG91dCB0aGUgY2F0ZWdvcmllcyAqfQp7aWYgaXNzZXQoJGVudHJ5LT5jYXRlZ29yaWVzKX0KICA8aDQ+Q2F0ZWdvcmllczwvaDQ+CiAge2ZvcmVhY2ggZnJvbT0kZW50cnktPmNhdGVnb3JpZXMgaXRlbT0nY2F0ZWdvcnknfQogICAgPGRpdiBjbGFzcz0icHJvZHVjdF9kZXRhaWxfY2F0ZWdvcnkiPjxwPgogICAgICB7JG1vZC0+TGFuZygnaWQnKX06IHskY2F0ZWdvcnktPmlkfTxici8+CiAgICAgIHskbW9kLT5MYW5nKCduYW1lJyl9OiB7JGNhdGVnb3J5LT5uYW1lfTxici8+CiAgICAgIHsqIGlmIHRoZXJlIGFyZSBkYXRhIGZpZWxkcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBjYXRlZ29yeSwgZGlzcGxheSB0aGVtIHRvbyAqfQogICAgICB7aWYgaXNzZXQoJGNhdGVnb3J5LT5kYXRhKSAmJiBjb3VudCgkY2F0ZWdvcnktPmRhdGEpfQogICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3RfZGV0YWlsX2NhdGVnb3J5X2ZpZWxkcyI+CiAgICAgICAgPHN0cm9uZz57JG1vZC0+TGFuZygnZGF0YScpfTwvc3Ryb25nPjxici8+CiAgICAgICAge2ZvcmVhY2ggZnJvbT0kY2F0ZWdvcnktPmRhdGEgaXRlbT0nb25lZGF0YWl0ZW0nfQogICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3RfZGV0YWlsX2NhdGVnb3J5X29uZWZpZWxkIj4KICAgICAgICAgICB7aWYgJG9uZWRhdGFpdGVtLmZpZWxkX3R5cGUgPT0gJ2ltYWdlJ30KICAgICAgICAgICAgIDxhIGhyZWY9InskY2F0ZWdvcnktPmZpbGVfbG9jYXRpb259L3skb25lZGF0YWl0ZW0uZmllbGRfdmFsdWV9Ij48aW1nIHNyYz0ieyRjYXRlZ29yeS0+ZmlsZV9sb2NhdGlvbn0vdGh1bWJfeyRvbmVkYXRhaXRlbS5maWVsZF92YWx1ZX0iIGFsdD0idGh1bWIiIC8+PC9hPgogICAgICAgICAgIHtlbHNlaWYgJG9uZWRhdGFpdGVtLmZpZWxkX3R5cGUgPT0gJ2ZpbGUnfQogICAgICAgICAgICAgPGEgaHJlZj0ieyRjYXRlZ29yeS0+ZmlsZV9sb2NhdGlvbn0veyRvbmVkYXRhaXRlbS5maWVsZF92YWx1ZX0iPnskb25lZGF0YWl0ZW0uZmllbGRfdmFsdWV9PC9hPgogICAgICAgICAgIHtlbHNlfQogICAgICAgICAgICAgPHN0cm9uZz57JG9uZWRhdGFpdGVtLmZpZWxkX3Byb21wdH08L3N0cm9uZz46IHskb25lZGF0YWl0ZW0uZmllbGRfdmFsdWV9PGJyLz4KICAgICAgICAgICB7L2lmfQogICAgICAgICAgIDwvZGl2PgogICAgICAgIHsvZm9yZWFjaH0KICAgICAgICA8L2Rpdj4KICAgICAgey9pZn0KICAgIDwvcD48L2Rpdj4gCiAgey9mb3JlYWNofQp7L2lmfQoKeyogaW5jbHVkZSB0aGUgY2FydCAqfQp7KiBOT1RFOgogICBJZiB5b3UgaGF2ZSBhZGRlZCBhIGN1c3RvbSBmaWVsZCB3aXRoIHRoZSBhbGlhcyAnc3RvY2snIHlvdSBjb3VsZCB1c2UgdGhlIGZvbGxvd2luZyBleHByZXNzaW9uIHRvIGhhbmRsZSBvdXQgb2Ygc3RvY2sgaXRlbXMKICAge2NnZV9oYXZlX21vZHVsZSBtPSdDR0Vjb21tZXJjZUJhc2UnIGFzc2lnbj0ndG1wJ30KICAge2lmICR0bXB9CiAgICAge2lmICRlbnRyeS5maWVsZHMuc3RvY2stPnZhbHVlIGxlIDB9CiAgICAgICA8cD5Ob3RlOiBUaGlzIGl0ZW0gaXMgY3VycmVudGx5IG91dCBvZiBzdG9jaywgaG93ZXZlciB3ZSBhcmUgZXhwZWN0aW5nIGEgbmV3IHNoaXBtZW50IHNob3J0bHkuICBQbGVhc2UgY2hlY2sgYmFjayBhZ2FpbiBzb29uLjwvcD4KICAgICB7ZWxzZX0KICAgICAgIDxkaXY+CiAgICAgICB7Y2dlY29tbV9mb3JtX2FkZHRvY2FydCBwcm9kdWN0PSRlbnRyeS0+aWR9IAogICAgICAgPC9kaXY+CiAgICAgey9pZn0KICAgey9pZn0KKn0Ke2NnZV9oYXZlX21vZHVsZSBtPSdDR0Vjb21tZXJjZUJhc2UnIGFzc2lnbj0ndG1wJ30Ke2lmICR0bXB9CjxkaXY+CntjZ2Vjb21tX2Zvcm1fYWRkdG9jYXJ0IHByb2R1Y3Q9JGVudHJ5LT5pZH0gCjwvZGl2Pgp7L2lmfQoKeyogY3JlYXRlIGEgbGluayBiYWNrIHRvIHRoZSB0b3Agb2YgdGhlIHBhZ2UgKn0Ke2FuY2hvciBhbmNob3I9J3Byb2R1Y3RfbmFtZScgdGV4dD0kcHJvZHVjdHMtPkxhbmcoJ3JldHVybl90b190b3AnKSB0aXRsZT0kcHJvZHVjdHMtPkxhbmcoJ3JldHVybl90b190b3AnKX0KCjwvZGl2Pgo=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_frontendform_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2NnZXJyb3J9eyRtZXNzYWdlfXsvY2dlcnJvcn0KeyRzdGFydGZvcm19CiAgICA8ZGl2IGNsYXNzPSJwYWdlcm93Ij4KICAgIDxkaXYgY2xhc3M9InJvd3RleHQiPnskbmFtZXRleHR9PC9kaXY+Cgk8ZGl2IGNsYXNzPSJyb3dpbnB1dCI+eyRpbnB1dG5hbWV9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGFnZXJvdyI+CgkJICAgPGRpdiBjbGFzcz0icm93dGV4dCI+eyRhZGRyZXNzdGV4dH08L2Rpdj4KCQkgICA8ZGl2IGNsYXNzPSJyb3dpbnB1dCI+eyRpbnB1dGFkZHJlc3N9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGFnZXJvdyI+CgkJICAgPGRpdiBjbGFzcz0icm93dGV4dCI+eyR0ZWxlcGhvbmV0ZXh0fTwvZGl2PgoJCSAgIDxkaXYgY2xhc3M9InJvd2lucHV0Ij57JGlucHV0dGVsZXBob25lfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhZ2Vyb3ciPgoJCSAgIDxkaXYgY2xhc3M9InJvd3RleHQiPnskZmF4dGV4dH08L2Rpdj4KCQkgICA8ZGl2IGNsYXNzPSJyb3dpbnB1dCI+eyRpbnB1dGZheH08L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlcm93Ij4KCQkgICA8ZGl2IGNsYXNzPSJyb3d0ZXh0Ij57JGVtYWlsdGV4dH08L2Rpdj4KCQkgICA8ZGl2IGNsYXNzPSJyb3dpbnB1dCI+eyRpbnB1dGVtYWlsfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhZ2Vyb3ciPgoJCSAgIDxkaXYgY2xhc3M9InJvd3RleHQiPnskd2Vic2l0ZXRleHR9PC9kaXY+CgkJICAgPGRpdiBjbGFzcz0icm93aW5wdXQiPnskaW5wdXR3ZWJzaXRlfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhZ2Vyb3ciPgoJCSAgIDxkaXYgY2xhc3M9InJvd3RleHQiPnskZGV0YWlsc3RleHR9PC9kaXY+CgkJICAgPGRpdiBjbGFzcz0icm93aW5wdXQiPnskaW5wdXRkZXRhaWxzfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhZ2Vyb3ciPgoJCSAgIDxkaXYgY2xhc3M9InJvd3RleHQiPnskaW1hZ2V0ZXh0fTwvZGl2PgoJCSAgIDxkaXYgY2xhc3M9InJvd2lucHV0Ij57JGltYWdlY3VycmVudH17JGltYWdlY3VycmVudGhpZGRlbn17JGltYWdldXBsb2FkfXskZGVsZXRldGV4dH17JGltYWdlY3VycmVudGRlbGV0ZX08L2Rpdj4KICAgICAgICA8L2Rpdj4KCSAgICB7aWYgJGN1c3RvbWZpZWxkc2NvdW50IGd0IDB9CgkJICAgIHtmb3JlYWNoIGZyb209JGN1c3RvbWZpZWxkcyBpdGVtPWN1c3RvbWZpZWxkfQoJCQk8ZGl2IGNsYXNzPSJwYWdlcm93Ij4KCQkJCTxwIGNsYXNzPSJyb3d0ZXh0Ij57JGN1c3RvbWZpZWxkLT5uYW1lfTo8L3A+CgkJCQk8cCBjbGFzcz0icm93aW5wdXQiPnskY3VzdG9tZmllbGQtPmlucHV0X2JveH08L3A+CgkJCTwvZGl2PgoJCSAgICB7L2ZvcmVhY2h9CiAgCSAgICB7L2lmfQogICAJICAgIHtpZiAkY2F0ZWdvcmllc2NvdW50IGd0IDB9CgkJICB7Zm9yZWFjaCBmcm9tPSRjYXRlZ29yaWVzIGl0ZW09Y2F0ZWdvcnl9CgkJCTxkaXYgY2xhc3M9InBhZ2Vvcm93Ij4KCQkJCTxwIGNsYXNzPSJyb3d0ZXh0Ij57JGNhdGVnb3J5LT5uYW1lfTo8L3A+CgkJCQk8cCBjbGFzcz0icm93aW5wdXQiPnskY2F0ZWdvcnktPmNoZWNrYm94fTwvcD4KCQkJPC9kaXY+CgkJICB7L2ZvcmVhY2h9CgkgICAgey9pZn0KCSAgICA8ZGl2IGNsYXNzPSJwYWdlcm93Ij4KCQkgIDxwIGNsYXNzPSJyb3d0ZXh0Ij4mbmJzcDs8L3A+CgkJICA8cCBjbGFzcz0icm93aW5wdXQiPnskaGlkZGVufXskc3VibWl0fXskY2FuY2VsfTwvcD4KCSAgICA8L2Rpdj4KICAgICAgeyRlbmRmb3JtfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_search_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogc2VhcmNoIHRlbXBsYXRlICp9CnsqIHZhbGlkIGZpZWxkcyBhcmU6CiAgIHskYWN0aW9uaWR9Y2Rfc3VibWl0ICAgIC0gKHN0cmluZykgZm9yIGEgc3VibWl0IGJ1dHRvbgogICB7JGFjdGlvbmlkfWNkX2NhbmNlbCAgICAtIChzdHJpbmcpIGZvciBhIGNhbmNlbCBidXR0b24KICAgeyRhY3Rpb25pZH1jZF9wcm9kbmFtZSAgLSAoc3RyaW5nKSBmb3IgdGV4dCBmaWVsZCB0byBzZWFyY2ggYWdhaW5zdCBwcm9kdWN0IG5hbWUKICAgeyRhY3Rpb25pZH1jZF9wcm9kZGVzYyAgLSAoc3RyaW5nKSBmb3IgdGV4dCBmaWVsZCB0byBzZWFyY2ggYWdhaW5zdCBwcm9kdWN0IGRlc2NyaXB0aW9uLgogICB7JGFjdGlvbmlkfWNkX3Byb2RwcmljZSAtIChzZWxlY3QpIGZvciBwcmljZSBzZWFyY2hpbmcuCiAgICAgb3B0aW9ucyBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nIHdpdGggaGlnaCBsb3cgbGltaXRzIHNlcGFyYXRlZCBieSBhIDoKICAgICBpLmU6ICAgMTAwMDoyMDAwCiAgICAgYSBzcGVjaWFsIHZhbHVlIG9mIC0xIGNhbiBiZSB1c2VkIHRvIGluZGljYXRlIGFueSBwcmljZS4KICAgeyRhY3Rpb25pZH1jZF9wcm9kcHJpY2VfbWluIC0gKHN0cmluZykgZm9yIG1pbmltdW0gcHJpY2UgdmFsdWUKICAgeyRhY3Rpb25pZH1jZF9wcm9kcHJpY2VfbWF4IC0gKHN0cmluZykgZm9yIG1pbmltdW0gcHJpY2UgdmFsdWUKICAgICBub3RlOiBpdCBpcyBwb3NzaWJsZSB0byBzcGVjaWZ5IG9ubHkgb25lIG9mIHByb2RwcmljZV9taW4gb3IgcHJvZHByaWNlX21heAogICAgIGlmIGVpdGhlciBwcm9kcHJpY2VfbWluIG9yIHByb2RwcmljZV9tYXggaXMgc3BlY2lmaWVkLCBwcm9kcHJpY2UgaXMgaWdub3JlZC4KICAgeyRhY3Rpb25pZH1jZF9hbGxhbnkgICAgLSAoaW50KSB0byBpbmRpY2F0ZSB3ZXRoZXIgYWxsIG9mIHRoZSAKICAgICBjb25kaXRpb25zIG11Y2ggbWF0Y2gsIG9yIGlmIGFueSBvbmUgb2YgdGhlbSBtYXkuCiAgIHskYWN0aW9uaWR9Y2RfcHJvZHZhbHVlIC0gKGFycmF5KSBmaWVsZCB2YWx1ZXMuCiAgIHskYWN0aW9uaWR9Y2RfcHJvZHZhbHVlXzxmbGRuYW1lPl9taW4gLSBNaW5pbXVtIHZhbHVlIHRvIHNlYXJjaCBmb3IgZm9yIGluIHRoZSA8ZmxkbmFtZT4gZmllbGQuCiAgIHskYWN0aW9uaWR9Y2RfcHJvZHZhbHVlXzxmbGRuYW1lPl9tYXggLSBNYXhpbXVtIHZhbHVlIHRvIHNlYXJjaCBmb3IgZm9yIGluIHRoZSA8ZmxkbmFtZT4gZmllbGQuCip9Cgo8ZGl2IGlkPSJwcm9kX3NlYXJjaGZvcm0iPgp7JGZvcm1zdGFydH0KCjxkaXYgY2xhc3M9InJvdyI+CiAgPHAgY2xhc3M9InJvd19wcm9tcHQiPnskbW9kLT5MYW5nKCdzZWFyY2hfZXhwcicpfTo8L3A+CiAgPHAgY2xhc3M9InJvd19pbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y2RfYWxsYW55Ij4KICAgICAgPG9wdGlvbiB2YWx1ZT0iMCI+eyRtb2QtPkxhbmcoJ2FsbCcpfTwvb3B0aW9uPgogICAgICA8b3B0aW9uIHZhbHVlPSIxIj57JG1vZC0+TGFuZygnYW55Jyl9PC9vcHRpb24+CiAgICA8L3NlbGVjdD4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icm93Ij4KICA8cCBjbGFzcz0icm93X3Byb21wdCI+eyRtb2QtPkxhbmcoJ3NlYXJjaF9uYW1lJyl9OjwvcD4KICA8cCBjbGFzcz0icm93X2lucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX3Byb2RuYW1lIiBzaXplPSI0MCIgbWF4bGVuZ3RoPSIyNTUiLz4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icm93Ij4KICA8cCBjbGFzcz0icm93X3Byb21wdCI+eyRtb2QtPkxhbmcoJ3NlYXJjaF9kZXNjcmlwdGlvbicpfTo8L3A+CiAgPHAgY2xhc3M9InJvd19pbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9wcm9kZGVzYyIgc2l6ZT0iNDAiIG1heGxlbmd0aD0iMjU1Ii8+CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InJvdyI+CiAgPHAgY2xhc3M9InJvd19wcm9tcHQiPnskbW9kLT5MYW5nKCdzZWFyY2hfcHJpY2UnKX06PC9wPgogIDxwIGNsYXNzPSJyb3dfaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWNkX3Byb2RwcmljZSI+CiAgICAgIDxvcHRpb24gdmFsdWU9Ii0xIj57JG1vZC0+TGFuZygnYW55Jyl9PC9vcHRpb24+CiAgICAgIDxvcHRpb24gdmFsdWU9IjA6OTkuOTkiPkxlc3MgVGhhbiAkMTAwPC9vcHRpb24+CiAgICAgIDxvcHRpb24gdmFsdWU9IjEwMDo5OTkuOTkiPiQxMDAgdG8gJDEwMDA8L29wdGlvbj4KICAgICAgPG9wdGlvbiB2YWx1ZT0iMTAwMDo5OTk5Ljk5Ij4kMTAwMCB0byAkMTAwMDA8L29wdGlvbj4KICAgICAgPG9wdGlvbiB2YWx1ZT0iMTAwMDA6OTk5OTk5OSI+R3JlYXRlciB0aGFuICQxMDAwMDwvb3B0aW9uPgogICAgPC9zZWxlY3Q+CiAgPC9wPgo8L2Rpdj4KCntpZiBpc3NldCgkc2VhcmNocHJvcHMpfQp7Zm9yZWFjaCBmcm9tPSRzZWFyY2hwcm9wcyBrZXk9J2ZsZG5hbWUnIGl0ZW09J29iaid9CjxkaXYgY2xhc3M9InJvdyI+CiAgPHAgY2xhc3M9InJvd19wcm9tcHQiPnskb2JqLT5wcm9tcHR9OjwvcD4KICA8cCBjbGFzcz0icm93X2lucHV0Ij4KICAgIHtpZiAkb2JqLT50eXBlID09ICd0ZXh0J30KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2RfcHJvZHZhbHVlW3skZmxkbmFtZX1dIiBzaXplPSI0MCIgbWF4bGVuZ3RoPSI0MCIvPgogICAge2Vsc2UgaWYgJG9iai0+dHlwZSA9PSAnZHJvcGRvd24nfQogICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y2RfcHJvZHZhbHVlW3skZmxkbmFtZX1dIj4KICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRvYmotPm9wdGlvbnN9CiAgICAgIDwvc2VsZWN0PgogICAgey9pZn0KICA8L3A+CjwvZGl2Pgp7L2ZvcmVhY2h9CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJyb3ciPgogIDxwIGNsYXNzPSJyb3dfcHJvbXB0Ij48L3A+CiAgPHAgY2xhc3M9InJvd19pbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX3N1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2RfY2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIvPgogIDwvcD4KPC9kaXY+CgoKeyRmb3JtZW5kfQo8L2Rpdj57KiBwcm9kX3NlYXJjaGZvcm0gKn0=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_summary_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRjYXRmb3Jtc3RhcnQpfQp7JGNhdGZvcm1zdGFydH0KeyRjYXRkcm9wZG93bn17JGNhdGJ1dHRvbn0KeyRjYXRmb3JtZW5kfQp7L2lmfQoKe2lmIGlzc2V0KCRwYWdlY291bnQpICYmICRwYWdlY291bnQgZ3QgMX0KeyRmaXJzdGxpbmt9Jm5ic3A7eyRwcmV2bGlua30mbmJzcDsmbmJzcDt7JHBhZ2V0ZXh0fSB7JGN1cnBhZ2V9IHskb2Z0ZXh0fSB7JHBhZ2Vjb3VudH0mbmJzcDsmbmJzcDt7JG5leHRsaW5rfSZuYnNwO3skbGFzdGxpbmt9CnsvaWZ9Cgp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQogICB7KiAKICAgICB0aGUgc3VtbWFyeSB0ZW1wbGF0ZSBoYXMgYWNjZXNzIHRvIGN1c3RvbSBmaWVsZHMgdmlhIHRoZSAkZW50cnktPmZpZWxkcyBoYXNoCiAgICAgYW5kIHRvIGNhdGVnb3JpZXMgdmlhIHRoZSAkZW50cnktPmNhdGVnb3JpZXMgYXJyYXkgb2Ygb2JqZWN0cy4gIEFsc28KICAgICBhdHRyaWJ1dGUgaW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlIHZpYSAkZW50cnktPmF0dHJpYnV0ZXMuCiAgICAgeW91IHNob3VsZCB1c2UgdGhlIGdldF90ZW1wbGF0ZV92YXJzIGFuZCB0aGUgcHJpbnRfciBtb2RpZmllciB0byBzZWUKICAgICB3aGF0IGlzIGF2YWlsYWJsZQogICAgKn0KICA8ZGl2IGNsYXNzPSJQcm9kdWN0RGlyZWN0b3J5SXRlbSI+CiAgICAgPGEgaHJlZj0ieyRlbnRyeS0+ZGV0YWlsX3VybH0iPnskZW50cnktPnByb2R1Y3RfbmFtZX08L2E+Jm5ic3A7KHskZW50cnktPndlaWdodH17JHdlaWdodF91bml0c30pJm5ic3A7Jm5ic3A7eyRjdXJyZW5jeV9zeW1ib2x9eyRlbnRyeS0+cHJpY2V9CiAgICAge2lmIGlzc2V0KCRlbnRyeS0+Y2F0ZWdvcmllcyl9CiAgICAgICBDYXRlZ29yaWVzOiZuYnNwOwogICAgICAge2ZvcmVhY2ggZnJvbT0kZW50cnktPmNhdGVnb3JpZXMgaXRlbT0nY2F0ZWdvcnknfQogICAgICAgICB7JGNhdGVnb3J5LT5uYW1lfSwmbmJzcDsKICAgICAgIHsvZm9yZWFjaH0KICAgICAgIDxici8+CiAgICAgey9pZn0gICAgIAogIDwvZGl2PgoKICB7KiBpbmNsdWRlIHRoZSBjYXJ0IAogIHtjZ2VfaGF2ZV9tb2R1bGUgbT0nQ0dFY29tbWVyY2VCYXNlJyBhc3NpZ249J3RtcCd9CiAge2lmICR0bXB9CiAgPGRpdj4KICB7Y2dlY29tbV9mb3JtX2FkZHRvY2FydCBwcm9kdWN0PSRlbnRyeS0+aWR9IAogIDwvZGl2PgogIHsvaWZ9CiAgKn0KCnsvZm9yZWFjaH0K]]></data>
	</file>
	<file>
	  <filename>/templates/prefs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19CjxmaWVsZHNldD4KPGxlZ2VuZD57JG1vZC0+TGFuZygnZ2VuZXJhbF9zZXR0aW5ncycpfTo8L2xlZ2VuZD4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfdXJscHJlZml4Jyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH11cmxwcmVmaXgiIHNpemU9IjIwIiBtYXhsZW5ndGg9IjIwIiB2YWx1ZT0ieyR1cmxwcmVmaXh9Ii8+PC9wPgo8L2Rpdj4Ke2lmIGlzc2V0KCRpbnB1dF9jdXJyZW5jeXN5bWJvbCl9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9jdXJyZW5jeXN5bWJvbH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfY3VycmVuY3lzeW1ib2x9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3dlaWdodHVuaXRzfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF93ZWlnaHR1bml0c308L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfbGVuZ3RodW5pdHN9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2xlbmd0aHVuaXRzfTwvcD4KPC9kaXY+CnsvaWZ9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXNldGVjb21oYW5kbGVycyIgdmFsdWU9InskbW9kLT5MYW5nKCdidG5fc2V0ZWNvbWhhbmRsZXJzJyl9Ii8+CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fc2V0ZWNvbWhhbmRsZXJzJyl9CiAgPC9wPgo8L2Rpdj4KPC9maWVsZHNldD4KCjxmaWVsZHNldD4KPGxlZ2VuZD57JG1vZC0+TGFuZygncHJvZHVjdF9lZGl0aW5nX3NldHRpbmdzJyl9OjwvbGVnZW5kPgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9za3VfcmVxdWlyZWQnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT0nc2t1cmVxdWlyZWQnIHNlbGVjdGVkPSRza3VyZXF1aXJlZH0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9kZWZhdWx0X3RheGFibGUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdGF4YWJsZX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9kZWZhdWx0X3N0YXR1cycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zdGF0dXN9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfYWxsb3dlZF9maWxldHlwZXN9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZGVsZXRlcHJvZHVjdGZpbGVzJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2RlbGV0ZXByb2R1Y3RmaWxlc308L3A+CjwvZGl2Pgo8L2ZpZWxkc2V0PgoKPGZpZWxkc2V0Pgo8bGVnZW5kPnskbW9kLT5MYW5nKCdwcm9kdWN0X3N1bW1hcnlfc2V0dGluZ3MnKX06PC9sZWdlbmQ+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X3N1bW1hcnlfbmV3ZGVmYXVsdCcpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPSdzdW1tYXJ5X25ld2RlZmF1bHQnIHNlbGVjdGVkPSRzdW1tYXJ5X25ld2RlZmF1bHR9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfc3VtbWFyeXBhZ2VsaW1pdCcpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1zdW1tYXJ5X3BhZ2VsaW1pdCIgc2l6ZT0iNSIgbWF4bGVuZ3RoPSI1IiB2YWx1ZT0ieyRzdW1tYXJ5X3BhZ2VsaW1pdH0iLz4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfc3VtbWFyeXNvcnRvcmRlcn06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc3VtbWFyeXNvcnRvcmRlcn08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfc3VtbWFyeXNvcnRpbmd9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3N1bW1hcnlzb3J0aW5nfTwvcD4KPC9kaXY+CjwvZmllbGRzZXQ+Cgo8ZmllbGRzZXQ+CjxsZWdlbmQ+eyRtb2QtPkxhbmcoJ3Byb2R1Y3RfZGV0YWlsX3NldHRpbmdzJyl9OjwvbGVnZW5kPgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF91c2VoaWVycGF0aHVybHMnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgeyRpbnB1dF91c2VoaWVycGF0aHVybHN9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2RldGFpbHBhZ2V9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2RldGFpbHBhZ2V9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfdXNlX2RldGFpbHBhZ2VfZm9yX3NlYXJjaCcpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+IAogICAgeyRpbnB1dF91c2VfZGV0YWlscGFnZV9mb3Jfc2VhcmNofQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X25vdGZvdW5kX2JlaGF2aW9yJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1wcm9kbm90Zm91bmQiPgogICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRub3Rmb3VuZF9vcHRzIHNlbGVjdGVkPSRwcm9kbm90Zm91bmR9CiAgICA8L3NlbGVjdD4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19wcm9kbm90Zm91bmQnKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9ub3Rmb3VuZF9wYWdlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHskaW5wdXRfcHJvZG5vdGZvdW5kcGFnZX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9ub3Rmb3VuZF9tc2cnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHRleHRhcmVhIG5hbWU9InskYWN0aW9uaWR9cHJvZG5vdGZvdW5kbXNnIiByb3dzPSI1Ij57JHByb2Rub3Rmb3VuZG1zZ308L3RleHRhcmVhPgogIDwvcD4KPC9kaXY+CjwvZmllbGRzZXQ+Cgo8ZmllbGRzZXQ+CjxsZWdlbmQ+eyRtb2QtPkxhbmcoJ2hpZXJhcmNoeV9zZXR0aW5ncycpfTo8L2xlZ2VuZD4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfaGllcnBhZ2UnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfaGllcnBhZ2V9PGJyLz4KICB7JG1vZC0+TGFuZygnaW5mb19oaWVycGFnZScpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X3ByZXR0eWhpZXJ1cmxzJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPSdwcmV0dHloaWVydXJscycgc2VsZWN0ZWQ9JHByZXR0eWhpZXJ1cmxzfTxici8+CiAgeyRtb2QtPkxhbmcoJ2luZm9fcHJldHR5aGllcnVybHMnKX0KICA8L3A+CjwvZGl2Pgo8L2ZpZWxkc2V0PgoKPGZpZWxkc2V0Pgo8bGVnZW5kPnskbW9kLT5MYW5nKCdpbWFnZV9oYW5kbGluZ19zZXR0aW5ncycpfTo8L2xlZ2VuZD4KPHAgc3R5bGU9ImNvbG9yOiByZWQ7Ij57JG1vZC0+TGFuZygnaW5mb19pbWFnZXN0dWZmX2RlcHJlY2F0ZWQnKX08L3A+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2FsbG93ZWRfaW1hZ2V0eXBlcycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9hbGxvd2VkX2ltYWdldHlwZXN9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfYXV0b3RodW1ibmFpbCcpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9hdXRvdGh1bWJuYWlsfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2F1dG90aHVtYm5haWxfc2l6ZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1hdXRvdGh1bWJuYWlsX3NpemUiIHNpemU9IjUiIG1heGxlbmd0aD0iNSIgdmFsdWU9InskYXV0b190aHVtYm5haWxfc2l6ZX0iLz4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9hdXRvcHJldmlld2ltZycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9hdXRvcHJldmlld2ltZ308L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9hdXRvcHJldmlld2ltZ19zaXplJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWF1dG9wcmV2aWV3aW1nX3NpemUiIHNpemU9IjUiIG1heGxlbmd0aD0iNSIgdmFsdWU9InskYXV0b19wcmV2aWV3aW1nX3NpemV9Ii8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfYXV0b3dhdGVybWFyaycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9hdXRvd2F0ZXJtYXJrfTxici8+eyRtb2QtPkxhbmcoJ2luZm9fYXV0b3dhdGVybWFyaycpfTwvcD4KPC9kaXY+CjwvZmllbGRzZXQ+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fTwvcD4KPC9kaXY+Cgp7JGVuZGZvcm19]]></data>
	</file>
	<file>
	  <filename>/templates/productlist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAkKKn0KCjxkaXYgaWQ9ImZpbHRlcmZvcm0iPgp7JGZvcm1zdGFydH0KPGZpZWxkc2V0IHN0eWxlPSJ3aWR0aDogNDklOyBmbG9hdDogbGVmdDsiPgogIDxsZWdlbmQ+eyRtb2QtPkxhbmcoJ2ZpbHRlcnMnKX06Jm5ic3A7PC9sZWdlbmQ+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2hpZXJhcmNoeScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2hpZXJhcmNoeX0mbmJzcDt7JG1vZC0+TGFuZygnaW5jbHVkZV9jaGlsZHJlbicpfSB7JGlucHV0X2NoaWxkcmVufTwvcD4KICA8L2Rpdj4KICB7aWYgaXNzZXQoJGNhdGVnb3J5X2xpc3QpfQogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdjYXRlZ29yeScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWNhdGVnb3JpZXNbXSIgbXVsdGlwbGU9Im11bHRpcGxlIiBzaXplPSI1Ij4KICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGNhdGVnb3J5X2xpc3Qgc2VsZWN0ZWQ9JGNhdGVnb3JpZXN9CiAgICAgIDwvc2VsZWN0PgogICAgPC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdleGNsdWRlX2NhdGVnb3JpZXMnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9leGNsdWRlY2F0c308L3A+CiAgPC9kaXY+CiAgey9pZn0KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnc29ydF9ieScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3NvcnRieX08L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3NvcnRfb3JkZXInKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zb3J0b3JkZXJ9PC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwYWdlX2xpbWl0Jyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfcGFnZWxpbWl0fTwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRtb2QtPkdldEFjdGlvbklkKCl9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSI+CiAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskbW9kLT5HZXRBY3Rpb25JZCgpfXJlc2V0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3Jlc2V0Jyl9Ij4KICAgIDwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4KPGZpZWxkc2V0IHN0eWxlPSJ3aWR0aDogNDclOyBmbG9hdDogcmlnaHQ7Ij4KICA8bGVnZW5kPnskbW9kLT5MYW5nKCd2aWV3Jyl9PC9sZWdlbmQ+CiAge2lmIGlzc2V0KCRmaWVsZHNfdmlld2FibGUpfQogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCd2aWV3YWJsZV9maWVsZHMnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21fZmllbGRzW10iIHNpemU9IjMiIG11bHRpcGxlPSJtdWx0aXBsZSI+CiAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kZmllbGRzX3ZpZXdhYmxlIHNlbGVjdGVkPSRjdXN0b21fZmllbGRzfQogICAgICA8L3NlbGVjdD4KICAgIDwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JG1vZC0+R2V0QWN0aW9uSWQoKX1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ij48L3A+CiAgPC9kaXY+CiAgey9pZn0KPC9maWVsZHNldD4KPGRpdiBzdHlsZT0iY2xlYXI6IGJvdGg7Ij48L2Rpdj4KeyRmb3JtZW5kfQo8L2Rpdj48IS0tIGZpbHRlcmZvcm0gLS0+CgoKPGRpdiBpZD0icHJvZHVjdGxpc3QiPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+e2xpdGVyYWx9CiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7CiAgJCgnI2ZpbHRlcmZvcm0nKS5oaWRlKCk7CiAgJCgnI2ZpbHRlcmJveCcpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICAkKCcjZmlsdGVyZm9ybScpLnRvZ2dsZSgpOwogIH0pOwogICQoJyNzZWxlY3RfYWxsX3Byb2R1Y3RzJykuY2xpY2soZnVuY3Rpb24oKXsKICAgIHZhciBjaGVja2VkID0gJCh0aGlzKS5hdHRyKCdjaGVja2VkJyk7CiAgICAkKCcubXVsdGlzZWxlY3QnKS5hdHRyKCdjaGVja2VkJyxjaGVja2VkKTsgCiAgfSk7CiAgJCgnI2J1bGthY3Rpb25fc3VibWl0JykuY2xpY2soZnVuY3Rpb24oKXsKICAgIHZhciBsZW4gPSAkKCcjcHJvZHVjdGxpc3QgdGJvZHkgaW5wdXQ6Y2hlY2tib3g6Y2hlY2tlZCcpLmxlbmd0aDsKICAgIGlmKCBsZW4gPT0gMCApCiAgICB7CiAgICAgIGFsZXJ0KCd7L2xpdGVyYWx9eyRtb2QtPkxhbmcoJ25vdGhpbmdfc2VsZWN0ZWQnKX17bGl0ZXJhbH0nKTsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogICAgcmV0dXJuIHRydWU7CiAgfSk7Cn0pOwp7L2xpdGVyYWx9PC9zY3JpcHQ+Cgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+CiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJmaWx0ZXJib3giIHZhbHVlPSIxIi8+PGxhYmVsIGZvcj0iZmlsdGVyYm94Ij57JG1vZC0+TGFuZygnZmlsdGVyJyl9e2lmICRmaWx0ZXJpbnVzZX0mbmJzcDs8ZW0+KHskbW9kLT5MYW5nKCdmaWx0ZXJpbnVzZScpfSk8L2VtPnsvaWZ9Jm5ic3A7PC9sYWJlbD4KIHskYWRkbGlua30mbmJzcDt7JGltcG9ydGxpbmt9CjwvZGl2Pgp7aWYgJGl0ZW1jb3VudCBndCAwfQogIHskZm9ybXN0YXJ0Mn0KICB7aWYgaXNzZXQoJGZpcnN0cGFnZV91cmwpfQogICAgPGEgaHJlZj0ieyRmaXJzdHBhZ2VfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdmaXJzdHBhZ2UnKX0iPnskbW9kLT5MYW5nKCdmaXJzdHBhZ2UnKX08L2E+CiAgICA8YSBocmVmPSJ7JHByZXZwYWdlX3VybH0iIHRpdGxlPSJ7JG1vZC0+TGFuZygncHJldnBhZ2UnKX0iPnskbW9kLT5MYW5nKCdwcmV2cGFnZScpfTwvYT4KICB7L2lmfQogIHtpZiBpc3NldCgkZmlyc3RwYWdlX3VybCkgfHwgaXNzZXQoJGxhc3RwYWdlX3VybCl9CiAgICB7JG1vZC0+TGFuZygncGFnZV9vZicsJHBhZ2VudW1iZXIsJHBhZ2Vjb3VudCl9CiAgey9pZn0KICB7aWYgaXNzZXQoJGxhc3RwYWdlX3VybCl9CiAgICA8YSBocmVmPSJ7JG5leHRwYWdlX3VybH0iIHRpdGxlPSJ7JG1vZC0+TGFuZygnbmV4dHBhZ2UnKX0iPnskbW9kLT5MYW5nKCduZXh0cGFnZScpfTwvYT4KICAgIDxhIGhyZWY9InskbGFzdHBhZ2VfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdsYXN0cGFnZScpfSI+eyRtb2QtPkxhbmcoJ2xhc3RwYWdlJyl9PC9hPgogIHsvaWZ9CiAgPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIGNtc19zb3J0YWJsZSB0YWJsZXNvcnRlciI+CiAgICA8dGhlYWQ+CiAgICAgIDx0cj4KCTx0aD57JGlkdGV4dH08L3RoPgoJPHRoPnskcHJvZHVjdHRleHR9PC90aD4KICAgICAgICA8dGg+eyRtb2QtPkxhbmcoJ3NrdScpfTwvdGg+Cgk8dGg+eyRwcmljZXRleHR9PC90aD4KCTx0aD57JHdlaWdodHRleHR9ICh7JHdlaWdodF91bml0c30pPC90aD4KCTx0aD57JG1vZC0+TGFuZygnc3RhdHVzJyl9PC90aD4KCTx0aD57JG1vZC0+TGFuZygnbGFzdF9tb2RpZmllZCcpfTwvdGg+CiAgICAgICAge2lmIGlzc2V0KCRjdXN0b21fZmllbGRzKX0KICAgICAgICAgIHtmb3JlYWNoIGZyb209JGN1c3RvbV9maWVsZHMgaXRlbT0nZmlkJ30KICAgICAgICAgICAgPHRoPnskZmllbGRzX3ZpZXdhYmxlLiRmaWR9PC90aD4KICAgICAgICAgIHsvZm9yZWFjaH0KICAgICAgICB7L2lmfQoJPHRoIGNsYXNzPSJwYWdlaWNvbiB7bGl0ZXJhbH17c29ydGVyOiBmYWxzZX17L2xpdGVyYWx9Ij4mbmJzcDs8L3RoPgoJPHRoIGNsYXNzPSJwYWdlaWNvbiB7bGl0ZXJhbH17c29ydGVyOiBmYWxzZX17L2xpdGVyYWx9Ij4mbmJzcDs8L3RoPgoJPHRoIGNsYXNzPSJwYWdlaWNvbiB7bGl0ZXJhbH17c29ydGVyOiBmYWxzZX17L2xpdGVyYWx9Ij4mbmJzcDs8L3RoPgoJPHRoIGNsYXNzPSJwYWdlaWNvbiB7bGl0ZXJhbH17c29ydGVyOiBmYWxzZX17L2xpdGVyYWx9Ij4mbmJzcDs8L3RoPgogICAgICAgIDx0aCBjbGFzcz0icGFnZWljb24ge2xpdGVyYWx9e3NvcnRlcjogZmFsc2V9ey9saXRlcmFsfSI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ3NlbGVjdF9hbGwnKX0iIHZhbHVlPSIxIiBuYW1lPSJzZWxlY3RfYWxsIiBpZD0ic2VsZWN0X2FsbF9wcm9kdWN0cyI+PC90aD4KICAgICAgPC90cj4KICAgIDwvdGhlYWQ+CiAgICA8dGJvZHk+CiAgICAgIHtmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9Cgl7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIiIGFzc2lnbj0ncm93Y2xhc3MnfQoJPHRyPgoJPHRkPnskZW50cnkuaWR9PC90ZD4KCTx0ZD48YSBocmVmPSJ7JGVudHJ5LmVkaXRfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0Jyl9Ij57JGVudHJ5LnByb2R1Y3RfbmFtZX08L2E+PC90ZD4KCTx0ZD57JGVudHJ5LnNrdX08L3RkPgoJPHRkPnskZW50cnkucHJpY2V8bnVtYmVyX2Zvcm1hdDoyfTwvdGQ+CiAgICAgICAgPHRkPnskZW50cnkud2VpZ2h0fG51bWJlcl9mb3JtYXQ6Mn08L3RkPgoJPHRkPnskbW9kLT5MYW5nKCRlbnRyeS5zdGF0dXMpfTwvdGQ+Cgk8dGQ+eyRlbnRyeS5tb2RpZmllZF9kYXRlfGNtc19kYXRlX2Zvcm1hdH08L3RkPgogICAgICAgIHtpZiBpc3NldCgkY3VzdG9tX2ZpZWxkcykgJiYgY291bnQoJGN1c3RvbV9maWVsZHMpfQogICAgICAgICAge2ZvcmVhY2ggZnJvbT0kY3VzdG9tX2ZpZWxkcyBpdGVtPSdmaWQnfQogICAgICAgICAgICA8dGQ+e2NhcHR1cmUgYXNzaWduPSd0bXAnfXskZmllbGRfbmFtZXMuJGZpZH17L2NhcHR1cmV9CiAgICAgICAgICAgICAgeyRlbnRyeS4kdG1wfTwvdGQ+CiAgICAgICAgICB7L2ZvcmVhY2h9CiAgICAgICAgey9pZn0KCTx0ZD57JGVudHJ5LmF0dHJpYnNsaW5rfTwvdGQ+Cgk8dGQ+eyRlbnRyeS5lZGl0bGlua308L3RkPgoJPHRkPnskZW50cnkuY29weWxpbmt9PC90ZD4KCTx0ZD57JGVudHJ5LmRlbGV0ZWxpbmt9PC90ZD4gCiAgICAgICAgPHRkPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9Im11bHRpc2VsZWN0IiBuYW1lPSJ7JGFjdGlvbmlkfW11bHRpc2VsZWN0W10iIHZhbHVlPSJ7JGVudHJ5LmlkfSI+PC90ZD4KICAgICAgICA8L3RyPgogICAgICB7L2ZvcmVhY2h9CiAgICA8L3Rib2R5PgogIDwvdGFibGU+CgogIDxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIiBzdHlsZT0iaGVpZ2h0OiAyZW07Ij4KICAgIDxkaXYgc3R5bGU9IndpZHRoOiA0MCU7IGZsb2F0OiBsZWZ0OyBtYXJnaW4tdG9wOiAwLjVlbTsiPgogICAgICB7JGFkZGxpbmt9Jm5ic3A7eyRpbXBvcnRsaW5rfXtpZiAkaXRlbWNvdW50IGd0IDB9Jm5ic3A7eyRleHBvcnRsaW5rfXsvaWZ9CiAgICA8L2Rpdj4KICAgIHtpZiAkaXRlbWNvdW50IGd0IDB9CiAgICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyB3aWR0aDogNDAlOyBmbG9hdDogcmlnaHQ7IG1hcmdpbi10b3A6IDAuNWVtOyBtYXJnaW4tYm90dG9tOiAwLjVlbTsiPgogICAgICAgIHskbW9kLT5MYW5nKCd3aXRoX3NlbGVjdGVkJyl9OgogICAgICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1idWxrYWN0aW9uIj57aHRtbF9vcHRpb25zIG9wdGlvbnM9JGJ1bGthY3Rpb25zfTwvc2VsZWN0PgogICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIGlkPSJidWxrYWN0aW9uX3N1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnZ28nKX0iLz4KICAgICAgPC9kaXY+CiAgICB7L2lmfQogIDwvZGl2Pgp7JGZvcm1lbmQyfQp7L2lmfQo8L2Rpdj48IS0tIHByb2R1Y3RsaXN0IC0tPgo=]]></data>
	</file>
	<file>
	  <filename>/test_import.csv</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[I0ZMQUd8I25hbWV8I3NrdXwjZGV0YWlsc3wjcHJpY2V8I2NyZWF0ZV9kYXRlfCNtb2RpZmllZF9kYXRlfCN0YXhhYmxlfCNzdGF0dXN8I3dlaWdodHwjSElFUnwjQ0FUOm5ld3wjQ0FUOnN1cnBsdXN8I0ZJRUxEOmltYWdlOkltYWdlfCNGSUVMRDp0ZXh0YXJlYTpOb3Rlc3wjQVRUUklCUwpQfFB1cHRlbnR8MTIzNHB8InRoaXMgaXMgYSB0d28gbWFuIHB1cCB0ZW50InwxNC45OXwyMDA5LTAxLTAxfDIwMDktMDEtMDF8MXxwdWJsaXNoZWR8Mi4yNXwiT3V0ZG9vcnMgPj4gQ2FtcGluZyJ8MXwwfHB1cHRlbnQucG5nfCJ0aGlzIGlzIGF1eGlsbGFyeSBkYXRhIGFib3V0IHRoZSBwdXAgdGVudCJ8Q29sb3I6UmVkOisyLjU6MTIzNHAtciAtLSBDb2xvcjpHcmVlbjorNC41OjEyMzRwLWcKUHwiRmFtaWx5IFRlbnQifDEyMzVmfCJ0aGlzIGlzIGEgZmFtaWx5IHRlbnQifDQzLjc0fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBUZW50cyJ8MHwxfGJpZ3RlbnQucG5nfCJ0aGlzIGlzIGF1eGlsbGFyeSBkYXRhIGFib3V0IHRoZSBmYW1pbHkgdGVudCJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCAyInx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCAzInx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA0Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA1Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA2Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA3Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA4Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA5Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCAxMCJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgMTEifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDEyInx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCAxMyJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgMTQifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDE1Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCAxNiJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgMTcifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDE4Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCAxOSJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgMjAifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDIxInx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCAyMiJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgMjMifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDI0Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCAyNSJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgMjYifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDI3Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCAyOCJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgMjkifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDMwInx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCAzMSJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgMzIifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDMzInx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCAzNCJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgMzUifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDM2Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCAzNyJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgMzgifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDM5Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA0MCJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgNDEifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDQyInx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA0MyJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgNDQifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDQ1Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA0NiJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgNDcifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDQ4Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA0OSJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgNTAifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDUxInx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA1MiJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgNTMifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDU0Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA1NSJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgNTYifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDU3Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA1OCJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgNTkifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDYwInx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA2MSJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgNjIifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDYzInx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA2NCJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgNjUifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDY2Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA2NyJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgNjgifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDY5Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA3MCJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgNzEifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDcyInx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA3MyJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgNzQifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDc1Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA3NiJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgNzcifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDc4Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA3OSJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgODAifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDgxInx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA4MiJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgODMifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDg0Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA4NSJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgODYifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDg3Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA4OCJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgODkifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDkwInx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA5MSJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgOTIifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDkzInx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA5NCJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMgT2xkZXIifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgOTUifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDk2Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCA5NyJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMgT2xkZXIifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgOTgifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDk5Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCAxMDAifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzIE9sZGVyInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDEwMSJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgMTAyInx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyJ8MHwxClB8IkZhbWlseSBUZW50IDEwMyJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MQpQfCJGYW1pbHkgVGVudCAxMDQifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzIE9sZGVyInwwfDEKUHwiRmFtaWx5IFRlbnQgMTA1Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyJ8MApQfCJGYW1pbHkgVGVudCAxMDYifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDEwNyJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgMTA4Inx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCAxMDkifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInwwfDF8YmlndGVudC5wbmd8ImJvdWdodCB0aGVzZSBhdCBhbiBhdWN0aW9uIHNhbGUsIHBhc3NpbmcgdGhlIHNhdmluZ3Mgb24gdG8geW91InxDb2xvcjpCbHVlOisyLjU6MTIzNWYtYiAtLSBDb2xvcjpSZWQ6KzMuNToxMjM1Zi1yClB8IkZhbWlseSBUZW50IDExMCJ8fCJsYXN0IHllYXJzIG1vZGVsLCByZWFkeSBmb3Igc2FsZSJ8MjMuOTl8MjAwOS0wMi0wMnwyMDA5LTAyLTAyfDF8cHVibGlzaGVkfDUuMzV8Ik91dGRvb3JzID4+IFN1cnBsdXMifDB8MXxiaWd0ZW50LnBuZ3wiYm91Z2h0IHRoZXNlIGF0IGFuIGF1Y3Rpb24gc2FsZSwgcGFzc2luZyB0aGUgc2F2aW5ncyBvbiB0byB5b3UifENvbG9yOkJsdWU6KzIuNToxMjM1Zi1iIC0tIENvbG9yOlJlZDorMy41OjEyMzVmLXIKUHwiRmFtaWx5IFRlbnQgMTExInx8Imxhc3QgeWVhcnMgbW9kZWwsIHJlYWR5IGZvciBzYWxlInwyMy45OXwyMDA5LTAyLTAyfDIwMDktMDItMDJ8MXxwdWJsaXNoZWR8NS4zNXwiT3V0ZG9vcnMgPj4gU3VycGx1cyBPbGRlciJ8MHwxfGJpZ3RlbnQucG5nfCJib3VnaHQgdGhlc2UgYXQgYW4gYXVjdGlvbiBzYWxlLCBwYXNzaW5nIHRoZSBzYXZpbmdzIG9uIHRvIHlvdSJ8Q29sb3I6Qmx1ZTorMi41OjEyMzVmLWIgLS0gQ29sb3I6UmVkOiszLjU6MTIzNWYtcgpQfCJGYW1pbHkgVGVudCAxMTIifHwibGFzdCB5ZWFycyBtb2RlbCwgcmVhZHkgZm9yIHNhbGUifDIzLjk5fDIwMDktMDItMDJ8MjAwOS0wMi0wMnwxfHB1Ymxpc2hlZHw1LjM1fCJPdXRkb29ycyA+PiBTdXJwbHVzInww]]></data>
	</file>
</module>
