<?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>MAMSRegistration</name>
	<version>1.1.0</version>
    <mincmsversion>2.2.5</mincmsversion>
	<help><![CDATA[PHNjcmlwdCBzcmM9Imh0dHBzOi8vbG9jYWxob3N0L0NNU01TLURFVi0yMDI1LU1PRFMvbW9kdWxlcy9NQU1TUmVnaXN0cmF0aW9uL2pzL2pzLmNvb2tpZS5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQ+CiAgalF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogICAgdmFyIGFjdGl2ZV90YWIgPSBDb29raWVzLmdldCgnbWFtc3JlZ190YWJfYWN0aXZlJyk7CgogICAgaWYodHlwZW9mIGFjdGl2ZV90YWIgPT09ICJ1bmRlZmluZWQiKQogICAgewogICAgICBfc2V0X2FjdGl2ZV90YWIoJ2dlbmVyYWwnKTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgX3NldF9hY3RpdmVfdGFiKGFjdGl2ZV90YWIpOwogICAgfQoKICAgICQoJyNwYWdlX3RhYnMgPiBkaXYnKQogICAgICAuZWFjaChmdW5jdGlvbigpCiAgICAgIHsKICAgICAgICAkKHRoaXMpLmNsaWNrKGZ1bmN0aW9uKCkKICAgICAgICB7CiAgICAgICAgICBDb29raWVzLnNldCgnbWFtc3JlZ190YWJfYWN0aXZlJywgdGhpcy5pZCk7CiAgICAgICAgfSk7CiAgICAgIH0pOwogIH0pOwoKICBmdW5jdGlvbiBfc2V0X2FjdGl2ZV90YWIodGFiX25hbWUpCiAgewogICAgJCgnI3BhZ2VfdGFicyA+IGRpdicpCiAgICAgIC5lYWNoKGZ1bmN0aW9uKCkKICAgICAgewogICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpOwogICAgICB9KTsKCiAgICAkKCcjcGFnZV9jb250ZW50ID4gZGl2JykKICAgICAgLmVhY2goZnVuY3Rpb24oKQogICAgICB7CiAgICAgICAgJCh0aGlzKS5oaWRlKCk7CiAgICAgIH0pOwoKICAgICQoJyMnICsgdGFiX25hbWUpLmFkZENsYXNzKCdhY3RpdmUnKTsKICAgICQoJyMnICsgdGFiX25hbWUgKyAnX2MnKS5zaG93KCk7CiAgICBDb29raWVzLnNldCgnbWFtc3JlZ190YWJfYWN0aXZlJywgdGFiX25hbWUpOwogIH0KPC9zY3JpcHQ+Cgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHNjb3BlZD4KaDV7CiAgICBtYXJnaW4tdG9wOiAwLjc1ZW07CiAgICBtYXJnaW4tYm90dG9tOiAwLjc1ZW07CiAgfQogIGxpLnRvcCB7CiAgICBtYXJnaW4tYm90dG9tOiAxZW07CiAgfQogIGNvZGUudGFnIHsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGNvbG9yOiBncmVlbjsKICB9Cjwvc3R5bGU+Cgo8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+Cgo8ZGl2IGlkPSJwYWdlX3RhYnMiPgoKICA8ZGl2ICBpZD0iZ2VuZXJhbCI+CiAgICBHZW5lcmFsCiAgPC9kaXY+CiAgPGRpdiBpZD0idXNpbmciPgogICAgSG93IERvIEkgVXNlIEl0CiAgPC9kaXY+CiAgPGRpdiBpZD0icGFyYW1zIj4KICAgIFBhcmFtZXRlcnMKICA8L2Rpdj4KICA8ZGl2IGlkPSJob29rcyI+CiAgICBIb29rcwogIDwvZGl2PgogIDxkaXYgaWQ9ImFib3V0Ij4KICAgIEFib3V0CiAgPC9kaXY+Cgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNsZWFyYiI+PC9kaXY+CjxkaXYgaWQ9InBhZ2VfY29udGVudCI+CgogIDxkaXYgaWQ9ImdlbmVyYWxfYyI+CiAgICA8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KPHA+VGhpcyBtb2R1bGUgaXMgZGVzaWduZWQgdG8gYWxsb3cgc2l0ZSB2aXNpdG9ycyB0byBjcmVhdGUgYW4gYWNjb3VudCB0byB5b3VyIHdlYnNpdGUgYnkgZmlsbGluZyBpbiB0aGVpciBvd24gcGVyc29uYWwgZGV0YWlscy4gIFRoaXMgbW9kdWxlIHdvcmtzIGluIGNvbmp1bmN0aW9uIHdpdGggPHN0cm9uZz5NQU1TPC9zdHJvbmc+ICg8c3Ryb25nPjxpPk1lbWJlcnMgQXJlYSBNYWRlIFNpbXBsZTwvaT48L3N0cm9uZz4pIG1vZHVsZS48L3A+CjxoND5GZWF0dXJlczo8L2g0Pgo8dWw+CiAgPGxpPlN1cHBvcnRzIHNlbmRpbmcgYSBjb25maXJtYXRpb24gZW1haWwgKHdpdGggYSB1bmlxdWVseSBnZW5lcmF0ZWQgY29kZSkgdG8gdmVyaWZ5IHVzZXIgaW5mb3JtYXRpb247PC9saT4KICA8bGk+SGFuZGxlcyB0aGUgY2FzZSB3aGVyZSB1c2VycyBoYXZlIGF0dGVtcHRlZCB0byByZWdpc3RlciwgYnV0IGxvc3Qgb3IgZGlkIG5vdCByZWNlaXZlIHRoZSBjb25maXJtYXRpb24gZW1haWwuPC9saT4KICA8bGk+SGFuZGxlcyByZWdpc3RlcmluZyB0aGUgdXNlciBhbmQgYWRkaW5nIHRoZW0gdG8gPHN0cm9uZz5NQU1TPC9zdHJvbmc+IGRpcmVjdGx5LjwvbGk+CiAgPGxpPkhhbmRsZXMgYXV0b21hdGljYWxseSBub3RpZnlpbmcgYW4gYWRtaW4gd2hlbiBzb21lb25lIHJlZ2lzdGVycy48L2xpPgogIDxsaT5IYW5kbGVzIGFkdmFuY2VkIHNlY3VyaXR5PC9saT4KICA8bGk+U3VwcG9ydHMgY2FwdGNoYTwvbGk+CiAgPGxpPlN1cHBvcnRzIGFsbG93aW5nIGEgdXNlciB0byByZWdpc3RlciB0byBhbiBhZGRpdGlvbmFsIGdyb3VwLjwvbGk+CjwvdWw+ICA8L2Rpdj4KICA8ZGl2IGlkPSJ1c2luZ19jIj4KICAgIDxoMz5Ib3cgRG8gSSBVc2UgSXQ/PC9oMz4KPGg0Pk5vcm1hbCBSZWdpc3RyYXRpb248L2g0Pgo8dWw+CiAgPGxpPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyBtb2R1bGUgcmVxdWlyZXMgdGhhdCB0aGUgPHN0cm9uZz5NQU1TPC9zdHJvbmc+ICg8c3Ryb25nPjxpPk1lbWJlcnMgQXJlYSBNYWRlIFNpbXBsZTwvaT48L3N0cm9uZz4pIG1vZHVsZSBiZSBwcm9wZXJseSBpbnN0YWxsZWQgYW5kIGNvbmZpZ3VyZWQuPC9saT4KICA8bGk+UGxhY2UgYSB0YWcgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nIG9uIGEgY29udGVudCBwYWdlOgogICAgIDxjb2RlPiZsYnJhY2U7TUFNU1JlZ2lzdHJhdGlvbiBncm91cD1hZ3JvdXBuYW1lfTwvY29kZT4KICAgICA8cD48Y29kZT5hZ3JvdXBuYW1lPC9jb2RlPiBpcyBhIGdyb3VwIG5hbWUgdGhhdCBleGlzdHMgYW5kIGhhcyBiZWVuIGNvbmZpZ3VyZWQgaW4gdGhlIDxzdHJvbmc+TUFNUzwvc3Ryb25nPiBtb2R1bGUuPC9wPgogIDwvbGk+CjwvdWw+CjxoND5BbGxvd2luZyBhIHVzZXIgdG8gcmVnaXN0ZXIgZm9yIGFub3RoZXIgZ3JvdXAuPC9oND4KPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiB0aGUgcmVnaXN0ZXIgZm9yIGFub3RoZXIgZ3JvdXAgYWN0aW9uIHJlcXVpcmVzIHRoYXQgYSB1c2VyIGJlIGxvZ2dlZCBpbiB0byA8c3Ryb25nPk1BTVM8L3N0cm9uZz4gdG8gdXRpbGl6ZSB0aGlzIGFjdGlvbi4gIElmIHRoZSB1c2VyIGlzIGFscmVhZHkgYSBtZW1iZXIgb2YgdGhlIHNlbGVjdGVkIGdyb3VwKHMpIG9yIGFub3RoZXIgZXJyb3Igb2NjdXJzIG5vIG91dHB1dCB3aWxsIGJlIGRpc3BsYXllZC48L3A+CjxwPlRvIGFsbG93IGEgdXNlciB0byByZWdpc3RlciBmb3IgYW5vdGhlciBncm91cCBmb2xsb3cgdGhlc2Ugc3RlcHM6PC9wPgo8dWw+CiAgPGxpPkVuYWJsZSB0aGUgb3B0aW9uIGluIHRoZSBNQU1TUmVnaXN0cmF0aW9uIG1vZHVsZSBzZXR0aW5ncy48L2xpPgogIDxsaT5BZGQgYSBjYWxsIHN1Y2ggYXMgPGNvZGU+JmxicmFjZTtNQU1TUmVnaXN0cmF0aW9uIGFjdGlvbj1hbm90aGVyZ3JvdXAgZ3JvdXA9b3RoZXJncm91cG5hbWV9PC9jb2RlPiB0byBhIGNvbnRlbnQgcGFnZS4KPC9saT48L3VsPgoKICA8L2Rpdj4KICA8ZGl2IGlkPSJwYXJhbXNfYyI+CiAgICA8aDM+UGFyYW1ldGVyczwvaDM+Cjx1bD4KPGxpPgogIDxlbT4ob3B0aW9uYWwpPC9lbT4gYWN0aW9uPSJkZWZhdWx0IiAtIFRoaXMgcGFyYW1ldGVyIGRpY3RhdGVzIHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4KICA8dWw+CiAgICA8bGk+CiAgICAgIDxzdHJvbmc+ZGVmYXVsdDwvc3Ryb25nPgogICAgICA8cD5UaGlzIGlzIHRoZSBkZWZhdWx0IGFjdGlvbi4gIEJhc2VkIG9uIHRoZSA8ZW0+KGRlcHJlY2F0ZWQmZ3Q7PC9lbT4gbW9kZSBwYXJhbWV0ZXIgPGVtPihzZWUgYmVsb3cpPC9lbT4gaXQgd2lsbCBkaXNwbGF5IGVpdGhlciB0aGUgdXNlciByZWdpc3RyYXRpb24gZm9ybSwgdGhlIHZlcmlmeSBmb3JtLCBvciBhbm90aGVyIGZvcm0uPC9wPgogICAgPC9saT4KICAgIDxsaT4KICAgICAgcmVnaXN0ZXJfbGluawogICAgICA8cD5EaXNwbGF5IGEgbGluayB0byB0aGUgdXNlciByZWdpc3RyYXRpb24gZm9ybS4gPGVtPihkZXByZWNhdGVkKTwvZW0+PC9wPgogICAgPC9saT4KICAgIDxsaT5hbm90aGVyZ3JvdXAgLSBGb3IgdXNlcnMgd2hvIGFyZSBsb2dnZWQgaW4gdG8gdGhlIE1BTVMgbW9kdWxlLCB0aGlzIGFjdGlvbiBhbGxvd3MgdGhlbSAoc3ViamVjdCB0byBwZXJtaXNzaW9uKSB0byBzaWduIHVwIHRvIGFub3RoZXIgbmFtZWQgTUFNUyBncm91cC48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGRlc3RwYWdlPSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBhY3Rpb249cmVnaXN0ZXJfbGluaywgYW5kIHRoZSBkZWZhdWx0IGFjdGlvbi4gdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgKGJ5IGFsaWFzIG9yIHBhZ2UgaWQpIGEgZGVzdGluYXRpb24gcGFnZSBmb3IgdGhlIGxpbmsgb3IgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgcmVnaXN0cmF0aW9uIGlzIGNvbXBsZXRlLjwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGdyb3VwPSIiIC0gQXBwbGljYWJsZSB0byAoYW5kIHJlcXVpcmVkIGZvcikgdGhlIHJlZ2lzdGVyX2xpbmssIHJlZ2lzdGVyLCBvciBhbm90aGVyZ3JvdXAgYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBncm91cCBpbiB3aGljaCB0aGUgdXNlciB3aWxsIGJlIHJlZ2lzdGVyZWQ8L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBvbmx5aHJlZj0iIiAtIFVzZWQgb25seSBpbiB0aGUgYWN0aW9uPXJlZ2lzdGVyX2xpbmssIHNldHRpbmcgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoYXQgdGhlIG91dHB1dCBzaG91bGQgb25seSBjb250YWluIHRoZSB1cmwgcG9ydGlvbiBvZiB0aGUgbGluazwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGxpbmt0ZXh0PSIiIC0gVXNlZCBvbmx5IGluIHRoZSBhY3Rpb25fcmVnaXN0ZXJfbGluayBpdCBhbGxvd3Mgc3BlY2lmeWluZyB0aGUgdGV4dCBmb3IgdGhlIGdlbmVyYXRlZCBsaW5rLiAgVGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBpZiB0aGUgb25seWhyZWYgcGFyYW1ldGVyIGlzIHNwZWNpZmllZC48L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub2lubGluZT0iIiAtIEFwcGxpY2FibGUgdG8gbWFueSBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBvdmVycmlkZXMgdGhlIHByZWZlcmVuY2UgaW4gdGhlIGFkbWluIHBhbmVsIHRvIGluZGljYXRlIHRoYXQgdGhlIG91dHB1dCBmcm9tIHRoZSBnZW5lcmF0ZWQgbGluayBvciBmb3JtIHNob3VsZCBub3QgYmUgZGlzcGxheWVkIGlubGluZS4gIGkuZTogbm9pbmxpbmU9MSBvbiB0aGUgZGVmYXVsdCBhY3Rpb24gd2lsbCBpbmRpY2F0ZSB0aGF0IHRoZSBvdXRwdXQgdGV4dCB3aWxsIHJlcGxhY2UgdGhlICZsYnJhY2U7Y29udGVudH0gdGFnLjwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGFsbG93b3ZlcndyaXRlPSIiIC0gVGhpcyBwYXJhbWV0ZXIgYWxsb3dzIG92ZXJ3cml0aW5nIGV4aXN0aW5nIE1BTVMgdXNlcnMuIEluIGNvbmp1bmN0aW9uIHdpdGggdGhlIHByZWZlcmVuY2VzIGluIHRoZSBTZWxmUmVnaXN0cmF0aW9uIGFkbWluIHBhbmVsIHlvdSBjYW4gc3BlY2lmeSB3aGF0IGRhdGEgd2lsbCBiZSB1c2VkIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IGEgdXNlciBhY2NvdW50Jzs8L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub2ZpbmFsbWVzc2FnZT0iIiAtIEFwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCwgc2lnbnVwIGFjdGlvbi4gVGhpcyBwYXJhbWV0ZXIgYWxsb3dzIGluZGljYXRpbmcgdGhhdCB0aGUgZmluYWwgcmVnaXN0cmF0aW9uIGNvbmZpcm1hdGlvbiBtZXNzYWdlIHNob3VsZCBub3QgYmUgZGlzcGxheWVkLjwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHZlcmlmeXRlbXBsYXRlPSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSB2ZXJpZnkgYWN0aW9uIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIHRoZSBuYW1lIG9mIGEgbm9uLWRlZmF1bHQgdGVtcGxhdGUgdG8gdXNlLjwvbGk+CiAgPC9kaXY+CiAgPGRpdiBpZD0iaG9va3NfYyI+CiAgICA8aDM+SG9va3M8L2gzPgo8cD5UaGlzIG1vZHVsZSB1c2VzIEV2ZW50cyBhbmQgSG9va3MgdG8gdGllIGluIGV4dGVybmFsIGZ1bmN0aW9uYWxpdHkuICBUaGUgZm9sbG93aW5nIGhvb2tzIGFyZSBhdmFpbGFibGU6PC9wPgo8dWw+CiAgIDxsaT48Y29kZT5NQU1TUmVnaXN0cmF0aW9uOjpiZWZvcmVOZXdVc2VyPC9jb2RlPiAtIENhbGxlZCBiZWZvcmUgYSBuZXcgdGVtcG9yYXJ5IHVzZXIgaXMgY3JlYXRlZCBpbiB0aGUgZGF0YWJhc2UuCiAgICAgICA8cD5UaGlzIGhvb2sgaXMgY2FsbGVkIGZyb20gdGhlIHJlZ2lzdHJhdGlvbiBmb3JtIHByb2Nlc3NpbmcsIGFmdGVyIHZhbGlkYXRpbmcgYWxsIHVzZXIgaW5mb3JtYXRpb24sIGJ1dCBiZWZvcmUgYWRkaW5nIHRoZSB0ZW1wb3JhcnkgdXNlciBpbmZvcm1hdGlvbi4gIEl0IGNhbiBiZSB1c2VkIHRvIHBlcmZvcm0gZnVydGhlciB2YWxpZGF0aW9ucyBvbiB0aGUgcmVnaXN0cmF0aW9uIGluZm9ybWF0aW9uLjwvcD4KICAgICAgIDxwPkhhbmRsZXJzIHRoYXQgYXJlIHVzaW5nIHRoaXMgaG9vayBjYW4gdGhyb3cgdGhlIDxjb2RlPk1BTVNSRUdWYWxpZGF0aW9uRXJyb3I8L2NvZGU+IEV4Y2VwdGlvbiBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgogICAgICAgPHA+UGFyYW1ldGVyczogLSBUaGUgaG9vayBoYW5kbGVyIHNob3VsZCBhY2NlcHQgYSBzaW5nbGUgYXJyYXkgcGFyYW1ldGVyLiAgVGhlIGNvbnRlbnRzIG9mIHRoaXMgcGFyYW1ldGVyIGFyZSBhbiBhc3NvY2lhdGl2ZSBhcnJheSBhcyBmb2xsb3dzOjwvcD4KICAgICAgIDx1bD4KICAgICAgICAgIDxsaT48Y29kZT51c2VybmFtZTwvY29kZT46IHN0cmluZzwvbGk+CiAgICAgICAgICA8bGk+PGNvZGU+ZW1haWw8L2NvZGU+OiBzdHJpbmc8L2xpPgogICAgICAgICAgPGxpPjxjb2RlPnBhc3N3b3JkPC9jb2RlPjogc3RyaW5nIC0gVGhlIHBsYWluIHRleHQgdXNlciBwYXNzd29yZDwvbGk+CiAgICAgICA8L3VsPgogICAgICAgPHA+RXhhbXBsZTo8L3A+CjxwcmU+PGNvZGU+XENNU01TXEhvb2tNYW5hZ2VyOjphZGRfaG9vayggJ01BTVNSZWdpc3RyYXRpb246OmJlZm9yZU5ld1VzZXInLCBmdW5jdGlvbiggJHBhcmFtcyApIHsKICAgIGlmKCBzdHJsZW4oICRwYXJhbXNbJ3Bhc3N3b3JkJ10gKSAmbHQ7IDQgKSB0aHJvdyBuZXcgXE1BTVNSRUdWYWxpZGF0aW9uRXJyb3IoJ1lvdXIgcGFzc3dvcmQgaXMgdG9vIHNob3J0Jyk7Cn0pOzwvY29kZT48L3ByZT4KICAgPC9saT4KCiAgIDxsaT48Y29kZT5NQU1TUmVnaXN0cmF0aW9uOjpvbk5ld1VzZXI8L2NvZGU+IC0gVHJpZ2dlcmVkIHdoZW4gYSBuZXcgdGVtcG9yYXJ5IHVzZXIgaXMgY3JlYXRlZCBpbiBNQU1TUmVnaXN0cmF0aW9uLgogICAgICAgPHA+VGhpcyBob29rIGlzIGNhbGxlZCBhZnRlciB0aGUgTUFNU1JlZ2lzdHJhdGlvbiB0ZW1wb3JhcnkgdXNlciBpcyBjcmVhdGVkIGluIHRoZSBkYXRhYmFzZSwgYnV0IGJlZm9yZSB2ZXJpZmljYXRpb24sIG9yIGFkZGluZyB0byBNQU1TIGV0Yy48L3A+CiAgICAgICA8cD5QYXJhbWV0ZXJzOiAtIFRoZSBob29rIGhhbmRsZXIgc2hvdWxkIGFjY2VwdCBhIHNpbmdsZSBhcnJheSBwYXJhbWV0ZXIuICBUaGUgY29udGVudHMgb2YgdGhpcyBwYXJhbWV0ZXIgYXJlIGFuIGFzc29jaWF0aXZlIGFycmF5IGFzIGZvbGxvd3M6PC9wPgogICAgICAgPHVsPgogICAgICAgICAgPGxpPjxjb2RlPnVzZXJuYW1lPC9jb2RlPiA6IHN0cmluZzwvbGk+CiAgICAgICAgICA8bGk+PGNvZGU+ZW1haWw8L2NvZGU+IDogc3RyaW5nPC9saT4KICAgICAgIDwvdWw+CiAgIDwvbGk+CgogICA8bGk+PGNvZGU+TUFNU1JlZ2lzdHJhdGlvbjo6b25Vc2VyUmVnaXN0ZXJlZDwvY29kZT4gLSBUcmlnZ2VyZWQgYWZ0ZXIgYSB0ZW1wb3JhcnkgdXNlciBhY2NvdW50IGhhcyBiZWVuIGNvbnZlcnRlZCBpbnRvIGFuIE1BTVMgdXNlciBhY2NvdW50LgogICAgICAgPHA+UGFyYW1ldGVyczogLSBUaGUgaG9vayBoYW5kbGVyIHNob3VsZCBhY2NlcHQgYSBzaW5nbGUgYXJyYXkgcGFyYW1ldGVyLiAgVGhlIGNvbnRlbnRzIG9mIHRoaXMgcGFyYW1ldGVyIGFyZSBhbiBhc3NvY2lhdGl2ZSBhcnJheSBhcyBmb2xsb3dzOjwvcD4KICAgICAgIDx1bD4KICAgICAgICAgIDxsaT48Y29kZT5pZDwvY29kZT4gOiBpbnQgLSBUaGUgTUFNUyB1aWQgb2YgdGhlIG5ld2x5IGNyZWF0ZWQgdXNlci48L2xpPgogICAgICAgICAgPGxpPjxjb2RlPnVzZXJuYW1lPC9jb2RlPiA6IHN0cmluZzwvbGk+CiAgICAgICA8L3VsPgogICA8L2xpPgoKPC91bD4gIDwvZGl2PgogIDxkaXYgaWQ9ImFib3V0X2MiPgogICAgPGgzPkFib3V0IHRoaXMgbW9kdWxlPC9oMz4KPHA+VGhpcyBtb2R1bGUgaXMgYSBmb3JrIG9mIDxzdHJvbmc+U2VsZlJlZ2lzdHJhdGlvbjwvc3Ryb25nPiBkZXZlbG9wZWQgYnkgPHN0cm9uZz5Sb2JlcnQgQ2FtcGJlbGwgJmx0O2NhbGd1eTEwMDAmZ3Q7PC9zdHJvbmc+LjxiciAvPgogIFRoaXMgaXMgYSAxc3QgZ2VuZXJhdGlvbiBmb3JrIG9mIHRoZSBtb2R1bGUuIENvbnNpZGVyIHRoaXMgYXMgYW5vdGhlciBmbGF2b3VyIG9mIHRoZSBvcmlnaW5hbCBtb2R1bGUuIEhvd2V2ZXIgdGhlcmUgYXJlIHNvbWUgc3Vic3RhbnRpYWwgZGlmZmVyZW5jZXMsIHRoZW0gbWFpbiBvbmUgYmVpbmcgdGhhdCBpdCByZXF1aXJlcyA8c3Ryb25nPk1BTVM8L3N0cm9uZz4gKGEgZm9yayBvZiA8c3Ryb25nPkZFVTwvc3Ryb25nPiBhbHNvIGZyb20gdGhlIHNhbWUgYXV0aG9yKS4gPHN0cm9uZz5UaGlzIG1vZHVsZSB3aWwgbm90IHdvcmsgd2l0aCBGRVU8L3N0cm9uZz4uPC9wPgoKPHA+SWYgeW91IGZpbmQgYW55IGJ1Z3MgcGxlYXNlIGZlZWwgZnJlZSB0byBzdWJtaXQgYSBidWcgcmVwb3J0IDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvYnVnL2xpc3QvMTQ2NiIgdGFyZ2V0PSJfYmxhbmsiPmhlcmU8L2E+IG9yIGZvciBhbnkgZ29vZCBpZGVhcyBjb25zaWRlciBzdWJtaXRpbmcgYSBmZWF0dXJlIHJlcXVlc3QgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9mZWF0dXJlX3JlcXVlc3QvbGlzdC8xNDY2IiB0YXJnZXQ9Il9ibGFuayI+aGVyZTwvYT4uPC9wPgo8cD5QbGVhc2Uga2VlcCBpbiBtaW5kIHRoYXQgZGV2ZWxvcGVycyBkbyBoYXZlIHRoZWlyIGRhaWx5IGpvYnMgd2hpY2ggbWVhbnMgdGhhdCBmZWF0dXJlIHJlcXVlc3RzIGFyZSBjb25zaWRlcmVkIGFuZCBkb25lIGFzIHRpbWUgYWxsb3dzLiBJZiB5b3UgbmVlZCBhIGZlYXR1cmUgcmVhbGx5IGJhZGx5IGNvbnNpZGVyIGNvbnRhY3Rpbmcgb25lIG9mIHRoZSBkZXZlbG9wZXJzIGZvciBhIHNwb25zb3JlZCBkZXZlbG9wbWVudC4KPC9wPgoKCjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhlIG1vZHVsZSBhdXRob3IgLyBtYWludGFpbmVycyBvciBwcm9qZWN0IG1hbmFnZXJzIGFyZSBpbiBubyB3YXkgb2JsaWdhdGVkIHRvIHByb3ZpZGUgc3VwcG9ydCBmb3IgdGhpcyBjb2RlIGluIGFueSBmYXNoaW9uLiAgSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkEgYnVnIHRyYWNraW5nIGFuZCBmZWF0dXJlIHJlcXVlc3Qgc3lzdGVtIGhhcyBiZWVuIGNyZWF0ZWQgZm9yIHRoaXMgbW9kdWxlIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvbWFtc3JlZyI+aGVyZTwvYT4uIFBsZWFzZSBiZSB2ZXJib3NlIGFuZCBkZXNjcmlwdGl2ZSB3aGVuIHN1Ym1pdHRpbmcgYnVnIHJlcG9ydHMgYW5kIGZlYXR1cmUgcmVxdWVzdHMsIGFuZCBmb3IgYnVnIHJlcG9ydHMgZW5zdXJlIHRoYXQgeW91IGhhdmUgcHJvdmlkZWQgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byByZWxpYWJseSByZXByb2R1Y2UgdGhlIGlzc3VlLjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uICBXaGVuIGRlc2NyaWJpbmcgYW4gaXNzdWUgcGxlYXNlIG1ha2UgYW4gZWZmb3J0IHRvIHByb3ZpZGUgYWxsIHJlbGV2YW50IGluZm9ybWF0aW9uLCBhIHRob3JvdWdoIGRlc2NyaXB0aW9uIG9mIHlvdXIgaXNzdWUsIGFuZCBzdGVwcyB0byByZXByb2R1Y2UgaXQgb3IgeW91ciBkaXNjdXNzaW9uIG1heSBiZSBpZ25vcmVkLjwvbGk+CjwvdWw+Cgo8cD5UaGUgbWFpbnRhaW5lcnMgd2lsbCBkbyB0aGVpciBiZXN0IHRvIGtlZXAgdGhlIG1vZHVsZSBhbmQgYWxsIHRoZSBsaWJyYXJpZXMgaXQgdXNlcyB1cCB0byBkYXRlLjwvcD4KCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMjAgLSAyMDI1LCBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbiA8YSBocmVmPSJtYWlsdG86aW5mb0BjbXNtYWRlc2ltcGxlLm9yZyI+Jmx0O2luZm9AY21zbWFkZXNpbXBsZS5vcmcmZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsbCAmbHQ7Y2FsZ3V5MTAwMCZndDsuIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPGhyPgo8cD48c3Ryb25nPk1BTVNSZWdpc3RyYXRpb248L3N0cm9uZz4gaXMgZnJlZSBzb2Z0d2FyZTs8YnIgLz4geW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIDxzdHJvbmc+R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2U8L3N0cm9uZz4gYXMgcHVibGlzaGVkIGJ5IHRoZSA8c3Ryb25nPkZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjwvc3Ryb25nPjs8YnIgLz4gZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+CjxwPjxzdHJvbmc+TUFNU1JlZ2lzdHJhdGlvbjwvc3Ryb25nPiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgPHN0cm9uZz5XSVRIT1VUIEFOWSBXQVJSQU5UWTwvc3Ryb25nPjs8YnIgLz4gd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIDxzdHJvbmc+TUVSQ0hBTlRBQklMSVRZPC9zdHJvbmc+IG9yIDxzdHJvbmc+RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0U8L3N0cm9uZz4uPC9wPgo8cD5TZWUgdGhlR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy48L3A+CiA8cD5Zb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSA8c3Ryb25nPkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlPC9zdHJvbmc+IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOzxiciAvPiBpZiBub3QsIHdyaXRlIHRvIHRoZSA8c3Ryb25nPkZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0E8L3N0cm9uZz4gb3IgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+cmVhZCBpdCBvbmxpbmU8L2E+LjwvcD4KPHA+PHN0cm9uZz5Zb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIDxzdHJvbmc+TUFNU1JlZ2lzdHJhdGlvbjwvc3Ryb25nPi48L3N0cm9uZz48L3A+Cjxocj4KPGg0PkN1cnJlbnQgTWFpbnRhaW5lcnM8L2g0Pgo8dWw+CiAgPGxpIGNsYXNzPSJwX2JvdHRvbV8xNSI+PHN0cm9uZz5GZXJuYW5kbyBNb3JnYWRvIChKbyBNb3JnKTwvc3Ryb25nPjwvbGk+CjwvdWw+Cgo8aDQ+UGFzdCBNYWludGFpbmVyczwvaDQ+Cjx1bD4KICA8bGk+PHN0cm9uZz5Sb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDApPC9zdHJvbmc+IDxiciAvPnd3dy5jYWxndXkxMDAwLmNvbTwvbGk+CjwvdWw+Cgo8aDQ+S25vd24gQ29udHJpYnV0b3JzPC9oND4KPHVsPgogIDxsaT48c3Ryb25nPlJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMCk8L3N0cm9uZz48YnIgLz53d3cuY2FsZ3V5MTAwMC5jb208L2xpPgo8L3VsPgoKICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4KPC9kaXY+PGgzPkRlcGVuZGVuY2llczwvaDM+PHVsPjxsaT5DTVNNU0V4dCA9Jmd0OyAxLjAuMTwvbGk+PGxpPk1BTVMgPSZndDsgMS4wPC9saT48bGk+U21hcnR5RXh0ID0mZ3Q7IDEuMDwvbGk+PC91bD4=]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBKbyBNb3JnICZsdDtqb21vcmdAY21zbWFkZXNpbXBsZS5vcmcmZ3Q7PGJyIC8+PGJyIC8+VmVyc2lvbjogMS4xLjA8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48c3R5bGU+CiAgc2VjdGlvbiNjaGFuZ2Vsb2cgc3BhbgogIHsKICAgIE1vbm8nLCAnTHVjaWRhIENvbnNvbGUnLCAnTHVjaWRhIFNhbnMgVHlwZXdyaXRlcicsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICBjb2xvcjogIzIzMjMyMzsKICAgIGhlaWdodDogYXV0bzsKICAgIGJvcmRlci1yYWRpdXM6IDAuMzE1ZW07CiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOwogICAgcGFkZGluZzogMC4zZW07CiAgICBmb250LXNpemU6IDAuOWVtOwogIH0KPC9zdHlsZT4KCjxzZWN0aW9uIGlkPSJjaGFuZ2Vsb2ciPgoKICA8aDM+PHNwYW4+VmVyc2lvbiAxLjEuMDwvc3Bhbj4gPHNtYWxsPjIwMjEtMDMtMjA8L3NtYWxsPjwvaDM+CiAgPHA+PHN0cm9uZz5GaXhlczo8L3N0cm9uZz48L3A+CiAgPHVsPgogICAgPGxpPjxzcGFuPmZpeGVkPC9zcGFuPiBCUiAjMTI4MDcgLSBNYW51YWxseSBwdXNoaW5nIHVzZXIgdG8gTUFNUyBjbGVhcnMgYWxsIGZpZWxkczs8L2xpPgogICAgPGxpPjxzcGFuPmZpeGVkPC9zcGFuPiBCUiAjMTI4MDYgLSBGYXRhbCBlcnJvciBkdXJpbmcgTUFNU1JlZ2lzdHJhdGlvbiBpbnN0YWxsYXRpb24gLSBtaXNzaW5nIHByb3BlcnR5IGRmbHRfZW1haWx1c2VyZWRpdGVkX3RleHR0ZW1wbGF0ZTs8L2xpPgogICAgPGxpPjxzcGFuPmZpeGVkPC9zcGFuPiBCUiAjMTI3MTUgLSBTb21lIGxlZnRvdmVycyAocGFydGlhbGx5IGFzIGl0IHdhcyBub3QgZW50aXJlbHkgdmFsaWQpOzwvbGk+CiAgICA8bGk+PHNwYW4+Zml4ZWQ8L3NwYW4+IGEgZmV3IG90aGVyIG1pbm9yIGZpeGVzIGFuZCB0d2Vha3M7PC9saT4KICA8L3VsPgoKICA8cD48c3Ryb25nPk5ldyBmZWF0dXJlczo8L3N0cm9uZz48L3A+CiAgPHVsPgogICAgPGxpPjxzcGFuPm5ldzwvc3Bhbj4gdGhlcmUgaXMgYSB2aXN1YWwgY2x1ZSB3aGV0aGVyIGEgdXNlciBoYXMgYmVlbiB2YWxpZGF0ZWQgb3Igbm90OzwvbGk+CiAgICA8bGk+PHNwYW4+bmV3PC9zcGFuPiB0aGVyZSBpcyBhIG9uZSBjbGljayBhY3Rpb24gdG8gdmFsaWRhdGUgYSB1c2VyOzwvbGk+CiAgICA8bGk+PHNwYW4+bmV3PC9zcGFuPiB0aGVyZSBpcyBhIG5ldyBTbWFydHkgaGVscGVyIGNsYXNzIChuZWVkcyBkb2N1bWVudGF0aW9uIHRob3VnaCk7PC9saT4KICAgIDxsaT48c3Bhbj5uZXc8L3NwYW4+IHRoZXJlIGlzIGEgbmV3IFNtYXJ0eSBoZWxwZXIgcGx1Z2luIChhbHNvIG5lZWRzIGRvY3VtZW50YXRpb24pOzwvbGk+CiAgPC91bD4KCgogIDxoMz48c3Bhbj5WZXJzaW9uIDEuMC4yPC9zcGFuPiA8c21hbGw+MjAyMS0wMy0yMDwvc21hbGw+PC9oMz4KCiAgPHA+U3RhYmlsaXR5IHJlbGVhc2U6PC9wPgogIDx1bD4KICAgIDxsaT48c3Bhbj5maXhlZDwvc3Bhbj4gQSBmZXcgbWlub3IgZml4ZXMgbWFpbmx5IHRvIGRvIHdpdGggYmFja2VuZCB0YWJzIGFuZCBzZXR0aW5ncyBmb3JtOzwvbGk+CiAgPC91bD4KCiAgPGgzPjxzcGFuPlZlcnNpb24gMS4wLjE8L3NwYW4+IDxzbWFsbD4yMDIxLTAzLTIxPC9zbWFsbD48L2gzPgoKICA8cD5TdGFiaWxpdHkgcmVsZWFzZTo8L3A+CiAgPHVsPgogICAgPGxpPjxzcGFuPmZpeGVkPC9zcGFuPiBBIGZldyBtaW5vciBmaXhlczs8L2xpPgogIDwvdWw+CgogIDxoMz48c3Bhbj5WZXJzaW9uIDEuMDwvc3Bhbj4gPHNtYWxsPjIwMjEtMDMtMDg8L3NtYWxsPjwvaDM+CgogIDxwPkluaXRpYWwgcHVibGljIHJlbGVhc2U8L3A+Cgo8L3NlY3Rpb24+PGJyIC8+]]></about>
	<description><![CDATA[A module that allows front end users to register themselves.]]></description>
	<requires>
	  <requiredname>CMSMSExt</requiredname>
	  <requiredversion>1.0.1</requiredversion>
	</requires>
	<requires>
	  <requiredname>MAMS</requiredname>
	  <requiredversion>1.0</requiredversion>
	</requires>
	<requires>
	  <requiredname>SmartyExt</requiredname>
	  <requiredversion>1.0</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.admin_addpaidpkg.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCFpc3NldCgkZ0NtcykpCnsKICBleGl0Owp9CmlmKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpKQp7CiAgcmV0dXJuOwp9CiRtYW1zID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdNQU1TJyk7CmlmKCEkbWFtcykKewogIHJldHVybjsKfQoKJG1vZG5hbWUgICAgICA9IHN0cnRvbG93ZXIoJHRoaXMtPkdldE5hbWUoKSk7CiR0YWJsZV9wcmVmaXggPSBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kbmFtZTsKCi8vIGluaXRpYWxpemF0aW9uCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdyZWdwa2dzJyk7CiRlcnJvciAgICAgICAgICAgICAgPSAkcGtnaWQgPSBOVUxMOwokcmVjICAgICAgICAgICAgICAgID0gYXJyYXkoKTsKJHJlY1snbmFtZSddICAgICAgICA9ICcnOwokcmVjWydwcm9tcHQnXSAgICAgID0gJyc7CiRyZWNbJ2Rlc2NyaXB0aW9uJ10gPSAnJzsKJHJlY1snZ2lkJ10gICAgICAgICA9ICcnOwokcmVjWydzdWJzY3JfbnVtJ10gID0gMTsKJHJlY1snc3Vic2NyX3R5cGUnXSA9ICd5ZWFybHknOwokcmVjWydjb3N0J10gICAgICAgID0gJyc7CiRncm91cHMgICAgICAgICAgICAgPSBhcnJheV9mbGlwKCRtYW1zLT5HZXRHcm91cExpc3QoKSk7CgovLyBoYW5kbGUgaW5jb21pbmcgcGFyYW1zCmlmKGlzc2V0KCRwYXJhbXNbJ3BrZ2lkJ10pKQp7CiAgJHBrZ2lkID0gKGludCkkcGFyYW1zWydwa2dpZCddOwogICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcgLiAkdGFibGVfcHJlZml4IC4gJ19wYWlkcGtncyBXSEVSRSBpZCA9ID8nOwogICR0bXAgICA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJHBrZ2lkKSk7CiAgaWYoJHRtcCkKICB7CiAgICAkcmVjID0gJHRtcDsKICB9Cn0KCi8vIGhhbmRsZSBmb3JtIHN1Ym1pdAppZihpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpCnsKICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwp9CmlmKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkKewogIHRyeQogIHsKICAgIC8vIGZpbGwgaW4gdGhlIHJlY29yZAogICAgJHJlY1snbmFtZSddICAgICAgICA9IHRyaW0oJHBhcmFtc1sncGtnX25hbWUnXSk7CiAgICAkcmVjWydwcm9tcHQnXSAgICAgID0gdHJpbSgkcGFyYW1zWydwa2dfcHJvbXB0J10pOwogICAgJHJlY1snZGVzY3JpcHRpb24nXSA9IHRyaW0oJHBhcmFtc1sncGtnX2Rlc2NyaXB0aW9uJ10pOwogICAgJHJlY1snZ2lkJ10gICAgICAgICA9IChpbnQpJHBhcmFtc1sncGtnX2dpZCddOwogICAgaWYoaXNzZXQoJHBhcmFtc1sncGtnX2Nvc3QnXSkpCiAgICB7CiAgICAgICRyZWNbJ2Nvc3QnXSA9IChmbG9hdCkkcGFyYW1zWydwa2dfY29zdCddOwogICAgfQogICAgaWYoaXNzZXQoJHBhcmFtc1snc3Vic2NyX251bSddKSkKICAgIHsKICAgICAgJHJlY1snc3Vic2NyX251bSddID0gKGludCkkcGFyYW1zWydzdWJzY3JfbnVtJ107CiAgICB9CiAgICBpZihpc3NldCgkcGFyYW1zWydzdWJzY3JfdHlwZSddKSkKICAgIHsKICAgICAgJHJlY1snc3Vic2NyX3R5cGUnXSA9IHRyaW0oJHBhcmFtc1snc3Vic2NyX3R5cGUnXSk7CiAgICB9CiAgICAKICAgIC8vIGNoZWNrIGZvciBlcnJvcnMuCiAgICBpZigkcmVjWydjb3N0J10gPCAwKQogICAgewogICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycl9zdWJzY3Jjb3N0JykpOwogICAgfQogICAgc3dpdGNoKFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcmVjLCAnc3Vic2NyX3R5cGUnKSkKICAgIHsKICAgICAgY2FzZSAnbW9udGgnOgogICAgICAgIHN3aXRjaCgkcmVjWydzdWJzY3JfbnVtJ10pCiAgICAgICAgewogICAgICAgICAgY2FzZSAxOgogICAgICAgICAgY2FzZSAzOgogICAgICAgICAgY2FzZSA2OgogICAgICAgICAgY2FzZSAxMjoKICAgICAgICAgICAgLy8gdGhlc2UgYXJlIGFsbCBva2F5LgogICAgICAgICAgYnJlYWs7CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPmxhbmcoJ2Vycl9zdWJzY3Jtb250aCcpKTsKICAgICAgICB9CiAgICAgIGJyZWFrOwogICAgICBjYXNlICd5ZWFyJzoKICAgICAgICBpZigkcmVjWydzdWJzY3JfbnVtJ10gIT0gMSkKICAgICAgICB7CiAgICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycl9zdWJzY3J5ZWFyJykpOwogICAgICAgIH0KICAgICAgYnJlYWs7CiAgICB9CiAgICAKICAgICRmbGRzID0gYXJyYXkoJ25hbWUnID0+ICR0aGlzLT5MYW5nKCduYW1lJyksICdwcm9tcHQnID0+ICR0aGlzLT5MYW5nKCdwcm9tcHQnKSk7CiAgICBmb3JlYWNoKCRmbGRzIGFzICRmbGQgPT4gJGxibCkKICAgIHsKICAgICAgJHF1ZXJ5ID0gc3ByaW50ZignU0VMRUNUIGlkIEZST00gJyAuICR0YWJsZV9wcmVmaXggLiAnX3BhaWRwa2dzIFdIRVJFICVzID0gPycsICRmbGQpOwogICAgICAkcGFybXMgPSBhcnJheSgkcmVjWyRmbGRdKTsKICAgICAgaWYoJHBrZ2lkKQogICAgICB7CiAgICAgICAgJHF1ZXJ5ID0gc3ByaW50ZignU0VMRUNUIGlkIEZST00gJyAuICR0YWJsZV9wcmVmaXggLiAnX3BhaWRwa2dzIFdIRVJFICVzID0gPyBBTkQgaWQgIT0gPycsICRmbGQpOwogICAgICAgICRwYXJtcyA9IGFycmF5KCRyZWNbJGZsZF0sICRwa2dpZCk7CiAgICAgIH0KICAgICAgJHRtcCA9ICRkYi0+R2V0T25lKCRxdWVyeSwgJHBhcm1zKTsKICAgICAgaWYoJHRtcCkKICAgICAgewogICAgICAgICR2YWwgPSAkcmVjWyRmbGRdOwogICAgICAgIGlmKCRmbGQgPT0gJ2dpZCcpCiAgICAgICAgewogICAgICAgICAgJHZhbCA9ICRncm91cHNbJHJlY1skZmxkXV07CiAgICAgICAgfQogICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfcGtnZXhpc3RzJywgJGxibCwgJHZhbCkpOwogICAgICB9CiAgICB9CiAgICAKICAgIC8vIHdlJ3JlIHJlYWR5IHRvIGluc2VydCBvciB1cGRhdGUuCiAgICAkcmVzID0gJyc7CiAgICBpZighJHBrZ2lkKQogICAgewogICAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJyAuICR0YWJsZV9wcmVmaXggLiAnX3BhaWRwa2dzCiAgICAgICAgICAgICAgICAobmFtZSxwcm9tcHQsZGVzY3JpcHRpb24sZ2lkLGNvc3Qsc3Vic2NyX251bSxzdWJzY3JfdHlwZSkKICAgICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyknOwogICAgICAkcmVzICAgPSAkZGItPkV4ZWN1dGUoCiAgICAgICAgJHF1ZXJ5LAogICAgICAgIGFycmF5KAogICAgICAgICAgJHJlY1snbmFtZSddLCAkcmVjWydwcm9tcHQnXSwgJHJlY1snZGVzY3JpcHRpb24nXSwKICAgICAgICAgICRyZWNbJ2dpZCddLCAkcmVjWydjb3N0J10sCiAgICAgICAgICAkcmVjWydzdWJzY3JfbnVtJ10sICRyZWNbJ3N1YnNjcl90eXBlJ10KICAgICAgICApCiAgICAgICk7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICRxdWVyeSA9ICdVUERBVEUgJyAuICR0YWJsZV9wcmVmaXggLiAnX3BhaWRwa2dzCiAgICAgICAgICAgICAgICBTRVQgbmFtZSA9ID8sIHByb21wdCA9ID8sIGRlc2NyaXB0aW9uID0gPywgZ2lkID0gPywgY29zdCA9ID8sCiAgICAgICAgICAgICAgICAgICAgc3Vic2NyX251bSA9ID8sIHN1YnNjcl90eXBlID0gPwogICAgICAgICAgICAgICAgV0hFUkUgaWQgPSA/JzsKICAgICAgJHJlcyAgID0gJGRiLT5FeGVjdXRlKAogICAgICAgICRxdWVyeSwKICAgICAgICBhcnJheSgKICAgICAgICAgICRyZWNbJ25hbWUnXSwgJHJlY1sncHJvbXB0J10sICRyZWNbJ2Rlc2NyaXB0aW9uJ10sCiAgICAgICAgICAkcmVjWydnaWQnXSwgJHJlY1snY29zdCddLAogICAgICAgICAgJHJlY1snc3Vic2NyX251bSddLCAkcmVjWydzdWJzY3JfdHlwZSddLAogICAgICAgICAgJHBrZ2lkCiAgICAgICAgKQogICAgICApOwogICAgfQogICAgCiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogIH0KICBjYXRjaChcRXhjZXB0aW9uICRlKQogIHsKICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJGUtPkdldE1lc3NhZ2UoKSk7CiAgfQp9CgovLyBidWlsZCB0aGUgZm9ybQokc21hcnR5LT5hc3NpZ24oJ2dyb3VwbGlzdCcsICRncm91cHMpOwokc21hcnR5LT5hc3NpZ24oJ3BrZ2RhdGEnLCAkcmVjKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCAkdGhpcy0+WFRDcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fYWRkcGFpZHBrZycsICRyZXR1cm5pZCwgJHBhcmFtcykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9kZXNjcmlwdGlvbicsICR0aGlzLT5DcmVhdGVUZXh0QXJlYShUUlVFLCAkaWQsICRyZWNbJ2Rlc2NyaXB0aW9uJ10sICdwa2dfZGVzY3JpcHRpb24nKSk7CiRzdWJzY3JfdHlwZSAgICAgICAgICA9IGFycmF5KCk7CiRzdWJzY3JfdHlwZVsnbm9uZSddICA9ICR0aGlzLT5MYW5nKCdub25lJyk7CiRzdWJzY3JfdHlwZVsnbW9udGgnXSA9ICR0aGlzLT5MYW5nKCdtb250aCcpOwokc3Vic2NyX3R5cGVbJ3llYXInXSAgPSAkdGhpcy0+TGFuZygneWVhcicpOwokc21hcnR5LT5hc3NpZ24oJ3N1YnNjcl90eXBlcycsICRzdWJzY3JfdHlwZSk7CgokdG1wID0gWzEgPT4gMSwgMyA9PiAzLCA2ID0+IDYsIDEyID0+IDEyXTsKJHNtYXJ0eS0+YXNzaWduKCdudW1zJywgJHRtcCk7CgppZigkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NHRWNvbW1lcmNlQmFzZScpKQp7CiAgJHNtYXJ0eS0+YXNzaWduKCdjdXJyZW5jeV9zeW1ib2wnLCBjZ19lY29tbTo6Z2V0X2N1cnJlbmN5X3N5bWJvbCgpKTsKICAkc21hcnR5LT5hc3NpZ24oJ2N1cnJlbmN5X2NvZGUnLCBjZ19lY29tbTo6Z2V0X2N1cnJlbmN5X2NvZGUoKSk7Cn0KCiRvYmogPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwppZihpc19vYmplY3QoJG9iaikpCnsKICAkc21hcnR5LT5hc3NpZ24oJ2Nhbl9lZGl0X2Nvc3QnLCAxKTsKfQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX2FkZHBhaWRwa2cudHBsJyk7CgojCiMgRU9GCiM=]]></data>
	</file>
	<file>
	  <filename>/action.admin_delpaidpkg.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHVzZXJzIHRvIHJlZ2lzdGVyIHRoZW1zZWx2ZXMKIyAgd2l0aCBhIHdlYnNpdGUuCiMgCiMgVmVyc2lvbjogMS4xLjUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSByZXR1cm47CiRtYW1zID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdNQU1TJyk7CmlmKCAhJG1hbXMgKSByZXR1cm47CgokdGhpcy0+U2V0Q3VycmVudFRhYigncmVncGtncycpOwoKaWYoICFpc3NldCgkcGFyYW1zWydwa2dpZCddKSApCiAgewogICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogIH0KCiRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX21hbXNyZWdpc3RyYXRpb25fcGFpZHBrZ3MKICAgICAgICAgICBXSEVSRSBpZCA9ID8nOwokcmVzID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgoaW50KSRwYXJhbXNbJ3BrZ2lkJ10pKTsKaWYoICEkcmVzICkKICB7CiAgICAkdGhpcy0+U2V0RXJyb3IoJGRiLT5zcWwuJzxici8+Jy4kZGItPkVycm9yTXNnKCkpOwogIH0KCiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_reg1template_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDgtMjAxNiBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byByZWdpc3RlciB0aGVtc2VsdmVzCiMgIHdpdGggYSB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnICkgKSByZXR1cm47CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdyZWcxdGVtcGxhdGUnKTsKCmlmKFx4dF9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsICdzdWJtaXQnKSkKewogICR0aGlzLT5TZXRUZW1wbGF0ZSgnbWFtc3JlZ19yZWcxdGVtcGxhdGUnLCAkcGFyYW1zWydyZWcxX3RlbXBsYXRlY29udGVudCddKTsKICAkdGhpcy0+U2V0VGVtcGxhdGUoJ21hbXNyZWdfcG9zdHJlZzFfdGVtcGxhdGUnLCAkcGFyYW1zWydwb3N0cmVnMV90ZW1wbGF0ZWNvbnRlbnQnXSk7CiAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoKTsKfQplbHNlIGlmKFx4dF9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsICdyZXNldCcpKQp7CiAgJHRoaXMtPlNldFRlbXBsYXRlKCdtYW1zcmVnX3JlZzF0ZW1wbGF0ZScsIGZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18gLiAnL3RlbXBsYXRlcy9vcmlnX3JlZ2lzdHJhdGlvbjEudHBsJykpOwogICR0aGlzLT5TZXRUZW1wbGF0ZSgnbWFtc3JlZ19wb3N0cmVnMV90ZW1wbGF0ZScsIGZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18gLiAnL3RlbXBsYXRlcy9vcmlnX3Bvc3RyZWcxLnRwbCcpKTsKICAkdGhpcy0+UmVkaXJlY3RUb1RhYigpOwp9CgokdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9yZWcxdGVtcGxhdGVfdGFiLnRwbCcpOwokdHBsLT5hc3NpZ24oJ3JlZzFfdGVtcGxhdGVjb250ZW50JywgJHRoaXMtPkdldFRlbXBsYXRlKCdtYW1zcmVnX3JlZzF0ZW1wbGF0ZScpKTsKJHRwbC0+YXNzaWduKCdwb3N0cmVnMV90ZW1wbGF0ZWNvbnRlbnQnLCAkdGhpcy0+R2V0VGVtcGxhdGUoJ21hbXNyZWdfcG9zdHJlZzFfdGVtcGxhdGUnKSk7CiR0cGwtPmRpc3BsYXkoKTsK]]></data>
	</file>
	<file>
	  <filename>/action.admin_save_anothergroup_template.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMS41CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkgZXhpdDsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2Fub3RoZXJncm91cF90ZW1wbGF0ZScpOwoKdHJ5IHsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydkZWZhdWx0cyddKSApIHsKICAgICAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2Fub3RoZXJncm91cF90ZW1wbGF0ZScsQGZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18uJy90ZW1wbGF0ZXMvb3JpZ19hbm90aGVyZ3JvdXBfdGVtcGxhdGUudHBsJykpOwogICAgfQogICAgZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkgewogICAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnYW5vdGhlcmdyb3VwX3RlbXBsYXRlJyx0cmltKHh0X3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywndGVtcGxhdGUnKSkpOwogICAgfQogICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ3RlbXBsYXRlX3NhdmVkJykpOwp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgJHRoaXMtPlNldEVycm9yKCRlLT5HZXRNZXNzYWdlKCkpOwp9CgokdGhpcy0+UmVkaXJlY3RUb1RhYigpOwo=]]></data>
	</file>
	<file>
	  <filename>/action.anothergroup.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMS41CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdCgpOwoKaWYoICEkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmVnX2FkZGl0aW9uYWxncm91cHMnKSApIHsKICAgIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ0F0dGVtcHQgdG8gdXNlIHRoZSBhbm90aGVyZ3JvdXAgYWN0aW9uIHdoZW4gdGhlIG9wdGlvbiBpcyBkaXNhYmxlZCcpOwogICAgcmV0dXJuOwp9CgokbWFtcyA9IGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfTUFNUyk7CiR1aWQgPSAkbWFtcy0+TG9nZ2VkSW5JZCgpOwppZiggJHVpZCA8IDEgKSB7CiAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdBdHRlbXB0IHRvIHVzZSB0aGUgYW5vdGhlcmdyb3VwIGFjdGlvbiB3aGVuIG5vdCBsb2dnZWQgaW4gdG8gTUFNUycpOwogICAgcmV0dXJuOwp9CiR0bXAgPSAkbWFtcy0+R2V0TWVtYmVyR3JvdXBzQXJyYXkoJHVpZCk7CiRtZW1iZXJncm91cHMgPSBceHRfYXJyYXk6OmV4dHJhY3RfZmllbGQoJHRtcCwnZ3JvdXBpZCcpOwoKJGlubGluZSA9IChpbnQpICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbmxpbmVfZm9ybXMnLDApOwokdG1wID0geHRfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnbm9pbmxpbmUnKTsKaWYoICR0bXAgKSAkaW5saW5lID0gMDsKCiRncm91cG5hbWUgPSB0cmltKHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2dyb3VwJykpOwokZ3JwaWRzID0gcmVnX3V0aWxzOjpleHBhbmRfZ3JvdXAoJGdyb3VwbmFtZSk7CmlmKCAhY291bnQoJGdycGlkcykgKSB7CiAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdubyB2YWxpZCBncm91cHMgZm91bmQgaW4gY2FsbCB0byBhbm90aGVyZ3JvdXAgYWN0aW9uLicpOwogICAgcmV0dXJuOwp9CiRncnBpZHMgPSBhcnJheV9kaWZmKCRncnBpZHMsJG1lbWJlcmdyb3Vwcyk7CmlmKCAhJGdycGlkcyApIHsKICAgIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ2Fub3RoZXJncm91cDogbm8gbmV3IGdyb3VwIGlkcyB0byByZWdpc3RlciB0bycpOwogICAgcmV0dXJuOwp9CiR1aW5mbyA9ICRtYW1zLT5HZXRVc2VySW5mbygkdWlkLFRSVUUpOwoKLy8gbm93IHdlIGhhdmUgZ3JvdXAgaWRzLCBnZXQgYSBsaXN0IG9mIHRoZSBncm91cHMgcHJvcGVydGllcy4KJHJlbGF0aW9ucyA9IGFycmF5KCk7CmZvcmVhY2goICRncnBpZHMgYXMgJGdpZCApIHsKICAgICRncmVsbnMgPSAkbWFtcy0+R2V0R3JvdXBQcm9wZXJ0eVJlbGF0aW9ucyggJGdpZCApOwogICAgJHJlbGF0aW9ucyA9IFJSVXRpbHM6OmFycmF5X21lcmdlX2J5X25hbWVfcmVxdWlyZWQoJHJlbGF0aW9ucywkZ3JlbG5zKTsKICAgIHVhc29ydCggJHJlbGF0aW9ucywgJ3h0X2FycmF5Ojpjb21wYXJlX2VsZW1lbnRzX2J5X3NvcnRvcmRlcl9rZXknKTsKfQovLyBub3cgd2UgbWVyZ2UgaW4gcHJvcGVydHkgaW5mbwokZGVmbnMgPSAkbWFtcy0+R2V0UHJvcGVydHlEZWZucygpOwpmb3JlYWNoKCAkcmVsYXRpb25zIGFzICYkb25lcHJvcCApIHsKICAgIGZvcmVhY2goICRkZWZucyBhcyAkb25lZGVmbiApIHsKICAgICAgICBpZiggJG9uZWRlZm5bJ25hbWUnXSA9PSAkb25lcHJvcFsnbmFtZSddICkgewogICAgICAgICAgICAkb25lcHJvcFsncHJvbXB0J10gPSAkb25lZGVmblsncHJvbXB0J107CiAgICAgICAgICAgICRvbmVwcm9wWyd0eXBlJ10gPSAkb25lZGVmblsndHlwZSddOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9Cn0KCi8vIGZpbHRlciBvdXQgc29tZSBvZiB0aGUgcmVsYXRpb25zCiRyZWxhdGlvbnMyID0gYXJyYXkoKTsKZm9yZWFjaCggJHJlbGF0aW9ucyBhcyAkcmVsbiApIHsKICAgIGlmKCAkcmVsblsndHlwZSddID09ICA5ICkgewogICAgICAgIC8vIGRhdGEgZmllbGRzIGFyZSBpZ25vcmVkLgogICAgICAgIGNvbnRpbnVlOwogICAgfQogICAgaWYoICRyZWxuWydyZXF1aXJlZCddID09IDMgKSBjb250aW51ZTsgLy8gaWdub3JlIGhpZGRlbiBmaWVsZHMuCiAgICAkcmVsYXRpb25zMltdID0gJHJlbG47Cn0KCiRnZXRfdXNlcl9wcm9wdmFsID0gZnVuY3Rpb24oJG5hbWUpIHVzZSAoJHVpbmZvKQp7CiAgICBpZiggIWlzc2V0KCR1aW5mb1sxXVsnZnByb3BzJ10pICkgcmV0dXJuOwogICAgZm9yZWFjaCggJHVpbmZvWzFdWydmcHJvcHMnXSBhcyAkcmVjICkgewogICAgICAgIGlmKCAkbmFtZSA9PSAkcmVjWyd0aXRsZSddICkgewogICAgICAgICAgICByZXR1cm4gJHJlY1snZGF0YSddOwogICAgICAgIH0KICAgIH0KfTsKCiRyb3dhcnJheSA9IG51bGw7CmZvcmVhY2goICRyZWxhdGlvbnMyIGFzICRyZWxuICkgewogICAgJGRlZm4gPSBudWxsOwogICAgaWYoIGlzc2V0KCRyZWxuWydtYXB0byddKSApIHsKICAgICAgICAkZGVmbiA9ICRtYW1zLT5HZXRQcm9wZXJ0eURlZm4oICRyZWxuWydtYXB0byddICk7CiAgICB9IGVsc2UgewogICAgICAgICRkZWZuID0gJG1hbXMtPkdldFByb3BlcnR5RGVmbiggJHJlbG5bJ25hbWUnXSApOwogICAgfQoKICAgICRhdHRyaWJzID0gbnVsbDsKICAgIGlmKCBpc3NldCgkZGVmblsnYXR0cmlicyddKSApICRhdHRyaWJzID0gdW5zZXJpYWxpemUoJGRlZm5bJ2F0dHJpYnMnXSk7CgogICAgJG9uZXJvdyA9IG5ldyBTdGRDbGFzczsKICAgICRvbmVyb3ctPmNvbG9yID0gJG9uZXJvdy0+bWFya2VyID0gbnVsbDsKICAgIGlmKCAkZGVmblsnZW5jcnlwdCddICkgewogICAgICAgICRvbmVyb3ctPmNvbG9yID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NlY3VyZV9maWVsZF9jb2xvcicsJ3llbGxvdycpOwogICAgICAgICRvbmVyb3ctPm1hcmtlciA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzZWN1cmVfZmllbGRfbWFya2VyJywnXl4nKTsKICAgIH0KICAgIGlmKCAkcmVsblsncmVxdWlyZWQnXSA9PSAyICkgJG9uZXJvdy0+Y29sb3IgPSAkbWFtcy0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZWRfZmllbGRfY29sb3InLCdibHVlJyk7CiAgICBpZiggJHJlbG5bJ3JlcXVpcmVkJ10gPT0gMiApICRvbmVyb3ctPm1hcmtlciA9ICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlZF9maWVsZF9tYXJrZXInLCcqJyk7CiAgICAkbmFtZSA9ICRyZWxuWyduYW1lJ107CiAgICAkb25lcm93LT5yZXF1aXJlZCA9ICRyZWxuWydyZXF1aXJlZCddID09IDI7CiAgICAkb25lcm93LT5uYW1lID0gJG5hbWU7CiAgICAkb25lcm93LT50eXBlID0gJGRlZm5bJ3R5cGUnXTsKICAgICRvbmVyb3ctPnJlcXVpcmVkID0gKCRyZWxuWydyZXF1aXJlZCddID09IDIpOwogICAgJG9uZXJvdy0+cHJvbXB0ID0gJHJlbG5bJ3Byb21wdCddOwoKICAgIC8vIGdldCBpbml0aWFsIHZhbHVlIGZyb20gRkVVIGlmIHBvc3NpYmxlCiAgICAkb25lcm93LT52YWwgPSAkZ2V0X3VzZXJfcHJvcHZhbCgkbmFtZSk7CiAgICBpZiggJGRlZm5bJ3R5cGUnXSA9PSAxICYmIGlzc2V0KCRhdHRyaWJzWydjaGVja2VkJ10pICkgJG9uZXJvdy0+dmFsID0gJGF0dHJpYnNbJ2NoZWNrZWQnXTsKCiAgICBzd2l0Y2goICRvbmVyb3ctPnR5cGUgKSB7CiAgICBjYXNlIDQ6IC8vIGRyb3Bkb3duCiAgICBjYXNlIDU6IC8vIG11bHRpc2VsZWN0CiAgICBjYXNlIDc6IC8vIHJhZGlvIGJ1dHRvbnMKICAgICAgICAkb25lcm93LT5vcHRpb25zID0gYXJyYXlfZmxpcCgkbWFtcy0+R2V0U2VsZWN0T3B0aW9ucygkZGVmblsnbmFtZSddLCAxKSk7CiAgICAgICAgYnJlYWs7CiAgICBjYXNlIDY6IC8vIGltYWdlCiAgICAgICAgJGRlc3RfZGlyID0gJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uJy8nLiRtYW1zLT5HZXRQcmVmZXJlbmNlKCdpbWFnZV9kZXN0aW5hdGlvbl9wYXRoJywnbWFtc3VzZXJzJykuJy8nOwogICAgICAgICRkZXN0X3VybCA9ICRjb25maWdbJ3VwbG9hZHNfdXJsJ10uJy8nLiRtYW1zLT5HZXRQcmVmZXJlbmNlKCdpbWFnZV9kZXN0aW5hdGlvbl9wYXRoJywnbWFtc3VzZXJzJykuJy8nOwogICAgICAgICRmaWxlbmFtZSA9ICRkZXN0X2Rpci4kb25lcm93LT52YWw7CiAgICAgICAgJGZpbGV1cmwgID0gJGRlc3RfdXJsLiRvbmVyb3ctPnZhbDsKICAgICAgICBpZiggaXNfZmlsZSgkZmlsZW5hbWUpICYmIGlzX3JlYWRhYmxlKCRmaWxlbmFtZSkgKSB7CiAgICAgICAgICAgICRvbmVyb3ctPmltYWdlX3VybCA9ICRmaWxldXJsOwogICAgICAgICAgICAkb25lcm93LT5taW1ldHlwZSA9IFx4dF91dGlsczo6Z2V0X21pbWVfdHlwZSgkZmlsZW5hbWUpOwogICAgICAgICAgICAkb25lcm93LT5pc19pbWFnZSA9ICggc3RhcnRzd2l0aCgkb25lcm93LT5taW1ldHlwZSwnaW1hZ2UvJykgKSA/IFRSVUUgOiBGQUxTRTsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CgogICAgfQoKICAgIC8vIGZpbGwgdGhlIHJlYy0+dmFsdWUgcHJvcGVybHkuCiAgICAka2V5ID0gJ21yX2N0bF8nLiRyZWxuWyduYW1lJ107CiAgICBpZiggaXNzZXQoJHBhcmFtc1snbXJfc3VibWl0J10pICYmIChpc3NldCgkcGFyYW1zWyRrZXldKSB8fCAkb25lcm93LT50eXBlID09ICRtYW1zOjpGSUVMRFRZUEVfSU1BR0UpICkgewogICAgICAgICR2YWwgPSBudWxsOwoKICAgICAgICBzd2l0Y2goICRvbmVyb3ctPnR5cGUgKSB7CiAgICAgICAgY2FzZSAkbWFtczo6RklFTERUWVBFX01VTFRJU0VMRUNUOgogICAgICAgICAgICBpZiggaXNfYXJyYXkoJHBhcmFtc1ska2V5XSkgKSB7CiAgICAgICAgICAgICAgICAkdmFsID0gXHh0X3BhcmFtOjpnZXRfc3RyaW5nX2FycmF5KCRwYXJhbXMsJGtleSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkdmFsID0gXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJGtleSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJG1hbXM6OkZJRUxEVFlQRV9EQVRFOgogICAgICAgIGNhc2UgJG1hbXM6OkZJRUxEVFlQRV9EUk9QRE9XTjoKICAgICAgICBjYXNlICRtYW1zOjpGSUVMRFRZUEVfUkFESU9CVVROUzoKICAgICAgICBjYXNlICRtYW1zOjpGSUVMRFRZUEVfQ0hFQ0tCT1g6CiAgICAgICAgY2FzZSAkbWFtczo6RklFTERUWVBFX1RFWFQ6CiAgICAgICAgICAgICR2YWwgPSBceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywka2V5KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAkbWFtczo6RklFTERUWVBFX0VNQUlMOgogICAgICAgICAgICAkdmFsID0gXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJGtleSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJG1hbXM6OkZJRUxEVFlQRV9URVhUQVJFQToKICAgICAgICAgICAgJHZhbCA9IFx4dF9wYXJhbTo6Z2V0X2h0bWwoJHBhcmFtcywka2V5KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAkbWFtczo6RklFTERUWVBFX0lNQUdFOgogICAgICAgICAgICAvLyBnZXQgdGhlIGltYWdlIGZyb20gJF9GSUxFUwogICAgICAgICAgICAkZmtleSA9ICRpZC4ka2V5OwogICAgICAgICAgICBpZiggaXNzZXQoJF9GSUxFU1skZmtleV0pICYmICRfRklMRVNbJGZrZXldWydzaXplJ10gPiAwICkgewogICAgICAgICAgICAgICAgLy8gZm91bmQgYSBmaWxlLi4uIG92ZXJ3cml0ZSBleGlzdGluZyB2YWx1ZSB3aXRoIGEgc3BlY2lhbCB2YWx1ZQogICAgICAgICAgICAgICAgLy8gc28gdGhhdCB3ZSBoYW5kbGUgdGhlIGZpbGUgdXBsb2FkIHN0dWZmIGJlbG93CiAgICAgICAgICAgICAgICAkb25lcm93LT5oYXZlX2ZpbGUgPSAkZmtleTsKICAgICAgICAgICAgICAgICR2YWwgPSAkX0ZJTEVTWyRma2V5XVsnbmFtZSddOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgLy8gbm8gZmlsZSwgYnV0IGlmIHRoZXJlJ3MgYWxyZWFkeSBhIHZhbHVlLi4uIHdlIHVzZSBpdAogICAgICAgICAgICAgICAgaWYoICRvbmVyb3ctPnZhbCApICR2YWwgPSAkb25lcm93LT52YWw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJG1hbXM6OkZJRUxEVFlQRV9EQVRBOgogICAgICAgICAgICAvLyBkbyBub3RoaW5nCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICAkb25lcm93LT52YWwgPSAkdmFsOwogICAgfQogICAgJG9uZXJvdy0+dmFsdWUgPSAkb25lcm93LT52YWw7ICAvLyBmb3IgY29udmVuaWVuY2UKICAgICRvbmVyb3ctPmZsZG5hbWUgPSAkaWQuJ21yX2N0bF8nLiRvbmVyb3ctPm5hbWU7CgogICAgJHJvd2FycmF5WyRvbmVyb3ctPm5hbWVdID0gJG9uZXJvdzsKfQppZiggY291bnQoJHJvd2FycmF5KSA9PSAwICkgewogICAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnYW5vdGhlcmdyb3VwIGFjdGlvbiBmb3VuZCBubyBkaXNwbGF5YWJsZSBwcm9wZXJ0aWVzIGZvciAnLiRtYW1zLT5Mb2dnZWRJbk5hbWUoKSk7CiAgICByZXR1cm47Cn0KCiR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2Fub3RoZXJncm91cF90ZW1wbGF0ZScpOwokcGFybXMgPSBhcnJheSgnZ3JvdXAnPT4kZ3JvdXBuYW1lKTsKJHRwbC0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5YVENyZWF0ZUZvcm1TdGFydCgkaWQsJ2Fub3RoZXJncm91cCcsJHJldHVybmlkLCRwYXJtcywkaW5saW5lKSk7CiR0cGwtPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiR0cGwtPmFzc2lnbigncHJvcGVydGllcycsJHJvd2FycmF5KTsKJHRwbC0+YXNzaWduKCdwd2ZsZGxlbicsJG1hbXMtPkdldFByZWZlcmVuY2UoJ3Bhc3N3b3JkZmxkbGVuZ3RoJyw1MCkpOwokdHBsLT5hc3NpZ24oJ2dyb3VwbmFtZScsJGdyb3VwbmFtZSk7CiR0cGwtPmFzc2lnbignZ3JvdXBpZHMnLCRncnBpZHMpOwokdHBsLT5hc3NpZ24oJ3JlcV9jb2xvcicsJG1hbXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX2NvbG9yJywnYmx1ZScpKTsKJHRwbC0+YXNzaWduKCdyZXFfbWFya2VyJywkbWFtcy0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZWRfZmllbGRfbWFya2VyJywnKicpKTsKCmlmKCBpc3NldCgkcGFyYW1zWydtcl9zdWJtaXQnXSkgKSB7CiAgICB0cnkgewogICAgICAgIC8vIHZhbGlkYXRlIHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQKICAgICAgICAkcHcxID0gXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ21yX3Bhc3N3b3JkJyk7CiAgICAgICAgJHB3MiA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdtcl9wYXNzd29yZDInKTsKICAgICAgICBpZiggdHJpbSgkcHcxKSA9PSAnJyB8fCAkcHcxICE9ICRwdzIgKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfcGFzc3dvcmRzZG9udG1hdGNoJykpOwogICAgICAgIH0KCiAgICAgICAgJHVzZXJuYW1lID0gJG1hbXMtPkxvZ2dlZEluTmFtZSgpOwogICAgICAgIGlmKCAhJG1hbXMtPkNoZWNrUGFzc3dvcmQoJHVzZXJuYW1lLCRwdzEpICkgewogICAgICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2luY29ycmVjdHBhc3N3b3JkJykpOwogICAgICAgIH0KCiAgICAgICAgLy8gdmFsaWRhdGUgdGhlIHByb3BlcnRpZXMKICAgICAgICBmb3JlYWNoKCAkcm93YXJyYXkgYXMgJG5hbWUgPT4gJHJlYyApIHsKICAgICAgICAgICAgLy8gdmFsaWRhdGUgb3VyIHByb3BlcnRpZXMgKHJlcXVpcmVkLCB1bmlxdWUsLi4uKQogICAgICAgICAgICBpZiggJHJlYy0+cmVxdWlyZWQgJiYgISRyZWMtPnZhbCApIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfcmVxdWlyZWRmaWVsZCcsJG5hbWUpKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gdmFsaWRhdGUgdmFsdWVzCiAgICAgICAgICAgIHN3aXRjaCggJHJlYy0+dHlwZSApIHsKICAgICAgICAgICAgY2FzZSAkbWFtczo6RklFTERUWVBFX01VTFRJU0VMRUNUOgogICAgICAgICAgICAgICAgaWYoIGlzX2FycmF5KCRyZWMtPnZhbCkgKSAkcmVjLT52YWwgPSBpbXBsb2RlKCcsJywkcmVjLT52YWwpOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICRtYW1zOjpGSUVMRFRZUEVfRFJPUERPV046CiAgICAgICAgICAgIGNhc2UgJG1hbXM6OkZJRUxEVFlQRV9SQURJT0JVVE5TOgogICAgICAgICAgICBjYXNlICRtYW1zOjpGSUVMRFRZUEVfQ0hFQ0tCT1g6CiAgICAgICAgICAgIGNhc2UgJG1hbXM6OkZJRUxEVFlQRV9URVhUOgogICAgICAgICAgICAgICAgLy8gZG8gbm90aGluZwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICRtYW1zOjpGSUVMRFRZUEVfREFURToKICAgICAgICAgICAgICAgICRyZWMtPnZhbCA9IHN0cnRvdGltZSgkcmVjLT52YWwpOyAvLyBkYXRlcyBhcmUgc3RvcmVkIGFzIHRpbWVzdGFtcHMuCiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJG1hbXM6OkZJRUxEVFlQRV9FTUFJTDoKICAgICAgICAgICAgICAgIGlmKCAkcmVjLT52YWwgJiYgIWlzX2VtYWlsKCRyZWMtPnZhbCkgKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9lbWFpbGludmFsaWQnKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJG1hbXM6OkZJRUxEVFlQRV9JTUFHRToKICAgICAgICAgICAgY2FzZSAkbWFtczo6RklFTERUWVBFX1RFWFRBUkVBOgogICAgICAgICAgICBjYXNlICRtYW1zOjpGSUVMRFRZUEVfREFUQToKICAgICAgICAgICAgICAgIC8vIGRvIG5vdGhpbmcKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBoYW5kbGUgYWRkaW5nIHRoZSB1c2VyIHRvIHRoZSBncnVvcAogICAgICAgIGZvcmVhY2goICRncnBpZHMgYXMgJGdpZCApIHsKICAgICAgICAgICAgJG1hbXMtPkFzc2lnblVzZXJUb0dyb3VwKCR1aWQsJGdpZCk7CiAgICAgICAgfQoKICAgICAgICAvLyBoYW5kbGUgc2V0dGluZyB0aGUgdXNlciBwcm9lcHJ0aWVzCiAgICAgICAgZm9yZWFjaCggJHJvd2FycmF5IGFzICRuYW1lID0+ICRyZWMgKSB7CiAgICAgICAgICAgIHN3aXRjaCggJHJlYy0+dHlwZSApIHsKICAgICAgICAgICAgY2FzZSAkbWFtczo6RklFTERUWVBFX0lNQUdFOgogICAgICAgICAgICAgICAgaWYoIGlzc2V0KCRyZWMtPmhhdmVfZmlsZSkgJiYgJHJlYy0+aGF2ZV9maWxlICkgewogICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgYSBmaWxlIGluICRfRklMRVMgdGhhdCB3ZSBuZWVkIHRvIHVwbG9hZAogICAgICAgICAgICAgICAgICAgIGlmKCAhJG1hbXMtPmlzX2FsbG93ZWRfdXBsb2FkKCRyZWMtPnZhbCkgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJG1hbXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRmaWxlZXh0ZW5zaW9uJykpOwoKICAgICAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIGdldCB0aGUgcHJvcGVyIGxvY2F0aW9uLCBhbmQgbW92ZSBpdC4KICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGluZyB0aGUgZGlyZWN0b3J5IGlmIG5lY2Vzc2FyeS4KICAgICAgICAgICAgICAgICAgICAkZGVzdG5hbWUgPSAkbWFtcy0+Z2V0X3VwbG9hZF9maWxlbmFtZSgkdWlkLCRyZWMtPm5hbWUsJHJlYy0+dmFsKTsKICAgICAgICAgICAgICAgICAgICAkZGVzdGRpciA9ICAkbWFtcy0+Z2V0X3VwbG9hZF9kaXJuYW1lKCR1aWQpOwogICAgICAgICAgICAgICAgICAgIEBta2RpcigkZGVzdGRpciwwNzc3LFRSVUUpOwogICAgICAgICAgICAgICAgICAgIEB0b3VjaCgkZGVzdGRpci4nL2luZGV4Lmh0bWwnKTsKICAgICAgICAgICAgICAgICAgICBpZiggIWlzX3dyaXRhYmxlKCRkZXN0ZGlyKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkbWFtcy0+TGFuZygnZXJyb3JfZGVzdGluYXRpb25ub3R3cml0YWJsZScpKTsKICAgICAgICAgICAgICAgICAgICAkZGVzdCA9ICRkZXN0ZGlyLicvJy4kZGVzdG5hbWU7CiAgICAgICAgICAgICAgICAgICAgQGNtc19tb3ZlX3VwbG9hZGVkX2ZpbGUoJF9GSUxFU1skcmVjLT5oYXZlX2ZpbGVdWyd0bXBfbmFtZSddLCAkZGVzdCk7CiAgICAgICAgICAgICAgICAgICAgJHJlYy0+dmFsID0gJGRlc3RuYW1lOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJG1hbXMtPlNldFVzZXJQcm9wZXJ0eUZ1bGwoJG5hbWUsJHJlYy0+dmFsLCR1aWQpOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgJG1hbXMtPlNldFVzZXJQcm9wZXJ0eUZ1bGwoJG5hbWUsJHJlYy0+dmFsLCR1aWQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIGFuZC4uLiBkb25lLgogICAgICAgICR0cGwtPmFzc2lnbignZmluYWxfbWVzc2FnZScsJHRoaXMtPkxhbmcoJ21zZ19hZGRlZG90aGVyZ3JvdXAnKSk7CiAgICB9CiAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2Vycm9yX21lc3NhZ2UnLCRlLT5HZXRNZXNzYWdlKCkpOwogICAgfQp9CgokdHBsLT5kaXNwbGF5KCk7]]></data>
	</file>
	<file>
	  <filename>/action.confirm.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiNCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsDQojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpDQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byByZWdpc3RlciB0aGVtc2VsdmVzDQojICB3aXRoIGEgd2Vic2l0ZS4NCiMNCiMgVmVyc2lvbjogMS4xLjUNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZA0KIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUNCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUw0KIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4NCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTA0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiNFTkRfTElDRU5TRQ0KaWYoIWRlZmluZWQoJ0NNU19WRVJTSU9OJykpIHsgZXhpdDsgfQ0KDQokbWFtcyA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZShNT0RfTUFNUyk7DQoNCmlmKCEkbWFtcykNCnsNCiAgJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnZXJyb3Jfbm9mZXVzZXJzbW9kdWxlJykpOw0KICANCiAgcmV0dXJuOw0KfQ0KDQokdHBsbmFtZSA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCAndmVyaWZ5dGVtcGxhdGUnKTsNCg0KaWYoJHRwbG5hbWUpDQp7DQogICR0cGxuYW1lID0gJzo6JyAuICR0cGxuYW1lOw0KfQ0KZWxzZQ0Kew0KICAkdHBsbmFtZSA9ICdtYW1zcmVnX3JlZzJ0ZW1wbGF0ZSc7DQp9DQoNCiR0cGwgICAgICAgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJHRwbG5hbWUpOw0KJG5vY2FwdGNoYSA9IFx4dF9wYXJhbTo6Z2V0X2Jvb2woJHBhcmFtcywgJ25vY2FwdGNoYScsIDApOw0KJGNhcHRjaGEgICA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ2FwdGNoYScpOw0KDQppZihpc3NldCgkcGFyYW1zWydlcnJvciddKSkNCnsNCiAgJHRwbC0+YXNzaWduKCdlcnJvcicsICRwYXJhbXNbJ2Vycm9yJ10pOw0KfQ0KDQppZihpc3NldCgkcGFyYW1zWydtZXNzYWdlJ10pKQ0Kew0KICAkdHBsLT5hc3NpZ24oJ21lc3NhZ2UnLCAkcGFyYW1zWydtZXNzYWdlJ10pOw0KfQ0KDQokcGFyYW1zICAgICAgICAgPSByZWdfdXRpbHM6OmNsZWFuX3BhcmFtcygkcGFyYW1zKTsNCg0KJHVzZXJuYW1lICAgICAgID0gdHJpbShceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywgJ3VzZXJuYW1lJykpOw0KJHBhc3N3b3JkICAgICAgID0gdHJpbShceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywgJ3Bhc3N3b3JkJykpOw0KJGNvZGUgICAgICAgICAgID0gdHJpbShceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywgJ2lucHV0X2NvZGUnKSk7DQokbm9pbmxpbmUgICAgICAgPSBceHRfcGFyYW06OmdldF9pbnQoJHBhcmFtcywgJ25vaW5saW5lJywgMCk7DQokbm9maW5hbG1lc3NhZ2UgPSAoaW50KSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtYW1zcmVnX3NraXBfZmluYWxfbXNnJyk7DQoNCiRub2ZpbmFsbWVzc2FnZSA9IFx4dF9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCAnbm9maW5hbG1lc3NhZ2UnLCAkbm9maW5hbG1lc3NhZ2UpOw0KDQppZihpc3NldCgkcGFyYW1zWydmaW5hbCddKSkNCnsNCiAgJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnbWFtc3JlZ19maW5hbG1lc3NhZ2VfdGVtcGxhdGUnKTsNCiAgJHRwbC0+YXNzaWduKCd1c2VybmFtZScsICR1c2VybmFtZSk7DQogICR0cGwtPmFzc2lnbignaXNfbG9nZ2VkX2luJywgKGJvb2wpICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdsb2dpbl9hZnRlcnZlcmlmeScpKTsNCiAgJHRwbC0+ZGlzcGxheSgpOw0KICANCiAgcmV0dXJuOw0KfQ0KZWxzZSBpZihpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpDQp7DQogIHRyeQ0KICB7DQogICAgaWYoISR1c2VybmFtZSkNCiAgICB7DQogICAgICBpZigkbWFtcy0+R2V0UHJlZmVyZW5jZSgndXNlcm5hbWVfaXNfZW1haWwnKSkNCiAgICAgIHsNCiAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5nZW1haWwnKSk7DQogICAgICB9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3VzZXJuYW1lJykpOw0KICAgICAgfQ0KICAgIH0NCiAgICANCiAgICBpZighJHBhc3N3b3JkKQ0KICAgIHsNCiAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3Bhc3N3b3JkJykpOw0KICAgIH0NCiAgICANCiAgICBpZighJGNvZGUpDQogICAgew0KICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5nY29kZScpKTsNCiAgICB9DQogICAgDQogICAgLy8gZ2V0IGFuZCB2ZXJpZnkgdXNlciBkZXRhaWxzLg0KICAgICR0X3VpZCA9ICR0aGlzLT5HZXRUZW1wVXNlcklEKCR1c2VybmFtZSk7DQogICAgDQogICAgaWYoISR0X3VpZCkNCiAgICB7DQogICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX3VzZXJub3Rmb3VuZCcpKTsNCiAgICB9DQogICAgDQogICAgJHRfZGV0YWlscyA9ICR0aGlzLT5HZXRUZW1wVXNlckRldGFpbHMoJHRfdWlkKTsNCiAgICANCiAgICANCiAgICBpZighJHRfZGV0YWlscykNCiAgICB7DQogICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX3VzZXJub3Rmb3VuZCcpKTsNCiAgICB9DQogICAgDQogICAgaWYoISR0X2RldGFpbHNbJ2NvZGUnXSkNCiAgICB7DQogICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2FscmVhZHl2ZXJpZmllZCcpKTsNCiAgICB9DQogICAgDQogICAgaWYoJGNvZGUgIT0gJHRfZGV0YWlsc1snY29kZSddKQ0KICAgIHsNCiAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfY29kZXNkb250bWF0Y2gnKSk7DQogICAgfQ0KICANCiAgICBpZighJG5vY2FwdGNoYSkNCiAgICB7DQogICAgICAkY2FwdGNoYSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NhcHRjaGEnKTsNCiAgICAgIGlmKGlzX29iamVjdCgkY2FwdGNoYSkgJiYgISRjYXB0Y2hhLT5DaGVja0NhcHRjaGEoXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsICdpbnB1dF9jYXB0Y2hhJykpKQ0KICAgICAgew0KICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2NhcHRjaGFtaXNtYXRjaCcpKTsNCiAgICAgIH0NCiAgICB9DQogICAgDQogICAgLy8gYW5kIHZlcmlmeSB0aGUgcGFzc3dvcmQgdG9vDQogICAgJGVfa2V5ID0gJHRoaXMtPmdldF9lbmNyeXB0aW9uX2tleSgkdXNlcm5hbWUpOw0KICAgICRkX3B3ID0gJHRoaXMtPmRlY3J5cHQoJGVfa2V5LCAgYmFzZTY0X2RlY29kZSgkdF9kZXRhaWxzWydwYXNzd29yZCddKSk7DQoNCiAgICBpZigkZF9wdyAhPSAkcGFzc3dvcmQpDQogICAgew0KICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9pbmNvcnJlY3RwYXNzd29yZCcpKTsNCiAgICB9DQogICAgDQogICAgLy8gYWxsIGdvb2QsIG5vdyBkbyB0aGUgd29yaw0KICAgIGlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhdXRvY3JlYXRlX3VzZXInLCAxKSkNCiAgICB7DQogICAgICAkcmVzID0gJHRoaXMtPl9DcmVhdGVGcm9udGVuZFVzZXIoJHRfZGV0YWlsc1snaWQnXSwgJHVzZXJuYW1lLCAkcGFzc3dvcmQpOw0KICAgICAgDQogICAgICBpZighJHJlc1swXSkNCiAgICAgIHsNCiAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oJHJlc1sxXSk7DQogICAgICB9DQogICAgICANCiAgICAgICRtYW1zX3VpZCA9ICRyZXNbMV07DQogICAgICAkdGhpcy0+RGVsZXRlVGVtcFVzZXIoJHRfZGV0YWlsc1snaWQnXSk7DQogICAgICBhdWRpdCgnJywgJHRoaXMtPkdldE5hbWUoKSwgJHVzZXJuYW1lIC4gJyB2YWxpZGF0ZWQgdGhlaXIgYWNjb3VudCcpOw0KICAgICAgDQogICAgICAvLyB3aGVyZSBhcmUgd2UgZ29pbmcgYWZ0ZXIgdGhpcz8NCiAgICAgICR0cGwyID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoJ3N0cmluZzonIC4gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JlZGlyZWN0X2FmdGVydmVyaWZ5JykpOw0KICAgICAgJHRwbDItPmFzc2lnbigndWlkJywgJG1hbXNfdWlkKTsNCiAgICAgICR0cGwyLT5hc3NpZ24oJ3VzZXJuYW1lJywgJHVzZXJuYW1lKTsNCiAgICAgICR0bXAgPSB0cmltKCR0cGwyLT5mZXRjaCgpKTsNCiAgICAgIA0KICAgICAgaWYoJHRtcCkNCiAgICAgIHsNCiAgICAgICAgJGRlc3RfcGFnZSA9ICR0aGlzLT5yZXNvbHZlX2FsaWFzX29yX2lkKCR0bXApOw0KICAgICAgICANCiAgICAgICAgaWYoJGRlc3RfcGFnZSkNCiAgICAgICAgew0KICAgICAgICAgICRyZXR1cm5pZCA9ICRkZXN0X3BhZ2U7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgICAgICMgdHJ5IGJ1dCBkb24ndCBtYWtlIGEgYmlnIGZ1c3MgYWJvdXQgaXQgKEpNKQ0KICAgICAgdHJ5DQogICAgICB7DQogICAgICAgIC8vIHVzZXIgaXMgdmVyaWZpZWQsIGJ1dCBpcyBub3QgYXV0byBjcmVhdGVkLiAgc2VuZCBhZG1pbiBhbiBlbWFpbC4NCiAgICAgICAgJHRoaXMtPl9TZW5kUmVnaXN0cmF0aW9uTm90aWZpY2F0aW9uKCR1c2VybmFtZSk7DQogICAgICB9DQogICAgICBjYXRjaChcRXhjZXB0aW9uICRlKQ0KICAgICAgew0KICAgICAgICBcYXVkaXQoJycsICR0aGlzLT5HZXROYW1lKCksICRlLT5HZXRNZXNzYWdlKCkpOw0KICAgICAgfQ0KICAgIH0NCiAgICANCiAgICAvLyBkbyB3ZSBhdXRvbWF0aWNhbGx5IGxvZyB0aGlzIHVzZXIgaW4/DQogICAgaWYoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2F1dG9jcmVhdGVfdXNlcicsIDEpICYmICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdsb2dpbl9hZnRlcnZlcmlmeScpKQ0KICAgIHsNCiAgICAgICRyZXMgPSAkbWFtcy0+TG9naW4oJHVzZXJuYW1lLCAkcGFzc3dvcmQpOw0KICAgICAgDQogICAgICBpZighJHJlc1swXSkNCiAgICAgIHsNCiAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCRyZXNbMV0pOw0KICAgICAgfQ0KICAgIH0NCiAgICANCiAgICAjIG5vdyB3ZSBuZWVkIHRvIHJlbW92ZSB0aGUgY29kZSBmcm9tIHRoZSBkYXRhYmFzZSwgd2hpY2ggc2lnbmFscyB0aGF0IHRoZSB1c2VyIGhhcyBiZWVuIHZlcmlmaWVkLg0KICAgICR0aGlzLT5EZWxldGVUZW1wVXNlckNvZGUoJHRfZGV0YWlsc1snaWQnXSk7DQogICAgDQogICAgaWYoJG5vZmluYWxtZXNzYWdlKQ0KICAgIHsNCiAgICAgIC8vIHJlZGlyZWN0IG91dA0KICAgICAgJHRoaXMtPlJlZGlyZWN0Q29udGVudCgkcmV0dXJuaWQpOw0KICAgICAgDQogICAgICByZXR1cm47DQogICAgfQ0KICAgIA0KICAgIC8vIHJlZGlyZWN0IG91dCBvZiBoZXJlIHRvIGRpc3BsYXkgdGhlIGZpbmFsIG1lc3NhZ2UNCiAgICAkcGFybXMgICAgICAgICAgICAgICAgPSBbXTsNCiAgICAkcGFybXNbJ21yX3VzZXJuYW1lJ10gPSAkdXNlcm5hbWU7DQogICAgJHBhcm1zWydtcl9maW5hbCddICAgID0gMTsNCiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAndmVyaWZ5JywgJHJldHVybmlkLCAkcGFybXMpOw0KICB9DQogIGNhdGNoKFxFeGNlcHRpb24gJGUpDQogIHsNCiAgICAkdHBsLT5hc3NpZ24oJ2Vycm9yJywgMSk7DQogICAgJHRwbC0+YXNzaWduKCdtZXNzYWdlJywgJGUtPkdldE1lc3NhZ2UoKSk7DQogIH0NCn0gIyMjIyMjIyMjIyMjIyBFTkQgc3VibWl0ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KDQoNCiR0cGwtPmFzc2lnbigndW5mbGRsZW4nLCAkbWFtcy0+R2V0UHJlZmVyZW5jZSgndXNlcm5hbWVmbGRsZW5ndGgnKSk7DQokdHBsLT5hc3NpZ24oJ21heHVubGVuJywgJG1hbXMtPkdldFByZWZlcmVuY2UoJ21heF91c2VybmFtZWxlbmd0aCcpKTsNCiR0cGwtPmFzc2lnbigncHdmbGRsZW4nLCAkbWFtcy0+R2V0UHJlZmVyZW5jZSgncGFzc3dvcmRmbGRsZW5ndGgnKSk7DQokdHBsLT5hc3NpZ24oJ21heHB3bGVuJywgJG1hbXMtPkdldFByZWZlcmVuY2UoJ21heF9wYXNzd29yZGxlbmd0aCcpKTsNCiR0cGwtPmFzc2lnbigndXNlcm5hbWUnLCAkdXNlcm5hbWUpOw0KJHRwbC0+YXNzaWduKCdwYXNzd29yZCcsICRwYXNzd29yZCk7DQokdHBsLT5hc3NpZ24oJ2NvZGUnLCAkY29kZSk7DQoNCmlmKGlzX29iamVjdCgkY2FwdGNoYSkgJiYgISRub2NhcHRjaGEpDQp7DQogICR0ZXN0ID0gbWV0aG9kX2V4aXN0cygkY2FwdGNoYSwgJ05lZWRzSW5wdXRGaWVsZCcpID8gJGNhcHRjaGEtPk5lZWRzSW5wdXRGaWVsZCgpIDogVFJVRTsNCiAgJHRwbC0+YXNzaWduKCdjYXB0Y2hhX3RpdGxlJywgJHRoaXMtPkxhbmcoJ2NhcHRjaGFfdGl0bGUnKSk7DQogIC8vJHRwbC0+YXNzaWduKCdjYXB0Y2hhJywgJGNhcHRjaGEtPmdldENhcHRjaGEoKSk7DQogIC8vJHRwbC0+YXNzaWduKCdpbnB1dF9jYXB0Y2hhJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdtcl9pbnB1dF9jYXB0Y2hhJywgJycsIDEwKSk7DQogICR0cGwtPmFzc2lnbignbmVlZF9jYXB0Y2hhX2lucHV0JywgJHRlc3QpOw0KfQ0KDQokaW5saW5lID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2lubGluZV9mb3JtcycsIFRSVUUpOw0KDQppZigkbm9pbmxpbmUpIHsgJGlubGluZSA9IEZBTFNFOyB9DQoNCiRwYXJtcyA9IFtdOw0KaWYoaXNzZXQoJHBhcmFtc1snbm9pbmxpbmUnXSkpDQp7DQogICRwYXJtc1snbm9pbmxpbmUnXSA9ICRwYXJhbXNbJ25vaW5saW5lJ107DQp9DQoNCmlmKGlzc2V0KCRwYXJhbXNbJ25vZmluYWxtZXNzYWdlJ10pKQ0Kew0KICAkcGFybXNbJ25vZmluYWxtZXNzYWdlJ10gPSAkcGFyYW1zWydub2ZpbmFsbWVzc2FnZSddOw0KfQ0KDQokdHBsLT5hc3NpZ24oJ3N0YXJ0Zm9ybScsICR0aGlzLT5YVENyZWF0ZUZyb250ZW5kRm9ybVN0YXJ0KCRpZCwgJ3ZlcmlmeScsICRyZXR1cm5pZCwgJHBhcm1zLCAkaW5saW5lKSk7DQokdHBsLT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsNCg0KJHRwbC0+YXNzaWduKCd0aXRsZScsICR0aGlzLT5MYW5nKCd0aXRsZV92ZXJpZnlyZWdpc3RyYXRpb24nKSk7DQoNCmlmKCRtYW1zLT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZV9pc19lbWFpbCcpKQ0Kew0KICAkdHBsLT5hc3NpZ24oJ3Byb21wdF91c2VybmFtZScsICR0aGlzLT5MYW5nKCdlbWFpbCcpKTsNCn0NCmVsc2UNCnsNCiAgJHRwbC0+YXNzaWduKCdwcm9tcHRfdXNlcm5hbWUnLCAkdGhpcy0+TGFuZygndXNlcm5hbWUnKSk7DQp9DQoNCi8qIGRvbid0IG5lZWQgdGhpcyBzdHVmZiBhbnltb3JlLCBidXQga2VlcCBpdCBmb3IgYSB3aGlsZSwgZm9yIGJhY2t3YXJkcyBjb21wYXQgKi8NCiR0cGwtPmFzc2lnbigNCiAgJ2lucHV0X3VzZXJuYW1lJywNCiAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgNCiAgICAkaWQsICdtcl9pbnB1dF91c2VybmFtZScsDQogICAgJHVzZXJuYW1lLA0KICAgICRtYW1zLT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZWZsZGxlbmd0aCcpLA0KICAgICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdtYXhfdXNlcm5hbWVsZW5ndGgnKQ0KICApDQopOw0KDQokdHBsLT5hc3NpZ24oJ3Byb21wdF9wYXNzd29yZCcsICR0aGlzLT5MYW5nKCdwYXNzd29yZCcpKTsNCiR0cGwtPmFzc2lnbigNCiAgJ2lucHV0X3Bhc3N3b3JkJywNCiAgJHRoaXMtPkNyZWF0ZUlucHV0UGFzc3dvcmQoDQogICAgJGlkLCAnbXJfaW5wdXRfcGFzc3dvcmQnLA0KICAgICRwYXNzd29yZCwNCiAgICAkbWFtcy0+R2V0UHJlZmVyZW5jZSgncGFzc3dvcmRmbGRsZW5ndGgnKSwNCiAgICAkbWFtcy0+R2V0UHJlZmVyZW5jZSgnbWF4X3Bhc3N3b3JkbGVuZ3RoJykNCiAgKQ0KKTsNCg0KJGNhcHRjaGEgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NhcHRjaGEnKTsNCmlmKGlzX29iamVjdCgkY2FwdGNoYSkgJiYgISRub2NhcHRjaGEpDQp7DQogICR0ZXN0ID0gbWV0aG9kX2V4aXN0cygkY2FwdGNoYSwgJ05lZWRzSW5wdXRGaWVsZCcpID8gJGNhcHRjaGEtPk5lZWRzSW5wdXRGaWVsZCgpIDogVFJVRTsNCiAgJHRwbC0+YXNzaWduKCdjYXB0Y2hhX3RpdGxlJywgJHRoaXMtPkxhbmcoJ2NhcHRjaGFfdGl0bGUnKSk7DQogICR0cGwtPmFzc2lnbignY2FwdGNoYScsICRjYXB0Y2hhLT5nZXRDYXB0Y2hhKCkpOw0KICAkdHBsLT5hc3NpZ24oJ2lucHV0X2NhcHRjaGEnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ21yX2lucHV0X2NhcHRjaGEnLCAnJywgMTApKTsNCiAgJHRwbC0+YXNzaWduKCduZWVkX2NhcHRjaGFfaW5wdXQnLCAkdGVzdCk7DQp9DQokdHBsLT5hc3NpZ24oJ3Byb21wdF9jb2RlJywgJHRoaXMtPkxhbmcoJ2NvZGUnKSk7DQokdHBsLT5hc3NpZ24oJ2lucHV0X2NvZGUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ21yX2lucHV0X2NvZGUnLCAkY29kZSwgMzAsIDMwKSk7DQokdHBsLT5hc3NpZ24oJ3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdtcl9zdWJtaXQnLCAkdGhpcy0+TGFuZygnc3VibWl0JykpKTsNCiR0cGwtPmRpc3BsYXkoKTsNCg0KIw0KIyBFT0YNCiM/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKICAjQkVHSU5fTElDRU5TRQogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiAgIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQogICMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHVzZXJzIHRvIHJlZ2lzdGVyIHRoZW1zZWx2ZXMKICAjICB3aXRoIGEgd2Vic2l0ZS4KICAjCiAgIyBWZXJzaW9uOiAxLjEuNQogICMKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKICAjIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKICAjCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAjCiAgIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiAgIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogICMKICAjIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAogICMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiAgIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiAgIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KICAjIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiAgIwogICMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICAjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAgIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogICMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKICAjIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKICAjCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAjRU5EX0xJQ0VOU0UKICBpZighZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSkgeyBleGl0OyB9CiAgCiAgJG1vZGUgPSBOVUxMOwogIC8vaWYoICFpc3NldCggJHBhcmFtc1snZ3JvdXAnXSApICkgewogIC8vICAgIGlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dzZWxlY3Rwa2cnKSA+IDAgKSAkbW9kZSA9ICdzZWxwa2cnOwogIC8vfQogIAogIGlmKGlzc2V0KCRwYXJhbXNbJ21yX2RhdGEnXSkpCiAgewogICAgJG1vZGUgPSAndmVyaWZ5JzsKICB9CiAgCiAgaWYoaXNzZXQoJHBhcmFtc1snbW9kZSddKSkKICB7CiAgICAkbW9kZSA9ICRwYXJhbXNbJ21vZGUnXTsKICB9CiAgCiAgaWYoISRtb2RlKQogIHsKICAgICRtb2RlID0gJ3NpZ251cCc7CiAgfQogIAogIHN3aXRjaCgkbW9kZSkKICB7CiAgICAvL2Nhc2UgJ3NlbHBrZyc6CiAgICBjYXNlICdzaWdudXAnOgogICAgICAkdGhpcy0+RG9BY3Rpb24oJG1vZGUsICRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsKICAgICAgYnJlYWs7CiAgICAKICAgIGNhc2UgJ3ZlcmlmeSc6CiAgICAgIGluY2x1ZGUoX19ESVJfXyAuICcvYWN0aW9uLnZlcmlmeS5waHAnKTsKICAgICAgYnJlYWs7CiAgICAKICAgIGNhc2UgJ2xvc3RlbWFpbCc6CiAgICBjYXNlICdzZW5kYW5vdGhlcmVtYWlsJzoKICAgIGNhc2UgJ3NlbmRtb3JlbWFpbCc6CiAgICAgIGluY2x1ZGUoX19ESVJfXyAuICcvYWN0aW9uLmxvc3RlbWFpbC5waHAnKTsKICAgICAgLy9fVXNlckRpc3BsYXlMb3N0UmVnRW1haWxGb3JtKCAkdGhpcywgJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQgKTsKICAgICAgYnJlYWs7CiAgICAKICAgIGRlZmF1bHQ6CiAgICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSgkaWQsICcnLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkbW9kZScpKTsKICAgICAgYnJlYWs7CiAgfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMS41CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIHsgZXhpdDsgfQoKaWYoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgKSB7IGV4aXQ7IH0KCnJlcXVpcmVfb25jZShfX0RJUl9fLicvZnVuY3Rpb25zLmFkbWlucGFuZWwucGhwJyk7CgovLyB0aGUgdGFicwoKLy8gY3J1ZGUgaGFjayAoSk06IFdURj8/PykKJHR4dCA9IDw8PEVPVAo8c3R5bGU+CnRleHRhcmVhLmNtc190ZXh0YXJlYSB7CiAgIHdpZHRoOiAxMCU7CiAgIGhlaWdodDogMWVtOwp9Cjwvc3R5bGU+CkVPVDsKCiRjdXJyZW50X3RhYiA9IGlzc2V0KCRwYXJhbXNbJ19fYWN0aXZldGFiJ10pID8gJHBhcmFtc1snX19hY3RpdmV0YWInXSA6ICdyZWcxdGVtcGxhdGUnOwoKZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7CgppZigkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgUmVnaXN0ZXJpbmcgVXNlcnMnKSkKewogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignYWRtaW51c2VycycsICR0aGlzLT5MYW5nKCd1c2VycycpKTsKfQoKaWYoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpKQp7CiAgLyplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3NlbHBrZ3RlbXBsYXRlJywkdGhpcy0+TGFuZygnc2VscGtnX3RlbXBsYXRlJykpOyovCiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdyZWcxdGVtcGxhdGUnLCAkdGhpcy0+TGFuZygncmVnaXN0cmF0aW9uMV90ZW1wbGF0ZScpLCAkY3VycmVudF90YWIgPT0gJ3JlZzF0ZW1wbGF0ZScpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigncmVnMnRlbXBsYXRlJywgJHRoaXMtPkxhbmcoJ3ZlcmlmaWNhdGlvbl90ZW1wbGF0ZScpLCAkY3VycmVudF90YWIgPT0gJ3JlZzJ0ZW1wbGF0ZScpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZW1haWxjb25maXJtX3RlbXBsYXRlJywgJHRoaXMtPkxhbmcoJ2VtYWlsY29uZmlybV90ZW1wbGF0ZScpLCAkY3VycmVudF90YWIgPT0gJ2VtYWlsY29uZmlybV90ZW1wbGF0ZScpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZW1haWx1c2VyZWRpdGVkX3RlbXBsYXRlJywgJHRoaXMtPkxhbmcoJ2VtYWlsdXNlcmVkaXRlZF90ZW1wbGF0ZScpLCAkY3VycmVudF90YWIgPT0gJ2VtYWlsdXNlcmVkaXRlZF90ZW1wbGF0ZScpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZmluYWxtZXNzYWdlX3RlbXBsYXRlJywgJHRoaXMtPkxhbmcoJ2ZpbmFsbWVzc2FnZV90ZW1wbGF0ZScpLCAkY3VycmVudF90YWIgPT0gJ2ZpbmFsbWVzc2FnZV90ZW1wbGF0ZScpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignc2VuZGFub3RoZXJlbWFpbF90ZW1wbGF0ZScsICR0aGlzLT5MYW5nKCdzZW5kYW5vdGhlcmVtYWlsX3RlbXBsYXRlJyksICRjdXJyZW50X3RhYiA9PSAnc2VuZGFub3RoZXJlbWFpbF90ZW1wbGF0ZScpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignYW5vdGhlcmdyb3VwX3RlbXBsYXRlJywgJHRoaXMtPkxhbmcoJ2Fub3RoZXJncm91cF90ZW1wbGF0ZScpLCAkY3VycmVudF90YWIgPT0gJ2Fub3RoZXJncm91cF90ZW1wbGF0ZScpOwp9CgppZigkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpKQp7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdwcmVmZXJlbmNlcycsICR0aGlzLT5MYW5nKCdwcmVmZXJlbmNlcycpLCAkY3VycmVudF90YWIgPT0gJ3ByZWZlcmVuY2VzJyk7CiAgLyplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3JlZ3BrZ3MnLCR0aGlzLT5MYW5nKCdyZWdwa2dzX3RhYicpKTsqLwp9CmVjaG8gJHRoaXMtPkVuZFRhYkhlYWRlcnMoKTsKCi8vIHRoZSBjb250ZW50IG9mIHRoZSB0YWJzCmVjaG8gJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpOwoKaWYoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTWFuYWdlIFJlZ2lzdGVyaW5nIFVzZXJzJykpCnsKICBlY2hvICR0aGlzLT5TdGFydFRhYignYWRtaW51c2VycycsICRwYXJhbXMpOwogIGluY2x1ZGUoX19ESVJfXyAuICcvZnVuY3Rpb24uYWRtaW5fdXNlcnN0YWIucGhwJyk7CiAgZWNobyAkdGhpcy0+RW5kVGFiKCk7Cn0KCmlmKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSkKewogIC8vICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdzZWxwa2d0ZW1wbGF0ZScsJHBhcmFtcyk7CiAgLy8gICAgaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fc2VscGtnX3RlbXBsYXRlX3RhYi5waHAnKTsKICAvLyAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKICAKICBlY2hvICR0aGlzLT5TdGFydFRhYigncmVnMXRlbXBsYXRlJywgJHBhcmFtcyk7CiAgaW5jbHVkZShfX0RJUl9fIC4gJy9hY3Rpb24uYWRtaW5fcmVnMXRlbXBsYXRlX3RhYi5waHAnKTsKICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKICAKICBlY2hvICR0aGlzLT5TdGFydFRhYigncmVnMnRlbXBsYXRlJywgJHBhcmFtcyk7CiAgX0Rpc3BsYXlBZG1pblJlZzJUZW1wbGF0ZVRhYigkdGhpcywgJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOwogIGVjaG8gJHRoaXMtPkVuZFRhYigpOwogIAogIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdlbWFpbGNvbmZpcm1fdGVtcGxhdGUnLCAkcGFyYW1zKTsKICBfRGlzcGxheUFkbWluRW1haWxDb25maXJtYXRpb25UZW1wbGF0ZVRhYigkdGhpcywgJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOwogIGVjaG8gJHRoaXMtPkVuZFRhYigpOwogIAogIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdlbWFpbHVzZXJlZGl0ZWRfdGVtcGxhdGUnLCAkcGFyYW1zKTsKICBfRGlzcGxheUFkbWluRW1haWxVc2VyRWRpdGVkVGVtcGxhdGVUYWIoJHRoaXMsICRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsKICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKICAKICBlY2hvICR0aGlzLT5TdGFydFRhYignZmluYWxtZXNzYWdlX3RlbXBsYXRlJywgJHBhcmFtcyk7CiAgX0Rpc3BsYXlBZG1pbkZpbmFsTWVzc2FnZVRlbXBsYXRlVGFiKCR0aGlzLCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7CiAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CiAgCiAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3NlbmRhbm90aGVyZW1haWxfdGVtcGxhdGUnLCAkcGFyYW1zKTsKICBfRGlzcGxheUFkbWluU2VuZEFub3RoZXJFbWFpbFRlbXBsYXRlVGFiKCR0aGlzLCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7CiAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CiAgCiAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2Fub3RoZXJncm91cF90ZW1wbGF0ZScsICRwYXJhbXMpOwogIGluY2x1ZGUoX19ESVJfXyAuICcvZnVuY3Rpb24uYWRtaW5fYW5vdGhlcmdyb3VwX3RlbXBsYXRlLnBocCcpOwogIGVjaG8gJHRoaXMtPkVuZFRhYigpOwp9CgppZigkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpKQp7CiAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3ByZWZlcmVuY2VzJywgJHBhcmFtcyk7CiAgaW5jbHVkZShfX0RJUl9fIC4gJy9mdW5jdGlvbi5hZG1pbl9wcmVmc3RhYi5waHAnKTsKICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKICAKICAvLyAgICBlY2hvICR0aGlzLT5TdGFydFRhYigncmVncGtncycsJHBhcmFtcyk7CiAgLy8gICAgaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fcGFpZHJlZ2lzdHJhdGlvbl90YWIucGhwJyk7CiAgLy8gICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7Cn0KCmVjaG8gJHRoaXMtPkVuZFRhYkNvbnRlbnQoKTsKCgoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/action.do_edituser.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMS41CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIHsgZXhpdDsgfQoKaWYoIGlzc2V0KCAkcGFyYW1zWydzdWJtaXQnXSApKQp7CiAgaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgUmVnaXN0ZXJpbmcgVXNlcnMnKSApICB7IHJldHVybjsgfQogIAogIGlmKCFpc3NldCgkcGFyYW1zWyd1c2VyX2lkJ10pKQogIHsKICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpKTsKICAgIAogICAgcmV0dXJuOwogIH0KICAKICAkbWFtcyA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnTUFNUycpOwogIAogIGlmKCEkbWFtcykKICB7CiAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoJGlkLCAnJywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnZXJyb3Jfbm9mZXVzZXJzbW9kdWxlJykpOwogICAgCiAgICByZXR1cm47CiAgfQogIAogIC8vIGNoZWNrIGZvciByZXF1aXJlZCBwYXJhbWV0ZXJzCiAgaWYoIWlzc2V0KCRwYXJhbXNbJ2dyb3VwX2lkJ10pKQogIHsKICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpKTsKICAgIAogICAgcmV0dXJuOwogIH0KICAKICAvLyBDaGVjayB0byBlbnN1cmUgYWxsIHJlcXVpcmVkIGZpZWxkcyBoYXZlIHNvbWUgY29udGVudAogIC8vIGFuZCB2YWxpZGF0ZSBlbWFpbCBmaWVsZHMKICBmb3JlYWNoKCRwYXJhbXMgYXMgJGtleSA9PiAkdmFsKQogIHsKICAgIGlmKHByZWdfbWF0Y2goJy9eaGlkZGVuXy8nLCAka2V5KSkKICAgIHsKICAgICAgJHByb3BuYW1lID0gc3Vic3RyKCRrZXksIHN0cmxlbignaGlkZGVuXycpKTsKICAgICAgaWYoJHByb3BuYW1lID09ICdwYXNzd29yZCcgfHwgJHByb3BuYW1lID09ICdyZXBlYXRwYXNzd29yZCcpIHsgY29udGludWU7IH0KICAgICAgCiAgICAgICRhcnIgICAgICA9IGV4cGxvZGUoIjsiLCAkcGFyYW1zWyRrZXldKTsKICAgICAgJHJlcXVpcmVkID0gJGFyclszXTsKICAgICAgaWYoMiA9PSAkcmVxdWlyZWQpCiAgICAgIHsKICAgICAgICBpZignOCcgPT0gJGFyclsxXSkKICAgICAgICB7CiAgICAgICAgICBpZigKICAgICAgICAgICAgIWlzc2V0KCRwYXJhbXNbJ2lucHV0XycgLiAkcHJvcG5hbWUgLiAnTW9udGgnXSkgfHwKICAgICAgICAgICAgIWlzc2V0KCRwYXJhbXNbJ2lucHV0XycgLiAkcHJvcG5hbWUgLiAnRGF5J10pIHx8CiAgICAgICAgICAgICFpc3NldCgkcGFyYW1zWydpbnB1dF8nIC4gJHByb3BuYW1lIC4gJ1llYXInXSkKICAgICAgICAgICkKICAgICAgICAgIHsKICAgICAgICAgICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9yZXF1aXJlZGZpZWxkJywgJHByb3BuYW1lKSk7CiAgICAgICAgICAgICR0aGlzLT5teVJlZGlyZWN0KCRpZCwgJ2VkaXR0ZW1wdXNlcicsICRyZXR1cm5pZCwgJHBhcmFtcyk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoIWlzc2V0KCRwYXJhbXNbJ2lucHV0XycgLiAkcHJvcG5hbWVdKSB8fCAkcGFyYW1zWydpbnB1dF8nIC4gJHByb3BuYW1lXSA9PSAnJykKICAgICAgICB7CiAgICAgICAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX3JlcXVpcmVkZmllbGQnLCAkcHJvcG5hbWUpKTsKICAgICAgICAgICR0aGlzLT5teVJlZGlyZWN0KCRpZCwgJ2VkaXR0ZW1wdXNlcicsICRyZXR1cm5pZCwgJHBhcmFtcyk7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICBpZigKICAgICAgICAkYXJyWzFdID09ICcyJyAmJiBpc3NldCgkcGFyYW1zWydpbnB1dF8nIC4gJHByb3BuYW1lXSkgJiYKICAgICAgICAkcGFyYW1zWydpbnB1dF8nIC4gJHByb3BuYW1lXSAhPSAnJwogICAgICApCiAgICAgIHsKICAgICAgICAkcmVzdWx0ID0gJG1hbXMtPklzVmFsaWRFbWFpbEFkZHJlc3MoJHBhcmFtc1snaW5wdXRfJyAuICRwcm9wbmFtZV0pOwogICAgICAgIGlmKCRyZXN1bHRbMF0gPT0gRkFMU0UpCiAgICAgICAgewogICAgICAgICAgJHRoaXMtPlNldEVycm9yKCRyZXN1bHRbMV0pOwogICAgICAgICAgJHRoaXMtPm15UmVkaXJlY3QoJGlkLCAnZWRpdHRlbXB1c2VyJywgJHJldHVybmlkLCAkcGFyYW1zKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9CiAgCiAgLy8gZ2V0IHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQKICAkdXNlcm5hbWUgICAgICAgPSB0cmltKFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCAnaW5wdXRfdXNlcm5hbWUnKSk7CiAgJHBhc3N3b3JkICAgICAgID0gdHJpbShceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywgJ2lucHV0X3Bhc3N3b3JkJykpOwogICRyZXBlYXRwYXNzd29yZCA9IHRyaW0oXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsICdpbnB1dF9yZXBlYXRwYXNzd29yZCcpKTsKICAKICAvLyBjaGVjayBpZiB0aGUgdXNlcm5hbWUgaXMgdmFsaWQgb3IgdGFrZW4KICBpZigkdXNlcm5hbWUgPT0gJycpCiAgewogICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9lbXB0eXVzZXJuYW1lJykpOwogICAgJHRoaXMtPm15UmVkaXJlY3QoJGlkLCAnZWRpdHRlbXB1c2VyJywgJHJldHVybmlkLCAkcGFyYW1zKTsKICAgIAogICAgcmV0dXJuOwogIH0KICAKICBpZighJG1hbXMtPklzVmFsaWRVc2VybmFtZSgkdXNlcm5hbWUpKQogIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHVzZXJuYW1lJykpOwogICAgJHRoaXMtPm15UmVkaXJlY3QoJGlkLCAnZWRpdHRlbXB1c2VyJywgJHJldHVybmlkLCAkcGFyYW1zKTsKICAgIAogICAgcmV0dXJuOwogIH0KICAKICAkZGV0YWlscyA9ICR0aGlzLT5HZXRUZW1wVXNlckRldGFpbHMoKGludCkkcGFyYW1zWyd1c2VyX2lkJ10pOwogIAogIGlmKCFpc19hcnJheSgkZGV0YWlscykpCiAgewogICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl91c2Vybm90Zm91bmQnKSk7CiAgICAkdGhpcy0+bXlSZWRpcmVjdCgkaWQsICdlZGl0dGVtcHVzZXInLCAkcmV0dXJuaWQsICRwYXJhbXMpOwogIH0KICAKICAkdWlkID0gJGRldGFpbHNbJ2lkJ107CiAgaWYoJGRldGFpbHNbJ3VzZXJuYW1lJ10gIT0gJHVzZXJuYW1lKQogIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfdXNlcm5hbWV0YWtlbicpKTsKICAgICR0aGlzLT5teVJlZGlyZWN0KCRpZCwgJ2VkaXR0ZW1wdXNlcicsICRyZXR1cm5pZCwgJHBhcmFtcyk7CiAgfQogIAogIC8vIGNoZWNrIGlmIHRoZSBwYXNzd29yZHMgbWF0Y2ggb3IgaWYgdGhleSdyZSB2YWxpZAogIC8vIGlmIHRoZXkncmUgc2V0IGF0YWxsCiAgaWYoJHBhc3N3b3JkICE9ICcnKQogIHsKICAgIGlmKCRwYXNzd29yZCAhPSAkcmVwZWF0cGFzc3dvcmQpCiAgICB7CiAgICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfcGFzc3dvcmRzZG9udG1hdGNoJykpOwogICAgICAkdGhpcy0+bXlSZWRpcmVjdCgkaWQsICdlZGl0dGVtcHVzZXInLCAkcmV0dXJuaWQsICRwYXJhbXMpOwogICAgICAKICAgICAgcmV0dXJuOwogICAgfQogICAgCiAgICBpZighJG1hbXMtPklzVmFsaWRQYXNzd29yZCgkcGFzc3dvcmQpKQogICAgewogICAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRwYXNzd29yZCcpKTsKICAgICAgJHRoaXMtPm15UmVkaXJlY3QoJGlkLCAnZWRpdHRlbXB1c2VyJywgJHJldHVybmlkLCAkcGFyYW1zKTsKICAgICAgCiAgICAgIHJldHVybjsKICAgIH0KICB9CiAgCiAgLy8gZmluZCBhbiBlbWFpbCBmaWVsZC4uLiBzb21ldGhpbmcgdGhhdCdzIG5hbWUgaGFzIGVtYWlsIGluIGl0CiAgLy8gb3IgaXMgb2YgdHlwZSAyCiAgJGVtYWlsX2ZpZWxkID0gJ2lucHV0X3VzZXJuYW1lJzsKICBpZighJG1hbXMtPkdldFByZWZlcmVuY2UoJ3VzZXJuYW1lX2lzX2VtYWlsJykpCiAgewogICAgZm9yZWFjaCgkcGFyYW1zIGFzICRrZXkgPT4gJHZhbCkKICAgIHsKICAgICAgaWYocHJlZ19tYXRjaCgnL15oaWRkZW5fLycsICRrZXkpKQogICAgICB7CiAgICAgICAgJHByb3BuYW1lID0gc3Vic3RyKCRrZXksIHN0cmxlbignaGlkZGVuXycpKTsKICAgICAgICAkYXJyICAgICAgPSBleHBsb2RlKCI7IiwgJHBhcmFtc1ska2V5XSk7CiAgICAgICAgCiAgICAgICAgaWYocHJlZ19tYXRjaCgnL2VtYWlsL2knLCAkYXJyWzBdKSB8fCAkYXJyWzFdID09IDIpCiAgICAgICAgewogICAgICAgICAgLy8gZm91bmQgc29tZXRoaW5nIHJlc2VtYmxpbmcgYW4gZW1haWwgZmllbGQKICAgICAgICAgICRlbWFpbF9maWVsZCA9ICdpbnB1dF8nIC4gJHByb3BuYW1lOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICBpZigkZW1haWxfZmllbGQgPT0gJycpCiAgICB7CiAgICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3Jfbm9lbWFpbGFkZHJlc3MnKSk7CiAgICAgICR0aGlzLT5teVJlZGlyZWN0KCRpZCwgJ2VkaXR0ZW1wdXNlcicsICRyZXR1cm5pZCwgJHBhcmFtcyk7CiAgICAgIAogICAgICByZXR1cm47CiAgICB9CiAgfQogIAogIGZvcmVhY2goJHBhcmFtcyBhcyAka2V5ID0+ICR2YWwpCiAgewogICAgaWYocHJlZ19tYXRjaCgnL15oaWRkZW5fLycsICRrZXkpKQogICAgewogICAgICAkcHJvcG5hbWUgPSBzdWJzdHIoJGtleSwgc3RybGVuKCdoaWRkZW5fJykpOwogICAgICAkYXJyICAgICAgPSBleHBsb2RlKCI7IiwgJHBhcmFtc1ska2V5XSk7CiAgICAgIGlmKAogICAgICAgICRhcnJbMV0gPT0gNSAmJiBpc3NldCgkcGFyYW1zWydpbnB1dF8nIC4gJHByb3BuYW1lXSkgJiYKICAgICAgICBpc19hcnJheSgkcGFyYW1zWydpbnB1dF8nIC4gJHByb3BuYW1lXSkKICAgICAgKQogICAgICB7CiAgICAgICAgLy8gZm9yIGFueSB0eXBlIDUgcHJvcGVydGllcywgd2UgY2hhbmdlIHRoZSBhcnJheSByZXN1bHQgaW50byBhbiBlbmNvZGVkIHN0cmluZwogICAgICAgICRwYXJhbXNbJ2lucHV0XycgLiAkcHJvcG5hbWVdID0gaW1wbG9kZSgnLCcsICRwYXJhbXNbJ2lucHV0XycgLiAkcHJvcG5hbWVdKTsKICAgICAgfQogICAgICBlbHNlIGlmKCRhcnJbMV0gPT0gOCkKICAgICAgewogICAgICAgIC8vIGZvciBhbnkgZGF0ZSBwcm9wZXJ0aWVzLCB3ZSBoYXZlIHRvIGFzc2VtYmxlIHRoZW0uCiAgICAgICAgJHBhcmFtc1snaW5wdXRfJyAuICRwcm9wbmFtZV0gPSBta3RpbWUoCiAgICAgICAgICAwLCAwLCAwLAogICAgICAgICAgJHBhcmFtc1snaW5wdXRfJyAuICRwcm9wbmFtZSAuICdNb250aCddLAogICAgICAgICAgJHBhcmFtc1snaW5wdXRfJyAuICRwcm9wbmFtZSAuICdEYXknXSwKICAgICAgICAgICRwYXJhbXNbJ2lucHV0XycgLiAkcHJvcG5hbWUgLiAnWWVhciddCiAgICAgICAgKTsKICAgICAgfQogICAgfQogIH0KICAKICAvLyBoYXZlIHRvIGFkZCB0aGUgcmVjb3JkIHRvIHRoZSBkYXRhYmFzZSBzbyB0aGF0IHdlIGtub3cgd2hvIHRoaXMgZ3V5IGlzCiAgLy8gd2hlbiBoZSBjb21lcyBiYWNrCiAgJHJldHVybiA9ICR0aGlzLT5FZGl0VGVtcFVzZXIoJHBhcmFtc1sndXNlcl9pZCddLCAkdXNlcm5hbWUsICRwYXNzd29yZCwgJGRldGFpbHNbJ2NvZGUnXSk7CiAgaWYoISRyZXR1cm5bMF0pCiAgewogICAgJHRoaXMtPlNldEVycm9yKCRyZXR1cm5bMV0pOwogICAgJHRoaXMtPm15UmVkaXJlY3QoJGlkLCAnZWRpdHRlbXB1c2VyJywgJHJldHVybmlkLCAkcGFyYW1zKTsKICAgIAogICAgcmV0dXJuOwogIH0KICAKICAvLyByZW1vdmUgYW55IGV4aXN0aW5nIHByb3BlcnRpZXMKICAkdGhpcy0+RGVsZXRlVGVtcFVzZXJQcm9wZXJ0aWVzKCRwYXJhbXNbJ3VzZXJfaWQnXSk7CiAgCiAgLy8gYW5kIGFkZCBoaXMgcHJvcGVydGllcyB0b28sCiAgLy8gYnV0IGZpcnN0IHdlIHJlbW92ZSB0aGUgb25lcyB3ZSd2ZSBoYW5kbGVkIGFscmVhZHkKICAkdG1wdWlkID0gJHBhcmFtc1sndXNlcl9pZCddOwogIC8qCiAgdW5zZXQoJHBhcmFtc1snaW5wdXRfdXNlcm5hbWUnXSApOwogICovCiAgdW5zZXQoJHBhcmFtc1snaGlkZGVuX3VzZXJuYW1lJ10pOwogIHVuc2V0KCRwYXJhbXNbJ2lucHV0X3Bhc3N3b3JkJ10pOwogIHVuc2V0KCRwYXJhbXNbJ2hpZGRlbl9wYXNzd29yZCddKTsKICB1bnNldCgkcGFyYW1zWydpbnB1dF9yZXBlYXRwYXNzd29yZCddKTsKICB1bnNldCgkcGFyYW1zWydoaWRkZW5fcmVwZWF0cGFzc3dvcmQnXSk7CiAgCiAgZm9yZWFjaCgkcGFyYW1zIGFzICRrZXkgPT4gJHZhbCkKICB7CiAgICBpZihwcmVnX21hdGNoKCcvXmhpZGRlbl8vJywgJGtleSkpCiAgICB7CiAgICAgICRwcm9wbmFtZSA9IHN1YnN0cigka2V5LCBzdHJsZW4oJ2hpZGRlbl8nKSk7CiAgICAgIGlmKCFpc3NldCgkcGFyYW1zWydpbnB1dF8nIC4gJHByb3BuYW1lXSkpIHsgY29udGludWU7IH0KICAgICAgJHJldHVybiA9ICR0aGlzLT5BZGRUZW1wVXNlclByb3BlcnR5KCR0bXB1aWQsICRwcm9wbmFtZSwgJHBhcmFtc1snaW5wdXRfJyAuICRwcm9wbmFtZV0pOwogICAgICAKICAgICAgaWYoISRyZXR1cm5bMF0pCiAgICAgIHsKICAgICAgICAvLyBub3cgd2UgaGF2ZSBhbiBpc3N1ZSB0byBmaWd1cmUgb3V0CiAgICAgICAgJHRoaXMtPlNldEVycm9yKCRyZXR1cm5bMV0pOwogICAgICAgICR0aGlzLT5teVJlZGlyZWN0KCRpZCwgJ2VkaXR0ZW1wdXNlcicsICRyZXR1cm5pZCwgJHBhcmFtcyk7CiAgICAgICAgCiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICB9CiAgfQogIAogICRwdXNobGl2ZSA9IFx4dF9wYXJhbTo6Z2V0X2Jvb2woJHBhcmFtcywgJ3B1c2hsaXZlJyk7CiAgCiAgIyBwdXNoIHRoZSB1c2VyIGxpdmUgaWYgcmVxdWVzdGVkLCBidXQgdGhlbiB3ZSBkb24ndCBzZW5kIGFuIGVtYWlsCiAgaWYoJHB1c2hsaXZlKQogIHsKICAgICR0aGlzLT5yZWRpcmVjdCgkaWQsICdwdXNodXNlcmxpdmUnLCAkcmV0dXJuaWQsIFsndXNlcl9pZCcgPT4gJHBhcmFtc1sndXNlcl9pZCddXSk7CiAgICAKICAgIHJldHVybjsKICB9CiAgCiAgIyBub3QgcHVzaGluZyBsaXZlLCBzbyBzZW5kIGFuIGVtYWlsCiAgaWYoaXNzZXQoJHBhcmFtc1snaW5wdXRfYWRqdXN0bWVudGVtYWlsJ10pICYmIDEgPT0gJHBhcmFtc1snaW5wdXRfYWRqdXN0bWVudGVtYWlsJ10pCiAgewogICAgLy8gb2theSwgd2UncmUgbm93IHJlYWR5IHRvIHNlbmQgdGhlIGVtYWlsLCB5YWhvbywgeWFob28sIHlhaG9vCiAgICAKICAgICMgVE9ETyAtIG1vdmUgdGhpcyB0byB0aGUgbm90aWZpY2F0aW9ucyBjbGFzcwogICAgCiAgICAvLyBub3cgd2UgaGF2ZSB0byBkZWNpZGUgd2hhdCBnb2VzIGluIGl0LgogICAgJGNtc21haWxlciA9IG5ldyBcY21zX21haWxlcjsKICAgICRjbXNtYWlsZXItPkFkZEFkZHJlc3MoJHBhcmFtc1skZW1haWxfZmllbGRdKTsKICAgICRzbWFydHktPmFzc2lnbignbmFtZScsICR1c2VybmFtZSk7CiAgICBpZigkcGFzc3dvcmQgIT0gJycpCiAgICB7CiAgICAgICRzbWFydHktPmFzc2lnbigncGFzc3dvcmQnLCAkcGFzc3dvcmQpOwogICAgfQogICAgJHNtYXJ0eS0+YXNzaWduKCdjb2RlJywgJGRldGFpbHNbJ2NvZGUnXSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3NpdGVuYW1lJywgJGdDbXMtPmNvbmZpZ1sncm9vdF91cmwnXSk7CiAgICAkcGFybXMgPSBhcnJheSgKICAgICAgJ2lucHV0X3VzZXJuYW1lJyA9PiAkdXNlcm5hbWUsCiAgICAgICdpbnB1dF9ncm91cF9pZCcgPT4gJHBhcmFtc1snZ3JvdXBfaWQnXSwKICAgICAgJ2lucHV0X2NvZGUnICAgICA9PiAkZGV0YWlsc1snY29kZSddCiAgICApOwogICAgJHBhcm1zID0gWydtcl9kYXRhJyA9PiBiYXNlNjRfZW5jb2RlKHNlcmlhbGl6ZSgkcGFybXMpKV07CiAgICAKICAgICR2ZXJpZnlwYWdlID0gcmVnX3V0aWxzOjpnZXRfdmVyaWZ5cGFnZSgpOwogICAgJGNvZGUgICAgICAgPSAkZGV0YWlsc1snY29kZSddOwogICAgJHByZXR0eXVybCAgPSAibWFtc3JlZy9jb25maXJtLyR2ZXJpZnlwYWdlL3skcGFybXNbJ21yX2RhdGEnXX0iOwogICAgJHVybCAgICAgICAgPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsICd2ZXJpZnknLCAkdmVyaWZ5cGFnZSwgW10sIEZBTFNFLCBGQUxTRSwgJHByZXR0eXVybCk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3VybCcsICR1cmwpOwogICAgCiAgICAkaHRtbGJvZHkgPSAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCdtYW1zcmVnX2VtYWlsdXNlcmVkaXRlZF90ZW1wbGF0ZScpOwogICAgJGNtc21haWxlci0+SXNIVE1MKFRSVUUpOyAgLy8gd2UncmUgc2VuZGluZyBhbiBodG1sIG1haWwKICAgICRjbXNtYWlsZXItPlNldEJvZHkoJGh0bWxib2R5KTsKICAgICRjbXNtYWlsZXItPlNldFN1YmplY3QoCiAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtYW1zcmVnX2VtYWlsdXNlcmVkaXRlZF9zdWJqZWN0JywgJHRoaXMtPkxhbmcoJ3JlZ2lzdHJhdGlvbl9pbmZvX2VkaXRlZCcpKQogICAgKTsKICAgICRjbXNtYWlsZXItPlNlbmQoKTsKICAgIAogICAgIyMjIyMgRU5EIFRPRE8KICB9CiAgCiAgCiAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ3VzZXJfbW9kaWZpZWQnKSk7Cn0KCgokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsICdhZG1pbnVzZXJzJyk7Cg==]]></data>
	</file>
	<file>
	  <filename>/action.edittempuser.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMS41CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgogIHVzZSBcTUFNU1xSUlV0aWxzIGFzIFJSVXRpbHM7CmlmKCFkZWZpbmVkKCdDTVNfVkVSU0lPTicpKSB7IGV4aXQ7IH0KCmlmKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgUmVnaXN0ZXJpbmcgVXNlcnMnKSkgeyByZXR1cm47IH0KCmlmKCAhaXNzZXQoJHBhcmFtc1sndXNlcl9pZCddKSApCnsKICAvLyB0aGlzIGlzIHVnbHkgZm9yIHRoZSB1c2VyIHRvIHNlZQogIC8vIGJ1dCBhdCBsZWFzdCB0aGUgYWRtaW4gd2lsbCBiZSBhYmxlIHRvIGZpZ3VyZSBpdCBvdXQKICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKSk7CiAgCiAgcmV0dXJuOwp9CgokbWFtcyA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnTUFNUycpOwoKaWYoISRtYW1zKQp7CiAgLy8gdGhpcyBpcyB1Z2x5IGZvciB0aGUgdXNlciB0byBzZWUKICAvLyBidXQgYXQgbGVhc3QgdGhlIGFkbWluIHdpbGwgYmUgYWJsZSB0byBmaWd1cmUgaXQgb3V0CiAgJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnZXJyb3Jfbm9mZXVzZXJzbW9kdWxlJykpOwogIAogIHJldHVybjsKfQoKJHVpZCAgICAgICAgID0gJHBhcmFtc1sndXNlcl9pZCddOwokdXNlcmRldGFpbHMgPSAkdGhpcy0+R2V0VGVtcFVzZXJEZXRhaWxzKCR1aWQpOwoKaWYoISR1c2VyZGV0YWlscykKewogICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2Vycm9yX3VzZXJub3Rmb3VuZCcpKTsKICAKICByZXR1cm47Cn0KCi8vIGdldCB0aGUgdXNlcidzIGdyb3VwKHMpLgokc3FsICAgICAgICA9ICdTRUxFQ1QgRElTVElOQ1QgZ2lkIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfbWFtc3JlZ2lzdHJhdGlvbl9ncnBzIFdIRVJFIHVzZXIgPSA/JzsKJGdycF9pZHMgICAgPSAkZGItPkdldENvbCgkc3FsLCBbJHVpZF0pOwokYWxsX2dyb3VwcyA9ICRtYW1zLT5HZXRHcm91cExpc3RGdWxsKCk7CgoKCiRwcm9wZXJ0aWVzID0gW107CgppZiggIWVtcHR5KCRncnBfaWRzKSApCnsKICAkdG1wID0gW107CiAgZm9yZWFjaCgkZ3JwX2lkcyBhcyAkZ2lkKQogIHsKICAgICRncmVsbnMgPSAkbWFtcy0+R2V0R3JvdXBQcm9wZXJ0eVJlbGF0aW9ucygkZ2lkKTsKICAgICR0bXAgICAgPSBSUlV0aWxzOjphcnJheV9tZXJnZV9ieV9uYW1lX3JlcXVpcmVkKCR0bXAsICRncmVsbnMpOwogICAgdWFzb3J0KCR0bXAsICd4dF9hcnJheTo6Y29tcGFyZV9lbGVtZW50c19ieV9zb3J0b3JkZXJfa2V5Jyk7CiAgfQogIGZvcmVhY2goJHRtcCBhcyAkb25lKQogIHsKICAgICRwcm9wZXJ0aWVzWyRvbmVbJ25hbWUnXV0gPSAkb25lOwogIH0KICAKICAvLyBnZXQgdGhlIHVzZXJzJyBwcm9wZXJ0aWVzCiAgJHByb3BzID0gW107CiAgewogICAgJHRfcHJvcHMgPSAkdGhpcy0+R2V0VGVtcFVzZXJQcm9wZXJ0aWVzKCR1aWQpOwogICAgaWYoISR0X3Byb3BzKQogICAgewogICAgICAvLyB0aGlzIGlzIHVnbHkgZm9yIHRoZSB1c2VyIHRvIHNlZQogICAgICAvLyBidXQgYXQgbGVhc3QgdGhlIGFkbWluIHdpbGwgYmUgYWJsZSB0byBmaWd1cmUgaXQgb3V0CiAgICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2Vycm9yX25vcHJvcGVydGllcycpKTsKICAgICAgCiAgICAgIHJldHVybjsKICAgIH0KICAgIAogICAgLy8gYSBsaXR0bGUgcmUtc29ydGluZwogICAgZm9yZWFjaCgkdF9wcm9wcyBhcyAkcHJvcCkKICAgIHsKICAgICAgJHByb3BzWyRwcm9wWyd0aXRsZSddXSA9ICRwcm9wOwogICAgfQogIH0KfQoKLy8gaGVyZSB3ZSdsbCBkaXNwbGF5IGEgZm9ybSB0aGF0IGlzIHNpbWlsYXIgdG8gdGhlIHJlZ2lzdHJhdGlvbiBmb3JtIGluCi8vIGV2ZXJ5IHdheSwKaWYoaXNzZXQoJHBhcmFtc1snZXJyb3InXSkpCnsKICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Vycm9yJywgJHBhcmFtc1snZXJyb3InXSk7Cn0KaWYoaXNzZXQoJHBhcmFtc1snbWVzc2FnZSddKSkKewogICR0aGlzLT5zbWFydHktPmFzc2lnbignbWVzc2FnZScsICRwYXJhbXNbJ21lc3NhZ2UnXSk7Cn0KCiRyb3dhcnJheSA9IFtdOwoKLy8gbWFrZSBzdXJlIHVzZXJuYW1lIGlzIGluIHRoZXJlCiRvbmVyb3cgICAgICAgICAgID0gbmV3IFN0ZENsYXNzKCk7CiRvbmVyb3ctPmNvbG9yICAgID0gJG1hbXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX2NvbG9yJywgJ2JsdWUnKTsKJG9uZXJvdy0+bWFya2VyICAgPSAkbWFtcy0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZWRfZmllbGRfbWFya2VyJywgJyonKTsKJG9uZXJvdy0+cmVxdWlyZWQgPSAxOwokdmFsICAgICAgICAgICAgICA9ICR1c2VyZGV0YWlsc1sndXNlcm5hbWUnXTsKJG9uZXJvdy0+aGlkZGVuICAgPSBNQU1TVXRpbHM6Om15Q3JlYXRlSW5wdXRIaWRkZW4oCiAgJGlkLCAnaGlkZGVuX3VzZXJuYW1lJywKICBpbXBsb2RlKCI7IiwgWyd1c2VybmFtZScsIDAsIDMwLCAyXSkKKTsKJG9uZXJvdy0+cHJvbXB0ICAgPSAkdGhpcy0+TGFuZygndXNlcm5hbWUnKTsKJG9uZXJvdy0+Y29udHJvbCAgPSAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KAogICRpZCwgJ2lucHV0X3VzZXJuYW1lJywgJHZhbCwKICAkbWFtcy0+R2V0UHJlZmVyZW5jZSgndXNlcm5hbWVmbGRsZW5ndGgnKSwKICAkbWFtcy0+R2V0UHJlZmVyZW5jZSgnbWF4X3VzZXJuYW1lbGVuZ3RoJykKKTsKJHJvd2FycmF5W10gICAgICAgPSAkb25lcm93OwoKLy8gYW5kIHBhc3N3b3JkCiRvbmVyb3cgICAgICAgICAgICA9IG5ldyBTdGRDbGFzcygpOwokb25lcm93LT5jb2xvciAgICAgPSAkbWFtcy0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZWRfZmllbGRfY29sb3InLCAnYmx1ZScpOwokb25lcm93LT5tYXJrZXIgICAgPSAkbWFtcy0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZWRfZmllbGRfbWFya2VyJywgJyonKTsKJG9uZXJvdy0+ZXh0cmF0ZXh0ID0gJHRoaXMtPkxhbmcoJ3R4dF9jaGFuZ2VwYXNzd29yZCcpOwokb25lcm93LT5yZXF1aXJlZCAgPSAxOwokdmFsICAgICAgICAgICAgICAgPSAnJzsKJG9uZXJvdy0+aGlkZGVuICAgID0gTUFNU1V0aWxzOjpteUNyZWF0ZUlucHV0SGlkZGVuKAogICRpZCwgJ2hpZGRlbl9wYXNzd29yZCcsCiAgaW1wbG9kZSgiOyIsIFsncGFzc3dvcmQnLCAwLCAzMCwgMl0pCik7CiRvbmVyb3ctPnByb21wdCAgICA9ICR0aGlzLT5MYW5nKCdwYXNzd29yZCcpOwokb25lcm93LT5jb250cm9sICAgPSAkdGhpcy0+Q3JlYXRlSW5wdXRQYXNzd29yZCgKICAkaWQsICdpbnB1dF9wYXNzd29yZCcsICR2YWwsCiAgJG1hbXMtPkdldFByZWZlcmVuY2UoJ3Bhc3N3b3JkZmxkbGVuZ3RoJyksCiAgJG1hbXMtPkdldFByZWZlcmVuY2UoJ21heF9wYXNzd29yZGxlbmd0aCcpCik7CiRyb3dhcnJheVtdICAgICAgICA9ICRvbmVyb3c7CgovLyBhbmQgbWFrZSBoaW0gcmVwZWF0IHRoZSBwYXNzd29yZAokb25lcm93ICAgICAgICAgICA9IG5ldyBTdGRDbGFzcygpOwokb25lcm93LT5jb2xvciAgICA9ICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlZF9maWVsZF9jb2xvcicsICdibHVlJyk7CiRvbmVyb3ctPm1hcmtlciAgID0gJG1hbXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX21hcmtlcicsICcqJyk7CiRvbmVyb3ctPnJlcXVpcmVkID0gMTsKJHZhbCAgICAgICAgICAgICAgPSAnJzsKJG9uZXJvdy0+aGlkZGVuICAgPSBNQU1TVXRpbHM6Om15Q3JlYXRlSW5wdXRIaWRkZW4oCiAgJGlkLCAnaGlkZGVuX3JlcGVhdHBhc3N3b3JkJywKICBpbXBsb2RlKCI7IiwgWydyZXBlYXRwYXNzd29yZCcsIDAsIDMwLCAyXSkKKTsKJG9uZXJvdy0+cHJvbXB0ICAgPSAkdGhpcy0+TGFuZygncmVwZWF0cGFzc3dvcmQnKTsKJG9uZXJvdy0+Y29udHJvbCAgPSAkdGhpcy0+Q3JlYXRlSW5wdXRQYXNzd29yZCgKICAkaWQsICdpbnB1dF9yZXBlYXRwYXNzd29yZCcsICR2YWwsCiAgJG1hbXMtPkdldFByZWZlcmVuY2UoJ3Bhc3N3b3JkZmxkbGVuZ3RoJyksCiAgJG1hbXMtPkdldFByZWZlcmVuY2UoJ21heF9wYXNzd29yZGxlbmd0aCcpCik7CiRyb3dhcnJheVtdICAgICAgID0gJG9uZXJvdzsKCi8vIGFuIG9wdGlvbiB0byBzZW5kIGFub3RoZXIgY29uZmlybWF0aW9uIG1lc3NhZ2UKLy8gYnV0IGEgZGlmZmVyZW50IG9uZSBmcm9tIHRoZSBub3JtYWwKJG9uZXJvdyAgICAgICAgICAgID0gbmV3IFN0ZENsYXNzKCk7CiRvbmVyb3ctPmNvbG9yICAgICA9ICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlZF9maWVsZF9jb2xvcicsICdibHVlJyk7CiRvbmVyb3ctPm1hcmtlciAgICA9ICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlZF9maWVsZF9tYXJrZXInLCAnKicpOwokb25lcm93LT5yZXF1aXJlZCAgPSAxOwokb25lcm93LT5wcm9tcHQgICAgPSAkdGhpcy0+TGFuZygnc2VuZF9hZGp1c3RtZW50ZW1haWwnKTsKJG9uZXJvdy0+ZXh0cmF0ZXh0ID0gJHRoaXMtPkxhbmcoJ3R4dF9hZGp1c3RtZW50ZW1haWwnKTsKJG9uZXJvdy0+Y29udHJvbCAgID0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnaW5wdXRfYWRqdXN0bWVudGVtYWlsJywgMSwgMSk7CiRyb3dhcnJheVtdICAgICAgICA9ICRvbmVyb3c7Cgpmb3JlYWNoKCRwcm9wZXJ0aWVzIGFzICRyZWxuKQp7CiAgLy8gZG9uJ3QgcHJvY2VzcyBoaWRkZW4gZmllbGRzIGhlcmUKICBpZigkcmVsblsncmVxdWlyZWQnXSA9PSAzKSB7IGNvbnRpbnVlOyB9CiAgCiAgLy8gZ2V0IHRoZSBwcm9wZXJ0eSBkZWZpbml0aW9uCiAgJGRlZm4gPSAkbWFtcy0+R2V0UHJvcGVydHlEZWZuKCRyZWxuWyduYW1lJ10pOwogIAogIGlmKCRkZWZuWyd0eXBlJ10gPT0gNikgeyBjb250aW51ZTsgfS8vIGltYWdlcyBhcmUgaWdub3JlZCB0b28KICAKICAkb25lcm93ID0gbmV3IFN0ZENsYXNzKCk7CiAgCiAgJGNvbG9yID0gJyc7CiAgaWYoJHJlbG5bJ3JlcXVpcmVkJ10gPT0gMikKICB7CiAgICAkY29sb3IgPSAkbWFtcy0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZWRfZmllbGRfY29sb3InLCAnYmx1ZScpOwogIH0KICAkbWFya2VyID0gJyc7CiAgaWYoJHJlbG5bJ3JlcXVpcmVkJ10gPT0gMikKICB7CiAgICAkbWFya2VyID0gJG1hbXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX21hcmtlcicsICcqJyk7CiAgfQogICRvbmVyb3ctPnJlcXVpcmVkID0gKCRyZWxuWydyZXF1aXJlZCddID09IDIpOwogICRvbmVyb3ctPmNvbG9yICAgID0gJGNvbG9yOwogICRvbmVyb3ctPm1hcmtlciAgID0gJG1hcmtlcjsKICAkb25lcm93LT5oaWRkZW4gICA9IE1BTVNVdGlsczo6bXlDcmVhdGVJbnB1dEhpZGRlbigKICAgICRpZCwgJ2hpZGRlbl8nIC4gJHJlbG5bJ25hbWUnXSwKICAgIGltcGxvZGUoCiAgICAgICI7IiwgWwogICAgICAkcmVsblsnbmFtZSddLCAkZGVmblsndHlwZSddLAogICAgICAkZGVmblsnbGVuZ3RoJ10sICRyZWxuWydyZXF1aXJlZCddCiAgICBdCiAgICApCiAgKTsKICAKICAkdmFsICAgICAgICAgICAgICA9ICRwcm9wc1skcmVsblsnbmFtZSddXVsnZGF0YSddID8/ICcnOwogICRvbmVyb3ctPnByb21wdCAgID0gJGRlZm5bJ3Byb21wdCddOwogICRvbmVyb3ctPmxhYmVsZm9yID0gJGlkIC4gJGRlZm5bJ25hbWUnXTsKICBzd2l0Y2goJGRlZm5bJ3R5cGUnXSkKICB7CiAgICBjYXNlIDA6IC8vIHRleHQKICAgICAgJG9uZXJvdy0+Y29udHJvbCA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoCiAgICAgICAgJGlkLCAnaW5wdXRfJyAuICRyZWxuWyduYW1lJ10sCiAgICAgICAgJHZhbCwgJGRlZm5bJ2xlbmd0aCddLCAkZGVmblsnbWF4bGVuZ3RoJ10KICAgICAgKTsKICAgIGJyZWFrOwogICAgCiAgICBjYXNlIDE6IC8vIGNoZWNrYm94CiAgICAgICRvbmVyb3ctPmNvbnRyb2wgPSAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdpbnB1dF8nIC4gJHJlbG5bJ25hbWUnXSwgMSwgJHZhbCk7CiAgICBicmVhazsKICAgIAogICAgY2FzZSAyOiAvLyBlbWFpbAogICAgICAkb25lcm93LT5jb250cm9sID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgKICAgICAgICAkaWQsICdpbnB1dF8nIC4gJHJlbG5bJ25hbWUnXSwKICAgICAgICAkdmFsLCAkZGVmblsnbGVuZ3RoJ10sICgkZGVmblsnbWF4bGVuZ3RoJ10pCiAgICAgICk7CiAgICBicmVhazsKICAgIAogICAgY2FzZSAzOiAvLyB0ZXh0YXJlYQogICAgICAkb25lcm93LT5jb250cm9sID0gJHRoaXMtPkNyZWF0ZVRleHRBcmVhKEZBTFNFLCAkaWQsICR2YWwsICdpbnB1dF8nIC4gJGRlZm5bJ25hbWUnXSk7CiAgICBicmVhazsKICAgIAogICAgY2FzZSA0OiAvLyBkcm9wZG93bgogICAgICAkb25lcm93LT5jb250cm9sID0gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oCiAgICAgICAgJGlkLAogICAgICAgICdpbnB1dF8nIC4gJGRlZm5bJ25hbWUnXSwKICAgICAgICAkbWFtcy0+R2V0U2VsZWN0T3B0aW9ucygkZGVmblsnbmFtZSddLCAxKSwKICAgICAgICAtMSwKICAgICAgICAkdmFsCiAgICAgICk7CiAgICBicmVhazsKICAgIAogICAgY2FzZSA1OiAvLyBtdWx0aXNlbGVjdAogICAgICBpZighJHZhbCkKICAgICAgewogICAgICAgICR2YWwgPSBbXTsKICAgICAgfQogICAgICAkb25lcm93LT5jb250cm9sID0gJHRoaXMtPkNyZWF0ZUlucHV0U2VsZWN0TGlzdCgKICAgICAgICAkaWQsCiAgICAgICAgJ2lucHV0XycgLiAkZGVmblsnbmFtZSddIC4gJ1tdJywKICAgICAgICAkbWFtcy0+R2V0U2VsZWN0T3B0aW9ucygkZGVmblsnbmFtZSddLCAxKSwKICAgICAgICAkdmFsCiAgICAgICk7CiAgICBicmVhazsKICAgIAogICAgY2FzZSA2OiAvLyBpbWFnZQogICAgICAvLyBza2lwcGVkIGludGVudGlvbmFsbHkKICAgIGJyZWFrOwogICAgCiAgICBjYXNlIDc6IC8vIHJhZGlvYnV0dG9ucwogICAgICAkb25lcm93LT5jb250cm9sID0gJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCgKICAgICAgICAkaWQsICdpbnB1dF8nIC4gJGRlZm5bJ25hbWUnXSwKICAgICAgICAkbWFtcy0+R2V0U2VsZWN0T3B0aW9ucygkZGVmblsnbmFtZSddLCAxKSwKICAgICAgICAkdmFsLCAnJywgJzxici8+JwogICAgICApOwogICAgYnJlYWs7CiAgICAKICAgIGNhc2UgODogLy8gZGF0ZQogICAgICB7CiAgICAgICAgJGF0dHJpYnMgICAgICAgICA9IHVuc2VyaWFsaXplKCRkZWZuWydhdHRyaWJzJ10pOwogICAgICAgICRwYXJtcyAgICAgICAgICAgPSBbXTsKICAgICAgICAkcGFybXNbJ3ByZWZpeCddID0gJGlkIC4gJ2lucHV0XycgLiAkZGVmblsnbmFtZSddOwogICAgICAgIGlmKCR2YWwpCiAgICAgICAgewogICAgICAgICAgJHBhcm1zWyd0aW1lJ10gPSAkdmFsOwogICAgICAgIH0KICAgICAgICAkcGFybXNbJ3N0YXJ0X3llYXInXSA9ICRhdHRyaWJzWydzdGFydHllYXInXSA/PyAnLTUnOwogICAgICAgICRwYXJtc1snZW5kX3llYXInXSAgID0gJGF0dHJpYnNbJ2VuZHllYXInXSA/PyAnKzEwJzsKICAgICAgICAkc3RyICAgICAgICAgICAgICAgICA9ICd7aHRtbF9zZWxlY3RfZGF0ZSAnOwogICAgICAgIGZvcmVhY2goJHBhcm1zIGFzICRrZXkgPT4gJHZhbHVlKQogICAgICAgIHsKICAgICAgICAgICRzdHIgLj0gJGtleSAuICc9IicgLiAkdmFsdWUgLiAnIiAnOwogICAgICAgIH0KICAgICAgICAkc3RyICAgICAgICAgICAgIC49ICd9JzsKICAgICAgICAkb25lcm93LT5jb250cm9sID0gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRzdHIpOwogICAgICB9CiAgICBicmVhazsKICB9CiAgCiAgJHJvd2FycmF5W10gPSAkb25lcm93Owp9CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3VpZCcsICR1c2VyZGV0YWlsc1snaWQnXSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZ3JwX2lkcycsICRncnBfaWRzKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhbGxncm91cHMnLCAkYWxsX2dyb3Vwcyk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdkb19lZGl0dXNlcicsICRyZXR1cm5pZCkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZScsICR0aGlzLT5MYW5nKCdlZGl0dXNlcicpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGF0dXNfdGV4dCcsICR0aGlzLT5MYW5nKCdVc2VyU3RhdHVzJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICd1c2VyX2lkJywgJHVzZXJkZXRhaWxzWydpZCddKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaGlkZGVuMicsICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdncm91cF9pZCcsICR1c2VyZGV0YWlsc1snZ3JvdXBfaWQnXSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NvbnRyb2xzJywgJHJvd2FycmF5KTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjb250cm9sY291bnQnLCBjb3VudCgkcm93YXJyYXkpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignY2FuY2VsJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsICR0aGlzLT5MYW5nKCdjYW5jZWwnKSkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0dXNlci50cGwnKTsK]]></data>
	</file>
	<file>
	  <filename>/action.lostemail.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMS41CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7CgokbWFtcyA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnTUFNUycpOwppZiggISRtYW1zICkgcmV0dXJuOwoKJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnbWFtc3JlZ19zZW5kYW5vdGhlcmVtYWlsX3RlbXBsYXRlJyk7CgppZiggaXNzZXQoJHBhcmFtc1snbXJfc3VibWl0J10pICkgewogICAgdHJ5IHsKICAgICAgICAkdXNlcm5hbWUgPSB0cmltKFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdtcl91c2VybmFtZScpKTsKICAgICAgICBpZiggISR1c2VybmFtZSApICR1c2VybmFtZSA9IHRyaW0oXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2lucHV0X3VzZXJuYW1lJykpOyAvLyBiYwogICAgICAgIGlmKCAhJHVzZXJuYW1lICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKSk7CgogICAgICAgICR0ZW1wdXNlcmlkID0gJHRoaXMtPkdldFRlbXBVc2VySUQoICR1c2VybmFtZSApOwogICAgICAgIGlmKCAhJHRlbXB1c2VyaWQgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX3VzZXJub3Rmb3VuZCcpKTsKCiAgICAgICAgJGRldGFpbHMgPSAkdGhpcy0+R2V0VGVtcFVzZXJEZXRhaWxzKCR0ZW1wdXNlcmlkKTsKICAgICAgICBpZiggISRkZXRhaWxzICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl91c2Vybm90Zm91bmQnKSk7CgogICAgICAgICRlbWFpbCA9IG51bGw7CiAgICAgICAgaWYoICRtYW1zLT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZV9pc19lbWFpbCcpICYmIGlzX2VtYWlsKCR1c2VybmFtZSkgKSB7CiAgICAgICAgICAgICRlbWFpbCA9ICR1c2VybmFtZTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIC8vIGdvdHRhIGZpbmQgYW4gZW1haWwgYWRkcmVzcyBwcm9wZXJ0eSBmb3IgdGhpcyB1c2VyLgogICAgICAgICAgICAkdGVtcHVzZXJwcm9wcyA9ICR0aGlzLT5HZXRUZW1wVXNlclByb3BlcnRpZXMoICR0ZW1wdXNlcmlkICk7CiAgICAgICAgICAgIGlmKCAkdGVtcHVzZXJwcm9wcyA9PSBmYWxzZSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3Jfbm9wcm9wZXJ0aWVzJykpOwoKICAgICAgICAgICAgJHJlbGF0aW9ucyA9ICRtYW1zLT5HZXRHcm91cFByb3BlcnR5UmVsYXRpb25zKCAkZGV0YWlsc1snZ3JvdXBfaWQnXSApOwogICAgICAgICAgICBpZiggJHJlbGF0aW9uc1swXSA9PSBmYWxzZSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkcmVsYXRpb25zWzFdKTsKCiAgICAgICAgICAgICRwcm9wcyA9ICRtYW1zLT5HZXRQcm9wZXJ0eURlZm5zKCk7CiAgICAgICAgICAgIGlmKCAkcHJvcHMgPT0gZmFsc2UgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2RiZXJyb3InKSk7CgogICAgICAgICAgICAvLyBub3cgd2UgZmluZCBhbiBlbWFpbCBhZGRyZXNzIHByb3BlcnR5CiAgICAgICAgICAgICRmb3VuZCA9IG51bGw7CiAgICAgICAgICAgIGZvcmVhY2goICRyZWxhdGlvbnMgYXMgJHJlbG4gKSB7CiAgICAgICAgICAgICAgICBmb3JlYWNoKCAkcHJvcHMgYXMgJHByb3AgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoICRwcm9wWyd0eXBlJ10gPT0gMiAmJiAkcmVsbnNbJ25hbWUnXSA9PSAkcHJvcFsnbmFtZSddICkgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3VuZCBhbiBlbWFpbCBwcm9wZXJ0eQogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoKCAkdGVtcHVzZXJwcm9wcyBhcyAkdGVtcHByb3AgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggJHJlbG5bJ25hbWUnXSA9PSAkdGVtcHByb3BbJ3RpdGxlJ10gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvdW5kID0gJHRlbXBwcm9wWydkYXRhJ107CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYoICRmb3VuZCApIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYoICRmb3VuZCApIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCAkZm91bmQgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX25vZW1haWxhZGRyZXNzJykpOwogICAgICAgICAgICAkZW1haWwgPSAkZm91bmQ7CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+X1NlbmRVc2VyQ29uZmlybWF0aW9uRW1haWwoICRpZCwkcmV0dXJuaWQsJGVtYWlsLCAkdXNlcm5hbWUsICRkZXRhaWxzWydjb2RlJ10gKTsKCiAgICAgICAgLy8gbm93IHdlJ3JlIGdvbm5hIGRpc3BsYXkgYSBtZXNzYWdlLgogICAgICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICAgICAkdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdtYW1zcmVnX3Bvc3Rfc2VuZGFub3RoZXJlbWFpbF90ZW1wbGF0ZScpOwogICAgICAgICR0cGwtPmFzc2lnbignc2l0ZW5hbWUnLCRjb25maWdbJ3Jvb3RfdXJsJ10pOwogICAgICAgICR0cGwtPmFzc2lnbigndXNlcm5hbWUnLCR1c2VybmFtZSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdlbWFpbCcsJGVtYWlsKTsKICAgICAgICAkdHBsLT5kaXNwbGF5KCk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgJHRwbC0+YXNzaWduKCdlcnJvcicsMSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdtZXNzYWdlJywkZS0+R2V0TWVzc2FnZSgpKTsKICAgIH0KICAgIC8vIHByb2Nlc3MgdGhlIGZvcm0uCn0KCi8vIGJ1aWxkIG91dHB1dAppZiggaXNzZXQoICRwYXJhbXNbJ2Vycm9yJ10gKSApICR0cGwtPmFzc2lnbignZXJyb3InLCAkcGFyYW1zWydlcnJvciddKTsKaWYoIGlzc2V0KCAkcGFyYW1zWydtZXNzYWdlJ10gKSApICR0cGwtPmFzc2lnbignbWVzc2FnZScsICRwYXJhbXNbJ21lc3NhZ2UnXSk7CgokaW5saW5lID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2lubGluZV9mb3JtcycsdHJ1ZSk7CmlmKCBpc3NldCgkcGFyYW1zWydub2lubGluZSddKSApICRpbmxpbmUgPSBmYWxzZTsKCiR0cGwtPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCggJGlkLCAnbG9zdGVtYWlsJywgJHJldHVybmlkLCAncG9zdCcsICcnLCAkaW5saW5lKSk7CiR0cGwtPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kICgpKTsKJHRwbC0+YXNzaWduKCdwcm9tcHQnLCR0aGlzLT5MYW5nKCd1c2VybmFtZScpKTsKaWYoICRtYW1zLT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZV9pc19lbWFpbCcpICkgJHRwbC0+YXNzaWduKCdwcm9tcHQnLCR0aGlzLT5MYW5nKCdlbWFpbCcpKTsKJHRwbC0+YXNzaWduKCdtYXhfdXNlcm5hbWVsZW5ndGgnLCRtYW1zLT5HZXRQcmVmZXJlbmNlKCdtYXhfdXNlcm5hbWVsZW5ndGgnKSk7CiR0cGwtPmFzc2lnbiAoJ2lucHV0X3VzZXJuYW1lJywKICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2lucHV0X3VzZXJuYW1lJywgJycsIDIwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1hbXMtPkdldFByZWZlcmVuY2UoJ21heF91c2VybmFtZWxlbmd0aCcpKSk7CiR0cGwtPmFzc2lnbignc3VibWl0JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdtcl9zdWJtaXQnLCAkdGhpcy0+TGFuZygnc3VibWl0JykpKTsKJHRwbC0+ZGlzcGxheSgpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.post_createuser.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7CgokcGFyYW1zID0gcmVnX3V0aWxzOjpjbGVhbl9wYXJhbXMoJHBhcmFtcyk7CgppZiggaXNzZXQoJHBhcmFtc1sndXNlcm5hbWUnXSkgKSAkc21hcnR5LT5hc3NpZ24oJ3VzZXJuYW1lJywkcGFyYW1zWyd1c2VybmFtZSddKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2VtYWlsJ10pICkgJHNtYXJ0eS0+YXNzaWduKCdlbWFpbCcsJHBhcmFtc1snZW1haWwnXSk7CiRzbWFydHktPmFzc2lnbignaXNjcmVhdGVkJywxKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgnbWFtc3JlZ19maW5hbG1lc3NhZ2VfdGVtcGxhdGUnKTsKCi8vIEVPRgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.post_registeruser.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7CgokdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdtYW1zcmVnX3Bvc3RyZWcxX3RlbXBsYXRlJyk7CmlmKCBpc3NldCgkcGFyYW1zWydtcl91c2VybmFtZSddKSApICR0cGwtPmFzc2lnbigndXNlcm5hbWUnLCRwYXJhbXNbJ21yX3VzZXJuYW1lJ10pOwppZiggaXNzZXQoJHBhcmFtc1snbXJfZW1haWwnXSkgKSAkdHBsLT5hc3NpZ24oJ2VtYWlsJywkcGFyYW1zWydtcl9lbWFpbCddKTsKJHRwbC0+YXNzaWduKCdsb2dpbl9hZnRlcnZlcmlmeScsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2xvZ2luX2FmdGVydmVyaWZ5JykpOwokdHBsLT5kaXNwbGF5KCk7CgovLyBFT0YKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.pushuserlive.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCFkZWZpbmVkKCdDTVNfVkVSU0lPTicpKSB7IGV4aXQ7IH0KCmlmKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgUmVnaXN0ZXJpbmcgVXNlcnMnKSkgeyBleGl0OyB9CgppZighaXNzZXQoJHBhcmFtc1sndXNlcl9pZCddKSkKewogIGVjaG8gJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJykpOwp9CgokdG1wdXNlcl9pZCA9IChpbnQpJHBhcmFtc1sndXNlcl9pZCddOwoKJHF1ZXJ5ICAgICAgICAgICA9ICdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX21hbXNyZWdpc3RyYXRpb25fdXNlcnMgV0hFUkUgaWQgPSA/JzsKJHJvdyAgICAgICAgICAgICA9ICRkYi0+R2V0Um93KCRxdWVyeSwgWyR0bXB1c2VyX2lkXSk7CiRrZXkgICAgICAgICAgICAgPSAkdGhpcy0+Z2V0X2VuY3J5cHRpb25fa2V5KCRyb3dbJ3VzZXJuYW1lJ10pOwokcm93WydwYXNzd29yZCddID0gJHRoaXMtPmRlY3J5cHQoJGtleSwgYmFzZTY0X2RlY29kZSgkcm93WydwYXNzd29yZCddKSk7CgokdGhpcy0+X0NyZWF0ZUZyb250ZW5kVXNlcigkdG1wdXNlcl9pZCwgJHJvd1sndXNlcm5hbWUnXSwgJHJvd1sncGFzc3dvcmQnXSwgJycsIGZhbHNlKTsKCiRxdWVyeSA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX3Byb3BlcnRpZXMgV0hFUkUgdXNlciA9ID8nOwokZGItPkV4ZWN1dGUoJHF1ZXJ5LCBbJHRtcHVzZXJfaWRdKTsKJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX21hbXNyZWdpc3RyYXRpb25fdXNlcnMgV0hFUkUgaWQgPSA/JzsKJGRiLT5FeGVjdXRlKCRxdWVyeSwgWyR0bXB1c2VyX2lkXSk7CgokdGhpcy0+U2V0Q3VycmVudFRhYignYWRtaW51c2VycycpOwokdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX3VzZXJwdXNoZWQnKSk7CiR0aGlzLT5SZWRpcmVjdFRvVGFiKCk7CgojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/action.register_link.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHVzZXJzIHRvIHJlZ2lzdGVyIHRoZW1zZWx2ZXMKIyAgd2l0aCBhIHdlYnNpdGUuCiMgCiMgVmVyc2lvbjogMS4yCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKCiRvbmx5aHJlZiA9IGZhbHNlOwokbGlua3RleHQgPSAkdGhpcy0+TGFuZygndXNlcl9yZWdpc3RyYXRpb24nKTsKJGlubGluZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbmxpbmVfZm9ybXMnLHRydWUpOwoKaWYoICFpc3NldCgkcGFyYW1zWydncm91cCddKSApIHJldHVybjsKCmlmKCBpc3NldCgkcGFyYW1zWydkZXN0cGFnZSddKSApCiAgewogICAgJGRlc3RwYWdlID0gdHJpbSgkcGFyYW1zWydkZXN0cGFnZSddKTsKICAgICRjb250ZW50b3BzID0gJGdDbXMtPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CiAgICAkZGVzdHBhZ2VpZCA9ICRjb250ZW50b3BzLT5HZXRQYWdlSURGcm9tQWxpYXMoJGRlc3RwYWdlKTsKICAgIGlmKCAkZGVzdHBhZ2VpZCApICRyZXR1cm5pZCA9ICRkZXN0cGFnZWlkOwogICAgdW5zZXQoJHBhcmFtc1snZGVzdHBhZ2UnXSk7CiAgfQppZiggaXNzZXQoJHBhcmFtc1snb25seWhyZWYnXSkgKQogIHsKICAgICRvbmx5aHJlZiA9IChpbnQpJHBhcmFtc1snb25seWhyZWYnXTsKICAgIHVuc2V0KCRwYXJhbXNbJ29ubHlocmVmJ10pOwogIH0KaWYoIGlzc2V0KCRwYXJhbXNbJ3JldHVybmlkJ10pICkKICB7CiAgICAkcmV0dXJuaWQgPSAoaW50KSRwYXJhbXNbJ3JldHVybmlkJ107CiAgICB1bnNldCgkcGFyYW1zWydyZXR1cm5pZCddKTsKICB9CmlmKCBpc3NldCgkcGFyYW1zWydsaW5rdGV4dCddKSApCiAgewogICAgJGxpbmt0ZXh0ID0gdHJpbSgkcGFyYW1zWydsaW5rdGV4dCddKTsKICAgIHVuc2V0KCRwYXJhbXNbJ2xpbmt0ZXh0J10pOwogIH0KaWYoIGlzc2V0KCRwYXJhbXNbJ25vaW5saW5lJ10pICkKICB7CiAgICAkaW5saW5lID0gZmFsc2U7CiAgICB1bnNldCgkcGFyYW1zWydub2lubGluZSddKTsKICB9CgokcGFyYW1zWydtb2RlJ10gPSAnc2lnbnVwJzsKJHByZXR0eV91cmwgPSAibWFtcy9yZWdpc3Rlci97JHJldHVybmlkfS97JHBhcmFtc1snZ3JvdXAnXX0iOwokb3V0cHV0ID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkZWZhdWx0JywkcmV0dXJuaWQsJGxpbmt0ZXh0LCRwYXJhbXMsJycsJG9ubHlocmVmLCRpbmxpbmUsJycsZmFsc2UsJHByZXR0eV91cmwpOwplY2hvICRvdXRwdXQ7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.reguser.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMS41CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCnVzZSBcTUFNU1xSUlV0aWxzIGFzIFJSVXRpbHM7Ci8vCi8vIHRoaXMgZmlsZSBkb2VzIGFsbCB0aGUgcmVnaXN0cmF0aW9uIHBvcnRpb25zLi4uIGFzc3VtaW5nIHRoYXQgYWxsIGlucHV0IGRhdGEKLy8gaGFzIGFscmVhZHkgYmVlbiB2YWxpZGF0ZWQuCi8vCiRtYW1zID0gXGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfTUFNUyk7Cgp0cnkKewogICRwYXJhbXMgPSAkdGhpcy0+c2Vzc2lvbl9nZXQoJ3NpZ251cCcpOwogIAogIC8vIGNoZWNrIGZvciByZXF1aXJlZCBwYXJhbWV0ZXJzCiAgLy8gaWYoICFpc3NldCggJHBhcmFtc1snZ3JvdXAnXSApICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKSk7CiAgLy9pZiggIWlzc2V0KCAkcGFyYW1zWydwa2cnXSkgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpKTsKICAKICAvLyBHZXQgcHJvcGVydHkgZGVmaW5pdGlvbnMKICAkZ3JwaWRzICAgICA9IHJlZ191dGlsczo6ZXhwYW5kX2dyb3VwKCRwYXJhbXNbJ2dyb3VwJ10pOwogICRkZWZucyAgICAgID0gJG1hbXMtPkdldFByb3BlcnR5RGVmbnMoKTsKICAkcHJvcGVydGllcyA9IFtdOwogIAogIHsKICAgICR0bXAgPSBbXTsKICAgIAogICAgZm9yZWFjaCgkZ3JwaWRzIGFzICRnaWQpCiAgICB7CiAgICAgICRncmVsbnMgPSAkbWFtcy0+R2V0R3JvdXBQcm9wZXJ0eVJlbGF0aW9ucygkZ2lkKTsKICAgICAgJHRtcCAgICA9IFJSVXRpbHM6OmFycmF5X21lcmdlX2J5X25hbWVfcmVxdWlyZWQoJHRtcCwgJGdyZWxucyk7CiAgICAgIHVhc29ydCgkdG1wLCAneHRfYXJyYXk6OmNvbXBhcmVfZWxlbWVudHNfYnlfc29ydG9yZGVyX2tleScpOwogICAgfQogICAgCiAgICBmb3JlYWNoKCR0bXAgYXMgJG9uZSkKICAgIHsKICAgICAgJHByb3BlcnRpZXNbJG9uZVsnbmFtZSddXSA9ICRvbmU7CiAgICB9CiAgfQogICAgLy8KICAgIC8vIGFsbCB2YWxpZGF0aW9uIGlzIGRvbmUKICAgIC8vIHdlcmUgcmVhZHkgdG8gZG8gd29yayBub3cuCiAgICAvLwogICAgJHVzZXJuYW1lID0gXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2lucHV0X3VzZXJuYW1lJyk7CiAgICAkcGFzc3dvcmQgPSBceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnaW5wdXRfcGFzc3dvcmQnKTsKICAgICRvdmVyd3JpdGVfdWlkID0gXHh0X3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ292ZXJ3cml0ZV91aWQnKTsKICAgICRlbWFpbCA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCd1c2VfZW1haWwnKTsKCiAgICAvLyBnZW5lcmF0ZSBhIHVuaXF1ZSBjb2RlIHRoYXQgdGhlIHVzZXIgY2FuIGVudGVyIHRvIGRvdWJsZSBjb25maXJtIGhpcyBsb2dpbi4KICAgICRjb2RlID0gc3RydG91cHBlcihzdWJzdHIobWQ1KF9fRklMRV9fIC4gbWljcm90aW1lKCkgLiAkdXNlcm5hbWUpLCAwLCAyMCkpOwoKICAgIC8vIGhhdmUgdG8gYWRkIHRoZSByZWNvcmQgdG8gdGhlIGRhdGFiYXNlIHNvIHRoYXQgd2Uga25vdyB3aG8gdGhpcyBndXkgaXMgd2hlbiBoZSBjb21lcyBiYWNrCiAgICAkcmV0dXJuID0gJHRoaXMtPkNyZWF0ZVRlbXBVc2VyKCAkZ3JwaWRzLCAkdXNlcm5hbWUsICRwYXNzd29yZCwgJGNvZGUsICRvdmVyd3JpdGVfdWlkICk7CiAgICAKICAgIGlmKGZhbHNlID09ICRyZXR1cm5bMF0pIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkcmV0dXJuWzFdKTsKCiAgICAvLyBhbmQgYWRkIGhpcyBwcm9wZXJ0aWVzIHRvbwogICAgJHRtcHVpZCA9ICRyZXR1cm5bMV07CiAgICAKICAgIGZvcmVhY2goICRwcm9wZXJ0aWVzIGFzICRwcm9wbmFtZSA9PiAkcHJvcCApCiAgICB7CiAgICAgIC8vIGNoZWNrIGlmIHRoZSB2YWx1ZSBleGlzdHMgKGl0IG1heSBiZSBhbiBvcHRpb25hbCBmaWVsZCkKICAgICAgaWYoICFpc3NldCgkcGFyYW1zWydpbnB1dF8nLiRwcm9wbmFtZV0pICkgY29udGludWU7CiAgICAgIAogICAgICAkdmFsdWUgPSAkcGFyYW1zWydpbnB1dF8nLiRwcm9wbmFtZV07CiAgICAgICRyZXR1cm4gPSAkdGhpcy0+QWRkVGVtcFVzZXJQcm9wZXJ0eSggJHRtcHVpZCwgJHByb3BuYW1lLCAkcGFyYW1zWydpbnB1dF8nLiRwcm9wbmFtZV0gKTsKCiAgICAgIGlmKCAkcmV0dXJuWzBdID09IGZhbHNlICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCRyZXR1cm5bMV0pOwogICAgfQoKICAgIC8vIHNlbmQgYW4gZXZlbnQKICAgIFxDTVNNU1xIb29rTWFuYWdlcjo6ZG9faG9vayggJ01BTVNSZWdpc3RyYXRpb246Om9uTmV3VXNlcicsIFsgJ3VzZXJuYW1lJz0+JHVzZXJuYW1lLCAnZW1haWwnPT4kZW1haWwgXSApOwoKICAgIC8vCiAgICAvLyBva2F5IHdlJ3JlIGRvbmUgY3JlYXRpbmcgdGVtcG9yYXJ5IHVzZXJzCiAgICAvLwogICAgJHJlZGlyZWN0X3ByZWYgPSAncmVkaXJlY3RfYWZ0ZXJyZWdpc3Rlcic7CiAgICAkYWN0aW9uID0gJ3Bvc3RfcmVnaXN0ZXJ1c2VyJzsKICAgICRwYXJtcyA9IFtdOwogICAgJHBhcm1zWydtcl91c2VybmFtZSddID0gJHVzZXJuYW1lOwogICAgJHBhcm1zWydtcl9lbWFpbCddID0gJGVtYWlsOwogICAgJGV4cGlyZXNfbW9udGhzID0gKGludCkgbWF4KDEsJG1hbXMtPkdldFByZWZlcmVuY2UoJ2V4cGlyZWFnZV9tb250aHMnLDUyMCkpOwogICAgJGV4cGlyZXMgPSBzdHJ0b3RpbWUoc3ByaW50ZigiKyAlZCBtb250aHMiLCRleHBpcmVzX21vbnRocykpOwogICAgJGRvY3JlYXRlZmV1ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2F1dG9jcmVhdGVfdXNlcicsMSk7CgogICAgaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd3BhaWRyZWdpc3RyYXRpb24nKSApCiAgICB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgJHBrZyA9ICRncm91cF9pZCA9IG51bGw7CiAgICAgICAgICAgICRwa2dpZCA9ICRwYXJhbXNbJ3BrZyddOwogICAgICAgICAgICBpZiggaXNfYXJyYXkoJHBrZ2lkKSApIHsKICAgICAgICAgICAgICAgIGlmKCBjb3VudCgkcGtnaWQpID4gMSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3Jfc3Vic2NyaWJlX211bHRpcGxlJykpOwogICAgICAgICAgICAgICAgJHBrZ2lkID0gKGludCkgJHBrZ2lkWzBdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCAkcGtnaWQgKSB7CiAgICAgICAgICAgICAgICAkZ3JvdXBfaWQgPSAkcGFyYW1zWydncm91cCddOwogICAgICAgICAgICAgICAgaWYoIGlzX2FycmF5KCRncm91cF9pZCkgKSAkZ3JvdXBfaWQgPSAkZ3JvdXBfaWRbMF07CiAgICAgICAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX21hbXNyZWdpc3RyYXRpb25fcGFpZHBrZ3MgV0hFUkUgZ2lkID0gPyBBTkQgaWQgPSA/JzsKICAgICAgICAgICAgICAgICRwa2cgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJGdyb3VwX2lkLCRwa2dpZCkpOwogICAgICAgICAgICAgICAgaWYoICFpc19hcnJheSgkcGtnKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ2ludGVybmFsIGVycm9yOiBwYWNrYWdlICcuJHBrZ2lkLicgd2FzIG5vdCBmb3VuZCBmb3IgdGhlIHNwZWNpZmllZCBncm91cCcpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiggJHBrZyAmJiAkcGtnWydjb3N0J10gPiAwICkgewogICAgICAgICAgICAgICAgLy8gdGhpcyBwYWNrYWdlIGNvc3RzIG1vbmV5LgogICAgICAgICAgICAgICAgJGV4cGlyZXMgPSByZWdfdXRpbHM6OnBrZ19zdWJzY3JfdG9fZXhwaXJ5ZGF0ZSgkcGtnKTsKICAgICAgICAgICAgICAgICRjYXJ0ID0gY2dfZWNvbW06OmdldF9jYXJ0X21vZHVsZSgpOwogICAgICAgICAgICAgICAgaWYoICEkY2FydCApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ2ludGVybmFsIGVycm9yOiBubyBjYXJ0IG1vZHVsZSBmb3VuZCcpOwoKICAgICAgICAgICAgICAgICRyZWRpcmVjdF9wcmVmID0gJ3JlZGlyZWN0X3BhaWRwa2cnOwogICAgICAgICAgICAgICAgJGRvY3JlYXRlZmV1ID0gMDsKCiAgICAgICAgICAgICAgICAvLyBub3cgd2UgZ290dGEgYWRkIGFuIGl0ZW0gdG8gdGhlIGNhcnQuCiAgICAgICAgICAgICAgICAkaXRlbSA9IG5ldyBjZ19lY29tbV9jYXJ0aXRlbSgnJywkdG1wdWlkLDEsJHRoaXMtPkdldE5hbWUoKSk7CiAgICAgICAgICAgICAgICAkaXRlbS0+c2V0X3R5cGUoY2dfZWNvbW1fY2FydGl0ZW06OlRZUEVfU0VSVklDRSk7CiAgICAgICAgICAgICAgICAkaXRlbS0+c2V0X2FsbG93X3F1YW50aXR5X2FkanVzdChGQUxTRSk7CiAgICAgICAgICAgICAgICAkaXRlbS0+c2V0X2FsbG93X2R1cGxpY2F0ZShGQUxTRSk7CiAgICAgICAgICAgICAgICAkaXRlbS0+c2V0X2Jhc2VfcHJpY2UoJHBrZ1snY29zdCddKTsKCiAgICAgICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ3RtcHVpZCcsJHRtcHVpZCk7CiAgICAgICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ3VzZXJuYW1lJywkdXNlcm5hbWUpOwogICAgICAgICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdwa2cnLCRwa2cpOwogICAgICAgICAgICAgICAgJHNrdSA9ICdzci0nLnNwcmludGYoJyUwM2QtJTA1ZCcsJHBrZ1snaWQnXSwkdG1wdWlkKTsKICAgICAgICAgICAgICAgICRzbWFydHktPmFzc2lnbignc2t1Jywkc2t1KTsKICAgICAgICAgICAgICAgICR0bXAgPSAkdGhpcy0+WFRHZXRQcmVmZXJlbmNlKCdjYXJ0aXRlbV9zdW1tYXJ5X3RwbCcsJ3tzaXRlbmFtZX0gbWVtYmVyc2hpcCBmb3IgeyR1c2VybmFtZX0nKTsKICAgICAgICAgICAgICAgICRpdGVtLT5zZXRfc2t1KCRza3UpOwogICAgICAgICAgICAgICAgJGl0ZW0tPnNldF9zdW1tYXJ5KCR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdG1wKSk7CgogICAgICAgICAgICAgICAgJGl0ZW0tPnNldF9pdGVtX3RvdGFsKCRwa2dbJ2Nvc3QnXSk7CiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0aW9uID0gbmV3IGNnX2Vjb21tX3Byb2R1Y3RpbmZvX3N1YnNjcmlwdGlvbigpOwogICAgICAgICAgICAgICAgc3dpdGNoKCAkcGtnWydzdWJzY3JfdHlwZSddICkgewogICAgICAgICAgICAgICAgY2FzZSAneWVhcic6CiAgICAgICAgICAgICAgICAgICAgaWYoICRwa2dbJ3N1YnNjcl9udW0nXSAhPSAxICkgJHRoaXMtPkF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ0ludmFsaWQgU3Vic2NyaXB0aW9uIHBhY2thZ2UgKG1vcmUgdGhhbiBvbmUgeWVyKScpOwogICAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHRpb24tPnNldF9wYXlwZXJpb2QoY2dfZWNvbW1fcHJvZHVjdGluZm9fc3Vic2NyaXB0aW9uOjpTVUJTQ1JfUEVSSU9EX1lFQVJMWSk7CiAgICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdGlvbi0+c2V0X2RlbGl2ZXJ5cGVyaW9kKGNnX2Vjb21tX3Byb2R1Y3RpbmZvX3N1YnNjcmlwdGlvbjo6U1VCU0NSX1BFUklPRF9ZRUFSTFkpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAnbW9udGgnOgogICAgICAgICAgICAgICAgICAgIHN3aXRjaCggJHBrZ1snc3Vic2NyX251bSddICkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdGlvbi0+c2V0X3BheXBlcmlvZChjZ19lY29tbV9wcm9kdWN0aW5mb19zdWJzY3JpcHRpb246OlNVQlNDUl9QRVJJT0RfTU9OVEhMWSk7CiAgICAgICAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHRpb24tPnNldF9kZWxpdmVyeXBlcmlvZChjZ19lY29tbV9wcm9kdWN0aW5mb19zdWJzY3JpcHRpb246OlNVQlNDUl9QRVJJT0RfTU9OVEhMWSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdGlvbi0+c2V0X3BheXBlcmlvZChjZ19lY29tbV9wcm9kdWN0aW5mb19zdWJzY3JpcHRpb246OlNVQlNDUl9QRVJJT0RfUVVBUlRFUkxZKTsKICAgICAgICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdGlvbi0+c2V0X2RlbGl2ZXJ5cGVyaW9kKGNnX2Vjb21tX3Byb2R1Y3RpbmZvX3N1YnNjcmlwdGlvbjo6U1VCU0NSX1BFUklPRF9RVUFSVEVSTFkpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHRpb24tPnNldF9wYXlwZXJpb2QoY2dfZWNvbW1fcHJvZHVjdGluZm9fc3Vic2NyaXB0aW9uOjpTVUJTQ1JfUEVSSU9EX1NFTUlBTlVBTExZKTsKICAgICAgICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdGlvbi0+c2V0X2RlbGl2ZXJ5cGVyaW9kKGNnX2Vjb21tX3Byb2R1Y3RpbmZvX3N1YnNjcmlwdGlvbjo6U1VCU0NSX1BFUklPRF9TRU1JQU5VQUxMWSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgMTI6CiAgICAgICAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHRpb24tPnNldF9wYXlwZXJpb2QoY2dfZWNvbW1fcHJvZHVjdGluZm9fc3Vic2NyaXB0aW9uOjpTVUJTQ1JfUEVSSU9EX1lFQVJMWSk7CiAgICAgICAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHRpb24tPnNldF9kZWxpdmVyeXBlcmlvZChjZ19lY29tbV9wcm9kdWN0aW5mb19zdWJzY3JpcHRpb246OlNVQlNDUl9QRVJJT0RfWUVBUkxZKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXJyb3I7CiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5BdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdJbnZhbGlkIFN1YnNjcmlwdGlvbiBwYWNrYWdlICh3aWVyZCBudW1iZXIgb2YgbW9udGhzKScpOwogICAgICAgICAgICAgICAgICAgICAgICAkc3Vic2NyaXB0aW9uLT5zZXRfcGF5cGVyaW9kKGNnX2Vjb21tX3Byb2R1Y3RpbmZvX3N1YnNjcmlwdGlvbjo6U1VCU0NSX1BFUklPRF9NT05USExZKTsKICAgICAgICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdGlvbi0+c2V0X2RlbGl2ZXJ5cGVyaW9kKGNnX2Vjb21tX3Byb2R1Y3RpbmZvX3N1YnNjcmlwdGlvbjo6U1VCU0NSX1BFUklPRF9NT05USExZKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0aW9uLT5zZXRfZXhwaXJ5KC0xKTsKICAgICAgICAgICAgICAgICRpdGVtLT5zZXRfc3Vic2NyaXB0aW9uKCRzdWJzY3JpcHRpb24pOwoKICAgICAgICAgICAgICAgIC8vIGNvdWxkIHRocm93IGFuIGV4Y2VwdGlvbiwgb3IgcmV0dXJuIGZhbHNlLgogICAgICAgICAgICAgICAgJHJlcyA9ICRjYXJ0LT5BZGRDYXJ0SXRlbSgkaXRlbSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKQogICAgICAgIHsKICAgICAgICAgICAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnUHJvYmxlbSBhZGRpbmcgcmVnaXN0cmF0aW9uIHRvIGNhcnQnKTsKICAgICAgICAgICAgXHh0X3V0aWxzOjpsb2dfZXhjZXB0aW9uKCAkZSApOwoKICAgICAgICAgICAgLy8gY291bGRuJ3QgYWRkIHRoaXMgaXRlbSB0byB0aGUgY2FydCAobWF5YmUgdGhlIHBvbGljeSBnb3QgaW4gdGhlIHdheSkKICAgICAgICAgICAgLy8gc28gcmVkaXJlY3QgYmFjayB0byB0aGUgc3RhcnQuCiAgICAgICAgICAgIC8vIGFuZCBkaXNwbGF5IGEgbWVzc2FnZT8KICAgICAgICAgICAgJHRoaXMtPkRlbGV0ZVRlbXBVc2VyKCAkdG1wdWlkICk7CiAgICAgICAgICAgICR0aGlzLT5EZWxldGVUZW1wVXNlclByb3BlcnRpZXMoICR0bXB1aWQgKTsKCiAgICAgICAgICAgICRtc2cgPSAkZS0+R2V0TWVzc2FnZSgpOwogICAgICAgICAgICBpZiggISRtc2cgKSAkbXNnID0gJHRoaXMtPkxhbmcoJ2Vycm9yX3BvbGljeWNhbnRhZGQnKTsKICAgICAgICAgICAgJHRoaXMtPnNlc3Npb25fcHV0KCdyZWd1c2VyX2Vycm9yJywkbXNnKTsKCiAgICAgICAgICAgICR0aGlzLT5SZWRpcmVjdENvbnRlbnQoICRyZXR1cm5pZCApOwogICAgICAgIH0KCiAgICAgICAgLy8gaWYgd2UgZ2V0IGhlcmUgZWl0aGVyIHRoZSBjb3N0IGlzIDAgb3IgdGhlcmUgaXMgc29tZSBwcm9ibGVtIHdpdGggdGhlIGNhcnQKICAgICAgICAvLyBzbyB3ZSBqdXN0IHByb2NlZWQgbGlrZSBub3JtYWwuCiAgICB9CgogICAgaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlX2VtYWlsX2NvbmZpcm1hdGlvbicsMSkgKQogICAgewogICAgICAgIC8vIG9rYXksIHdlJ3JlIG5vdyByZWFkeSB0byBzZW5kIHRoZSBlbWFpbCwgeWFob28sIHlhaG9vLCB5YWhvbwogICAgICAgIC8vIG5vdyB3ZSBoYXZlIHRvIGRlY2lkZSB3aGF0IGdvZXMgaW4gaXQuCiAgICAgICAgJHRoaXMtPl9TZW5kVXNlckNvbmZpcm1hdGlvbkVtYWlsKCRpZCwkcmV0dXJuaWQsJGVtYWlsLCAkdXNlcm5hbWUsICRjb2RlICk7CiAgICB9CiAgICBlbHNlIGlmICgkZG9jcmVhdGVmZXUpCiAgICB7CiAgICAgICAgJGFjdGlvbiA9ICdwb3N0X2NyZWF0ZXVzZXInOwoKICAgICAgICAvLyBpdCBhcHBlYXJzIHdlJ3JlIGFsbG93aW5nIGluc3RhbnQgcmVnaXN0cmF0aW9uCiAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5fQ3JlYXRlRnJvbnRlbmRVc2VyKCAkdG1wdWlkLCAkdXNlcm5hbWUsICRwYXNzd29yZCwgJGV4cGlyZXMgKTsKICAgICAgICBpZiggJHJlc3VsdFswXSA9PSBGQUxTRSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkcmVzdWx0WzFdKTsKCiAgICAgICAgLy8gd29vaG9vbywgdGhlIHVzZXIgYmUgY3JlYXRlZCAoaG9wZWZ1bGx5KS4KICAgICAgICAvLyBkZWxldGUgdGhlIHJlY29yZHMgZnJvbSB0aGUgU2VsZlJlZyB0YWJsZXMKICAgICAgICAkdGhpcy0+RGVsZXRlVGVtcFVzZXJQcm9wZXJ0aWVzKCAkdG1wdWlkICk7CiAgICAgICAgJHRoaXMtPkRlbGV0ZVRlbXBVc2VyKCAkdG1wdWlkICk7CgogICAgICAgIC8vIGRvIHdlIGF1dG9tYXRpY2FsbHkgbG9nIHRoaXMgdXNlciBpbj8KICAgICAgaWYoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2xvZ2luX2FmdGVydmVyaWZ5JykpCiAgICAgIHsKICAgICAgICAkbWFtcyA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnTUFNUycpOwogICAgICAgIGlmKCRyZXN1bHRbMV0gIT0gJG1hbXMtPkxvZ2dlZEluSWQoKSkKICAgICAgICB7CiAgICAgICAgICAkcmVzID0gJG1hbXMtPkxvZ2luKCR1c2VybmFtZSwgJHBhc3N3b3JkKTsKICAgICAgICAgIGlmKGlzX2FycmF5KCRyZXMpICYmICRyZXNbMF0gPT0gRkFMU0UpCiAgICAgICAgICB7CiAgICAgICAgICAgIGF1ZGl0KCcnLCAkdGhpcy0+R2V0TmFtZSgpLCAnUHJvYmxlbSB3aXRoIGF1dG8tbG9naW46ICcgLiAkcmVzWzFdKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KCiAgICAvLyBDaGVjayBpZiB3ZSBoYXZlIHRvIHJlZGlyZWN0IHRvIGEgcGFnZSBvciBub3QKICAgICRkZXN0cGFnZXN0ciA9IG51bGw7CiAgICBpZiggaXNzZXQoJHBhcmFtc1snZGVzdHBhZ2UnXSkgKSB7CiAgICAgICAgJGRlc3RwYWdlc3RyID0gdHJpbSgkcGFyYW1zWydkZXN0cGFnZSddKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRkZXN0cGFnZXN0ciA9ICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdGhpcy0+R2V0UHJlZmVyZW5jZSgkcmVkaXJlY3RfcHJlZikpOwogICAgfQogICAgaWYoICRkZXN0cGFnZXN0ciApIHsKICAgICAgICAkZGVzdHBhZ2VpZCA9ICR0aGlzLT5yZXNvbHZlX2FsaWFzX29yX2lkKCRkZXN0cGFnZXN0cik7CiAgICAgICAgaWYoICRkZXN0cGFnZWlkICkgJHJldHVybmlkID0gJGRlc3RwYWdlaWQ7CiAgICB9CgogICAgaWYoIChpc3NldCgkcGFyYW1zWydub2ZpbmFsbWVzc2FnZSddKSAmJiAkcGFyYW1zWydub2ZpbmFsbWVzc2FnZSddKSB8fAogICAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtYW1zcmVnX3NraXBfZmluYWxfbXNnJykgfHwKICAgICAgICAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93cGFpZHJlZ2lzdHJhdGlvbicpICYmIGlzc2V0KCRwYXJhbXNbJ3BrZyddKSAmJiAkcGFyYW1zWydwa2cnXSkgKSB7CiAgICAgICAgLy8gcmVkaXJlY3QgYmFjayB0byB0aGUgY29udGVudCBwYWdlIHdlIHN0YXJ0ZWQgdGhlIGZvcm0gb24uCiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ21yX29yaWdfdXJsJ10pICYmIGVtcHR5KCRkZXN0cGFnZXN0cikgKSB7CiAgICAgICAgICAgIHJlZGlyZWN0KCRwYXJhbXNbJ21yX29yaWdfdXJsJ10pOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgICR0aGlzLT5SZWRpcmVjdENvbnRlbnQoJHJldHVybmlkKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgJHRoaXMtPnNlc3Npb25fY2xlYXIoJ3NpZ251cCcpOwogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwkYWN0aW9uLCRyZXR1cm5pZCwkcGFybXMpOwp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkKewogICAgLy8gd2UgZ290IGFuIGV4Y2VwdGlvbgogICAgLy8gc28gd2UncmUgZ29pbmcgdG8gc2V0IGFuIGVycm9yIGluIHRoZSBzZXNzaW9uCiAgICAvLyBhbmQgcmVkaXJlY3QgYmFjayB0byB0aGUgc2lnbnVwIGFjdGlvbgogICAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwkZS0+R2V0TWVzc2FnZSgpKTsKICAgIFx4dF91dGlsczo6bG9nX2V4Y2VwdGlvbiggJGUgKTsKICAgICR0aGlzLT5zZXNzaW9uX3B1dCgncmVndXNlcl9lcnJvcicsJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RDb250ZW50KCRyZXR1cm5pZCk7Cn0KCiMKIyBFT0YKIwo=]]></data>
	</file>
	<file>
	  <filename>/action.selpkg.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgcmV0dXJuOwppZiggISR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd3NlbGVjdHBrZycpICkgdGhyb3cgbmV3IFxDbXNFcnJvcjQwM0V4Y2VwdGlvbignUGVybWlzc29uIERlbmllZCcpOwoKLy8gd2UncmUgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGhpcyBvd24gcGFja2FnZSAoZ3JvdXAocykpLgppZiggXHh0X3BhcmFtOjpleGlzdHMoJHBhcmFtcywnbXJfc3VibWl0JykgJiYgXHh0X3BhcmFtOjpleGlzdHMoJHBhcmFtcywnbXJfc2VscGtnJykgKSB7CiAgICB0cnkgewogICAgICAgICRwa2dpZHMgPSBhcnJheSgpOwogICAgICAgIGlmKCBpc19hcnJheSgkcGFyYW1zWydtcl9zZWxwa2cnXSkgKSB7CiAgICAgICAgICAgICRwa2dpZHMgPSAkcGFyYW1zWydtcl9zZWxwa2cnXTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRwa2dpZHMgPSBbICRwYXJhbXNbJ21yX3NlbHBrZyddIF07CiAgICAgICAgfQogICAgICAgICRteWZpbHRlciA9IGZ1bmN0aW9uKCBhcnJheSAkbGlzdCApIHsKICAgICAgICAgICAgJG91dCA9IFtdOwogICAgICAgICAgICBmb3JlYWNoKCAkbGlzdCBhcyAkb25lICkgewogICAgICAgICAgICAgICAgJG9uZSA9IChpbnQpICRvbmU7CiAgICAgICAgICAgICAgICBpZiggJG9uZSA+IDAgJiYgIWluX2FycmF5KCRvbmUsJG91dCkgKSAkb3V0W10gPSAkb25lOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCBjb3VudCgkb3V0KSApIHJldHVybiAkb3V0OwogICAgICAgIH07CiAgICAgICAgJHBrZ2lkcyA9ICRteWZpbHRlciggJHBrZ2lkcyApOwoKICAgICAgICBpZiggY291bnQoJHBrZ2lkcykgPiAxICYmICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd3NlbGVjdHBrZycpIDwgMiApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9tdWx0aXBsZXBrZ3MnKSk7CiAgICAgICAgfQoKICAgICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX21hbXNyZWdpc3RyYXRpb25fcGFpZHBrZ3MgV0hFUkUgaWQgSU4gKCcuaW1wbG9kZSgnLCcsJHBrZ2lkcykuJyknOwogICAgICAgICRwa2dzID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgICAgIGlmKCAhaXNfYXJyYXkoJHBrZ3MpIHx8IGNvdW50KCRwa2dzKSA9PSAwICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignRGF0YWJhc2UgZXJyb3InKTsKCiAgICAgICAgJG1hbXMgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoTU9EX01BTVMpOwogICAgICAgICRnaWRzID0gYXJyYXlfdW5pcXVlKHh0X2FycmF5OjpleHRyYWN0X2ZpZWxkKCRwa2dzLCdnaWQnKSk7CiAgICAgICAgJGFsbGdyb3VwcyA9ICRtYW1zLT5HZXRHcm91cExpc3RGdWxsKCk7CiAgICAgICAgJGFsbGdyb3VwcyA9IGFycmF5X2tleXMoJGFsbGdyb3Vwcyk7CiAgICAgICAgZm9yZWFjaCggJGdpZHMgYXMgJGdpZCApIHsKICAgICAgICAgICAgaWYoICFpbl9hcnJheSgkZ2lkLCRhbGxncm91cHMpICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignRGF0YWJhc2UgZXJyb3InKTsKICAgICAgICB9CgogICAgICAgICRwYXJtcyA9IFsgJ21yX2dyb3VwJz0+JGdpZHMsJ21yX3BrZyc9PiRwa2dpZHMgXTsKICAgICAgICAkcGFybXMgPSBbICdtcl9kYXRhJyA9PiBiYXNlNjRfZW5jb2RlKCBzZXJpYWxpemUoICRwYXJtcyApICkgXTsKICAgICAgICAkdGhpcy0+UmVkaXJlY3QoICRpZCwgJ3NpZ251cCcsICRyZXR1cm5pZCwgJHBhcm1zICk7CiAgICB9CiAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICBlY2hvICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSggJGUtPkdldE1lc3NhZ2UoKSApOwogICAgICAgIHJldHVybjsKICAgIH0KfQoKLy8gYnVpbGQgdGhlIHRlbXBsYXRlCiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfbWFtc3JlZ2lzdHJhdGlvbl9wYWlkcGtncyBPUkRFUiBCWSBuYW1lJzsKJHBwa2dzID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwppZiggISRwcGtncyApIHsKICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSgkaWQsJHBhcmFtcywkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdlcnJvcl9ub3BrZ3MnKSk7Cn0KCiRwa2dzID0gYXJyYXkoKTsKZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHBwa2dzKTsgJGkrKyApIHsKICAgICRyZWMgPSYgJHBwa2dzWyRpXTsKICAgICRwa2dzWyRyZWNbJ2lkJ11dID0gJHJlY1sncHJvbXB0J107Cn0KCgokdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdzZWxwa2d0ZW1wbGF0ZScpOwokbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0Vjb21tZXJjZUJhc2UnKTsKJHRwbC0+YXNzaWduKCdjdXJyZW5jeV9zeW1ib2wnLCckJyk7CiR0cGwtPmFzc2lnbignY3VycmVuY3lfY29kZScsJ1VTRCcpOwppZiggJG1vZCApIHsKICAgICR0cGwtPmFzc2lnbignY3VycmVuY3lfc3ltYm9sJyxcY2dfZWNvbW06OmdldF9jdXJyZW5jeV9zeW1ib2woKSk7CiAgICAkdHBsLT5hc3NpZ24oJ2N1cnJlbmN5X2NvZGUnLFxjZ19lY29tbTo6Z2V0X2N1cnJlbmN5X2NvZGUoKSk7Cn0KCiR0cGwtPmFzc2lnbignZXJyb3JfbXNnJywkdGhpcy0+c2Vzc2lvbl9nZXQoJ3JlZ3VzZXJfZXJyb3InKSk7CiR0aGlzLT5zZXNzaW9uX2NsZWFyKCdyZWd1c2VyX2Vycm9yJyk7CiR0cGwtPmFzc2lnbigncGtncycsJHBwa2dzKTsKJHRwbC0+YXNzaWduKCdwa2dsaXN0JywkcGtncyk7CiR0cGwtPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+WFRDcmVhdGVGb3JtU3RhcnQoJGlkLCdzZWxwa2cnLCRyZXR1cm5pZCwkcGFyYW1zKSk7CiR0cGwtPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CmlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dzZWxlY3Rwa2cnKSA9PSAyICkgJHRwbC0+YXNzaWduKCdpbnB1dHR5cGUnLCdjaGVja2JveCcpOwokdHBsLT5kaXNwbGF5KCk7CgojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/action.sendanotheremail.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7CgovLyB3ZSBoYXZlIHRoZSB1c2VybmFtZSAodGhlb3JldGljYWxseSkgaW4gdGhlICRwYXJhbXMKaWYoICFpc3NldCggJHBhcmFtc1snaW5wdXRfdXNlcm5hbWUnXSApICkgewogICRwYXJtc1snbW9kZSddID0gJ3NlbmRhbm90aGVyZW1haWwnOwogICRwYXJtc1snZXJyb3InXSA9IDE7CiAgJHBhcm1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJyk7CiAgJHBhcm1zWydtb2RlJ10gPSAnc2VuZGFub3RoZXJlbWFpbCc7CiAgJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICRwYXJtcyApOwogIHJldHVybjsKfQokdXNlcm5hbWUgPSAkcGFyYW1zWydpbnB1dF91c2VybmFtZSddOwoKLy8gbG9vayB1cCB0aGUgdXNlcm5hbWUgYW5kIGdldCBhbiBpZAokdGVtcHVzZXJpZCA9ICR0aGlzLT5HZXRUZW1wVXNlcklEKCAkdXNlcm5hbWUgKTsKaWYoICEkdGVtcHVzZXJpZCApIHsKICAkcGFybXNbJ2Vycm9yJ10gPSAxOwogICRwYXJtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX3VzZXJub3Rmb3VuZCcpOwogICRwYXJtc1snbW9kZSddID0gJ3NlbmRhbm90aGVyZW1haWwnOwogICR0aGlzLT5teVJlZGlyZWN0KCAkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAkcGFybXMgKTsKICByZXR1cm47Cn0KCi8vIGFuZCB3aGF0ZXZlciBkZXRhaWxzIHdlIGNhbiBmcm9tIHRoZSB1c2VycyB0YWJsZQokZGV0YWlscyA9ICR0aGlzLT5HZXRUZW1wVXNlckRldGFpbHMoICR0ZW1wdXNlcmlkICk7CmlmKCAkZGV0YWlscyA9PSBmYWxzZSApIHsKICAkcGFybXNbJ2Vycm9yJ10gPSAxOwogICRwYXJtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX3VzZXJub3Rmb3VuZCcpOwogICRwYXJtc1snbW9kZSddID0gJ3NlbmRhbm90aGVyZW1haWwnOwogICR0aGlzLT5teVJlZGlyZWN0KCAkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAkcGFybXMgKTsKICByZXR1cm47Cn0KCiRlbWFpbCA9ICcnOwppZiggaXNfZW1haWwoJHVzZXJuYW1lKSApIHsKICAkZW1haWwgPSAkdXNlcm5hbWU7Cn0KZWxzZSB7CiAgLy8gbm93IGdldCBwcm9wZXJ0aWVzCiAgJHRlbXB1c2VycHJvcHMgPSAkdGhpcy0+R2V0VGVtcFVzZXJQcm9wZXJ0aWVzKCAkdGVtcHVzZXJpZCApOwogIGlmKCAkdGVtcHVzZXJwcm9wcyA9PSBmYWxzZSApIHsKICAgICRwYXJtc1snZXJyb3InXSA9IDE7CiAgICAkcGFybXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9ub3Byb3BlcnRpZXMnKTsKICAgICRwYXJtc1snbW9kZSddID0gJ3NlbmRhbm90aGVyZW1haWwnOwogICAgJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICRwYXJtcyApOwogICAgcmV0dXJuOwogIH0KCiAgJG1hbXMgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ01BTVMnKTsKICBpZiggISRtYW1zICkgewogICAgJHBhcm1zWydlcnJvciddID0gMTsKICAgICRwYXJtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX25vZmV1c2Vyc21vZHVsZScpOwogICAgJHBhcm1zWydtb2RlJ10gPSAnc2VuZGFub3RoZXJlbWFpbCc7CiAgICAkdGhpcy0+bXlSZWRpcmVjdCggJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcm1zICk7CiAgICByZXR1cm47CiAgfQoKICAvLyBoYXZlIHRoZSBncm91cCBpZCwgZ2V0IHRoZSBncm91cCBwcm9wZXJ0eSByZWxhdGlvbnMKICAkcmVsYXRpb25zID0gJG1hbXMtPkdldEdyb3VwUHJvcGVydHlSZWxhdGlvbnMoICRkZXRhaWxzWydncm91cF9pZCddICk7CiAgaWYoICRyZWxhdGlvbnNbMF0gPT0gZmFsc2UgKSB7CiAgICAkcGFybXNbJ2Vycm9yJ10gPSAxOwogICAgJHBhcm1zWydtZXNzYWdlJ10gPSAkcmVsYXRpb25zWzFdOwogICAgJHBhcm1zWydtb2RlJ10gPSAnc2VuZGFub3RoZXJlbWFpbCc7CiAgICAkdGhpcy0+bXlSZWRpcmVjdCggJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcm1zICk7CiAgICByZXR1cm47CiAgfQoKICAkcHJvcHMgPSAkbWFtcy0+R2V0UHJvcGVydHlEZWZucygpOwogIGlmKCAkcHJvcHMgPT0gZmFsc2UgKSB7CiAgICAkcGFybXNbJ2Vycm9yJ10gPSAxOwogICAgJHBhcm1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfZGJlcnJvcicpOwogICAgJHBhcm1zWydtb2RlJ10gPSAnc2VuZGFub3RoZXJlbWFpbCc7CiAgICAkdGhpcy0+bXlSZWRpcmVjdCggJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcm1zICk7CiAgICByZXR1cm47CiAgfQoKICAvLyBub3cgZmluZCBhbiBlbWFpbCBhZGRyZXNzIHByb3BlcnR5CiAgLy8gYW5kIG1ha2Ugc3VyZSBpdCdzIG9mIHR5cGUgMgogICRmb3VuZCA9ICcnOwogIGZvcmVhY2goICRyZWxhdGlvbnMgYXMgJHJlbG4gKSB7CiAgICBmb3JlYWNoKCAkcHJvcHMgYXMgJHByb3AgKSB7CiAgICAgIGlmKCAkcHJvcFsndHlwZSddID09IDIgJiYgJHJlbG5bJ25hbWUnXSA9PSAkcHJvcFsnbmFtZSddICkgewoJLy8gZm91bmQgYW4gZW1haWwgcHJvcGVydHkKCWZvcmVhY2goICR0ZW1wdXNlcnByb3BzIGFzICR0ZW1wcHJvcCApIHsKCSAgaWYoICRyZWxuWyduYW1lJ10gPT0gJHRlbXBwcm9wWyd0aXRsZSddICkgewoJICAgICRmb3VuZCA9ICR0ZW1wcHJvcFsnZGF0YSddOwoJICAgIGJyZWFrOwoJICB9Cgl9CiAgICAgIH0KICAgICAgaWYoICRmb3VuZCAhPSAnJyApIGJyZWFrOwogICAgfQogICAgaWYoICRmb3VuZCAhPSAnJyApIGJyZWFrOwogIH0KICBpZiggISRmb3VuZCApIHsKICAgICRwYXJtc1snZXJyb3InXSA9IDE7CiAgICAkcGFybXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9ub2VtYWlsYWRkcmVzcycpOwogICAgJHBhcm1zWydtb2RlJ10gPSAnc2VuZGFub3RoZXJlbWFpbCc7CiAgICAkdGhpcy0+bXlSZWRpcmVjdCggJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcm1zICk7CiAgICByZXR1cm47CiAgfQogICRlbWFpbCA9ICRmb3VuZDsKfQoKJHRoaXMtPl9TZW5kVXNlckNvbmZpcm1hdGlvbkVtYWlsKCAkaWQsJHJldHVybmlkLCRlbWFpbCwgJHVzZXJuYW1lLCAkZGV0YWlsc1snY29kZSddICk7CgovLyB3ZSdyZSBub3QgcmVkaXJlY3RpbmcgYW55d2hlcmUgd2UgbmVlZCB0byBkaXNwbGF5IHNvbWUgbmljZSBtZXNzYWdlCi8vIGFib3V0IHdlIGp1c3Qgc3BhbW1lZCB5b3VyIGluYm94LCBldGMsIGV0Yy4KJHNtYXJ0eS0+YXNzaWduKCdzaXRlbmFtZScsICRnQ21zLT5jb25maWdbJ3Jvb3RfdXJsJ10pOwokc21hcnR5LT5hc3NpZ24oJ3VzZXJuYW1lJywkdXNlcm5hbWUpOwokc21hcnR5LT5hc3NpZ24oJ2VtYWlsJywgJGVtYWlsICk7CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgnbWFtc3JlZ19wb3N0X3NlbmRhbm90aGVyZW1haWxfdGVtcGxhdGUnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.setprefs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCFkZWZpbmVkKCdDTVNfVkVSU0lPTicpKSB7IGV4aXQ7IH0KCmlmKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpKSB7IHJldHVybjsgfQoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3ByZWZlcmVuY2VzJyk7Ci8vaWYoaXNzZXQoJHBhcmFtc1snc2V0dXBfY2FydF9ldmVudHMnXSkpCi8vewovLyAgLy8gc2V0dXAgdGhlIGNhcnQgZXZlbnRzCi8vICAkdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCdDR0Vjb21tZXJjZUJhc2UnLCAnQ2FydEFkanVzdGVkJywgRkFMU0UpOwovLyAgJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ0dFY29tbWVyY2VCYXNlJywgJ09yZGVyQ3JlYXRlZCcsIEZBTFNFKTsKLy8gICR0aGlzLT5BZGRFdmVudEhhbmRsZXIoJ0NHRWNvbW1lcmNlQmFzZScsICdPcmRlclVwZGF0ZWQnLCBGQUxTRSk7Ci8vICAkdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCdDR0Vjb21tZXJjZUJhc2UnLCAnT3JkZXJEZWxldGVkJywgRkFMU0UpOwovLyAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ2V2ZW50aGFuZGxlcnNfYWRkZWQnKSk7Ci8vICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwovL30KCmlmKGlzc2V0KCRwYXJhbXNbJ2lucHV0X25vcmVnaXN0ZXInXSkpCnsKICAkdG1wID0gaW1wbG9kZSgnLCcsICRwYXJhbXNbJ2lucHV0X25vcmVnaXN0ZXInXSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ25vcmVnaXN0ZXJfZ3JvdXBzJywgJHRtcCk7Cn0KZWxzZQp7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ25vcmVnaXN0ZXJfZ3JvdXBzJywgJycpOwp9CgppZihpc3NldCgkcGFyYW1zWydpbnB1dF9yZW1vdmVhbGwnXSkpCnsKICAkdGhpcy0+RXhwaXJlT2xkVGVtcFVzZXJzKCctNSB5ZWFycycpOwogIAogIHJldHVybjsKfQoKaWYoaXNzZXQoJHBhcmFtc1snaW5wdXRfcmVtb3ZlMXdlZWsnXSkpCnsKICAkdGhpcy0+RXhwaXJlT2xkVGVtcFVzZXJzKCctMSB3ZWVrJyk7CiAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKfQoKaWYoaXNzZXQoJHBhcmFtc1snaW5wdXRfcmVtb3ZlMW1vbnRoJ10pKQp7CiAgJHRoaXMtPkV4cGlyZU9sZFRlbXBVc2VycygnLTEgbW9udGgnKTsKICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwp9CgppZihpc3NldCgkcGFyYW1zWydpbnB1dF9yZW1vdmUxbW9udGgnXSkpCnsKICAkdGhpcy0+RXhwaXJlT2xkVGVtcFVzZXJzKCctMjQgaG91cnMnKTsKICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwp9CgppZihpc3NldCgkcGFyYW1zWydpbnB1dF9saXN0MWRheSddKSkKewogICMgY3JlYXRlIGEgY3N2IGZpbGUgZm9yIHRlbXAgdXNlcnMgdGhhdCBoYXZlCiAgIyBiZWVuIGluIHRoZXJlIG1vcmUgdGhhbiBvbmUgZGF5CiAgJHJlc3VsdCA9ICR0aGlzLT5DU1ZPbGRUZW1wVXNlcnMoJy0yNCBob3VycycpOwogIAogIGlmKCRyZXN1bHQgPT0gJycpCiAgewogICAgZWNobyAiPGgzPk5vIHJlc3VsdHMgcmV0dXJuZWQ8L2gzPiI7CiAgICAKICAgIHJldHVybjsKICB9CiAgaGVhZGVyKCdDb250ZW50LURlc2NyaXB0aW9uOiBGaWxlIFRyYW5zZmVyJyk7CiAgaGVhZGVyKCdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2ZvcmNlLWRvd25sb2FkJyk7CiAgaGVhZGVyKCdDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT10cmFwcGVkaW5tYW1zcmVnLmNzdicpOwogIHdoaWxlKEBvYl9lbmRfY2xlYW4oKSkKICB7CiAgICA7CiAgfQogIGVjaG8gJHJlc3VsdDsKICBleGl0KCk7Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ2lucHV0X2lubGluZSddKSkKewogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbmxpbmVfZm9ybXMnLCAkcGFyYW1zWydpbnB1dF9pbmxpbmUnXSk7Cn0KZWxzZQp7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2lubGluZV9mb3JtcycsIDApOwp9CgppZihpc3NldCgkcGFyYW1zWydpbnB1dF9ub3RpZnknXSkpCnsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgKICAgICdub3RpZnlfb25fcmVnaXN0cmF0aW9uJywKICAgICRwYXJhbXNbJ2lucHV0X25vdGlmeSddCiAgKTsKfQplbHNlCnsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnbm90aWZ5X29uX3JlZ2lzdHJhdGlvbicsIDApOwp9CgppZihpc3NldCgkcGFyYW1zWydpbnB1dF9lbWFpbF9jb25maXJtYXRpb24nXSkpCnsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgKICAgICdyZXF1aXJlX2VtYWlsX2NvbmZpcm1hdGlvbicsCiAgICAkcGFyYW1zWydpbnB1dF9lbWFpbF9jb25maXJtYXRpb24nXQogICk7Cn0KZWxzZQp7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3JlcXVpcmVfZW1haWxfY29uZmlybWF0aW9uJywgMCk7Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ2lucHV0X29uZWNsaWNrX2NvbmZpcm1hdGlvbiddKSkKewogICR0aGlzLT5TZXRQcmVmZXJlbmNlKAogICAgJ29uZWNsaWNrX2NvbmZpcm1hdGlvbicsCiAgICAkcGFyYW1zWydpbnB1dF9vbmVjbGlja19jb25maXJtYXRpb24nXQogICk7Cn0KZWxzZQp7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ29uZWNsaWNrX2NvbmZpcm1hdGlvbicsIDApOwp9CgokdGhpcy0+U2V0UHJlZmVyZW5jZSgnc2VuZF9lbWFpbHNfdG8nLCB0cmltKCRwYXJhbXNbJ2lucHV0X2NvbmZpcm1tYWlsX3RvJ10pKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FkbWluX25vdGlmeV9zdWJqZWN0Jyx0cmltKCRwYXJhbXNbJ2FkbWluX25vdGlmeV9zdWJqZWN0J10pKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2F1dG9jcmVhdGVfdXNlcicsXHh0X3BhcmFtOjpnZXRfYm9vbCgkcGFyYW1zLCdhdXRvY3JlYXRlX21hbXMnKSk7CiR0aGlzLT5TZXRUZW1wbGF0ZSgnYWRtaW5fbm90aWZ5X2VtYWlsJyx0cmltKCRwYXJhbXNbJ2FkbWluX25vdGlmeV9lbWFpbCddKSk7CgppZihpc3NldCgkcGFyYW1zWydyZXNldF9ub3RpZnlfdGVtcGxhdGUnXSkpCnsKICAkdHBsID0gZmlsZV9nZXRfY29udGVudHMoX19ESVJfXyAuICcvdGVtcGxhdGVzL2FkbWluX25vdGlmeV9lbWFpbC50cGwnKTsKICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2FkbWluX25vdGlmeV9lbWFpbCcsICR0cGwpOwp9CgppZihpc3NldCgkcGFyYW1zWydpbnB1dF9mb3JjZV9lbWFpbF90d2ljZSddKSkKewogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtYW1zcmVnX2ZvcmNlX2VtYWlsX3R3aWNlJywgMSk7Cn0KZWxzZQp7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ21hbXNyZWdfZm9yY2VfZW1haWxfdHdpY2UnLCAwKTsKfQoKaWYoaXNzZXQoJHBhcmFtc1snaW5wdXRfc2tpcF9maW5hbF9tc2cnXSkpCnsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWFtc3JlZ19za2lwX2ZpbmFsX21zZycsIDEpOwp9CmVsc2UKewogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtYW1zcmVnX3NraXBfZmluYWxfbXNnJywgMCk7Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ2lucHV0X2VuYWJsZV93aGl0ZWxpc3QnXSkpCnsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZW5hYmxlX3doaXRlbGlzdCcsICRwYXJhbXNbJ2lucHV0X2VuYWJsZV93aGl0ZWxpc3QnXSk7Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ2lucHV0X3doaXRlbGlzdCddKSkKewogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCd3aGl0ZWxpc3QnLCAkcGFyYW1zWydpbnB1dF93aGl0ZWxpc3QnXSk7Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ2lucHV0X3doaXRlbGlzdF90cmlnZ2VyX21lc3NhZ2UnXSkpCnsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnd2hpdGVsaXN0X3RyaWdnZXJfbWVzc2FnZScsICRwYXJhbXNbJ2lucHV0X3doaXRlbGlzdF90cmlnZ2VyX21lc3NhZ2UnXSk7Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ2lucHV0X3JlZ19hZGRpdGlvbmFsZ3JvdXBzJ10pKQp7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3JlZ19hZGRpdGlvbmFsZ3JvdXBzJywgKGludCkkcGFyYW1zWydpbnB1dF9yZWdfYWRkaXRpb25hbGdyb3VwcyddKTsKfQoKLy9pZihpc3NldCgkcGFyYW1zWydhbGxvd3NlbGVjdHBrZyddKSkKLy97Ci8vICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWxsb3dzZWxlY3Rwa2cnLCAoaW50KSRwYXJhbXNbJ2FsbG93c2VsZWN0cGtnJ10pOwovL30KLy9pZihpc3NldCgkcGFyYW1zWydhbGxvd3BhaWRyZWdpc3RyYXRpb24nXSkpCi8vewovLyAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FsbG93cGFpZHJlZ2lzdHJhdGlvbicsIChpbnQpJHBhcmFtc1snYWxsb3dwYWlkcmVnaXN0cmF0aW9uJ10pOwovL30KLy9pZihpc3NldCgkcGFyYW1zWydjYXJ0aXRlbV9zdW1tYXJ5X3RwbCddKSkKLy97Ci8vICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnY2FydGl0ZW1fc3VtbWFyeV90cGwnLCB0cmltKCRwYXJhbXNbJ2NhcnRpdGVtX3N1bW1hcnlfdHBsJ10pKTsKLy99Ci8vaWYoaXNzZXQoJHBhcmFtc1sncmVkaXJlY3RfcGFpZHBrZyddKSkKLy97Ci8vICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgncmVkaXJlY3RfcGFpZHBrZycsIHRyaW0oJHBhcmFtc1sncmVkaXJlY3RfcGFpZHBrZyddKSk7Ci8vfQoKJGxvZ2luX2FmdGVydmVyaWZ5ID0gMDsKaWYoaXNzZXQoJHBhcmFtc1snaW5wdXRfbG9naW5fYWZ0ZXJ2ZXJpZnknXSkpCnsKICAkbG9naW5fYWZ0ZXJ2ZXJpZnkgPSAxOwp9CgokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbG9naW5fYWZ0ZXJ2ZXJpZnknLCAkbG9naW5fYWZ0ZXJ2ZXJpZnkpOwokaW5wdXRfcmVkaXJlY3RfYWZ0ZXJyZWdpc3RlciA9ICcnOwoKaWYoaXNzZXQoJHBhcmFtc1snaW5wdXRfcmVkaXJlY3RfYWZ0ZXJyZWdpc3RlciddKSkKewogICRpbnB1dF9yZWRpcmVjdF9hZnRlcnJlZ2lzdGVyID0gdHJpbSgkcGFyYW1zWydpbnB1dF9yZWRpcmVjdF9hZnRlcnJlZ2lzdGVyJ10pOwp9CgokdGhpcy0+U2V0UHJlZmVyZW5jZSgncmVkaXJlY3RfYWZ0ZXJyZWdpc3RlcicsICRpbnB1dF9yZWRpcmVjdF9hZnRlcnJlZ2lzdGVyKTsKJGlucHV0X3JlZGlyZWN0X2FmdGVydmVyaWZ5ID0gJyc7CgppZihpc3NldCgkcGFyYW1zWydpbnB1dF9yZWRpcmVjdF9hZnRlcnZlcmlmeSddKSkKewogICRpbnB1dF9yZWRpcmVjdF9hZnRlcnZlcmlmeSA9IHRyaW0oJHBhcmFtc1snaW5wdXRfcmVkaXJlY3RfYWZ0ZXJ2ZXJpZnknXSk7Cn0KCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdyZWRpcmVjdF9hZnRlcnZlcmlmeScsICRpbnB1dF9yZWRpcmVjdF9hZnRlcnZlcmlmeSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCd2ZXJpZnlwYWdlJywgXHh0X3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsICd2ZXJpZnlwYWdlJykpOwokdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygncHJlZmVyZW5jZXNfdXBkYXRlZCcpKTsKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKCi8vIEVPRgo=]]></data>
	</file>
	<file>
	  <filename>/action.signup.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMS41CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCnVzZSBcTUFNU1xSUlV0aWxzIGFzIFJSVXRpbHM7CgppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwoKLy8KLy8gdGhpcyBmaWxlIGRpc3BsYXlzIHRoZSBmb3JtIGZvciByZWdpc3RyYXRpb24gYW5kIGhhbmRsZXMgdmFsaWRhdGluZyB0aGUgZGF0YQovLyBidXQgZG9lcyBub3QgZG8gcmVnaXN0cmF0aW9uIGl0c2VsZi4KLy8KJGVycm9yICAgICAgICAgICAgICAgID0gJG1lc3NhZ2UgPSBOVUxMOwokZXBhcmFtcyAgICAgICAgICAgICAgPSByZWdfdXRpbHM6OmNsZWFuX3BhcmFtcygkcGFyYW1zKTsKJG1hbXMgICAgICAgICAgICAgICAgID0gXHh0X3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9NQU1TKTsKJHVzZXJuYW1lX2lzX2VtYWlsICAgID0gJG1hbXMtPkdldFByZWZlcmVuY2UoJ3VzZXJuYW1lX2lzX2VtYWlsJyk7CiRub2NhcHRjaGEgICAgICAgICAgICA9IFx4dF9wYXJhbTo6Z2V0X2Jvb2woJGVwYXJhbXMsICdub2NhcHRjaGEnLCAwKTsKJGFsbG93X292ZXJ3cml0ZSAgICAgID0gXHh0X3BhcmFtOjpnZXRfYm9vbCgkZXBhcmFtcywgJ2FsbG93b3ZlcndyaXRlJyk7CiRyZWdfYWRkaXRpb25hbGdyb3VwcyA9IChpbnQpJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JlZ19hZGRpdGlvbmFsZ3JvdXBzJywgMCk7Cgp1bnNldCgkZXBhcmFtc1snYWN0aW9uJ10sICRlcGFyYW1zWydtb2R1bGUnXSwgJGVwYXJhbXNbJ3JldHVybmlkJ10pOwoKLy8gZ2V0IGRhdGEgcGFzc2VkIGludG8gdGhlIHNlc3Npb24gYnkgdGhlIHJlZ3VzZXIgYWN0aW9uCi8vIHRoaXMgb25seSBvY2N1cnMgaWYgdGhlcmUgaXMgYW4gZXJyb3IgaW4gdGhhdCBhY3Rpb24uCiR0bXAgPSAkdGhpcy0+c2Vzc2lvbl9nZXQoJ3JlZ3VzZXJfZXJyb3InKTsKJHRoaXMtPnNlc3Npb25fY2xlYXIoJ3JlZ3VzZXJfZXJyb3InKTsKCmlmKCR0bXApCnsKICAkdF9wYXJhbXMgPSAkdGhpcy0+c2Vzc2lvbl9nZXQoJ3NpZ251cCcpOwogICR0aGlzLT5zZXNzaW9uX2NsZWFyKCdzaWdudXAnKTsKICAKICBpZigkdF9wYXJhbXMpCiAgewogICAgJGVwYXJhbXMgPSBhcnJheV9tZXJnZSgkZXBhcmFtcywgJHRfcGFyYW1zKTsKICB9CiAgCiAgdW5zZXQoJGVwYXJhbXNbJ3N1Ym1pdCddKTsKICAkbWVzc2FnZSA9ICR0bXA7CiAgJGVycm9yICAgPSAxOwp9CgovL2lmKCAhaXNzZXQoICRlcGFyYW1zWydncm91cCddICkgKQovL3sKLy8gICAgLy8gdGhpcyBpcyB1Z2x5IGZvciB0aGUgdXNlciB0byBzZWUKLy8gICAgLy8gYnV0IGF0IGxlYXN0IHRoZSBhZG1pbiB3aWxsIGJlIGFibGUgdG8gZmlndXJlIGl0IG91dAovLyAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdubyBncm91cCBwYXJhbWV0ZXIgc3BlY2lmaWVkIGZvciB0aGUgc2lnbnVwIGFjdGlvbicpOwovLyAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoICRpZCwgJGVwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpKTsKLy8gICAgcmV0dXJuOwovL30KCi8vIHllcCwgYWxsIHRoZSBtb2R1bGVzIGFyZSBoZXJlLCBub3cgd2UgY29udmVydCBhIHNpbmdsZSBuYW1lIHRvIGFuIGludGVnZXIgaWQKLy8gb3IgYW4gYXJyYXkgb2YgaW50ZWdlciBpZHMuLi4gdGhlbiB3ZSB2YWxpZGF0ZSB0aGVtLgoKJGdycGlkcyA9IHJlZ191dGlsczo6ZXhwYW5kX2dyb3VwKCRlcGFyYW1zWydncm91cCddKTsKLy9pZiggIWNvdW50KCRncnBpZHMpICkKLy97Ci8vICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSggJGlkLCAkZXBhcmFtcywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnZXJyb3Jfbm92YWxpZGdyb3VwcycpKTsKLy8gICAgcmV0dXJuOwovL30KCi8vIG5vdyB3ZSBoYXZlIGdyb3VwIGlkcy4uLiBoYXZlIHRvIGdldCBhIGxpc3Qgb2YgdGhlIHByb3BlcnRpZXMsIGFuZCBwcm9wZXJ0eSBkZWZpbml0aW9ucy4KJHRtcCAgID0gJHByb3BlcnRpZXMgPSBbXTsKJGRlZm5zID0gJG1hbXMtPkdldFByb3BlcnR5RGVmbnMoKTsKCmZvcmVhY2goJGdycGlkcyBhcyAkZ2lkKQp7CiAgJGdyZWxucyA9ICRtYW1zLT5HZXRHcm91cFByb3BlcnR5UmVsYXRpb25zKCRnaWQpOwogIGlmKDIgPT0gY291bnQoJGdyZWxucykgJiYgRkFMU0UgPT09ICRncmVsbnNbMF0pIHsgY29udGludWU7IH0KICAkdG1wID0gUlJVdGlsczo6YXJyYXlfbWVyZ2VfYnlfbmFtZV9yZXF1aXJlZCgkdG1wLCAkZ3JlbG5zKTsKICAKICB1YXNvcnQoJHRtcCwgJ3h0X2FycmF5Ojpjb21wYXJlX2VsZW1lbnRzX2J5X3NvcnRvcmRlcl9rZXknKTsKfQoKZm9yZWFjaCgkdG1wIGFzICRvbmUpCnsKICAkbmFtZSA9ICRvbmVbJ25hbWUnXTsKICAKICBpZighaXNzZXQoJGRlZm5zWyRuYW1lXSkpCiAgewogICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfZGJlcnJvcicpKTsKICB9CiAgJG9uZSAgICAgICAgICAgICAgICAgICAgICA9IGFycmF5X21lcmdlKCRvbmUsICRkZWZuc1skbmFtZV0pOwogICRwcm9wZXJ0aWVzWyRvbmVbJ25hbWUnXV0gPSAkb25lOwp9Cgp1bnNldCgkdG1wKTsKCi8vCi8vIGhhbmRsZSBzdWJtaXQKLy8KCgppZihpc3NldCgkZXBhcmFtc1snc3VibWl0J10pKQp7CiAgdHJ5CiAgewogICAgaWYoIVx4dF91dGlsczo6dmFsaWRfZm9ybV9jc3JmKCkpCiAgICB7CiAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3Jfc2VjdXJpdHknKSk7CiAgICB9CiAgICAKICAgIC8vIGZvciBmaWVsZCB0eXBlcyB0aGF0IGhhdmUgdG8gYmUgJ2J1aWx0JyB3ZSBkbyB0aGF0IGZpcnN0LCBzbyB3ZSBkb24ndCBsb3NlIHRoZWlyIGRhdGEKICAgIC8vIGlmIGFub3RoZXIgZXJyb3Igb2NjdXJzLgogICAgZm9yZWFjaCgkcHJvcGVydGllcyBhcyAkcHJvcG5hbWUgPT4gJHByb3ApCiAgICB7CiAgICAgICRkZWZuICAgICA9ICRkZWZuc1skcHJvcG5hbWVdOwogICAgICAkdHlwZSAgICAgPSAkZGVmblsndHlwZSddOwogICAgICAkcmVxdWlyZWQgPSAoMiA9PSAkcHJvcFsncmVxdWlyZWQnXSk7CiAgICAgICR2YWwgICAgICA9IFx4dF91dGlsczo6Z2V0X3BhcmFtKCRlcGFyYW1zLCAnaW5wdXRfJyAuICRwcm9wbmFtZSk7CiAgICAgIAogICAgICBzd2l0Y2goJHR5cGUpCiAgICAgIHsKICAgICAgICBjYXNlIDU6IC8vIG11bHRpc2VsZWN0CiAgICAgICAgICBpZigkcmVxdWlyZWQgJiYgISR2YWwpCiAgICAgICAgICB7CiAgICAgICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfcmVxdWlyZWRmaWVsZCcsICRkZWZuWydwcm9tcHQnXSkpOwogICAgICAgICAgfQogICAgICAgICAgCiAgICAgICAgICBpZigkdmFsKQogICAgICAgICAgewogICAgICAgICAgICAkZXBhcmFtc1snaW5wdXRfJyAuICRwcm9wbmFtZV0gPSBpbXBsb2RlKCcsJywgJHZhbCk7CiAgICAgICAgICAgICR2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRlcGFyYW1zWydpbnB1dF8nIC4gJHByb3BuYW1lXTsKICAgICAgICAgIH0KICAgICAgICBicmVhazsKICAgICAgICAKICAgICAgICBjYXNlIDg6IC8vIGRhdGUKICAgICAgICAgIGlmKCRyZXF1aXJlZCAmJiAhaXNzZXQoJGVwYXJhbXNbJ2lucHV0XycgLiAkcHJvcG5hbWUgLiAnTW9udGgnXSkpCiAgICAgICAgICB7CiAgICAgICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfcmVxdWlyZWRmaWVsZCcsICRkZWZuWydwcm9tcHQnXSkpOwogICAgICAgICAgfQogICAgICAgICAgCiAgICAgICAgICBpZihpc3NldCgkZXBhcmFtc1snaW5wdXRfJyAuICRwcm9wbmFtZSAuICdNb250aCddKSkKICAgICAgICAgIHsKICAgICAgICAgICAgJGVwYXJhbXNbJ2lucHV0XycgLiAkcHJvcG5hbWVdID0gbWt0aW1lKAogICAgICAgICAgICAgIDAsIDAsIDAsCiAgICAgICAgICAgICAgXHh0X3BhcmFtOjpnZXRfaW50KCRlcGFyYW1zLCAnaW5wdXRfJyAuICRwcm9wbmFtZSAuICdNb250aCcpLAogICAgICAgICAgICAgIFx4dF9wYXJhbTo6Z2V0X2ludCgkZXBhcmFtcywgJ2lucHV0XycgLiAkcHJvcG5hbWUgLiAnRGF5JyksCiAgICAgICAgICAgICAgXHh0X3BhcmFtOjpnZXRfaW50KCRlcGFyYW1zLCAnaW5wdXRfJyAuICRwcm9wbmFtZSAuICdZZWFyJykKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGVwYXJhbXNbJ2lucHV0XycgLiAkcHJvcG5hbWVdOwogICAgICAgICAgICB1bnNldCgKICAgICAgICAgICAgICAkZXBhcmFtc1snaW5wdXRfJyAuICRwcm9wbmFtZSAuICdNb250aCddLAogICAgICAgICAgICAgICRlcGFyYW1zWydpbnB1dF8nIC4gJHByb3BuYW1lIC4gJ0RheSddLAogICAgICAgICAgICAgICRlcGFyYW1zWydpbnB1dF8nIC4gJHByb3BuYW1lIC4gJ1llYXInXQogICAgICAgICAgICApOwogICAgICAgICAgfQogICAgICAgIGJyZWFrOwogICAgICB9CiAgICB9CiAgICAKICAgIC8vIGF0dGVtcHQgdG8gcmVnaXN0ZXIgdG8gYW4gYWJzb2x1dGVseSB2ZXJib3RlbiBncm91cAogICAgJHRtcCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdub3JlZ2lzdGVyX2dyb3VwcycpOwogICAgCiAgICBpZigkdG1wKQogICAgewogICAgICAkdmVyYm90ZW4gPSBleHBsb2RlKCcsJywgJHRtcCk7CiAgICAgICR0bXAgICAgICA9IGFycmF5X2ludGVyc2VjdCgkZ3JwaWRzLCAkdmVyYm90ZW4pOwogICAgICAKICAgICAgaWYoY291bnQoJHRtcCkpCiAgICAgIHsKICAgICAgICB0aHJvdyBuZXcgXE1BTVNSRUdWYWxpZGF0aW9uRXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX25vcmVnaXN0ZXInKSk7CiAgICAgIH0KICAgIH0KICAgIAogICAgLy8gZ2V0IHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQKICAgICR1c2VybmFtZV8xID0gY21zX2h0bWxfZW50aXR5X2RlY29kZShceHRfcGFyYW06OmdldF9zdHJpbmcoJGVwYXJhbXMsICdpbnB1dF91c2VybmFtZScpKTsKICAgICR1c2VybmFtZV8yID0gY21zX2h0bWxfZW50aXR5X2RlY29kZShceHRfcGFyYW06OmdldF9zdHJpbmcoJGVwYXJhbXMsICdpbnB1dF91c2VybmFtZV9hZ2FpbicpKTsKICAgICRwYXNzd29yZF8xID0gY21zX2h0bWxfZW50aXR5X2RlY29kZShceHRfcGFyYW06OmdldF9zdHJpbmcoJGVwYXJhbXMsICdpbnB1dF9wYXNzd29yZCcpKTsKICAgICRwYXNzd29yZF8yID0gY21zX2h0bWxfZW50aXR5X2RlY29kZShceHRfcGFyYW06OmdldF9zdHJpbmcoJGVwYXJhbXMsICdpbnB1dF9yZXBlYXRwYXNzd29yZCcpKTsKICAgIAogICAgaWYoISR1c2VybmFtZV8xKQogICAgewogICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oCiAgICAgICAgKCR1c2VybmFtZV9pc19lbWFpbCkgPyAkdGhpcy0+TGFuZygnZXJyb3JfZW1wdHllbWFpbCcpIDogJHRoaXMtPkxhbmcoJ2Vycm9yX2VtcHR5dXNlcm5hbWUnKQogICAgICApOwogICAgfQogICAgCiAgICAvLyBjaGVjayB0aGUgcGFzc3dvcmRzCiAgICBpZighJHBhc3N3b3JkXzEpCiAgICB7CiAgICAgIHRocm93IG5ldyBcTUFNU1JFR1ZhbGlkYXRpb25FcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHBhc3N3b3JkJykpOwogICAgfQogICAgCiAgICBpZighJG1hbXMtPklzVmFsaWRQYXNzd29yZCgkcGFzc3dvcmRfMSkpCiAgICB7CiAgICAgIHRocm93IG5ldyBcTUFNU1JFR1ZhbGlkYXRpb25FcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHBhc3N3b3JkJykpOwogICAgfQogICAgCiAgICBpZigkcGFzc3dvcmRfMSAhPT0gJHBhc3N3b3JkXzIpCiAgICB7CiAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfcGFzc3dvcmRzZG9udG1hdGNoJykpOwogICAgfQogICAgCiAgICAvLyBnZXQgYW4gZW1haWwgZmllbGQsIHNvIHRoYXQgd2UgY2FuIGRvIHNvbWUgZW1haWxpbmcKICAgICRlbWFpbF9maWVsZCA9IE5VTEw7CiAgICAKICAgIGlmKCR1c2VybmFtZV9pc19lbWFpbCkKICAgIHsKICAgICAgJGVtYWlsX2ZpZWxkID0gJ2lucHV0X3VzZXJuYW1lJzsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgZm9yZWFjaCgkcHJvcGVydGllcyBhcyAkcHJvcG5hbWUgPT4gJGRlZm4pCiAgICAgIHsKICAgICAgICBpZigyID09ICRkZWZuWyd0eXBlJ10pCiAgICAgICAgewogICAgICAgICAgJGVtYWlsX2ZpZWxkID0gJ2lucHV0XycgLiAkcHJvcG5hbWU7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIAogICAgaWYoISRlbWFpbF9maWVsZCkKICAgIHsKICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3Jfbm9lbWFpbGFkZHJlc3MnKSk7CiAgICB9CiAgICAKICAgICRlbWFpbCA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkZXBhcmFtcywgJGVtYWlsX2ZpZWxkKTsKICAgICRyZXMgICA9ICRtYW1zLT5Jc1ZhbGlkRW1haWxBZGRyZXNzKCRlbWFpbCwgLTEsIEZBTFNFKTsKICAgIAogICAgaWYoIWlzX2FycmF5KCRyZXMpIHx8IEZBTFNFID09ICRyZXNbMF0pCiAgICB7CiAgICAgIHRocm93IG5ldyBcTUFNU1JFR1ZhbGlkYXRpb25FcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZGVtYWlsJykpOwogICAgfQogICAgCiAgICAkZXBhcmFtc1sndXNlX2VtYWlsJ10gPSAkZW1haWw7ICAvLyB0aGlzIGlzIHVzZWQgYnkgdGhlIHJlZ3VzZXIgYWN0aW9uCiAgICAKICAgIC8vIGNoZWNrIHRoZSByZXBlYXRlZCBlbWFpbCBmaWVsZC4KICAgIGlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtYW1zcmVnX2ZvcmNlX2VtYWlsX3R3aWNlJykpCiAgICB7CiAgICAgIGlmKCFpc3NldCgkZXBhcmFtc1skZW1haWxfZmllbGQgLiAnX2FnYWluJ10pKQogICAgICB7CiAgICAgICAgdGhyb3cgbmV3IFxNQU1TUkVHVmFsaWRhdGlvbkVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9ub3NlY29uZGVtYWlsYWRkcmVzcycpKTsKICAgICAgfQogICAgICAKICAgICAgaWYoJGVwYXJhbXNbJGVtYWlsX2ZpZWxkXSAhPSAkZXBhcmFtc1skZW1haWxfZmllbGQgLiAnX2FnYWluJ10pCiAgICAgIHsKICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2VtYWlsZG9lc25vdG1hdGNoJykpOwogICAgICB9CiAgICB9CiAgICAKICAgIC8vIGNoZWNrIHRoZSBjYXB0Y2hhCiAgICBpZighJG5vY2FwdGNoYSkKICAgIHsKICAgICAgJGNhcHRjaGEgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDYXB0Y2hhJyk7CiAgICAgIAogICAgICBpZihpc19vYmplY3QoJGNhcHRjaGEpICYmICEkY2FwdGNoYS0+Q2hlY2tDYXB0Y2hhKFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkZXBhcmFtcywgJ2lucHV0X2NhcHRjaGEnKSkpCiAgICAgIHsKICAgICAgICB0aHJvdyBuZXcgXE1BTVNSRUdWYWxpZGF0aW9uRXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2NhcHRjaGFtaXNtYXRjaCcpKTsKICAgICAgfQogICAgfQogICAgCiAgICAkb3ZlcndyaXRlX3VpZCA9IE5VTEw7CiAgICAKICAgIGlmKCRyZWdfYWRkaXRpb25hbGdyb3VwcyAmJiAkYWxsb3dfb3ZlcndyaXRlKQogICAgewogICAgICAvLyBhbGxvdyByZWdpc3RyYXRpb24gdG8gYWRkaXRpb25hbCBncm91cHMKICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgdGhlIHVzZXIgaXMgY3VycmVudGx5IGxvZ2dlZCBpbi4KICAgICAgJG1hbXNfdWlkID0gJG1hbXMtPkxvZ2dlZEluSWQoKTsKICAgICAgCiAgICAgIGlmKCRtYW1zX3VpZCA8IDEpCiAgICAgIHsKICAgICAgICB0aHJvdyBuZXcgXE1BTVNSRUdWYWxpZGF0aW9uRXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2FkZGl0aW9uYWxncm91cHNfbm90bG9nZ2VkaW4nKSk7CiAgICAgIH0KICAgICAgCiAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHRoZSB1c2VybmFtZSBoZSBlbnRlcmVkIG1hdGNoZXMgdGhlIG9uZSBvbiBmaWxlLgogICAgICAkcXVlcnkgPSBuZXcgbWFtc191c2VyX3F1ZXJ5KCk7CiAgICAgICRxdWVyeS0+c2V0X3BhZ2VsaW1pdCgxKTsKICAgICAgJHF1ZXJ5LT5hZGRfYW5kX29wdChtYW1zX3VzZXJfcXVlcnlfb3B0OjpNQVRDSF9VU0VSTElTVCwgJG1hbXNfdWlkKTsKICAgICAgJHJzICA9ICRxdWVyeS0+ZXhlY3V0ZSgpOwogICAgICAkY250ID0gJHJzLT5nZXRfZm91bmRfcm93cygpOwogICAgICAKICAgICAgaWYoMSA9PSAkY250KQogICAgICB7CiAgICAgICAgLy8gb25seSBvbmUgbWF0Y2ggZm91bmQuCiAgICAgICAgJGRhdGEgPSAkcnMtPmZpZWxkczsKICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCB0aGUgdXNlcm5hbWUgd2UgYXJlIGxvZ2dlZCBpbiBhcywgbWF0Y2hlcyB0aGlzIGZvcm0gc3VibWlzc2lvbi4KICAgICAgICBpZigkZGF0YVsndXNlcm5hbWUnXSAhPSAkdXNlcm5hbWVfMSkKICAgICAgICB7CiAgICAgICAgICB0aHJvdyBuZXcgXE1BTVNSRUdWYWxpZGF0aW9uRXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX3VzZXJuYW1lbWlzbWF0Y2gnKSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgICRvdmVyd3JpdGVfdWlkID0gJG1hbXNfdWlkOwogICAgICB9CiAgICB9CiAgICAKCiAgICAvLyBjaGVjayBpZiB0aGUgdXNlcm5hbWUgaXMgdGFrZW4KICAgIGlmKCEkb3ZlcndyaXRlX3VpZCkKICAgIHsKICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgdGhpcyB1c2VybmFtZSBpcyBub3QgYWxyZWFkeSB1c2VkIGluIHRoaXMgbW9kdWxlCiAgICAgIGlmKCR0aGlzLT5HZXRUZW1wVXNlcklEKCR1c2VybmFtZV8xKSkKICAgICAgewogICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfdXNlcm5hbWV0YWtlbl9uZWVkdmFsaWRhdGlvbicpKTsKICAgICAgfQogICAgICAKICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgdGhpcyB1c2VybmFtZSBpcyBub3QgYWxyZWFkeSB1c2VkIGluIE1BTVMKICAgICAgaWYoMCA8ICRtYW1zLT5HZXRVc2VySUQoJHVzZXJuYW1lXzEpKQogICAgICB7CiAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl91c2VybmFtZXRha2VuJykpOwogICAgICB9CiAgICB9CiAgICAKICAgIC8vIG1ha2Ugc3VyZSBpdCdzIGEgdmFsaWQgdXNlcm5hbWUuLi4KICAgIGlmKCEkbWFtcy0+SXNWYWxpZFVzZXJuYW1lKCR1c2VybmFtZV8xLCAkb3ZlcndyaXRlX3VpZCA8IDEpKQogICAgewogICAgICB0aHJvdyBuZXcgXE1BTVNSRUdWYWxpZGF0aW9uRXJyb3IoCiAgICAgICAgJHVzZXJuYW1lX2lzX2VtYWlsID8gJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRlbWFpbCcpIDogJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWR1c2VybmFtZScpCiAgICAgICk7CiAgICB9CiAgICAKICAgIC8vIHZhbGlkYXRlIHRoZSBpbmRpdmlkdWFsIGZpZWxkcy4KICAgICRtYXRjaGZpZWxkc19zdHIgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWRkaXRpb25hbGdyb3Vwc19tYXRjaGZpZWxkcycsICcnKTsKICAgIAogICAgJG1hdGNoZmllbGRzID0gZXhwbG9kZSgnOjonLCAkbWF0Y2hmaWVsZHNfc3RyKTsKICAgIAogICAgZm9yZWFjaCgkcHJvcGVydGllcyBhcyAkcHJvcG5hbWUgPT4gJHByb3ApCiAgICB7CiAgICAgICRkZWZuICAgICAgICAgPSAkZGVmbnNbJHByb3BuYW1lXTsKICAgICAgJHR5cGUgICAgICAgICA9ICRkZWZuWyd0eXBlJ107CiAgICAgICRyZXF1aXJlZCAgICAgPSAoMiA9PSAkcHJvcFsncmVxdWlyZWQnXSk7CiAgICAgICRmb3JjZV91bmlxdWUgPSAkZGVmblsnZm9yY2VfdW5pcXVlJ107CiAgICAgICR2YWwgICAgICAgICAgPSBceHRfdXRpbHM6OmdldF9wYXJhbSgkZXBhcmFtcywgJ2lucHV0XycgLiAkcHJvcG5hbWUpOwogICAgICAKICAgICAgaWYoJHJlcXVpcmVkICYmICEkdmFsKQogICAgICB7CiAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9yZXF1aXJlZGZpZWxkJywgJGRlZm5bJ3Byb21wdCddKSk7CiAgICAgIH0KICAgICAgCiAgICAgIHN3aXRjaCgkdHlwZSkKICAgICAgewogICAgICAgIGNhc2UgMjogLy8gZW1haWwKICAgICAgICAgIGlmKCR2YWwpCiAgICAgICAgICB7CiAgICAgICAgICAgICR0bXAgPSAkbWFtcy0+SXNWYWxpZEVtYWlsQWRkcmVzcygkdmFsKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmKCEkdG1wWzBdKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0bXBbMV0pOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgYnJlYWs7CiAgICAgICAgCi8vICAgICAgICBjYXNlIDM6IC8vIHRleHRhcmVhCi8vICAgICAgICAgICR2YWwgPSBjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKCR2YWwpOwovLyAgICAgICAgICAkdmFsID0geHRfdXRpbHM6OmNsZWFuX2lucHV0X2h0bWwoJHZhbCk7Ci8vICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwovLyAgICAgICAgICAkYWJjMTIzNDU2ID0gXGNvbXBhY3QoJ3ZhbCcpOwovLyAgICAgICAgICBlY2hvKCc8YnIvPjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojxici8+Jyk7Ci8vICAgICAgICAgIGRlYnVnX2Rpc3BsYXkoJGFiYzEyMzQ1Nik7Ci8vICAgICAgICAgIGVjaG8oJzxici8+JyAuIF9fRklMRV9fIC4gJyA6ICgnIC4gX19DTEFTU19fIC4gJyA6OiAnIC4gX19GVU5DVElPTl9fIC4gJykgOiAnIC4gX19MSU5FX18gLiAnPGJyLz4nKTsKLy8gICAgICAgICAgZGllKCc8YnIvPlJJUCE8YnIvPicpOwovLyAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLy8KLy8gICAgICAgICAgZGllKF9fRklMRV9fIC4gJyAnIC4gX19MSU5FX18pOwovLwovLyAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgCiAgICAgIGlmKCRmb3JjZV91bmlxdWUgJiYgKCEkYWxsb3dfb3ZlcndyaXRlIHx8ICFpbl9hcnJheSgkcHJvcG5hbWUsICRtYXRjaGZpZWxkcykpKQogICAgICB7CiAgICAgICAgaWYoJHZhbCAmJiAhJG1hbXMtPklzVXNlclByb3BlcnR5VmFsdWVVbmlxdWUoLTEsICRwcm9wbmFtZSwgJHZhbCkpCiAgICAgICAgewogICAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl91bmlxdWVmaWVsZCcsICRkZWZuWydwcm9tcHQnXSkpOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgCiAgICBpZigoJGZsYWcgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZW5hYmxlX3doaXRlbGlzdCcpKSkKICAgIHsKICAgICAgLy8gdGhpcyBjb3VsZCBnbyBpbnRvIGEgaG9vayBoYW5kbGVyCiAgICAgICRtYXRjaGVkID0gRkFMU0U7CiAgICAgICRsaXN0ICAgID0gcHJlZ19zcGxpdCgiLygoXHIoPyFcbikpfCgoPzwhXHIpXG4pfChcclxuKSkvIiwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3doaXRlbGlzdCcsICcnKSk7CiAgICAgIAogICAgICBpZihjb3VudCgkbGlzdCkpCiAgICAgIHsKICAgICAgICBmb3JlYWNoKCRsaXN0IGFzICRvbmVfbGluZSkKICAgICAgICB7CiAgICAgICAgICAkcmVnZXggPSAnL14nIC4gc3RyX3JlcGxhY2UoIkAiLCAiXEAiLCBzdHJfcmVwbGFjZSgiXCoiLCAiLioiLCBwcmVnX3F1b3RlKCRvbmVfbGluZSkpKSAuICckLyc7CiAgICAgICAgICAKICAgICAgICAgIGlmKHByZWdfbWF0Y2goJHJlZ2V4LCAkdXNlcm5hbWVfMSkgPiAwKQogICAgICAgICAgewogICAgICAgICAgICAkbWF0Y2hlZCA9IFRSVUU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgaWYoKCdleGNsdWRlJyA9PSAkZmxhZyAmJiAkbWF0Y2hlZCkgfHwgKCdpbmNsdWRlJyA9PSAkZmxhZyAmJiAhJG1hdGNoZWQpKQogICAgICB7CiAgICAgICAgLy8gQHRvZG86IHVzZSBsYW5nIHN0cmluZyBhbmQgZ2V0IHJpZCBvZiB0aGlzIHByZWZlcmVuY2UuCiAgICAgICAgdGhyb3cgbmV3IFxNQU1TUkVHVmFsaWRhdGlvbkVycm9yKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd3aGl0ZWxpc3RfdHJpZ2dlcl9tZXNzYWdlJywgJ1doaXRlbGlzdCBNYXRjaGVkJykpOwogICAgICB9CiAgICB9CiAgICAKICAgIC8vIG9uZSBmdXJ0aGVyIGV2ZW50CiAgICAkcGFzcyAgICA9IFRSVUU7CiAgICAkbWVzc2FnZSA9IE5VTEw7CiAgICBcQ01TTVNcSG9va01hbmFnZXI6OmRvX2hvb2soCiAgICAgICdNQU1TUmVnaXN0cmF0aW9uOjpiZWZvcmVOZXdVc2VyJywKICAgICAgWwogICAgICAgICd1c2VybmFtZScgPT4gJHVzZXJuYW1lXzEsICdlbWFpbCcgPT4gJGVtYWlsLCAncGFzc3dvcmQnID0+ICRwYXNzd29yZF8xLCAncGFzcycgPT4gJiRwYXNzLAogICAgICAgICdtZXNzYWdlJyAgPT4gJiRtZXNzYWdlCiAgICAgIF0KICAgICk7CiAgICAKICAgICRwYXNzID0gXGNtc190b19ib29sKCRwYXNzKTsKICAgIAogICAgaWYoISRwYXNzKQogICAgewogICAgICBpZighJG1lc3NhZ2UpCiAgICAgIHsKICAgICAgICAkbWVzc2FnZSA9ICR0aGlzLT5MYW5nKCdlcnJvcl92YWxpZGF0aW9uX290aGVyJyk7CiAgICAgIH0KICAgICAgdGhyb3cgbmV3IE1BTVNSRUdWYWxpZGF0aW9uRXJyb3IoJG1lc3NhZ2UpOwogICAgfQogICAgCiAgICAvLwogICAgLy8gZG9uZSBhbGwgdmFsaWRhdGlvbgogICAgLy8KICAgICRlcGFyYW1zWydvdmVyd3JpdGVfdWlkJ10gPSAkb3ZlcndyaXRlX3VpZDsKICAgIAogICAgJHRoaXMtPnNlc3Npb25fcHV0KCdzaWdudXAnLCAkZXBhcmFtcyk7IC8vIHNhdmUgdGhlIGRhdGEgaW4gY2FzZSBvZiBlcnJvci4KICAgICR0aGlzLT5yZWRpcmVjdCgnY250bnQwMScsICdyZWd1c2VyJywgJHJldHVybmlkKTsKICB9CiAgY2F0Y2goXE1BTVNSRUdWYWxpZGF0aW9uRXJyb3IgJGUpCiAgewogICAgYXVkaXQoJycsICR0aGlzLT5HZXROYW1lKCksICdTaWdudXAgVmFsaWRhdGlvbiBFcnJvcjogJyAuICRlLT5HZXRNZXNzYWdlKCkpOwogICAgJGVycm9yICAgPSAxOwogICAgJG1lc3NhZ2UgPSAkZS0+R2V0TWVzc2FnZSgpOwogIH0KICBjYXRjaChcRXhjZXB0aW9uICRlKQogIHsKICAgICRlcnJvciAgID0gMTsKICAgICRtZXNzYWdlID0gJGUtPkdldE1lc3NhZ2UoKTsKICB9Cn0KCi8vCi8vIHNob3cgc29tZXRoaW5nIHRvIHRoZSB1c2VyCi8vCgovLyBub3cgd2UncmUgcmVhZHkgdG8gcG9wdWxhdGUgdGhlIHRlbXBsYXRlCi8vIGZpcnN0IHdlIHB1dCBpbiBzdHVmZiB0aGF0IGlzIHJlcXVpcmVkICh1c2VybmFtZSwgcGFzc3dvcmQsIGV0YywgZXRjKQokcm93YXJyYXkgPSBbXTsKCi8vIG1ha2Ugc3VyZSB1c2VybmFtZSBpcyBpbiB0aGVyZQokb25lcm93ICAgICAgICAgICAgICAgICAgPSBuZXcgU3RkQ2xhc3MoKTsKJG9uZXJvdy0+Y29sb3IgICAgICAgICAgID0gJG1hbXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX2NvbG9yJywgJ2JsdWUnKTsKJG9uZXJvdy0+bWFya2VyICAgICAgICAgID0gJG1hbXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX21hcmtlcicsICcqJyk7CiRvbmVyb3ctPnJlcXVpcmVkICAgICAgICA9IDE7CiR2YWwgICAgICAgICAgICAgICAgICAgICA9IChpc3NldCgkZXBhcmFtc1snaW5wdXRfdXNlcm5hbWUnXSkpID8gJGVwYXJhbXNbJ2lucHV0X3VzZXJuYW1lJ10gOiAnJzsKJG9uZXJvdy0+cHJvbXB0ICAgICAgICAgID0gJG1hbXMtPkdldFVzZXJuYW1lUHJvbXB0KCk7CiRvbmVyb3ctPm5hbWUgICAgICAgICAgICA9ICd1c2VybmFtZSc7CiRvbmVyb3ctPmlucHV0X25hbWUgICAgICA9ICRpZCAuICdtcl9pbnB1dF91c2VybmFtZSc7CiRvbmVyb3ctPnR5cGUgICAgICAgICAgICA9ICgkdXNlcm5hbWVfaXNfZW1haWwpID8gJ2VtYWlsJyA6ICd0ZXh0JzsKJG9uZXJvdy0+bGFiZWxmb3IgICAgICAgID0gJGlkIC4gJ3VzZXJuYW1lJzsKJG9uZXJvdy0+c2l6ZSAgICAgICAgICAgID0gJG1hbXMtPkdldFByZWZlcmVuY2UoJ3VzZXJuYW1lZmxkbGVuZ3RoJyk7CiRvbmVyb3ctPm1heGxlbmd0aCAgICAgICA9ICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdtYXhfdXNlcm5hbWVsZW5ndGgnKTsKJG9uZXJvdy0+cmVhZG9ubHkgICAgICAgID0gRkFMU0U7CiRvbmVyb3ctPnZhbCAgICAgICAgICAgICA9ICR2YWw7CiRvbmVyb3ctPmNvbnRyb2wgICAgICAgICA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoCiAgJGlkLCAnbXJfaW5wdXRfdXNlcm5hbWUnLCAkdmFsLAogICRtYW1zLT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZWZsZGxlbmd0aCcpLAogICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdtYXhfdXNlcm5hbWVsZW5ndGgnKQopOwokcm93YXJyYXlbJG9uZXJvdy0+bmFtZV0gPSAkb25lcm93OwoKaWYoJHRoaXMtPkdldFByZWZlcmVuY2UoJ21hbXNyZWdfZm9yY2VfZW1haWxfdHdpY2UnKSAmJiAkdXNlcm5hbWVfaXNfZW1haWwpCnsKICAvLyBhZGQgaXQgYWdhaW4KICAkb25lcm93ICAgICAgICAgICA9IG5ldyBTdGRDbGFzcygpOwogICRvbmVyb3ctPmNvbG9yICAgID0gJG1hbXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX2NvbG9yJywgJ2JsdWUnKTsKICAkb25lcm93LT5tYXJrZXIgICA9ICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlZF9maWVsZF9tYXJrZXInLCAnKicpOwogICRvbmVyb3ctPnJlcXVpcmVkID0gMTsKICAkdmFsICAgICAgICAgICAgICA9ICRlcGFyYW1zWydpbnB1dF91c2VybmFtZV9hZ2FpbiddID8/ICcnOwogIAogIGlmKCRtYW1zLT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZV9pc19lbWFpbCcpKQogIHsKICAgICRvbmVyb3ctPnByb21wdCA9ICR0aGlzLT5MYW5nKCdlbWFpbCcpOwogIH0KICBlbHNlCiAgewogICAgJG9uZXJvdy0+cHJvbXB0ID0gJHRoaXMtPkxhbmcoJ3VzZXJuYW1lJyk7CiAgfQogIAogICRvbmVyb3ctPnByb21wdCAgICAgICAgICAuPSAnICgnIC4gJHRoaXMtPkxhbmcoJ2FnYWluJykgLiAnKSc7CiAgJG9uZXJvdy0+bmFtZSAgICAgICAgICAgID0gJ3VzZXJuYW1lX2FnYWluJzsKICAkb25lcm93LT5sYWJlbGZvciAgICAgICAgPSAkaWQgLiAndXNlcm5hbWVfYWdhaW4nOwogICRvbmVyb3ctPmlucHV0X25hbWUgICAgICA9ICRpZCAuICdtcl9pbnB1dF91c2VybmFtZV9hZ2Fpbic7CiAgJG9uZXJvdy0+dHlwZSAgICAgICAgICAgID0gKCR1c2VybmFtZV9pc19lbWFpbCkgPyAnZW1haWwnIDogJ3RleHQnOwogICRvbmVyb3ctPnNpemUgICAgICAgICAgICA9ICRtYW1zLT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZWZsZGxlbmd0aCcpOwogICRvbmVyb3ctPm1heGxlbmd0aCAgICAgICA9ICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdtYXhfdXNlcm5hbWVsZW5ndGgnKTsKICAkb25lcm93LT5yZWFkb25seSAgICAgICAgPSBGQUxTRTsKICAkb25lcm93LT52YWwgICAgICAgICAgICAgPSAkdmFsOwogICRvbmVyb3ctPmNvbnRyb2wgICAgICAgICA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoCiAgICAkaWQsICdtcl9pbnB1dF91c2VybmFtZV9hZ2FpbicsICR2YWwsCiAgICAkbWFtcy0+R2V0UHJlZmVyZW5jZSgndXNlcm5hbWVmbGRsZW5ndGgnKSwKICAgICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdtYXhfdXNlcm5hbWVsZW5ndGgnKQogICk7CiAgJHJvd2FycmF5WyRvbmVyb3ctPm5hbWVdID0gJG9uZXJvdzsKfQoKCi8vIGFuZCBwYXNzd29yZAokb25lcm93ICAgICAgICAgICAgICAgICAgPSBuZXcgU3RkQ2xhc3MoKTsKJG9uZXJvdy0+Y29sb3IgICAgICAgICAgID0gJG1hbXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX2NvbG9yJywgJ2JsdWUnKTsKJG9uZXJvdy0+bWFya2VyICAgICAgICAgID0gJG1hbXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX21hcmtlcicsICcqJyk7CiRvbmVyb3ctPnJlcXVpcmVkICAgICAgICA9IDE7CiR2YWwgICAgICAgICAgICAgICAgICAgICA9ICRlcGFyYW1zWydpbnB1dF9wYXNzd29yZCddID8/ICcnOwokb25lcm93LT5wcm9tcHQgICAgICAgICAgPSAkdGhpcy0+TGFuZygncGFzc3dvcmQnKTsKJG9uZXJvdy0+bmFtZSAgICAgICAgICAgID0gJ3Bhc3N3b3JkJzsKJG9uZXJvdy0+bGFiZWxmb3IgICAgICAgID0gJGlkIC4gJ3Bhc3N3b3JkJzsKJG9uZXJvdy0+aW5wdXRfbmFtZSAgICAgID0gJGlkIC4gJ21yX2lucHV0X3Bhc3N3b3JkJzsKJG9uZXJvdy0+dHlwZSAgICAgICAgICAgID0gJ3Bhc3N3b3JkJzsKJG9uZXJvdy0+c2l6ZSAgICAgICAgICAgID0gJG1hbXMtPkdldFByZWZlcmVuY2UoJ3Bhc3N3b3JkZmxkbGVuZ3RoJyk7CiRvbmVyb3ctPm1heGxlbmd0aCAgICAgICA9ICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdtYXhfcGFzc3dvcmRsZW5ndGgnKTsKJG9uZXJvdy0+cmVhZG9ubHkgICAgICAgID0gRkFMU0U7CiRvbmVyb3ctPnZhbCAgICAgICAgICAgICA9ICR2YWw7CiRvbmVyb3ctPmNvbnRyb2wgICAgICAgICA9ICR0aGlzLT5DcmVhdGVJbnB1dFBhc3N3b3JkKAogICRpZCwgJ21yX2lucHV0X3Bhc3N3b3JkJywgJHZhbCwKICAkbWFtcy0+R2V0UHJlZmVyZW5jZSgncGFzc3dvcmRmbGRsZW5ndGgnKSwKICAkbWFtcy0+R2V0UHJlZmVyZW5jZSgnbWF4X3Bhc3N3b3JkbGVuZ3RoJykKKTsKJHJvd2FycmF5WyRvbmVyb3ctPm5hbWVdID0gJG9uZXJvdzsKCi8vIGFuZCBtYWtlIGhpbSByZXBlYXQgdGhlIHBhc3N3b3JkCiRvbmVyb3cgICAgICAgICAgICAgICAgICA9IG5ldyBTdGRDbGFzcygpOwokb25lcm93LT5jb2xvciAgICAgICAgICAgPSAkbWFtcy0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZWRfZmllbGRfY29sb3InLCAnYmx1ZScpOwokb25lcm93LT5tYXJrZXIgICAgICAgICAgPSAkbWFtcy0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZWRfZmllbGRfbWFya2VyJywgJyonKTsKJG9uZXJvdy0+cmVxdWlyZWQgICAgICAgID0gMTsKJHZhbCAgICAgICAgICAgICAgICAgICAgID0gJGVwYXJhbXNbJ2lucHV0X3JlcGVhdHBhc3N3b3JkJ10gPz8gJyc7CiRvbmVyb3ctPnByb21wdCAgICAgICAgICA9ICR0aGlzLT5MYW5nKCdyZXBlYXRwYXNzd29yZCcpOwokb25lcm93LT5uYW1lICAgICAgICAgICAgPSAncmVwZWF0cGFzc3dvcmQnOwokb25lcm93LT5sYWJlbGZvciAgICAgICAgPSAkaWQgLiAncmVwZWF0cGFzc3dvcmQnOwokb25lcm93LT5pbnB1dF9uYW1lICAgICAgPSAkaWQgLiAnbXJfaW5wdXRfcmVwZWF0cGFzc3dvcmQnOwokb25lcm93LT50eXBlICAgICAgICAgICAgPSAncGFzc3dvcmQnOwokb25lcm93LT5zaXplICAgICAgICAgICAgPSAkbWFtcy0+R2V0UHJlZmVyZW5jZSgncGFzc3dvcmRmbGRsZW5ndGgnKTsKJG9uZXJvdy0+bWF4bGVuZ3RoICAgICAgID0gJG1hbXMtPkdldFByZWZlcmVuY2UoJ21heF9wYXNzd29yZGxlbmd0aCcpOwokb25lcm93LT5yZWFkb25seSAgICAgICAgPSBGQUxTRTsKJG9uZXJvdy0+dmFsICAgICAgICAgICAgID0gJHZhbDsKJG9uZXJvdy0+Y29udHJvbCAgICAgICAgID0gJHRoaXMtPkNyZWF0ZUlucHV0UGFzc3dvcmQoCiAgJGlkLCAnbXJfaW5wdXRfcmVwZWF0cGFzc3dvcmQnLCAkdmFsLAogICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdwYXNzd29yZGZsZGxlbmd0aCcpLAogICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdtYXhfcGFzc3dvcmRsZW5ndGgnKQopOwokcm93YXJyYXlbJG9uZXJvdy0+bmFtZV0gPSAkb25lcm93OwoKJHJlbGF0aW9uczIgICAgICA9IFtdOwokZG9uZV9lbWFpbF9yZXFkID0gRkFMU0U7Cgpmb3JlYWNoKCRwcm9wZXJ0aWVzIGFzICRwcm9wbmFtZSA9PiAkcmVsbikKewogIC8vIGltYWdlcyBhbmQgZGF0YSBmaWVsZHMgYXJlIGlnbm9yZWQuIHVzZXIgY2FuIGZpbGwgdGhlbSBpbiBhZnRlciByZWdpc3RyYXRpb24KICBpZig2ID09ICRyZWxuWyd0eXBlJ10gfHwgOSA9PSAkcmVsblsndHlwZSddKSB7IGNvbnRpbnVlOyB9CiAgLy8gaWdub3JlIGhpZGRlbiBmaWVsZHMuCiAgaWYoMyA9PSAkcmVsblsncmVxdWlyZWQnXSkgeyBjb250aW51ZTsgfQogIAogIGlmKDIgPT0gJHJlbG5bJ3R5cGUnXSAmJiAhJGRvbmVfZW1haWxfcmVxZCkKICB7CiAgICAvLyBlbWFpbAogICAgJGRvbmVfZW1haWxfcmVxZCA9IFRSVUU7CiAgICAKICAgIGlmKCEkdXNlcm5hbWVfaXNfZW1haWwpCiAgICB7CiAgICAgIC8vIGdvdHRhIGhhdmUgYW4gZW1haWwgYWRkcmVzcywgZm9yY2UgaXQgdG8gYmUgcmVxdWlyZWQuCiAgICAgICRyZWxuWydyZXF1aXJlZCddID0gMjsKICAgIH0KICAgIAogICAgJHJlbGF0aW9uczJbXSA9ICRyZWxuOwogICAgCiAgICBpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWFtc3JlZ19mb3JjZV9lbWFpbF90d2ljZScpKQogICAgewogICAgICAkcmVsblsnbWFwdG8nXSA9ICRyZWxuWyduYW1lJ107CiAgICAgICRyZWxuWyduYW1lJ10gIC49ICdfYWdhaW4nOwogICAgICAkcmVsYXRpb25zMltdICA9ICRyZWxuOwogICAgfQogICAgCiAgfQogIAogICRyZWxhdGlvbnMyW10gPSAkcmVsbjsKfQoKLy8gY29udmVydCByZWxhdGlvbnMgdG8gcHJvcGVydGllcy4KZm9yZWFjaCgkcmVsYXRpb25zMiBhcyAkcmVsbikKewogIC8vIGdldCB0aGUgcHJvcGVydHkgZGVmaW5pdGlvbgogICRkZWZuID0gTlVMTDsKICAKICBpZihpc3NldCgkcmVsblsnbWFwdG8nXSkpCiAgewogICAgJGRlZm4gPSAkbWFtcy0+R2V0UHJvcGVydHlEZWZuKCRyZWxuWydtYXB0byddKTsKICB9CiAgZWxzZQogIHsKICAgICRkZWZuID0gJG1hbXMtPkdldFByb3BlcnR5RGVmbigkcmVsblsnbmFtZSddKTsKICB9CiAgCiAgJGF0dHJpYnMgPSBOVUxMOwogIAogIGlmKGlzc2V0KCRkZWZuWydhdHRyaWJzJ10pICYmICRkZWZuWydhdHRyaWJzJ10pCiAgewogICAgJGF0dHJpYnMgPSB1bnNlcmlhbGl6ZSgkZGVmblsnYXR0cmlicyddKTsKICB9CiAgCiAgJGNvbG9yICA9ICcnOwogICRtYXJrZXIgPSAnJzsKICAKICBpZigkZGVmblsnZW5jcnlwdCddKQogIHsKICAgICRjb2xvciAgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc2VjdXJlX2ZpZWxkX2NvbG9yJywgJ3llbGxvdycpOwogICAgJG1hcmtlciA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzZWN1cmVfZmllbGRfbWFya2VyJywgJ15eJyk7CiAgfQogIAogIGlmKDIgPT0gJHJlbG5bJ3JlcXVpcmVkJ10pCiAgewogICAgJGNvbG9yICA9ICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlZF9maWVsZF9jb2xvcicsICdibHVlJyk7CiAgICAkbWFya2VyID0gJG1hbXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX21hcmtlcicsICcqJyk7CiAgfQogIAogICRvbmVyb3cgICAgICAgICAgICAgPSBuZXcgU3RkQ2xhc3MoKTsKICAkb25lcm93LT5yZXF1aXJlZCAgID0gKDIgPT0gJHJlbG5bJ3JlcXVpcmVkJ10pOwogICRvbmVyb3ctPmNvbG9yICAgICAgPSAkY29sb3I7CiAgJG9uZXJvdy0+bWFya2VyICAgICA9ICRtYXJrZXI7CiAgJG9uZXJvdy0+cHJvbXB0ICAgICA9ICRyZWxuWydwcm9tcHQnXTsKICAkb25lcm93LT5uYW1lICAgICAgID0gJHJlbG5bJ25hbWUnXTsKICAkb25lcm93LT5sYWJlbGZvciAgID0gJGlkIC4gJHJlbG5bJ25hbWUnXTsKICAkb25lcm93LT5yZWFkb25seSAgID0gKDQgPT0gJHJlbG5bJ3JlcXVpcmVkJ10pOwogICRvbmVyb3ctPmlucHV0X25hbWUgPSAkaWQgLiAnbXJfaW5wdXRfJyAuICRyZWxuWyduYW1lJ107CiAgCiAgJHZhbCA9IE5VTEw7CiAgLy8gZGVmYXVsdCB2YWx1ZXMgZm9yIGZpZWxkcy4uLgogIHN3aXRjaCgkZGVmblsndHlwZSddKQogIHsKICAgIGNhc2UgMToKICAgICAgaWYoaXNzZXQoJGF0dHJpYnNbJ2NoZWNrZWQnXSkpCiAgICAgIHsKICAgICAgICAkdmFsID0gJGF0dHJpYnNbJ2NoZWNrZWQnXTsKICAgICAgfQogICAgYnJlYWs7CiAgfQogIAogICR2YWwgICAgICAgICA9IGlzc2V0KCRlcGFyYW1zWydpbnB1dF8nIC4gJHJlbG5bJ25hbWUnXV0pID8gJGVwYXJhbXNbJ2lucHV0XycgLiAkcmVsblsnbmFtZSddXSA6ICR2YWw7CiAgJG9uZXJvdy0+dmFsID0gJHZhbDsKICAKICBzd2l0Y2goJGRlZm5bJ3R5cGUnXSkKICB7CiAgICBjYXNlIDA6IC8vIHRleHQKICAgICAgJG9uZXJvdy0+dHlwZSAgICAgID0gJ3RleHQnOwogICAgICAkb25lcm93LT5zaXplICAgICAgPSAkZGVmblsnbGVuZ3RoJ107CiAgICAgICRvbmVyb3ctPm1heGxlbmd0aCA9ICRkZWZuWydtYXhsZW5ndGgnXTsKICAgICAgJG9uZXJvdy0+Y29udHJvbCAgID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgKICAgICAgICAkaWQsICdtcl9pbnB1dF8nIC4gJHJlbG5bJ25hbWUnXSwKICAgICAgICAkdmFsLCAkZGVmblsnbGVuZ3RoJ10sICRkZWZuWydtYXhsZW5ndGgnXQogICAgICApOwogICAgYnJlYWs7CiAgICAKICAgIGNhc2UgMTogLy8gY2hlY2tib3gKICAgICAgJG9uZXJvdy0+dHlwZSAgICA9ICdjaGVja2JveCc7CiAgICAgICRvbmVyb3ctPmNvbnRyb2wgPSBNQU1TVXRpbHM6Om15Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdtcl9pbnB1dF8nIC4gJHJlbG5bJ25hbWUnXSwgMSwgJHZhbCk7CiAgICBicmVhazsKICAgIAogICAgY2FzZSAyOiAvLyBlbWFpbAogICAgICAkb25lcm93LT50eXBlICAgICAgPSAnZW1haWwnOwogICAgICAkb25lcm93LT5zaXplICAgICAgPSAkZGVmblsnbGVuZ3RoJ107CiAgICAgICRvbmVyb3ctPm1heGxlbmd0aCA9ICRkZWZuWydtYXhsZW5ndGgnXTsKICAgICAgJG9uZXJvdy0+Y29udHJvbCAgID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgKICAgICAgICAkaWQsICdtcl9pbnB1dF8nIC4gJHJlbG5bJ25hbWUnXSwKICAgICAgICAkdmFsLCAkZGVmblsnbGVuZ3RoJ10sICgkZGVmblsnbWF4bGVuZ3RoJ10pCiAgICAgICk7CiAgICBicmVhazsKICAgIAogICAgY2FzZSAzOiAvLyB0ZXh0YXJlYQogICAgICAKICAgICAgJG9uZXJvdy0+dHlwZSAgICAgID0gJ3RleHRhcmVhJzsKICAgICAgJG9uZXJvdy0+bWF4bGVuZ3RoID0gaXNzZXQoJGRlZm5bJ21heGxlbmd0aCddKSA/ICRkZWZuWydtYXhsZW5ndGgnXSA6IE5VTEw7CiAgICAgIAogICAgICBpZighZW1wdHkoJGRlZm5bJ2V4dHJhJ10pICYmIGlzc2V0KCRkZWZuWydleHRyYSddWyd3eXNpd3lnJ10pKQogICAgICB7CiAgICAgICAgJHd5c2l3eWcgPSAoYm9vbCkkZGVmblsnZXh0cmEnXVsnd3lzaXd5ZyddOwogICAgICB9CiAgICAgIAogICAgICAkb25lcm93LT5jb250cm9sICAgPSAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoJHd5c2l3eWcsICRpZCwgJHZhbCwgJ21yX2lucHV0XycgLiAkcmVsblsnbmFtZSddKTsKICAgIGJyZWFrOwogICAgCiAgICBjYXNlIDQ6IC8vIGRyb3Bkb3duCiAgICAgICRvbmVyb3ctPnR5cGUgICAgPSAnZHJvcGRvd24nOwogICAgICAkb25lcm93LT5vcHRpb25zID0gYXJyYXlfZmxpcCgkbWFtcy0+R2V0U2VsZWN0T3B0aW9ucygkZGVmblsnbmFtZSddLCAxKSk7CiAgICAgICRvbmVyb3ctPmNvbnRyb2wgPSAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigKICAgICAgICAkaWQsICdtcl9pbnB1dF8nIC4gJHJlbG5bJ25hbWUnXSwKICAgICAgICAkbWFtcy0+R2V0U2VsZWN0T3B0aW9ucygkZGVmblsnbmFtZSddLCAxKSwKICAgICAgICAtMSwgJHZhbAogICAgICApOwogICAgYnJlYWs7CiAgICAKICAgIGNhc2UgNTogLy8gbXVsdGlzZWxlY3QKICAgICAgJG9uZXJvdy0+dHlwZSA9ICdtdWx0aXNlbGVjdCc7CiAgICAgICR0bXAgICAgICAgICAgPSAkbWFtcy0+R2V0U2VsZWN0T3B0aW9ucygkZGVmblsnbmFtZSddLCAxKTsKICAgICAgaWYoIWlzX2FycmF5KCR2YWwpKQogICAgICB7CiAgICAgICAgJHZhbCA9IGV4cGxvZGUoJywnLCAkdmFsKTsKICAgICAgfQogICAgICAkb25lcm93LT5vcHRpb25zICAgID0gYXJyYXlfZmxpcCgkdG1wKTsKICAgICAgJG9uZXJvdy0+aW5wdXRfbmFtZSA9ICRvbmVyb3ctPmlucHV0X25hbWUgLiAnW10nOwogICAgICAkb25lcm93LT52YWwgICAgICAgID0gJHZhbDsKICAgICAgJG9uZXJvdy0+Y29udHJvbCAgICA9ICR0aGlzLT5DcmVhdGVJbnB1dFNlbGVjdExpc3QoCiAgICAgICAgJGlkLCAnbXJfaW5wdXRfJyAuICRkZWZuWyduYW1lJ10gLiAnW10nLCAkdG1wLCAkdmFsLCBtaW4oY291bnQoJHRtcCksIDUpCiAgICAgICk7CiAgICBicmVhazsKICAgIAogICAgY2FzZSA3OiAvLyByYWRpbyBidXR0b25zCiAgICAgICRvbmVyb3ctPnR5cGUgICAgPSAncmFkaW9ncm91cCc7CiAgICAgICRvbmVyb3ctPm9wdGlvbnMgPSBhcnJheV9mbGlwKCRtYW1zLT5HZXRTZWxlY3RPcHRpb25zKCRkZWZuWyduYW1lJ10sIDEpKTsKICAgICAgJG9uZXJvdy0+Y29udHJvbCA9ICR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAoCiAgICAgICAgJGlkLCAnbXJfaW5wdXRfJyAuICRkZWZuWyduYW1lJ10sCiAgICAgICAgJG1hbXMtPkdldFNlbGVjdE9wdGlvbnMoJGRlZm5bJ25hbWUnXSwgMSksCiAgICAgICAgJHZhbCwgJycsICc8YnIvPicKICAgICAgKTsKICAgIGJyZWFrOwogICAgCiAgICBjYXNlIDg6IC8vIGRhdGUgZmllbGQKICAgICAgJG9uZXJvdy0+dHlwZSAgICA9ICdkYXRlJzsKICAgICAgJGF0dHJpYnMgICAgICAgICA9IHVuc2VyaWFsaXplKCRkZWZuWydhdHRyaWJzJ10pOwogICAgICAkcGFybXMgICAgICAgICAgID0gW107CiAgICAgICRwYXJtc1sncHJlZml4J10gPSAkaWQgLiAnbXJfaW5wdXRfJyAuICRkZWZuWyduYW1lJ107CiAgICAgIGlmKCR2YWwpCiAgICAgIHsKICAgICAgICAkcGFybXNbJ3RpbWUnXSA9ICR2YWw7CiAgICAgIH0KICAgICAgJHBhcm1zWydzdGFydF95ZWFyJ10gPSAkYXR0cmlic1snc3RhcnR5ZWFyJ10gPz8gJy01JzsKICAgICAgJHBhcm1zWydlbmRfeWVhciddICAgPSAkYXR0cmlic1snZW5keWVhciddID8/ICcrMTAnOwogICAgICAkc3RyICAgICAgICAgICAgICAgICA9ICd7aHRtbF9zZWxlY3RfZGF0ZSAnOwogICAgICBmb3JlYWNoKCRwYXJtcyBhcyAka2V5ID0+ICR2YWx1ZSkKICAgICAgewogICAgICAgICRzdHIgLj0gJGtleSAuICc9IicgLiAkdmFsdWUgLiAnIiAnOwogICAgICB9CiAgICAgICRzdHIgICAgICAgICAgICAgICAgLj0gJ30nOwogICAgICAkb25lcm93LT5zdGFydF95ZWFyID0gJGF0dHJpYnNbJ3N0YXJ0eWVhciddID8/ICctNSc7CiAgICAgICRvbmVyb3ctPmVuZF95ZWFyICAgPSAkYXR0cmlic1snZW5keWVhciddID8/ICcrMTAnOwogICAgICAkb25lcm93LT5jb250cm9sICAgID0gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRzdHIpOwogICAgYnJlYWs7CiAgfQogIAogICRyb3dhcnJheVskb25lcm93LT5uYW1lXSA9ICRvbmVyb3c7Cn0KCiRpbmxpbmUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW5saW5lX2Zvcm1zJywgVFJVRSk7CgppZihpc3NldCgkZXBhcmFtc1snbm9pbmxpbmUnXSkpIHsgJGlubGluZSA9IEZBTFNFOyB9CgokdHBsbmFtZSA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCAncmVndGVtcGxhdGUnKTsKaWYoJHRwbG5hbWUpCnsKICAkdHBsbmFtZSA9ICc6OicgLiAkdHBsbmFtZTsKfQplbHNlCnsKICAkdHBsbmFtZSA9ICdtYW1zcmVnX3JlZzF0ZW1wbGF0ZSc7Cn0KCiR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJHRwbG5hbWUpOwoKLy8gYW5kIHRoZSByZXN0IG9mIHRoZSBzdHVmZgokZXBhcmFtc1snbXJfb3JpZ191cmwnXSAgICA9ICRlcGFyYW1zWydtcl9vcmlnX3VybCddID8/IHh0X3VybDo6Y3VycmVudF91cmwoKTsKJGVwYXJhbXNbJ2FsbG93b3ZlcndyaXRlJ10gPSAkYWxsb3dfb3ZlcndyaXRlOwokdG1wICAgICAgICAgICAgICAgICAgICAgICA9IFsnbXJfZGF0YScgPT4gYmFzZTY0X2VuY29kZShzZXJpYWxpemUoJGVwYXJhbXMpKV07CiR0cGwtPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPlhUQ3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ3NpZ251cCcsICRyZXR1cm5pZCwgJHRtcCwgJGlubGluZSkpOwokdHBsLT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHRwbC0+YXNzaWduKCdjb250cm9scycsICRyb3dhcnJheSk7CiR0cGwtPmFzc2lnbignY29udHJvbGNvdW50JywgY291bnQoJHJvd2FycmF5KSk7CiR0cGwtPmFzc2lnbignZXJyb3InLCAkZXJyb3IpOwokdHBsLT5hc3NpZ24oJ21lc3NhZ2UnLCAkbWVzc2FnZSk7CgokY2FwdGNoYSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ2FwdGNoYScpOwppZihpc19vYmplY3QoJGNhcHRjaGEpICYmICEkbm9jYXB0Y2hhKQp7CiAgJHRlc3QgPSBtZXRob2RfZXhpc3RzKCRjYXB0Y2hhLCAnTmVlZHNJbnB1dEZpZWxkJykgPyAkY2FwdGNoYS0+TmVlZHNJbnB1dEZpZWxkKCkgOiBUUlVFOwogICR0cGwtPmFzc2lnbignY2FwdGNoYV90aXRsZScsICR0aGlzLT5MYW5nKCdjYXB0Y2hhX3RpdGxlJykpOwogICR0cGwtPmFzc2lnbignY2FwdGNoYScsICRjYXB0Y2hhLT5nZXRDYXB0Y2hhKCkpOwogICR0cGwtPmFzc2lnbignaW5wdXRfY2FwdGNoYScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbXJfaW5wdXRfY2FwdGNoYScsICcnLCAxMCkpOwogICR0cGwtPmFzc2lnbignbmVlZF9jYXB0Y2hhX2lucHV0JywgJHRlc3QpOwp9CgovLyB0b2RvLCBwdXQgdGhpcyBpbnRvIHRoZSBkYXRhYmFzZSBhbmQgbGV0IHRoZSBhZG1pbiBwbGF5IHdpdGggaXQuCiR0cGwtPmRpc3BsYXkoKTsKCiMKIyBFT0YKIwo=]]></data>
	</file>
	<file>
	  <filename>/action.verify.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMS41CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCFkZWZpbmVkKCdDTVNfVkVSU0lPTicpKSB7IGV4aXQ7IH0KCiRtYW1zID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKE1PRF9NQU1TKTsKCmlmKCEkbWFtcykKewogICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2Vycm9yX25vZmV1c2Vyc21vZHVsZScpKTsKICAKICByZXR1cm47Cn0KCiRwYXJhbXMgICAgICAgICA9IHJlZ191dGlsczo6Y2xlYW5fcGFyYW1zKCRwYXJhbXMpOwokdXNlcm5hbWUgICAgICAgPSB0cmltKFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCAnaW5wdXRfdXNlcm5hbWUnKSk7CiRjb2RlICAgICAgICAgICA9IHRyaW0oXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsICdpbnB1dF9jb2RlJykpOwokbm9pbmxpbmUgPSBceHRfcGFyYW06OmdldF9pbnQoJHBhcmFtcywgJ25vaW5saW5lJywgMCk7CiRub2ZpbmFsbWVzc2FnZSA9IChpbnQpJHRoaXMtPkdldFByZWZlcmVuY2UoJ21hbXNyZWdfc2tpcF9maW5hbF9tc2cnKTsKCiRub2ZpbmFsbWVzc2FnZSA9IFx4dF9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCAnbm9maW5hbG1lc3NhZ2UnLCAkbm9maW5hbG1lc3NhZ2UpOwokYXV0b2NyZWF0ZV91c2VyID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2F1dG9jcmVhdGVfdXNlcicpOwokbG9naW5fYWZ0ZXJ2ZXJpZnkgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbG9naW5fYWZ0ZXJ2ZXJpZnknKTsKJHRwbCA9ICRzbWFydHktPkNyZWF0ZVRlbXBsYXRlKCR0aGlzLT5HZXRUZW1wbGF0ZVJlc291cmNlKCd2ZXJpZnkudHBsJyksbnVsbCxudWxsLCRzbWFydHkpOwoKJHBhcmFtc1sibm9maW5hbG1lc3NhZ2UiXSA9ICRub2ZpbmFsbWVzc2FnZTsKJHBhcmFtc1siYXV0b2NyZWF0ZV91c2VyIl0gPSAkYXV0b2NyZWF0ZV91c2VyOwokcGFyYW1zWyJsb2dpbl9hZnRlcnZlcmlmeSJdID0gJGxvZ2luX2FmdGVydmVyaWZ5OwoKdHJ5CiAgewogICAgICAgIAogICAgaWYoISRjb2RlKQogICAgICAgIHsKICAgICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ2NvZGUnKSk7CiAgICAgICAgfQoKICAgICAgJHRfdWlkID0gJHRoaXMtPkdldFRlbXBVc2VySUQoJHVzZXJuYW1lKTsKCiAgICAgIGlmKCEkdF91aWQpCiAgICAgIHsKICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX3VzZXJub3Rmb3VuZCcpKTsKICAgICAgfQoKICAgICAgJHRfZGV0YWlscyA9ICR0aGlzLT5HZXRUZW1wVXNlckRldGFpbHMoJHRfdWlkKTsKICAgICAgaWYoISR0X2RldGFpbHMpCiAgICAgIHsKICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX3VzZXJub3Rmb3VuZCcpKTsKICAgICAgfQogICAgICAKICAgICAgaWYoISR0X2RldGFpbHNbJ2NvZGUnXSkKICAgICAgewogICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfYWxyZWFkeXZlcmlmaWVkJykpOwogICAgICB9CgogICAgICBpZigkY29kZSAhPSAkdF9kZXRhaWxzWydjb2RlJ10pCiAgICAgIHsKICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2NvZGVzZG9udG1hdGNoJykpOwogICAgICB9CgogICAgICAkZV9rZXkgPSAkdGhpcy0+Z2V0X2VuY3J5cHRpb25fa2V5KCR1c2VybmFtZSk7CiAgICAgICRwYXNzd29yZCA9ICR0aGlzLT5kZWNyeXB0KCRlX2tleSwgIGJhc2U2NF9kZWNvZGUoJHRfZGV0YWlsc1sncGFzc3dvcmQnXSkpOwoKICAgICAgaWYoISRwYXNzd29yZCkKICAgICAgewogICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfaW5jb3JyZWN0cGFzc3dvcmQnKSk7CiAgICAgIH0KICAgICAgCiAgICAgIGlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhdXRvY3JlYXRlX3VzZXInLCAxKSkKICAgICAgewogICAgICAgICRyZXMgPSAkdGhpcy0+X0NyZWF0ZUZyb250ZW5kVXNlcigkdF9kZXRhaWxzWydpZCddLCAkdXNlcm5hbWUsICRwYXNzd29yZCk7CiAgICAgICAgCiAgICAgICAgaWYoISRyZXNbMF0pIHsgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oJHJlc1sxXSk7IH0KICAgICAgICAKICAgICAgICAkbWFtc191aWQgPSAkcmVzWzFdOwogICAgICAgICR0aGlzLT5EZWxldGVUZW1wVXNlcigkdF9kZXRhaWxzWydpZCddKTsKICAgICAgICBhdWRpdCgnJywgJHRoaXMtPkdldE5hbWUoKSwgJHVzZXJuYW1lIC4gJyB2YWxpZGF0ZWQgdGhlaXIgYWNjb3VudCcpOwogICAgICAgIAogICAgICAgIC8vIHdoZXJlIGFyZSB3ZSBnb2luZyBhZnRlciB0aGlzPwogICAgICAgICR0cGwyID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoJ3N0cmluZzonIC4gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JlZGlyZWN0X2FmdGVydmVyaWZ5JykpOwogICAgICAgICR0cGwyLT5hc3NpZ24oJ3VpZCcsICRtYW1zX3VpZCk7CiAgICAgICAgJHRwbDItPmFzc2lnbigndXNlcm5hbWUnLCAkdXNlcm5hbWUpOwogICAgICAgICR0bXAgPSB0cmltKCR0cGwyLT5mZXRjaCgpKTsKICAgICAgICAKICAgICAgICBpZigkdG1wKQogICAgICAgIHsKICAgICAgICAgICRkZXN0X3BhZ2UgPSAkdGhpcy0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkdG1wKTsKICAgICAgICAgIAogICAgICAgICAgaWYoJGRlc3RfcGFnZSkKICAgICAgICAgIHsKICAgICAgICAgICAgJHJldHVybmlkID0gJGRlc3RfcGFnZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgZWxzZQogICAgICB7CiAgICAgICAgIyB0cnkgYnV0IGRvbid0IG1ha2UgYSBiaWcgZnVzcyBhYm91dCBpdCAoSk0pCiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgLy8gdXNlciBpcyB2ZXJpZmllZCwgYnV0IGlzIG5vdCBhdXRvIGNyZWF0ZWQuICBzZW5kIGFkbWluIGFuIGVtYWlsLgogICAgICAgICAgJHRoaXMtPl9TZW5kUmVnaXN0cmF0aW9uTm90aWZpY2F0aW9uKCR1c2VybmFtZSk7CiAgICAgICAgfQogICAgICAgIGNhdGNoKFxFeGNlcHRpb24gJGUpCiAgICAgICAgewogICAgICAgICAgXGF1ZGl0KCcnLCAkdGhpcy0+R2V0TmFtZSgpLCAkZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIC8vIGRvIHdlIGF1dG9tYXRpY2FsbHkgbG9nIHRoaXMgdXNlciBpbj8KICAgICAgaWYoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2F1dG9jcmVhdGVfdXNlcicsIDEpICYmICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdsb2dpbl9hZnRlcnZlcmlmeScpKQogICAgICB7CiAgICAgICAgJHJlcyA9ICRtYW1zLT5Mb2dpbigkdXNlcm5hbWUsICRwYXNzd29yZCk7CiAgICAgICAgCiAgICAgICAgaWYoISRyZXNbMF0pCiAgICAgICAgewogICAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCRyZXNbMV0pOwogICAgICAgIH0KICAgICAgfQogICAgCiAgICAjIG5vdyB3ZSBuZWVkIHRvIHJlbW92ZSB0aGUgY29kZSBmcm9tIHRoZSBkYXRhYmFzZSwgd2hpY2ggc2lnbmFscyB0aGF0IHRoZSB1c2VyIGhhcyBiZWVuIHZlcmlmaWVkLgogICAgJHRoaXMtPkRlbGV0ZVRlbXBVc2VyQ29kZSgkdF9kZXRhaWxzWydpZCddKTsKICAgICAgCiAgICAgIGlmKCRub2ZpbmFsbWVzc2FnZSkKICAgICAgewogICAgICAgIC8vIHJlZGlyZWN0IG91dAogICAgICAgICR0aGlzLT5SZWRpcmVjdENvbnRlbnQoJHJldHVybmlkKTsKICAgICAgICAKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgZWxzZQogICAgICB7CiAgICAgICAgJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnbWFtc3JlZ19maW5hbG1lc3NhZ2VfdGVtcGxhdGUnKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3VzZXJuYW1lJywgJHVzZXJuYW1lKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2lzX2xvZ2dlZF9pbicsIChib29sKSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbG9naW5fYWZ0ZXJ2ZXJpZnknKSk7CiAgICAgICAgJHRwbC0+ZGlzcGxheSgpOwogICAgICB9CgogIH0KY2F0Y2goXEV4Y2VwdGlvbiAkZSkKewogICR0cGwtPmFzc2lnbignZXJyb3InLCAxKTsKICAkdHBsLT5hc3NpZ24oJ21lc3NhZ2UnLCAkZS0+R2V0TWVzc2FnZSgpKTsKICAkdHBsLT5kaXNwbGF5KCk7Cn0KCj8+]]></data>
	</file>
	<file>
	  <filename>/action.verifyuser.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7CmRpZSgnbm8gbG9uZ2VyIHVzZWQnKTsKJHBhcmFtcyA9IHJlZ191dGlsczo6Y2xlYW5fcGFyYW1zKCRwYXJhbXMpOwoKJG1hbXMgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ01BTVMnKTsKaWYoICEkbWFtcyApIHsKICAvLyB0aGlzIGlzIHVnbHkgZm9yIHRoZSB1c2VyIHRvIHNlZQogIC8vIGJ1dCBhdCBsZWFzdCB0aGUgYWRtaW4gd2lsbCBiZSBhYmxlIHRvIGZpZ3VyZSBpdCBvdXQKICAkbW9kdWxlLT5fRGlzcGxheUVycm9yUGFnZSggJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICRtb2R1bGUtPkxhbmcoJ2Vycm9yX25vZmV1c2Vyc21vZHVsZScpKTsKICByZXR1cm47Cn0KCmlmKCAhXHh0X3V0aWxzOjp2YWxpZF9mb3JtX2NzcmYoKSApIHsKICAgICRwYXJtc1snZXJyb3InXSA9IDE7CiAgICAkcGFybXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9zZWN1cml0eScpOwogICAgcmV0dXJuICR0aGlzLT5teVJlZGlyZWN0KCAkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAkcGFyYW1zICk7Cn0KCi8vIG5vdyBhbGwgd2UgaGF2ZSB0byBkbyBpcyBnZXQgdGhlIHVzZXJuYW1lLCBjb2RlLCBhbmQgcGFzc3dvcmQKLy8gYW5kIG1ha2Ugc3VyZSBpdCBhbGwgbWF0Y2hlcwppZiggIWlzc2V0KCAkcGFyYW1zWydpbnB1dF91c2VybmFtZSddICkgKSB7CiAgJHBhcmFtc1snbW9kZSddID0gJ3ZlcmlmeSc7CiAgaWYgKCRtYW1zLT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZV9pc19lbWFpbCcpKSB7CiAgICAkcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ2VtYWlsJyk7CiAgfQogIGVsc2UgewogICAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3Npbmd1c2VybmFtZScpOwogIH0KICAkcGFyYW1zWydlcnJvciddID0gMTsKICByZXR1cm4gJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICRwYXJhbXMgKTsKfQokdXNlcm5hbWUgPSB0cmltKCRwYXJhbXNbJ2lucHV0X3VzZXJuYW1lJ10pOwppZiggIWlzc2V0KCAkcGFyYW1zWydpbnB1dF9wYXNzd29yZCddICkgKSB7CiAgJHBhcmFtc1snbW9kZSddID0gJ3ZlcmlmeSc7CiAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXNzd29yZCcpOwogICRwYXJhbXNbJ2Vycm9yJ10gPSAxOwogIHJldHVybiAkdGhpcy0+bXlSZWRpcmVjdCggJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcmFtcyApOwp9CiRwYXNzd29yZCA9IGNtc19odG1sX2VudGl0eV9kZWNvZGUodHJpbSgkcGFyYW1zWydpbnB1dF9wYXNzd29yZCddKSk7CmlmKCAhaXNzZXQoICRwYXJhbXNbJ2lucHV0X2NvZGUnXSApICkgewogICRwYXJhbXNbJ21vZGUnXSA9ICd2ZXJpZnknOwogICRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5nY29kZScpOwogICRwYXJhbXNbJ2Vycm9yJ10gPSAxOwogIHJldHVybiAkdGhpcy0+bXlSZWRpcmVjdCggJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcmFtcyApOwp9CiRjb2RlID0gdHJpbSgkcGFyYW1zWydpbnB1dF9jb2RlJ10pOwoKLy8gbm93IGdldCB0aGUgZGV0YWlscyBvdXQgb2YgdGhlIGRhdGFiYXNlIGZvciB0aHMgdXNlcgokcSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfbWFtc3JlZ2lzdHJhdGlvbl91c2VycyBXSEVSRSB1c2VybmFtZSA9ID8iOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxLCBhcnJheSggJHVzZXJuYW1lICkgKTsKaWYoICEkZGJyZXN1bHQgKSB7CiAgJHBhcmFtc1snbW9kZSddID0gJ3ZlcmlmeSc7CiAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2RiZXJyb3InKTsKICAkcGFyYW1zWydlcnJvciddID0gMTsKICByZXR1cm4gJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICRwYXJhbXMgKTsKfQppZiggJGRicmVzdWx0LT5SZWNvcmRDb3VudCgpICE9IDEgKSB7CiAgJHBhcmFtc1snbW9kZSddID0gJ3ZlcmlmeSc7CiAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX3VzZXJub3Rmb3VuZCcpOwogICRwYXJhbXNbJ2Vycm9yJ10gPSAxOwogICR0aGlzLT5BdWRpdCggJycsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ2Vycm9yX3VzZXJub3Rmb3VuZCcpLiI6ICIuJHVzZXJuYW1lKTsKICByZXR1cm4gJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICRwYXJhbXMgKTsKfQoKJHRtcHVzZXIgPSAkZGJyZXN1bHQtPkZldGNoUm93KCk7CiRtYW1zID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdNQU1TJyk7CiRrZXkgPSAkdGhpcy0+Z2V0X2VuY3J5cHRpb25fa2V5KCR1c2VybmFtZSk7CiRlbmNyeXB0ZWQgPSBiYXNlNjRfZW5jb2RlKCR0aGlzLT5lbmNyeXB0KCRrZXksJHBhc3N3b3JkKSk7CmlmKCAkZW5jcnlwdGVkICE9ICR0bXB1c2VyWydwYXNzd29yZCddICkgewogICRwYXJhbXNbJ21vZGUnXSA9ICd2ZXJpZnknOwogICRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9wYXNzd29yZHNkb250bWF0Y2gnKTsKICAkcGFyYW1zWydlcnJvciddID0gMTsKICAkdGhpcy0+QXVkaXQoICcnLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCdlcnJvcl9wYXNzd29yZHNkb250bWF0Y2gnKS4iOiAiLiR1c2VybmFtZSk7CiAgcmV0dXJuICR0aGlzLT5teVJlZGlyZWN0KCAkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAkcGFyYW1zICk7Cn0KaWYoICRjb2RlICE9ICR0bXB1c2VyWydjb2RlJ10gKSB7CiAgJHBhcmFtc1snbW9kZSddID0gJ3ZlcmlmeSc7CiAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2NvZGVzZG9udG1hdGNoJyk7CiAgJHBhcmFtc1snZXJyb3InXSA9IDE7CiAgJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCdlcnJvcl9jb2Rlc2RvbnRtYXRjaCcpLiI6ICIuJHVzZXJuYW1lKTsKICByZXR1cm4gJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICRwYXJhbXMgKTsKfQoKJHJlc3VsdCA9ICR0aGlzLT5fQ3JlYXRlRnJvbnRlbmRVc2VyKCAkdG1wdXNlclsnaWQnXSwgJHVzZXJuYW1lLCAkcGFzc3dvcmQgKTsKaWYoICRyZXN1bHRbMF0gPT09IEZBTFNFICkgewogICRwYXJhbXNbJ21vZGUnXSA9ICd2ZXJpZnknOwogICRwYXJhbXNbJ21lc3NhZ2UnXSA9ICRyZXN1bHRbMV07CiAgJHBhcmFtc1snZXJyb3InXSA9IDE7CiAgcmV0dXJuICR0aGlzLT5teVJlZGlyZWN0KCAkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAkcGFyYW1zICk7Cn0KCi8vIHdvb2hvb28sIHRoZSB1c2VyIGJlIGNyZWF0ZWQgKGhvcGVmdWxseSkuCi8vIGRlbGV0ZSB0aGUgcmVjb3JkcyBmcm9tIHRoZSBTZWxmUmVnIHRhYmxlcwokdGhpcy0+RGVsZXRlVGVtcFVzZXIoICR0bXB1c2VyWydpZCddICk7Cgp1bnNldCgkcGFyYW1zWydtb2RlJ10pOwp1bnNldCgkcGFyYW1zWydhY3Rpb24nXSk7CgovLyBkbyB3ZSBhdXRvbWF0aWNhbGx5IGxvZyB0aGlzIHVzZXIgaW4/CmlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbG9naW5fYWZ0ZXJ2ZXJpZnknKSApIHsKICAkbWFtcyA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnTUFNUycpOwogICRtYW1zLT5Mb2dpbiggJHVzZXJuYW1lLCAkcGFzc3dvcmQgKTsKfQoKLy8gQ2hlY2sgaWYgd2UgaGF2ZSB0byByZWRpcmVjdCB0byBhIHBhZ2Ugb3Igbm90CiRkZXN0cGFnZXN0ciA9ICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmVkaXJlY3RfYWZ0ZXJ2ZXJpZnknKSk7CmlmKCAhZW1wdHkoJGRlc3RwYWdlc3RyKSApIHsKICAkY29udGVudG9wcyA9ICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwogICRkZXN0cGFnZWlkID0gJGNvbnRlbnRvcHMtPkdldFBhZ2VJREZyb21BbGlhcygkZGVzdHBhZ2VzdHIpOwogIGlmKCAkZGVzdHBhZ2VpZCA9PSBGQUxTRSApIHsKICAgICR0bXBhbGlhcyA9ICRjb250ZW50b3BzLT5HZXRQYWdlQWxpYXNGcm9tSUQoJGRlc3RwYWdlc3RyKTsKICAgIGlmKCAhJHRtcGFsaWFzICkgJGRlc3RwYWdlaWQgPSAkdG1wYWxpYXM7CiAgfQogICRyZXR1cm5pZCA9ICRkZXN0cGFnZWlkOwp9CiRwYXJtcyA9IGFycmF5KCk7CiRwYXJtc1snbXJfdXNlcm5hbWUnXSA9ICR1c2VybmFtZTsKJHRoaXMtPlJlZGlyZWN0KCRpZCwncG9zdF9jcmVhdGV1c2VyJywkcmV0dXJuaWQsJHBhcm1zKTsK]]></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.CartAdjusted.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHVzZXJzIHRvIHJlZ2lzdGVyIHRoZW1zZWx2ZXMKIyAgd2l0aCBhIHdlYnNpdGUuCiMgCiMgVmVyc2lvbjogMS4yCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKaWYoICFpc3NldCgkcGFyYW1zWydzdGF0dXMnXSkgKSByZXR1cm47CmlmKCAhaXNzZXQoJHBhcmFtc1snZXh0cmEnXSkgfHwgJHBhcmFtc1snZXh0cmEnXSA9PSAnZ2F0ZXdheS1jb21wbGF0ZScgKSByZXR1cm47Cgokc3RhdHVzID0gY21zX3V0aWxzOjpnZXRfYXBwX2RhdGEoJ29yZGVyc19nYXRld2F5X2NvbXBsZXRlJyk7CmlmKCAkc3RhdHVzID09IDEgKSB7CiAgLy8gY2FsbGVkIHZpYSB0aGUgb3JkZXJzIGdhdGV3YXkgY29tcGxldGUgc3R1ZmYuLi4gCiAgLy8gY2FydCBwcm9iYWJseSBiZWluZyBlbXB0aWVkLgogIC8vIGxldHMgbm90IGRvIGFueXRoaW5nLgogIHJldHVybjsKfQoKc3dpdGNoKCRwYXJhbXNbJ3N0YXR1cyddKSB7CiBjYXNlICdiZWZvcmUnOgogICAkc2VzcyA9IG5ldyB4dF9zZXNzaW9uKCR0aGlzLT5HZXROYW1lKCkpOwogICBpZiggY291bnQoJHBhcmFtc1snY2FydF9pdGVtcyddKSA+IDEgKSB7CiAgICAgLy8gdGhlcmUncyBtb3JlIHRoYW4gb25lIGl0ZW0KICAgICByZXR1cm47CiAgIH0KICAgJHRtcCA9IHNlcmlhbGl6ZSgkcGFyYW1zWydjYXJ0X2l0ZW1zJ10pOwogICAkc2Vzcy0+cHV0KCdjYXJ0X2JlZm9yZScsJHRtcCk7CiAgIGJyZWFrOwoKIGNhc2UgJ2FmdGVyJzoKICAgJHNlc3MgPSBuZXcgeHRfc2Vzc2lvbigkdGhpcy0+R2V0TmFtZSgpKTsKICAgJGJlZm9yZSA9ICRzZXNzLT5nZXQoJ2NhcnRfYmVmb3JlJyk7CiAgICRzZXNzLT5jbGVhcignY2FydF9iZWZvcmUnKTsKICAgaWYoIGVtcHR5KCRiZWZvcmUpICkgcmV0dXJuOyAvLyB3ZSBvbmx5IGNhcmUgaWYgc29tZXRoaW5nIHdhcyBkZWxldGVkLgoKICAgJGJlZm9yZSA9IHVuc2VyaWFsaXplKCRiZWZvcmUpOwogICAkYWZ0ZXIgPSAkcGFyYW1zWydjYXJ0X2l0ZW1zJ107CgogICAvLyBub3cgd2UgZ290dGEgZmlndXJlIG91dCB3aGF0IGNoYW5nZWQuCiAgICR0bXAgPSBhcnJheV9rZXlzKCRiZWZvcmUpOwogICAkY2FydG5hbWUgPSAkdG1wWzBdOwoKICAgJGFmdGVyX3NlciA9IGFycmF5KCk7CiAgIGlmKCBpc19hcnJheSgkYWZ0ZXIpICYmIGNvdW50KCRhZnRlcikgKSB7CiAgICAgJGFmdGVyX3NlciA9IGFycmF5KCk7CiAgICAgZm9yZWFjaCggJGFmdGVyIGFzICRvbmUgKSB7CiAgICAgICAkYWZ0ZXJfc2VyW10gPSBzZXJpYWxpemUoJG9uZSk7CiAgICAgfQogICB9CgogICAkaXRlbXMgPSAkYmVmb3JlWyRjYXJ0bmFtZV1bJ2l0ZW1zJ107CiAgICRiZWZvcmVfc2VyID0gYXJyYXkoKTsKICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGl0ZW1zKTsgJGkrKyApIHsKICAgICAkYmVmb3JlX3NlcltdID0gc2VyaWFsaXplKCRpdGVtc1skaV0pOwogICB9CgogICAkZGVsZXRlZF9zZXIgPSBhcnJheV9kaWZmKCRiZWZvcmVfc2VyLCRhZnRlcl9zZXIpOwoKICAgLy8gbm93IGRlc2VyaWFsaXplIGV2ZXJ5dGhpbmcKICAgLy8gYW5kIGNhdGNoIHRoZSBvbmVzIHRoYXQgb3JpZ2luYXRlZCBmcm9tIHRoaXMgbW9kdWxlCiAgICRkZWxldGVkID0gYXJyYXkoKTsKICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGRlbGV0ZWRfc2VyKTsgJGkrKyApIHsKICAgICAkdG1wID0gdW5zZXJpYWxpemUoJGRlbGV0ZWRfc2VyWyRpXSk7CiAgICAgaWYoICEoJHRtcCBpbnN0YW5jZW9mIGNnX2Vjb21tX2NhcnRpdGVtKSApIGNvbnRpbnVlOwogICAgIGlmKCAkdG1wLT5nZXRfc291cmNlKCkgIT0gJHRoaXMtPkdldE5hbWUoKSApIGNvbnRpbnVlOwogICAgICRkZWxldGVkW10gPSAkdG1wOwogICB9CgogICBpZiggY291bnQoJGRlbGV0ZWQpICkgewogICAgIC8vIHdlIGhhdmUgYSBsaXN0IG9mIGRlbGV0ZWQgbWFtc3JlZyBpdGVtcy4KICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkZGVsZXRlZCk7ICRpKysgKSB7CiAgICAgICAkdGVtcF91c2VyX2lkID0gJGRlbGV0ZWRbJGldLT5nZXRfcHJvZHVjdF9pZCgpOwoKICAgICAgIC8vIGRlbGV0ZSB0aGlzIHRlbXBvcmFyeSB1c2VyLgogICAgICAgLy8gd2UgZG9uJ3QgdHJhY2sgZXJyb3JzLCBiZWNhdXNlIHRoaXMgZXZlbnQgaXMgYWxzbyBjYWxsZWQKICAgICAgIC8vIGZyb20gdGhlIGdhdGV3YXkgY29tcGxldGUgcHJvY2VzcyAod2hpY2ggZXJhc2VzIHRoZSBjYXJ0KQogICAgICAgLy8gdGhlcmVmb3JlIHRoZSB1c2VyIG1heSBoYXZlIGFscmVhZHkgYmVlbiBwdXNoZWQgbGl2ZQogICAgICAgLy8gYnkgdGhlIGNoZWNrb3V0IHByb2Nlc3MuCiAgICAgICAkdGhpcy0+RGVsZXRlVGVtcFVzZXJQcm9wZXJ0aWVzKCAkdGVtcF91c2VyX2lkICk7CiAgICAgICAkdGhpcy0+RGVsZXRlVGVtcFVzZXIoICR0ZW1wX3VzZXJfaWQgKTsKICAgICAgIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ0RlbGV0ZWQgdGVtcCB1c2VyICcuJHRlbXBfdXNlcl9pZCk7CiAgICAgfQogICB9CiAgIGJyZWFrOwogfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/event.CGEcommerceBase.OrderCreated.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHVzZXJzIHRvIHJlZ2lzdGVyIHRoZW1zZWx2ZXMKIyAgd2l0aCBhIHdlYnNpdGUuCiMgCiMgVmVyc2lvbjogMS4yCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/event.CGEcommerceBase.OrderDeleted.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHVzZXJzIHRvIHJlZ2lzdGVyIHRoZW1zZWx2ZXMKIyAgd2l0aCBhIHdlYnNpdGUuCiMgCiMgVmVyc2lvbjogMS4yCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/event.CGEcommerceBase.OrderUpdated.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKLy8gYW4gb3JkZXIgaGFzIGJlZW4gdXBkYXRlZC4KaWYoIWlzc2V0KCRwYXJhbXNbJ29yZGVyX2lkJ10pKSByZXR1cm47CgppZighJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93cGFpZHJlZ2lzdHJhdGlvbicpKSByZXR1cm47CgovLyBoYW5kbGUgdGhlIGNhc2Ugb2YgYXR0ZW1wdGVkIHJlY3Vyc2lvbi4KaWYoeHRfdG1wZGF0YTo6ZXhpc3RzKF9fRklMRV9fKSkgcmV0dXJuOwoKeHRfdG1wZGF0YTo6c2V0KF9fRklMRV9fLCAxKTsKCiRtb2RuYW1lICAgICAgPSBzdHJ0b2xvd2VyKCR0aGlzLT5HZXROYW1lKCkpOwokdGFibGVfcHJlZml4ID0gJHRhYmxlX3ByZWZpeCAuICdtb2R1bGVfJyAuICRtb2RuYW1lOwoKLy8gaGVyZSB3ZSBncmFiIHRoZSBvcmRlciBkaXJlY3RseS4KJG9yZGVyX21vZGlmaWVkID0gRkFMU0U7CiRvcmRlcl9pZCAgICAgICA9IChpbnQpJHBhcmFtc1snb3JkZXJfaWQnXTsKJG9yZGVyX29iaiAgICAgID0gb3JkZXJzX29wczo6bG9hZF9ieV9pZCgkb3JkZXJfaWQpOwoKaWYoISRvcmRlcl9vYmopIHJldHVybjsKCmlmKCRvcmRlcl9vYmotPmdldF9zdGF0dXMoKSAhPSBPUkRFUlNUQVRVU19TVUJTQ1JJQkVEICYmICRvcmRlcl9vYmotPmdldF9zdGF0dXMoKSAhPSBPUkRFUlNUQVRVU19QQUlEKQp7CiAgLy8gZG9uJ3QgZG8gYW55dGhpbmcgdW5sZXNzIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIHN1YnNjcmliZWQgb3JkZXIuCiAgcmV0dXJuOwp9CgovLyBnZXQgdGhlIGxpc3Qgb2YgcGFja2FnZXMKJHBrZ3MgPSAnJzsKewogICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcgLiAkdGFibGVfcHJlZml4IC4gJ19wYWlkcGtncyc7CiAgJHRtcCAgID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogIGlmKCEkdG1wKQogIHsKICAgIHJldHVybjsKICB9IC8vIG5vIHBhY2thZ2VzCiAgJHBrZ3MgPSB4dF9hcnJheTo6dG9faGFzaCgkdG1wLCAnaWQnKTsKfQoKLy8gZmluZCB0aGUgbGluZSBpdGVtIHdpdGggYSBTZWxmUmVnIFN1YnNjcmlwdGlvbi4KZm9yKCRzID0gMDsgJHMgPCAkb3JkZXJfb2JqLT5jb3VudF9kZXN0aW5hdGlvbnMoKTsgJHMrKykKewogICRzaGlwcGluZyA9ICRvcmRlcl9vYmotPmdldF9zaGlwcGluZygkcyk7CiAgZm9yKCRpID0gMDsgJGkgPCAkc2hpcHBpbmctPmNvdW50X2FsbF9pdGVtcygpOyAkaSsrKQogIHsKICAgICRpdGVtID0gJHNoaXBwaW5nLT5nZXRfaXRlbSgkaSk7CiAgICBpZigkaXRlbS0+Z2V0X3NvdXJjZSgpICE9ICR0aGlzLT5HZXROYW1lKCkpCiAgICB7CiAgICAgIGNvbnRpbnVlOwogICAgfQogICAgaWYoJGl0ZW0tPmdldF9pdGVtX3R5cGUoKSAhPSBsaW5lX2l0ZW06OklURU1UWVBFX1NFUlZJQ0UpCiAgICB7CiAgICAgIGNvbnRpbnVlOwogICAgfQogICAgCiAgICAkdGVtcF91aWQgPSAkaXRlbS0+Z2V0X2l0ZW1faWQoKTsKICAgICRza3UgICAgICA9ICRpdGVtLT5nZXRfc2t1KCk7CiAgICBpZighJHNrdSkKICAgIHsKICAgICAgY29udGludWU7CiAgICB9IC8vIG5vIHNrdQogICAgCiAgICBsaXN0KCRjb2RlLCAkcGtnaWQsICR0bXB1aWQpID0gZXhwbG9kZSgnLScsICRza3UsIDMpOwogICAgJHBrZ2lkICA9IChpbnQpJHBrZ2lkOwogICAgJHRtcHVpZCA9IChpbnQpJHRtcHVpZDsKICAgIGlmKCRjb2RlICE9ICdzcicgJiYgJHRtcHVpZCAhPSAkdGVtcF91aWQpCiAgICB7CiAgICAgIGNvbnRpbnVlOwogICAgfSAvLyBiYWQgc2t1CiAgICBpZighaXNzZXQoJHBrZ3NbJHBrZ2lkXSkpCiAgICB7CiAgICAgIGNvbnRpbnVlOwogICAgfSAvLyBwYWNrYWdlIGRlbGV0ZWQ/CiAgICAKICAgIC8vIHNlZSBpZiB3ZSBjYW4gZmluZCB0aGlzIHRlbXAgdXNlcgogICAgJHF1ZXJ5ICAgID0gJ1NFTEVDVCAqIEZST00gJyAuICR0YWJsZV9wcmVmaXggLiAnX3VzZXJzIFdIRVJFIGlkID0gPyc7CiAgICAkdG1wX3VzZXIgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCR0ZW1wX3VpZCkpOwogICAgaWYoISR0bXBfdXNlcikKICAgIHsKICAgICAgY29udGludWU7CiAgICB9IC8vIG5vIHRlbXAgdXNlciBmb3VuZC4KICAgIAogICAgLy8gcHVzaCB0aGUgdXNlciBsaXZlLi4uLgogICAgLy8gc2V0IGV4cGlyeSBhcyBsYXRlIGFzIHBvc3NpYmxlLgogICAgLy8gcmVseSBvbiB0aGUgb3JkZXJzL2Vjb21tIHN0dWZmIHRvIGRpc2FibGUgdGhlIHVzZXIgZXRjLiAgaWYgdGhlIHN1YnNjcmlwdGlvbiBpcyBjYW5jZWxsZWQsIGV0Yy4KICAgICRwa2cgICAgID0gJHBrZ3NbJHBrZ2lkXTsKICAgICRleHBpcmVzID0gTlVMTDsKICAgIAogICAgJGtleSAgICAgICAgICAgICAgICAgICA9ICR0aGlzLT5nZXRfZW5jcnlwdGlvbl9rZXkoJHRtcF91c2VyWyd1c2VybmFtZSddKTsKICAgICR0bXBfdXNlclsncGFzc3dvcmQnXSA9ICR0aGlzLT5kZWNyeXB0KCRrZXksIGJhc2U2NF9kZWNvZGUoJHRtcF91c2VyWydwYXNzd29yZCddKSk7CiAgICAkcmVzICAgICAgICAgICAgICAgICAgID0gJHRoaXMtPl9DcmVhdGVGcm9udGVuZFVzZXIoCiAgICAgICR0ZW1wX3VpZCwgJHRtcF91c2VyWyd1c2VybmFtZSddLCAkdG1wX3VzZXJbJ3Bhc3N3b3JkJ10sICRleHBpcmVzCiAgICApOwogICAgJG1hbXNfdWlkICAgICAgICAgICAgICA9ICcnOwogICAgaWYoaXNfYXJyYXkoJHJlcykgJiYgJHJlc1swXSAhPT0gRkFMU0UpCiAgICB7CiAgICAgICRtYW1zX3VpZCA9ICRyZXNbMV07CiAgICB9CiAgICBpZigkbWFtc191aWQpCiAgICB7CiAgICAgIC8vIHNldCB0aGUgb3JkZXIgaWQgaW50byB0aGUgZmV1IHVzZXIgYWNjb3VudAogICAgICAkbWFtcyA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX01BTVMpOwogICAgICAkZGF0YSA9IFsnb3JkZXJfaWQnID0+ICRvcmRlcl9pZF07CiAgICAgICRtYW1zLT5TZXRVc2VyUHJvcGVydHlGdWxsKE1BTVNSZWdpc3RyYXRpb246Ok1BTVNfUFJPUE5BTUUsIHNlcmlhbGl6ZSgkZGF0YSksICRtYW1zX3VpZCk7CiAgICB9CiAgICBhdWRpdCgKICAgICAgJHRlbXBfdWlkLCAkdGhpcy0+R2V0TmFtZSgpLAogICAgICBzcHJpbnRmKAogICAgICAgICdNb3ZlZCBNQU1TUmVzZ2lzdHJhdGlvbiBUZW1wb3JhcnkgVXNlciAlZCB0byBNQU1TIHdpdGggdWlkICVkIHRvIGV4cGlyZSBvbiAlcycsICR0ZW1wX3VpZCwgJG1hbXNfdWlkLAogICAgICAgIHN0cmZ0aW1lKCcleCAlWCcsICRleHBpcmVzKQogICAgICApCiAgICApOwogICAgCiAgICAvLyBkZWxldGUgdGhlIHRlbXAgdXNlci4KICAgICR0aGlzLT5EZWxldGVUZW1wVXNlclByb3BlcnRpZXMoJHRlbXBfdWlkKTsKICAgICR0aGlzLT5EZWxldGVUZW1wVXNlcigkdGVtcF91aWQpOwogICAgCiAgICAvLyB1cGRhdGUgdGhlIGxpbmUgaXRlbSB3aXRoIHRoZSBGRVUgdWlkCiAgICAkaXRlbS0+c2V0X2V4dHJhKCdmZXVfdWlkJywgJG1hbXNfdWlkKTsKICAgICRvcmRlcl9tb2RpZmllZCA9IFRSVUU7CiAgfQp9CgovLyBhbmQgc2F2ZSB0aGUgb3JkZXIuCmlmKCRvcmRlcl9tb2RpZmllZCkKewogICRvcmRlcl9vYmotPnNhdmUoKTsKfQoKLy8gc2V0dXAgZm9yIGFub3RoZXIgb3JkZXIuLi4gc2hvdWxkbid0IGhhcHBlbiwgYnV0IGp1c3QgaW4gY2FzZS4KeHRfdG1wZGF0YTo6ZXJhc2UoX19GSUxFX18pOwoKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/event.Core.ModuleInstalled.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHVzZXJzIHRvIHJlZ2lzdGVyIHRoZW1zZWx2ZXMKIyAgd2l0aCBhIHdlYnNpdGUuCiMgCiMgVmVyc2lvbjogMS4xLjUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwppZiggJHBhcmFtc1snbmFtZSddICE9ICdDR0Vjb21tZXJjZUJhc2UnICkgcmV0dXJuOwoKJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ0dFY29tbWVyY2VCYXNlJywnT3JkZXJDcmVhdGVkJyxmYWxzZSk7CiR0aGlzLT5BZGRFdmVudEhhbmRsZXIoJ0NHRWNvbW1lcmNlQmFzZScsJ09yZGVyVXBkYXRlZCcsZmFsc2UpOwokdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCdDR0Vjb21tZXJjZUJhc2UnLCdPcmRlckRlbGV0ZWQnLGZhbHNlKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/event.Core.ModuleUninstalled.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHVzZXJzIHRvIHJlZ2lzdGVyIHRoZW1zZWx2ZXMKIyAgd2l0aCBhIHdlYnNpdGUuCiMgCiMgVmVyc2lvbjogMS4xLjUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwppZiggJHBhcmFtc1snbmFtZSddICE9ICdDR0Vjb21tZXJjZUJhc2UnICkgcmV0dXJuOwoKJHRoaXMtPlJlbW92ZUV2ZW50SGFuZGxlcignQ0dFY29tbWVyY2VCYXNlJywnT3JkZXJDcmVhdGVkJyk7CiR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0NHRWNvbW1lcmNlQmFzZScsJ09yZGVyVXBkYXRlZCcpOwokdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdDR0Vjb21tZXJjZUJhc2UnLCdPcmRlckRlbGV0ZWQnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/event.Core.ModuleUpgraded.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHVzZXJzIHRvIHJlZ2lzdGVyIHRoZW1zZWx2ZXMKIyAgd2l0aCBhIHdlYnNpdGUuCiMgCiMgVmVyc2lvbjogMS4xLjUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwppZiggJHBhcmFtc1snbmFtZSddICE9ICdDR0Vjb21tZXJjZUJhc2UnICkgcmV0dXJuOwoKJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ0dFY29tbWVyY2VCYXNlJywnT3JkZXJDcmVhdGVkJyxmYWxzZSk7CiR0aGlzLT5BZGRFdmVudEhhbmRsZXIoJ0NHRWNvbW1lcmNlQmFzZScsJ09yZGVyVXBkYXRlZCcsZmFsc2UpOwokdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCdDR0Vjb21tZXJjZUJhc2UnLCdPcmRlckRlbGV0ZWQnLGZhbHNlKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_anothergroup_template.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMS41CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkgZXhpdDsKCiR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX2Fub3RoZXJncm91cF90ZW1wbGF0ZS50cGwnKTsKJHRwbC0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5YVENyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX3NhdmVfYW5vdGhlcmdyb3VwX3RlbXBsYXRlJywkcmV0dXJuaWQpKTsKJHRwbC0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHRwbC0+YXNzaWduKCd0ZW1wbGF0ZScsJHRoaXMtPkdldFRlbXBsYXRlKCdhbm90aGVyZ3JvdXBfdGVtcGxhdGUnKSk7CiR0cGwtPmRpc3BsYXkoKTs=]]></data>
	</file>
	<file>
	  <filename>/function.admin_paidregistration_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHVzZXJzIHRvIHJlZ2lzdGVyIHRoZW1zZWx2ZXMKIyAgd2l0aCBhIHdlYnNpdGUuCiMgCiMgVmVyc2lvbjogMS4xLjUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSByZXR1cm47CiRtYW1zID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdNQU1TJyk7CmlmKCAhJG1hbXMgKSByZXR1cm47CgokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX21hbXNyZWdpc3RyYXRpb25fcGFpZHBrZ3MgT1JERVIgQlkgbmFtZSc7CiRwYWNrYWdlbGlzdCA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKCmlmKCBpc19hcnJheSgkcGFja2FnZWxpc3QpICkgewogIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRwYWNrYWdlbGlzdCk7ICRpKysgKSB7CiAgICAkcmVjID0mICRwYWNrYWdlbGlzdFskaV07CiAgICAkcmVjWydlZGl0X3VybCddID0gJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCdhZG1pbl9hZGRwYWlkcGtnJywkcmV0dXJuaWQsIGFycmF5KCdwa2dpZCc9PiRyZWNbJ2lkJ10pKTsKICAgICRyZWNbJ2RlbGV0ZV9saW5rJ10gPSAkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnYWRtaW5fZGVscGFpZHBrZycsJHJldHVybmlkLCAkdGhpcy0+TGFuZygnZGVsZXRlJyksCgkJCQkJCSAnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCBhcnJheSgncGtnaWQnPT4kcmVjWydpZCddKSk7CiAgICAkcmVjWydlZGl0X2xpbmsnXSA9ICR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdhZG1pbl9hZGRwYWlkcGtnJywkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdlZGl0JyksCgkJCQkJICAgICAgICdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLCBhcnJheSgncGtnaWQnPT4kcmVjWydpZCddKSk7CiAgfQp9Ci8vIGJ1aWxkIHRoZSB0ZW1wbGF0ZScKJHNtYXJ0eS0+YXNzaWduKCdwYWNrYWdlbGlzdCcsJHBhY2thZ2VsaXN0KTsKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5YVENyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX2VkaXRyZWdpc3RyYXRpb25zJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokc21hcnR5LT5hc3NpZ24oJ2FkZGxpbmsnLCR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdhZG1pbl9hZGRwYWlkcGtnJywkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdhZGRfcGFpZHBrZycpLAoJCQkJCQkgJ2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJywgYXJyYXkoKSwnJywnJyxmYWxzZSkpOwoKaWYoICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ0dFY29tbWVyY2VCYXNlJykgKSB7CiAgJHNtYXJ0eS0+YXNzaWduKCdjdXJyZW5jeV9zeW1ib2wnLGNnX2Vjb21tOjpnZXRfY3VycmVuY3lfc3ltYm9sKCkpOwogICRzbWFydHktPmFzc2lnbignY3VycmVuY3lfY29kZScsY2dfZWNvbW06OmdldF9jdXJyZW5jeV9jb2RlKCkpOwp9CiRzbWFydHktPmFzc2lnbignZ3JvdXBsaXN0JyxhcnJheV9mbGlwKCRtYW1zLT5HZXRHcm91cExpc3QoKSkpOwoJCQkJCQkJICAgICAKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9wYWlkcmVnaXN0cmF0aW9uX3RhYi50cGwnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_prefstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7Cgokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCggJGlkLCAnc2V0cHJlZnMnLCAkcmV0dXJuaWQgKSk7CiRzbWFydHktPmFzc2lnbignZW5kZm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CgokbWFtcyA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnTUFNUycpOwokZ3JvdXBsaXN0ID0gJG1hbXMtPkdldEdyb3VwTGlzdCgpOwokdG1wID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ25vcmVnaXN0ZXJfZ3JvdXBzJyk7CiRub3JlZ2lzdGVyX2dyb3VwcyA9IGFycmF5KCk7CmlmKCAhZW1wdHkoJHRtcCkgKSAkbm9yZWdpc3Rlcl9ncm91cHMgPSBleHBsb2RlKCcsJywkdG1wKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9ub3JlZ2lzdGVyJywkdGhpcy0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwnaW5wdXRfbm9yZWdpc3RlcltdJywkZ3JvdXBsaXN0LCRub3JlZ2lzdGVyX2dyb3VwcywzKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9pbmxpbmUnLCR0aGlzLT5MYW5nKCd1c2VfaW5saW5lX2Zvcm1zJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2lubGluZScsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdpbnB1dF9pbmxpbmUnLDEsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2lubGluZV9mb3JtcycsMSkpKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfbm90aWZ5JywkdGhpcy0+TGFuZygnbm90aWZ5X29uX3JlZ2lzdHJhdGlvbicpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9ub3RpZnknLCR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCAkaWQsICdpbnB1dF9ub3RpZnknLCAxLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbm90aWZ5X29uX3JlZ2lzdHJhdGlvbicpKSk7CiRzbWFydHktPmFzc2lnbigncHJvbXB0X2VtYWlsX2NvbmZpcm1hdGlvbicsJHRoaXMtPkxhbmcoJ3JlcXVpcmVfZW1haWxfY29uZmlybWF0aW9uJykpOwokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9vbmVjbGlja19jb25maXJtYXRpb24nLCR0aGlzLT5MYW5nKCdyZXF1aXJlX29uZWNsaWNrX2NvbmZpcm1hdGlvbicpKTsKCiRzbWFydHktPmFzc2lnbignaW5wdXRfZW1haWxfY29uZmlybWF0aW9uJywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCggJGlkLCAnaW5wdXRfZW1haWxfY29uZmlybWF0aW9uJywgMSwKCQkJCQkgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVfZW1haWxfY29uZmlybWF0aW9uJykpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9vbmVjbGlja19jb25maXJtYXRpb24nLCR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCAkaWQsICdpbnB1dF9vbmVjbGlja19jb25maXJtYXRpb24nLCAxLAoJCQkJCSAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnb25lY2xpY2tfY29uZmlybWF0aW9uJykpKTsKCiRzbWFydHktPmFzc2lnbignc2VuZF9lbWFpbHNfdG8nLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzZW5kX2VtYWlsc190bycpKTsKJHNtYXJ0eS0+YXNzaWduKCdhZG1pbl9ub3RpZnlfc3ViamVjdCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FkbWluX25vdGlmeV9zdWJqZWN0JykpOwokc21hcnR5LT5hc3NpZ24oJ2FkbWluX25vdGlmeV9lbWFpbCcsJHRoaXMtPkdldFRlbXBsYXRlKCdhZG1pbl9ub3RpZnlfZW1haWwnKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnc3VibWl0JywgJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpLCAnJywgJycsCgkJCQkJCSAgJHRoaXMtPkxhbmcoJ2NvbmZpcm1fc3VibWl0cHJlZnMnKSkpOwoKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfZm9yY2VfZW1haWxfdHdpY2UnLCR0aGlzLT5MYW5nKCdmb3JjZV9lbWFpbF90d2ljZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JjZV9lbWFpbF90d2ljZScsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goICRpZCwgJ2lucHV0X2ZvcmNlX2VtYWlsX3R3aWNlJywgMSwKCQkJCQkJCQkgICAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWFtc3JlZ19mb3JjZV9lbWFpbF90d2ljZScpKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9za2lwX2ZpbmFsX21zZycsJHRoaXMtPkxhbmcoJ3NraXBfZmluYWxfbXNnJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3NraXBfZmluYWxfbXNnJywJJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goICRpZCwnaW5wdXRfc2tpcF9maW5hbF9tc2cnLCAxLAoJCQkJCQkJCSAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWFtc3JlZ19za2lwX2ZpbmFsX21zZycpKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9yZWRpcmVjdF9hZnRlcnJlZ2lzdGVyJywkdGhpcy0+TGFuZygncmVkaXJlY3RfYWZ0ZXJyZWdpc3RlcicpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9yZWRpcmVjdF9hZnRlcnJlZ2lzdGVyJywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnaW5wdXRfcmVkaXJlY3RfYWZ0ZXJyZWdpc3RlcicsCgkJCQkJCQkJICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JlZGlyZWN0X2FmdGVycmVnaXN0ZXInKSwKCQkJCQkJCQkgICAgICA1MCkpOwoKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfbG9naW5fYWZ0ZXJ2ZXJpZnknLCR0aGlzLT5MYW5nKCdsb2dpbl9hZnRlcnZlcmlmeScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9sb2dpbl9hZnRlcnZlcmlmeScsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdpbnB1dF9sb2dpbl9hZnRlcnZlcmlmeScsMSwKCQkJCQkgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbG9naW5fYWZ0ZXJ2ZXJpZnknKSkpOwoKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfcmVkaXJlY3RfYWZ0ZXJ2ZXJpZnknLCR0aGlzLT5MYW5nKCdyZWRpcmVjdF9hZnRlcnZlcmlmeScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9yZWRpcmVjdF9hZnRlcnZlcmlmeScsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2lucHV0X3JlZGlyZWN0X2FmdGVydmVyaWZ5JywKCQkJCQkJCQkgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JlZGlyZWN0X2FmdGVydmVyaWZ5JyksCgkJCQkJCQkJICAgIDUwKSk7CgokYXJ5ID0gYXJyYXkoJHRoaXMtPkxhbmcoJ2RvbnRfdXNlJykgPT4gJycsICR0aGlzLT5MYW5nKCdub19tYXRjaGVzJykgPT4gJ2V4Y2x1ZGUnLCAkdGhpcy0+TGFuZygnb25seV9tYXRjaGVzJykgPT4gJ2luY2x1ZGUnKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfZW5hYmxlX3doaXRlbGlzdCcsJHRoaXMtPkxhbmcoJ2VuYWJsZV93aGl0ZWxpc3QnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfZW5hYmxlX3doaXRlbGlzdCcsJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdpbnB1dF9lbmFibGVfd2hpdGVsaXN0JywgJGFyeSwgLTEsCgkJCQkJCQkJICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdlbmFibGVfd2hpdGVsaXN0JywgJycpKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF93aGl0ZWxpc3QnLCR0aGlzLT5MYW5nKCd3aGl0ZWxpc3QnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfd2hpdGVsaXN0JywKCQkkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRpZCwKCQkJCQkkdGhpcy0+R2V0UHJlZmVyZW5jZSgnd2hpdGVsaXN0JywgJycpLAoJCQkJCSdpbnB1dF93aGl0ZWxpc3QnKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF93aGl0ZWxpc3RfdHJpZ2dlcl9tZXNzYWdlJywkdGhpcy0+TGFuZygnd2hpdGVsaXN0X3RyaWdnZXJfbWVzc2FnZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF93aGl0ZWxpc3RfdHJpZ2dlcl9tZXNzYWdlJywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnaW5wdXRfd2hpdGVsaXN0X3RyaWdnZXJfbWVzc2FnZScsCgkJCQkJCQkJCSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnd2hpdGVsaXN0X3RyaWdnZXJfbWVzc2FnZScsICcnKSwKCQkJCQkJCQkJIDUwKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3JlZ19hZGRpdGlvbmFsZ3JvdXBzJywkdGhpcy0+Q3JlYXRlSW5wdXRZZXNOb0Ryb3Bkb3duKCRpZCwnaW5wdXRfcmVnX2FkZGl0aW9uYWxncm91cHMnLAoJCQkJCQkJCQkgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZWdfYWRkaXRpb25hbGdyb3VwcycsMCkpKTsKJG1hbXMgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ01BTVMnKTsKJHByb3BkZWZucyA9ICRtYW1zLT5HZXRQcm9wZXJ0eURlZm5zKCk7CiRsaXN0ID0gYXJyYXkoKTsKaWYoICRtYW1zLT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZV9pc19lbWFpbCcpICkgewogICRsaXN0WycqdXNlcm5hbWUtcGFzc3dvcmQqJ10gPSAkdGhpcy0+TGFuZygnZW1haWwtcGFzc3dvcmQnKS4nKic7Cn0KZWxzZSB7CiAgJGxpc3RbJyp1c2VybmFtZS1wYXNzd29yZConXSA9ICR0aGlzLT5MYW5nKCd1c2VybmFtZS1wYXNzd29yZCcpLicqJzsKfQppZiggaXNfYXJyYXkoJHByb3BkZWZucykgJiYgY291bnQoJHByb3BkZWZucykgKSB7CiAgZm9yZWFjaCggJHByb3BkZWZucyBhcyAkcHJvcG5hbWUgPT4gJGRlZm4gKSB7CiAgICBpZiggJGRlZm5bJ3R5cGUnXSAhPSA2ICYmICRkZWZuWydwcm9tcHQnXSAgIT0gJycgKSB7CiAgICAgICRsaXN0WyRwcm9wbmFtZV0gPSAkZGVmblsncHJvbXB0J107CiAgICB9CiAgfQp9CiRzbWFydHktPmFzc2lnbignbWF0Y2hmaWVsZF9vcHRpb25zJywkbGlzdCk7Cgokb3B0cyA9IGFycmF5KCcwJz0+JHRoaXMtPkxhbmcoJ25vJyksJzEnPT4kdGhpcy0+TGFuZygnc2luZ2xlZ3JvdXAnKSwnMic9PiR0aGlzLT5MYW5nKCdtdWx0aXBsZWdyb3VwcycpKTsKJHNtYXJ0eS0+YXNzaWduKCdzZWxlY3Rwa2dvcHRzJywkb3B0cyk7CiRzbWFydHktPmFzc2lnbignYWxsb3dzZWxlY3Rwa2cnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd3NlbGVjdHBrZycpKTsKJHNtYXJ0eS0+YXNzaWduKCdhdXRvY3JlYXRlX21hbXMnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhdXRvY3JlYXRlX3VzZXInLDEpKTsKCiRjZ2VjYiA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ0dFY29tbWVyY2VCYXNlJyk7CmlmKCAkY2dlY2IgKSB7CiAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9hbGxvd3BhaWRyZWdpc3RyYXRpb24nLAoJCSAgJHRoaXMtPkNyZWF0ZUlucHV0WWVzTm9Ecm9wZG93bigkaWQsJ2FsbG93cGFpZHJlZ2lzdHJhdGlvbicsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93cGFpZHJlZ2lzdHJhdGlvbicsMCkpKTsKICAkc21hcnR5LT5hc3NpZ24oJ2NhcnRpdGVtX3N1bW1hcnlfdHBsJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY2FydGl0ZW1fc3VtbWFyeV90cGwnKSk7CiAgJHNtYXJ0eS0+YXNzaWduKCdyZWRpcmVjdF9wYWlkcGtnJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmVkaXJlY3RfcGFpZHBrZycsJycpKTsKfQoKCiRudW0gPSAkdGhpcy0+Q291bnRUZW1wVXNlcnMoKTsKaWYoICRudW0gKSB7CiAgJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfbnVtcmVzZXRyZWNvcmRzJywkdGhpcy0+TGFuZygncHJvbXB0X251bXJlc2V0cmVjb3JkJykpOwogICRzbWFydHktPmFzc2lnbignZGF0YV9udW1yZXNldHJlY29yZHMnLCAkbnVtKTsgLy90b2RvCiAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9yZW1vdmVhbGwnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2lucHV0X3JlbW92ZWFsbCcsJHRoaXMtPkxhbmcoJ3JlbW92ZWFsbCcpLCdvbmNsaWNrPSJyZXR1cm4gY29uZmlybShcJycuJHRoaXMtPkxhbmcoJ2FyZXlvdXN1cmUnKS4nXCcpIicpKTsKICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X3JlbW92ZTF3ZWVrJywKCQkgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2lucHV0X3JlbW92ZTF3ZWVrJywKCQkJCQkgICAkdGhpcy0+TGFuZygncmVtb3ZlMXdlZWsnKSwnb25jbGljaz0icmV0dXJuIGNvbmZpcm0oXCcnLiR0aGlzLT5MYW5nKCdhcmV5b3VzdXJlJykuJ1wnKSInKSk7CgogICRzbWFydHktPmFzc2lnbignaW5wdXRfcmVtb3ZlMW1vbnRoJywKCQkgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2lucHV0X3JlbW92ZTFtb250aCcsCgkJCQkJICAgJHRoaXMtPkxhbmcoJ3JlbW92ZTFtb250aCcpLAoJCQkJCSAgICdvbmNsaWNrPSJyZXR1cm4gY29uZmlybShcJycuJHRoaXMtPkxhbmcoJ2FyZXlvdXN1cmUnKS4nXCcpIicpKTsKICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X3JlbW92ZTFkYXknLAoJCSAgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnaW5wdXRfcmVtb3ZlMWRheScsCgkJCQkJICAgJHRoaXMtPkxhbmcoJ3JlbW92ZTFkYXknKSwKCQkJCQkgICAnb25jbGljaz0icmV0dXJuIGNvbmZpcm0oXCcnLiR0aGlzLT5MYW5nKCdhcmV5b3VzdXJlJykuJ1wnKSInKSk7CiAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9saXN0MWRheScsCgkJICAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdpbnB1dF9saXN0MWRheScsCgkJCQkJICAgJHRoaXMtPkxhbmcoJ2xpc3QxZGF5JykpKTsKfQoKJHNtYXJ0eS0+YXNzaWduKCd2ZXJpZnlwYWdlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgndmVyaWZ5cGFnZScpKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdwcmVmcy50cGwnKTsKCi8vIEVPRgo=]]></data>
	</file>
	<file>
	  <filename>/function.admin_selpkg_template_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgplY2hvICR0aGlzLT5HZXRTaW5nbGVUZW1wbGF0ZUZvcm0oJHRoaXMsJGlkLCRyZXR1cm5pZCwnc2VscGtndGVtcGxhdGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzZWxwa2d0ZW1wbGF0ZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkxhbmcoJ3RpdGxlX3NlbHBrZ190ZW1wbGF0ZScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcmlnX3NlbHBrZ190ZW1wbGF0ZS50cGwnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5MYW5nKCdpbmZvX3NlbHBrZ190ZW1wbGF0ZScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWZhdWx0YWRtaW4nLCAxKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_userstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHVzZXJzIHRvIHJlZ2lzdGVyIHRoZW1zZWx2ZXMKIyAgd2l0aCBhIHdlYnNpdGUuCiMgCiMgVmVyc2lvbjogMS4xLjUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSB7IGV4aXQ7IH0KCiRkYiA9IGNtc21zKCktPkdldERiKCk7Ci8vIGRpc3BsYXkgYSB0YWJsZSB3aXRoIHVzZXJpZCwgZ3JvdXBfaWQgKG5hbWU/KSwgdXNlcm5hbWUsIGNyZWF0ZWRhdGUsIDxlbWFpbCBhZGRyZXNzPgovLyBhbmQgYWxsb3cgdGhlIGFkbWluIHRvIGVkaXQsIGRlbGV0ZSwgYW5kIG9yIG9wdGlvbmFsbHkgc2VuZCB0aGF0IHVzZXIgYSBtZXNzYWdlCi8vIHNob3VsZCBhbHNvIGhhdmUgYSBjaGVja2JveCBzbyB0aGF0IHRoZSBhZG1pbiBjYW4gZGVsZXRlIGEgYnVuY2ggbyB1c2VycyBhdCB0aGUgc2FtZSB0aW1lCi8vIGFuZCBhIHNlbGVjdCBhbGwgd291bGQgYmUgY29vbC4KCi8vIGdldCBhIGxpc3Qgb2YgYWxsIHRoZSBncm91cHMKJG1hbXMgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ01BTVMnKTsKCmlmKCEkbWFtcykKewogICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2Vycm9yX25vZmV1c2Vyc21vZHVsZScpKTsKICAKICByZXR1cm47Cn0KCiR1c2VybmFtZV9pc19lbWFpbCA9ICRtYW1zLT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZV9pc19lbWFpbCcpOwoKJGdycGxpc3QgPSBbXTsKCiR0X2dycGxpc3QgPSAkbWFtcy0+R2V0R3JvdXBMaXN0RnVsbCgpOwoKaWYoIWlzX2FycmF5KCR0X2dycGxpc3QpIHx8IGNvdW50KCR0X2dycGxpc3QpID09IDApCnsKLy8gICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2Vycm9yX25vZ3JvdXBzJykpOwovLyAgcmV0dXJuOwp9Ci8vIGZvciBvdXIgcHVycG9zZXMgaGVyZSwgd2UnbGwgcmUtb3JnIHRfZ3JvdXBsaXN0IHRvIGJlIGtleWVkIGJ5IGlkCmZvcmVhY2goJHRfZ3JwbGlzdCBhcyAkZ3JwKQp7CiAgJGdycGxpc3RbJGdycFsnaWQnXV0gPSAkZ3JwOwp9CgoKLy8gYW4gYXJyYXkgZm9yIHRoZSBncm91cCBwcm9wZXJ0eSByZWxhdGlvbnMgKHdlJ3JlIGdvaW5nIHRvIGNhY2hlIGVtKQokcmVsYXRpb25zID0gW107CgovLyBhbiBhcnJheSBmb3IgdGhlIGVtYWlsIGZpZWxkIG5hbWVzLCBieSBncm91cCBpZCAod2UncmUgZ29pbmcgdG8gY2FjaGUgZW0gdG9vKQokZW1haWxmbGRzID0gW107CgovLyBnZXQgdGhlIHByb3BlcnR5IGRlZmluaXRpb25zCiRwcm9wcyA9ICRtYW1zLT5HZXRQcm9wZXJ0eURlZm5zKCk7CgojIHdlIGFyZSBub3QgZW5mb3JjaW5nIHByb3BlcnRpZXMKLy9pZigkcHJvcHMgPT0gRkFMU0UpCi8vewovLyAgJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnZXJyb3Jfbm9wcm9wZGVmbnMnKSk7Ci8vCi8vICByZXR1cm47Ci8vfQoKLy8gc29tZSBsYWJlbHMKJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdkb19kZWxldGV1c2Vyc2J1bGsnKSk7CiRzbWFydHktPmFzc2lnbignc3VibWl0JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdkZWxldGUnLCR0aGlzLT5MYW5nKCdkZWxldGVzZWx1c2VycycpKSk7CiRzbWFydHktPmFzc2lnbignZW5kZm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbigndXNlcmlkdGV4dCcsJHRoaXMtPkxhbmcoJ2hkcl91c2VyaWQnKSk7CiRzbWFydHktPmFzc2lnbigndXNlcm5hbWV0ZXh0JywkdGhpcy0+TGFuZygnaGRyX3VzZXJuYW1lJykpOwokc21hcnR5LT5hc3NpZ24oJ2dycG5hbWV0ZXh0JywkdGhpcy0+TGFuZygnaGRyX2dycG5hbWUnKSk7CiRzbWFydHktPmFzc2lnbignc3RhdHVzdGV4dCcsJHRoaXMtPkxhbmcoJ2hkcl9zdGF0dXMnKSk7CiRzbWFydHktPmFzc2lnbignY3JlYXRlZHRleHQnLCR0aGlzLT5MYW5nKCdoZHJfY3JlYXRlZCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbWFpbHRleHQnLCR0aGlzLT5MYW5nKCdoZHJfZW1haWwnKSk7CiRzbWFydHktPmFzc2lnbignZGVsZXRldGV4dCcsJHRoaXMtPkxhbmcoJ3NlbGVjdCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdjaGVja2FsbGJveCcsCgkJICAgICAgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkZWZhdWx0YWRtaW4nLCRyZXR1cm5pZCwKCQkJCQkkdGhpcy0+TGFuZygnY2hlY2tfYWxsJyksIGFycmF5KCksICcnLCBmYWxzZSwgZmFsc2UsCgkJCQkJJ29uQ2xpY2soKT0iY2hlY2tBbGwoZG9jdW1lbnQuZm9ybXNbMF0sdHJ1ZSk7cmV0dXJuIGZhbHNlIicpLgoJCSAgICAgICImbmJzcDsmbmJzcDsiLgoJCSAgICAgICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZGVmYXVsdGFkbWluJywkcmV0dXJuaWQsCgkJCQkJJHRoaXMtPkxhbmcoJ3VuY2hlY2tfYWxsJyksIGFycmF5KCksICcnLCBmYWxzZSwgZmFsc2UsCgkJCQkJJ29uQ2xpY2soKT0iY2hlY2tBbGwoZG9jdW1lbnQuZm9ybXNbMF0sZmFsc2UpO3JldHVybiBmYWxzZSInKSk7CiAgICAKLy8gc2VsZWN0IGFsbCB0aGUgdXNlcnMKJHJvd2FycmF5ID0gW107Ci8vIHRvZG8sIGFkZCBzb21lIHJlYWwgZmlsdGVyaW5nIGhlcmUKJHEgPSAnU0VMRUNUICogRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX3VzZXJzIExJTUlUIDI1MCc7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHEgKTsKCmlmKCAkZGJyZXN1bHQgJiYgKCRkYnJlc3VsdC0+UmVjb3JkQ291bnQoKSA+IDApICkgewogIC8vIHdlIGhhdmUgcm93cwogICRyb3djbGFzcyA9ICdyb3cxJzsKICB3aGlsZSggJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSApIHsKICAgICRxMiA9ICdTRUxFQ1QgZ2lkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX2dycHMgV0hFUkUgdXNlciA9ID8nOwogICAgJGdpZHMgPSAkZGItPkdldENvbCgkcTIsYXJyYXkoJHJvd1snaWQnXSkpOwoKICAgICRvbmVyb3cgPSBuZXcgU3RkQ2xhc3MoKTsKICAgICRvbmVyb3ctPnVzZXJpZCA9ICRyb3dbJ2lkJ107CiAgICAkb25lcm93LT51c2VybmFtZSA9ICRyb3dbJ3VzZXJuYW1lJ107CiAgICAkb25lcm93LT5jcmVhdGVkID0gJHJvd1snY3JlYXRlZGF0ZSddOwogICAgJG9uZXJvdy0+cm93Y2xhc3MgPSAkcm93Y2xhc3M7CiAgICBpZiggaXNfYXJyYXkoJGdpZHMpICYmIGNvdW50KCRnaWRzKSApIHsKICAgICAgJHRtcCA9IGFycmF5KCk7CiAgICAgIGZvcmVhY2goICRnaWRzIGFzICRnaWQgKSB7CglpZiggaXNzZXQoJGdycGxpc3RbJGdpZF0pICkgJHRtcFtdID0gJGdycGxpc3RbJGdpZF1bJ2dyb3VwbmFtZSddOwogICAgICB9CiAgICAgICRvbmVyb3ctPmdycG5hbWUgPSBpbXBsb2RlKCcsJywkdG1wKTsKCiAgICAgIC8vIG5vdyB3ZSBoYXZlIGEgZ3JvdXAgaWQuLi4gaGF2ZSB0byBnZXQgYSBsaXN0IG9mIHRoZSBncm91cHMgcHJvcGVydGllcwogICAgICBpZiggISR1c2VybmFtZV9pc19lbWFpbCApIHsKCWZvcmVhY2goICRnaWRzIGFzICRnaWQgKSB7CgkgIGlmKCAhaXNzZXQoICRyZWxhdGlvbnNbICRnaWQgXSApICkgewoJICAgIC8vIG5vdCBpbiB0aGUgY2FjaGUsIHNvIGdldCB0aGVtCgkgICAgJHRfcmVsYXRpb25zID0gJG1hbXMtPkdldEdyb3VwUHJvcGVydHlSZWxhdGlvbnMoICRnaWQgKTsKCSAgICBpZiggJHRfcmVsYXRpb25zWzBdID09IGZhbHNlICkgewoJICAgICAgLy8gdGhpcyBpcyB1Z2x5IGZvciB0aGUgdXNlciB0byBzZWUKCSAgICAgIC8vIGJ1dCBhdCBsZWFzdCB0aGUgYWRtaW4gd2lsbCBiZSBhYmxlIHRvIGZpZ3VyZSBpdCBvdXQKCSAgICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSggJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdlcnJvcl9ub2dyb3VwcHJvcHJlbG5zJywkdF9yZWxhdGlvbnNbMV0pICk7CgkgICAgICByZXR1cm47CgkgICAgfQoKCSAgICAvLyBhbmQgY2FjaGUgdGhlbQoJICAgICRyZWxhdGlvbnNbICRnaWQgXSA9ICR0X3JlbGF0aW9uczsKCSAgfQoJfQoKCS8vIG5vdywgZ28gdGhyb3VnaCBhbGwgdGhlIHJlbGF0aW9ucywgeHJlZiB3aXRoIHRoZSBwcm9wZXJ0aWVzIGZpZWxkCgkvLyBhbmQgdHJ5IHRvIGZpbmQgb25lIHRoYXQncyBhbiBlbWFpbCBhZGRyZXNzIGZvciB0aGlzIGdyb3VwCgkvLyB3ZSdsbCBjYWNoZSB0aGF0IHRvbwoJaWYoICFpc3NldCggJGVtYWlsZmxkc1sgJGdpZCBdICkgKSB7CgkgICRmb3VuZCA9IGZhbHNlOwoJICAvLyBub3QgaW4gdGhlIGNhY2hlLCBzbyB3ZSdsbCBmaW5kIG9uZQoJICBmb3JlYWNoKCAkcmVsYXRpb25zWyAkZ2lkIF0gYXMgJHJlbG4gKSB7CgkgICAgZm9yZWFjaCggJHByb3BzIGFzICRvbmVwcm9wICkgewoJICAgICAgaWYoICRyZWxuWyduYW1lJ10gPT0gJG9uZXByb3BbJ25hbWUnXSAmJiAkb25lcHJvcFsndHlwZSddID09IDIgKSB7CgkJLy8gZW1haWwgCgkJLy8gd29vaG9vLCB3ZSBmb3VuZCBhbiBlbWFpbCBmaWVsZCBpbiB0aGUgcHJvcGVydHkgcmVsYXRpb25zIGZvciB0aGlzCgkJLy8gZ3JvdXAKCQkkZW1haWxmbGRzWyRyb3dbJ2dyb3VwX2lkJ11dID0gJHJlbG5bJ25hbWUnXTsKCQkkZm91bmQgPSB0cnVlOwoJCWJyZWFrOwoJICAgICAgfQoJICAgIH0KCSAgfQoJCQoJICBpZiggISRmb3VuZCApIHsKCSAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdlcnJvcl9ub2VtYWlsYWRkcmVzcycpKTsKCSAgICByZXR1cm47CgkgIH0KCX0KICAgICAgCgkvLyBub3csIGdldCB0aGUgZW1haWwgYWRkcmVzcyBmb3IgdGhpcyB1c2VyCgkkb25lcm93LT5lbWFpbCA9ICR0aGlzLT5HZXRUZW1wVXNlclByb3BlcnR5KCRyb3dbJ2lkJ10sJGVtYWlsZmxkc1skcm93Wydncm91cF9pZCddXSwgJHRoaXMtPkxhbmcoJ3Vua25vd24nKSk7CiAgICAgIH0gLy8gdXNlcm5hbWUgaXMgbm90IGVtYWlsLgogICAgfSAvLyBoYXZlIGdyb3VwcwoKCiAgICAkb25lcm93LT5lZGl0X3VybCA9ICR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnZWRpdHRlbXB1c2VyJywkcmV0dXJuaWQsYXJyYXkoJ3VzZXJfaWQnPT4kcm93WydpZCddKSk7CgogICAgJG9uZXJvdy0+ZWRpdGxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluayAoJGlkLCAnZWRpdHRlbXB1c2VyJywgJHJldHVybmlkLAoJCQkJCSAgIGNtc191dGlsczo6Z2V0X3RoZW1lX29iamVjdCgpLT5EaXNwbGF5SW1hZ2UgKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLAoJCQkJCQkJCQkJCSR0aGlzLT5MYW5nICgnZWRpdCcpLCAnJywgJycsICdzeXN0ZW1pY29uJyksCgkJCQkJICAgYXJyYXkgKCd1c2VyX2lkJyA9PiAkcm93WydpZCddKSk7CiAgICAkb25lcm93LT5kZWxldGVsaW5rID0KICAgICAgJHRoaXMtPkNyZWF0ZUxpbmsgKCRpZCwgJ2RlbGV0ZXRlbXB1c2VyJywgJHJldHVybmlkLAoJCQkgY21zX3V0aWxzOjpnZXRfdGhlbWVfb2JqZWN0KCktPkRpc3BsYXlJbWFnZSAoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywKCQkJCQkJCQkgICAgICAkdGhpcy0+TGFuZyAoJ2RlbGV0ZScpLCAnJywgJycsICdzeXN0ZW1pY29uJyksCgkJCSBhcnJheSAoJ3VzZXJfaWQnID0+ICRyb3dbJ2lkJ10pLAoJCQkgJHRoaXMtPkxhbmcgKCdhcmV5b3VzdXJlX2RlbGV0ZXVzZXInKSk7CiAgICAkb25lcm93LT5wdXNobGluayA9IAogICAgICAkdGhpcy0+Q3JlYXRlTGluayAoJGlkLCdwdXNodXNlcmxpdmUnLCRyZXR1cm5pZCwKCQkJIGNtc191dGlsczo6Z2V0X3RoZW1lX29iamVjdCgpLT5EaXNwbGF5SW1hZ2UgKCdpY29ucy9zeXN0ZW0vZXhwb3J0LmdpZicsCgkJCQkJCQkJICAgICAgJHRoaXMtPkxhbmcoJ3B1c2hfbGl2ZScpLCAnJywgJycsICdzeXN0ZW1pY29uJyksCgkJCSBhcnJheSAoJ3VzZXJfaWQnID0+ICRyb3dbJ2lkJ10pLAoJCQkgJHRoaXMtPkxhbmcoJ2FyZXlvdXN1cmVfcHVzaHVzZXInKSk7CgogICAgJG9uZXJvdy0+bWFya2RlbGV0ZWJveCA9ICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnbWFya2RlbGV0ZV8nLiRyb3dbJ2lkJ10sJHJvd1snaWQnXSk7CiAgICAkcm93YXJyYXlbXSA9ICRvbmVyb3c7CiAgICAoJHJvd2NsYXNzID09ICJyb3cxIiA/ICRyb3djbGFzcyA9ICJyb3cyIiA6ICRyb3djbGFzcyA9ICJyb3cxIik7CiAgfQp9CmlmKCAkdXNlcm5hbWVfaXNfZW1haWwgKSAkc21hcnR5LT5hc3NpZ24oJ3VzZXJuYW1lX2lzX2VtYWlsJywxKTsKCiRzbWFydHktPmFzc2lnbignaXRlbXMnLCAkcm93YXJyYXkpOwokc21hcnR5LT5hc3NpZ24oJ2l0ZW1jb3VudCcsY291bnQoJHJvd2FycmF5KSk7CiRzbWFydHktPmFzc2lnbignaXRlbXNmb3VuZCcsJHRoaXMtPkxhbmcoJ3VzZXJzZm91bmQnKSk7CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgndXNlcmxpc3QudHBsJyk7CgovLyBFT0YKPz4=]]></data>
	</file>
	<file>
	  <filename>/functions.adminpanel.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDgtMjAxNiBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byByZWdpc3RlciB0aGVtc2VsdmVzCiMgIHdpdGggYSB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBEaXNwbGF5QWRtaW5SZWcyVGVtcGxhdGVUYWIoJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkKQogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpmdW5jdGlvbiBfRGlzcGxheUFkbWluUmVnMlRlbXBsYXRlVGFiKCRtb2R1bGUsICRpZCwgJHBhcmFtcywgJHJldHVybmlkICkKewogICAgJHRwbCA9ICRtb2R1bGUtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdzZXRfcmVnMnRlbXBsYXRlLnRwbCcpOwogICAgJHRwbC0+YXNzaWduKCdmb3Jtc3RhcnQnLCRtb2R1bGUtPlhUQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnc2V0X3JlZzJ0ZW1wbGF0ZScpKTsKICAgICR0cGwtPmFzc2lnbigncmVnMnRlbXBsYXRlJywkbW9kdWxlLT5HZXRUZW1wbGF0ZSgnbWFtc3JlZ19yZWcydGVtcGxhdGUnKSk7CiAgICAkdHBsLT5hc3NpZ24oJ2Zvcm1lbmQnLCRtb2R1bGUtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICAkdHBsLT5kaXNwbGF5KCk7Cn0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIERpc3BsYXlBZG1pbkVtYWlsQ29uZmlybWF0aW9uVGVtcGxhdGVUYWIoJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkKQogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpmdW5jdGlvbiBfRGlzcGxheUFkbWluRW1haWxDb25maXJtYXRpb25UZW1wbGF0ZVRhYigkbW9kdWxlLCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCApCnsKICAgICR0cGwgPSAkbW9kdWxlLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fZW1haWxjb25maXJtX3RhYi50cGwnKTsKICAgICR0cGwtPmFzc2lnbignZm9ybXN0YXJ0JywkbW9kdWxlLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdzZXRfZW1haWxjb25maXJtX3RlbXBsYXRlJykpOwogICAgJHRwbC0+YXNzaWduKCdmb3JtZW5kJywkbW9kdWxlLT5DcmVhdGVGb3JtRW5kKCkpOwogICAgJHRwbC0+YXNzaWduKCdzdWJqZWN0JywkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCdtYW1zcmVnX2VtYWlsY29uZmlybV9zdWJqZWN0JykpOwogICAgJHRwbC0+YXNzaWduKCdib2R5X3RwbCcsJG1vZHVsZS0+R2V0VGVtcGxhdGUoJ21hbXNyZWdfZW1haWxjb25maXJtX3RlbXBsYXRlJykpOwogICAgJHRwbC0+ZGlzcGxheSgpOwp9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBEaXNwbGF5QWRtaW5GaW5hbE1lc3NhZ2VUZW1wbGF0ZVRhYigkaWQsICRwYXJhbXMsICRyZXR1cm5faWQpCiAgIE5PVCBQQVJUIE9GIFRIRSBNT0RVTEUgQVBJCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmZ1bmN0aW9uIF9EaXNwbGF5QWRtaW5GaW5hbE1lc3NhZ2VUZW1wbGF0ZVRhYigkbW9kdWxlLCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCApCnsKICAgICR0cGwgPSAkbW9kdWxlLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fZmluYWxtZXNzYWdlX3RhYi50cGwnKTsKICAgICR0cGwtPmFzc2lnbignZm9ybXN0YXJ0JywkbW9kdWxlLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdzZXRfZmluYWxtZXNzYWdlX3RlbXBsYXRlJykpOwogICAgJHRwbC0+YXNzaWduKCdmb3JtZW5kJywkbW9kdWxlLT5DcmVhdGVGb3JtRW5kKCkpOwogICAgJHRwbC0+YXNzaWduKCd0ZW1wbGF0ZScsJG1vZHVsZS0+R2V0VGVtcGxhdGUoJ21hbXNyZWdfZmluYWxtZXNzYWdlX3RlbXBsYXRlJykpOwogICAgJHRwbC0+ZGlzcGxheSgpOwp9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBEaXNwbGF5QWRtaW5FbWFpbFVzZXJFZGl0ZWRUZW1wbGF0ZVRhYigkaWQsICRwYXJhbXMsICRyZXR1cm5faWQpCiAgIE5PVCBQQVJUIE9GIFRIRSBNT0RVTEUgQVBJCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmZ1bmN0aW9uIF9EaXNwbGF5QWRtaW5FbWFpbFVzZXJFZGl0ZWRUZW1wbGF0ZVRhYigkbW9kdWxlLCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCApCnsKICAgICR0cGwgPSAkbW9kdWxlLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fdXNlcmluZm9lZGl0ZWRfdGFiLnRwbCcpOwogICAgJHRwbC0+YXNzaWduKCdmb3Jtc3RhcnQnLCRtb2R1bGUtPkNyZWF0ZUZvcm1zdGFydCgkaWQsJ3NldF9lbWFpbHVzZXJlZGl0ZWRfdGVtcGxhdGUnKSk7CiAgICAkdHBsLT5hc3NpZ24oJ2Zvcm1lbmQnLCRtb2R1bGUtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICAkdHBsLT5hc3NpZ24oJ3N1YmplY3QnLCRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ21hbXNyZWdfZW1haWx1c2VyZWRpdGVkX3N1YmplY3QnKSk7CiAgICAkdHBsLT5hc3NpZ24oJ2h0bWx0ZW1wbGF0ZScsJG1vZHVsZS0+R2V0VGVtcGxhdGUoJ21hbXNyZWdfZW1haWx1c2VyZWRpdGVkX3RlbXBsYXRlJykpOwogICAgJHRwbC0+ZGlzcGxheSgpOwp9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBEaXNwbGF5QWRtaW5TZW5kQW5vdGhlckVtYWlsVGVtcGxhdGVUYWIoJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkKQogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpmdW5jdGlvbiBfRGlzcGxheUFkbWluU2VuZEFub3RoZXJFbWFpbFRlbXBsYXRlVGFiKCRtb2R1bGUsICRpZCwgJHBhcmFtcywgJHJldHVybmlkICkKewogICAgJHRwbCA9ICRtb2R1bGUtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9zZW5kYW5vdGhlcmVtYWlsX3RhYi50cGwnKTsKICAgICR0cGwtPmFzc2lnbignZm9ybXN0YXJ0JywkbW9kdWxlLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdzZXRfc2VuZGFub3RoZXJlbWFpbF90ZW1wbGF0ZScpKTsKICAgICR0cGwtPmFzc2lnbignZm9ybWVuZCcsJG1vZHVsZS0+Q3JlYXRlRm9ybUVuZCgpKTsKICAgICR0cGwtPmFzc2lnbigndGVtcGxhdGUnLCRtb2R1bGUtPkdldFRlbXBsYXRlKCdtYW1zcmVnX3NlbmRhbm90aGVyZW1haWxfdGVtcGxhdGUnKSk7CiAgICAkdHBsLT5hc3NpZ24oJ3Bvc3RfdGVtcGxhdGUnLCRtb2R1bGUtPkdldFRlbXBsYXRlKCdtYW1zcmVnX3Bvc3Rfc2VuZGFub3RoZXJlbWFpbF90ZW1wbGF0ZScpKTsKICAgICR0cGwtPmRpc3BsYXkoKTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/functions.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMS41CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmaW5hbCBjbGFzcyBNQU1TVXRpbHMKewogICAgcHJpdmF0ZSBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHt9CgogICAgZnVuY3Rpb24gYXJyYXlfbWVyZ2VfYnlfbmFtZV9yZXF1aXJlZCggJGFycjEsICRhcnIyICkKICAgIHsKICAgICAgICAkeHhyZXN1bHQgPSBhcnJheSgpOwogICAgICAgIC8vIGFkZCBpdGVtcyBjb21tb24gdG8gYXJyMSBhbmQgYXJyMgogICAgICAgIC8vIGJ1dCBmYXZvciByZXF1aXJlZCBpdGVtcwogICAgICAgIGlmKCAhaXNfYXJyYXkoICRhcnIxICkgfHwgIWlzX2FycmF5KCAkYXJyMiApICkgcmV0dXJuOwogICAgICAgIGZvcmVhY2goICRhcnIxIGFzICRhMSApIHsKICAgICAgICAgICAgZm9yZWFjaCggJGFycjIgYXMgJGEyICkgewogICAgICAgICAgICAgICAgaWYoICRhMVsnbmFtZSddID09ICRhMlsnbmFtZSddICkgewogICAgICAgICAgICAgICAgICAgIGlmKCAkYTFbJ3JlcXVpcmVkJ10gPT0gMiApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHh4cmVzdWx0W10gPSAkYTE7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHh4cmVzdWx0W10gPSAkYTI7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gYWRkIGl0ZW1zIGluIGFycjEgbm90IGluIHJlc3VsdAogICAgICAgIGZvcmVhY2goICRhcnIxIGFzICRhMSApIHsKICAgICAgICAgICAgJGZvdW5kID0gZmFsc2U7CiAgICAgICAgICAgIGZvcmVhY2goICR4eHJlc3VsdCBhcyAkcmVzICkgewogICAgICAgICAgICAgICAgaWYoICRhMVsnbmFtZSddID09ICRyZXNbJ25hbWUnXSApIHsKICAgICAgICAgICAgICAgICAgICAkZm91bmQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCAhJGZvdW5kICkgJHh4cmVzdWx0W10gPSAkYTE7CiAgICAgICAgfQoKICAgICAgICAvLyBhZGQgaXRlbXMgaW4gYXJyMiBub3QgaW4gcmVzdWx0CiAgICAgICAgZm9yZWFjaCggJGFycjIgYXMgJGEyICkgewogICAgICAgICAgICAkZm91bmQgPSBmYWxzZTsKICAgICAgICAgICAgZm9yZWFjaCggJHh4cmVzdWx0IGFzICRyZXMgKSB7CiAgICAgICAgICAgICAgICBpZiggJGEyWyduYW1lJ10gPT0gJHJlc1snbmFtZSddICkgewogICAgICAgICAgICAgICAgICAgICRmb3VuZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoICEkZm91bmQgKSAkeHhyZXN1bHRbXSA9ICRhMjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICR4eHJlc3VsdDsKICAgIH0KCiAgICBzdGF0aWMgZnVuY3Rpb24gY29tcGFyZV9lbGVtZW50c19ieV9zb3J0b3JkZXJfa2V5KCAkZTEsICRlMiApCiAgICB7CiAgICAgICAgaWYoICRlMVsnc29ydF9rZXknXSA8ICRlMlsnc29ydF9rZXknXSApIHsKICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKCAkZTFbJ3NvcnRfa2V5J10gPiAkZTJbJ3NvcnRfa2V5J10gKSB7CiAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KICAgICAgICByZXR1cm4gMDsKICAgIH0KCiAgICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIGltcGxvZGVfd2l0aF9rZXkoJGFzc29jLCAkaW5nbHVlID0gJz0nLCAkb3V0Z2x1ZSA9ICcmJykKICAgIHsKICAgICAgICAkcmV0dXJuID0gbnVsbDsKICAgICAgICBmb3JlYWNoICgkYXNzb2MgYXMgJHRrID0+ICR0dikgJHJldHVybiAuPSAkb3V0Z2x1ZS4kdGsuJGluZ2x1ZS4kdHY7CiAgICAgICAgcmV0dXJuIHN1YnN0cigkcmV0dXJuLHN0cmxlbigkb3V0Z2x1ZSkpOwogICAgfQoKICAgIHN0YXRpYyBmdW5jdGlvbiBteUNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAkbmFtZSwgJHZhbHVlPScnLCAkc2VsZWN0ZWR2YWx1ZT0nJywgJGFkZHR0ZXh0PScnKQogICAgewogICAgICAgICR0ZXh0ID0gJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iJy4kaWQuJG5hbWUuJyIgdmFsdWU9IicuJHZhbHVlLiciJzsKICAgICAgICAkYXJyID0gZXhwbG9kZSgiLCIsJHNlbGVjdGVkdmFsdWUpOwogICAgICAgIGZvcmVhY2goICRhcnIgYXMgJGEgKSB7CiAgICAgICAgICAgIGlmICgkYSA9PSAkdmFsdWUpICAkdGV4dCAuPSAnICcgLiAnY2hlY2tlZD0iY2hlY2tlZCInOwogICAgICAgIH0KICAgICAgICBpZiAoJGFkZHR0ZXh0ICE9ICcnKSAkdGV4dCAuPSAnICcuJGFkZHR0ZXh0OwogICAgICAgICR0ZXh0IC49ICIgLz5cbiI7CiAgICAgICAgcmV0dXJuICR0ZXh0OwogICAgfQoKICAgIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gbXlDcmVhdGVJbnB1dEhpZGRlbiggJGlkLCAkbmFtZSwgJHZhbHVlPScnLCAkYWRkdGV4dD0nJywgJGRlbGltPScsJykKICAgIHsKICAgICAgICBpZiggaXNfYXJyYXkoICR2YWx1ZSApICkgewogICAgICAgICAgICAkdmFsID0gTUFNU1V0aWxzOjppbXBsb2RlX3dpdGhfa2V5KCAkdmFsdWUgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICR2YWwgPSAkdmFsdWU7CiAgICAgICAgfQogICAgICAgICR2YWwgPSBzdHJfcmVwbGFjZSgnIicsICcmcXVvdDsnLCAkdmFsKTsKICAgICAgICAkdGV4dCA9ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSInLiRpZC4kbmFtZS4nIiB2YWx1ZT0iJy4kdmFsLiciJzsKICAgICAgICBpZiAoJGFkZHRleHQgIT0gJycpIHsKICAgICAgICAgICAgJHRleHQgLj0gJyAnLiRhZGR0ZXh0OwogICAgICAgIH0KICAgICAgICAkdGV4dCAuPSAiIC8+XG4iOwogICAgICAgIHJldHVybiAkdGV4dDsKICAgIH0KCiAgICBmdW5jdGlvbiBpc19hc3NvY2lhdGl2ZSgmJGFycmF5KXsKICAgICAgICBpZiAoIWlzX2FycmF5KCRhcnJheSkpIHJldHVybiBmYWxzZTsKICAgICAgICBmb3JlYWNoKGFycmF5X2tleXMoJGFycmF5KSBhcyAka2V5PT4kdmFsdWUpIHsKICAgICAgICAgICAgaWYoICFpc19udW1lcmljKCRrZXkpICkgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCn0gLy8gRW5kIG9mIGNsYXNzCgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/js</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/js.cookie.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohCiAqIEphdmFTY3JpcHQgQ29va2llIHYyLjIuMQogKiBodHRwczovL2dpdGh1Yi5jb20vanMtY29va2llL2pzLWNvb2tpZQogKgogKiBDb3B5cmlnaHQgMjAwNiwgMjAxNSBLbGF1cyBIYXJ0bCAmIEZhZ25lciBCcmFjawogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UKICovCjsoZnVuY3Rpb24gKGZhY3RvcnkpIHsKCXZhciByZWdpc3RlcmVkSW5Nb2R1bGVMb2FkZXI7CglpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7CgkJZGVmaW5lKGZhY3RvcnkpOwoJCXJlZ2lzdGVyZWRJbk1vZHVsZUxvYWRlciA9IHRydWU7Cgl9CglpZiAodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKSB7CgkJbW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7CgkJcmVnaXN0ZXJlZEluTW9kdWxlTG9hZGVyID0gdHJ1ZTsKCX0KCWlmICghcmVnaXN0ZXJlZEluTW9kdWxlTG9hZGVyKSB7CgkJdmFyIE9sZENvb2tpZXMgPSB3aW5kb3cuQ29va2llczsKCQl2YXIgYXBpID0gd2luZG93LkNvb2tpZXMgPSBmYWN0b3J5KCk7CgkJYXBpLm5vQ29uZmxpY3QgPSBmdW5jdGlvbiAoKSB7CgkJCXdpbmRvdy5Db29raWVzID0gT2xkQ29va2llczsKCQkJcmV0dXJuIGFwaTsKCQl9OwoJfQp9KGZ1bmN0aW9uICgpIHsKCWZ1bmN0aW9uIGV4dGVuZCAoKSB7CgkJdmFyIGkgPSAwOwoJCXZhciByZXN1bHQgPSB7fTsKCQlmb3IgKDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgewoJCQl2YXIgYXR0cmlidXRlcyA9IGFyZ3VtZW50c1sgaSBdOwoJCQlmb3IgKHZhciBrZXkgaW4gYXR0cmlidXRlcykgewoJCQkJcmVzdWx0W2tleV0gPSBhdHRyaWJ1dGVzW2tleV07CgkJCX0KCQl9CgkJcmV0dXJuIHJlc3VsdDsKCX0KCglmdW5jdGlvbiBkZWNvZGUgKHMpIHsKCQlyZXR1cm4gcy5yZXBsYWNlKC8oJVswLTlBLVpdezJ9KSsvZywgZGVjb2RlVVJJQ29tcG9uZW50KTsKCX0KCglmdW5jdGlvbiBpbml0IChjb252ZXJ0ZXIpIHsKCQlmdW5jdGlvbiBhcGkoKSB7fQoKCQlmdW5jdGlvbiBzZXQgKGtleSwgdmFsdWUsIGF0dHJpYnV0ZXMpIHsKCQkJaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHsKCQkJCXJldHVybjsKCQkJfQoKCQkJYXR0cmlidXRlcyA9IGV4dGVuZCh7CgkJCQlwYXRoOiAnLycKCQkJfSwgYXBpLmRlZmF1bHRzLCBhdHRyaWJ1dGVzKTsKCgkJCWlmICh0eXBlb2YgYXR0cmlidXRlcy5leHBpcmVzID09PSAnbnVtYmVyJykgewoJCQkJYXR0cmlidXRlcy5leHBpcmVzID0gbmV3IERhdGUobmV3IERhdGUoKSAqIDEgKyBhdHRyaWJ1dGVzLmV4cGlyZXMgKiA4NjRlKzUpOwoJCQl9CgoJCQkvLyBXZSdyZSB1c2luZyAiZXhwaXJlcyIgYmVjYXVzZSAibWF4LWFnZSIgaXMgbm90IHN1cHBvcnRlZCBieSBJRQoJCQlhdHRyaWJ1dGVzLmV4cGlyZXMgPSBhdHRyaWJ1dGVzLmV4cGlyZXMgPyBhdHRyaWJ1dGVzLmV4cGlyZXMudG9VVENTdHJpbmcoKSA6ICcnOwoKCQkJdHJ5IHsKCQkJCXZhciByZXN1bHQgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7CgkJCQlpZiAoL15bXHtcW10vLnRlc3QocmVzdWx0KSkgewoJCQkJCXZhbHVlID0gcmVzdWx0OwoJCQkJfQoJCQl9IGNhdGNoIChlKSB7fQoKCQkJdmFsdWUgPSBjb252ZXJ0ZXIud3JpdGUgPwoJCQkJY29udmVydGVyLndyaXRlKHZhbHVlLCBrZXkpIDoKCQkJCWVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcodmFsdWUpKQoJCQkJCS5yZXBsYWNlKC8lKDIzfDI0fDI2fDJCfDNBfDNDfDNFfDNEfDJGfDNGfDQwfDVCfDVEfDVFfDYwfDdCfDdEfDdDKS9nLCBkZWNvZGVVUklDb21wb25lbnQpOwoKCQkJa2V5ID0gZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhrZXkpKQoJCQkJLnJlcGxhY2UoLyUoMjN8MjR8MjZ8MkJ8NUV8NjB8N0MpL2csIGRlY29kZVVSSUNvbXBvbmVudCkKCQkJCS5yZXBsYWNlKC9bXChcKV0vZywgZXNjYXBlKTsKCgkJCXZhciBzdHJpbmdpZmllZEF0dHJpYnV0ZXMgPSAnJzsKCQkJZm9yICh2YXIgYXR0cmlidXRlTmFtZSBpbiBhdHRyaWJ1dGVzKSB7CgkJCQlpZiAoIWF0dHJpYnV0ZXNbYXR0cmlidXRlTmFtZV0pIHsKCQkJCQljb250aW51ZTsKCQkJCX0KCQkJCXN0cmluZ2lmaWVkQXR0cmlidXRlcyArPSAnOyAnICsgYXR0cmlidXRlTmFtZTsKCQkJCWlmIChhdHRyaWJ1dGVzW2F0dHJpYnV0ZU5hbWVdID09PSB0cnVlKSB7CgkJCQkJY29udGludWU7CgkJCQl9CgoJCQkJLy8gQ29uc2lkZXJzIFJGQyA2MjY1IHNlY3Rpb24gNS4yOgoJCQkJLy8gLi4uCgkJCQkvLyAzLiAgSWYgdGhlIHJlbWFpbmluZyB1bnBhcnNlZC1hdHRyaWJ1dGVzIGNvbnRhaW5zIGEgJXgzQiAoIjsiKQoJCQkJLy8gICAgIGNoYXJhY3RlcjoKCQkJCS8vIENvbnN1bWUgdGhlIGNoYXJhY3RlcnMgb2YgdGhlIHVucGFyc2VkLWF0dHJpYnV0ZXMgdXAgdG8sCgkJCQkvLyBub3QgaW5jbHVkaW5nLCB0aGUgZmlyc3QgJXgzQiAoIjsiKSBjaGFyYWN0ZXIuCgkJCQkvLyAuLi4KCQkJCXN0cmluZ2lmaWVkQXR0cmlidXRlcyArPSAnPScgKyBhdHRyaWJ1dGVzW2F0dHJpYnV0ZU5hbWVdLnNwbGl0KCc7JylbMF07CgkJCX0KCgkJCXJldHVybiAoZG9jdW1lbnQuY29va2llID0ga2V5ICsgJz0nICsgdmFsdWUgKyBzdHJpbmdpZmllZEF0dHJpYnV0ZXMpOwoJCX0KCgkJZnVuY3Rpb24gZ2V0IChrZXksIGpzb24pIHsKCQkJaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHsKCQkJCXJldHVybjsKCQkJfQoKCQkJdmFyIGphciA9IHt9OwoJCQkvLyBUbyBwcmV2ZW50IHRoZSBmb3IgbG9vcCBpbiB0aGUgZmlyc3QgcGxhY2UgYXNzaWduIGFuIGVtcHR5IGFycmF5CgkJCS8vIGluIGNhc2UgdGhlcmUgYXJlIG5vIGNvb2tpZXMgYXQgYWxsLgoJCQl2YXIgY29va2llcyA9IGRvY3VtZW50LmNvb2tpZSA/IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOyAnKSA6IFtdOwoJCQl2YXIgaSA9IDA7CgoJCQlmb3IgKDsgaSA8IGNvb2tpZXMubGVuZ3RoOyBpKyspIHsKCQkJCXZhciBwYXJ0cyA9IGNvb2tpZXNbaV0uc3BsaXQoJz0nKTsKCQkJCXZhciBjb29raWUgPSBwYXJ0cy5zbGljZSgxKS5qb2luKCc9Jyk7CgoJCQkJaWYgKCFqc29uICYmIGNvb2tpZS5jaGFyQXQoMCkgPT09ICciJykgewoJCQkJCWNvb2tpZSA9IGNvb2tpZS5zbGljZSgxLCAtMSk7CgkJCQl9CgoJCQkJdHJ5IHsKCQkJCQl2YXIgbmFtZSA9IGRlY29kZShwYXJ0c1swXSk7CgkJCQkJY29va2llID0gKGNvbnZlcnRlci5yZWFkIHx8IGNvbnZlcnRlcikoY29va2llLCBuYW1lKSB8fAoJCQkJCQlkZWNvZGUoY29va2llKTsKCgkJCQkJaWYgKGpzb24pIHsKCQkJCQkJdHJ5IHsKCQkJCQkJCWNvb2tpZSA9IEpTT04ucGFyc2UoY29va2llKTsKCQkJCQkJfSBjYXRjaCAoZSkge30KCQkJCQl9CgoJCQkJCWphcltuYW1lXSA9IGNvb2tpZTsKCgkJCQkJaWYgKGtleSA9PT0gbmFtZSkgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9IGNhdGNoIChlKSB7fQoJCQl9CgoJCQlyZXR1cm4ga2V5ID8gamFyW2tleV0gOiBqYXI7CgkJfQoKCQlhcGkuc2V0ID0gc2V0OwoJCWFwaS5nZXQgPSBmdW5jdGlvbiAoa2V5KSB7CgkJCXJldHVybiBnZXQoa2V5LCBmYWxzZSAvKiByZWFkIGFzIHJhdyAqLyk7CgkJfTsKCQlhcGkuZ2V0SlNPTiA9IGZ1bmN0aW9uIChrZXkpIHsKCQkJcmV0dXJuIGdldChrZXksIHRydWUgLyogcmVhZCBhcyBqc29uICovKTsKCQl9OwoJCWFwaS5yZW1vdmUgPSBmdW5jdGlvbiAoa2V5LCBhdHRyaWJ1dGVzKSB7CgkJCXNldChrZXksICcnLCBleHRlbmQoYXR0cmlidXRlcywgewoJCQkJZXhwaXJlczogLTEKCQkJfSkpOwoJCX07CgoJCWFwaS5kZWZhdWx0cyA9IHt9OwoKCQlhcGkud2l0aENvbnZlcnRlciA9IGluaXQ7CgoJCXJldHVybiBhcGk7Cgl9CgoJcmV0dXJuIGluaXQoZnVuY3Rpb24gKCkge30pOwp9KSk7Cg==]]></data>
	</file>
	<file>
	  <filename>/lang</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2Vycm9yX3NlY3VyaXR5J10gPSAnSW52YWxpZCBmb3JtIHN1Ym1pc3Npb24gKHNvbWUgc2VjdXJpdHkgZGF0YSBpcyBtaXNzaW5nIG9yIGludmFsaWQpLic7CiRsYW5nWydpbmZvX3ZlcmlmeXBhZ2UnXSA9ICdTZWxlY3QgYSBjb250ZW50IHBhZ2UgdGhhdCB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgdmVyaWZpY2F0aW9uIGZvcm0nOwokbGFuZ1sncHJvbXB0X3ZlcmlmeXBhZ2UnXSA9ICdQYWdlIGZvciB2ZXJpZmljYXRpb24gZm9ybSc7CiRsYW5nWyd1c2VyX21vZGlmaWVkJ10gPSAnVXNlciBpbmZvIGVkaXRlZCc7CiRsYW5nWydlcnJvcl9tdXN0c3BlY2lmeXRleHR0ZW1wbGF0ZSddID0gJ1BsZWFzZSBzcGVjaWZ5IHNvbWUgY29udGVudCBmb3IgdGhlIHRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfcGFyYW1fcmVndGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNpZ251cCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIHRoZSBuYW1lIG9mIGEgbm9uLWRlZmF1bHQgdGVtcGxhdGUgdG8gdXNlLic7CiRsYW5nWydoZWxwX3BhcmFtX3ZlcmlmeXRlbXBsYXRlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSB2ZXJpZnkgYWN0aW9uIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIHRoZSBuYW1lIG9mIGEgbm9uLWRlZmF1bHQgdGVtcGxhdGUgdG8gdXNlLic7CiRsYW5nWydlcnJfc3Vic2NybW9udGgnXSA9ICdTb3JyeSwgbW9udGhseSBzdWJzY3JpcHRpb25zIGNhbiBvbmx5IHJlY3VyIG9uIDEsIDMsIDYsIG9yIDEyIG1vbnRoIGJvdW5kYXJpZXMnOwokbGFuZ1snZXJyX3N1YnNjcnllYXInXSA9ICdTb3JyeSwgeWVhcmx5IHN1YnNjcmlwdGlvbnMgY2FuIG9ubHkgcmVjdXIgZXZlcnkgMSB5ZWFyJzsKJGxhbmdbJ2Vycm9yX3N1YnNjcmliZV9tdWx0aXBsZSddID0gJ1NvcnJ5LCB0aGlzIG1vZHVsZSBkb2VzIG5vdCBhbGxvdyBjcmVhdGluZyBtdWx0aXBsZSBzdWJzY3JpcHRpb25zIGF0IHRoaXMgc3RhZ2UnOwokbGFuZ1snaW5mb19yZWdpc3RyYXRpb25fdGVtcGxhdGVzJ10gPSAnSGVyZSB5b3Ugd2lsbCBmaW5kIHRoZSB0ZW1wbGF0ZXMgdXNlZCB3aGVuIGEgdXNlciBmaXJzdCByZWdpc3RlcnMsIGFuZCBkaXNwbGF5ZWQgYWZ0ZXIgZm9ybSBzdWJtaXNzaW9uJzsKJGxhbmdbJ2Vycm9yX3VzZXJuYW1ldGFrZW5fbmVlZHZhbGlkYXRpb24nXSA9ICdIbW1tLiAgSXQgbG9va3MgbGlrZSBzb21lYm9keSAobWF5YmUgeW91KSBoYXMgYWxyZWFkeSByZWdpc3RlcmVkIHRoaXMgZW1haWwgYWRkcmVzcywgYnV0IG5vdCBmaW5pc2hlZCB0aGUgcmVnaXN0cmF0aW9uIHByb2Nlc3MuICAgUGxlYXNlIGNoZWNrIHlvdXIgZW1haWwnOwokbGFuZ1snbXNnX3VzZXJwdXNoZWQnXSA9ICdVc2VyIHB1c2hlZCB0byBNQU1TJzsKJGxhbmdbJ2luZm9fdmVyaWZpY2F0aW9uX3RlbXBsYXRlJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyB1c2VkIHRvIGJ1aWxkIHRoZSB2ZXJpZmljYXRpb24gZm9ybSB3aGVuIHVzZXJzIGFyZSByZXF1aXJlZCB0byB2ZXJpZnkgdGhlaXIgY3JlZGVudGlhbHMgdXNpbmcgYSBjb2RlIHNlbnQgdG8gdGhlbSB2aWEgZW1haWwuJzsKJGxhbmdbJ3ZlcmlmaWNhdGlvbl90ZW1wbGF0ZSddID0gJ1ZlcmlmaWNhdGlvbiBGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ3Byb21wdF9lZGl0dXNlcl9ncm91cHMnXSA9ICdUaGlzIHVzZXIgaXMgcmVnaXN0ZXJpbmcgdG8gdGhlIGZvbGxvd2luZyBncm91cHMnOwokbGFuZ1sncHJvbXB0X3NlbmRsaXZlJ10gPSAnUHVzaCB0aGlzIHVzZXIgdG8gdGhlIE1BTVMgbW9kdWxlJzsKJGxhbmdbJ3Byb21wdF9hdXRvY3JlYXRlZmV1J10gPSAnQXV0b21hdGljYWxseSBjcmVhdGUgdXNlcnMgaW4gdGhlIE1BTVMgbW9kdWxlJzsKJGxhbmdbJ2luZm9fYXV0b2NyZWF0ZWZldSddID0gJ0lmIGVuYWJsZWQsIHdoZW4gdGhlIHVzZXIgaXMgY3JlYXRlZCwgb3Igd2hlbiB0aGUgdXNlciBpcyB2ZXJpZmllZCAoZGVwZW5kaW5nIG9uIHRoZSBjb25maXJtYXRpb24gcHJlZmVyZXJuY2VzKSBVc2VycyB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgcHVzaGVkIHRvIHRoZSBNQU1TIG1vZHVsZSc7CiRsYW5nWydwcm9tcHRfYXV0b2NyZWF0ZW1hbXMnXSA9ICdBdXRvbWF0aWNhbGx5IGNyZWF0ZSB1c2VycyBpbiB0aGUgTUFNUyBtb2R1bGUnOwokbGFuZ1snaW5mb19hdXRvY3JlYXRlbWFtcyddID0gJ0lmIGVuYWJsZWQsIHdoZW4gdGhlIHVzZXIgaXMgY3JlYXRlZCwgb3Igd2hlbiB0aGUgdXNlciBpcyB2ZXJpZmllZCAoZGVwZW5kaW5nIG9uIHRoZSBjb25maXJtYXRpb24gcHJlZmVyZXJuY2VzKSBVc2VycyB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgcHVzaGVkIHRvIHRoZSBNQU1TIG1vZHVsZSc7CiRsYW5nWydyZWdpc3RyYXRpb25fdGVtcGxhdGUnXSA9ICdSZWdpc3RyYXRpb24gVGVtcGxhdGUnOwokbGFuZ1sncG9zdF9yZWdpc3RyYXRpb25fdGVtcGxhdGUnXSA9ICdQb3N0IFJlZ2lzdHJhdGlvbiBUZW1wbGF0ZSc7CiRsYW5nWydyZXNldCddID0gJ1Jlc2V0JzsKJGxhbmdbJ3Byb21wdF9ub3RpZnlfZW1haWxfc3ViamVjdCddID0gJ1N1YmplY3Qgb2YgTm90aWZpY2F0aW9uIEVtYWlsJzsKJGxhbmdbJ3Byb21wdF9ub3RpZnlfZW1haWxfdGVtcGxhdGUnXSA9ICdOb3RpZmlmaWNhdGlvbiBFbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9sb3N0ZW1haWwnXSA9ICdMb3N0IHJlZ2lzdHJhdGlvbiBjb25maXJtYXRpb24nOwokbGFuZ1snaW5mb19hbm90aGVybXNnX3Bhc3N3ZCddID0gJ0ZvciBzZWN1cml0eSBwdXJwb3NlcywgcGxlYXNlIHJlLWVudGVyIHlvdXIgcGFzc3dvcmQgKHR3aWNlKSB3aGVuIHJlZ2lzdGVyaW5nIGZvciBhZGRpdGlvbmFsIGdyb3Vwcyc7CiRsYW5nWydyZXR1cm4nXSA9ICdSZXR1cm4nOwokbGFuZ1snbXNnX2FkZGVkb3RoZXJncm91cCddID0gJ1lvdSBoYXZlIHN1Y2Nlc3NmdWxseSBiZWVuIGFkZGVkIHRvIHRoZSBvdGhlciBncm91cChzKSByZXF1ZXN0ZWQuJzsKJGxhbmdbJ2Vycm9yX2VtYWlsaW52YWxpZCddID0gJ1RoZSB2YWx1ZSBlbnRlcmVkIGZvciBhbiBlbWFpbCBhZGRyZXNzIGlzIGludmFsaWQnOzsKJGxhbmdbJ3RpdGxlX2Fub3RoZXJncm91cCddID0gJ1JlZ2lzdGVyIGZvciBhbm90aGVyIGdyb3VwJzsKJGxhbmdbJ2Vycm9yX2luY29ycmVjdHBhc3N3b3JkJ10gPSAnU29ycnksIHRoZSBwYXNzd29yZCB5b3UgZW50ZXJlZCBpcyBpbmNvcnJlY3QuJzsKJGxhbmdbJ3RlbXBsYXRlX3NhdmVkJ10gPSAnVGVtcGxhdGUgc2F2ZWQnOwokbGFuZ1sndGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSc7CiRsYW5nWydpbmZvX2Fub3RoZXJncm91cF90ZW1wbGF0ZSddID0gJ1RoaXMgdGVtcGxhdGUgaXMgdXNlZCBieSB0aGUgJnF1b3Q7YW5vdGhlcmdyb3VwJnF1b3Q7IGFjdGlvbiB0byBhbGxvdyBhbiBleGlzdGluZyBNQU1TIHVzZXIgdG8gcmVnaXN0ZXIgdG8gYW4gYWRpdGlvbmFsIGdyb3VwLic7CiRsYW5nWydhbm90aGVyZ3JvdXBfdGVtcGxhdGUnXSA9ICdBbm90aGVyIEdyb3VwIFRlbXBsYXRlJzsKJGxhbmdbJ2Vycm9yX25vdmFsaWRncm91cHMnXSA9ICdObyB2YWxpZCBncm91cHMgZm91bmQuJzsKJGxhbmdbJ211bHRpcGxlZ3JvdXBzJ10gPSAnTXVsdGlwbGUgR3JvdXBzJzsKJGxhbmdbJ3NpbmdsZWdyb3VwJ10gPSAnU2luZ2xlIEdyb3VwJzsKJGxhbmdbJ25vJ10gPSAnTm8nOwokbGFuZ1snZXJyb3JfbXVsdGlwbGVwa2dzJ10gPSAnTXVsdGlwbGUgcGFja2FnZXMgc2VsZWN0ZWQsIGJ1dCBvbmx5IG9uZSBpcyBhbGxvd2VkJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXNzd29yZCddID0gJ1BsZWFzZSBzcGVjaWZ5IGEgcGFzc3dvcmQnOwokbGFuZ1snZXJyb3JfbWlzc2luZ2NvZGUnXSA9ICdUaGUgcmVnaXN0cmF0aW9uIHZhbGlkYXRpb24gY29kZSBpcyBtaXNzaW5nJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdlbWFpbCddID0gJ0VtYWlsIGFkZHJlc3MgaXMgbWlzc2luZyc7CiRsYW5nWydldmVudGhhbmRsZXJzX2FkZGVkJ10gPSAnRXZlbnQgSGFuZGxlcnMgQWRkZWQnOwokbGFuZ1sncHJlZmVyZW5jZXNfdXBkYXRlZCddID0gJ1ByZWZlcmVuY2VzIFVwZGF0ZWQnOwokbGFuZ1snc2V0dXBfY2FydF9ldmVudHMnXSA9ICdTZXR1cCBDYXJ0IEV2ZW50cyc7CiRsYW5nWydzZXR1cCddID0gJ1NldHVwJzsKJGxhbmdbJ2luZm9fc2V0dXBfY2FydF9ldmVudHMnXSA9ICdPY2Nhc2lvbmFsbHksIHdoZW4gdXBncmFkaW5nIGZyb20gYW4gb2xkZXIgdmVyc2lvbiwgY2FydCBldmVudHMgaGFuZGxlcnMgYXJlIG5vdCBhZGRlZC4gIENsaWNrIHRoaXMgYnV0dG9uIHRvIGVuc3VyZSB0aGF0IHRoZXkgYXJlLiAgVGhpcyBpcyBpbXBvcnRhbnQgaWYgdXNpbmcgcGFpZCByZWdpc3RyYXRpb25zJzsKJGxhbmdbJ2luZm9fZm9yY2VfZW1haWxfdHdpY2UnXSA9ICdJZiB0aGlzIG9wdGlvbiBpcyBlbmFibGVkLCB0aGUgdXNlciB3aWxsIGJlIHJlcXVpcmVkIHRvIGVudGVyIHRoZWlyIHVzZXJuYW1lIChvciBlbWFpbCBhZGRyZXNzKSB0d2ljZSwgYW5kIHRob3NlIHR3byB2YWx1ZXMgd2lsbCBiZSBjaGVja2VkIHRvIGJlIGlkZW50aWNhbCc7CiRsYW5nWydwcm9tcHRfcmVkaXJlY3RfcGFpZHBrZyddID0gJ1BhZ2UgSUQvQWxpYXMgdG8gcmVkaXJlY3QgdG8gZm9yIHBhaWQgcGFja2FnZXMnOwokbGFuZ1snaW5mb19yZWRpcmVjdF9wYWlkcGtnJ10gPSdBIHNtYXJ0eSB0ZW1wbGF0ZSB0aGF0IGRldGVybWluZXMgdGhlIHBhZ2VpZCBvciBhbGlhcyBvZiBhIHBhZ2UgdG8gcmVkaXJlY3QgdG8gZm9yIHBhaWQgcGFja2FnZXMuIFR5cGljYWxseSBhIHVzZXIgdGhhdCBpcyByZWdpc3RlcmluZyBmb3IgeW91ciBzaXRlIG1heSB3YW50IHRvIGdvIGRpcmVjdGx5IHRvIHlvdXIgY2hlY2tvdXQgcGFnZSwgb3IgdG8gdGhlIHZpZXcgY2FydCBwYWdlLic7CiRsYW5nWydpbmZvX2NhcnRpdGVtX3N1bW1hcnlfdHBsJ10gPSAnQSBzbWFydHkgdGVtcGxhdGUgdGhhdCBkZXRlcm1pbmVzIHRoZSB2YWx1ZSBvZiB0aGUgc3VtbWFyeSB0aGF0IGFwcGVhcnMgd2l0aCB0aGlzIGxpbmUgaXRlbSBpbiB0aGUgY2FydCwgYW5kIGR1cmluZyB0aGUgY2hlY2tvdXQgcHJvY2Vzcy4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCBhIGRlZmF1bHQgaXMgdXNlZC4gIFZhbGlkIHNtYXJ0eSB2YXJpYWJsZXMgYXJlIHskcGtnfSA8ZW0+KGFycmF5KTwvZW0+LiAgeyRza3V9LCB7JHVzZXJuYW1lfSwgeyR0bXB1aWR9IDxlbT4odGhlIHVzZXJzIHRlbXBvcmFyeSB1c2VyIGlkKTwvZW0+LiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IHNvbWUgcGF5bWVudCBnYXRld2F5cyBtYXkgb25seSBzdXBwb3J0IGEgZml4ZWQgbnVtYmVyIG9mIGNoYXJhY3RlcnMgZm9yIHRoZSBzdW1tYXJ5Lic7CiRsYW5nWydwcm9tcHRfY2FydGl0ZW1fc3VtbWFyeV90cGwnXSA9ICdDYXJ0IEl0ZW0gU3VtbWFyeSBUZW1wbGF0ZSc7CiRsYW5nWydwYWlkX3JlZ2lzdHJhdGlvbiddID0gJ1BhaWQgUmVnaXN0cmF0aW9uJzsKJGxhbmdbJ2luZm9fc2tpcF9maW5hbF9tc2cnXSA9ICdUaGlzIG9wdGlvbiBkZXRlcm1pbnMgd2V0aGVyIHRoZSByZWdpc3RyYXRpb24gY29tcGxldGUgbWVzc2FnZSBzaG91bGQgYmUgZGlzcGxheWVkIHRvIHRoZSB1c2VyIGFmdGVyIHJlZ2lzdHJhdGlvbi4nOwokbGFuZ1snbm90aWZpY2F0aW9ucyddID0gJ05vdGlmaWNhdGlvbnMnOwokbGFuZ1snaW5mb19sb2dpbl9hZnRlcnZlcmlmeSddID0gJ1RoaXMgb3B0aW9uIHdpbGwgYXV0b21hdGljYWxseSBsb2cgdGhlIHZpc2l0b3IgaW50byB0aGUgc2l0ZSBhZnRlciB0aGUgdXNlciBoYXMgYmVlbiBwdXNoZWQgdG8gdGhlIEZyb250ZW5kIFVzZXJzIG1vZHVsZS4gIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3QgaWYgYWxsb3dpbmcgcGFpZCByZWdpc3RyYXRpb24nOwokbGFuZ1snaW5mb19lbWFpbF9jb25maXJtYXRpb24nXSA9ICdUaGlzIG9wdGlvbiBzZW5kcyBhbiBlbWFpbCB0byB0aGUgcmVnaXN0ZXJlZCB1c2VyIGFjY291bnQgd2l0aCBhIGxpbmsgdGhhdCBhbGxvd3MgdmVyaWZ5aW5nIHRoYXQgdGhlIGFjY291bnQgaW5mb3JtYXRpb24gZW50ZXJlZCBpcyB2YWxpZC48YnIvPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyBvcHRpb24gc2hvdWxkIG5vdCBiZSB1c2VkIHdoZW4gYWxsb3dpbmcgcGFpZCByZWdpc3RyYXRpb25zJzsKJGxhbmdbJ2luZm9fb25lY2xpY2tfY29uZmlybWF0aW9uJ10gPSAnVGhpcyBvcHRpb24gYWxsb3dzIHRoZSB1c2VyIHRvIHZlcmlmeSB0aGVpciBhY2NvdW50IHdpdGggZGlyZWN0bHkgY2xpY2tpbmcgb24gdGhlIGFjdGl2YXRpb24gbGluayBpbiB0aGUgZW1haWwnOwokbGFuZ1sncHJvbXB0X3JlZ2lzdHJhdGlvbl9zZXR0aW5ncyddID0gJ1JlZ2lzdHJhdGlvbiBTZXR0aW5ncyc7CiRsYW5nWydub25lJ10gPSAnTm9uZSc7CiRsYW5nWydtb250aCddID0gJ01vbnRoJzsKJGxhbmdbJ3llYXInXSA9ICdZZWFyJzsKJGxhbmdbJ3N1YnNjcmlwdGlvbl9leHBpcmVzJ10gPSAnU3Vic2NyaXB0aW9uIHJlbmV3cyBldmVyeSc7CiRsYW5nWydlcnJvcl9wb2xpY3ljYW50YWRkJ10gPSAnVGhlIHBvbGljeSBvZiB0aGlzIHdlYnNpdGUgZG9lcyBub3QgYWxsb3cgYWRkaW5nIHRoaXMgaXRlbSB0byB5b3VyIGNhcnQuICBQbGVhc2UgY29udGFjdCB0aGUgc2l0ZSBhZG1pbmlzdHJhdG9yJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19zZWxlY3RfcGtnJ10gPSAnQWxsb3cgdXNlcnMgdG8gc2VsZWN0IGEgcGFja2FnZSAoZ3JvdXApIHRvIHJlZ2lzdGVyIHRvJzsKJGxhbmdbJ2luZm9fYWxsb3dzZWxlY3Rwa2cnXSA9ICdZb3UgbWF5IHdpc2ggdG8gYWxsb3cgeW91ciB1c2VycyB0byBzZWxlY3QgYW4gTUFNUyBncm91cCB0byByZWdpc3RlciB0by4gIFRoZXNlIGdyb3VwcyBhcmUgdGllZCB0byBwYWNrYWdlcyAoZm9yIGVjb21tZXJjZSBwdXJwb3NlcykuICBIb3dldmVyIGlmIG5vdCB1c2luZyB0aGUgRS1jb21tZXJjZSBmdW5jdGlvbmFsaXR5LCBwcmljZSBkYXRhIGFuZCBleHBpcnkgb3B0aW9ucyB3aWxsIG5vdCBiZSB2aXNpYmxlLic7CiRsYW5nWydlcnJvcl9ub3BrZ3MnXSA9ICdObyBwYWNrYWdlcyBoYXZlIGJlZW4gZGVmaW5lZCB0byBhbGxvdyB0aGUgY3VzdG9tZXIgdG8gcmVnaXN0ZXIgdG8nOwokbGFuZ1snc2VscGtnX3RlbXBsYXRlJ10gPSAnU2VsZWN0IFBhY2thZ2UgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfc2VscGtnX3RlbXBsYXRlJ10gPSAnU2VsZWN0IFN1YnNjcmlwdGlvbiBQYWNrYWdlIFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fc2VscGtnX3RlbXBsYXRlJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyB1c2VkIHdoZW4gcGFpZCBzdWJzY3JpcHRpb25zIGFyZSBlbmFibGVkIHRvIGFsbG93IHRoZSB1c2VyIHRvIHNlbGVjdCBhIHBhaWQgc3Vic2NyaXB0aW9uIHBhY2thZ2UnOwokbGFuZ1snZXJyb3JfcGtnY29zdCddID0gJ1BhY2thZ2UgQ29zdCBpcyBJbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX3BrZ2V4aXN0cyddID0gJ0EgcGFja2FnZSB3aXRoIGEgJXMgb2YgJXMgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snZXJyb3JfYWxyZWFkeXZlcmlmaWVkJ10gPSAnVXNlciBoYXMgYWxyZWFkeSBiZWVuIHZlcmlmaWVkIG9yIGlzIG5vdCByZWdpc3RlcmVkJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnRGVzY3JpcHRpb24nOwokbGFuZ1snZWRpdF9wYWlkcGtnJ10gPSAnRWRpdCBQYWNrYWdlJzsKJGxhbmdbJ2FkZF9wYWlkcGtnJ10gPSAnQWRkIFBhY2thZ2UnOwokbGFuZ1snbmFtZSddID0gJ05hbWUnOwokbGFuZ1sncHJvbXB0J10gPSAnUHJvbXB0JzsKJGxhbmdbJ2dyb3VwJ10gPSAnR3JvdXAnOwokbGFuZ1snY29zdCddID0gJ0Nvc3QnOwokbGFuZ1sncmVncGtnc190YWInXSA9ICdSZWdpc3RyYXRpb24gUGFja2FnZXMnOwokbGFuZ1sncHJvbXB0X2FsbG93X3BhaWRfcmVnaXN0cmF0aW9uJ10gPSAnUmVxdWlyZSBtZW1iZXJzIHRvIHBheSBmb3IgcmVnaXN0cmF0aW9uIHRvIHlvdXIgc2l0ZSc7CiRsYW5nWydpbmZvX2FsbG93X3BhaWRfcmVnaXN0cmF0aW9uJ10gPSAnUGxlYXNlIGFsc28gc2VsZWN0IFNlbGZyZWdpc3RyYXRpb24gYXMgYSBzb3VyY2UgbW9kdWxlIGZyb20gQ0dFY29tbWVyY2VCYXNlLCBhbmQgY29uZmlndXJlIHRoZSAmcXVvdDtQYWlkIFJlZ2lzdHJhdGlvbiZxdW90OyBUYWIuICBBZGRpdGlvbmFsbHksIHlvdSBtdXN0IGVuYWJsZSBwYWNrYWdlIHNlbGVjdGlvbiBhYm92ZS4nOwokbGFuZ1snZW1haWwtcGFzc3dvcmQnXSA9ICdFbWFpbCBBZGRyZXNzIGFuZCBQYXNzd29yZCc7CiRsYW5nWyd1c2VybmFtZS1wYXNzd29yZCddID0gJ1VzZXJuYW1lIGFuZCBQYXNzd29yZCc7CiRsYW5nWydoZWxwX3BhcmFtX2FsbG93b3ZlcndyaXRlJ10gPSA8PDxFT1QKVGhpcyBwYXJhbWV0ZXIgYWxsb3dzIG92ZXJ3cml0aW5nIGV4aXN0aW5nIE1BTVMgdXNlcnMuIEluIGNvbmp1bmN0aW9uIHdpdGggdGhlIHByZWZlcmVuY2VzIGluIHRoZSBTZWxmUmVnaXN0cmF0aW9uIGFkbWluIHBhbmVsIHlvdSBjYW4gc3BlY2lmeSB3aGF0IGRhdGEgd2lsbCBiZSB1c2VkIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IGEgdXNlciBhY2NvdW50JzsKRU9UOwokbGFuZ1sncHJvbXB0X3JlZ19hZGRpdGlvbmFsZ3JvdXBzJ10gPSAnQWxsb3cgZXhpc3RpbmcgdXNlcnMgdG8gcmVnaXN0ZXIgZm9yIGFkZGl0aW9uYWwgZ3JvdXBzPyc7CiRsYW5nWydwcm9tcHRfYWRkaXRpb25hbGdyb3Vwc19zZXR0aW5ncyddID0gJ0FkZGl0aW9uYWwgR3JvdXBzIFNldHRpbmdzJzsKJGxhbmdbJ3Byb21wdF9nZW5lcmFsX3NldHRpbmdzJ10gPSAnR2VuZXJhbCBTZXR0aW5ncyc7CiRsYW5nWydwcm9tcHRfc2VjdXJpdHlfc2V0dGluZ3MnXSA9ICdTZWN1cml0eSBTZXR0aW5ncyc7CiRsYW5nWydlcnJvcl91bmlxdWVmaWVsZCddID0gJ1RoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yICZxdW90OyVzJnF1b3Q7IGlzIGFscmVhZHkgaW4gdXNlIGJ5IGFub3RoZXIgcmVnaXN0ZXJlZCB1c2VyJzsKJGxhbmdbJ2hlbHBfcGFyYW1fYWN0aW9uJ10gPSA8PDxFT1QKVGhpcyBwYXJhbWV0ZXIgZGljdGF0ZXMgdGhlIGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLgo8dWw+CiAgPGxpPjxzdHJvbmc+ZGVmYXVsdDwvc3Ryb25nPgogICA8cD5UaGlzIGlzIHRoZSBkZWZhdWx0IGFjdGlvbi4gIEJhc2VkIG9uIHRoZSA8ZW0+KGRlcHJlY2F0ZWQ+PC9lbT4gbW9kZSBwYXJhbWV0ZXIgPGVtPihzZWUgYmVsb3cpPC9lbT4gaXQgd2lsbCBkaXNwbGF5IGVpdGhlciB0aGUgdXNlciByZWdpc3RyYXRpb24gZm9ybSwgdGhlIHZlcmlmeSBmb3JtLCBvciBhbm90aGVyIGZvcm0uPC9saT4KICA8L2xpPgogIDxsaT5yZWdpc3Rlcl9saW5rCiAgIDxwPkRpc3BsYXkgYSBsaW5rIHRvIHRoZSB1c2VyIHJlZ2lzdHJhdGlvbiBmb3JtLiA8ZW0+KGRlcHJlY2F0ZWQpPC9lbT48L3A+CiAgPC9saT4KICA8bGk+YW5vdGhlcmdyb3VwIC0gRm9yIHVzZXJzIHdobyBhcmUgbG9nZ2VkIGluIHRvIHRoZSBNQU1TIG1vZHVsZSwgdGhpcyBhY3Rpb24gYWxsb3dzIHRoZW0gKHN1YmplY3QgdG8gcGVybWlzc2lvbikgdG8gc2lnbiB1cCB0byBhbm90aGVyIG5hbWVkIE1BTVMgZ3JvdXAuPC9saT4KPC91bD4KRU9UOwokbGFuZ1snaGVscF9wYXJhbV9kZXN0cGFnZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgYWN0aW9uPXJlZ2lzdGVyX2xpbmssIGFuZCB0aGUgZGVmYXVsdCBhY3Rpb24uIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIChieSBhbGlhcyBvciBwYWdlIGlkKSBhIGRlc3RpbmF0aW9uIHBhZ2UgZm9yIHRoZSBsaW5rIG9yIHRvIHJlZGlyZWN0IHRvIGFmdGVyIHJlZ2lzdHJhdGlvbiBpcyBjb21wbGV0ZS4nOwokbGFuZ1snaGVscF9wYXJhbV9ncm91cCddID0gJ0FwcGxpY2FibGUgdG8gKGFuZCByZXF1aXJlZCBmb3IpIHRoZSByZWdpc3Rlcl9saW5rLCByZWdpc3Rlciwgb3IgYW5vdGhlcmdyb3VwIGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgZ3JvdXAgaW4gd2hpY2ggdGhlIHVzZXIgd2lsbCBiZSByZWdpc2VyZWQnOwokbGFuZ1snaGVscF9wYXJhbV9vbmx5aHJlZiddID0gJ1VzZWQgb25seSBpbiB0aGUgYWN0aW9uPXJlZ2lzdGVyX2xpbmssIHNldHRpbmcgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoYXQgdGhlIG91dHB1dCBzaG91bGQgb25seSBjb250YWluIHRoZSB1cmwgcG9ydGlvbiBvZiB0aGUgbGluayc7CiRsYW5nWydoZWxwX3BhcmFtX2xpbmt0ZXh0J10gPSAnVXNlZCBvbmx5IGluIHRoZSBhY3Rpb25fcmVnaXN0ZXJfbGluayBpdCBhbGxvd3Mgc3BlY2lmeWluZyB0aGUgdGV4dCBmb3IgdGhlIGdlbmVyYXRlZCBsaW5rLiAgVGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBpZiB0aGUgb25seWhyZWYgcGFyYW1ldGVyIGlzIHNwZWNpZmllZC4nOwokbGFuZ1snaGVscF9wYXJhbV9ub2lubGluZSddID0gJ0FwcGxpY2FibGUgdG8gbWFueSBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBvdmVycmlkZXMgdGhlIHByZWZlcmVuY2UgaW4gdGhlIGFkbWluIHBhbmVsIHRvIGluZGljYXRlIHRoYXQgdGhlIG91dHB1dCBmcm9tIHRoZSBnZW5lcmF0ZWQgbGluayBvciBmb3JtIHNob3VsZCBub3QgYmUgZGlzcGxheWVkIGlubGluZS4gIGkuZTogbm9pbmxpbmU9MSBvbiB0aGUgZGVmYXVsdCBhY3Rpb24gd2lsbCBpbmRpY2F0ZSB0aGF0IHRoZSBvdXRwdXQgdGV4dCB3aWxsIHJlcGxhY2UgdGhlIHtjb250ZW50fSB0YWcuJzsKJGxhbmdbJ2hlbHBfcGFyYW1fbm9maW5hbG1lc3NhZ2UnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQsIHNpZ251cCBhY3Rpb24uIFRoaXMgcGFyYW1ldGVyIGFsbG93cyBpbmRpY2F0aW5nIHRoYXQgdGhlIGZpbmFsIHJlZ2lzdHJhdGlvbiBjb25maXJtYXRpb24gbWVzc2FnZSBzaG91bGQgbm90IGJlIGRpc3BsYXllZC4nOwokbGFuZ1snZXJyb3Jfbm9yZWdpc3RlciddID0gJ1lvdSBjYW5ub3QgcmVnaXN0ZXIgdG8gYmVjb21lIGEgbWVtYmVyIG9mIHRoaXMgdXNlciBncm91cCc7CiRsYW5nWydwcm9tcHRfbm9yZWdpc3RlciddID0gJ0Fic29sdXRlbHkgZm9yYmlkIHVzZXJzIHRvIHJlZ2lzdGVyIHRvIHRoZXNlIGdyb3Vwcyc7CiRsYW5nWydlcnJvcl9ub3NlY29uZGVtYWlsYWRkcmVzcyddID0gJ1lvdSBkaWQgbm90IGVudGVyIHlvdXIgZW1haWwgYWRkcmVzcyB0d2ljZSc7CiRsYW5nWydwdXNoX2xpdmUnXSA9ICdQdXNoIHRoaXMgdXNlciBpbnRvIE1BTVMnOwokbGFuZ1snYXJleW91c3VyZV9wdXNodXNlciddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBwdXNoIHRoaXMgdXNlciBpbnRvIE1BTVMgd2l0aG91dCBjb21wbGV0aW5nIHRoZSB2YWxpZGF0aW9uIHByb2Nlc3M/JzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0RlbGV0ZSc7CiRsYW5nWydsb2dpbl9hZnRlcnZlcmlmeSddID0gJ0F1dG9tYXRpY2FsbHkgbG9nIHRoZSB1c2VyIGluIHRvIE1BTVMgYWZ0ZXIgdGhlIHZlcmlmaWNhdGlvbiBzdGVwIGlzIGNvbXBsZXRlJzsKJGxhbmdbJ3NraXBfZmluYWxfbXNnJ10gPSAnRG9uXCd0IGRpc3BsYXkgdGhlIGZpbmFsIG1lc3NhZ2UgYWZ0ZXIgcmVnaXN0cmF0aW9uJzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVycmVnaXN0ZXInXSA9ICdQYWdlSUQvQWxpYXMgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgcmVnaXN0cmF0aW9uIGlzIGNvbXBsZXRlJzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVydmVyaWZ5J10gPSAnUGFnZUlEL0FsaWFzIHRvIHJlZGlyZWN0IHRvIGFmdGVyIHZlcmlmaWNhdGlvbiBzdGVwIGlzIGNvbXBsZXRlJzsKJGxhbmdbJ3VzZV9pbmxpbmVfZm9ybXMnXSA9ICdVc2UgSW5saW5lIEZvcm1zIDxlbT4oZm9ybSBvdXRwdXQgcmVwbGFjZXMgdGhlIG1vZHVsZSB0YWcsIG5vdCBhbGwgb2YgY29udGVudCk8L2VtPic7CiRsYW5nWydlcnJvcl9jb2Rlc2RvbnRtYXRjaCddID0gJ1RoZSB2YWxpZGF0aW9uIGtleSBzdXBwbGllZCBpcyBpbnZhbGlkJzsKJGxhbmdbJ2V2ZW50X2Rlc2NyaXB0aW9uX2JlZm9yZU5ld1VzZXInXSA9ICdBbiBldmVudCBzZW50IGFmdGVyIGEgbmV3IHVzZXIgaGFzIGNvbXBsZXRlZCB0aGUgcmVnaXN0cmF0aW9uIGZvcm0gYnV0IGJlZm9yZSB0aGUgdGVtcG9yYXJ5IHVzZXIgY3JlZGVudGlhbHMgYXJlIHN0b3JlZC4gIFRoaXMgY2FuIGJlIHVzZWQgdG8gZnVydGhlciB2YWxpZGF0ZSB0aGUgdXNlcic7CiRsYW5nWydldmVudF9oZWxwX2JlZm9yZU5ld1VzZXInXSA9ICcKPHA+QW4gZXZlbnQgc2VudCBhZnRlciBhIHVzZXIgaGFzIGNvbXBsZXRlZCB0aGUgcmVnaXN0cmF0aW9uIGZvcm0sIGJ1dCBiZWZvcmUgdGhlIHRlbXBvcmFyeSB1c2VyIGNyZWRlbnRpYWxzIGFyZSBzdG9yZWQuICBUaGlzIGV2ZW50IGNhbiBiZSB1c2VkIHRvIGZ1cnRoZXIgdmFsaWRhdGUgdGhlIHVzZXIuPC9wPgo8aDQ+UGFyYW1ldGVyczo8L2g0Pgo8dWw+CiAgPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIG5ldyB1c2VycyBzZWxlY3RlZCB1c2VybmFtZS48L2xpPgogIDxsaT48ZW0+ZW1haWw8L2VtPiAtIFRoZSBuZXcgdXNlcnMgZW1haWwgYWRkcmVzcy48L2xpPgogIDxsaT48ZW0+cGFzc3dvcmQ8L2VtPiAtIFRoZSBuZXcgdXNlcnMgcGFzc3dvcmQuPC9saT4KICA8bGk+PGVtPnBhc3M8L2VtPiAtIEEgcmVmZXJlbmNlIHRvIGEgYm9vbGVhbiB2YWx1ZSB0aGF0IGluZGljYXRlcyB0aGF0IHRoZSB1c2VyIHBhc3NlcyB2YWxpZGF0aW9uLiAgQ2hhbmdpbmcgdGhpcyB0byBmYWxzZSB3aWxsIGNhdXNlIGEgdmFsaWRhdGlvbiBtZXNzYWdlIHRvIGJlIGRpc3BsYXllZC48L2xpPgogIDxsaT48ZW0+bWVzc2FnZTwvZW0+IC0gQSByZWZlcmVuY2UgdG8gYSBzdHJpbmcgYWxsb3dpbmcgaGFuZGxlcnMgdG8gcHJvdmlkZSBhIG1lc3NhZ2UgYWJvdXQgdmFsaWRhdGlvbiBpZiB0aGUgcGFzcyB2YXJpYWJsZSAoYWJvdmUpIGlzIGZhbHNlLjwvbGk+CjwvdWw+Cic7CiRsYW5nWydldmVudF9kZXNjcmlwdGlvbl9vbk5ld1VzZXInXSA9ICdBbiBldmVudCBpbmRpY2F0aW5nIHRoYXQgYSBuZXcgdXNlciBoYXMgY29tcGxldGVkIHRoZSByZWdpc3RyYXRpb24gZm9ybSwgYW5kIGEgdGVtcG9yYXJ5IGFjY291bnQgaGFzIGJlZW4gY3JlYXRlZC4nOwokbGFuZ1snZXZlbnRfZGVzY3JpcHRpb25fb25Vc2VyUmVnaXN0ZXJlZCddID0gJ0FuIGV2ZW50IGluZGljYXRpbmcgdGhhdCBhIHVzZXIgaGFzIHZlcmlmaWVkIGhpcyBpbmZvcm1hdGlvbiBhbmQgaXMgbm93IGNvbXBsZXRlbHkgY3JlYXRlZCBpbiBNQU1TJzsKJGxhbmdbJ2V2ZW50X2hlbHBfb25OZXdVc2VyJ10gPSAnCjxwPkFuIGV2ZW50IGluZGljYXRpbmcgdGhhdCBhIG5ldyB1c2VyIGhhcyBjb21wbGV0ZWQgdGhlIHJlZ2lzdHJhdGlvbiBmb3JtPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIG5ldyB1c2VycyBzZWxlY3RlZCB1c2VybmFtZTwvbGk+CjxsaT48ZW0+ZW1haWw8L2VtPiAtIFRoZSBuZXcgdXNlcnMgZW1haWwgYWRkcmVzczwvbGk+CjwvdWw+Cic7CiRsYW5nWydldmVudF9oZWxwX29uVXNlclJlZ2lzdGVyZWQnXSA9ICcKPHA+QW4gZXZlbnQgaW5kaWNhdGluZyB0aGF0IGEgdXNlciBoYXMgYmVlbiB2ZXJpZmllZCBhbmQgaXMgbm93IHJlZ2lzdGVyZWQgd2l0aCBNQU1TIHVzZXJzPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIHJlZ2lzdGVyZWQgdXNlcm5hbWU8L2xpPgo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgbmV3IHVzZXJzIHVpZDwvbGk+CjwvdWw+Cic7CiRsYW5nWydjb25maXJtX3N1Ym1pdHByZWZzJ10gPSAnQ2hhbmdlIGFkbWluIHByZWZlcmVuY2VzPyc7CiRsYW5nWydpbmZvX2FkbWluX3Bhc3N3b3JkJ10gPSAnTGVhdmUgdGhpcyBmaWVsZCBlbXB0eSB0byBwcmVzZXJ2ZSB0aGUgdXNlciBwYXNzd29yZCc7CiRsYW5nWydpbmZvX2FkbWluX3JlcGVhdHBhc3N3b3JkJ10gPSAnTGVhdmUgdGhpcyBmaWVsZCBlbXB0eSB0byBwcmVzZXJ2ZSB0aGUgdXNlciBwYXNzd29yZCc7CiRsYW5nWydlcnJvcl9lbWFpbGRvZXNub3RtYXRjaCddID0gJ0VtYWlsIGFkZHJlc3NlcyBkbyBub3QgbWF0Y2gnOwokbGFuZ1snZm9yY2VfZW1haWxfdHdpY2UnXSA9ICdSZXF1aXJlIHVzZXJzIHRvIGVudGVyIHRoZWlyIGVtYWlsIGFkZHJlc3MgdHdpY2UnOwokbGFuZ1snYWdhaW4nXSA9ICdhZ2Fpbic7CiRsYW5nWydkZWxldGVzZWx1c2VycyddID0gJ0RlbGV0ZSBTZWxlY3RlZCBVc2Vycyc7CiRsYW5nWydlcnJvcl9ub3Byb3BkZWZucyddID0gJ05vIHByb3BlcnR5IGRlZmluaXRpb25zLCBvciBwcm9ibGVtIHJldHJlaXZpbmcgdGhlbSBmcm9tIHRoZSBkYXRhYmFzZSc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcyddID0gJ05vIGdyb3Vwcywgb3IgcHJvYmxlbSByZXRyZWl2aW5nIGdyb3VwIGxpc3QnOwokbGFuZ1snZXJyb3JfZGJlcnJvciddID0gJ0RhdGFiYXNlIGVycm9yJzsKJGxhbmdbJ3RpdGxlX3Bvc3Rfc2VuZGFub3RoZXJlbWFpbF90ZW1wbGF0ZSddID0gJ1Bvc3QgTG9zdCBFbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9zZW5kYW5vdGhlcmVtYWlsX3RlbXBsYXRlJ10gPSAnTG9zdCBFbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWydjbGlja2hlcmUnXSA9ICdDbGljayBIZXJlJzsKJGxhbmdbJ21zZ19zZW5kYW5vdGhlcmVtYWlsJ10gPSAnSSBoYXZlIGFscmVhZHkgY29tcGxldGVkIHRoZSByZWdpc3RyYXRpb24gZm9ybSwgYnV0IGRpZCBub3QgcmVjZWl2ZSBhbiBlbWFpbCwgY2FuIHlvdSBwbGVhc2UgcmUtc2VuZCBpdCc7CiRsYW5nWydzZW5kYW5vdGhlcmVtYWlsX3RlbXBsYXRlJ10gPSAnTG9zdCBFbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWydpbmZvX3VzZXJ2ZXJpZmllZCddID0gJ0EgbmV3IHVzZXIgaGFzIGJlZW4gYWRkZWQgdG8gTUFNUyc7CiRsYW5nWydlZGl0J10gPSAnRWRpdCc7CiRsYW5nWyd1bmtub3duJ10gPSAnVW5rbm93bic7CiRsYW5nWydzZWxlY3QnXSA9ICdTZWxlY3QnOwokbGFuZ1snY2hlY2tfYWxsJ10gPSAnQ2hlY2sgQWxsJzsKJGxhbmdbJ3VuY2hlY2tfYWxsJ10gPSAnVW5jaGVjayBBbGwnOwokbGFuZ1snc2VuZF9hZGp1c3RtZW50ZW1haWwnXSA9ICdTZW5kIGFuIGVtYWlsIHRvIHRoZSB1c2VyJzsKJGxhbmdbJ3R4dF9hZGp1c3RtZW50ZW1haWwnXSA9ICcoaW5mb3JtcyB0aGUgdXNlciB0aGF0IHRoZWlyIGFjY291bnQgaGFzIGJlZW4gYWRqdXN0ZWQnOwokbGFuZ1sndHh0X2NoYW5nZXBhc3N3b3JkJ10gPSAnRmlsbCBpbiB0aGVzZSBmaWVsZHMgdG8gY2hhbmdlIHRoZSB1c2VyIHBhc3N3b3JkJzsKJGxhbmdbJ2VkaXR1c2VyJ10gPSAnRWRpdCBVc2VyJzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRldXNlciddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBwYXJ0aWFsbHkgcmVnaXN0ZXJlZCB1c2VyPyc7CiRsYW5nWydoZHJfdXNlcmlkJ10gPSAnVXNlcklEJzsKJGxhbmdbJ2hkcl91c2VybmFtZSddID0gJ1VzZXJuYW1lJzsKJGxhbmdbJ2hkcl9ncnBuYW1lJ10gPSAnR3JvdXAnOwokbGFuZ1snaGRyX3N0YXR1cyddID0gJ1ZlcmlmaWVkJzsKJGxhbmdbJ2hkcl9jcmVhdGVkJ10gPSAnQ3JlYXRlZCc7CiRsYW5nWydoZHJfZW1haWwnXSA9ICdFbWFpaSc7CiRsYW5nWydVc2VyU3RhdHVzJ10gPSAnVmVyaWZpZWQnOwokbGFuZ1sndXNlcnNmb3VuZCddID0gJ1VzZXJzIGZvdW5kIDxlbT4oQSBtYXhpbXVtIG9mIDI1MCB3aWxsIGJlIGRpc3BsYXllZCwgdGhvdWdoIG1vcmUgbWF5IGV4aXN0IGluIHRoZSBkYXRhYmFzZS4pPC9lbT4nOwokbGFuZ1sndXNlcnMnXSA9ICdVc2Vycyc7CiRsYW5nWydsaXN0MWRheSddID0gJ0xpc3QgYWxsIGVudHJpZXMgbW9yZSB0aGFuIDEgZGF5IG9sZCc7CiRsYW5nWydzdWJqZWN0J10gPSAnU3ViamVjdCBmb3Igb3V0Z29pbmcgZW1haWwnOwokbGFuZ1snbWVzc2FnZWJvZHknXSA9ICdNZXNzYWdlIEJvZHknOwokbGFuZ1snaHRtbGJvZHknXSA9ICdIVE1MIG1lc3NhZ2UgYm9keSc7CiRsYW5nWyd0ZXh0Ym9keSddID0gJ1RleHQgbWVzc2FnZSBib2R5JzsKJGxhbmdbJ2luY29tcGxldGVfcmVnaXN0cmF0aW9ucyddID0gJ0luY29tcGxldGUgUmVnaXN0cmF0aW9ucyc7CiRsYW5nWydwcm9tcHRfbnVtcmVnaXN0ZXJpbmcnXSA9ICclZCB1c2VycyBhcmUgaW4gdGhlIG1pZGRsZSBvZiByZWdpc3RlcmluZyc7CiRsYW5nWydyZW1vdmUxd2VlayddID0gJ1JlbW92ZSBhbGwgZW50cmllcyBtb3JlIHRoYW4gYSB3ZWVrIG9sZCc7CiRsYW5nWydyZW1vdmUxbW9udGgnXSA9ICdSZW1vdmUgYWxsIGVudHJpZXMgbW9yZSB0aGFuIGEgbW9udGggb2xkJzsKJGxhbmdbJ3JlbW92ZTFkYXknXSA9ICdSZW1vdmUgYWxsIGVudHJpZXMgbW9yZSB0aGFuIGEgZGF5IG9sZCc7CiRsYW5nWydyZW1vdmVhbGwnXSA9ICdSZW1vdmUgYWxsIGVudHJpZXMnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0FyZSB5b3Ugc3VyZT8nOwokbGFuZ1sncmVnaXN0cmF0aW9uX2luZm9fZWRpdGVkJ10gPSAnWW91ciByZWdpc3RyYXRpb24gaW5mbyBoYXMgYmVlbiBtb2RpZmllZCc7CiRsYW5nWydyZWdpc3RyYXRpb25fY29uZmlybWF0aW9uJ10gPSAnUmVnaXN0cmF0aW9uIENvbmZpcm1hdGlvbic7CiRsYW5nWyd1c2VyX3JlZ2lzdHJhdGlvbiddID0gJ1JlZ2lzdGVyJzsKJGxhbmdbJ2ZpbmFsbWVzc2FnZV90ZW1wbGF0ZSddID0gJ0ZpbmFsIE1lc3NhZ2UgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfdmVyaWZ5cmVnaXN0cmF0aW9uJ10gPSAnVmVyaWZ5IFJlZ2lzdHJhdGlvbic7CiRsYW5nWydjb2RlJ10gPSAnVmFsaWRhdGlvbiBLZXknOwokbGFuZ1snZGVmYXVsdCddID0gJ1NldCBUbyBEZWZhdWx0cyc7CiRsYW5nWydlcnJvcl9ub3Byb3BlcnRpZXMnXSA9ICdObyBwcm9wZXJ0aWVzIGZvdW5kIGZvciB0aGlzIHVzZXInOwokbGFuZ1snZXJyb3Jfbm9wcm9wcmVsYXRpb25zJ10gPSAnTm8gcHJvcGVydHkgcmVsYXRpb25zJzsKJGxhbmdbJ2Vycm9yX2VtYWlsaW52YWxpZCddID0gJ0ludmFsaWQgZW1haWwgYWRkcmVzcyc7CiRsYW5nWydlcnJvcl9ub2VtYWlsYWRkcmVzcyddID0gJ05vIHZhbGlkIGVtYWlsIGFkZHJlc3MgZmllbGQgZm91bmQnOwokbGFuZ1snZXJyb3JfcmVxdWlyZWRmaWVsZCddID0gJ0ZpZWxkICVzIG11c3QgYmUgZmlsbGVkIGluJzsKJGxhbmdbJ3JlZ2lzdHJhdGlvbjFfdGVtcGxhdGUnXSA9ICdSZWdpc3RyYXRpb24gVGVtcGxhdGUgMSc7CiRsYW5nWydyZWdpc3RyYXRpb24yX3RlbXBsYXRlJ10gPSAnUmVnaXN0cmF0aW9uIFRlbXBsYXRlIDInOwokbGFuZ1snZW1haWxjb25maXJtX3RlbXBsYXRlJ10gPSAnQ29uZmlybWF0aW9uIEVtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ2VtYWlsdXNlcmVkaXRlZF90ZW1wbGF0ZSddID0gJ1VzZXIgSW5mbyBDaGFuZ2VkIFRlbXBsYXRlJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnUHJlZmVyZW5jZXMnOwokbGFuZ1snZXJyb3JfdXNlcm5vdGZvdW5kJ10gPSAnVXNlciBub3QgZm91bmQnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVzZXJuYW1lJ10gPSAnVXNlcm5hbWUgaXMgaW52YWxpZCAodG9vIGxvbmcsIHRvbyBzaG9ydCwgb3IgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzKS4gIEhpbnQtIFVzZXJuYW1lcyBtdXN0IGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyAobm8gc3BhY2VzKSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZW1haWwnXSA9ICdFbWFpbCBpcyBpbnZhbGlkLic7CiRsYW5nWydlcnJvcl91c2VybmFtZXRha2VuJ10gPSAnVGhhdCB1c2VybmFtZSBpcyBjdXJyZW50bHkgaW4gdXNlJzsKJGxhbmdbJ2Vycm9yX3Bhc3N3b3Jkc2RvbnRtYXRjaCddID0gJ0VSUk9SOiBQYXNzd29yZHMgZG9udCBtYXRjaCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFzc3dvcmQnXSA9ICdZb3VyIHBhc3N3b3JkIGlzIGludmFsaWQuICBQbGVhc2UgZW50ZXIgYSBtb3JlIHNlY3VyZSBwYXNzd29yZCc7CiRsYW5nWydlcnJvcl9lbXB0eXVzZXJuYW1lJ10gPSAnVXNlcm5hbWUgY2Fubm90IGJlIGVtcHR5JzsKJGxhbmdbJ2Vycm9yX2VtcHR5ZW1haWwnXSA9ICdFbWFpbCBjYW5ub3QgYmUgZW1wdHknOwokbGFuZ1sncmVwZWF0cGFzc3dvcmQnXSA9ICdQYXNzd29yZCAoYWdhaW4pJzsKJGxhbmdbJ3Bhc3N3b3JkJ10gPSAnUGFzc3dvcmQnOwokbGFuZ1sndXNlcm5hbWUnXSA9ICdVc2VybmFtZSc7CiRsYW5nWydlbWFpbCddID0gJ0VtYWlsJzsKJGxhbmdbJ2NhcHRjaGFfdGl0bGUnXSA9ICdFbnRlciB0aGUgdGV4dCBmcm9tIHRoZSBpbWFnZSc7CiRsYW5nWydlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnXSA9ICdJbnN1ZmZpY2llbnQgbnVtYmVyIChvciBpbmNvcnJlY3QpIHBhcmFtZXRlcnMgc3VwcGxpZWQgdG8gbW9kdWxlJzsKJGxhbmdbJ2Vycm9yX25vZmV1c2Vyc21vZHVsZSddID0gJ0NvdWxkIG5vdCBnZXQgaW5zdGFuY2Ugb2YgTUFNUyBtb2R1bGUnOwokbGFuZ1snZXJyb3Jfbm9zdWNoZ3JvdXAnXSA9ICdHcm91cCBuYW1lIHNwZWNpZmllZCBkb2VzIG5vdCBleGlzdCc7CiRsYW5nWydlcnJvcl9jYXB0Y2hhbWlzbWF0Y2gnXSA9ICdUaGUgdGV4dCBmcm9tIHRoZSBpbWFnZSB3YXMgbm90IGVudGVyZWQgY29ycmVjdGx5JzsKJGxhbmdbJ3NlbmRfZW1haWxzX3RvJ10gPSAnUmVnaXN0cmF0aW9uIGVtYWlscyBzaG91bGQgYmUgc2VudCB0byc7CiRsYW5nWydyZXF1aXJlX2VtYWlsX2NvbmZpcm1hdGlvbiddID0gJ1JlcXVpcmUgdGhlIHVzZXIgdG8gY29uZmlybSByZWdpc3RyYXRpb24gdmlhIGVtYWlsJzsKJGxhbmdbJ3JlcXVpcmVfb25lY2xpY2tfY29uZmlybWF0aW9uJ10gPSAnT25lLUNsaWNrIENvbmZpcm1hdGlvbic7CiRsYW5nWydub3RpZnlfb25fcmVnaXN0cmF0aW9uJ10gPSAnU2VuZCBhbiBlbWFpbCBub3RpZmljYXRpb24gd2hlbiBzb21lb25lIHJlZ2lzdGVycyc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWwnOwokbGFuZ1snc3VibWl0J10gPSAnU3VibWl0JzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ01BTVMgUmVnaXN0cmF0aW9uJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnSW5zdGFsbGF0aW9uIHN1Y2Nlc3NmdWxsLCBwbGVhc2UgcmVtZW1iZXIgdG8gc2V0IHRoZSAmcXVvdDtNb2RpZnkgU2VsZlJlZ2lzdHJhdGlvbiBTZXR0aW5ncyZxdW90OyBwZXJtaXNzaW9uLiAgSWYgdGhlIENhcHRjaGEgbW9kdWxlIGlzIGluc3RhbGxlZCwgdGhlbiBjYXB0Y2hhIGZ1bmN0aW9uYWxpdHkgaXMgZW5hYmxlZCBieSBkZWZhdWx0LiAgV2Ugc3Ryb25nbHkgcmVjY29tbWVuZCB0aGF0IHlvdSBpbnN0YWxsIHRoaXMgbW9kdWxlLiAgSWYgdGhlIENhcHRjaGEgbW9kdWxlIGlzIGluc3RhbGxlZCwgYW5kIHlvdSB3YW50IHRvIGRpc2FibGUgaXQsIHVzZSB0aGUgbm9jYXB0Y2hhIHBhcmFtIGluIHlvdXIgc2VsZnJlZ2lzdHJhdGlvbiB0YWcuJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdNQU1TIFJlZ2lzdHJhdGlvbiBtb2R1bGUgaXMgdW5pbnN0YWxsZWQuICBTZWUgeW91IGxhdGVyLic7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSBVbmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdNb2R1bGUgcHJlZmVyZW5jZXMgdXBkYXRlZC4nOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnQWNjZXNzIERlbmllZC4gUGxlYXNlIGNoZWNrIHlvdXIgcGVybWlzc2lvbnMuJzsKJGxhbmdbJ2Vycm9yJ10gPSAnRXJyb3IhJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKJGxhbmdbJ3RpdGxlX21vZF9wcmVmcyddID0gJ01vZHVsZSBQcmVmZXJlbmNlcyc7CiRsYW5nWyd0aXRsZV9tb2RfYWRtaW4nXSA9ICdNb2R1bGUgQWRtaW4gUGFuZWwnOwokbGFuZ1sndGl0bGVfYWRtaW5fcGFuZWwnXSA9ICdNQU1TIFJlZ2lzdHJhdGlvbic7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0EgbW9kdWxlIHRoYXQgYWxsb3dzIGZyb250IGVuZCB1c2VycyB0byByZWdpc3RlciB0aGVtc2VsdmVzLic7CiRsYW5nWyd3ZWxjb21lX3RleHQnXSA9ICc8cD5XZWxjb21lIHRvIHRoZSBzZWxmIHJlZ2lzdHJhdGlvbiBtb2R1bGUuPC9wPic7CiRsYW5nWydlbmFibGVfd2hpdGVsaXN0J10gPSAnRW5hYmxlIFdoaXRlbGlzdCc7CiRsYW5nWyd3aGl0ZWxpc3QnXSA9ICdMaXN0IG9mIHdoaXRlbGlzdCB1c2VybmFtZS9lbWFpbHMuIE9uZSBwZXIgbGluZS4gKHVzZSAqIGZvciB3aWxkY2FyZHMpJzsKJGxhbmdbJ3doaXRlbGlzdF90cmlnZ2VyX21lc3NhZ2UnXSA9ICdNZXNzYWdlIHRvIHNob3cgaWYgYSB3aGl0ZWxpc3QgcnVsZSBpcyB0cmlnZ2VyZWQnOwokbGFuZ1snZG9udF91c2UnXSA9ICdObyBXaGl0ZWxpc3QnOwokbGFuZ1snbm9fbWF0Y2hlcyddID0gJ0RvblwndCBhbGxvdyBtYXRjaGVkIHVzZXJuYW1lL2VtYWlscyB0byByZWdpc3Rlcic7CiRsYW5nWydvbmx5X21hdGNoZXMnXSA9ICdPbmx5IGFsbG93IG1hdGNoZWQgdXNlcm5hbWUvZW1haWxzIHRvIHJlZ2lzdGVyJzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.MAMSREGValidationError.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmNsYXNzIE1BTVNSRUdWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBcUnVudGltZUV4Y2VwdGlvbiB7IH0NCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.notifications.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgTUFNU1JlZ2lzdHJhdGlvbjsNCg0KDQpjbGFzcyBub3RpZmljYXRpb25zDQp7DQogIHVzZSBcQ01TTVNFeHRcY29yZVxUU2luZ2xldG9uOw0KICANCiAgcHJvdGVjdGVkICRfbWFpbGVyOw0KICBwcm90ZWN0ZWQgJF9yZWc7DQogIHByb3RlY3RlZCAkX2NvbmZpZzsNCiAgDQogIHByb3RlY3RlZCBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpDQogIHsNCiAgICAkdGhpcy0+X21haWxlciA9IG5ldyBcY21zX21haWxlcihUUlVFKTsNCiAgICAkdGhpcy0+X3JlZyA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ01BTVNSZWdpc3RyYXRpb24nKTsNCiAgICAkdGhpcy0+X2NvbmZpZyA9IFxjbXNfdXRpbHM6OmdldF9jb25maWcoKTsNCiAgfQ0KDQogIC8qKg0KICAgKiBTZW5kIGEgbm90aWZpY2F0aW9uIGVtYWlsIHRvIHRoZSBhZG1pbiBvbiByZWdpc3RyYXRpb24NCiAgICoNCiAgICogQHBhcmFtIHN0cmluZyAkdXNlcm5hbWUNCiAgICogQHBhcmFtIGludCAkdWlkDQogICAqIEBwYXJhbSBhcnJheSAkZ3Jwcw0KICAgKi8NCiAgIGZ1bmN0aW9uIE9uUmVnaXN0cmF0aW9uKCR1c2VybmFtZSA9IE5VTEwsICR1aWQgPSBOVUxMLCAkZ3JwcyA9IE5VTEwpIDogdm9pZA0KICAgew0KICAgICBpZigkdGhpcy0+X3JlZy0+R2V0UHJlZmVyZW5jZSgnbm90aWZ5X29uX3JlZ2lzdHJhdGlvbicpKQ0KICAgICB7DQogICAgICAgJHRoaXMtPl9tYWlsZXIgPSBuZXcgXGNtc19tYWlsZXI7DQogICAgICAgDQogICAgICAgJHRtcCA9ICR0aGlzLT5fcmVnLT5HZXRQcmVmZXJlbmNlKCdzZW5kX2VtYWlsc190bycpOw0KICAgICAgIA0KICAgICAgIGlmKCR0bXApDQogICAgICAgew0KICAgICAgICAgJGxpc3QgPSBceHRfYXJyYXk6OnNtYXJ0X2V4cGxvZGUoJHRtcCk7DQogICAgICAgICANCiAgICAgICAgIGZvcmVhY2goJGxpc3QgYXMgJiRvbmUpDQogICAgICAgICB7DQogICAgICAgICAgICRvbmUgPSBcdHJpbSgkb25lKTsNCiAgICAgICAgICAgDQogICAgICAgICAgIGlmKCFlbXB0eSgkb25lKSAmJiBcaXNfZW1haWwoJG9uZSkpDQogICAgICAgICAgICAgLy9pZighZW1wdHkoJG9uZSkpDQogICAgICAgICAgIHsNCiAgICAgICAgICAgICAkdGhpcy0+X21haWxlci0+QWRkQWRkcmVzcygoc3RyaW5nKSRvbmUpOw0KICAgICAgICAgICB9DQogICAgICAgICB9DQogICAgICAgICANCiAgICAgICAgICRzdWJqID0gJHRoaXMtPl9yZWctPkdldFByZWZlcmVuY2UoJ2FkbWluX25vdGlmeV9zdWJqZWN0JywgJ05ldyB1c2VyIHJlZ2lzZXJlZCBvbiAnIC4gJHRoaXMtPl9jb25maWcgWydyb290X3VybCddKTsNCiAgICAgICAgICR0aGlzLT5fbWFpbGVyLT5TZXRTdWJqZWN0KCRzdWJqKTsNCiAgICAgICAgICR0cGwgPSAkdGhpcy0+X3JlZy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX25vdGlmeV9lbWFpbCcpOw0KICAgICAgICAgJHRwbC0+YXNzaWduKCd1aWQnLCAkdWlkKTsNCiAgICAgICAgICR0cGwtPmFzc2lnbigndXNlcm5hbWUnLCAkdXNlcm5hbWUpOw0KICAgICAgICAgJHRwbC0+YXNzaWduKCdncm91cHMnLCAkZ3Jwcyk7DQogICAgICAgICAkbXNnID0gJHRwbC0+ZmV0Y2goKTsNCiAgICAgICAgICR0aGlzLT5fbWFpbGVyLT5TZXRCb2R5KCRtc2cpOw0KICAgICAgICAgJHRoaXMtPl9tYWlsZXItPlNldFByaW9yaXR5KDEpOw0KICAgICAgICAgJHRoaXMtPl9tYWlsZXItPklzSFRNTChUUlVFKTsNCiAgICAgICAgICR0aGlzLT5fbWFpbGVyLT5TZW5kKCk7DQogICAgICAgfQ0KICAgICB9DQogICB9DQogIA0KICAvKioNCiAgICogc2VuZCBhIGNvbmZpcm1hdGlvbiBlbWFpbCB0byB0aGUgdXNlcg0KICAgKiBAcGFyYW0gJGlkDQogICAqIEBwYXJhbSAkcmV0dXJuaWQNCiAgICogQHBhcmFtICRhZGRyZXNzDQogICAqIEBwYXJhbSAkdXNlcm5hbWUNCiAgICogQHBhcmFtICRjb2RlDQogICAqDQogICAqIEByZXR1cm4gdm9pZA0KICAgKi8NCiAgZnVuY3Rpb24gU2VuZFVzZXJDb25maXJtYXRpb25FbWFpbCgkaWQgPSBOVUxMLCAkcmV0dXJuaWQgPSBOVUxMLCAkYWRkcmVzcyA9IE5VTEwsICR1c2VybmFtZSA9IE5VTEwsICRjb2RlID0gTlVMTCkgOiB2b2lkDQogIHsNCiAgICAkdGhpcy0+X21haWxlci0+QWRkQWRkcmVzcygkYWRkcmVzcyk7DQogICAgJHRwbCA9ICR0aGlzLT5fcmVnLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnbWFtc3JlZ19lbWFpbGNvbmZpcm1fdGVtcGxhdGUnKTsNCiAgICAkdHBsLT5hc3NpZ24oJ25hbWUnLCAkdXNlcm5hbWUpOw0KICAgICR0cGwtPmFzc2lnbignY29kZScsICRjb2RlKTsNCiAgICAkdHBsLT5hc3NpZ24oJ3NpdGVuYW1lJywgJHRoaXMtPl9jb25maWdbJ3Jvb3RfdXJsJ10pOw0KICAgICRwYXJtcyAgICAgPSBbJ21yX2lucHV0X3VzZXJuYW1lJyA9PiAkdXNlcm5hbWUsICdtcl9pbnB1dF9jb2RlJyA9PiAkY29kZV07DQogICAgJHBhcm1zICAgICA9IFsnbXJfZGF0YScgPT4gXGJhc2U2NF9lbmNvZGUoXHNlcmlhbGl6ZSgkcGFybXMpKV07DQogICAgJHByZXR0eXVybCA9ICJtYW1zcmVnL2NvbmZpcm0vJHJldHVybmlkL3skcGFybXNbJ21yX2RhdGEnXX0iOw0KICAgICR1cmwgICAgICAgPSAkdGhpcy0+X3JlZy0+Y3JlYXRlX3VybCgkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAkcGFybXMsIEZBTFNFLCBGQUxTRSwgJHByZXR0eXVybCk7DQogICAgJHRwbC0+YXNzaWduKCd1cmwnLCAkdXJsKTsNCiAgICAkaHRtbGJvZHkgPSAkdHBsLT5mZXRjaCgpOw0KICAgIA0KICAgICR0aGlzLT5fbWFpbGVyLT5TZXRCb2R5KCRodG1sYm9keSk7DQogICAgJHRoaXMtPl9tYWlsZXItPklzSFRNTChUUlVFKTsNCiAgICAkdGhpcy0+X21haWxlci0+U2V0Qm9keSgkaHRtbGJvZHkpOw0KICAgICR0aGlzLT5fbWFpbGVyLT5TZXRTdWJqZWN0KA0KICAgICAgJHRoaXMtPl9yZWctPkdldFByZWZlcmVuY2UoJ21hbXNyZWdfZW1haWxjb25maXJtX3N1YmplY3QnLCAkdGhpcy0+X3JlZy0+TGFuZygncmVnaXN0cmF0aW9uX2NvbmZpcm1hdGlvbicpKQ0KICAgICk7DQogICAgJHRoaXMtPl9tYWlsZXItPlNlbmQoKTsNCiAgfQ0KfQ0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.reg_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCi8vbmFtZXNwYWNlIE1BTVNSZWdpc3RyYXRpb247CmZpbmFsIGNsYXNzIHJlZ191dGlscwp7CiAgICBwcml2YXRlIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkge30KICAKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNsZWFuX3BhcmFtcygkcGFyYW1zKQogIHsKICAgICRucGFyYW1zID0gW107CiAgICBpZihpc3NldCgkcGFyYW1zWydtcl9kYXRhJ10pKQogICAgewogICAgICAkdG1wID0gdW5zZXJpYWxpemUoYmFzZTY0X2RlY29kZSgkcGFyYW1zWydtcl9kYXRhJ10pKTsKICAgICAgdW5zZXQoJHBhcmFtc1snbXJfZGF0YSddKTsKICAgICAgJHBhcmFtcyA9IGFycmF5X21lcmdlKCR0bXAsICRwYXJhbXMpOwogICAgfQogICAgCiAgICBmb3JlYWNoKCRwYXJhbXMgYXMgJGtleSA9PiAkdmFsdWUpCiAgICB7CiAgICAgIGlmKHN0YXJ0c3dpdGgoJGtleSwgJ21yXycpKQogICAgICB7CiAgICAgICAgJGtleSA9IHN1YnN0cigka2V5LCAzKTsKICAgICAgfQogICAgICAkbnBhcmFtc1ska2V5XSA9ICR2YWx1ZTsKICAgIH0KICAgIAogICAgcmV0dXJuICRucGFyYW1zOwogIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHBrZ19zdWJzY3JfdG9fZXhwaXJ5ZGF0ZSgkcGtnLCR0aW1lID0gJycpCiAgICB7CiAgICAgICAgaWYoICEkdGltZSApICR0aW1lID0gdGltZSgpOwogICAgICAgICRleHBpcmVzID0gJyc7CiAgICAgICAgaWYoICFpc19hcnJheSgkcGtnKSApIHJldHVybiAkZXhwaXJlczsKICAgICAgICBpZiggIWlzc2V0KCRwa2dbJ3N1YnNjcl9udW0nXSkgfHwgIWlzc2V0KCRwa2dbJ3N1YnNjcl90eXBlJ10pICkgcmV0dXJuICRleHBpcmVzOwoKICAgICAgICAkdHlwZSA9ICRwa2dbJ3N1YnNjcl90eXBlJ107CiAgICAgICAgc3dpdGNoKCAkdHlwZSApIHsKICAgICAgICBjYXNlICdtb250aCc6CiAgICAgICAgY2FzZSAneWVhcic6CiAgICAgICAgICAgICR0eXBlIC49ICdzJzsKICAgICAgICAgICAgJGV4cGlyZXMgPSBzdHJ0b3RpbWUoIit7JHBrZ1snc3Vic2NyX251bSddfSB7JHR5cGV9IiwkdGltZSk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdub25lJzoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAkbWFtcyA9IHh0X3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9NQU1TKTsKICAgICAgICAgICAgaWYoICRtYW1zICkgewogICAgICAgICAgICAgICAgJHRpbWVwZXJpb2QgPSBtYXgoMSwkbWFtcy0+R2V0UHJlZmVyZW5jZSgnZXhwaXJlYWdlX21vbnRocycsNTIwKSk7CiAgICAgICAgICAgICAgICAkZXhwaXJlcyA9IHN0cnRvdGltZSgiK3skdGltZXBlcmlvZH0gbW9udGhzIiwkdGltZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJGV4cGlyZXM7CiAgICB9CiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBleHBhbmRfZ3JvdXAoJHZhbCkKICB7CiAgICAvLyB5ZXAsIGFsbCB0aGUgbW9kdWxlcyBhcmUgaGVyZSwgbm93IHdlIGNvbnZlcnQgYSBzaW5nbGUgbmFtZSB0byBhbiBpbnRlZ2VyIGlkCiAgICAvLyBvciBhbiBhcnJheSBvZiBpbnRlZ2VyIGlkcy4uLiB0aGVuIHdlIHZhbGlkYXRlIHRoZW0uCiAgICAkZ3JwaWRzID0gW107CiAgICAKICAgIGlmKGlzX3N0cmluZygkdmFsKSkgeyAkdmFsID0gZXhwbG9kZSgnLCcsICR2YWwpOyB9CiAgICAKICAgIGlmKCFpc19hcnJheSgkdmFsKSB8fCAhY291bnQoJHZhbCkpIHsgcmV0dXJuIFtdOyB9CiAgICAKICAgICRtYW1zID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9NQU1TKTsKICAgIAogICAgZm9yZWFjaCgkdmFsIGFzICRvbmUpCiAgICB7CiAgICAgIGlmKGlzX251bWVyaWMoJG9uZSkgJiYgKGludCkkb25lID4gMCkKICAgICAgewogICAgICAgICRncnBpZHNbXSA9ICRvbmU7CiAgICAgIH0KICAgICAgZWxzZQogICAgICB7CiAgICAgICAgJHRtcCA9ICRtYW1zLT5HZXRHcm91cElEKHRyaW0oJG9uZSkpOwogICAgICAgIAogICAgICAgIGlmKCR0bXAgPiAwKSB7ICRncnBpZHNbXSA9ICR0bXA7IH0KICAgICAgfQogICAgfQogICAgCiAgICBpZigkZ3JwaWRzKQogICAgewogICAgICAkZ3JwaWRzID0gYXJyYXlfdW5pcXVlKCRncnBpZHMpOwogICAgfQogICAgCiAgICBpZihjb3VudCgkZ3JwaWRzKSkgeyByZXR1cm4gJGdycGlkczsgfQogICAgCiAgICByZXR1cm4gW107CiAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3ZlcmlmeXBhZ2UoICRyZXR1cm5pZCA9IG51bGwgKQogICAgewogICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdNQU1TUmVnaXN0cmF0aW9uJyk7CiAgICAgICAgJHByZWZfcGFnZSA9IChpbnQpICRtb2QtPkdldFByZWZlcmVuY2UoJ3ZlcmlmeXBhZ2UnKTsKICAgICAgICBpZiggJHByZWZfcGFnZSA+IDAgKSByZXR1cm4gJHByZWZfcGFnZTsKCiAgICAgICAgaWYoICRyZXR1cm5pZCA+IDAgKSByZXR1cm4gJHJldHVybmlkOwoKICAgICAgICAkY29udGVudG9wcyA9IFxDb250ZW50T3BlcmF0aW9uczo6Z2V0X2luc3RhbmNlKCk7CiAgICAgICAgcmV0dXJuIChpbnQpICRjb250ZW50b3BzLT5HZXREZWZhdWx0Q29udGVudCgpOwogICAgfQoKfSAvLyBjbGFzcwoKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.smarty.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCm5hbWVzcGFjZSBNQU1TUmVnaXN0cmF0aW9uOw0KDQpjbGFzcyBzbWFydHkNCnsNCiAgc3RhdGljIGZ1bmN0aW9uIHVzZXJfZGF0YShhcnJheSAkcGFyYW1zKQ0KICB7DQogICAgLyoqDQogICAgICogc2hvd3N0b3BwZXINCiAgICAgKi8NCiAgICAjIGlmLCBmb3Igc29tZSBvZGQgcmVhc29uLCB3ZSBkb24ndCBoYXZlIE1BTVNSZWdpc3RyYXRpb24sIGRvbid0IGRvIGFueXRoaW5nDQogICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ01BTVNSZWdpc3RyYXRpb24nKTsNCiAgICANCiAgICBpZighJG1vZCkgeyByZXR1cm4gJyc7IH0NCiAgICANCiAgICAkbWFtcyA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ01BTVMnKTsNCiAgICANCiAgICBpZighJG1hbXMpIHsgcmV0dXJuICcnOyB9DQogICAgDQogICAgLyoqDQogICAgICogcGFyYW1ldGVycyBkZWZhdWx0cw0KICAgICAqLw0KICAgICR1c2VybmFtZSA9ICRwYXJhbXNbJ3VzZXJuYW1lJ10gPz8gJyc7DQogICAgJGNvZGUgPSAkcGFyYW1zWydjb2RlJ10gPz8gJyc7DQogICAgJHRfdWlkID0gJHBhcmFtc1sndF91aWQnXSA/PyAnJzsNCiAgICANCiAgICBpZighJHVzZXJuYW1lICYmICEkdF91aWQpDQogICAgew0KICAgICAgaWYoISRjb2RlKSB7IHJldHVybiAnPCEtLSBubyB1c2VybmFtZSBvciB0X3VpZCBvciBjb2RlIC0tPic7IH0NCiAgICAgIA0KICAgICAgJHEgPSAnU0VMRUNUIHVzZXJuYW1lIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX3VzZXJzIFdIRVJFIGNvZGUgPSA/JzsNCiAgICAgICR1c2VybmFtZSA9IFxjbXNfdXRpbHM6OmdldF9kYigpLT5HZXRPbmUoJHEsIFskY29kZV0pOw0KICAgICAgJHRfdWlkID0gJG1vZC0+R2V0VGVtcFVzZXJJRCgkdXNlcm5hbWUpOw0KICAgIH0NCiAgICANCiAgICBpZighJHRfdWlkKSB7IHJldHVybiAnPCEtLSBubyB0X3VpZCAtLT4nOyB9DQogICAgDQogICAgJHRfZGV0YWlscyA9ICRtb2QtPkdldFRlbXBVc2VyRGV0YWlscygkdF91aWQpOw0KICAgIA0KICAgIGlmKCEkdF9kZXRhaWxzKSB7IHJldHVybiAnJzsgfQ0KICAgIA0KICAgICR0X2dycGxpc3QgPSAkbWFtcy0+R2V0R3JvdXBMaXN0RnVsbCgpOw0KICAgICRncnBsaXN0ID0gW107DQogICAgDQogICAgZm9yZWFjaCgkdF9ncnBsaXN0IGFzICRncnApDQogICAgew0KICAgICAgJGdycGxpc3RbJGdycFsnaWQnXV0gPSAkZ3JwOw0KICAgIH0NCiAgICANCiAgICAkcSA9ICdTRUxFQ1QgZ2lkIEZST00gJyAuIFxjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX21hbXNyZWdpc3RyYXRpb25fZ3JwcyBXSEVSRSB1c2VyID0gPyc7DQogICAgJGdpZHMgPSBcY21zX3V0aWxzOjpnZXRfZGIoKS0+R2V0Q29sKCRxLCBbJHRfdWlkXSk7DQogICAgDQogICAgaWYoXGlzX2FycmF5KCRnaWRzKSAmJiBcY291bnQoJGdpZHMpICkNCiAgICB7DQogICAgICAkdG1wID0gW107DQogICAgICANCiAgICAgIGZvcmVhY2goJGdpZHMgYXMgJGdpZCkNCiAgICAgIHsNCiAgICAgICAgaWYoaXNzZXQoJGdycGxpc3RbJGdpZF0pKQ0KICAgICAgICB7DQogICAgICAgICAgJHRtcFtdID0gJGdycGxpc3RbJGdpZF1bJ2dyb3VwbmFtZSddOw0KICAgICAgICB9DQogICAgICB9DQogICAgICANCiAgICAgICR0X2RldGFpbHNbJ2dyb3VwcyddID0gJHRtcDsNCiAgICB9DQogICAgDQogICAgdW5zZXQoJHRfZGV0YWlsc1snZ3JvdXBfaWQnXSk7DQogICAgJHRfZGV0YWlsc1snZ2lkcyddID0gJGdpZHM7DQogICAgDQogICAgcmV0dXJuICR0X2RldGFpbHM7DQogIH0NCn0NCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/internal_plugins</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/internal_plugins/function.mamsreg_user_data.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiAgDQogIC8qKg0KICAgKiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgdXNlciBkYXRhDQogICAqDQogICAqIEBwYXJhbSBhcnJheSAgJHBhcmFtcyBBbiBhcnJheSBvZiBwYXJhbWV0ZXJzLg0KICAgKiBAcGFyYW0gb2JqZWN0ICRzbWFydHkgQW4gaW5zdGFuY2Ugb2YgdGhlIFNtYXJ0eSB0ZW1wbGF0ZSBlbmdpbmUuDQogICAqDQogICAqIEByZXR1cm4gc3RyaW5nIFRoZSBmdW5jdGlvbiBjb21tZW50Lg0KICAgKiBAdGhyb3dzIFxFeGNlcHRpb24NCiAgICovDQpmdW5jdGlvbiBzbWFydHlfZnVuY3Rpb25fbWFtc3JlZ191c2VyX2RhdGEoJHBhcmFtcywgJHNtYXJ0eSkNCnsNCiAgLyoqDQogICAqIHNob3dzdG9wcGVyDQogICAqLw0KICAjIGlmLCBmb3Igc29tZSBvZGQgcmVhc29uLCB3ZSBkb24ndCBoYXZlIE1BTVNSZWdpc3RyYXRpb24sIGRvbid0IGRvIGFueXRoaW5nDQogICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ01BTVNSZWdpc3RyYXRpb24nKTsNCiAgDQogIGlmKCEkbW9kKSB7IHJldHVybiAnJzsgfQ0KICANCiAgJG1hbXMgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ01BTVMnKTsNCiAgDQogIGlmKCEkbWFtcykgeyByZXR1cm4gJyc7IH0NCg0KICAvKioNCiAgICogcGFyYW1ldGVycyBkZWZhdWx0cw0KICAgKi8NCiAgJGFzc2lnbiA9ICRwYXJhbXNbJ2Fzc2lnbiddID8/ICdtYW1zcmVnX3VzZXJfZGF0YSc7DQogICR1c2VybmFtZSA9ICRwYXJhbXNbJ3VzZXJuYW1lJ10gPz8gJyc7DQogICRjb2RlID0gJHBhcmFtc1snY29kZSddID8/ICcnOw0KICANCiAgaWYoISR1c2VybmFtZSkNCiAgew0KICAgIGlmKCEkY29kZSkgeyByZXR1cm4gJyc7IH0NCiAgICANCiAgICAkcSA9ICdTRUxFQ1QgdXNlcm5hbWUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX21hbXNyZWdpc3RyYXRpb25fdXNlcnMgV0hFUkUgY29kZSA9ID8nOw0KICAgICR1c2VybmFtZSA9IFxjbXNfdXRpbHM6OmdldF9kYigpLT5HZXRPbmUoJHEsIFskY29kZV0pOw0KICB9DQogIA0KICAkdF91aWQgPSAkbW9kLT5HZXRUZW1wVXNlcklEKCR1c2VybmFtZSk7DQogIA0KICBpZighJHRfdWlkKSB7IHJldHVybiAnJzsgfQ0KICANCiAgJHRfZGV0YWlscyA9ICRtb2QtPkdldFRlbXBVc2VyRGV0YWlscygkdF91aWQpOw0KICANCiAgaWYoISR0X2RldGFpbHMpIHsgcmV0dXJuICcnOyB9DQogIA0KICAkdF9ncnBsaXN0ID0gJG1hbXMtPkdldEdyb3VwTGlzdEZ1bGwoKTsNCiAgJGdycGxpc3QgPSBbXTsNCiAgZm9yZWFjaCgkdF9ncnBsaXN0IGFzICRncnApDQogIHsNCiAgICAkZ3JwbGlzdFskZ3JwWydpZCddXSA9ICRncnA7DQogIH0NCiAgDQogIA0KICAkcSA9ICdTRUxFQ1QgZ2lkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX2dycHMgV0hFUkUgdXNlciA9ID8nOw0KICAkZ2lkcyA9IFxjbXNfdXRpbHM6OmdldF9kYigpLT5HZXRDb2woJHEsIFskdF91aWRdKTsNCg0KICBpZiggaXNfYXJyYXkoJGdpZHMpICYmIGNvdW50KCRnaWRzKSApDQogIHsNCiAgICAkdG1wID0gW107DQogICAgZm9yZWFjaCgkZ2lkcyBhcyAkZ2lkKQ0KICAgIHsNCiAgICAgIGlmKGlzc2V0KCRncnBsaXN0WyRnaWRdKSkNCiAgICAgIHsNCiAgICAgICAgJHRtcFtdID0gJGdycGxpc3RbJGdpZF1bJ2dyb3VwbmFtZSddOw0KICAgICAgfQ0KICAgIH0NCiAgICANCiAgICAkdF9kZXRhaWxzWydncm91cHMnXSA9ICR0bXA7DQogIH0NCiAgDQogIHVuc2V0KCR0X2RldGFpbHNbJ2dyb3VwX2lkJ10pOw0KICAkdF9kZXRhaWxzWydnaWRzJ10gPSAkZ2lkczsNCiAgDQogICRzbWFydHktPmFzc2lnbigkYXNzaWduLCAkdF9kZXRhaWxzKTsNCiAgDQogIHJldHVybiAnJzsNCn0NCj8+]]></data>
	</file>
	<file>
	  <filename>/MAMSRegistration.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgp1c2UgTUFNU1JlZ2lzdHJhdGlvblxzbWFydHk7CgpyZXF1aXJlX29uY2UoX19ESVJfXyAuICIvZnVuY3Rpb25zLnBocCIpOwoKZmluYWwgY2xhc3MgTUFNU1JlZ2lzdHJhdGlvbiBleHRlbmRzIFxDTVNNU0V4dFxYVE1vZHVsZQp7CiAgY29uc3QgTUFNU19QUk9QTkFNRSA9ICdfX01BTVNSRUcnOwogIHZhciAkZGZsdF9lbWFpbGNvbmZpcm1fdGVtcGxhdGUgPSAnCjwhLS0gRW1haWxDb25maXJtIHRlbXBsYXRlIC0tPgo8aHRtbD4KPGJvZHk+CjxwPkdyZWV0aW5ncyB7JG5hbWV9IHdlbGNvbWUgdG8ge3NpdGVuYW1lfS4gIFRoaXMgZW1haWwgaXMgYmVpbmcgc2VudCBiZWNhdXNlIHNvbWVib2R5IHJlZ2lzdGVyZWQgZm9yIGFjY2VzcyB0byB7JHNpdGVuYW1lfSB1c2luZyB0aGlzIGVtYWlsIGFkZHJlc3MuIElmIHRoaXMgd2FzIHlvdSwgcGxlYXNlIGNsaWNrIG9uIHRoZSBmb2xsb3dpbmcgbGluayBhbmQgZW50ZXIgeW91ciB1c2VybmFtZSwgcGFzc3dvcmQsIGFuZCB0aGUgdW5pcXVlIGNvZGUgYmVsb3c8L3A+CiAgIDxwPkZvbGxvdyB0aGlzIGxpbms6IDxhIGhyZWY9InskdXJsfSI+eyR1cmx9PC9hPjwvcD4KICAgPHA+Q29kZTogeyRjb2RlfTwvcD4KPC9ib2R5Pgo8L2h0bWw+CjwhLS0gRW1haWxDb25maXJtIHRlbXBsYXRlIC0tPgonOwogIAogIHZhciAkZGZsdF9lbWFpbHVzZXJlZGl0ZWRfdGVtcGxhdGUgPSAnCjwhLS0gRW1haWxVc2VyRWRpdGVkIHRlbXBsYXRlIC0tPgo8aHRtbD4KPGJvZHk+CjxwPkdyZWV0aW5ncyB7JG5hbWV9IHdlbGNvbWUgdG8ge3NpdGVuYW1lfS4gIFRoaXMgZW1haWwgaXMgYmVpbmcgc2VudCBiZWNhdXNlLCBhbHRob3VnaCB5b3UgaGF2ZSBhbHJlYWR5IHJlZ2lzdGVyZWQgd2l0aCB7JHNpdGVuYW1lfSwgdGhlcmUgd2FzIGFuIGVycm9yIGluIHlvdXIgaW5wdXQuICBUaGUgYWRtaW5pc3RyYXRvciBoYXMgZG9uZSBoaXMgYmVzdCB0byBjb3JyZWN0IHRoaXMgZGF0YSwgYW5kIHlvdSBhcmUgbm93IGJlaW5nIHNlbnQgYW4gdXBkYXRlZCByZWdpc3RyYXRpb24gZm9ybS4gUGxlYXNlIGNsaWNrIG9uIHRoZSBmb2xsb3dpbmcgbGluayBhbmQgZW50ZXIgeW91ciB1c2VybmFtZSwgcGFzc3dvcmQsIGFuZCB0aGUgdW5pcXVlIGNvZGUgYmVsb3c8L3A+CiAgIDxwPkZvbGxvdyB0aGlzIGxpbms6IDxhIGhyZWY9InskdXJsfSI+eyR1cmx9PC9hPjwvcD4KICAge2lmICFlbXB0eSgkcGFzc3dvcmQpfTxwPlBhc3N3b3JkOiB7JHBhc3N3b3JkfTwvcD57L2lmfQogICA8cD5Db2RlOiB7JGNvZGV9PC9wPgo8L2JvZHk+CjwvaHRtbD4KPCEtLSBFbWFpbFVzZXJFZGl0ZWQgdGVtcGxhdGUgLS0+Cic7CiAgCiAgdmFyICRkZmx0X2VtYWlsdXNlcmVkaXRlZF90ZXh0dGVtcGxhdGUgPSAnR3JlZXRpbmdzIHskbmFtZX0gd2VsY29tZSB0byB7c2l0ZW5hbWV9LiAgVGhpcyBlbWFpbCBpcyBiZWluZyBzZW50IGJlY2F1c2UsIGFsdGhvdWdoIHlvdSBoYXZlIGFscmVhZHkgcmVnaXN0ZXJlZCB3aXRoIHskc2l0ZW5hbWV9LCB0aGVyZSB3YXMgYW4gZXJyb3IgaW4geW91ciBpbnB1dC4gIFRoZSBhZG1pbmlzdHJhdG9yIGhhcyBkb25lIGhpcyBiZXN0IHRvIGNvcnJlY3QgdGhpcyBkYXRhLCBhbmQgeW91IGFyZSBub3cgYmVpbmcgc2VudCBhbiB1cGRhdGVkIHJlZ2lzdHJhdGlvbiBmb3JtLiBQbGVhc2UgY2xpY2sgb24gdGhlIGZvbGxvd2luZyBsaW5rIGFuZCBlbnRlciB5b3VyIHVzZXJuYW1lLCBwYXNzd29yZCwgYW5kIHRoZSB1bmlxdWUgY29kZSBiZWxvd3tubH0KICAgRm9sbG93IHRoaXMgbGluazogeyR1cmx9e25sfQogICB7aWYgIWVtcHR5KCRwYXNzd29yZCl9IFBhc3N3b3JkOiB7JHBhc3N3b3JkfXtubH17L2lmfQogICBDb2RlOiB7JGNvZGV9e25sfQoKJzsKICAKICB2YXIgJGRmbHRfZmluYWxtZXNzYWdlX3RlbXBsYXRlID0gJwo8IS0tIEZpbmFsTWVzc2FnZSBUZW1wbGF0ZSAtLT4Ke2lmICFlbXB0eSgkaXNjcmVhdGVkKX0KICA8cD5XZWxjb21lIHskdXNlcm5hbWV9IHRvIHtzaXRlbmFtZX0uICBZb3VyIHJlZ2lzdHJhdGlvbiBpcyBjb21wbGV0ZS4gIFBsZWFzZSBsb2dpbiB0byBjb250aW51ZTwvcD4Ke2Vsc2VpZiAhZW1wdHkoJGlzX2xvZ2dlZF9pbil9CiAgPHA+V2VsY29tZSB7JHVzZXJuYW1lfSB0byB7c2l0ZW5hbWV9LiAgWW91ciByZWdpc3RyYXRpb24gaXMgY29tcGxldGUuPC9wPgp7ZWxzZX0KICA8cD5XZWxjb21lIHskdXNlcm5hbWV9IHRvIHtzaXRlbmFtZX0uICBZb3VyIHJlZ2lzdHJhdGlvbiBpcyBjb21wbGV0ZS4gIFlvdXIgYWNjb3VudCBpcyBub3cgd2FpdGluZyBhcHByb3ZhbCBieSBhbiBhZG1pbmlzdHJhdG9yLjwvcD4Key9pZn0KICAnOwogIAogIHZhciAkZGZsdF9wb3N0X3NlbmRhbm90aGVyZW1haWxfdGVtcGxhdGUgPSAnCjxoMz57JG1vZC0+TGFuZyhcJ3RpdGxlX2xvc3RlbWFpbFwnKX08L2gzPgp7aWYgaXNzZXQoJG1lc3NhZ2UpICYmICRtZXNzYWdlICE9IFwnXCd9CiAge2lmIGlzc2V0KCRlcnJvcikgJiYgJGVycm9yICE9IFwnXCd9CiAgICA8ZGl2IGNsYXNzPSJhbGVydCBhbGVydC1kYW5nZXIiPnskbWVzc2FnZX08L2Rpdj4KICB7ZWxzZX0KICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8iPnskbWVzc2FnZX08L2Rpdj4KICB7L2lmfQp7L2lmfQo8cD5UaGFuayB5b3UgeyR1c2VybmFtZX0gZm9yIHJlZ2lzdGVyaW5nIHdpdGggPGEgaHJlZj0ie3Jvb3RfdXJsfSI+e3NpdGVuYW1lfTwvYT4uICBXZSBhcmUgc29ycnkgeW91IGhhZCBkaWZmaWN1bHR5IHJlY2VpdmluZyB5b3VyIGVtYWlsLiAgQSBzZWNvbmQgZW1haWwgaGFzIGJlZW4gc2VudCB0byB7JGVtYWlsfSB3aXRoIGluc3RydWN0aW9ucyBvbiBob3cgdG8gY29udGludWUgdGhlIHJlZ2lzdHJhdGlvbiBwcm9jZXNzPC9wPgonOwogIAogIAogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgewogICAgcGFyZW50OjpfX2NvbnN0cnVjdCgpOwogICAgJHBsdWdpbnNfZGlyID0gY21zX2pvaW5fcGF0aCggJHRoaXMtPkdldE1vZHVsZVBhdGgoKSwgJ2xpYicsICdpbnRlcm5hbF9wbHVnaW5zJyApOwogICAgJHNtYXJ0eSA9IFxjbXNfdXRpbHM6OmdldF9zbWFydHkoKTsKICAgICRzbWFydHktPmFkZFBsdWdpbnNEaXIoJHBsdWdpbnNfZGlyKTsKICAgICRzbWFydHktPnJlZ2lzdGVyQ2xhc3MoJ21hbXNyZWcnLCBcTUFNU1JlZ2lzdHJhdGlvblxzbWFydHk6OmNsYXNzKTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIEFsbG93QXV0b0luc3RhbGwoKXsgcmV0dXJuIEZBTFNFOyB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIEFsbG93QXV0b1VwZ3JhZGUoKXsgcmV0dXJuIEZBTFNFOyB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIEdldE5hbWUoKXsgcmV0dXJuICdNQU1TUmVnaXN0cmF0aW9uJzsgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKXsgcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBNaW5pbXVtQ01TVmVyc2lvbigpeyByZXR1cm4gJzIuMi41JzsgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBMYXp5TG9hZEFkbWluKCl7IHJldHVybiBUUlVFOyB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIEdldFZlcnNpb24oKXsgcmV0dXJuICcxLjEuMCc7IH0KICAKICAvL3B1YmxpYyBmdW5jdGlvbiBHZXRIZWxwKCl7IHJldHVybiBAZmlsZV9nZXRfY29udGVudHMoX19ESVJfXyAuICcvaGVscC5pbmMnKTsgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBHZXRBdXRob3IoKXsgcmV0dXJuICdKbyBNb3JnJzsgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpeyByZXR1cm4gJ2pvbW9yZ0BjbXNtYWRlc2ltcGxlLm9yZyc7IH0KICAKICAvL3B1YmxpYyBmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKXsgcmV0dXJuIGZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18gLiAnL2NoYW5nZWxvZy5pbmMnKTsgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpeyByZXR1cm4gVFJVRTsgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBIYXNBZG1pbigpeyByZXR1cm4gVFJVRTsgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKXsgcmV0dXJuICd1c2Vyc2dyb3Vwcyc7IH0KICAKICBwdWJsaWMgZnVuY3Rpb24gR2V0RXZlbnREZXNjcmlwdGlvbigkZXZlbnRuYW1lKXsgcmV0dXJuICR0aGlzLT5MYW5nKCdldmVudF9kZXNjcmlwdGlvbl8nIC4gJGV2ZW50bmFtZSk7IH0KICAKICBwdWJsaWMgZnVuY3Rpb24gR2V0RXZlbnRIZWxwKCRldmVudG5hbWUpeyByZXR1cm4gJHRoaXMtPkxhbmcoJ2V2ZW50X2hlbHBfJyAuICRldmVudG5hbWUpOyB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24oKXsgcmV0dXJuICR0aGlzLT5MYW5nKCdtb2RkZXNjcmlwdGlvbicpOyB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7IH0KICAKICBwdWJsaWMgZnVuY3Rpb24gVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKXsgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0dW5pbnN0YWxsJyk7IH0KICAKICBwdWJsaWMgZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkKICB7CiAgICAkc3RhdHVzID0gJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTWFuYWdlIFJlZ2lzdGVyaW5nIFVzZXJzJykKICAgICAgICAgICAgICB8fCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpCiAgICAgICAgICAgICAgfHwgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpOwogICAgCiAgICByZXR1cm4gJHN0YXR1czsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpCiAgewogICAgcmV0dXJuIFsnQ01TTVNFeHQnID0+ICcxLjAuMScsICdNQU1TJyA9PiAnMS4wJywgJ1NtYXJ0eUV4dCcgPT4gJzEuMCddOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gSGFuZGxlc0V2ZW50cygpCiAgewogICAgcmV0dXJuICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd3BhaWRyZWdpc3RyYXRpb24nLCAwKTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIEluaXRpYWxpemVGcm9udGVuZCgpCiAgewogICAgJHRoaXMtPlJlZ2lzdGVyTW9kdWxlUGx1Z2luKCk7CiAgICAkdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7CiAgCiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbW9kZScsIENMRUFOX1NUUklORyk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9jYXB0Y2hhJywgQ0xFQU5fSU5UKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdncm91cCcsIENMRUFOX1NUUklORyk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9pbmxpbmUnLCBDTEVBTl9JTlQpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2Rlc3RwYWdlJywgQ0xFQU5fU1RSSU5HKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdncm91cCcsIENMRUFOX1NUUklORyk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncGtnJywgQ0xFQU5fSU5UKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdvbmx5aHJlZicsIENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbGlua3RleHQnLCBDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ25vaW5saW5lJywgQ0xFQU5fSU5UKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdhbGxvd292ZXJ3cml0ZScsIENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9maW5hbG1lc3NhZ2UnLCBDTEVBTl9JTlQpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2lucHV0X3VzZXJuYW1lJywgQ0xFQU5fU1RSSU5HKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpbnB1dF9jb2RlJywgQ0xFQU5fU1RSSU5HKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpbnB1dF9ncm91cF9pZCcsIENMRUFOX0lOVCk7IC8vIHRvZG8sIHJlbW92ZSBtZS4KICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpbnB1dF9wYXNzd29yZCcsIENMRUFOX1NUUklORyk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbGlua3RleHQnLCBDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3JlZ3RlbXBsYXRlJywgQ0xFQU5fU1RSSU5HKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCd2ZXJpZnl0ZW1wbGF0ZScsIENMRUFOX1NUUklORyk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAgLiAnL21yXy4qLycsIENMRUFOX1NUUklORyk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAgLiAnL21hbXNyZWdfLiovJywgQ0xFQU5fU1RSSU5HKTsKICAgIAogICAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoCiAgICAgICcvW01tXWFtc3JlZ1wvcmVnaXN0ZXJcLyg/UDxyZXR1cm5pZD5bMC05XSspXC8oP1A8Z3JvdXA+LiopJC8nLAogICAgICBbJ2FjdGlvbicgPT4gJ3NpZ25wJ10KICAgICk7CiAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgKICAgICAgJy9bTW1dYW1zcmVnXC9jb25maXJtXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKVwvKD9QPG1yX2RhdGE+Lio/KSQvJywgWydhY3Rpb24nID0+ICdjb25maXJtJ10KICAgICk7CiAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgKICAgICAgJy9bTW1dYW1zcmVnXC92ZXJpZnlcLyg/UDxyZXR1cm5pZD5bMC05XSspXC8oP1A8bXJfZGF0YT4uKj8pJC8nLCBbJ2FjdGlvbicgPT4gJ3ZlcmlmeSddCiAgICApOwogIH0KICAKICAvLyBkZXByZWNhdGVkCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIG15UmVkaXJlY3RUb1RhYigkaWQsICR0YWIsICRwYXJhbXMgPSAnJykKICB7CiAgICAkcGFybXMgPSBbXTsKICAgIAogICAgaWYoaXNfYXJyYXkoJHBhcmFtcykpIHsgJHBhcm1zID0gJHBhcmFtczsgfQogICAgCiAgICB1bnNldCgkcGFybXNbJ2hpZGRlbl9wYXNzd29yZCddKTsKICAgIHVuc2V0KCRwYXJtc1snaGlkZGVuX3JlcGVhdHBhc3N3b3JkJ10pOwogICAgdW5zZXQoJHBhcm1zWydpbnB1dF9wYXNzd29yZCddKTsKICAgIHVuc2V0KCRwYXJtc1snaW5wdXRfcmVwZWF0cGFzc3dvcmQnXSk7CiAgICB1bnNldCgkcGFybXNbJ3Bhc3N3b3JkJ10pOwogICAgdW5zZXQoJHBhcm1zWydyZXBlYXRwYXNzd29yZCddKTsKICAgIHVuc2V0KCRwYXJtc1snYWN0aW9uJ10pOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCAkdGFiLCAkcGFybXMpOwogIH0KICAKICBwcm90ZWN0ZWQgZnVuY3Rpb24gbXlSZWRpcmVjdCgkaWQsICRhY3Rpb24sICRyZXR1cm5pZCwgJHBhcmFtcyA9ICcnKQogIHsKICAgIC8vIHVuc2V0IGFueSBwYXNzd29yZCB0aGluZ3MKICAgIHVuc2V0KCRwYXJhbXNbJ2hpZGRlbl9wYXNzd29yZCddKTsKICAgIHVuc2V0KCRwYXJhbXNbJ2hpZGRlbl9yZXBlYXRwYXNzd29yZCddKTsKICAgIHVuc2V0KCRwYXJhbXNbJ2lucHV0X3Bhc3N3b3JkJ10pOwogICAgdW5zZXQoJHBhcmFtc1snaW5wdXRfcmVwZWF0cGFzc3dvcmQnXSk7CiAgICB1bnNldCgkcGFyYW1zWydwYXNzd29yZCddKTsKICAgIHVuc2V0KCRwYXJhbXNbJ3JlcGVhdHBhc3N3b3JkJ10pOwogICAgdW5zZXQoJHBhcmFtc1snYWN0aW9uJ10pOwogICAgCiAgICByZXR1cm4gJHRoaXMtPkRvQWN0aW9uKCRhY3Rpb24sICRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIERvQWN0aW9uKCRhY3Rpb24sICRpZCwgJHBhcmFtcywgJHJldHVybmlkID0gLTEpCiAgewogICAgJGdDbXMgICA9IGNtc21zKCk7CiAgICAkc21hcnR5ID0gJGdDbXMtPkdldFNtYXJ0eSgpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdtYW1zcmVnYWN0aW9uaWQnLCAkaWQpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdtYW1zcmVncGFyYW1zJywgJHBhcmFtcyk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ21vZCcsICR0aGlzKTsKICAgICRzbWFydHktPmFzc2lnbigkdGhpcy0+R2V0TmFtZSgpLCAkdGhpcyk7CiAgICAKICAgIHN3aXRjaCgkYWN0aW9uKQogICAgewogICAgICBjYXNlICdkZWxldGV0ZW1wdXNlcic6CiAgICAgICAgaWYoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTWFuYWdlIFJlZ2lzdGVyaW5nIFVzZXJzJykpCiAgICAgICAgewogICAgICAgICAgJHRoaXMtPl9Eb0RlbGV0ZVVzZXIoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwogICAgICAgIH0KICAgICAgYnJlYWs7CiAgICAgIAogICAgICBjYXNlICdkb19kZWxldGV1c2Vyc2J1bGsnOgogICAgICAgIGlmKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBSZWdpc3RlcmluZyBVc2VycycpKQogICAgICAgIHsKICAgICAgICAgICR0aGlzLT5fRG9EZWxldGVCdWxrVXNlcnMoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwogICAgICAgIH0KICAgICAgYnJlYWs7CiAgICAgIAogICAgICBjYXNlICdzZXRfcmVnMnRlbXBsYXRlJzoKICAgICAgICBpZigkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykpCiAgICAgICAgewogICAgICAgICAgJHRoaXMtPl9TZXRBZG1pblJlZzJUZW1wbGF0ZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7CiAgICAgICAgfQogICAgICBicmVhazsKICAgICAgCiAgICAgIGNhc2UgJ3NldF9lbWFpbGNvbmZpcm1fdGVtcGxhdGUnOgogICAgICAgIGlmKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSkKICAgICAgICB7CiAgICAgICAgICAkdGhpcy0+X1NldEFkbWluRW1haWxDb25maXJtVGVtcGxhdGUoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwogICAgICAgIH0KICAgICAgYnJlYWs7CiAgICAgIAogICAgICBjYXNlICdzZXRfZW1haWx1c2VyZWRpdGVkX3RlbXBsYXRlJzoKICAgICAgICBpZigkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykpCiAgICAgICAgewogICAgICAgICAgJHRoaXMtPl9TZXRBZG1pbkVtYWlsVXNlckVkaXRlZFRlbXBsYXRlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKICAgICAgICB9CiAgICAgIGJyZWFrOwogICAgICAKICAgICAgY2FzZSAnc2V0X2ZpbmFsbWVzc2FnZV90ZW1wbGF0ZSc6CiAgICAgICAgaWYoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpKQogICAgICAgIHsKICAgICAgICAgICR0aGlzLT5fU2V0QWRtaW5GaW5hbE1lc3NhZ2VUZW1wbGF0ZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7CiAgICAgICAgfQogICAgICBicmVhazsKICAgICAgCiAgICAgIGNhc2UgJ3NldF9zZW5kYW5vdGhlcmVtYWlsX3RlbXBsYXRlJzoKICAgICAgICBpZigkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykpCiAgICAgICAgewogICAgICAgICAgJHRoaXMtPl9TZXRBZG1pblNlbmRBbm90aGVyRW1haWxUZW1wbGF0ZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7CiAgICAgICAgfQogICAgICBicmVhazsKICAgICAgCiAgICAgIGRlZmF1bHQ6CiAgICAgICAgcmV0dXJuIHBhcmVudDo6RG9BY3Rpb24oJGFjdGlvbiwgJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOwogICAgfSAvLyBzd2l0Y2gKICB9CiAgCiAgCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgX0NyZWF0ZUZyb250ZW5kVXNlcigkaWQsICRwYXJhbXMsICRyZXR1cm5faWQgKQogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIHByb3RlY3RlZCBmdW5jdGlvbiBfQ3JlYXRlRnJvbnRlbmRVc2VyKCR0bXBpZCwgJHVzZXJuYW1lLCAkcGFzc3dvcmQsICRleHBpcmVzID0gJycsICRub3RpZnlhZG1pbiA9IHRydWUpCiAgewogICAgJGdDbXMgPSBjbXNtcygpOwogICAgJGRiICAgPSAkZ0Ntcy0+R2V0RGIoKTsKICAgICRtYW1zID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdNQU1TJyk7CiAgICAkcmVzID0gRkFMU0U7CiAgICAKICAgIGlmKCEkbWFtcykKICAgIHsKICAgICAgcmV0dXJuIFtGQUxTRSwgJHRoaXMtPkxhbmcoJ2Vycm9yX25vbWFtc21vZHVsZScpXTsKICAgIH0KICAgIAogICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfbWFtc3JlZ2lzdHJhdGlvbl91c2VycyBXSEVSRSBpZCA9ID8nOwogICAgJHJvdyAgID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBbJHRtcGlkXSk7CiAgICAKICAgIGlmKCEkcm93KQogICAgewogICAgICByZXR1cm4gW0ZBTFNFLCAkdGhpcy0+TGFuZygnZXJyb3JfdXNlcm5vdGZvdW5kJyldOwogICAgfQogICAgCiAgICAkcSAgICA9ICdTRUxFQ1QgZ2lkIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfbWFtc3JlZ2lzdHJhdGlvbl9ncnBzIFdIRVJFIHVzZXIgPSA/JzsKICAgICRncnBzID0gJGRiLT5HZXRDb2woJHEsIFskdG1waWRdKTsKICAgIAogICAgaWYoIWlzX2FycmF5KCRncnBzKSB8fCAwID09PSBjb3VudCgkZ3JwcykpCiAgICB7CiAgICAgICRnaWQgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9ncm91cCcsIC0xKTsKICAgICAgCiAgICAgIGlmKCRnaWQgIT0gLTEpIHsgJGdycHMgPSBhcnJheSgkZ2lkKTsgfQogICAgfQogICAgCiAgICAjIHdlIHdvbid0IGJlIGVuZm9yY2luZyBtYW5kYXRvcnkgZ3JvdXBzCi8vICAgIGlmKCFpc19hcnJheSgkZ3JwcykgfHwgY291bnQoJGdycHMpID09IDApCi8vICAgIHsKLy8gICAgICByZXR1cm4gYXJyYXkoRkFMU0UsICR0aGlzLT5MYW5nKCdlcnJvcl9ub2dyb3VwcycpKTsKLy8gICAgfQogICAgCiAgICBpZighJGV4cGlyZXMpCiAgICB7CiAgICAgICR0aW1lcGVyaW9kID0gbWF4KDEsICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdleHBpcmVhZ2VfbW9udGhzJywgLTEpKTsKICAgICAgCiAgICAgIGlmKCR0aW1lcGVyaW9kID4gMCkKICAgICAgewogICAgICAgICRleHBpcmVzID0gc3RydG90aW1lKCIreyR0aW1lcGVyaW9kfSBtb250aHMiKTsKICAgICAgfQogICAgICAKICAgICAgaWYoISRleHBpcmVzKQogICAgICB7CiAgICAgICAgJGV4cGlyZXMgPSBQSFBfSU5UX01BWDsKICAgICAgfQogICAgfQogICAgCiAgICBpZigkcm93WydvdmVyd3JpdGVfdWlkJ10pCiAgICB7CiAgICAgIC8vIHdlJ3JlIG92ZXJ3cml0aW5nIGEgdXNlciBhY2NvdW50CiAgICAgICRyZXN1bHQgPSAkbWFtcy0+U2V0VXNlcigkcm93WydvdmVyd3JpdGVfdWlkJ10sICR1c2VybmFtZSwgJHBhc3N3b3JkLCAkZXhwaXJlcyk7CiAgICAgIAogICAgICBpZighJHJlc3VsdFswXSkKICAgICAgewogICAgICAgIHJldHVybiBbRkFMU0UsICRyZXN1bHRbMV1dOwogICAgICB9CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICRyZXN1bHQgPSAkbWFtcy0+QWRkVXNlcigkdXNlcm5hbWUsICRwYXNzd29yZCwgJGV4cGlyZXMpOwogICAgICAKICAgICAgaWYoJHJlc3VsdFswXSA9PSBGQUxTRSkKICAgICAgewogICAgICAgIHJldHVybiBbRkFMU0UsICRyZXN1bHRbMV1dOwogICAgICB9CiAgICB9CiAgICAKICAgICR1aWQgPSAkcmVzdWx0WzFdOwogICAgLy8kbWFtcy0+U2V0RW5jcnlwdGlvbktleSgkdWlkLCAxKTsKICAgIAogICAgLy8gYW5kIGFkZCB0aGUgdXNlciB0byB3aGF0ZXZlciBncm91cCBzcGVjaWZpZWQgaW4gdGhlIGdyb3VwcyBwYXJhbWV0ZXIKICAgIAogICAgaWYoaXNfYXJyYXkoJGdycHMpICYmIGNvdW50KCRncnBzKSkKICAgIHsKICAgICAgZm9yZWFjaCgkZ3JwcyBhcyAkZ2lkKQogICAgICB7CiAgICAgICAgJHJlcyA9ICRtYW1zLT5Bc3NpZ25Vc2VyVG9Hcm91cCgkdWlkLCAkZ2lkKTsKICAgICAgICBpZighJHJlcykKICAgICAgICB7CiAgICAgICAgICByZXR1cm4gYXJyYXkoRkFMU0UsICR0aGlzLT5MYW5nKCd3YXJuaW5nX2NvdWxkbm90YWRkZ3JvdXAnKSk7CiAgICAgICAgfQogICAgICB9CiAgICB9CgogICAgLy8gaGUncyBpbi4uLi4gbm93IGp1c3QgYWRkIGhpcyBwcm9wZXJ0aWVzIGlmIHdlIGhhdmUgZ3JvdXBzCiAgICBpZigkcmVzKQogICAgewogICAgICAkcSAgICAgICAgPSAiU0VMRUNUICogRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX3Byb3BlcnRpZXMgV0hFUkUgdXNlciA9ID8iOwogICAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHEsIGFycmF5KCR0bXBpZCkpOwogIAogICAgICBpZighJGRicmVzdWx0KQogICAgICB7CiAgICAgICAgcmV0dXJuIFtGQUxTRSwgJHRoaXMtPkxhbmcoJ2Vycm9yX2RiZXJyb3InKV07CiAgICAgIH0KICAgICAgCiAgICAgIHdoaWxlKCRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCiAgICAgIHsKICAgICAgICAkbWFtcy0+U2V0VXNlclByb3BlcnR5RnVsbCgkcm93Wyd0aXRsZSddLCAkcm93WydkYXRhJ10sICR1aWQpOwogICAgICB9CiAgICB9CiAgICAKICAgIC8vIGRvIGEgaG9vawogICAgXENNU01TXEhvb2tNYW5hZ2VyOjpkb19ob29rKCdNQU1TUmVnaXN0cmF0aW9uOjpvblVzZXJSZWdpc3RlcmVkJywgWyd1c2VybmFtZScgPT4gJHVzZXJuYW1lLCAnaWQnID0+ICR1aWRdKTsKICAgIAogICAgLy8gYW5kIG5vdGlmeSB0aGUgYWRtaW5pc3RyYXRvcgogICAgLy8gaWYgdGhlIGFkbWluIHdhbnRzIG5vdGlmaWNhdGlvbnMuCiAgICAvLyBvZmYgd2UgZ28uCiAgICB0cnkKICAgIHsKICAgICAgaWYoaXNzZXQoJG5vdGlmeWFkbWluKSl7CiAgICAgICAgJHRoaXMtPl9TZW5kUmVnaXN0cmF0aW9uTm90aWZpY2F0aW9uKCR1c2VybmFtZSwgJHVpZCwgJGdycHMpOwogICAgICB9CiAgICB9CiAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApCiAgICB7CiAgICAgIFxhdWRpdCgnJywgJHRoaXMtPkdldE5hbWUoKSwgJGUtPkdldE1lc3NhZ2UoKSk7CiAgICB9CiAgICAKICAgIGF1ZGl0KCcnLCAkdGhpcy0+R2V0TmFtZSgpLCAiVXNlciAkdXNlcm5hbWUgYXNzaWduZWQgdG8gTUFNUyIpOwogICAgCiAgICByZXR1cm4gW1RSVUUsICR1aWRdOwogIH0KICAKICAvKioKICAgKiBAcGFyYW0gJHVzZXJuYW1lCiAgICogQHBhcmFtICR1aWQKICAgKiBAcGFyYW0gJGdycHMKICAgKgogICAqIEByZXR1cm4gdm9pZAogICAqIEB0aHJvd3MgXFNtYXJ0eUV4Y2VwdGlvbgogICAqIEBkZXByZWNhdGVkIHVzZSBub3RpZmljYXRpb25zIGNsYXNzIGluc3RlYWQKICAgKiBAc2VlIFxNQU1TUmVnaXN0cmF0aW9uXG5vdGlmaWNhdGlvbnMKICAgKi8KICBwcm90ZWN0ZWQgZnVuY3Rpb24gX1NlbmRSZWdpc3RyYXRpb25Ob3RpZmljYXRpb24oJHVzZXJuYW1lLCAkdWlkID0gTlVMTCwgJGdycHMgPSBOVUxMKQogIHsKICAgIFxNQU1TUmVnaXN0cmF0aW9uXG5vdGlmaWNhdGlvbnM6OmdldEluc3RhbmNlKCktPk9uUmVnaXN0cmF0aW9uKCR1c2VybmFtZSwgJHVpZCwgJGdycHMpOwogIH0KICAKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBEaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybl9pZCwgJG1lc3NhZ2UpCiAgIE5PVCBQQVJUIE9GIFRIRSBNT0RVTEUgQVBJCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCwgJG1lc3NhZ2UgPSAnJykKICB7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Vycm9yJywgJHRoaXMtPkxhbmcoJ2Vycm9yJykpOwogICAgaWYoJG1lc3NhZ2UgIT0gJycpCiAgICB7CiAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignbWVzc2FnZScsICRtZXNzYWdlKTsKICAgIH0KICAgIAogICAgLy8gRGlzcGxheSB0aGUgcG9wdWxhdGVkIHRlbXBsYXRlCiAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2Vycm9yLnRwbCcpOwogIH0KICAKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBfRG9EZWxldGVCdWxrVXNlcnMoJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkKQogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIHByb3RlY3RlZCBmdW5jdGlvbiBfRG9EZWxldGVCdWxrVXNlcnMoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgICR0bXAgPSBhcnJheSgpOwogICAgZm9yZWFjaCgkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlKQogICAgewogICAgICBpZigka2V5ID09ICdtYXJrZGVsZXRlXycgLiAkdmFsdWUpCiAgICAgIHsKICAgICAgICAkdG1wW10gPSAkdmFsdWU7CiAgICAgIH0KICAgIH0KICAgIGlmKGNvdW50KCR0bXApKQogICAgewogICAgICAkdGhpcy0+RGVsZXRlVGVtcFVzZXIoJHRtcCk7CiAgICB9CiAgICAkdGhpcy0+bXlSZWRpcmVjdFRvVGFiKCRpZCwgJ2FkbWludXNlcnMnKTsKICB9CiAgCiAgCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgX0RvRGVsZXRlVXNlcigkaWQsICRwYXJhbXMsICRyZXR1cm5faWQsICRtZXNzYWdlKQogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIHByb3RlY3RlZCBmdW5jdGlvbiBfRG9EZWxldGVVc2VyKCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKICB7CiAgICBpZighaXNzZXQoJHBhcmFtc1sndXNlcl9pZCddKSkKICAgIHsKICAgICAgLy8gdGhpcyBpcyB1Z2x5IGZvciB0aGUgdXNlciB0byBzZWUKICAgICAgLy8gYnV0IGF0IGxlYXN0IHRoZSBhZG1pbiB3aWxsIGJlIGFibGUgdG8gZmlndXJlIGl0IG91dAogICAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKSk7CiAgICAgIAogICAgICByZXR1cm47CiAgICB9CiAgICAKICAgICRpZCA9ICRwYXJhbXNbJ3VzZXJfaWQnXTsKICAgICR0aGlzLT5EZWxldGVUZW1wVXNlcigkaWQpOwogICAgJHRoaXMtPm15UmVkaXJlY3RUb1RhYignJywgJ2FkbWludXNlcnMnKTsKICB9CiAgCiAgLyoqCiAgICogQHBhcmFtICRpZAogICAqIEBwYXJhbSAkcmV0dXJuaWQKICAgKiBAcGFyYW0gJGFkZHJlc3MKICAgKiBAcGFyYW0gJHVzZXJuYW1lCiAgICogQHBhcmFtICRjb2RlCiAgICoKICAgKiBAcmV0dXJuIHZvaWQKICAgKiBAdGhyb3dzIFxTbWFydHlFeGNlcHRpb24KICAgKiBAZGVwcmVjYXRlZCB1c2Ugbm90aWZpY2F0aW9ucyBjbGFzcyBpbnN0ZWFkCiAgICogQHNlZSAgICAgICAgXE1BTVNSZWdpc3RyYXRpb25cbm90aWZpY2F0aW9ucwogICAqLwogIHByb3RlY3RlZCBmdW5jdGlvbiBfU2VuZFVzZXJDb25maXJtYXRpb25FbWFpbCgkaWQgPSBOVUxMLCAkcmV0dXJuaWQgPSBOVUxMLCAkYWRkcmVzcyA9IE5VTEwsICR1c2VybmFtZSA9IE5VTEwsICRjb2RlID0gTlVMTCkKICB7CiAgICBcTUFNU1JlZ2lzdHJhdGlvblxub3RpZmljYXRpb25zOjpnZXRJbnN0YW5jZSgpLT5TZW5kVXNlckNvbmZpcm1hdGlvbkVtYWlsKCRpZCwgJHJldHVybmlkLCAkYWRkcmVzcywgJHVzZXJuYW1lLCAkY29kZSk7CiAgfQogIAogIAogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIFNldEFkbWluUmVnMlRlbXBsYXRlKCRpZCwgJHBhcmFtcywgJHJldHVybl9pZCwgJG1lc3NhZ2UpCiAgIE5PVCBQQVJUIE9GIFRIRSBNT0RVTEUgQVBJCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9TZXRBZG1pblJlZzJUZW1wbGF0ZSgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgaWYoaXNzZXQoJHBhcmFtc1snZGVmYXVsdGJ1dHRvbiddKSkKICAgIHsKICAgICAgJHRoaXMtPlNldFRlbXBsYXRlKCdtYW1zcmVnX3JlZzJ0ZW1wbGF0ZScsIGZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18gLiAnL3RlbXBsYXRlcy9vcmlnX3JlZ2lzdHJhdGlvbjIudHBsJykpOwogICAgfQogICAgZWxzZSBpZihpc3NldCgkcGFyYW1zWyd0ZW1wbGF0ZWNvbnRlbnQnXSkpCiAgICB7CiAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnbWFtc3JlZ19yZWcydGVtcGxhdGUnLCAkcGFyYW1zWyd0ZW1wbGF0ZWNvbnRlbnQnXSk7CiAgICB9CiAgICAkdGhpcy0+bXlSZWRpcmVjdFRvVGFiKCRpZCwgJ3JlZzJ0ZW1wbGF0ZScpOwogIH0KICAKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBTZXRBZG1pbkVtYWlsQ29uZmlybWF0aW9uVGVtcGxhdGUoJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkLCAkbWVzc2FnZSkKICAgTk9UIFBBUlQgT0YgVEhFIE1PRFVMRSBBUEkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBwcm90ZWN0ZWQgZnVuY3Rpb24gX1NldEFkbWluRW1haWxDb25maXJtVGVtcGxhdGUoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgIGlmKGlzc2V0KCRwYXJhbXNbJ2RlZmF1bHRidXR0b24nXSkpCiAgICB7CiAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnbWFtc3JlZ19lbWFpbGNvbmZpcm1fdGVtcGxhdGUnLCAkdGhpcy0+ZGZsdF9lbWFpbGNvbmZpcm1fdGVtcGxhdGUpOwogICAgfQogICAgZWxzZQogICAgewogICAgICAkaHRtbHRlbXBsYXRlID0gJyc7CiAgICAgICRzdWJqZWN0ICAgICAgPSAnJzsKICAgICAgaWYoaXNzZXQoJHBhcmFtc1sndGVtcGxhdGVjb250ZW50J10pKQogICAgICB7CiAgICAgICAgJGh0bWx0ZW1wbGF0ZSA9ICRwYXJhbXNbJ3RlbXBsYXRlY29udGVudCddOwogICAgICB9CiAgICAgIGlmKGlzc2V0KCRwYXJhbXNbJ2lucHV0X3N1YmplY3QnXSkpCiAgICAgIHsKICAgICAgICAkc3ViamVjdCA9ICRwYXJhbXNbJ2lucHV0X3N1YmplY3QnXTsKICAgICAgfQogICAgICBpZigkc3ViamVjdCA9PSAnJykKICAgICAgewogICAgICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2Vycm9yX211c3RzcGVjaWZ5c3ViamVjdCcpKTsKICAgICAgICAKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgCiAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnbWFtc3JlZ19lbWFpbGNvbmZpcm1fdGVtcGxhdGUnLCAkcGFyYW1zWyd0ZW1wbGF0ZWNvbnRlbnQnXSk7CiAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtYW1zcmVnX2VtYWlsY29uZmlybV9zdWJqZWN0JywgJHBhcmFtc1snaW5wdXRfc3ViamVjdCddKTsKICAgIH0KICAgICR0aGlzLT5teVJlZGlyZWN0VG9UYWIoJGlkLCAnZW1haWxjb25maXJtX3RlbXBsYXRlJyk7CiAgfQogIAogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIFNldEFkbWluRmluYWxNZXNzYWdlVGVtcGxhdGUoJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkLCAkbWVzc2FnZSkKICAgTk9UIFBBUlQgT0YgVEhFIE1PRFVMRSBBUEkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBwcm90ZWN0ZWQgZnVuY3Rpb24gX1NldEFkbWluRmluYWxNZXNzYWdlVGVtcGxhdGUoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgIGlmKGlzc2V0KCRwYXJhbXNbJ2RlZmF1bHRidXR0b24nXSkpCiAgICB7CiAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnbWFtc3JlZ19maW5hbG1lc3NhZ2VfdGVtcGxhdGUnLCAkdGhpcy0+ZGZsdF9maW5hbG1lc3NhZ2VfdGVtcGxhdGUpOwogICAgfQogICAgZWxzZSBpZihpc3NldCgkcGFyYW1zWyd0ZW1wbGF0ZWNvbnRlbnQnXSkpCiAgICB7CiAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnbWFtc3JlZ19maW5hbG1lc3NhZ2VfdGVtcGxhdGUnLCAkcGFyYW1zWyd0ZW1wbGF0ZWNvbnRlbnQnXSk7CiAgICB9CiAgICAkdGhpcy0+bXlSZWRpcmVjdFRvVGFiKCRpZCwgJ2ZpbmFsbWVzc2FnZV90ZW1wbGF0ZScpOwogIH0KICAKICAKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBTZXRBZG1pbkVtYWlsQ29uZmlybWF0aW9uVGVtcGxhdGUoJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkLCAkbWVzc2FnZSkKICAgTk9UIFBBUlQgT0YgVEhFIE1PRFVMRSBBUEkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBwcm90ZWN0ZWQgZnVuY3Rpb24gX1NldEFkbWluRW1haWxVc2VyRWRpdGVkVGVtcGxhdGUoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgIGlmKGlzc2V0KCRwYXJhbXNbJ2RlZmF1bHRidXR0b24nXSkpCiAgICB7CiAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnbWFtc3JlZ19lbWFpbHVzZXJlZGl0ZWRfdGVtcGxhdGUnLCAkdGhpcy0+ZGZsdF9lbWFpbHVzZXJlZGl0ZWRfdGVtcGxhdGUpOwogICAgfQogICAgZWxzZQogICAgewogICAgICAkaHRtbHRlbXBsYXRlID0gJyc7CiAgICAgICRzdWJqZWN0ICAgICAgPSAnJzsKICAgICAgaWYoaXNzZXQoJHBhcmFtc1sndGVtcGxhdGVjb250ZW50J10pKQogICAgICB7CiAgICAgICAgJGh0bWx0ZW1wbGF0ZSA9ICRwYXJhbXNbJ3RlbXBsYXRlY29udGVudCddOwogICAgICB9CiAgICAgIGlmKGlzc2V0KCRwYXJhbXNbJ2lucHV0X3N1YmplY3QnXSkpCiAgICAgIHsKICAgICAgICAkc3ViamVjdCA9ICRwYXJhbXNbJ2lucHV0X3N1YmplY3QnXTsKICAgICAgfQogICAgICBpZigkc3ViamVjdCA9PSAnJykKICAgICAgewogICAgICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2Vycm9yX211c3RzcGVjaWZ5c3ViamVjdCcpKTsKICAgICAgICAKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgCiAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnbWFtc3JlZ19lbWFpbHVzZXJlZGl0ZWRfdGVtcGxhdGUnLCAkcGFyYW1zWyd0ZW1wbGF0ZWNvbnRlbnQnXSk7CiAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtYW1zcmVnX2VtYWlsdXNlcmVkaXRlZF9zdWJqZWN0JywgJHBhcmFtc1snaW5wdXRfc3ViamVjdCddKTsKICAgIH0KICAgICR0aGlzLT5teVJlZGlyZWN0VG9UYWIoJGlkLCAnZW1haWx1c2VyZWRpdGVkX3RlbXBsYXRlJyk7CiAgfQogIAogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIFNldEFkbWluU2V0QW5vdGhlckVtYWlsVGVtcGxhdGUoJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkLCAkbWVzc2FnZSkKICAgTk9UIFBBUlQgT0YgVEhFIE1PRFVMRSBBUEkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBwcm90ZWN0ZWQgZnVuY3Rpb24gX1NldEFkbWluU2VuZEFub3RoZXJFbWFpbFRlbXBsYXRlKCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKICB7CiAgICBpZihpc3NldCgkcGFyYW1zWydkZWZhdWx0YnV0dG9uJ10pKQogICAgewogICAgICAkdGhpcy0+U2V0VGVtcGxhdGUoCiAgICAgICAgJ21hbXNyZWdfc2VuZGFub3RoZXJlbWFpbF90ZW1wbGF0ZScsIEBmaWxlX2dldF9jb250ZW50cyhfX0RJUl9fIC4gJy90ZW1wbGF0ZXMvb3JpZ19zZW5kYW5vdGhlcmVtYWlsX2Zvcm0udHBsJykKICAgICAgKTsKICAgICAgJHRoaXMtPlNldFRlbXBsYXRlKCdtYW1zcmVnX3Bvc3Rfc2VuZGFub3RoZXJlbWFpbF90ZW1wbGF0ZScsICR0aGlzLT5kZmx0X3Bvc3Rfc2VuZGFub3RoZXJlbWFpbF90ZW1wbGF0ZSk7CiAgICB9CiAgICBlbHNlIGlmKGlzc2V0KCRwYXJhbXNbJ3RlbXBsYXRlY29udGVudCddKSkKICAgIHsKICAgICAgJHRoaXMtPlNldFRlbXBsYXRlKCdtYW1zcmVnX3NlbmRhbm90aGVyZW1haWxfdGVtcGxhdGUnLCAkcGFyYW1zWyd0ZW1wbGF0ZWNvbnRlbnQnXSk7CiAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnbWFtc3JlZ19wb3N0X3NlbmRhbm90aGVyZW1haWxfdGVtcGxhdGUnLCAkcGFyYW1zWyd0ZW1wbGF0ZWNvbnRlbnQyJ10pOwogICAgfQogICAgJHRoaXMtPm15UmVkaXJlY3RUb1RhYigkaWQsICdzZW5kYW5vdGhlcmVtYWlsX3RlbXBsYXRlJyk7CiAgfQogIAogIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgLy8gQVBJIEZVTkNUSU9OUwogIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgCiAgcHVibGljIGZ1bmN0aW9uIEFkZFRlbXBVc2VyUHJvcGVydHkoJHVpZCwgJHByb3BuYW1lLCAkcHJvcHZhbHVlKQogIHsKICAgICRkYiAgICAgICA9ICR0aGlzLT5HZXREYigpOwogICAgJGlkICAgICAgID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX21hbXNyZWdpc3RyYXRpb25fcHJvcGVydGllc19zZXEiKTsKICAgICRxICAgICAgICA9ICJJTlNFUlQgSU5UTyAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX3Byb3BlcnRpZXMgVkFMVUVTICg/LD8sPyw/KSI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHEsIFskaWQsICR1aWQsICRwcm9wbmFtZSwgJHByb3B2YWx1ZV0pOwogICAgCiAgICBpZighJGRicmVzdWx0KQogICAgewogICAgICByZXR1cm4gW0ZBTFNFLCAkZGItPnNxbCAuICcgLSAnIC4gJGRiLT5FcnJvck1zZygpXTsKICAgIH0KICAgIAogICAgcmV0dXJuIFtUUlVFLCAnJ107CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBDb3VudFRlbXBVc2VycygpCiAgewogICAgJGRiICAgICAgID0gJHRoaXMtPkdldERiKCk7CiAgICAkcSAgICAgICAgPSAiU0VMRUNUIGNvdW50KGlkKSBhcyBjb3VudCBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX21hbXNyZWdpc3RyYXRpb25fdXNlcnMiOwogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxKTsKICAgIGlmKCEkZGJyZXN1bHQpCiAgICB7CiAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KICAgICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCk7CiAgICAKICAgIHJldHVybiAkcm93Wydjb3VudCddOwogIH0KICAKICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2VuY3J5cHRpb25fa2V5KCR1c2VybmFtZSkKICB7CiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAKICAgIHJldHVybiBtZDUoX19GSUxFX18gLiAkdXNlcm5hbWUgLiAkY29uZmlnWydyb290X3VybCddKTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIENyZWF0ZVRlbXBVc2VyKCRnaWQsICR1c2VybmFtZSwgJHBhc3N3b3JkLCAkY29kZSwgJG92ZXJ3cml0ZV91aWQgPSBOVUxMKQogIHsKICAgIGlmKCcnID09ICR1c2VybmFtZSB8fCAnJyA9PSAkcGFzc3dvcmQpCiAgICB7CiAgICAgIHJldHVybiBbRkFMU0UsICdVc2VybmFtZSBvciBwYXNzd29yZCBpcyBpbnZhbGlkJ107CiAgICB9CiAgCiAgICAkZGIgICAgICAgPSAkdGhpcy0+R2V0RGIoKTsKICAgICRtYW1zICAgICA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnTUFNUycpOwogICAgJGtleSAgICAgID0gJHRoaXMtPmdldF9lbmNyeXB0aW9uX2tleSgkdXNlcm5hbWUpOwogICAgJHBhc3N3b3JkID0gYmFzZTY0X2VuY29kZSgkdGhpcy0+ZW5jcnlwdCgka2V5LCAkcGFzc3dvcmQpKTsKICAgIAogICAgLy8gZ2V0IGFuIGlkCiAgICAkaWQgICAgICAgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfbWFtc3JlZ2lzdHJhdGlvbl91c2Vyc19zZXEiKTsKICAgICRxICAgICAgICA9ICJJTlNFUlQgSU5UTyAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX3VzZXJzIChpZCxncm91cF9pZCx1c2VybmFtZSxwYXNzd29yZCxjb2RlLGNyZWF0ZWRhdGUsb3ZlcndyaXRlX3VpZCkKICAgICAgICAgICAgVkFMVUVTICg/LDAsPyw/LD8sTk9XKCksPykiOwogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxLCBbJGlkLCAkdXNlcm5hbWUsICRwYXNzd29yZCwgJGNvZGUsICRvdmVyd3JpdGVfdWlkXSk7CiAgICAKICAgIGlmKCEkZGJyZXN1bHQpeyByZXR1cm4gW0ZBTFNFLCAkZGItPkVycm9yTXNnKCldOyB9CiAgICAKICAgICRxID0gJ0lOU0VSVCBJTlRPICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX21hbXNyZWdpc3RyYXRpb25fZ3JwcyAodXNlcixnaWQpIFZBTFVFUyAoPyw/KSc7CiAgICAKICAgIGlmKCFpc19hcnJheSgkZ2lkKSkgeyAkZ2lkID0gWyhpbnQpJGdpZF07IH0KICAgIAogICAgZm9yZWFjaCgkZ2lkIGFzICRvbmUpCiAgICB7CiAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHEsIFskaWQsICRvbmVdKTsKICAgIH0KICAgIAogICAgYXVkaXQoJGlkLCAkdGhpcy0+R2V0TmFtZSgpLCBzcHJpbnRmKCdVc2VyICVzIHJlZ2lzdGVyZWQnLCAkdXNlcm5hbWUpKTsKICAgIAogICAgcmV0dXJuIFtUUlVFLCAkaWRdOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gRGVsZXRlVGVtcFVzZXJDb2RlKCR1aWQpCiAgewogICAgaWYoIWlzX2FycmF5KCR1aWQpKSB7ICR1aWQgPSBbJHVpZF07IH0KICAgIAogICAgJGRiID0gJHRoaXMtPkdldERiKCk7CiAgICAkcSA9ICdVUERBVEUgJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfbWFtc3JlZ2lzdHJhdGlvbl91c2VycyBTRVQgY29kZSA9IiIgV0hFUkUgaWQgSU4gKCcgLiBpbXBsb2RlKCcsJywgJHVpZCkgLiAnKSc7CiAgICAkZGItPkV4ZWN1dGUoJHEpOwogICAgCiAgICByZXR1cm4gJGRiLT5BZmZlY3RlZF9Sb3dzKCk7CiAgfQogIAogIGZ1bmN0aW9uIENTVk9sZFRlbXBVc2VycygkZXhwaXJ5Y29kZSkKICB7CiAgICAkZGIgICAgICA9ICR0aGlzLT5HZXREYigpOwogICAgJGV4cGlyZXMgPSAkZGItPkRiVGltZVN0YW1wKHN0cnRvdGltZSgkZXhwaXJ5Y29kZSkpOwogICAgLy8gZmluZCBhbGwgdGhlIHVzZXIgaWQncyB0aGF0IG1hdGNoCiAgICAkcSAgICAgICAgPSAiU0VMRUNUICogRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX3VzZXJzIFdIRVJFIGNyZWF0ZWRhdGUgPCA/IjsKICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcSwgYXJyYXkoJGV4cGlyZXMpKTsKICAgICRyZXN1bHQgICA9ICcnOwogICAgCiAgICB3aGlsZSgkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQogICAgewogICAgICAkdmFscyAgICAgID0gYXJyYXlfdmFsdWVzKCRyb3cpOwogICAgICAkcmVzdWx0ICAgIC49ICRyb3dbJ2lkJ10gLiAiLCIgLiAkcm93Wyd1c2VybmFtZSddIC4gIiwiIC4gJHJvd1snY29kZSddIC4gIiwiIC4gJHJvd1snY3JlYXRlZGF0ZSddIC4gIiwiOwogICAgICAkcTIgICAgICAgID0gIlNFTEVDVCAqIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfbWFtc3JlZ2lzdHJhdGlvbl9wcm9wZXJ0aWVzIFdIRVJFIHVzZXIgPSA/IE9SREVSIGJ5IGlkIjsKICAgICAgJGRicmVzdWx0MiA9ICRkYi0+RXhlY3V0ZSgkcTIsIGFycmF5KCRyb3dbJ2lkJ10pKTsKICAgICAgd2hpbGUoJHJvdzIgPSAkZGJyZXN1bHQyLT5GZXRjaFJvdygpKQogICAgICB7CiAgICAgICAgJHJlc3VsdCAuPSAkcm93MlsnZGF0YSddIC4gIiwiOwogICAgICB9CiAgICAgICRyZXN1bHQgLj0gImVuZFxuIjsKICAgIH0KICAgIAogICAgcmV0dXJuICRyZXN1bHQ7CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBFZGl0VGVtcFVzZXIoJHVpZCwgJHVzZXJuYW1lLCAkcGFzc3dvcmQsICRjb2RlID0gTlVMTCkKICB7CiAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKICAgIGlmKCR1c2VybmFtZSA9PSAnJykKICAgIHsKICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQogICAgCiAgICAkcSAgICAgID0gIlVQREFURSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX3VzZXJzIFNFVCB1c2VybmFtZSA9ID8iOwogICAgJHBhcmFtcyA9IGFycmF5KCR1c2VybmFtZSk7CiAgICBpZigkY29kZSkKICAgIHsKICAgICAgJHEgICAgICAgIC49ICIsY29kZSA9ID8iOwogICAgICAkcGFyYW1zW10gPSAkY29kZTsKICAgIH0KICAgIAogICAgaWYoJHBhc3N3b3JkICE9ICcnKQogICAgewogICAgICAkcSAgICAgICAgLj0gIixwYXNzd29yZCA9ID8iOwogICAgICAkbWFtcyAgICAgID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdNQU1TJyk7CiAgICAgICRrZXkgICAgICA9ICR0aGlzLT5nZXRfZW5jcnlwdGlvbl9rZXkoJHVzZXJuYW1lKTsKICAgICAgJHBhcmFtc1tdID0gYmFzZTY0X2VuY29kZSgkdGhpcy0+ZW5jcnlwdCgka2V5LCAkcGFzc3dvcmQpKTsKICAgIH0KICAgIAogICAgJHEgICAgICAgIC49ICIgV0hFUkUgaWQgPSA/IjsKICAgICRwYXJhbXNbXSA9ICR1aWQ7CiAgICAKICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcSwgJHBhcmFtcyk7CiAgICBpZighJGRicmVzdWx0KQogICAgewogICAgICByZXR1cm4gYXJyYXkoRkFMU0UsICRkYi0+RXJyb3JNc2coKSk7CiAgICB9CiAgICAKICAgIHJldHVybiBhcnJheShUUlVFKTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIEV4cGlyZU9sZFRlbXBVc2VycygkZXhwaXJ5Y29kZSkKICB7CiAgICAkZGIgICAgICA9ICR0aGlzLT5HZXREYigpOwogICAgJGV4cGlyZXMgPSAkZGItPkRiVGltZVN0YW1wKHN0cnRvdGltZSgkZXhwaXJ5Y29kZSkpOwogICAgLy8gZmluZCBhbGwgdGhlIHVzZXIgaWQncyB0aGF0IG1hdGNoCiAgICAkcSAgICAgICAgPSAiU0VMRUNUIGlkIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfbWFtc3JlZ2lzdHJhdGlvbl91c2VycyBXSEVSRSBjcmVhdGVkYXRlIDwgPyI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkdldENvbCgkcSwgYXJyYXkoJGV4cGlyZXMpKTsKICAgIAogICAgaWYoaXNfYXJyYXkoJGRicmVzdWx0KSAmJiBjb3VudCgkZGJyZXN1bHQpKQogICAgewogICAgICAkdGhpcy0+RGVsZXRlVGVtcFVzZXIoJGRicmVzdWx0KTsKICAgIH0KICAgIAogICAgcmV0dXJuIFRSVUU7CiAgfQogIAogIC8qKgogICAqIEBpbnRlcm5hbAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBEZWxldGVUZW1wVXNlcigkdWlkKQogIHsKICAgIGlmKCFpc19hcnJheSgkdWlkKSkKICAgIHsKICAgICAgJHVpZCA9IGFycmF5KCR1aWQpOwogICAgfQogICAgCiAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKICAgICRxbCA9IGFycmF5KCk7CiAgICAkcTEgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfbWFtc3JlZ2lzdHJhdGlvbl9ncnBzIFdIRVJFIHVzZXIgSU4gKCcgLiBpbXBsb2RlKCcsJywgJHVpZCkgLiAnKSc7CiAgICAkZGItPkV4ZWN1dGUoJHExKTsKICAgICRxMiA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX3Byb3BlcnRpZXMgV0hFUkUgdXNlciBJTiAoJyAuIGltcGxvZGUoJywnLCAkdWlkKSAuICcpJzsKICAgICRkYi0+RXhlY3V0ZSgkcTIpOwogICAgJHEzID0gIkRFTEVURSBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX21hbXNyZWdpc3RyYXRpb25fdXNlcnMgV0hFUkUgaWQgSU4gKCcgLiBpbXBsb2RlKCcsJywgJHVpZCkgLiAnKSc7CiAgICAkZGItPkV4ZWN1dGUoJHEzKTsKICAgIAogICAgcmV0dXJuIFRSVUU7CiAgfQogIAogIC8qKgogICAqIEBpbnRlcm5hbAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBEZWxldGVUZW1wVXNlclByb3BlcnRpZXMoJHVpZCkKICB7CiAgICAkZGIgICAgICAgPSAkdGhpcy0+R2V0RGIoKTsKICAgICRxICAgICAgICA9ICJERUxFVEUgRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX3Byb3BlcnRpZXMgV0hFUkUgdXNlciA9ID8iOwogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxLCBhcnJheSgkdWlkKSk7CiAgICBpZighJGRicmVzdWx0KQogICAgewogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CiAgICAKICAgIHJldHVybiBUUlVFOwogIH0KICAKICAvKioKICAgKiBAaW50ZXJuYWwKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gR2V0VGVtcFVzZXJEZXRhaWxzKCR1aWQpCiAgewogICAgJGRiICAgICAgID0gJHRoaXMtPkdldERiKCk7CiAgICAkcSAgICAgICAgPSAiU0VMRUNUICogRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX3VzZXJzIFdIRVJFIGlkID0gPyI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkdldFJvdygkcSwgWyR1aWRdKTsKICAgIGlmKCFpc19hcnJheSgkZGJyZXN1bHQpKSB7IHJldHVybiBGQUxTRTsgfQogICAgCiAgICByZXR1cm4gJGRicmVzdWx0OwogIH0KICAKICAvKioKICAgKiBAaW50ZXJuYWwKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gR2V0VGVtcFVzZXJJRCgkdXNlcm5hbWUpCiAgewogICAgaWYoJHVzZXJuYW1lID09ICcnKSB7IHJldHVybiBGQUxTRTsgfQogICAgCiAgICAkZGIgID0gJHRoaXMtPkdldERiKCk7CiAgICAkcSAgID0gIlNFTEVDVCAqIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfbWFtc3JlZ2lzdHJhdGlvbl91c2VycyBXSEVSRSB1c2VybmFtZSA9ID8iOwogICAgCiAgICAkZGJyID0gJGRiLT5HZXRBbGwoJHEsIFskdXNlcm5hbWVdKTsKCiAgICBpZiggZW1wdHkoJGRicikgKSB7IHJldHVybiBGQUxTRTsgfQogICAgCiAgICAjIG1ha2Ugc3VyZSB3ZSByZXR1cm4gdGhlIGxhc3QgcmVjb3JkCiAgICAKICAgICRyZXQgPSBlbmQoJGRicilbJ2lkJ107CiAgICAKICAgIHJldHVybiAkcmV0OwogIH0KICAKICAvKioKICAgKiBAaW50ZXJuYWwKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gR2V0VGVtcFVzZXJQcm9wZXJ0eSgkdWlkLCAkcHJvcG5hbWUsICRkZmx0ID0gTlVMTCkKICB7CiAgICAkZGIgID0gJHRoaXMtPkdldERiKCk7CiAgICAkcSAgID0gIlNFTEVDVCBkYXRhIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfbWFtc3JlZ2lzdHJhdGlvbl9wcm9wZXJ0aWVzIFdIRVJFIHVzZXIgPSA/IEFORCB0aXRsZSA9ICA/IjsKICAgICRkYnIgPSAkZGItPkdldE9uZSgkcSwgYXJyYXkoJHVpZCwgJHByb3BuYW1lKSk7CiAgICBpZighJGRicikKICAgIHsKICAgICAgcmV0dXJuICRkZmx0OwogICAgfQogICAgCiAgICByZXR1cm4gJGRicjsKICB9CiAgCiAgLyoqCiAgICogQGludGVybmFsCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIEdldFRlbXBVc2VyUHJvcGVydGllcygkdWlkKQogIHsKICAgICRkYiAgICAgICA9ICR0aGlzLT5HZXREYigpOwogICAgJHEgICAgICAgID0gIlNFTEVDVCAqIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfbWFtc3JlZ2lzdHJhdGlvbl9wcm9wZXJ0aWVzIFdIRVJFIHVzZXIgPSA/IjsKICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcSwgYXJyYXkoJHVpZCkpOwogICAgaWYoISRkYnJlc3VsdCB8fCAkZGJyZXN1bHQtPlJlY29yZENvdW50KCkgPT0gMCkKICAgIHsKICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQogICAgJHJlc3VsdCA9IGFycmF5KCk7CiAgICB3aGlsZSgkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQogICAgewogICAgICAkcmVzdWx0W10gPSAkcm93OwogICAgfQogICAgCiAgICByZXR1cm4gJHJlc3VsdDsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIGdldF9wcm9kdWN0X2luZm8oJHRlbXBfdXNlcl9pZCkKICB7CiAgICAkcmVzICAgICAgICAgICAgICAgICA9IGFycmF5KCk7CiAgICAkcmVzWydpZCddICAgICAgICAgICA9ICR0ZW1wX3VzZXJfaWQ7CiAgICAkcmVzWydwcm9kdWN0X25hbWUnXSA9ICdBY2NvdW50IFJlZ2lzdHJhdGlvbic7CiAgICAKICAgIHJldHVybiAkcmVzOwogIH0KICAKfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgppZih2ZXJzaW9uX2NvbXBhcmUocGhwdmVyc2lvbigpLCAnNS40LjExJykgPCAwKQp7CiAgcmV0dXJuICdNaW5pbXVtIFBIUCB2ZXJzaW9uIG9mIDUuNC4xMSByZXF1aXJlZCc7Cn0KCiRtb2RuYW1lICAgICAgPSBzdHJ0b2xvd2VyKCR0aGlzLT5HZXROYW1lKCkpOwokdGFibGVfcHJlZml4ID0gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZG5hbWU7CgokZGljdCAgICAgICAgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoKLy8gdmFsaWRhdGlvbnMgaW4gcHJvY2VzcwokZmxkcyAgICAgPSAnCiAgICAgICAgIGlkIEkgS0VZLAogICAgICAgICBncm91cF9pZCBJIE5PVE5VTEwsCiAgICAgICAgIHVzZXJuYW1lIEMoODApIE5PVE5VTEwsCiAgICAgICAgIHBhc3N3b3JkIEMoMjU1KSBOT1ROVUxMLAogICAgICAgICBjb2RlIEMoMjApIE5PVE5VTEwsCiAgICAgICAgIGNyZWF0ZWRhdGUgJyAuIENNU19BRE9EQl9EVCAuICcsCiAgICAgICAgIG92ZXJ3cml0ZV91aWQgSSc7Cgokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoJHRhYmxlX3ByZWZpeCAuICdfdXNlcnMnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJGRiLT5DcmVhdGVTZXF1ZW5jZSgkdGFibGVfcHJlZml4IC4gJ191c2Vyc19zZXEnKTsKCiRmbGRzICAgICA9ICd1c2VyIEkgS0VZIE5PVE5VTEwsCiAgICAgICAgIGdpZCAgSSBLRVkgTk9UTlVMTCc7Cgokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoJHRhYmxlX3ByZWZpeCAuICdfZ3JwcycsICRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokZmxkcyAgICAgPSAnaWQgSSBLRVksCiAgICAgICAgIHVzZXIgSSBOT1ROVUxMLAogICAgICAgICB0aXRsZSBDKDEwMCkgTk9UTlVMTCwKICAgICAgICAgZGF0YSBYCiAgICAgICAgJzsKCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTCgkdGFibGVfcHJlZml4IC4gJ19wcm9wZXJ0aWVzJywgJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRkYi0+Q3JlYXRlU2VxdWVuY2UoJHRhYmxlX3ByZWZpeCAuICdfcHJvcGVydGllc19zZXEnKTsKCiRmbGRzICAgICA9ICdpZCBJIEFVVE8gS0VZLAogICAgICAgICBuYW1lIEMoMjU1KSBOT1ROVUxMLAogICAgICAgICBwcm9tcHQgQygyNTUpIE5PVE5VTEwsCiAgICAgICAgIGRlc2NyaXB0aW9uIFgsCiAgICAgICAgIGdpZCBJIE5PVE5VTEwsCiAgICAgICAgIHN1YnNjcl9udW0gSSwKICAgICAgICAgc3Vic2NyX3R5cGUgQygxMCksCiAgICAgICAgIGNvc3QgRic7Cgokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoJHRhYmxlX3ByZWZpeCAuICdfcGFpZHBrZ3MnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKLy8gcHJlZmVyZW5jZXMKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3JlcXVpcmVfZW1haWxfY29uZmlybWF0aW9uJywgMSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzZW5kX2VtYWlsc190bycsICdyb290QGxvY2FsaG9zdC5jb20nKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ25vdGlmeV9vbl9yZWdpc3RyYXRpb24nLCAxKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ21hbXNyZWdfZW1haWxjb25maXJtX3N1YmplY3QnLCAkdGhpcy0+TGFuZygncmVnaXN0cmF0aW9uX2NvbmZpcm1hdGlvbicpKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ21hbXNyZWdfZW1haWx1c2VyZWRpdGVkX3N1YmplY3QnLCAkdGhpcy0+TGFuZygncmVnaXN0cmF0aW9uX2luZm9fZWRpdGVkJykpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWFtc3JlZ19mb3JjZV9lbWFpbF90d2ljZScsIDApOwoKLy8gdGVtcGxhdGVzCiR0aGlzLT5TZXRUZW1wbGF0ZSgnc2VscGtndGVtcGxhdGUnLCBAZmlsZV9nZXRfY29udGVudHMoX19ESVJfXyAuICcvdGVtcGxhdGVzL29yaWdfc2VscGtnX3RlbXBsYXRlLnRwbCcpKTsKCiR0aGlzLT5TZXRUZW1wbGF0ZSgnbWFtc3JlZ19yZWcxdGVtcGxhdGUnLCBmaWxlX2dldF9jb250ZW50cyhfX0RJUl9fIC4gJy90ZW1wbGF0ZXMvb3JpZ19yZWdpc3RyYXRpb24xLnRwbCcpKTsKJHRoaXMtPlNldFRlbXBsYXRlKCdtYW1zcmVnX3Bvc3RyZWcxX3RlbXBsYXRlJywgZmlsZV9nZXRfY29udGVudHMoX19ESVJfXyAuICcvdGVtcGxhdGVzL29yaWdfcG9zdHJlZzEudHBsJykpOwokdGhpcy0+U2V0VGVtcGxhdGUoJ21hbXNyZWdfcmVnMnRlbXBsYXRlJywgZmlsZV9nZXRfY29udGVudHMoX19ESVJfXyAuICcvdGVtcGxhdGVzL29yaWdfcmVnaXN0cmF0aW9uMi50cGwnKSk7CiR0aGlzLT5TZXRUZW1wbGF0ZSgnbWFtc3JlZ19lbWFpbGNvbmZpcm1fdGVtcGxhdGUnLCAkdGhpcy0+ZGZsdF9lbWFpbGNvbmZpcm1fdGVtcGxhdGUpOwokdGhpcy0+U2V0VGVtcGxhdGUoJ21hbXNyZWdfZW1haWx1c2VyZWRpdGVkX3RlbXBsYXRlJywgJHRoaXMtPmRmbHRfZW1haWx1c2VyZWRpdGVkX3RlbXBsYXRlKTsKJHRoaXMtPlNldFRlbXBsYXRlKCdtYW1zcmVnX2VtYWlsdXNlcmVkaXRlZF90ZXh0dGVtcGxhdGUnLCAkdGhpcy0+ZGZsdF9lbWFpbHVzZXJlZGl0ZWRfdGV4dHRlbXBsYXRlKTsKJHRoaXMtPlNldFRlbXBsYXRlKCdtYW1zcmVnX2ZpbmFsbWVzc2FnZV90ZW1wbGF0ZScsICR0aGlzLT5kZmx0X2ZpbmFsbWVzc2FnZV90ZW1wbGF0ZSk7CiR0aGlzLT5TZXRUZW1wbGF0ZSgKICAnbWFtc3JlZ19zZW5kYW5vdGhlcmVtYWlsX3RlbXBsYXRlJywgZmlsZV9nZXRfY29udGVudHMoX19ESVJfXyAuICcvdGVtcGxhdGVzL29yaWdfc2VuZGFub3RoZXJlbWFpbF9mb3JtLnRwbCcpCik7CiR0aGlzLT5TZXRUZW1wbGF0ZSgnbWFtc3JlZ19wb3N0X3NlbmRhbm90aGVyZW1haWxfdGVtcGxhdGUnLCAkdGhpcy0+ZGZsdF9wb3N0X3NlbmRhbm90aGVyZW1haWxfdGVtcGxhdGUpOwokdGhpcy0+U2V0VGVtcGxhdGUoJ2Fub3RoZXJncm91cF90ZW1wbGF0ZScsIEBmaWxlX2dldF9jb250ZW50cyhfX0RJUl9fIC4gJy90ZW1wbGF0ZXMvb3JpZ19hbm90aGVyZ3JvdXBfdGVtcGxhdGUudHBsJykpOwoKLy8gUGVybWlzc2lvbnMKJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ01hbmFnZSBSZWdpc3RlcmluZyBVc2VycycsICdNYW5hZ2UgUmVnaXN0ZXJpbmcgVXNlcnMnKTsKCi8vIGV2ZW50cwokdGhpcy0+Q3JlYXRlRXZlbnQoJ2JlZm9yZU5ld1VzZXInKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCdvbk5ld1VzZXInKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCdvblVzZXJSZWdpc3RlcmVkJyk7CgovLyR0aGlzLT5BZGRFdmVudEhhbmRsZXIoJ0NHRWNvbW1lcmNlQmFzZScsICdDYXJ0QWRqdXN0ZWQnLCBGQUxTRSk7Ci8vJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ0dFY29tbWVyY2VCYXNlJywgJ09yZGVyQ3JlYXRlZCcsIEZBTFNFKTsKLy8kdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCdDR0Vjb21tZXJjZUJhc2UnLCAnT3JkZXJVcGRhdGVkJywgRkFMU0UpOwovLyR0aGlzLT5BZGRFdmVudEhhbmRsZXIoJ0NHRWNvbW1lcmNlQmFzZScsICdPcmRlckRlbGV0ZWQnLCBGQUxTRSk7CgokdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCdDb3JlJywgJ01vZHVsZUluc3RhbGxlZCcsIEZBTFNFKTsKJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ29yZScsICdNb2R1bGVVbmluc3RhbGxlZCcsIEZBTFNFKTsKCi8vJG1hbXMgICAgID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnTUFNUycpOwovLyRhdHRyaWJzID0gc2VyaWFsaXplKGFycmF5KCdtb2R1bGUnID0+ICR0aGlzLT5HZXROYW1lKCkpKTsKLy8kbWFtcy0+QWRkUHJvcGVydHlEZWZuKE1BTVNSZWdpc3RyYXRpb246Ok1BTVNfUFJPUE5BTUUsICcnLCBNQU1TOjpGSUVMRFRZUEVfREFUQSwgMTAyNCwgMCwgJGF0dHJpYnMpOwoKJHRwbCA9IGZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18gLiAnL3RlbXBsYXRlcy9hZG1pbl9ub3RpZnlfZW1haWwudHBsJyk7CiR0aGlzLT5TZXRUZW1wbGF0ZSgnYWRtaW5fbm90aWZ5X2VtYWlsJywgJHRwbCk7Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgokZGIgICAgICAgICAgID0gJHRoaXMtPkdldERiKCk7CiRtb2RuYW1lICAgICAgPSBzdHJ0b2xvd2VyKCR0aGlzLT5HZXROYW1lKCkpOwokdGFibGVfcHJlZml4ID0gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZG5hbWU7CiRkaWN0ICAgICAgICAgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCgkdGFibGVfcHJlZml4IC4gJ191c2VycycpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoJHRhYmxlX3ByZWZpeCAuICdfZ3JwcycpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoJHRhYmxlX3ByZWZpeCAuICdfcHJvcGVydGllcycpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoJHRhYmxlX3ByZWZpeCAuICdfcGFpZHBrZ3MnKTsKCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJGRiLT5Ecm9wU2VxdWVuY2UoJHRhYmxlX3ByZWZpeCAuICdfdXNlcnNfc2VxJyk7CiRkYi0+RHJvcFNlcXVlbmNlKCR0YWJsZV9wcmVmaXggLiAnX3Byb3BlcnRpZXNfc2VxJyk7CgovLyBwcmVmZXJlbmNlcwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgpOwoKLy8gdGVtcGxhdGVzCiR0aGlzLT5EZWxldGVUZW1wbGF0ZSgpOwoKLy8gcGVybWlzc2lvbnMKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ01hbmFnZSBSZWdpc3RlcmluZyBVc2VycycpOwoKLy8gZXZlbnRzCiR0aGlzLT5SZW1vdmVFdmVudCgnb25OZXdVc2VyJyk7CiR0aGlzLT5SZW1vdmVFdmVudCgnb25Vc2VyUmVnaXN0ZXJlZCcpOwoKLy8kdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdDR0Vjb21tZXJjZUJhc2UnLCAnQ2FydEFkanVzdGVkJyk7Ci8vJHRoaXMtPlJlbW92ZUV2ZW50SGFuZGxlcignQ0dFY29tbWVyY2VCYXNlJywgJ09yZGVyQ3JlYXRlZCcpOwovLyR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0NHRWNvbW1lcmNlQmFzZScsICdPcmRlclVwZGF0ZWQnKTsKLy8kdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdDR0Vjb21tZXJjZUJhc2UnLCAnT3JkZXJEZWxldGVkJyk7CiR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0NvcmUnLCAnTW9kdWxlSW5zdGFsbGVkJyk7CiR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0NvcmUnLCAnTW9kdWxlSW5zdGFsbGVkJyk7CiR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0NvcmUnLCAnTW9kdWxlVW5pbnN0YWxsZWQnKTsKCiRtYW1zID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9NQU1TKTsKJG1hbXMtPkRlbGV0ZVByb3BlcnR5RGVmbihNQU1TUmVnaXN0cmF0aW9uOjpNQU1TX1BST1BOQU1FLCBUUlVFKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgppZiggdmVyc2lvbl9jb21wYXJlKHBocHZlcnNpb24oKSwnNy40JykgPCAwICkKewogIHJldHVybiAiTWluaW11bSBQSFAgdmVyc2lvbiBvZiA3LjQgcmVxdWlyZWQiOwp9CgppZigkb2xkdmVyc2lvbiA8ICcxLjAuMycpCnsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYXV0b2NyZWF0ZV91c2VyJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2F1dG9jcmVhdGVfZmV1JywgMSkpOwp9]]></data>
	</file>
	<file>
	  <filename>/templates</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_addpaidpkg.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CntpZiAkcGtnZGF0YS5uYW1lID09ICcnfQo8aDM+eyRtb2QtPkxhbmcoJ2FkZF9wYWlkcGtnJyl9PC9oMz4Ke2Vsc2V9CjxoMz57JG1vZC0+TGFuZygnZWRpdF9wYWlkcGtnJywkcGtnZGF0YS5uYW1lKX08L2gzPgp7L2lmfQoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCduYW1lJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXBrZ19uYW1lIiBzaXplPSIyMCIgbWF4bGVuZ3RoPSIyNTUiIHZhbHVlPSJ7JHBrZ2RhdGEubmFtZX0iLz4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHQnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9cGtnX3Byb21wdCIgc2l6ZT0iMjAiIG1heGxlbmd0aD0iMjU1IiB2YWx1ZT0ieyRwa2dkYXRhLnByb21wdH0iLz4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdncm91cCcpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9cGtnX2dpZCI+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGdyb3VwbGlzdCBzZWxlY3RlZD0kcGtnZGF0YS5naWR9CiAgICA8L3NlbGVjdD4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdkZXNjcmlwdGlvbicpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9kZXNjcmlwdGlvbn08L3A+CjwvZGl2PgoKe2lmIGlzc2V0KCRjYW5fZWRpdF9jb3N0KX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdjb3N0Jyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHskY3VycmVuY3lfc3ltYm9sfGRlZmF1bHQ6Jyd9CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1wa2dfY29zdCIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiIHZhbHVlPSJ7JHBrZ2RhdGEuY29zdH0iLz4KICAgIHskY3VycmVuY3lfY29kZXxkZWZhdWx0OicnfQogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3N1YnNjcmlwdGlvbl9leHBpcmVzJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1zdWJzY3JfbnVtIj4KICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kbnVtcyBzZWxlY3RlZD0kcGtnZGF0YS5zdWJzY3JfbnVtfQogICAgPC9zZWxlY3Q+Jm5ic3A7CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9c3Vic2NyX3R5cGUiPgogICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRzdWJzY3JfdHlwZXMgc2VsZWN0ZWQ9JHBrZ2RhdGEuc3Vic2NyX3R5cGV9CiAgICA8L3NlbGVjdD4KICA8L3A+CjwvZGl2Pgp7L2lmfQoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYW5jZWwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9Ii8+CiAgPC9wPgo8L2Rpdj4KCnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_anothergroup_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogYW5vdGhlciBncm91cCB0ZW1wbGF0ZSBmb3JtIHRhYiAqfQp7JGZvcm1zdGFydH0KPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX2Fub3RoZXJncm91cF90ZW1wbGF0ZScpfTwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWRlZmF1bHRzIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2RlZmF1bHQnKX0iLz4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3RlbXBsYXRlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICB7eHRfdGV4dGFyZWEgc3ludGF4PTEgcHJlZml4PSRhY3Rpb25pZCBuYW1lPSd0ZW1wbGF0ZScgdmFsdWU9JHRlbXBsYXRlfQogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_emailconfirm_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdGJ1dHRvbiIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9ZGVmYXVsdGJ1dHRvbiIgdmFsdWU9InskbW9kLT5MYW5nKCdkZWZhdWx0Jyl9Ii8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdzdWJqZWN0Jyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWlucHV0X3N1YmplY3QiIHZhbHVlPSJ7JHN1YmplY3R9IiBzaXplPSI4MCIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnbWVzc2FnZWJvZHknKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge3h0X3RleHRhcmVhIHN5bnRheD0xIHByZWZpeD0kYWN0aW9uaWQgbmFtZT10ZW1wbGF0ZWNvbnRlbnQgdmFsdWU9JGJvZHlfdHBsfQogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_finalmessage_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdGJ1dHRvbiIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9ZGVmYXVsdGJ1dHRvbiIgdmFsdWU9InskbW9kLT5MYW5nKCdkZWZhdWx0Jyl9Ii8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdtZXNzYWdlYm9keScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7eHRfdGV4dGFyZWEgc3ludGF4PTEgcHJlZml4PSRhY3Rpb25pZCBuYW1lPXRlbXBsYXRlY29udGVudCB2YWx1ZT0kdGVtcGxhdGV9CiAgPC9wPgo8L2Rpdj4KeyRmb3JtZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_notify_email.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPk5ldyBVc2VyIFJlZ2lzdHJhdGlvbjwvaDM+CjxwPkEgbmV3IHVzZXIgPHN0cm9uZz57JHVzZXJuYW1lfTwvc3Ryb25nPiBoYXMgY29tcGxldGVkIHJlZ2lzdHJhdGlvbiB0byB7c2l0ZW5hbWV9LjwvcD4Ke2lmICR1aWQgPiAwfQo8cD5UaGlzIHVzZXIgaGFzIGFscmVhZHkgYmVlbiBwdXNoZWQgdG8gdGhlIE1BTVMgbW9kdWxlIGFuZCBoYXMgYSB1aWQgb2YgeyR1aWR9PC9wPgp7L2lmfQo8cD5Zb3Ugc2hvdWxkIGNoZWNrIHRoZSBpbnRlZ3JpdHkgb2YgdGhlIHVzZXIgaW5mb3JtYXRpb24gdG8gZW5zdXJlIHRoZSB2YWxpZGl0eSBvZiB0aGlzIG5ldyB1c2VyIGFjY291bnQuPC9wPg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_paidregistration_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CntpZiBpc3NldCgkcGFja2FnZWxpc3QpfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgo8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSIgY2VsbHNwYWNpbmc9IjAiPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPnskbW9kLT5MYW5nKCduYW1lJyl9PC90aD4KICAgICAgPHRoPnskbW9kLT5MYW5nKCdwcm9tcHQnKX08L3RoPgogICAgICA8dGg+eyRtb2QtPkxhbmcoJ2dyb3VwJyl9PC90aD4KICAgICAgPHRoPnskbW9kLT5MYW5nKCdjb3N0Jyl9PC90aD4KICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+PC90aD4KICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+PC90aD4KICAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAge2ZvcmVhY2ggZnJvbT0kcGFja2FnZWxpc3QgaXRlbT0nb25lcGtnJ30KICAgIDx0cj4KICAgICAgPHRkPjxhIGhyZWY9Inskb25lcGtnLmVkaXRfdXJsfSI+eyRvbmVwa2cubmFtZX08L2E+PC90ZD4KICAgICAgPHRkPnskb25lcGtnLnByb21wdH08L3RkPgogICAgICA8dGQ+e2lmIGlzc2V0KCRncm91cGxpc3RbJG9uZXBrZy5naWRdKX17JGdyb3VwbGlzdFskb25lcGtnLmdpZF19e2Vsc2V9PHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij5FUlJPUjwvc3Bhbj57L2lmfTwvdGQ+CiAgICAgIDx0ZD57JGN1cnJlbmN5X3N5bWJvbHxkZWZhdWx0OicnfXskb25lcGtnLmNvc3R8bnVtYmVyX2Zvcm1hdDoyfTwvdGQ+CiAgICAgIDx0ZD57JG9uZXBrZy5lZGl0X2xpbmt9PC90ZD4KICAgICAgPHRkPnskb25lcGtnLmRlbGV0ZV9saW5rfTwvdGQ+CiAgICA8L3RyPgogIHsvZm9yZWFjaH0KICA8L3Rib2R5Pgo8L3RhYmxlPgo8L2Rpdj4Key9pZn0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgeyRhZGRsaW5rfQo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_reg1template_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Zvcm1fc3RhcnR9CjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JG1vZC0+TGFuZygnaW5mb19yZWdpc3RyYXRpb25fdGVtcGxhdGVzJyl9PC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9cmVzZXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnZGVmYXVsdCcpfSIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncmVnaXN0cmF0aW9uX3RlbXBsYXRlJyl9OjwvcD4KICA8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPgogICAge3h0X3RleHRhcmVhIHN5bnRheD0xIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1yZWcxX3RlbXBsYXRlY29udGVudCB2YWx1ZT0kcmVnMV90ZW1wbGF0ZWNvbnRlbnR9CiAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Bvc3RfcmVnaXN0cmF0aW9uX3RlbXBsYXRlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHt4dF90ZXh0YXJlYSBzeW50YXg9MSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9cG9zdHJlZzFfdGVtcGxhdGVjb250ZW50IHZhbHVlPSRwb3N0cmVnMV90ZW1wbGF0ZWNvbnRlbnR9CiAgPC9wPgo8L2Rpdj4Ke2Zvcm1fZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_sendanotheremail_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPGRpdiBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0YnV0dG9uIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1kZWZhdWx0YnV0dG9uIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2RlZmF1bHQnKX0iLz4KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygndGl0bGVfc2VuZGFub3RoZXJlbWFpbF90ZW1wbGF0ZScpfTo8L3A+CiAgPGRpdiBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHt4dF90ZXh0YXJlYSBzeW50YXg9MSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9dGVtcGxhdGVjb250ZW50IHZhbHVlPSR0ZW1wbGF0ZSBjb2xzPTgwIHJvd3M9MTB9CiAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3RpdGxlX3Bvc3Rfc2VuZGFub3RoZXJlbWFpbF90ZW1wbGF0ZScpfTo8L3A+CiAgPGRpdiBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHt4dF90ZXh0YXJlYSBzeW50YXg9MSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9dGVtcGxhdGVjb250ZW50MiB2YWx1ZT0kcG9zdF90ZW1wbGF0ZSBjb2xzPTgwIHJvd3M9MTB9CiAgPC9kaXY+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_userinfoedited_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdGJ1dHRvbiIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9ZGVmYXVsdGJ1dHRvbiIgdmFsdWU9InskbW9kLT5MYW5nKCdkZWZhdWx0Jyl9Ii8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdzdWJqZWN0Jyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWlucHV0X3N1YmplY3QiIHZhbHVlPSJ7JHN1YmplY3R9IiBzaXplPSI4MCIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnaHRtbGJvZHknKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge3h0X3RleHRhcmVhIHN5bnRheD0xIHByZWZpeD0kYWN0aW9uaWQgbmFtZT10ZW1wbGF0ZWNvbnRlbnQgdmFsdWU9JGh0bWx0ZW1wbGF0ZX0KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/changelog.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHN0eWxlPg0KICBzZWN0aW9uI2NoYW5nZWxvZyBzcGFuDQogIHsNCiAgICBNb25vJywgJ0x1Y2lkYSBDb25zb2xlJywgJ0x1Y2lkYSBTYW5zIFR5cGV3cml0ZXInLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7DQogICAgdGV4dC1hbGlnbjogbGVmdDsNCiAgICBjb2xvcjogIzIzMjMyMzsNCiAgICBoZWlnaHQ6IGF1dG87DQogICAgYm9yZGVyLXJhZGl1czogMC4zMTVlbTsNCiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOw0KICAgIHBhZGRpbmc6IDAuM2VtOw0KICAgIGZvbnQtc2l6ZTogMC45ZW07DQogIH0NCjwvc3R5bGU+DQoNCjxzZWN0aW9uIGlkPSJjaGFuZ2Vsb2ciPg0KDQogIDxoMz48c3Bhbj5WZXJzaW9uIDEuMS4wPC9zcGFuPiA8c21hbGw+MjAyMS0wMy0yMDwvc21hbGw+PC9oMz4NCiAgPHA+PHN0cm9uZz5GaXhlczo8L3N0cm9uZz48L3A+DQogIDx1bD4NCiAgICA8bGk+PHNwYW4+Zml4ZWQ8L3NwYW4+IEJSICMxMjgwNyAtIE1hbnVhbGx5IHB1c2hpbmcgdXNlciB0byBNQU1TIGNsZWFycyBhbGwgZmllbGRzOzwvbGk+DQogICAgPGxpPjxzcGFuPmZpeGVkPC9zcGFuPiBCUiAjMTI4MDYgLSBGYXRhbCBlcnJvciBkdXJpbmcgTUFNU1JlZ2lzdHJhdGlvbiBpbnN0YWxsYXRpb24gLSBtaXNzaW5nIHByb3BlcnR5IGRmbHRfZW1haWx1c2VyZWRpdGVkX3RleHR0ZW1wbGF0ZTs8L2xpPg0KICAgIDxsaT48c3Bhbj5maXhlZDwvc3Bhbj4gQlIgIzEyNzE1IC0gU29tZSBsZWZ0b3ZlcnMgKHBhcnRpYWxseSBhcyBpdCB3YXMgbm90IGVudGlyZWx5IHZhbGlkKTs8L2xpPg0KICAgIDxsaT48c3Bhbj5maXhlZDwvc3Bhbj4gYSBmZXcgb3RoZXIgbWlub3IgZml4ZXMgYW5kIHR3ZWFrczs8L2xpPg0KICA8L3VsPg0KDQogIDxwPjxzdHJvbmc+TmV3IGZlYXR1cmVzOjwvc3Ryb25nPjwvcD4NCiAgPHVsPg0KICAgIDxsaT48c3Bhbj5uZXc8L3NwYW4+IHRoZXJlIGlzIGEgdmlzdWFsIGNsdWUgd2hldGhlciBhIHVzZXIgaGFzIGJlZW4gdmFsaWRhdGVkIG9yIG5vdDs8L2xpPg0KICAgIDxsaT48c3Bhbj5uZXc8L3NwYW4+IHRoZXJlIGlzIGEgb25lIGNsaWNrIGFjdGlvbiB0byB2YWxpZGF0ZSBhIHVzZXI7PC9saT4NCiAgICA8bGk+PHNwYW4+bmV3PC9zcGFuPiB0aGVyZSBpcyBhIG5ldyBTbWFydHkgaGVscGVyIGNsYXNzIChuZWVkcyBkb2N1bWVudGF0aW9uIHRob3VnaCk7PC9saT4NCiAgICA8bGk+PHNwYW4+bmV3PC9zcGFuPiB0aGVyZSBpcyBhIG5ldyBTbWFydHkgaGVscGVyIHBsdWdpbiAoYWxzbyBuZWVkcyBkb2N1bWVudGF0aW9uKTs8L2xpPg0KICA8L3VsPg0KDQoNCiAgPGgzPjxzcGFuPlZlcnNpb24gMS4wLjI8L3NwYW4+IDxzbWFsbD4yMDIxLTAzLTIwPC9zbWFsbD48L2gzPg0KDQogIDxwPlN0YWJpbGl0eSByZWxlYXNlOjwvcD4NCiAgPHVsPg0KICAgIDxsaT48c3Bhbj5maXhlZDwvc3Bhbj4gQSBmZXcgbWlub3IgZml4ZXMgbWFpbmx5IHRvIGRvIHdpdGggYmFja2VuZCB0YWJzIGFuZCBzZXR0aW5ncyBmb3JtOzwvbGk+DQogIDwvdWw+DQoNCiAgPGgzPjxzcGFuPlZlcnNpb24gMS4wLjE8L3NwYW4+IDxzbWFsbD4yMDIxLTAzLTIxPC9zbWFsbD48L2gzPg0KDQogIDxwPlN0YWJpbGl0eSByZWxlYXNlOjwvcD4NCiAgPHVsPg0KICAgIDxsaT48c3Bhbj5maXhlZDwvc3Bhbj4gQSBmZXcgbWlub3IgZml4ZXM7PC9saT4NCiAgPC91bD4NCg0KICA8aDM+PHNwYW4+VmVyc2lvbiAxLjA8L3NwYW4+IDxzbWFsbD4yMDIxLTAzLTA4PC9zbWFsbD48L2gzPg0KDQogIDxwPkluaXRpYWwgcHVibGljIHJlbGVhc2U8L3A+DQoNCjwvc2VjdGlvbj4=]]></data>
	</file>
	<file>
	  <filename>/templates/edituser.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRtYW1zcmVnX3VzZXJfZGF0YSA9IG1hbXNyZWc6OnVzZXJfZGF0YShbJ3RfdWlkJyA9PiAkdWlkXSl9CjxoMz57JHRpdGxlfTwvaDM+CjxsYWJlbD57JHN0YXR1c190ZXh0fTo8L2xhYmVsPgo8aW5wdXQgdHlwZT0iY2hlY2tib3giIHtpZiBlbXB0eSgkbWFtc3JlZ191c2VyX2RhdGEuY29kZSl9Y2hlY2tlZHsvaWZ9IGRpc2FibGVkIC8+CgoKe2lmIGlzc2V0KCRtZXNzYWdlKSBhbmQgJG1lc3NhZ2UgIT0gJyd9CiAge2lmIGlzc2V0KCRlcnJvcikgYW5kICRlcnJvciAhPSAnJ30KICAgIDxwPjxmb250IGNvbG9yPSJyZWQiPnskbWVzc2FnZX08L2ZvbnQ+PC9wPgogIHtlbHNlfQogICAgPHA+eyRtZXNzYWdlfTwvcD4KICB7L2lmfQp7L2lmfQoKe2lmICFlbXB0eSgkZ3JwX2lkcyl9CiAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPgogICAgPGg0PnskbW9kLT5MYW5nKCdwcm9tcHRfZWRpdHVzZXJfZ3JvdXBzJyl9OjwvaDQ+CiAgICA8cD4KICAgICAgIHtmb3JlYWNoICRncnBfaWRzIGFzICRnaWR9CiAgICAgICAgIDxzdHJvbmc+eyRhbGxncm91cHNbJGdpZF1bJ2dyb3VwbmFtZSddfTwvc3Ryb25nPiAtIHskYWxsZ3JvdXBzWyRnaWRdWydncm91cGRlc2MnXX0KICAgICAgICAgIHtpZiAhJGdpZEBsYXN0fTxici8+ey9pZn0KICAgICAgIHsvZm9yZWFjaH0KICAgIDwvcD4KICA8L2Rpdj4Key9pZn0KCnskc3RhcnRmb3JtfQp7aWYgJGNvbnRyb2xjb3VudCA+IDB9Cntmb3JlYWNoIGZyb209JGNvbnRyb2xzIGl0ZW09Y29udHJvbH0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiIHN0eWxlPSJjb2xvcjogeyRjb250cm9sLT5jb2xvcn0iPnskY29udHJvbC0+bWFya2VyfXskY29udHJvbC0+cHJvbXB0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7JGNvbnRyb2wtPmhpZGRlbnxkZWZhdWx0OicnfXskY29udHJvbC0+Y29udHJvbH0KICAgIHtpZiBpc3NldCgkY29udHJvbC0+ZXh0cmF0ZXh0KX08YnIvPnskY29udHJvbC0+ZXh0cmF0ZXh0fXsvaWZ9CiAgPC9wPgo8L2Rpdj4Key9mb3JlYWNofQp7L2lmfQoKPGhyLz4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfc2VuZGxpdmUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfXB1c2hsaXZlIj4KICAgICAge3h0X3llc25vX29wdGlvbnMgc2VsZWN0ZWQ9MH0KICAgIDwvc2VsZWN0PgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAge2lmIGlzc2V0KCRoaWRkZW4pfXskaGlkZGVufXsvaWZ9CiAge2lmIGlzc2V0KCRoaWRkZW4yKX17JGhpZGRlbjJ9ey9pZn0KICB7JHN1Ym1pdH17JGNhbmNlbH0KICA8L3A+CjwvZGl2Pgp7JGVuZGZvcm19Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/error.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfZXJyb3J9PC9oMz4Ke2lmIGlzc2V0KCRtZXNzYWdlKSAmJiAkbWVzc2FnZSAhPScnfTxwPnskbWVzc2FnZX08L3A+ey9pZn0=]]></data>
	</file>
	<file>
	  <filename>/templates/help.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCBzcmM9InskbW9kLT5HZXRNb2R1bGVVUkxQYXRoKCl9L2pzL2pzLmNvb2tpZS5qcyI+PC9zY3JpcHQ+DQo8c2NyaXB0Pg0KICBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7DQogICAgdmFyIGFjdGl2ZV90YWIgPSBDb29raWVzLmdldCgnbWFtc3JlZ190YWJfYWN0aXZlJyk7DQoNCiAgICBpZih0eXBlb2YgYWN0aXZlX3RhYiA9PT0gInVuZGVmaW5lZCIpDQogICAgew0KICAgICAgX3NldF9hY3RpdmVfdGFiKCdnZW5lcmFsJyk7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICBfc2V0X2FjdGl2ZV90YWIoYWN0aXZlX3RhYik7DQogICAgfQ0KDQogICAgJCgnI3BhZ2VfdGFicyA+IGRpdicpDQogICAgICAuZWFjaChmdW5jdGlvbigpDQogICAgICB7DQogICAgICAgICQodGhpcykuY2xpY2soZnVuY3Rpb24oKQ0KICAgICAgICB7DQogICAgICAgICAgQ29va2llcy5zZXQoJ21hbXNyZWdfdGFiX2FjdGl2ZScsIHRoaXMuaWQpOw0KICAgICAgICB9KTsNCiAgICAgIH0pOw0KICB9KTsNCg0KICBmdW5jdGlvbiBfc2V0X2FjdGl2ZV90YWIodGFiX25hbWUpDQogIHsNCiAgICAkKCcjcGFnZV90YWJzID4gZGl2JykNCiAgICAgIC5lYWNoKGZ1bmN0aW9uKCkNCiAgICAgIHsNCiAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7DQogICAgICB9KTsNCg0KICAgICQoJyNwYWdlX2NvbnRlbnQgPiBkaXYnKQ0KICAgICAgLmVhY2goZnVuY3Rpb24oKQ0KICAgICAgew0KICAgICAgICAkKHRoaXMpLmhpZGUoKTsNCiAgICAgIH0pOw0KDQogICAgJCgnIycgKyB0YWJfbmFtZSkuYWRkQ2xhc3MoJ2FjdGl2ZScpOw0KICAgICQoJyMnICsgdGFiX25hbWUgKyAnX2MnKS5zaG93KCk7DQogICAgQ29va2llcy5zZXQoJ21hbXNyZWdfdGFiX2FjdGl2ZScsIHRhYl9uYW1lKTsNCiAgfQ0KPC9zY3JpcHQ+DQoNCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgc2NvcGVkPg0KaDV7DQogICAgbWFyZ2luLXRvcDogMC43NWVtOw0KICAgIG1hcmdpbi1ib3R0b206IDAuNzVlbTsNCiAgfQ0KICBsaS50b3Agew0KICAgIG1hcmdpbi1ib3R0b206IDFlbTsNCiAgfQ0KICBjb2RlLnRhZyB7DQogICAgZm9udC1zaXplOiAxNHB4Ow0KICAgIGNvbG9yOiBncmVlbjsNCiAgfQ0KPC9zdHlsZT4NCg0KPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pg0KDQo8ZGl2IGlkPSJwYWdlX3RhYnMiPg0KDQogIDxkaXYgIGlkPSJnZW5lcmFsIj4NCiAgICBHZW5lcmFsDQogIDwvZGl2Pg0KICA8ZGl2IGlkPSJ1c2luZyI+DQogICAgSG93IERvIEkgVXNlIEl0DQogIDwvZGl2Pg0KICA8ZGl2IGlkPSJwYXJhbXMiPg0KICAgIFBhcmFtZXRlcnMNCiAgPC9kaXY+DQogIDxkaXYgaWQ9Imhvb2tzIj4NCiAgICBIb29rcw0KICA8L2Rpdj4NCiAgPGRpdiBpZD0iYWJvdXQiPg0KICAgIEFib3V0DQogIDwvZGl2Pg0KDQo8L2Rpdj4NCg0KPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4NCjxkaXYgaWQ9InBhZ2VfY29udGVudCI+DQoNCiAgPGRpdiBpZD0iZ2VuZXJhbF9jIj4NCiAgICB7aW5jbHVkZSBmaWxlPSdtb2R1bGVfZmlsZV90cGw6TUFNU1JlZ2lzdHJhdGlvbjtoZWxwX2dlbmVyYWxfdGFiLnRwbCd9DQogIDwvZGl2Pg0KICA8ZGl2IGlkPSJ1c2luZ19jIj4NCiAgICB7aW5jbHVkZSBmaWxlPSdtb2R1bGVfZmlsZV90cGw6TUFNU1JlZ2lzdHJhdGlvbjtoZWxwX3VzaW5nX3RhYi50cGwnfQ0KICA8L2Rpdj4NCiAgPGRpdiBpZD0icGFyYW1zX2MiPg0KICAgIHtpbmNsdWRlIGZpbGU9J21vZHVsZV9maWxlX3RwbDpNQU1TUmVnaXN0cmF0aW9uO2hlbHBfcGFyYW1zX3RhYi50cGwnfQ0KICA8L2Rpdj4NCiAgPGRpdiBpZD0iaG9va3NfYyI+DQogICAge2luY2x1ZGUgZmlsZT0nbW9kdWxlX2ZpbGVfdHBsOk1BTVNSZWdpc3RyYXRpb247aGVscF9ob29rc190YWIudHBsJ30NCiAgPC9kaXY+DQogIDxkaXYgaWQ9ImFib3V0X2MiPg0KICAgIHtpbmNsdWRlIGZpbGU9J21vZHVsZV9maWxlX3RwbDpNQU1TUmVnaXN0cmF0aW9uO2hlbHBfYWJvdXRfdGFiLnRwbCd9DQogIDwvZGl2Pg0KDQogIDxkaXYgY2xhc3M9ImNsZWFyYiI+PC9kaXY+DQo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/templates/help_about_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPkFib3V0IHRoaXMgbW9kdWxlPC9oMz4NCjxwPlRoaXMgbW9kdWxlIGlzIGEgZm9yayBvZiA8c3Ryb25nPlNlbGZSZWdpc3RyYXRpb248L3N0cm9uZz4gZGV2ZWxvcGVkIGJ5IDxzdHJvbmc+Um9iZXJ0IENhbXBiZWxsICZsdDtjYWxndXkxMDAwJmd0Ozwvc3Ryb25nPi48YnIgLz4NCiAgVGhpcyBpcyBhIDFzdCBnZW5lcmF0aW9uIGZvcmsgb2YgdGhlIG1vZHVsZS4gQ29uc2lkZXIgdGhpcyBhcyBhbm90aGVyIGZsYXZvdXIgb2YgdGhlIG9yaWdpbmFsIG1vZHVsZS4gSG93ZXZlciB0aGVyZSBhcmUgc29tZSBzdWJzdGFudGlhbCBkaWZmZXJlbmNlcywgdGhlbSBtYWluIG9uZSBiZWluZyB0aGF0IGl0IHJlcXVpcmVzIDxzdHJvbmc+TUFNUzwvc3Ryb25nPiAoYSBmb3JrIG9mIDxzdHJvbmc+RkVVPC9zdHJvbmc+IGFsc28gZnJvbSB0aGUgc2FtZSBhdXRob3IpLiA8c3Ryb25nPlRoaXMgbW9kdWxlIHdpbCBub3Qgd29yayB3aXRoIEZFVTwvc3Ryb25nPi48L3A+DQoNCjxwPklmIHlvdSBmaW5kIGFueSBidWdzIHBsZWFzZSBmZWVsIGZyZWUgdG8gc3VibWl0IGEgYnVnIHJlcG9ydCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL2J1Zy9saXN0LzE0NjYiIHRhcmdldD0iX2JsYW5rIj5oZXJlPC9hPiBvciBmb3IgYW55IGdvb2QgaWRlYXMgY29uc2lkZXIgc3VibWl0aW5nIGEgZmVhdHVyZSByZXF1ZXN0IDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvZmVhdHVyZV9yZXF1ZXN0L2xpc3QvMTQ2NiIgdGFyZ2V0PSJfYmxhbmsiPmhlcmU8L2E+LjwvcD4NCjxwPlBsZWFzZSBrZWVwIGluIG1pbmQgdGhhdCBkZXZlbG9wZXJzIGRvIGhhdmUgdGhlaXIgZGFpbHkgam9icyB3aGljaCBtZWFucyB0aGF0IGZlYXR1cmUgcmVxdWVzdHMgYXJlIGNvbnNpZGVyZWQgYW5kIGRvbmUgYXMgdGltZSBhbGxvd3MuIElmIHlvdSBuZWVkIGEgZmVhdHVyZSByZWFsbHkgYmFkbHkgY29uc2lkZXIgY29udGFjdGluZyBvbmUgb2YgdGhlIGRldmVsb3BlcnMgZm9yIGEgc3BvbnNvcmVkIGRldmVsb3BtZW50Lg0KPC9wPg0KDQoNCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoZSBtb2R1bGUgYXV0aG9yIC8gbWFpbnRhaW5lcnMgb3IgcHJvamVjdCBtYW5hZ2VycyBhcmUgaW4gbm8gd2F5IG9ibGlnYXRlZCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIHRoaXMgY29kZSBpbiBhbnkgZmFzaGlvbi4gIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkEgYnVnIHRyYWNraW5nIGFuZCBmZWF0dXJlIHJlcXVlc3Qgc3lzdGVtIGhhcyBiZWVuIGNyZWF0ZWQgZm9yIHRoaXMgbW9kdWxlIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvbWFtc3JlZyI+aGVyZTwvYT4uIFBsZWFzZSBiZSB2ZXJib3NlIGFuZCBkZXNjcmlwdGl2ZSB3aGVuIHN1Ym1pdHRpbmcgYnVnIHJlcG9ydHMgYW5kIGZlYXR1cmUgcmVxdWVzdHMsIGFuZCBmb3IgYnVnIHJlcG9ydHMgZW5zdXJlIHRoYXQgeW91IGhhdmUgcHJvdmlkZWQgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byByZWxpYWJseSByZXByb2R1Y2UgdGhlIGlzc3VlLjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LiAgV2hlbiBkZXNjcmliaW5nIGFuIGlzc3VlIHBsZWFzZSBtYWtlIGFuIGVmZm9ydCB0byBwcm92aWRlIGFsbCByZWxldmFudCBpbmZvcm1hdGlvbiwgYSB0aG9yb3VnaCBkZXNjcmlwdGlvbiBvZiB5b3VyIGlzc3VlLCBhbmQgc3RlcHMgdG8gcmVwcm9kdWNlIGl0IG9yIHlvdXIgZGlzY3Vzc2lvbiBtYXkgYmUgaWdub3JlZC48L2xpPg0KPC91bD4NCg0KPHA+VGhlIG1haW50YWluZXJzIHdpbGwgZG8gdGhlaXIgYmVzdCB0byBrZWVwIHRoZSBtb2R1bGUgYW5kIGFsbCB0aGUgbGlicmFyaWVzIGl0IHVzZXMgdXAgdG8gZGF0ZS48L3A+DQoNCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0Ke2lmICRzbWFydHkubm93fGRhdGVfZm9ybWF0OiIlWSIgPT0gJzIwMjAnfXskY3IgPSAnMjAyMCd9e2Vsc2V9eyRjciA9ICIyMDIwIC0geyRzbWFydHkubm93fGRhdGVfZm9ybWF0OiclWSd9In17L2lmfQ0KPHA+Q29weXJpZ2h0ICZjb3B5OyB7JGNyfSwgQ01TIE1hZGUgU2ltcGxlIEZvdW5kYXRpb24gPGEgaHJlZj0ibWFpbHRvOmluZm9AY21zbWFkZXNpbXBsZS5vcmciPiZsdDtpbmZvQGNtc21hZGVzaW1wbGUub3JnJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwOCwgUm9iZXJ0IENhbXBiZWxsICZsdDtjYWxndXkxMDAwJmd0Oy4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPGhyPg0KPHA+PHN0cm9uZz5NQU1TUmVnaXN0cmF0aW9uPC9zdHJvbmc+IGlzIGZyZWUgc29mdHdhcmU7PGJyIC8+IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSA8c3Ryb25nPkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlPC9zdHJvbmc+IGFzIHB1Ymxpc2hlZCBieSB0aGUgPHN0cm9uZz5GcmVlIFNvZnR3YXJlIEZvdW5kYXRpb248L3N0cm9uZz47PGJyIC8+IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPg0KPHA+PHN0cm9uZz5NQU1TUmVnaXN0cmF0aW9uPC9zdHJvbmc+IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCA8c3Ryb25nPldJVEhPVVQgQU5ZIFdBUlJBTlRZPC9zdHJvbmc+OzxiciAvPiB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgPHN0cm9uZz5NRVJDSEFOVEFCSUxJVFk8L3N0cm9uZz4gb3IgPHN0cm9uZz5GSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRTwvc3Ryb25nPi48L3A+DQo8cD5TZWUgdGhlR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy48L3A+DQogPHA+WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgPHN0cm9uZz5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZTwvc3Ryb25nPiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTs8YnIgLz4gaWYgbm90LCB3cml0ZSB0byB0aGUgPHN0cm9uZz5GcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBPC9zdHJvbmc+IG9yIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPnJlYWQgaXQgb25saW5lPC9hPi48L3A+DQo8cD48c3Ryb25nPllvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgPHN0cm9uZz5NQU1TUmVnaXN0cmF0aW9uPC9zdHJvbmc+Ljwvc3Ryb25nPjwvcD4NCjxocj4NCjxoND5DdXJyZW50IE1haW50YWluZXJzPC9oND4NCjx1bD4NCiAgPGxpIGNsYXNzPSJwX2JvdHRvbV8xNSI+PHN0cm9uZz5GZXJuYW5kbyBNb3JnYWRvIChKbyBNb3JnKTwvc3Ryb25nPjwvbGk+DQo8L3VsPg0KDQo8aDQ+UGFzdCBNYWludGFpbmVyczwvaDQ+DQo8dWw+DQogIDxsaT48c3Ryb25nPlJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMCk8L3N0cm9uZz4gPGJyIC8+d3d3LmNhbGd1eTEwMDAuY29tPC9saT4NCjwvdWw+DQoNCjxoND5Lbm93biBDb250cmlidXRvcnM8L2g0Pg0KPHVsPg0KICA8bGk+PHN0cm9uZz5Sb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDApPC9zdHJvbmc+PGJyIC8+d3d3LmNhbGd1eTEwMDAuY29tPC9saT4NCjwvdWw+DQoNCnsqDQpUT0RPOiBuZWVkIGFuIHVwZGF0ZWQgbGlzdCBvZiBzcG9uc29ycyA6fCAoSk0pDQo8aDQ+S25vd24gU3BvbnNvcnM8L2g0Pg0KPHVsPg0KICA8bGk+PHN0cm9uZz5NYXR0IEhvcm5zYnkgKERJR0kzKTwvc3Ryb25nPjxiciAvPnd3dy5tYXR0aG9ybnNieS5jYTwvbGk+DQogIDxsaT48c3Ryb25nPkdyZWdvcnkgUHJvc3NlciAoZ2VlcGVycyk8L3N0cm9uZz48YnIgLz53d3cuc3RpY2t5d2lja2V0ZGVzaWducy5jb208L2xpPg0KPC91bD4NCip9]]></data>
	</file>
	<file>
	  <filename>/templates/help_general_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGlzIG1vZHVsZSBpcyBkZXNpZ25lZCB0byBhbGxvdyBzaXRlIHZpc2l0b3JzIHRvIGNyZWF0ZSBhbiBhY2NvdW50IHRvIHlvdXIgd2Vic2l0ZSBieSBmaWxsaW5nIGluIHRoZWlyIG93biBwZXJzb25hbCBkZXRhaWxzLiAgVGhpcyBtb2R1bGUgd29ya3MgaW4gY29uanVuY3Rpb24gd2l0aCA8c3Ryb25nPk1BTVM8L3N0cm9uZz4gKDxzdHJvbmc+PGk+TWVtYmVycyBBcmVhIE1hZGUgU2ltcGxlPC9pPjwvc3Ryb25nPikgbW9kdWxlLjwvcD4NCjxoND5GZWF0dXJlczo8L2g0Pg0KPHVsPg0KICA8bGk+U3VwcG9ydHMgc2VuZGluZyBhIGNvbmZpcm1hdGlvbiBlbWFpbCAod2l0aCBhIHVuaXF1ZWx5IGdlbmVyYXRlZCBjb2RlKSB0byB2ZXJpZnkgdXNlciBpbmZvcm1hdGlvbjs8L2xpPg0KeyogIDxsaT5TdXBwb3J0cyBwYWlkIHJlZ2lzdHJhdGlvbiAoYWRkaXRpb25hbCBtb2R1bGVzIHJlcXVpcmVkKTs8L2xpPip9DQogIDxsaT5IYW5kbGVzIHRoZSBjYXNlIHdoZXJlIHVzZXJzIGhhdmUgYXR0ZW1wdGVkIHRvIHJlZ2lzdGVyLCBidXQgbG9zdCBvciBkaWQgbm90IHJlY2VpdmUgdGhlIGNvbmZpcm1hdGlvbiBlbWFpbC48L2xpPg0KICA8bGk+SGFuZGxlcyByZWdpc3RlcmluZyB0aGUgdXNlciBhbmQgYWRkaW5nIHRoZW0gdG8gPHN0cm9uZz5NQU1TPC9zdHJvbmc+IGRpcmVjdGx5LjwvbGk+DQogIDxsaT5IYW5kbGVzIGF1dG9tYXRpY2FsbHkgbm90aWZ5aW5nIGFuIGFkbWluIHdoZW4gc29tZW9uZSByZWdpc3RlcnMuPC9saT4NCiAgPGxpPkhhbmRsZXMgYWR2YW5jZWQgc2VjdXJpdHk8L2xpPg0KICA8bGk+U3VwcG9ydHMgY2FwdGNoYTwvbGk+DQogIDxsaT5TdXBwb3J0cyBhbGxvd2luZyBhIHVzZXIgdG8gcmVnaXN0ZXIgdG8gYW4gYWRkaXRpb25hbCBncm91cC48L2xpPg0KPC91bD4=]]></data>
	</file>
	<file>
	  <filename>/templates/help_hooks_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPkhvb2tzPC9oMz4NCjxwPlRoaXMgbW9kdWxlIHVzZXMgRXZlbnRzIGFuZCBIb29rcyB0byB0aWUgaW4gZXh0ZXJuYWwgZnVuY3Rpb25hbGl0eS4gIFRoZSBmb2xsb3dpbmcgaG9va3MgYXJlIGF2YWlsYWJsZTo8L3A+DQo8dWw+DQogICA8bGk+PGNvZGU+TUFNU1JlZ2lzdHJhdGlvbjo6YmVmb3JlTmV3VXNlcjwvY29kZT4gLSBDYWxsZWQgYmVmb3JlIGEgbmV3IHRlbXBvcmFyeSB1c2VyIGlzIGNyZWF0ZWQgaW4gdGhlIGRhdGFiYXNlLg0KICAgICAgIDxwPlRoaXMgaG9vayBpcyBjYWxsZWQgZnJvbSB0aGUgcmVnaXN0cmF0aW9uIGZvcm0gcHJvY2Vzc2luZywgYWZ0ZXIgdmFsaWRhdGluZyBhbGwgdXNlciBpbmZvcm1hdGlvbiwgYnV0IGJlZm9yZSBhZGRpbmcgdGhlIHRlbXBvcmFyeSB1c2VyIGluZm9ybWF0aW9uLiAgSXQgY2FuIGJlIHVzZWQgdG8gcGVyZm9ybSBmdXJ0aGVyIHZhbGlkYXRpb25zIG9uIHRoZSByZWdpc3RyYXRpb24gaW5mb3JtYXRpb24uPC9wPg0KICAgICAgIDxwPkhhbmRsZXJzIHRoYXQgYXJlIHVzaW5nIHRoaXMgaG9vayBjYW4gdGhyb3cgdGhlIDxjb2RlPk1BTVNSRUdWYWxpZGF0aW9uRXJyb3I8L2NvZGU+IEV4Y2VwdGlvbiBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPg0KICAgICAgIDxwPlBhcmFtZXRlcnM6IC0gVGhlIGhvb2sgaGFuZGxlciBzaG91bGQgYWNjZXB0IGEgc2luZ2xlIGFycmF5IHBhcmFtZXRlci4gIFRoZSBjb250ZW50cyBvZiB0aGlzIHBhcmFtZXRlciBhcmUgYW4gYXNzb2NpYXRpdmUgYXJyYXkgYXMgZm9sbG93czo8L3A+DQogICAgICAgPHVsPg0KICAgICAgICAgIDxsaT48Y29kZT51c2VybmFtZTwvY29kZT46IHN0cmluZzwvbGk+DQogICAgICAgICAgPGxpPjxjb2RlPmVtYWlsPC9jb2RlPjogc3RyaW5nPC9saT4NCiAgICAgICAgICA8bGk+PGNvZGU+cGFzc3dvcmQ8L2NvZGU+OiBzdHJpbmcgLSBUaGUgcGxhaW4gdGV4dCB1c2VyIHBhc3N3b3JkPC9saT4NCiAgICAgICA8L3VsPg0KICAgICAgIDxwPkV4YW1wbGU6PC9wPg0KPHByZT48Y29kZT5cQ01TTVNcSG9va01hbmFnZXI6OmFkZF9ob29rKCAnTUFNU1JlZ2lzdHJhdGlvbjo6YmVmb3JlTmV3VXNlcicsIGZ1bmN0aW9uKCAkcGFyYW1zICkgew0KICAgIGlmKCBzdHJsZW4oICRwYXJhbXNbJ3Bhc3N3b3JkJ10gKSAmbHQ7IDQgKSB0aHJvdyBuZXcgXE1BTVNSRUdWYWxpZGF0aW9uRXJyb3IoJ1lvdXIgcGFzc3dvcmQgaXMgdG9vIHNob3J0Jyk7DQp9KTs8L2NvZGU+PC9wcmU+DQogICA8L2xpPg0KDQogICA8bGk+PGNvZGU+TUFNU1JlZ2lzdHJhdGlvbjo6b25OZXdVc2VyPC9jb2RlPiAtIFRyaWdnZXJlZCB3aGVuIGEgbmV3IHRlbXBvcmFyeSB1c2VyIGlzIGNyZWF0ZWQgaW4gTUFNU1JlZ2lzdHJhdGlvbi4NCiAgICAgICA8cD5UaGlzIGhvb2sgaXMgY2FsbGVkIGFmdGVyIHRoZSBNQU1TUmVnaXN0cmF0aW9uIHRlbXBvcmFyeSB1c2VyIGlzIGNyZWF0ZWQgaW4gdGhlIGRhdGFiYXNlLCBidXQgYmVmb3JlIHZlcmlmaWNhdGlvbiwgb3IgYWRkaW5nIHRvIE1BTVMgZXRjLjwvcD4NCiAgICAgICA8cD5QYXJhbWV0ZXJzOiAtIFRoZSBob29rIGhhbmRsZXIgc2hvdWxkIGFjY2VwdCBhIHNpbmdsZSBhcnJheSBwYXJhbWV0ZXIuICBUaGUgY29udGVudHMgb2YgdGhpcyBwYXJhbWV0ZXIgYXJlIGFuIGFzc29jaWF0aXZlIGFycmF5IGFzIGZvbGxvd3M6PC9wPg0KICAgICAgIDx1bD4NCiAgICAgICAgICA8bGk+PGNvZGU+dXNlcm5hbWU8L2NvZGU+IDogc3RyaW5nPC9saT4NCiAgICAgICAgICA8bGk+PGNvZGU+ZW1haWw8L2NvZGU+IDogc3RyaW5nPC9saT4NCiAgICAgICA8L3VsPg0KICAgPC9saT4NCg0KICAgPGxpPjxjb2RlPk1BTVNSZWdpc3RyYXRpb246Om9uVXNlclJlZ2lzdGVyZWQ8L2NvZGU+IC0gVHJpZ2dlcmVkIGFmdGVyIGEgdGVtcG9yYXJ5IHVzZXIgYWNjb3VudCBoYXMgYmVlbiBjb252ZXJ0ZWQgaW50byBhbiBNQU1TIHVzZXIgYWNjb3VudC4NCiAgICAgICA8cD5QYXJhbWV0ZXJzOiAtIFRoZSBob29rIGhhbmRsZXIgc2hvdWxkIGFjY2VwdCBhIHNpbmdsZSBhcnJheSBwYXJhbWV0ZXIuICBUaGUgY29udGVudHMgb2YgdGhpcyBwYXJhbWV0ZXIgYXJlIGFuIGFzc29jaWF0aXZlIGFycmF5IGFzIGZvbGxvd3M6PC9wPg0KICAgICAgIDx1bD4NCiAgICAgICAgICA8bGk+PGNvZGU+aWQ8L2NvZGU+IDogaW50IC0gVGhlIE1BTVMgdWlkIG9mIHRoZSBuZXdseSBjcmVhdGVkIHVzZXIuPC9saT4NCiAgICAgICAgICA8bGk+PGNvZGU+dXNlcm5hbWU8L2NvZGU+IDogc3RyaW5nPC9saT4NCiAgICAgICA8L3VsPg0KICAgPC9saT4NCg0KPC91bD4=]]></data>
	</file>
	<file>
	  <filename>/templates/help_params_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPlBhcmFtZXRlcnM8L2gzPg0KPHVsPg0KPGxpPg0KICA8ZW0+KG9wdGlvbmFsKTwvZW0+IGFjdGlvbj0iZGVmYXVsdCIgLSBUaGlzIHBhcmFtZXRlciBkaWN0YXRlcyB0aGUgYmVoYXZpb3VyIG9mIHRoZSBtb2R1bGUuDQogIDx1bD4NCiAgICA8bGk+DQogICAgICA8c3Ryb25nPmRlZmF1bHQ8L3N0cm9uZz4NCiAgICAgIDxwPlRoaXMgaXMgdGhlIGRlZmF1bHQgYWN0aW9uLiAgQmFzZWQgb24gdGhlIDxlbT4oZGVwcmVjYXRlZCZndDs8L2VtPiBtb2RlIHBhcmFtZXRlciA8ZW0+KHNlZSBiZWxvdyk8L2VtPiBpdCB3aWxsIGRpc3BsYXkgZWl0aGVyIHRoZSB1c2VyIHJlZ2lzdHJhdGlvbiBmb3JtLCB0aGUgdmVyaWZ5IGZvcm0sIG9yIGFub3RoZXIgZm9ybS48L3A+DQogICAgPC9saT4NCiAgICA8bGk+DQogICAgICByZWdpc3Rlcl9saW5rDQogICAgICA8cD5EaXNwbGF5IGEgbGluayB0byB0aGUgdXNlciByZWdpc3RyYXRpb24gZm9ybS4gPGVtPihkZXByZWNhdGVkKTwvZW0+PC9wPg0KICAgIDwvbGk+DQogICAgPGxpPmFub3RoZXJncm91cCAtIEZvciB1c2VycyB3aG8gYXJlIGxvZ2dlZCBpbiB0byB0aGUgTUFNUyBtb2R1bGUsIHRoaXMgYWN0aW9uIGFsbG93cyB0aGVtIChzdWJqZWN0IHRvIHBlcm1pc3Npb24pIHRvIHNpZ24gdXAgdG8gYW5vdGhlciBuYW1lZCBNQU1TIGdyb3VwLjwvbGk+DQogIDwvdWw+DQo8L2xpPg0KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZGVzdHBhZ2U9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGFjdGlvbj1yZWdpc3Rlcl9saW5rLCBhbmQgdGhlIGRlZmF1bHQgYWN0aW9uLiB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyAoYnkgYWxpYXMgb3IgcGFnZSBpZCkgYSBkZXN0aW5hdGlvbiBwYWdlIGZvciB0aGUgbGluayBvciB0byByZWRpcmVjdCB0byBhZnRlciByZWdpc3RyYXRpb24gaXMgY29tcGxldGUuPC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGdyb3VwPSIiIC0gQXBwbGljYWJsZSB0byAoYW5kIHJlcXVpcmVkIGZvcikgdGhlIHJlZ2lzdGVyX2xpbmssIHJlZ2lzdGVyLCBvciBhbm90aGVyZ3JvdXAgYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBncm91cCBpbiB3aGljaCB0aGUgdXNlciB3aWxsIGJlIHJlZ2lzdGVyZWQ8L2xpPg0KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gb25seWhyZWY9IiIgLSBVc2VkIG9ubHkgaW4gdGhlIGFjdGlvbj1yZWdpc3Rlcl9saW5rLCBzZXR0aW5nIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGF0IHRoZSBvdXRwdXQgc2hvdWxkIG9ubHkgY29udGFpbiB0aGUgdXJsIHBvcnRpb24gb2YgdGhlIGxpbms8L2xpPg0KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGlua3RleHQ9IiIgLSBVc2VkIG9ubHkgaW4gdGhlIGFjdGlvbl9yZWdpc3Rlcl9saW5rIGl0IGFsbG93cyBzcGVjaWZ5aW5nIHRoZSB0ZXh0IGZvciB0aGUgZ2VuZXJhdGVkIGxpbmsuICBUaGlzIHBhcmFtZXRlciBpcyBpZ25vcmVkIGlmIHRoZSBvbmx5aHJlZiBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVkLjwvbGk+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub2lubGluZT0iIiAtIEFwcGxpY2FibGUgdG8gbWFueSBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBvdmVycmlkZXMgdGhlIHByZWZlcmVuY2UgaW4gdGhlIGFkbWluIHBhbmVsIHRvIGluZGljYXRlIHRoYXQgdGhlIG91dHB1dCBmcm9tIHRoZSBnZW5lcmF0ZWQgbGluayBvciBmb3JtIHNob3VsZCBub3QgYmUgZGlzcGxheWVkIGlubGluZS4gIGkuZTogbm9pbmxpbmU9MSBvbiB0aGUgZGVmYXVsdCBhY3Rpb24gd2lsbCBpbmRpY2F0ZSB0aGF0IHRoZSBvdXRwdXQgdGV4dCB3aWxsIHJlcGxhY2UgdGhlICZsYnJhY2U7Y29udGVudH0gdGFnLjwvbGk+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBhbGxvd292ZXJ3cml0ZT0iIiAtIFRoaXMgcGFyYW1ldGVyIGFsbG93cyBvdmVyd3JpdGluZyBleGlzdGluZyBNQU1TIHVzZXJzLiBJbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBwcmVmZXJlbmNlcyBpbiB0aGUgU2VsZlJlZ2lzdHJhdGlvbiBhZG1pbiBwYW5lbCB5b3UgY2FuIHNwZWNpZnkgd2hhdCBkYXRhIHdpbGwgYmUgdXNlZCB0byB1bmlxdWVseSBpZGVudGlmeSBhIHVzZXIgYWNjb3VudCc7PC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vZmluYWxtZXNzYWdlPSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0LCBzaWdudXAgYWN0aW9uLiBUaGlzIHBhcmFtZXRlciBhbGxvd3MgaW5kaWNhdGluZyB0aGF0IHRoZSBmaW5hbCByZWdpc3RyYXRpb24gY29uZmlybWF0aW9uIG1lc3NhZ2Ugc2hvdWxkIG5vdCBiZSBkaXNwbGF5ZWQuPC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHZlcmlmeXRlbXBsYXRlPSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSB2ZXJpZnkgYWN0aW9uIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIHRoZSBuYW1lIG9mIGEgbm9uLWRlZmF1bHQgdGVtcGxhdGUgdG8gdXNlLjwvbGk+DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/help_smarty_resources_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPlNtYXJ0eSBSZXNvdXJjZXM8L2gzPg0KPHA+Q01TTVNFeHQgcHJvdmlkZXMgdGhlIDxjb2RlPnh0X21vZGZpbGU8L2NvZGU+IHNtYXJ0eSByZXNvdXJjZS4gIFRoaXMgaXMgYSBzcGVjaWFsIHJlc291cmNlLCBzaW1pbGFyIHRvIHRoZSBDTVNNUyBjb3JlIHJlc291cmNlIGNhbGxlZCA8Y29kZT5tb2R1bGVfZmlsZV90cGw8L2NvZGU+IGV4Y2VwdCB0aGF0IGl0IGRvZXMgTk9UIHNlYXJjaCB0aGUgbW9kdWxlX2N1c3RvbSBkaXJlY3RvcnkgZm9yIG1vZHVsZSB0ZW1wbGF0ZXMuPC9wPg0KPHA+VGhpcyByZXNvdXJjZSBpcyB1c2VmdWwgd2hlbiB3YW50aW5nIHRvIHByZXBlbmQgb3IgYXBwZW5kIGNvbnRlbnQgdG8gYSBzdGFuZGFyZCBtb2R1bGUgdGVtcGxhdGUuPC9wPg0KPHA+SW5zdHJ1Y3Rpb25zOjwvcD4NCjx1bD4NCiAgIDxsaT5DcmVhdGUgdGhlIGFwcHJvcHJpYXRlIG1vZHVsZV9jdXN0b20gZGlyZWN0b3J5IGZvciB0aGUgbW9kdWxlIHRoYXQgaGFzIHRoZSB0ZW1wbGF0ZSB5b3Ugd2FudCB0byBlbmhhbmNlDQogICAgPHA+PHByZT48Y29kZT5ta2RpciAtcCBhc3NldHMvbW9kdWxlX2N1c3RvbS8mbHQ7bW9kdWxlX25hbWUmZ3Q7L3RlbXBsYXRlczwvY29kZT48L3ByZT48L3A+DQogICA8L2xpPg0KICAgPGxpPkNyZWF0ZSBhIG5ldyBmaWxlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyB0aGUgZmlsZSB5b3Ugd2FudCB0byBlbmhhbmNlLg0KICAgICAgIDxwPkluIHRoYXQgZmlsZSBhZGQgdGhlIGNvZGUgdGhhdCB5b3Ugd2FudCwgYW5kIGluY2x1ZGUgdGhlIHByaW1hcnkgZmlsZSB1c2luZyB0aGUgPGNvZGU+eHRfbW9kZmlsZTwvY29kZT4gcmVzb3VyY2UuIGkuZS46PC9wPg0KICAgICAgIDxwcmU+PGNvZGU+Jmx0O3N0eWxlJmd0Ow0KdGFibGUgdGJvZHkgdHIuZXZlbiB0ZCAmbGJyYWNlOw0KICAgY29sb3I6IGdyZWVuOw0KfQ0KJmx0Oy9zdHlsZSZndDsNCiZsYnJhY2U7aW5jbHVkZSBmaWxlPSd4dF9tb2RmaWxlOiZsdDttb2R1bGVfbmFtZSZndDs7dXNlcmxpc3QudHBsJ30NCiAgICAgICA8L2NvZGU+PC9wcmU+DQogICA8L2xpPg0KPC91bD4=]]></data>
	</file>
	<file>
	  <filename>/templates/help_using_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPkhvdyBEbyBJIFVzZSBJdD88L2gzPg0KPGg0Pk5vcm1hbCBSZWdpc3RyYXRpb248L2g0Pg0KPHVsPg0KICA8bGk+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIG1vZHVsZSByZXF1aXJlcyB0aGF0IHRoZSA8c3Ryb25nPk1BTVM8L3N0cm9uZz4gKDxzdHJvbmc+PGk+TWVtYmVycyBBcmVhIE1hZGUgU2ltcGxlPC9pPjwvc3Ryb25nPikgbW9kdWxlIGJlIHByb3Blcmx5IGluc3RhbGxlZCBhbmQgY29uZmlndXJlZC48L2xpPg0KICA8bGk+UGxhY2UgYSB0YWcgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nIG9uIGEgY29udGVudCBwYWdlOg0KICAgICA8Y29kZT4mbGJyYWNlO01BTVNSZWdpc3RyYXRpb24gZ3JvdXA9YWdyb3VwbmFtZX08L2NvZGU+DQogICAgIDxwPjxjb2RlPmFncm91cG5hbWU8L2NvZGU+IGlzIGEgZ3JvdXAgbmFtZSB0aGF0IGV4aXN0cyBhbmQgaGFzIGJlZW4gY29uZmlndXJlZCBpbiB0aGUgPHN0cm9uZz5NQU1TPC9zdHJvbmc+IG1vZHVsZS48L3A+DQogIDwvbGk+DQo8L3VsPg0KPGg0PkFsbG93aW5nIGEgdXNlciB0byByZWdpc3RlciBmb3IgYW5vdGhlciBncm91cC48L2g0Pg0KPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiB0aGUgcmVnaXN0ZXIgZm9yIGFub3RoZXIgZ3JvdXAgYWN0aW9uIHJlcXVpcmVzIHRoYXQgYSB1c2VyIGJlIGxvZ2dlZCBpbiB0byA8c3Ryb25nPk1BTVM8L3N0cm9uZz4gdG8gdXRpbGl6ZSB0aGlzIGFjdGlvbi4gIElmIHRoZSB1c2VyIGlzIGFscmVhZHkgYSBtZW1iZXIgb2YgdGhlIHNlbGVjdGVkIGdyb3VwKHMpIG9yIGFub3RoZXIgZXJyb3Igb2NjdXJzIG5vIG91dHB1dCB3aWxsIGJlIGRpc3BsYXllZC48L3A+DQo8cD5UbyBhbGxvdyBhIHVzZXIgdG8gcmVnaXN0ZXIgZm9yIGFub3RoZXIgZ3JvdXAgZm9sbG93IHRoZXNlIHN0ZXBzOjwvcD4NCjx1bD4NCiAgPGxpPkVuYWJsZSB0aGUgb3B0aW9uIGluIHRoZSBNQU1TUmVnaXN0cmF0aW9uIG1vZHVsZSBzZXR0aW5ncy48L2xpPg0KICA8bGk+QWRkIGEgY2FsbCBzdWNoIGFzIDxjb2RlPiZsYnJhY2U7TUFNU1JlZ2lzdHJhdGlvbiBhY3Rpb249YW5vdGhlcmdyb3VwIGdyb3VwPW90aGVyZ3JvdXBuYW1lfTwvY29kZT4gdG8gYSBjb250ZW50IHBhZ2UuDQo8L2xpPjwvdWw+DQoNCg==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_anothergroup_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogb3JpZyBhbm90aGVyZ3JvdXAgdGVtcGxhdGUgKn0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogICQoJ2lucHV0LmRhdGVwaWNrZXInKS5kYXRlcGlja2VyKCk7Cn0pCjwvc2NyaXB0Pgo8aDQ+eyRtb2QtPkxhbmcoJ3RpdGxlX2Fub3RoZXJncm91cCcpfTwvaDQ+Cgp7aWYgaXNzZXQoJGZpbmFsX21lc3NhZ2UpfQogIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8iPnskZmluYWxfbWVzc2FnZX08L2Rpdj4KICA8cD57Y21zX3NlbGZsaW5rIHBhZ2U9JHBhZ2VfYWxpYXMgdGV4dD0kbW9kLT5MYW5nKCdyZXR1cm4nKX06PC9wPgp7ZWxzZX0KICB7aWYgaXNzZXQoJGVycm9yX21lc3NhZ2UpfQogICAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtZGFuZ2VyIj57JGVycm9yX21lc3NhZ2V9PC9kaXY+CiAgey9pZn0KCiAgeyRmb3Jtc3RhcnR9CiAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtaW5mbyI+eyRtb2QtPkxhbmcoJ2luZm9fYW5vdGhlcm1zZ19wYXNzd2QnKX08L2Rpdj4KICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgPGxhYmVsIGZvcj0ibXJfcGFzc3dkIiBjbGFzcz0iY29sLXNtLTMgdGV4dC1yaWdodCByZXF1aXJlZCIgc3R5bGU9ImNvbG9yOiB7JHJlcV9jb2xvcn07Ij57JHJlcV9tYXJrZXJ9IHskbW9kLT5MYW5nKCdwYXNzd29yZCcpfTo8L2xhYmVsPgogICAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBpZD0ibXJfcGFzc3dkIiBuYW1lPSJ7JGFjdGlvbmlkfW1yX3Bhc3N3b3JkIiBjbGFzcz0iY29sLXNtLTkiIHNpemU9InskcHdmbGRsZW59IiByZXF1aXJlZC8+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icm93Ij4KICAgIDxsYWJlbCBmb3I9Im1yX3Bhc3N3ZDIiIGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0IHJlcXVpcmVkIiBzdHlsZT0iY29sb3I6IHskcmVxX2NvbG9yfTsiPnskcmVxX21hcmtlcn0geyRtb2QtPkxhbmcoJ3JlcGVhdHBhc3N3b3JkJyl9OjwvbGFiZWw+CiAgICA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIGlkPSJtcl9wYXNzd2QyIiBuYW1lPSJ7JGFjdGlvbmlkfW1yX3Bhc3N3b3JkMiIgY2xhc3M9ImNvbC1zbS05IiBzaXplPSJ7JHB3ZmxkbGVufSIgcmVxdWlyZWQvPgogIDwvZGl2PgoKICB7Zm9yZWFjaCAkcHJvcGVydGllcyBhcyAkbmFtZSA9PiAkcmVjfQogICAge2lmICRyZWMtPnR5cGUgPT0gMH0KICAgICAgeyogdGV4dCBmaWVsZCAqfQogICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgIDxsYWJlbCBmb3I9InskcmVjLT5mbGRuYW1lfSIgY2xhc3M9ImNvbC1zbS0zIHRleHQtcmlnaHQiIHtpZiAkcmVjLT5jb2xvcn1zdHlsZT0iY29sb3I6IHskcmVjLT5jb2xvcn0iey9pZn0+CiAgICAgICAgICB7aWYgJHJlYy0+bWFya2VyfXskcmVjLT5tYXJrZXJ9ey9pZn17JHJlYy0+cHJvbXB0fToKICAgICAgICA8L2xhYmVsPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ieyRyZWMtPmZsZG5hbWV9IiBuYW1lPSJ7JHJlYy0+ZmxkbmFtZX0iIHZhbHVlPSJ7JHJlYy0+dmFsdWV9IiBzaXplPSI4MCIge2lmICRyZWMtPnJlcXVpcmVkfXJlcXVpcmVkey9pZn0gY2xhc3M9ImNvbC1zbS05Ii8+CiAgICAgIDwvZGl2PgogICAge2Vsc2VpZiAkcmVjLT50eXBlID09IDF9CiAgICAgIHsqIGNoZWNrYm94ICp9CiAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgPHAgY2xhc3M9ImNvbC1zbS0zIj4mbmJzcDs8L3A+CiAgICAgICAgPGxhYmVsIGZvcj0ieyRyZWMtPmZsZG5hbWV9IiBjbGFzcz0iY29sLXNtLTkiIHtpZiAkcmVjLT5jb2xvcn1zdHlsZT0iY29sb3I6IHskcmVjLT5jb2xvcn0iey9pZn0+CiAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJ7JHJlYy0+ZmxkbmFtZX0iIG5hbWU9InskcmVjLT5mbGRuYW1lfSIgdmFsdWU9InskcmVjLT52YWx9IiBzaXplPSI4MCIge2lmICRyZWMtPnJlcXVpcmVkfXJlcXVpcmVkey9pZn0vPgogICAgICAgICAge2lmICRyZWMtPm1hcmtlcn17JHJlYy0+bWFya2VyfXsvaWZ9eyRyZWMtPnByb21wdH06CiAgICAgICAgPC9sYWJlbD4KICAgICAgPC9kaXY+CiAgICB7ZWxzZWlmICRyZWMtPnR5cGUgPT0gMn0KICAgICAgeyogZW1haWwgKn0KICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICA8bGFiZWwgZm9yPSJ7JHJlYy0+ZmxkbmFtZX0iIGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0IiB7aWYgJHJlYy0+Y29sb3J9c3R5bGU9ImNvbG9yOiB7JHJlYy0+Y29sb3J9InsvaWZ9PgogICAgICAgICAge2lmICRyZWMtPm1hcmtlcn17JHJlYy0+bWFya2VyfXsvaWZ9eyRyZWMtPnByb21wdH06CiAgICAgICAgPC9sYWJlbD4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InskcmVjLT5mbGRuYW1lfSIgbmFtZT0ieyRyZWMtPmZsZG5hbWV9IiB2YWx1ZT0ieyRyZWMtPnZhbHVlfSIgc2l6ZT0iODAiIHtpZiAkcmVjLT5yZXF1aXJlZH1yZXF1aXJlZHsvaWZ9IGNsYXNzPSJjb2wtc20tOSIvPgogICAgICA8L2Rpdj4KICAgIHtlbHNlaWYgJHJlYy0+dHlwZSA9PSAzfQogICAgICB7KiB0ZXh0YXJlYSAqfQogICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgIDxsYWJlbCBmb3I9InskcmVjLT5mbGRuYW1lfSIgY2xhc3M9ImNvbC1zbS0zIHRleHQtcmlnaHQiIHtpZiAkcmVjLT5jb2xvcn1zdHlsZT0iY29sb3I6IHskcmVjLT5jb2xvcn0iey9pZn0+CiAgICAgICAgICB7aWYgJHJlYy0+bWFya2VyfXskcmVjLT5tYXJrZXJ9ey9pZn17JHJlYy0+cHJvbXB0fToKICAgICAgICA8L2xhYmVsPgogICAgICAgIHt4dF90ZXh0YXJlYSBpZD0kcmVjLT5mbGRuYW1lIG5hbWU9JHJlYy0+ZmxkbmFtZSB2YWx1ZT0kcmVjLT52YWwgcm93cz01fQogICAgICA8L2Rpdj4KICAgIHtlbHNlaWYgJHJlYy0+dHlwZSA9PSA0fQogICAgICB7KiBkcm9wZG93biAqfQogICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgIDxsYWJlbCBmb3I9InskcmVjLT5mbGRuYW1lfSIgY2xhc3M9ImNvbC1zbS0zIHRleHQtcmlnaHQiIHtpZiAkcmVjLT5jb2xvcn1zdHlsZT0iY29sb3I6IHskcmVjLT5jb2xvcn0iey9pZn0+CiAgICAgICAgICB7aWYgJHJlYy0+bWFya2VyfXskcmVjLT5tYXJrZXJ9ey9pZn17JHJlYy0+cHJvbXB0fToKICAgICAgICA8L2xhYmVsPgogICAgICAgIDxzZWxlY3QgaWQ9InskcmVjLT5mbGRuYW1lfSIgbmFtZT0ieyRyZWMtPmZsZG5hbWV9Ij4KICAgICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kcmVjLT5vcHRpb25zIHNlbGVjdGVkPSRyZWMtPnZhbHVlfQogICAgICAgIDwvc2VsZWN0PgogICAgICA8L2Rpdj4KICAgIHtlbHNlaWYgJHJlYy0+dHlwZSA9PSA1fQogICAgICB7KiBtdWx0aXNlbGVjdCAqfQogICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgIDxsYWJlbCBmb3I9InskcmVjLT5mbGRuYW1lfSIgY2xhc3M9ImNvbC1zbS0zIHRleHQtcmlnaHQiIHtpZiAkcmVjLT5jb2xvcn1zdHlsZT0iY29sb3I6IHskcmVjLT5jb2xvcn0iey9pZn0+CiAgICAgICAgICB7aWYgJHJlYy0+bWFya2VyfXskcmVjLT5tYXJrZXJ9ey9pZn17JHJlYy0+cHJvbXB0fToKICAgICAgICA8L2xhYmVsPgogICAgICAgIDxzZWxlY3QgaWQ9InskcmVjLT5mbGRuYW1lfSIgbmFtZT0ieyRyZWMtPmZsZG5hbWV9W10iIG11bHRpcGxlIHtpZiAkcmVjLT5yZXF1aXJlZH1yZXF1aXJlZHsvaWZ9IHNpemU9IjUiPgogICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRyZWMtPm9wdGlvbnMgc2VsZWN0ZWQ9JHJlYy0+dmFsdWV9CiAgICAgICAgPC9zZWxlY3Q+CiAgICAgIDwvZGl2PgogICAge2Vsc2VpZiAkcmVjLT50eXBlID09IDZ9CiAgICAgIHsqIGltYWdlICp9CiAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgPGxhYmVsIGZvcj0ieyRyZWMtPmZsZG5hbWV9IiBjbGFzcz0iY29sLXNtLTMgdGV4dC1yaWdodCIge2lmICRyZWMtPmNvbG9yfXN0eWxlPSJjb2xvcjogeyRyZWMtPmNvbG9yfSJ7L2lmfT4KICAgICAgICAgIHtpZiAkcmVjLT5tYXJrZXJ9eyRyZWMtPm1hcmtlcn17L2lmfXskcmVjLT5wcm9tcHR9OgogICAgICAgIDwvbGFiZWw+Cgk8ZGl2IGNsYXNzPSJjb2wtc20tOSI+CgkgIHtpZiBpc3NldCgkcmVjLT5pbWFnZV91cmwpfQoJICAgIHtpZiAkcmVjLT5pc19pbWFnZX0KCSAgICAgIHsqIE5PVEU6IFRoaXMgaXMgYSBnb29kIGNhc2UgdXNlIGZvciBDR1NtYXJ0SW1hZ2UgaW4gY2FzZSB0aGUgdXNlciB1cGxvYWRlZCBhIGh1Z2UgaW1hZ2UgKn0KICAgICAgICAgICAgICA8aW1nIHNyYz0ieyRyZWMtPmltYWdlX3VybH0iIGFsdD0ieyRyZWMtPnZhbH0iIGNsYXNzPSJ0aHVtYm5haWwiIHdpZHRoPSIxMDAiLz4KCSAgICB7ZWxzZX0KCSAgICAgIHskcmVjLT52YWx9CgkgICAgey9pZn0KICAJICAgIDxici8+CiAgICAgICAgICB7L2lmfQoJICA8aW5wdXQgZmlsZT0iaGlkZGVuIiBuYW1lPSJ7JHJlYy0+ZmxkbmFtZX0iIHZhbHVlPSJ7JHJlYy0+dmFsdWV9Ii8+CgkgIDxpbnB1dCB0eXBlPSJmaWxlIiBpZD0ieyRyZWMtPmZsZG5hbWV9IiBuYW1lPSJ7JHJlYy0+ZmxkbmFtZX0iIHtpZiAkcmVjLT5yZXF1aXJlZH1yZXF1aXJlZHsvaWZ9Lz4KCTwvZGl2PgogICAgICA8L2Rpdj4KICAgIHtlbHNlaWYgJHJlYy0+dHlwZSA9PSA3fQogICAgICB7KiByYWRpb2J1dHRvbnMgKn0KICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICA8bGFiZWwgZm9yPSJ7JHJlYy0+ZmxkbmFtZX0iIGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0IiB7aWYgJHJlYy0+Y29sb3J9c3R5bGU9ImNvbG9yOiB7JHJlYy0+Y29sb3J9InsvaWZ9PntpZiAkcmVjLT5tYXJrZXJ9eyRyZWMtPm1hcmtlcn17L2lmfXskcmVjLT5wcm9tcHR9OjwvbGFiZWw+Cgk8ZGl2IGNsYXNzPSJjb2wtc20tOSI+CgkgIHtmb3JlYWNoICRyZWMtPm9wdGlvbnMgYXMgJGtleT0+JHZhbH0KCSAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InskcmVjLT5mbGRuYW1lfSIgdmFsdWU9JGtleSB7aWYgJHJlYy0+dmFsID09ICRrZXl9Y2hlY2tlZHsvaWZ9IHtpZiAkdmFsQGZpcnN0fWlkPSJ7JHJlYy0+ZmxkbmFtZX0iey9pZn0vPiB7JHZhbH0KCSAgICB7aWYgISR2YWxAbGFzdH08YnIvPnsvaWZ9CgkgIHsvZm9yZWFjaH0KCTwvZGl2PgogICAgICA8L2Rpdj4KICAgIHtlbHNlaWYgJHJlYy0+dHlwZSA9PSA4fQogICAgICB7KiBkYXRlICp9CiAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgPGxhYmVsIGZvcj0ieyRyZWMtPmZsZG5hbWV9IiBjbGFzcz0iY29sLXNtLTMgdGV4dC1yaWdodCIge2lmICRyZWMtPmNvbG9yfXN0eWxlPSJjb2xvcjogeyRyZWMtPmNvbG9yfSJ7L2lmfT4KICAgICAgICAgIHtpZiAkcmVjLT5tYXJrZXJ9eyRyZWMtPm1hcmtlcn17L2lmfXskcmVjLT5wcm9tcHR9OgogICAgICAgIDwvbGFiZWw+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJ7JHJlYy0+ZmxkbmFtZX0iIG5hbWU9InskcmVjLT5mbGRuYW1lfSIgdmFsdWU9InskcmVjLT52YWx1ZX0iIGNsYXNzPSJkYXRlcGlja2VyIGNvbC1zbS05IiBzaXplPSI4MCIge2lmICRyZWMtPnJlcXVpcmVkfXJlcXVpcmVkey9pZn0vPgogICAgICA8L2Rpdj4KICAgIHsvaWZ9CiAgey9mb3JlYWNofQogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8cCBjbGFzcz0iY29sLXNtLTMiPiZuYnNwOzwvcD4KICAgIDxwIGNsYXNzPSJjb2wtc20tOSI+CiAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9bXJfc3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgPC9wPgogIDwvZGl2PgogIHskZm9ybWVuZH0Key9pZn0K]]></data>
	</file>
	<file>
	  <filename>/templates/orig_postreg1.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogcG9zdCByZWdpc3RyYXRpb24gMSB0ZW1wbGF0ZSAqfQp7aWYgaXNzZXQoJG1lc3Nhc2dlKSAmJiAkbWVzc2FnZSAhPSAnJ30KICB7aWYgaXNzZXQoJGVycm9yKSAmJiAkZXJyb3IgIT0gJyd9CiAgICA8cD48Zm9udCBjb2xvcj0icmVkIj57JG1lc3NhZ2V9PC9mb250PjwvcD4KICB7ZWxzZX0KICAgIDxwPnskbWVzc2FnZX08L3A+CiAgey9pZn0Key9pZn0KPHA+VGhhbmsgeW91IHskdXNlcm5hbWV9IGZvciByZWdpc3RlcmluZyB3aXRoICZxdW90O3tzaXRlbmFtZX0mcXVvdDsuICBBbiBlbWFpbCBoYXMgYmVlbiBzZW50IHRvIHskZW1haWx9IHdpdGggaW5zdHJ1Y3Rpb25zIG9uIGhvdyB0byBjb250aW51ZSB0aGUgcmVnaXN0cmF0aW9uIHByb2Nlc3M8L3A+CjwhLS0gUG9zdCBSZWdpc3RyYXRpb24gMSB0ZW1wbGF0ZSAtLT4K]]></data>
	</file>
	<file>
	  <filename>/templates/orig_registration1.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogcmVnaXN0cmF0aW9uIDEgdGVtcGxhdGUgKn0KPGgzPnskbW9kLT5MYW5nKCd1c2VyX3JlZ2lzdHJhdGlvbicpfTwvaDM+CntpZiBpc3NldCgkbWVzc2FnZSkgJiYgJG1lc3NhZ2UgIT0gJyd9CiAge2lmIGlzc2V0KCRlcnJvcikgJiYgJGVycm9yICE9ICcnfQogICAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtZGFuZ2VyIj57JG1lc3NhZ2V9PC9kaXY+CiAge2Vsc2V9CiAgICA8ZGl2IGNsYXNzPSJhbGVydCBhbGVydC1pbmZvIj57JG1lc3NhZ2V9PC9kaXY+CiAgey9pZn0Key9pZn0KCnskc3RhcnRmb3JtfXt4dF9mb3JtX2NzcmZ9eyRoaWRkZW58ZGVmYXVsdDonJ30Ke2lmICRjb250cm9sY291bnQgPiAwfQogIHtmb3JlYWNoIGZyb209JGNvbnRyb2xzIGl0ZW09Y29udHJvbH0KICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgIHtpZiBpc3NldCgkY29udHJvbC0+aGlkZGVuKX17JGNvbnRyb2wtPmhpZGRlbn17L2lmfQogICAgICB7aWYgJGNvbnRyb2wtPnR5cGUgPT0gJ3RleHQnfQogICAgICAgIDxsYWJlbCBjbGFzcz0iY29sLXNtLTMgdGV4dC1yaWdodCIgZm9yPSJ7JGNvbnRyb2wtPmxhYmVsZm9yfSIge2lmICRjb250cm9sLT5jb2xvcn1zdHlsZT0iY29sb3I6IHskY29udHJvbC0+Y29sb3J9InsvaWZ9PnskY29udHJvbC0+bWFya2VyfXskY29udHJvbC0+cHJvbXB0fTo8L2xhYmVsPgoJPGlucHV0IGlkPSJ7JGNvbnRyb2wtPmxhYmVsZm9yfSIgdHlwZT0idGV4dCIgY2xhc3M9ImNvbC1zbS02IiBzaXplPSJ7JGNvbnRyb2wtPnNpemV9IiBtYXhsZW5ndGg9InskY29udHJvbC0+bWF4bGVuZ3RofSIgbmFtZT0ieyRjb250cm9sLT5pbnB1dF9uYW1lfSIgdmFsdWU9InskY29udHJvbC0+dmFsfSIvPgogICAgICB7ZWxzZWlmICRjb250cm9sLT50eXBlID09ICdwYXNzd29yZCd9CiAgICAgICAgPGxhYmVsIGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0IiBmb3I9InskY29udHJvbC0+bGFiZWxmb3J9IiB7aWYgJGNvbnRyb2wtPmNvbG9yfXN0eWxlPSJjb2xvcjogeyRjb250cm9sLT5jb2xvcn0iey9pZn0+eyRjb250cm9sLT5tYXJrZXJ9eyRjb250cm9sLT5wcm9tcHR9OjwvbGFiZWw+Cgk8aW5wdXQgaWQ9InskY29udHJvbC0+bGFiZWxmb3J9IiB0eXBlPSJwYXNzd29yZCIgY2xhc3M9ImNvbC1zbS02IiBzaXplPSJ7JGNvbnRyb2wtPnNpemV9IiBtYXhsZW5ndGg9InskY29udHJvbC0+bWF4bGVuZ3RofSIgbmFtZT0ieyRjb250cm9sLT5pbnB1dF9uYW1lfSIgdmFsdWU9InskY29udHJvbC0+dmFsfSIvPgogICAgICB7ZWxzZWlmICRjb250cm9sLT50eXBlID09ICdlbWFpbCd9CiAgICAgICAgPGxhYmVsIGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0IiBmb3I9InskY29udHJvbC0+bGFiZWxmb3J9IiB7aWYgJGNvbnRyb2wtPmNvbG9yfXN0eWxlPSJjb2xvcjogeyRjb250cm9sLT5jb2xvcn0iey9pZn0+eyRjb250cm9sLT5tYXJrZXJ9eyRjb250cm9sLT5wcm9tcHR9OjwvbGFiZWw+Cgk8aW5wdXQgaWQ9InskY29udHJvbC0+bGFiZWxmb3J9IiB0eXBlPSJlbWFpbCIgY2xhc3M9ImNvbC1zbS02IiBzaXplPSJ7JGNvbnRyb2wtPnNpemV9IiBtYXhsZW5ndGg9InskY29udHJvbC0+bWF4bGVuZ3RofSIgbmFtZT0ieyRjb250cm9sLT5pbnB1dF9uYW1lfSIgdmFsdWU9InskY29udHJvbC0+dmFsfSIvPgogICAgICB7ZWxzZWlmICRjb250cm9sLT50eXBlID09ICdjaGVja2JveCd9CiAgICAgICAgPGxhYmVsIGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0IiBmb3I9InskY29udHJvbC0+bGFiZWxmb3J9IiB7aWYgJGNvbnRyb2wtPmNvbG9yfXN0eWxlPSJjb2xvcjogeyRjb250cm9sLT5jb2xvcn0iey9pZn0+eyRjb250cm9sLT5tYXJrZXJ9eyRjb250cm9sLT5wcm9tcHR9OjwvbGFiZWw+Cgk8cCBjbGFzcz0iY29sLXNtLTkiPgogIAkgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskY29udHJvbC0+aW5wdXRfbmFtZX0iIHZhbHVlPSIwIi8+CgkgIDxpbnB1dCBpZD0ieyRjb250cm9sLT5sYWJlbGZvcn0iIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGNvbnRyb2wtPmlucHV0X25hbWV9IiB2YWx1ZT0iMSIge2lmICRjb250cm9sLT52YWx9Y2hlY2tlZHsvaWZ9Lz4KCTwvcD4KICAgICAge2Vsc2VpZiAkY29udHJvbC0+dHlwZSA9PSAndGV4dGFyZWEnfQogICAgICAgIDxsYWJlbCBjbGFzcz0iY29sLXNtLTMgdGV4dC1yaWdodCIgZm9yPSJ7JGNvbnRyb2wtPmxhYmVsZm9yfSIge2lmICRjb250cm9sLT5jb2xvcn1zdHlsZT0iY29sb3I6IHskY29udHJvbC0+Y29sb3J9InsvaWZ9PnskY29udHJvbC0+bWFya2VyfXskY29udHJvbC0+cHJvbXB0fTo8L2xhYmVsPgoJPHRleHRhcmVhIGlkPSJ7JGNvbnRyb2wtPmxhYmVsZm9yfSIgY2xhc3M9ImNvbC1zbS04IiBuYW1lPSJ7JGNvbnRyb2wtPmlucHV0X25hbWV9IiByb3dzPSI0Ij57JGNvbnRyb2wtPnZhbH08L3RleHRhcmVhPgogICAgICB7ZWxzZWlmICRjb250cm9sLT50eXBlID09ICdkcm9wZG93bid9CiAgICAgICAgPGxhYmVsIGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0IiBmb3I9InskY29udHJvbC0+bGFiZWxmb3J9IiB7aWYgJGNvbnRyb2wtPmNvbG9yfXN0eWxlPSJjb2xvcjogeyRjb250cm9sLT5jb2xvcn0iey9pZn0+eyRjb250cm9sLT5tYXJrZXJ9eyRjb250cm9sLT5wcm9tcHR9OjwvbGFiZWw+Cgk8c2VsZWN0IGlkPSJ7JGNvbnRyb2wtPmxhYmVsZm9yfSIgY2xhc3M9ImNvbC1zbS02IiBuYW1lPSJ7JGNvbnRyb2wtPmlucHV0X25hbWV9Ij4KCXtodG1sX29wdGlvbnMgb3B0aW9ucz0kY29udHJvbC0+b3B0aW9ucyBzZWxlY3RlZD0kY29udHJvbC0+dmFsfQoJPC9zZWxlY3Q+CiAgICAgIHtlbHNlaWYgJGNvbnRyb2wtPnR5cGUgPT0gJ211bHRpc2VsZWN0J30KICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1zbS0zIHRleHQtcmlnaHQiIGZvcj0ieyRjb250cm9sLT5sYWJlbGZvcn0iIHtpZiAkY29udHJvbC0+Y29sb3J9c3R5bGU9ImNvbG9yOiB7JGNvbnRyb2wtPmNvbG9yfSJ7L2lmfT57JGNvbnRyb2wtPm1hcmtlcn17JGNvbnRyb2wtPnByb21wdH06PC9sYWJlbD4KCTxzZWxlY3QgaWQ9InskY29udHJvbC0+bGFiZWxmb3J9IiBjbGFzcz0iY29sLXNtLTYiIG5hbWU9InskY29udHJvbC0+aW5wdXRfbmFtZX0iIG11bHRpcGxlPgoJe2h0bWxfb3B0aW9ucyBvcHRpb25zPSRjb250cm9sLT5vcHRpb25zIHNlbGVjdGVkPSRjb250cm9sLT52YWx9Cgk8L3NlbGVjdD4KICAgICAge2Vsc2VpZiAkY29udHJvbC0+dHlwZSA9PSAncmFkaW9ncm91cCd9CiAgICAgICAgPHAgY2xhc3M9ImNvbC1zbS0zIHRleHQtcmlnaHQiIHtpZiAkY29udHJvbC0+Y29sb3J9c3R5bGU9ImNvbG9yOiB7JGNvbnRyb2wtPmNvbG9yfSJ7L2lmfT57JGNvbnRyb2wtPm1hcmtlcn17JGNvbnRyb2wtPnByb21wdH06PC9wPgoJPHAgY2xhc3M9ImNvbC1zbS05Ij4KICAgICAgICAgIHtmb3JlYWNoICRjb250cm9sLT5vcHRpb25zIGFzICRrZXkgPT4gJHZhbH0KCSAgICA8bGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ7JGNvbnRyb2wtPmlucHV0X25hbWV9IiB2YWx1ZT0ieyRrZXl9IiB7aWYgJGtleSA9PSAkY29udHJvbC0+dmFsfWNoZWNrZWR7L2lmfS8+IHskdmFsfTwvbGFiZWw+CiAgICAgICAgICAgIHtpZiAhJHZhbEBsYXN0fTxici8+ey9pZn0KCSAgey9mb3JlYWNofQoJPC9wPgogICAgICB7ZWxzZWlmICRjb250cm9sLT50eXBlID09ICdkYXRlJ30KICAgICAgICA8cCBjbGFzcz0iY29sLXNtLTMgdGV4dC1yaWdodCIge2lmICRjb250cm9sLT5jb2xvcn1zdHlsZT0iY29sb3I6IHskY29udHJvbC0+Y29sb3J9InsvaWZ9PnskY29udHJvbC0+bWFya2VyfXskY29udHJvbC0+cHJvbXB0fTo8L3A+Cgk8cCBjbGFzcz0iY29sLXNtLTkiPgogICAgICAgICAgeyogZGF0ZSBmaWVsZHMgbXVzdCBhdCB0aGlzIHRpbWUgcmV0dXJuIDMgc2VwYXJhdGUgdmFsdWVzIGZvciB5ZWFyLCBtb250aCBhbmQgZGF5ICp9CiAgICAgICAgICB7aHRtbF9zZWxlY3RfZGF0ZSBwcmVmaXg9JGNvbnRyb2wtPmlucHV0X25hbWUgdGltZT0kY29udHJvbC0+dmFsIHN0YXJ0X3llYXI9JGNvbnRyb2wtPnN0YXJ0X3llYXIgZW5kX3llYXI9JGNvbnRyb2wtPmVuZF95ZWFyfQogICAgICAgIDwvcD4KICAgICAgey9pZn0KICAgIDwvZGl2PgogIHsvZm9yZWFjaH0Key9pZn0KCntpZiBpc3NldCgkY2FwdGNoYSl9CiAgPGRpdiBjbGFzcz0icm93Ij4KICAgIDxwIGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0IiBzdHlsZT0iY29sb3I6IGJsdWU7Ij57JGNhcHRjaGFfdGl0bGV9PC9wPgogICAgPGRpdiBjbGFzcz0iY29sLXNtLTkiPnskY2FwdGNoYX0KICAgICAge2lmICRuZWVkX2NhcHRjaGFfaW5wdXR9CiAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9bXJfaW5wdXRfY2FwdGNoYSIgc2l6ZT0iMTAiLz4KICAgICAgPC9kaXY+CiAgICAgIHsvaWZ9CiAgICA8L2Rpdj4KICA8L2Rpdj4Key9pZn0KCjxkaXYgY2xhc3M9InJvdyI+CiAgPHAgY2xhc3M9ImNvbC1zbS0zIHRleHQtcmlnaHQiIHN0eWxlPSJjb2xvcjogYmx1ZTsiPiZuYnNwOzwvcD4KICA8cCBjbGFzcz0iY29sLXNtLTkiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1tcl9zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgICA8YnIvPjxhIGhyZWY9Inttb2RfYWN0aW9uX3VybCBtb2R1bGU9U2VsZlJlZ2lzdHJhdGlvbiBhY3Rpb249ZGVmYXVsdCBtb2RlPXNlbmRhbm90aGVyZW1haWx9Ij57JG1vZC0+TGFuZygnbXNnX3NlbmRhbm90aGVyZW1haWwnKX08L2E+CiAgPC9wPgo8L2Rpdj4KCnskZW5kZm9ybX0K]]></data>
	</file>
	<file>
	  <filename>/templates/orig_registration2.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogcmVnaXN0cmF0aW9uIDIgdGVtcGxhdGUgKn0KPGgzPnskdGl0bGV9PC9oMz4Ke2lmIGlzc2V0KCRtZXNzYWdlKSAmJiAkbWVzc2FnZSAhPSAnJ30KICB7aWYgaXNzZXQoJGVycm9yKSAmJiAkZXJyb3IgIT0gJyd9CiAgICA8ZGl2IGNsYXNzPSJhbGVydCBhbGVydC1kYW5nZXIiPnskbWVzc2FnZX08L2Rpdj4KICB7ZWxzZX0KICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8iPnskbWVzc2FnZX08L2Rpdj4KICB7L2lmfQp7L2lmfQoKeyRzdGFydGZvcm19CiAgPGRpdiBjbGFzcz0icm93Ij4KICAgIDxwIGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0Ij57JHByb21wdF91c2VybmFtZX06PC9wPgogICAgPHAgY2xhc3M9ImNvbC1zbS05Ij4KICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfW1yX3VzZXJuYW1lIiB2YWx1ZT0ieyR1c2VybmFtZX0iIHNpemU9InskdW5mbGRsZW59IiBtYXhsZW5ndGg9InskbWF4dW5sZW59Ii8+CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icm93Ij4KICAgIDxwIGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0Ij57JHByb21wdF9wYXNzd29yZH06PC9wPgogICAgPHAgY2xhc3M9ImNvbC1zbS05Ij4KICAgICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgbmFtZT0ieyRhY3Rpb25pZH1tcl9wYXNzd29yZCIgdmFsdWU9InskcGFzc3dvcmR9IiBzaXplPSJ7JHB3ZmxkbGVufSIgbWF4bGVuZ3RoPSJ7JG1heHB3bGVufSIvPgogICAgPC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8cCBjbGFzcz0iY29sLXNtLTMgdGV4dC1yaWdodCI+eyRwcm9tcHRfY29kZX06PC9wPgogICAgPHAgY2xhc3M9ImNvbC1zbS05Ij4KICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfW1yX2lucHV0X2NvZGUiIHZhbHVlPSJ7JGNvZGV9IiBzaXplPSIzMCIgbWF4bGVuZ3RoPSIzMCIvPgogICAgPC9wPgogIDwvZGl2PgoKICB7aWYgaXNzZXQoJGNhcHRjaGEpfQogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8cCBjbGFzcz0iY29sLXNtLTMgdGV4dC1yaWdodCByZXJxdWlyZWQiPnskY2FwdGNoYV90aXRsZX08L3A+CiAgICA8ZGl2IGNsYXNzPSJjb2wtc20tOSI+eyRjYXB0Y2hhfQogICAgICB7aWYgJG5lZWRfY2FwdGNoYV9pbnB1dH0KICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1tcl9pbnB1dF9jYXB0Y2hhIiBzaXplPSIxMCIvPgogICAgICA8L2Rpdj4KICAgICAgey9pZn0KICAgIDwvZGl2PgogIDwvZGl2PgogIHsvaWZ9CgogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8cCBjbGFzcz0iY29sLXNtLTMiPiZuYnNwOzwvcD4KICAgIDxwIGNsYXNzPSJjb2wtc20tOSI+CiAgICAgICB7JGhpZGRlbnxkZWZhdWx0OicnfXskaGlkZGVuMnxkZWZhdWx0OicnfQogICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1tcl9zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgICA8L3A+CiAgPC9kaXY+CnskZW5kZm9ybX0K]]></data>
	</file>
	<file>
	  <filename>/templates/orig_selpkg_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogc2VsZWN0IHN1YnNjcmlwdGlvbiBwYWNrYWdlICp9CjxkaXYgaWQ9Im1hbXNyZWdfc2VscGtnIj4KCntpZiAhZW1wdHkoJGVycm9yX21zZyl9CiAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtZGFuZ2VyIj57JGVycm9yX21zZ308L2Rpdj4Key9pZn0KCntmb3JtX3N0YXJ0fQoKe2ZvcmVhY2ggJHBrZ3MgYXMgJHBrZ30KICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgIDxsYWJlbCBjbGFzcz0iY29sLXNtLTQiPgogICAgICAgICA8aW5wdXQgdHlwZT0ieyRpbnB1dHR5cGV8ZGVmYXVsdDoncmFkaW8nfSIgbmFtZT0ieyRhY3Rpb25pZH1tcl9zZWxwa2dbXSIgdmFsdWU9InskcGtnLmlkfSIvPgogICAgICAgICB7JHBrZy5wcm9tcHR9CiAgICAgPC9sYWJlbD4KICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tNCI+eyRwa2cuZGVzY3JpcHRpb259PC9kaXY+CiAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTQiPgogICAgICAgIHtpZiAkcGtnLmNvc3QgPiAwfXskY3VycmVuY3lfc3ltYm9sfGRlZmF1bHQ6Jyd9eyRwa2cuY29zdHxudW1iZXJfZm9ybWF0OjJ9Jm5ic3A7eyRjdXJyZW5jeV9jb2RlfGRlZmF1bHQ6Jyd9ey9pZn0KICAgICAgICA8c3Bhbj5wZXIgeyRwa2cuc3Vic2NyX251bX0geyRwa2cuc3Vic2NyX3R5cGV8dWN3b3Jkc308L3NwYW4+CiAgICAgPC9kaXY+CiAgPC9kaXY+CnsvZm9yZWFjaH0KCjxkaXYgY2xhc3M9InJvdyI+CiAgPHAgY2xhc3M9ImNvbC1zbS0xIj4mbmJzcDs8L3A+CiAgPHAgY2xhc3M9ImNvbC1zbS0xMCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfW1yX3N1Ym1pdCIgdmFsdWU9InskU2VsZlJlZ2lzdHJhdGlvbi0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgPC9wPgo8L2Rpdj4KCntmb3JtX2VuZH0KPC9kaXY+eyogI21hbXNyZWdfc2VscGtnICp9]]></data>
	</file>
	<file>
	  <filename>/templates/orig_sendanotheremail_form.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogc2VuZCBhbm90aGVyIGVtYWlsIGZvcm0gKn0KPGgzPnskbW9kLT5MYW5nKCd0aXRsZV9sb3N0ZW1haWwnKX08L2gzPgoKe2lmIGlzc2V0KCRtZXNzYWdlKSAmJiAkbWVzc2FnZSAhPSAnJ30KICB7aWYgaXNzZXQoJG1lc3NhZ2UpICYmICRlcnJvciAhPSAnJ30KICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWRhbmdlciI+eyRtZXNzYWdlfTwvZGl2PgogIHtlbHNlfQogICAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtaW5mbyI+eyRtZXNzYWdlfTwvZGl2PgogIHsvaWZ9CnsvaWZ9Cgp7JHN0YXJ0Zm9ybX0KPHA+SSBkaWRuJ3QgcmVjZWl2ZSBteSBjb25maXJtYXRpb24gZW1haWwsIHBsZWFzZSBzZW5kIGFub3RoZXIgb25lLjwvcD4KPGRpdiBjbGFzcz0icm93Ij4KICA8ZGl2IGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0Ij4KICAgIHskcHJvbXB0fToKICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjb2wtc20tOSI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1tcl91c2VybmFtZSIgc2l6ZT0iMjAiIG1heGxlbmd0aD0ieyRtYXhfdXNlcm5hbWVsZW5ndGh9Ii8+CiAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJyb3ciPgogIDxkaXYgY2xhc3M9ImNvbC1zbS0zIj4mbmJzcDs8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjb2wtc20tOSI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfW1yX3N1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8L2Rpdj4KPC9kaXY+CnskZW5kZm9ybX0K]]></data>
	</file>
	<file>
	  <filename>/templates/prefs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRtZXNzYWdlKSAmJiAkbWVzc2FnZSE9Jyd9PHA+eyRtZXNzYWdlfTwvcD57L2lmfQoJeyRzdGFydGZvcm19Cgk8ZGl2IGNsYXNzPSJjZiBjX2Z1bGwiPgoJICA8ZGl2IGNsYXNzPSJncmlkXzYiPgoJCTxmaWVsZHNldD4KCQkJPGxlZ2VuZD57JG1vZC0+TGFuZygncHJvbXB0X2dlbmVyYWxfc2V0dGluZ3MnKX08L2xlZ2VuZD4KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2lubGluZX06PC9wPgoJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2lubGluZX08L3A+CgkJPC9kaXY+CgkKCQk8L2ZpZWxkc2V0PgoJCgkJPGZpZWxkc2V0PgoJCQk8bGVnZW5kPnskbW9kLT5MYW5nKCdwcm9tcHRfcmVnaXN0cmF0aW9uX3NldHRpbmdzJyl9PC9sZWdlbmQ+CgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9lbWFpbF9jb25maXJtYXRpb259OjwvcD4KCQkgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZW1haWxfY29uZmlybWF0aW9ufQoJCQkJPGJyLz4KCQkJCXskbW9kLT5MYW5nKCdpbmZvX2VtYWlsX2NvbmZpcm1hdGlvbicpfQoJCQkgIDwvcD4KCQk8L2Rpdj4KCQoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfb25lY2xpY2tfY29uZmlybWF0aW9ufTo8L3A+CgkJICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X29uZWNsaWNrX2NvbmZpcm1hdGlvbn0KCQkJCTxici8+CgkJCQl7JG1vZC0+TGFuZygnaW5mb19vbmVjbGlja19jb25maXJtYXRpb24nKX0KCQkJICA8L3A+CgkJPC9kaXY+CgkKCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfYXV0b2NyZWF0ZW1hbXMnKX06PC9wPgoJCSAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJCTxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1hdXRvY3JlYXRlX21hbXMiPgoJCQkgIHt4dF95ZXNub19vcHRpb25zIHNlbGVjdGVkPSRhdXRvY3JlYXRlX21hbXN9CgkJCTwvc2VsZWN0PgoJCQkJPGJyLz57JG1vZC0+TGFuZygnaW5mb19hdXRvY3JlYXRlbWFtcycpfQoJCQkgIDwvcD4KCQk8L2Rpdj4KCQoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF92ZXJpZnlwYWdlJyl9OjwvcD4KCQkgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPntwYWdlX3NlbGVjdG9yIG5hbWU9InskYWN0aW9uaWR9dmVyaWZ5cGFnZSIgdmFsdWU9JHZlcmlmeXBhZ2V9CgkJCQk8YnIvPgoJCQkJeyRtb2QtPkxhbmcoJ2luZm9fdmVyaWZ5cGFnZScpfQoJCQkgIDwvcD4KCQk8L2Rpdj4KCQoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfbG9naW5fYWZ0ZXJ2ZXJpZnl9OjwvcD4KCQkgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfbG9naW5fYWZ0ZXJ2ZXJpZnl9CgkJCQk8YnIvPgoJCQkJeyRtb2QtPkxhbmcoJ2luZm9fbG9naW5fYWZ0ZXJ2ZXJpZnknKX0KCQkJICA8L3A+CgkJPC9kaXY+CgkKCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2ZvcmNlX2VtYWlsX3R3aWNlfTo8L3A+CgkJICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2ZvcmNlX2VtYWlsX3R3aWNlfQoJCQkJPGJyLz57JG1vZC0+TGFuZygnaW5mb19mb3JjZV9lbWFpbF90d2ljZScpfQoJCQkgIDwvcD4KCQk8L2Rpdj4KCQoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJICA8cCBjbGFzcz0icGFnZXRleHQiPjxsYWJlbCBmb3I9ImFsbG93c2VsZWN0cGtnIj57JG1vZC0+TGFuZygncHJvbXB0X2FsbG93X3NlbGVjdF9wa2cnKX08L2xhYmVsPjo8L3A+CgkJICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KCQkJCTxzZWxlY3QgaWQ9ImFsbG93c2VsZWN0cGtnIiBuYW1lPSJ7JGFjdGlvbmlkfWFsbG93c2VsZWN0cGtnIj4KCQkJCXtodG1sX29wdGlvbnMgb3B0aW9ucz0kc2VsZWN0cGtnb3B0cyBzZWxlY3RlZD0kYWxsb3dzZWxlY3Rwa2d9CgkJCQk8L3NlbGVjdD4KCQkJCTxici8+eyRtb2QtPkxhbmcoJ2luZm9fYWxsb3dzZWxlY3Rwa2cnKX07CgkJCSAgPC9wPgoJCTwvZGl2PgoJCgkJPGhyLz4KCQoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfc2tpcF9maW5hbF9tc2d9OjwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9za2lwX2ZpbmFsX21zZ30KCQkJCQkgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fc2tpcF9maW5hbF9tc2cnKX0KCQkJCQk8L3A+CgkJPC9kaXY+CgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9yZWRpcmVjdF9hZnRlcnJlZ2lzdGVyfTo8L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfcmVkaXJlY3RfYWZ0ZXJyZWdpc3Rlcn08L3A+CgkJPC9kaXY+CgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9yZWRpcmVjdF9hZnRlcnZlcmlmeX06PC9wPgoJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3JlZGlyZWN0X2FmdGVydmVyaWZ5fTwvcD4KCQk8L2Rpdj4KCQk8L2ZpZWxkc2V0PgoJCgkJe2lmIGlzc2V0KCRpbnB1dF9hbGxvd3BhaWRyZWdpc3RyYXRpb24pfQoJCTxmaWVsZHNldD4KCQkJPGxlZ2VuZD57JG1vZC0+TGFuZygncGFpZF9yZWdpc3RyYXRpb24nKX06PC9sZWdlbmQ+CgkJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCSAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2FsbG93X3BhaWRfcmVnaXN0cmF0aW9uJyl9OjwvcD4KCQkJICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KCQkJCXskaW5wdXRfYWxsb3dwYWlkcmVnaXN0cmF0aW9ufQoJCQkJPGJyLz4KCQkJCXskbW9kLT5MYW5nKCdpbmZvX2FsbG93X3BhaWRfcmVnaXN0cmF0aW9uJyl9CgkJCSAgPC9wPgoJCQk8L2Rpdj4KCQoJCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQkgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9jYXJ0aXRlbV9zdW1tYXJ5X3RwbCcpfTo8L3A+CgkJCSAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJCQk8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jYXJ0aXRlbV9zdW1tYXJ5X3RwbCIgc2l6ZT0iODAiIHZhbHVlPSJ7JGNhcnRpdGVtX3N1bW1hcnlfdHBsfSIvPgoJCQkJPGJyLz4KCQkJCXskbW9kLT5MYW5nKCdpbmZvX2NhcnRpdGVtX3N1bW1hcnlfdHBsJyl9CgkJCSAgPC9wPgoJCQk8L2Rpdj4KCQoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfcmVkaXJlY3RfcGFpZHBrZycpfTo8L3A+CgkJICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXJlZGlyZWN0X3BhaWRwa2ciIHNpemU9IjgwIiBtYXhsZW5ndGg9IjI1NSIgdmFsdWU9InskcmVkaXJlY3RfcGFpZHBrZ30iLz4KCQkJCTxici8+CgkJCQl7JG1vZC0+TGFuZygnaW5mb19yZWRpcmVjdF9wYWlkcGtnJyl9CgkJCSAgPC9wPgoJCTwvZGl2PgoJCgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3NldHVwX2NhcnRfZXZlbnRzJyl9OjwvcD4KCQkgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJCQkJPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zZXR1cF9jYXJ0X2V2ZW50cyIgdmFsdWU9InskbW9kLT5MYW5nKCdzZXR1cCcpfSIvPgoJCQkJPGJyLz4KCQkJCXskbW9kLT5MYW5nKCdpbmZvX3NldHVwX2NhcnRfZXZlbnRzJyl9CgkJCSAgPC9wPgoJCTwvZGl2PgoJCgkJPC9maWVsZHNldD4KCQl7L2lmfQoJCgkJPGZpZWxkc2V0PgoJCQk8bGVnZW5kPnskbW9kLT5MYW5nKCdwcm9tcHRfYWRkaXRpb25hbGdyb3Vwc19zZXR0aW5ncycpfTo8L2xlZ2VuZD4KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfcmVnX2FkZGl0aW9uYWxncm91cHMnKX08L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfcmVnX2FkZGl0aW9uYWxncm91cHN9PC9wPgoJCTwvZGl2PgoJCTwvZmllbGRzZXQ+CgkKCQk8ZmllbGRzZXQ+CgkJCTxsZWdlbmQ+eyRtb2QtPkxhbmcoJ25vdGlmaWNhdGlvbnMnKX06PC9sZWdlbmQ+CgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9ub3RpZnl9OjwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9ub3RpZnl9PC9wPgoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3NlbmRfZW1haWxzX3RvJyl9OjwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJCSAgPHRleHRhcmVhIG5hbWU9InskYWN0aW9uaWR9aW5wdXRfY29uZmlybW1haWxfdG8iIHJvd3M9IjIiIGNvbHM9IjgwIj57JHNlbmRfZW1haWxzX3RvfTwvdGV4dGFyZWE+CgkJCTwvcD4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfbm90aWZ5X2VtYWlsX3N1YmplY3QnKX06PC9wPgoJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij4KCQkJICAgPHRleHRhcmVhIG5hbWU9InskYWN0aW9uaWR9YWRtaW5fbm90aWZ5X3N1YmplY3QiIHJvd3M9IjIiIGNvbHM9IjgwIj57JGFkbWluX25vdGlmeV9zdWJqZWN0fTwvdGV4dGFyZWE+CgkJCTwvcD4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCSAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X25vdGlmeV9lbWFpbF90ZW1wbGF0ZScpfTo8L3A+CgkJICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KCQkJIHt4dF90ZXh0YXJlYSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9YWRtaW5fbm90aWZ5X2VtYWlsIHZhbHVlPSRhZG1pbl9ub3RpZnlfZW1haWx9CgkJCSA8YnIvPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRhY3Rpb25pZH1yZXNldF9ub3RpZnlfdGVtcGxhdGUiIHZhbHVlPSIxIi8+IHskbW9kLT5MYW5nKCdyZXNldCcpfQoJCSAgPC9wPgoJCTwvZGl2PgoJCTwvZmllbGRzZXQ+CgkKCQk8ZmllbGRzZXQ+CgkJCTxsZWdlbmQ+eyRtb2QtPkxhbmcoJ3Byb21wdF9zZWN1cml0eV9zZXR0aW5ncycpfTwvbGVnZW5kPgoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfZW5hYmxlX3doaXRlbGlzdH06PC9wPgoJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2VuYWJsZV93aGl0ZWxpc3R9PC9wPgoJCTwvZGl2PgoJCgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X25vcmVnaXN0ZXInKX06PC9wPgoJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X25vcmVnaXN0ZXJ9PC9wPgoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfd2hpdGVsaXN0fTo8L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfd2hpdGVsaXN0fTwvcD4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3doaXRlbGlzdF90cmlnZ2VyX21lc3NhZ2V9OjwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF93aGl0ZWxpc3RfdHJpZ2dlcl9tZXNzYWdlfTwvcD4KCQk8L2Rpdj4KCQk8L2ZpZWxkc2V0PgoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRoaWRkZW58ZGVmYXVsdDonJ317JHN1Ym1pdH08L3A+CgkJPC9kaXY+CgkgIDwvZGl2PnsqIGZpcnN0IGNvbHVtbiAqfQoJCgkgIDxmaWVsZHNldCBjbGFzcz0iZ3JpZF82Ij4KCQk8bGVnZW5kPnskbW9kLT5MYW5nKCdpbmNvbXBsZXRlX3JlZ2lzdHJhdGlvbnMnKX06PC9sZWdlbmQ+CgkgICB7KiBvcHRpb25zIHRvIHJlc2V0IHVzZXJzIHRoYXQgZGlkbid0IGNvbXBsZXRlIHJlZ2lzdHJhdGlvbiAqfQoJICAge2lmIGlzc2V0KCRkYXRhX251bXJlc2V0cmVjb3Jkcyl9CgkJICA8ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRtb2QtPkxhbmcoJ3Byb21wdF9udW1yZWdpc3RlcmluZycsJGRhdGFfbnVtcmVzZXRyZWNvcmRzKX08L2Rpdj4KCSAgIHsvaWZ9CgkgICB7aWYgaXNzZXQoJGlucHV0X3JlbW92ZTF3ZWVrKX0KCQkgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJCSB7aWYgaXNzZXQoJGlucHV0X3JlbW92ZTFkYXkpfXskaW5wdXRfcmVtb3ZlMWRheX17L2lmfQoJCQkge2lmIGlzc2V0KCRpbnB1dF9yZW1vdmUxd2Vlayl9eyRpbnB1dF9yZW1vdmUxd2Vla317L2lmfQoJCQkge2lmIGlzc2V0KCRpbnB1dF9yZW1vdmUxbW9udGgpfXskaW5wdXRfcmVtb3ZlMW1vbnRofXsvaWZ9CgkJCSB7aWYgaXNzZXQoJGlucHV0X2xpc3QxZGF5KX17JGlucHV0X2xpc3QxZGF5fXsvaWZ9CgkJPC9wPgoJCSAgPC9kaXY+CgkgICB7L2lmfQoJICA8L2Rpdj4KCQoJPC9kaXY+Cgl7JGVuZGZvcm19Cgk=]]></data>
	</file>
	<file>
	  <filename>/templates/set_reg2template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdGJ1dHRvbiIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9ZGVmYXVsdGJ1dHRvbiIgdmFsdWU9InskbW9kLT5MYW5nKCdkZWZhdWx0Jyl9Ii8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX3ZlcmlmaWNhdGlvbl90ZW1wbGF0ZScpfTwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge3h0X3RleHRhcmVhIHN5bnRheD0xIHByZWZpeD0kYWN0aW9uaWQgbmFtZT10ZW1wbGF0ZWNvbnRlbnQgdmFsdWU9JHJlZzJ0ZW1wbGF0ZX0KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/signup.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyR0aXRsZX0Ke2lmICRtZXNzYWdlICE9ICcnfQogIHtpZiAkZXJyb3IgIT0gJyd9CiAgICA8cD48Zm9udCBjb2xvcj0icmVkIj57JG1lc3NhZ2V9PC9mb250PjwvcD4KICB7ZWxzZX0KICAgIDxwPnskbWVzc2FnZX08L3A+CiAgey9pZn0Key9pZn0KeyRzdGFydGZvcm19CntpZiAkY29udHJvbGNvdW50ID4gMH0KICA8Y2VudGVyPgogIDx0YWJsZSB3aWR0aD0iNzUlIj4Ke2ZvcmVhY2ggZnJvbT0kY29udHJvbHMgaXRlbT1jb250cm9sfQogIDx0cj4KICAgIDx0ZD57JGNvbnRyb2wtPmhpZGRlbn0KICAgIDxmb250IGNvbG9yPSJ7JGNvbnRyb2wtPmNvbG9yfSI+eyRjb250cm9sLT5wcm9tcHR9eyRjb250cm9sLT5tYXJrZXJ9PC9mb250PgogICAgPC90ZD4KICAgIDx0ZD57JGNvbnRyb2wtPmNvbnRyb2x9PC90ZD4KICA8L3RyPgp7L2ZvcmVhY2h9CiAgPC90YWJsZT4KICA8L2NlbnRlcj4KPGJyLz4Key9pZn0Ke2lmIGlzc2V0KCRoaWRkZW4pfXskaGlkZGVufXsvaWZ9CntpZiBpc3NldCgkaGlkZGVuMil9eyRoaWRkZW4yfXsvaWZ9CnskYmFja317JHN1Ym1pdH17JGNhbmNlbH0KeyRlbmRmb3JtfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/userlist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogICQoJyNzZWx1c2VyX2FsbCcpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICB2YXIgdiA9ICQodGhpcykuYXR0cignY2hlY2tlZCcpOwogICAgaWYoIHYgPT0gJ2NoZWNrZWQnICkgewogICAgICAkKCcuc2VsdXNlcicpLmF0dHIoJ2NoZWNrZWQnLCdjaGVja2VkJyk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgJCgnLnNlbHVzZXInKS5yZW1vdmVBdHRyKCdjaGVja2VkJyk7CiAgICB9CiAgfSk7CiAgJCgnLnNlbHVzZXInKS5jbGljayhmdW5jdGlvbigpewogICAgJCgnI3NlbHVzZXJfYWxsJykucmVtb3ZlQXR0cignY2hlY2tlZCcpOwogIH0pOwp9KTsKPC9zY3JpcHQ+Cgp7aWYgaXNzZXQoJG1lc3NhZ2UpICYmICRtZXNzYWdlICE9ICcnfQogIHtpZiAkZXJyb3IgIT0gJyd9CiAgICA8cD48Zm9udCBjb2xvcj0icmVkIj57JG1lc3NhZ2V9PC9mb250PjwvcD4KICB7ZWxzZX0KICAgIDxwPnskbWVzc2FnZX08L3A+CiAgey9pZn0Ke2Vsc2V9Cgk8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+PHAgY2xhc3M9InBhZ2VvcHRpb25zIj57JGl0ZW1jb3VudH0mbmJzcDt7JGl0ZW1zZm91bmR9PC9wPjwvZGl2PgoJe2lmICRpdGVtY291bnQgPiAwfQoJCXskc3RhcnRmb3JtfQoJCQk8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPgoJCQkJPHRoZWFkPgoJCQkJCTx0cj4KCQkJCQkJPHRoIHdpZHRoPSI1JSI+eyR1c2VyaWR0ZXh0fTwvdGg+CgkJCQkJCTx0aD57JHVzZXJuYW1ldGV4dH08L3RoPgoJCQkJCQk8dGg+eyRncnBuYW1ldGV4dH08L3RoPgoJCQkJCQk8dGg+eyRjcmVhdGVkdGV4dH08L3RoPgoJCQkJCQk8dGg+eyRzdGF0dXN0ZXh0fTwvdGg+CgkJCQkJCXtpZiAhaXNzZXQoJHVzZXJuYW1lX2lzX2VtYWlsKX08dGg+eyRlbWFpbHRleHR9PC90aD57L2lmfQoJCQkJCQk8dGggY2xhc3M9InBhZ2VpY29uIj48L3RoPgoJCQkJCQk8dGggY2xhc3M9InBhZ2VpY29uIj48L3RoPgoJCQkJCQk8dGggY2xhc3M9InBhZ2VpY29uIj48L3RoPgoJCQkJCQk8dGggY2xhc3M9InBhZ2VpY29uIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJzZWx1c2VyX2FsbCIgdmFsdWU9IjEiLz48L3RoPgoJCQkJCTwvdHI+CgkJCQk8L3RoZWFkPgoJCQkJPHRib2R5PgoJCQkJCXtmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9CgkJCQkJCXskbWFtc3JlZ191c2VyX2RhdGEgPSBtYW1zcmVnOjp1c2VyX2RhdGEoWyd0X3VpZCcgPT4gJGVudHJ5LT51c2VyaWRdKX0KCQkJCQkJCTx0ciBjbGFzcz0ieyRlbnRyeS0+cm93Y2xhc3N9Ij4KCQkJCQkJCQk8dGQ+eyRlbnRyeS0+dXNlcmlkfTwvdGQ+CgkJCQkJCQkJPHRkPjxhIGhyZWY9InskZW50cnktPmVkaXRfdXJsfSI+eyRlbnRyeS0+dXNlcm5hbWV9PC9hPjwvdGQ+CgkJCQkJCQkJPHRkPntpZiBpc3NldCgkZW50cnktPmdycG5hbWUpfXskZW50cnktPmdycG5hbWV8c3VtbWFyaXplOjMwfXsvaWZ9PC90ZD4KCQkJCQkJCQk8dGQ+eyRlbnRyeS0+Y3JlYXRlZHxjbXNfZGF0ZV9mb3JtYXR9PC90ZD4KCQkJCQkJCQk8dGQ+CgkJCQkJCQkJCTxpbnB1dCB0eXBlPSJjaGVja2JveCIge2lmIGVtcHR5KCRtYW1zcmVnX3VzZXJfZGF0YS5jb2RlKX1jaGVja2Vkey9pZn0gZGlzYWJsZWQgLz4KCQkJCQkJCQk8L3RkPgoJCQkJCQkJCXtpZiAhaXNzZXQoJHVzZXJuYW1lX2lzX2VtYWlsKX08dGQ+eyRlbnRyeS0+ZW1haWx9PC90ZD57L2lmfQoJCQkJCQkJCTx0ZD57JGVudHJ5LT5wdXNobGlua308L3RkPgoJCQkJCQkJCTx0ZD57JGVudHJ5LT5lZGl0bGlua308L3RkPgoJCQkJCQkJCTx0ZD57JGVudHJ5LT5kZWxldGVsaW5rfTwvdGQ+CgkJCQkJCQkJPHRkPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9InNlbHVzZXIiIG5hbWU9InskYWN0aW9uaWR9bWFya2RlbGV0ZV97JGVudHJ5LT51c2VyaWR9IiB2YWx1ZT0ieyRlbnRyeS0+dXNlcmlkfSIvPjwvdGQ+CgkJCQkJCQk8L3RyPgoKCQkJCQl7L2ZvcmVhY2h9CgkJCQk8L3Rib2R5PgoJCQk8L3RhYmxlPgoJCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsiPiB7JHN1Ym1pdH0gPC9kaXY+CgkJeyRlbmRmb3JtfQoJey9pZn0Key9pZn0K]]></data>
	</file>
	<file>
	  <filename>/templates/verify.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogcmVnaXN0cmF0aW9uIDIgdGVtcGxhdGUgKn0NCjxoMz57JHRpdGxlfTwvaDM+DQp7aWYgaXNzZXQoJG1lc3NhZ2UpICYmICRtZXNzYWdlICE9ICcnfQ0KICB7aWYgaXNzZXQoJGVycm9yKSAmJiAkZXJyb3IgIT0gJyd9DQogICAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtZGFuZ2VyIj57JG1lc3NhZ2V9PC9kaXY+DQogIHtlbHNlfQ0KICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8iPnskbWVzc2FnZX08L2Rpdj4NCiAgey9pZn0NCnsvaWZ9DQp7KmdldF90ZW1wbGF0ZV92YXJzKn0=]]></data>
	</file>
</module>
