<?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>SMSG</name>
	<version>1.0</version>
  <mincmsversion>1.9</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgZG9lcyBpdCBkbz88L2gzPgo8cD5UaGlzIG1vZHVsZSBhbGxvd3Mgd2Vic2l0ZSB2aXNpdG9ycyB0byBlaXRoZXIgc2VuZCBhIHByZS1kZXRlcm1pbmVkIChhbmQgZW5jcnlwdGVkKSB0ZXh0CiBtZXNzYWdlIHRvIGFueSB0ZXh0IGNhcGFibGUgcGhvbmUsIG9yIHRvIGFsbG93IHNlbmRpbmcgYSB1c2VyIHNwZWNpZmllZCB0ZXh0IG1lc3NhZ2UgdG8gYSBwcmUtZGV0ZXJtaW5lZAogKGFuZCBoaWRkZW4pIG1vYmlsZSBwaG9uZSBudW1iZXIuICBJdCBpcyB1c2VmdWwgZm9yIHN1Y2ggdGhpbmdzIGFzIHNlbmRpbmcgYWRkcmVzc2VzIGZyb20gYSBkaXJlY3RvcnkgdG8gYSBtb2JpbGUgcGhvbmUgbnVtYmVyLi4uCiBvciBmb3IgbWVzc2FnaW5nIGEgd2Vic2l0ZSBhZG1pbmlzdHJhdG9yIHdpdGggdXJnZW50IGluZm9ybWF0aW9uLjwvcD4KPGgzPkhvdyBkbyBJIHVzZSBpdD88L2gzPgo8cD5UaGUgZmlyc3QgdGhpbmcgdG8gZG8gaXMgZ3JhbnQgcmVsZXZhbnQgcGVybWlzc2lvbnMgdG8gdXNlcnMuIFRocmVlIHBlcm1pc3Npb25zIGFyZSBhdmFpbGFibGU6PC9wPgo8dWw+CjxsaT5Nb2RpZnkgbW9kdWxlIHNldHRpbmdzIG90aGVyIHRoYW4gdGVtcGxhdGVzPC9saT4KPGxpPk1vZGlmeSBtb2R1bGUgdGVtcGxhdGVzPC9saT4KPGxpPkFkbWluaXN0cmF0aW9uLCB3aGljaCBpbmNsdWRlcyB0aGUgYWJvdmUgdHdvIHBsdXMgbW9yZS1leHRlbnNpdmUgc2V0dGluZ3MgbWFuaXB1bGF0aW9uPC9saT4KPC91bD4KPHA+VGhlbiwgdmlhIHRoZSBtb2R1bGUncyBhZG1pbiBwYW5lbCAobWVudSAmcXVvdDtFeHRlbnNpb25zICZndDsmZ3Q7IFNNUyBVdGlsaXR5JnF1b3Q7KSwgcmVjb3JkIGluZm9ybWF0aW9uCmFib3V0IGhvdyB0aGUgbW9kdWxlIGlzIHRvIHdvcmsuCkNob29zZSBvbmUgb2YgdGhlIGF2YWlsYWJsZSBnYXRld2F5cyBhbmQgZW50ZXIgdGhlIGNvcnJlc3BvbmRpbmcgaW50ZXJmYWNlIHBhcmFtZXRlcnMuCkNob29zZSB2YWx1ZXMgZm9yIG1vZHVsZSBzZXR0aW5ncyBzdWNoIGFzIHRoZSBTTVMgc2VuZGluZy1saW1pdHMgKHRvIHJlZHVjZSBzcGFtKS48L3A+CjxwPlRoZW4gcGVyZm9ybSBhdCBsZWFzdCBvbmUgdGVzdCAodGhlcmUncyBhIHRhYiBpbiB0aGUgbW9kdWxlIGFkbWluIHBhbmVsIHRvIGFsbG93IHRoaXMpIHRvIGVuc3VyZSB0aGF0IFNNUyBtZXNzYWdlcyBhcmUgYmVpbmcgc2VudCB0byB5b3VyIG1vYmlsZSBwaG9uZS48L3A+CjxiciAvPgo8cD5UaGVyZSBhcmUgdHdvIHByaW1hcnkgd2F5cyB0byB1c2UgdGhpcyBtb2R1bGUgaW4gdGhlIHdlYnNpdGUgZnJvbnQgZW5kOjwvcD4KPG9sPgogPGxpPlRvIHNlbmQgcHJlZGVmaW5lZCB0ZXh0IHRvIGEgdXNlci1zcGVjaWZpZWQgcGhvbmUgbnVtYmVyLCBwdXQgYSB0YWcgbGlrZQogPGNvZGU+e1NNU0cgYWN0aW9uPSdlbnRlcm51bWJlcicgc21zdGV4dD0ndGhlIHF1aWNrIGJyb3duIGZveCd9PC9jb2RlPiBpbnRvIGEgcGFnZSBvciB0ZW1wbGF0ZS4KIFRoYXQgY3JlYXRlcyBhIGxpbmsgdGhhdCB3aGVuIGNsaWNrZWQgd2lsbCBkaXNwbGF5IGEgZm9ybSBmb3IgdGhlIHVzZXIgdG8gZW50ZXIgYSBtb2JpbGUgcGhvbmUgbnVtYmVyLjwvcD4KIDwvbGk+CiA8bGk+VG8gc2VuZCB1c2VyLXNwZWNpZmllZCB0ZXh0IHRvIGEgcHJlZGVmaW5lZCBwaG9uZSBudW1iZXIsIHB1dCBhIHRhZyBsaWtlCiA8Y29kZT57U01TRyBhY3Rpb249J2VudGVydGV4dCcgc21zbnVtPTV9PC9jb2RlPiBpbnRvIGEgcGFnZSBvciB0ZW1wbGF0ZS4KIFRoYXQgY3JlYXRlcyBhIGxpbmsgdGhhdCB3aGVuIGNsaWNrZWQgd2lsbCBkaXNwbGF5IGEgZm9ybSBmb3IgdGhlIHVzZXIgdG8gZW50ZXIgYSAxNjAtY2hhcmFjdGVyIG1lc3NhZ2UKIHRoYXQgaXMgdGhlbiBzZW50IHRvIGEgcHJlZGV0ZXJtaW5lZCBtb2JpbGUgbnVtYmVyIChpbiB0aGUgZXhhbXBsZSwgdGhlIG9uZSB3aXRoIGlkPTUpCjwvbGk+Cjwvb2w+CjxiciAvPgo8cD5UaGlzIG1vZHVsZSBjb250YWlucyBhIHNpbXBsZSBBUEkgZm9yIHNlbmRpbmcgU01TIG1lc3NhZ2VzIGZyb20gb3RoZXIgbW9kdWxlcyBvciBmcm9tIFVEVHMuClRoZSBBUEkgaXMgc2V0IG91dCBpbiBmaWxlIC4uLi9saWIvY2xhc3Muc21zX2dhdGV3YXlfYmFzZS5waHAuIEluIHN1bW1hcnksIGl0IGNvbXByaXNlczwvcD4KPHVsPgo8bGk+Z2V0X2FsaWFzKCk8L2xpPgo8bGk+Z2V0X2Rlc2NyaXB0aW9uKCk8L2xpPgo8bGk+Z2V0X25hbWUoKTwvbGk+CjxsaT5nZXRfc3RhdHVzKCk8L2xpPgo8bGk+Z2V0X3N0YXR1c21zZygpPC9saT4KPGxpPm11bHRpX251bWJlcl9zZXBhcmF0b3IoKTwvbGk+CjxsaT5yZXF1aXJlX2NvdW50cnlfcHJlZml4KCk8L2xpPgo8bGk+cmVxdWlyZV9wbHVzX3ByZWZpeCgpPC9saT4KPGxpPnJlc2V0KCk8L2xpPgo8bGk+c2VuZCgpPC9saT4KPGxpPnNldF9mcm9tKCRmcm9tKTwvbGk+CjxsaT5zZXRfbXNnKCRtc2cpPC9saT4KPGxpPnNldF9udW0oJG51bSk8L2xpPgo8bGk+c3VwcG9ydF9jdXN0b21fc2VuZGVyKCk8L2xpPgo8bGk+c3VwcG9ydF9tbXMoKTwvbGk+CjwvdWw+CjxwPkEgYnJpZWYgZXhhbXBsZSBvZiBob3cgdG8gdXNlIGl0IGlzOjxiciAvPjxiciAvPgo8Y29kZT4KJGdhdGV3YXkgPSBzbXNnX3V0aWxzOjpnZXRfZ2F0ZXdheSgpOzxiciAvPgokZ2F0ZXdheS0+c2V0X21zZygnaGVsbG8gd29ybGQnKTs8YnIgLz4KJGdhdGV3YXktPnNldF9udW0oJzEyMjI1NTUxMjEyJyk7PGJyIC8+CiRnYXRld2F5LT5zZW5kKCk7PGJyIC8+CjwvY29kZT48L3A+CjxoMz5TTVMgZ2F0ZXdheXM8L2gzPgo8cD5UaGlzIG1vZHVsZSBkZXBlbmRzIG9uIHNlbGVjdGluZyBhIHN1cHBvcnRlZCBTTVMgZ2F0ZXdheSBhbmQgcmVjb3JkaW5nIHRoZSBjb3JyZXNwb25kaW5nIGF1dGhlbnRpY2F0aW9uIGFuZCBvdGhlciBwYXJhbWV0ZXJzLiBZb3Ugd2lsbCBuZWVkIHRvIHNpZ24gdXAgdG8gYXQgbGVhc3Qgb25lIG9mIHRoZSBzdXBwb3J0ZWQgZ2F0ZXdheXMuICBUaGlzIHdpbGwgdHlwaWNhbGx5IGludm9sdmUgcGF5aW5nIG1vbmV5IHRvIHRoZSBzZXJ2aWNlIHByb3ZpZGVyLjwvcD4KPHA+U01TIGdhdGV3YXlzIHdpbGwgaGF2ZSB0aGVpciBvd24gcmVxdWlyZW1lbnRzIGFuZCBsaW1pdGF0aW9ucyBvbiB0aGUgYW1vdW50LCBzaXplLCBzb3VyY2UsIGFuZCBkZXN0aW5hdGlvbiBtZXNzYWdlcyB0aGF0IGNhbiBiZSBzZW50LiBJdCBpcyB5b3VyIHJlc3BvbnNpYmlsaXR5IHRvIHVuZGVyc3RhbmQgdGhlc2UgbGltaXRhdGlvbnMuPC9wPgo8cD5DdXJyZW50bHksIHRoZXNlIGdhdGV3YXlzIGFyZSBpbXBsZW1lbnRlZDo8L3A+Cjx1bD4KPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNsaWNrYXRlbGwuY29tIj48c3Ryb25nPkNsaWNrYXRlbGw8L3N0cm9uZz48L2E+IC0gd2lkZS1jb3ZlcmFnZSBnYXRld2F5LCBtaXhlZCByZXZpZXdzLjwvbGk+CjxsaT48YSBocmVmPSJodHRwOi8vdm9pY2UuZ29vZ2xlLmNvbSI+PHN0cm9uZz5Hb29nbGUgVm9pY2U8L3N0cm9uZz48L2E+IC0gZXhwZXJpbWVudGFsIChidXQgd29ya2luZyBhdCB0aGlzIHRpbWUpIHV0aWxpdHkgdG8gYWxsb3cgc2VuZGluZyBTTVMgbWVzc2FnZXMgdGhyb3VnaCBHb29nbGUgVm9pY2UuPC9saT4KPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnNtc2Jyb2FkY2FzdC5jb20uYXUiPjxzdHJvbmc+U21zYnJvYWRjYXN0PC9zdHJvbmc+PC9hPiAtIEF1c3RyYWxpYS1vbmx5IGNvdmVyYWdlLCBoaWdobHkgcmVnYXJkZWQ8L2xpPgo8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cudHdpbGlvLmNvbS9zbXMiPjxzdHJvbmc+VHdpbGlvPC9zdHJvbmc+PC9hPiAtIGdsb2JhbCBTTVMgZ2F0ZXdheSwgbG93IGNvc3QsIHdlbGwgcmVnYXJkZWQ8L2xpPgo8L3VsPgo8aDM+RXh0cmEgZ2F0ZXdheXM8L2gzPgo8cD5BIFBIUC1jbGFzcyBtdXN0IGJlIGNyZWF0ZWQgZm9yIGVhY2ggZ2F0ZXdheS4gUmVmZXIgdG8gdGhlIFJFQURNRSBkb2N1bWVudCBpbiB0aGUgbW9kdWxlIGZvbGRlciAuLi4vbGliL2dhdGV3YXlzLjwvcD4KPHA+SWYgeW91IGFzayA8c3Ryb25nPnJlYWxseSBuaWNlbHk8L3N0cm9uZz4sIGFuZCB5b3UgY2FuIG9mZmVyIHNvbWUgc29ydCBvZiBzZXJ2aWNlIGluIHJldHVybiwgdGhlIGF1dGhvciBtaWdodCBwZXJoYXBzIGJlIHBlcnN1YWRlZCB0byBhZGQgc3VwcG9ydCBmb3Igc29tZSBvdGhlciBnYXRld2F5LjwvcD4KPGgzPlNlY3VyaXR5PC9oMz4KPHA+QXR0ZW1wdHMgaGF2ZSBiZWVuIG1hZGUgdG8gZW5zdXJlIGEgcmVhc29uYWJsZSBsZXZlbCBvZiBzZWN1cml0eSBhdCBhbGwgdGltZXMuClRoaXMgaXMgYWNjb21wbGlzaGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzOjwvcD4KPG9sPgo8bGk+QWxsIHRleHQgbWVzc2FnZXMgYXJlIGNoZWNrZWQgZm9yIGxlbmd0aCBsaW1pdHMgYW5kIHZhbGlkIGNoYXJhY3RlcnMsIGJlZm9yZSBzZW5kaW5nLjwvbGk+CjxsaT5BbGwgdGV4dCBtZXNzYWdlcyBhcmUgcmVjb3JkZWQgaW4gdGhlIGRhdGFiYXNlLCBpbmNsdWRpbmcgdGhlIElQIGFkZHJlc3Mgb2YgdGhlIHNlbmRlci48L2xpPgo8bGk+QmVmb3JlIGFueSB0ZXh0IG1lc3NhZ2UgaXMgc2VudCwgdGhlcmUncyBhIGNoZWNrIHRoYXQgdGhlIGFsbG93ZWQgbWF4aW11bSAoZGFpbHksIGhvdXJseSkgY291bnRzIG9mIG1lc3NhZ2VzIGZyb20gdGhhdCBJUCBhZGRyZXNzIGhhdmUgbm90IGJlZW4gZXhjZWVkZWQuPC9saT4KPGxpPldoZW4gc2VuZGluZyB0byBhIHByZS1kZWZpbmVkIHBob25lLCB0aGUgZGVzdGluYXRpb24gbnVtYmVyIGlzIGhpZGRlbiBmcm9tIHRoZSBpbml0aWF0b3IsIHRvIHByZXZlbnQgc3BhbW1pbmcuPC9saT4KPGxpPldoZW4gc2VuZGluZyBhIG1lc3NhZ2UsIHRoZSBtZXNzYWdlIHRleHQgaXMgc3RvcmVkIGluIHRoZSBkYXRhYmFzZSBhbmQgY2Fubm90IGJlIGFsdGVyZWQuPC9saT4KPC9vbD4KPGgzPlJlcXVpcmVtZW50czo8L2gzPgo8dWw+CjxsaT5DTVMgTWFkZSBTaW1wbGUgMS45KzwvbGk+CjxsaT5QSFAgNS4zKzwvbGk+CjxsaT5BdXRob3JpdHkgdG8gdXNlIGF0IGxlYXN0IG9uZSBzdXBvcnRlZCBnYXRld2F5PC9saT4KPGxpPlRoZSB3ZWJzaXRlIGhvc3QgbXVzdCBhbGxvdyBvdXRnb2luZyBIVFRQIGNvbm5lY3Rpb25zPC9saT4KPC91bD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGlzIG1vZHVsZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgo8cD5Gb3IgaGVscDo8L3A+Cjx1bD4KPGxpPmRpc2N1c3Npb24gbWF5IGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+OyBvcjwvbGk+CjxsaT55b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkuPC9saT4KPC91bD4KPHA+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgbW9kdWxlLCBvciB0byByZXBvcnQgYSBidWcsIHZpc2l0IHRoZSBtb2R1bGUncyA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3Ntc2ciPmZvcmdlLXBhZ2U8L2E+LjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgbGljZW5zZTwvaDM+CjxwPlBvcnRpb25zIGNvcHlyaWdodCAmY29weTsgMjAxNS0yMDE2IFRvbSBQaGFuZSAmbHQ7dHBnd3dAb25lcG9zdC5uZXQmZ3Q7LjxiciAvPgpQb3J0aW9ucyBjb3B5cmlnaHQgJmNvcHk7IDIwMTAgUm9iZXJ0IENhbXBiZWxsICZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0Oy48YnIgLz4KQWxsIHJpZ2h0cyByZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGlzIGZyZWUgc29mdHdhcmUuIEl0IG1heSBiZSByZWRpc3RyaWJ1dGVkIGFuZC9vciBtb2RpZmllZAp1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+CjxwPlRoaXMgbW9kdWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZQo8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNBR1BMIj5HTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2U8L2E+IGZvciBtb3JlIGRldGFpbHMuPC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGFuZz0iZW5fVVMiIC0gUGFyYW1ldGVyIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGF0IGxhbmd1YWdlIHRvIHVzZSBmb3IgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQuIE5vdCBhbGwgbW9kdWxlcyBzdXBwb3J0IG9yIG5lZWQgdGhpcy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGFjdGlvbj0iZW50ZXJudW1iZXIiIC0gVGhpcyBwYXJhbWV0ZXIgaXMgdXNlZCB0byBkZWNpZGUgdGhlIGJlaGF2b3VyIG9mIHRoZSBtb2R1bGUuIFZhbGlkIHZhbHVlcyBmb3IgdGhpcyBwYXJhbWV0ZXIgYXJlOgo8dWw+CjxsaT5lbnRlcm51bWJlciA8ZW0+KGRlZmF1bHQpPC9lbT4gLSBEaXNwbGF5IGEgbGluayB0byBhIGZvcm0gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VuZCBwcmUtZGVmaW5lZCB0ZXh0IHRvIGEgdXNlci1kZWZpbmVkIG1vYmlsZSBwaG9uZSBudW1iZXIuPC9saT4KPGxpPmVudGVydGV4dCAtIERpc3BsYXkgYSBsaW5rIHRvIGEgZm9ybSBhbGxvd2luZyB0aGUgdXNlciB0byBzZW5kIHVzZXItZGVmaW5lZCB0ZXh0IHRvIGEgcHJlLWRlZmluZWQgbW9iaWxlIHBob25lIG51bWJlci48L2xpPgo8L3VsPjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZGVzdHBhZ2U9IjAiIC0gVGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoYXQgdGhlIHJlc3VsdGluZyBmb3JtIHNob3VsZCBiZSBkaXNwbGF5ZWQgb24gYSBkaWZmZXJlbnQgQ01TTVMgY29udGVudCBwYWdlIChzcGVjaWZpZWQgYnkgcGFnZSBpZCBvciBhbGlhcyk8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGVudGVybnVtYmVydGVtcGxhdGU9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGVudGVybnVtYmVyIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCBlbnRlcm51bWJlciB0ZW1wbGF0ZSB0byBjcmVhdGUgdGhlIGZvcm0gd2l0aDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZW50ZXJ0ZXh0dGVtcGxhdGU9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGVudGVybnVtYmVyIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCBlbnRlcm51bWJlciB0ZW1wbGF0ZSB0byBjcmVhdGUgdGhlIGZvcm0gd2l0aDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZ2F0ZW5hbWU9IiIgLSBUaGlzIHBhcmFtZXRlciBhbGxvd3Mgb3ZlcnJpZGluZyB0aGUgZGVmYXVsdCBnYXRld2F5PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBpbmxpbmU9IjAiIC0gVGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoYXQgdGhlIGZvcm0gc2hvdWxkIHJlcGxhY2UgdGhlIGxpbmsgKGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgY29udGVudCBhcmVhIG9mIHRoZSBwYWdlKS4gIEl0IGlzIG5vdCB1c2VmdWwgd2l0aCB0aGUgZGVzdHBhZ2UgcGFyYW1ldGVyPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsaW5rdGV4dD0iU2VuZCB0byBtb2JpbGUiIC0gVGhpcyBwYXJhbWV0ZXIgYWxsb3dzIG92ZXJyaWRpbmcgdGhlIHRleHQgdGhhdCBpcyBkaXNwbGF5ZWQgaW4gdGhlIGxpbmsuIFRoaXMgcGFyYW1ldGVyIGhhcyBubyBlZmZlY3Qgd2hlbiB0aGUgdXJsb25seSBwYXJhbWV0ZXIgaXMgdXNlZC48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHNtc251bT0iMCIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGVudGVydGV4dCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGRlZmluZXMgdGhlIG51bWVyaWMgSUQgb2YgYSBwcmUtZGVmaW5lZCBtb2JpbGUgcGhvbmUgbnVtYmVyPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzbXN0ZXh0PSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBlbnRlcm51bWJlciBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGRlZmluZXMgdGhlIHRleHQgdGhhdCB3aWxsIGJlIHNlbnQgaW4gdGhlIHNtcyBtZXNzYWdlLiBUaGUgdGV4dCBpcyBuZXZlciBkaXNwbGF5ZWQgaW4gdGhlIEhUTUwgb3V0cHV0IG9mIHRoZSBwYWdlIGZvciBzZWN1cml0eSByZWFzb25zLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gdXJsb25seT0iMCIgLSBUaGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhhdCBpbnN0ZWFkIG9mIGEgZnVsbCBsaW5rIG9ubHkgdGhlIFVSTCBzaG91bGQgYmUgZWNob2VkLCBhbGxvd2luZyB5b3UgdG8gYnVpbGQgeW91ciBvd24gbGluay48L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiB0b21waGFudG9vICZsdDt0cGd3d0BvbmVwb3N0Lm5ldCZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAxLjA8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48dWw+CiA8bGk+Q0dTTVMgVmVyc2lvbiAxLjAgLSBGZWJydWFyeSAyMDEwCiAgPHVsPgogICA8bGk+SW5pdGlhbCByZWxlYXNlIHdpdGggSW50ZXJsaW5rZWQgYW5kIGV4cGVyaW1lbnRhbCBHb29nbGUgVm9pY2UgZ2F0ZXdheXMuPC9saT4KICA8L3VsPgogPC9saT4KIDxsaT5TTVNHIFZlcnNpb24gMC45IC0gQXByaWwgMjAxNQogIDx1bD4KICAgPGxpPldvcmstYWxpa2UgcmVwbGFjZW1lbnQgZm9yIENHU01TPC9saT4KICAgPGxpPkdhdGV3YXlzOiBhZGQgQ2xpY2thdGVsbCwgVHdpbGlvLCBTbXNicm9hZGNhc3QsIHJlbW92ZSBkZWZ1bmN0IEludGVybGlua2VkPC9saT4KICAgPGxpPkV4cGFuZGVkIGdhdGV3YXkgQVBJIHN1cHBvcnRzIG9wdGlvbmFsIGNoZWNrcyBmb3IgYW5kIHVzZSBvZiBleHRyYSBwYXJhbWV0ZXJzPC9saT4KICAgPGxpPkVuYWJsZSBydW50aW1lIG1vZGlmaWNhdGlvbnMgb2YgZ2F0ZXdheXMnIGludGVyZmFjZSBieSBhdXRob3Jpc2VkIHVzZXJzPC9saT4KICAgPGxpPk1vcmUgZ2VuZXJvdXMgcmVnZXggZm9yIGNoZWNraW5nIG1lc3NhZ2UgdmFsaWRpdHk8L2xpPgogICA8bGk+QmV0dGVyIHN1cHBvcnQgZm9yIGxhdGVyIENNU01TIHZlcnNpb25zLCBidWcgZml4ZXMsIFVJIHJlZmluZW1lbnRzPC9saT4KICA8L3VsPgogPC9saT4KIDxsaT5WZXJzaW9uIDAuOS45IC0gQXByaWwgMjAxNQogIDx1bD4KICAgPGxpPlN1cHBvcnQgQ01TTVMgMS4xMi54PC9saT4KICAgPGxpPkltcGxlbWVudCBnYXRld2F5IGRlbGl2ZXJ5LXJlcG9ydCBwcm9jZXNzaW5nLCB3aGVyZSBwb3NzaWJsZTwvbGk+CiAgPC91bD4KIDwvbGk+CiA8bGk+VmVyc2lvbiAxLjAgLSBKYW51YXJ5IDIwMTYKICA8dWw+CiAgIDxsaT5TdXBwb3J0IENNU01TIDIrPC9saT4KICAgPGxpPkVuY3J5cHQgc2Vuc2l0aXZlIGRhdGE8L2xpPgogICA8bGk+QWJhbmRvbiBwcmV0dHktdXJsIGZvciBkZWxpdmVyeSByZXBvcnRzPC9saT4KICAgPGxpPlJlbW92ZSBDR0V4dGVuc2lvbnMgZGVwZW5kZW5jeTwvbGk+CiAgIDxsaT5BZGQgbWlzc2luZyAkbGFuZ1tdIG1lbWJlcnM8L2xpPgogIDwvdWw+CiA8L2xpPgo8L3VsPgo8YnIgLz4=]]></about>
	<description><![CDATA[A module to allow sending of SMS messages from within a CMS Made Simple Website]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.addgate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCEoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQWRtaW5pc3RlclNNU0dhdGV3YXlzJykKICB8fCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnlTTVNHYXRld2F5cycpKSkgZXhpdDsKCiRzcWwgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuCiAnbW9kdWxlX3Ntc2dfcHJvcHMgKGdhdGVfaWQsdGl0bGUsYXBpbmFtZSxlbmFibGVkLGFwaW9yZGVyKSBWQUxVRVMgKD8sXCctLS1cJyxcJ3RvZG9cJywwLDk5KSc7CiRkYi0+RXhlY3V0ZSgkc3FsLGFycmF5KChpbnQpJHBhcmFtc1snZ2F0ZV9pZCddKSk7CgokdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLGFycmF5KCdhY3RpdmV0YWInPT4nZ2F0ZXMnKSk7Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppbmNsdWRlX29uY2UoY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwnYWN0aW9uLmVudGVybnVtYmVyLnBocCcpKTsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgovKioKIEBtb2Q6IHJlZmVyZW5jZSB0byBjdXJyZW50IFNNU0cgbW9kdWxlIG9iamVjdAogQHRwbHZhcnM6IHJlZmVyZW5jZSB0byBhcnJheSBvZiB0ZW1wbGF0ZSB2YXJpYWJsZXMgKHVwZGF0ZWQgaGVyZSkKIEBtb2RpZnk6IGJvb2xlYW4sIHdoZXRoZXIgdG8gc2V0dXAgZm9yIGZ1bGwgZWRpdGluZwogQGRmbHR0cGw6IGJvb2xlYW4sIHdoZXRoZXIgdG8gc2V0dXAgZm9yIGVkaXRpbmcgZGVmYXVsdCB0ZW1wbGF0ZQogQGlkOiBpbnN0YW5jZSBpZCBvZiBAbW9kCiBAcmV0dXJuaWQ6IHBhZ2UgaWQgdG8gdXNlIG9uIHN1YnNlcXVlbnQgZm9ybXMgYW5kIGxpbmtzCiBAYWN0aXZldGFiOiB0YWIgdG8gcmV0dXJuIHRvCiBAcHJlZml4OiB0ZW1wbGF0ZSBmdWxsLW5hbWUgcHJlZml4ICgnZW50ZXJudW1iZXJfJyBvciAnZW50ZXJ0ZXh0XycpCiBAcHJlZmRlZm5hbWU6IGtleSBvZiBwcmVmZXJlbmNlIHRoYXQgY29udGFpbnMgdGhlIGJhc2UtbmFtZSBvZiB0aGUgY3VycmVudAogIGRlZmF1bHQgdGVtcGxhdGUgZm9yIEBwcmVmaXgKICovCmZ1bmN0aW9uIFNldHVwVGVtcGxhdGVMaXN0KCYkbW9kLCYkdHBsdmFycywkbW9kaWZ5LCRkZmx0dHBsLAoJJGlkLCRyZXR1cm5pZCwkYWN0aXZldGFiLAoJJHByZWZpeCwkcHJlZmRlZm5hbWUpCnsKCWlmKCRtb2RpZnkpCgl7CgkJJHRoZW1lID0gKCRtb2QtPmJlZm9yZTIwKSA/IGNtc21zKCktPmdldF92YXJpYWJsZSgnYWRtaW50aGVtZScpOgoJCQljbXNfdXRpbHM6OmdldF90aGVtZV9vYmplY3QoKTsKCQkkdHJ1ZWljb24gPSAkdGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywkbW9kLT5MYW5nKCdkZWZhdWx0X3RpcCcpLCcnLCcnLCdzeXN0ZW1pY29uJyk7CgkJJGZhbHNlaWNvbiA9ICR0aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywkbW9kLT5MYW5nKCdkZWZhdWx0c2V0X3RpcCcpLCcnLCcnLCdzeXN0ZW1pY29uJyk7CgkJJGFkZGljb24gPSAkdGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCRtb2QtPkxhbmcoJ2FkZF90ZW1wbGF0ZScpLCcnLCcnLCdzeXN0ZW1pY29uJyk7CgkJJGVkaXRpY29uID0gJHRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsJG1vZC0+TGFuZygnZWRpdF90aXAnKSwnJywnJywnc3lzdGVtaWNvbicpOwoJCSRkZWxldGVpY29uID0gJHRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywkbW9kLT5MYW5nKCdkZWxldGVvbmVfdGlwJyksJycsJycsJ3N5c3RlbWljb24nKTsKCQkkcHJvbXB0ID0gJG1vZC0+TGFuZygnc3VyZV9hc2snKTsKCQkkYXJncyA9IGFycmF5KCdwcmVmaXgnPT4kcHJlZml4LCdhY3RpdmV0YWInPT4kYWN0aXZldGFiKTsKCX0KCWVsc2UKCQkkeWVzID0gJG1vZC0+TGFuZygneWVzJyk7CgoJaWYoJG1vZC0+YmVmb3JlMjApCgl7CgkJJG15dGVtcGxhdGVzID0gJG1vZC0+TGlzdFRlbXBsYXRlcyhTTVNHOjpNT0ROQU1FKTsKCQkvL2V4Y2x1ZGUgdW53YW50ZWQgdHlwZXMsIGFuZCB3YW50ZWQgdHlwZSdzICdkZWZhdWx0Y29udGVudCcgdGVtcGxhdGUgKGFub255bW91cyBjYWxsYmFjayA+PiBQSFAgNS4zKykKCQlhcnJheV93YWxrKCRteXRlbXBsYXRlcyxmdW5jdGlvbigmJG4sJGssJHApCgkJewoJCQkkbD1zdHJsZW4oJHApOwoJCQkkbj0oc3RybmNtcCgkbiwkcCwkbCkgPT09IDApP3N1YnN0cigkbiwkbCk6RkFMU0U7CgkJCWlmKCRuPT0nZGVmYXVsdGNvbnRlbnQnKQoJCQkgJG49RkFMU0U7CgkJfSwkcHJlZml4KTsKCX0KCWVsc2UKCXsKCQkkbCA9IHN0cmxlbigkcHJlZml4KTsKCQkkdHlwZSA9IHJ0cmltKCRwcmVmaXgsJ18nKTsKCQkkdHR5cGUgPSBDbXNMYXlvdXRUZW1wbGF0ZVR5cGU6OmxvYWQoJ1NNU0c6OicuJHR5cGUpOwoJCSRteXRlbXBsYXRlcyA9ICR0dHlwZS0+Z2V0X3RlbXBsYXRlX2xpc3QoKTsKCQlhcnJheV93YWxrKCRteXRlbXBsYXRlcyxmdW5jdGlvbigmJG4sJGssJGwpCgkJewoJCQkkbj1zdWJzdHIoJG4tPmdldF9uYW1lKCksJGwpOwoJCQlpZigkbj09J2RlZmF1bHRjb250ZW50JykKCQkJICRuPUZBTFNFOwoJCX0sJGwpOwoJfQoJJG15dGVtcGxhdGVzID0gYXJyYXlfZmlsdGVyKCRteXRlbXBsYXRlcyk7Cglzb3J0KCRteXRlbXBsYXRlcyxTT1JUX0xPQ0FMRV9TVFJJTkcpOwoKCSRkZWZhdWx0bmFtZSA9ICRtb2QtPkdldFByZWZlcmVuY2UoJHByZWZkZWZuYW1lKTsKCSRyb3dhcnJheSA9IGFycmF5KCk7CgoJZm9yZWFjaCgkbXl0ZW1wbGF0ZXMgYXMgJG9uZSkKCXsKCQkkZGVmYXVsdCA9ICgkb25lID09ICRkZWZhdWx0bmFtZSk7CgkJJG9uZXNldCA9IG5ldyBTdGRDbGFzcygpOwoJCWlmKCRtb2RpZnkpCgkJewoJCQkkYXJnc1sndGVtcGxhdGUnXSA9ICRvbmU7CgkJCSRhcmdzWydtb2RlJ10gPSAnZWRpdCc7CgkJCSRvbmVzZXQtPm5hbWUgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwnc2V0dGVtcGxhdGUnLCRyZXR1cm5pZCwkb25lLCRhcmdzKTsKCQkJJG9uZXNldC0+ZWRpdGxpbmsgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwnc2V0dGVtcGxhdGUnLCRyZXR1cm5pZCwkZWRpdGljb24sJGFyZ3MpOwoKCQkJJGFyZ3NbJ21vZGUnXSA9ICdkZWZhdWx0JzsKCQkJJG9uZXNldC0+ZGVmYXVsdCA9ICgkZGVmYXVsdCkgPwoJCQkJJHRydWVpY29uOgoJCQkJJG1vZC0+Q3JlYXRlTGluaygkaWQsJ3NldHRlbXBsYXRlJywkcmV0dXJuaWQsJGZhbHNlaWNvbiwkYXJncyk7CgoJCQkkYXJnc1snbW9kZSddID0gJ2RlbGV0ZSc7CgkJCSRvbmVzZXQtPmRlbGV0ZWxpbmsgPSAoJGRlZmF1bHQpID8KCQkJCScnOgoJCQkJJG1vZC0+Q3JlYXRlTGluaygkaWQsJ3NldHRlbXBsYXRlJywkcmV0dXJuaWQsJGRlbGV0ZWljb24sJGFyZ3MsJHByb21wdCk7CgkJfQoJCWVsc2UKCQl7CgkJCSRvbmVzZXQtPm5hbWUgPSAkb25lOwoJCQkkb25lc2V0LT5kZWZhdWx0ID0gKCRkZWZhdWx0KSA/ICR5ZXM6Jyc7CgkJCSRvbmVzZXQtPmVkaXRsaW5rID0gJyc7CgkJCSRvbmVzZXQtPmRlbGV0ZWxpbmsgPSAnJzsKCQl9CgkJJHJvd2FycmF5W10gPSAkb25lc2V0OwoJfQoKCWlmKCRtb2RpZnkgJiYgJGRmbHR0cGwpCgl7CgkJJG9uZXNldCA9IG5ldyBTdGRDbGFzcygpOwoJCSRhcmdzWyd0ZW1wbGF0ZSddID0gJ2RlZmF1bHRjb250ZW50JzsKCQkkYXJnc1snbW9kZSddID0gJ2VkaXQnOwoJCSRvbmVzZXQtPm5hbWUgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwnc2V0dGVtcGxhdGUnLCRyZXR1cm5pZCwKCQkJJzxlbT4nLiRtb2QtPkxhbmcoJ2RlZmF1bHRfdGVtcGxhdGVfdGl0bGUnKS4nPC9lbT4nLCRhcmdzKTsKCQkkb25lc2V0LT5lZGl0bGluayA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCdzZXR0ZW1wbGF0ZScsJHJldHVybmlkLCRlZGl0aWNvbiwkYXJncyk7CgoJCSRvbmVzZXQtPmRlZmF1bHQgPSAnJzsKCgkJJHJldmVydGljb24gPSAnPGltZyBzcmM9IicuJG1vZC0+R2V0TW9kdWxlVVJMUGF0aCgpLicvaW1hZ2VzL3JldmVydC5naWYiIGFsdD0iJy4KCQkgJG1vZC0+TGFuZygncmVzZXQnKS4nIiB0aXRsZT0iJy4kbW9kLT5MYW5nKCdyZXNldF90aXAnKS4KCQkgJyIgY2xhc3M9InN5c3RlbWljb24iIG9uY2xpY2s9InJldHVybiBjb25maXJtKFwnJy4kcHJvbXB0LidcJyk7IiAvPic7CgkJJGFyZ3NbJ21vZGUnXSA9ICdyZXZlcnQnOwoJCSRvbmVzZXQtPmRlbGV0ZWxpbmsgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwnc2V0dGVtcGxhdGUnLCRyZXR1cm5pZCwkcmV2ZXJ0aWNvbiwkYXJncyk7CgkJJHJvd2FycmF5W10gPSAkb25lc2V0OwoJfQoKCSR0cGx2YXJzICs9IGFycmF5KAoJCSRwcmVmaXguJ2l0ZW1zJyA9PiAkcm93YXJyYXksCgkJJ3BhcmVudF9tb2R1bGVfbmFtZScgPT4gJG1vZC0+R2V0RnJpZW5kbHlOYW1lKCksCgkJJ3RpdGxlbmFtZScgPT4gJG1vZC0+TGFuZygnbmFtZScpLAoJCSd0aXRsZWRlZmF1bHQnID0+ICRtb2QtPkxhbmcoJ2RlZmF1bHQnKQoJKTsKCWlmKCRtb2RpZnkpCgl7CgkJJGFyZ3NbJ21vZGUnXSA9ICdhZGQnOwoJCSRhZGQgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwnc2V0dGVtcGxhdGUnLCRyZXR1cm5pZCwkYWRkaWNvbiwkYXJncykuJyAnLgoJCQkkbW9kLT5DcmVhdGVMaW5rKCRpZCwnc2V0dGVtcGxhdGUnLCRyZXR1cm5pZCwkbW9kLT5MYW5nKCdhZGRfdGVtcGxhdGUnKSwkYXJncyk7Cgl9CgllbHNlCgkJJGFkZCA9ICcnOwoJJHRwbHZhcnNbJ2FkZF8nLiRwcmVmaXguJ3RlbXBsYXRlJ10gPSAkYWRkOwp9CgpzbXNnX3V0aWxzOjpyZWZyZXNoX2dhdGV3YXlzKCR0aGlzKTsKJG9ianMgPSBzbXNnX3V0aWxzOjpnZXRfZ2F0ZXdheXNfZnVsbCgkdGhpcyk7CmlmKCEkb2JqcykKewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3Jfbm9nYXRld2F5c2ZvdW5kJykpOwoJcmV0dXJuOwp9CgokcGFkbSA9ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0FkbWluaXN0ZXJTTVNHYXRld2F5cycpOwokcG1vZCA9ICRwYWRtIHx8ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeVNNU0dhdGV3YXlzJyk7CiRwdHBsID0gJHBhZG0gfHwgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5U01TR2F0ZVRlbXBsYXRlcycpOwokcHVzZSA9ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1VzZVNNU0dhdGV3YXlzJyk7CgokdHBsdmFycyA9IGFycmF5KAoJJ3BhZG0nID0+ICRwYWRtLAoJJ3Btb2QnID0+ICRwbW9kLAoJJ3B0cGwnID0+ICRwdHBsLAoJJ3B1c2UnID0+ICRwdXNlCik7CgppZighZW1wdHkoJHBhcmFtc1snYWN0aXZldGFiJ10pKQoJJHNob3d0YWIgPSAkcGFyYW1zWydhY3RpdmV0YWInXTsKZWxzZQoJJHNob3d0YWIgPSAnZ2F0ZXMnOyAvL2RlZmF1bHQKCiRoZWFkZXJzID0gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOwppZigkcG1vZCB8fCAkcHVzZSkKCSRoZWFkZXJzIC49CiAkdGhpcy0+U2V0VGFiSGVhZGVyKCdnYXRlcycsJHRoaXMtPkxhbmcoJ2dhdGV3YXlzJyksKCRzaG93dGFiPT0nZ2F0ZXMnKSkuCiAkdGhpcy0+U2V0VGFiSGVhZGVyKCd0ZXN0JywkdGhpcy0+TGFuZygndGVzdCcpLCgkc2hvd3RhYj09J3Rlc3QnKSkuCiAkdGhpcy0+U2V0VGFiSGVhZGVyKCdtb2JpbGVzJywkdGhpcy0+TGFuZygncGhvbmVfbnVtYmVycycpLCgkc2hvd3RhYj09J21vYmlsZXMnKSk7CmlmKCRwdHBsIHx8ICRwdXNlKQoJJGhlYWRlcnMgLj0KICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2VudGVybnVtYmVyJywkdGhpcy0+TGFuZygnZW50ZXJfbnVtYmVyX3RlbXBsYXRlcycpLCgkc2hvd3RhYj09J2VudGVybnVtYmVyJykpLgogJHRoaXMtPlNldFRhYkhlYWRlcignZW50ZXJ0ZXh0JywkdGhpcy0+TGFuZygnZW50ZXJfdGV4dF90ZW1wbGF0ZXMnKSwoJHNob3d0YWI9PSdlbnRlcnRleHQnKSk7CmlmKCRwYWRtKQoJJGhlYWRlcnMgLj0KICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3NlY3VyaXR5JywkdGhpcy0+TGFuZygnc2VjdXJpdHlfdGFiX2xibCcpLCgkc2hvd3RhYj09J3NlY3VyaXR5JykpOwokaGVhZGVycyAuPQogJHRoaXMtPkVuZFRhYkhlYWRlcnMoKS4KICR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKTsKCiR0cGx2YXJzICs9IGFycmF5KAoJJ3RhYnNoZWFkZXInID0+ICRoZWFkZXJzLAoJJ3RhYnNmb290ZXInID0+ICR0aGlzLT5FbmRUYWJDb250ZW50KCksIC8vZm9yIENNU01TIDIrLCBtdXN0IGJlIGJlZm9yZSBFbmRUYWIoKSAhIQoJJ2VuZHRhYicgPT4gJHRoaXMtPkVuZFRhYigpLAoJJ2Zvcm1lbmQnID0+ICR0aGlzLT5DcmVhdGVGb3JtRW5kKCksCgkvL3ZhcmlvdXMgdGl0bGVzCgknZGVmYXVsdF9nYXRld2F5JyA9PiAkdGhpcy0+TGFuZygnZGVmYXVsdF9nYXRld2F5JyksCgknaWQnID0+ICR0aGlzLT5MYW5nKCdpZCcpLAoJJ2luZm9fc21zdGVzdCcgPT4gJHRoaXMtPkxhbmcoJ2luZm9fc21zdGVzdCcpLAoJJ251bWJlcicgPT4gJHRoaXMtPkxhbmcoJ251bWJlcicpLAoJJ3Bob25lX251bWJlcicgPT4gJHRoaXMtPkxhbmcoJ3Bob25lX251bWJlcicpLAoJJ3JlcG9ydGluZ191cmwnID0+ICR0aGlzLT5MYW5nKCdyZXBvcnRpbmdfdXJsJyksCgkndGl0bGVfZGFpbHlsaW1pdCcgPT4gJHRoaXMtPkxhbmcoJ3Byb21wdF9kYWlseV9saW1pdCcpLAoJJ3RpdGxlX2hvdXJseWxpbWl0JyA9PiAkdGhpcy0+TGFuZygncHJvbXB0X2hvdXJseV9saW1pdCcpLAoJJ3RpdGxlX2xvZ2RlbGl2ZXJzJyA9PiAkdGhpcy0+TGFuZygncHJvbXB0X2xvZ19kZWxpdmVycycpLAoJJ3RpdGxlX2xvZ3JldGFpbicgPT4gJHRoaXMtPkxhbmcoJ3Byb21wdF9sb2dfcmV0YWluX2RheXMnKSwKCSd0aXRsZV9sb2dzZW5kcycgPT4gJHRoaXMtPkxhbmcoJ3Byb21wdF9sb2dfc2VuZHMnKSwKCSd0aXRsZV9wYXNzd29yZCcgPT4gJHRoaXMtPkxhbmcoJ3Byb21wdF9tYXN0ZXJfcGFzc3dvcmQnKSwKCSdzdWJtaXQnID0+ICR0aGlzLT5MYW5nKCdzdWJtaXQnKSwKCSdjYW5jZWwnID0+ICR0aGlzLT5MYW5nKCdjYW5jZWwnKQopOwoKJGpzaW5jcyA9IGFycmF5KCk7CiRqc2Z1bmNzID0gYXJyYXkoKTsKJGpzbG9hZHMgPSBhcnJheSgpOwokYmFzZXVybCA9ICR0aGlzLT5HZXRNb2R1bGVVUkxQYXRoKCk7CgppZigkcG1vZCB8fCAkcHVzZSkKewoJJHRwbHZhcnMgKz0gYXJyYXkoCgkJJ3RhYnN0YXJ0X2dhdGVzJyA9PiAkdGhpcy0+U3RhcnRUYWIoJ2dhdGVzJywkcGFyYW1zKSwKCQknZm9ybXN0YXJ0X2dhdGVzJyA9PiAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwnc2F2ZWdhdGVzJyksCgkJJ3JlcG9ydHVybCcgPT4gc21zZ191dGlsczo6Z2V0X3JlcG9ydHVybCgkdGhpcykKCSk7CgoJaWYoJHBtb2QpCgl7CgkJJGN1cnJlbnQgPSAkZGItPkdldE9uZSgnU0VMRUNUIGFsaWFzIEZST00gJy5jbXNfZGJfcHJlZml4KCkuCgkJCSdtb2R1bGVfc21zZ19nYXRlcyBXSEVSRSBlbmFibGVkPTEgQU5EIGFjdGl2ZT0xJyk7CgkJaWYoJGN1cnJlbnQgPT0gRkFMU0UpCgkJCSRjdXJyZW50ID0gJy0xJzsKCQkkdHBsdmFyc1snZ2F0ZWN1cnJlbnQnXSA9ICRjdXJyZW50OwoJCgkJJG5hbWVzID0gYXJyYXkoLTEgPT4gJHRoaXMtPkxhbmcoJ25vbmUnKSk7CgkJZm9yZWFjaCgkb2JqcyBhcyAka2V5PT4mJHJlYykKCQl7CgkJCSRuYW1lc1ska2V5XSA9ICRyZWNbJ29iaiddLT5nZXRfbmFtZSgpOwoJCQkkcmVjID0gJHJlY1snb2JqJ10tPmdldF9zZXR1cF9mb3JtKCk7CgkJfQoJCXVuc2V0KCRyZWMpOwoJCSR0cGx2YXJzWydnYXRlc25hbWVzJ10gPSAkbmFtZXM7Cgl9CgllbHNlCgl7CgkJZm9yZWFjaCgkb2JqcyBhcyAka2V5PT4mJHJlYykKCQkJJHJlYyA9ICRyZWNbJ29iaiddLT5nZXRfc2V0dXBfZm9ybSgpOwoJCXVuc2V0KCRyZWMpOwoJfQoJJHRwbHZhcnNbJ2dhdGVzZGF0YSddID0gJG9ianM7CgoJJHRoZW1lID0gKCR0aGlzLT5iZWZvcmUyMCkgPyBjbXNtcygpLT5nZXRfdmFyaWFibGUoJ2FkbWludGhlbWUnKToKCQljbXNfdXRpbHM6OmdldF90aGVtZV9vYmplY3QoKTsKCgkkdHBsdmFyc1sndGFic3RhcnRfdGVzdCddID0gJHRoaXMtPlN0YXJ0VGFiKCd0ZXN0JywkcGFyYW1zKTsKCSR0cGx2YXJzWydmb3Jtc3RhcnRfdGVzdCddID0gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ3Ntc3Rlc3QnKTsKCgkkdHBsdmFyc1sndGFic3RhcnRfbW9iaWxlcyddID0gJHRoaXMtPlN0YXJ0VGFiKCdtb2JpbGVzJywkcGFyYW1zKTsKCSRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc21zZ19udW1zIE9SREVSIEJZIGlkJzsKCSRkYXRhID0gJGRiLT5HZXRBbGwoJHF1ZXJ5KTsKCWlmKCRkYXRhKQoJewoJCSRlZGl0aWNvbiA9ICR0aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLCRtb2QtPkxhbmcoJ2VkaXRfdGlwJyksJycsJycsJ3N5c3RlbWljb24nKTsKCQkkZGVsZXRlaWNvbiA9ICR0aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsJG1vZC0+TGFuZygnZGVsZXRlb25lX3RpcCcpLCcnLCcnLCdzeXN0ZW1pY29uJyk7CgkJJHByb21wdCA9ICR0aGlzLT5MYW5nKCdhc2tfZGVsZXRlX21vYmlsZScpOwoJCWZvcmVhY2goJGRhdGEgYXMgJiRyb3cpCgkJewoJCQkkcm93ID0gKG9iamVjdCkkcm93OwoJCQlpZigkcG1vZCkKCQkJewoJCQkJJGFyZ3MgPSBhcnJheSgnbWlkJz0+JHJvdy0+aWQpOwoJCQkJJHJlYy0+ZWRpdGxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2VkaXRfbW9iaWxlJywnJywkZWRpdGljb24sJGFyZ3MpOwoJCQkJJHJlYy0+ZGVsZXRlbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZGVsX21vYmlsZScsJycsJGRlbGV0ZWljb24sJGFyZ3MsJHByb21wdCk7CgkJCX0KCQl9CgkJdW5zZXQoJHJvdyk7CgkJJHRwbHZhcnNbJ251bWJlcnMnXSA9ICRkYXRhOwoJfQoJZWxzZQoJCSR0cGx2YXJzWydub251bWJlcnMnXSA9ICR0aGlzLT5MYW5nKCdub251bWJlcnMnKTsKCWlmKCRwbW9kKQoJewoJCSR0ZXh0ID0gJHRoaXMtPkxhbmcoJ2FkZF9tb2JpbGUnKTsKCQkkYWRkaWNvbiA9ICR0aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZicsJHRleHQsJycsJycsJ3N5c3RlbWljb24nKTsKCQkkdHBsdmFyc1snYWRkX21vYmlsZSddID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdlZGl0X21vYmlsZScsJycsJGFkZGljb24pLicgJy4KCQkJJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdlZGl0X21vYmlsZScsJycsJHRleHQpOwoJfQp9CgppZigkcHRwbCB8fCAkcHVzZSkKewoJJHRpZCA9ICdlbnRlcm51bWJlcic7IC8vdGFiIGlkZW50aWZpZXIKCSR0cGx2YXJzWyd0YWJzdGFydF9lbnRlcm51bWJlciddID0gJHRoaXMtPlN0YXJ0VGFiKCR0aWQsJHBhcmFtcyk7CglTZXR1cFRlbXBsYXRlTGlzdCgkdGhpcywkdHBsdmFycywkcHRwbCwkcGFkbSwKCQkkaWQsJHJldHVybmlkLCR0aWQsIC8vdGFiIHRvIGNvbWUgYmFjayB0bwoJCSdlbnRlcm51bWJlcl8nLCAvLydwcmVmaXgnIG9mIHRlbXBsYXRlcycgZnVsbC1uYW1lCgkJU01TRzo6UFJFRl9FTlRFUk5VTUJFUl9UUExERkxUKTsgLy9wcmVmZXJlbmNlIGhvbGRpbmcgbmFtZSBvZiBkZWZhdWx0IHRlbXBsYXRlCgoJJHRpZCA9ICdlbnRlcnRleHQnOwoJJHRwbHZhcnNbJ3RhYnN0YXJ0X2VudGVydGV4dCddID0gJHRoaXMtPlN0YXJ0VGFiKCR0aWQsJHBhcmFtcyk7CglTZXR1cFRlbXBsYXRlTGlzdCgkdGhpcywkdHBsdmFycywkcHRwbCwkcGFkbSwKCQkkaWQsJHJldHVybmlkLCR0aWQsJ2VudGVydGV4dF8nLFNNU0c6OlBSRUZfRU5URVJURVhUX1RQTERGTFQpOwp9CgppZigkcGFkbSkKewoJJHRwbHZhcnMgKz0gYXJyYXkoCgkJJ3RhYnN0YXJ0X3NlY3VyaXR5JyA9PiAkdGhpcy0+U3RhcnRUYWIoJ3NlY3VyaXR5JywkcGFyYW1zKSwKCQknZm9ybXN0YXJ0X3NlY3VyaXR5JyA9PiAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwnc2F2ZXNlY3VyaXR5JyksCgkJJ2hvdXJsaW1pdCcgPT4gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2hvdXJsaW1pdCcpLAoJCSdkYXlsaW1pdCcgPT4gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RheWxpbWl0JyksCgkJJ2xvZ3NlbmRzJyA9PiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbG9nc2VuZHMnKSwKCQknbG9nZGF5cycgPT4gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2xvZ2RheXMnKSwKCQknbG9nZGVsaXZlcmllcycgPT4gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2xvZ2RlbGl2ZXJpZXMnKQoJKTsKCSRwdyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtYXN0ZXJwYXNzJyk7CglpZigkcHcpCgkJJHB3ID0gc21zZ191dGlsczo6dW5mdXNjKCRwdyk7CgkkdHBsdmFyc1snbWFzdGVycGFzcyddID0gJHB3OyAKCSRqc2luY3NbXSA9ICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSInLiRiYXNldXJsLicvaW5jbHVkZS9qcXVlcnktaW5wdXRDbG9hay5taW4uanMiPjwvc2NyaXB0Pic7CgkkanNsb2Fkc1tdID08PDxFT1MKICQoJyN7JGlkfXBhc3N3ZCcpLmlucHV0Q2xvYWsoewogIHR5cGU6J3NlZTQnLAogIHN5bWJvbDonXHUyMDIyJwogfSk7CgpFT1M7Cn0KCi8vc2hvdyBvbmx5IHRoZSBmcmFtZXNldCBmb3Igc2VsZWN0ZWQgZ2F0ZXdheQokanNsb2Fkc1tdID0gPDw8RU9TCiAkKCcuc21zX2dhdGV3YXlfcGFuZWwnKS5oaWRlKCk7CiB2YXIgXCRzZWwgPSAkKCcjc21zX2dhdGV3YXknKSwKICAgIHZhbCA9IFwkc2VsLnZhbCgpOwogJCgnIycrdmFsKS5zaG93KCk7CgpFT1M7CmlmKCRwYWRtKQp7CgkkcHJvbXB0ID0gJHRoaXMtPkxhbmcoJ3N1cmVfYXNrJyk7CgkkanNsb2Fkc1tdID0gPDw8RU9TCiBcJHNlbC5jaGFuZ2UoZnVuY3Rpb24oKSB7CiAgICQoJy5zbXNfZ2F0ZXdheV9wYW5lbCcpLmhpZGUoKTsKICAgdmFyIHZhbCA9ICQodGhpcykudmFsKCk7CiAgICQoJyMnK3ZhbCkuc2hvdygpOwogfSk7CiAkKCdpbnB1dFt0eXBlPSJzdWJtaXQiXVtuYW1lJD0ifmRlbGV0ZSJdJykuY2xpY2soZnVuY3Rpb24oZXYpIHsKICB2YXIgY2IgPSAkKHRoaXMpLmNsb3Nlc3QoJ2ZpZWxkc2V0JykuZmluZCgnaW5wdXRbbmFtZSQ9In5zZWwiXTpjaGVja2VkJyk7CiAgaWYoY2IubGVuZ3RoID4gMCkgewogICByZXR1cm4gY29uZmlybSgneyRwcm9tcHR9Jyk7CiAgfSBlbHNlIHsKICAgcmV0dXJuIGZhbHNlOwogIH0KIH0pOwoKRU9TOwoJLy9zdXBwb3J0IHByb3BlcnR5IHJlb3JkZXJpbmcgYnkgdGFibGUtRG5ECgkkanNpbmNzW10gPSA8PDxFT1MKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJ3skYmFzZXVybH0vaW5jbHVkZS9qcXVlcnkudGFibGVkbmQubWluLmpzIj48L3NjcmlwdD4KCkVPUzsKCSRqc2xvYWRzW10gPSA8PDxFT1MKICQoJy5nYXRlZGF0YScpLnRhYmxlRG5EKHsKICBkcmFnQ2xhc3M6ICdyb3cxaG92ZXInLAogIG9uRHJvcDogZnVuY3Rpb24odGFibGUsIGRyb3Byb3dzKSB7CiAgIHZhciBvZGQgPSB0cnVlOwogICB2YXIgb2RkY2xhc3MgPSAncm93MSc7CiAgIHZhciBldmVuY2xhc3MgPSAncm93Mic7CiAgIHZhciBkcm9wcm93ID0gJChkcm9wcm93cylbMF07CiAgICQodGFibGUpLmZpbmQoJ3Rib2R5IHRyJykuZWFjaChmdW5jdGlvbigpIHsKICAgIHZhciBuYW1lID0gb2RkID8gb2RkY2xhc3MgOiBldmVuY2xhc3M7CiAgICBpZiAodGhpcyA9PT0gZHJvcHJvdykgewogICAgIG5hbWUgPSBuYW1lKydob3Zlcic7CiAgICB9CiAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCkuYWRkQ2xhc3MobmFtZSk7CiAgICBvZGQgPSAhb2RkOwogICB9KTsKICB9CiB9KS5maW5kKCd0Ym9keSB0cicpLnJlbW92ZUF0dHIoJ29ubW91c2VvdmVyJykucmVtb3ZlQXR0cignb25tb3VzZW91dCcpLm1vdXNlb3ZlcihmdW5jdGlvbigpIHsKICB2YXIgbm93ID0gJCh0aGlzKS5hdHRyKCdjbGFzcycpOwogICQodGhpcykuYXR0cignY2xhc3MnLCBub3crJ2hvdmVyJyk7CiB9KS5tb3VzZW91dChmdW5jdGlvbigpIHsKICB2YXIgbm93ID0gJCh0aGlzKS5hdHRyKCdjbGFzcycpOwogIHZhciB0byA9IG5vdy5pbmRleE9mKCdob3ZlcicpOwogICQodGhpcykuYXR0cignY2xhc3MnLCBub3cuc3Vic3RyaW5nKDAsdG8pKTsKIH0pOwoKRU9TOwp9CgokanNmdW5jc1tdID0gPDw8RU9TCiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewoKRU9TOwokanNmdW5jcyA9IGFycmF5X21lcmdlKCRqc2Z1bmNzLCRqc2xvYWRzKTsKJGpzZnVuY3NbXSA9IDw8PEVPUwp9KTsKCkVPUzsKCiR0cGx2YXJzWydqc2luY3MnXSA9ICRqc2luY3M7CiR0cGx2YXJzWydqc2Z1bmNzJ10gPSAkanNmdW5jczsKCmVjaG8gc21zZ191dGlsczo6UHJvY2Vzc1RlbXBsYXRlKCR0aGlzLCdhZG1pbnBhbmVsLnRwbCcsJHRwbHZhcnMpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.del_mobile.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCEoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQWRtaW5pc3RlclNNU0dhdGV3YXlzJykKICB8fCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnlTTVNHYXRld2F5cycpKSkgZXhpdDsKCmlmKGlzc2V0KCRwYXJhbXNbJ21pZCddKSkKewoJJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc21zZ19udW1zIFdIRVJFIGlkPT8nOwoJJHJlcyA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoKGludCkkcGFyYW1zWydtaWQnXSkpOwoKCWlmKCRyZXMpCgkJJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19yZWNfZGVsZXRlZCcpKTsKCWVsc2UKCQkkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX25vdGZvdW5kJykpOwp9CgokdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLGFycmF5KCdhY3RpdmV0YWInPT4nbW9iaWxlcycpKTsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.devreport.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgokZ2F0ZXdheSA9IHNtc2dfdXRpbHM6OmdldF9nYXRld2F5KEZBTFNFLCR0aGlzKTsgLy9vbmx5IGZvciB0aGUgZGVmYXVsdCBnYXRld2F5IT8KLy8gZG93bnN0cmVhbSBtdXN0IHBhcnNlICRfUkVRVUVTVCBkaXJlY3RseQokbXNnID0gJGdhdGV3YXktPnByb2Nlc3NfZGVsaXZlcnlfcmVwb3J0KCk7CmlmKCRtc2cgJiYgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2xvZ2RlbGl2ZXJpZXMnKSkKCSR0aGlzLT5BdWRpdChTTVNHOjpBVURJVF9ERUxJVixTTVNHOjpNT0ROQU1FLCRtc2cpOwoKJHRoaXMtPlNlbmRFdmVudCgnU01TRGVsaXZlcnlSZXBvcnRlZCcsYXJyYXkoCgknZ2F0ZXdheSc9PiRnYXRld2F5LT5nZXRfbmFtZSgpLAoJJ3N0YXR1cyc9PiRnYXRld2F5LT5nZXRfc3RhdHVzKCksCgknbWVzc2FnZSc9PiRtc2csCgkndGltZXN0YW1wJz0+c3RyZnRpbWUoJyVYICVaJykpKTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.do_enternumber.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMgYWN0aW9uOiBkb19lbnRlcm51bWJlciAtIGRpc3BsYXkgYSBmb3JtIGZvciB0aGUgdXNlciB0byBlbnRlciBhIHBob25lIG51bWJlcgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYoIWlzc2V0KCRwYXJhbXNbJ3Ntc2tleSddKSkKCXJldHVybjsgIC8vIG5vIG1lc3NhZ2Uta2V5CiRrZXkgPSB0cmltKCRwYXJhbXNbJ3Ntc2tleSddKTsKJHNtc3RleHQgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgka2V5KTsKaWYoISRzbXN0ZXh0KQp7CgkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgka2V5KTsKCXJldHVybjsgIC8vIG5vdGhpbmcgdG8gc2VuZAp9CgokbWVzc2FnZSA9ICcnOwokZXJyb3IgPSAnJzsKCmlmKGlzc2V0KCRwYXJhbXNbJ3Ntc2dfc3VibWl0J10pKQp7CgkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgka2V5KTsKCS8vIGhhbmRsZSBmb3JtIHN1Ym1pc3Npb24KCWlmKGlzc2V0KCRwYXJhbXNbJ3Ntc2dfbW9iaWxlJ10pKQoJewoJCSRtb2JpbGUgPSB0cmltKCRwYXJhbXNbJ3Ntc2dfbW9iaWxlJ10pOwoJCWlmKHNtc2dfdXRpbHM6OmlzX3ZhbGlkX3Bob25lKCRtb2JpbGUpKQoJCXsKCQkJLy8gbm93IHdlJ3JlIHJlYWR5IHRvIHNlbmQKCQkJJHRpdGxlID0gKGVtcHR5KCRwYXJhbXNbJ2dhdGVuYW1lJ10pKSA/IEZBTFNFIDogJHBhcmFtc1snZ2F0ZW5hbWUnXTsKCQkJJGdhdGV3YXkgPSBzbXNnX3V0aWxzOjpnZXRfZ2F0ZXdheSgkdGl0bGUsJHRoaXMpOwoJCQlpZigkZ2F0ZXdheSkKCQkJewoJCQkJJGdhdGV3YXktPnNldF9tc2coJHNtc3RleHQpOwoJCQkJJGdhdGV3YXktPnNldF9udW0oJG1vYmlsZSk7CgkJCQkkZ2F0ZXdheS0+c2VuZCgpOwoKCQkJCWlmKCRnYXRld2F5LT5nZXRfc3RhdHVzKCkgPT0gc21zX2dhdGV3YXlfYmFzZTo6U1RBVF9PSykKCQkJCQkkbWVzc2FnZSA9ICR0aGlzLT5MYW5nKCdzbXNfbWVzc2FnZV9zZW50Jyk7CgkJCQllbHNlCgkJCQkJJGVycm9yID0gJGdhdGV3YXktPmdldF9zdGF0dXNtc2coKTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCSRlcnJvciA9ICR0aGlzLT5MYW5nKCdlcnJvcl9ub2dhdGV3YXlmb3VuZCcpOwoJCQkJJHRoaXMtPkF1ZGl0KFNNU0c6OkFVRElUX0VSUixTTVNHOjpNT0ROQU1FLCdlbnRlcm51bWJlcjonLiRlcnJvcik7CgkJCX0KCQl9CgkJZWxzZQoJCQkkZXJyb3IgPSAkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZF9udW1iZXInKTsKCX0KfQoKLy8gZGlzcGxheSB0aGUgZm9ybQokdHBsdmFycyA9IGFycmF5KCk7CiR0cGx2YXJzWydtZXNzYWdlJ10gPSAkbWVzc2FnZTsgCiR0cGx2YXJzWydlcnJvciddID0gJGVycm9yOyAKaWYoIWVtcHR5KCRwYXJhbXNbJ2dhdGVuYW1lJ10pKQoJJHRwbHZhcnNbJ2dhdGVuYW1lJ10gPSAkcGFyYW1zWydnYXRlbmFtZSddOyAKJHRwbHZhcnNbJ2Zvcm1zdGFydCddID0gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ2RvX2VudGVybnVtYmVyJywkcmV0dXJuaWQsJ1BPU1QnLCcnLCcnLCcnLCRwYXJhbXMpOyAKJHRwbHZhcnNbJ2Zvcm1lbmQnXSA9ICR0aGlzLT5DcmVhdGVGb3JtRW5kKCk7IAoKaWYoZW1wdHkoJHBhcmFtc1snZW50ZXJudW1iZXJ0ZW1wbGF0ZSddKSkKCSR0aGV0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKFNNU0c6OlBSRUZfRU5URVJOVU1CRVJfVFBMREZMVCk7CmVsc2UKCSR0aGV0ZW1wbGF0ZSA9IHRyaW0oJHBhcmFtc1snZW50ZXJudW1iZXJ0ZW1wbGF0ZSddKTsKZWNobyBzbXNnX3V0aWxzOjpQcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHRoaXMsJ2VudGVybnVtYmVyXycuJHRoZXRlbXBsYXRlLCR0cGx2YXJzKTsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.do_entertext.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMgYWN0aW9uOiBkb19lbnRlcnRleHQgLSBkaXNwbGF5IGEgZm9ybSBmb3IgdGhlIHVzZXIgdG8gZW50ZXIgYSBtZXNzYWdlCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZighaXNzZXQoJHBhcmFtc1snc21zbnVtJ10pKQoJcmV0dXJuOyAgLy8gbm8gbnVtYmVyIGlkCgokc21zdGV4dCA9ICcnOwokbWVzc2FnZSA9ICcnOwoKLy8gY2hlY2sgdGhhdCB0aGUgc3VwcGxpZWQgU01TIElEIGlzIHZhbGlkCiRzbXNudW0gPSAoaW50KSRwYXJhbXNbJ3Ntc251bSddOwokcXVlcnkgPSAnU0VMRUNUIG1vYmlsZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc21zZ19udW1zIFdIRVJFIGlkPT8nOwokbW9iaWxlID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRzbXNudW0pKTsKJGVycm9yID0gKCRtb2JpbGUpID8gJycgOiAkdGhpcy0+TGFuZygnZXJyb3Jfbm90Zm91bmQnKTsKCmlmKCEkZXJyb3IgJiYgaXNzZXQoJHBhcmFtc1snc21zZ19zdWJtaXQnXSkpCnsKCWlmKGlzc2V0KCRwYXJhbXNbJ3Ntc2dfc21zdGV4dCddKSkKCQkkc21zdGV4dCA9IHRyaW0oJHBhcmFtc1snc21zZ19zbXN0ZXh0J10pOwoKCWlmKHNtc2dfdXRpbHM6OnRleHRfaXNfdmFsaWQoJHNtc3RleHQpKQoJewoJCS8vIG5vdyB3ZSdyZSByZWFkeSB0byBzZW5kCgkJJHRpdGxlID0gKGVtcHR5KCRwYXJhbXNbJ2dhdGVuYW1lJ10pKSA/IEZBTFNFIDogJHBhcmFtc1snZ2F0ZW5hbWUnXTsKCQkkZ2F0ZXdheSA9IHNtc2dfdXRpbHM6OmdldF9nYXRld2F5KCR0aXRsZSwkdGhpcyk7CgkJaWYoJGdhdGV3YXkpCgkJewoJCQkkZ2F0ZXdheS0+c2V0X21zZygkc21zdGV4dCk7CgkJCSRnYXRld2F5LT5zZXRfbnVtKCRtb2JpbGUpOwoJCQkkZ2F0ZXdheS0+c2VuZCgpOwoKCQkJaWYoJGdhdGV3YXktPmdldF9zdGF0dXMoKSA9PSBzbXNfZ2F0ZXdheV9iYXNlOjpTVEFUX09LKQoJCQkJJG1lc3NhZ2UgPSAkdGhpcy0+TGFuZygnc21zX21lc3NhZ2Vfc2VudCcsJG1vYmlsZSk7CgkJCWVsc2UKCQkJCSRlcnJvciA9ICRnYXRld2F5LT5nZXRfc3RhdHVzbXNnKCk7CgkJfQoJCWVsc2UKCQl7CgkJCSRlcnJvciA9ICR0aGlzLT5MYW5nKCdlcnJvcl9ub2dhdGV3YXlmb3VuZCcpOwoJCQkkdGhpcy0+QXVkaXQoU01TRzo6QVVESVRfRVJSLFNNU0c6Ok1PRE5BTUUsJ2VudGVydGV4dDonLiRlcnJvcik7CgkJfQoJfQoJZWxzZQoJCSRlcnJvciA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkX3RleHQnKTsKfQoKLy8gZGlzcGxheSB0aGUgZm9ybQokdHBsdmFycyA9IGFycmF5KCk7CiR0cGx2YXJzWydtZXNzYWdlJ10gPSAkbWVzc2FnZTsKJHRwbHZhcnNbJ2Vycm9yJ10gPSAkZXJyb3I7CmlmKCFlbXB0eSgkcGFyYW1zWydnYXRlbmFtZSddKSkKCSR0cGx2YXJzWydnYXRlbmFtZSddID0gJHBhcmFtc1snZ2F0ZW5hbWUnXTsKJHRwbHZhcnNbJ21heHNtc2NoYXJzJ10gPSAxNjA7CiR0cGx2YXJzWydzbXN0ZXh0J10gPSAkc21zdGV4dDsKJHRwbHZhcnNbJ2Zvcm1zdGFydCddID0gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ2RvX2VudGVydGV4dCcsJHJldHVybmlkLCdQT1NUJywnJywnJywnJywkcGFyYW1zKTsKJHRwbHZhcnNbJ2Zvcm1lbmQnXSA9ICR0aGlzLT5DcmVhdGVGb3JtRW5kKCk7CmlmKCFpc3NldCgkcGFyYW1zWydlbnRlcm51bWJlcnRlbXBsYXRlJ10pKQoJJHRoZXRlbXBsYXRlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoU01TRzo6UFJFRl9FTlRFUlRFWFRfVFBMREZMVCk7CmVsc2UKCSR0aGV0ZW1wbGF0ZSA9IHRyaW0oJHBhcmFtc1snZW50ZXJudW1iZXJ0ZW1wbGF0ZSddKTsKZWNobyBzbXNnX3V0aWxzOjpQcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHRoaXMsJ2VudGVydGV4dF8nLiR0aGV0ZW1wbGF0ZSwkdHBsdmFycyk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.edittemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0KEMpIDIwMTUtMjAxNiBUb20gUGhhbmUgPHRwZ3d3QG9uZXBvc3QubmV0PgojIFJlZmVyIHRvIGxpY2VuY2UgYW5kIG90aGVyIGRldGFpbHMgYXQgdGhlIHRvcCBvZiBmaWxlIFNNU0cubW9kdWxlLnBocAojIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3Ntc2cKIyBhY3Rpb24gLSBlZGl0dGVtcGxhdGUgcmVkaXJlY3RlZCBoZXJlIGZyb20gYWN0aW9uIHNldHRlbXBsYXRlLCBhZGQvZWRpdAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZighKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0FkbWluaXN0ZXJTTVNHYXRld2F5cycpCiAgfHwgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5U01TR2F0ZVRlbXBsYXRlcycpKSkgZXhpdDsKCmlmKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSkKCSR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJycsYXJyYXkoJ2FjdGl2ZXRhYic9PiRwYXJhbXNbJ2FjdGl2ZXRhYiddKSk7CgovLyBjaGVjayBpZiB3ZSBoYXZlIGEgdGVtcGxhdGUgbmFtZQppZighKGlzc2V0KCRwYXJhbXNbJ3RlbXBsYXRlJ10pIHx8IGlzc2V0KCRwYXJhbXNbJ3ByZWZpeCddKSkpCnsKCSR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfcGFyYW1zJykpOwoJJHRoaXMtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywnJyxhcnJheSgnYWN0aXZldGFiJz0+JHBhcmFtc1snYWN0aXZldGFiJ10pKTsKfQoKaWYoIWlzc2V0KCRwYXJhbXNbJ21vZGUnXSkgfHwgIWlzc2V0KCRwYXJhbXNbJ3RpdGxlJ10pKQp7CgkkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX3BhcmFtcycpKTsKCSR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJycsYXJyYXkoJ2FjdGl2ZXRhYic9PiRwYXJhbXNbJ2FjdGl2ZXRhYiddKSk7Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSB8fCBpc3NldCgkcGFyYW1zWydhcHBseSddKSkKewoJaWYoJHRoaXMtPmJlZm9yZTIwKQoJewoJCSR0aGlzLT5TZXRUZW1wbGF0ZSgkcGFyYW1zWydwcmVmaXgnXS4kcGFyYW1zWyd0ZW1wbGF0ZSddLCRwYXJhbXNbJ3RlbXBsYXRlY29udGVudCddKTsKCX0KCWVsc2UKCXsKCQl0cnkgewoJCQkkdHBsID0gQ21zTGF5b3V0VGVtcGxhdGU6OmxvYWQoJHBhcmFtc1sncHJlZml4J10uJHBhcmFtc1sndGVtcGxhdGUnXSk7CgkJCSR0cGwtPnNldF9jb250ZW50KCRwYXJhbXNbJ3RlbXBsYXRlY29udGVudCddKTsKCQkJJHRwbC0+c2F2ZSgpOwoJCX0gY2F0Y2ggKEV4Y2VwdGlvbiAkZSkgewoJCQkkcGFyYW1zWydlcnJvcnMnXSA9ICRlLT5nZXRNZXNzYWdlKCk7CgkJfQoJfQoJaWYoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pKQoJCSR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJycsYXJyYXkoJ2FjdGl2ZXRhYic9PiRwYXJhbXNbJ2FjdGl2ZXRhYiddKSk7Cn0KCi8vIGhhbmRsZSBlcnJvcnMKaWYoaXNzZXQoJHBhcmFtc1snZXJyb3JzJ10pKQoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkcGFyYW1zWydlcnJvcnMnXSk7CgokcGFyYW1zWydvcmlnYWN0aW9uJ10gPSAkcGFyYW1zWydhY3Rpb24nXTsKJGNvbnRlbnRzID0gJyc7CiR0cGx2YXJzID0gYXJyYXkoKTsKaWYoJHBhcmFtc1snbW9kZSddID09ICdhZGQnKQp7CgkkdHBsdmFyc1snZm9ybXN0YXJ0J10gPSAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwnc2V0dGVtcGxhdGUnLCRyZXR1cm5pZCwnUE9TVCcsJycsJycsJycsJHBhcmFtcyk7CgkkdHBsdmFyc1snbmFtZSddID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ3RlbXBsYXRlJywnJyw0MCwyMDApOwoJJHRwbHZhcnNbJ2hpZGRlbiddID0KCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdwcmVmaXgnLCRwYXJhbXNbJ3ByZWZpeCddKS4KCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdhY3RpdmV0YWInLCRwYXJhbXNbJ2FjdGl2ZXRhYiddKTsKCWlmKCFlbXB0eSgkcGFyYW1zWydkZWZhdWx0dGVtcGxhdGVwcmVmJ10pKQoJewoJCWlmKGVuZHN3aXRoKCRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSwnLnRwbCcpKQoJCXsKCQkJJGZwID0gY21zX2pvaW5fcGF0aCgkdGhpcy0+R2V0TW9kdWxlUGF0aCgpLCd0ZW1wbGF0ZXMnLCRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSk7CgkJCSRjb250ZW50cyA9IEBmaWxlX2dldF9jb250ZW50cygkZnApOwoJCX0KCQllbHNlCgkJewoJCQlpZigkdGhpcy0+YmVmb3JlMjApCgkJCQkkY29udGVudHMgPSAkdGhpcy0+R2V0VGVtcGxhdGUoJHBhcmFtc1snZGVmYXVsdHRlbXBsYXRlcHJlZiddKTsKCQkJZWxzZQoJCQl7CgkJCQl0cnkgewoJCQkJCSR0cGwgPSBDbXNMYXlvdXRUZW1wbGF0ZTo6bG9hZCgkcGFyYW1zWydkZWZhdWx0dGVtcGxhdGVwcmVmJ10pOwoJCQkJCSRjb250ZW50cyA9ICR0cGwtPmdldF9jb250ZW50KCk7CgkJCQl9IGNhdGNoIChFeGNlcHRpb24gJGUpIHsKCQkJCQkkY29udGVudHMgPSAnJzsKCQkJCX0KCQkJfQoJCQlpZighJGNvbnRlbnRzKQoJCQkJICRjb250ZW50cyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSk7CgkJfQoJfQp9CmVsc2UKewoJJHRwbHZhcnNbJ2Zvcm1zdGFydCddID0gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ2VkaXR0ZW1wbGF0ZScsJHJldHVybmlkLCdQT1NUJywnJywnJywnJywkcGFyYW1zKTsKLyoJJHRpdGxlID0gdHJpbSgkcGFyYW1zWyd0aXRsZSddKTsKCWZvcigkaSA9IDA7ICRpIDwgNTsgJGkrKykKCXsKCQkkdG1wID0gY21zX2h0bWxfZW50aXR5X2RlY29kZSgkdGl0bGUpOwoJCWlmKCR0bXAgPT0gJHRpdGxlKQoJCQlicmVhazsKCQkkdGl0bGUgPSAkdG1wOwoJfQoqLwoJJHRwbHZhcnNbJ25hbWUnXSA9ICRwYXJhbXNbJ3RlbXBsYXRlJ107IC8vLic8YnIgLz4nLiR0aXRsZTsKCSR0cGx2YXJzWydoaWRkZW4nXSA9CgkJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwndGVtcGxhdGUnLCRwYXJhbXNbJ3RlbXBsYXRlJ10pLgoJCSR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2FjdGl2ZXRhYicsJHBhcmFtc1snYWN0aXZldGFiJ10pOwoJaWYoJHRoaXMtPmJlZm9yZTIwKQoJCSRjb250ZW50cyA9ICR0aGlzLT5HZXRUZW1wbGF0ZSgkcGFyYW1zWydwcmVmaXgnXS4kcGFyYW1zWyd0ZW1wbGF0ZSddKTsKCWVsc2UKCXsKCQl0cnkgewoJCQkkdHBsID0gQ21zTGF5b3V0VGVtcGxhdGU6OmxvYWQoJHBhcmFtc1sncHJlZml4J10uJHBhcmFtc1sndGVtcGxhdGUnXSk7CgkJCSRjb250ZW50cyA9ICR0cGwtPmdldF9jb250ZW50KCk7CgkJfSBjYXRjaCAoRXhjZXB0aW9uICRlKSB7CgkJCSRjb250ZW50cyA9ICcnOwoJCX0KCX0KCSR0cGx2YXJzWydhcHBseSddID0gJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnYXBwbHknLCR0aGlzLT5MYW5nKCdhcHBseScpKTsKfQoKaWYoIWVtcHR5KCRwYXJhbXNbJ2luZm8nXSkpCnsKCSR0eHQgPSB0cmltKCRwYXJhbXNbJ2luZm8nXSk7Cglmb3IoJGkgPSAwOyAkaSA8IDU7ICRpKyspCgl7CgkJJHRtcCA9IGNtc19odG1sX2VudGl0eV9kZWNvZGUoJHR4dCk7CgkJaWYoJHRtcCA9PSAkdHh0KQoJCQlicmVhazsKCQkkdHh0ID0gJHRtcDsKCX0KCSR0cGx2YXJzWyd0ZW1wbGF0ZV9pbmZvJ10gPSAkdHh0Owp9CgppZihpc3NldCgkcGFyYW1zWydtb2RkZXNjJ10pKQoJJHRwbHZhcnNbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gdHJpbSgkcGFyYW1zWydtb2RkZXNjJ10pOwoKJHRwbHZhcnMgKz0gYXJyYXkoCgkndGl0bGVfbmFtZScgPT4gJHRoaXMtPkxhbmcoJ3RlbXBsYXRlX25hbWUnKSwKCSd0aXRsZV9jb250ZW50JyA9PiAkdGhpcy0+TGFuZygndGVtcGxhdGVfY29udGVudCcpLAoJJ2NvbnRlbnQnID0+ICR0aGlzLT5DcmVhdGVTeW50YXhBcmVhKCRpZCwkY29udGVudHMsJ3RlbXBsYXRlY29udGVudCcsJycsJycsJycsJycsNTAsMTUsJ3N0eWxlPSJmb250LXNpemU6MWVtOyInKSwKCSdzdWJtaXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdCcsJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSwKCSdjYW5jZWwnID0+ICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2NhbmNlbCcsJHRoaXMtPkxhbmcoJ2NhbmNlbCcpKSwKCSdmb3JtZW5kJyA9PiAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpCik7CgplY2hvIHNtc2dfdXRpbHM6OlByb2Nlc3NUZW1wbGF0ZSgkdGhpcywnZWRpdF90ZW1wbGF0ZS50cGwnLCR0cGx2YXJzKTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.edit_mobile.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCEoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQWRtaW5pc3RlclNNU0dhdGV3YXlzJykKICB8fCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnlTTVNHYXRld2F5cycpKSkgZXhpdDsKCiRtaWQgPSAnJzsKJG5hbWUgPSAnJzsKJG1vYmlsZSA9ICcnOwokcHJlZiA9IGNtc19kYl9wcmVmaXgoKTsKCmlmKGlzc2V0KCRwYXJhbXNbJ21pZCddKSkKICAgICRtaWQgPSAoaW50KSRwYXJhbXNbJ21pZCddOwoKCmlmKCRtaWQgIT0gJycpCnsKCSRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuJHByZWYuJ21vZHVsZV9zbXNnX251bXMgV0hFUkUgaWQ9Pyc7CgkkdG1wID0gJGRiLT5HZXRSb3coJHF1ZXJ5LGFycmF5KCRtaWQpKTsKCWlmKCEkdG1wKQoJewoJCSR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3Jfbm90Zm91bmQnKSk7CgkJJHRoaXMtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywnJyxhcnJheSgnYWN0aXZldGFiJz0+J21vYmlsZXMnKSk7Cgl9CgkkbmFtZSA9ICR0bXBbJ25hbWUnXTsKCSRtb2JpbGUgPSAkdG1wWydtb2JpbGUnXTsKfQoKaWYoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKQp7CgkkdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLGFycmF5KCdhY3RpdmV0YWInPT4nbW9iaWxlcycpKTsKfQplbHNlIGlmKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkKewoJJG5hbWUgPSB0cmltKCRwYXJhbXNbJ25hbWUnXSk7CgkkbW9iaWxlID0gdHJpbSgkcGFyYW1zWydtb2JpbGUnXSk7CgkkZXJyb3IgPSAnJzsKCgkvLyBiYXNpYyBkYXRhIGNoZWNrcwoJaWYoISRuYW1lIHx8ICFpc19udW1lcmljKCRtb2JpbGUpKQoJewoJCSRlcnJvciA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkX2luZm8nKTsKCX0KCglpZihlbXB0eSgkZXJyb3IpKQoJewoJCS8vIGNoZWNrIGZvciBkdXBsaWNhdGUgbmFtZQoJCSRxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLiRwcmVmLidtb2R1bGVfc21zZ19udW1zIFdIRVJFIG5hbWU9Pyc7CgkJJHBhcm1zID0gYXJyYXkoKTsKCQlpZigkbWlkICE9ICcnKQoJCXsKCQkJJHF1ZXJ5IC49ICcgQU5EIGlkIT0/JzsKCQkJJHBhcm1zW10gPSAkbWlkOwoJCX0KCQkkdG1wID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LCRwYXJtcyk7CgkJaWYoJHRtcCkKCQl7CgkJCSRlcnJvciA9ICR0aGlzLT5MYW5nKCdlcnJvcl9uYW1lX2V4aXN0cycpOwoJCX0KCX0KCglpZihlbXB0eSgkZXJyb3IpKQoJewoJCS8vIGdvb2QgdG8gZ28uLi4gZG8gYWRkIG9yIGluc2VydAoJCSRyZXMgPSAnJzsKCQlpZigkbWlkID09ICcnKQoJCXsKCQkJLy8gaW5zZXJ0CgkJCSRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLiRwcmVmLidtb2R1bGVfc21zZ19udW1zIChuYW1lLG1vYmlsZSkgVkFMVUVTKD8sPyknOwoJCQkkcmVzID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkbmFtZSwkbW9iaWxlKSk7CgkJfQoJCWVsc2UKCQl7CgkJCS8vIHVwZGF0ZQoJCQkkcXVlcnkgPSAnVVBEQVRFICcuJHByZWYuJ21vZHVsZV9zbXNnX251bXMgU0VUIG5hbWU9Pyxtb2JpbGU9PyBXSEVSRSBpZD0/JzsKCQkJJHJlcyA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJG5hbWUsJG1vYmlsZSwkbWlkKSk7CgkJfQoKCQlpZighJHJlcykKCQl7CgkJCSRlcnJvciA9ICR0aGlzLT5MYW5nKCdlcnJvcl9kYl9vcF9mYWlsZWQnKTsKCQl9Cgl9CgoJaWYoIWVtcHR5KCRlcnJvcikpCgl7CgkJJHRoaXMtPlNldEVycm9yKCRlcnJvcik7Cgl9CgkkdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLGFycmF5KCdhY3RpdmV0YWInPT4nbW9iaWxlcycpKTsKfQoKLy8gYnVpbGQgdGhlIGZvcm0KJHRwbHZhcnMgPSBhcnJheSgKCSdmb3Jtc3RhcnQnID0+ICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdlZGl0X21vYmlsZScsJHJldHVybmlkLCdQT1NUJywnJywnJywnJywkcGFyYW1zKSwKCSdmb3JtZW5kJyA9PiAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpLAoJJ25hbWUnID0+ICRuYW1lLAoJJ21vYmlsZScgPT4gJG1vYmlsZQopOwoKZWNobyBzbXNnX3V0aWxzOjpQcm9jZXNzVGVtcGxhdGUoJHRoaXMsJ2VkaXRfbW9iaWxlLnRwbCcsJHRwbHZhcnMpOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.enternumber.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMgYWN0aW9uOiBlbnRlcm51bWJlciAtIGNyZWF0ZSBhIGxpbmsgdGhhdCB3aGVuIGNsaWNrZWQgd2lsbCBkaXNwbGF5IGEgZm9ybQojICBmb3IgdGhlIHVzZXIgdG8gZW50ZXIgYSBwaG9uZSBudW1iZXIKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmKGlzc2V0KCRwYXJhbXNbJ3Ntc3RleHQnXSkpCnsKCSRzbXN0ZXh0ID0gdHJpbSgkcGFyYW1zWydzbXN0ZXh0J10pOwoJaWYoJHNtc3RleHQgPT0gJycpCgkJcmV0dXJuOwoJdW5zZXQoJHBhcmFtc1snc21zdGV4dCddKTsKfQplbHNlCglyZXR1cm47CgppZihpc3NldCgkcGFyYW1zWydsaW5rdGV4dCddKSkKewoJJGxpbmt0ZXh0ID0gdHJpbSgkcGFyYW1zWydsaW5rdGV4dCddKTsKCXVuc2V0KCRwYXJhbXNbJ2xpbmt0ZXh0J10pOwp9CmVsc2UKCSRsaW5rdGV4dCA9ICR0aGlzLT5MYW5nKCdzZW5kX3RvX21vYmlsZScpOwoKaWYoaXNzZXQoJHBhcmFtc1sndXJsb25seSddKSkKewoJJHVybG9ubHkgPSAoaW50KSRwYXJhbXNbJ3VybG9ubHknXTsKCXVuc2V0KCRwYXJhbXNbJ3VybG9ubHknXSk7Cn0KZWxzZQoJJHVybG9ubHkgPSAwOwoKaWYoaXNzZXQoJHBhcmFtc1snaW5saW5lJ10pKQoJJGlubGluZSA9IChpbnQpJHBhcmFtc1snaW5saW5lJ107CmVsc2UKCSRpbmxpbmUgPSAwOwoKaWYoaXNzZXQoJHBhcmFtc1snZGVzdHBhZ2UnXSkpCnsKCSRwYWdlID0gJHRoaXMtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHBhcmFtc1snZGVzdHBhZ2UnXSk7CglpZigkcGFnZSkKCXsKCQkkcmV0dXJuaWQgPSAkcGFnZTsKCQkkaW5saW5lID0gMDsKCX0KCXVuc2V0KCRwYXJhbXNbJ2Rlc3RwYWdlJ10pOwp9CgovLyBjYWNoZSB0aGUgbWVzc2FnZQoka2V5ID0gdW5pcWlkKCRzbXN0ZXh0KTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJGtleSwkc21zdGV4dCk7CgokcGFyYW1zWydzbXNrZXknXSA9ICRrZXk7CmVjaG8gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkb19lbnRlcm51bWJlcicsJHJldHVybmlkLCRsaW5rdGV4dCwkcGFyYW1zLCcnLAoJJHVybG9ubHksJGlubGluZSk7Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.entertext.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMgYWN0aW9uOiBlbnRlcnRleHQgLSBjcmVhdGUgYSBsaW5rIHRoYXQgd2hlbiBjbGlja2VkIHdpbGwgZGlzcGxheSBhIGZvcm0KIyAgZm9yIHRoZSB1c2VyIHRvIGVudGVyIGEgbWVzc2FnZQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYoaXNzZXQoJHBhcmFtc1snc21zbnVtJ10pKQp7Cgkkc21zbnVtID0gKGludCkkcGFyYW1zWydzbXNudW0nXTsKCWlmKCRzbXNudW0gPT0gJycpCgkJcmV0dXJuOyAvL2Rvbid0IGtub3cgd2hvIHRvIHNlbmQgdG8KfQplbHNlCglyZXR1cm47CgppZihpc3NldCgkcGFyYW1zWyd1cmxvbmx5J10pKQp7CgkkdXJsb25seSA9IChpbnQpJHBhcmFtc1sndXJsb25seSddOwoJdW5zZXQoJHBhcmFtc1sndXJsb25seSddKTsKfQplbHNlCgkkdXJsb25seSA9IDA7CgppZihpc3NldCgkcGFyYW1zWydpbmxpbmUnXSkpCgkkaW5saW5lID0gKGludCkkcGFyYW1zWydpbmxpbmUnXTsKZWxzZQoJJGlubGluZSA9IDA7CgppZihpc3NldCgkcGFyYW1zWydkZXN0cGFnZSddKSkKewoJJHBhZ2UgPSAkdGhpcy0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkcGFyYW1zWydkZXN0cGFnZSddKTsKCWlmKCRwYWdlKQoJewoJCSRpbmxpbmUgPSAwOwoJCSRyZXR1cm5pZCA9ICRwYWdlOwoJfQoJdW5zZXQoJHBhcmFtc1snZGVzdHBhZ2UnXSk7Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ2xpbmt0ZXh0J10pKQp7CgkkbGlua3RleHQgPSB0cmltKCRwYXJhbXNbJ2xpbmt0ZXh0J10pOwoJdW5zZXQoJHBhcmFtc1snbGlua3RleHQnXSk7Cn0KZWxzZQoJJGxpbmt0ZXh0ID0gJHRoaXMtPkxhbmcoJ3NlbmRfbWVfbWVzc2FnZScpOwoKZWNobyAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RvX2VudGVydGV4dCcsJHJldHVybmlkLCRsaW5rdGV4dCwkcGFyYW1zLCcnLAoJJHVybG9ubHksJGlubGluZSk7Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.savegates.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCEoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQWRtaW5pc3RlclNNU0dhdGV3YXlzJykKICB8fCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnlTTVNHYXRld2F5cycpKSkgZXhpdDsKCmlmKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSkKCSR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJycsYXJyYXkoJ2FjdGl2ZXRhYic9PidnYXRlcycpKTsKCiRnYXRld2F5ID0gJHBhcmFtc1snc21zX2dhdGV3YXknXTsgLy9lLmcuICdzbXNicm9hZGNhc3QnIG9yIC0xCmlmKCEoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pIHx8IGlzc2V0KCRwYXJhbXNbJGdhdGV3YXkuJ35kZWxldGUnXSkpKQoJJHRoaXMtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywnJyxhcnJheSgnYWN0aXZldGFiJz0+J2dhdGVzJykpOwoKJG9ianMgPSBzbXNnX3V0aWxzOjpnZXRfZ2F0ZXdheXNfZnVsbCgkdGhpcyk7CmlmKCRvYmpzKQp7CglpZihpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpCgl7CgkJJHByZWYgPSBjbXNfZGJfcHJlZml4KCk7CgkJJHNxbCA9ICdVUERBVEUgJy4kcHJlZi4nbW9kdWxlX3Ntc2dfZ2F0ZXMgU0VUIGFjdGl2ZT0wIFdIRVJFIGFjdGl2ZT0xJzsKCQkkZGItPkV4ZWN1dGUoJHNxbCk7CgkJaWYoJGdhdGV3YXkgIT0gJy0xJykKCQl7CgkJCSRzcWwgPSAnVVBEQVRFICcuJHByZWYuJ21vZHVsZV9zbXNnX2dhdGVzIFNFVCBlbmFibGVkPTEsYWN0aXZlPTEgV0hFUkUgYWxpYXM9Pyc7CgkJCSRkYi0+RXhlY3V0ZSgkc3FsLGFycmF5KCRnYXRld2F5KSk7CgkJfQoJfQoJLy9wcm9wZXJ0eS1kZWxldGlvbnMgaGFuZGxlZCBkb3duc3RyZWFtCglmb3JlYWNoKCRvYmpzIGFzICRjbGFzc25hbWU9PiRyZWMpCgkJJHJlY1snb2JqJ10tPmhhbmRsZV9zZXR1cF9mb3JtKCRwYXJhbXMpOwp9CgokdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLGFycmF5KCdhY3RpdmV0YWInPT4nZ2F0ZXMnKSk7Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.savesecurity.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdBZG1pbmlzdGVyU01TR2F0ZXdheXMnKSkgZXhpdDsKCmlmKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSkKCSR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJycsYXJyYXkoJ2FjdGl2ZXRhYic9PidzZWN1cml0eScpKTsKCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdob3VybGltaXQnLChpbnQpJHBhcmFtc1snaG91cmxpbWl0J10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGF5bGltaXQnLChpbnQpJHBhcmFtc1snZGF5bGltaXQnXSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdsb2dzZW5kcycsIWVtcHR5KCRwYXJhbXNbJ2xvZ3NlbmRzJ10pKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2xvZ2RheXMnLChpbnQpJHBhcmFtc1snbG9nZGF5cyddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2xvZ2RlbGl2ZXJpZXMnLCFlbXB0eSgkcGFyYW1zWydsb2dkZWxpdmVyaWVzJ10pKTsKaWYoaXNzZXQoJHBhcmFtc1snbWFzdGVycGFzcyddKSkKewoJJG9sZHB3ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ21hc3RlcnBhc3MnKTsKCWlmKCRvbGRwdykKCQkkb2xkcHcgPSBzbXNnX3V0aWxzOjp1bmZ1c2MoJG9sZHB3KTsKCSRuZXdwdyA9IHRyaW0oJHBhcmFtc1snbWFzdGVycGFzcyddKTsKCWlmKCRvbGRwdyAhPSAkbmV3cHcpCgl7CgkJLy91cGRhdGUgY3VycmVudCBwYXNzd29yZHMKCQkkcHJlZiA9IGNtc19kYl9wcmVmaXgoKTsKCQkkc3FsID0gJ1NFTEVDVCBnYXRlX2lkLHRpdGxlLHZhbHVlLGVuY3ZhbHVlIEZST00gJy4kcHJlZi4nbW9kdWxlX3Ntc2dfcHJvcHMgV0hFUkUgZW5jcnlwdD4wJzsKCQkkcm93cyA9ICRkYi0+R2V0QWxsKCRzcWwpOwoJCWlmKCRyb3dzKQoJCXsKCQkJJGUgPSAoJHRoaXMtPmhhdmVtY3J5cHQpID8KCQkJIG5ldyBFbmNyeXB0aW9uKE1DUllQVF9CTE9XRklTSCxNQ1JZUFRfTU9ERV9DQkMsU01TRzo6RU5DX1JPVU5EUykgOiBGQUxTRTsKCQkJaWYoJGUgJiYgJG5ld3B3KQoJCQl7CgkJCQkkdG9maWVsZCA9ICdlbmN2YWx1ZSc7CgkJCQkkbm90ZmllbGQgPSAndmFsdWUnOwoJCQkJJGVuY3ZhbCA9IDE7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkkdG9maWVsZCA9ICd2YWx1ZSc7CgkJCQkkbm90ZmllbGQgPSAnZW5jdmFsdWUnOwoJCQkJJGVuY3ZhbCA9IDA7CgkJCX0KCQkJJHNxbCA9ICdVUERBVEUgJy4kcHJlZi4nbW9kdWxlX3Ntc2dfcHJvcHMgU0VUICcuJHRvZmllbGQuJz0/LCcuJG5vdGZpZWxkLic9TlVMTCxlbmNyeXB0PT8gV0hFUkUgZ2F0ZV9pZD0/IEFORCB0aXRsZT0/JzsKCQkJZm9yZWFjaCgkcm93cyBhcyAmJG9uZXJvdykKCQkJewoJCQkJaWYoJG9sZHB3KQoJCQkJCSRyYXcgPSAoJGUgJiYgJG9uZXJvd1snZW5jdmFsdWUnXSkgPyAkZS0+ZGVjcnlwdCgkb25lcm93WydlbmN2YWx1ZSddLCRvbGRwdykgOiAkb25lcm93WydlbmN2YWx1ZSddOwoJCQkJZWxzZQoJCQkJCSRyYXcgPSAkb25lcm93Wyd2YWx1ZSddOwoJCQkJaWYoJG5ld3B3KQoJCQkJCSRyZXZpc2VkID0gKCRyYXcgJiYgJGUpID8gJGUtPmVuY3J5cHQoJHJhdywkbmV3cHcpIDogJHJhdzsKCQkJCWVsc2UKCQkJCQkkcmV2aXNlZCA9ICRyYXc7CgkJCQlpZighJHJldmlzZWQpCgkJCQkJJHJldmlzZWQgPSBOVUxMOwoJCQkJJGRiLT5FeGVjdXRlKCRzcWwsYXJyYXkoJHJldmlzZWQsJGVuY3ZhbCwkb25lcm93WydnYXRlX2lkJ10sJG9uZXJvd1sndGl0bGUnXSkpOwoJCQl9CgkJCXVuc2V0KCRvbmVyb3cpOwoJCX0KCQlpZigkbmV3cHcpCgkJCSRuZXdwdyA9IHNtc2dfdXRpbHM6OmZ1c2MoJG5ld3B3KTsKCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ21hc3RlcnBhc3MnLCRuZXdwdyk7Cgl9Cn0KCiR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJycsYXJyYXkoJ2FjdGl2ZXRhYic9PidzZWN1cml0eScpKTsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.settemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCEoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQWRtaW5pc3RlclNNU0dhdGV3YXlzJykKICB8fCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnlTTVNHYXRlVGVtcGxhdGVzJykpKSBleGl0OwoKaWYoZW1wdHkoJHBhcmFtc1snbW9kZSddKSkgLy93ZSdyZSBiYWNrIGZyb20gZWRpdHRlbXBsYXRlIGFjdGlvbgoJJHRoaXMtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywnJyxhcnJheSgnYWN0aXZldGFiJz0+JHBhcmFtc1snYWN0aXZldGFiJ10pKTsKCiRuYW1lID0gJHBhcmFtc1sndGVtcGxhdGUnXTsKJHByZWYgPSAkcGFyYW1zWydwcmVmaXgnXTsKc3dpdGNoKCRwYXJhbXNbJ21vZGUnXSkKewogY2FzZSAnYWRkJzoKCWlmKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSB8fCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpIC8vMm5kLXBhc3MsIGFmdGVyIGFkZGl0aW9uCgl7CgkJaWYoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pKQoJCXsKCQkJaWYoJHRoaXMtPmJlZm9yZTIwKQoJCQl7CgkJCQkkdGhpcy0+U2V0VGVtcGxhdGUoJHByZWYuJG5hbWUsJHBhcmFtc1sndGVtcGxhdGVjb250ZW50J10pOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJJHVpZCA9IGdldF91c2VyaWQoRkFMU0UpOwoJCQkJJHR5cGUgPSBydHJpbSgkcHJlZiwnXycpOwoJCQkJdHJ5IHsKCQkJCQkkdHBsID0gbmV3IENtc0xheW91dFRlbXBsYXRlKCk7CgkJCQkJJHRwbC0+c2V0X3R5cGUoJHR5cGUpOwoJCQkJCSR0cGwtPnNldF9uYW1lKCRwcmVmLiRuYW1lKTsKCQkJCQkkdHBsLT5zZXRfb3duZXIoJHVpZCk7CgkJCQkJJHRwbC0+c2V0X2NvbnRlbnQoJHBhcmFtc1sndGVtcGxhdGVjb250ZW50J10pOwoJCQkJCSR0cGwtPnNhdmUoKTsKCQkJCX0gY2F0Y2ggKEV4Y2VwdGlvbiAkZSkgewoJCQkJCSR0aGlzLT5TZXRFcnJvcigkZS0+Z2V0TWVzc2FnZSgpKTsKCQkJCX0KCQkJfQoJCX0KCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLGFycmF5KCdhY3RpdmV0YWInPT4kcGFyYW1zWydhY3RpdmV0YWInXSkpOwoJfQoJLy8xc3QtcGFzczogc2V0dXAgZm9yIGhhbmRvdmVyIHRvIGVkaXR0ZW1wbGF0ZSBhY3Rpb24KCSRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSA9ICRwcmVmLidkZWZhdWx0Y29udGVudCc7CiBjYXNlICdlZGl0JzoKCSRwYXJhbXNbJ21vZGRlc2MnXSA9ICR0aGlzLT5HZXRGcmllbmRseU5hbWUoKTsKCSRwYXJhbXNbJ21vZG5hbWUnXSA9ICR0aGlzLT5HZXROYW1lKCk7CgkkcGFyYW1zWydkZXN0YWN0aW9uJ10gPSAnc2V0dGVtcGxhdGUnOyAvL2NvbWUgYmFjayBoZXJlIHdoZW4gZG9uZQoJc3dpdGNoKCRwcmVmKQoJewoJIGNhc2UgJ2VudGVydGV4dF8nOgoJCS8vdGl0bGUgZGlzcGxheWVkIGluIGFkZC9lZGl0IHRlbXBsYXRlIGZvcm0KCQkkcGFyYW1zWyd0aXRsZSddID0gJHRoaXMtPkxhbmcoJ3RpdGxlX2VudGVydGV4dF90ZW1wbGF0ZXMnKTsKCQkvL2luZm9ybWF0aW9uIHRleHQgZGlzcGxheWVkIGluIGFkZC9lZGl0IHRlbXBsYXRlIGZvcm0KCQkkcGFyYW1zWydpbmZvJ10gPSAkdGhpcy0+TGFuZygnaW5mb19lbnRlcnRleHRfdGVtcGxhdGVzJyk7CgkJYnJlYWs7CgkgY2FzZSAnZW50ZXJudW1iZXJfJzoKCQkkcGFyYW1zWyd0aXRsZSddID0gJHRoaXMtPkxhbmcoJ3RpdGxlX2VudGVybnVtYmVyX3RlbXBsYXRlcycpOwoJCSRwYXJhbXNbJ2luZm8nXSA9ICR0aGlzLT5MYW5nKCdpbmZvX2VudGVybnVtYmVyX3RlbXBsYXRlcycpOwoJIAlicmVhazsKCSBkZWZhdWx0OgoJCSRwYXJhbXNbJ3RpdGxlJ10gPSAnJzsKCQkkcGFyYW1zWydpbmZvJ10gPSAnJzsKCSAJYnJlYWs7Cgl9CgkkdGhpcy0+UmVkaXJlY3QoJGlkLCdlZGl0dGVtcGxhdGUnLCcnLCRwYXJhbXMpOwogY2FzZSAnZGVsZXRlJzoKCWlmKCR0aGlzLT5iZWZvcmUyMCkKCQkkdGhpcy0+RGVsZXRlVGVtcGxhdGUoJHByZWYuJG5hbWUsU01TRzo6TU9ETkFNRSk7CgllbHNlCgl7CgkJdHJ5IHsKCQkJJHRwbCA9IENtc0xheW91dFRlbXBsYXRlOjpsb2FkKCRwcmVmLiRuYW1lKTsKCQkJJHRwbC0+ZGVsZXRlKCk7CgkJfSBjYXRjaCAoRXhjZXB0aW9uICRlKSB7CgkJCSR0aGlzLT5TZXRFcnJvcigkZS0+Z2V0TWVzc2FnZSgpKTsKCQl9Cgl9CglicmVhazsKIGNhc2UgJ2RlZmF1bHQnOgoJaWYoJHRoaXMtPmJlZm9yZTIwKQoJCSR0aGlzLT5TZXRUZW1wbGF0ZSgkcHJlZi4nZGVmYXVsdGNvbnRlbnQnLCR0aGlzLT5HZXRUZW1wbGF0ZSgkcHJlZi4kbmFtZSksU01TRzo6TU9ETkFNRSk7CgllbHNlCgl7CgkJdHJ5IHsKCQkJJHRwbCA9IENtc0xheW91dFRlbXBsYXRlOjpsb2FkKCRwcmVmLiRuYW1lKTsKCQkJJHRleHQgPSAkdHBsLT5nZXRfY29udGVudCgpOwoJCQlpZigkdGV4dCkKCQkJewoJCQkJJHRwbCA9IENtc0xheW91dFRlbXBsYXRlOjpsb2FkKCRwcmVmLidkZWZhdWx0Y29udGVudCcpOwoJCQkJJHRwbC0+c2V0X2NvbnRlbnQoJHRleHQpOwoJCQkJJHRwbC0+c2F2ZSgpOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9ub3Rmb3VuZCcpKTsKCQkJCWJyZWFrOwoJCQl9CgkJfSBjYXRjaCAoRXhjZXB0aW9uICRlKSB7CgkJCSR0aGlzLT5TZXRFcnJvcigkZS0+Z2V0TWVzc2FnZSgpKTsKCQkJYnJlYWs7CgkJfQoJfQoJJHRoaXMtPlNldFByZWZlcmVuY2UoJHByZWYuJ2RmbHR0cGwnLCRuYW1lKTsKCWJyZWFrOwogY2FzZSAncmV2ZXJ0JzoKCSRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJHByZWYuJ3RlbXBsYXRlLnRwbCcpOwoJaWYoaXNfZmlsZSgkZm4pKQoJCSR0ZXh0ID0gJycuQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CglpZigkdGV4dCkKCXsKCQlpZigkdGhpcy0+YmVmb3JlMjApCgkJewoJCQkkdGhpcy0+U2V0VGVtcGxhdGUoJHByZWYuJ2RlZmF1bHRjb250ZW50JywkdGV4dCxTTVNHOjpNT0ROQU1FKTsKCQl9CgkJZWxzZQoJCXsKCQkJdHJ5IHsKCQkJCSR0cGwgPSBDbXNMYXlvdXRUZW1wbGF0ZTo6bG9hZCgkcHJlZi4nZGVmYXVsdGNvbnRlbnQnKTsKCQkJCSR0cGwtPnNldF9jb250ZW50KCR0ZXh0KTsKCQkJCSR0cGwtPnNhdmUoKTsKCQkJfSBjYXRjaCAoRXhjZXB0aW9uICRlKSB7CgkJCQkkdGhpcy0+U2V0RXJyb3IoJGUtPmdldE1lc3NhZ2UoKSk7CgkJCQlicmVhazsKCQkJfQoJCX0KCQkkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygndGVtcGxhdGVfc2F2ZWQnKSk7Cgl9CgllbHNlCgkJJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9ub3Rmb3VuZCcpKTsKCWJyZWFrOwp9CgokdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLGFycmF5KCdhY3RpdmV0YWInPT4kcGFyYW1zWydhY3RpdmV0YWInXSkpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.smstest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCEoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQWRtaW5pc3RlclNNU0dhdGV3YXlzJykKICB8fCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnlTTVNHYXRld2F5cycpKSkgZXhpdDsKCmlmKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkKewoJJG51bWJlciA9ICcnOwoJaWYoaXNzZXQoJHBhcmFtc1snbW9iaWxlJ10pKQoJCSRudW1iZXIgPSB0cmltKCRwYXJhbXNbJ21vYmlsZSddKTsKCglpZihzbXNnX3V0aWxzOjppc192YWxpZF9waG9uZSgkbnVtYmVyKSkKCXsKCQkvLyByZWFkeSB0byB0ZXN0IChkZWZhdWx0IGdhdGV3YXkpCgkJJGdhdGV3YXkgPSBzbXNnX3V0aWxzOjpnZXRfZ2F0ZXdheShGQUxTRSwkdGhpcyk7CgkJaWYoJGdhdGV3YXkpCgkJewoJCQkkZ2F0ZXdheS0+c2V0X251bSgkbnVtYmVyKTsKCQkJJGdhdGV3YXktPnNldF9tc2coJHRoaXMtPkxhbmcoJ3Rlc3RfbWVzc2FnZScsU01TRzo6TU9ETkFNRS4nIEAgJy5zdHJmdGltZSgnJVggJVonKSkpOwoJCQkkZ2F0ZXdheS0+c2VuZCgpOwoJCQkkc3RhdHVzID0gJGdhdGV3YXktPmdldF9zdGF0dXMoKTsKCQkJJG1zZyA9ICRnYXRld2F5LT5nZXRfc3RhdHVzbXNnKCk7CgkJCWlmKCRzdGF0dXMgPT0gc21zX2dhdGV3YXlfYmFzZTo6U1RBVF9PSykKCQkJCSR0aGlzLT5TZXRNZXNzYWdlKCRtc2cpOwoJCQllbHNlCgkJCQkkdGhpcy0+U2V0RXJyb3IoJG1zZyk7CgkJfQoJCWVsc2UKCQkJJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9ub2dhdGV3YXknKSk7Cgl9CgllbHNlCgkJJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkbnVtYmVyJykpOwp9CgokdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLGFycmF5KCdhY3RpdmV0YWInPT4ndGVzdCcpKTsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/css/admin.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[dGFibGUucGFnZXRhYmxlIHsgcGFkZGluZzozcHg7IGJvcmRlci1zcGFjaW5nOjA7IG1hcmdpbi1sZWZ0OjA7IHdpZHRoOmF1dG8gfQpwLnBhZ2V0ZXh0IHsgbWFyZ2luLXRvcDowLjVlbTsgbWFyZ2luLWJvdHRvbTowLjVlbTsgbWFyZ2luLWxlZnQ6MCAhaW1wb3J0YW50fQpmaWVsZHNldCB7IHBhZGRpbmc6MCA1cHggNXB4IDVweDsgbWFyZ2luOjA7ZGlzcGxheTppbmxpbmUtYmxvY2sgfQoKdGV4dGFyZWEuY2xvYWtlZCB7CiBmb250LWZhbWlseTphdXRvOwogZm9udC1mYW1pbHk6aW5oZXJpdDsKIGZvbnQtc2l6ZToxLjJlbTsKIGxpbmUtaGVpZ2h0OjEuMTsKIHdpZHRoOjQwZW07CiBoZWlnaHQ6Mi40ZW07Cn0KCg==]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhMAAwAOf/AEQAAE8BA0gEBU0IA3QAAXoEAI0BBZYAA6oAAH8MDKwAAa0AAaMCDK0ACZsHB7UAAK8CA7UABrcAB7ADAKYGALgACKYGBbkACboCCrIKBagMD7wHC7QOD70LFLUPB74MDbQPFq0VE78QFqUYFbcUEbcUGKgbF7oXE8MVGLoZGsMXH7wbFawgGr0cFrwdIq4jIr4fHcAhH7cjJ8EiJcIjILomI7MpJrIpK8MlJ70pJL4qK8YoKbYtLsEuLcksK7owMMgsMMsuMsUxML81NMc0Mro5OMI4Nsk2Oco3NMU7OcU8Pr8+PL4+Qc47N807PM89Psk/QcpAPNE+P8RCQL5FRMtCQ81ERNVCQsdGSMFIRtVDSNBGRtNISM1LR9RJScdNSsZNT9ZLS9hNTNFPT8dUU9RRUsZVWdpQVNdUVNJWU8tYVs1aXtpXV91ZWddcXd9bW8xhYeBdYdxgYdZiZdJlZd9jZNplYs9pZttnauNmZt9pZthratJtbuZpaeFraOFsbtVwcuRuatdyc+Rvcd5xb+FzcuBzd+hzdNd4dt13eOV2ded4d+Z4fOJ7fN19e+t7ed+Ag9qCg+d/gO1+fOOCgNeGhO+BhN6Gh+uDhOaFg+iHheKJiu6Gh9uLj+iJjOSLjPGIieaMh+2LidqRkuyMj+eOj/OLi/COjOqRkd+VlvOQjtuYlu2TlOiVk/KSle+VlvaUkfaVmOWam+yZl/KYmOGdnPSZmvmYm/Ccmumen/abm/KfnOyhovqfn+mko/Whn/Wipu+kpfyhofikoeyopv6jo/OnqPumpPWpqvCrqequsPisrfOurP+sr+6ys/Sxtfexr+q1tP2wsfC0tfu1s/S3ue65uOm7uPO9vO2/vPi8ve/DxvjBwevFxvPEwe7IyfbHxPTIyvLMzfTOz+/Qz/rN0PXP0PnT1PTV1PfY1/rb2vbf3PXg4//g3/fj5frj3/zn6vfq6/7p7Prs7fzv8P/x8vr18/z29f339v749//5+P/6+f/8+v/9+/3//P///yH5BAEKAP8ALAAAAAAwADAAAAj+AP8JHEiwoMGDCBMmtIOnocOHECNKjChHIRo3rXJp5MUrmDFjyUIyGwmtZMlqJac9g+aspUuXstyUOThmEy9Nih49sgRK1ClYtHT1ElbsWLOjzaQpVbqsaVNkyD4aC+YM26YxBctcKiUnz6BDhx5ZwgQK1ClYsW7p6iWs2LG3cIfJHfarLrBduPLOmuVs0xiCbmS1qaMn0KBDOjFxAnUKVqxbunr1ElZM7lu5wIDV/bVrV968e1tZczOQy6ZCbOrk6TPo0KJHkyyBMqUKVqxbuiTP3T1s82dce/e2QkXsExeBXTahYROnTp4+gw4tmoSp7ClYsWjp0iW5169ev4b+be6clxatV7NYtVr/adMWgV0uoWHzRk6ePIHAPpqEqewpWADGAst2BOpS1y7bmUfLK6yg4iAqrRhySRcCWXFJGWy08UYdefgxyCGPTGIJJ6BwYoouyCxDDTfcVAPNMsPQEouC5r3CyoMOfuKGI1YIZAUkY6DBxhtx1JHHIIcs8sgkk5wCTTnt4OPPlFTi88452uDiyiussOKgg6V8gooiYUBihUBVODKGGGyw8UYdefQxCFiYYOOOPv7oo+eee06pDzzg4EIKKV964sknnrTBhSNVCFSFI16IgQYbb8hRRx59DIKLO3x26qk+/ugjDzODkuJJKJ58QogXXDhShUD+SiCyhRdlnMHGG3XU4Qc2+eiTz6fA8gmOKJp4okkmjZzhxRaIKCGQEohYsUUYZ7DRxht5YKNnPtzmE2yw4miSSSaUtOHFFlYgooRASQhSxRVeiIFGm9P4ow+3enL77af+eCMJJXKE4YUVVQiShEBG8AGFFFuEcYYYm+SjDz565oOPnvnsi4+nvsghRhhcSFEFIEYINAQfUThhBRdhsJGOPvjoM48vhBSSCz763BPOPHqa846e6bQiCSXh6JmPPuqgEYYXWzwRBR9DCDQEHUc4IcUWWlCSDz746OPLGX8okgk9+qhTBzb+zCMJMfrMk8kgmkhSjT7cck3JFVtY4UT+FHcMIdAPdBzhxBNSPGGNPvfoUw8lbYhTDzz56INNHrnoc44fqOgzjiKo0DNPPfrkg889+lgjhRVSOHEEHT8I9AMcQhDhxBNboKPPPfncg4oYvtzjTz7++KJHJvBUM8gi9ajDSCPp+KMPPvdErw86W0jhhBNHwPGDQDys0QMRTiBRhjr6RK8POn9oQYg5emZynzOZDFKIOvo484cdvsyjT/T36LNOGtcjghDWwAOB8GANPQACEpAwBnXog3/6eAcq2oSOejSiDn5QhB42mA195EMckriCI+qRj+jpQx1jWCAReqAGHgjEBmToARCIQIQooEMf/NPHlJIhhk2g4w/+ichEG/6Aij/kgkrxqAMXvqGP6OkDHVFAAhGA0AM12EAgNgCDDnYAhCDsIBv6iF4+3LGNdORCDJRQBhuIoQw2NOIchGhEPsYhDnPYgQvb8Ef09JGNHdBwBz0ggw0E8gIw1AAHPhCCDyKRj+jpIxU7sIIU3GCOXHhBHO/Agyz0QQg7oAMNSNhCExxBj3xELx+R8EEQgICDHIDhBQJ5QRZqgAMc7MAHSWBHPu6hD3J8ghCbMIc/0KEMeuTDG+7QhzeiUY9oNCIRvoiHPuxxD324QwlAAEItXZCFFwjkBVRwAQxqWctI+CN6+sBHPfChD3zkQx9c09M99JQPfdzDHnr+4p8/IoEDIJDTBVR4gUBYwIQUwCAG5OzBNfzBv4Y69KEP9cc1ekBOHMAgBUxggUBMUIQSpAAGMKhlDIzQDX9A9KQQ9Uc3jEDOGMAgBSkoggkEMoIilGAFIIUBDXAAgyFcQ0/2QClE7aGnawwhBrWMAUhXUIIijEAgI/gBB0iwghWIAAYxoAEMdNCJeeTDHkJ1qD7m0YkexIAGMYgBDFqwghOA4AcjEMgIeMABEpDgBB0QAQxiQAMVpAAM7LiHPQZL2MLiY0/0iMYXUqACGsQABiqoql05wIMRCCQEN+DABTBAghOI4LMqiIEKYJAOfAz2HvqgEpXw4Q5xrGIKKWj+AQ1ioAIYfLYDHSCBBzhwgxAIJAEyyIAHMEDcDpzgs5+dA//01I1KdKIWtehEJfiABReQAAY0iIEKPruCDpyABMSVAAdkkACBCMAFEMiABy5wAQxsoAMn2AAOxOEPfdTjGnCowQUwcIITEHcDIlCBClCggs/i9gQd2AB7L5CBBrhAAAIZQAoUkIEMSEACF8DABjDQAWXogxyjWAIHSCACFJj4xChALnJxu4ENYIC9F84ABFIwAIEEIAUKmMADLpwBD1ygA3tYhRlAAAEMdEDFSP4sbjvQYuJiQAIeyMCFJaCAFARAIAMogQIewOUpZwADNVDABC7Q4hZ/4MxoRnPVmZ18gQtnYMpcVkAJBiCQAHBAAVzOswQyIIEHSGDBZQ60oFuMgQVP+cJ5foACOBAAgQQABA2YQKLzfOgLL/jSmL5ApSUw6QdMoAEgCMBAGKABBUyg05Pe9KYfcOEHSADVD5iAAjTAAIIUQAMWUIACJsDrXvsaAryGAAR8PQFhT0DYxPa1ri2ggQIU5AAMsAAFEEDtalv72rrW9bW3bW0KWIABBzDIPwzgAAuY+9zoTre6181uBxhA3AIBAAHmTe962/ve+M43AODN7377+98AD7jA+R0QADs=]]></data>
	</file>
	<file>
	  <filename>/images/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/images/revert.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAAQAMZuACpqJSprJixtKC5wKi9xKzJ1LTN1LjZ6MTp+NDt/NTyBNj2CNz6DN0CFOUCGOkGHOkOKPEWNPkePQEmRQkqSQk6RSU+RSkuUQ06XRlCZR1GcSVOeS1qdVFahTVaiTV2gWVejTl6hWFmmUGKkWluoUmSlXV2qU2WoX2eoYV+sVWCuVmmrY2urZGqsYmutZGKxWGSzWW6wZmW1W2+xZ3CxaGe2XGi4XXWzbnS0bGq6X2u8YHi5cXu4c22+YnS7bW6/Ynq6dHu7dXe9cHDBZHy8dnDCZHy+dn2/d3LEZoG+eX/BeYDBeYHCe4LCe4LCfITDfoXEfYjDgYbEf4fFgIjGgozFg4rGg4vHhY3IhY3IhpDIiJDKiZLKipLLi5XMjZXNjJnPkZ3QlJ/Sl6LUmaXVnKfWnqjXn6rYoavYoqzYoq3Zo67apa/aprDbpv///////////////////////////////////////////////////////////////////////yH5BAEKAH8ALAAAAAAQABAAAAeUgH+Cg4SFhoeGSEU/OjYyLykkh0NtbGpoZmRhVTgZhT1raWdlZGNiX2A8EoQ5NTAqJiIdNFpeXSWIgxgUUVA3CbmCESxSSQfBfw8oTUQFhCAbhA4KQUIrA4MeMy4XEhANHEBKRxaDHTFcW1lWU09MPkYfAYMaLVhXVFJOSzsnFQCFJowIwQDBAQMEBCB6sACZQ0KBAAA7]]></data>
	</file>
	<file>
	  <filename>/include/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/include/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgogPGxpPkNHU01TIFZlcnNpb24gMS4wIC0gRmVicnVhcnkgMjAxMAogIDx1bD4KICAgPGxpPkluaXRpYWwgcmVsZWFzZSB3aXRoIEludGVybGlua2VkIGFuZCBleHBlcmltZW50YWwgR29vZ2xlIFZvaWNlIGdhdGV3YXlzLjwvbGk+CiAgPC91bD4KIDwvbGk+CiA8bGk+U01TRyBWZXJzaW9uIDAuOSAtIEFwcmlsIDIwMTUKICA8dWw+CiAgIDxsaT5Xb3JrLWFsaWtlIHJlcGxhY2VtZW50IGZvciBDR1NNUzwvbGk+CiAgIDxsaT5HYXRld2F5czogYWRkIENsaWNrYXRlbGwsIFR3aWxpbywgU21zYnJvYWRjYXN0LCByZW1vdmUgZGVmdW5jdCBJbnRlcmxpbmtlZDwvbGk+CiAgIDxsaT5FeHBhbmRlZCBnYXRld2F5IEFQSSBzdXBwb3J0cyBvcHRpb25hbCBjaGVja3MgZm9yIGFuZCB1c2Ugb2YgZXh0cmEgcGFyYW1ldGVyczwvbGk+CiAgIDxsaT5FbmFibGUgcnVudGltZSBtb2RpZmljYXRpb25zIG9mIGdhdGV3YXlzJyBpbnRlcmZhY2UgYnkgYXV0aG9yaXNlZCB1c2VyczwvbGk+CiAgIDxsaT5Nb3JlIGdlbmVyb3VzIHJlZ2V4IGZvciBjaGVja2luZyBtZXNzYWdlIHZhbGlkaXR5PC9saT4KICAgPGxpPkJldHRlciBzdXBwb3J0IGZvciBsYXRlciBDTVNNUyB2ZXJzaW9ucywgYnVnIGZpeGVzLCBVSSByZWZpbmVtZW50czwvbGk+CiAgPC91bD4KIDwvbGk+CiA8bGk+VmVyc2lvbiAwLjkuOSAtIEFwcmlsIDIwMTUKICA8dWw+CiAgIDxsaT5TdXBwb3J0IENNU01TIDEuMTIueDwvbGk+CiAgIDxsaT5JbXBsZW1lbnQgZ2F0ZXdheSBkZWxpdmVyeS1yZXBvcnQgcHJvY2Vzc2luZywgd2hlcmUgcG9zc2libGU8L2xpPgogIDwvdWw+CiA8L2xpPgogPGxpPlZlcnNpb24gMS4wIC0gSmFudWFyeSAyMDE2CiAgPHVsPgogICA8bGk+U3VwcG9ydCBDTVNNUyAyKzwvbGk+CiAgIDxsaT5FbmNyeXB0IHNlbnNpdGl2ZSBkYXRhPC9saT4KICAgPGxpPkFiYW5kb24gcHJldHR5LXVybCBmb3IgZGVsaXZlcnkgcmVwb3J0czwvbGk+CiAgIDxsaT5SZW1vdmUgQ0dFeHRlbnNpb25zIGRlcGVuZGVuY3k8L2xpPgogICA8bGk+QWRkIG1pc3NpbmcgJGxhbmdbXSBtZW1iZXJzPC9saT4KICA8L3VsPgogPC9saT4KPC91bD4K]]></data>
	</file>
	<file>
	  <filename>/include/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/include/jquery-inputCloak.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohCmlucHV0Q2xvYWsKdmVyc2lvbiAwLjEuMApieSBQaGlsaXAgRXJtaXNoCmxpY2Vuc2U6IEFwYWNoZSB2LjIgb3IgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ugdi4zIG9yIGxhdGVyCiovCihmdW5jdGlvbigkKXskLmZuLmlucHV0Q2xvYWs9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPSQodGhpcyk7dmFyIGQ7dmFyIGU9e3R5cGU6ImFsbCIsc3ltYm9sOiIqIixkZWxheTowLHJldmVhbE9uRm9jdXM6dHJ1ZSxjbG9ha09uQmx1cjp0cnVlLGN1c3RvbUNsb2FrOnVuZGVmaW5lZH07Yi5zZXR0aW5ncz0kLmV4dGVuZCh7fSxlLGEpO2IuX2RlZmF1bHRzPWU7Yi5fbmFtZT0iaW5wdXRDbG9hayI7Yi5jbG9haz1mdW5jdGlvbihrKXtpZihiLnNldHRpbmdzLmN1c3RvbUNsb2FrKXtiLnNldHRpbmdzLmN1c3RvbUNsb2FrKGssYixkKTtiLnZhbChrKTtyZXR1cm4gdGhpc312YXIgaj1iLnNldHRpbmdzLnN5bWJvbCxnPWsubGVuZ3RoLGk7c3dpdGNoKGIuc2V0dGluZ3MudHlwZS50b0xvd2VyQ2FzZSgpKXtjYXNlInNzbiI6aWYoZz40KXt2YXIgbD1rLnN1YnN0cigwLGctNCksaD1sLmxlbmd0aDtpZihoPDMpe2k9QXJyYXkoaCsxKS5qb2luKGopfWVsc2V7aT1BcnJheSgzKzEpLmpvaW4oaikrIi0iO2lmKGg+PTUpe2krPUFycmF5KDIrMSkuam9pbihqKSsiLSJ9ZWxzZXtpKz1BcnJheShoLTMrMSkuam9pbihqKX19aSs9ay5zdWJzdHIoZy00LDQpfWVsc2V7aT1rfWJyZWFrO2Nhc2UiY3JlZGl0IjppZihnPjQpe2k9aitrLnN1YnN0cihnLTQsNCl9ZWxzZXtpPWt9YnJlYWs7Y2FzZSJzZWU0IjppZihnPjQpe2k9QXJyYXkoZy00KzEpLmpvaW4oaikray5zdWJzdHIoZy00LDQpfWVsc2V7aT1rfWJyZWFrO2Nhc2Uic2VlMSI6aWYoZz4xKXtpPUFycmF5KGcpLmpvaW4oaikray5zdWJzdHIoZy0xLDEpfWVsc2V7aT0iIn1icmVhaztkZWZhdWx0Omk9QXJyYXkoZysxKS5qb2luKGopO2JyZWFrfWQudmFsKGkpO2IudmFsKGspO3JldHVybiB0aGlzfTtiLnJldmVhbD1mdW5jdGlvbigpe2QudmFsKGIudmFsKCkpO3JldHVybiB0aGlzfTt2YXIgZj1mdW5jdGlvbigpe2lmKGIuYXR0cigiZGF0YS1jbG9ha2VkLWlkIikpe3JldHVybn1jKGIpO2Qub24oImZvY3VzIixmdW5jdGlvbihnKXtiLnJldmVhbChnLmN1cnJlbnRUYXJnZXQudmFsdWUpfSk7ZC5vbigiYmx1ciIsZnVuY3Rpb24oZyl7c2V0VGltZW91dChmdW5jdGlvbigpe2IuY2xvYWsoZy5jdXJyZW50VGFyZ2V0LnZhbHVlKX0sYi5zZXR0aW5ncy5kZWxheSl9KTtiLmNsb2FrKGIudmFsKCkpfTt2YXIgYz1mdW5jdGlvbigpe3ZhciBnPU1hdGguZmxvb3IoKE1hdGgucmFuZG9tKCkqMTAwMDAwMDAwKSsxKTtiLmF0dHIoImRhdGEtY2xvYWtlZC1pZCIsZyk7ZD1iLmNsb25lKCk7ZC5hdHRyKCJkYXRhLWNsb2FrZWQtZm9yIixnKTtkLnJlbW92ZUF0dHIoIm5hbWUiKTtiLmNzcygiZGlzcGxheSIsIm5vbmUiKTtiLmFmdGVyKGQpfTtmKCk7cmV0dXJuIHRoaXN9KX19KShqUXVlcnkpOw==]]></data>
	</file>
	<file>
	  <filename>/include/jquery.tablednd.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohClRhYmxlRG5EIHBsdWctaW4gZm9yIEpRdWVyeQpWZXJzaW9uIDAuOC4xCiogCkNvcHlyaWdodCAoQykgMjAxNC0yMDE1IFRvbSBQaGFuZQpMaWNlbnNlZCB1bmRlciB0aGUgR05VIEFmZmVybyBHUEwgdi4zIG9yLCBhdCB0aGUgZGlzdHJpYnV0b3IncyBkaXNjcmV0aW9uLCBhIGxhdGVyIHZlcnNpb24uClNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMjQUdQTC4KKi8KKGZ1bmN0aW9uKCQpeyQuZXh0ZW5kKHt0YWJsZURuRDpuZXcgZnVuY3Rpb24oKXt2YXIgbj0kLmZuLmpxdWVyeTt0aGlzLmRlZmF1bHRzPXtidXR0b25TdGF0ZToiIixjb250YWluZXJJRDpudWxsLGRyYWdDbGFzczoidERuRF93aGlsZURyYWciLGRyYWdIYW5kbGU6bnVsbCxkcmFnU3R5bGVzOntjb2xvcjoicHVycGxlIiwiZm9udC1zdHlsZSI6Iml0YWxpYyJ9LGRyb3BTdHlsZXM6bnVsbCxvbkFsbG93RHJvcDpudWxsLG9uRHJhZ1N0YXJ0Om51bGwsb25Ecm9wOm51bGwsb25Sb3dzQ2hhbmdlZDpudWxsLGZpbHRlclJlZ2V4cDpudWxsfTt0aGlzLmNvbnN0cnVjdD1mdW5jdGlvbihzKXt2YXIgdD17Y3VycmVudFRhYmxlOm51bGwsZHJhZ0JvZHk6bnVsbCxkcmFnT2JqZWN0Om51bGwsYm91bmQ6ZmFsc2UscHJlcGFyZTpmYWxzZSxkcmFnZ2luZzpmYWxzZSxwdHJPZmZzZXQ6bnVsbCxmaXJzdFk6MCxvbGRZOjAsdXBpZDowLGRuaWQ6MCxqcWdlMTQ6ZmFsc2UsanFnZTE3OmZhbHNlfTt0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdz10aGlzLnRCb2RpZXM7aWYoIXcpe3JldHVybn12YXIgej0wO2Zvcih2YXIgeD0wO3g8dy5sZW5ndGg7eCsrKXt6Kz13W3hdLnJvd3MubGVuZ3RoO2lmKHo+MSl7YnJlYWt9fWlmKHo8Mil7cmV0dXJufXZhciB2PXt9OyQuZXh0ZW5kKHYsdCwkLnRhYmxlRG5ELmRlZmF1bHRzLHN8fHt9KTt2LmN1cnJlbnRUYWJsZT10aGlzOyQuZGF0YSh0aGlzLCJ0RG5EY29uZmlnIix2KTt2YXIgdTtpZih2LmNvbnRhaW5lcklEKXt1PSQoIiMiK3YuY29udGFpbmVySUQpO2lmKHUubGVuZ3RoPjApe3ZhciB5PXUuY3NzKCJvdmVyZmxvdyIpO2lmKCEoeT09ImF1dG8ifHx5PT0ic2Nyb2xsIikpe3YuY29udGFpbmVySUQ9bnVsbH19fWlmKCF2LmNvbnRhaW5lcklEKXt1PSQodGhpcykucGFyZW50KCk7eT11LmNzcygib3ZlcmZsb3ciKTtpZigoeT09ImF1dG8ifHx5PT0ic2Nyb2xsIikpe3YuY29udGFpbmVySUQ9dS5hdHRyKCJpZCIpO2lmKCF2LmNvbnRhaW5lcklEKXt2LmNvbnRhaW5lcklEPSJ0RG5EY29udGFpbmVySUQiO3UuYXR0cigiaWQiLHYuY29udGFpbmVySUQpfX19di5qcWdlMTc9dmVyc2lvbkNvbXBhcmUobiwiMS43Iik+PTA7di5qcWdlMTQ9di5qcWdlMTd8fHZlcnNpb25Db21wYXJlKG4sIjEuNCIpPj0wO2lmKHYuanFnZTE3KXskKHRoaXMpLm9uKCJtb3VzZW92ZXIudGRuZCIsInRib2R5Iix2LG0pLm9uKCJtb3VzZW91dC50ZG5kIiwidGJvZHkiLHYsZyl9ZWxzZXtmb3IoeD0wO3g8dy5sZW5ndGg7eCsrKXskKHdbeF0pLmJpbmQoIm1vdXNlb3Zlci50ZG5kIix2LG0pLmJpbmQoIm1vdXNlb3V0LnRkbmQiLHYsZyl9fX0pO3JldHVybiB0aGlzfTt0aGlzLm1hcFRhYmxlcz1mdW5jdGlvbigpe3ZhciBzPSIiO3RoaXMuZWFjaChmdW5jdGlvbigpe3MrPXIodGhpcyl9KTtyZXR1cm4gc307ZnVuY3Rpb24gcih2KXt2YXIgdD0kLmRhdGEodiwidERuRGNvbmZpZyIpO3ZhciBzPXt9O3ZhciB1PTE7JCh2KS5maW5kKCJ0ciIpLmVhY2goZnVuY3Rpb24oKXt2YXIgdz10aGlzLmdldEF0dHJpYnV0ZSgiaWQiKXx8dGhpcy5nZXRBdHRyaWJ1dGUoIm5hbWUiKXx8InJvdyIrdTtpZighdHx8IXQuZmlsdGVyUmVnZXhwfHx3Lm1hdGNoKHQuZmlsdGVyUmVnZXhwKSE9PW51bGwpe3ZhciB5PXt9O3ZhciB4PTE7JCh0aGlzKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIEE9W107JCh0aGlzKS5jaGlsZHJlbigpLmVhY2goZnVuY3Rpb24oKXtBW0EubGVuZ3RoXT0odGhpcy5oYXNBdHRyaWJ1dGUoInZhbHVlIikpP3RoaXMuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpOiQodGhpcykudGV4dCgpfSk7dmFyIEM9dGhpcy5hdGdldEF0dHJpYnV0ZSgiaWQiKXx8dGhpcy5nZXRBdHRyaWJ1dGUoIm5hbWUiKXx8ImNvbCIreDtzd2l0Y2goQS5sZW5ndGgpe2Nhc2UgMDp5W0NdPSI8ZW1wdHk+IjticmVhaztjYXNlIDE6eVtDXT1BWzBdO2JyZWFrO2RlZmF1bHQ6dmFyIEI9e307Zm9yKHZhciB6PTA7ejxBLmxlbmd0aDsrK3ope0Jbel09QVt6XX15W0NdPUI7YnJlYWt9eCsrfSk7c1t3XT15fXUrK30pO3JldHVybiBzfWZ1bmN0aW9uIGQocyl7aWYocy5wYWdlWHx8cy5wYWdlWSl7cmV0dXJue3g6cy5wYWdlWCx5OnMucGFnZVl9fXZhciB0PShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0IT09bnVsbCk/ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OmRvY3VtZW50LmJvZHk7cmV0dXJue3g6cy5jbGllbnRYK3Quc2Nyb2xsTGVmdCx5OnMuY2xpZW50WSt0LnNjcm9sbFRvcH19ZnVuY3Rpb24gaih2LHUpe3U9dXx8d2luZG93LmV2ZW50O3ZhciB0PXEodik7dmFyIHM9ZCh1KTtyZXR1cm57eDpzLngtdC54LHk6cy55LXQueX19ZnVuY3Rpb24gcSh1KXt2YXIgdD0wO3ZhciBzPTA7aWYodS5vZmZzZXRIZWlnaHQ9PT0wKXtpZih1LmZpcnN0Q2hpbGQpe3U9dS5maXJzdENoaWxkfX13aGlsZSh1Lm9mZnNldFBhcmVudCl7dCs9dS5vZmZzZXRMZWZ0O3MrPXUub2Zmc2V0VG9wO3U9dS5vZmZzZXRQYXJlbnR9dCs9dS5vZmZzZXRMZWZ0O3MrPXUub2Zmc2V0VG9wO3JldHVybnt4OnQseTpzfX1mdW5jdGlvbiBpKCl7dmFyIHM9MDtpZih3aW5kb3cucGFnZVlPZmZzZXQpe3M9d2luZG93LnBhZ2VZT2Zmc2V0fWVsc2V7aWYod2luZG93LnNjcm9sbFkpe3M9d2luZG93LnNjcm9sbFl9ZWxzZXt2YXIgdTtzPSgoKHU9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KXx8KHU9ZG9jdW1lbnQuYm9keS5wYXJlbnROb2RlKSkmJnR5cGVvZiB1LlNjcm9sbFRvcD09Im51bWJlciIpP3UuU2Nyb2xsVG9wOmRvY3VtZW50LmJvZHkuU2Nyb2xsVG9wfX1yZXR1cm4gc31mdW5jdGlvbiBjKCl7aWYod2luZG93LmlubmVySGVpZ2h0JiZ3aW5kb3cuc2Nyb2xsTWF4WSl7cmV0dXJuIHdpbmRvdy5zY3JvbGxNYXhZfXZhciBzPSh3aW5kb3cuaW5uZXJIZWlnaHQpP3dpbmRvdy5pbm5lckhlaWdodDpkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodDtpZihkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodD5kb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodCl7cmV0dXJuIGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0LXN9ZWxzZXtyZXR1cm4gZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQtc319ZnVuY3Rpb24gZih1LHkseCxzKXt2YXIgdzt2YXIgejtpZih5KXt2YXIgQT1pKCk7aWYoeCl7aWYoQT4wKXt3PS0xfWVsc2V7cy51cGlkPTA7cmV0dXJufX1lbHNle3o9YygpO2lmKEE8eil7dz0xfWVsc2V7cy5kbmlkPTA7cmV0dXJufX13aW5kb3cuc2Nyb2xsQnkoMCx3KX1lbHNle3c9JCh1KS5zY3JvbGxUb3AoKTtpZih4KXtpZih3PjApe3ctPTF9ZWxzZXtzLnVwaWQ9MDtyZXR1cm59fWVsc2V7ej11LnNjcm9sbEhlaWdodC11LmNsaWVudEhlaWdodDtpZih3PHope3crPTF9ZWxzZXtzLmRuaWQ9MDtyZXR1cm59fXUuc2Nyb2xsVG9wKHcpfXZhciB2PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtmKHUseSx4LHMpfSwyMCk7aWYoeCl7cy51cGlkPXZ9ZWxzZXtzLmRuaWQ9dn19ZnVuY3Rpb24gbyhzKXtpZihzLnVwaWQpe3dpbmRvdy5jbGVhclRpbWVvdXQocy51cGlkKTtzLnVwaWQ9MH1pZihzLmRuaWQpe3dpbmRvdy5jbGVhclRpbWVvdXQocy5kbmlkKTtzLmRuaWQ9MH19ZnVuY3Rpb24gaCh2LHQpe2lmKHQuZHJvcFN0eWxlcyl7dmFyIHM9e307Zm9yKHZhciB1IGluIHQuZHJvcFN0eWxlcyl7c1t1XT0iIn0kKHYpLmNzcyhzKX1pZih0LmRyYWdDbGFzcyl7JCh2KS5hZGRDbGFzcyh0LmRyYWdDbGFzcyl9aWYodC5kcmFnU3R5bGVzKXskKHYpLmNzcyh0LmRyYWdTdHlsZXMpfX1mdW5jdGlvbiBrKHYsdCl7aWYodC5kcmFnU3R5bGVzKXt2YXIgcz17fTtmb3IodmFyIHUgaW4gdC5kcmFnU3R5bGVzKXtzW3VdPSIifSQodikuY3NzKHMpfWlmKHQuZHJhZ0NsYXNzKXskKHYpLnJlbW92ZUNsYXNzKHQuZHJhZ0NsYXNzKX19ZnVuY3Rpb24gYih5KXt2YXIgdD15LmRhdGE7aWYodC5idXR0b25TdGF0ZSl7dmFyIHc7aWYoeS53aGljaD09PW51bGwpe3c9KHkuYnV0dG9uPDIpPyIwIjooKHkuYnV0dG9uPT09NCk/IjEiOiIyIil9ZWxzZXt3PSh5LndoaWNoPDIpPyIwIjooKHkud2hpY2g9PT0yKT8iMSI6IjIiKX1pZih0LmJ1dHRvblN0YXRlLmluZGV4T2Yodyk9PT0tMSl7cmV0dXJuIGZhbHNlfWlmKHQuYnV0dG9uU3RhdGUuaW5kZXhPZigic2hpZnQiKSE9PS0xJiYheS5zaGlmdEtleSl7cmV0dXJuIGZhbHNlfWlmKHQuYnV0dG9uU3RhdGUuaW5kZXhPZigiY3RybCIpIT09LTEmJiF5LmN0cmxLZXkpe3JldHVybiBmYWxzZX1pZih0LmJ1dHRvblN0YXRlLmluZGV4T2YoImFsdCIpIT09LTEmJiF5LmFsdEtleSl7cmV0dXJuIGZhbHNlfWlmKHQuYnV0dG9uU3RhdGUuaW5kZXhPZigibWV0YSIpIT09LTEmJiF5Lm1ldGFLZXkpe3JldHVybiBmYWxzZX19dmFyIHg9eS50YXJnZXR8fHkuc3JjRWxlbWVudHx8eS5vcmlnaW5hbFRhcmdldDt2YXIgdj14Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7c3dpdGNoKHYpe2Nhc2UidGQiOmNhc2UidHIiOmJyZWFrO2Nhc2UidGJvZHkiOmNhc2UiaW5wdXQiOmNhc2Uic2VsZWN0IjpjYXNlImEiOnJldHVybiBmYWxzZTtkZWZhdWx0Ong9JCh4KS5jbG9zZXN0KCJ0ZCIpO2lmKHgubGVuZ3RoPT09MCl7cmV0dXJuIGZhbHNlfXY9InRkIjticmVha312YXIgejt2YXIgcztpZih0LmRyYWdIYW5kbGUpe3ZhciB1PSQoInRkLiIrdC5kcmFnSGFuZGxlLHgpO2lmKHUubGVuZ3RoPjApe3o9dVswXS5wYXJlbnROb2RlO2lmKCEkKHopLmhhc0NsYXNzKCJub2RyYWciKSl7cz0kKHopLnBhcmVudCgidGJvZHkiKVswXTtpZihzIT09dW5kZWZpbmVkKXtyZXR1cm57dGI6cyxvYjp6fX19fX1lbHNle2lmKHY9PSJ0ZCIpe3o9JCh4KS5wYXJlbnQoInRyIilbMF07aWYoej09PXVuZGVmaW5lZCl7cmV0dXJuIGZhbHNlfX1lbHNle3o9eH1pZighJCh6KS5oYXNDbGFzcygibm9kcmFnIikpe3M9JCh6KS5wYXJlbnQoInRib2R5IilbMF07aWYocyE9PXVuZGVmaW5lZCl7cmV0dXJue3RiOnMsb2I6en19fX1yZXR1cm4gZmFsc2V9ZnVuY3Rpb24gbSh0KXt2YXIgcz10LmRhdGE7aWYoIXMuZHJhcWdnaW5nKXtpZihzLmpxZ2UxNyl7JCh0aGlzKS5vbigibW91c2Vtb3ZlLnRkbmQiLHMsZSl9ZWxzZXskKHRoaXMpLmJpbmQoIm1vdXNlbW92ZS50ZG5kIixzLGUpfX1yZXR1cm4gdHJ1ZX1mdW5jdGlvbiBnKHQpe3ZhciB1PSQodGhpcyk7dmFyIHM9dC5kYXRhO2lmKCFzLmRyYWdnaW5nKXtzLmN1cnJlbnRUYWJsZS5zdHlsZS5jdXJzb3I9ImRlZmF1bHQiO2lmKHMuanFnZTE3KXt1Lm9mZigibW91c2Vtb3ZlLnRkbmQiLGUpfWVsc2V7dS51bmJpbmQoIm1vdXNlbW92ZS50ZG5kIixlKX19aWYocy5ib3VuZCl7aWYocy5qcWdlMTcpe3Uub2ZmKCJtb3VzZWRvd24udGRuZCIsbCkub2ZmKCJkYmxjbGljay50ZG5kIixwKX1lbHNle3UudW5iaW5kKCJtb3VzZWRvd24udGRuZCIsbCkudW5iaW5kKCJkYmxjbGljay50ZG5kIixwKX1zLmJvdW5kPWZhbHNlfXJldHVybiB0cnVlfWZ1bmN0aW9uIGUoTSl7dmFyIHg9TS5kYXRhO3ZhciBPPWIoTSk7aWYoIXgucHJlcGFyZSl7aWYoTyl7aWYoIXguYm91bmQpe3guY3VycmVudFRhYmxlLnN0eWxlLmN1cnNvcj0iY3Jvc3NoYWlyIjtpZih4LmpxZ2UxNyl7JCh0aGlzKS5vbigibW91c2Vkb3duLnRkbmQiLHgsbCkub24oImRibGNsaWNrLnRkbmQiLHgscCl9ZWxzZXtpZih4LmpxZ2UxNCl7JCh0aGlzKS5iaW5kKCJtb3VzZWRvd24udGRuZCIseCxsKS5iaW5kKCJkYmxjbGljay50ZG5kIix4LHApfWVsc2V7JCh0aGlzKS5iaW5kKCJtb3VzZWRvd24udGRuZCIseCxsKX19eC5ib3VuZD10cnVlfX1lbHNle2lmKHguYm91bmQmJiF4LmRyYWdnaW5nKXt4LmN1cnJlbnRUYWJsZS5zdHlsZS5jdXJzb3I9ImRlZmF1bHQiO2lmKHguanFnZTE3KXskKHRoaXMpLm9mZigibW91c2Vkb3duLnRkbmQiLGwpLm9mZigiZGJsY2xpY2sudGRuZCIscCl9ZWxzZXskKHRoaXMpLnVuYmluZCgibW91c2Vkb3duLnRkbmQiLGwpLnVuYmluZCgiZGJsY2xpY2sudGRuZCIscCl9eC5ib3VuZD1mYWxzZX19cmV0dXJuIHRydWV9dmFyIEo9ZChNKTtpZihNYXRoLmFicyhKLnkteC5maXJzdFkpPD0zKXtyZXR1cm4gZmFsc2V9aWYoIXguZHJhZ2dpbmcpe2lmKE8pe2lmKHguZHJhZ0JvZHkpe2lmKHguZHJhZ0JvZHkhPU8udGIpeyQuZWFjaCh4LmRyYWdPYmplY3QsZnVuY3Rpb24oKXtrKHRoaXMseCl9KTt4LmRyYWdPYmplY3Q9bnVsbDt4LmRyYWdCb2R5PU8udGJ9fWVsc2V7eC5kcmFnQm9keT1PLnRifWlmKHguZHJhZ09iamVjdCl7aWYoJC5pbkFycmF5KE8ub2IseC5kcmFnT2JqZWN0KT09PS0xKXt4LmRyYWdPYmplY3RbeC5kcmFnT2JqZWN0Lmxlbmd0aF09Ty5vYjtoKE8ub2IseCl9fWVsc2V7eC5kcmFnT2JqZWN0PVtPLm9iXTtoKE8ub2IseCl9fWlmKHguZHJhZ09iamVjdD09PW51bGwpe2EoTSk7cmV0dXJuIHRydWV9JC51bmlxdWUoeC5kcmFnT2JqZWN0KTt2YXIgST0oTyk/Ty5vYjp4LmRyYWdPYmplY3RbMF07eC5wdHJPZmZzZXQ9aihJLE0pO3guZHJhZ2dpbmc9dHJ1ZTt4Lm9sZFk9eC5maXJzdFkteC5wdHJPZmZzZXQueTtpZih4Lm9uRHJhZ1N0YXJ0KXt4Lm9uRHJhZ1N0YXJ0KHRhYmxlLHguZHJhZ09iamVjdCl9eC5jdXJyZW50VGFibGUuc3R5bGUuY3Vyc29yPSJyb3ctcmVzaXplIjtyZXR1cm4gdHJ1ZX12YXIgczt2YXIgdTt2YXIgRT1mYWxzZTtpZih4LmNvbnRhaW5lcklEKXt2YXIgRj0kKCIjIit4LmNvbnRhaW5lcklEKTtzPUYub2Zmc2V0KCkudG9wO2lmKEoueTxzKzUpe2lmKHgudXBpZD09PTApe2YoRlswXSxmYWxzZSx0cnVlLHgpfUU9dHJ1ZX1lbHNle3U9cytGLm91dGVySGVpZ2h0KHRydWUpO2lmKEoueT51LTUpe2lmKHguZG5pZD09PTApe2YoRlswXSxmYWxzZSxmYWxzZSx4KX1FPXRydWV9fX1pZighRSl7cz1pKCk7aWYoSi55PHMrNSl7aWYoeC51cGlkPT09MCl7Zih3aW5kb3csdHJ1ZSx0cnVlLHgpfUU9dHJ1ZX1lbHNle3U9cyskKHdpbmRvdykuaGVpZ2h0KCk7aWYoSi55PnUtNSl7aWYoeC5kbmlkPT09MCl7Zih3aW5kb3csdHJ1ZSxmYWxzZSx4KX1FPXRydWV9fX1pZighRSl7byh4KX12YXIgQz1KLnkteC5wdHJPZmZzZXQueTtpZihDIT14Lm9sZFkpe3ZhciBHPShDPHgub2xkWSk7dmFyIEw9bnVsbDt2YXIgSD0kKCI+IHRyIix4LmRyYWdCb2R5KTt2YXIgSztmb3IoSz0wO0s8SC5sZW5ndGg7SysrKXt2YXIgQj1IW0tdO3ZhciBQO3ZhciB0O2lmKEIub2Zmc2V0SGVpZ2h0PjApe1A9cShCKS55O3Q9cGFyc2VJbnQoQi5vZmZzZXRIZWlnaHQsMTApLzJ9ZWxzZXtQPXEoQi5maXJzdENoaWxkKS55O3Q9cGFyc2VJbnQoQi5maXJzdENoaWxkLm9mZnNldEhlaWdodCwxMCkvMn1pZigoQz4oUC10KSkmJihDPChQK3QpKSl7aWYoJC5pbkFycmF5KEIseC5kcmFnT2JqZWN0KT09PS0xKXtpZih4Lm9uQWxsb3dEcm9wKXtpZih4Lm9uQWxsb3dEcm9wKHguZHJhZ09iamVjdCxCKSl7TD1CfX1lbHNle2lmKCEkKEIpLmhhc0NsYXNzKCJub2Ryb3AiKSl7TD1CfX19YnJlYWt9fWlmKEwpe3ZhciB2PVtdOyQuZWFjaChILGZ1bmN0aW9uKHkpe2lmKCQodGhpcykuaGFzQ2xhc3MoIm5vZHJvcCIpJiYkLmluQXJyYXkodGhpcyx4LmRyYWdPYmplY3QpPT0tMSl7dlt2Lmxlbmd0aF09W3ksdGhpc119fSk7aWYoRyl7JC5lYWNoKHguZHJhZ09iamVjdCxmdW5jdGlvbigpe2lmKHRoaXMhPUwpeyQodGhpcykuaW5zZXJ0QmVmb3JlKEwpfWVsc2V7dmFyIHk9JCh0aGlzKS5uZXh0KCk7aWYoeS5sZW5ndGgpe0w9eVswXX19fSl9ZWxzZXskLmVhY2goeC5kcmFnT2JqZWN0LGZ1bmN0aW9uKCl7aWYodGhpcyE9TCl7JCh0aGlzKS5pbnNlcnRBZnRlcihMKTtMPXRoaXN9ZWxzZXt2YXIgeT0kKHRoaXMpLnByZXYoKTtpZih5Lmxlbmd0aCl7TD15WzBdfX19KX12YXIgQT0kKCI+IHRyIix4LmRyYWdCb2R5KS5lcSgwKTskLmVhY2godixmdW5jdGlvbigpe2lmKHRoaXNbMV0hPUFbMF0peyQodGhpc1sxXSkuaW5zZXJ0QmVmb3JlKEEpfX0pO3ZhciB6PTA7Zm9yKHZhciBOPTA7Tjx2Lmxlbmd0aDtOKyspe3ZhciB3PXZbTl1bMF07aWYodz56KXt2YXIgRD0kKCI+IHRyIix4LmRyYWdCb2R5KTskKERbel0pLmluc2VydEFmdGVyKCQoRFt3XSkpfWVsc2V7eisrfX1pZih4Lm9uUm93c0NoYW5nZWQpe3gub25Sb3dzQ2hhbmdlZCh0aGlzLHguZHJhZ09iamVjdCxMKX19eC5vbGRZPUN9cmV0dXJuIGZhbHNlfWZ1bmN0aW9uIGwodCl7dmFyIHM9dC5kYXRhO3MucHJlcGFyZT10cnVlO3MuZmlyc3RZPWQodCkueTtpZihzLmpxZ2UxNyl7JChkb2N1bWVudCkub24oIm1vdXNldXAudGRuZCIscyxhKX1lbHNleyQoZG9jdW1lbnQpLmJpbmQoIm1vdXNldXAudGRuZCIscyxhKX1yZXR1cm4gZmFsc2V9ZnVuY3Rpb24gYSh0KXt2YXIgcz10LmRhdGE7aWYocy5qcWdlMTcpeyQoZG9jdW1lbnQpLm9mZigibW91c2V1cC50ZG5kIixhKX1lbHNleyQoZG9jdW1lbnQpLnVuYmluZCgibW91c2V1cC50ZG5kIixhKX1zLnByZXBhcmU9ZmFsc2U7cy5maXJzdFk9MDtpZihzLmRyYWdnaW5nKXtpZihzLmRyYWdPYmplY3Qpe28ocyk7cy5vbGRZPTA7JC5lYWNoKHMuZHJhZ09iamVjdCxmdW5jdGlvbigpe2sodGhpcyxzKX0pO2lmKHMuZHJvcFN0eWxlcyl7JC5lYWNoKHMuZHJhZ09iamVjdCxmdW5jdGlvbigpeyQodGhpcykuY3NzKHMuZHJvcFN0eWxlcyl9KX1zLmN1cnJlbnRUYWJsZS5zdHlsZS5jdXJzb3I9ImNyb3NzaGFpciI7aWYocy5vbkRyb3Ape3Mub25Ecm9wKHMuY3VycmVudFRhYmxlLHMuZHJhZ09iamVjdCl9cy5kcmFnT2JqZWN0PW51bGw7cy5kcmFnQm9keT1udWxsfXMuZHJhZ2dpbmc9ZmFsc2U7cmV0dXJuIGZhbHNlfX1mdW5jdGlvbiBwKHUpe3ZhciB2PWIodSk7aWYoIXYpe3JldHVybiB0cnVlfXZhciB0PXUuZGF0YTtpZih0LmRyYWdCb2R5KXtpZih0LmRyYWdCb2R5IT12LnRiKXskLmVhY2godC5kcmFnT2JqZWN0LGZ1bmN0aW9uKCl7ayh0aGlzLHQpfSk7dC5kcmFnT2JqZWN0PW51bGw7dC5kcmFnQm9keT12LnRifX1lbHNle3QuZHJhZ0JvZHk9di50Yn1pZih0LmRyYWdPYmplY3Qpe3ZhciBzPSQuaW5BcnJheSh2Lm9iLHQuZHJhZ09iamVjdCk7aWYocyE9PS0xKXtrKHQuZHJhZ09iamVjdFtzXSx0KTtpZih0LmRyYWdPYmplY3QubGVuZ3RoPT0xKXt0LmRyYWdPYmplY3Q9bnVsbH1lbHNle3QuZHJhZ09iamVjdC5zcGxpY2UocywxKX19ZWxzZXtpZighJCh2Lm9iKS5oYXNDbGFzcygibm9kcmFnIikpe3QuZHJhZ09iamVjdFt0LmRyYWdPYmplY3QubGVuZ3RoXT12Lm9iO2godi5vYix0KX19fWVsc2V7aWYoISQodi5vYikuaGFzQ2xhc3MoIm5vZHJhZyIpKXt0LmRyYWdPYmplY3Q9W3Yub2JdO2godi5vYix0KX19cmV0dXJuIGZhbHNlfXZlcnNpb25Db21wYXJlPWZ1bmN0aW9uKHgsdyl7aWYodHlwZW9mIHgrdHlwZW9mIHchPSJzdHJpbmdzdHJpbmciKXtyZXR1cm4gZmFsc2V9dmFyIHU9eC5zcGxpdCgiLiIpLHQ9dy5zcGxpdCgiLiIpLHY9MCxzPU1hdGgubWF4KHUubGVuZ3RoLHQubGVuZ3RoKTtmb3IoO3Y8czt2Kyspe2lmKCh1W3ZdJiYhdFt2XSYmcGFyc2VJbnQodVt2XSk+MCl8fChwYXJzZUludCh1W3ZdKT5wYXJzZUludCh0W3ZdKSkpe3JldHVybiAxfWVsc2V7aWYoKHRbdl0mJiF1W3ZdJiZwYXJzZUludCh0W3ZdKT4wKXx8KHBhcnNlSW50KHVbdl0pPHBhcnNlSW50KHRbdl0pKSl7cmV0dXJuIC0xfX19cmV0dXJuIDB9fX0pOyQuZm4uZXh0ZW5kKHt0YWJsZURuRDokLnRhYmxlRG5ELmNvbnN0cnVjdH0pfSkoalF1ZXJ5KTs=]]></data>
	</file>
	<file>
	  <filename>/include/module.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgovLzwhW0NEQVRBWwokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKIC8vc2hvdyBvbmx5IHRoZSBmcmFtZXNldCBmb3Igc2VsZWN0ZWQgZ2F0ZXdheQogJCgnLnNtc19nYXRld2F5X3BhbmVsJykuaGlkZSgpOwogdmFyIHZhbCA9ICQoJyNzbXNfZ2F0ZXdheScpLnZhbCgpOwogJCgnIycrdmFsKS5zaG93KCk7CiAkKCcjc21zX2dhdGV3YXknKS5jaGFuZ2UoZnVuY3Rpb24oKSB7CiAgICQoJy5zbXNfZ2F0ZXdheV9wYW5lbCcpLmhpZGUoKTsKICAgdmFyIHZhbCA9ICQoJyNzbXNfZ2F0ZXdheScpLnZhbCgpOwogICAkKCcjJyt2YWwpLnNob3coKTsKIH0pOwoKIGlmKHxQQURNfCkgewogJCgnLmdhdGVkYXRhJykudGFibGVEbkQoewogIGRyYWdDbGFzczogJ3JvdzFob3ZlcicsCiAgb25Ecm9wOiBmdW5jdGlvbih0YWJsZSwgZHJvcHJvd3MpIHsKICAgdmFyIG9kZCA9IHRydWU7CiAgIHZhciBvZGRjbGFzcyA9ICdyb3cxJzsKICAgdmFyIGV2ZW5jbGFzcyA9ICdyb3cyJzsKICAgdmFyIGRyb3Byb3cgPSAkKGRyb3Byb3dzKVswXTsKICAgJCh0YWJsZSkuZmluZCgndGJvZHkgdHInKS5lYWNoKGZ1bmN0aW9uKCkgewogICAgdmFyIG5hbWUgPSBvZGQgPyBvZGRjbGFzcyA6IGV2ZW5jbGFzczsKICAgIGlmICh0aGlzID09PSBkcm9wcm93KSB7CiAgICAgbmFtZSA9IG5hbWUrJ2hvdmVyJzsKICAgIH0KICAgICQodGhpcykucmVtb3ZlQ2xhc3MoKS5hZGRDbGFzcyhuYW1lKTsKICAgIG9kZCA9ICFvZGQ7CiAgIH0pOwogIH0KIH0pLmZpbmQoJ3Rib2R5IHRyJykucmVtb3ZlQXR0cignb25tb3VzZW92ZXInKS5yZW1vdmVBdHRyKCdvbm1vdXNlb3V0JykubW91c2VvdmVyKGZ1bmN0aW9uKCkgewogIHZhciBub3cgPSAkKHRoaXMpLmF0dHIoJ2NsYXNzJyk7CiAgJCh0aGlzKS5hdHRyKCdjbGFzcycsIG5vdysnaG92ZXInKTsKIH0pLm1vdXNlb3V0KGZ1bmN0aW9uKCkgewogIHZhciBub3cgPSAkKHRoaXMpLmF0dHIoJ2NsYXNzJyk7CiAgdmFyIHRvID0gbm93LmluZGV4T2YoJ2hvdmVyJyk7CiAgJCh0aGlzKS5hdHRyKCdjbGFzcycsIG5vdy5zdWJzdHJpbmcoMCx0bykpOwogfSk7CiB9Cn0pOwoKZnVuY3Rpb24gcm93X3NlbGVjdGVkKGV2LGJ0bikgewogdmFyIG5tID0gYnRuLm5hbWUsCiAgYWxpYXMgPSBubS5zdWJzdHIoMCxubS5pbmRleE9mKCd+JykpOwovL2ZpbmQgY2hlY2tlZCBib3hlcyBuYW1lZCBsaWtlICJtMV88YWxpYXM+fjxmaWVsZD5+c2VsIgogdmFyIGxpc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFtuYW1lXj0iJythbGlhcysnIl06Y2hlY2tlZCcpLAogIGMgPSBsaXN0Lmxlbmd0aDsKIGlmKGMgPiAwKSB7CiAgdmFyIHN1ZmZpeCA9ICd+c2VsJywKICAgc2wgPSBzdWZmaXgubGVuZ3RoOwogIGZvciAodmFyIGk9MDsgaTxjOyBpKyspIHsKICAgbm0gPSBsaXN0W2ldLm5hbWU7CiAgIGlmKG5tLmluZGV4T2Yoc3VmZml4LG5tLmxlbmd0aCAtIHNsKSAhPT0gLTEpCiAgICByZXR1cm4gdHJ1ZTsKICB9CiB9CiByZXR1cm4gZmFsc2U7Cn0KLy9dXT4KPC9zY3JpcHQ+Cg==]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBHYXRld2F5LXNwZWNpZmljIHN0cmluZ3MKCiRsYW5nWydhZHZpY2VfY2xpY2thdGVsbCddID0gJzxhIGhyZWY9Imh0dHBzOi8vd3d3LmNsaWNrYXRlbGwuY29tIj48c3Ryb25nPkNsaWNrYXRlbGw8L3N0cm9uZz48L2E+IC0gd2lkZS1jb3ZlcmFnZSBnYXRld2F5LCBtaXhlZCByZXZpZXdzLic7CiRsYW5nWydkZXNjcmlwdGlvbl9jbGlja2F0ZWxsJ10gPSAnUmVsYXRpdmVseS1lYXN5LCB3aWRlLWNvdmVyYWdlIGdhdGV3YXksIG1peGVkIHJldmlld3MnOwokbGFuZ1snYXBpaWQnXSA9ICdBUEkgSUQnOwokbGFuZ1snY2xpY2thdGVsbF9hdXRoJ10gPSAnQXV0aGVudGljYXRpb24gZmFpbHVyZTogJXMnOwokbGFuZ1snY2xpY2thdGVsbF9mYWlsJ10gPSAnU2VuZCBtZXNzYWdlIHRvICVzIGZhaWxlZCc7CiRsYW5nWydjbGlja2F0ZWxsX3N1Y2Nlc3MnXSA9ICdTZW50IG1lc3NhZ2UgSUQ6ICVzIHRvICVzJzsKCiRsYW5nWydhZHZpY2VfZ29vZ2xldm9pY2UnXSA9ICc8YSBocmVmPSJodHRwOi8vdm9pY2UuZ29vZ2xlLmNvbSI+PHN0cm9uZz5Hb29nbGUgVm9pY2U8L3N0cm9uZz48L2E+IC0gZXhwZXJpbWVudGFsIChidXQgd29ya2luZyBhdCB0aGlzIHRpbWUpIHV0aWxpdHkgdG8gYWxsb3cgc2VuZGluZyBTTVMgbWVzc2FnZXMgdGhyb3VnaCBHb29nbGUgVm9pY2UuJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uX2dvb2dsZXZvaWNlJ10gPSAnVE9ETyc7CiRsYW5nWydlbWFpbCddID0gJ0VtYWlsIGFkZHJlc3MnOwoKJGxhbmdbJ2FkdmljZV9zbXNicm9hZGNhc3QnXSA9ICc8YSBocmVmPSJodHRwczovL3d3dy5zbXNicm9hZGNhc3QuY29tLmF1Ij48c3Ryb25nPlNtc2Jyb2FkY2FzdDwvc3Ryb25nPjwvYT4gLSBBdXN0cmFsaWEtb25seSBjb3ZlcmFnZSwgaGlnaGx5IHJlZ2FyZGVkJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uX3Ntc2Jyb2FkY2FzdCddID0gJ1NpbXBsZSwgQXVzdHJhbGlhLW9ubHkgY292ZXJhZ2UgZ2F0ZXdheSwgaGlnaGx5LXJhdGVkJzsKJGxhbmdbJ3JlZmVyZW5jZSddID0gJ1JlZmVyZW5jZSc7CgokbGFuZ1snYWR2aWNlX3R3aWxpbyddID0gJzxhIGhyZWY9Imh0dHBzOi8vd3d3LnR3aWxpby5jb20vc21zIj48c3Ryb25nPlR3aWxpbzwvc3Ryb25nPjwvYT4gLSBnbG9iYWwgU01TIGdhdGV3YXksIGxvdyBjb3N0LCB3ZWxsIHJlZ2FyZGVkJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uX3R3aWxpbyddID0gJ0xvdyBjb3N0LCBnbG9iYWwgZ2F0ZXdheSwgd2VsbCByZWdhcmRlZCc7CiRsYW5nWyd0b2tlbiddID0gJ1Rva2VuJzsKCiNBCiRsYW5nWydhY2NvdW50J10gPSAnQWNjb3VudCc7CiRsYW5nWydhZGRfbW9iaWxlJ10gPSAnQWRkIG51bWJlcic7CiRsYW5nWydhZGRfcGFyYW1ldGVyJ10gPSAnQWRkIHBhcmFtZXRlcic7CiRsYW5nWydhZGRfdGVtcGxhdGUnXSA9ICdBZGQgdGVtcGxhdGUnOwokbGFuZ1snYWRkZWRpdF9tb2JpbGUnXSA9ICdBZGQvRWRpdCBhIE1vYmlsZSBQaG9uZSBSZWNvcmQnOwokbGFuZ1snYXBpbmFtZSddID0gJ0FQSSBuYW1lJzsKJGxhbmdbJ2FwcGx5J10gPSAnQXBwbHknOwokbGFuZ1snYXNrX2RlbGV0ZV9tb2JpbGUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgbW9iaWxlIHBob25lIG51bWJlciBmcm9tIHRoZSBkYXRhYmFzZT8nOwoKI0IKCgojQwokbGFuZ1snY2FuY2VsJ10gPSAnQ2FuY2VsJzsKJGxhbmdbJ2NvbmZpcm1fdW5pbnN0YWxsJ109J1lvdVwncmUgc3VyZSB5b3Ugd2FudCB0byB1bmluc3RhbGwgdGhlIFNNUyBVdGlsaXR5IG1vZHVsZT8nOwokbGFuZ1snY3VzdG9tJ10gPSAnQ3VzdG9tJzsKCiNECiRsYW5nWydkZWZhdWx0J10gPSAnRGVmYXVsdCc7CiRsYW5nWydkZWZhdWx0X2dhdGV3YXknXSA9ICdEZWZhdWx0IGdhdGV3YXknOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV90aXRsZSddID0gJ1Byb3RvdHlwZSBmb3IgbmV3IHRlbXBsYXRlcyc7CiRsYW5nWydkZWZhdWx0X3RpcCddID0gJ2RlZmF1bHQnOwokbGFuZ1snZGVmYXVsdHNldF90aXAnXSA9ICdtYWtlIGRlZmF1bHQnOwokbGFuZ1snZGVsZXRlJ10gPSAnRGVsZXRlJzsKJGxhbmdbJ2RlbGV0ZV90aXAnXSA9ICdkZWxldGUgc2VsZWN0ZWQgcGFyYW1ldGVyKHMpJzsKJGxhbmdbJ2RlbGV0ZW9uZV90aXAnXSA9ICdkZWxldGUnOwokbGFuZ1snZGZsdF9lbnRlcm51bWJlcl90ZW1wbGF0ZSddID0gJ0RlZmF1bHQgJnF1b3Q7RW50ZXIgWW91ciBOdW1iZXImcXVvdDsgdGVtcGxhdGUnOwokbGFuZ1snZGZsdF9lbnRlcnRleHRfdGVtcGxhdGUnXSA9ICdEZWZhdWx0ICZxdW90O0VudGVyIFlvdXIgTWVzc2FnZSBUZXh0JnF1b3Q7IHRlbXBsYXRlJzsKCiNFCiRsYW5nWydlZGl0X3RpcCddID0gJ2VkaXQnOwokbGFuZ1snZW5hYmxlZCddID0gJ0VuYWJsZWQnOwokbGFuZ1snZW5jcnlwdCddID0gJ0VuY3J5cHQnOwokbGFuZ1snZW50ZXJfbW9iaWxlX251bWJlciddID0gJ0VudGVyIE1vYmlsZSBQaG9uZSBOdW1iZXInOwokbGFuZ1snZW50ZXJfbnVtYmVyX3RlbXBsYXRlcyddID0gJyZxdW90O0VudGVyIFlvdXIgTnVtYmVyJnF1b3Q7IFRlbXBsYXRlcyc7CiRsYW5nWydlbnRlcl90ZXh0X3RlbXBsYXRlcyddID0gJyZxdW90O1NlbmQgQSBNZXNzYWdlJnF1b3Q7IFRlbXBsYXRlcyc7CiRsYW5nWydlcnJvcl9kYl9vcF9mYWlsZWQnXSA9ICdEYXRhYmFzZSBvcGVyYXRpb24gZmFpbGVkLCBwbGVhc2UgY29udGFjdCB0aGUgc3lzdGVtIGFkbWluaXN0cmF0b3InOwokbGFuZ1snZXJyb3JfaW52YWxpZF9pbmZvJ10gPSAnT25lIG9yIG1vcmUgc3BlY2lmaWVkIHZhbHVlcyBhcmUgaW52YWxpZCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX251bWJlciddID0gJ1RoZSBtb2JpbGUgcGhvbmUgbnVtYmVyIHlvdSBlbnRlcmVkIGlzIGludmFsaWQnOwokbGFuZ1snZXJyb3JfaW52YWxpZF90ZXh0J10gPSAnVGhlIHRleHQgeW91IGVudGVyZWQgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzJzsKJGxhbmdbJ2Vycm9yX25hbWVfZXhpc3RzJ10gPSAnQW4gaXRlbSBieSB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snZXJyb3Jfbm9kYXRhZm91bmQnXSA9ICdObyBkYXRhIGFyZSBhdmFpbGFibGUnOwokbGFuZ1snZXJyb3Jfbm9nYXRld2F5c2ZvdW5kJ10gPSAnQ291bGQgbm90IGZpbmQgYW55IFNNUyBnYXRld2F5JzsKJGxhbmdbJ2Vycm9yX25vdGZvdW5kJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHJlcXVlc3RlZCBpdGVtJzsKJGxhbmdbJ2Vycm9yX3BhcmFtcyddID0gJ1BhcmFtZXRlciBlcnJvcic7CiRsYW5nWydldmVudF9kZXNjX2RlbGl2ZXJ5J10gPSAnU2VudCB3aGVuIGEgbWVzc2FnZS1kZWxpdmVyeS1yZXBvcnQgaXMgcmVjZWl2ZWQgZnJvbSB0aGUgY3VycmVudCBnYXRld2F5IChpZiBzdWNoIHJlcG9ydHMgYXJlIGVuYWJsZWQpJzsKJGxhbmdbJ2V2ZW50X2hlbHBfZGVsaXZlcnknXSA9IDw8PEVPUwpQYXJhbWV0ZXJzOgo8b2w+CjxsaT4nZ2F0ZXdheScgdGhlIGdhdGV3YXkgbmFtZTwvbGk+CjxsaT4nc3RhdHVzJyB0aGUgc2hvcnQtZm9ybSBzdGF0dXMtZGVzY3JpcHRvciByZWNvcmRlZCBieSB0aGUgZ2F0ZXdheSBvYmplY3Q8L2xpPgo8bGk+J21lc3NhZ2UnIGEgbG9uZy1mb3JtIHN0YXR1cyBtZXNzYWdlPC9saT4KPGxpPid0aW1lc3RhbXAnIGEgZGF0ZS10aW1lIHN0cmluZywgZm9ybWF0dGVkIGJ5IHN0cmZ0aW1lKCkgYXMgJyVYICVaJzwvbGk+Cjwvb2w+CkVPUzsKCiNGCiRsYW5nWydmcmFtZV90aXRsZSddID0gJyVzIFNNUyBHYXRld2F5JzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NNUyBVdGlsaXR5JzsKJGxhbmdbJ2Zyb20nXSA9ICdGcm9tJzsKCiNHCiRsYW5nWydnYXRld2F5cyddID0gJ0dhdGV3YXlzJzsKCiNICiRsYW5nWydoZWxwX2FjdGlvbiddID0gPDw8RU9UClRoaXMgcGFyYW1ldGVyIGlzIHVzZWQgdG8gZGVjaWRlIHRoZSBiZWhhdm91ciBvZiB0aGUgbW9kdWxlLiBWYWxpZCB2YWx1ZXMgZm9yIHRoaXMgcGFyYW1ldGVyIGFyZToKPHVsPgo8bGk+ZW50ZXJudW1iZXIgPGVtPihkZWZhdWx0KTwvZW0+IC0gRGlzcGxheSBhIGxpbmsgdG8gYSBmb3JtIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbmQgcHJlLWRlZmluZWQgdGV4dCB0byBhIHVzZXItZGVmaW5lZCBtb2JpbGUgcGhvbmUgbnVtYmVyLjwvbGk+CjxsaT5lbnRlcnRleHQgLSBEaXNwbGF5IGEgbGluayB0byBhIGZvcm0gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VuZCB1c2VyLWRlZmluZWQgdGV4dCB0byBhIHByZS1kZWZpbmVkIG1vYmlsZSBwaG9uZSBudW1iZXIuPC9saT4KPC91bD4KRU9UOwokbGFuZ1snaGVscF9kZXN0cGFnZSddID0gJ1RoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGF0IHRoZSByZXN1bHRpbmcgZm9ybSBzaG91bGQgYmUgZGlzcGxheWVkIG9uIGEgZGlmZmVyZW50IENNU01TIGNvbnRlbnQgcGFnZSAoc3BlY2lmaWVkIGJ5IHBhZ2UgaWQgb3IgYWxpYXMpJzsKJGxhbmdbJ2hlbHBfZG5kJ10gPSAnWW91IGNhbiBjaGFuZ2UgdGhlIG9yZGVyIGJ5IGRyYWdnaW5nIHJvdyhzKS4nOwokbGFuZ1snaGVscF9lbnRlcm51bWJlcnRlbXBsYXRlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBlbnRlcm51bWJlciBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbm9uIGRlZmF1bHQgZW50ZXJudW1iZXIgdGVtcGxhdGUgdG8gY3JlYXRlIHRoZSBmb3JtIHdpdGgnOwokbGFuZ1snaGVscF9lbnRlcnRleHR0ZW1wbGF0ZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZW50ZXJ0ZXh0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCBlbnRlcnRleHQgdGVtcGxhdGUgdG8gY3JlYXRlIHRoZSBmb3JtIHdpdGgnOwokbGFuZ1snaGVscF9nYXRlbmFtZSddID0gJ1RoaXMgcGFyYW1ldGVyIGFsbG93cyBvdmVycmlkaW5nIHRoZSBkZWZhdWx0IGdhdGV3YXknOwokbGFuZ1snaGVscF9pbmxpbmUnXSA9ICdUaGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhhdCB0aGUgZm9ybSBzaG91bGQgcmVwbGFjZSB0aGUgbGluayAoaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBjb250ZW50IGFyZWEgb2YgdGhlIHBhZ2UpLiAgSXQgaXMgbm90IHVzZWZ1bCB3aXRoIHRoZSBkZXN0cGFnZSBwYXJhbWV0ZXInOwokbGFuZ1snaGVscF9saW5rdGV4dCddID0gJ1RoaXMgcGFyYW1ldGVyIGFsbG93cyBvdmVycmlkaW5nIHRoZSB0ZXh0IHRoYXQgaXMgZGlzcGxheWVkIGluIHRoZSBsaW5rLiBUaGlzIHBhcmFtZXRlciBoYXMgbm8gZWZmZWN0IHdoZW4gdGhlIHVybG9ubHkgcGFyYW1ldGVyIGlzIHVzZWQuJzsKJGxhbmdbJ2hlbHBfc21zbnVtJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBlbnRlcnRleHQgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBkZWZpbmVzIHRoZSBudW1lcmljIElEIG9mIGEgcHJlLWRlZmluZWQgbW9iaWxlIHBob25lIG51bWJlcic7CiRsYW5nWydoZWxwX3Ntc3RleHQnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGVudGVybnVtYmVyIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgZGVmaW5lcyB0aGUgdGV4dCB0aGF0IHdpbGwgYmUgc2VudCBpbiB0aGUgc21zIG1lc3NhZ2UuIFRoZSB0ZXh0IGlzIG5ldmVyIGRpc3BsYXllZCBpbiB0aGUgSFRNTCBvdXRwdXQgb2YgdGhlIHBhZ2UgZm9yIHNlY3VyaXR5IHJlYXNvbnMuJzsKJGxhbmdbJ2hlbHBfc3VyZSddID0gJ0JlIDxzdHJvbmc+dmVyeSBzdXJlPC9zdHJvbmc+IGFib3V0IHdoYXQgeW91XCdyZSBkb2luZywgYmVmb3JlIG1vZGlmeWluZyBhbnl0aGluZyBleGNlcHQgdGl0bGUocykgYW5kL29yIHZhbHVlKHMpISc7CiRsYW5nWydoZWxwX3VybGNoZWNrJ10gPSAnUmVmZXIgdG8gdGhlIDxhIGhyZWY9IiVzIj4lczwvYT4gZm9yIGRldGFpbHMnOwokbGFuZ1snaGVscF91cmxvbmx5J10gPSAnVGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoYXQgaW5zdGVhZCBvZiBhIGZ1bGwgbGluayBvbmx5IHRoZSBVUkwgc2hvdWxkIGJlIGVjaG9lZCwgYWxsb3dpbmcgeW91IHRvIGJ1aWxkIHlvdXIgb3duIGxpbmsuJzsKJGxhbmdbJ2hlbHBfbW9kdWxlJ10gPSA8PDxFT1MKPGgzPldoYXQgZG9lcyBpdCBkbz88L2gzPgo8cD5UaGlzIG1vZHVsZSBhbGxvd3Mgd2Vic2l0ZSB2aXNpdG9ycyB0byBlaXRoZXIgc2VuZCBhIHByZS1kZXRlcm1pbmVkIChhbmQgZW5jcnlwdGVkKSB0ZXh0CiBtZXNzYWdlIHRvIGFueSB0ZXh0IGNhcGFibGUgcGhvbmUsIG9yIHRvIGFsbG93IHNlbmRpbmcgYSB1c2VyIHNwZWNpZmllZCB0ZXh0IG1lc3NhZ2UgdG8gYSBwcmUtZGV0ZXJtaW5lZAogKGFuZCBoaWRkZW4pIG1vYmlsZSBwaG9uZSBudW1iZXIuICBJdCBpcyB1c2VmdWwgZm9yIHN1Y2ggdGhpbmdzIGFzIHNlbmRpbmcgYWRkcmVzc2VzIGZyb20gYSBkaXJlY3RvcnkgdG8gYSBtb2JpbGUgcGhvbmUgbnVtYmVyLi4uCiBvciBmb3IgbWVzc2FnaW5nIGEgd2Vic2l0ZSBhZG1pbmlzdHJhdG9yIHdpdGggdXJnZW50IGluZm9ybWF0aW9uLjwvcD4KPGgzPkhvdyBkbyBJIHVzZSBpdD88L2gzPgo8cD5UaGUgZmlyc3QgdGhpbmcgdG8gZG8gaXMgZ3JhbnQgcmVsZXZhbnQgcGVybWlzc2lvbnMgdG8gdXNlcnMuIFRocmVlIHBlcm1pc3Npb25zIGFyZSBhdmFpbGFibGU6PC9wPgo8dWw+CjxsaT5Nb2RpZnkgbW9kdWxlIHNldHRpbmdzIG90aGVyIHRoYW4gdGVtcGxhdGVzPC9saT4KPGxpPk1vZGlmeSBtb2R1bGUgdGVtcGxhdGVzPC9saT4KPGxpPkFkbWluaXN0cmF0aW9uLCB3aGljaCBpbmNsdWRlcyB0aGUgYWJvdmUgdHdvIHBsdXMgbW9yZS1leHRlbnNpdmUgc2V0dGluZ3MgbWFuaXB1bGF0aW9uPC9saT4KPC91bD4KPHA+VGhlbiwgdmlhIHRoZSBtb2R1bGUncyBhZG1pbiBwYW5lbCAobWVudSAmcXVvdDtFeHRlbnNpb25zICZndDsmZ3Q7IFNNUyBVdGlsaXR5JnF1b3Q7KSwgcmVjb3JkIGluZm9ybWF0aW9uCmFib3V0IGhvdyB0aGUgbW9kdWxlIGlzIHRvIHdvcmsuCkNob29zZSBvbmUgb2YgdGhlIGF2YWlsYWJsZSBnYXRld2F5cyBhbmQgZW50ZXIgdGhlIGNvcnJlc3BvbmRpbmcgaW50ZXJmYWNlIHBhcmFtZXRlcnMuCkNob29zZSB2YWx1ZXMgZm9yIG1vZHVsZSBzZXR0aW5ncyBzdWNoIGFzIHRoZSBTTVMgc2VuZGluZy1saW1pdHMgKHRvIHJlZHVjZSBzcGFtKS48L3A+CjxwPlRoZW4gcGVyZm9ybSBhdCBsZWFzdCBvbmUgdGVzdCAodGhlcmUncyBhIHRhYiBpbiB0aGUgbW9kdWxlIGFkbWluIHBhbmVsIHRvIGFsbG93IHRoaXMpIHRvIGVuc3VyZSB0aGF0IFNNUyBtZXNzYWdlcyBhcmUgYmVpbmcgc2VudCB0byB5b3VyIG1vYmlsZSBwaG9uZS48L3A+CjxiciAvPgo8cD5UaGVyZSBhcmUgdHdvIHByaW1hcnkgd2F5cyB0byB1c2UgdGhpcyBtb2R1bGUgaW4gdGhlIHdlYnNpdGUgZnJvbnQgZW5kOjwvcD4KPG9sPgogPGxpPlRvIHNlbmQgcHJlZGVmaW5lZCB0ZXh0IHRvIGEgdXNlci1zcGVjaWZpZWQgcGhvbmUgbnVtYmVyLCBwdXQgYSB0YWcgbGlrZQogPGNvZGU+e1NNU0cgYWN0aW9uPSdlbnRlcm51bWJlcicgc21zdGV4dD0ndGhlIHF1aWNrIGJyb3duIGZveCd9PC9jb2RlPiBpbnRvIGEgcGFnZSBvciB0ZW1wbGF0ZS4KIFRoYXQgY3JlYXRlcyBhIGxpbmsgdGhhdCB3aGVuIGNsaWNrZWQgd2lsbCBkaXNwbGF5IGEgZm9ybSBmb3IgdGhlIHVzZXIgdG8gZW50ZXIgYSBtb2JpbGUgcGhvbmUgbnVtYmVyLjwvcD4KIDwvbGk+CiA8bGk+VG8gc2VuZCB1c2VyLXNwZWNpZmllZCB0ZXh0IHRvIGEgcHJlZGVmaW5lZCBwaG9uZSBudW1iZXIsIHB1dCBhIHRhZyBsaWtlCiA8Y29kZT57U01TRyBhY3Rpb249J2VudGVydGV4dCcgc21zbnVtPTV9PC9jb2RlPiBpbnRvIGEgcGFnZSBvciB0ZW1wbGF0ZS4KIFRoYXQgY3JlYXRlcyBhIGxpbmsgdGhhdCB3aGVuIGNsaWNrZWQgd2lsbCBkaXNwbGF5IGEgZm9ybSBmb3IgdGhlIHVzZXIgdG8gZW50ZXIgYSAxNjAtY2hhcmFjdGVyIG1lc3NhZ2UKIHRoYXQgaXMgdGhlbiBzZW50IHRvIGEgcHJlZGV0ZXJtaW5lZCBtb2JpbGUgbnVtYmVyIChpbiB0aGUgZXhhbXBsZSwgdGhlIG9uZSB3aXRoIGlkPTUpCjwvbGk+Cjwvb2w+CjxiciAvPgo8cD5UaGlzIG1vZHVsZSBjb250YWlucyBhIHNpbXBsZSBBUEkgZm9yIHNlbmRpbmcgU01TIG1lc3NhZ2VzIGZyb20gb3RoZXIgbW9kdWxlcyBvciBmcm9tIFVEVHMuClRoZSBBUEkgaXMgc2V0IG91dCBpbiBmaWxlIC4uLi9saWIvY2xhc3Muc21zX2dhdGV3YXlfYmFzZS5waHAuIEluIHN1bW1hcnksIGl0IGNvbXByaXNlczwvcD4KPHVsPgo8bGk+Z2V0X2FsaWFzKCk8L2xpPgo8bGk+Z2V0X2Rlc2NyaXB0aW9uKCk8L2xpPgo8bGk+Z2V0X25hbWUoKTwvbGk+CjxsaT5nZXRfc3RhdHVzKCk8L2xpPgo8bGk+Z2V0X3N0YXR1c21zZygpPC9saT4KPGxpPm11bHRpX251bWJlcl9zZXBhcmF0b3IoKTwvbGk+CjxsaT5yZXF1aXJlX2NvdW50cnlfcHJlZml4KCk8L2xpPgo8bGk+cmVxdWlyZV9wbHVzX3ByZWZpeCgpPC9saT4KPGxpPnJlc2V0KCk8L2xpPgo8bGk+c2VuZCgpPC9saT4KPGxpPnNldF9mcm9tKFwkZnJvbSk8L2xpPgo8bGk+c2V0X21zZyhcJG1zZyk8L2xpPgo8bGk+c2V0X251bShcJG51bSk8L2xpPgo8bGk+c3VwcG9ydF9jdXN0b21fc2VuZGVyKCk8L2xpPgo8bGk+c3VwcG9ydF9tbXMoKTwvbGk+CjwvdWw+CjxwPkEgYnJpZWYgZXhhbXBsZSBvZiBob3cgdG8gdXNlIGl0IGlzOjxiciAvPjxiciAvPgo8Y29kZT4KXCRnYXRld2F5ID0gc21zZ191dGlsczo6Z2V0X2dhdGV3YXkoKTs8YnIgLz4KXCRnYXRld2F5LT5zZXRfbXNnKCdoZWxsbyB3b3JsZCcpOzxiciAvPgpcJGdhdGV3YXktPnNldF9udW0oJzEyMjI1NTUxMjEyJyk7PGJyIC8+ClwkZ2F0ZXdheS0+c2VuZCgpOzxiciAvPgo8L2NvZGU+PC9wPgo8aDM+U01TIGdhdGV3YXlzPC9oMz4KPHA+VGhpcyBtb2R1bGUgZGVwZW5kcyBvbiBzZWxlY3RpbmcgYSBzdXBwb3J0ZWQgU01TIGdhdGV3YXkgYW5kIHJlY29yZGluZyB0aGUgY29ycmVzcG9uZGluZyBhdXRoZW50aWNhdGlvbiBhbmQgb3RoZXIgcGFyYW1ldGVycy4gWW91IHdpbGwgbmVlZCB0byBzaWduIHVwIHRvIGF0IGxlYXN0IG9uZSBvZiB0aGUgc3VwcG9ydGVkIGdhdGV3YXlzLiAgVGhpcyB3aWxsIHR5cGljYWxseSBpbnZvbHZlIHBheWluZyBtb25leSB0byB0aGUgc2VydmljZSBwcm92aWRlci48L3A+CjxwPlNNUyBnYXRld2F5cyB3aWxsIGhhdmUgdGhlaXIgb3duIHJlcXVpcmVtZW50cyBhbmQgbGltaXRhdGlvbnMgb24gdGhlIGFtb3VudCwgc2l6ZSwgc291cmNlLCBhbmQgZGVzdGluYXRpb24gbWVzc2FnZXMgdGhhdCBjYW4gYmUgc2VudC4gSXQgaXMgeW91ciByZXNwb25zaWJpbGl0eSB0byB1bmRlcnN0YW5kIHRoZXNlIGxpbWl0YXRpb25zLjwvcD4KPHA+Q3VycmVudGx5LCB0aGVzZSBnYXRld2F5cyBhcmUgaW1wbGVtZW50ZWQ6PC9wPgo8dWw+CjxsaT57JGxhbmdbJ2FkdmljZV9jbGlja2F0ZWxsJ119PC9saT4KPGxpPnskbGFuZ1snYWR2aWNlX2dvb2dsZXZvaWNlJ119PC9saT4KPGxpPnskbGFuZ1snYWR2aWNlX3Ntc2Jyb2FkY2FzdCddfTwvbGk+CjxsaT57JGxhbmdbJ2FkdmljZV90d2lsaW8nXX08L2xpPgo8L3VsPgo8aDM+RXh0cmEgZ2F0ZXdheXM8L2gzPgo8cD5BIFBIUC1jbGFzcyBtdXN0IGJlIGNyZWF0ZWQgZm9yIGVhY2ggZ2F0ZXdheS4gUmVmZXIgdG8gdGhlIFJFQURNRSBkb2N1bWVudCBpbiB0aGUgbW9kdWxlIGZvbGRlciAuLi4vbGliL2dhdGV3YXlzLjwvcD4KPHA+SWYgeW91IGFzayA8c3Ryb25nPnJlYWxseSBuaWNlbHk8L3N0cm9uZz4sIGFuZCB5b3UgY2FuIG9mZmVyIHNvbWUgc29ydCBvZiBzZXJ2aWNlIGluIHJldHVybiwgdGhlIGF1dGhvciBtaWdodCBwZXJoYXBzIGJlIHBlcnN1YWRlZCB0byBhZGQgc3VwcG9ydCBmb3Igc29tZSBvdGhlciBnYXRld2F5LjwvcD4KPGgzPlNlY3VyaXR5PC9oMz4KPHA+QXR0ZW1wdHMgaGF2ZSBiZWVuIG1hZGUgdG8gZW5zdXJlIGEgcmVhc29uYWJsZSBsZXZlbCBvZiBzZWN1cml0eSBhdCBhbGwgdGltZXMuClRoaXMgaXMgYWNjb21wbGlzaGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzOjwvcD4KPG9sPgo8bGk+QWxsIHRleHQgbWVzc2FnZXMgYXJlIGNoZWNrZWQgZm9yIGxlbmd0aCBsaW1pdHMgYW5kIHZhbGlkIGNoYXJhY3RlcnMsIGJlZm9yZSBzZW5kaW5nLjwvbGk+CjxsaT5BbGwgdGV4dCBtZXNzYWdlcyBhcmUgcmVjb3JkZWQgaW4gdGhlIGRhdGFiYXNlLCBpbmNsdWRpbmcgdGhlIElQIGFkZHJlc3Mgb2YgdGhlIHNlbmRlci48L2xpPgo8bGk+QmVmb3JlIGFueSB0ZXh0IG1lc3NhZ2UgaXMgc2VudCwgdGhlcmUncyBhIGNoZWNrIHRoYXQgdGhlIGFsbG93ZWQgbWF4aW11bSAoZGFpbHksIGhvdXJseSkgY291bnRzIG9mIG1lc3NhZ2VzIGZyb20gdGhhdCBJUCBhZGRyZXNzIGhhdmUgbm90IGJlZW4gZXhjZWVkZWQuPC9saT4KPGxpPldoZW4gc2VuZGluZyB0byBhIHByZS1kZWZpbmVkIHBob25lLCB0aGUgZGVzdGluYXRpb24gbnVtYmVyIGlzIGhpZGRlbiBmcm9tIHRoZSBpbml0aWF0b3IsIHRvIHByZXZlbnQgc3BhbW1pbmcuPC9saT4KPGxpPldoZW4gc2VuZGluZyBhIG1lc3NhZ2UsIHRoZSBtZXNzYWdlIHRleHQgaXMgc3RvcmVkIGluIHRoZSBkYXRhYmFzZSBhbmQgY2Fubm90IGJlIGFsdGVyZWQuPC9saT4KPC9vbD4KPGgzPlJlcXVpcmVtZW50czo8L2gzPgo8dWw+CjxsaT5DTVMgTWFkZSBTaW1wbGUgMS45KzwvbGk+CjxsaT5QSFAgNS4zKzwvbGk+CjxsaT5BdXRob3JpdHkgdG8gdXNlIGF0IGxlYXN0IG9uZSBzdXBvcnRlZCBnYXRld2F5PC9saT4KPGxpPlRoZSB3ZWJzaXRlIGhvc3QgbXVzdCBhbGxvdyBvdXRnb2luZyBIVFRQIGNvbm5lY3Rpb25zPC9saT4KPC91bD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGlzIG1vZHVsZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgo8cD5Gb3IgaGVscDo8L3A+Cjx1bD4KPGxpPmRpc2N1c3Npb24gbWF5IGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+OyBvcjwvbGk+CjxsaT55b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkuPC9saT4KPC91bD4KPHA+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgbW9kdWxlLCBvciB0byByZXBvcnQgYSBidWcsIHZpc2l0IHRoZSBtb2R1bGUncyA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3Ntc2ciPmZvcmdlLXBhZ2U8L2E+LjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgbGljZW5zZTwvaDM+CjxwPlBvcnRpb25zIGNvcHlyaWdodCAmY29weTsgMjAxNS0yMDE2IFRvbSBQaGFuZSAmbHQ7dHBnd3dAb25lcG9zdC5uZXQmZ3Q7LjxiciAvPgpQb3J0aW9ucyBjb3B5cmlnaHQgJmNvcHk7IDIwMTAgUm9iZXJ0IENhbXBiZWxsICZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0Oy48YnIgLz4KQWxsIHJpZ2h0cyByZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGlzIGZyZWUgc29mdHdhcmUuIEl0IG1heSBiZSByZWRpc3RyaWJ1dGVkIGFuZC9vciBtb2RpZmllZAp1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+CjxwPlRoaXMgbW9kdWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZQo8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNBR1BMIj5HTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2U8L2E+IGZvciBtb3JlIGRldGFpbHMuPC9wPgpFT1M7CiRsYW5nWydoZWxwdGl0bGUnXSA9ICdIZWxwJzsKCiNJCiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ2luZm9fZW50ZXJudW1iZXJfdGVtcGxhdGVzJ10gPSAnVGhpcyB0ZW1wbGF0ZSBhbGxvd3Mgd2Vic2l0ZSB2aXNpdG9ycyB0byBlbnRlciBhIG1vYmlsZSBwaG9uZSBudW1iZXIgdG8gcmVjZWl2ZSBhIHByZWRlZmluZWQgdGV4dCBtZXNzYWdlLic7CiRsYW5nWydpbmZvX2VudGVydGV4dF90ZW1wbGF0ZXMnXSA9ICdUaGlzIHRlbXBsYXRlIGFsbG93cyB3ZWJzaXRlIHZpc2l0b3JzIHRvIGVudGVyIGEgbWVzc2FnZSB0aGF0IHdpbGwgYmUgc2VudCB0byBhIHByZWRlZmluZWQgbW9iaWxlIHBob25lIG51bWJlci4nOwokbGFuZ1snaW5mb19zbXN0ZXN0J10gPSA8PDxFT1MKVG8gdGVzdCB3aGV0aGVyIHRoZSBzZXR0aW5ncyBmb3IgdGhlIGRlZmF1bHQgU01TIGdhdGV3YXkgYXJlIGNvcnJlY3QsIHlvdSBjYW4gc2VuZCBhIG1lc3NhZ2UgdG8gdGhlIHNwZWNpZmllZCBtb2JpbGUgcGhvbmUgbnVtYmVyLgpJdCBtYXkgYmUgPHN0cm9uZz5zZXZlcmFsIG1pbnV0ZXM8L3N0cm9uZz4gYmVmb3JlIHRoZSBwaG9uZSByZWNlaXZlcyB0aGUgbWVzc2FnZS4KRU9TOwokbGFuZ1snaW5mb19zeXNkZmx0X2VudGVybnVtYmVyX3RlbXBsYXRlJ10gPSAnVGhpcyBpcyB0aGUgc3RhcnRpbmcgcG9pbnQgZm9yIGNyZWF0aW5nIG5ldyBcJ2VudGVyIG51bWJlclwnIHRlbXBsYXRlcy4gQWx0ZXJpbmcgdGhpcyB0ZW1wbGF0ZSB3aWxsIGhhdmUgbm8gaW1tZWRpYXRlIGVmZmVjdCBvbiBhbnl0aGluZyBkaXNwbGF5ZWQgb24gdGhlIHdlYnNpdGUuJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9lbnRlcnRleHRfdGVtcGxhdGUnXSA9ICdUaGlzIGlzIHRoZSBzdGFydGluZyBwb2ludCBmb3IgY3JlYXRpbmcgbmV3IFwnZW50ZXIgdGV4dFwnIHRlbXBsYXRlcy4gQWx0ZXJpbmcgdGhpcyB0ZW1wbGF0ZSB3aWxsIGhhdmUgbm8gaW1tZWRpYXRlIGVmZmVjdCBvbiBhbnl0aGluZyBkaXNwbGF5ZWQgb24gdGhlIHdlYnNpdGUuJzsKCiNKCgoKI0sKCgojTAokbGFuZ1snbG9naW4nXSA9ICdMb2dpbic7CgojTQokbGFuZ1snbW9kdWxlX2Rlc2NyaXB0aW9uJ10gPSAnQSBtb2R1bGUgdG8gYWxsb3cgc2VuZGluZyBvZiBTTVMgbWVzc2FnZXMgZnJvbSB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgV2Vic2l0ZSc7CiRsYW5nWydtc2dfcmVjX2RlbGV0ZWQnXSA9ICdNb2JpbGUgTnVtYmVyIERlbGV0ZWQnOwoKI04KJGxhbmdbJ25hbWUnXSA9ICdOYW1lJzsKJGxhbmdbJ25vbmUnXSA9ICdOb25lJzsKJGxhbmdbJ25vbnVtYmVycyddID0gJ05vIG51bWJlciBpcyByZWNvcmRlZCc7CiRsYW5nWydudW1iZXInXSA9ICdOdW1iZXInOwoKI08KCgojUAokbGFuZ1sncGFzc3dvcmQnXSA9ICdQYXNzd29yZCc7CiRsYW5nWydwZXJtX2FkbWluJ10gPSAnQWRtaW5pc3RlciBTTVMgR2F0ZXdheXMnOwokbGFuZ1sncGVybV9tb2RpZnknXSA9ICdNb2RpZnkgU01TIEdhdGV3YXkgU2V0dGluZ3MnOwokbGFuZ1sncGVybV90ZW1wbGF0ZXMnXSA9ICdNb2RpZnkgU01TIEdhdGV3YXkgVGVtcGxhdGVzJzsKJGxhbmdbJ3Blcm1fdXNlJ10gPSAnVXNlIFNNUyBHYXRld2F5cyc7CiRsYW5nWydwaG9uZV9udW1iZXInXSA9ICdQaG9uZSBudW1iZXInOwokbGFuZ1sncGhvbmVfbnVtYmVycyddID0gJ1Bob25lcyc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJGxhbmdbJ2ZyaWVuZGx5bmFtZSddLicgbW9kdWxlIHN1Y2Nlc3NmdWxseSBpbnN0YWxsZWQsIG5vdyBwbGVhc2UgZW5zdXJlIHRoYXQgaXQgaXMgY29uZmlndXJlZCBwcm9wZXJseSBmb3IgdXNlLCBhbmQgYXBwbHkgcmVsYXRlZCBwZXJtaXNzaW9ucyc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAkbGFuZ1snZnJpZW5kbHluYW1lJ10uICcgbW9kdWxlIHN1Y2Nlc3NmdWxseSByZW1vdmVkJzsKJGxhbmdbJ3Byb21wdF9kYWlseV9saW1pdCddID0gJ051bWJlciBvZiBtZXNzYWdlcyB0aGF0IGNhbiBiZSBzZW50IGJ5IG9uZSBJUCBhZGRyZXNzIHBlciBkYXknOwokbGFuZ1sncHJvbXB0X2hvdXJseV9saW1pdCddID0gJ051bWJlciBvZiBtZXNzYWdlcyB0aGF0IGNhbiBiZSBzZW50IGJ5IG9uZSBJUCBhZGRyZXNzIHBlciBob3VyJzsKJGxhbmdbJ3Byb21wdF9sb2dfZGVsaXZlcnMnXSA9ICdSZWNvcmQgaW4gdGhlIGFkbWluIGxvZyBpbmZvcm1hdGlvbiBhYm91dCByZWNlaXZlZCBnYXRld2F5LWRlbGl2ZXJ5LXJlcG9ydHMnOwokbGFuZ1sncHJvbXB0X2xvZ19zZW5kcyddID0gJ0tlZXAgbG9jYWwgcmVjb3JkcyBvZiBzZW50IG1lc3NhZ2VzJzsKJGxhbmdbJ3Byb21wdF9sb2dfcmV0YWluX2RheXMnXSA9ICdOdW1iZXIgb2YgZGF5cyB0aGF0IGxvY2FsIHJlY29yZHMgKGlmIGVuYWJsZWQpIHdpbGwgYmUgcmV0YWluZWQnOwokbGFuZ1sncHJvbXB0X21hc3Rlcl9wYXNzd29yZCddID0gJ1Bhc3MtcGhyYXNlIGZvciBzZWN1cmluZyBzZW5zaXRpdmUgZGF0YSc7CgojUQoKCiNSCiRsYW5nWydyZXBvcnRpbmdfdXJsJ10gPSAnQW55IGdhdGV3YXkgY2FuIHNlbmQgZGVsaXZlcnkgcmVwb3J0cyB0byc7CiRsYW5nWydyZXNldCddID0gJ1Jlc2V0JzsKJGxhbmdbJ3Jlc2V0X3RpcCddID0gJ3JldmVydCB0byBmYWN0b3J5IGRlZmF1bHQnOwoKCiNTCiRsYW5nWydzYW1wbGUnXSA9ICdTYW1wbGUnOwokbGFuZ1snc2VjdXJpdHlfdGFiX2xibCddID0gJ1NlY3VyaXR5IC8gQW50aS1TcGFtJzsKJGxhbmdbJ3NlbGVjdCddID0gJ1NlbGVjdCc7CiRsYW5nWydzZW5kJ10gPSAnU2VuZCc7CiRsYW5nWydzZW5kX21lX21lc3NhZ2UnXSA9ICdTZW5kIG1lIGFuIFNNUyc7CiRsYW5nWydzZW5kX3RvX21vYmlsZSddID0gJ1NlbmQgdG8gbW9iaWxlJzsKJGxhbmdbJ3Ntc19tZXNzYWdlX3NlbnQnXSA9ICdZb3VyIG1lc3NhZ2UgaGFzIGJlZW4gc2VudC4uLiBBY3R1YWwgZGVsaXZlcnkgdGltZSBtYXkgdmFyeSc7CiRsYW5nWydzbXNfc2VudCddID0gJ1NNUyBNZXNzYWdlICIlcyIgc2VudCB0byAlcyBmcm9tIElQOiVzIFNNU0lEPSVzJzsKJGxhbmdbJ3Ntc19kZWxpdmVyeV9vayddID0gJ1NNUyBNZXNzYWdlIElEOiVzIGRlbGl2ZXJlZCB0byAlcyBJUDolcyc7CiRsYW5nWydzbXNfZGVsaXZlcnlfYmlsbGluZyddID0gJ1NNUyBNZXNzYWdlIElEOiVzIGJpbGxpbmcgZXJyb3IgYXQgJXMuIElQOiVzJzsKJGxhbmdbJ3Ntc19kZWxpdmVyeV9pbnZhbGlkJ10gPSAnU01TIE1lc3NhZ2UgSUQ6JXMgZmFpbGVkIChiYXJyZWQgb3IgaW52YWxpZCBudW1iZXI6ICVzKSBJUDolcyc7CiRsYW5nWydzbXNfZGVsaXZlcnlfb3RoZXInXSA9ICdTTVMgTWVzc2FnZSBJRDolcyBvdGhlciBlcnJvciAoZmlsdGVyZWQgb3IgbWlzYyBlcnJvciB0byAlcykgSVA6ICVzJzsKJGxhbmdbJ3Ntc19kZWxpdmVyeV9wZW5kaW5nJ10gPSAnU01TIE1lc3NhZ2UgSUQ6JXMgcGVuZGluZyB0byAlcyBJUDolcyc7CiRsYW5nWydzbXNfZGVsaXZlcnlfdW5rbm93biddID0gJ1NNUyBNZXNzYWdlIElEOiVzIHVua25vd24gZXJyb3IgYXQgJXMuIElQOiVzJzsKJGxhbmdbJ3Ntc19lcnJvcl9hdXRoJ10gPSAnQXV0aGVudGljYXRpb24gRXJyb3IgYXR0ZW1wdGluZyB0byBzZW5kIFNNUyBNZXNzYWdlICIlcyIgdG8gJXMgZnJvbSBJUDolcyc7CiRsYW5nWydzbXNfZXJyb3JfYmxvY2tlZCddID0gJ0F0dGVtcHQgdG8gc2VuZCBTTVMgTWVzc2FnZSAiJXMiIHRvICVzIGZyb20gSVA6JXMnOwokbGFuZ1snc21zX2Vycm9yX2ludmFsaWRfZGF0YSddID0gJ0RhdGEgRXJyb3IgYXR0ZW1wdGluZyB0byBzZW5kIFNNUyBNZXNzYWdlICIlcyIgdG8gJXMgZnJvbSBJUDolcyc7CiRsYW5nWydzbXNfZXJyb3JfbGltaXQnXSA9ICdMaW1pdCBFcnJvciBhdHRlbXB0aW5nIHRvIHNlbmQgU01TIE1lc3NhZ2UgIiVzIiB0byAlcyBmcm9tIElQOiVzJzsKJGxhbmdbJ3Ntc19lcnJvcl9vdGhlciddID0gJ1Vua25vd24gRXJyb3IgKCVzKSBhdHRlbXB0aW5nIHRvIHNlbmQgU01TIE1lc3NhZ2UgIiVzIiB0byAlcyBmcm9tIElQOiVzJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1N1Ym1pdCc7CiRsYW5nWydzdXJlX2FzayddID0gJ0FyZSB5b3Ugc3VyZSA/JzsKCiNUCiRsYW5nWyd0YXNrZGVzY3JpcHRpb25fY2xlYXJsb2cnXSA9ICdSZW1vdmUgb2xkIGxvZyBkYXRhJzsKJGxhbmdbJ3RlbXBsYXRlX2NvbnRlbnQnXSA9ICdDb250ZW50JzsKJGxhbmdbJ3RlbXBsYXRlX3NhdmVkJ10gPSAnVGVtcGxhdGUgc2F2ZWQnOwokbGFuZ1sndGVtcGxhdGVfbmFtZSddID0gJ1RlbXBsYXRlIG5hbWUnOwokbGFuZ1sndGVzdCddID0gJ1Rlc3QnOwokbGFuZ1sndGVzdF9tZXNzYWdlJ10gPSAnVGVzdCBtZXNzYWdlIGZyb20gJXMnOwokbGFuZ1sndGl0bGUnXSA9ICdEaXNwbGF5ZWQgdGl0bGUnOwokbGFuZ1sndGl0bGVfZW50ZXJudW1iZXJfdGVtcGxhdGVzJ10gPSAnJnF1b3Q7RW50ZXIgWW91ciBOdW1iZXImcXVvdDsgdGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfZW50ZXJ0ZXh0X3RlbXBsYXRlcyddID0gJyZxdW90O0VudGVyIFlvdXIgTWVzc2FnZSZxdW90OyB0ZW1wbGF0ZSc7CgojVQokbGFuZ1sndXNlcm5hbWUnXSA9ICdVc2VybmFtZSc7CgojVgokbGFuZ1sndmFsdWUnXSA9ICdWYWx1ZSc7CgoKI1cKCgojWAoKCiNZCiRsYW5nWyd5ZXMnXSA9ICdZZXMnOwoKI1oKCgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.Encryption.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoqCiAqIEEgY2xhc3MgdG8gaGFuZGxlIHNlY3VyZSBlbmNyeXB0aW9uIGFuZCBkZWNyeXB0aW9uIG9mIGFyYml0cmFyeSBkYXRhCiAqCiAqIE5vdGUgdGhhdCB0aGlzIGlzIG5vdCBqdXN0IHN0cmFpZ2h0IGVuY3J5cHRpb24uICBJdCBhbHNvIGhhcyBhIGZldyBvdGhlcgogKiAgZmVhdHVyZXMgaW4gaXQgdG8gbWFrZSB0aGUgZW5jcnlwdGVkIGRhdGEgZmFyIG1vcmUgc2VjdXJlLiAgTm90ZSB0aGF0IGFueQogKiAgb3RoZXIgaW1wbGVtZW50YXRpb25zIHVzZWQgdG8gZGVjcnlwdCBkYXRhIHdpbGwgaGF2ZSB0byBkbyB0aGUgc2FtZSBleGFjdAogKiAgb3BlcmF0aW9ucy4gIAogKgogKiBTZWN1cml0eSBCZW5lZml0czoKICogIFVzZXMgS2V5IHN0cmV0Y2hpbmcKICogIEhpZGVzIHRoZSBJbml0aWFsaXphdGlvbiBWZWN0b3IKICogIERvZXMgSE1BQyB2ZXJpZmljYXRpb24gb2Ygc291cmNlIGRhdGEKICoKICogU2VlIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNTA4OTg0MS90d28td2F5LWVuY3J5cHRpb24taS1uZWVkLXRvLXN0b3JlLXBhc3N3b3Jkcy10aGF0LWNhbi1iZS1yZXRyaWV2ZWQKICoKICogVXNhZ2UgZXhhbXBsZToKICogJGUgPSBuZXcgRW5jcnlwdGlvbihNQ1JZUFRfQkxPV0ZJU0gsIE1DUllQVF9NT0RFX0NCQyk7CiAqICRlbmNyeXB0ZWREYXRhID0gJGUtPmVuY3J5cHQoJGRhdGEsJGtleSk7CiAqIFRoZW4sIHRvIGRlY3J5cHQ6CiAqICRlID0gbmV3IEVuY3J5cHRpb24oTUNSWVBUX0JMT1dGSVNILCBNQ1JZUFRfTU9ERV9DQkMpOwogKiAkZGF0YSA9ICRlLT5kZWNyeXB0KCRlbmNyeXB0ZWREYXRhLCRrZXkpOwogKgogKiBSZXF1aXJlczoKICogbWNyeXB0IGV4dGVuc2lvbiAKICovCmNsYXNzIEVuY3J5cHRpb24gewoKICAgIC8qKgogICAgICogQHZhciBzdHJpbmcgJGNpcGhlciBUaGUgbWNyeXB0IGNpcGhlciB0byB1c2UgZm9yIHRoaXMgaW5zdGFuY2UKICAgICAqLwogICAgcHJvdGVjdGVkICRjaXBoZXIgPSAnJzsKCiAgICAvKioKICAgICAqIEB2YXIgaW50ICRtb2RlIFRoZSBtY3J5cHQgY2lwaGVyIG1vZGUgdG8gdXNlCiAgICAgKi8KICAgIHByb3RlY3RlZCAkbW9kZSA9ICcnOwoKICAgIC8qKgogICAgICogQHZhciBpbnQgJHJvdW5kcyBUaGUgbnVtYmVyIG9mIHJvdW5kcyB0byBmZWVkIGludG8gUEJLREYyIGZvciBrZXkgZ2VuZXJhdGlvbgogICAgICovCiAgICBwcm90ZWN0ZWQgJHJvdW5kcyA9IDEwMDsKCiAgICAvKioKICAgICAqIENvbnN0cnVjdG9yIQogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJGNpcGhlciBUaGUgTUNSWVBUXyogY3lwaGVyIHRvIHVzZSBmb3IgdGhpcyBpbnN0YW5jZQogICAgICogQHBhcmFtIGludCAgICAkbW9kZSAgIFRoZSBNQ1JZUFRfTU9ERV8qIG1vZGUgdG8gdXNlIGZvciB0aGlzIGluc3RhbmNlCiAgICAgKiBAcGFyYW0gaW50ICAgICRyb3VuZHMgVGhlIG51bWJlciBvZiBQQktERjIgcm91bmRzIHRvIGRvIG9uIHRoZSBrZXkKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRjaXBoZXIsICRtb2RlLCAkcm91bmRzID0gMTAwKSB7CiAgICAgICAgJHRoaXMtPmNpcGhlciA9ICRjaXBoZXI7CiAgICAgICAgJHRoaXMtPm1vZGUgPSAkbW9kZTsKICAgICAgICAkdGhpcy0+cm91bmRzID0gKGludCkgJHJvdW5kczsKICAgIH0KCiAgICAvKioKICAgICAqIERlY3J5cHQgdGhlIGRhdGEgd2l0aCB0aGUgcHJvdmlkZWQga2V5CiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkZGF0YSBUaGUgZW5jcnlwdGVkIGRhdGF0IHRvIGRlY3J5cHQKICAgICAqIEBwYXJhbSBzdHJpbmcgJGtleSAgVGhlIGtleSB0byB1c2UgZm9yIGRlY3J5cHRpb24KICAgICAqCiAgICAgKiBAcmV0dXJucyBzdHJpbmd8ZmFsc2UgVGhlIHJldHVybmVkIHN0cmluZyBpZiBkZWNyeXB0aW9uIGlzIHN1Y2Nlc3NmdWwKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgaWYgaXQgaXMgbm90CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBkZWNyeXB0KCRkYXRhLCAka2V5KSB7CiAgICAgICAgJHNhbHQgPSBzdWJzdHIoJGRhdGEsIDAsIDEyOCk7CiAgICAgICAgJGVuYyA9IHN1YnN0cigkZGF0YSwgMTI4LCAtNjQpOwogICAgICAgICRtYWMgPSBzdWJzdHIoJGRhdGEsIC02NCk7CgogICAgICAgIGxpc3QgKCRjaXBoZXJLZXksICRtYWNLZXksICRpdikgPSAkdGhpcy0+Z2V0S2V5cygkc2FsdCwgJGtleSk7CgogICAgICAgIGlmICgkbWFjICE9PSBoYXNoX2htYWMoJ3NoYTUxMicsICRlbmMsICRtYWNLZXksIHRydWUpKSB7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQoKICAgICAgICAkZGVjID0gbWNyeXB0X2RlY3J5cHQoJHRoaXMtPmNpcGhlciwgJGNpcGhlcktleSwgJGVuYywgJHRoaXMtPm1vZGUsICRpdik7CgogICAgICAgICRkYXRhID0gJHRoaXMtPnVucGFkKCRkZWMpOwoKICAgICAgICByZXR1cm4gJGRhdGE7CiAgICB9CgogICAgLyoqCiAgICAgKiBFbmNyeXB0IHRoZSBzdXBwbGllZCBkYXRhIHVzaW5nIHRoZSBzdXBwbGllZCBrZXkKICAgICAqIAogICAgICogQHBhcmFtIHN0cmluZyAkZGF0YSBUaGUgZGF0YSB0byBlbmNyeXB0CiAgICAgKiBAcGFyYW0gc3RyaW5nICRrZXkgIFRoZSBrZXkgdG8gZW5jcnlwdCB3aXRoCiAgICAgKgogICAgICogQHJldHVybnMgc3RyaW5nLCB0aGUgZW5jcnlwdGVkIGRhdGEKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGVuY3J5cHQoJGRhdGEsICRrZXkpIHsKICAgICAgICAkc2FsdCA9IG1jcnlwdF9jcmVhdGVfaXYoMTI4LCBNQ1JZUFRfREVWX1VSQU5ET00pOwogICAgICAgIGxpc3QgKCRjaXBoZXJLZXksICRtYWNLZXksICRpdikgPSAkdGhpcy0+Z2V0S2V5cygkc2FsdCwgJGtleSk7CgogICAgICAgICRkYXRhID0gJHRoaXMtPnBhZCgkZGF0YSk7CgogICAgICAgICRlbmMgPSBtY3J5cHRfZW5jcnlwdCgkdGhpcy0+Y2lwaGVyLCAkY2lwaGVyS2V5LCAkZGF0YSwgJHRoaXMtPm1vZGUsICRpdik7CgogICAgICAgICRtYWMgPSBoYXNoX2htYWMoJ3NoYTUxMicsICRlbmMsICRtYWNLZXksIHRydWUpOwogICAgICAgIHJldHVybiAkc2FsdCAuICRlbmMgLiAkbWFjOwogICAgfQoKICAgIC8qKgogICAgICogR2VuZXJhdGVzIGEgc2V0IG9mIGtleXMgZ2l2ZW4gYSByYW5kb20gc2FsdCBhbmQgYSBtYXN0ZXIga2V5CiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkc2FsdCBBIHJhbmRvbSBzdHJpbmcgdG8gY2hhbmdlIHRoZSBrZXlzIGVhY2ggZW5jcnlwdGlvbgogICAgICogQHBhcmFtIHN0cmluZyAka2V5ICBUaGUgc3VwcGxpZWQga2V5IHRvIGVuY3J5cHQgd2l0aAogICAgICoKICAgICAqIEByZXR1cm5zIGFycmF5IG9mIGtleXMgKGEgY2lwaGVyIGtleSwgYSBtYWMga2V5LCBhbmQgYSBJVikKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldEtleXMoJHNhbHQsICRrZXkpIHsKICAgICAgICAkaXZTaXplID0gbWNyeXB0X2dldF9pdl9zaXplKCR0aGlzLT5jaXBoZXIsICR0aGlzLT5tb2RlKTsKICAgICAgICAka2V5U2l6ZSA9IG1jcnlwdF9nZXRfa2V5X3NpemUoJHRoaXMtPmNpcGhlciwgJHRoaXMtPm1vZGUpOwogICAgICAgICRsZW5ndGggPSAyICogJGtleVNpemUgKyAkaXZTaXplOwoKICAgICAgICAka2V5ID0gJHRoaXMtPnBia2RmMignc2hhNTEyJywgJGtleSwgJHNhbHQsICR0aGlzLT5yb3VuZHMsICRsZW5ndGgpOwoKICAgICAgICAkY2lwaGVyS2V5ID0gc3Vic3RyKCRrZXksIDAsICRrZXlTaXplKTsKICAgICAgICAkbWFjS2V5ID0gc3Vic3RyKCRrZXksICRrZXlTaXplLCAka2V5U2l6ZSk7CiAgICAgICAgJGl2ID0gc3Vic3RyKCRrZXksIDIgKiAka2V5U2l6ZSk7CiAgICAgICAgcmV0dXJuIGFycmF5KCRjaXBoZXJLZXksICRtYWNLZXksICRpdik7CiAgICB9CgogICAgLyoqCiAgICAgKiBTdHJldGNoIHRoZSBrZXkgdXNpbmcgdGhlIFBCS0RGMiBhbGdvcml0aG0KICAgICAqCiAgICAgKiBAc2VlIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUEJLREYyCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkYWxnbyAgIFRoZSBhbGdvcml0aG0gdG8gdXNlCiAgICAgKiBAcGFyYW0gc3RyaW5nICRrZXkgICAgVGhlIGtleSB0byBzdHJldGNoCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzYWx0ICAgQSByYW5kb20gc2FsdAogICAgICogQHBhcmFtIGludCAgICAkcm91bmRzIFRoZSBudW1iZXIgb2Ygcm91bmRzIHRvIGRlcml2ZQogICAgICogQHBhcmFtIGludCAgICAkbGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIG91dHB1dCBrZXkKICAgICAqCiAgICAgKiBAcmV0dXJucyBzdHJpbmcsIHRoZSBkZXJpdmVkIGtleS4KICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHBia2RmMigkYWxnbywgJGtleSwgJHNhbHQsICRyb3VuZHMsICRsZW5ndGgpIHsKICAgICAgICAkc2l6ZSAgID0gc3RybGVuKGhhc2goJGFsZ28sICcnLCB0cnVlKSk7CiAgICAgICAgJGxlbiAgICA9IGNlaWwoJGxlbmd0aCAvICRzaXplKTsKICAgICAgICAkcmVzdWx0ID0gJyc7CiAgICAgICAgZm9yICgkaSA9IDE7ICRpIDw9ICRsZW47ICRpKyspIHsKICAgICAgICAgICAgJHRtcCA9IGhhc2hfaG1hYygkYWxnbywgJHNhbHQgLiBwYWNrKCdOJywgJGkpLCAka2V5LCB0cnVlKTsKICAgICAgICAgICAgJHJlcyA9ICR0bXA7CiAgICAgICAgICAgIGZvciAoJGogPSAxOyAkaiA8ICRyb3VuZHM7ICRqKyspIHsKICAgICAgICAgICAgICAgICAkdG1wICA9IGhhc2hfaG1hYygkYWxnbywgJHRtcCwgJGtleSwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgJHJlcyBePSAkdG1wOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRyZXN1bHQgLj0gJHJlczsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHN1YnN0cigkcmVzdWx0LCAwLCAkbGVuZ3RoKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gcGFkKCRkYXRhKSB7CiAgICAgICAgJGxlbmd0aCA9IG1jcnlwdF9nZXRfYmxvY2tfc2l6ZSgkdGhpcy0+Y2lwaGVyLCAkdGhpcy0+bW9kZSk7CiAgICAgICAgJHBhZEFtb3VudCA9ICRsZW5ndGggLSBzdHJsZW4oJGRhdGEpICUgJGxlbmd0aDsKICAgICAgICBpZiAoJHBhZEFtb3VudCA9PSAwKSB7CiAgICAgICAgICAgICRwYWRBbW91bnQgPSAkbGVuZ3RoOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGRhdGEgLiBzdHJfcmVwZWF0KGNocigkcGFkQW1vdW50KSwgJHBhZEFtb3VudCk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHVucGFkKCRkYXRhKSB7CiAgICAgICAgJGxlbmd0aCA9IG1jcnlwdF9nZXRfYmxvY2tfc2l6ZSgkdGhpcy0+Y2lwaGVyLCAkdGhpcy0+bW9kZSk7CiAgICAgICAgJGxhc3QgPSBvcmQoJGRhdGFbc3RybGVuKCRkYXRhKSAtIDFdKTsKICAgICAgICBpZiAoJGxhc3QgPiAkbGVuZ3RoKSByZXR1cm4gZmFsc2U7CiAgICAgICAgaWYgKHN1YnN0cigkZGF0YSwgLTEgKiAkbGFzdCkgIT09IHN0cl9yZXBlYXQoY2hyKCRsYXN0KSwgJGxhc3QpKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHN1YnN0cigkZGF0YSwgMCwgLTEgKiAkbGFzdCk7CiAgICB9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.skeleton_sms_gateway.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgovL2NsYXNzIG5hbWUgbXVzdCBiZSBsaWtlICdzb21lbmFtZV9zbXNfZ2F0ZXdheScKY2xhc3Mgc2tlbGV0b25fc21zX2dhdGV3YXkgZXh0ZW5kcyBzbXNfZ2F0ZXdheV9iYXNlCnsKCS8vVE9ETyBzcGVjaWZpYyBuYW1lIGFuZCByZWFsIFVSTCBmb3IgQVBJIHJlZmVyZW5jZQoJY29uc3QgU0tFTF9BUElfVVJMID0gJ2h0dHBzOi8vc29tZXdoZXJlLmNvbS8uLi4nOwoJcHJpdmF0ZSAkX3Jhd3N0YXR1czsKCglwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKQoJewoJCS8vVE9ETwoJCXJldHVybiAnTXkgTmFtZSc7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGdldF9hbGlhcygpCgl7CgkJLy9tdXN0IGJlIHRoaXMgY2xhc3MnIG5hbWUgbGVzcyB0aGUgdHJhaWxpbmcgJ19zbXNfZ2F0ZXdheScKCQkvL1RPRE8KCQlyZXR1cm4gJ3NrZWxldG9uJzsKCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rlc2NyaXB0aW9uKCkKCXsKCQkvL0RFUFJFQ0FURUQgc2VlIGRhdGFiYXNlIHRhYmxlCgkJcmV0dXJuICcnOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBzdXBwb3J0X2N1c3RvbV9zZW5kZXIoKQoJewoJCS8vVE9ETwoJCXJldHVybiBGQUxTRTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gc3VwcG9ydF9tbXMoKQoJewoJCS8vVE9ETwoJCXJldHVybiBGQUxTRTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gcmVxdWlyZV9jb3VudHJ5X3ByZWZpeCgpCgl7CgkJLy9UT0RPCgkJcmV0dXJuIFRSVUU7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHJlcXVpcmVfcGx1c19wcmVmaXgoKQoJewoJCXJldHVybiBGQUxTRTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gbXVsdGlfbnVtYmVyX3NlcGFyYXRvcigpCgl7CgkJLy9UT0RPCgkJcmV0dXJuIEZBTFNFOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiB1cHNlcnRfdGFibGVzKCkKCXsKCQkkZ2lkID0gc21zZ191dGlsczo6c2V0Z2F0ZSgkdGhpcyk7CgkJaWYoJGdpZCkKCQl7CgkJCXBhcmVudDo6c2V0X2dhdGVpZCgkZ2lkKTsKCQkJJG1vZCA9ICR0aGlzLT5fbW9kdWxlOwoJCSAgICAvL3NldHByb3BzKCkgYXJndW1lbnQgJHByb3BzID0gYXJyYXkgb2YgYXJyYXlzLCBlYWNoIHdpdGggWzBdPXRpdGxlIFsxXT1hcGluYW1lIFsyXT12YWx1ZSBbM109ZW5jcnlwdAoJCQkvL2J5IGNvbnZlbnRpb24sIGFwaW5hbWUncyB3aGljaCBhcmUgbm90IGFjdHVhbGx5IHVzZWQgYXJlIGluZGljYXRlZCBieSBhICdfJyBwcmVmaXgKCQkJc21zZ191dGlsczo6c2V0cHJvcHMoJGdpZCxhcnJheSgKCQkJIGFycmF5KCRtb2QtPkxhbmcoJ3VzZXJuYW1lJyksJ3VzZXInLE5VTEwsMCksCgkJCSBhcnJheSgkbW9kLT5MYW5nKCdwYXNzd29yZCcpLCdwYXNzd29yZCcsTlVMTCwxKQoJCQkpKTsKCQl9CgkJcmV0dXJuICRnaWQ7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGN1c3RvbV9zZXR1cCgmJHRwbHZhcnMsJHBhZG0pCgl7CgkJLy9lLmcuCgkJZm9yZWFjaCgkdHBsdmFyc1snZGF0YSddIGFzICYkb2IpCgkJewoJCQkvL3NldCBzdHVmZiBlLmcuICRvYi0+c2l6ZSwgJG9iLT5oZWxwCgkJfQoJCXVuc2V0KCRvYik7CgkJaWYoJHBhZG0pCgkJewoJCQkkdHBsdmFyc1snaGVscCddIC49ICc8YnIgLz4nLgoJCQkJJHRoaXMtPl9tb2R1bGUtPkxhbmcoJ2hlbHBfdXJsY2hlY2snLHNlbGY6OlNLRUxfQVBJX1VSTCxzZWxmOjpnZXRfbmFtZSgpLicgQVBJJyk7CgkJfQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBjdXN0b21fc2F2ZSgmJHBhcmFtcykKCXsKCQkvL1RPRE8KLyogJHBhcmFtcyA9IGFycmF5IGxpa2UgKAogICdzbXNfZ2F0ZXdheScgPT4gJ3NrZWxldG9uJwogIC4uLi4KICAnc2tlbGV0b25+dXNlcn50aXRsZScgPT4gJ1VzZXJuYW1lJwogICdza2VsZXRvbn51c2VyfnZhbHVlJyA9PiAnTWUnCiAgJ3NrZWxldG9ufnVzZXJ+YXBpbmFtZScgPT4gJ3VzZXInCiAgJ3NrZWxldG9ufnVzZXJ+YWN0aXZlJyA9PiAnb24nCiAgJ3NrZWxldG9ufnBhc3N3b3JkfnRpdGxlJyA9PiAnUGFzc3dvcmQnCiAgJ3NrZWxldG9ufnBhc3N3b3JkfnZhbHVlJyA9PiAnYXNkYXNkYScKICAnc2tlbGV0b25+cGFzc3dvcmR+YXBpbmFtZScgPT4gJ3Bhc3N3b3JkJwogICdza2VsZXRvbn5wYXNzd29yZH5hY3RpdmUnID0+ICdvbicKICAuLi4uCiAgJ3NrZWxldG9ufmdhdGVfaWQnID0+IHN0cmluZyAnMScpCiAgLi4uLgoqLwoJfQoKCXByb3RlY3RlZCBmdW5jdGlvbiBzZXR1cCgpCgl7CgkJLy9UT0RPCgl9CgoJcHJvdGVjdGVkIGZ1bmN0aW9uIHByZXBfY29tbWFuZCgpCgl7CgkJLy9nZXQgJ3B1YmxpYycgcGFyYW1ldGVycyBmb3IgaW50ZXJmYWNlCgkJJGdpZCA9IHBhcmVudDo6Z2V0X2dhdGVpZChzZWxmOjpnZXRfYWxpYXMoKSk7CgkJJHBhcm1zID0gc21zZ191dGlsczo6Z2V0cHJvcHMoJHRoaXMtPl9tb2R1bGUsJGdpZCk7CgkJaWYoCgkJICRwYXJtc1snd2hhdGV2ZXInXVsndmFsdWUnXSA9PSBGQUxTRSB8fAoJCSAkcGFybXNbJ3NvbWVvdGhlciddWyd2YWx1ZSddID09IEZBTFNFCgkJKQoJCXsKCQkJJHRoaXMtPl9zdGF0dXMgPSBwYXJlbnQ6OlNUQVRfRVJST1JfQVVUSDsKCQkJcmV0dXJuIEZBTFNFOwoJCX0KCQkvL2NvbnZlcnQgJHBhcm1zIGRhdGEgZm9ybWF0IGlmIG5lZWRlZAoJCS8vTU9SRSAkcGFybXMgLSB0bywgZnJvbSwgYm9keSBldGMsIGZvcm1hdC1hZGp1c3RlZCBhcyBuZWVkZWQKCQkkc3RyID0gc21zZ191dGlsczo6aW1wbG9kZV93aXRoX2tleSgkcGFybXMpOwoJCSRzdHIgPSBzb21lX3VybC4nPycuc3RyX3JlcGxhY2UoJ2FtcDsnLCcnLCRzdHIpOwoJCXJldHVybiAkc3RyOwoJfQoKLyogaWYgd2UgY2FuJ3QgdXNlIHRoZSBpbnRlcm5hbCBtZWNoYW5pc20gdG8gc2VuZCBtZXNzYWdlcywgcG9wdWxhdGUgdGhpcyBpbnN0ZWFkIG9mIHByZXBfY29tbWFuZCgpCiAgIGFuZCBtYWtlIHByZXBfY29tbWFuZCB7IHJldHVybiAnZ29vZCc7IC8vb3IgYW55dGhpbmcgZWxzZSBub3QgRkFMU0UgfQoJcHJvdGVjdGVkIGZ1bmN0aW9uIF9jb21tYW5kKCRjbWQpCgl7Cgl9CiovCglwcm90ZWN0ZWQgZnVuY3Rpb24gcGFyc2VfcmVzdWx0KCRzdHIpCgl7CgkJJHRoaXMtPl9yYXdzdGF0dXMgPSAkc3RyOwoJCS8vVE9ETyBwYXJzZSAkc3RyCgkJJHRoaXMtPl9zdGF0dXMgPSBwYXJlbnQ6OlNUQVRfRVJST1JfQVVUSDsgLy9vciB3aGF0ZXZlcgoJfQoKCXB1YmxpYyBmdW5jdGlvbiBwcm9jZXNzX2RlbGl2ZXJ5X3JlcG9ydCgpCgl7CgkJLy9UT0RPIG11c3QgcGFyc2UgJF9SRVFVRVNUIGRpcmVjdGx5CgkJJHNtc3RvID0gJyc7CgkJJHNtc2lkID0gJyc7CgkJJHN0YXR1cyA9IHBhcmVudDo6REVMSVZFUllfVU5LTk9XTjsgLy9vciB3aGF0ZXZlcgoJCXJldHVybiBzbXNnX3V0aWxzOjpnZXRfZGVsaXZlcnlfbXNnKCR0aGlzLT5fbW9kdWxlLCRzdGF0dXMsJHNtc2lkLCRzbXN0byk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGdldF9yYXdfc3RhdHVzKCkKCXsKCQlyZXR1cm4gJHRoaXMtPl9yYXdzdGF0dXM7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.smsg_clearlog_task.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpjbGFzcyBzbXNnX2NsZWFybG9nX3Rhc2sgaW1wbGVtZW50cyBDbXNSZWd1bGFyVGFzawp7CglwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKSAKCXsKCQlyZXR1cm4gZ2V0X2NsYXNzKCR0aGlzKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rlc2NyaXB0aW9uKCkKCXsKCQkkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKFNNU0c6Ok1PRE5BTUUpOwoJCXJldHVybiAkbW9kLT5MYW5nKCd0YXNrZGVzY3JpcHRpb25fY2xlYXJsb2cnKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gdGVzdCgkdGltZSA9ICcnKQoJewoJCSRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoU01TRzo6TU9ETkFNRSk7CgkJaWYoISgkbW9kLT5HZXRQcmVmZXJlbmNlKCdsb2dzZW5kcycpCgkJICB8fCAkbW9kLT5HZXRQcmVmZXJlbmNlKCdsb2dkZWxpdmVyaWVzJykpKQoJCQlyZXR1cm4gRkFMU0U7CgkJJGRheXMgPSAoaW50KSRtb2QtPkdldFByZWZlcmVuY2UoJ2xvZ2RheXMnKTsKCQlpZigkZGF5cyA8PSAwKQoJCQlyZXR1cm4gRkFMU0U7CgkJaWYoISR0aW1lKQoJCQkkdGltZSA9IHRpbWUoKTsKCQkkbGFzdF9jbGVhcmVkID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnbGFzdGNsZWFyZWQnKTsKCQlyZXR1cm4gKCR0aW1lID49ICRsYXN0X2NsZWFyZWQgKyAkZGF5cyo4NjQwMCk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGV4ZWN1dGUoJHRpbWUgPSAnJykKCXsKCQlpZighJHRpbWUpCgkJCSR0aW1lID0gdGltZSgpOwoJCXNtc2dfdXRpbHM6OmNsZWFuX2xvZyhOVUxMLCR0aW1lKTsKCQlyZXR1cm4gVFJVRTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gb25fc3VjY2VzcygkdGltZSA9ICcnKQoJewoJCWlmKCEkdGltZSkKCQkJJHRpbWUgPSB0aW1lKCk7CgkJJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZShTTVNHOjpNT0ROQU1FKTsKCQkkbW9kLT5TZXRQcmVmZXJlbmNlKCdsYXN0Y2xlYXJlZCcsJHRpbWUpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBvbl9mYWlsdXJlKCR0aW1lID0gJycpCgl7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.smsg_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpjbGFzcyBzbXNnX3V0aWxzCnsKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2dhdGV3YXlzX2Z1bGwoJiRtb2QgPSBOVUxMKQoJewoJCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgkJJGFsaWFzZXMgPSAkZGItPkdldENvbCgnU0VMRUNUIGFsaWFzIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zbXNnX2dhdGVzIFdIRVJFIGVuYWJsZWQ+MCcpOwoJCWlmKCEkYWxpYXNlcykKCQkJcmV0dXJuIEZBTFNFOwoJCSRkaXIgPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCdnYXRld2F5cycsJycpOwoJCWlmKCRtb2QgPT09IE5VTEwpCgkJCSRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoU01TRzo6TU9ETkFNRSk7CgkJJG9ianMgPSBhcnJheSgpOwoJCWZvcmVhY2goJGFsaWFzZXMgYXMgJHRoaXNvbmUpCgkJewoJCQkkY2xhc3NuYW1lID0gJHRoaXNvbmUuJ19zbXNfZ2F0ZXdheSc7CgkJCWlmKCFjbGFzc19leGlzdHMoJGNsYXNzbmFtZSkpCgkJCQlpbmNsdWRlKCRkaXIuJ2NsYXNzLicuJGNsYXNzbmFtZS4nLnBocCcpOwoKCQkJJG9iaiA9IG5ldyAkY2xhc3NuYW1lKCRtb2QpOwoJCQkvL3JldHVybiBhcnJheSwgc28gb3RoZXIga2V5cyBtYXkgYmUgYWRkZWQsIHVwc3RyZWFtCgkJCSRvYmpzWyR0aGlzb25lXSA9IGFycmF5KCdvYmonID0+ICRvYmopOwoJCX0KCgkJcmV0dXJuICRvYmpzOwoJfQoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2dhdGV3YXkoJHRpdGxlID0gRkFMU0UsICYkbW9kID0gTlVMTCkKCXsKCQkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoJCSRwcmVmID0gY21zX2RiX3ByZWZpeCgpOwoJCSRhbGlhcyA9ICgkdGl0bGUpID8KCQkJJGRiLT5HZXRPbmUoJ1NFTEVDVCBhbGlhcyBGUk9NICcuJHByZWYuJ21vZHVsZV9zbXNnX2dhdGVzIFdIRVJFIHRpdGxlPT8gQU5EIGVuYWJsZWQ+MCcsYXJyYXkoJHRpdGxlKSk6CgkJCSRkYi0+R2V0T25lKCdTRUxFQ1QgYWxpYXMgRlJPTSAnLiRwcmVmLidtb2R1bGVfc21zZ19nYXRlcyBXSEVSRSBhY3RpdmU+MCBBTkQgZW5hYmxlZD4wJyk7CgkJaWYoJGFsaWFzKQoJCXsKCQkJJGNsYXNzbmFtZSA9ICRhbGlhcy4nX3Ntc19nYXRld2F5JzsKCQkJaWYoIWNsYXNzX2V4aXN0cygkY2xhc3NuYW1lKSkKCQkJewoJCQkJJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwnZ2F0ZXdheXMnLCdjbGFzcy4nLiRjbGFzc25hbWUuJy5waHAnKTsKCQkJCXJlcXVpcmVfb25jZSgkZm4pOwoJCQl9CgkJCWlmKCRtb2QgPT09IE5VTEwpCgkJCQkkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKFNNU0c6Ok1PRE5BTUUpOwoJCQkkb2JqID0gbmV3ICRjbGFzc25hbWUoJG1vZCk7CgkJCWlmKCRvYmopCgkJCQlyZXR1cm4gJG9iajsKCQl9CgkJcmV0dXJuIEZBTFNFOwoJfQoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc2V0Z2F0ZV9mdWxsKCYkbW9kLCRjbGFzc25hbWUpCgl7CgkJJGZuID0gY21zX2pvaW5fcGF0aCgkbW9kLT5HZXRNb2R1bGVQYXRoKCksJ2xpYicsJ2dhdGV3YXlzJywnY2xhc3MuJy4kY2xhc3NuYW1lLicucGhwJyk7CgkJaWYoaXNfZmlsZSgkZm4pKQoJCXsKCQkJaW5jbHVkZV9vbmNlKCRmbik7CgkJCSRvYmogPSBuZXcgJGNsYXNzbmFtZSgkbW9kKTsKCQkJaWYoJG9iaikKCQkJICByZXR1cm4gc2VsZjo6c2V0Z2F0ZSgkb2JqKTsKCQl9CgkJcmV0dXJuIEZBTFNFOwoJfQoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc2V0Z2F0ZSgmJG9iaikKCXsKCQkkYWxpYXMgPSAkb2JqLT5nZXRfYWxpYXMoKTsKCQlpZighJGFsaWFzKSByZXR1cm4gRkFMU0U7CgkJJHRpdGxlID0gJG9iai0+Z2V0X25hbWUoKTsKCQlpZighJHRpdGxlKSByZXR1cm4gRkFMU0U7CgkJJGRlc2MgPSAkb2JqLT5nZXRfZGVzY3JpcHRpb24oKTsKCQlpZighJGRlc2MpICRkZXNjID0gTlVMTDsKCgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCQkkcHJlZiA9IGNtc19kYl9wcmVmaXgoKTsKCQkvL3Vwc2VydCwgc29ydC1vZgoJCSRzcWwgPSAnU0VMRUNUIGdhdGVfaWQgRlJPTSAnLiRwcmVmLidtb2R1bGVfc21zZ19nYXRlcyBXSEVSRSBhbGlhcz0/JzsKCQkkZ2lkID0gJGRiLT5HZXRPbmUoJHNxbCxhcnJheSgkYWxpYXMpKTsKCQlpZighJGdpZCkKCQl7CgkJICAkZ2lkID0gJGRiLT5HZW5JRCgkcHJlZi4nbW9kdWxlX3Ntc2dfZ2F0ZXNfc2VxJyk7CgkJICAkc3FsID0gJ0lOU0VSVCBJTlRPICcuJHByZWYuJ21vZHVsZV9zbXNnX2dhdGVzIChnYXRlX2lkLGFsaWFzLHRpdGxlLGRlc2NyaXB0aW9uKSBWQUxVRVMgKD8sPyw/LD8pJzsKCQkgICRkYi0+RXhlY3V0ZSgkc3FsLGFycmF5KCRnaWQsJGFsaWFzLCR0aXRsZSwkZGVzYykpOwoJCX0KCQllbHNlCgkJewoJCSAgICRnaWQgPSAoaW50KSRnaWQ7CgkJICAgJHNxbCA9ICdVUERBVEUgJy4kcHJlZi4KCQkJJ21vZHVsZV9zbXNnX2dhdGVzIHNldCB0aXRsZT0/LGRlc2NyaXB0aW9uPT8gV0hFUkUgZ2F0ZV9pZD0/JzsKCQkgICAkZGItPkV4ZWN1dGUoJHNxbCxhcnJheSgkdGl0bGUsJGRlc2MsJGdpZCkpOwoJCX0KCQlyZXR1cm4gJGdpZDsKCX0KCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHJlZnJlc2hfZ2F0ZXdheXMoJiRtb2QpCgl7CgkJJGRpciA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ2dhdGV3YXlzJywnJyk7CgkJJGZpbGVzID0gZ2xvYigkZGlyLidjbGFzcy4qc21zX2dhdGV3YXkucGhwJyk7CgkJaWYoISRmaWxlcykKCQkJIHJldHVybjsKCgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCQkkcHJlZiA9IGNtc19kYl9wcmVmaXgoKTsKCQkkc3FsID0gJ1NFTEVDVCBnYXRlX2lkIEZST00gJy4kcHJlZi4nbW9kdWxlX3Ntc2dfZ2F0ZXMgV0hFUkUgYWxpYXM9Pyc7CgkJJGZvdW5kID0gYXJyYXkoKTsKCQlmb3JlYWNoKCRmaWxlcyBhcyAmJHRoaXNmaWxlKQoJCXsKCQkJaW5jbHVkZSgkdGhpc2ZpbGUpOwoJCQkkY2xhc3NuYW1lID0gc3RyX3JlcGxhY2UoYXJyYXkoJGRpciwnY2xhc3MuJywnLnBocCcpLGFycmF5KCcnLCcnLCcnKSwkdGhpc2ZpbGUpOwoJCQkkb2JqID0gbmV3ICRjbGFzc25hbWUoJG1vZCk7CgkJCSRhbGlhcyA9ICRvYmotPmdldF9hbGlhcygpOwoJCQkkcmVzID0gJGRiLT5HZXRPbmUoJHNxbCxhcnJheSgkYWxpYXMpKTsKCQkJaWYoISRyZXMpCgkJCQkkcmVzID0gJG9iai0+dXBzZXJ0X3RhYmxlcygpOwoJCQkkZm91bmRbXSA9ICRyZXM7CgkJfQoJCXVuc2V0KCR0aGlzZmlsZSk7CgoJCSRmaWxsZXJzID0gaW1wbG9kZSgnLCcsJGZvdW5kKTsKCQkkc3FsID0gJ0RFTEVURSBGUk9NICcuJHByZWYuJ21vZHVsZV9zbXNnX2dhdGVzIFdIRVJFIGdhdGVfaWQgTk9UIElOICgnLiRmaWxsZXJzLicpJzsKCQkkZGItPkV4ZWN1dGUoJHNxbCk7CgkJJHNxbCA9ICdERUxFVEUgRlJPTSAnLiRwcmVmLidtb2R1bGVfc21zZ19wcm9wcyBXSEVSRSBnYXRlX2lkIE5PVCBJTiAoJy4kZmlsbGVycy4nKSc7CgkJJGRiLT5FeGVjdXRlKCRzcWwpOwoJfQoKCS8vJHByb3BzID0gYXJyYXkgb2YgYXJyYXlzLCBlYWNoIHdpdGggWzBdPXRpdGxlIFsxXT1hcGluYW1lIFsyXT12YWx1ZSBbM109ZW5jcnlwdAoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzZXRwcm9wcygkZ2lkLCRwcm9wcykKCXsKCQkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoJCSRwcmVmID0gY21zX2RiX3ByZWZpeCgpOwoJCS8vdXBzZXJ0LCBzb3J0LW9mCgkJLy9OT1RFIG5ldyBwYXJhbWV0ZXJzIGFkZGVkIHdpdGggYXBpbmFtZSAndG9kbycgJiBzaWduYXR1cmUgTlVMTAoJCSRzcWwxID0gJ1VQREFURSAnLiRwcmVmLgoJCSAnbW9kdWxlX3Ntc2dfcHJvcHMgU0VUIHRpdGxlPT8sdmFsdWU9PyxlbmN2YWx1ZT0/LApzaWduYXR1cmUgPSBDQVNFIFdIRU4gc2lnbmF0dXJlIElTIE5VTEwgVEhFTiA/IEVMU0Ugc2lnbmF0dXJlIEVORCwKZW5jcnlwdD0/LGFwaW9yZGVyPT8gV0hFUkUgZ2F0ZV9pZD0/IEFORCBhcGluYW1lPT8nOwoJCSRzcWwyID0gJ0lOU0VSVCBJTlRPICcuJHByZWYuCgkJICdtb2R1bGVfc21zZ19wcm9wcyAoZ2F0ZV9pZCx0aXRsZSx2YWx1ZSxlbmN2YWx1ZSxhcGluYW1lLHNpZ25hdHVyZSxlbmNyeXB0LGFwaW9yZGVyKQpTRUxFQ1QgPyw/LD8sPyw/LD8sPyw/IEZST00gKFNFTEVDVCAxIEFTIGRteSkgWiBXSEVSRSBOT1QgRVhJU1RTCihTRUxFQ1QgMSBGUk9NICcuJHByZWYuJ21vZHVsZV9zbXNnX3Byb3BzIFQxIFdIRVJFIFQxLmdhdGVfaWQ9PyBBTkQgVDEuYXBpbmFtZT0/KSc7CgkJJG8gPSAxOwoJCWZvcmVhY2goJHByb3BzIGFzICYkZGF0YSkKCQl7CgkJCWlmKCRkYXRhWzNdKQoJCQl7CgkJCQkkYTEgPSBhcnJheSgkZGF0YVswXSxOVUxMLCRkYXRhWzJdLCRkYXRhWzFdLDEsJG8sJGdpZCwkZGF0YVsxXSk7CgkJCQkkYTIgPSBhcnJheSgkZ2lkLCRkYXRhWzBdLE5VTEwsJGRhdGFbMl0sJGRhdGFbMV0sJGRhdGFbMV0sMSwkbywkZ2lkLCRkYXRhWzFdKTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCSRhMSA9IGFycmF5KCRkYXRhWzBdLCRkYXRhWzJdLE5VTEwsJGRhdGFbMV0sMCwkbywkZ2lkLCRkYXRhWzFdKTsKCQkJCSRhMiA9IGFycmF5KCRnaWQsJGRhdGFbMF0sJGRhdGFbMl0sTlVMTCwkZGF0YVsxXSwkZGF0YVsxXSwwLCRvLCRnaWQsJGRhdGFbMV0pOwoJCQl9CgkJCSRkYi0+RXhlY3V0ZSgkc3FsMSwkYTEpOwoJCQkkZGItPkV4ZWN1dGUoJHNxbDIsJGEyKTsKCQkJJG8rKzsKCQl9CgkJdW5zZXQoJGRhdGEpOwoJfQoKCS8qKgoJICBSZXR1cm5zIGFycmF5LCBlYWNoIGtleSA9IHNpZ25hdHVyZS1maWVsZCB2YWx1ZSwgZWFjaCB2YWx1ZSA9IGFycmF5CgkgICB3aXRoIGtleXMgJ2FwaW5hbWUnIGFuZCAndmFsdWUnIChmb3Igd2hpY2ggdGhlIGFjdHVhbCB2YWx1ZSBpcyBkZWNyeXB0ZWQgaWYgcmVsZXZhbnQpCgkgICovCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldHByb3BzKCYkbW9kLCRnaWQpCgl7CgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCQkkcHJlZiA9IGNtc19kYl9wcmVmaXgoKTsKCQkkcHJvcHMgPSAkZGItPkdldEFzc29jKCdTRUxFQ1Qgc2lnbmF0dXJlLGFwaW5hbWUsdmFsdWUsZW5jdmFsdWUsZW5jcnlwdCBGUk9NICcuJHByZWYuCgkJICdtb2R1bGVfc21zZ19wcm9wcyBXSEVSRSBnYXRlX2lkPT8gQU5EIGVuYWJsZWQ+MCBPUkRFUiBCWSBhcGlvcmRlcicsCgkJIGFycmF5KCRnaWQpKTsKCQlmb3JlYWNoKCRwcm9wcyBhcyAmJHJvdykKCQl7CgkJCWlmICgkcm93WydlbmNyeXB0J10pCgkJCQkkcm93Wyd2YWx1ZSddID0gc2VsZjo6ZGVjcnlwdF92YWx1ZSgkbW9kLCRyb3dbJ2VuY3ZhbHVlJ10pOwoJCQl1bnNldCgkcm93WydlbmNyeXB0J10pOwoJCQl1bnNldCgkcm93WydlbmN2YWx1ZSddKTsKCQl9CgkJdW5zZXQoJHJvdyk7CgkJcmV0dXJuICRwcm9wczsKCX0KCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGVuY3J5cHRfdmFsdWUoJiRtb2QsJHZhbHVlLCRwYXNzd2QgPSBGQUxTRSkKCXsKCQlpZigkdmFsdWUpCgkJewoJCQlpZighJHBhc3N3ZCkKCQkJewoJCQkJJHBhc3N3ZCA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ21hc3RlcnBhc3MnKTsKCQkJCWlmKCRwYXNzd2QpCgkJCQkJJHBhc3N3ZCA9IHNlbGY6OnVuZnVzYygkcGFzc3dkKTsKCQkJfQoJCQlpZigkcGFzc3dkICYmICRtb2QtPmhhdmVtY3J5cHQpCgkJCXsKCQkJCSRlID0gbmV3IEVuY3J5cHRpb24oTUNSWVBUX0JMT1dGSVNILE1DUllQVF9NT0RFX0NCQyxTTVNHOjpFTkNfUk9VTkRTKTsKCQkJCSR2YWx1ZSA9ICRlLT5lbmNyeXB0KCR2YWx1ZSwkcGFzc3dkKTsKCQkJfQoJCX0KCQlyZXR1cm4gJHZhbHVlOwoJfQoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZGVjcnlwdF92YWx1ZSgmJG1vZCwkdmFsdWUsJHBhc3N3ZCA9IEZBTFNFKQoJewoJCWlmKCR2YWx1ZSkKCQl7CgkJCWlmKCEkcGFzc3dkKQoJCQl7CgkJCQkkcGFzc3dkID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnbWFzdGVycGFzcycpOwoJCQkJaWYoJHBhc3N3ZCkKCQkJCQkkcGFzc3dkID0gc2VsZjo6dW5mdXNjKCRwYXNzd2QpOwoJCQl9CgkJCWlmKCRwYXNzd2QgJiYgJG1vZC0+aGF2ZW1jcnlwdCkKCQkJewoJCQkJJGUgPSBuZXcgRW5jcnlwdGlvbihNQ1JZUFRfQkxPV0ZJU0gsTUNSWVBUX01PREVfQ0JDLFNNU0c6OkVOQ19ST1VORFMpOwoJCQkJJHZhbHVlID0gJGUtPmRlY3J5cHQoJHZhbHVlLCRwYXNzd2QpOwoJCQl9CgkJfQoJCXJldHVybiAkdmFsdWU7Cgl9CgoJLyoqCglmdXNjOgoJQHN0cjogc3RyaW5nIG9yIEZBTFNFCglvYmZ1c2NhdGUgQHN0cgoJKi8KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZnVzYygkc3RyKQoJewoJCWlmKCRzdHIpCgkJewoJCQkkcyA9IHN1YnN0cihiYXNlNjRfZW5jb2RlKG1kNShtaWNyb3RpbWUoKSkpLDAsNSk7CgkJCXJldHVybiAkcy5iYXNlNjRfZW5jb2RlKCRzLiRzdHIpOwoJCX0KCQlyZXR1cm4gJyc7Cgl9CgoJLyoqCgl1bmZ1c2M6CglAc3RyOiBzdHJpbmcgb3IgRkFMU0UKCWRlLW9iZnVzY2F0ZSBAc3RyCgkqLwoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiB1bmZ1c2MoJHN0cikKCXsKCQlpZigkc3RyKQoJCXsKCQkJJHMgPSBiYXNlNjRfZGVjb2RlKHN1YnN0cigkc3RyLDUpKTsKCQkJcmV0dXJuIHN1YnN0cigkcyw1KTsKCQl9CgkJcmV0dXJuICcnOwoJfQoKCS8qKgoJUHJvY2Vzc1RlbXBsYXRlOgoJQG1vZDogcmVmZXJlbmNlIHRvIGN1cnJlbnQgU01TRyBtb2R1bGUgb2JqZWN0CglAdHBsbmFtZTogdGVtcGxhdGUgaWRlbnRpZmllcgoJQHRwbHZhcnM6IGFzc29jaWF0aXZlIGFycmF5IG9mIHRlbXBsYXRlIHZhcmlhYmxlcwoJQGNhY2hlOiBvcHRpb25hbCBib29sZWFuLCBkZWZhdWx0IFRSVUUKCVJldHVybnM6IHN0cmluZywgcHJvY2Vzc2VkIHRlbXBsYXRlCgkqLwoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBQcm9jZXNzVGVtcGxhdGUoJiRtb2QsJHRwbG5hbWUsJHRwbHZhcnMsJGNhY2hlPVRSVUUpCgl7CgkJZ2xvYmFsICRzbWFydHk7CgkJaWYoJG1vZC0+YmVmb3JlMjApCgkJewoJCQkkc21hcnR5LT5hc3NpZ24oJHRwbHZhcnMpOwoJCQlyZXR1cm4gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlKCR0cGxuYW1lKTsKCQl9CgkJZWxzZQoJCXsKCQkJaWYoJGNhY2hlKQoJCQl7CgkJCQkkY2FjaGVfaWQgPSBtZDUoJ3Ntc2cnLiR0cGxuYW1lLnNlcmlhbGl6ZShhcnJheV9rZXlzKCR0cGx2YXJzKSkpOwoJCQkJJGxhbmcgPSBDbXNObHNPcGVyYXRpb25zOjpnZXRfY3VycmVudF9sYW5ndWFnZSgpOwoJCQkJJGNvbXBpbGVfaWQgPSBtZDUoJ3Ntc2cnLiR0cGxuYW1lLiRsYW5nKTsKCQkJCSR0cGwgPSAkc21hcnR5LT5DcmVhdGVUZW1wbGF0ZSgkbW9kLT5HZXRGaWxlUmVzb3VyY2UoJHRwbG5hbWUpLCRjYWNoZV9pZCwkY29tcGlsZV9pZCwkc21hcnR5KTsKCQkJCWlmKCEkdHBsLT5pc0NhY2hlZCgpKQoJCQkJCSR0cGwtPmFzc2lnbigkdHBsdmFycyk7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkkdHBsID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoJG1vZC0+R2V0RmlsZVJlc291cmNlKCR0cGxuYW1lKSxOVUxMLE5VTEwsJHNtYXJ0eSwkdHBsdmFycyk7CgkJCX0KCQkJcmV0dXJuICR0cGwtPmZldGNoKCk7CgkJfQoJfQoKCS8qKgoJUHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlOgoJQG1vZDogcmVmZXJlbmNlIHRvIGN1cnJlbnQgU01TRyBtb2R1bGUgb2JqZWN0CglAdHBsbmFtZTogdGVtcGxhdGUgaWRlbnRpZmllcgoJQHRwbHZhcnM6IGFzc29jaWF0aXZlIGFycmF5IG9mIHRlbXBsYXRlIHZhcmlhYmxlcwoJQGNhY2hlOiBvcHRpb25hbCBib29sZWFuLCBkZWZhdWx0IFRSVUUKCVJldHVybnM6IG5vdGhpbmcKCSovCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIFByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgmJG1vZCwkdHBsbmFtZSwkdHBsdmFycywkY2FjaGU9VFJVRSkKCXsKCQlnbG9iYWwgJHNtYXJ0eTsKCQlpZigkbW9kLT5iZWZvcmUyMCkKCQl7CgkJCSRzbWFydHktPmFzc2lnbigkdHBsdmFycyk7CgkJCWVjaG8gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCR0cGxuYW1lKTsKCQl9CgkJZWxzZQoJCXsKCQkJLy9UT0RPIGhhbmRsZSBWMSB0ZW1wbGF0ZSBpZiBWMiBOL0EKCQkJaWYoJGNhY2hlKQoJCQl7CgkJCQkkY2FjaGVfaWQgPSBtZDUoJ3Ntc2cnLiR0cGxuYW1lLnNlcmlhbGl6ZShhcnJheV9rZXlzKCR0cGx2YXJzKSkpOwoJCQkJJGxhbmcgPSBDbXNObHNPcGVyYXRpb25zOjpnZXRfY3VycmVudF9sYW5ndWFnZSgpOwoJCQkJJGNvbXBpbGVfaWQgPSBtZDUoJ3Ntc2cnLiR0cGxuYW1lLiRsYW5nKTsKCQkJCSR0cGwgPSAkc21hcnR5LT5DcmVhdGVUZW1wbGF0ZSgkbW9kLT5HZXRUZW1wbGF0ZVJlc291cmNlKCR0cGxuYW1lKSwkY2FjaGVfaWQsJGNvbXBpbGVfaWQsJHNtYXJ0eSk7CgkJCQlpZighJHRwbC0+aXNDYWNoZWQoKSkKCQkJCQkkdHBsLT5hc3NpZ24oJHRwbHZhcnMpOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJJHRwbCA9ICRzbWFydHktPkNyZWF0ZVRlbXBsYXRlKCRtb2QtPkdldFRlbXBsYXRlUmVzb3VyY2UoJHRwbG5hbWUpLE5VTEwsTlVMTCwkc21hcnR5LCR0cGx2YXJzKTsKCQkJfQoJCQkkdHBsLT5kaXNwbGF5KCk7CgkJfQoJfQoKCS8qKgoJZ2V0X3JlcG9ydHVybDoKCUBtb2Q6IHJlZmVyZW5jZSB0byBjdXJyZW50IFNNU0cgbW9kdWxlIG9iamVjdAoJUmV0dXJuczogc3RyaW5nLCBkZWxpdmVyeS1yZXBvcnRzIFVSTAoJKi8KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3JlcG9ydHVybCgmJG1vZCkKCXsKCQkvL2NvbnN0cnVjdCBmcm9udGVuZC11cmwgKHNvIG5vIGFkbWluIGxvZ2luIGlzIG5lZWRlZCkKCQkvL2Ntc21zIDEuMTArIGFsc28gaGFzIC0+Y3JlYXRlX3VybCgpOwoJCSR1cmwgPSAkbW9kLT5DcmVhdGVMaW5rKCdfJywnZGV2cmVwb3J0JywxLCcnLGFycmF5KCksJycsVFJVRSk7CgkJLy9zdHJpcCB0aGUgZmFrZSByZXR1cm5pZCwgc28gdGhhdCB0aGUgZGVmYXVsdCB3aWxsIGJlIHVzZWQKCQkkc2VwID0gc3RycG9zKCR1cmwsJyZhbXA7Jyk7CgkJcmV0dXJuIHN1YnN0cigkdXJsLDAsJHNlcCk7Cgl9CgoJLyoKCVRoaXMgaXMgYSB2YXJhcmdzIGZ1bmN0aW9uLCAybmQgYXJndW1lbnQgKGlmIGl0IGV4aXN0cykgaXMgZWl0aGVyIGEKCUxhbmcga2V5IG9yIG9uZSBvZiB0aGUgc21zX2dhdGV3YXlfYmFzZTo6U1RBVF8qIGNvbnN0YW50cwoJKi8KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X21zZygmJG1vZCkKCXsKCQkkaXAgPSBnZXRlbnYoJ1JFTU9URV9BRERSJyk7CgkJaWYoZnVuY19udW1fYXJncygpID4gMSkKCQl7CgkJCSR0bXAgPSAkbW9kLT5MYW5nKCdfJyk7IC8vZW5zdXJlIHJlbGV2YW50IGxhbmcgaXMgbG9hZGVkCgkJCSRwYXJtcyA9IGFycmF5X3NsaWNlKGZ1bmNfZ2V0X2FyZ3MoKSwxKTsKCQkJJGtleSA9ICRwYXJtc1swXTsKCQkJJGxhbmdkYXRhID0gKCRtb2QtPmN1cmxhbmcpID8KCQkJCSRtb2QtPmxhbmdoYXNoWyRtb2QtPmN1cmxhbmddOgoJCQkJcmVzZXQoJG1vZC0+bGFuZ2hhc2gpOwoJCQlpZihpc3NldCgkbGFuZ2RhdGFbJGtleV0pIHx8IGFycmF5X2tleV9leGlzdHMoJGtleSwkbGFuZ2RhdGEpKQoJCQl7CgkJCQkkdHh0ID0gJG1vZC0+TGFuZygka2V5LGFycmF5X3NsaWNlKCRwYXJtcywxKSk7CgkJCQlpZigkaXApCgkJCQkJJHR4dCAuPSAnLCcuJGlwOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJJHR4dCA9IGltcGxvZGUoJywnLCRwYXJtcyk7CgkJCQlpZigkaXAgJiYgJHBhcm1zWzBdICE9IHNtc19nYXRld2F5X2Jhc2U6OlNUQVRfTk9UU0VOVCkKCQkJCQkkdHh0IC49ICcsJy4kaXA7CgkJCX0KCQkJcmV0dXJuICR0eHQ7CgkJfQoJCXJldHVybiAkaXA7Cgl9CgoJLyoKCVRoaXMgaXMgYSB2YXJhcmdzIGZ1bmN0aW9uLCAybmQgYXJndW1lbnQgKGlmIGl0IGV4aXN0cykgbWF5IGJlIGEgTGFuZyBrZXkKCSovCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9kZWxpdmVyeV9tc2coJiRtb2QpCgl7CgkJJGlwID0gZ2V0ZW52KCdSRU1PVEVfQUREUicpOwoJCWlmKGZ1bmNfbnVtX2FyZ3MoKSA+IDEpCgkJewoJCQkkdG1wID0gJG1vZC0+TGFuZygnXycpOyAvL2Vuc3VyZSByZWxldmFudCBsYW5nIGlzIGxvYWRlZAoJCQkkcGFybXMgPSBhcnJheV9zbGljZShmdW5jX2dldF9hcmdzKCksMSk7CgkJCSRrZXkgPSAkcGFybXNbMF07CgkJCSRsYW5nZGF0YSA9ICgkbW9kLT5jdXJsYW5nKSA/CgkJCQkkbW9kLT5sYW5naGFzaFskbW9kLT5jdXJsYW5nXToKCQkJCXJlc2V0KCRtb2QtPmxhbmdoYXNoKTsKCQkJaWYoaXNzZXQoJGxhbmdkYXRhWyRrZXldKSB8fCBhcnJheV9rZXlfZXhpc3RzKCRrZXksJGxhbmdkYXRhKSkKCQkJCSR0eHQgPSAkbW9kLT5MYW5nKCRrZXksYXJyYXlfc2xpY2UoJHBhcm1zLDEpKTsKCQkJZWxzZQoJCQkJJHR4dCA9IGltcGxvZGUoJywnLCRwYXJtcyk7CgkJCWlmKCRpcCkKCQkJCSR0eHQgLj0gJywnLiRpcDsKCQkJcmV0dXJuICR0eHQ7CgkJfQoJCXJldHVybiAkaXA7Cgl9CgoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpc192YWxpZF9waG9uZSgkbnVtYmVyKQoJewoJCWlmKCRudW1iZXIpCgkJewoJCQkkZm9ybWF0cyA9IGFycmF5KAoJCQkgJysjIyMjIyMjIyMjJywKCQkJICcrIyMjIyMjIyMjIyMnLAoJCQkgJyMjIy0jIyMtIyMjIycsIAoJCQkgJyMjIyMtIyMjLSMjIycsCgkJCSAnKCMjIykgIyMjLSMjIycsIAoJCQkgJyMjIyMtIyMjIy0jIyMjJywKCQkJICcjIy0jIyMtIyMjIy0jIyMjJywgCgkJCSAnIyMjIy0jIyMjJywgCgkJCSAnIyMjLSMjIy0jIyMnLAoJCQkgJyMjIyMjLSMjIy0jIyMnLCAKCQkJICcjIyMjIyMjIyMjJywKCQkJICcjIyMjIyMjIyMjIycpOwoKCQkJJHN0ciA9IGVyZWdfcmVwbGFjZSgnWzAtOV0nLCcjJywkbnVtYmVyKTsKCQkJaWYoaW5fYXJyYXkoJHN0ciwkZm9ybWF0cykpIHJldHVybiBUUlVFOwoJCX0KCQlyZXR1cm4gRkFMU0U7Cgl9CgoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBsb2dfc2VuZCgkaXBfYWRkcmVzcywkbW9iaWxlLCRtc2csJHN0YXR1c21zZyA9ICcnKQoJewoJCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgkJJHNxbCA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4KCQkgJ21vZHVsZV9zbXNnX3NlbnQgKG1vYmlsZSxpcCxtc2csc2RhdGUpIFZBTFVFUyAoPyw/LD8sTk9XKCkpJzsKCQkkZGItPkV4ZWN1dGUoJHNxbCxhcnJheSgkbW9iaWxlLCRpcF9hZGRyZXNzLCRtc2cpKTsKCX0KCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNsZWFuX2xvZygmJG1vZCA9IE5VTEwsJHRpbWUgPSAwKQoJewoJCWlmKCEkdGltZSkgJHRpbWUgPSB0aW1lKCk7CgkJaWYoJG1vZCA9PT0gTlVMTCkKCQkJJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZShTTVNHOjpNT0ROQU1FKTsKCQkkZGF5cyA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ2xvZ2RheXMnLDEpOwoJCWlmKCRkYXlzIDwgMSkKCQkJJGRheXMgPSAxOwoJCSR0aW1lIC09ICRkYXlzKjg2NDAwOwoJCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgkJJHByZWYgPSBjbXNfZGJfcHJlZml4KCk7CgkJaWYoJG1vZC0+R2V0UHJlZmVyZW5jZSgnbG9nc2VuZHMnKSkKCQl7CgkJCSRsaW1pdCA9ICRkYi0+RGJUaW1lU3RhbXAoJHRpbWUpOwoJCQkkZGItPkV4ZWN1dGUoJ0RFTEVURSBGUk9NICcuJHByZWYuJ21vZHVsZV9zbXNnX3NlbnQgV0hFUkUgc2RhdGU8Jy4kbGltaXQpOwoJCX0KCQkkZGItPkV4ZWN1dGUoJ0RFTEVURSBGUk9NICcuJHByZWYuJ2FkbWlubG9nIFdIRVJFIHRpbWVzdGFtcDw/IEFORCAoaXRlbV9pZD0nLlNNU0c6OkFVRElUX1NFTkQuCgkJJyBPUiBpdGVtX2lkID0gJy5TTVNHOjpBVURJVF9ERUxJVi4nKSBBTkQgaXRlbV9uYW1lPScuU01TRzo6TU9ETkFNRSxhcnJheSgkdGltZSkpOwoJfQoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXBfY2FuX3NlbmQoJiRtb2QsJGlwX2FkZHJlc3MpCgl7CgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCQkkcHJlZiA9IGNtc19kYl9wcmVmaXgoKTsKCQkkdCA9IHRpbWUoKTsKCQkkbm93ID0gJGRiLT5EYlRpbWVTdGFtcCgkdCk7CgkJCgkJJGxpbWl0ID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnaG91cmxpbWl0JywwKTsKCQlpZigkbGltaXQgPiAwKQoJCXsKCQkJJGRhdGUgPSAkZGItPkRiVGltZVN0YW1wKCR0LTM2MDApOwoJCQkkc3FsID0gJ1NFTEVDVCBDT1VOVChtb2JpbGUpIEFTIG51bSBGUk9NICcuJHByZWYuCgkJCSAibW9kdWxlX3Ntc2dfc2VudCBXSEVSRSBpcD0/IEFORCAoc2RhdGUgQkVUV0VFTiAkZGF0ZSBhbmQgJG5vdykiOwoJCQkkbnVtID0gJGRiLT5HZXRPbmUoJHNxbCxhcnJheSgkaXBfYWRkcmVzcykpOwoJCQlpZigkbnVtID4gJGxpbWl0KQoJCQkJcmV0dXJuIEZBTFNFOwoJCX0KCQkkbGltaXQgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdkYXlsaW1pdCcsMCk7CgkJaWYoJGxpbWl0ID4gMCkKCQl7CgkJCSRkYXRlID0gJGRiLT5EYlRpbWVTdGFtcCgkdC0yNCozNjAwKTsKCQkJJHNxbCA9ICdTRUxFQ1QgQ09VTlQobW9iaWxlKSBBUyBudW0gRlJPTSAnLiRwcmVmLgoJCQkgIm1vZHVsZV9zbXNnX3NlbnQgV0hFUkUgaXA9PyBBTkQgKHNkYXRlIEJFVFdFRU4gJGRhdGUgYW5kICRub3cpIjsKCQkJJG51bSA9ICRkYi0+R2V0T25lKCRzcWwsYXJyYXkoJGlwX2FkZHJlc3MpKTsKCQkJaWYoJG51bSA+ICRsaW1pdCkKCQkJCXJldHVybiBGQUxTRTsKCQl9CgkJcmV0dXJuIFRSVUU7Cgl9CgoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiB0ZXh0X2lzX3ZhbGlkKCR0ZXh0LCRsZW4gPSAxNjApCgl7CgkJaWYoJHRleHQgPT0gJycpIHJldHVybiBGQUxTRTsKCQlpZigkbGVuICA+IDAgJiYgc3RybGVuKCR0ZXh0KSA+ICRsZW4pIHJldHVybiBGQUxTRTsKCQlpZihwcmVnX21hdGNoKAoJCSAgJ35bXlx3XHNAwqMkwqXDqMOpw7nDrMOyw4dcZsOYw7hcbsOFw6XOlF/Ops6TzpvOqc6gzqjOo86Yzp7DhsOmw5/DiSAhIiPCpCUmXCcoKSorLC0uL1w6Ozw9Plw/wqHDhMOWw5HDnMKnwr/DpMO2w7HDvMOgXF5ce1x9XFtcXVx+XHzigqxdficsCgkJICAkdGV4dCkpIHJldHVybiBGQUxTRTsKCQlyZXR1cm4gVFJVRTsKCX0KCQogICAgLyoqCglpbXBsb2RlX3dpdGhfa2V5OgogICAgSW1wbG9kZSBAYXNzb2MgaW50byBhIHN0cmluZyBzdWl0YWJsZSBmb3IgZm9ybWluZyBhIFVSTCBzdHJpbmcgd2l0aCBtdWx0aXBsZSBrZXkvdmFsdWUgcGFpcnMKICAgIEBhc3NvYyBhc3NvY2lhdGl2ZSBhcnJheSwga2V5cyA9IHBhcmFtZXRlciBuYW1lLCB2YWx1ZXMgPSBjb3JyZXNwb25kaW5nIHBhcmFtZXRlciB2YWx1ZXMKICAgIEBpbmdsdWUgb3B0aW9uYWwgc3RyaW5nLCBpbm5lciBnbHVlLCBkZWZhdWx0ICc9JwogICAgQG91dGdsdWUgb3B0aW9uYWwgc3RyaW5nLCBvdXRlciBnbHVlLCBkZWZhdWx0ICcmJwogICAgUmV0dXJuczogc3RyaW5nCiAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpbXBsb2RlX3dpdGhfa2V5KCRhc3NvYywkaW5nbHVlPSc9Jywkb3V0Z2x1ZT0nJicpCiAgICB7CiAgICAgICAgJHJldCA9IG51bGw7CiAgICAgICAgZm9yZWFjaCAoJGFzc29jIGFzICR0ayA9PiAkdHYpCgkJCSRyZXQgLj0gJG91dGdsdWUuJHRrLiRpbmdsdWUuJHR2OwogICAgICAgIHJldHVybiBzdWJzdHIoJHJldCxzdHJsZW4oJG91dGdsdWUpKTsKICAgIH0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/class.sms_gateway_base.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgphYnN0cmFjdCBjbGFzcyBzbXNfZ2F0ZXdheV9iYXNlCnsKCWNvbnN0IFNUQVRfT0sgPSAnc21zX3NlbnQnOwoJY29uc3QgU1RBVF9OT1RTRU5UID0gJ3Ntc19ub3RzZW50JzsKCWNvbnN0IFNUQVRfRVJST1JfT1RIRVIgPSAnc21zX2Vycm9yX290aGVyJzsKCWNvbnN0IFNUQVRfRVJST1JfQVVUSCA9ICdzbXNfZXJyb3JfYXV0aCc7Cgljb25zdCBTVEFUX0VSUk9SX0xJTUlUID0gJ3Ntc19lcnJvcl9saW1pdCc7Cgljb25zdCBTVEFUX0VSUk9SX0lOVkFMSURfREFUQSA9ICdzbXNfZXJyb3JfaW52YWxpZF9kYXRhJzsKCWNvbnN0IFNUQVRfRVJST1JfQkxPQ0tFRCA9ICdzbXNfZXJyb3JfYmxvY2tlZF9udW1iZXInOwoKCWNvbnN0IERFTElWRVJZX09LID0gJ3Ntc19kZWxpdmVyeV9vayc7Cgljb25zdCBERUxJVkVSWV9QRU5ESU5HID0gJ3Ntc19kZWxpdmVyeV9wZW5kaW5nJzsKCWNvbnN0IERFTElWRVJZX0lOVkFMSUQgPSAnc21zX2RlbGl2ZXJ5X2ludmFsaWQnOwoJY29uc3QgREVMSVZFUllfVU5LTk9XTiA9ICdzbXNfZGVsaXZlcnlfdW5rbm93bic7Cgljb25zdCBERUxJVkVSWV9CSUxMSU5HID0gJ3Ntc19kZWxpdmVyeV9iaWxsaW5nJzsKCWNvbnN0IERFTElWRVJZX09USEVSICAgPSAnc21zX2RlbGl2ZXJ5X290aGVyJzsKCglwcm90ZWN0ZWQgJF9tb2R1bGU7Cglwcm90ZWN0ZWQgJF9nYXRlX2lkOwoJcHJvdGVjdGVkICRfbnVtOwoJcHJvdGVjdGVkICRfZnJvbW51bTsKCXByb3RlY3RlZCAkX21zZzsKCXByb3RlY3RlZCAkX3N0YXR1c21zZzsKCXByb3RlY3RlZCAkX3VzZV9jdXJsOwoJcHJvdGVjdGVkICRfc3RhdHVzOwoJcHJvdGVjdGVkICRfc21zaWQ7CgoJZnVuY3Rpb24gX19jb25zdHJ1Y3QoJiRtb2QpCgl7CgkJJHRoaXMtPl9tb2R1bGUgPSAkbW9kOwoJICAJJHRoaXMtPl9nYXRlX2lkID0gMDsKCQlzZWxmOjpyZXNldCgpOwoJfQoKCXByb3RlY3RlZCBmdW5jdGlvbiBzZXRfZ2F0ZWlkKCRnaWQpCgl7CgkJJHRoaXMtPl9nYXRlX2lkID0gKGludCkkZ2lkOwoJfQoKCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRfZ2F0ZWlkKCRhbGlhcywkZm9yY2UgPSBGQUxTRSkKCXsKCQlpZigkZm9yY2UgfHwgISR0aGlzLT5fZ2F0ZV9pZCkKCQl7CgkJCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgkJCSRxdWVyeSA9ICdTRUxFQ1QgZ2F0ZV9pZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc21zZ19nYXRlcyBXSEVSRSBhbGlhcz0/JzsKCQkJJGdpZCA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkYWxpYXMpKTsKCQkJJHRoaXMtPl9nYXRlX2lkID0gKGludCkkZ2lkOwoJCX0KCQlyZXR1cm4gJHRoaXMtPl9nYXRlX2lkOwoJfQoKCS8qKgoJcmVzZXQ6CglDbGVhciBhbGwgY2FjaGVkIGRhdGEKCSovCglwdWJsaWMgZnVuY3Rpb24gcmVzZXQoKQoJewoJCSR0aGlzLT5fbnVtID0gJyc7CgkJJHRoaXMtPl9mcm9tbnVtID0gJyc7CgkJJHRoaXMtPl9tc2cgPSAnJzsKCQkkdGhpcy0+X3VzZV9jdXJsID0gMDsKCQkkdGhpcy0+X3N0YXR1cyA9IHNlbGY6OlNUQVRfTk9UU0VOVDsKCQkkdGhpcy0+X3N0YXR1c21zZyA9ICcnOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiB1c2VfY3VybCgkZmxhZyA9IFRSVUUpCgl7CgkJJHRoaXMtPl91c2VfY3VybCA9ICgkZmxhZykgPyAxIDogMDsKCX0KCgkvKioKCXNldF9tc2c6CglAbXNnOiB0aGUgYm9keS1jb250ZW50IG9mIHRoZSBtZXNzYWdlIHRvIGJlIHNlbnQsaW5jbHVkaW5nIG9ubHkgU01TLXZhbGlkCgljaGFyYWN0ZXJzLGFuZCBvZiBzdWl0YWJsZSBsZW5ndGgKCSovCglwdWJsaWMgZnVuY3Rpb24gc2V0X21zZygkbXNnKQoJewoJCSR0aGlzLT5fbXNnID0gJG1zZzsKCX0KCgkvKioKCXNldF9udW06CglAbnVtOiBkZXN0aW5hdGlvbiBwaG9uZS1udW1iZXIob3Igc2VwYXJhdGVkIG51bWJlcnMsaWYgdGhlIGdhdGV3YXkgc3VwcG9ydHMKCWJhdGNoaW5nKSBhcHByb3ByaWF0ZWx5IGZvcm1hdHRlZCBmb3IgdGhlIGdhdGV3YXkKCSovCglwdWJsaWMgZnVuY3Rpb24gc2V0X251bSgkbnVtKQoJewoJCSR0aGlzLT5fbnVtID0gJG51bTsKCX0KCgkvKioKCXNldF9mcm9tOgoJQGZyb206IHRoZSBzb3VyY2UgcGhvbmUtbnVtYmVyKGlmIHRoZSBnYXRld2F5IHN1cHBvcnRzIHRoYXQpIGFwcHJvcHJpYXRlbHkgZm9ybWF0dGVkCgkqLwoJcHVibGljIGZ1bmN0aW9uIHNldF9mcm9tKCRmcm9tKQoJewoJCSR0aGlzLT5fZnJvbW51bSA9ICgkZnJvbSkgPyAkZnJvbSA6IEZBTFNFOwoJfQoKCS8qKgoJZ2V0X3N0YXR1czoKCVJldHVybnMgc3RyaW5nIGRlc2NyaWJpbmcgKHNob3J0LWZvcm0pIHN0YXR1cywgb25lIG9mIHRoZSBjb25zdCdzIGRlZmluZWQgYWJvdmUKCSovCglwdWJsaWMgZnVuY3Rpb24gZ2V0X3N0YXR1cygpCgl7CgkJcmV0dXJuICR0aGlzLT5fc3RhdHVzOwoJfQoKCS8qKgoJZ2V0X3N0YXR1c21zZzoKCVJldHVybnMgc3RyaW5nIGRlc2NyaWJpbmcgKGxvbmctZm9ybSkgc3RhdHVzIC4uLgoJKi8KCXB1YmxpYyBmdW5jdGlvbiBnZXRfc3RhdHVzbXNnKCkKCXsKCQlyZXR1cm4gJHRoaXMtPl9zdGF0dXNtc2c7Cgl9CgoJLyoqCglzZW5kOgoJSW5pdGlhdGUgdGhlIG1lc3NhZ2UgdHJhbnNtaXNzaW9uKGFmdGVyIGFsbCByZWxldmFudCBwYXJhbWV0ZXJzIGFyZSBzZXQgdXApCgkqLwoJcHVibGljIGZ1bmN0aW9uIHNlbmQoKQoJewoJCSR0aGlzLT5fc21zaWQgPSAnJzsKCgkJLy8gY2hlY2sgdG8gbWFrZSBzdXJlIHdlIGhhdmUgbmVjZXNzYXJ5IGRhdGEKCQkkdGhpcy0+c2V0dXAoKTsKCQlpZigkdGhpcy0+X251bSA9PSAnJyB8fCAkdGhpcy0+X21zZyA9PSAnJykKCQl7CgkJCSR0aGlzLT5fc3RhdHVzID0gc2VsZjo6U1RBVF9FUlJPUl9JTlZBTElEX0RBVEE7CgkJCXJldHVybiBGQUxTRTsKCQl9CgoJCWlmKCFzbXNnX3V0aWxzOjppcF9jYW5fc2VuZCgkdGhpcy0+X21vZHVsZSxnZXRlbnYoJ1JFTU9URV9BRERSJykpKQoJCXsKCQkJJHRoaXMtPl9zdGF0dXMgPSBzZWxmOjpTVEFUX0VSUk9SX0xJTUlUOwoJCQlyZXR1cm4gRkFMU0U7CgkJfQoKCQkvLyBuZXh0IHByZXBhcmUgdGhlIG91dHB1dAoJCSRjbWQgPSAkdGhpcy0+cHJlcF9jb21tYW5kKCk7CgkJaWYoJGNtZCA9PT0gRkFMU0UgfHwgJGNtZCA9PSAnJykKCQl7CgkJCSR0aGlzLT5fc3RhdHVzID0gc2VsZjo6U1RBVF9FUlJPUl9JTlZBTElEX0RBVEE7CgkJCXJldHVybiBGQUxTRTsKCQl9CgoJCS8vIHNlbmQgaXQKCQkkcmVzID0gJHRoaXMtPl9jb21tYW5kKCRjbWQpOwoKCQkvLyBpbnRlcnByZXQgcmVzdWx0CgkJJHRoaXMtPnBhcnNlX3Jlc3VsdCgkcmVzKTsKCQkkdGhpcy0+X3N0YXR1c21zZyA9IHNtc2dfdXRpbHM6OmdldF9tc2coJHRoaXMtPl9tb2R1bGUsJHRoaXMtPl9udW0sJHRoaXMtPl9zdGF0dXMsJHRoaXMtPl9tc2csJHRoaXMtPmdldF9yYXdfc3RhdHVzKCkpOwoJCSRzdWNjZXNzID0gKCR0aGlzLT5fc3RhdHVzID09IHNlbGY6OlNUQVRfT0spOwoJCWlmKCRzdWNjZXNzKQoJCXsKCQkJaWYoJHRoaXMtPl9tb2R1bGUtPkdldFByZWZlcmVuY2UoJ2xvZ3NlbmRzJykpCgkJCQlzbXNnX3V0aWxzOjpsb2dfc2VuZChnZXRlbnYoJ1JFTU9URV9BRERSJyksJHRoaXMtPl9udW0sJHRoaXMtPl9tc2cpOwoJCQkkdGhpcy0+X21vZHVsZS0+QXVkaXQoU01TRzo6QVVESVRfU0VORCxTTVNHOjpNT0ROQU1FLCR0aGlzLT5fc3RhdHVzbXNnKTsKCQl9CgkJcmV0dXJuICRzdWNjZXNzOwoJfQoKCS8vZm9yIGludGVybmFsIHVzZSBvbmx5CgkvL2dldCBwYXJhbWV0ZXIgc3RvcmVkKGZvciBzb21lIGdhdGV3YXlzKSB3aGVuIG9wZXJhdGlvbiByZXN1bHQtbWVzc2FnZSB3YXMgcGFyc2VkCglwdWJsaWMgZnVuY3Rpb24gZ2V0X3Ntc2lkKCkKCXsKCQlyZXR1cm4gJHRoaXMtPl9zbXNpZDsKCX0KCgkvL3BlcmZvcm0gdGhlIHNlbmQKCS8vbWF5IG5lZWQgdG8gYmUgb3Zlci1yaWRkZW4gaW4gc29tZSBnYXRld2F5LXNwZWNpZmljIHN1YmNsYXNzZXMKCXByb3RlY3RlZCBmdW5jdGlvbiBfY29tbWFuZCgkY21kKQoJewoJCSR0aGlzLT5fY2hlY2tfY3VybCgpOwoJCSRyZXMgPSAnJzsKCQkkcmVzID0gKCR0aGlzLT5fdXNlX2N1cmwgPT0gMCkgPwoJCQkkdGhpcy0+X3NlbmRfZm9wZW4oJGNtZCk6CgkJCSR0aGlzLT5fc2VuZF9jdXJsKCRjbWQpOwoJCXJldHVybiAkcmVzOwoJfQoKCXByaXZhdGUgZnVuY3Rpb24gX3NlbmRfZm9wZW4oJGNtZCkKCXsKCQkkcmVzID0gJyc7CgkJJGZoID0gQGZvcGVuKCRjbWQsJ3InKTsKCQlpZigkZmgpCgkJewoJCQl3aGlsZSgkbGluZSA9IEBmZ2V0cygkZmgsMTAyNCkpICRyZXMgLj0gJGxpbmU7CgkJCWZjbG9zZSgkZmgpOwoJCQlyZXR1cm4gJHJlczsKCQl9CgkJZWxzZQoJCQlyZXR1cm4gRkFMU0U7Cgl9CgoJcHJpdmF0ZSBmdW5jdGlvbiBfc2VuZF9jdXJsKCRjbWQpCgl7CgkJJGNoID0gY3VybF9pbml0KCRjbWQpOwoJCWN1cmxfc2V0b3B0KCRjaCxDVVJMT1BUX0hFQURFUiwwKTsKCQljdXJsX3NldG9wdCgkY2gsQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwxKTsKCQljdXJsX3NldG9wdCgkY2gsQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwwKTsKLyoJCWlmKCR0aGlzLT5jdXJsX3VzZV9wcm94eSkKCQl7CgkJCWN1cmxfc2V0b3B0KCRjaCxDVVJMT1BUX1BST1hZLCR0aGlzLT5jdXJsX3Byb3h5KTsKCQkJY3VybF9zZXRvcHQoJGNoLENVUkxPUFRfUFJPWFlVU0VSUFdELCR0aGlzLT5jdXJsX3Byb3h5dXNlcnB3ZCk7CgkJfQoqLwoJCSRyZXMgPSBjdXJsX2V4ZWMoJGNoKTsKCQljdXJsX2Nsb3NlKCRjaCk7CgkJcmV0dXJuICRyZXM7Cgl9CgoJcHJpdmF0ZSBmdW5jdGlvbiBfY2hlY2tfY3VybCgpCgl7CgkJaWYoISR0aGlzLT5fdXNlX2N1cmwpCgkJewoJCQlpZihleHRlbnNpb25fbG9hZGVkKCdjdXJsJykpCgkJCQkkdGhpcy0+X3VzZV9jdXJsID0gMTsKCQl9Cgl9CgoJLyoqCglnZXRfc2V0dXBfZm9ybToKCVJldHVybnMgc3RyaW5nLCB4aHRtbCBmb3IgZWNobyBpbnRvIGFkbWluIGRpc3BsYXkKCSovCglwdWJsaWMgZnVuY3Rpb24gZ2V0X3NldHVwX2Zvcm0oKQoJewoJCSRtb2QgPSAkdGhpcy0+X21vZHVsZTsKCQkkcGFkbSA9ICRtb2QtPkNoZWNrUGVybWlzc2lvbignQWRtaW5pc3RlclNNU0dhdGV3YXlzJyk7CgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCQkkcHJlZiA9IGNtc19kYl9wcmVmaXgoKTsKCQkkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLiRwcmVmLidtb2R1bGVfc21zZ19nYXRlcyBXSEVSRSBhbGlhcz0/JzsKCQlpZighJHBhZG0pCgkJCSRxdWVyeSAuPSAnIEFORCBlbmFibGVkPTEnOwoJCSRhbGlhcyA9ICR0aGlzLT5nZXRfYWxpYXMoKTsKCQkkZ2RhdGEgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJGFsaWFzKSk7CgkJaWYoISRnZGF0YSkKCQkJcmV0dXJuICcnOwoKCQkkcG1vZCA9ICRwYWRtIHx8ICRtb2QtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5U01TR2F0ZXdheXMnKTsKCQlpZighKCRwYWRtIHx8ICRwbW9kKSkKCQl7CgkJCSR0cGx2YXJzID0gYXJyYXkoCgkJCQknZ2F0ZXRpdGxlJyA9PiAkZ2RhdGFbJ3RpdGxlJ10sCgkJCQknZGVmYXVsdCcgPT4gKCRnZGF0YVsnYWN0aXZlJ10pPyRtb2QtPkxhbmcoJ3llcycpOicnCgkJCSk7CgkJCXJldHVybiBzbXNnX3V0aWxzOjpQcm9jZXNzVGVtcGxhdGUoJG1vZCwnZ2F0ZWRhdGFfdXNlLnRwbCcsJHRwbHZhcnMpOwoJCX0KCgkJJHRwbHZhcnMgPSBhcnJheSgpOwoJCSR0cGx2YXJzWydnYXRldGl0bGUnXSA9ICRtb2QtPkxhbmcoJ2ZyYW1lX3RpdGxlJywkZ2RhdGFbJ3RpdGxlJ10pOwoJCSRwYXJtcyA9IGFycmF5KCk7CgkJJHF1ZXJ5ID0gJ1NFTEVDVCBnYXRlX2lkLHRpdGxlLHZhbHVlLGVuY3ZhbHVlLGFwaW5hbWUsc2lnbmF0dXJlLGVuY3J5cHQsZW5hYmxlZCBGUk9NICcuJHByZWYuJ21vZHVsZV9zbXNnX3Byb3BzIFdIRVJFIGdhdGVfaWQ9Pyc7CgkJaWYoISRwYWRtKQoJCQkkcXVlcnkgLj0gJyBBTkQgZW5hYmxlZD0xJzsKCQkkcXVlcnkgLj0gJyBPUkRFUiBCWSBhcGlvcmRlcic7CgkJJGdpZCA9IChpbnQpJGdkYXRhWydnYXRlX2lkJ107CgkJJHJlcyA9ICRkYi0+R2V0QWxsKCRxdWVyeSxhcnJheSgkZ2lkKSk7CgkJaWYoJHJlcykKCQl7CgkJCWZvcmVhY2goJHJlcyBhcyAmJHJvdykKCQkJewoJCQkJJG9iID0gKG9iamVjdCkkcm93OwoJCQkJLy9hZGp1c3RtZW50cwoJCQkJaWYoJG9iLT5lbmNyeXB0KQoJCQkJCSRvYi0+dmFsdWUgPSBzbXNnX3V0aWxzOjpkZWNyeXB0X3ZhbHVlKCRtb2QsJG9iLT5lbmN2YWx1ZSk7CgkJCQl1bnNldCgkb2ItPmVuY3ZhbHVlKTsKCQkJCSRvYi0+c3BhY2UgPSAkYWxpYXMuJ34nLiRvYi0+YXBpbmFtZS4nfic7IC8vZm9yIGdhdGV3YXktZGF0YSAnbmFtZXNwYWNlJwoJCQkJJHBhcm1zW10gPSAkb2I7CgkJCX0KCQkJdW5zZXQoJHJvdyk7CgkJfQoJCSRkY291bnQgPSBjb3VudCgkcGFybXMpOwoJCWlmKCRkY291bnQgPT0gMCkKCQl7CgkJCSRvYiA9IG5ldyBzdGRDbGFzcygpOwoJCQkkb2ItPnRpdGxlID0gJG1vZC0+TGFuZygnZXJyb3Jfbm9kYXRhZm91bmQnKTsKCQkJJG9iLT52YWx1ZSA9ICcnOwoJCQkkb2ItPmFwaW5hbWUgPSBGQUxTRTsgLy9wcmV2ZW50IGlucHV0LW9iamVjdCBjcmVhdGlvbgoJCQkkb2ItPnNwYWNlID0gJyc7CgkJCSRwYXJtc1tdID0gJG9iOwoJCX0KCQkkdHBsdmFycyArPSBhcnJheSgKCQkJJ2RhdGEnID0+ICRwYXJtcywKCQkJJ2Rjb3VudCcgPT4gJGRjb3VudCwKCQkJJ3NwYWNlJyA9PiAkYWxpYXMsIC8vZm9yIGdhdGV3YXktZGF0YSAnbmFtZXNwYWNlJwoJCQknZ2F0ZWlkJyA9PiAkZ2lkCgkJKTsKCgkJaWYoJHBhZG0pCgkJewoJCQkkdHBsdmFycyArPSBhcnJheSgKCQkJCSdoZWxwJyA9PiAkbW9kLT5MYW5nKCdoZWxwX3N1cmUnKS4nICcuJG1vZC0+TGFuZygnaGVscF9kbmQnKSwKCQkJCSd0aXRsZV90aXRsZScgPT4gJG1vZC0+TGFuZygndGl0bGUnKSwKCQkJCSd0aXRsZV92YWx1ZScgPT4gJG1vZC0+TGFuZygndmFsdWUnKSwKCQkJCSd0aXRsZV9lbmNyeXB0JyA9PiAkbW9kLT5MYW5nKCdlbmNyeXB0JyksCgkJCQkndGl0bGVfYXBpbmFtZScgPT4gJG1vZC0+TGFuZygnYXBpbmFtZScpLAoJCQkJJ3RpdGxlX2VuYWJsZWQnID0+ICRtb2QtPkxhbmcoJ2VuYWJsZWQnKSwKCQkJCSd0aXRsZV9oZWxwJyA9PiAkbW9kLT5MYW5nKCdoZWxwdGl0bGUnKSwKCQkJCSd0aXRsZV9zZWxlY3QnID0+ICRtb2QtPkxhbmcoJ3NlbGVjdCcpCgkJCSk7CgoJCQkkaWQgPSAnbTFfJzsgLy9tb2R1bGUgYWRtaW4gaW5zdGFuY2UtaWQgaXMgaGFyZC1jb2RlZCAoT1IgJHNtYXJ0eS0+dHBsX3ZhcnNbJ2FjdGlvbmlkJ10tPnZhbHVlKQoJCQkkdGV4dCA9ICRtb2QtPkxhbmcoJ2FkZF9wYXJhbWV0ZXInKTsKCQkJJHRoZW1lID0gKCRtb2QtPmJlZm9yZTIwKSA/IGNtc21zKCktPmdldF92YXJpYWJsZSgnYWRtaW50aGVtZScpOgoJCQkJY21zX3V0aWxzOjpnZXRfdGhlbWVfb2JqZWN0KCk7CgkJCSRhZGRpY29uID0gJHRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJywkdGV4dCwnJywnJywnc3lzdGVtaWNvbicpOwoJCQkkYXJncyA9IGFycmF5KCdnYXRlX2lkJz0+JGdpZCk7CgkJCSR0cGx2YXJzWydhZGRpdGVtJ10gPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwnYWRkZ2F0ZScsJycsJGFkZGljb24sJGFyZ3MpLicgJy4KCQkJCSRtb2QtPkNyZWF0ZUxpbmsoJGlkLCdhZGRnYXRlJywnJywkdGV4dCwkYXJncyk7CgkJCWlmKCRkY291bnQgPiAwKQoJCQl7CgkJCQkkdHBsdmFyc1snYnRuZGVsZXRlJ10gPSAkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJGFsaWFzLid+ZGVsZXRlJywKCQkJCQkkbW9kLT5MYW5nKCdkZWxldGUnKSwndGl0bGU9IicuJG1vZC0+TGFuZygnZGVsZXRlX3RpcCcpLiciJyk7CgkJCQkvL2NvbmZpcm1hdGlvbiBqcyBhcHBsaWVkIGluICQoZG9jdW1lbnQpLnJlYWR5KCkgLSBzZWUgYWN0aW9uLmRlZmF1bHRhZG1pbi5waHAKCQkJfQoJCX0KCQkvLyBhbnl0aGluZyBlbHNlIHRvIHNldCB1cCBmb3IgdGhlIHRlbXBsYXRlCgkJJHRoaXMtPmN1c3RvbV9zZXR1cCgkdHBsdmFycywkcGFkbSk7IC8vZS5nLiBlYWNoICRvYi0+c2l6ZQoJCSR0cGxuYW1lID0gKCRwYWRtKSA/ICdnYXRlZGF0YV9hZG1pbi50cGwnIDogJ2dhdGVkYXRhX21vZC50cGwnOwoJCXJldHVybiBzbXNnX3V0aWxzOjpQcm9jZXNzVGVtcGxhdGUoJG1vZCwkdHBsbmFtZSwkdHBsdmFycyk7Cgl9CgoJLyoqCgloYW5kbGVfc2V0dXBfZm9ybToKCUBwYXJhbXM6IGFycmF5IG9mIHBhcmFtdGVycyBwcm92aWRlZCBhZnRlciBhZG1pbiBmb3JtICdzdWJtaXQnCglQYXJzZXMgcmVsZXZhbnQgQHBhcmFtcyBpbnRvIHN0b3JlZCBkYXRhLCBvciBkZWxldGVzIHN0b3JlZCBkYXRhIGlmIHNvIGluc3RydWN0ZWQKCSovCglwdWJsaWMgZnVuY3Rpb24gaGFuZGxlX3NldHVwX2Zvcm0oJHBhcmFtcykKCXsKCQkkYWxpYXMgPSAkdGhpcy0+Z2V0X2FsaWFzKCk7CgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCQkkcHJlZiA9IGNtc19kYl9wcmVmaXgoKTsKCgkJJGdpZCA9IChpbnQpJHBhcmFtc1skYWxpYXMuJ35nYXRlX2lkJ107CgkJdW5zZXQoJHBhcmFtc1skYWxpYXMuJ35nYXRlX2lkJ10pOwoKCQkkdGhpcy0+Y3VzdG9tX3NhdmUoJHBhcmFtcyk7IC8vYW55IGdhdGV3YXktc3BlY2lmaWMgYWRqdXN0bWVudHMgdG8gJHBhcmFtcwoJCSRkZWxldGUgPSBpc3NldCgkcGFyYW1zWyRhbGlhcy4nfmRlbGV0ZSddKTsKCgkJJHNyY2ggPSBhcnJheSgnICcsIiciLCciJywnPScsJ1xcJywnLycsJ1wwJywiXG4iLCJcciIsJ1x4MWEnKTsKCQkkcmVwbCA9IGFycmF5KCcnICwnJyAsJycgLCcnICwnJyAgLCcnICwnJyAgLCcnICAsJycgICwnJyk7CgkJJGNvbmRzID0gYXJyYXkoKTsKCgkJaWYoJGRlbGV0ZSkKCQl7CgkJCXVuc2V0KCRwYXJhbXNbJGFsaWFzLid+ZGVsZXRlJ10pOwoJCQkkc3FsMTIgPSAnREVMRVRFIEZST00gJy4kcHJlZi4nbW9kdWxlX3Ntc2dfcHJvcHMgV0hFUkUgZ2F0ZV9pZD0/IEFORCBhcGluYW1lPT8nOwoJCX0KCQkvL2FjY3VtdWxhdGUgZGF0YSAoaW4gYW55IG9yZGVyKSBpbnRvIGVhc2lseS11c2FibGUgZm9ybWF0CgkJZm9yZWFjaCgkcGFyYW1zIGFzICRrZXk9PiR2YWwpCgkJewoJCQkvLyRrZXkgaXMgbGlrZSAnY2xpY2thdGVsbH51c2VyfnRpdGxlJwoJCQlpZihzdHJwb3MoJGtleSwkYWxpYXMpID09PSAwKQoJCQl7CgkJCQkkcGFydHMgPSBleHBsb2RlKCd+Jywka2V5KTsgLy9oZW5jZSBbMF09JGFsaWFzLFsxXT1hcGluYW1lLWZpZWxkIHZhbHVlLFsyXShtb3N0bHkpPWZpZWxkbmFtZSB0byB1cGRhdGUKCQkJCWlmKCRwYXJ0c1syXSAmJiAkcGFydHNbMl0gIT0gJ3NlbCcgJiYgISRkZWxldGUpCgkJCQl7CgkJCQkJLy9mb2lsIGluamVjdGlvbi1hdHRlbXB0cwoJCQkJCSRwYXJ0c1syXSA9IHN0cl9yZXBsYWNlKCRzcmNoLCRyZXBsLCRwYXJ0c1syXSk7CgkJCQkJaWYocHJlZ19tYXRjaCgnL1teXHd+QCNcJCUmPystOnxdLycsJHBhcnRzWzJdKSkKCQkJCQkJY29udGludWU7CgkJCQkJaWYoJHBhcnRzWzFdKQoJCQkJCXsKCQkJCQkJJHBhcnRzWzFdID0gc3RyX3JlcGxhY2UoJHNyY2gsJHJlcGwsJHBhcnRzWzFdKTsKCQkJCQkJaWYocHJlZ19tYXRjaCgnL1teXHd+QCNcJCUmPystOnxdLycsJHBhcnRzWzFdKSkKCQkJCQkJCWNvbnRpbnVlOwoJCQkJCX0KCQkJCQllbHNlCgkJCQkJCSRwYXJ0c1sxXSA9ICd0b2RvJzsKCQkJCQlpZighYXJyYXlfa2V5X2V4aXN0cygkcGFydHNbMV0sJGNvbmRzKSkKCQkJCQkJJGNvbmRzWyRwYXJ0c1sxXV0gPSBhcnJheSgpOwoJCQkJCSRjb25kc1skcGFydHNbMV1dWyRwYXJ0c1syXV0gPSAkdmFsOwoJCQkJfQoJCQkJZWxzZWlmKCRkZWxldGUgJiYgJHBhcnRzWzJdID09ICdzZWwnKQoJCQkJewoJCQkJCSRkYi0+RXhlY3V0ZSgkc3FsMTIsYXJyYXkoJGdpZCwkcGFydHNbMV0pKTsKCQkJCX0KCQkJfQoJCX0KCQlpZigkZGVsZXRlKQoJCQlyZXR1cm47CgoJCSRwYWRtID0gJHRoaXMtPl9tb2R1bGUtPkNoZWNrUGVybWlzc2lvbignQWRtaW5pc3RlclNNU0dhdGV3YXlzJyk7CgkJJG8gPSAxOwoJCWZvcmVhY2goJGNvbmRzIGFzICRhcGluYW1lPT4mJGRhdGEpCgkJewoJCQkkZW5jID0gKGlzc2V0KCRkYXRhWydlbmNyeXB0J10pKSA/IDE6MDsKCQkJJGRhdGFbJ2VuY3J5cHQnXSA9ICRlbmM7CgkJCWlmKCRlbmMpCgkJCXsKCQkJCSRkYXRhWydlbmN2YWx1ZSddID0gc21zZ191dGlsczo6ZW5jcnlwdF92YWx1ZSgkdGhpcy0+X21vZHVsZSwkZGF0YVsndmFsdWUnXSk7CgkJCQkkZGF0YVsndmFsdWUnXSA9IE5VTEw7CgkJCX0KCQkJZWxzZQoJCQkJJGRhdGFbJ2VuY3ZhbHVlJ10gPSBOVUxMOwoJCQlpZigkcGFkbSkKCQkJCSRkYXRhWydlbmFibGVkJ10gPSAoaXNzZXQoJGRhdGFbJ2VuYWJsZWQnXSkpID8gMTowOwoJCQkkc3FsID0gJ1VQREFURSAnLiRwcmVmLidtb2R1bGVfc21zZ19wcm9wcyBTRVQgJwoJCQkJLmltcGxvZGUoJz0/LCcsYXJyYXlfa2V5cygkZGF0YSkpLgoJCQkJJz0/LHNpZ25hdHVyZT1DQVNFIFdIRU4gc2lnbmF0dXJlIElTIE5VTEwgVEhFTiA/IEVMU0Ugc2lnbmF0dXJlIEVORCxhcGlvcmRlcj0/IFdIRVJFIGdhdGVfaWQ9PyBBTkQgYXBpbmFtZT0/JzsKCQkJLy9OT1RFIGFueSByZWNvcmQgZm9yIGEgbmV3IHBhcmFtZXRlciBpbmNsdWRlcyBhcGluYW1lPSd0b2RvJyAmIHNpZ25hdHVyZT1OVUxMCgkJCSRzaWcgPSAoJGFwaW5hbWUgIT0gJ3RvZG8nKSA/ICRhcGluYW1lIDogJGRhdGFbJ2FwaW5hbWUnXTsKCQkJJGFyZ3MgPSBhcnJheV9tZXJnZShhcnJheV92YWx1ZXMoJGRhdGEpLGFycmF5KCRzaWcsJG8sJGdpZCwkYXBpbmFtZSkpOwoJCQkkYXJlcyA9ICRkYi0+RXhlY3V0ZSgkc3FsLCRhcmdzKTsKCQkJJG8rKzsKCQl9CgkJdW5zZXQoJGRhdGEpOwoJfQoKCS8vRm9yIGludGVybmFsIHVzZSBvbmx5CgkvL1JlY29yZCBvciB1cGRhdGUgZ2F0ZXdheS1zcGVjaWZpYyBkZXRhaWxzIGluIHRoZSBtb2R1bGUncyBkYXRhYmFzZSB0YWJsZXMKCS8vUmV0dXJucyBrZXktdmFsdWUgb2YgdGhlIHJvdyBhZGRlZCB0byB0aGUgZ2F0ZXMtdGFibGUsIGZvciB0aGUgZ2F0ZXdheQoJYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIHVwc2VydF90YWJsZXMoKTsKCgkvL0ZvciBpbnRlcm5hbCB1c2Ugb25seQoJLy9TZXR1cCBnYXRld2F5LXNwZWNpZmljIGRldGFpbHMgZm9yIGRlZmF1bHRhZG1pbiBhY3Rpb24KCS8vJHBhZG0gPSBib29sZWFuLCBUUlVFIGlmIGN1cnJlbnQgdXNlciBoYXMgQWRtaW5pc3RlclNNU0dhdGV3YXlzIHBlcm1pc3Npb24KCWFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBjdXN0b21fc2V0dXAoJiR0cGx2YXJzLCRwYWRtKTsKCgkvL0ZvciBpbnRlcm5hbCB1c2Ugb25seQoJLy9Qcm9jZXNzIGdhdGV3YXktc3BlY2lmaWMgZGV0YWlscyBhZnRlciAnc3VibWl0JyBpbiBkZWZhdWx0YWRtaW4gYWN0aW9uCglhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gY3VzdG9tX3NhdmUoJiRwYXJhbXMpOwoKCS8qKgoJZ2V0X25hbWU6CglSZXR1cm5zIHN0cmluZyB3aGljaCBpcyB0aGUodW4tdHJhbnNsYXRlZCkgZ2F0ZXdheSBpZGVudGlmaWVyCgkqLwoJYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCk7CgoJLyoqCglnZXRfYWxpYXM6CglSZXR1cm5zIHN0cmluZyB3aGljaCBpcyB0aGUodW4tdHJhbnNsYXRlZCkgZ2F0ZXdheSBhbGlhcyx1c2VkIGZvciBjbGFzc25hbWUgZXRjCgkqLwoJYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGdldF9hbGlhcygpOwoKCS8qKgoJZ2V0X2Rlc2NyaXB0aW9uOgoJUmV0dXJucyBzdHJpbmcgd2hpY2ggaXMgYSh0cmFuc2xhdGVkKSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgZ2F0ZXdheQoJKi8KCWFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBnZXRfZGVzY3JpcHRpb24oKTsKCgkvKioKCXN1cHBvcnRfY3VzdG9tX3NlbmRlcjoKCVJldHVybnMgYm9vbGVhbiBUUlVFL0ZBTFNFIGFjY29yZGluZyB0byB3aGV0aGVyIHRoZSBnYXRld2F5IGFsbG93cyB1c2Ugb2YKCWEgdXNlci1zcGVjaWZpZWQgc291cmNlLXBob25lLW51bWJlcih3aGljaCBtaWdodCBuZWVkIHRvIGJlIGEgbnVtYmVyIHByZS1hcnJhbmdlZAoJd2l0aCB0aGUgZ2F0ZXdheSBzdXBwbGllcikKCSovCglhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gc3VwcG9ydF9jdXN0b21fc2VuZGVyKCk7CgoJLyoqCglyZXF1aXJlX2NvdW50cnlfcHJlZml4OgoJUmV0dXJucyBib29sZWFuIFRSVUUvRkFMU0UgYWNjb3JkaW5nIHRvIHdoZXRoZXIgYSBjb3VudHJ5LWNvZGUgcHJlZml4IGZvcgoJbXVzdCBiZSBwcmVwZW5kZWQgdG8gZGVzdGluYXRpb24gcGhvbmUtbnVtYmVycwoJKi8KCWFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiByZXF1aXJlX2NvdW50cnlfcHJlZml4KCk7CgoJLyoqCglyZXF1aXJlX3BsdXNfcHJlZml4OgoJUmV0dXJucyBib29sZWFuIFRSVUUvRkFMU0UgYWNjb3JkaW5nIHRvIHdoZXRoZXIgdGhlIGNvdW50cnktY29kZSBwcmVmaXggZm9yCglkZXN0aW5hdGlvbiBudW1iZXJzIG11c3QgYmVnaW4gd2l0aCBhICcrJyBjaGFyYWN0ZXIKCSovCglhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gcmVxdWlyZV9wbHVzX3ByZWZpeCgpOwoKCS8qKgoJbXVsdGlfbnVtYmVyX3NlcGFyYXRvcjoKCVJldHVybnMgc3RyaW5nIGNvbnRhaW5pbmcgY2hhcmFjdGVyIHRvIGJlIHVzZWQgZm9yIHNlcGFyYXRpbmcgbnVtYmVycyBpbgoJbXVsdGktZGVzdGluYXRpb24gJ3RvJyB2YWx1ZXMsb3IgRkFMU0UgaWYgb25seSBzaW5nbGUtZGVzdGluYXRpb24gaXMgYWxsb3dlZAoJKi8KCWFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBtdWx0aV9udW1iZXJfc2VwYXJhdG9yKCk7CgoJLyoqCglzdXBwb3J0X21tczoKCVJldHVybnMgYm9vbGVhbiBUUlVFL0ZBTFNFIGFjY29yZGluZyB0byB3aGV0aGVyIHRoZSBnYXRld2F5IHN1cHBvcnRzIGF1dG9tYXRpYwoJcGFydGl0aW9uaW5nIG9mIG1lc3NhZ2VzIGxvbmdlciB0aGFuIDE2MCBjaGFycyBpbnRvIGEgc2VyaWVzIG9mIHNob3J0ZXIgcGFydHMKCSovCglhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gc3VwcG9ydF9tbXMoKTsKCgkvL1BlcmZvcm0gcHJlLW1lc3NhZ2Utc2VuZCBpbml0aWFsaXNhdGlvbiBvciBjaGVja3MsaWYgYW55CgkvL1JldHVybnMgbm90aGluZwoJYWJzdHJhY3QgcHJvdGVjdGVkIGZ1bmN0aW9uIHNldHVwKCk7CgoJLy9Db25zdHJ1Y3QgdGhlIGFjdHVhbCBzdHJpbmcgdG8gYmUgc2VudCB0byB0aGUgZ2F0ZXdheQoJLy9SZXR1cm5zIHRoYXQgc3RyaW5nLG9yIGVsc2UgZW1wdHkgc3RyaW5nIG9yIGxpdGVyYWwgRkFMU0UgdXBvbiBmYWlsdXJlCgkvL01heSByZXR1cm4gZHVtbXkgZS5nLiAnZ29vZCcgb3IgJyAnIGlmIHN1Y2ggc3RyaW5nIGlzbid0IG5lZWRlZAoJYWJzdHJhY3QgcHJvdGVjdGVkIGZ1bmN0aW9uIHByZXBfY29tbWFuZCgpOwoKCS8vSW50ZXJwcmV0ICRyZXMoc3RyaW5nIG9yIG9iamVjdCx1c3VhbGx5KSByZXR1cm5lZCBmcm9tIGxhc3QgbWVzc2FnZS1zZW5kIHByb2Nlc3MKCWFic3RyYWN0IHByb3RlY3RlZCBmdW5jdGlvbiBwYXJzZV9yZXN1bHQoJHJlcyk7CgoJLyoqCglwcm9jZXNzX2RlbGl2ZXJ5X3JlcG9ydDoKCUludGVycHJldCBtZXNzYWdlLWRlbGl2ZXJ5IHJlcG9ydCAoZGV0YWlscyBpbiAkX1JFUVVFU1QpIGFuZCByZXR1cm4gcmVzdWx0YW50CglzdHJpbmcsIHN1aXRhYmxlIGZvciBwdWJsaWMgZGlzcGxheSBvciBsb2dnaW5nCgkqLwoJYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIHByb2Nlc3NfZGVsaXZlcnlfcmVwb3J0KCk7CgoJLy9Gb3IgaW50ZXJuYWwgdXNlIG9ubHkKCS8vR2V0IHN0cmluZyByZXR1cm5lZCBieSBnYXRld2F5IGluIHJlc3BvbnNlIHRvIG1lc3NhZ2Utc2VuZCBwcm9jZXNzCglhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gZ2V0X3Jhd19zdGF0dXMoKTsKCn0KCj8+Cgo=]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/gateways/class.clickatell_sms_gateway.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpjbGFzcyBjbGlja2F0ZWxsX3Ntc19nYXRld2F5IGV4dGVuZHMgc21zX2dhdGV3YXlfYmFzZQp7Cgljb25zdCBDVEVMTF9IVFRQX0dBVEVXQVkgPSAnaHR0cDovL2FwaS5jbGlja2F0ZWxsLmNvbS9odHRwJzsKCWNvbnN0IENURUxMX0FQSV9VUkwgPSAnaHR0cHM6Ly93d3cuY2xpY2thdGVsbC5jb20vYXBpcy1zY3JpcHRzL2FwaXMvaHR0cC1zJzsKCS8vQ0hFQ0tNRSBodHRwcyA/Cglwcml2YXRlICRfcmF3c3RhdHVzOwoKCXB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCgl7CgkJcmV0dXJuICdDbGlja2F0ZWxsJzsKCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0X2FsaWFzKCkKCXsKCQlyZXR1cm4gJ2NsaWNrYXRlbGwnOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBnZXRfZGVzY3JpcHRpb24oKQoJewoJCXJldHVybiAkdGhpcy0+X21vZHVsZS0+TGFuZygnZGVzY3JpcHRpb25fY2xpY2thdGVsbCcpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBzdXBwb3J0X2N1c3RvbV9zZW5kZXIoKQoJewoJCXJldHVybiBUUlVFOyAvL29ubHkgcmVnaXN0ZXJlZC9hcHByb3ZlZC9wdXJjaGFzZWQgbnVtYmVycwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBzdXBwb3J0X21tcygpCgl7CgkJcmV0dXJuIEZBTFNFOyAvL1RPRE8KCX0KCglwdWJsaWMgZnVuY3Rpb24gcmVxdWlyZV9jb3VudHJ5X3ByZWZpeCgpCgl7CgkJcmV0dXJuIFRSVUU7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHJlcXVpcmVfcGx1c19wcmVmaXgoKQoJewoJCXJldHVybiBGQUxTRTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gbXVsdGlfbnVtYmVyX3NlcGFyYXRvcigpCgl7CgkJcmV0dXJuIEZBTFNFOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiB1cHNlcnRfdGFibGVzKCkKCXsKCQkkZ2lkID0gc21zZ191dGlsczo6c2V0Z2F0ZSgkdGhpcyk7CgkJaWYoJGdpZCkKCQl7CgkJCXBhcmVudDo6c2V0X2dhdGVpZCgkZ2lkKTsKCQkJJG1vZCA9ICR0aGlzLT5fbW9kdWxlOwoJCSAgICAvL3NldHByb3BzKCkgYXJndW1lbnQgJHByb3BzID0gYXJyYXkgb2YgYXJyYXlzLCBlYWNoIHdpdGggWzBdPXRpdGxlIFsxXT1hcGluYW1lIFsyXT12YWx1ZSBbM109ZW5jcnlwdAoJCQlzbXNnX3V0aWxzOjpzZXRwcm9wcygkZ2lkLGFycmF5KAoJCQkgYXJyYXkoJG1vZC0+TGFuZygndXNlcm5hbWUnKSwndXNlcicsTlVMTCwwKSwKCQkJIGFycmF5KCRtb2QtPkxhbmcoJ3Bhc3N3b3JkJyksJ3Bhc3N3b3JkJyxOVUxMLDEpLAoJCQkgYXJyYXkoJG1vZC0+TGFuZygnYXBpaWQnKSwnYXBpX2lkJyxOVUxMLDApCgkJCSkpOwoJCX0KCQlyZXR1cm4gJGdpZDsKCX0KCglwdWJsaWMgZnVuY3Rpb24gY3VzdG9tX3NldHVwKCYkdHBsdmFycywkcGFkbSkKCXsKCQlmb3JlYWNoKCR0cGx2YXJzWydkYXRhJ10gYXMgJiRvYikKCQl7CgkJCWlmKCRvYi0+c2lnbmF0dXJlID09ICdwYXNzd29yZCcpCgkJCXsKCQkJCSRvYi0+c2l6ZSA9IDIwOwoJCQkJYnJlYWs7CgkJCX0KCQl9CgkJdW5zZXQoJG9iKTsKCQlpZigkcGFkbSkKCQl7CgkJCSR0cGx2YXJzWydoZWxwJ10gLj0gJzxiciAvPicuCgkJCQkkdGhpcy0+X21vZHVsZS0+TGFuZygnaGVscF91cmxjaGVjaycsc2VsZjo6Q1RFTExfQVBJX1VSTCxzZWxmOjpnZXRfbmFtZSgpLicgQVBJJyk7CgkJfQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBjdXN0b21fc2F2ZSgmJHBhcmFtcykKCXsKCX0KCglwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0dXAoKQoJewoJfQoKCXByb3RlY3RlZCBmdW5jdGlvbiBwcmVwX2NvbW1hbmQoKQoJewoJCSRnaWQgPSBwYXJlbnQ6OmdldF9nYXRlaWQoc2VsZjo6Z2V0X2FsaWFzKCkpOwoJCSRwYXJtcyA9IHNtc2dfdXRpbHM6OmdldHByb3BzKCR0aGlzLT5fbW9kdWxlLCRnaWQpOwoJCWlmKAoJCSAkcGFybXNbJ3VzZXInXVsndmFsdWUnXSA9PSBGQUxTRSB8fAoJCSAkcGFybXNbJ3Bhc3N3b3JkJ11bJ3ZhbHVlJ10gPT0gRkFMU0UgfHwKCQkgJHBhcm1zWydhcGlfaWQnXVsndmFsdWUnXSA9PSBGQUxTRQoJCSkKCQl7CgkJCSR0aGlzLT5fc3RhdHVzID0gcGFyZW50OjpTVEFUX0VSUk9SX0FVVEg7CgkJCXJldHVybiBGQUxTRTsKCQl9CgkJaWYoJHRoaXMtPl9udW0gPT0gRkFMU0UpCgkJewoJCQkkdGhpcy0+X3N0YXR1cyA9IHBhcmVudDo6U1RBVF9FUlJPUl9JTlZBTElEX0RBVEE7CgkJCXJldHVybiBGQUxTRTsKCQl9CgkJJHRleHQgPSBzdHJpcF90YWdzKCR0aGlzLT5fbXNnKTsKCQlpZighc2VsZjo6c3VwcG9ydF9tbXMoKSkKCQkJJHRleHQgPSBzdWJzdHIoJHRleHQsMCwxNjApOwoJCWlmKCFzbXNnX3V0aWxzOjp0ZXh0X2lzX3ZhbGlkKCR0ZXh0LDApKQoJCXsKCQkJJHRoaXMtPl9zdGF0dXMgPSBwYXJlbnQ6OlNUQVRfRVJST1JfSU5WQUxJRF9EQVRBOwoJCQlyZXR1cm4gRkFMU0U7CgkJfQoKCQkkc2VuZHMgPSBhcnJheSgpOwoJCWZvcmVhY2goJHBhcm1zIGFzICYkdmFsKQoJCQkkc2VuZHNbJHZhbFsnYXBpbmFtZSddXSA9ICR2YWxbJ3ZhbHVlJ107IC8vQ0hFQ0tNRSB1cmxlbmNvZGUgPwoJCXVuc2V0KCR2YWwpOwoKCQkkc2VuZHNbJ3RvJ10gPSAkdGhpcy0+X251bTsKLyoKZnJvbSA9IGludGVybmF0aW9uYWwgZm9ybWF0IG51bWJlciwgcmVnaXN0ZXJlZCBhbmQgYXBwcm92ZWQKY2FsbGJhY2sgdG8gcmVnaXN0ZXJlZCBVUkwKY29uY2F0IDIgb3IgMyBqb2luZWQgbWVzc2FnZXMKcmVxX2ZlYXQKcXVldWUgMSwyLDMgMT1oaWdoZXN0IHByaW9yaXR5LCAzPWRlZmF1bHQKKi8KCQkkc2VuZHNbJ3RleHQnXSA9IHVybGVuY29kZSgkdGV4dCk7CgoJCSRzdHIgPSBzbXNnX3V0aWxzOjppbXBsb2RlX3dpdGhfa2V5KCRzZW5kcyk7CgkJJHN0ciA9IHNlbGY6OkNURUxMX0hUVFBfR0FURVdBWS4nL3NlbmRtc2c/Jy5zdHJfcmVwbGFjZSgnYW1wOycsJycsJHN0cik7CgkJcmV0dXJuICRzdHI7Cgl9CgoJLyoKCUZvciBtZXNzYWdlIHRvIG9uZSBudW1iZXIsIHJldHVybnMKCUlEOiBhcGltc2dpZAoJb3I6CglFUlI6IEVycm9yIG51bWJlciwgZXJyb3IgZGVzY3JpcHRpb24KCglGb3IgbWVzc2FnZSB0byBtb3JlIHRoYW4gb25lIG51bWJlciwgcmV0dXJucwoJSUQ6IGFwaW1zZ2lkIFRvOiB4eHh4eHgKCUlEOiBhcGltc2dpZCBUbzogeHh4eHh4CglvcjoKCUVSUjogRXJyb3IgbnVtYmVyLCBlcnJvciBkZXNjcmlwdGlvbiBUbzogZGVzdGluYXRpb24gYWRkcmVzcwoJRVJSOiBFcnJvciBudW1iZXIsIGVycm9yIGRlc2NyaXB0aW9uIFRvOiBkZXN0aW5hdGlvbiBhZGRyZXNzCgoJRXJyb3IgbnVtYmVyczoKCTAwMSBBdXRoZW50aWNhdGlvbiBmYWlsZWQgQXV0aGVudGljYXRpb24gZGV0YWlscyBhcmUgaW5jb3JyZWN0LgoJMDAyIFVua25vd24gdXNlcm5hbWUgb3IgcGFzc3dvcmQgQXV0aG9yaXphdGlvbiBlcnJvciwgdW5rbm93biB1c2VyIG5hbWUgb3IgaW5jb3JyZWN0IHBhc3N3b3JkLgoJMDAzIFNlc3Npb24gSUQgZXhwaXJlZCBUaGUgc2Vzc2lvbiBJRCBoYXMgZXhwaXJlZCBhZnRlciBhIHByZS1zZXQgdGltZSBvZiBpbmFjdGl2aXR5LgoJMDA1IE1pc3Npbmcgc2Vzc2lvbiBJRCBNaXNzaW5nIHNlc3Npb24gSUQgYXR0cmlidXRlIGluIHJlcXVlc3QuCgkwMDcgSVAgTG9ja2Rvd24gdmlvbGF0aW9uIFlvdSBoYXZlIGxvY2tlZCBkb3duIHRoZSBBUEkgaW5zdGFuY2UgdG8gYSBzcGVjaWZpYyBJUCBhZGRyZXNzIGFuZCB0aGVuIHNlbnQgZnJvbSBhbiBJUCBhZGRyZXNzIGRpZmZlcmVudCB0byB0aGUgb25lIHlvdSBzZXQuCgkxMDEgSW52YWxpZCBvciBtaXNzaW5nIHBhcmFtZXRlcnMgT25lIG9yIG1vcmUgcmVxdWlyZWQgcGFyYW1ldGVycyBhcmUgbWlzc2luZyBvciBpbnZhbGlkCgkxMDIgSW52YWxpZCB1c2VyIGRhdGEgaGVhZGVyIFRoZSBmb3JtYXQgb2YgdGhlIHVzZXIgZGF0YSBoZWFkZXIgaXMgaW5jb3JyZWN0LgoJMTAzIFVua25vd24gQVBJIG1lc3NhZ2UgSUQgVGhlIEFQSSBtZXNzYWdlIElEIGlzIHVua25vd24uIExvZyBpbiB0byB5b3VyIEFQSSBhY2NvdW50IHRvIGNoZWNrIHRoZSBJRCBvciBjcmVhdGUgYSBuZXcgb25lLgoJMTA0IFVua25vd24gY2xpZW50IG1lc3NhZ2UgSUQgVGhlIGNsaWVudCBJRCBtZXNzYWdlIHRoYXQgeW91IGFyZSBxdWVyeWluZyBkb2VzIG5vdCBleGlzdC4KCTEwNSBJbnZhbGlkIGRlc3RpbmF0aW9uIGFkZHJlc3MgVGhlIGRlc3RpbmF0aW9uIGFkZHJlc3MgeW91IGFyZSBhdHRlbXB0aW5nIHRvIHNlbmQgdG8gaXMgaW52YWxpZC4KCTEwNiBJbnZhbGlkIHNvdXJjZSBhZGRyZXNzIFRoZSBzZW5kZXIgYWRkcmVzcyB0aGF0IGlzIHNwZWNpZmllZCBpcyBpbmNvcnJlY3QuCgkxMDcgRW1wdHkgbWVzc2FnZSBUaGUgbWVzc2FnZSBoYXMgbm8gY29udGVudC4KCTEwOCBJbnZhbGlkIG9yIG1pc3NpbmcgQVBJIElEIFRoZSBBUEkgbWVzc2FnZSBJRCBpcyBlaXRoZXIgaW5jb3JyZWN0IG9yIGhhcyBub3QgYmVlbiBpbmNsdWRlZCBpbiB0aGUgQVBJIGNhbGwuCgkxMDkgTWlzc2luZyBtZXNzYWdlIElEIFRoaXMgY2FuIGJlIGVpdGhlciBhIGNsaWVudCBtZXNzYWdlIElEIG9yIEFQSSBtZXNzYWdlIElELiBGb3IgZXhhbXBsZSB3aGVuIHVzaW5nIHRoZSBzdG9wIG1lc3NhZ2UgY29tbWFuZC4KCTExMyBNYXhpbXVtIG1lc3NhZ2UgcGFydHMgZXhjZWVkZWQgVGhlIHRleHQgbWVzc2FnZSBjb21wb25lbnQgb2YgdGhlIG1lc3NhZ2UgaXMgZ3JlYXRlciB0aGFuIHRoZSBwZXJtaXR0ZWQgMTYwIGNoYXJhY3RlcnMgKDcwIFVuaWNvZGUgY2hhcmFjdGVycykuIFNlbGVjdCBjb25jYXQgZXF1YWwgdG8gMSwyLDMtTiB0byBvdmVyY29tZSB0aGlzIGJ5IHNwbGl0dGluZyB0aGUgbWVzc2FnZSBhY3Jvc3MgbXVsdGlwbGUgbWVzc2FnZXMuCgkxMTQgQ2Fubm90IHJvdXRlIG1lc3NhZ2UgVGhpcyBpbXBsaWVzIHRoYXQgdGhlIGdhdGV3YXkgaXMgbm90IGN1cnJlbnRseSByb3V0aW5nIG1lc3NhZ2VzIHRvIHRoaXMgbmV0d29yayBwcmVmaXguIFBsZWFzZSBlbWFpbCBzdXBwb3J0QGNsaWNrYXRlbGwuY29tIHdpdGggdCBoZSBtb2JpbGUgbnVtYmVyIGluIHF1ZXN0aW9uLgoJMTE1IE1lc3NhZ2UgZXhwaXJlZCBNZXNzYWdlIGhhcyBleHBpcmVkIGJlZm9yZSB3ZSB3ZXJlIGFibGUgdG8gZGVsaXZlciBpdCB0byB0aGUgdXBzdHJlYW0gZ2F0ZXdheS4gTm8gY2hhcmdlIGFwcGxpZXMKCTExNiBJbnZhbGlkIFVuaWNvZGUgZGF0YSBUaGUgZm9ybWF0IG9mIHRoZSB1bmljb2RlIGRhdGEgZW50ZXJlZCBpcyBpbmNvcnJlY3QuCgkxMjAgSW52YWxpZCBkZWxpdmVyeSB0aW1lIFRoZSBmb3JtYXQgb2YgdGhlIGRlbGl2ZXJ5IHRpbWUgZW50ZXJlZCBpcyBpbmNvcnJlY3QuCgkxMjEgRGVzdGluYXRpb24gbW9iaWxlIG51bWJlciBibG9ja2VkIFRoaXMgbnVtYmVyIGlzIG5vdCBhbGxvd2VkIHRvIHJlY2VpdmUgbWVzc2FnZXMgZnJvbSB1cyBhbmQgaGFzIGJlZW4gcHV0IG9uIG91ciBibG9jayBsaXN0LgoJMTIyIERlc3RpbmF0aW9uIG1vYmlsZSBvcHRlZCBvdXQgVGhlIHVzZXIgaGFzIG9wdGVkIG91dCBhbmQgaXMgbm8gbG9uZ2VyIHN1YnNjcmliZWQgdG8geW91ciBzZXJ2aWNlLgoJMTIzIEludmFsaWQgU2VuZGVyIElEIEEgc2VuZGVyIElEIG5lZWRzIHRvIGJlIHJlZ2lzdGVyZWQgYW5kIGFwcHJvdmVkIGJlZm9yZSBpdCBjYW4gYmUgc3VjY2Vzc2Z1bGx5IHVzZWQgaW4gbWVzc2FnZSBzZW5kaW5nLgoJMTI4IE51bWJlciBkZWxpc3RlZCBUaGlzIGVycm9yIG1heSBiZSByZXR1cm5lZCB3aGVuIGEgbnVtYmVyIGhhcyBiZWVuIGRlbGlzdGVkLgoJMTMwIE1heGltdW0gTVQgbGltaXQgZXhjZWVkZWQgdW50aWwgPFVOSVggVElNRSBTVEFNUD4gVGhpcyBlcnJvciBpcyByZXR1cm5lZCB3aGVuIGFuIGFjY291bnQgaGFzIGV4Y2VlZGVkIHRoZSBtYXhpbXVtIG51bWJlciBvZiBNVCBtZXNzYWdlcyB3aGljaCBjYW4gYmUgc2VudCBkYWlseSBvciBtb250aGx5LiBZb3UgY2FuIHNlbmQgbWVzc2FnZXMgYWdhaW4gb24gdGhlIGRhdGUgaW5kaWNhdGVkIGJ5IHRoZSBVTklYIFRJTUVTVEFNUC4KCTIwMSBJbnZhbGlkIGJhdGNoIElEIFRoZSBiYXRjaCBJRCB3aGljaCB5b3UgaGF2ZSBlbnRlcmVkIGZvciBiYXRjaCBtZXNzYWdpbmcgaXMgbm90IHZhbGlkLgoJMjAyIE5vIGJhdGNoIHRlbXBsYXRlIFRoZSBiYXRjaCB0ZW1wbGF0ZSBoYXMgbm90IGJlZW4gZGVmaW5lZCBmb3IgdGhlIGJhdGNoIGNvbW1hbmQuCgkzMDEgTm8gY3JlZGl0IGxlZnQgSW5zdWZmaWNpZW50IGNyZWRpdHMKCTkwMSBJbnRlcm5hbCBlcnJvcgoJKi8KCXByb3RlY3RlZCBmdW5jdGlvbiBwYXJzZV9yZXN1bHQoJHN0cikKCXsKCQkkdGhpcy0+X3Jhd3N0YXR1cyA9ICRzdHI7CgoJCSRwYXJ0cyA9IGV4cGxvZGUoJzonLCRzdHIpOwoJCWlmKCRwYXJ0c1swXSA9PSAnSUQnKQoJCXsKCQkJJHRoaXMtPl9zdGF0dXMgPSBwYXJlbnQ6OlNUQVRfT0s7CgkJCSR0aGlzLT5fc21zaWQgPSB0cmltKCRwYXJ0c1sxXSk7CgkJfQoJCWVsc2UKCQl7CgkJCSRwYXJ0cyA9IGV4cGxvZGUoJywnLCRwYXJ0c1sxXSk7CgkJCSRjb2RlID0gdHJpbSgkcGFydHNbMF0pICsgMDsKCQkJc3dpdGNoKCRjb2RlKQoJCQl7CgkJCSBjYXNlIDE6CgkJCSBjYXNlIDI6CgkJCSBjYXNlIDc6CgkJCSBjYXNlIDEwMzoKCQkJIGNhc2UgMTA4OgoJCQkJJHRoaXMtPl9zdGF0dXMgPSBwYXJlbnQ6OlNUQVRfRVJST1JfQVVUSDsKCQkJCWJyZWFrOwoJCQkgY2FzZSAxMDE6CgkJCSBjYXNlIDEwNjoKCQkJIGNhc2UgMTA3OgoJCQkgY2FzZSAxMTM6CgkJCSBjYXNlIDExNjoKCQkJCSR0aGlzLT5fc3RhdHVzID0gcGFyZW50OjpTVEFUX0VSUk9SX0lOVkFMSURfREFUQTsKCQkJCWJyZWFrOwoJCQkgY2FzZSAxMjE6CgkJCQkkdGhpcy0+X3N0YXR1cyA9IHBhcmVudDo6U1RBVF9FUlJPUl9CTE9DS0VEOwoJCQkJYnJlYWs7CgkJCSBjYXNlIDEzMDoKCQkJCSR0aGlzLT5fc3RhdHVzID0gcGFyZW50OjpTVEFUX0VSUk9SX0xJTUlUOwoJCQkJYnJlYWs7CgkJCSBkZWZhdWx0OgoJCQkJJHRoaXMtPl9zdGF0dXMgPSBwYXJlbnQ6OlNUQVRfRVJST1JfT1RIRVI7CgkJCQlicmVhazsKCQkJfQoJCX0KCX0KCgkvKgoJTXVzdCBwYXJzZSAkX1JFUVVFU1QgZGlyZWN0bHkKCUdhdGV3YXkgcmV0dXJuczogYXBpX2lkLCBhcGlNc2dJZCwgY2xpTXNnSWQsIHRvLCB0aW1lc3RhbXAsIGZyb20sIHN0YXR1cywgY2hhcmdlCglTYW1wbGUgcmVxdWVzdDoKCWh0dHA6Ly93d3cueW91cnVybC5jb20/YXBpX2lkPTEyMzQ1JmFwaU1zZ0lkPTk5NmYzNjQ3NzVlMjRiODQzMmY0NWQ3N2RhOGVjYTQ3CgkmY2xpTXNnSWQ9YWJjMTIzJnRpbWVzdGFtcD0xMjE4MDA3ODE0JnRvPTI3OTk5NTYzMTU2NCZmcm9tPTI3ODMzMDAxMTcxJnN0YXR1cz0wMDMmY2hhcmdlPTAuMzAwMDAwCglTdGF0dXMgY29kZXM6CgkwMDEgMHgwMDEgTWVzc2FnZSB1bmtub3duIFRoZSBtZXNzYWdlIElEIGlzIGluY29ycmVjdCBvciByZXBvcnRpbmcgaXMgZGVsYXllZC4KCTAwMiAweDAwMiBNZXNzYWdlIHF1ZXVlZCBUaGUgbWVzc2FnZSBjb3VsZCBub3QgYmUgZGVsaXZlcmVkIGFuZCBoYXMgYmVlbiBxdWV1ZWQgZm9yIGF0dGVtcHRlZCByZWRlbGl2ZXJ5LgoJMDAzIDB4MDAzIERlbGl2ZXJlZCB0byBnYXRld2F5IERlbGl2ZXJlZCB0byB0aGUgdXBzdHJlYW0gZ2F0ZXdheSBvciBuZXR3b3JrIChkZWxpdmVyZWQgdG8gdGhlIHJlY2lwaWVudCkuCgkwMDQgMHgwMDQgUmVjZWl2ZWQgYnkgcmVjaXBpZW50IENvbmZpcm1hdGlvbiBvZiByZWNlaXB0IG9uIHRoZSBoYW5kc2V0IG9mIHRoZSByZWNpcGllbnQuCgkwMDUgMHgwMDUgRXJyb3Igd2l0aCBtZXNzYWdlIFRoZXJlIHdhcyBhbiBlcnJvciB3aXRoIHRoZSBtZXNzYWdlLCBwcm9iYWJseSBjYXVzZWQgYnkgdGhlIGNvbnRlbnQgb2YgdGhlIG1lc3NhZ2UgaXRzZWxmLgoJMDA2IDB4MDA2IFVzZXIgY2FuY2VsbGVkIG1lc3NhZ2UgZGVsaXZlcnkgVGhlIG1lc3NhZ2Ugd2FzIHRlcm1pbmF0ZWQgYnkgYSB1c2VyIChzdG9wIG1lc3NhZ2UgY29tbWFuZCkgb3IgYnkgb3VyIHN0YWZmLgoJMDA3IDB4MDA3IEVycm9yIGRlbGl2ZXJpbmcgbWVzc2FnZSBBbiBlcnJvciBvY2N1cnJlZCBkZWxpdmVyaW5nIHRoZSBtZXNzYWdlIHRvIHRoZSBoYW5kc2V0LgoJMDA4IDB4MDA4IE9LIE1lc3NhZ2UgcmVjZWl2ZWQgYnkgZ2F0ZXdheS4KCTAwOSAweDAwOSBSb3V0aW5nIGVycm9yIEFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGF0dGVtcHRpbmcgdG8gcm91dGUgdGhlIG1lc3NhZ2UuCgkwMTAgMHgwMEEgTWVzc2FnZSBleHBpcmVkIE1lc3NhZ2UgaGFzIGV4cGlyZWQgYmVmb3JlIHdlIHdlcmUgYWJsZSB0byBkZWxpdmVyIGl0IHRvIHRoZSB1cHN0cmVhbSBnYXRld2F5LiBObyBjaGFyZ2UgYXBwbGllcy4KCTAxMSAweDAwQiBNZXNzYWdlIHF1ZXVlZCBmb3IgbGF0ZXIgZGVsaXZlcnkgTWVzc2FnZSBoYXMgYmVlbiBxdWV1ZWQgYXQgdGhlIGdhdGV3YXkgZm9yIGRlbGl2ZXJ5IGF0IGEgbGF0ZXIgdGltZSAoZGVsYXllZCBkZWxpdmVyeSkuCgkwMTIgMHgwMEMgT3V0IG9mIGNyZWRpdCBUaGUgbWVzc2FnZSBjYW5ub3QgYmUgZGVsaXZlcmVkIGR1ZSB0byBhIGxhY2sgb2YgZnVuZHMgaW4geW91ciBhY2NvdW50LiBQbGVhc2UgcmUtcHVyY2hhc2UgY3JlZGl0cy4KCTAxNCAweDAwRSBNYXhpbXVtIE1UIGxpbWl0IGV4Y2VlZGVkIFRoZSBhbGxvd2FibGUgYW1vdW50IGZvciBNVCBtZXNzYWdpbmcgaGFzIGJlZW4gZXhjZWVkZWQuCgkqLwoJcHVibGljIGZ1bmN0aW9uIHByb2Nlc3NfZGVsaXZlcnlfcmVwb3J0KCkKCXsKCQlzd2l0Y2ggKChpbnQpJF9SRVFVRVNUWydzdGF0dXMnXSkKCQl7CgkJIGNhc2UgMzoKCQkgY2FzZSA0OgoJCSBjYXNlIDg6CgkJCSRzdGF0dXMgPSBwYXJlbnQ6OkRFTElWRVJZX09LOwoJCQlicmVhazsKCQkgY2FzZSAxOgoJCSBjYXNlIDU6CgkJIGNhc2UgNzoKIAkJIGNhc2UgOToKIAkJIGNhc2UgMTA6CiAJCSBjYXNlIDE0OgoJCQkkc3RhdHVzID0gcGFyZW50OjpERUxJVkVSWV9JTlZBTElEOwoJCQlicmVhazsKCQkgY2FzZSAxMjoKCQkJJHN0YXR1cyA9IHBhcmVudDo6REVMSVZFUllfQklMTElORzsKCQkJYnJlYWs7CgkJIGNhc2UgMjoKCQkgY2FzZSAxMToKCQkJJHN0YXR1cyA9IHBhcmVudDo6REVMSVZFUllfUEVORElORzsKCQkJYnJlYWs7CgkJIGRlZmF1bHQ6CgkJCSRzdGF0dXMgPSBwYXJlbnQ6OkRFTElWRVJZX1VOS05PV047CgkJCWJyZWFrOwoJCX0KCQkkc21zaWQgPSAkX1JFUVVFU1RbJ2FwaU1zZ0lkJ107CgkJJHNtc3RvID0gJF9SRVFVRVNUWyd0byddOwoJCXJldHVybiBzbXNnX3V0aWxzOjpnZXRfZGVsaXZlcnlfbXNnKCR0aGlzLT5fbW9kdWxlLCRzdGF0dXMsJHNtc2lkLCRzbXN0byk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGdldF9yYXdfc3RhdHVzKCkKCXsKCQlyZXR1cm4gJHRoaXMtPl9yYXdzdGF0dXM7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/class.googlevoice_sms_gateway.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpjbGFzcyBnb29nbGV2b2ljZV9zbXNfZ2F0ZXdheSBleHRlbmRzIHNtc19nYXRld2F5X2Jhc2UKewoJY29uc3QgR09PR0xFVk9JQ0VfQVBJX1VSTCA9ICdodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3BocGdvb2dsZXZvaWNlJzsKCXByaXZhdGUgJF9yYXdzdGF0dXM7CgoJcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKCXsKCQlyZXR1cm4gJ0dvb2dsZSBWb2ljZSc7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGdldF9hbGlhcygpCgl7CgkJcmV0dXJuICdnb29nbGV2b2ljZSc7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGdldF9kZXNjcmlwdGlvbigpCgl7CgkJcmV0dXJuICR0aGlzLT5fbW9kdWxlLT5MYW5nKCdkZXNjcmlwdGlvbl9nb29nbGV2b2ljZScpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBzdXBwb3J0X2N1c3RvbV9zZW5kZXIoKQoJewoJCXJldHVybiBGQUxTRTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gc3VwcG9ydF9tbXMoKQoJewoJCXJldHVybiBGQUxTRTsgLy9UT0RPCgl9CgoJcHVibGljIGZ1bmN0aW9uIHJlcXVpcmVfY291bnRyeV9wcmVmaXgoKQoJewoJCXJldHVybiBUUlVFOyAvL1RPRE8KCX0KCglwdWJsaWMgZnVuY3Rpb24gcmVxdWlyZV9wbHVzX3ByZWZpeCgpCgl7CgkJcmV0dXJuIEZBTFNFOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBtdWx0aV9udW1iZXJfc2VwYXJhdG9yKCkKCXsKCQlyZXR1cm4gRkFMU0U7IC8vVE9ETwoJfQoKCXB1YmxpYyBmdW5jdGlvbiB1cHNlcnRfdGFibGVzKCkKCXsKCQkkZ2lkID0gc21zZ191dGlsczo6c2V0Z2F0ZSgkdGhpcyk7CgkJaWYoJGdpZCkKCQl7CgkJCXBhcmVudDo6c2V0X2dhdGVpZCgkZ2lkKTsKCQkJJG1vZCA9ICR0aGlzLT5fbW9kdWxlOwoJCQkvL3NldHByb3BzKCkgYXJndW1lbnQgJHByb3BzID0gYXJyYXkgb2YgYXJyYXlzLCBlYWNoIHdpdGggWzBdPXRpdGxlIFsxXT1hcGluYW1lIFsyXT12YWx1ZSBbM109ZW5jcnlwdAoJCQkvL25vbmUgb2YgdGhlIGFwaW5hbWUncyBpcyBhY3R1YWxseSB1c2VkIChpbmRpY2F0ZWQgYnkgJ18nIHByZWZpeCkKCQkJc21zZ191dGlsczo6c2V0cHJvcHMoJGdpZCxhcnJheSgKCQkJIGFycmF5KCRtb2QtPkxhbmcoJ2VtYWlsJyksJ19lbWFpbCcsTlVMTCwwKSwKCQkJIGFycmF5KCRtb2QtPkxhbmcoJ3Bhc3N3b3JkJyksJ19wYXNzd29yZCcsTlVMTCwxKQoJCQkpKTsKCQl9CgkJcmV0dXJuICRnaWQ7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGN1c3RvbV9zZXR1cCgmJHRwbHZhcnMsJHBhZG0pCgl7CgkJZm9yZWFjaCgkdHBsdmFyc1snZGF0YSddIGFzICYkb2IpCgkJewoJCQlpZigkb2ItPnNpZ25hdHVyZSA9PSAnX2VtYWlsJykKCQkJCSRvYi0+c2l6ZSA9IDI0OwoJCQllbHNlaWYoJG9iLT5zaWduYXR1cmUgPT0gJ19wYXNzd29yZCcpCgkJCQkkb2ItPnNpemUgPSAyMDsKCQl9CgkJdW5zZXQoJG9iKTsKCQlpZigkcGFkbSkKCQl7CgkJCSR0cGx2YXJzWydoZWxwJ10gLj0gJzxiciAvPicuCgkJCQkkdGhpcy0+X21vZHVsZS0+TGFuZygnaGVscF91cmxjaGVjaycsc2VsZjo6R09PR0xFVk9JQ0VfQVBJX1VSTCxzZWxmOjpnZXRfbmFtZSgpLicgQVBJJyk7CgkJfQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBjdXN0b21fc2F2ZSgmJHBhcmFtcykKCXsKCX0KCglwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0dXAoKQoJewoJCXJlcXVpcmVfb25jZShjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCdnb29nbGV2b2ljZScsJ2NsYXNzLmdvb2dsZXZvaWNlMi5waHAnKSk7Cgl9CgoJcHJvdGVjdGVkIGZ1bmN0aW9uIHByZXBfY29tbWFuZCgpCgl7CgkJLy8gbmVlZCB0byByZXR1cm4gc29tZXRoaW5nLiBldmVuIHRob3VnaCB3ZSBpZ25vcmUgaXQKCQlyZXR1cm4gJ2dvb2QnOwoJfQoKCXByb3RlY3RlZCBmdW5jdGlvbiBfY29tbWFuZCgkY21kKQoJewoJCXRyeQoJCXsKCQkJJGdpZCA9IHBhcmVudDo6Z2V0X2dhdGVpZChzZWxmOjpnZXRfYWxpYXMoKSk7CgkJCSRwYXJtcyA9IHNtc2dfdXRpbHM6OmdldHByb3BzKCR0aGlzLT5fbW9kdWxlLCRnaWQpOwoJCQkkZ3YgPSBuZXcgR29vZ2xlVm9pY2UoCgkJCSRwYXJtc1snX2VtYWlsJ11bJ3ZhbHVlJ10sCgkJCSRwYXJtc1snX3Bhc3N3b3JkJ11bJ3ZhbHVlJ10pOwoKCQkJJG51bSA9ICR0aGlzLT5fbnVtOwoJCQlpZighJG51bSkKCQkJCXJldHVybiBGQUxTRTsKCQkJJG1zZyA9IHN0cmlwX3RhZ3MoJHRoaXMtPl9tc2cpOwoJCQlpZighc2VsZjo6c3VwcG9ydF9tbXMoKSkKCQkJCSRtc2cgPSBzdWJzdHIoJG1zZywwLDE2MCk7CgkJCWlmKCFzbXNnX3V0aWxzOjp0ZXh0X2lzX3ZhbGlkKCRtc2csMCkpCgkJCQlyZXR1cm4gRkFMU0U7CgkJCSRndi0+c21zKCRudW0sJG1zZyk7IC8vcmVzdWx0IGlnbm9yZWQKCQkJLy8gbmVlZCB0byByZXR1cm4gYSBzdGF0dXMKCQkJcmV0dXJuICdnb29kJzsKCQl9CgkJY2F0Y2goRXhjZXB0aW9uICRlKQoJCXsKCQkJcmV0dXJuICRlLT5nZXRNZXNzYWdlKCk7CgkJfQoJfQoKCXByb3RlY3RlZCBmdW5jdGlvbiBwYXJzZV9yZXN1bHQoJHN0cikKCXsKCQkkdGhpcy0+X3Jhd3N0YXR1cyA9ICRzdHI7CgkJaWYoJHN0ciA9PSAnZ29vZCcpCgkJCSR0aGlzLT5fc3RhdHVzID0gcGFyZW50OjpTVEFUX09LOwoJCWVsc2VpZigkc3RyID09PSBGQUxTRSkKCQkJJHRoaXMtPl9zdGF0dXMgPSBwYXJlbnQ6OlNUQVRfRVJST1JfSU5WQUxJRF9EQVRBOwoJCWVsc2UKCQkJJHRoaXMtPl9zdGF0dXMgPSBwYXJlbnQ6OlNUQVRfRVJST1JfT1RIRVI7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHByb2Nlc3NfZGVsaXZlcnlfcmVwb3J0KCkKCXsKCQlyZXR1cm4gJyc7IC8vbm90aGluZyB0byByZXBvcnQgaGVyZQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBnZXRfcmF3X3N0YXR1cygpCgl7CgkJcmV0dXJuICR0aGlzLT5fcmF3c3RhdHVzOwoJfQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/class.smsbroadcast_sms_gateway.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpjbGFzcyBzbXNicm9hZGNhc3Rfc21zX2dhdGV3YXkgZXh0ZW5kcyBzbXNfZ2F0ZXdheV9iYXNlCnsKCWNvbnN0IFNNU0JDX0FQSV9VUkwgPSAnaHR0cHM6Ly93d3cuc21zYnJvYWRjYXN0LmNvbS5hdS9BZHZhbmNlZCUyMEhUVFAlMjBBUEkucGRmJzsKCXByaXZhdGUgJF9yYXdzdGF0dXM7CgoJcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKCXsKCQlyZXR1cm4gJ1Ntc2Jyb2FkY2FzdCc7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGdldF9hbGlhcygpCgl7CgkJcmV0dXJuICdzbXNicm9hZGNhc3QnOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBnZXRfZGVzY3JpcHRpb24oKQoJewoJCXJldHVybiAkdGhpcy0+X21vZHVsZS0+TGFuZygnZGVzY3JpcHRpb25fc21zYnJvYWRjYXN0Jyk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHN1cHBvcnRfY3VzdG9tX3NlbmRlcigpCgl7CgkJcmV0dXJuIFRSVUU7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHN1cHBvcnRfbW1zKCkKCXsKCQlyZXR1cm4gVFJVRTsgLy9UT0RPIHNlbmQgcGFyYW1ldGVyIG1heHNwbGl0ICh1cCB0byA1KQoJfQoKCXB1YmxpYyBmdW5jdGlvbiByZXF1aXJlX2NvdW50cnlfcHJlZml4KCkKCXsKCQlyZXR1cm4gVFJVRTsgLy9hY3R1YWxseSwgcHJlZmVycmVkIGJ1dCBub3QgbWFuZGF0b3J5Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHJlcXVpcmVfcGx1c19wcmVmaXgoKQoJewoJCXJldHVybiBGQUxTRTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gbXVsdGlfbnVtYmVyX3NlcGFyYXRvcigpCgl7CgkJcmV0dXJuICcsJzsKCX0KCglwdWJsaWMgZnVuY3Rpb24gdXBzZXJ0X3RhYmxlcygpCgl7CgkJJGdpZCA9IHNtc2dfdXRpbHM6OnNldGdhdGUoJHRoaXMpOwoJCWlmKCRnaWQpCgkJewoJCQlwYXJlbnQ6OnNldF9nYXRlaWQoJGdpZCk7CgkJCSRtb2QgPSAkdGhpcy0+X21vZHVsZTsKCQkgICAgLy9zZXRwcm9wcygpIGFyZ3VtZW50ICRwcm9wcyA9IGFycmF5IG9mIGFycmF5cywgZWFjaCB3aXRoIFswXT10aXRsZSBbMV09YXBpbmFtZSBbMl09dmFsdWUgWzNdPWVuY3J5cHQKCQkJc21zZ191dGlsczo6c2V0cHJvcHMoJGdpZCxhcnJheSgKCQkJIGFycmF5KCRtb2QtPkxhbmcoJ3VzZXJuYW1lJyksJ3VzZXJuYW1lJyxOVUxMLDApLAoJCQkgYXJyYXkoJG1vZC0+TGFuZygncGFzc3dvcmQnKSwncGFzc3dvcmQnLE5VTEwsMSksCgkJCSBhcnJheSgkbW9kLT5MYW5nKCdmcm9tJyksJ2Zyb20nLE5VTEwsMCksCgkJCSBhcnJheSgkbW9kLT5MYW5nKCdyZWZlcmVuY2UnKSwncmVmJyxOVUxMLDApCgkJCSkpOwoJCX0KCQlyZXR1cm4gJGdpZDsKCX0KCglwdWJsaWMgZnVuY3Rpb24gY3VzdG9tX3NldHVwKCYkdHBsdmFycywkcGFkbSkKCXsKCQlmb3JlYWNoKCR0cGx2YXJzWydkYXRhJ10gYXMgJiRvYikKCQl7CgkJCWlmKCRvYi0+c2lnbmF0dXJlID09ICdwYXNzd29yZCcpCgkJCXsKCQkJCSRvYi0+c2l6ZSA9IDIwOwoJCQkJYnJlYWs7CgkJCX0KCQl9CgkJdW5zZXQoJG9iKTsKCQlpZigkcGFkbSkKCQl7CgkJCSR0cGx2YXJzWydoZWxwJ10gLj0gJzxiciAvPicuCgkJCQkkdGhpcy0+X21vZHVsZS0+TGFuZygnaGVscF91cmxjaGVjaycsc2VsZjo6U01TQkNfQVBJX1VSTCxzZWxmOjpnZXRfbmFtZSgpLicgQVBJJyk7CgkJfQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBjdXN0b21fc2F2ZSgmJHBhcmFtcykKCXsKCX0KCglwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0dXAoKQoJewoJfQoKCXByb3RlY3RlZCBmdW5jdGlvbiBwcmVwX2NvbW1hbmQoKQoJewoJCXJldHVybiAnZ29vZCc7IC8vYW55dGhpbmcgd2hpY2ggcGFzc2VzIHVwc3RyZWFtIHRlc3QKCX0KCglwcm90ZWN0ZWQgZnVuY3Rpb24gX2NvbW1hbmQoJGR1bW15KQoJewoJCSRnaWQgPSBwYXJlbnQ6OmdldF9nYXRlaWQoc2VsZjo6Z2V0X2FsaWFzKCkpOwoJCSRwYXJtcyA9IHNtc2dfdXRpbHM6OmdldHByb3BzKCR0aGlzLT5fbW9kdWxlLCRnaWQpOwoJCWlmKCRwYXJtc1sndXNlcm5hbWUnXVsndmFsdWUnXSA9PSBGQUxTRSB8fAoJCSAgICRwYXJtc1sncGFzc3dvcmQnXVsndmFsdWUnXSA9PSBGQUxTRSkKCQl7CgkJCSR0aGlzLT5fc3RhdHVzID0gcGFyZW50OjpTVEFUX0VSUk9SX0FVVEg7CgkJCXJldHVybiBGQUxTRTsKCQl9CgoJCSR0byA9ICR0aGlzLT5fbnVtOwoJCSR0ZXh0ID0gc3RyaXBfdGFncygkdGhpcy0+X21zZyk7CgkJaWYoIXNlbGY6OnN1cHBvcnRfbW1zKCkpCgkJCSR0ZXh0ID0gc3Vic3RyKCR0ZXh0LDAsMTYwKTsKCQlpZighJHRvIHx8ICFzbXNnX3V0aWxzOjp0ZXh0X2lzX3ZhbGlkKCR0ZXh0LDApKQoJCXsKCQkJJHRoaXMtPl9zdGF0dXMgPSBwYXJlbnQ6OlNUQVRfRVJST1JfSU5WQUxJRF9EQVRBOwoJCQlyZXR1cm4gRkFMU0U7CgkJfQoKCQkkc291cmNlID0gJHRoaXMtPl9mcm9tbnVtOyAvL2NhbiBiZSB0ZXh0IGUuZy4gJ015Q29tcGFueSc7CgkJJHJlZiA9ICcnOyAvLydhYmMxMjMnOwoKCQkkY2ggPSBjdXJsX2luaXQoJ2h0dHBzOi8vYXBpLnNtc2Jyb2FkY2FzdC5jb20uYXUvYXBpLWFkdi5waHAnKTsKCQlpZighJGNoKQoJCXsKCQkJJHRoaXMtPl9zdGF0dXMgPSBwYXJlbnQ6OlNUQVRfRVJST1JfT1RIRVI7CgkJCXJldHVybiBGQUxTRTsKCQl9CgoJCWZvcmVhY2goJHBhcm1zIGFzICYkdmFsKQoJCQkkdmFsID0gcmF3dXJsZW5jb2RlKCR2YWxbJ3ZhbHVlJ10pOwoJCXVuc2V0KCR2YWwpOwoKCQkkcGFybXNbJ3RvJ10gPSByYXd1cmxlbmNvZGUoJHRvKTsKCQlpZigkc291cmNlKQoJCQkkcGFybXNbJ2Zyb20nXSA9IHJhd3VybGVuY29kZSgkc291cmNlKTsKCQkkcGFybXNbJ21lc3NhZ2UnXSA9IHJhd3VybGVuY29kZSgkdGV4dCk7CgkJaWYoJHJlZikKCQkJJHBhcm1zWydyZWYnXSA9IHJhd3VybGVuY29kZSgkcmVmKTsKCgkJJHN0ciA9IHNtc2dfdXRpbHM6OmltcGxvZGVfd2l0aF9rZXkoJHBhcm1zKTsKCQkkc3RyID0gc3RyX3JlcGxhY2UoJ2FtcDsnLCcnLCRzdHIpOwoKCQljdXJsX3NldG9wdCgkY2gsQ1VSTE9QVF9QT1NULFRSVUUpOwoJCWN1cmxfc2V0b3B0KCRjaCxDVVJMT1BUX1BPU1RGSUVMRFMsJHN0cik7CgkJY3VybF9zZXRvcHQoJGNoLENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsVFJVRSk7CgkJJHJlc3VsdCA9IGN1cmxfZXhlYygkY2gpOwoJCWN1cmxfY2xvc2UoJGNoKTsKCQlyZXR1cm4gJHJlc3VsdDsKCX0KCglwcm90ZWN0ZWQgZnVuY3Rpb24gcGFyc2VfcmVzdWx0KCRzdHIpCgl7CgkJJGxpbmVzID0gZXhwbG9kZSgnXG4nLCRzdHIpOwoJCWZvcmVhY2goJGxpbmVzIGFzICRvbmVsaW5lKQoJCXsKCQkJJG1lc3NhZ2VfZGF0YSA9IGV4cGxvZGUoJzonLCRvbmVsaW5lKTsKCQkJc3dpdGNoICgkbWVzc2FnZV9kYXRhWzBdKQoJCQl7CgkJCSBjYXNlICdPSyc6CgkJCQkkdGhpcy0+X3Jhd3N0YXR1cyA9ICcnOwoJCQkJJHRoaXMtPl9zdGF0dXMgPSBwYXJlbnQ6OlNUQVRfT0s7CgkJCQlicmVhazsKCQkJIGNhc2UgJ0JBRCc6CgkJCQkkdGhpcy0+X3Jhd3N0YXR1cyA9ICRtZXNzYWdlX2RhdGFbMl07CgkJCQkkdGhpcy0+X3N0YXR1cyA9IHBhcmVudDo6U1RBVF9OT1RTRU5UOwoJCQkJYnJlYWs7CgkJCSBjYXNlICdFUlJPUic6CgkJCQkkdGhpcy0+X3Jhd3N0YXR1cyA9ICRtZXNzYWdlX2RhdGFbMV07CgkJCQkkdGhpcy0+X3N0YXR1cyA9IHBhcmVudDo6U1RBVF9FUlJPUl9PVEhFUjsKCQkJCWJyZWFrOwoJCQl9CQkKCQl9Cgl9CgoJLyoKCU11c3QgcGFyc2UgJF9SRVFVRVNUIGRpcmVjdGx5CglHYXRld2F5IHJldHVybnM6IHRvLCByZWYsIHNtc3JlZiwgc3RhdHVzCgkgdG86IG1vYmlsZSBudW1iZXIgdGhlIG1lc3NhZ2Ugd2FzIHNlbnQgdG8sIGluIGludGVybmF0aW9uYWwgZm9ybWF0ICg2MTR4eHh4eHh4eCkKCSByZWY6IHNlbmRlcidzIHJlZmVyZW5jZSBudW1iZXIsIGlmIHByb3ZpZGVkIHdoZW4gbWVzc2FnZSB3YXMgc2VudAoJIHNtc3JlZjogU01TIEJyb2FkY2FzdCByZWZlcmVuY2UgbnVtYmVyIGFzIHJldHVybmVkIGJ5IHRoZSBBUEkgd2hlbiB0aGUgbWVzc2FnZSB3YXMgc2VudAoJIHN0YXR1czogY3VycmVudCBzdGF0dXMgb2YgdGhlIG1lc3NhZ2UuIE9uZSBvZgoJICBEZWxpdmVyZWQg4oCTIFRoZSBtZXNzYWdlIHdhcyBzdWNjZXNzZnVsbHkgZGVsaXZlcmVkCgkgIEV4cGlyZWQg4oCTIFRoZSBtZXNzYWdlIGNvdWxkIG5vdCBiZSBkZWxpdmVyZWQgd2l0aGluIHRoZSByZXF1aXJlZCB0aW1lCgkgIEZhaWxlZCDigJMgVGhlcmUgd2FzIGEgcHJvYmxlbSB3aXRoIHRoZSBtZXNzYWdlIChlLmcuIGluY29ycmVjdCBtb2JpbGUgbnVtYmVyLCBvciBtb2JpbGUgc2VydmljZSBkaXNjb25uZWN0ZWQpCgoJU2FtcGxlIHJlcXVlc3Q6CglodHRwOi8vd3d3LnlvdXJ1cmwuY29tP3RvPTYxNDAwMTExMjIyJnJlZj0xMTIyMzMmc21zcmVmPTExMjIzMzQ0NTUmc3RhdHVzPURlbGl2ZXJlZAoJKi8KCXB1YmxpYyBmdW5jdGlvbiBwcm9jZXNzX2RlbGl2ZXJ5X3JlcG9ydCgpCgl7CgkJc3dpdGNoICgkX1JFUVVFU1RbJ3N0YXR1cyddKQoJCXsKCQkgY2FzZSAnRGVsaXZlcmVkJzoKCQkJJHN0YXR1cyA9IHBhcmVudDo6REVMSVZFUllfT0s7CgkJCWJyZWFrOwoJCSBjYXNlICdGYWlsZWQnOgoJCSBjYXNlICdFeHBpcmVkJzoKCQkJJHN0YXR1cyA9IHBhcmVudDo6REVMSVZFUllfSU5WQUxJRDsKCQkJYnJlYWs7CgkJIGRlZmF1bHQ6CgkJCSRzdGF0dXMgPSBwYXJlbnQ6OkRFTElWRVJZX1VOS05PV047CgkJCWJyZWFrOwoJCX0KCQkkc21zaWQgPSAkX1JFUVVFU1RbJ3Ntc3JlZiddOwoJCSRzbXN0byA9ICRfUkVRVUVTVFsndG8nXTsKCQlyZXR1cm4gc21zZ191dGlsczo6Z2V0X2RlbGl2ZXJ5X21zZygkdGhpcy0+X21vZHVsZSwkc3RhdHVzLCRzbXNpZCwkc21zdG8pOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBnZXRfcmF3X3N0YXR1cygpCgl7CgkJcmV0dXJuICR0aGlzLT5fcmF3c3RhdHVzOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/class.twilio_sms_gateway.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpjbGFzcyB0d2lsaW9fc21zX2dhdGV3YXkgZXh0ZW5kcyBzbXNfZ2F0ZXdheV9iYXNlCnsKCWNvbnN0IFRXSUxJT19BUElfVVJMID0gJ2h0dHBzOi8vd3d3LnR3aWxpby5jb20vZG9jcy9hcGknOwoJcHJpdmF0ZSAkX3Jhd3N0YXR1czsKCglwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKQoJewoJCXJldHVybiAnVHdpbGlvJzsKCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0X2FsaWFzKCkKCXsKCQlyZXR1cm4gJ3R3aWxpbyc7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGdldF9kZXNjcmlwdGlvbigpCgl7CgkJcmV0dXJuICR0aGlzLT5fbW9kdWxlLT5MYW5nKCdkZXNjcmlwdGlvbl90d2lsaW8nKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gc3VwcG9ydF9jdXN0b21fc2VuZGVyKCkKCXsKCQlyZXR1cm4gRkFMU0U7IC8vb25seSBhY2NvdW50LXNwZWNpZmljIGZyb20tbnVtYmVycyBhcmUgYWxsb3dlZAoJfQoJCglwdWJsaWMgZnVuY3Rpb24gc3VwcG9ydF9tbXMoKQoJewoJCXJldHVybiBUUlVFOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiByZXF1aXJlX2NvdW50cnlfcHJlZml4KCkKCXsKCQlyZXR1cm4gVFJVRTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gcmVxdWlyZV9wbHVzX3ByZWZpeCgpCgl7CgkJcmV0dXJuIFRSVUU7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIG11bHRpX251bWJlcl9zZXBhcmF0b3IoKQoJewoJCXJldHVybiBGQUxTRTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gdXBzZXJ0X3RhYmxlcygpCgl7CgkJJGdpZCA9IHNtc2dfdXRpbHM6OnNldGdhdGUoJHRoaXMpOwoJCWlmKCRnaWQpCgkJewoJCQlwYXJlbnQ6OnNldF9nYXRlaWQoJGdpZCk7CgkJCSRtb2QgPSAkdGhpcy0+X21vZHVsZTsKCQkJLy9zZXRwcm9wcygpIGFyZ3VtZW50ICRwcm9wcyA9IGFycmF5IG9mIGFycmF5cywgZWFjaCB3aXRoIFswXT10aXRsZSBbMV09YXBpbmFtZSBbMl09dmFsdWUgWzNdPWVuY3J5cHQKCQkJLy9ub25lIG9mIHRoZSBhcGluYW1lJ3MgaXMgYWN0dWFsbHkgdXNlZCAoaW5kaWNhdGVkIGJ5ICdfJyBwcmVmaXgpCgkJCXNtc2dfdXRpbHM6OnNldHByb3BzKCRnaWQsYXJyYXkoCgkJCSBhcnJheSgkbW9kLT5MYW5nKCdhY2NvdW50JyksJ19hY2NvdW50JyxOVUxMLDApLAoJCQkgYXJyYXkoJG1vZC0+TGFuZygndG9rZW4nKSwnX3Rva2VuJyxOVUxMLDEpLAoJCQkgYXJyYXkoJG1vZC0+TGFuZygnZnJvbScpLCdfZnJvbScsTlVMTCwwKQoJCQkpKTsKCQl9CgkJcmV0dXJuICRnaWQ7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGN1c3RvbV9zZXR1cCgmJHRwbHZhcnMsJHBhZG0pCgl7CgkJZm9yZWFjaCgkdHBsdmFyc1snZGF0YSddIGFzICYkb2IpCgkJewoJCQlpZigkb2ItPnNpZ25hdHVyZSA9PSAnX2FjY291bnQnCgkJCXx8ICRvYi0+c2lnbmF0dXJlID09ICdfdG9rZW4nKQoJCQkJJG9iLT5zaXplID0gMzI7CgkJfQoJCXVuc2V0KCRvYik7CgkJaWYoJHBhZG0pCgkJewoJCQkkdHBsdmFyc1snaGVscCddIC49ICc8YnIgLz4nLgoJCQkJJHRoaXMtPl9tb2R1bGUtPkxhbmcoJ2hlbHBfdXJsY2hlY2snLHNlbGY6OlRXSUxJT19BUElfVVJMLHNlbGY6OmdldF9uYW1lKCkuJyBBUEknKTsKCQl9Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGN1c3RvbV9zYXZlKCYkcGFyYW1zKQoJewoJfQoKCXByb3RlY3RlZCBmdW5jdGlvbiBzZXR1cCgpCgl7CgkJcmVxdWlyZV9vbmNlIGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3R3aWxpbycsJ1R3aWxpby5waHAnKTsKCX0KCglwcm90ZWN0ZWQgZnVuY3Rpb24gcHJlcF9jb21tYW5kKCkKCXsKCQlyZXR1cm4gJ2dvb2QnOyAvL2FueXRoaW5nIHdoaWNoIHBhc3NlcyB1cHN0cmVhbSB0ZXN0Cgl9CgoJLy9yZXR1cm5zIG9iamVjdDogU2VydmljZXNfVHdpbGlvX1Jlc3RfTWVzc2FnZSBvciBTZXJ2aWNlc19Ud2lsaW9fUmVzdEV4Y2VwdGlvbiwgb3IgRkFMU0UKCXByb3RlY3RlZCBmdW5jdGlvbiBfY29tbWFuZCgkZHVtbXkpCgl7CgkJJHRvID0gJHRoaXMtPl9udW07CgkJJGJvZHkgPSBzdHJpcF90YWdzKCR0aGlzLT5fbXNnKTsKCQlpZighc2VsZjo6c3VwcG9ydF9tbXMoKSkKCQkJJGJvZHkgPSBzdWJzdHIoJGJvZHksMCwxNjApOwoJCWlmKCEkdG8gfHwgIXNtc2dfdXRpbHM6OnRleHRfaXNfdmFsaWQoJGJvZHksMCkpCgkJewoJCQkkdGhpcy0+X3N0YXR1cyA9IHBhcmVudDo6U1RBVF9FUlJPUl9JTlZBTElEX0RBVEE7CgkJCXJldHVybiBGQUxTRTsKCQl9CgovKgkJJGZyb20gPSAnJzsgLy9UT0RPCgkJaWYoISRmcm9tKQoJCXsKCQkJJHRoaXMtPl9zdGF0dXMgPSBwYXJlbnQ6OlNUQVRfRVJST1JfSU5WQUxJRF9EQVRBOwoJCQlyZXR1cm4gRkFMU0U7CgkJfQoqLwoJCS8vTk9URSB0aGVzZSBhcnJheSBrZXlzIG11c3QgYmUgY2FwaXRhbGlzZWQKCQkkYXJncyA9IGFycmF5KC8qJ0Zyb20nID0+ICRmcm9tLCovJ1RvJyA9PiAkdG8sJ0JvZHknID0+ICRib2R5KTsKCgkJaWYoMSkgLy93YW50IGRlbGl2ZXJ5IHJlcG9ydHMgVE9ETyBpbnRlcmZhY2UgcGFyYW1ldGVyCgkJCSRhcmdzWydTdGF0dXNDYWxsYmFjayddID0gJHRoaXMtPl9tb2R1bGUtPmdldF9yZXBvcnR1cmwoKTsKCgkJJGdpZCA9IHBhcmVudDo6Z2V0X2dhdGVpZChzZWxmOjpnZXRfYWxpYXMoKSk7CgkJJHBhcm1zID0gc21zZ191dGlsczo6Z2V0cHJvcHMoJHRoaXMtPl9tb2R1bGUsJGdpZCk7CgkJJG9iID0gbmV3IFNlcnZpY2VzX1R3aWxpbygKCQkgJHBhcm1zWydfYWNjb3VudCddWyd2YWx1ZSddLAoJCSAkcGFybXNbJ190b2tlbiddWyd2YWx1ZSddCgkJKTsKCgkJdHJ5CgkJewoJCQlyZXR1cm4gJG9iLT5hY2NvdW50LT5tZXNzYWdlcy0+Y3JlYXRlKCRhcmdzKTsgLy9zZW5kIGl0CgkJfQoJCWNhdGNoIChTZXJ2aWNlc19Ud2lsaW9fUmVzdEV4Y2VwdGlvbiAkZSkKCQl7CgkJCXJldHVybiAkZTsKCQl9Cgl9CgoJLy8kb2IgPSBvYmplY3QgU2VydmljZXNfVHdpbGlvX1Jlc3RfTWVzc2FnZSBvYmplY3Qgb3IgU2VydmljZXNfVHdpbGlvX1Jlc3RFeGNlcHRpb24sIG9yIEZBTFNFCglwcm90ZWN0ZWQgZnVuY3Rpb24gcGFyc2VfcmVzdWx0KCRvYikKCXsKCQlpZiAoISRvYikKCQl7CgkJCSR0aGlzLT5fcmF3c3RhdHVzID0gJyc7CgkJCS8vJHRoaXMtPl9zdGF0dXMgc2V0IGluIHNlbGY6Ol9jb21tYW5kKCkKCQkJcmV0dXJuOwoJCX0KCQllbHNlaWYoZ2V0X2NsYXNzKCRvYikgPT0gJ1NlcnZpY2VzX1R3aWxpb19SZXN0X01lc3NhZ2UnKQoJCXsKCQkJaWYoJG9iLT5lcnJvcl9jb2RlKQoJCQl7CgkJCQkkdGhpcy0+X3Jhd3N0YXR1cyA9ICRvYi0+ZXJyb3JfbWVzc2FnZTsKCQkJCSRjb2RlID0gKGludCkkb2ItPmVycm9yX2NvZGU7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkkdGhpcy0+X3Jhd3N0YXR1cyA9ICcnOwoJCQkJJGNvZGUgPSAwOwoJCQl9CgkJfQoJCWVsc2UgLy9TZXJ2aWNlc19Ud2lsaW9fUmVzdEV4Y2VwdGlvbgoJCXsKCQkJJHRoaXMtPl9yYXdzdGF0dXMgPSAkb2ItPmdldE1lc3NhZ2UoKTsKCQkJJGNvZGUgPSAkb2ItPmdldENvZGUoKTsKCQl9CgkJLy9zZWUgaHR0cHM6Ly93d3cudHdpbGlvLmNvbS9kb2NzL2Vycm9ycy9yZWZlcmVuY2UKCQlzd2l0Y2ggKCRjb2RlKQoJCXsKCQkgY2FzZSAwOgoJCQkkdGhpcy0+X3N0YXR1cyA9IHBhcmVudDo6U1RBVF9PSzsKCQkJYnJlYWs7CgkJIGNhc2UgMjAwMDM6CgkJIGNhc2UgMjA0MDM6CgkJCSR0aGlzLT5fc3RhdHVzID0gcGFyZW50OjpTVEFUX0VSUk9SX0FVVEg7CgkJCWJyZWFrOwoJCSBjYXNlIDExMTAwOgoJCSBjYXNlIDE0MTAxOgoJCSBjYXNlIDE0MTAyOgoJCSBjYXNlIDE0MTAzOgoJCSBjYXNlIDIxNjAxOgoJCSBjYXNlIDIxNjAyOgoJCSBjYXNlIDIxNjAzOgoJCSBjYXNlIDIxNjA0OgoJCSBjYXNlIDIxNjA1OgoJCSBjYXNlIDIxNjA2OgoJCSBjYXNlIDIxNjA3OgoJCQkkdGhpcy0+X3N0YXR1cyA9IHBhcmVudDo6U1RBVF9FUlJPUl9JTlZBTElEX0RBVEE7CgkJCWJyZWFrOwoJCSBjYXNlIDIxNjEyOgoJCSBjYXNlIDIyMDAxOgoJCQkkdGhpcy0+X3N0YXR1cyA9IHBhcmVudDo6U1RBVF9OT1RTRU5UOwoJCQlicmVhazsKCQkgY2FzZSAxNDEwNzoKCQkJJHRoaXMtPl9zdGF0dXMgPSBwYXJlbnQ6OlNUQVRfRVJST1JfTElNSVQ7CgkJCWJyZWFrOwoJCSBjYXNlIDIxNjEwOgoJCSBjYXNlIDMwMDA0OgoJCQkkdGhpcy0+X3N0YXR1cyA9IHBhcmVudDo6U1RBVF9FUlJPUl9CTE9DS0VEOwoJCQlicmVhazsKCQkgZGVmYXVsdDoKCQkJJHRoaXMtPl9zdGF0dXMgPSBwYXJlbnQ6OlNUQVRfRVJST1JfT1RIRVI7CgkJCWJyZWFrOwoJCX0KCX0KCgkvKgoJTXVzdCBwYXJzZSAkX1JFUVVFU1QgZGlyZWN0bHkKCUdhdGV3YXkgcmV0dXJuczoKCQoJTWVzc2FnZVNpZAkzNCBjaGFyYWN0ZXIgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBtZXNzYWdlLgoJU21zU2lkCSAgICBTYW1lIHZhbHVlIGFzIE1lc3NhZ2VTaWQuIERlcHJlY2F0ZWQuCglBY2NvdW50U2lkCTM0IGNoYXJhY3RlciBpZCBvZiB0aGUgYWNjb3VudCB0aGlzIG1lc3NhZ2UgaXMgYXNzb2NpYXRlZCB3aXRoLgoJRnJvbQkgICAgUGhvbmUgbnVtYmVyIHRoYXQgc2VudCB0aGlzIG1lc3NhZ2UuCglUbwkgICAgICAgIFBob25lIG51bWJlciBvZiB0aGUgcmVjaXBpZW50LgoJQm9keQkgICAgVGV4dCBib2R5IG9mIHRoZSBtZXNzYWdlLgoJTnVtTWVkaWEJTnVtYmVyIG9mIHNtcyBtZXNzYWdlcyB1c2VkIHRvIGRlbGl2ZXIgdGhlIGJvZHkgc3BlY2lmaWVkLgoJTWVzc2FnZVN0YXR1cwlUaGUgc3RhdHVzIG9mIHRoZSBtZXNzYWdlLiBQb3NzaWJsZSB2YWx1ZXMgYXJlCgkJcXVldWVkCVRoZSBtZXNzYWdlIGlzIHF1ZXVlZCB0byBiZSBzZW50IG91dC4KCQlzZW5kaW5nCVRoZSBtZXNzYWFnZSBpcyBiZWluZyBkaXNwYXRjaGVkIHRvIHRoZSBuZWFyZXN0IHVwc3RyZWFtIGNhcnJpZXIgaW4gdGhlIG5ldHdvcmsuCgkJc2VudAlUaGUgbWVzc2FnZSB3YXMgc3VjY2Vzc2Z1bGx5IGFjY2VwdGVkIGJ5IHRoZSBuZWFyZXN0IHVwc3RyZWFtIGNhcnJpZXIuCgkJZGVsaXZlcmVkCVR3aWxpbyBoYXMgcmVjZWl2ZWQgY29uZmlybWF0aW9uIG9mIG1lc3NhZ2UgZGVsaXZlcnkgZnJvbSB0aGUgdXBzdHJlYW0gY2FycmllciwgYW5kLCB3aGVyZSBhdmFpbGFibGUsIHRoZSBkZXN0aW5hdGlvbiBoYW5kc2V0LgoJCXVuZGVsaXZlcmVkCVR3aWxpbyBoYXMgcmVjZWl2ZWQgYSBkZWxpdmVyeSByZWNlaXB0IGluZGljYXRpbmcgdGhhdCB0aGUgbWVzc2FnZSB3YXMgbm90IGRlbGl2ZXJlZC4KCQlmYWlsZWQJVGhlIG1lc3NhZ2UgY291bGQgbm90IGJlIHNlbnQuCglFcnJvckNvZGUJVGhlIGVycm9yIGNvZGUgKGlmIGFueSkgYXNzb2NpYXRlZCB3aXRoIHlvdXIgbWVzc2FnZS4gSWYgeW91ciBtZXNzYWdlIHN0YXR1cyBpcyBmYWlsZWQgb3IgdW5kZWxpdmVyZWQsCgkJdGhlIEVycm9yQ29kZSBjYW4gZ2l2ZSB5b3UgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZmFpbHVyZS4gSWYgdGhlIG1lc3NhZ2Ugd2FzIGRlbGl2ZXJlZCBzdWNjZXNzZnVsbHksIG5vIEVycm9yQ29kZSB3aWxsIGJlIHByZXNlbnQuCgkJUG9zc2libGUgdmFsdWVzIGFyZQoJCTMwMDAxCVF1ZXVlIG92ZXJmbG93CVlvdSB0cmllZCB0byBzZW5kIHRvbyBtYW55IG1lc3NhZ2VzIHRvbyBxdWlja2x5IGFuZCB5b3VyIG1lc3NhZ2UgcXVldWUgb3ZlcmZsb3dlZC4KCQkzMDAwMglBY2NvdW50IHN1c3BlbmRlZAlZb3VyIGFjY291bnQgd2FzIHN1c3BlbmRlZCBiZXR3ZWVuIHRoZSB0aW1lIG9mIG1lc3NhZ2Ugc2VuZCBhbmQgZGVsaXZlcnkuCgkJMzAwMDMJVW5yZWFjaGFibGUgZGVzdGluYXRpb24gaGFuZHNldAlUaGUgZGVzdGluYXRpb24gaGFuZHNldCB5b3UgYXJlIHRyeWluZyB0byByZWFjaCBpcyBzd2l0Y2hlZCBvZmYgb3Igb3RoZXJ3aXNlIHVuYXZhaWxhYmxlLgoJCTMwMDA0CU1lc3NhZ2UgYmxvY2tlZAlUaGUgZGVzdGluYXRpb24gbnVtYmVyIHlvdSBhcmUgdHJ5aW5nIHRvIHJlYWNoIGlzIGJsb2NrZWQgZnJvbSByZWNlaXZpbmcgdGhpcyBtZXNzYWdlIChlLmcuIGR1ZSB0byBibGFja2xpc3RpbmcpLgoJCTMwMDA1CVVua25vd24gZGVzdGluYXRpb24gaGFuZHNldAoJCTMwMDA2CUxhbmRsaW5lIG9yIHVucmVhY2hhYmxlIGNhcnJpZXIJVGhlIGRlc3RpbmF0aW9uIG51bWJlciBpcyB1bmFibGUgdG8gcmVjZWl2ZSB0aGlzIG1lc3NhZ2UuCgkJMzAwMDcJQ2FycmllciB2aW9sYXRpb24JVGhlIG1lc3NhZ2UgY29udGVudCB3YXMgZmxhZ2dlZCBhcyBnb2luZyBhZ2FpbnN0IGNhcnJpZXIgZ3VpZGVsaW5lcy4KCQkzMDAwOAlVbmtub3duIGVycm9yCVRoZSBlcnJvciBkb2VzIG5vdCBmaXQgaW50byBhbnkgb2YgdGhlIGFib3ZlIGNhdGVnb3JpZXMuCgoJU2FtcGxlIHJlcXVlc3Q6CglodHRwOi8vd3d3LnlvdXJ1cmwuY29tPwoJKi8KCXB1YmxpYyBmdW5jdGlvbiBwcm9jZXNzX2RlbGl2ZXJ5X3JlcG9ydCgpCgl7CgkJc3dpdGNoICgkX1JFUVVFU1RbJ01lc3NhZ2VTdGF0dXMnXSkKCQl7CgkJIGNhc2UgJ3F1ZXVlZCc6CgkJIGNhc2UgJ3NlbmRpbmcnOgoJCQkkc3RhdHVzID0gcGFyZW50OjpERUxJVkVSWV9QRU5ESU5HOwoJCQlicmVhazsKCQkgY2FzZSAnc2VudCc6CgkJIGNhc2UgJ2RlbGl2ZXJlZCc6CgkJCSRzdGF0dXMgPSBwYXJlbnQ6OkRFTElWRVJZX09LOwoJCQlicmVhazsKCQkgY2FzZSAnZmFpbGVkJzoKCQkgY2FzZSAndW5kZWxpdmVyZWQnOgoJCQlzd2l0Y2ggKCRfUkVRVUVTVFsnRXJyb3JDb2RlJ10pCgkJCXsKCQkJIGNhc2UgMzAwMDI6CgkJCQkkc3RhdHVzID0gcGFyZW50OjpERUxJVkVSWV9CSUxMSU5HOwoJCQkJYnJlYWsgMjsKCQkJIGNhc2UgMzAwMDg6CgkJCQkkc3RhdHVzID0gcGFyZW50OjpERUxJVkVSWV9VTktOT1dOOwoJCQkJYnJlYWsgMjsKCQkJIGRlZmF1bHQ6CgkJCQkkc3RhdHVzID0gcGFyZW50OjpERUxJVkVSWV9JTlZBTElEOwoJCQkJYnJlYWsgMjsKCQkJfQoJCSBkZWZhdWx0OgoJCQkkc3RhdHVzID0gcGFyZW50OjpERUxJVkVSWV9VTktOT1dOOwoJCQlicmVhazsKCQl9CgkJJHNtc2lkID0gJF9SRVFVRVNUWydNZXNzYWdlU2lkJ107CgkJJHNtc3RvID0gJF9SRVFVRVNUWydUbyddOwoJCXJldHVybiBzbXNnX3V0aWxzOjpnZXRfZGVsaXZlcnlfbXNnKCR0aGlzLT5fbW9kdWxlLCRzdGF0dXMsJHNtc2lkLCRzbXN0byk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGdldF9yYXdfc3RhdHVzKCkKCXsKCQlyZXR1cm4gJHRoaXMtPl9yYXdzdGF0dXM7Cgl9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/googlevoice/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/gateways/googlevoice/class.googlevoice.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9QSFAKICAgIGNsYXNzIEdvb2dsZVZvaWNlCiAgICB7CiAgICAgICAgcHVibGljICR1c2VybmFtZTsKICAgICAgICBwdWJsaWMgJHBhc3N3b3JkOwoKICAgICAgICBwcml2YXRlICRsYXN0VVJMOwoKICAgICAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHVzZXJuYW1lLCAkcGFzc3dvcmQpCiAgICAgICAgewogICAgICAgICAgICAkdGhpcy0+dXNlcm5hbWUgPSAkdXNlcm5hbWU7CiAgICAgICAgICAgICR0aGlzLT5wYXNzd29yZCA9ICRwYXNzd29yZDsKICAgICAgICB9CgogICAgICAgIC8vIExvZ2luIHRvIEdvb2dsZSBWb2ljZQogICAgICAgIHB1YmxpYyBmdW5jdGlvbiBsb2dpbigpCiAgICAgICAgewogICAgICAgICAgICAkaHRtbCA9ICR0aGlzLT5jdXJsKCdodHRwOi8vd3d3Lmdvb2dsZS5jb20vdm9pY2UvbScpOwoKICAgICAgICAgICAgJGFjdGlvbiA9ICR0aGlzLT5tYXRjaCgnITxmb3JtLio/YWN0aW9uPSIoLio/KSIhbXMnLCAkaHRtbCwgMSk7CgogICAgICAgICAgICBwcmVnX21hdGNoX2FsbCgnITxpbnB1dC4qP3R5cGU9ImhpZGRlbiIuKj9uYW1lPSIoLio/KSIuKj92YWx1ZT0iKC4qPykiIW1zJywgJGh0bWwsICRoaWRkZW4pOwoKICAgICAgICAgICAgJHBvc3QgPSAiRW1haWw9eyR0aGlzLT51c2VybmFtZX0mUGFzc3dkPXskdGhpcy0+cGFzc3dvcmR9IjsKICAgICAgICAgICAgZm9yKCRpID0gMDsgJGkgPCBjb3VudCgkaGlkZGVuWzBdKTsgJGkrKykKICAgICAgICAgICAgICAgICRwb3N0IC49ICcmJyAuICRoaWRkZW5bMV1bJGldIC4gJz0nIC4gdXJsZW5jb2RlKCRoaWRkZW5bMl1bJGldKTsKCgkgICAgZGllKCdhY3Rpb24gPSAnLiRhY3Rpb24pOwogICAgICAgICAgICAkaHRtbCA9ICR0aGlzLT5jdXJsKCRhY3Rpb24sICR0aGlzLT5sYXN0VVJMLCAkcG9zdCk7CgogICAgICAgICAgICByZXR1cm4gJGh0bWw7CiAgICAgICAgfQoKICAgICAgICAvLyBDb25uZWN0ICR5b3UgdG8gJHRoZW0uIFRha2VzIHR3byAxMCBkaWdpdCBVUyBwaG9uZSBudW1iZXJzLgogICAgICAgIHB1YmxpYyBmdW5jdGlvbiBjYWxsKCR5b3UsICR0aGVtKQogICAgICAgIHsKICAgICAgICAgICAgJHlvdSA9IHByZWdfcmVwbGFjZSgnL1teMC05XS8nLCAnJywgJHlvdSk7CiAgICAgICAgICAgICR0aGVtID0gcHJlZ19yZXBsYWNlKCcvW14wLTldLycsICcnLCAkdGhlbSk7CgogICAgICAgICAgICAkaHRtbCA9ICR0aGlzLT5sb2dpbigpOwoKICAgICAgICAgICAgJGNydW1iID0gdXJsZW5jb2RlKCR0aGlzLT5tYXRjaCgnITxpbnB1dC4qP25hbWU9Il9ybnJfc2UiLio/dmFsdWU9IiguKj8pIiFtcycsICRodG1sLCAxKSk7CgogICAgICAgICAgICAkcG9zdCA9ICJfcm5yX3NlPSRjcnVtYiZudW1iZXI9JHRoZW0mY2FsbD1DYWxsIjsKICAgICAgICAgICAgJGh0bWwgPSAkdGhpcy0+Y3VybCgiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS92b2ljZS9tL2NhbGxzbXMiLCAkdGhpcy0+bGFzdFVSTCwgJHBvc3QpOwoKICAgICAgICAgICAgcHJlZ19tYXRjaF9hbGwoJyE8aW5wdXQuKj90eXBlPSJoaWRkZW4iLio/bmFtZT0iKC4qPykiLio/dmFsdWU9IiguKj8pIiFtcycsICRodG1sLCAkaGlkZGVuKTsKICAgICAgICAgICAgJHBvc3QgPSAnJzsKICAgICAgICAgICAgZm9yKCRpID0gMDsgJGkgPCBjb3VudCgkaGlkZGVuWzBdKTsgJGkrKykKICAgICAgICAgICAgICAgICRwb3N0IC49ICcmJyAuICRoaWRkZW5bMV1bJGldIC4gJz0nIC4gdXJsZW5jb2RlKCRoaWRkZW5bMl1bJGldKTsKICAgICAgICAgICAgJHBvc3QgLj0gIiZwaG9uZT0rMSR5b3UmQ2FsbD0iOwoKICAgICAgICAgICAgJGh0bWwgPSAkdGhpcy0+Y3VybCgiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS92b2ljZS9tL3NlbmRjYWxsIiwgJHRoaXMtPmxhc3RVUkwsICRwb3N0KTsKICAgICAgICB9CgogICAgICAgIHB1YmxpYyBmdW5jdGlvbiBzbXMoJHRoZW0sICRzbXR4dCkKICAgICAgICB7CiAgICAgICAgICAgICR0aGVtID0gcHJlZ19yZXBsYWNlKCcvW14wLTldLycsICcnLCAkdGhlbSk7CgogICAgICAgICAgICAkaHRtbCA9ICR0aGlzLT5sb2dpbigpOwoKICAgICAgICAgICAgJGNydW1iID0gdXJsZW5jb2RlKCR0aGlzLT5tYXRjaCgnITxpbnB1dC4qP25hbWU9Il9ybnJfc2UiLio/dmFsdWU9IiguKj8pIiFtcycsICRodG1sLCAxKSk7CgogICAgICAgICAgICAkcG9zdCA9ICJfcm5yX3NlPSRjcnVtYiZudW1iZXI9JHRoZW0mc21zdGV4dD0kc210eHQmc3VibWl0PVNlbmQiOwogICAgICAgICAgICAkaHRtbCA9ICR0aGlzLT5jdXJsKCJodHRwczovL3d3dy5nb29nbGUuY29tL3ZvaWNlL20vc2VuZHNtcyIsICR0aGlzLT5sYXN0VVJMLCAkcG9zdCk7CgogICAgICAgICAgICBwcmVnX21hdGNoX2FsbCgnITxpbnB1dC4qP3R5cGU9ImhpZGRlbiIuKj9uYW1lPSIoLio/KSIuKj92YWx1ZT0iKC4qPykiIW1zJywgJGh0bWwsICRoaWRkZW4pOwogICAgICAgICAgICAkcG9zdCA9ICcnOwogICAgICAgICAgICBmb3IoJGkgPSAwOyAkaSA8IGNvdW50KCRoaWRkZW5bMF0pOyAkaSsrKQogICAgICAgICAgICAgICAgJHBvc3QgLj0gJyYnIC4gJGhpZGRlblsxXVskaV0gLiAnPScgLiB1cmxlbmNvZGUoJGhpZGRlblsyXVskaV0pOwogICAgICAgICAgICAkcG9zdCAuPSAiJnN1Ym1pdD0iOwoKICAgICAgICAgICAgJGh0bWwgPSAkdGhpcy0+Y3VybCgiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS92b2ljZS9tL3NlbmRjYWxsIiwgJHRoaXMtPmxhc3RVUkwsICRwb3N0KTsKICAgICAgICB9CgogICAgICAgIHByaXZhdGUgZnVuY3Rpb24gY3VybCgkdXJsLCAkcmVmZXJlciA9IG51bGwsICRwb3N0ID0gbnVsbCwgJHJldHVybl9oZWFkZXIgPSBmYWxzZSkKICAgICAgICB7CiAgICAgICAgICAgIHN0YXRpYyAkdG1wZmlsZTsKCiAgICAgICAgICAgIGlmKCFpc3NldCgkdG1wZmlsZSkgfHwgKCR0bXBmaWxlID09ICcnKSkgJHRtcGZpbGUgPSB0ZW1wbmFtKCcvdG1wJywgJ0ZPTycpOwoKICAgICAgICAgICAgJGNoID0gY3VybF9pbml0KCR1cmwpOwogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOwogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFRklMRSwgJHRtcGZpbGUpOwogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFSkFSLCAkdG1wZmlsZSk7CiAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgdHJ1ZSk7CiAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICJNb3ppbGxhLzUuMCAoaVBob25lOyBVOyBDUFUgaVBob25lIE9TIDJfMl8xIGxpa2UgTWFjIE9TIFg7IGVuLXVzKSBBcHBsZVdlYktpdC81MjUuMTguMSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vMy4xLjEgTW9iaWxlLzVIMTEgU2FmYXJpLzUyNS4yMCIpOwogICAgICAgICAgICBpZigkcmVmZXJlcikgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFRkVSRVIsICRyZWZlcmVyKTsKCiAgICAgICAgICAgIGlmKCFpc19udWxsKCRwb3N0KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1QsIHRydWUpOwogICAgICAgICAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1RGSUVMRFMsICRwb3N0KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYoJHJldHVybl9oZWFkZXIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IRUFERVIsIDEpOwogICAgICAgICAgICAgICAgJGh0bWwgICAgICAgID0gY3VybF9leGVjKCRjaCk7CiAgICAgICAgICAgICAgICAkaGVhZGVyX3NpemUgPSBjdXJsX2dldGluZm8oJGNoLCBDVVJMSU5GT19IRUFERVJfU0laRSk7CiAgICAgICAgICAgICAgICAkdGhpcy0+bGFzdFVSTCA9IGN1cmxfZ2V0aW5mbygkY2gsIENVUkxJTkZPX0VGRkVDVElWRV9VUkwpOwogICAgICAgICAgICAgICAgcmV0dXJuIHN1YnN0cigkaHRtbCwgMCwgJGhlYWRlcl9zaXplKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRodG1sID0gY3VybF9leGVjKCRjaCk7CiAgICAgICAgICAgICAgICAkdGhpcy0+bGFzdFVSTCA9IGN1cmxfZ2V0aW5mbygkY2gsIENVUkxJTkZPX0VGRkVDVElWRV9VUkwpOwogICAgICAgICAgICAgICAgcmV0dXJuICRodG1sOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBwcml2YXRlIGZ1bmN0aW9uIG1hdGNoKCRyZWdleCwgJHN0ciwgJGkgPSAwKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIHByZWdfbWF0Y2goJHJlZ2V4LCAkc3RyLCAkbWF0Y2gpID09IDEgPyAkbWF0Y2hbJGldIDogZmFsc2U7CiAgICAgICAgfQogICAgfQoKICAgIC8vIEV4YW1wbGUgVXNnZToKICAgIC8qCiAgICAkZ3YgPSBuZXcgR29vZ2xlVm9pY2UoJ3VzZXJuYW1lQGdtYWlsLmNvbScsICdwYXNzd29yZCcpOwogICAgJGd2LT5jYWxsKCd5b3VybnVtYmVyJywgJ3RoZWlyIG51bWJlcicpOwoKICAgICRndi0+c21zKCdzb21lbnVtYmVyJywgaGVsbG8gd29ybGQnKTsKICAgICovCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/googlevoice/class.googlevoice2.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9QSFAKLyoKTGljZW5zZQkJVGhpcyBjb2RlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgT3BlbiBTb3VyY2UgTGljZW5zZS4gRmVlbCBmcmVlIHRvIGRvIHdoYXRldmVyIHlvdSB3YW50IHdpdGggaXQuCkF1dGhvcgkJbG9zdGxlb25AZ21haWwuY29tLCBodHRwOi8vd3d3Lmxvc3RsZW9uLmNvbS8KKi8KY2xhc3MgR29vZ2xlVm9pY2UKewogICAgcHVibGljICR1c2VybmFtZTsKICAgIHB1YmxpYyAkcGFzc3dvcmQ7CiAgICBwdWJsaWMgJHN0YXR1czsKICAgIHByaXZhdGUgJGxhc3RVUkw7CiAgICBwcml2YXRlICRsb2dpbl9hdXRoOwoJcHJpdmF0ZSAkaW5ib3hVUkwgPSAnaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS92b2ljZS9tLyc7Cglwcml2YXRlICRsb2dpblVSTCA9ICdodHRwczovL3d3dy5nb29nbGUuY29tL2FjY291bnRzL0NsaWVudExvZ2luJzsKCXByaXZhdGUgJHNtc1VSTCA9ICdodHRwczovL3d3dy5nb29nbGUuY29tL3ZvaWNlL20vc2VuZHNtcyc7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCR1c2VybmFtZSwgJHBhc3N3b3JkKQogICAgewogICAgICAgICR0aGlzLT51c2VybmFtZSA9ICR1c2VybmFtZTsKICAgICAgICAkdGhpcy0+cGFzc3dvcmQgPSAkcGFzc3dvcmQ7CiAgICB9CgoJcHVibGljIGZ1bmN0aW9uIGdldExvZ2luQXV0aCgpCgl7CgkJJGxvZ2luX3BhcmFtID0gImFjY291bnRUeXBlPUdPT0dMRSZFbWFpbD17JHRoaXMtPnVzZXJuYW1lfSZQYXNzd2Q9eyR0aGlzLT5wYXNzd29yZH0mc2VydmljZT1ncmFuZGNlbnRyYWwmc291cmNlPWxvc3RsZW9uQVRnbWFpbERPVGNvbS1Hb29nbGVWb2ljZVRvb2wiOwoJICAgICRsb2dpbl9vdXRwdXQgPSAkdGhpcy0+Y3VybCgkdGhpcy0+bG9naW5VUkwsICR0aGlzLT5sYXN0VVJMLCAkbG9naW5fcGFyYW0pOwoJICAgICR0aGlzLT5sb2dpbl9hdXRoID0gJHRoaXMtPm1hdGNoKCcvQXV0aD0oW0EtejAtOV8tXSspLycsICRsb2dpbl9vdXRwdXQsIDEpOwoJICAgIHJldHVybiAkdGhpcy0+bG9naW5fYXV0aDsKCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0X3Jucl9zZSgpCgl7CgkJJGF1dGhfcGFyYW0gPSAiP2F1dGg9Ii4kdGhpcy0+Z2V0TG9naW5BdXRoKCk7CgkgICAgJGluYm94X291dHB1dCA9ICR0aGlzLT5jdXJsKCR0aGlzLT5pbmJveFVSTC4kYXV0aF9wYXJhbSwgJHRoaXMtPmxhc3RVUkwpOwoJICAgICRfcm5yX3NlID0gJHRoaXMtPm1hdGNoKCchPGlucHV0Lio/bmFtZT0iX3Jucl9zZSIuKj92YWx1ZT0iKC4qPykiIW1zJywgJGluYm94X291dHB1dCwgMSk7CgkgICAgcmV0dXJuICRfcm5yX3NlOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBzbXMoJHRvX3Bob25lbnVtYmVyLCAkc21zdHh0KQoJewoJICAgICRfcm5yX3NlID0gJHRoaXMtPmdldF9ybnJfc2UoKTsKCSAgICAkc21zX3BhcmFtID0gImlkPSZjPSZudW1iZXI9Ii51cmxlbmNvZGUoJHRvX3Bob25lbnVtYmVyKS4iJnNtc3RleHQ9Ii51cmxlbmNvZGUoJHNtc3R4dCkuIiZfcm5yX3NlPSIudXJsZW5jb2RlKCRfcm5yX3NlKTsKCQkkcG9zdHVybCA9ICR0aGlzLT5zbXNVUkwuIj9hdXRoPSIuJHRoaXMtPmxvZ2luX2F1dGg7CgkgICAgJHNtc19vdXRwdXQgPSAkdGhpcy0+Y3VybCgkcG9zdHVybCwgJHRoaXMtPmxhc3RVUkwsICRzbXNfcGFyYW0pOwoJICAgICR0aGlzLT5zdGF0dXMgPSAkc21zX291dHB1dDsKCSAgICByZXR1cm4gJHNtc19vdXRwdXQ7Cgl9CgoJcHJpdmF0ZSBmdW5jdGlvbiBjdXJsKCR1cmwsICRyZWZlcmVyID0gbnVsbCwgJHBvc3RfcGFyYW0gPSBudWxsKQoJewoJCSRjaCA9IGN1cmxfaW5pdCgkdXJsKTsKCQljdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSEVBREVSLCAwKTsKCQljdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfU1NMX1ZFUklGWVBFRVIsIGZhbHNlKTsgCgkgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsKCSAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAiTW96aWxsYS81LjAgKGlQaG9uZTsgVTsgQ1BVIGlQaG9uZSBPUyAyXzJfMSBsaWtlIE1hYyBPUyBYOyBlbi11cykgQXBwbGVXZWJLaXQvNTI1LjE4LjEgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzMuMS4xIE1vYmlsZS81SDExIFNhZmFyaS81MjUuMjAiKTsKCgkJaWYoJHJlZmVyZXIpCgkJCWN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRUZFUkVSLCAkcmVmZXJlcik7CgoJICAgIGlmKCFpc19udWxsKCRwb3N0X3BhcmFtKSkKCSAgICB7CgkgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NULCB0cnVlKTsKCSAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1RGSUVMRFMsICRwb3N0X3BhcmFtKTsKCSAgICB9CgoJCSRodG1sID0gY3VybF9leGVjKCRjaCk7CiAgICAgICAgJHRoaXMtPmxhc3RVUkwgPSBjdXJsX2dldGluZm8oJGNoLCBDVVJMSU5GT19FRkZFQ1RJVkVfVVJMKTsKCQljdXJsX2Nsb3NlKCRjaCk7CgkJcmV0dXJuICRodG1sOwoJfQoJCglwcml2YXRlIGZ1bmN0aW9uIG1hdGNoKCRyZWdleCwgJHN0ciwgJG91dF9hcnkgPSAwKQoJewoJICAgIHJldHVybiBwcmVnX21hdGNoKCRyZWdleCwgJHN0ciwgJG1hdGNoKSA9PSAxID8gJG1hdGNoWyRvdXRfYXJ5XSA6IGZhbHNlOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/googlevoice/GoogleVoice.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmZ1bmN0aW9uIGN1cmxfcmVkaXJlY3RfZXhlYygkY2gsICRjdXJsb3B0X2hlYWRlciA9IGZhbHNlKSB7CiAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgdHJ1ZSk7CiAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCB0cnVlKTsKICAkZGF0YSA9IGN1cmxfZXhlYygkY2gpOwogICRpbmZvID0gICAgY3VybF9nZXRpbmZvKCRjaCk7CiAgJGh0dHBfY29kZSA9ICRpbmZvWydodHRwX2NvZGUnXTsKICBpZiAoJGh0dHBfY29kZSA9PSAzMDEgfHwgJGh0dHBfY29kZSA9PSAzMDIgfHwgJGh0dHBfY29kZSA9PSAzMDMpIHsKICAgIGxpc3QoJGhlYWRlcikgPSBleHBsb2RlKCJcclxuXHJcbiIsICRkYXRhLCAyKTsKICAgICRtYXRjaGVzID0gYXJyYXkoKTsKICAgIHByZWdfbWF0Y2goJy8oTG9jYXRpb246fFVSSTopKC4qPylcbi8nLCAkaGVhZGVyLCAkbWF0Y2hlcyk7CiAgICAkdXJsID0gdHJpbShhcnJheV9wb3AoJG1hdGNoZXMpKTsKICAgICR1cmxfcGFyc2VkID0gcGFyc2VfdXJsKCR1cmwpOwogICAgaWYgKGlzc2V0KCR1cmxfcGFyc2VkWydob3N0J10pKSB7CiAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwpOwogICAgICByZXR1cm4gY3VybF9yZWRpcmVjdF9leGVjKCRjaCk7CiAgICB9CiAgfQoKICBlbHNlaWYoJGh0dHBfY29kZSA9PSAyMDApewogICAgJG1hdGNoZXMgPSBhcnJheSgpOwogICAgcHJlZ19tYXRjaCgnLyg8bWV0YSBodHRwLWVxdWl2PSkoLio/KShyZWZyZXNoKSguKj8pKHVybD0pKC4qPylbXCd8Il1ccyo+LycsIHN0cnRvbG93ZXIoJGRhdGEpLCAkbWF0Y2hlcyk7CiAgICAkdXJsID0gdHJpbShhcnJheV9wb3AoJG1hdGNoZXMpKTsKICAgICR1cmxfcGFyc2VkID0gcGFyc2VfdXJsKCR1cmwpOwogICAgaWYgKGlzc2V0KCR1cmxfcGFyc2VkWydob3N0J10pKSB7CiAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwpOwogICAgICByZXR1cm4gY3VybF9yZWRpcmVjdF9leGVjKCRjaCk7CiAgICB9CiAgfQoKICByZXR1cm4gICAgICRpbmZvWyd1cmwnXTsKfSAKCmNsYXNzIEdvb2dsZVZvaWNlCnsKICBjb25zdCBsb2dpblVSTCA9ICJodHRwczovL3d3dy5nb29nbGUuY29tL2FjY291bnRzL0NsaWVudExvZ2luIjsKICBjb25zdCBnZW5VUkwgICA9ICJodHRwczovL3d3dy5nb29nbGUuY29tL3ZvaWNlLyI7CiAgY29uc3Qgc2VuZFNNU1VSTCA9ICJodHRwczovL3d3dy5nb29nbGUuY29tL3ZvaWNlL3Ntcy9zZW5kLyI7CgoJLy8gT3VyIGNyZWRlbnRpYWxzCglwcml2YXRlICRfbG9naW47Cglwcml2YXRlICRfcGFzczsKCXByaXZhdGUgJF9ybnJfc2U7IC8vIHNvbWUgY3JhenkgZ29vZ2xlIHRoaW5nIHRoYXQgd2UgbmVlZCBsYXRlcgogICAgICAgIHByaXZhdGUgJF9hdXRoOwoKCS8vIE91ciBwcml2YXRlIGN1cmwgaGFuZGxlCglwcml2YXRlICRfY2g7CgoJLy8gVGhlIGxvY2F0aW9uIG9mIG91ciBjb29raWVzCglwcml2YXRlICRfY29va2llRmlsZTsKCgkvLyBBcmUgd2UgbG9nZ2VkIGluIGFscmVhZHk/Cglwcml2YXRlICRfbG9nZ2VkSW4gPSBGQUxTRTsKCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGxvZ2luLCAkcGFzcykKCXsKCQkkdGhpcy0+X2xvZ2luID0gJGxvZ2luOwoJCSR0aGlzLT5fcGFzcyA9ICRwYXNzOwoKCQkkY29uZmlnID0gY21zbXMoKS0+Z2V0Q29uZmlnKCk7CgkJJHRoaXMtPl9jb29raWVGaWxlID0gJGNvbmZpZ1sncm9vdF91cmwnXS4nL3RtcC9jYWNoZS9ndkNvb2tpZXMudHh0JzsKCgkJJHRoaXMtPl9jaCA9IGN1cmxfaW5pdCgpOwoJCWN1cmxfc2V0b3B0KCR0aGlzLT5fY2gsIENVUkxPUFRfQ09PS0lFSkFSLCAkdGhpcy0+X2Nvb2tpZUZpbGUpOwoJCWN1cmxfc2V0b3B0KCR0aGlzLT5fY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIEZBTFNFKTsKCQljdXJsX3NldG9wdCgkdGhpcy0+X2NoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCBUUlVFKTsKCQljdXJsX3NldG9wdCgkdGhpcy0+X2NoLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLDApOwoJCWN1cmxfc2V0b3B0KCR0aGlzLT5fY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAiTW96aWxsYS80LjAgKGNvbXBhdGlibGU7IE1TSUUgNy4wOyBXaW5kb3dzIE5UIDYuMCkiKTsKCX0KCQoJcHJpdmF0ZSBmdW5jdGlvbiBfbG9nSW4oKQoJewoJCWdsb2JhbCAkY29uZjsKCgkJaWYoICR0aGlzLT5fbG9nZ2VkSW4gKQoJCSAgcmV0dXJuIFRSVUU7CgoJCS8vCgkJLy8gZG8gdGhlIGxvZ2luIGFuZCBmZXRjaCBBVVRICgkJLy8KCQkvL2N1cmxfc2V0b3B0KCR0aGlzLT5fY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIFRSVUUpOwoJCWN1cmxfc2V0b3B0KCR0aGlzLT5fY2gsIENVUkxPUFRfVVJMLCBzZWxmOjpsb2dpblVSTCk7CgkJY3VybF9zZXRvcHQoJHRoaXMtPl9jaCwgQ1VSTE9QVF9QT1NULCBUUlVFKTsKCQkkZGF0YSA9IGFycmF5KAoJCQkgICAgICAnYWNjb3VudFR5cGUnID0+ICdHT09HTEUnLAoJCQkgICAgICAnRW1haWwnID0+ICR0aGlzLT5fbG9naW4sCgkJCSAgICAgICdQYXNzd2QnID0+ICR0aGlzLT5fcGFzcywKCQkJICAgICAgJ3NlcnZpY2UnID0+ICdncmFuZGNlbnRyYWwnLAoJCQkgICAgICAnc291cmNlJyA9PiAnU01TRycKCQkJKTsKCQlkZWJ1Z19kaXNwbGF5KCRkYXRhKTsKCQljdXJsX3NldG9wdCgkdGhpcy0+X2NoLCBDVVJMT1BUX1BPU1RGSUVMRFMsICRkYXRhICk7CQoJCSRodG1sID0gY3VybF9leGVjKCR0aGlzLT5fY2gpOwoJCSRyZXNjb2RlID0gY3VybF9nZXRpbmZvKCR0aGlzLT5fY2gsQ1VSTElORk9fSFRUUF9DT0RFKTsKCQlpZiggJHJlc2NvZGUgPiAzOTkgKQoJCSAgewoJCSAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBdHRlbXB0IHRvIGdldCBMb2dpbiBmYWlsZWQgd2l0aCBjb2RlICcuJHJlc2NvZGUpOwoJCSAgfQoKCQlpZiggJGh0bWwgPT0gJycgKQoJCSAgewoJCSAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBdHRtcHQgdG8gbG9naW4gLSByZXN1bHQgZW1wdHknKTsKCQkgIH0KCgkJaWYoIHByZWdfbWF0Y2goJy9BdXRoPShbX2EtekEtWjAtOV0rKS8nLCAkaHRtbCwgJG1hdGNoZXMpICkKCQkgIHsKCQkgICAgJHRoaXMtPl9hdXRoID0gJG1hdGNoZXNbMV07CgkJICB9CgkJZWxzZQoJCSAgewoJCSAgICBkZWJ1Z19kaXNwbGF5KCRodG1sKTsgZGllKCk7CgkJICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0NvdWxkIG5vdCBnZXQgYXV0aCB0b2tlbicpOwoJCSAgfQoKCQkvLwoJCS8vIGdldCB0aGUgcm5yX3NlZSB2YWx1ZQoJCS8vCgkJY3VybF9zZXRvcHQoJHRoaXMtPl9jaCwgQ1VSTE9QVF9VUkwsIHNlbGY6OmdlblVSTC4nP2F1dGg9Jy4kdGhpcy0+X2F1dGgpOwoJCWN1cmxfc2V0b3B0KCR0aGlzLT5fY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIEZBTFNFKTsKCQljdXJsX3NldG9wdCgkdGhpcy0+X2NoLCBDVVJMT1BUX0hUVFBHRVQsIDEpOwoJCSRodG1sID0gY3VybF9leGVjKCR0aGlzLT5fY2gpOwoJCWRlYnVnX2Rpc3BsYXkoY3VybF9nZXRpbmZvKCR0aGlzLT5fY2gpKTsKCQkkcmVzY29kZSA9IGN1cmxfZ2V0aW5mbygkdGhpcy0+X2NoLENVUkxJTkZPX0hUVFBfQ09ERSk7CgkJaWYoICRyZXNjb2RlID4gMzk5ICkKCQkgIHsKCQkgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQXR0ZW1wdCB0byBnZXQgTG9naW4gZmFpbGVkIHdpdGggY29kZSAnLiRyZXNjb2RlKTsKCQkgIH0KCgkJaWYoIHByZWdfbWF0Y2goJy9uYW1lPSJfcm5yX3NlIi4qP3ZhbHVlPSIoLio/KSIvJywgJGh0bWwsICRtYXRjaCkgKQoJCXsKCQkJJHRoaXMtPl9ybnJfc2UgPSAkbWF0Y2hbMV07CgkJfQoJCWVsc2UKCQl7CgkJICBkZWJ1Z19kaXNwbGF5KCRodG1sKTsgZGllKCk7CgkJCXRocm93IG5ldyBFeGNlcHRpb24oIkNvdWxkIG5vdCBsb2cgaW4gdG8gR29vZ2xlIFZvaWNlIHdpdGggdXNlcm5hbWU6ICIgLiAkdGhpcy0+X2xvZ2luKTsKCQl9CgoJfQoKCS8qKgoJICogUGxhY2UgYSBjYWxsIHRvICRudW1iZXIgY29ubmVjdGluZyBmaXJzdCB0byAkZnJvbU51bWJlcgoJICogQHBhcmFtICRudW1iZXIgVGhlIDEwLWRpZ2l0IHBob25lIG51bWJlciB0byBjYWxsIChmb3JtYXR0ZWQgd2l0aCBwYXJlbnMgYW5kIGh5cGhlbnMgb3Igbm9uZSkKCSAqIEBwYXJhbSAkZnJvbU51bWJlciBUaGUgMTAtZGlnaXQgbnVtYmVyIG9uIHlvdXIgYWNjb3VudCB0byBjb25uZWN0IHRoZSBjYWxsIChubyBoeXBoZW5zIG9yIHNwYWNlcykKCSAqIEBwYXJhbSAkcGhvbmVUeXBlIChtb2JpbGUsIHdvcmssIGhvbWUsIGdpem1vKSBUaGUgdHlwZSBvZiBwaG9uZSB0aGUgJGZyb21OdW1iZXIgaXMuIFRoZSBjYWxsIHdpbGwgbm90IGJlIGNvbm5lY3RlZCB3aXRob3V0IHRoaXMgdmFsdWUuIAoJICovCglwdWJsaWMgZnVuY3Rpb24gY2FsbE51bWJlcigkbnVtYmVyLCAkZnJvbU51bWJlciwgJHBob25lVHlwZT0nbW9iaWxlJykKCXsKCQkkdHlwZXMgPSBhcnJheSgKCQkJJ21vYmlsZScgPT4gMiwKCQkJJ3dvcmsnID0+IDMsCgkJCSdob21lJyA9PiAxLAoJCQknZ2l6bW8nID0+IDcKCQkpOwoJCgkJaWYoIWFycmF5X2tleV9leGlzdHMoJHBob25lVHlwZSwgJHR5cGVzKSkKCQkJdGhyb3cgbmV3IEV4Y2VwdGlvbignUGhvbmUgdHlwZSBtdXN0IGJlIG1vYmlsZSwgd29yaywgaG9tZSBvciBnaXptbycpOwoJCQoJCSR0aGlzLT5fbG9nSW4oKTsKCQkKCQljdXJsX3NldG9wdCgkdGhpcy0+X2NoLCBDVVJMT1BUX1VSTCwgJ2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vdm9pY2UvY2FsbC9jb25uZWN0LycpOwoJCWN1cmxfc2V0b3B0KCR0aGlzLT5fY2gsIENVUkxPUFRfUE9TVCwgVFJVRSk7CgkJY3VybF9zZXRvcHQoJHRoaXMtPl9jaCwgQ1VSTE9QVF9QT1NURklFTERTLCBhcnJheSgKCQkJJ19ybnJfc2UnPT4kdGhpcy0+X3Jucl9zZSwKCQkJJ2F1dGgnPT4kdGhpcy0+X2F1dGgsCgkJCSdmb3J3YXJkaW5nTnVtYmVyJz0+JysxJyAuICRmcm9tTnVtYmVyLAoJCQknb3V0Z29pbmdOdW1iZXInPT4kbnVtYmVyLAoJCQkncGhvbmVUeXBlJz0+JHR5cGVzWyRwaG9uZVR5cGVdLAoJCQkncmVtZW1iZXInPT4wLAoJCQknc3Vic2NyaWJlck51bWJlcic9Pid1bmRlZmluZWQnCgkJCSkpOwoJCWN1cmxfZXhlYygkdGhpcy0+X2NoKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gc2VuZFNNUygkbnVtYmVyLCAkbWVzc2FnZSkKCXsKCQkkdGhpcy0+X2xvZ0luKCk7CgoJCWN1cmxfc2V0b3B0KCR0aGlzLT5fY2gsIENVUkxPUFRfVVJMLCAnaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS92b2ljZS9zbXMvc2VuZC8nKTsKCQljdXJsX3NldG9wdCgkdGhpcy0+X2NoLCBDVVJMT1BUX1BPU1QsIFRSVUUpOwoJCWN1cmxfc2V0b3B0KCR0aGlzLT5fY2gsIENVUkxPUFRfUE9TVEZJRUxEUywgYXJyYXkoCgkJCSdfcm5yX3NlJz0+JHRoaXMtPl9ybnJfc2UsCgkJCSdhdXRoJz0+JHRoaXMtPl9hdXRoLAoJCQkncGhvbmVOdW1iZXInPT4nKzEnIC4gJG51bWJlciwKCQkJJ3RleHQnPT4kbWVzc2FnZSwKCQkJJ2lkJz0+JycKCQkJKSk7CgkJJHJlcyA9IGN1cmxfZXhlYygkdGhpcy0+X2NoKTsKCQkkcmVzY29kZSA9IGN1cmxfZ2V0aW5mbygkdGhpcy0+X2NoLENVUkxJTkZPX0hUVFBfQ09ERSk7CgkJaWYoICRyZXNjb2RlICE9IDIwMCApCgkJICB7CgkJICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0F0dGVtcHQgdG8gZ2V0IExvZ2luIGZhaWxlZCB3aXRoIGNvZGUgJy4kcmVzY29kZSk7CgkJICB9Cgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBnZXROZXdTTVMoKQoJewoJCSR0aGlzLT5fbG9nSW4oKTsKCQljdXJsX3NldG9wdCgkdGhpcy0+X2NoLCBDVVJMT1BUX1VSTCwgJ2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vdm9pY2UvaW5ib3gvcmVjZW50L3Ntcy8nKTsKCQljdXJsX3NldG9wdCgkdGhpcy0+X2NoLCBDVVJMT1BUX1BPU1QsIEZBTFNFKTsKCQljdXJsX3NldG9wdCgkdGhpcy0+X2NoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCBUUlVFKTsKCQkkeG1sID0gY3VybF9leGVjKCR0aGlzLT5fY2gpOwoKCQkkZG9tID0gbmV3IERPTURvY3VtZW50KCk7CgoJCS8vIGxvYWQgdGhlICJ3cmFwcGVyIiB4bWwgKGNvbnRhaW5zIHR3byBlbGVtZW50cywganNvbiBhbmQgaHRtbCkKCQkkZG9tLT5sb2FkWE1MKCR4bWwpOwoJCSRqc29uID0gJGRvbS0+ZG9jdW1lbnRFbGVtZW50LT5nZXRFbGVtZW50c0J5VGFnTmFtZSgianNvbiIpLT5pdGVtKDApLT5ub2RlVmFsdWU7CgkJJGpzb24gPSBqc29uX2RlY29kZSgkanNvbik7CgoJCS8vIG5vdyBtYWtlIGEgZG9tIHBhcnNlciB3aGljaCBjYW4gcGFyc2UgdGhlIGNvbnRlbnRzIG9mIHRoZSBIVE1MIHRhZwoJCSRodG1sID0gJGRvbS0+ZG9jdW1lbnRFbGVtZW50LT5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaHRtbCIpLT5pdGVtKDApLT5ub2RlVmFsdWU7CgkJLy8gcmVwbGFjZSBhbGwgIiYiIHdpdGggIiZhbXA7IiBzbyBpdCBjYW4gYmUgcGFyc2VkCgkJJGh0bWwgPSBzdHJfcmVwbGFjZSgiJiIsICImYW1wOyIsICRodG1sKTsKCQkkZG9tLT5sb2FkSFRNTCgkaHRtbCk7CgkJJHhwYXRoID0gbmV3IERPTVhQYXRoKCRkb20pOwoJCQoJCSRyZXN1bHRzID0gYXJyYXkoKTsKCQkKCQlmb3JlYWNoKCAkanNvbi0+bWVzc2FnZXMgYXMgJG1pZD0+JGNvbnZvICkKCQl7CgkJCSRlbGVtZW50cyA9ICR4cGF0aC0+cXVlcnkoIi8vZGl2W0BpZD0nJG1pZCddLy9kaXZbQGNsYXNzPSdnYy1tZXNzYWdlLXNtcy1yb3cnXSIpOwoJCQlpZighaXNfbnVsbCgkZWxlbWVudHMpKQoJCQl7CgkJCQlpZiggaW5fYXJyYXkoJ3VucmVhZCcsICRjb252by0+bGFiZWxzKSApCgkJCQl7CgkJCQkJZm9yZWFjaCgkZWxlbWVudHMgYXMgJGk9PiRlbGVtZW50KQoJCQkJCXsKCQkJCQkJJFhNc2dGcm9tID0gJHhwYXRoLT5xdWVyeSgic3BhbltAY2xhc3M9J2djLW1lc3NhZ2Utc21zLWZyb20nXSIsICRlbGVtZW50KTsKCQkJCQkJJG1zZ0Zyb20gPSAnJzsKCQkJCQkJZm9yZWFjaCgkWE1zZ0Zyb20gYXMgJG0pCgkJCQkJCQkkbXNnRnJvbSA9IHRyaW0oJG0tPm5vZGVWYWx1ZSk7CgoJCQkJCQlpZiggJG1zZ0Zyb20gIT0gIk1lOiIgKQoJCQkJCQl7CgkJCQkJCQkkWE1zZ1RleHQgPSAkeHBhdGgtPnF1ZXJ5KCJzcGFuW0BjbGFzcz0nZ2MtbWVzc2FnZS1zbXMtdGV4dCddIiwgJGVsZW1lbnQpOwoJCQkJCQkJJG1zZ1RleHQgPSAnJzsKCQkJCQkJCWZvcmVhY2goJFhNc2dUZXh0IGFzICRtKQoJCQkJCQkJCSRtc2dUZXh0ID0gdHJpbSgkbS0+bm9kZVZhbHVlKTsKCQoJCQkJCQkJJFhNc2dUaW1lID0gJHhwYXRoLT5xdWVyeSgic3BhbltAY2xhc3M9J2djLW1lc3NhZ2Utc21zLXRpbWUnXSIsICRlbGVtZW50KTsKCQkJCQkJCSRtc2dUaW1lID0gJyc7CgkJCQkJCQlmb3JlYWNoKCRYTXNnVGltZSBhcyAkbSkKCQkJCQkJCQkkbXNnVGltZSA9IHRyaW0oJG0tPm5vZGVWYWx1ZSk7CgkKCQkJCQkJCSRyZXN1bHRzW10gPSBhcnJheSgnbXNnSUQnPT4kbWlkLCAncGhvbmVOdW1iZXInPT4kY29udm8tPnBob25lTnVtYmVyLCAnbWVzc2FnZSc9PiRtc2dUZXh0LCAnZGF0ZSc9PmRhdGUoJ1ktbS1kIEg6aTpzJywgc3RydG90aW1lKGRhdGUoJ20vZC9ZICcsaW50dmFsKCRjb252by0+c3RhcnRUaW1lLzEwMDApKS4kbXNnVGltZSkpKTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQkvL2VjaG8gIlRoaXMgbWVzc2FnZSBpcyBub3QgdW5yZWFkXG4iOwkKCQkJCX0KCQkJfQoJCQllbHNlCgkJCXsKCQkJCS8vZWNobyAiZ2MtbWVzc2FnZS1zbXMtcm93IHF1ZXJ5IGZhaWxlZFxuIjsKCQkJfQoJCX0KCQkKCQlyZXR1cm4gJHJlc3VsdHM7Cgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBtYXJrU01TUmVhZCgkbXNnSUQpCgl7CgkJJHRoaXMtPl9sb2dJbigpOwoKCQljdXJsX3NldG9wdCgkdGhpcy0+X2NoLCBDVVJMT1BUX1VSTCwgJ2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vdm9pY2UvaW5ib3gvbWFyay8nKTsKCQljdXJsX3NldG9wdCgkdGhpcy0+X2NoLCBDVVJMT1BUX1BPU1QsIFRSVUUpOwoJCWN1cmxfc2V0b3B0KCR0aGlzLT5fY2gsIENVUkxPUFRfUE9TVEZJRUxEUywgYXJyYXkoCgkJCSdfcm5yX3NlJz0+JHRoaXMtPl9ybnJfc2UsCgkJCSdtZXNzYWdlcyc9PiRtc2dJRCwKCQkJJ3JlYWQnPT4xCgkJCSkpOwoJCWN1cmxfZXhlYygkdGhpcy0+X2NoKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0TmV3Vm9pY2VtYWlsKCkKCXsKCQkkdGhpcy0+X2xvZ0luKCk7CgkJY3VybF9zZXRvcHQoJHRoaXMtPl9jaCwgQ1VSTE9QVF9VUkwsICdodHRwczovL3d3dy5nb29nbGUuY29tL3ZvaWNlL2luYm94L3JlY2VudC92b2ljZW1haWwvJyk7CgkJY3VybF9zZXRvcHQoJHRoaXMtPl9jaCwgQ1VSTE9QVF9QT1NULCBGQUxTRSk7CgkJY3VybF9zZXRvcHQoJHRoaXMtPl9jaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgVFJVRSk7CgkJJHhtbCA9IGN1cmxfZXhlYygkdGhpcy0+X2NoKTsKCgkJJGRvbSA9IG5ldyBET01Eb2N1bWVudCgpOwoKCQkvLyBsb2FkIHRoZSAid3JhcHBlciIgeG1sIChjb250YWlucyB0d28gZWxlbWVudHMsIGpzb24gYW5kIGh0bWwpCgkJJGRvbS0+bG9hZFhNTCgkeG1sKTsKCQkkanNvbiA9ICRkb20tPmRvY3VtZW50RWxlbWVudC0+Z2V0RWxlbWVudHNCeVRhZ05hbWUoImpzb24iKS0+aXRlbSgwKS0+bm9kZVZhbHVlOwoJCSRqc29uID0ganNvbl9kZWNvZGUoJGpzb24pOwoKCQkvLyBub3cgbWFrZSBhIGRvbSBwYXJzZXIgd2hpY2ggY2FuIHBhcnNlIHRoZSBjb250ZW50cyBvZiB0aGUgSFRNTCB0YWcKCQkkaHRtbCA9ICRkb20tPmRvY3VtZW50RWxlbWVudC0+Z2V0RWxlbWVudHNCeVRhZ05hbWUoImh0bWwiKS0+aXRlbSgwKS0+bm9kZVZhbHVlOwoJCS8vIHJlcGxhY2UgYWxsICImIiB3aXRoICImYW1wOyIgc28gaXQgY2FuIGJlIHBhcnNlZAoJCSRodG1sID0gc3RyX3JlcGxhY2UoIiYiLCAiJmFtcDsiLCAkaHRtbCk7CgkJJGRvbS0+bG9hZEhUTUwoJGh0bWwpOwoJCSR4cGF0aCA9IG5ldyBET01YUGF0aCgkZG9tKTsKCQkKCQkkcmVzdWx0cyA9IGFycmF5KCk7CgkJCgkJZm9yZWFjaCggJGpzb24tPm1lc3NhZ2VzIGFzICRtaWQ9PiRjb252byApCgkJewoJCQkkZWxlbWVudHMgPSAkeHBhdGgtPnF1ZXJ5KCIvL2RpdltAaWQ9JyRtaWQnXSIpOwoJCQlpZighaXNfbnVsbCgkZWxlbWVudHMpKQoJCQl7CgkJCQlpZiggJGNvbnZvLT5pc1JlYWQgPT0gZmFsc2UgKQoJCQkJewoJCQkJCSRlbGVtZW50ID0gJGVsZW1lbnRzLT5pdGVtKDApOwoJCQkJCSRYTXNnID0gJHhwYXRoLT5xdWVyeSgiLy9kaXZbQGNsYXNzPSdnYy1tZXNzYWdlLW1lc3NhZ2UtZGlzcGxheSddIiwgJGVsZW1lbnQpOwoJCQkJCSRYTXNnUGFydCA9ICR4cGF0aC0+cXVlcnkoInNwYW58YSIsICRYTXNnLT5pdGVtKDApKTsKCQkJCQkKCQkJCQkkbXNnVGV4dCA9ICcnOwoJCQkJCSRtc2dXb3JkcyA9IGFycmF5KCk7CgkJCQkJZm9yZWFjaCgkWE1zZ1BhcnQgYXMgJG0pCgkJCQkJewoJCQkJCQkkd29yZCA9ICR0aGlzLT5fdW5odG1sZW50aXRpZXModHJpbSgkbS0+bm9kZVZhbHVlKSk7CgkJCQkJCSRtc2dUZXh0IC49ICR3b3JkIC4gJyAnOwoJCQkJCQlpZihwcmVnX21hdGNoKCcvZ2Mtd29yZC0oLispLycsICRtLT5hdHRyaWJ1dGVzLT5nZXROYW1lZEl0ZW0oJ2NsYXNzJyktPnRleHRDb250ZW50LCAkbWF0Y2gpKQoJCQkJCQkJJGNvbmZpZGVuY2UgPSAkbWF0Y2hbMV07CgkJCQkJCWVsc2UKCQkJCQkJCSRjb25maWRlbmNlID0gJyc7CgkJCQkJCSRtc2dXb3Jkc1tdID0gYXJyYXkoJ3dvcmQnPT4kd29yZCwgJ2NvbmZpZGVuY2UnPT4kY29uZmlkZW5jZSk7CgkJCQkJfQoJCQkJCQkKCQkJCQkkcmVzdWx0c1tdID0gYXJyYXkoJ21zZ0lEJz0+JG1pZCwgJ3Bob25lTnVtYmVyJz0+JGNvbnZvLT5waG9uZU51bWJlciwgJ21lc3NhZ2UnPT4kbXNnVGV4dCwgJ2RhdGUnPT5kYXRlKCdZLW0tZCBIOmk6cycsIGludHZhbCgkY29udm8tPnN0YXJ0VGltZS8xMDAwKSksICd3b3Jkcyc9PiRtc2dXb3Jkcyk7CgkJCQl9CgkJCQllbHNlCgkJCQl7CgkJCQkJZWNobyAiVGhpcyBtZXNzYWdlICgkbWlkKSBpcyBub3QgdW5yZWFkXG4iOwoJCQkJfQoJCQl9CgkJCWVsc2UKCQkJewoJCQkJZWNobyAiQ291bGQgbm90IGZpbmQgSFRNTCB2ZXJzaW9uIG9mIG1lc3NhZ2U6ICRtaWRcbiI7CgkJCX0KCQl9CgkJCgkJcmV0dXJuICRyZXN1bHRzOwoJfQoJCglwdWJsaWMgZnVuY3Rpb24gZG9tX2R1bXAoJG9iaikgewoJCWlmICgkY2xhc3NuYW1lID0gZ2V0X2NsYXNzKCRvYmopKSB7CgkJCSRyZXR2YWwgPSAiSW5zdGFuY2Ugb2YgJGNsYXNzbmFtZSwgbm9kZSBsaXN0OiBcbiI7CgkJCXN3aXRjaCAodHJ1ZSkgewoJCQkJY2FzZSAoJG9iaiBpbnN0YW5jZW9mIERPTURvY3VtZW50KToKCQkJCQkkcmV0dmFsIC49ICJYUGF0aDogeyRvYmotPmdldE5vZGVQYXRoKCl9XG4iLiRvYmotPnNhdmVYTUwoJG9iaik7CgkJCQkJYnJlYWs7CgkJCQljYXNlICgkb2JqIGluc3RhbmNlb2YgRE9NRWxlbWVudCk6CgkJCQkJJHJldHZhbCAuPSAiWFBhdGg6IHskb2JqLT5nZXROb2RlUGF0aCgpfVxuIi4kb2JqLT5vd25lckRvY3VtZW50LT5zYXZlWE1MKCRvYmopOwoJCQkJCWJyZWFrOwoJCQkJY2FzZSAoJG9iaiBpbnN0YW5jZW9mIERPTUF0dHIpOgoJCQkJCSRyZXR2YWwgLj0gIlhQYXRoOiB7JG9iai0+Z2V0Tm9kZVBhdGgoKX1cbiIuJG9iai0+b3duZXJEb2N1bWVudC0+c2F2ZVhNTCgkb2JqKTsKCQkJCQlicmVhazsKCQkJCWNhc2UgKCRvYmogaW5zdGFuY2VvZiBET01Ob2RlTGlzdCk6CgkJCQkJZm9yICgkaSA9IDA7ICRpIDwgJG9iai0+bGVuZ3RoOyAkaSsrKSB7CgkJCQkJCSRyZXR2YWwgLj0gIkl0ZW0gIyRpLCBYUGF0aDogeyRvYmotPml0ZW0oJGkpLT5nZXROb2RlUGF0aCgpfVxuIi4ieyRvYmotPml0ZW0oJGkpLT5vd25lckRvY3VtZW50LT5zYXZlWE1MKCRvYmotPml0ZW0oJGkpKX1cbiI7CgkJCQkJfQoJCQkJCWJyZWFrOwoJCQkJZGVmYXVsdDoKCQkJCQlyZXR1cm4gIkluc3RhbmNlIG9mIHVua25vd24gY2xhc3MiOwoJCQl9CgkJfSBlbHNlIHsKCQkJcmV0dXJuICdubyBlbGVtZW50cy4uLic7CgkJfQoJCXJldHVybiBodG1sc3BlY2lhbGNoYXJzKCRyZXR2YWwpOwoJfQoJCglwcml2YXRlIGZ1bmN0aW9uIF91bmh0bWxlbnRpdGllcygkc3RyaW5nKQoJewoJCS8vIHJlcGxhY2UgbnVtZXJpYyBlbnRpdGllcwoJCSRzdHJpbmcgPSBwcmVnX3JlcGxhY2UoJ34mI3goWzAtOWEtZl0rKTt+ZWknLCAnY2hyKGhleGRlYygiXFwxIikpJywgJHN0cmluZyk7CgkJJHN0cmluZyA9IHByZWdfcmVwbGFjZSgnfiYjKFswLTldKyk7fmUnLCAnY2hyKCJcXDEiKScsICRzdHJpbmcpOwoJCS8vIHJlcGxhY2UgbGl0ZXJhbCBlbnRpdGllcwoJCSRzdHJpbmcgPSBodG1sX2VudGl0eV9kZWNvZGUoJHN0cmluZyk7CgkJcmV0dXJuICRzdHJpbmc7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/googlevoice/LICENSE</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvQlNELwoKQ29weXJpZ2h0IChjKSAyMDA5LCBBYXJvbiBQYXJlY2tpCkFsbCByaWdodHMgcmVzZXJ2ZWQuCgpSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CiAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEFhcm9uIFBhcmVja2kgbm9yIHRoZQogICAgICBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwogICAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KClRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQUFST04gUEFSRUNLSSAnJ0FTIElTJycgQU5EIEFOWQpFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECldBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQUFST04gUEFSRUNLSSAgQkUgTElBQkxFIEZPUiBBTlkKRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwpMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgo=]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/googlevoice/README.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R29vZ2xlIFZvaWNlIFBIUCBBUEkKPT09PT09PT09PT09PT09PT09PT0KCkFuIEFQSSB0byBpbnRlcmFjdCB3aXRoIEdvb2dsZSBWb2ljZSB1c2luZyBQSFAuCgpDdXJyZW50bHkgdGhlIEFQSSBjYW4gcGxhY2UgY2FsbHMsIHNlbmQgYW5kIHJlY2VpdmUgU01TIG1lc3NhZ2VzLCBhbmQKZG93bmxvYWQgdHJhbnNjcmlwdGlvbnMgb2Ygdm9pY2VtYWlsLgoKRmVlbCBmcmVlIHRvIGltcGxlbWVudCBuZXcgZnVuY3Rpb25hbGl0eSBhbmQgc2VuZCBtZSB5b3VyIGNoYW5nZXMgc28KSSBjYW4gaW5jb3Jwb3JhdGUgdGhlbSBpbnRvIHRoaXMgbGlicmFyeSEKCk5vdGU6IFJlY2VpdmluZyBTTVNzIGFuZCB2b2ljZW1haWxzIGlzIG1vc3RseSB1bm5lY2Vzc2FyeSB2aWEgdGhpcyBBUEkKc2luY2UgR29vZ2xlIG5vdyBhbGxvd3MgU01TcyB0byBiZSBmb3J3YXJkZWQgdG8gYW4gZW1haWwgYWRkcmVzcy4gSXQgaXMgCmEgYmV0dGVyIGlkZWEgdG8gcGFyc2UgdGhvc2UgaW5jb21pbmcgZW1haWxzIHdpdGggYSBzY3JpcHQuCgpEaXNjbGFpbWVyCj09PT09PT09PT0KClRoaXMgY29kZSBpcyBwcm92aWRlZCBmb3IgZWR1Y2F0aW9uYWwgcHVycG9zZXMgb25seS4gVGhpcyBjb2RlIG1heSBzdG9wIHdvcmtpbmcKYXQgYW55IHRpbWUgaWYgR29vZ2xlIGNoYW5nZXMgdGhlaXIgbG9naW4gbWVjaGFuaXNtIG9yIHRoZWlyIHdlYiBwYWdlcy4gWW91IGFncmVlIHRoYXQKYnkgZG93bmxvYWRpbmcgdGhpcyBjb2RlIHlvdSBhZ3JlZSB0byB1c2UgaXQgc29sZWx5IGF0IHlvdXIgb3duIHJpc2suCgpMaWNlbnNlCj09PT09PT0KCkNvcHlyaWdodCAyMDA5IGJ5IEFhcm9uIFBhcmVja2kKaHR0cDovL2Fhcm9ucGFyZWNraS5jb20KClNlZSBMSUNFTlNFCgo=]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qCiAqIEF1dGhvcjogICBOZXVtYW4gVm9uZyBuZXVtYW5AdHdpbGlvLmNvbQogKiBMaWNlbnNlOiAgaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvTUlULyBNSVQKICogTGluazogICAgIGh0dHBzOi8vdHdpbGlvLXBocC5yZWFkdGhlZG9jcy5vcmcvZW4vbGF0ZXN0LwogKi8KCmZ1bmN0aW9uIFNlcnZpY2VzX1R3aWxpb19hdXRvbG9hZCgkY2xhc3NOYW1lKQp7CiAgICBpZiAoc3Vic3RyKCRjbGFzc05hbWUsIDAsIDE1KSAhPSAnU2VydmljZXNfVHdpbGlvJwogICAgICAgICYmIHN1YnN0cigkY2xhc3NOYW1lLCAwLCAyNikgIT0gJ1Rhc2tSb3V0ZXJfU2VydmljZXNfVHdpbGlvJwogICAgICAgICYmIHN1YnN0cigkY2xhc3NOYW1lLCAwLCAyMykgIT0gJ0xvb2t1cHNfU2VydmljZXNfVHdpbGlvJwogICAgICAgICYmIHN1YnN0cigkY2xhc3NOYW1lLCAwLCAyMykgIT0gJ01vbml0b3JfU2VydmljZXNfVHdpbGlvJwogICAgICAgICYmIHN1YnN0cigkY2xhc3NOYW1lLCAwLCAyMykgIT0gJ1ByaWNpbmdfU2VydmljZXNfVHdpbGlvJykgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgICRmaWxlID0gc3RyX3JlcGxhY2UoJ18nLCAnLycsICRjbGFzc05hbWUpOwogICAgJGZpbGUgPSBzdHJfcmVwbGFjZSgnU2VydmljZXMvJywgJycsICRmaWxlKTsKICAgIHJldHVybiBpbmNsdWRlIGRpcm5hbWUoX19GSUxFX18pIC4gIi8kZmlsZS5waHAiOwp9CgpzcGxfYXV0b2xvYWRfcmVnaXN0ZXIoJ1NlcnZpY2VzX1R3aWxpb19hdXRvbG9hZCcpOwoKLyoqCiAqIEJhc2UgY2xpZW50IGNsYXNzCiAqLwphYnN0cmFjdCBjbGFzcyBCYXNlX1NlcnZpY2VzX1R3aWxpbyBleHRlbmRzIFNlcnZpY2VzX1R3aWxpb19SZXNvdXJjZQp7CiAgICBjb25zdCBVU0VSX0FHRU5UID0gJ3R3aWxpby1waHAvNC43LjAnOwoKICAgIHByb3RlY3RlZCAkaHR0cDsKICAgIHByb3RlY3RlZCAkbGFzdF9yZXNwb25zZTsKICAgIHByb3RlY3RlZCAkcmV0cnlBdHRlbXB0czsKICAgIHByb3RlY3RlZCAkdmVyc2lvbjsKICAgIHByb3RlY3RlZCAkdmVyc2lvbnMgPSBhcnJheSgnMjAxMC0wNC0wMScpOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgKICAgICAgICAkc2lkLAogICAgICAgICR0b2tlbiwKICAgICAgICAkdmVyc2lvbiA9IG51bGwsCiAgICAgICAgU2VydmljZXNfVHdpbGlvX1RpbnlIdHRwICRfaHR0cCA9IG51bGwsCiAgICAgICAgJHJldHJ5QXR0ZW1wdHMgPSAxCiAgICApIHsKICAgICAgICAkdGhpcy0+dmVyc2lvbiA9IGluX2FycmF5KCR2ZXJzaW9uLCAkdGhpcy0+dmVyc2lvbnMpID8gJHZlcnNpb24gOiBlbmQoJHRoaXMtPnZlcnNpb25zKTsKCiAgICAgICAgaWYgKG51bGwgPT09ICRfaHR0cCkgewogICAgICAgICAgICBpZiAoIWluX2FycmF5KCdvcGVuc3NsJywgZ2V0X2xvYWRlZF9leHRlbnNpb25zKCkpKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU2VydmljZXNfVHdpbGlvX0h0dHBFeGNlcHRpb24oIlRoZSBPcGVuU1NMIGV4dGVuc2lvbiBpcyByZXF1aXJlZCBidXQgbm90IGN1cnJlbnRseSBlbmFibGVkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly9waHAubmV0L21hbnVhbC9lbi9ib29rLm9wZW5zc2wucGhwIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGluX2FycmF5KCdjdXJsJywgZ2V0X2xvYWRlZF9leHRlbnNpb25zKCkpKSB7CiAgICAgICAgICAgICAgICAkX2h0dHAgPSBuZXcgU2VydmljZXNfVHdpbGlvX1RpbnlIdHRwKAogICAgICAgICAgICAgICAgICAgICR0aGlzLT5fZ2V0QmFzZVVyaSgpLAogICAgICAgICAgICAgICAgICAgIGFycmF5KAogICAgICAgICAgICAgICAgICAgICAgICAiY3VybG9wdHMiID0+IGFycmF5KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1VSTE9QVF9VU0VSQUdFTlQgPT4gc2VsZjo6cXVhbGlmaWVkVXNlckFnZW50KHBocHZlcnNpb24oKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDVVJMT1BUX0hUVFBIRUFERVIgPT4gYXJyYXkoJ0FjY2VwdC1DaGFyc2V0OiB1dGYtOCcpLAogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkX2h0dHAgPSBuZXcgU2VydmljZXNfVHdpbGlvX0h0dHBTdHJlYW0oCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9nZXRCYXNlVXJpKCksCiAgICAgICAgICAgICAgICAgICAgYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAgICJodHRwX29wdGlvbnMiID0+IGFycmF5KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgImh0dHAiID0+IGFycmF5KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1c2VyX2FnZW50IiA9PiBzZWxmOjpxdWFsaWZpZWRVc2VyQWdlbnQocGhwdmVyc2lvbigpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaGVhZGVyIiA9PiAiQWNjZXB0LUNoYXJzZXQ6IHV0Zi04XHJcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInNzbCIgPT4gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmlmeV9wZWVyJyA9PiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJpZnlfZGVwdGgnID0+IDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJF9odHRwLT5hdXRoZW50aWNhdGUoJHNpZCwgJHRva2VuKTsKICAgICAgICAkdGhpcy0+aHR0cCA9ICRfaHR0cDsKICAgICAgICAkdGhpcy0+cmV0cnlBdHRlbXB0cyA9ICRyZXRyeUF0dGVtcHRzOwogICAgfQoKICAgIC8qKgogICAgICogQnVpbGQgYSBxdWVyeSBzdHJpbmcgZnJvbSBxdWVyeSBkYXRhCiAgICAgKgogICAgICogOnBhcmFtIGFycmF5ICRxdWVyeURhdGE6IEFuIGFzc29jaWF0aXZlIGFycmF5IG9mIGtleXMgYW5kIHZhbHVlcy4gVGhlCiAgICAgKiAgICAgIHZhbHVlcyBjYW4gYmUgYSBzaW1wbGUgdHlwZSBvciBhIGxpc3QsIGluIHdoaWNoIGNhc2UgdGhlIGxpc3QgaXMKICAgICAqICAgICAgY29udmVydGVkIHRvIG11bHRpcGxlIHF1ZXJ5IHBhcmFtZXRlcnMgd2l0aCB0aGUgc2FtZSBrZXkuCiAgICAgKiA6cGFyYW0gc3RyaW5nICRudW1lcmljUHJlZml4OiBvcHRpb25hbCBwcmVmaXggdG8gcHJlcGVuZCB0byBudW1lcmljIGtleXMKICAgICAqIDpyZXR1cm46IFRoZSBlbmNvZGVkIHF1ZXJ5IHN0cmluZwogICAgICogOnJ0eXBlOiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBidWlsZFF1ZXJ5KCRxdWVyeURhdGEsICRudW1lcmljUHJlZml4ID0gJycpIHsKICAgICAgICAkcXVlcnkgPSAnJzsKICAgICAgICAvLyBMb29wIHRocm91Z2ggYWxsIG9mIHRoZSAkcXVlcnlfZGF0YQogICAgICAgIGZvcmVhY2ggKCRxdWVyeURhdGEgYXMgJGtleSA9PiAkdmFsdWUpIHsKICAgICAgICAgICAgLy8gSWYgdGhlIGtleSBpcyBhbiBpbnQsIGFkZCB0aGUgbnVtZXJpY19wcmVmaXggdG8gdGhlIGJlZ2lubmluZwogICAgICAgICAgICBpZiAoaXNfaW50KCRrZXkpKSB7CiAgICAgICAgICAgICAgICAka2V5ID0gJG51bWVyaWNQcmVmaXggLiAka2V5OwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYW4gYXJyYXksIHdlIHdpbGwgZW5kIHVwIHJlY3Vyc2luZwogICAgICAgICAgICBpZiAoaXNfYXJyYXkoJHZhbHVlKSkgewogICAgICAgICAgICAgICAgLy8gTG9vcCB0aHJvdWdoIHRoZSB2YWx1ZXMKICAgICAgICAgICAgICAgIGZvcmVhY2ggKCR2YWx1ZSBhcyAkdmFsdWUyKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gQWRkIGFuIGFyZ19zZXBhcmF0b3IgaWYgbmVlZGVkCiAgICAgICAgICAgICAgICAgICAgaWYgKCRxdWVyeSAhPT0gJycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHF1ZXJ5IC49ICcmJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgLy8gUmVjdXJzZQogICAgICAgICAgICAgICAgICAgICRxdWVyeSAuPSBzZWxmOjpidWlsZFF1ZXJ5KGFycmF5KCRrZXkgPT4gJHZhbHVlMiksICRudW1lcmljUHJlZml4KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIEFkZCBhbiBhcmdfc2VwYXJhdG9yIGlmIG5lZWRlZAogICAgICAgICAgICAgICAgaWYgKCRxdWVyeSAhPT0gJycpIHsKICAgICAgICAgICAgICAgICAgICAkcXVlcnkgLj0gJyYnOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLy8gQWRkIHRoZSBrZXkgYW5kIHRoZSB1cmxlbmNvZGVkIHZhbHVlIChhcyBhIHN0cmluZykKICAgICAgICAgICAgICAgICRxdWVyeSAuPSAka2V5IC4gJz0nIC4gdXJsZW5jb2RlKChzdHJpbmcpJHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJHF1ZXJ5OwogICAgfQoKICAgIC8qKgogICAgICogQ29uc3RydWN0IGEgVVJJIGJhc2VkIG9uIGluaXRpYWwgcGF0aCwgcXVlcnkgcGFyYW1zLCBhbmQgcGFnaW5nCiAgICAgKiBpbmZvcm1hdGlvbgogICAgICoKICAgICAqIFdlIHdhbnQgdG8gdXNlIHRoZSBxdWVyeSBwYXJhbXMsIHVubGVzcyB3ZSBoYXZlIGEgbmV4dF9wYWdlX3VyaSBmcm9tIHRoZQogICAgICogQVBJLgogICAgICoKICAgICAqIDpwYXJhbSBzdHJpbmcgJHBhdGg6IFRoZSByZXF1ZXN0IHBhdGggKG1heSBjb250YWluIHF1ZXJ5IHBhcmFtcyBpZiBpdCdzCiAgICAgKiAgICAgIGEgbmV4dF9wYWdlX3VyaSkKICAgICAqIDpwYXJhbSBhcnJheSAkcGFyYW1zOiBRdWVyeSBwYXJhbWV0ZXJzIHRvIHVzZSB3aXRoIHRoZSByZXF1ZXN0CiAgICAgKiA6cGFyYW0gYm9vbGVhbiAkZnVsbF91cmk6IFdoZXRoZXIgdGhlICRwYXRoIGNvbnRhaW5zIHRoZSBmdWxsIHVyaQogICAgICoKICAgICAqIDpyZXR1cm46IHRoZSBVUkkgdGhhdCBzaG91bGQgYmUgcmVxdWVzdGVkIGJ5IHRoZSBsaWJyYXJ5CiAgICAgKiA6cmV0dXJudHlwZTogc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZXF1ZXN0VXJpKCRwYXRoLCAkcGFyYW1zLCAkZnVsbF91cmkgPSBmYWxzZSkKICAgIHsKICAgICAgICAkanNvbl9wYXRoID0gJGZ1bGxfdXJpID8gJHBhdGggOiAiJHBhdGguanNvbiI7CiAgICAgICAgaWYgKCEkZnVsbF91cmkgJiYgIWVtcHR5KCRwYXJhbXMpKSB7CiAgICAgICAgICAgICRxdWVyeV9wYXRoID0gJGpzb25fcGF0aCAuICc/JyAuIGh0dHBfYnVpbGRfcXVlcnkoJHBhcmFtcywgJycsICcmJyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHF1ZXJ5X3BhdGggPSAkanNvbl9wYXRoOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHF1ZXJ5X3BhdGg7CiAgICB9CgogICAgLyoqCiAgICAgKiBGdWxseSBxdWFsaWZpZWQgdXNlciBhZ2VudCB3aXRoIHRoZSBjdXJyZW50IFBIUCBWZXJzaW9uLgogICAgICoKICAgICAqIDpyZXR1cm46IHRoZSB1c2VyIGFnZW50CiAgICAgKiA6cnR5cGU6IHN0cmluZwogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHF1YWxpZmllZFVzZXJBZ2VudCgkcGhwX3ZlcnNpb24pIHsKICAgICAgICByZXR1cm4gc2VsZjo6VVNFUl9BR0VOVCAuICIgKHBocCAkcGhwX3ZlcnNpb24pIjsKICAgIH0KCiAgICAvKioKICAgICAqIFBPU1QgdG8gdGhlIHJlc291cmNlIGF0IHRoZSBzcGVjaWZpZWQgcGF0aC4KICAgICAqCiAgICAgKiA6cGFyYW0gc3RyaW5nICRwYXRoOiAgIFBhdGggdG8gdGhlIHJlc291cmNlCiAgICAgKiA6cGFyYW0gYXJyYXkgICRwYXJhbXM6IFF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXJzCiAgICAgKgogICAgICogOnJldHVybjogVGhlIG9iamVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGUgcmVzb3VyY2UKICAgICAqIDpydHlwZTogb2JqZWN0CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVEYXRhKCRwYXRoLCAkcGFyYW1zID0gYXJyYXkoKSwgJGZ1bGxfdXJpID0gZmFsc2UpCiAgICB7CgkJaWYgKCEkZnVsbF91cmkpIHsKCQkJJHBhdGggPSAiJHBhdGguanNvbiI7CgkJfQogICAgICAgICRoZWFkZXJzID0gYXJyYXkoJ0NvbnRlbnQtVHlwZScgPT4gJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcpOwogICAgICAgICRyZXNwb25zZSA9ICR0aGlzLT5odHRwLT5wb3N0KAogICAgICAgICAgICAkcGF0aCwgJGhlYWRlcnMsIHNlbGY6OmJ1aWxkUXVlcnkoJHBhcmFtcywgJycpCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gJHRoaXMtPl9wcm9jZXNzUmVzcG9uc2UoJHJlc3BvbnNlKTsKICAgIH0KCiAgICAvKioKICAgICAqIERFTEVURSB0aGUgcmVzb3VyY2UgYXQgdGhlIHNwZWNpZmllZCBwYXRoLgogICAgICoKICAgICAqIDpwYXJhbSBzdHJpbmcgJHBhdGg6ICAgUGF0aCB0byB0aGUgcmVzb3VyY2UKICAgICAqIDpwYXJhbSBhcnJheSAgJHBhcmFtczogUXVlcnkgc3RyaW5nIHBhcmFtZXRlcnMKICAgICAqCiAgICAgKiA6cmV0dXJuOiBUaGUgb2JqZWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSByZXNvdXJjZQogICAgICogOnJ0eXBlOiBvYmplY3QKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZURhdGEoJHBhdGgsICRwYXJhbXMgPSBhcnJheSgpKQogICAgewogICAgICAgICR1cmkgPSAkdGhpcy0+Z2V0UmVxdWVzdFVyaSgkcGF0aCwgJHBhcmFtcyk7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbWFrZUlkZW1wb3RlbnRSZXF1ZXN0KGFycmF5KCR0aGlzLT5odHRwLCAnZGVsZXRlJyksCiAgICAgICAgICAgICR1cmksICR0aGlzLT5yZXRyeUF0dGVtcHRzKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgcmV0cnkgYXR0ZW1wdCBsaW1pdCB1c2VkIGJ5IHRoZSByZXN0IGNsaWVudAogICAgICoKICAgICAqIDpyZXR1cm46IHRoZSBudW1iZXIgb2YgcmV0cnkgYXR0ZW1wdHMKICAgICAqIDpydHlwZTogaW50CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZXRyeUF0dGVtcHRzKCkgewogICAgICAgIHJldHVybiAkdGhpcy0+cmV0cnlBdHRlbXB0czsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgYXBpIHZlcnNpb24gdXNlZCBieSB0aGUgcmVzdCBjbGllbnQKICAgICAqCiAgICAgKiA6cmV0dXJuOiB0aGUgQVBJIHZlcnNpb24gaW4gdXNlCiAgICAgKiA6cmV0dXJudHlwZTogc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRWZXJzaW9uKCkgewogICAgICAgIHJldHVybiAkdGhpcy0+dmVyc2lvbjsKICAgIH0KCiAgICAvKioKICAgICAqIEdFVCB0aGUgcmVzb3VyY2UgYXQgdGhlIHNwZWNpZmllZCBwYXRoLgogICAgICoKICAgICAqIDpwYXJhbSBzdHJpbmcgJHBhdGg6ICAgUGF0aCB0byB0aGUgcmVzb3VyY2UKICAgICAqIDpwYXJhbSBhcnJheSAgJHBhcmFtczogUXVlcnkgc3RyaW5nIHBhcmFtZXRlcnMKICAgICAqIDpwYXJhbSBib29sZWFuICAkZnVsbF91cmk6IFdoZXRoZXIgdGhlIGZ1bGwgVVJJIGhhcyBiZWVuIHBhc3NlZCBhcyBhbgogICAgICogICAgICBhcmd1bWVudAogICAgICoKICAgICAqIDpyZXR1cm46IFRoZSBvYmplY3QgcmVwcmVzZW50YXRpb24gb2YgdGhlIHJlc291cmNlCiAgICAgKiA6cnR5cGU6IG9iamVjdAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gcmV0cmlldmVEYXRhKCRwYXRoLCAkcGFyYW1zID0gYXJyYXkoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZ1bGxfdXJpID0gZmFsc2UKICAgICkKICAgIHsKICAgICAgICAkdXJpID0gJHRoaXMtPmdldFJlcXVlc3RVcmkoJHBhdGgsICRwYXJhbXMsICRmdWxsX3VyaSk7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbWFrZUlkZW1wb3RlbnRSZXF1ZXN0KGFycmF5KCR0aGlzLT5odHRwLCAnZ2V0JyksCiAgICAgICAgICAgICR1cmksICR0aGlzLT5yZXRyeUF0dGVtcHRzKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgYmFzZSBVUkkgZm9yIHRoaXMgY2xpZW50LgogICAgICoKICAgICAqIDpyZXR1cm46IGJhc2UgVVJJCiAgICAgKiA6cnR5cGU6IHN0cmluZwogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gX2dldEJhc2VVcmkoKSB7CiAgICAgICAgcmV0dXJuICdodHRwczovL2FwaS50d2lsaW8uY29tJzsKICAgIH0KCiAgICAvKioKICAgICAqIEhlbHBlciBtZXRob2QgZm9yIGltcGxlbWVudGluZyByZXF1ZXN0IHJldHJ5IGxvZ2ljCiAgICAgKgogICAgICogOnBhcmFtIGFycmF5ICAkY2FsbGFibGU6ICAgICAgVGhlIGZ1bmN0aW9uIHRoYXQgbWFrZXMgYW4gSFRUUCByZXF1ZXN0CiAgICAgKiA6cGFyYW0gc3RyaW5nICR1cmk6ICAgICAgICAgICBUaGUgVVJJIHRvIHJlcXVlc3QKICAgICAqIDpwYXJhbSBpbnQgICAgJHJldHJpZXNMZWZ0OiAgIE51bWJlciBvZiB0aW1lcyB0byByZXRyeQogICAgICoKICAgICAqIDpyZXR1cm46IFRoZSBvYmplY3QgcmVwcmVzZW50YXRpb24gb2YgdGhlIHJlc291cmNlCiAgICAgKiA6cnR5cGU6IG9iamVjdAogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gX21ha2VJZGVtcG90ZW50UmVxdWVzdCgkY2FsbGFibGUsICR1cmksICRyZXRyaWVzTGVmdCkgewogICAgICAgICRyZXNwb25zZSA9IGNhbGxfdXNlcl9mdW5jX2FycmF5KCRjYWxsYWJsZSwgYXJyYXkoJHVyaSkpOwogICAgICAgIGxpc3QoJHN0YXR1cywgJGhlYWRlcnMsICRib2R5KSA9ICRyZXNwb25zZTsKICAgICAgICBpZiAoJHN0YXR1cyA+PSA1MDAgJiYgJHJldHJpZXNMZWZ0ID4gMCkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9tYWtlSWRlbXBvdGVudFJlcXVlc3QoJGNhbGxhYmxlLCAkdXJpLCAkcmV0cmllc0xlZnQgLSAxKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9wcm9jZXNzUmVzcG9uc2UoJHJlc3BvbnNlKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBDb252ZXJ0IHRoZSBKU09OIGVuY29kZWQgcmVzb3VyY2UgaW50byBhIFBIUCBvYmplY3QuCiAgICAgKgogICAgICogOnBhcmFtIGFycmF5ICRyZXNwb25zZTogMy10dXBsZSBjb250YWluaW5nIHN0YXR1cywgaGVhZGVycywgYW5kIGJvZHkKICAgICAqCiAgICAgKiA6cmV0dXJuOiBQSFAgb2JqZWN0IGRlY29kZWQgZnJvbSBKU09OCiAgICAgKiA6cnR5cGU6IG9iamVjdAogICAgICogOnRocm93czogQSA6cGhwOmNsYXNzOmBTZXJ2aWNlc19Ud2lsaW9fUmVzdEV4Y2VwdGlvbmAgaWYgdGhlIFJlc3BvbnNlIGlzCiAgICAgKiAgICAgIGluIHRoZSAzMDAtNTAwIHJhbmdlIG9mIHN0YXR1cyBjb2Rlcy4KICAgICAqLwogICAgcHJpdmF0ZSBmdW5jdGlvbiBfcHJvY2Vzc1Jlc3BvbnNlKCRyZXNwb25zZSkKICAgIHsKICAgICAgICBsaXN0KCRzdGF0dXMsICRoZWFkZXJzLCAkYm9keSkgPSAkcmVzcG9uc2U7CiAgICAgICAgaWYgKCRzdGF0dXMgPT09IDIwNCkgewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgJGRlY29kZWQgPSBqc29uX2RlY29kZSgkYm9keSk7CiAgICAgICAgaWYgKCRkZWNvZGVkID09PSBudWxsKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBTZXJ2aWNlc19Ud2lsaW9fUmVzdEV4Y2VwdGlvbigKICAgICAgICAgICAgICAgICRzdGF0dXMsCiAgICAgICAgICAgICAgICAnQ291bGQgbm90IGRlY29kZSByZXNwb25zZSBib2R5IGFzIEpTT04uICcgLgogICAgICAgICAgICAgICAgJ1RoaXMgbGlrZWx5IGluZGljYXRlcyBhIDUwMCBzZXJ2ZXIgZXJyb3InCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGlmICgyMDAgPD0gJHN0YXR1cyAmJiAkc3RhdHVzIDwgMzAwKSB7CiAgICAgICAgICAgICR0aGlzLT5sYXN0X3Jlc3BvbnNlID0gJGRlY29kZWQ7CiAgICAgICAgICAgIHJldHVybiAkZGVjb2RlZDsKICAgICAgICB9CiAgICAgICAgdGhyb3cgbmV3IFNlcnZpY2VzX1R3aWxpb19SZXN0RXhjZXB0aW9uKAogICAgICAgICAgICAkc3RhdHVzLAogICAgICAgICAgICBpc3NldCgkZGVjb2RlZC0+bWVzc2FnZSkgPyAkZGVjb2RlZC0+bWVzc2FnZSA6ICcnLAogICAgICAgICAgICBpc3NldCgkZGVjb2RlZC0+Y29kZSkgPyAkZGVjb2RlZC0+Y29kZSA6IG51bGwsCiAgICAgICAgICAgIGlzc2V0KCRkZWNvZGVkLT5tb3JlX2luZm8pID8gJGRlY29kZWQtPm1vcmVfaW5mbyA6IG51bGwKICAgICAgICApOwogICAgfQp9CgovKioKICogQ3JlYXRlIGEgY2xpZW50IHRvIHRhbGsgdG8gdGhlIFR3aWxpbyBSZXN0IEFQSS4KICoKICoKICogOnBhcmFtIHN0cmluZyAgICAgICAgICAgICAgICRzaWQ6ICAgICAgWW91ciBBY2NvdW50IFNJRAogKiA6cGFyYW0gc3RyaW5nICAgICAgICAgICAgICAgJHRva2VuOiAgICBZb3VyIEF1dGggVG9rZW4gZnJvbSBgeW91ciBkYXNoYm9hcmQKICogICAgICA8aHR0cHM6Ly93d3cudHdpbGlvLmNvbS91c2VyL2FjY291bnQ+YF8KICogOnBhcmFtIHN0cmluZyAgICAgICAgICAgICAgICR2ZXJzaW9uOiAgQVBJIHZlcnNpb24gdG8gdXNlCiAqIDpwYXJhbSAkX2h0dHA6ICAgIEEgSFRUUCBjbGllbnQgZm9yIG1ha2luZyByZXF1ZXN0cy4KICogOnR5cGUgJF9odHRwOiA6cGhwOmNsYXNzOmBTZXJ2aWNlc19Ud2lsaW9fVGlueUh0dHBgCiAqIDpwYXJhbSBpbnQgICAgICAgICAgICAgICAgICAkcmV0cnlBdHRlbXB0czoKICogICAgICBOdW1iZXIgb2YgdGltZXMgdG8gcmV0cnkgZmFpbGVkIHJlcXVlc3RzLiBDdXJyZW50bHkgb25seSBpZGVtcG90ZW50CiAqICAgICAgcmVxdWVzdHMgKEdFVCdzIGFuZCBERUxFVEUncykgYXJlIHJldHJpZWQuCiAqCiAqIEhlcmUncyBhbiBleGFtcGxlOgogKgogKiAuLiBjb2RlLWJsb2NrOjogcGhwCiAqCiAqICAgICAgcmVxdWlyZSgnU2VydmljZXMvVHdpbGlvLnBocCcpOwogKiAgICAgICRjbGllbnQgPSBuZXcgU2VydmljZXNfVHdpbGlvKCdBQzEyMycsICc0NTZiZWYnLCBudWxsLCBudWxsLCAzKTsKICogICAgICAvLyBUYWtlIHNvbWUgYWN0aW9uIHdpdGggdGhlIGNsaWVudCwgZXRjLgogKi8KY2xhc3MgU2VydmljZXNfVHdpbGlvIGV4dGVuZHMgQmFzZV9TZXJ2aWNlc19Ud2lsaW8KewogICAgcHJvdGVjdGVkICR2ZXJzaW9ucyA9IGFycmF5KCcyMDA4LTA4LTAxJywgJzIwMTAtMDQtMDEnKTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoCiAgICAgICAgJHNpZCwKICAgICAgICAkdG9rZW4sCiAgICAgICAgJHZlcnNpb24gPSBudWxsLAogICAgICAgIFNlcnZpY2VzX1R3aWxpb19UaW55SHR0cCAkX2h0dHAgPSBudWxsLAogICAgICAgICRyZXRyeUF0dGVtcHRzID0gMQogICAgKQogICAgewogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJHNpZCwgJHRva2VuLCAkdmVyc2lvbiwgJF9odHRwLCAkcmV0cnlBdHRlbXB0cyk7CgogICAgICAgICR0aGlzLT5hY2NvdW50cyA9IG5ldyBTZXJ2aWNlc19Ud2lsaW9fUmVzdF9BY2NvdW50cygkdGhpcywgIi97JHRoaXMtPnZlcnNpb259L0FjY291bnRzIik7CiAgICAgICAgJHRoaXMtPmFjY291bnQgPSAkdGhpcy0+YWNjb3VudHMtPmdldCgkc2lkKTsKICAgIH0KfQoKLyoqCiAqIENyZWF0ZSBhIGNsaWVudCB0byB0YWxrIHRvIHRoZSBUd2lsaW8gVGFza1JvdXRlciBBUEkuCiAqCiAqCiAqIDpwYXJhbSBzdHJpbmcgICAgICAgICAgICAgICAkc2lkOiAgICAgIFlvdXIgQWNjb3VudCBTSUQKICogOnBhcmFtIHN0cmluZyAgICAgICAgICAgICAgICR0b2tlbjogICAgWW91ciBBdXRoIFRva2VuIGZyb20gYHlvdXIgZGFzaGJvYXJkCiAqICAgICAgPGh0dHBzOi8vd3d3LnR3aWxpby5jb20vdXNlci9hY2NvdW50PmBfCiAqIDpwYXJhbSBzdHJpbmcgICAgICAgICAgICAgICAkd29ya3NwYWNlU2lkOgogKiAgICAgIFdvcmtzcGFjZSBTSUQgdG8gd29yayB3aXRoCiAqIDpwYXJhbSBzdHJpbmcgICAgICAgICAgICAgICAkdmVyc2lvbjogIEFQSSB2ZXJzaW9uIHRvIHVzZQogKiA6cGFyYW0gJF9odHRwOiAgICBBIEhUVFAgY2xpZW50IGZvciBtYWtpbmcgcmVxdWVzdHMuCiAqIDp0eXBlICRfaHR0cDogOnBocDpjbGFzczpgU2VydmljZXNfVHdpbGlvX1RpbnlIdHRwYAogKiA6cGFyYW0gaW50ICAgICAgICAgICAgICAgICAgJHJldHJ5QXR0ZW1wdHM6CiAqICAgICAgTnVtYmVyIG9mIHRpbWVzIHRvIHJldHJ5IGZhaWxlZCByZXF1ZXN0cy4gQ3VycmVudGx5IG9ubHkgaWRlbXBvdGVudAogKiAgICAgIHJlcXVlc3RzIChHRVQncyBhbmQgREVMRVRFJ3MpIGFyZSByZXRyaWVkLgogKgogKiBIZXJlJ3MgYW4gZXhhbXBsZToKICoKICogLi4gY29kZS1ibG9jazo6IHBocAogKgogKiAgICAgIHJlcXVpcmUoJ1NlcnZpY2VzL1R3aWxpby5waHAnKTsKICogICAgICAkY2xpZW50ID0gbmV3IFRhc2tSb3V0ZXJfU2VydmljZXNfVHdpbGlvKCdBQzEyMycsICc0NTZiZWYnLCBudWxsLCBudWxsLCAzKTsKICogICAgICAvLyBUYWtlIHNvbWUgYWN0aW9uIHdpdGggdGhlIGNsaWVudCwgZXRjLgogKi8KY2xhc3MgVGFza1JvdXRlcl9TZXJ2aWNlc19Ud2lsaW8gZXh0ZW5kcyBCYXNlX1NlcnZpY2VzX1R3aWxpbwp7CiAgICBwcm90ZWN0ZWQgJHZlcnNpb25zID0gYXJyYXkoJ3YxJyk7CiAgICBwcml2YXRlICRhY2NvdW50U2lkOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgKICAgICAgICAkc2lkLAogICAgICAgICR0b2tlbiwKICAgICAgICAkd29ya3NwYWNlU2lkLAogICAgICAgICR2ZXJzaW9uID0gbnVsbCwKICAgICAgICBTZXJ2aWNlc19Ud2lsaW9fVGlueUh0dHAgJF9odHRwID0gbnVsbCwKICAgICAgICAkcmV0cnlBdHRlbXB0cyA9IDEKICAgICkKICAgIHsKICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRzaWQsICR0b2tlbiwgJHZlcnNpb24sICRfaHR0cCwgJHJldHJ5QXR0ZW1wdHMpOwoKICAgICAgICAkdGhpcy0+d29ya3NwYWNlcyA9IG5ldyBTZXJ2aWNlc19Ud2lsaW9fUmVzdF9UYXNrUm91dGVyX1dvcmtzcGFjZXMoJHRoaXMsICIveyR0aGlzLT52ZXJzaW9ufS9Xb3Jrc3BhY2VzIik7CiAgICAgICAgJHRoaXMtPndvcmtzcGFjZSA9ICR0aGlzLT53b3Jrc3BhY2VzLT5nZXQoJHdvcmtzcGFjZVNpZCk7CiAgICAgICAgJHRoaXMtPmFjY291bnRTaWQgPSAkc2lkOwogICAgfQoKCS8qKgoJICogQ29uc3RydWN0IGEgVVJJIGJhc2VkIG9uIGluaXRpYWwgcGF0aCwgcXVlcnkgcGFyYW1zLCBhbmQgcGFnaW5nCgkgKiBpbmZvcm1hdGlvbgoJICoKCSAqIFdlIHdhbnQgdG8gdXNlIHRoZSBxdWVyeSBwYXJhbXMsIHVubGVzcyB3ZSBoYXZlIGEgbmV4dF9wYWdlX3VyaSBmcm9tIHRoZQoJICogQVBJLgoJICoKCSAqIDpwYXJhbSBzdHJpbmcgJHBhdGg6IFRoZSByZXF1ZXN0IHBhdGggKG1heSBjb250YWluIHF1ZXJ5IHBhcmFtcyBpZiBpdCdzCgkgKiAgICAgIGEgbmV4dF9wYWdlX3VyaSkKCSAqIDpwYXJhbSBhcnJheSAkcGFyYW1zOiBRdWVyeSBwYXJhbWV0ZXJzIHRvIHVzZSB3aXRoIHRoZSByZXF1ZXN0CgkgKiA6cGFyYW0gYm9vbGVhbiAkZnVsbF91cmk6IFdoZXRoZXIgdGhlICRwYXRoIGNvbnRhaW5zIHRoZSBmdWxsIHVyaQoJICoKCSAqIDpyZXR1cm46IHRoZSBVUkkgdGhhdCBzaG91bGQgYmUgcmVxdWVzdGVkIGJ5IHRoZSBsaWJyYXJ5CgkgKiA6cmV0dXJudHlwZTogc3RyaW5nCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBnZXRSZXF1ZXN0VXJpKCRwYXRoLCAkcGFyYW1zLCAkZnVsbF91cmkgPSBmYWxzZSkKCXsKCQlpZiAoISRmdWxsX3VyaSAmJiAhZW1wdHkoJHBhcmFtcykpIHsKCQkJJHF1ZXJ5X3BhdGggPSAkcGF0aCAuICc/JyAuIGh0dHBfYnVpbGRfcXVlcnkoJHBhcmFtcywgJycsICcmJyk7CgkJfSBlbHNlIHsKCQkJJHF1ZXJ5X3BhdGggPSAkcGF0aDsKCQl9CgkJcmV0dXJuICRxdWVyeV9wYXRoOwoJfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY3JlYXRlV29ya3NwYWNlKCRzaWQsICR0b2tlbiwgJGZyaWVuZGx5TmFtZSwgYXJyYXkgJHBhcmFtcyA9IGFycmF5KCksIFNlcnZpY2VzX1R3aWxpb19UaW55SHR0cCAkX2h0dHAgPSBudWxsKQogICAgewogICAgICAgICR0YXNrcm91dGVyQ2xpZW50ID0gbmV3IFRhc2tSb3V0ZXJfU2VydmljZXNfVHdpbGlvKCRzaWQsICR0b2tlbiwgbnVsbCwgbnVsbCwgJF9odHRwKTsKICAgICAgICByZXR1cm4gJHRhc2tyb3V0ZXJDbGllbnQtPndvcmtzcGFjZXMtPmNyZWF0ZSgkZnJpZW5kbHlOYW1lLCAkcGFyYW1zKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VGFza1F1ZXVlc1N0YXRpc3RpY3MoYXJyYXkgJHBhcmFtcyA9IGFycmF5KCkpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5yZXRyaWV2ZURhdGEoIi97JHRoaXMtPnZlcnNpb259L1dvcmtzcGFjZXMveyR0aGlzLT53b3Jrc3BhY2UtPnNpZH0vVGFza1F1ZXVlcy9TdGF0aXN0aWNzIiwgJHBhcmFtcyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldFRhc2tRdWV1ZVN0YXRpc3RpY3MoJHRhc2tRdWV1ZVNpZCwgYXJyYXkgJHBhcmFtcyA9IGFycmF5KCkpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5yZXRyaWV2ZURhdGEoIi97JHRoaXMtPnZlcnNpb259L1dvcmtzcGFjZXMveyR0aGlzLT53b3Jrc3BhY2UtPnNpZH0vVGFza1F1ZXVlcy97JHRhc2tRdWV1ZVNpZH0vU3RhdGlzdGljcyIsICRwYXJhbXMpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRXb3JrZXJzU3RhdGlzdGljcyhhcnJheSAkcGFyYW1zID0gYXJyYXkoKSkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnJldHJpZXZlRGF0YSgiL3skdGhpcy0+dmVyc2lvbn0vV29ya3NwYWNlcy97JHRoaXMtPndvcmtzcGFjZS0+c2lkfS9Xb3JrZXJzL1N0YXRpc3RpY3MiLCAkcGFyYW1zKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0V29ya2VyU3RhdGlzdGljcygkd29ya2VyU2lkLCBhcnJheSAkcGFyYW1zID0gYXJyYXkoKSkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnJldHJpZXZlRGF0YSgiL3skdGhpcy0+dmVyc2lvbn0vV29ya3NwYWNlcy97JHRoaXMtPndvcmtzcGFjZS0+c2lkfS9Xb3JrZXJzL3skd29ya2VyU2lkfS9TdGF0aXN0aWNzIiwgJHBhcmFtcyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldFdvcmtmbG93U3RhdGlzdGljcygkd29ya2Zsb3dTaWQsIGFycmF5ICRwYXJhbXMgPSBhcnJheSgpKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cmV0cmlldmVEYXRhKCIveyR0aGlzLT52ZXJzaW9ufS9Xb3Jrc3BhY2VzL3skdGhpcy0+d29ya3NwYWNlLT5zaWR9L1dvcmtmbG93cy97JHdvcmtmbG93U2lkfS9TdGF0aXN0aWNzIiwgJHBhcmFtcyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldFdvcmtzcGFjZVN0YXRpc3RpY3MoYXJyYXkgJHBhcmFtcyA9IGFycmF5KCkpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5yZXRyaWV2ZURhdGEoIi97JHRoaXMtPnZlcnNpb259L1dvcmtzcGFjZXMveyR0aGlzLT53b3Jrc3BhY2UtPnNpZH0vU3RhdGlzdGljcyIsICRwYXJhbXMpOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBfZ2V0QmFzZVVyaSgpCiAgICB7CiAgICAgICAgcmV0dXJuICdodHRwczovL3Rhc2tyb3V0ZXIudHdpbGlvLmNvbSc7CiAgICB9Cn0KCi8qKgogKiBDcmVhdGUgYSBjbGllbnQgdG8gdGFsayB0byB0aGUgVHdpbGlvIExvb2t1cHMgQVBJLgogKgogKgogKiA6cGFyYW0gc3RyaW5nICAgICAgICAgICAgICAgJHNpZDogICAgICBZb3VyIEFjY291bnQgU0lECiAqIDpwYXJhbSBzdHJpbmcgICAgICAgICAgICAgICAkdG9rZW46ICAgIFlvdXIgQXV0aCBUb2tlbiBmcm9tIGB5b3VyIGRhc2hib2FyZAogKiAgICAgIDxodHRwczovL3d3dy50d2lsaW8uY29tL3VzZXIvYWNjb3VudD5gXwogKiA6cGFyYW0gc3RyaW5nICAgICAgICAgICAgICAgJHZlcnNpb246ICBBUEkgdmVyc2lvbiB0byB1c2UKICogOnBhcmFtICRfaHR0cDogICAgQSBIVFRQIGNsaWVudCBmb3IgbWFraW5nIHJlcXVlc3RzLgogKiA6dHlwZSAkX2h0dHA6IDpwaHA6Y2xhc3M6YFNlcnZpY2VzX1R3aWxpb19UaW55SHR0cGAKICogOnBhcmFtIGludCAgICAgICAgICAgICAgICAgICRyZXRyeUF0dGVtcHRzOgogKiAgICAgIE51bWJlciBvZiB0aW1lcyB0byByZXRyeSBmYWlsZWQgcmVxdWVzdHMuIEN1cnJlbnRseSBvbmx5IGlkZW1wb3RlbnQKICogICAgICByZXF1ZXN0cyAoR0VUJ3MgYW5kIERFTEVURSdzKSBhcmUgcmV0cmllZC4KICoKICogSGVyZSdzIGFuIGV4YW1wbGU6CiAqCiAqIC4uIGNvZGUtYmxvY2s6OiBwaHAKICoKICogICAgICByZXF1aXJlKCdTZXJ2aWNlcy9Ud2lsaW8ucGhwJyk7CiAqICAgICAgJGNsaWVudCA9IG5ldyBMb29rdXBzX1NlcnZpY2VzX1R3aWxpbygnQUMxMjMnLCAnNDU2YmVmJywgbnVsbCwgbnVsbCwgMyk7CiAqICAgICAgLy8gVGFrZSBzb21lIGFjdGlvbiB3aXRoIHRoZSBjbGllbnQsIGV0Yy4KICovCmNsYXNzIExvb2t1cHNfU2VydmljZXNfVHdpbGlvIGV4dGVuZHMgQmFzZV9TZXJ2aWNlc19Ud2lsaW8KewogICAgcHJvdGVjdGVkICR2ZXJzaW9ucyA9IGFycmF5KCd2MScpOwogICAgcHJpdmF0ZSAkYWNjb3VudFNpZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoCiAgICAgICAgJHNpZCwKICAgICAgICAkdG9rZW4sCiAgICAgICAgJHZlcnNpb24gPSBudWxsLAogICAgICAgIFNlcnZpY2VzX1R3aWxpb19UaW55SHR0cCAkX2h0dHAgPSBudWxsLAogICAgICAgICRyZXRyeUF0dGVtcHRzID0gMQogICAgKQogICAgewogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJHNpZCwgJHRva2VuLCAkdmVyc2lvbiwgJF9odHRwLCAkcmV0cnlBdHRlbXB0cyk7CgogICAgICAgICR0aGlzLT5hY2NvdW50U2lkID0gJHNpZDsKICAgICAgICAkdGhpcy0+cGhvbmVfbnVtYmVycyA9IG5ldyBTZXJ2aWNlc19Ud2lsaW9fUmVzdF9Mb29rdXBzX1Bob25lTnVtYmVycygkdGhpcywgIi97JHRoaXMtPnZlcnNpb259L1Bob25lTnVtYmVycyIpOwogICAgfQoKCS8qKgoJICogQ29uc3RydWN0IGEgVVJJIGJhc2VkIG9uIGluaXRpYWwgcGF0aCwgcXVlcnkgcGFyYW1zLCBhbmQgcGFnaW5nCgkgKiBpbmZvcm1hdGlvbgoJICoKCSAqIFdlIHdhbnQgdG8gdXNlIHRoZSBxdWVyeSBwYXJhbXMsIHVubGVzcyB3ZSBoYXZlIGEgbmV4dF9wYWdlX3VyaSBmcm9tIHRoZQoJICogQVBJLgoJICoKCSAqIDpwYXJhbSBzdHJpbmcgJHBhdGg6IFRoZSByZXF1ZXN0IHBhdGggKG1heSBjb250YWluIHF1ZXJ5IHBhcmFtcyBpZiBpdCdzCgkgKiAgICAgIGEgbmV4dF9wYWdlX3VyaSkKCSAqIDpwYXJhbSBhcnJheSAkcGFyYW1zOiBRdWVyeSBwYXJhbWV0ZXJzIHRvIHVzZSB3aXRoIHRoZSByZXF1ZXN0CgkgKiA6cGFyYW0gYm9vbGVhbiAkZnVsbF91cmk6IFdoZXRoZXIgdGhlICRwYXRoIGNvbnRhaW5zIHRoZSBmdWxsIHVyaQoJICoKCSAqIDpyZXR1cm46IHRoZSBVUkkgdGhhdCBzaG91bGQgYmUgcmVxdWVzdGVkIGJ5IHRoZSBsaWJyYXJ5CgkgKiA6cmV0dXJudHlwZTogc3RyaW5nCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBnZXRSZXF1ZXN0VXJpKCRwYXRoLCAkcGFyYW1zLCAkZnVsbF91cmkgPSBmYWxzZSkKCXsKCQlpZiAoISRmdWxsX3VyaSAmJiAhZW1wdHkoJHBhcmFtcykpIHsKCQkJJHF1ZXJ5X3BhdGggPSAkcGF0aCAuICc/JyAuIGh0dHBfYnVpbGRfcXVlcnkoJHBhcmFtcywgJycsICcmJyk7CgkJfSBlbHNlIHsKCQkJJHF1ZXJ5X3BhdGggPSAkcGF0aDsKCQl9CgkJcmV0dXJuICRxdWVyeV9wYXRoOwoJfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBiYXNlIFVSSSBmb3IgdGhpcyBjbGllbnQuCiAgICAgKgogICAgICogOnJldHVybjogYmFzZSBVUkkKICAgICAqIDpydHlwZTogc3RyaW5nCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBfZ2V0QmFzZVVyaSgpCiAgICB7CiAgICAgICAgcmV0dXJuICdodHRwczovL2xvb2t1cHMudHdpbGlvLmNvbSc7CiAgICB9Cgp9CgovKioKICogQ3JlYXRlIGEgY2xpZW50IHRvIHRhbGsgdG8gdGhlIFR3aWxpbyBQcmljaW5nIEFQSS4KICoKICoKICogOnBhcmFtIHN0cmluZyAgICAgICAgICAgICAgICRzaWQ6ICAgICAgWW91ciBBY2NvdW50IFNJRAogKiA6cGFyYW0gc3RyaW5nICAgICAgICAgICAgICAgJHRva2VuOiAgICBZb3VyIEF1dGggVG9rZW4gZnJvbSBgeW91ciBkYXNoYm9hcmQKICogICAgICA8aHR0cHM6Ly93d3cudHdpbGlvLmNvbS91c2VyL2FjY291bnQ+YF8KICogOnBhcmFtIHN0cmluZyAgICAgICAgICAgICAgICR2ZXJzaW9uOiAgQVBJIHZlcnNpb24gdG8gdXNlCiAqIDpwYXJhbSAkX2h0dHA6ICAgIEEgSFRUUCBjbGllbnQgZm9yIG1ha2luZyByZXF1ZXN0cy4KICogOnR5cGUgJF9odHRwOiA6cGhwOmNsYXNzOmBTZXJ2aWNlc19Ud2lsaW9fVGlueUh0dHBgCiAqIDpwYXJhbSBpbnQgICAgICAgICAgICAgICAgICAkcmV0cnlBdHRlbXB0czoKICogICAgICBOdW1iZXIgb2YgdGltZXMgdG8gcmV0cnkgZmFpbGVkIHJlcXVlc3RzLiBDdXJyZW50bHkgb25seSBpZGVtcG90ZW50CiAqICAgICAgcmVxdWVzdHMgKEdFVCdzIGFuZCBERUxFVEUncykgYXJlIHJldHJpZWQuCiAqCiAqIEhlcmUncyBhbiBleGFtcGxlOgogKgogKiAuLiBjb2RlLWJsb2NrOjogcGhwCiAqCiAqICAgICAgcmVxdWlyZSgnU2VydmljZXMvVHdpbGlvLnBocCcpOwogKiAgICAgICRjbGllbnQgPSBuZXcgUHJpY2luZ19TZXJ2aWNlc19Ud2lsaW8oJ0FDMTIzJywgJzQ1NmJlZicsIG51bGwsIG51bGwsIDMpOwogKiAgICAgIC8vIFRha2Ugc29tZSBhY3Rpb24gd2l0aCB0aGUgY2xpZW50LCBldGMuCiAqLwpjbGFzcyBQcmljaW5nX1NlcnZpY2VzX1R3aWxpbyBleHRlbmRzIEJhc2VfU2VydmljZXNfVHdpbGlvCnsKICAgIHByb3RlY3RlZCAkdmVyc2lvbnMgPSBhcnJheSgndjEnKTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoCiAgICAgICAgJHNpZCwKICAgICAgICAkdG9rZW4sCiAgICAgICAgJHZlcnNpb24gPSBudWxsLAogICAgICAgIFNlcnZpY2VzX1R3aWxpb19UaW55SHR0cCAkX2h0dHAgPSBudWxsLAogICAgICAgICRyZXRyeUF0dGVtcHRzID0gMQogICAgKSB7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgkc2lkLCAkdG9rZW4sICR2ZXJzaW9uLCAkX2h0dHAsICRyZXRyeUF0dGVtcHRzKTsKCiAgICAgICAgJHRoaXMtPnZvaWNlQ291bnRyaWVzID0gbmV3IFNlcnZpY2VzX1R3aWxpb19SZXN0X1ByaWNpbmdfVm9pY2VDb3VudHJpZXMoCiAgICAgICAgICAgICR0aGlzLCAiL3skdGhpcy0+dmVyc2lvbn0vVm9pY2UvQ291bnRyaWVzIgogICAgICAgICk7CiAgICAgICAgJHRoaXMtPnZvaWNlTnVtYmVycyA9IG5ldyBTZXJ2aWNlc19Ud2lsaW9fUmVzdF9QcmljaW5nX1ZvaWNlTnVtYmVycygKICAgICAgICAgICAgJHRoaXMsICIveyR0aGlzLT52ZXJzaW9ufS9Wb2ljZS9OdW1iZXJzIgogICAgICAgICk7CiAgICAgICAgJHRoaXMtPnBob25lTnVtYmVyQ291bnRyaWVzID0gbmV3IFNlcnZpY2VzX1R3aWxpb19SZXN0X1ByaWNpbmdfUGhvbmVOdW1iZXJDb3VudHJpZXMoCiAgICAgICAgICAgICR0aGlzLCAiL3skdGhpcy0+dmVyc2lvbn0vUGhvbmVOdW1iZXJzL0NvdW50cmllcyIKICAgICAgICApOwogICAgICAgICR0aGlzLT5tZXNzYWdpbmdDb3VudHJpZXMgPSBuZXcgU2VydmljZXNfVHdpbGlvX1Jlc3RfUHJpY2luZ19NZXNzYWdpbmdDb3VudHJpZXMoCiAgICAgICAgICAgICR0aGlzLCAiL3skdGhpcy0+dmVyc2lvbn0vTWVzc2FnaW5nL0NvdW50cmllcyIKICAgICAgICApOwogICAgfQoKICAgIC8qKgogICAgICogQ29uc3RydWN0IGEgVVJJIGJhc2VkIG9uIGluaXRpYWwgcGF0aCwgcXVlcnkgcGFyYW1zLCBhbmQgcGFnaW5nCiAgICAgKiBpbmZvcm1hdGlvbgogICAgICoKICAgICAqIFdlIHdhbnQgdG8gdXNlIHRoZSBxdWVyeSBwYXJhbXMsIHVubGVzcyB3ZSBoYXZlIGEgbmV4dF9wYWdlX3VyaSBmcm9tIHRoZQogICAgICogQVBJLgogICAgICoKICAgICAqIDpwYXJhbSBzdHJpbmcgJHBhdGg6IFRoZSByZXF1ZXN0IHBhdGggKG1heSBjb250YWluIHF1ZXJ5IHBhcmFtcyBpZiBpdCdzCiAgICAgKiAgICAgIGEgbmV4dF9wYWdlX3VyaSkKICAgICAqIDpwYXJhbSBhcnJheSAkcGFyYW1zOiBRdWVyeSBwYXJhbWV0ZXJzIHRvIHVzZSB3aXRoIHRoZSByZXF1ZXN0CiAgICAgKiA6cGFyYW0gYm9vbGVhbiAkZnVsbF91cmk6IFdoZXRoZXIgdGhlICRwYXRoIGNvbnRhaW5zIHRoZSBmdWxsIHVyaQogICAgICoKICAgICAqIDpyZXR1cm46IHRoZSBVUkkgdGhhdCBzaG91bGQgYmUgcmVxdWVzdGVkIGJ5IHRoZSBsaWJyYXJ5CiAgICAgKiA6cmV0dXJudHlwZTogc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZXF1ZXN0VXJpKCRwYXRoLCAkcGFyYW1zLCAkZnVsbF91cmkgPSBmYWxzZSkKICAgIHsKICAgICAgICBpZiAoISRmdWxsX3VyaSAmJiAhZW1wdHkoJHBhcmFtcykpIHsKICAgICAgICAgICAgJHF1ZXJ5X3BhdGggPSAkcGF0aCAuICc/JyAuIGh0dHBfYnVpbGRfcXVlcnkoJHBhcmFtcywgJycsICcmJyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHF1ZXJ5X3BhdGggPSAkcGF0aDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRxdWVyeV9wYXRoOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBfZ2V0QmFzZVVyaSgpIHsKICAgICAgICByZXR1cm4gJ2h0dHBzOi8vcHJpY2luZy50d2lsaW8uY29tJzsKICAgIH0KCn0KCi8qKgogKiBDcmVhdGUgYSBjbGllbnQgdG8gdGFsayB0byB0aGUgVHdpbGlvIE1vbml0b3IgQVBJLgogKgogKgogKiA6cGFyYW0gc3RyaW5nICAgICAgICAgICAgICAgJHNpZDogICAgICBZb3VyIEFjY291bnQgU0lECiAqIDpwYXJhbSBzdHJpbmcgICAgICAgICAgICAgICAkdG9rZW46ICAgIFlvdXIgQXV0aCBUb2tlbiBmcm9tIGB5b3VyIGRhc2hib2FyZAogKiAgICAgIDxodHRwczovL3d3dy50d2lsaW8uY29tL3VzZXIvYWNjb3VudD5gXwogKiA6cGFyYW0gc3RyaW5nICAgICAgICAgICAgICAgJHZlcnNpb246ICBBUEkgdmVyc2lvbiB0byB1c2UKICogOnBhcmFtICRfaHR0cDogICAgQSBIVFRQIGNsaWVudCBmb3IgbWFraW5nIHJlcXVlc3RzLgogKiA6dHlwZSAkX2h0dHA6IDpwaHA6Y2xhc3M6YFNlcnZpY2VzX1R3aWxpb19UaW55SHR0cGAKICogOnBhcmFtIGludCAgICAgICAgICAgICAgICAgICRyZXRyeUF0dGVtcHRzOgogKiAgICAgIE51bWJlciBvZiB0aW1lcyB0byByZXRyeSBmYWlsZWQgcmVxdWVzdHMuIEN1cnJlbnRseSBvbmx5IGlkZW1wb3RlbnQKICogICAgICByZXF1ZXN0cyAoR0VUJ3MgYW5kIERFTEVURSdzKSBhcmUgcmV0cmllZC4KICoKICogSGVyZSdzIGFuIGV4YW1wbGU6CiAqCiAqIC4uIGNvZGUtYmxvY2s6OiBwaHAKICoKICogICAgICByZXF1aXJlKCdTZXJ2aWNlcy9Ud2lsaW8ucGhwJyk7CiAqICAgICAgJGNsaWVudCA9IG5ldyBNb25pdG9yX1NlcnZpY2VzX1R3aWxpbygnQUMxMjMnLCAnNDU2YmVmJywgbnVsbCwgbnVsbCwgMyk7CiAqICAgICAgLy8gVGFrZSBzb21lIGFjdGlvbiB3aXRoIHRoZSBjbGllbnQsIGV0Yy4KICovCmNsYXNzIE1vbml0b3JfU2VydmljZXNfVHdpbGlvIGV4dGVuZHMgQmFzZV9TZXJ2aWNlc19Ud2lsaW8KewogICAgcHJvdGVjdGVkICR2ZXJzaW9ucyA9IGFycmF5KCd2MScpOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgKICAgICAgICAkc2lkLAogICAgICAgICR0b2tlbiwKICAgICAgICAkdmVyc2lvbiA9IG51bGwsCiAgICAgICAgU2VydmljZXNfVHdpbGlvX1RpbnlIdHRwICRfaHR0cCA9IG51bGwsCiAgICAgICAgJHJldHJ5QXR0ZW1wdHMgPSAxCiAgICApCiAgICB7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgkc2lkLCAkdG9rZW4sICR2ZXJzaW9uLCAkX2h0dHAsICRyZXRyeUF0dGVtcHRzKTsKCiAgICAgICAgJHRoaXMtPmV2ZW50cyA9IG5ldyBTZXJ2aWNlc19Ud2lsaW9fUmVzdF9Nb25pdG9yX0V2ZW50cygkdGhpcywgIi97JHRoaXMtPnZlcnNpb259L0V2ZW50cyIpOwogICAgICAgICR0aGlzLT5hbGVydHMgPSBuZXcgU2VydmljZXNfVHdpbGlvX1Jlc3RfTW9uaXRvcl9BbGVydHMoJHRoaXMsICIveyR0aGlzLT52ZXJzaW9ufS9BbGVydHMiKTsKICAgIH0KCiAgICAvKioKICAgICAqIENvbnN0cnVjdCBhIFVSSSBiYXNlZCBvbiBpbml0aWFsIHBhdGgsIHF1ZXJ5IHBhcmFtcywgYW5kIHBhZ2luZwogICAgICogaW5mb3JtYXRpb24KICAgICAqCiAgICAgKiBXZSB3YW50IHRvIHVzZSB0aGUgcXVlcnkgcGFyYW1zLCB1bmxlc3Mgd2UgaGF2ZSBhIG5leHRfcGFnZV91cmkgZnJvbSB0aGUKICAgICAqIEFQSS4KICAgICAqCiAgICAgKiA6cGFyYW0gc3RyaW5nICRwYXRoOiBUaGUgcmVxdWVzdCBwYXRoIChtYXkgY29udGFpbiBxdWVyeSBwYXJhbXMgaWYgaXQncwogICAgICogICAgICBhIG5leHRfcGFnZV91cmkpCiAgICAgKiA6cGFyYW0gYXJyYXkgJHBhcmFtczogUXVlcnkgcGFyYW1ldGVycyB0byB1c2Ugd2l0aCB0aGUgcmVxdWVzdAogICAgICogOnBhcmFtIGJvb2xlYW4gJGZ1bGxfdXJpOiBXaGV0aGVyIHRoZSAkcGF0aCBjb250YWlucyB0aGUgZnVsbCB1cmkKICAgICAqCiAgICAgKiA6cmV0dXJuOiB0aGUgVVJJIHRoYXQgc2hvdWxkIGJlIHJlcXVlc3RlZCBieSB0aGUgbGlicmFyeQogICAgICogOnJldHVybnR5cGU6IHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UmVxdWVzdFVyaSgkcGF0aCwgJHBhcmFtcywgJGZ1bGxfdXJpID0gZmFsc2UpCiAgICB7CiAgICAgICAgaWYgKCEkZnVsbF91cmkgJiYgIWVtcHR5KCRwYXJhbXMpKSB7CiAgICAgICAgICAgICRxdWVyeV9wYXRoID0gJHBhdGggLiAnPycgLiBodHRwX2J1aWxkX3F1ZXJ5KCRwYXJhbXMsICcnLCAnJicpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRxdWVyeV9wYXRoID0gJHBhdGg7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkcXVlcnlfcGF0aDsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gX2dldEJhc2VVcmkoKQogICAgewogICAgICAgIHJldHVybiAnaHR0cHM6Ly9tb25pdG9yLnR3aWxpby5jb20nOwogICAgfQoKfQoKLyoqCiAqIENyZWF0ZSBhIGNsaWVudCB0byB0YWxrIHRvIHRoZSBUd2lsaW8gU0lQIFRydW5raW5nIEFQSS4KICoKICoKICogOnBhcmFtIHN0cmluZyAgICAgICAgICAgICAgICRzaWQ6ICAgICAgWW91ciBBY2NvdW50IFNJRAogKiA6cGFyYW0gc3RyaW5nICAgICAgICAgICAgICAgJHRva2VuOiAgICBZb3VyIEF1dGggVG9rZW4gZnJvbSBgeW91ciBkYXNoYm9hcmQKICogICAgICA8aHR0cHM6Ly93d3cudHdpbGlvLmNvbS91c2VyL2FjY291bnQ+YF8KICogOnBhcmFtIHN0cmluZyAgICAgICAgICAgICAgICR2ZXJzaW9uOiAgQVBJIHZlcnNpb24gdG8gdXNlCiAqIDpwYXJhbSAkX2h0dHA6ICAgIEEgSFRUUCBjbGllbnQgZm9yIG1ha2luZyByZXF1ZXN0cy4KICogOnR5cGUgJF9odHRwOiA6cGhwOmNsYXNzOmBTZXJ2aWNlc19Ud2lsaW9fVGlueUh0dHBgCiAqIDpwYXJhbSBpbnQgICAgICAgICAgICAgICAgICAkcmV0cnlBdHRlbXB0czoKICogICAgICBOdW1iZXIgb2YgdGltZXMgdG8gcmV0cnkgZmFpbGVkIHJlcXVlc3RzLiBDdXJyZW50bHkgb25seSBpZGVtcG90ZW50CiAqICAgICAgcmVxdWVzdHMgKEdFVCdzIGFuZCBERUxFVEUncykgYXJlIHJldHJpZWQuCiAqCiAqIEhlcmUncyBhbiBleGFtcGxlOgogKgogKiAuLiBjb2RlLWJsb2NrOjogcGhwCiAqCiAqICAgICAgcmVxdWlyZSgnU2VydmljZXMvVHdpbGlvLnBocCcpOwogKiAgICAgICRjbGllbnQgPSBuZXcgVHJ1bmtpbmdfU2VydmljZXNfVHdpbGlvKCdBQzEyMycsICc0NTZiZWYnLCBudWxsLCBudWxsLCAzKTsKICogICAgICAvLyBUYWtlIHNvbWUgYWN0aW9uIHdpdGggdGhlIGNsaWVudCwgZXRjLgogKi8KY2xhc3MgVHJ1bmtpbmdfU2VydmljZXNfVHdpbGlvIGV4dGVuZHMgQmFzZV9TZXJ2aWNlc19Ud2lsaW8KewogICAgcHJvdGVjdGVkICR2ZXJzaW9ucyA9IGFycmF5KCd2MScpOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgKICAgICAgICAkc2lkLAogICAgICAgICR0b2tlbiwKICAgICAgICAkdmVyc2lvbiA9IG51bGwsCiAgICAgICAgU2VydmljZXNfVHdpbGlvX1RpbnlIdHRwICRfaHR0cCA9IG51bGwsCiAgICAgICAgJHJldHJ5QXR0ZW1wdHMgPSAxCiAgICApCiAgICB7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgkc2lkLCAkdG9rZW4sICR2ZXJzaW9uLCAkX2h0dHAsICRyZXRyeUF0dGVtcHRzKTsKCiAgICAgICAgJHRoaXMtPnRydW5rcyA9IG5ldyBTZXJ2aWNlc19Ud2lsaW9fUmVzdF9UcnVua2luZ19UcnVua3MoJHRoaXMsICIveyR0aGlzLT52ZXJzaW9ufS9UcnVua3MiKTsKICAgIH0KCiAgICAvKioKICAgICAqIENvbnN0cnVjdCBhIFVSSSBiYXNlZCBvbiBpbml0aWFsIHBhdGgsIHF1ZXJ5IHBhcmFtcywgYW5kIHBhZ2luZwogICAgICogaW5mb3JtYXRpb24KICAgICAqCiAgICAgKiBXZSB3YW50IHRvIHVzZSB0aGUgcXVlcnkgcGFyYW1zLCB1bmxlc3Mgd2UgaGF2ZSBhIG5leHRfcGFnZV91cmkgZnJvbSB0aGUKICAgICAqIEFQSS4KICAgICAqCiAgICAgKiA6cGFyYW0gc3RyaW5nICRwYXRoOiBUaGUgcmVxdWVzdCBwYXRoIChtYXkgY29udGFpbiBxdWVyeSBwYXJhbXMgaWYgaXQncwogICAgICogICAgICBhIG5leHRfcGFnZV91cmkpCiAgICAgKiA6cGFyYW0gYXJyYXkgJHBhcmFtczogUXVlcnkgcGFyYW1ldGVycyB0byB1c2Ugd2l0aCB0aGUgcmVxdWVzdAogICAgICogOnBhcmFtIGJvb2xlYW4gJGZ1bGxfdXJpOiBXaGV0aGVyIHRoZSAkcGF0aCBjb250YWlucyB0aGUgZnVsbCB1cmkKICAgICAqCiAgICAgKiA6cmV0dXJuOiB0aGUgVVJJIHRoYXQgc2hvdWxkIGJlIHJlcXVlc3RlZCBieSB0aGUgbGlicmFyeQogICAgICogOnJldHVybnR5cGU6IHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UmVxdWVzdFVyaSgkcGF0aCwgJHBhcmFtcywgJGZ1bGxfdXJpID0gZmFsc2UpCiAgICB7CiAgICAgICAgaWYgKCEkZnVsbF91cmkgJiYgIWVtcHR5KCRwYXJhbXMpKSB7CiAgICAgICAgICAgICRxdWVyeV9wYXRoID0gJHBhdGggLiAnPycgLiBodHRwX2J1aWxkX3F1ZXJ5KCRwYXJhbXMsICcnLCAnJicpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRxdWVyeV9wYXRoID0gJHBhdGg7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkcXVlcnlfcGF0aDsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gX2dldEJhc2VVcmkoKQogICAgewogICAgICAgIHJldHVybiAnaHR0cHM6Ly90cnVua2luZy50d2lsaW8uY29tJzsKICAgIH0KCn0K]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/InstanceResource.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBAY2F0ZWdvcnkgU2VydmljZXMKICogQHBhY2thZ2UgIFNlcnZpY2VzX1R3aWxpbwogKiBAYXV0aG9yICAgTmV1bWFuIFZvbmcgPG5ldW1hbkB0d2lsaW8uY29tPgogKiBAbGljZW5zZSAgaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvTUlULyBNSVQKICogQGxpbmsgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9TZXJ2aWNlc19Ud2lsaW8KICovCgovKioKICogQWJzdHJhY3Rpb24gb2YgYW4gaW5zdGFuY2UgcmVzb3VyY2UgZnJvbSB0aGUgVHdpbGlvIEFQSS4KICovCmFic3RyYWN0IGNsYXNzIFNlcnZpY2VzX1R3aWxpb19JbnN0YW5jZVJlc291cmNlIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX1Jlc291cmNlIHsKCiAgICAvKioKICAgICAqIE1ha2UgYSByZXF1ZXN0IHRvIHRoZSBBUEkgdG8gdXBkYXRlIGFuIGluc3RhbmNlIHJlc291cmNlCiAgICAgKgogICAgICogOnBhcmFtIG1peGVkICRwYXJhbXM6IEFuIGFycmF5IG9mIHVwZGF0ZXMsIG9yIGEgcHJvcGVydHkgbmFtZQogICAgICogOnBhcmFtIG1peGVkICR2YWx1ZTogIEEgdmFsdWUgd2l0aCB3aGljaCB0byB1cGRhdGUgdGhlIHJlc291cmNlCiAgICAgKgogICAgICogOnJ0eXBlOiBudWxsCiAgICAgKiA6dGhyb3dzOiBhIDpwaHA6Y2xhc3M6YFJlc3RFeGNlcHRpb24gPFNlcnZpY2VzX1R3aWxpb19SZXN0RXhjZXB0aW9uPmAgaWYKICAgICAqICAgICAgdGhlIHVwZGF0ZSBmYWlscy4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHVwZGF0ZSgkcGFyYW1zLCAkdmFsdWUgPSBudWxsKQogICAgewogICAgICAgIGlmICghaXNfYXJyYXkoJHBhcmFtcykpIHsKICAgICAgICAgICAgJHBhcmFtcyA9IGFycmF5KCRwYXJhbXMgPT4gJHZhbHVlKTsKICAgICAgICB9CiAgICAgICAgJGRlY2FtZWxpemVkUGFyYW1zID0gJHRoaXMtPmNsaWVudC0+Y3JlYXRlRGF0YSgkdGhpcy0+dXJpLCAkcGFyYW1zKTsKICAgICAgICAkdGhpcy0+dXBkYXRlQXR0cmlidXRlcygkZGVjYW1lbGl6ZWRQYXJhbXMpOwogICAgfQoKICAgIC8qKgogICAgICogQWRkIGFsbCBwcm9wZXJ0aWVzIGZyb20gYW4gYXNzb2NpYXRpdmUgYXJyYXkgKHRoZSBKU09OIHJlc3BvbnNlIGJvZHkpIGFzCiAgICAgKiBwcm9wZXJ0aWVzIG9uIHRoaXMgaW5zdGFuY2UgcmVzb3VyY2UsIGV4Y2VwdCB0aGUgVVJJCiAgICAgKgogICAgICogOnBhcmFtIHN0ZENsYXNzICRwYXJhbXM6IEFuIG9iamVjdCBjb250YWluaW5nIGFsbCBvZiB0aGUgcGFyYW1ldGVycyBvZgogICAgICogICAgICB0aGlzIGluc3RhbmNlCiAgICAgKiA6cmV0dXJuOiBOb3RoaW5nLCB0aGlzIGlzIHB1cmVseSBzaWRlIGVmZmVjdGluZwogICAgICogOnJ0eXBlOiBudWxsCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiB1cGRhdGVBdHRyaWJ1dGVzKCRwYXJhbXMpIHsKICAgICAgICB1bnNldCgkcGFyYW1zLT51cmkpOwogICAgICAgIGZvcmVhY2ggKCRwYXJhbXMgYXMgJG5hbWUgPT4gJHZhbHVlKSB7CiAgICAgICAgICAgICR0aGlzLT4kbmFtZSA9ICR2YWx1ZTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHZhbHVlIG9mIGEgcHJvcGVydHkgb24gdGhpcyByZXNvdXJjZS4KICAgICAqCiAgICAgKiBJbnN0ZWFkIG9mIGRlZmluaW5nIGFsbCBvZiB0aGUgcHJvcGVydGllcyBvZiBhbiBvYmplY3QgZGlyZWN0bHksIHdlIHJlbHkKICAgICAqIG9uIHRoZSBBUEkgdG8gdGVsbCB1cyB3aGljaCBwcm9wZXJ0aWVzIGFuIG9iamVjdCBoYXMuIFRoaXMgbWV0aG9kIHdpbGwKICAgICAqIHF1ZXJ5IHRoZSBBUEkgdG8gcmV0cmlldmUgYSBwcm9wZXJ0eSBmb3IgYW4gb2JqZWN0LCBpZiBpdCBpcyBub3QgYWxyZWFkeQogICAgICogc2V0IG9uIHRoZSBvYmplY3QuCiAgICAgKgogICAgICogSWYgdGhlIGNhbGwgaXMgdG8gYSBzdWJyZXNvdXJjZSwgZWcgYGAkY2xpZW50LT5hY2NvdW50LT5tZXNzYWdlc2BgLCBubwogICAgICogcmVxdWVzdCBpcyBtYWRlLgogICAgICoKICAgICAqIFRvIGhlbHAgd2l0aCBsYXp5IEhUVFAgcmVxdWVzdHMsIHdlIGRvbid0IGFjdHVhbGx5IHJldHJpZXZlIGFuIG9iamVjdAogICAgICogZnJvbSB0aGUgQVBJIHVubGVzcyB5b3UgcmVhbGx5IG5lZWQgaXQuIEhlbmNlLCB0aGlzIGZ1bmN0aW9uIG1heSBtYWtlIEFQSQogICAgICogcmVxdWVzdHMgZXZlbiBpZiB0aGUgcHJvcGVydHkgeW91J3JlIHJlcXVlc3RpbmcgaXNuJ3QgYXZhaWxhYmxlIG9uIHRoZQogICAgICogcmVzb3VyY2UuCiAgICAgKgogICAgICogOnBhcmFtIHN0cmluZyAka2V5OiBUaGUgcHJvcGVydHkgbmFtZQogICAgICoKICAgICAqIDpyZXR1cm4gbWl4ZWQ6IENvdWxkIGJlIGFueXRoaW5nLgogICAgICogOnRocm93czogYSA6cGhwOmNsYXNzOmBSZXN0RXhjZXB0aW9uIDxTZXJ2aWNlc19Ud2lsaW9fUmVzdEV4Y2VwdGlvbj5gIGlmCiAgICAgKiAgICAgIHRoZSB1cGRhdGUgZmFpbHMuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgka2V5KQogICAgewogICAgICAgIGlmICgkc3VicmVzb3VyY2UgPSAkdGhpcy0+Z2V0U3VicmVzb3VyY2VzKCRrZXkpKSB7CiAgICAgICAgICAgIHJldHVybiAkc3VicmVzb3VyY2U7CiAgICAgICAgfQogICAgICAgIGlmICghaXNzZXQoJHRoaXMtPiRrZXkpKSB7CiAgICAgICAgICAgICRwYXJhbXMgPSAkdGhpcy0+Y2xpZW50LT5yZXRyaWV2ZURhdGEoJHRoaXMtPnVyaSk7CiAgICAgICAgICAgICR0aGlzLT51cGRhdGVBdHRyaWJ1dGVzKCRwYXJhbXMpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHRoaXMtPiRrZXk7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/ListResource.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBAYXV0aG9yICAgTmV1bWFuIFZvbmcgbmV1bWFuQHR3aWxpby5jb20KICogQGxpY2Vuc2UgIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL01JVC8gTUlUCiAqIEBsaW5rICAgICBodHRwOi8vcGVhci5waHAubmV0L3BhY2thZ2UvU2VydmljZXNfVHdpbGlvCiAqLwoKLyoqCiAqIEFic3RyYWN0aW9uIG9mIGEgbGlzdCByZXNvdXJjZSBmcm9tIHRoZSBUd2lsaW8gQVBJLgogKgogKiBUaGUgbGlzdCByZXNvdXJjZSBpbXBsZW1lbnRzIHRoZSBgSXRlcmF0b3JBZ2dyZWdhdGUKICogPGh0dHA6Ly9waHAubmV0L21hbnVhbC9lbi9jbGFzcy5pdGVyYXRvcmFnZ3JlZ2F0ZS5waHA+YF8gYW5kIHRoZSBgQ291bnRhYmxlCiAqIDxodHRwOi8vcGhwLm5ldC9tYW51YWwvZW4vY2xhc3MuY291bnRhYmxlLnBocD5gXyBpbnRlcmZhY2VzLgogKgogKi8KYWJzdHJhY3QgY2xhc3MgU2VydmljZXNfVHdpbGlvX0xpc3RSZXNvdXJjZSBleHRlbmRzIFNlcnZpY2VzX1R3aWxpb19SZXNvdXJjZQogICAgaW1wbGVtZW50cyBJdGVyYXRvckFnZ3JlZ2F0ZQp7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRjbGllbnQsICR1cmkpIHsKICAgICAgICAkbmFtZSA9ICR0aGlzLT5nZXRSZXNvdXJjZU5hbWUodHJ1ZSk7CiAgICAgICAgLyoKICAgICAgICAgKiBCeSBkZWZhdWx0IHRyaW0gdGhlICdzJyBmcm9tIHRoZSBlbmQgb2YgdGhlIGxpc3QgbmFtZSB0byBnZXQgdGhlCiAgICAgICAgICogaW5zdGFuY2UgbmFtZSAoZXggQWNjb3VudHMgLT4gQWNjb3VudCkuIFRoaXMgYmVoYXZpb3IgY2FuIGJlCiAgICAgICAgICogb3ZlcnJpZGRlbiBieSBjaGlsZCBjbGFzc2VzIGlmIHRoZSBydWxlIGRvZXNuJ3Qgd29yay4KICAgICAgICAgKi8KICAgICAgICBpZiAoIWlzc2V0KCR0aGlzLT5pbnN0YW5jZV9uYW1lKSkgewogICAgICAgICAgICAkdGhpcy0+aW5zdGFuY2VfbmFtZSA9ICJTZXJ2aWNlc19Ud2lsaW9fUmVzdF8iIC4gcnRyaW0oJG5hbWUsICdzJyk7CiAgICAgICAgfQoKICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRjbGllbnQsICR1cmkpOwogICAgfQoKICAgIC8qKgogICAgICogR2V0cyBhIHJlc291cmNlIGZyb20gdGhpcyBsaXN0LgogICAgICoKICAgICAqIDpwYXJhbSBzdHJpbmcgJHNpZDogVGhlIHJlc291cmNlIFNJRAogICAgICogOnJldHVybjogVGhlIHJlc291cmNlCiAgICAgKiA6cnR5cGU6IDpwaHA6Y2xhc3M6YEluc3RhbmNlUmVzb3VyY2UgPFNlcnZpY2VzX1R3aWxpb19JbnN0YW5jZVJlc291cmNlPmAKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldCgkc2lkKSB7CiAgICAgICAgJGluc3RhbmNlID0gbmV3ICR0aGlzLT5pbnN0YW5jZV9uYW1lKAogICAgICAgICAgICAkdGhpcy0+Y2xpZW50LCAkdGhpcy0+dXJpIC4gIi8kc2lkIgogICAgICAgICk7CiAgICAgICAgLy8gWFhYIGNoZWNrIGlmIHRoaXMgaXMgYWN0dWFsbHkgYSBzaWQgaW4gYWxsIGNhc2VzLgogICAgICAgICRpbnN0YW5jZS0+c2lkID0gJHNpZDsKICAgICAgICByZXR1cm4gJGluc3RhbmNlOwogICAgfQoKICAgIC8qKgogICAgICogQ29uc3RydWN0IGFuIDpwaHA6Y2xhc3M6YEluc3RhbmNlUmVzb3VyY2UKICAgICAqIDxTZXJ2aWNlc19Ud2lsaW9fSW5zdGFuY2VSZXNvdXJjZT5gIHdpdGggdGhlIHNwZWNpZmllZCBwYXJhbXMuCiAgICAgKgogICAgICogOnBhcmFtIGFycmF5ICRwYXJhbXM6IHVzdWFsbHkgYSBKU09OIEhUVFAgcmVzcG9uc2UgZnJvbSB0aGUgQVBJCiAgICAgKiA6cmV0dXJuOiBBbiBpbnN0YW5jZSB3aXRoIHByb3BlcnRpZXMKICAgICAqICAgICAgaW5pdGlhbGl6ZWQgdG8gdGhlIHZhbHVlcyBpbiB0aGUgcGFyYW1zIGFycmF5LgogICAgICogOnJ0eXBlOiA6cGhwOmNsYXNzOmBJbnN0YW5jZVJlc291cmNlIDxTZXJ2aWNlc19Ud2lsaW9fSW5zdGFuY2VSZXNvdXJjZT5gCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRPYmplY3RGcm9tSnNvbigkcGFyYW1zLCAkaWRQYXJhbSA9ICJzaWQiKQogICAgewogICAgICAgIGlmIChpc3NldCgkcGFyYW1zLT57JGlkUGFyYW19KSkgewogICAgICAgICAgICAkdXJpID0gJHRoaXMtPnVyaSAuICIvIiAuICRwYXJhbXMtPnskaWRQYXJhbX07CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHVyaSA9ICR0aGlzLT51cmk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBuZXcgJHRoaXMtPmluc3RhbmNlX25hbWUoJHRoaXMtPmNsaWVudCwgJHVyaSwgJHBhcmFtcyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBEZWxldGVzIGEgcmVzb3VyY2UgZnJvbSB0aGlzIGxpc3QuCiAgICAgKgogICAgICogOnBhcmFtIHN0cmluZyAkc2lkOiBUaGUgcmVzb3VyY2UgU0lECiAgICAgKiA6cnR5cGU6IG51bGwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZSgkc2lkLCAkcGFyYW1zID0gYXJyYXkoKSkKICAgIHsKICAgICAgICAkdGhpcy0+Y2xpZW50LT5kZWxldGVEYXRhKCR0aGlzLT51cmkgLiAnLycgLiAkc2lkLCAkcGFyYW1zKTsKICAgIH0KCiAgICAvKioKICAgICAqIENyZWF0ZSBhIHJlc291cmNlIG9uIHRoZSBsaXN0IGFuZCB0aGVuIHJldHVybiBpdHMgcmVwcmVzZW50YXRpb24gYXMgYW4KICAgICAqIEluc3RhbmNlUmVzb3VyY2UuCiAgICAgKgogICAgICogOnBhcmFtIGFycmF5ICRwYXJhbXM6IFRoZSBwYXJhbWV0ZXJzIHdpdGggd2hpY2ggdG8gY3JlYXRlIHRoZSByZXNvdXJjZQogICAgICoKICAgICAqIDpyZXR1cm46IFRoZSBjcmVhdGVkIHJlc291cmNlCiAgICAgKiA6cnR5cGU6IDpwaHA6Y2xhc3M6YEluc3RhbmNlUmVzb3VyY2UgPFNlcnZpY2VzX1R3aWxpb19JbnN0YW5jZVJlc291cmNlPmAKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9jcmVhdGUoJHBhcmFtcykKICAgIHsKICAgICAgICAkcGFyYW1zID0gJHRoaXMtPmNsaWVudC0+Y3JlYXRlRGF0YSgkdGhpcy0+dXJpLCAkcGFyYW1zKTsKICAgICAgICAvKiBTb21lIG1ldGhvZHMgbGlrZSB2ZXJpZmllZCBjYWxsZXIgSUQgZG9uJ3QgcmV0dXJuIHNpZHMuICovCiAgICAgICAgaWYgKGlzc2V0KCRwYXJhbXMtPnNpZCkpIHsKICAgICAgICAgICAgJHJlc291cmNlX3VyaSA9ICR0aGlzLT51cmkgLiAnLycgLiAkcGFyYW1zLT5zaWQ7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHJlc291cmNlX3VyaSA9ICR0aGlzLT51cmk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBuZXcgJHRoaXMtPmluc3RhbmNlX25hbWUoJHRoaXMtPmNsaWVudCwgJHJlc291cmNlX3VyaSwgJHBhcmFtcyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgcGFnZSBvZiA6cGhwOmNsYXNzOmBJbnN0YW5jZVJlc291cmNlcwogICAgICogPFNlcnZpY2VzX1R3aWxpb19JbnN0YW5jZVJlc291cmNlPmAgZnJvbSB0aGlzIGxpc3QuCiAgICAgKgogICAgICogOnBhcmFtIGludCAgICAkcGFnZTogVGhlIHN0YXJ0IHBhZ2UKICAgICAqIDpwYXJhbSBpbnQgICAgJHNpemU6IE51bWJlciBvZiBpdGVtcyBwZXIgcGFnZQogICAgICogOnBhcmFtIGFycmF5ICAkZmlsdGVyczogT3B0aW9uYWwgZmlsdGVycwogICAgICogOnBhcmFtIHN0cmluZyAkZGVlcF9wYWdpbmdfdXJpOiBpZiBwcm92aWRlZCwgdGhlICRwYWdlIGFuZCAkc2l6ZQogICAgICogICAgICBwYXJhbWV0ZXJzIHdpbGwgYmUgaWdub3JlZCBhbmQgdGhpcyBVUkkgd2lsbCBiZSByZXF1ZXN0ZWQgZGlyZWN0bHkuCiAgICAgKgogICAgICogOnJldHVybjogQSBwYWdlIG9mIHJlc291cmNlcwogICAgICogOnJ0eXBlOiA6cGhwOmNsYXNzOmBTZXJ2aWNlc19Ud2lsaW9fUGFnZWAKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFBhZ2UoCiAgICAgICAgJHBhZ2UgPSAwLCAkc2l6ZSA9IDUwLCAkZmlsdGVycyA9IGFycmF5KCksICRkZWVwX3BhZ2luZ191cmkgPSBudWxsCiAgICApIHsKICAgICAgICAkbGlzdF9uYW1lID0gJHRoaXMtPmdldFJlc291cmNlTmFtZSgpOwogICAgICAgIGlmICgkZGVlcF9wYWdpbmdfdXJpICE9PSBudWxsKSB7CiAgICAgICAgICAgICRwYWdlID0gJHRoaXMtPmNsaWVudC0+cmV0cmlldmVEYXRhKCRkZWVwX3BhZ2luZ191cmksIGFycmF5KCksIHRydWUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRwYWdlID0gJHRoaXMtPmNsaWVudC0+cmV0cmlldmVEYXRhKCR0aGlzLT51cmksIGFycmF5KAogICAgICAgICAgICAgICAgJ1BhZ2UnID0+ICRwYWdlLAogICAgICAgICAgICAgICAgJ1BhZ2VTaXplJyA9PiAkc2l6ZSwKICAgICAgICAgICAgKSArICRmaWx0ZXJzKTsKICAgICAgICB9CgogICAgICAgIC8qIGNyZWF0ZSBhIG5ldyBQSFAgb2JqZWN0IGZvciBlYWNoIGpzb24gb2JqIGluIHRoZSBhcGkgcmVzcG9uc2UuICovCiAgICAgICAgJHBhZ2UtPiRsaXN0X25hbWUgPSBhcnJheV9tYXAoCiAgICAgICAgICAgIGFycmF5KCR0aGlzLCAnZ2V0T2JqZWN0RnJvbUpzb24nKSwKICAgICAgICAgICAgJHBhZ2UtPiRsaXN0X25hbWUKICAgICAgICApOwogICAgICAgIGlmIChpc3NldCgkcGFnZS0+bmV4dF9wYWdlX3VyaSkpIHsKICAgICAgICAgICAgJG5leHRfcGFnZV91cmkgPSAkcGFnZS0+bmV4dF9wYWdlX3VyaTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkbmV4dF9wYWdlX3VyaSA9IG51bGw7CiAgICAgICAgfQogICAgICAgIHJldHVybiBuZXcgU2VydmljZXNfVHdpbGlvX1BhZ2UoJHBhZ2UsICRsaXN0X25hbWUsICRuZXh0X3BhZ2VfdXJpKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYW4gaXRlcmFibGUgbGlzdCBvZgogICAgICogOnBocDpjbGFzczpgaW5zdGFuY2UgcmVzb3VyY2VzIDxTZXJ2aWNlc19Ud2lsaW9fSW5zdGFuY2VSZXNvdXJjZT5gLgogICAgICoKICAgICAqIDpwYXJhbSBpbnQgICAkcGFnZTogVGhlIHN0YXJ0IHBhZ2UKICAgICAqIDpwYXJhbSBpbnQgICAkc2l6ZTogTnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlCiAgICAgKiA6cGFyYW0gYXJyYXkgJGZpbHRlcnM6IE9wdGlvbmFsIGZpbHRlcnMuCiAgICAgKiAgICAgIFRoZSBmaWx0ZXIgYXJyYXkgY2FuIGFjY2VwdCBmdWxsIGRhdGV0aW1lcyB3aGVuIFN0YXJ0VGltZSBvciBEYXRlQ3JlYXRlZAogICAgICogICAgICBhcmUgdXNlZC4gSW5lcXVhbGl0aWVzIHNob3VsZCBiZSB3aXRoaW4gdGhlIGtleSBwb3J0aW9uIG9mIHRoZSBhcnJheSBhbmQKICAgICAqICAgICAgbXVsdGlwbGUgZmlsdGVyIHBhcmFtZXRlcnMgY2FuIGJlIGNvbWJpbmVkIGZvciBtb3JlIHNwZWNpZmljIHNlYXJjaGVzLgogICAgICoKICAgICAqICAgICAgLi4gY29kZS1ibG9jazo6IHBocAogICAgICoKICAgICAqICAgICAgICAgIGFycmF5KCdEYXRlQ3JlYXRlZD4nID0+ICcyMDExLTA3LTA1IDA4OjAwOjAwJywgJ0RhdGVDcmVhdGVkPCcgPT4gJzIwMTEtMDgtMDEnKQogICAgICoKICAgICAqICAgICAgLi4gY29kZS1ibG9jazo6IHBocAogICAgICoKICAgICAqICAgICAgICAgIGFycmF5KCdTdGFydFRpbWU8JyA9PiAnMjAxMS0wNy0wNSAwODowMDowMCcpCiAgICAgKgogICAgICogOnJldHVybjogQW4gaXRlcmF0b3IKICAgICAqIDpydHlwZTogOnBocDpjbGFzczpgU2VydmljZXNfVHdpbGlvX0F1dG9QYWdpbmdJdGVyYXRvcmAKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldEl0ZXJhdG9yKAogICAgICAgICRwYWdlID0gMCwgJHNpemUgPSA1MCwgJGZpbHRlcnMgPSBhcnJheSgpCiAgICApIHsKICAgICAgICByZXR1cm4gbmV3IFNlcnZpY2VzX1R3aWxpb19BdXRvUGFnaW5nSXRlcmF0b3IoCiAgICAgICAgICAgIGFycmF5KCR0aGlzLCAnZ2V0UGFnZUdlbmVyYXRvcicpLCAkcGFnZSwgJHNpemUsICRmaWx0ZXJzCiAgICAgICAgKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHJpZXZlIGEgbmV3IHBhZ2Ugb2YgQVBJIHJlc3VsdHMsIGFuZCB1cGRhdGUgaXRlcmF0b3IgcGFyYW1ldGVycy4gVGhpcwogICAgICogZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSBwYWdpbmcgaXRlcmF0b3IgdG8gcmV0cmlldmUgYSBuZXcgcGFnZSBhbmQKICAgICAqIHNob3VsZG4ndCBiZSBjYWxsZWQgZGlyZWN0bHkuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRQYWdlR2VuZXJhdG9yKAogICAgICAgICRwYWdlLCAkc2l6ZSwgJGZpbHRlcnMgPSBhcnJheSgpLCAkZGVlcF9wYWdpbmdfdXJpID0gbnVsbAogICAgKSB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5nZXRQYWdlKCRwYWdlLCAkc2l6ZSwgJGZpbHRlcnMsICRkZWVwX3BhZ2luZ191cmkpOwogICAgfQp9Cgo=]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/NumberType.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19OdW1iZXJUeXBlIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX0xpc3RSZXNvdXJjZQp7CiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UmVzb3VyY2VOYW1lKCRjYW1lbGl6ZWQgPSBmYWxzZSkgewogICAgICAgICR0aGlzLT5pbnN0YW5jZV9uYW1lID0gJ1NlcnZpY2VzX1R3aWxpb19SZXN0X0luY29taW5nUGhvbmVOdW1iZXInOwogICAgICAgIHJldHVybiAkY2FtZWxpemVkID8gJ0luY29taW5nUGhvbmVOdW1iZXJzJyA6ICdpbmNvbWluZ19waG9uZV9udW1iZXJzJzsKICAgIH0KCiAgICAvKioKICAgICAqIFB1cmNoYXNlIGEgbmV3IHBob25lIG51bWJlci4KICAgICAqCiAgICAgKiBFeGFtcGxlIHVzYWdlOgogICAgICoKICAgICAqIC4uIGNvZGUtYmxvY2s6OiBwaHAKICAgICAqCiAgICAgKiAgICAgICRtYXJsb3NCdXJuZXIgPSAnKzE0MTA1NTUxMjM0JzsKICAgICAqICAgICAgJGNsaWVudC0+YWNjb3VudC0+aW5jb21pbmdfcGhvbmVfbnVtYmVycy0+bG9jYWwtPnB1cmNoYXNlKCRtYXJsb3NCdXJuZXIpOwogICAgICoKICAgICAqIDpwYXJhbSBzdHJpbmcgJHBob25lX251bWJlcjogVGhlIHBob25lIG51bWJlciB0byBwdXJjaGFzZQogICAgICogOnBhcmFtIGFycmF5ICRwYXJhbXM6IEFuIG9wdGlvbmFsIGFycmF5IG9mIHBhcmFtZXRlcnMgdG8gcGFzcyBhbG9uZyB3aXRoCiAgICAgKiAgICAgIHRoZSByZXF1ZXN0ICh0byBjb25maWd1cmUgdGhlIHBob25lIG51bWJlcikKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHB1cmNoYXNlKCRwaG9uZV9udW1iZXIsIGFycmF5ICRwYXJhbXMgPSBhcnJheSgpKSB7CiAgICAgICAgJHBvc3RQYXJhbXMgPSBhcnJheSgKICAgICAgICAgICAgJ1Bob25lTnVtYmVyJyA9PiAkcGhvbmVfbnVtYmVyCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gJHRoaXMtPmNyZWF0ZSgkcG9zdFBhcmFtcyArICRwYXJhbXMpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGUoYXJyYXkgJHBhcmFtcyA9IGFycmF5KCkpIHsKICAgICAgICByZXR1cm4gcGFyZW50OjpfY3JlYXRlKCRwYXJhbXMpOwogICAgfQoKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Resource.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBBYnN0cmFjdGlvbiBvZiBhIFR3aWxpbyByZXNvdXJjZS4KICoKICogQGNhdGVnb3J5IFNlcnZpY2VzCiAqIEBwYWNrYWdlICBTZXJ2aWNlc19Ud2lsaW8KICogQGF1dGhvciAgIE5ldW1hbiBWb25nIDxuZXVtYW5AdHdpbGlvLmNvbT4KICogQGxpY2Vuc2UgIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL01JVC8gTUlUCiAqIEBsaW5rICAgICBodHRwOi8vcGVhci5waHAubmV0L3BhY2thZ2UvU2VydmljZXNfVHdpbGlvCiAqLwphYnN0cmFjdCBjbGFzcyBTZXJ2aWNlc19Ud2lsaW9fUmVzb3VyY2UgewogICAgcHJvdGVjdGVkICRzdWJyZXNvdXJjZXM7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRjbGllbnQsICR1cmksICRwYXJhbXMgPSBhcnJheSgpKQogICAgewogICAgICAgICR0aGlzLT5zdWJyZXNvdXJjZXMgPSBhcnJheSgpOwogICAgICAgICR0aGlzLT5jbGllbnQgPSAkY2xpZW50OwoKICAgICAgICBmb3JlYWNoICgkcGFyYW1zIGFzICRuYW1lID0+ICRwYXJhbSkgewogICAgICAgICAgICAkdGhpcy0+JG5hbWUgPSAkcGFyYW07CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+dXJpID0gJHVyaTsKICAgICAgICAkdGhpcy0+aW5pdCgkY2xpZW50LCAkdXJpKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gaW5pdCgkY2xpZW50LCAkdXJpKQogICAgewogICAgICAgIC8vIExlZnQgZW1wdHkgZm9yIGRlcml2ZWQgY2xhc3NlcyB0byBpbXBsZW1lbnQKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0U3VicmVzb3VyY2VzKCRuYW1lID0gbnVsbCkgewogICAgICAgIGlmIChpc3NldCgkbmFtZSkpIHsKICAgICAgICAgICAgcmV0dXJuIGlzc2V0KCR0aGlzLT5zdWJyZXNvdXJjZXNbJG5hbWVdKQogICAgICAgICAgICAgICAgPyAkdGhpcy0+c3VicmVzb3VyY2VzWyRuYW1lXQogICAgICAgICAgICAgICAgOiBudWxsOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHRoaXMtPnN1YnJlc291cmNlczsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0dXBTdWJyZXNvdXJjZXMoKQogICAgewogICAgICAgIGZvcmVhY2ggKGZ1bmNfZ2V0X2FyZ3MoKSBhcyAkbmFtZSkgewogICAgICAgICAgICAkY29uc3RhbnRpemVkID0gdWNmaXJzdChzZWxmOjpjYW1lbGl6ZSgkbmFtZSkpOwogICAgICAgICAgICAkdHlwZSA9ICJTZXJ2aWNlc19Ud2lsaW9fUmVzdF8iIC4gJGNvbnN0YW50aXplZDsKICAgICAgICAgICAgJHRoaXMtPnN1YnJlc291cmNlc1skbmFtZV0gPSBuZXcgJHR5cGUoCiAgICAgICAgICAgICAgICAkdGhpcy0+Y2xpZW50LCAkdGhpcy0+dXJpIC4gIi8kY29uc3RhbnRpemVkIgogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAvKgogICAgICogR2V0IHRoZSByZXNvdXJjZSBuYW1lIGZyb20gdGhlIGNsYXNzbmFtZQogICAgICoKICAgICAqIEV4OiBTZXJ2aWNlc19Ud2lsaW9fUmVzdF9BY2NvdW50cyAtPiBBY2NvdW50cwogICAgICoKICAgICAqIEBwYXJhbSBib29sZWFuICRjYW1lbGl6ZWQgV2hldGhlciB0byByZXR1cm4gY2FtZWwgY2FzZSBvciBub3QKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFJlc291cmNlTmFtZSgkY2FtZWxpemVkID0gZmFsc2UpCiAgICB7CiAgICAgICAgJG5hbWUgPSBnZXRfY2xhc3MoJHRoaXMpOwogICAgICAgICRwYXJ0cyA9IGV4cGxvZGUoJ18nLCAkbmFtZSk7CiAgICAgICAgJGJhc2VuYW1lID0gZW5kKCRwYXJ0cyk7CiAgICAgICAgaWYgKCRjYW1lbGl6ZWQpIHsKICAgICAgICAgICAgcmV0dXJuICRiYXNlbmFtZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gc2VsZjo6ZGVjYW1lbGl6ZSgkYmFzZW5hbWUpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGRlY2FtZWxpemUoJHdvcmQpCiAgICB7CiAgICAgICAgJGNhbGxiYWNrID0gY3JlYXRlX2Z1bmN0aW9uKCckbWF0Y2hlcycsCiAgICAgICAgICAgICdyZXR1cm4gc3RydG9sb3dlcihzdHJsZW4oIiRtYXRjaGVzWzFdIikgPyAiJG1hdGNoZXNbMV1fJG1hdGNoZXNbMl0iIDogIiRtYXRjaGVzWzJdIik7Jyk7CgogICAgICAgIHJldHVybiBwcmVnX3JlcGxhY2VfY2FsbGJhY2soCiAgICAgICAgICAgICcvKF58W2Etel0pKFtBLVpdKS8nLAogICAgICAgICAgICAkY2FsbGJhY2ssCiAgICAgICAgICAgICR3b3JkCiAgICAgICAgKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiBjYW1lbGl6ZWQgdmVyc2lvbiBvZiBhIHdvcmQKICAgICAqIEV4YW1wbGVzOiBzbXNfbWVzc2FnZXMgPT4gU01TTWVzc2FnZXMsIGNhbGxzID0+IENhbGxzLAogICAgICogaW5jb21pbmdfcGhvbmVfbnVtYmVycyA9PiBJbmNvbWluZ1Bob25lTnVtYmVycwogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHdvcmQgVGhlIHdvcmQgdG8gY2FtZWxpemUKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2FtZWxpemUoJHdvcmQpIHsKICAgICAgICAkY2FsbGJhY2sgPSBjcmVhdGVfZnVuY3Rpb24oJyRtYXRjaGVzJywgJ3JldHVybiBzdHJ0b3VwcGVyKCIkbWF0Y2hlc1syXSIpOycpOwoKICAgICAgICByZXR1cm4gcHJlZ19yZXBsYWNlX2NhbGxiYWNrKCcvKF58XykoW2Etel0pLycsCiAgICAgICAgICAgICRjYWxsYmFjaywKICAgICAgICAgICAgJHdvcmQpOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSB2YWx1ZSBvZiBhIHByb3BlcnR5IG9uIHRoaXMgcmVzb3VyY2UuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAka2V5IFRoZSBwcm9wZXJ0eSBuYW1lCiAgICAgKiBAcmV0dXJuIG1peGVkIENvdWxkIGJlIGFueXRoaW5nLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkgewogICAgICAgIGlmICgkc3VicmVzb3VyY2UgPSAkdGhpcy0+Z2V0U3VicmVzb3VyY2VzKCRrZXkpKSB7CiAgICAgICAgICAgIHJldHVybiAkc3VicmVzb3VyY2U7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkdGhpcy0+JGtleTsKICAgIH0KCiAgICAvKioKICAgICAqIFByaW50IGEgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4gU3RyaXBzIHRoZSBIVFRQIGNsaWVudAogICAgICogYmVmb3JlIHJldHVybmluZy4KICAgICAqCiAgICAgKiBOb3RlLCB0aGlzIHNob3VsZCBtYWlubHkgYmUgdXNlZCBmb3IgZGVidWdnaW5nLCBhbmQgaXMgbm90IGd1YXJhbnRlZWQKICAgICAqIHRvIGNvcnJlc3BvbmQgMToxIHdpdGggdGhlIEpTT04gQVBJIG91dHB1dC4KICAgICAqCiAgICAgKiBOb3RlIHRoYXQgZWNob2luZyBhbiBvYmplY3QgYmVmb3JlIGFuIEhUVFAgcmVxdWVzdCBoYXMgYmVlbiBtYWRlIHRvCiAgICAgKiAiZmlsbCBpbiIgaXRzIHByb3BlcnRpZXMgbWF5IHJldHVybiBhbiBlbXB0eSBvYmplY3QKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIF9fdG9TdHJpbmcoKSB7CiAgICAgICAgJG91dCA9IGFycmF5KCk7CiAgICAgICAgZm9yZWFjaCAoJHRoaXMgYXMgJGtleSA9PiAkdmFsdWUpIHsKICAgICAgICAgICAgaWYgKCRrZXkgIT09ICdjbGllbnQnICYmICRrZXkgIT09ICdzdWJyZXNvdXJjZXMnKSB7CiAgICAgICAgICAgICAgICAkb3V0WyRrZXldID0gJHZhbHVlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBqc29uX2VuY29kZSgkb3V0LCB0cnVlKTsKICAgIH0KCn0KCg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Account.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X0FjY291bnQgZXh0ZW5kcyBTZXJ2aWNlc19Ud2lsaW9fSW5zdGFuY2VSZXNvdXJjZSB7CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGluaXQoJGNsaWVudCwgJHVyaSkgewogICAgICAgICR0aGlzLT5zZXR1cFN1YnJlc291cmNlcygKICAgICAgICAgICAgJ2FwcGxpY2F0aW9ucycsCiAgICAgICAgICAgICdhdmFpbGFibGVfcGhvbmVfbnVtYmVycycsCiAgICAgICAgICAgICdvdXRnb2luZ19jYWxsZXJfaWRzJywKICAgICAgICAgICAgJ2NhbGxzJywKICAgICAgICAgICAgJ2NvbmZlcmVuY2VzJywKICAgICAgICAgICAgJ2luY29taW5nX3Bob25lX251bWJlcnMnLAogICAgICAgICAgICAna2V5cycsCiAgICAgICAgICAgICdtZWRpYScsCiAgICAgICAgICAgICdtZXNzYWdlcycsCiAgICAgICAgICAgICdub3RpZmljYXRpb25zJywKICAgICAgICAgICAgJ291dGdvaW5nX2NhbGxlcmlkcycsCiAgICAgICAgICAgICdyZWNvcmRpbmdzJywKICAgICAgICAgICAgJ3Ntc19tZXNzYWdlcycsCiAgICAgICAgICAgICdzaG9ydF9jb2RlcycsCiAgICAgICAgICAgICd0b2tlbnMnLAogICAgICAgICAgICAndHJhbnNjcmlwdGlvbnMnLAogICAgICAgICAgICAnY29ubmVjdF9hcHBzJywKICAgICAgICAgICAgJ2F1dGhvcml6ZWRfY29ubmVjdF9hcHBzJywKICAgICAgICAgICAgJ3VzYWdlX3JlY29yZHMnLAogICAgICAgICAgICAndXNhZ2VfdHJpZ2dlcnMnLAogICAgICAgICAgICAncXVldWVzJywKICAgICAgICAgICAgJ3NpcCcsCiAgICAgICAgICAgICdhZGRyZXNzZXMnCiAgICAgICAgKTsKCiAgICAgICAgJHRoaXMtPnNhbmRib3ggPSBuZXcgU2VydmljZXNfVHdpbGlvX1Jlc3RfU2FuZGJveCgKICAgICAgICAgICAgJGNsaWVudCwgJHVyaSAuICcvU2FuZGJveCcKICAgICAgICApOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Accounts.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBgQWNjb3VudCBMaXN0IFJlc291cmNlCiAqIDxodHRwOi8vd3d3LnR3aWxpby5jb20vZG9jcy9hcGkvcmVzdC9hY2NvdW50I2xpc3Q+YF8gZG9jdW1lbnRhdGlvbi4KICovCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X0FjY291bnRzIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX0xpc3RSZXNvdXJjZSB7CgogICAgLyoqCiAgICAgKiBDcmVhdGUgYSBuZXcgc3ViYWNjb3VudC4KICAgICAqCiAgICAgKiA6cGFyYW0gYXJyYXkgJHBhcmFtczogQW4gYXJyYXkgb2YgcGFyYW1ldGVycyBkZXNjcmliaW5nIHRoZSBuZXcKICAgICAqICAgICAgc3ViYWNjb3VudC4gVGhlIGBgJHBhcmFtc2BgIGFycmF5IGNhbiBjb250YWluIHRoZSBmb2xsb3dpbmcga2V5czoKICAgICAqCiAgICAgKiAgICAgICpGcmllbmRseU5hbWUqCiAgICAgKiAgICAgICAgICBBIGRlc2NyaXB0aW9uIG9mIHRoaXMgYWNjb3VudCwgdXAgdG8gNjQgY2hhcmFjdGVycyBsb25nCiAgICAgKgogICAgICogOnJldHVybnM6IFRoZSBuZXcgc3ViYWNjb3VudAogICAgICogOnJ0eXBlOiA6cGhwOmNsYXNzOmBTZXJ2aWNlc19Ud2lsaW9fUmVzdF9BY2NvdW50YAogICAgICoKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZSgkcGFyYW1zID0gYXJyYXkoKSkgewogICAgICAgIHJldHVybiBwYXJlbnQ6Ol9jcmVhdGUoJHBhcmFtcyk7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Address.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X0FkZHJlc3MKICAgIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX0luc3RhbmNlUmVzb3VyY2UKewogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGluaXQoJGNsaWVudCwgJHVyaSkKICAgIHsKICAgICAgICAkdGhpcy0+c2V0dXBTdWJyZXNvdXJjZXMoCiAgICAgICAgICAgICdkZXBlbmRlbnRfcGhvbmVfbnVtYmVycycKICAgICAgICApOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Addresses.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Application.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X0FwcGxpY2F0aW9uCiAgICBleHRlbmRzIFNlcnZpY2VzX1R3aWxpb19JbnN0YW5jZVJlc291cmNlCnsKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Applications.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X0FwcGxpY2F0aW9ucwogICAgZXh0ZW5kcyBTZXJ2aWNlc19Ud2lsaW9fTGlzdFJlc291cmNlCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGUoJG5hbWUsIGFycmF5ICRwYXJhbXMgPSBhcnJheSgpKQogICAgewogICAgICAgIHJldHVybiBwYXJlbnQ6Ol9jcmVhdGUoYXJyYXkoCiAgICAgICAgICAgICdGcmllbmRseU5hbWUnID0+ICRuYW1lCiAgICAgICAgKSArICRwYXJhbXMpOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/AuthorizedConnectApp.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X0F1dGhvcml6ZWRDb25uZWN0QXBwCiAgICBleHRlbmRzIFNlcnZpY2VzX1R3aWxpb19JbnN0YW5jZVJlc291cmNlCnsKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/AuthorizedConnectApps.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X0F1dGhvcml6ZWRDb25uZWN0QXBwcwogICAgZXh0ZW5kcyBTZXJ2aWNlc19Ud2lsaW9fTGlzdFJlc291cmNlCnsKICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZSgkbmFtZSwgYXJyYXkgJHBhcmFtcyA9IGFycmF5KCkpCiAgICB7CiAgICAgICAgdGhyb3cgbmV3IEJhZE1ldGhvZENhbGxFeGNlcHRpb24oJ05vdCBhbGxvd2VkJyk7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/AvailablePhoneNumber.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X0F2YWlsYWJsZVBob25lTnVtYmVyCiAgICBleHRlbmRzIFNlcnZpY2VzX1R3aWxpb19JbnN0YW5jZVJlc291cmNlCnsKfQoK]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/AvailablePhoneNumbers.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X0F2YWlsYWJsZVBob25lTnVtYmVycwogICAgZXh0ZW5kcyBTZXJ2aWNlc19Ud2lsaW9fTGlzdFJlc291cmNlCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRMb2NhbCgkY291bnRyeSkgewogICAgICAgICRjdXJyaWVkID0gbmV3IFNlcnZpY2VzX1R3aWxpb19QYXJ0aWFsQXBwbGljYXRpb25IZWxwZXIoKTsKICAgICAgICAkY3VycmllZC0+c2V0KAogICAgICAgICAgICAnZ2V0TGlzdCcsCiAgICAgICAgICAgIGFycmF5KCR0aGlzLCAnZ2V0TGlzdCcpLAogICAgICAgICAgICBhcnJheSgkY291bnRyeSwgJ0xvY2FsJykKICAgICAgICApOwogICAgICAgIHJldHVybiAkY3VycmllZDsKICAgIH0KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRUb2xsRnJlZSgkY291bnRyeSkgewogICAgICAgICRjdXJyaWVkID0gbmV3IFNlcnZpY2VzX1R3aWxpb19QYXJ0aWFsQXBwbGljYXRpb25IZWxwZXIoKTsKICAgICAgICAkY3VycmllZC0+c2V0KAogICAgICAgICAgICAnZ2V0TGlzdCcsCiAgICAgICAgICAgIGFycmF5KCR0aGlzLCAnZ2V0TGlzdCcpLAogICAgICAgICAgICBhcnJheSgkY291bnRyeSwgJ1RvbGxGcmVlJykKICAgICAgICApOwogICAgICAgIHJldHVybiAkY3VycmllZDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TW9iaWxlKCRjb3VudHJ5KQogICAgewogICAgICAgICRjdXJyaWVkID0gbmV3IFNlcnZpY2VzX1R3aWxpb19QYXJ0aWFsQXBwbGljYXRpb25IZWxwZXIoKTsKICAgICAgICAkY3VycmllZC0+c2V0KAogICAgICAgICAgICAnZ2V0TGlzdCcsCiAgICAgICAgICAgIGFycmF5KCR0aGlzLCAnZ2V0TGlzdCcpLAogICAgICAgICAgICBhcnJheSgkY291bnRyeSwgJ01vYmlsZScpCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gJGN1cnJpZWQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgYSBsaXN0IG9mIGF2YWlsYWJsZSBwaG9uZSBudW1iZXJzLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJGNvdW50cnkgVGhlIDItZGlnaXQgY291bnRyeSBjb2RlIHlvdSdkIGxpa2UgdG8gc2VhcmNoIGZvcgogICAgICogICAgbnVtYmVycyBlLmcuICgnVVMnLCAnQ0EnLCAnR0InKQogICAgICogQHBhcmFtIHN0cmluZyAkdHlwZSBUaGUgdHlwZSBvZiBudW1iZXIgKCdMb2NhbCcsICdUb2xsRnJlZScsIG9yICdNb2JpbGUnKQogICAgICogQHJldHVybiBvYmplY3QgVGhlIG9iamVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGUgcmVzb3VyY2UKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldExpc3QoJGNvdW50cnksICR0eXBlLCBhcnJheSAkcGFyYW1zID0gYXJyYXkoKSkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmNsaWVudC0+cmV0cmlldmVEYXRhKCR0aGlzLT51cmkgLiAiLyRjb3VudHJ5LyR0eXBlIiwgJHBhcmFtcyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldFJlc291cmNlTmFtZSgkY2FtZWxpemVkID0gZmFsc2UpIHsKICAgICAgICAvLyBZb3UgY2FuJ3QgcGFnZSB0aHJvdWdoIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBwaG9uZSBudW1iZXJzLgogICAgICAgICR0aGlzLT5pbnN0YW5jZV9uYW1lID0gJ1NlcnZpY2VzX1R3aWxpb19SZXN0X0F2YWlsYWJsZVBob25lTnVtYmVyJzsKICAgICAgICByZXR1cm4gJGNhbWVsaXplZCA/ICdDb3VudHJpZXMnIDogJ2NvdW50cmllcyc7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Call.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiAgIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIGBDYWxsIEluc3RhbmNlIFJlc291cmNlIDxodHRwOi8vd3d3LnR3aWxpby5jb20vZG9jcy9hcGkvcmVzdC9jYWxsI2luc3RhbmNlPmBfIGRvY3VtZW50YXRpb24uCiAqCiAqICAgLi4gcGhwOmF0dHI6OiBzaWQKICoKICogICAgICBBIDM0IGNoYXJhY3RlciBzdHJpbmcgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoaXMgcmVzb3VyY2UuCiAqCiAqICAgLi4gcGhwOmF0dHI6OiBwYXJlbnRfY2FsbF9zaWQKICoKICogICAgICBBIDM0IGNoYXJhY3RlciBzdHJpbmcgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBjYWxsIHRoYXQgY3JlYXRlZCB0aGlzIGxlZy4KICoKICogICAuLiBwaHA6YXR0cjo6IGRhdGVfY3JlYXRlZAogKgogKiAgICAgIFRoZSBkYXRlIHRoYXQgdGhpcyByZXNvdXJjZSB3YXMgY3JlYXRlZCwgZ2l2ZW4gYXMgR01UIGluIFJGQyAyODIyIGZvcm1hdC4KICoKICogICAuLiBwaHA6YXR0cjo6IGRhdGVfdXBkYXRlZAogKgogKiAgICAgIFRoZSBkYXRlIHRoYXQgdGhpcyByZXNvdXJjZSB3YXMgbGFzdCB1cGRhdGVkLCBnaXZlbiBhcyBHTVQgaW4gUkZDIDI4MjIgZm9ybWF0LgogKgogKiAgIC4uIHBocDphdHRyOjogYWNjb3VudF9zaWQKICoKICogICAgICBUaGUgdW5pcXVlIGlkIG9mIHRoZSBBY2NvdW50IHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyB0aGlzIGNhbGwuCiAqCiAqICAgLi4gcGhwOmF0dHI6OiB0bwogKgogKiAgICAgIFRoZSBwaG9uZSBudW1iZXIgdGhhdCByZWNlaXZlZCB0aGlzIGNhbGwuIGUuZy4sICsxNjE3NTU1MTIxMiAoRS4xNjQgZm9ybWF0KQogKgogKiAgIC4uIHBocDphdHRyOjogZnJvbQogKgogKiAgICAgIFRoZSBwaG9uZSBudW1iZXIgdGhhdCBtYWRlIHRoaXMgY2FsbC4gZS5nLiwgKzE2MTc1NTUxMjEyIChFLjE2NCBmb3JtYXQpCiAqCiAqICAgLi4gcGhwOmF0dHI6OiBwaG9uZV9udW1iZXJfc2lkCiAqCiAqICAgICAgSWYgdGhlIGNhbGwgd2FzIGluYm91bmQsIHRoaXMgaXMgdGhlIFNpZCBvZiB0aGUgSW5jb21pbmdQaG9uZU51bWJlciB0aGF0CiAqICAgICAgcmVjZWl2ZWQgdGhlIGNhbGwuIElmIHRoZSBjYWxsIHdhcyBvdXRib3VuZCwgaXQgaXMgdGhlIFNpZCBvZiB0aGUKICogICAgICBPdXRnb2luZ0NhbGxlcklkIGZyb20gd2hpY2ggdGhlIGNhbGwgd2FzIHBsYWNlZC4KICoKICogICAuLiBwaHA6YXR0cjo6IHN0YXR1cwogKgogKiAgICAgIEEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBNYXkgYmUgYFFVRVVFRGAsIGBSSU5HSU5HYCwKICogICAgICBgSU4tUFJPR1JFU1NgLCBgQ09NUExFVEVEYCwgYEZBSUxFRGAsIGBCVVNZYCBvciBgTk9fQU5TV0VSYC4KICoKICogICAuLiBwaHA6YXR0cjo6IHN0YXJ0X3RpbWUKICoKICogICAgICBUaGUgc3RhcnQgdGltZSBvZiB0aGUgY2FsbCwgZ2l2ZW4gYXMgR01UIGluIFJGQyAyODIyIGZvcm1hdC4gRW1wdHkgaWYgdGhlIGNhbGwgaGFzIG5vdCB5ZXQgYmVlbiBkaWFsZWQuCiAqCiAqICAgLi4gcGhwOmF0dHI6OiBlbmRfdGltZQogKgogKiAgICAgIFRoZSBlbmQgdGltZSBvZiB0aGUgY2FsbCwgZ2l2ZW4gYXMgR01UIGluIFJGQyAyODIyIGZvcm1hdC4gRW1wdHkgaWYgdGhlIGNhbGwgZGlkIG5vdCBjb21wbGV0ZSBzdWNjZXNzZnVsbHkuCiAqCiAqICAgLi4gcGhwOmF0dHI6OiBkdXJhdGlvbgogKgogKiAgICAgIFRoZSBsZW5ndGggb2YgdGhlIGNhbGwgaW4gc2Vjb25kcy4gVGhpcyB2YWx1ZSBpcyBlbXB0eSBmb3IgYnVzeSwgZmFpbGVkLCB1bmFuc3dlcmVkIG9yIG9uZ29pbmcgY2FsbHMuCiAqCiAqICAgLi4gcGhwOmF0dHI6OiBwcmljZQogKgogKiAgICAgIFRoZSBjaGFyZ2UgZm9yIHRoaXMgY2FsbCBpbiBVU0QuIFBvcHVsYXRlZCBhZnRlciB0aGUgY2FsbCBpcyBjb21wbGV0ZWQuIE1heSBub3QgYmUgaW1tZWRpYXRlbHkgYXZhaWxhYmxlLgogKgogKiAgIC4uIHBocDphdHRyOjogZGlyZWN0aW9uCiAqCiAqICAgICAgICAgQSBzdHJpbmcgZGVzY3JpYmluZyB0aGUgZGlyZWN0aW9uIG9mIHRoZSBjYWxsLiBpbmJvdW5kIGZvciBpbmJvdW5kCiAqICAgICAgICAgY2FsbHMsIG91dGJvdW5kLWFwaSBmb3IgY2FsbHMgaW5pdGlhdGVkIHZpYSB0aGUgUkVTVCBBUEkgb3IKICogICAgICAgICBvdXRib3VuZC1kaWFsIGZvciBjYWxscyBpbml0aWF0ZWQgYnkgYSA8RGlhbD4gdmVyYi4KICoKICogICAuLiBwaHA6YXR0cjo6IGFuc3dlcmVkX2J5CiAqCiAqICAgICAgSWYgdGhpcyBjYWxsIHdhcyBpbml0aWF0ZWQgd2l0aCBhbnN3ZXJpbmcgbWFjaGluZSBkZXRlY3Rpb24sIGVpdGhlciBodW1hbiBvciBtYWNoaW5lLiBFbXB0eSBvdGhlcndpc2UuCiAqCiAqICAgLi4gcGhwOmF0dHI6OiBmb3J3YXJkZWRfZnJvbQogKgogKiAgICAgICAgSWYgdGhpcyBjYWxsIHdhcyBhbiBpbmNvbWluZyBjYWxsIGZvcndhcmRlZCBmcm9tIGFub3RoZXIgbnVtYmVyLCB0aGUKICogICAgICAgIGZvcndhcmRpbmcgcGhvbmUgbnVtYmVyIChkZXBlbmRzIG9uIGNhcnJpZXIgc3VwcG9ydGluZyBmb3J3YXJkaW5nKS4KICogICAgICAgIEVtcHR5IG90aGVyd2lzZS4KICoKICogICAuLiBwaHA6YXR0cjo6IGNhbGxlcl9uYW1lCiAqCiAqICAgICAgSWYgdGhpcyBjYWxsIHdhcyBhbiBpbmNvbWluZyBjYWxsIGZyb20gYSBwaG9uZSBudW1iZXIgd2l0aCBDYWxsZXIgSUQgTG9va3VwIGVuYWJsZWQsIHRoZSBjYWxsZXIncyBuYW1lLiBFbXB0eSBvdGhlcndpc2UuCiAqLwpjbGFzcyBTZXJ2aWNlc19Ud2lsaW9fUmVzdF9DYWxsIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX0luc3RhbmNlUmVzb3VyY2UgewoKICAgIC8qKgogICAgICogSGFuZyB1cCB0aGUgY2FsbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFuZ3VwKCkgewogICAgICAgICR0aGlzLT51cGRhdGUoJ1N0YXR1cycsICdjb21wbGV0ZWQnKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJlZGlyZWN0IHRoZSBjYWxsIHRvIGEgbmV3IFVSTAogICAgICoKICAgICAqIDpwYXJhbSBzdHJpbmcgJHVybDogdGhlIG5ldyBVUkwgdG8gcmV0cmlldmUgY2FsbCBmbG93IGZyb20uCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiByb3V0ZSgkdXJsKSB7CiAgICAgICAgJHRoaXMtPnVwZGF0ZSgnVXJsJywgJHVybCk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGluaXQoJGNsaWVudCwgJHVyaSkgewogICAgICAgICR0aGlzLT5zZXR1cFN1YnJlc291cmNlcygKICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMnLAogICAgICAgICAgICAncmVjb3JkaW5ncycsCiAgICAgICAgICAgICdmZWVkYmFjaycKICAgICAgICApOwogICAgfQoKICAgIC8qKgogICAgICogTWFrZSBhIHJlcXVlc3QgdG8gZGVsZXRlIHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UuCiAgICAgKgogICAgICogOnJ0eXBlOiBib29sZWFuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+Y2xpZW50LT5kZWxldGVEYXRhKCR0aGlzLT51cmkpOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Calls.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X0NhbGxzCiAgICBleHRlbmRzIFNlcnZpY2VzX1R3aWxpb19MaXN0UmVzb3VyY2UKewoKICAgIGZ1bmN0aW9uIGluaXQoJGNsaWVudCwgJHVyaSkKICAgIHsKICAgICAgICAkdGhpcy0+c2V0dXBTdWJyZXNvdXJjZXMoCiAgICAgICAgICAgICdmZWVkYmFja19zdW1tYXJ5JwogICAgICAgICk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpc0FwcGxpY2F0aW9uU2lkKCR2YWx1ZSkKICAgIHsKICAgICAgICByZXR1cm4gc3RybGVuKCR2YWx1ZSkgPT0gMzQKICAgICAgICAgICAgJiYgIShzdHJwb3MoJHZhbHVlLCAiQVAiKSA9PT0gZmFsc2UpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGUoJGZyb20sICR0bywgJHVybCwgYXJyYXkgJHBhcmFtcyA9IGFycmF5KCkpCiAgICB7CgogICAgICAgICRwYXJhbXNbIlRvIl0gPSAkdG87CiAgICAgICAgJHBhcmFtc1siRnJvbSJdID0gJGZyb207CgogICAgICAgIGlmIChzZWxmOjppc0FwcGxpY2F0aW9uU2lkKCR1cmwpKSB7CiAgICAgICAgICAgICRwYXJhbXNbIkFwcGxpY2F0aW9uU2lkIl0gPSAkdXJsOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRwYXJhbXNbIlVybCJdID0gJHVybDsKICAgICAgICB9CgogICAgICAgIHJldHVybiBwYXJlbnQ6Ol9jcmVhdGUoJHBhcmFtcyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGUgYSBmZWVkYmFjayBmb3IgYSBjYWxsLgogICAgICoKICAgICAqIEBwYXJhbSAkY2FsbFNpZAogICAgICogQHBhcmFtICRxdWFsaXR5U2NvcmUKICAgICAqIEBwYXJhbSBhcnJheSAkaXNzdWUKICAgICAqIEByZXR1cm4gU2VydmljZXNfVHdpbGlvX1Jlc3RfRmVlZGJhY2sKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZUZlZWRiYWNrKCRjYWxsU2lkLCAkcXVhbGl0eVNjb3JlLCBhcnJheSAkaXNzdWUgPSBhcnJheSgpKQogICAgewogICAgICAgICRwYXJhbXNbIlF1YWxpdHlTY29yZSJdID0gJHF1YWxpdHlTY29yZTsKICAgICAgICAkcGFyYW1zWyJJc3N1ZSJdID0gJGlzc3VlOwoKICAgICAgICAkZmVlZGJhY2tVcmkgPSAkdGhpcy0+dXJpIC4gJy8nIC4gJGNhbGxTaWQgLiAnL0ZlZWRiYWNrJzsKCiAgICAgICAgJHJlc3BvbnNlID0gJHRoaXMtPmNsaWVudC0+Y3JlYXRlRGF0YSgkZmVlZGJhY2tVcmksICRwYXJhbXMpOwogICAgICAgIHJldHVybiBuZXcgU2VydmljZXNfVHdpbGlvX1Jlc3RfRmVlZGJhY2soJHRoaXMtPmNsaWVudCwgJGZlZWRiYWNrVXJpLCAkcmVzcG9uc2UpOwogICAgfQoKICAgIC8qKgogICAgICogRGVsZXRlIGEgZmVlZGJhY2sgZm9yIGEgY2FsbC4KICAgICAqCiAgICAgKiBAcGFyYW0gJGNhbGxTaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZUZlZWRiYWNrKCRjYWxsU2lkKQogICAgewogICAgICAgICRmZWVkYmFja1VyaSA9ICR0aGlzLT51cmkgLiAnLycgLiAkY2FsbFNpZCAuICcvRmVlZGJhY2snOwogICAgICAgICR0aGlzLT5jbGllbnQtPmRlbGV0ZURhdGEoJGZlZWRiYWNrVXJpKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBhIGZlZWRiYWNrIGZvciBhIGNhbGwuCiAgICAgKgogICAgICogQHBhcmFtICRjYWxsU2lkCiAgICAgKiBAcmV0dXJuIFNlcnZpY2VzX1R3aWxpb19SZXN0X0ZlZWRiYWNrCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRGZWVkYmFjaygkY2FsbFNpZCkKICAgIHsKICAgICAgICAkZmVlZGJhY2tVcmkgPSAkdGhpcy0+dXJpIC4gJy8nIC4gJGNhbGxTaWQgLiAnL0ZlZWRiYWNrJzsKICAgICAgICAkcmVzcG9uc2UgPSAkdGhpcy0+Y2xpZW50LT5yZXRyaWV2ZURhdGEoJGZlZWRiYWNrVXJpKTsKICAgICAgICByZXR1cm4gbmV3IFNlcnZpY2VzX1R3aWxpb19SZXN0X0ZlZWRiYWNrKCR0aGlzLT5jbGllbnQsICRmZWVkYmFja1VyaSwgJHJlc3BvbnNlKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Conference.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X0NvbmZlcmVuY2UKICAgIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX0luc3RhbmNlUmVzb3VyY2UKewogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGluaXQoJGNsaWVudCwgJHVyaSkKICAgIHsKICAgICAgICAkdGhpcy0+c2V0dXBTdWJyZXNvdXJjZXMoCiAgICAgICAgICAgICdwYXJ0aWNpcGFudHMnCiAgICAgICAgKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Conferences.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X0NvbmZlcmVuY2VzCiAgICBleHRlbmRzIFNlcnZpY2VzX1R3aWxpb19MaXN0UmVzb3VyY2UKewp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/ConnectApp.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X0Nvbm5lY3RBcHAKICAgIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX0luc3RhbmNlUmVzb3VyY2UKewp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/ConnectApps.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X0Nvbm5lY3RBcHBzCiAgICBleHRlbmRzIFNlcnZpY2VzX1R3aWxpb19MaXN0UmVzb3VyY2UKewogICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZSgkbmFtZSwgYXJyYXkgJHBhcmFtcyA9IGFycmF5KCkpCiAgICB7CiAgICAgICAgdGhyb3cgbmV3IEJhZE1ldGhvZENhbGxFeGNlcHRpb24oJ05vdCBhbGxvd2VkJyk7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/CredentialList.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBBIHNpbmdsZSBDcmVkZW50aWFsTGlzdAogKgogKiAuLiBwaHA6YXR0cjo6IGRhdGVfY3JlYXRlZAogKgogKiAgICBUaGUgZGF0ZSB0aGUgY3JlZGVudGlhbCBsaXN0IHdhcyBjcmVhdGVkCiAqCiAqIC4uIHBocDphdHRyOjogZGF0ZV91cGRhdGVkCiAqCiAqICAgIFRoZSBkYXRlIHRoZSBjcmVkZW50aWFsIGxpc3Qgd2FzIHVwZGF0ZWQKICoKICogLi4gcGhwOmF0dHI6OiBzaWQKICoKICogICAgQSAzNCBjaGFyYWN0ZXIgc3RyaW5nIHRoYXQgaWRlbnRpZmllcyB0aGlzIG9iamVjdAogKgogKiAuLiBwaHA6YXR0cjo6IGFjY291bnRfc2lkCiAqCiAqICAgIFRoZSBhY2NvdW50IHRoYXQgY3JlYXRlZCB0aGUgY3JlZGVudGlhbCBsaXN0CiAqCiAqIC4uIHBocDphdHRyOjogZnJpZW5kbHlfbmFtZQogKgogKiAgICBUaGUgZnJpZW5kbHkgbmFtZSBvZiB0aGUgY3JlZGVudGlhbCBsaXN0CiAqCiAqIC4uIHBocDphdHRyOjogdXJpCiAqCiAqICAgIFRoZSB1cmkgb2YgdGhlIGNyZWRlbnRpYWwgbGlzdAogKgogKiAuLiBwaHA6YXR0cjo6IHN1YnJlc291cmNlX3VyaXMKICoKICogICAgVGhlIHN1YnJlc291cmNlcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBjcmVkZW50aWFsIGxpc3QgKENyZWRlbnRpYWxzKQogKi8KCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X0NyZWRlbnRpYWxMaXN0IGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX0luc3RhbmNlUmVzb3VyY2UgewogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGluaXQoJGNsaWVudCwgJHVyaSkgewogICAgICAgICR0aGlzLT5zZXR1cFN1YnJlc291cmNlcygKICAgICAgICAgICAgJ2NyZWRlbnRpYWxzJwogICAgICAgICk7CiAgICB9Cn0KCg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/CredentialLists.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X0NyZWRlbnRpYWxMaXN0cyBleHRlbmRzIFNlcnZpY2VzX1R3aWxpb19TSVBMaXN0UmVzb3VyY2UgewoKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBDcmVkZW50aWFsTGlzdCBpbnN0YW5jZQogICAgICoKICAgICAqIEV4YW1wbGUgdXNhZ2U6CiAgICAgKgogICAgICogLi4gY29kZS1ibG9jazo6IHBocAogICAgICoKICAgICAqICAgICAgJGNsaWVudC0+YWNjb3VudC0+c2lwLT5jcmVkZW50aWFsX2xpc3RzLT5jcmVhdGUoIk15RnJpZW5kbHlOYW1lIik7CiAgICAgKgogICAgICogOnBhcmFtIHN0cmluZyAkZnJpZW5kbHlfbmFtZTogdGhlIGZyaWVuZGx5IG5hbWUgb2YgdGhpcyBjcmVkZW50aWFsIGxpc3QKICAgICAqIDpwYXJhbSBhcnJheSAkcGFyYW1zOiBhIHNpbmdsZSBhcnJheSBvZiBwYXJhbWV0ZXJzIHdoaWNoIGlzIHNlcmlhbGl6ZWQgYW5kCiAgICAgKiAgICAgIHNlbnQgZGlyZWN0bHkgdG8gdGhlIFR3aWxpbyBBUEkuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGUoJGZyaWVuZGx5X25hbWUsICRwYXJhbXMgPSBhcnJheSgpKSB7CiAgICAgICAgcmV0dXJuIHBhcmVudDo6X2NyZWF0ZShhcnJheSgKICAgICAgICAgICAgJ0ZyaWVuZGx5TmFtZScgPT4gJGZyaWVuZGx5X25hbWUsCiAgICAgICAgKSArICRwYXJhbXMpOwogICAgfQoKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Credentials.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X0NyZWRlbnRpYWxzIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX1NJUExpc3RSZXNvdXJjZSB7CgogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IENyZWRlbnRpYWwgaW5zdGFuY2UKICAgICAqCiAgICAgKiBFeGFtcGxlIHVzYWdlOgogICAgICoKICAgICAqICAuLiBjb2RlLWJsb2NrOjogcGhwCiAgICAgKgogICAgICogICAgICAkY2xpZW50LT5hY2NvdW50LT5zaXAtPmNyZWRlbnRpYWxfbGlzdHMtPmdldCgnQ0xYWFgnKS0+Y3JlZGVudGlhbHMtPmNyZWF0ZSgKICAgICAqICAgICAgICAgICJBd2Vzb21lVXNlcm5hbWUiLCAiU3VwZXJTZWNyZXRQYXNzd29yZCIsCiAgICAgKiAgICAgICk7CiAgICAgKgogICAgICogOnBhcmFtIHN0cmluZyAkdXNlcm5hbWU6IHRoZSB1c2VybmFtZSBmb3IgdGhlIG5ldyBDcmVkZW50aWFsIG9iamVjdAogICAgICogOnBhcmFtIHN0cmluZyAkcGFzc3dvcmQ6IHRoZSBwYXNzd29yZCBmb3IgdGhlIG5ldyBDcmVkZW50aWFsIG9iamVjdAogICAgICogOnBhcmFtIGFycmF5ICRwYXJhbXM6IGEgc2luZ2xlIGFycmF5IG9mIHBhcmFtZXRlcnMgd2hpY2ggaXMgc2VyaWFsaXplZCBhbmQKICAgICAqICAgICAgc2VudCBkaXJlY3RseSB0byB0aGUgVHdpbGlvIEFQSS4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZSgkdXNlcm5hbWUsICRwYXNzd29yZCwgJHBhcmFtcyA9IGFycmF5KCkpIHsKICAgICAgICByZXR1cm4gcGFyZW50OjpfY3JlYXRlKGFycmF5KAogICAgICAgICAgICAnVXNlcm5hbWUnID0+ICR1c2VybmFtZSwKICAgICAgICAgICAgJ1Bhc3N3b3JkJyA9PiAkcGFzc3dvcmQsCiAgICAgICAgKSArICRwYXJhbXMpOwogICAgfQoKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Domain.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBBIHNpbmdsZSBEb21haW4KICoKICogLi4gcGhwOmF0dHI6OiBkYXRlX2NyZWF0ZWQKICoKICogICAgVGhlIGRhdGUgdGhlIGRvbWFpbiB3YXMgY3JlYXRlZAogKgogKiAuLiBwaHA6YXR0cjo6IGRhdGVfdXBkYXRlZAogKgogKiAgICBUaGUgZGF0ZSB0aGUgZG9tYWluIHdhcyB1cGRhdGVkCiAqCiAqIC4uIHBocDphdHRyOjogc2lkCiAqCiAqICAgIEEgMzQgY2hhcmFjdGVyIHN0cmluZyB0aGF0IGlkZW50aWZpZXMgdGhpcyBvYmplY3QKICoKICogLi4gcGhwOmF0dHI6OiBhY2NvdW50X3NpZAogKgogKiAgICBUaGUgYWNjb3VudCB0aGF0IGNyZWF0ZWQgdGhlIGRvbWFpbgogKgogKiAuLiBwaHA6YXR0cjo6IGZyaWVuZGx5X25hbWUKICoKICogICAgVGhlIGZyaWVuZGx5IG5hbWUgb2YgdGhlIGRvbWFpbgogKgogKiAuLiBwaHA6YXR0cjo6IGRvbWFpbl9uYW1lCiAqCiAqICAgIFRoZSAqLnNpcC50d2lsaW8gZG9tYWluIGZvciB0aGUgZG9tYWluCiAqCiAqIC4uIHBocDphdHRyOjogYXV0aF90eXBlCiAqCiAqICAgIFRoZSBhdXRoIHR5cGUgdXNlZCBmb3IgdGhlIGRvbWFpbgogKgogKiAuLiBwaHA6YXR0cjo6IHZvaWNlX3VybAogKgogKiAgICBUaGUgdm9pY2UgdXJsIGZvciB0aGUgZG9tYWluCiAqCiAqIC4uIHBocDphdHRyOjogdm9pY2VfZmFsbGJhY2tfdXJsCiAqCiAqICAgIFRoZSB2b2ljZSBmYWxsYmFjayB1cmwgZm9yIHRoZSBkb21haW4KICoKICogLi4gcGhwOmF0dHI6OiB2b2ljZV9mYWxsYmFja19tZXRob2QKICoKICogICAgVGhlIHZvaWNlIGZhbGxiYWNrIG1ldGhvZCBmb3IgdGhlIGRvbWFpbgogKgogKiAuLiBwaHA6YXR0cjo6IHZvaWNlX3N0YXR1c19jYWxsYmFja191cmwKICoKICogICAgVGhlIHZvaWNlIHN0YXR1cyBjYWxsYmFjayB1cmwgZm9yIHRoZSBkb21haW4KICoKICogLi4gcGhwOmF0dHI6OiB2b2ljZV9zdGF0dXNfY2FsbGJhY2tfbWV0aG9kCiAqCiAqICAgIFRoZSB2b2ljZSBzdGF0dXNfY2FsbGJhY2tfbWV0aG9kIGZvciB0aGUgZG9tYWluCiAqCiAqIC4uIHBocDphdHRyOjogdXJpCiAqCiAqICAgIFRoZSB1cmkgb2YgdGhlIGRvbWFpbgogKgogKiAuLiBwaHA6YXR0cjo6IHN1YnJlc291cmNlX3VyaXMKICoKICogICAgVGhlIHN1YnJlc291cmNlcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBkb21haW4gKElwQWNjZXNzQ29udHJvbExpc3RNYXBwaW5ncywgQ3JlZGVudGlhbExpc3RNYXBwaW5ncykKICoKICovCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X0RvbWFpbiBleHRlbmRzIFNlcnZpY2VzX1R3aWxpb19JbnN0YW5jZVJlc291cmNlIHsKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBpbml0KCRjbGllbnQsICR1cmkpIHsKICAgICAgICAkdGhpcy0+c2V0dXBTdWJyZXNvdXJjZXMoCiAgICAgICAgICAgICdpcF9hY2Nlc3NfY29udHJvbF9saXN0X21hcHBpbmdzJywKICAgICAgICAgICAgJ2NyZWRlbnRpYWxfbGlzdF9tYXBwaW5ncycKICAgICAgICApOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Domains.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X0RvbWFpbnMgZXh0ZW5kcyBTZXJ2aWNlc19Ud2lsaW9fU0lQTGlzdFJlc291cmNlIHsKCiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgRG9tYWluIGluc3RhbmNlCiAgICAgKgogICAgICogRXhhbXBsZSB1c2FnZToKICAgICAqCiAgICAgKiAgLi4gY29kZS1ibG9jazo6IHBocAogICAgICoKICAgICAqICAgICAgJGNsaWVudC0+YWNjb3VudC0+c2lwLT5kb21haW5zLT5jcmVhdGUoCiAgICAgKiAgICAgICAgICAiTXlGcmllbmRseU5hbWUiLCAiTXlEb21haW5OYW1lIgogICAgICogICAgICApOwogICAgICoKICAgICAqIDpwYXJhbSBzdHJpbmcgJGZyaWVuZGx5X25hbWU6IHRoZSBmcmllbmRseSBuYW1lIG9mIHRoaXMgZG9tYWluCiAgICAgKiA6cGFyYW0gc3RyaW5nICRkb21haW5fbmFtZTogdGhlIGRvbWFpbiBuYW1lIGZvciB0aGlzIGRvbWFpbgogICAgICogOnBhcmFtIGFycmF5ICRwYXJhbXM6IGEgc2luZ2xlIGFycmF5IG9mIHBhcmFtZXRlcnMgd2hpY2ggaXMgc2VyaWFsaXplZCBhbmQKICAgICAqICAgICAgc2VudCBkaXJlY3RseSB0byB0aGUgVHdpbGlvIEFQSS4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZSgkZnJpZW5kbHlfbmFtZSwgJGRvbWFpbl9uYW1lLCAkcGFyYW1zID0gYXJyYXkoKSkgewogICAgICAgIHJldHVybiBwYXJlbnQ6Ol9jcmVhdGUoYXJyYXkoCiAgICAgICAgICAgICdGcmllbmRseU5hbWUnID0+ICRmcmllbmRseV9uYW1lLAogICAgICAgICAgICAnRG9tYWluTmFtZScgPT4gJGRvbWFpbl9uYW1lLAogICAgICAgICkgKyAkcGFyYW1zKTsKICAgIH0KfQoK]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/FeedbackSummary.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X0ZlZWRiYWNrU3VtbWFyeSBleHRlbmRzIFNlcnZpY2VzX1R3aWxpb19JbnN0YW5jZVJlc291cmNlIHsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGNsaWVudCwgJHVyaSwgJHBhcmFtcyA9IGFycmF5KCkpIHsKICAgICAgICAkdGhpcy0+aW5zdGFuY2VfbmFtZSA9ICJTZXJ2aWNlc19Ud2lsaW9fUmVzdF9GZWVkYmFja1N1bW1hcnkiOwogICAgICAgIHJldHVybiBwYXJlbnQ6Ol9fY29uc3RydWN0KCRjbGllbnQsICR1cmksICRwYXJhbXMpOwogICAgfQoKICAgIC8qKgogICAgICogQ3JlYXRlIGZlZWRiYWNrIHN1bW1hcnkgZm9yIGNhbGxzCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGUoYXJyYXkgJHBhcmFtcyA9IGFycmF5KCkpIHsKICAgICAgICAkcGFyYW1zID0gJHRoaXMtPmNsaWVudC0+Y3JlYXRlRGF0YSgkdGhpcy0+dXJpLCAkcGFyYW1zKTsKICAgICAgICByZXR1cm4gbmV3ICR0aGlzLT5pbnN0YW5jZV9uYW1lKCR0aGlzLT5jbGllbnQsICR0aGlzLT51cmksICRwYXJhbXMpOwogICAgfQoKICAgIC8qKgogICAgICogRGVsZXRlIGEgZmVlZGJhY2sgc3VtbWFyeQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlKCRzaWQpIHsKICAgICAgICAkdGhpcy0+Y2xpZW50LT5kZWxldGVEYXRhKCR0aGlzLT51cmkgLiAnLycgLiAkc2lkKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBhIGZlZWRiYWNrIHN1bW1hcnkKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldCgkc2lkKSB7CiAgICAgICAgcmV0dXJuIG5ldyAkdGhpcy0+aW5zdGFuY2VfbmFtZSgKICAgICAgICAgICAgJHRoaXMtPmNsaWVudCwgJHRoaXMtPnVyaSAuICcvJyAuICRzaWQKICAgICAgICApOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/IncomingPhoneNumber.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiAgIEFuIG9iamVjdCByZXByZXNlbnRpbmcgYSBzaW5nbGUgcGhvbmUgbnVtYmVyLiBGb3IgbW9yZQogKiAgIGluZm9ybWF0aW9uLCBzZWUgdGhlIGBJbmNvbWluZ1Bob25lTnVtYmVyIEluc3RhbmNlIFJlc291cmNlCiAqICAgPGh0dHA6Ly93d3cudHdpbGlvLmNvbS9kb2NzL2FwaS9yZXN0L2luY29taW5nLXBob25lLW51bWJlcnMjaW5zdGFuY2U+YF8KICogICBkb2N1bWVudGF0aW9uLgogKgogKiAgIC4uIHBocDphdHRyOjogc2lkCiAqCiAqICAgICAgQSAzNCBjaGFyYWN0ZXIgc3RyaW5nIHRoYXQgdW5pcXVlbHkgaWRldGlmaWVzIHRoaXMgcmVzb3VyY2UuCiAqCiAqICAgLi4gcGhwOmF0dHI6OiBkYXRlX2NyZWF0ZWQKICoKICogICAgICBUaGUgZGF0ZSB0aGF0IHRoaXMgcmVzb3VyY2Ugd2FzIGNyZWF0ZWQsIGdpdmVuIGFzIEdNVCBSRkMgMjgyMiBmb3JtYXQuCiAqCiAqICAgLi4gcGhwOmF0dHI6OiBkYXRlX3VwZGF0ZWQKICoKICogICAgICBUaGUgZGF0ZSB0aGF0IHRoaXMgcmVzb3VyY2Ugd2FzIGxhc3QgdXBkYXRlZCwgZ2l2ZW4gYXMgR01UIFJGQyAyODIyIGZvcm1hdC4KICoKICogICAuLiBwaHA6YXR0cjo6IGZyaWVuZGx5X25hbWUKICoKICogICAgICBBIGh1bWFuIHJlYWRhYmxlIGRlc2NyaXB0aXZlIHRleHQgZm9yIHRoaXMgcmVzb3VyY2UsIHVwIHRvIDY0CiAqICAgICAgY2hhcmFjdGVycyBsb25nLiBCeSBkZWZhdWx0LCB0aGUgRnJpZW5kbHlOYW1lIGlzIGEgbmljZWx5IGZvcm1hdHRlZAogKiAgICAgIHZlcnNpb24gb2YgdGhlIHBob25lIG51bWJlci4KICoKICogICAuLiBwaHA6YXR0cjo6IGFjY291bnRfc2lkCiAqCiAqICAgICAgVGhlIHVuaXF1ZSBpZCBvZiB0aGUgQWNjb3VudCByZXNwb25zaWJsZSBmb3IgdGhpcyBwaG9uZSBudW1iZXIuCiAqCiAqICAgLi4gcGhwOmF0dHI6OiBwaG9uZV9udW1iZXIKICoKICogICAgICBUaGUgaW5jb21pbmcgcGhvbmUgbnVtYmVyLiBlLmcuLCArMTYxNzU1NTEyMTIgKEUuMTY0IGZvcm1hdCkKICoKICogICAuLiBwaHA6YXR0cjo6IGFwaV92ZXJzaW9uCiAqCiAqICAgICAgQ2FsbHMgdG8gdGhpcyBwaG9uZSBudW1iZXIgd2lsbCBzdGFydCBhIG5ldyBUd2lNTCBzZXNzaW9uIHdpdGggdGhpcwogKiAgICAgIEFQSSB2ZXJzaW9uLgogKgogKiAgIC4uIHBocDphdHRyOjogdm9pY2VfY2FsbGVyX2lkX2xvb2t1cAogKgogKiAgICAgIExvb2sgdXAgdGhlIGNhbGxlcidzIGNhbGxlci1JRCBuYW1lIGZyb20gdGhlIENOQU0gZGF0YWJhc2UgKGFkZGl0aW9uYWwgY2hhcmdlcyBhcHBseSkuIEVpdGhlciB0cnVlIG9yIGZhbHNlLgogKgogKiAgIC4uIHBocDphdHRyOjogdm9pY2VfdXJsCiAqCiAqICAgICAgVGhlIFVSTCBUd2lsaW8gd2lsbCByZXF1ZXN0IHdoZW4gdGhpcyBwaG9uZSBudW1iZXIgcmVjZWl2ZXMgYSBjYWxsLgogKgogKiAgIC4uIHBocDphdHRyOjogdm9pY2VfbWV0aG9kCiAqCiAqICAgICAgVGhlIEhUVFAgbWV0aG9kIFR3aWxpbyB3aWxsIHVzZSB3aGVuIHJlcXVlc3RpbmcgdGhlIGFib3ZlIFVybC4gRWl0aGVyIEdFVCBvciBQT1NULgogKgogKiAgIC4uIHBocDphdHRyOjogdm9pY2VfZmFsbGJhY2tfdXJsCiAqCiAqICAgICAgVGhlIFVSTCB0aGF0IFR3aWxpbyB3aWxsIHJlcXVlc3QgaWYgYW4gZXJyb3Igb2NjdXJzIHJldHJpZXZpbmcgb3IgZXhlY3V0aW5nIHRoZSBUd2lNTCByZXF1ZXN0ZWQgYnkgVXJsLgogKgogKiAgIC4uIHBocDphdHRyOjogdm9pY2VfZmFsbGJhY2tfbWV0aG9kCiAqCiAqICAgICAgVGhlIEhUVFAgbWV0aG9kIFR3aWxpbyB3aWxsIHVzZSB3aGVuIHJlcXVlc3RpbmcgdGhlIFZvaWNlRmFsbGJhY2tVcmwuIEVpdGhlciBHRVQgb3IgUE9TVC4KICoKICogICAuLiBwaHA6YXR0cjo6IHN0YXR1c19jYWxsYmFjawogKgogKiAgICAgIFRoZSBVUkwgdGhhdCBUd2lsaW8gd2lsbCByZXF1ZXN0IHRvIHBhc3Mgc3RhdHVzIHBhcmFtZXRlcnMgKHN1Y2ggYXMgY2FsbCBlbmRlZCkgdG8geW91ciBhcHBsaWNhdGlvbi4KICoKICogICAuLiBwaHA6YXR0cjo6IHN0YXR1c19jYWxsYmFja19tZXRob2QKICoKICogICAgICBUaGUgSFRUUCBtZXRob2QgVHdpbGlvIHdpbGwgdXNlIHRvIG1ha2UgcmVxdWVzdHMgdG8gdGhlIFN0YXR1c0NhbGxiYWNrIFVSTC4gRWl0aGVyIEdFVCBvciBQT1NULgogKgogKiAgIC4uIHBocDphdHRyOjogc21zX3VybAogKgogKiAgICAgIFRoZSBVUkwgVHdpbGlvIHdpbGwgcmVxdWVzdCB3aGVuIHJlY2VpdmluZyBhbiBpbmNvbWluZyBTTVMgbWVzc2FnZSB0byB0aGlzIG51bWJlci4KICoKICogICAuLiBwaHA6YXR0cjo6IHNtc19tZXRob2QKICoKICogICAgICBUaGUgSFRUUCBtZXRob2QgVHdpbGlvIHdpbGwgdXNlIHdoZW4gbWFraW5nIHJlcXVlc3RzIHRvIHRoZSBTbXNVcmwuIEVpdGhlciBHRVQgb3IgUE9TVC4KICoKICogICAuLiBwaHA6YXR0cjo6IHNtc19mYWxsYmFja191cmwKICoKICogICAgICBUaGUgVVJMIHRoYXQgVHdpbGlvIHdpbGwgcmVxdWVzdCBpZiBhbiBlcnJvciBvY2N1cnMgcmV0cmlldmluZyBvciBleGVjdXRpbmcgdGhlIFR3aU1MIGZyb20gU21zVXJsLgogKgogKiAgIC4uIHBocDphdHRyOjogc21zX2ZhbGxiYWNrX21ldGhvZAogKgogKiAgICAgIFRoZSBIVFRQIG1ldGhvZCBUd2lsaW8gd2lsbCB1c2Ugd2hlbiByZXF1ZXN0aW5nIHRoZSBhYm92ZSBVUkwuIEVpdGhlciBHRVQgb3IgUE9TVC4KICoKICogICAuLiBwaHA6YXR0cjo6IGJldGEKICoKICogICAgICBXaGV0aGVyIHRoaXMgbnVtYmVyIGlzIG5ldyB0byBUd2lsaW8ncyBpbnZlbnRvcnkuCiAqCiAqICAgLi4gcGhwOmF0dHI6OiB1cmkKICoKICogICAgVGhlIFVSSSBmb3IgdGhpcyByZXNvdXJjZSwgcmVsYXRpdmUgdG8gaHR0cHM6Ly9hcGkudHdpbGlvLmNvbS4KICovCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X0luY29taW5nUGhvbmVOdW1iZXIKICAgIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX0luc3RhbmNlUmVzb3VyY2UKewp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/IncomingPhoneNumbers.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZQogKiBgSW5jb21pbmdQaG9uZU51bWJlcnMgQVBJIFJlc291cmNlCiAqIDxodHRwOi8vd3d3LnR3aWxpby5jb20vZG9jcy9hcGkvcmVzdC9pbmNvbWluZy1waG9uZS1udW1iZXJzI2xvY2FsPmBfCiAqIGRvY3VtZW50YXRpb24gYXQgdHdpbGlvLmNvbS4KICovCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X0luY29taW5nUGhvbmVOdW1iZXJzIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX0xpc3RSZXNvdXJjZSB7CiAgICBmdW5jdGlvbiBpbml0KCRjbGllbnQsICR1cmkpIHsKICAgICAgICAkdGhpcy0+c2V0dXBTdWJyZXNvdXJjZXMoCiAgICAgICAgICAgICdsb2NhbCcsCiAgICAgICAgICAgICd0b2xsX2ZyZWUnLAogICAgICAgICAgICAnbW9iaWxlJwogICAgICAgICk7CiAgICB9CgogICAgZnVuY3Rpb24gY3JlYXRlKGFycmF5ICRwYXJhbXMgPSBhcnJheSgpKSB7CiAgICAgICAgcmV0dXJuIHBhcmVudDo6X2NyZWF0ZSgkcGFyYW1zKTsKICAgIH0KCiAgICBmdW5jdGlvbiBnZXRMaXN0KCR0eXBlLCBhcnJheSAkcGFyYW1zID0gYXJyYXkoKSkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmNsaWVudC0+cmV0cmlldmVEYXRhKCR0aGlzLT51cmkgLiAiLyR0eXBlIiwgJHBhcmFtcyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gYSBwaG9uZSBudW1iZXIgaW5zdGFuY2UgZnJvbSBpdHMgRS4xNjQgcmVwcmVzZW50YXRpb24uIElmIG1vcmUKICAgICAqIHRoYW4gb25lIG51bWJlciBtYXRjaGVzIHRoZSBzZWFyY2ggc3RyaW5nLCByZXR1cm5zIHRoZSBmaXJzdCBvbmUuCiAgICAgKgogICAgICogRXhhbXBsZSB1c2FnZToKICAgICAqCiAgICAgKiAuLiBjb2RlLWJsb2NrOjogcGhwCiAgICAgKgogICAgICogICAgICAkbnVtYmVyID0gJGNsaWVudC0+YWNjb3VudC0+aW5jb21pbmdfcGhvbmVfbnVtYmVycy0+Z2V0TnVtYmVyKCcrMTQxMDU1NTEyMzQnKTsKICAgICAqICAgICAgZWNobyAkbnVtYmVyLT5zaWQ7CiAgICAgKgogICAgICogOnBhcmFtIHN0cmluZyAkbnVtYmVyOiBUaGUgbnVtYmVyIGluIEUuMTY0IGZvcm1hdCwgZWcgIis2ODQxMDU1NTEyMzQiCiAgICAgKiA6cmV0dXJuOiAgQSA6cGhwOmNsYXNzOmBTZXJ2aWNlc19Ud2lsaW9fUmVzdF9JbmNvbWluZ1Bob25lTnVtYmVyYCBvYmplY3QsIG9yIG51bGwKICAgICAqIDpyYWlzZXM6IGEgQSA6cGhwOmNsYXNzOmBTZXJ2aWNlc19Ud2lsaW9fUmVzdEV4Y2VwdGlvbmAgaWYgdGhlIG51bWJlciBpcwogICAgICogICAgICBpbnZhbGlkLCBub3QgcHJvdmlkZWQgaW4gRS4xNjQgZm9ybWF0IG9yIGZvciBhbnkgb3RoZXIgQVBJIGV4Y2VwdGlvbi4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldE51bWJlcigkbnVtYmVyKSB7CiAgICAgICAgJHBhZ2UgPSAkdGhpcy0+Z2V0UGFnZSgwLCAxLCBhcnJheSgKICAgICAgICAgICAgJ1Bob25lTnVtYmVyJyA9PiAkbnVtYmVyCiAgICAgICAgKSk7CiAgICAgICAgJGl0ZW1zID0gJHBhZ2UtPmdldEl0ZW1zKCk7CiAgICAgICAgaWYgKGlzX251bGwoJGl0ZW1zKSB8fCBlbXB0eSgkaXRlbXMpKSB7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGl0ZW1zWzBdOwogICAgfQp9CgpjbGFzcyBTZXJ2aWNlc19Ud2lsaW9fUmVzdF9Mb2NhbCBleHRlbmRzIFNlcnZpY2VzX1R3aWxpb19OdW1iZXJUeXBlIHsgfQoKY2xhc3MgU2VydmljZXNfVHdpbGlvX1Jlc3RfTW9iaWxlIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX051bWJlclR5cGUgeyB9CgpjbGFzcyBTZXJ2aWNlc19Ud2lsaW9fUmVzdF9Ub2xsRnJlZSBleHRlbmRzIFNlcnZpY2VzX1R3aWxpb19OdW1iZXJUeXBlIHsgfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/IpAccessControlLists.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X0lwQWNjZXNzQ29udHJvbExpc3RzIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX1NJUExpc3RSZXNvdXJjZSB7CgogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IElwQWNjZXNzQ29udHJvbExpc3RzIGluc3RhbmNlCiAgICAgKgogICAgICogRXhhbXBsZSB1c2FnZToKICAgICAqCiAgICAgKiAuLiBjb2RlLWJsb2NrOjogcGhwCiAgICAgKgogICAgICogICAgICAkY2xpZW50LT5hY2NvdW50LT5zaXAtPmlwX2FjY2Vzc19jb250cm9sX2xpc3RzLT5jcmVhdGUoIk15RnJpZW5kbHlOYW1lIik7CiAgICAgKgogICAgICogOnBhcmFtIHN0cmluZyAkZnJpZW5kbHlfbmFtZTogdGhlIGZyaWVuZGx5IG5hbWUgb2YgdGhpcyBpcCBhY2Nlc3MgY29udHJvbCBsaXN0CiAgICAgKiA6cGFyYW0gYXJyYXkgJHBhcmFtczogYSBzaW5nbGUgYXJyYXkgb2YgcGFyYW1ldGVycyB3aGljaCBpcyBzZXJpYWxpemVkIGFuZAogICAgICogICAgICBzZW50IGRpcmVjdGx5IHRvIHRoZSBUd2lsaW8gQVBJLgogICAgICogOnJldHVybjogdGhlIGNyZWF0ZWQgbGlzdAogICAgICogOnJ0eXBlOiA6Y2xhc3M6YFNlcnZpY2VzX1R3aWxpb19SZXN0X0lwQWNjZXNzQ29udHJvbExpc3RgCiAgICAgKgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gY3JlYXRlKCRmcmllbmRseV9uYW1lLCAkcGFyYW1zID0gYXJyYXkoKSkgewogICAgICAgIHJldHVybiBwYXJlbnQ6Ol9jcmVhdGUoYXJyYXkoCiAgICAgICAgICAgICdGcmllbmRseU5hbWUnID0+ICRmcmllbmRseV9uYW1lLAogICAgICAgICkgKyAkcGFyYW1zKTsKICAgIH0KCn0K]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Media.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBBIGxpc3Qgb2YgOmNsYXNzOmBNZWRpYSA8U2VydmljZXNfVHdpbGlvX1Jlc3RfTWVkaWFJbnN0YW5jZT5gIG9iamVjdHMuCiAqIEZvciB0aGUgZGVmaW5pdGl2ZSByZWZlcmVuY2UsIHNlZSB0aGUgYFR3aWxpbyBNZWRpYSBMaXN0IERvY3VtZW50YXRpb24KICogPGh0dHBzOi8vd3d3LnR3aWxpby5jb20vZG9jcy9hcGkvcmVzdC9tZWRpYT5gXy4KICovCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X01lZGlhIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX0xpc3RSZXNvdXJjZSB7CgoKICAgIC8vIFRoaXMgaXMgb3ZlcnJpZGRlbiBiZWNhdXNlIHRoZSBsaXN0IGtleSBpbiB0aGUgVHdpbGlvIHJlc3BvbnNlCiAgICAvLyBpcyAibWVkaWFfbGlzdCIsIG5vdCAibWVkaWEiLgogICAgcHVibGljIGZ1bmN0aW9uIGdldFJlc291cmNlTmFtZSgkY2FtZWxpemVkID0gZmFsc2UpCiAgICB7CiAgICAgICAgaWYgKCRjYW1lbGl6ZWQpIHsKICAgICAgICAgICAgcmV0dXJuICJNZWRpYUxpc3QiOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAibWVkaWFfbGlzdCI7CiAgICAgICAgfQogICAgfQoKICAgIC8vIFdlIG1hbnVhbGx5IHNldCB0aGUgaW5zdGFuY2UgbmFtZSBoZXJlIHNvIHRoYXQgdGhlIHBhcmVudAogICAgLy8gY29uc3RydWN0b3IgZG9lc24ndCBhdHRlbXB0IHRvIGZpZ3VyZSBvdXQgaXQuIEl0IHdvdWxkIGRvIGl0CiAgICAvLyBpbmNvcnJlY3RseSBiZWNhdXNlIHdlIG92ZXJyaWRlIGdldFJlc291cmNlTmFtZSBhYm92ZS4KICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkY2xpZW50LCAkdXJpKSB7CiAgICAgICAgJHRoaXMtPmluc3RhbmNlX25hbWUgPSAiU2VydmljZXNfVHdpbGlvX1Jlc3RfTWVkaWFJbnN0YW5jZSI7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgkY2xpZW50LCAkdXJpKTsKICAgIH0KCn0KCg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Message.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBBIHNpbmdsZSBNZXNzYWdlCiAqCiAqIC4uIHBocDphdHRyOjogZGF0ZV9jcmVhdGVkCiAqCiAqICAgIFRoZSBkYXRlIHRoZSBtZXNzYWdlIHdhcyBjcmVhdGVkCiAqCiAqIC4uIHBocDphdHRyOjogZGF0ZV91cGRhdGVkCiAqCiAqICAgIFRoZSBkYXRlIHRoZSBtZXNzYWdlIHdhcyB1cGRhdGVkCiAqCiAqIC4uIHBocDphdHRyOjogc2lkCiAqCiAqICAgIEEgMzQgY2hhcmFjdGVyIHN0cmluZyB0aGF0IGlkZW50aWZpZXMgdGhpcyBvYmplY3QKICoKICogLi4gcGhwOmF0dHI6OiBhY2NvdW50X3NpZAogKgogKiAgICBUaGUgYWNjb3VudCB0aGF0IHNlbnQgdGhlIG1lc3NhZ2UKICoKICogLi4gcGhwOmF0dHI6OiBib2R5CiAqCiAqICAgIFRoZSBib2R5IG9mIHRoZSBtZXNzYWdlCiAqCiAqIC4uIHBocDphdHRyOjogbnVtX3NlZ21lbnRzCiAqCiAqICAgIFRoZSBudW1iZXIgb2Ygc21zIG1lc3NhZ2VzIHVzZWQgdG8gZGVsaXZlciB0aGUgYm9keQogKgogKiAuLiBwaHA6YXR0cjo6IG51bV9tZWRpYQogKgogKiAgICBUaGUgbnVtYmVyIG9mIG1lZGlhIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgaW1hZ2UKICoKICogLi4gcGhwOmF0dHI6OiBzdWJyZXNvdXJjZV91cmlzCiAqCiAqICAgIFRoZSBzdWJyZXNvdXJjZXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbWVzc2FnZSAoanVzdCBNZWRpYSBhdCB0aGUgbW9tZW50KQogKgogKiAuLiBwaHA6YXR0cjo6IGZyb20KICoKICogICAgVGhlIG51bWJlciB0aGlzIG1lc3NhZ2Ugd2FzIHNlbnQgZnJvbQogKgogKiAuLiBwaHA6YXR0cjo6IHRvCiAqCiAqICAgIFRoZSBwaG9uZSBudW1iZXIgdGhpcyBtZXNzYWdlIHdhcyBzZW50IHRvCiAqLwpjbGFzcyBTZXJ2aWNlc19Ud2lsaW9fUmVzdF9NZXNzYWdlIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX0luc3RhbmNlUmVzb3VyY2UgewogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGluaXQoJGNsaWVudCwgJHVyaSkgewogICAgICAgICR0aGlzLT5zZXR1cFN1YnJlc291cmNlcygKICAgICAgICAgICAgJ21lZGlhJwogICAgICAgICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHJlZGFjdCgpIHsKICAgICAgICAkcG9zdFBhcmFtcyA9IGFycmF5KCdCb2R5JyA9PiAnJyk7CiAgICAgICAgc2VsZjo6dXBkYXRlKCRwb3N0UGFyYW1zKTsKICAgIH0KCiAgICAvKioKICAgICAqIE1ha2UgYSByZXF1ZXN0IHRvIGRlbGV0ZSB0aGUgc3BlY2lmaWVkIHJlc291cmNlLgogICAgICoKICAgICAqIDpydHlwZTogYm9vbGVhbgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmNsaWVudC0+ZGVsZXRlRGF0YSgkdGhpcy0+dXJpKTsKICAgIH0KfQoK]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Messages.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X01lc3NhZ2VzIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX0xpc3RSZXNvdXJjZSB7CgogICAgLyoqCiAgICAgKiBDcmVhdGUgYSBuZXcgTWVzc2FnZSBpbnN0YW5jZQogICAgICoKICAgICAqIEV4YW1wbGUgdXNhZ2U6CiAgICAgKgogICAgICogLi4gY29kZS1ibG9jazo6IHBocAogICAgICoKICAgICAqICAgICAgJGNsaWVudC0+YWNjb3VudC0+bWVzc2FnZXMtPmNyZWF0ZShhcnJheSgKICAgICAqICAgICAgICAgICJCb2R5IiA9PiAiZm9vIiwKICAgICAqICAgICAgICAgICJGcm9tIiA9PiAiKzE0MTA1NTUxMjM0IiwKICAgICAqICAgICAgICAgICJUbyIgPT4gIisxNDEwNTU1Njc4OSIsCiAgICAgKiAgICAgICkpOwogICAgICoKICAgICAqIDpwYXJhbSBhcnJheSAkcGFyYW1zOiBhIHNpbmdsZSBhcnJheSBvZiBwYXJhbWV0ZXJzIHdoaWNoIGlzIHNlcmlhbGl6ZWQgYW5kCiAgICAgKiAgICAgIHNlbnQgZGlyZWN0bHkgdG8gdGhlIFR3aWxpbyBBUEkuIFlvdSBtYXkgZmluZCBpdCBlYXNpZXIgdG8gdXNlIHRoZQogICAgICogICAgICBzZW5kTWVzc2FnZSBoZWxwZXIgaW5zdGVhZCBvZiB0aGlzIGZ1bmN0aW9uLgogICAgICoKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZSgkcGFyYW1zID0gYXJyYXkoKSkgewogICAgICAgIHJldHVybiBwYXJlbnQ6Ol9jcmVhdGUoJHBhcmFtcyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZW5kIGEgbWVzc2FnZQogICAgICoKICAgICAqIC4uIGNvZGUtYmxvY2s6OiBwaHAKICAgICAqCiAgICAgKiAgICAgICRjbGllbnQgPSBuZXcgU2VydmljZXNfVHdpbGlvKCdBQzEyMycsICcxMjMnKTsKICAgICAqICAgICAgJG1lc3NhZ2UgPSAkY2xpZW50LT5hY2NvdW50LT5tZXNzYWdlcy0+c2VuZE1lc3NhZ2UoCiAgICAgKiAgICAgICAgICAnKzE0MTA1NTUxMjM0JywgLy8gRnJvbSBhIFR3aWxpbyBudW1iZXIgaW4geW91ciBhY2NvdW50CiAgICAgKiAgICAgICAgICAnKzE0MTA1NTU2Nzg5JywgLy8gVGV4dCBhbnkgbnVtYmVyCiAgICAgKiAgICAgICAgICAnQ29tZSBhdCB0aGUga2luZywgeW91IGJlc3Qgbm90IG1pc3MuJyAgIC8vIE1lc3NhZ2UgYm9keSAoaWYgYW55KQogICAgICogICAgICAgICAgYXJyYXkoJ2h0dHBzOi8vZGVtby50d2lsaW8uY29tL293bC5wbmcnKSwgICAvLyBBbiBhcnJheSBvZiBNZWRpYVVybHMKICAgICAqICAgICAgKTsKICAgICAqCiAgICAgKiA6cGFyYW0gc3RyaW5nICRmcm9tOiB0aGUgZnJvbSBudW1iZXIgZm9yIHRoZSBtZXNzYWdlLCB0aGlzIG11c3QgYmUgYQogICAgICogICAgICBudW1iZXIgeW91IHB1cmNoYXNlZCBmcm9tIFR3aWxpbwogICAgICogOnBhcmFtIHN0cmluZyAkdG86IHRoZSBtZXNzYWdlIHJlY2lwaWVudCdzIHBob25lIG51bWJlcgogICAgICogOnBhcmFtICRtZWRpYVVybHM6IHRoZSBVUkxzIG9mIGltYWdlcyB0byBzZW5kIGluIHRoaXMgTU1TCiAgICAgKiA6dHlwZSAkbWVkaWFVcmxzOiBudWxsIChkb24ndCBpbmNsdWRlIG1lZGlhKSwgYSBzaW5nbGUgVVJMLCBvciBhbiBhcnJheQogICAgICogICAgICBvZiBVUkxzIHRvIHNlbmQgYXMgbWVkaWEgd2l0aCB0aGlzIG1lc3NhZ2UKICAgICAqIDpwYXJhbSBzdHJpbmcgJGJvZHk6IHRoZSB0ZXh0IHRvIGluY2x1ZGUgYWxvbmcgd2l0aCB0aGlzIE1NUwogICAgICogOnBhcmFtIGFycmF5ICRwYXJhbXM6IEFueSBhZGRpdGlvbmFsIHBhcmFtcyAoY2FsbGJhY2ssIGV0YykgeW91J2QgbGlrZSB0bwogICAgICogICAgICBzZW5kIHdpdGggdGhpcyByZXF1ZXN0LCB0aGVzZSBhcmUgc2VyaWFsaXplZCBhbmQgc2VudCBhcyBQT1NUCiAgICAgKiAgICAgIHBhcmFtZXRlcnMKICAgICAqCiAgICAgKiA6cmV0dXJuOiBUaGUgY3JlYXRlZCA6Y2xhc3M6YFNlcnZpY2VzX1R3aWxpb19SZXN0X01lc3NhZ2VgCiAgICAgKiA6cmFpc2VzOiA6Y2xhc3M6YFNlcnZpY2VzX1R3aWxpb19SZXN0RXhjZXB0aW9uYAogICAgICogICAgICBBbiBleGNlcHRpb24gaWYgdGhlIHBhcmFtZXRlcnMgYXJlIGludmFsaWQgKGZvciBleGFtcGxlLCB0aGUgZnJvbQogICAgICogICAgICBudW1iZXIgaXMgbm90IGEgVHdpbGlvIG51bWJlciByZWdpc3RlcmVkIHRvIHlvdXIgYWNjb3VudCwgb3IgaXMKICAgICAqICAgICAgdW5hYmxlIHRvIHNlbmQgTU1TKQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2VuZE1lc3NhZ2UoJGZyb20sICR0bywgJGJvZHkgPSBudWxsLCAkbWVkaWFVcmxzID0gbnVsbCwKICAgICAgICAkcGFyYW1zID0gYXJyYXkoKQogICAgKSB7CiAgICAgICAgJHBvc3RQYXJhbXMgPSBhcnJheSgKICAgICAgICAgICAgJ0Zyb20nID0+ICRmcm9tLAogICAgICAgICAgICAnVG8nID0+ICR0bywKICAgICAgICApOwogICAgICAgIC8vIFdoZW4gdGhlIHJlcXVlc3QgaXMgbWFkZSwgdGhpcyB3aWxsIGdldCBzZXJpYWxpemVkIGludG8gTWVkaWFVcmw9YSZNZWRpYVVybD1iCiAgICAgICAgaWYgKCFpc19udWxsKCRtZWRpYVVybHMpKSB7CiAgICAgICAgICAgICRwb3N0UGFyYW1zWydNZWRpYVVybCddID0gJG1lZGlhVXJsczsKICAgICAgICB9CiAgICAgICAgaWYgKCFpc19udWxsKCRib2R5KSkgewogICAgICAgICAgICAkcG9zdFBhcmFtc1snQm9keSddID0gJGJvZHk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBzZWxmOjpjcmVhdGUoJHBvc3RQYXJhbXMgKyAkcGFyYW1zKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Notification.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X05vdGlmaWNhdGlvbgogICAgZXh0ZW5kcyBTZXJ2aWNlc19Ud2lsaW9fSW5zdGFuY2VSZXNvdXJjZQp7Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Notifications.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X05vdGlmaWNhdGlvbnMKICAgIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX0xpc3RSZXNvdXJjZQp7Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/OutgoingCallerId.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X091dGdvaW5nQ2FsbGVySWQKICAgIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX0luc3RhbmNlUmVzb3VyY2UKewp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/OutgoingCallerIds.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X091dGdvaW5nQ2FsbGVySWRzCiAgICBleHRlbmRzIFNlcnZpY2VzX1R3aWxpb19MaXN0UmVzb3VyY2UKewogICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZSgkcGhvbmVOdW1iZXIsIGFycmF5ICRwYXJhbXMgPSBhcnJheSgpKQogICAgewogICAgICAgIHJldHVybiBwYXJlbnQ6Ol9jcmVhdGUoYXJyYXkoCiAgICAgICAgICAgICdQaG9uZU51bWJlcicgPT4gJHBob25lTnVtYmVyLAogICAgICAgICkgKyAkcGFyYW1zKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Queue.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X1F1ZXVlCiAgICBleHRlbmRzIFNlcnZpY2VzX1R3aWxpb19JbnN0YW5jZVJlc291cmNlIHsKCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gaW5pdCgkY2xpZW50LCAkdXJpKSB7CiAgICAgICAgJHRoaXMtPnNldHVwU3VicmVzb3VyY2VzKCdtZW1iZXJzJyk7CiAgICB9Cn0KCg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Queues.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X1F1ZXVlcwogICAgZXh0ZW5kcyBTZXJ2aWNlc19Ud2lsaW9fTGlzdFJlc291cmNlCnsKICAgIC8qKgogICAgICogQ3JlYXRlIGEgbmV3IFF1ZXVlCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkZnJpZW5kbHlfbmFtZSBUaGUgbmFtZSBvZiB0aGlzIHF1ZXVlCiAgICAgKiBAcGFyYW0gYXJyYXkgJHBhcmFtcyBBIGxpc3Qgb2Ygb3B0aW9uYWwgcGFyYW1ldGVycywgYW5kIHRoZWlyIHZhbHVlcwogICAgICogQHJldHVybiBTZXJ2aWNlc19Ud2lsaW9fUmVzdF9RdWV1ZSBUaGUgY3JlYXRlZCBRdWV1ZQogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUoJGZyaWVuZGx5X25hbWUsIGFycmF5ICRwYXJhbXMgPSBhcnJheSgpKSB7CiAgICAgICAgcmV0dXJuIHBhcmVudDo6X2NyZWF0ZShhcnJheSgKICAgICAgICAgICAgJ0ZyaWVuZGx5TmFtZScgPT4gJGZyaWVuZGx5X25hbWUsCiAgICAgICAgKSArICRwYXJhbXMpOwogICAgfQp9Cgo=]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Recording.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X1JlY29yZGluZwogICAgZXh0ZW5kcyBTZXJ2aWNlc19Ud2lsaW9fSW5zdGFuY2VSZXNvdXJjZQp7CiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gaW5pdCgkY2xpZW50LCAkdXJpKSB7CiAgICAgICAgJHRoaXMtPnNldHVwU3VicmVzb3VyY2VzKCd0cmFuc2NyaXB0aW9ucycpOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Recordings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X1JlY29yZGluZ3MKICAgIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX0xpc3RSZXNvdXJjZQp7Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Sandbox.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X1NhbmRib3gKICAgIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX0luc3RhbmNlUmVzb3VyY2UKewp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/ShortCode.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X1Nob3J0Q29kZQogICAgZXh0ZW5kcyBTZXJ2aWNlc19Ud2lsaW9fSW5zdGFuY2VSZXNvdXJjZQp7Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/ShortCodes.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X1Nob3J0Q29kZXMKICAgIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX0xpc3RSZXNvdXJjZQp7CiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGNsaWVudCwgJHVyaSkgewogICAgICAgICR1cmkgPSBwcmVnX3JlcGxhY2UoIiNTaG9ydENvZGVzIyIsICJTTVMvU2hvcnRDb2RlcyIsICR1cmkpOwogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJGNsaWVudCwgJHVyaSk7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Sip.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBGb3IgTGludXggZmlsZW5hbWUgY29tcGF0aWJpbGl0eSwgdGhpcyBmaWxlIG5lZWRzIHRvIGJlIG5hbWVkIFNpcC5waHAsIG9yCiAqIGNhbWVsaXplKCkgbmVlZHMgdG8gYmUgc3BlY2lhbCBjYXNlZCBpbiBzZXR1cFN1YnJlc291cmNlcwogKi8KY2xhc3MgU2VydmljZXNfVHdpbGlvX1Jlc3RfU2lwIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX0luc3RhbmNlUmVzb3VyY2UgewogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGluaXQoJGNsaWVudCwgJHVyaSkgewogICAgICAgICR0aGlzLT5zZXR1cFN1YnJlc291cmNlcygKICAgICAgICAgICAgJ2RvbWFpbnMnLAogICAgICAgICAgICAnaXBfYWNjZXNzX2NvbnRyb2xfbGlzdHMnLAogICAgICAgICAgICAnY3JlZGVudGlhbF9saXN0cycKICAgICAgICApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZXNvdXJjZU5hbWUoJGNhbWVsaXplZCA9IGZhbHNlKSB7CiAgICAgICAgcmV0dXJuICJTSVAiOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/SmsMessage.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X1Ntc01lc3NhZ2UKICAgIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX0luc3RhbmNlUmVzb3VyY2UKewp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/SmsMessages.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Token.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X1Rva2VuIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX0luc3RhbmNlUmVzb3VyY2UgewoKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Tokens.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X1Rva2VucyBleHRlbmRzIFNlcnZpY2VzX1R3aWxpb19MaXN0UmVzb3VyY2UgewoKICAgIC8qKgogICAgICogQ3JlYXRlIGEgbmV3IFRva2VuIGluc3RhbmNlCiAgICAgKgogICAgICogRXhhbXBsZSB1c2FnZToKICAgICAqCiAgICAgKiAuLiBjb2RlLWJsb2NrOjogcGhwCiAgICAgKgogICAgICogICAgICAkY2xpZW50LT5hY2NvdW50LT50b2tlbnMtPmNyZWF0ZShhcnJheSgKICAgICAqICAgICAgICAgICJUdGwiID0+IDEwMCwKICAgICAqICAgICAgKSk7CiAgICAgKgogICAgICogOnBhcmFtIGFycmF5ICRwYXJhbXM6IGEgc2luZ2xlIGFycmF5IG9mIHBhcmFtZXRlcnMgd2hpY2ggaXMgc2VyaWFsaXplZCBhbmQKICAgICAqICAgICAgc2VudCBkaXJlY3RseSB0byB0aGUgVHdpbGlvIEFQSS4KICAgICAqCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGUoJHBhcmFtcyA9IGFycmF5KCkpIHsKICAgICAgICByZXR1cm4gcGFyZW50OjpfY3JlYXRlKCRwYXJhbXMpOwogICAgfQoKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Transcription.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X1RyYW5zY3JpcHRpb24KICAgIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX0luc3RhbmNlUmVzb3VyY2UKewp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/Transcriptions.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X1RyYW5zY3JpcHRpb25zCiAgICBleHRlbmRzIFNlcnZpY2VzX1R3aWxpb19MaXN0UmVzb3VyY2UKewp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/UsageRecord.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X1VzYWdlUmVjb3JkIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX0luc3RhbmNlUmVzb3VyY2UKewp9Cgo=]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/UsageRecords.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X1VzYWdlUmVjb3JkcyBleHRlbmRzIFNlcnZpY2VzX1R3aWxpb19UaW1lUmFuZ2VSZXNvdXJjZSB7CgogICAgcHVibGljIGZ1bmN0aW9uIGluaXQoJGNsaWVudCwgJHVyaSkgewogICAgICAgICR0aGlzLT5zZXR1cFN1YnJlc291cmNlcygKICAgICAgICAgICAgJ3RvZGF5JywKICAgICAgICAgICAgJ3llc3RlcmRheScsCiAgICAgICAgICAgICdhbGxfdGltZScsCiAgICAgICAgICAgICd0aGlzX21vbnRoJywKICAgICAgICAgICAgJ2xhc3RfbW9udGgnLAogICAgICAgICAgICAnZGFpbHknLAogICAgICAgICAgICAnbW9udGhseScsCiAgICAgICAgICAgICd5ZWFybHknCiAgICAgICAgKTsKICAgIH0KfQoKY2xhc3MgU2VydmljZXNfVHdpbGlvX1Jlc3RfVG9kYXkgZXh0ZW5kcyBTZXJ2aWNlc19Ud2lsaW9fVGltZVJhbmdlUmVzb3VyY2UgeyB9IAoKY2xhc3MgU2VydmljZXNfVHdpbGlvX1Jlc3RfWWVzdGVyZGF5IGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX1RpbWVSYW5nZVJlc291cmNlIHsgfQoKY2xhc3MgU2VydmljZXNfVHdpbGlvX1Jlc3RfTGFzdE1vbnRoIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX1RpbWVSYW5nZVJlc291cmNlIHsgfQoKY2xhc3MgU2VydmljZXNfVHdpbGlvX1Jlc3RfVGhpc01vbnRoIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX1RpbWVSYW5nZVJlc291cmNlIHsgfQoKY2xhc3MgU2VydmljZXNfVHdpbGlvX1Jlc3RfQWxsVGltZSBleHRlbmRzIFNlcnZpY2VzX1R3aWxpb19UaW1lUmFuZ2VSZXNvdXJjZSB7IH0KCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X0RhaWx5IGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX1VzYWdlUmVzb3VyY2UgeyB9CgpjbGFzcyBTZXJ2aWNlc19Ud2lsaW9fUmVzdF9Nb250aGx5IGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX1VzYWdlUmVzb3VyY2UgeyB9CgpjbGFzcyBTZXJ2aWNlc19Ud2lsaW9fUmVzdF9ZZWFybHkgZXh0ZW5kcyBTZXJ2aWNlc19Ud2lsaW9fVXNhZ2VSZXNvdXJjZSB7IH0K]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/UsageTrigger.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X1VzYWdlVHJpZ2dlcgogICAgZXh0ZW5kcyBTZXJ2aWNlc19Ud2lsaW9fSW5zdGFuY2VSZXNvdXJjZSB7IH0KCg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/Rest/UsageTriggers.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19SZXN0X1VzYWdlVHJpZ2dlcnMgZXh0ZW5kcyBTZXJ2aWNlc19Ud2lsaW9fTGlzdFJlc291cmNlIHsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGNsaWVudCwgJHVyaSkgewogICAgICAgICR1cmkgPSBwcmVnX3JlcGxhY2UoIiNVc2FnZVRyaWdnZXJzIyIsICJVc2FnZS9UcmlnZ2VycyIsICR1cmkpOwogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJGNsaWVudCwgJHVyaSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGUgYSBuZXcgVXNhZ2VUcmlnZ2VyCiAgICAgKiBAcGFyYW0gc3RyaW5nICRjYXRlZ29yeSBUaGUgY2F0ZWdvcnkgb2YgdXNhZ2UgdG8gZmlyZSBhIHRyaWdnZXIgZm9yLiBBIGZ1bGwgbGlzdCBvZiBjYXRlZ29yaWVzIGNhbiBiZSBmb3VuZCBpbiB0aGUgYFVzYWdlIENhdGVnb3JpZXMgZG9jdW1lbnRhdGlvbiA8aHR0cDovL3d3dy50d2lsaW8uY29tL2RvY3MvYXBpL3Jlc3QvdXNhZ2UtcmVjb3JkcyN1c2FnZS1jYXRlZ29yaWVzPmBfLgogICAgICogQHBhcmFtIHN0cmluZyAkdmFsdWUgRmlyZSB0aGUgdHJpZ2dlciB3aGVuIHVzYWdlIGNyb3NzZXMgdGhpcyB2YWx1ZS4KICAgICAqIEBwYXJhbSBzdHJpbmcgJHVybCBUaGUgVVJMIHRvIHJlcXVlc3Qgd2hlbiB0aGUgdHJpZ2dlciBmaXJlcy4KICAgICAqIEBwYXJhbSBhcnJheSAkcGFyYW1zIE9wdGlvbmFsIHBhcmFtZXRlcnMgZm9yIHRoaXMgdHJpZ2dlci4gQSBmdWxsIGxpc3Qgb2YgcGFyYW1ldGVycyBjYW4gYmUgZm91bmQgaW4gdGhlIGBVc2FnZSBUcmlnZ2VyIGRvY3VtZW50YXRpb24gPGh0dHA6Ly93d3cudHdpbGlvLmNvbS9kb2NzL2FwaS9yZXN0L3VzYWdlLXRyaWdnZXJzI2xpc3QtcG9zdC1vcHRpb25hbC1wYXJhbWV0ZXJzPmBfLgogICAgICogQHJldHVybiBTZXJ2aWNlc19Ud2lsaW9fUmVzdF9Vc2FnZVRyaWdnZXIgVGhlIGNyZWF0ZWQgdHJpZ2dlcgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUoJGNhdGVnb3J5LCAkdmFsdWUsICR1cmwsIGFycmF5ICRwYXJhbXMgPSBhcnJheSgpKSB7CiAgICAgICAgcmV0dXJuIHBhcmVudDo6X2NyZWF0ZShhcnJheSgKICAgICAgICAgICAgJ1VzYWdlQ2F0ZWdvcnknID0+ICRjYXRlZ29yeSwKICAgICAgICAgICAgJ1RyaWdnZXJWYWx1ZScgPT4gJHZhbHVlLAogICAgICAgICAgICAnQ2FsbGJhY2tVcmwnID0+ICR1cmwsCiAgICAgICAgKSArICRwYXJhbXMpOwogICAgfQoKfQoK]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/RestException.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBBbiBleGNlcHRpb24gdGFsa2luZyB0byB0aGUgVHdpbGlvIEFQSS4gVGhpcyBpcyB0aHJvd24gd2hlbmV2ZXIgdGhlIFR3aWxpbwogKiBBUEkgcmV0dXJucyBhIDQwMCBvciA1MDAtbGV2ZWwgZXhjZXB0aW9uLgogKgogKiA6cGFyYW0gaW50ICRzdGF0dXM6IHRoZSBIVFRQIHN0YXR1cyBmb3IgdGhlIGV4Y2VwdGlvbgogKiA6cGFyYW0gc3RyaW5nICRtZXNzYWdlOiBhIGh1bWFuLXJlYWRhYmxlIGVycm9yIG1lc3NhZ2UgZm9yIHRoZSBleGNlcHRpb24KICogOnBhcmFtIGludCAkY29kZTogYSBUd2lsaW8tc3BlY2lmaWMgZXJyb3IgY29kZSBmb3IgdGhlIGV4Y2VwdGlvbgogKiA6cGFyYW0gc3RyaW5nICRpbmZvOiBhIGxpbmsgdG8gbW9yZSBpbmZvcm1hdGlvbgogKi8KY2xhc3MgU2VydmljZXNfVHdpbGlvX1Jlc3RFeGNlcHRpb24gZXh0ZW5kcyBFeGNlcHRpb24gewoKICAgIC8qKgogICAgICogVGhlIEhUVFAgc3RhdHVzIGZvciB0aGUgZXhjZXB0aW9uLgogICAgICovCiAgICBwcm90ZWN0ZWQgJHN0YXR1czsKCiAgICAvKioKICAgICAqIEEgVVJMIHRvIGdldCBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBlcnJvci4gVGhpcyBpcyBub3QgYWx3YXlzCiAgICAgKiBhdmFpbGFibGUKICAgICAqLwogICAgcHJvdGVjdGVkICRpbmZvOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkc3RhdHVzLCAkbWVzc2FnZSwgJGNvZGUgPSAwLCAkaW5mbyA9ICcnKSB7CiAgICAgICAgJHRoaXMtPnN0YXR1cyA9ICRzdGF0dXM7CiAgICAgICAgJHRoaXMtPmluZm8gPSAkaW5mbzsKICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRtZXNzYWdlLCAkY29kZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIEhUVFAgc3RhdHVzIGNvZGUKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFN0YXR1cygpIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnN0YXR1czsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBhIGxpbmsgdG8gbW9yZSBpbmZvcm1hdGlvbgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0SW5mbygpIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmluZm87CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/SIPListResource.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBUaGlzIHN1YmNsYXNzIG9mIExpc3RSZXNvdXJjZSBpcyB1c2VkIHNvbGVseSB0byB1cGRhdGUKICogdGhlIFVSSSBmb3Igc2lwIHJlc291cmNlcy4KICovCmFic3RyYWN0IGNsYXNzIFNlcnZpY2VzX1R3aWxpb19TSVBMaXN0UmVzb3VyY2UgZXh0ZW5kcyBTZXJ2aWNlc19Ud2lsaW9fTGlzdFJlc291cmNlIHsKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkY2xpZW50LCAkdXJpKSB7CiAgICAgICAgLy8gUmVuYW1lIGFsbCAvU2lwLyB1cmlzIHRvIC9TSVAvCiAgICAgICAgJHVyaSA9IHByZWdfcmVwbGFjZSgiIy9TaXAjIiwgIi9TSVAiLCAkdXJpKTsKICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRjbGllbnQsICR1cmkpOwogICAgfQp9Cgo=]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/TimeRangeResource.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBQYXJlbnQgY2xhc3MgZm9yIHVzYWdlIHJlc291cmNlcyB0aGF0IGV4cG9zZSBhIHNpbmdsZSBkYXRlLCBlZyAnVG9kYXknLCAnVGhpc01vbnRoJywgZXRjCiAqIEBhdXRob3IgS2V2aW4gQnVya2UgPGtldmluQHR3aWxpby5jb20+CiAqIEBsaWNlbnNlICBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9NSVQvIE1JVAogKiBAbGluayAgICAgaHR0cDovL3BlYXIucGhwLm5ldC9wYWNrYWdlL1NlcnZpY2VzX1R3aWxpbwogKi8KY2xhc3MgU2VydmljZXNfVHdpbGlvX1RpbWVSYW5nZVJlc291cmNlIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX1VzYWdlUmVzb3VyY2UgewoKICAgIC8qKgogICAgICogUmV0dXJuIGEgVXNhZ2VSZWNvcmQgY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4gY2F0ZWdvcnkuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkY2F0ZWdvcnkgVGhlIGNhdGVnb3J5IG9mIHVzYWdlIHRvIHJldHJpZXZlLiBGb3IgYSBmdWxsIAogICAgICogICAgICBsaXN0IG9mIHZhbGlkIGNhdGVnb3JpZXMsIHBsZWFzZSBzZWUgdGhlIGRvY3VtZW50YXRpb24gYXQgCiAgICAgKiAgICAgIGh0dHA6Ly93d3cudHdpbGlvLmNvbS9kb2NzL2FwaS9yZXN0L3VzYWdlLXJlY29yZHMjdXNhZ2UtYWxsLWNhdGVnb3JpZXMKICAgICAqIEByZXR1cm4gU2VydmljZXNfVHdpbGlvX1Jlc3RfVXNhZ2VSZWNvcmQKICAgICAqIEB0aHJvd3MgU2VydmljZXNfVHdpbGlvX1Jlc3RFeGNlcHRpb24KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldENhdGVnb3J5KCRjYXRlZ29yeSkgewogICAgICAgICRwYWdlID0gJHRoaXMtPmdldFBhZ2UoMCwgMSwgYXJyYXkoCiAgICAgICAgICAgICdDYXRlZ29yeScgPT4gJGNhdGVnb3J5LAogICAgICAgICkpOwogICAgICAgICRpdGVtcyA9ICRwYWdlLT5nZXRJdGVtcygpOwogICAgICAgIGlmICghaXNfYXJyYXkoJGl0ZW1zKSB8fCBjb3VudCgkaXRlbXMpID09PSAwKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBTZXJ2aWNlc19Ud2lsaW9fUmVzdEV4Y2VwdGlvbigKICAgICAgICAgICAgICAgIDQwMCwgIlVzYWdlIHJlY29yZCBkYXRhIGlzIHVuZm9ybWF0dGFibGUuIik7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkaXRlbXNbMF07CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/TinyHttp-ORIGINAL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoqCiAqIEJhc2VkIG9uIFRpbnlIdHRwIGZyb20gaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vNjE4MTU3LgogKiBDb3B5cmlnaHQgMjAxMSwgTmV1bWFuIFZvbmcuIEJTRCBMaWNlbnNlLgogKi8KCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19UaW55SHR0cEV4Y2VwdGlvbiBleHRlbmRzIEVycm9yRXhjZXB0aW9uIHt9CgovKioKICogQW4gSFRUUCBjbGllbnQgdGhhdCBtYWtlcyByZXF1ZXN0cwogKgogKiA6cGFyYW0gc3RyaW5nICR1cmk6IFRoZSBiYXNlIHVyaSB0byB1c2UgZm9yIHJlcXVlc3RzCiAqIDpwYXJhbSBhcnJheSAka3dhcmdzOiBBbiBhcnJheSBvZiBhZGRpdGlvbmFsIGFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZQogKiAgbGlicmFyeS4gQWNjZXB0ZWQgYXJndW1lbnRzIGFyZToKICoKICogICAgICAtICoqZGVidWcqKiAtIFByaW50IHRoZSBIVFRQIHJlcXVlc3QgYmVmb3JlIG1ha2luZyBpdCB0byBUd2lsaW8KICogICAgICAtICoqY3VybG9wdHMqKiAtIEFuIGFycmF5IG9mIGtleXMgYW5kIHZhbHVlcyB0aGF0IGFyZSBwYXNzZWQgdG8KICogICAgICAgICAgYGBjdXJsX3NldG9wdF9hcnJheWBgLgogKgogKiBIZXJlJ3MgYW4gZXhhbXBsZS4gVGhpcyBpcyB0aGUgZGVmYXVsdCBIVFRQIGNsaWVudCB1c2VkIGJ5IHRoZSBsaWJyYXJ5LgogKgogKiAuLiBjb2RlLWJsb2NrOjogcGhwCiAqCiAqICAgICAkX2h0dHAgPSBuZXcgU2VydmljZXNfVHdpbGlvX1RpbnlIdHRwKAogKiAgICAgICAgICJodHRwczovL2FwaS50d2lsaW8uY29tIiwKICogICAgICAgICBhcnJheSgiY3VybG9wdHMiID0+IGFycmF5KAogKiAgICAgICAgICAgICBDVVJMT1BUX1VTRVJBR0VOVCA9PiBzZWxmOjpVU0VSX0FHRU5ULAogKiAgICAgICAgICAgICBDVVJMT1BUX0hUVFBIRUFERVIgPT4gYXJyYXkoJ0FjY2VwdC1DaGFyc2V0OiB1dGYtOCcpLAogKiAgICAgICAgICAgICBDVVJMT1BUX0NBSU5GTyA9PiBkaXJuYW1lKF9fRklMRV9fKSAuICcvY2FjZXJ0LnBlbScsCiAqICAgICAgICAgKSkKICogICAgICk7CiAqLwpjbGFzcyBTZXJ2aWNlc19Ud2lsaW9fVGlueUh0dHAgewogIHZhciAkdXNlciwgJHBhc3MsICRzY2hlbWUsICRob3N0LCAkcG9ydCwgJGRlYnVnLCAkY3VybG9wdHM7CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkdXJpID0gJycsICRrd2FyZ3MgPSBhcnJheSgpKSB7CiAgICBmb3JlYWNoIChwYXJzZV91cmwoJHVyaSkgYXMgJG5hbWUgPT4gJHZhbHVlKSAkdGhpcy0+JG5hbWUgPSAkdmFsdWU7CiAgICAkdGhpcy0+ZGVidWcgPSBpc3NldCgka3dhcmdzWydkZWJ1ZyddKSA/ICEhJGt3YXJnc1snZGVidWcnXSA6IE5VTEw7CiAgICAkdGhpcy0+Y3VybG9wdHMgPSBpc3NldCgka3dhcmdzWydjdXJsb3B0cyddKSA/ICRrd2FyZ3NbJ2N1cmxvcHRzJ10gOiBhcnJheSgpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIF9fY2FsbCgkbmFtZSwgJGFyZ3MpIHsKICAgIGxpc3QoJHJlcywgJHJlcV9oZWFkZXJzLCAkcmVxX2JvZHkpID0gJGFyZ3MgKyBhcnJheSgwLCBhcnJheSgpLCAnJyk7CgoJICBpZiAoc3RycG9zKCRyZXMsICdodHRwJykgPT09IDApIHsKCQkgIC8vIFdlIGdvdCBoYW5kZWQgYSBjb21wbGV0ZSBVUkwsIGp1c3QgdXNlIGl0CgkJICAkdXJsID0gJHJlczsKCSAgfSBlbHNlIHsKCQkgIC8vIEJ1aWxkIGZyb20gcGF0aCBhbmQgZGVmYXVsdCBzY2hlbWUvaG9zdC4KCQkgICR1cmwgPSAiJHRoaXMtPnNjaGVtZTovLyR0aGlzLT5ob3N0JHJlcyI7CgkgIH0KCiAgICAkb3B0cyA9ICR0aGlzLT5jdXJsb3B0cyArIGFycmF5KAogICAgICBDVVJMT1BUX1VSTCA9PiAkdXJsLAogICAgICBDVVJMT1BUX0hFQURFUiA9PiBUUlVFLAogICAgICBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSID0+IFRSVUUsCiAgICAgIENVUkxPUFRfSU5GSUxFU0laRSA9PiAtMSwKICAgICAgQ1VSTE9QVF9QT1NURklFTERTID0+IE5VTEwsCiAgICAgIENVUkxPUFRfVElNRU9VVCA9PiA2MCwKICAgICk7CgogICAgZm9yZWFjaCAoJHJlcV9oZWFkZXJzIGFzICRrID0+ICR2KSAkb3B0c1tDVVJMT1BUX0hUVFBIRUFERVJdW10gPSAiJGs6ICR2IjsKICAgIGlmICgkdGhpcy0+cG9ydCkgJG9wdHNbQ1VSTE9QVF9QT1JUXSA9ICR0aGlzLT5wb3J0OwogICAgaWYgKCR0aGlzLT5kZWJ1ZykgJG9wdHNbQ1VSTElORk9fSEVBREVSX09VVF0gPSBUUlVFOwogICAgaWYgKCR0aGlzLT51c2VyICYmICR0aGlzLT5wYXNzKSAkb3B0c1tDVVJMT1BUX1VTRVJQV0RdID0gIiR0aGlzLT51c2VyOiR0aGlzLT5wYXNzIjsKICAgIHN3aXRjaCAoJG5hbWUpIHsKICAgIGNhc2UgJ2dldCc6CiAgICAgICRvcHRzW0NVUkxPUFRfSFRUUEdFVF0gPSBUUlVFOwogICAgICBicmVhazsKICAgIGNhc2UgJ3Bvc3QnOgogICAgICAkb3B0c1tDVVJMT1BUX1BPU1RdID0gVFJVRTsKICAgICAgJG9wdHNbQ1VSTE9QVF9QT1NURklFTERTXSA9ICRyZXFfYm9keTsKICAgICAgYnJlYWs7CiAgICBjYXNlICdwdXQnOgogICAgICAkb3B0c1tDVVJMT1BUX1BVVF0gPSBUUlVFOwogICAgICBpZiAoc3RybGVuKCRyZXFfYm9keSkpIHsKICAgICAgICBpZiAoJGJ1ZiA9IGZvcGVuKCdwaHA6Ly9tZW1vcnknLCAndysnKSkgewogICAgICAgICAgZndyaXRlKCRidWYsICRyZXFfYm9keSk7CiAgICAgICAgICBmc2VlaygkYnVmLCAwKTsKICAgICAgICAgICRvcHRzW0NVUkxPUFRfSU5GSUxFXSA9ICRidWY7CiAgICAgICAgICAkb3B0c1tDVVJMT1BUX0lORklMRVNJWkVdID0gc3RybGVuKCRyZXFfYm9keSk7CiAgICAgICAgfSBlbHNlIHRocm93IG5ldyBTZXJ2aWNlc19Ud2lsaW9fVGlueUh0dHBFeGNlcHRpb24oJ3VuYWJsZSB0byBvcGVuIHRlbXBvcmFyeSBmaWxlJyk7CiAgICAgIH0KICAgICAgYnJlYWs7CiAgICBjYXNlICdoZWFkJzoKICAgICAgJG9wdHNbQ1VSTE9QVF9OT0JPRFldID0gVFJVRTsKICAgICAgYnJlYWs7CiAgICBkZWZhdWx0OgogICAgICAkb3B0c1tDVVJMT1BUX0NVU1RPTVJFUVVFU1RdID0gc3RydG91cHBlcigkbmFtZSk7CiAgICAgIGJyZWFrOwogICAgfQogICAgdHJ5IHsKICAgICAgaWYgKCRjdXJsID0gY3VybF9pbml0KCkpIHsKICAgICAgICBpZiAoY3VybF9zZXRvcHRfYXJyYXkoJGN1cmwsICRvcHRzKSkgewogICAgICAgICAgaWYgKCRyZXNwb25zZSA9IGN1cmxfZXhlYygkY3VybCkpIHsKICAgICAgICAgICAgJHBhcnRzID0gZXhwbG9kZSgiXHJcblxyXG4iLCAkcmVzcG9uc2UsIDMpOwogICAgICAgICAgICBsaXN0KCRoZWFkLCAkYm9keSkgPSAoJHBhcnRzWzBdID09ICdIVFRQLzEuMSAxMDAgQ29udGludWUnKQogICAgICAgICAgICAgID8gYXJyYXkoJHBhcnRzWzFdLCAkcGFydHNbMl0pCiAgICAgICAgICAgICAgOiBhcnJheSgkcGFydHNbMF0sICRwYXJ0c1sxXSk7CiAgICAgICAgICAgICRzdGF0dXMgPSBjdXJsX2dldGluZm8oJGN1cmwsIENVUkxJTkZPX0hUVFBfQ09ERSk7CiAgICAgICAgICAgIGlmICgkdGhpcy0+ZGVidWcpIHsKICAgICAgICAgICAgICBlcnJvcl9sb2coCiAgICAgICAgICAgICAgICBjdXJsX2dldGluZm8oJGN1cmwsIENVUkxJTkZPX0hFQURFUl9PVVQpIC4KICAgICAgICAgICAgICAgICRyZXFfYm9keQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGhlYWRlcl9saW5lcyA9IGV4cGxvZGUoIlxyXG4iLCAkaGVhZCk7CiAgICAgICAgICAgIGFycmF5X3NoaWZ0KCRoZWFkZXJfbGluZXMpOwogICAgICAgICAgICBmb3JlYWNoICgkaGVhZGVyX2xpbmVzIGFzICRsaW5lKSB7CiAgICAgICAgICAgICAgbGlzdCgka2V5LCAkdmFsdWUpID0gZXhwbG9kZSgiOiIsICRsaW5lLCAyKTsKICAgICAgICAgICAgICAkaGVhZGVyc1ska2V5XSA9IHRyaW0oJHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjdXJsX2Nsb3NlKCRjdXJsKTsKICAgICAgICAgICAgaWYgKGlzc2V0KCRidWYpICYmIGlzX3Jlc291cmNlKCRidWYpKSB7CiAgICAgICAgICAgICAgICBmY2xvc2UoJGJ1Zik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGFycmF5KCRzdGF0dXMsICRoZWFkZXJzLCAkYm9keSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHRocm93IG5ldyBTZXJ2aWNlc19Ud2lsaW9fVGlueUh0dHBFeGNlcHRpb24oY3VybF9lcnJvcigkY3VybCkpOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB0aHJvdyBuZXcgU2VydmljZXNfVHdpbGlvX1RpbnlIdHRwRXhjZXB0aW9uKGN1cmxfZXJyb3IoJGN1cmwpKTsKICAgICAgfSBlbHNlIHRocm93IG5ldyBTZXJ2aWNlc19Ud2lsaW9fVGlueUh0dHBFeGNlcHRpb24oJ3VuYWJsZSB0byBpbml0aWFsaXplIGNVUkwnKTsKICAgIH0gY2F0Y2ggKEVycm9yRXhjZXB0aW9uICRlKSB7CiAgICAgIGlmIChpc19yZXNvdXJjZSgkY3VybCkpIGN1cmxfY2xvc2UoJGN1cmwpOwogICAgICBpZiAoaXNzZXQoJGJ1ZikgJiYgaXNfcmVzb3VyY2UoJGJ1ZikpIGZjbG9zZSgkYnVmKTsKICAgICAgdGhyb3cgJGU7CiAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gYXV0aGVudGljYXRlKCR1c2VyLCAkcGFzcykgewogICAgJHRoaXMtPnVzZXIgPSAkdXNlcjsKICAgICR0aGlzLT5wYXNzID0gJHBhc3M7CiAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/TinyHttp.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoqCiAqIEJhc2VkIG9uIFRpbnlIdHRwIGZyb20gaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vNjE4MTU3LgogKiBDb3B5cmlnaHQgMjAxMSwgTmV1bWFuIFZvbmcuIEJTRCBMaWNlbnNlLgogKi8KCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19UaW55SHR0cEV4Y2VwdGlvbiBleHRlbmRzIEVycm9yRXhjZXB0aW9uIHt9CgovKioKICogQW4gSFRUUCBjbGllbnQgdGhhdCBtYWtlcyByZXF1ZXN0cwogKgogKiA6cGFyYW0gc3RyaW5nICR1cmk6IFRoZSBiYXNlIHVyaSB0byB1c2UgZm9yIHJlcXVlc3RzCiAqIDpwYXJhbSBhcnJheSAka3dhcmdzOiBBbiBhcnJheSBvZiBhZGRpdGlvbmFsIGFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZQogKiAgbGlicmFyeS4gQWNjZXB0ZWQgYXJndW1lbnRzIGFyZToKICoKICogICAgICAtICoqZGVidWcqKiAtIFByaW50IHRoZSBIVFRQIHJlcXVlc3QgYmVmb3JlIG1ha2luZyBpdCB0byBUd2lsaW8KICogICAgICAtICoqY3VybG9wdHMqKiAtIEFuIGFycmF5IG9mIGtleXMgYW5kIHZhbHVlcyB0aGF0IGFyZSBwYXNzZWQgdG8KICogICAgICAgICAgYGBjdXJsX3NldG9wdF9hcnJheWBgLgogKgogKiBIZXJlJ3MgYW4gZXhhbXBsZS4gVGhpcyBpcyB0aGUgZGVmYXVsdCBIVFRQIGNsaWVudCB1c2VkIGJ5IHRoZSBsaWJyYXJ5LgogKgogKiAuLiBjb2RlLWJsb2NrOjogcGhwCiAqCiAqICAgICAkX2h0dHAgPSBuZXcgU2VydmljZXNfVHdpbGlvX1RpbnlIdHRwKAogKiAgICAgICAgICJodHRwczovL2FwaS50d2lsaW8uY29tIiwKICogICAgICAgICBhcnJheSgiY3VybG9wdHMiID0+IGFycmF5KAogKiAgICAgICAgICAgICBDVVJMT1BUX1VTRVJBR0VOVCA9PiBzZWxmOjpVU0VSX0FHRU5ULAogKiAgICAgICAgICAgICBDVVJMT1BUX0hUVFBIRUFERVIgPT4gYXJyYXkoJ0FjY2VwdC1DaGFyc2V0OiB1dGYtOCcpLAogKiAgICAgICAgICAgICBDVVJMT1BUX0NBSU5GTyA9PiBkaXJuYW1lKF9fRklMRV9fKSAuICcvY2FjZXJ0LnBlbScsCiAqICAgICAgICAgKSkKICogICAgICk7CiAqLwpjbGFzcyBTZXJ2aWNlc19Ud2lsaW9fVGlueUh0dHAgewogIHZhciAkdXNlciwgJHBhc3MsICRzY2hlbWUsICRob3N0LCAkcG9ydCwgJGRlYnVnLCAkY3VybG9wdHM7CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkdXJpID0gJycsICRrd2FyZ3MgPSBhcnJheSgpKSB7CiAgICBmb3JlYWNoIChwYXJzZV91cmwoJHVyaSkgYXMgJG5hbWUgPT4gJHZhbHVlKSAkdGhpcy0+JG5hbWUgPSAkdmFsdWU7CiAgICAkdGhpcy0+ZGVidWcgPSBpc3NldCgka3dhcmdzWydkZWJ1ZyddKSA/ICEhJGt3YXJnc1snZGVidWcnXSA6IE5VTEw7CiAgICAkdGhpcy0+Y3VybG9wdHMgPSBpc3NldCgka3dhcmdzWydjdXJsb3B0cyddKSA/ICRrd2FyZ3NbJ2N1cmxvcHRzJ10gOiBhcnJheSgpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIF9fY2FsbCgkbmFtZSwgJGFyZ3MpIHsKICAgIGxpc3QoJHJlcywgJHJlcV9oZWFkZXJzLCAkcmVxX2JvZHkpID0gJGFyZ3MgKyBhcnJheSgwLCBhcnJheSgpLCAnJyk7CgoJICBpZiAoc3RycG9zKCRyZXMsICdodHRwJykgPT09IDApIHsKCQkgIC8vIFdlIGdvdCBoYW5kZWQgYSBjb21wbGV0ZSBVUkwsIGp1c3QgdXNlIGl0CgkJICAkdXJsID0gJHJlczsKCSAgfSBlbHNlIHsKCQkgIC8vIEJ1aWxkIGZyb20gcGF0aCBhbmQgZGVmYXVsdCBzY2hlbWUvaG9zdC4KCQkgICR1cmwgPSAiJHRoaXMtPnNjaGVtZTovLyR0aGlzLT5ob3N0JHJlcyI7CgkgIH0KCiAgICAkb3B0cyA9ICR0aGlzLT5jdXJsb3B0cyArIGFycmF5KAogICAgICBDVVJMT1BUX1VSTCA9PiAkdXJsLAogICAgICBDVVJMT1BUX0hFQURFUiA9PiBUUlVFLAogICAgICBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSID0+IFRSVUUsCiAgICAgIENVUkxPUFRfSU5GSUxFU0laRSA9PiAtMSwKICAgICAgQ1VSTE9QVF9QT1NURklFTERTID0+IE5VTEwsCiAgICAgIENVUkxPUFRfVElNRU9VVCA9PiA2MCwKICAgICAgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiA9PiBGQUxTRSAvL0JBRCB0ZW1wIHdvcmthcm91ZCBiYWQgVHdpbGlvIGNlcnRpZmljYXRlCiAgICApOwoKICAgIGZvcmVhY2ggKCRyZXFfaGVhZGVycyBhcyAkayA9PiAkdikgJG9wdHNbQ1VSTE9QVF9IVFRQSEVBREVSXVtdID0gIiRrOiAkdiI7CiAgICBpZiAoJHRoaXMtPnBvcnQpICRvcHRzW0NVUkxPUFRfUE9SVF0gPSAkdGhpcy0+cG9ydDsKICAgIGlmICgkdGhpcy0+ZGVidWcpICRvcHRzW0NVUkxJTkZPX0hFQURFUl9PVVRdID0gVFJVRTsKICAgIGlmICgkdGhpcy0+dXNlciAmJiAkdGhpcy0+cGFzcykgJG9wdHNbQ1VSTE9QVF9VU0VSUFdEXSA9ICIkdGhpcy0+dXNlcjokdGhpcy0+cGFzcyI7CiAgICBzd2l0Y2ggKCRuYW1lKSB7CiAgICBjYXNlICdnZXQnOgogICAgICAkb3B0c1tDVVJMT1BUX0hUVFBHRVRdID0gVFJVRTsKICAgICAgYnJlYWs7CiAgICBjYXNlICdwb3N0JzoKICAgICAgJG9wdHNbQ1VSTE9QVF9QT1NUXSA9IFRSVUU7CiAgICAgICRvcHRzW0NVUkxPUFRfUE9TVEZJRUxEU10gPSAkcmVxX2JvZHk7CiAgICAgIGJyZWFrOwogICAgY2FzZSAncHV0JzoKICAgICAgJG9wdHNbQ1VSTE9QVF9QVVRdID0gVFJVRTsKICAgICAgaWYgKHN0cmxlbigkcmVxX2JvZHkpKSB7CiAgICAgICAgaWYgKCRidWYgPSBmb3BlbigncGhwOi8vbWVtb3J5JywgJ3crJykpIHsKICAgICAgICAgIGZ3cml0ZSgkYnVmLCAkcmVxX2JvZHkpOwogICAgICAgICAgZnNlZWsoJGJ1ZiwgMCk7CiAgICAgICAgICAkb3B0c1tDVVJMT1BUX0lORklMRV0gPSAkYnVmOwogICAgICAgICAgJG9wdHNbQ1VSTE9QVF9JTkZJTEVTSVpFXSA9IHN0cmxlbigkcmVxX2JvZHkpOwogICAgICAgIH0gZWxzZSB0aHJvdyBuZXcgU2VydmljZXNfVHdpbGlvX1RpbnlIdHRwRXhjZXB0aW9uKCd1bmFibGUgdG8gb3BlbiB0ZW1wb3JhcnkgZmlsZScpOwogICAgICB9CiAgICAgIGJyZWFrOwogICAgY2FzZSAnaGVhZCc6CiAgICAgICRvcHRzW0NVUkxPUFRfTk9CT0RZXSA9IFRSVUU7CiAgICAgIGJyZWFrOwogICAgZGVmYXVsdDoKICAgICAgJG9wdHNbQ1VSTE9QVF9DVVNUT01SRVFVRVNUXSA9IHN0cnRvdXBwZXIoJG5hbWUpOwogICAgICBicmVhazsKICAgIH0KICAgIHRyeSB7CiAgICAgIHRyeSB7CiAgICAgICRjdXJsID0gY3VybF9pbml0KCk7CgkJdHJ5IHsKICAgICAgICAgIGN1cmxfc2V0b3B0X2FycmF5KCRjdXJsLCAkb3B0cyk7CgkJICB0cnkgewogICAgICAgICAgICAkcmVzcG9uc2UgPSBjdXJsX2V4ZWMoJGN1cmwpOwogICAgICAgICAgICAkc3RhdHVzID0gY3VybF9nZXRpbmZvKCRjdXJsLCBDVVJMSU5GT19IVFRQX0NPREUpOwogICAgICAgICAgICBpZiAoJHRoaXMtPmRlYnVnKSB7CiAgICAgICAgICAgICAgZXJyb3JfbG9nKAogICAgICAgICAgICAgICAgY3VybF9nZXRpbmZvKCRjdXJsLCBDVVJMSU5GT19IRUFERVJfT1VUKSAuCiAgICAgICAgICAgICAgICAkcmVxX2JvZHkKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGN1cmxfY2xvc2UoJGN1cmwpOwogICAgICAgICAgICBpZiAoaXNzZXQoJGJ1ZikgJiYgaXNfcmVzb3VyY2UoJGJ1ZikpIHsKICAgICAgICAgICAgICBmY2xvc2UoJGJ1Zik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCRyZXNwb25zZSkgewogICAgICAgICAgICAgICRwYXJ0cyA9IGV4cGxvZGUoIlxyXG5cclxuIiwgJHJlc3BvbnNlLCAzKTsKICAgICAgICAgICAgICBsaXN0KCRoZWFkLCAkYm9keSkgPSAoJHBhcnRzWzBdID09ICdIVFRQLzEuMSAxMDAgQ29udGludWUnKQogICAgICAgICAgICAgICAgPyBhcnJheSgkcGFydHNbMV0sICRwYXJ0c1syXSkKICAgICAgICAgICAgICAgIDogYXJyYXkoJHBhcnRzWzBdLCAkcGFydHNbMV0pOwogICAgICAgICAgICAgICRoZWFkZXJfbGluZXMgPSBleHBsb2RlKCJcclxuIiwgJGhlYWQpOwogICAgICAgICAgICAgIGFycmF5X3NoaWZ0KCRoZWFkZXJfbGluZXMpOwogICAgICAgICAgICAgIGZvcmVhY2ggKCRoZWFkZXJfbGluZXMgYXMgJGxpbmUpIHsKICAgICAgICAgICAgICAgIGxpc3QoJGtleSwgJHZhbHVlKSA9IGV4cGxvZGUoIjoiLCAkbGluZSwgMik7CiAgICAgICAgICAgICAgICAkaGVhZGVyc1ska2V5XSA9IHRyaW0oJHZhbHVlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIGFycmF5KCRzdGF0dXMsICRoZWFkZXJzLCAkYm9keSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICByZXR1cm4gJ2NvbW11bmljYXRpb24gZXJyb3InOwogICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uICRlKSB7CiAgICAgICAgICAgIGlmIChpc19yZXNvdXJjZSgkY3VybCkpIHsKICAgICAgICAgICAgICAkbSA9IGN1cmxfZXJyb3IoJGN1cmwpOwogICAgICAgICAgICAgIGN1cmxfY2xvc2UoJGN1cmwpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICRtID0gJGUtPmdldE1lc3NhZ2UoKTsKCQkJfQogICAgICAgICAgICBpZiAoaXNzZXQoJGJ1ZikgJiYgaXNfcmVzb3VyY2UoJGJ1ZikpIGZjbG9zZSgkYnVmKTsKICAgICAgICAgICAgdGhyb3cgbmV3IFNlcnZpY2VzX1R3aWxpb19UaW55SHR0cEV4Y2VwdGlvbigkbSk7CiAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uICRlKSB7CiAgICAgICAgICAgIGlmIChpc19yZXNvdXJjZSgkY3VybCkpIHsKICAgICAgICAgICAgICAkbSA9IGN1cmxfZXJyb3IoJGN1cmwpOwogICAgICAgICAgICAgIGN1cmxfY2xvc2UoJGN1cmwpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICRtID0gJGUtPmdldE1lc3NhZ2UoKTsKCQkJfQogICAgICAgICAgICBpZiAoaXNzZXQoJGJ1ZikgJiYgaXNfcmVzb3VyY2UoJGJ1ZikpIGZjbG9zZSgkYnVmKTsKICAgICAgICAgICAgdGhyb3cgbmV3IFNlcnZpY2VzX1R3aWxpb19UaW55SHR0cEV4Y2VwdGlvbigkbSk7CiAgICAgICAgfQogICAgICB9IGNhdGNoIChFeGNlcHRpb24gJGUpIHsKCQl0aHJvdyBuZXcgU2VydmljZXNfVHdpbGlvX1RpbnlIdHRwRXhjZXB0aW9uKCd1bmFibGUgdG8gaW5pdGlhbGl6ZSBjVVJMJyk7CgkgIH0KICAgIH0gY2F0Y2ggKEVycm9yRXhjZXB0aW9uICRlKSB7CiAgICAgIGlmIChpc19yZXNvdXJjZSgkY3VybCkpIGN1cmxfY2xvc2UoJGN1cmwpOwogICAgICBpZiAoaXNzZXQoJGJ1ZikgJiYgaXNfcmVzb3VyY2UoJGJ1ZikpIGZjbG9zZSgkYnVmKTsKICAgICAgdGhyb3cgJGU7CiAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gYXV0aGVudGljYXRlKCR1c2VyLCAkcGFzcykgewogICAgJHRoaXMtPnVzZXIgPSAkdXNlcjsKICAgICR0aGlzLT5wYXNzID0gJHBhc3M7CiAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/gateways/twilio/Twilio/UsageResource.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKiAKICogUGFyZW50IGNsYXNzIGZvciBhbGwgVXNhZ2VSZWNvcmQgc3ViY2xhc3NlcwogKiBAYXV0aG9yIEtldmluIEJ1cmtlIDxrZXZpbkB0d2lsaW8uY29tPgogKiBAbGljZW5zZSAgaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvTUlULyBNSVQKICogQGxpbmsgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9TZXJ2aWNlc19Ud2lsaW8KICovCmNsYXNzIFNlcnZpY2VzX1R3aWxpb19Vc2FnZVJlc291cmNlIGV4dGVuZHMgU2VydmljZXNfVHdpbGlvX0xpc3RSZXNvdXJjZSB7CiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UmVzb3VyY2VOYW1lKCRjYW1lbGl6ZWQgPSBmYWxzZSkgewogICAgICAgICR0aGlzLT5pbnN0YW5jZV9uYW1lID0gJ1NlcnZpY2VzX1R3aWxpb19SZXN0X1VzYWdlUmVjb3JkJzsKICAgICAgICByZXR1cm4gJGNhbWVsaXplZCA/ICdVc2FnZVJlY29yZHMnIDogJ3VzYWdlX3JlY29yZHMnOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkY2xpZW50LCAkdXJpKSB7CiAgICAgICAgJHVyaSA9IHByZWdfcmVwbGFjZSgiI1VzYWdlUmVjb3JkcyMiLCAiVXNhZ2UvUmVjb3JkcyIsICR1cmkpOwogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJGNsaWVudCwgJHVyaSk7CiAgICB9Cn0KCg==]]></data>
	</file>
	<file>
	  <filename>/lib/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/README-GATEWAYS</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[RWFjaCB3b3JraW5nIGdhdGV3YXkgbmVlZHMgYSBjbGFzcyBmaWxlLCBuYW1lZCBsaWtlICdjbGFzcy5zb21lbmFtZV9zbXNfZ2F0ZXdheS5waHAnLApsb2NhdGVkIGluIG1vZHVsZSBkaXJlY3RvcnkgJy4uLi9saWIvZ2F0ZXdheXMnLCBhbmQgY29udGFpbmluZyBhdCBsZWFzdCBhIApjb3JyZXNwb25kaW5nIGNsYXNzIG5hbWVkIGxpa2UgJ3NvbWVuYW1lX3Ntc19nYXRld2F5Jy4KCkZvciBlZmZpY2llbmN5IHB1cnBvc2VzLCBpdCB3b3VsZCBiZSBiZXN0IHRvIGxlYXZlIGFzIGZldyBjbGFzc2VzIGFzIHBvc3NpYmxlIGluCnRoZSBnYXRld2F5cyBkaXJlY3RvcnkuIFBhcmsgdGhlIHVudXNlZCBvbmVzIHNvbWV3aGVyZSBlbHNlLgoKTkVXIEdBVEVXQVlTCgpUaGUgZmlsZSAnY2xhc3Muc2tlbGV0b25fc21zX2dhdGV3YXkucGhwJyBjb25zdGl0dXRlcyBhIHRlbXBsYXRlIG9mIHNvcnRzLgoKR2F0ZXdheSBjbGFzcyBkZXZlbG9wZXJzIHNob3VsZCBiZWNvbWUgZmFtaWxpYXIgd2l0aCB0aGUgQVBJIG9mIHRoZSBwYXJlbnQtY2xhc3MKKHNtc19nYXRld2F5X2Jhc2UpLCBhbmQgbWF5IGdldCBzb21lIGluc3BpcmF0aW9uIGZyb20gZXhpc3RpbmcgZ2F0ZXdheXMsIG9mIGNvdXJzZS4KCkV4aXN0aW5nICdpbmZyYXN0cnVjdHVyZScgZnJvbSBnYXRld2F5IHByb3ZpZGVycyBjYW4gYmUgdXNlZCwgcHJvdmlkZWQgdGhlcmUncyBhCnN1aXRhYmxlIGludGVyZmFjZSB0byBpdC4KCkFkZCBhbnkgdHJhbnNsYXRlYWJsZSBzdHJpbmdzIHRvIExhbmcgZmlsZShzKSwgaW5jbHVkaW5nIG9uZSBzdHJpbmcgdG8gYmUgdXNlZCBhcwphIG9uZS1saW5lIHJlZmVyZW5jZSBpbiBtb2R1bGUgaGVscCAoYW5kIGluc2VydCBpdCB0aGVyZSkuCgpodHRwOi8vd3d3LnByb2dyYW1tYWJsZXdlYi5jb20vY2F0ZWdvcnkvYWxsL21hc2h1cHM/a2V5d29yZD1TTVMKbWF5IGJlIGEgdXNlZnVsIHJlZmVyZW5jZQ==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgokZGIgPSBjbXNtcygpLT5HZXREYigpOwokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiRwcmVmID0gY21zX2RiX3ByZWZpeCgpOwokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdFTkdJTkUgTXlJU0FNIENIQVJBQ1RFUiBTRVQgdXRmOCBDT0xMQVRFIHV0ZjhfZ2VuZXJhbF9jaScsCiAnbXlzcWxpJyA9PiAnRU5HSU5FIE15SVNBTSBDSEFSQUNURVIgU0VUIHV0ZjggQ09MTEFURSB1dGY4X2dlbmVyYWxfY2knKTsKCiRmbGRzID0gIgppZCBJIEtFWSBBVVRPLAptb2JpbGUgQygyNSksCm5hbWUgQygyNSkgS0VZCiI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTCgkcHJlZi4nbW9kdWxlX3Ntc2dfbnVtcycsJGZsZHMsJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJGZsZHMgPSAiCmdhdGVfaWQJSSBLRVksCmFsaWFzIEMoNDgpLAp0aXRsZSBDKDEyOCkgTk9UTlVMTCwKZGVzY3JpcHRpb24gQygyNTYpLAplbmFibGVkIEkoMSkgTk9UTlVMTCBERUZBVUxUIDEsCmFjdGl2ZSBJKDEpIE5PVE5VTEwgREVGQVVMVCAwCiI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTCgkcHJlZi4nbW9kdWxlX3Ntc2dfZ2F0ZXMnLCRmbGRzLCR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRkYi0+Q3JlYXRlU2VxdWVuY2UoJHByZWYuJ21vZHVsZV9zbXNnX2dhdGVzX3NlcScpOwoKLy9wb3N0Z3JlcyBzdXBwb3J0ZWQgcHJlLTEuMTEKJGZ0eXBlID0gKHByZWdfbWF0Y2goJy9teXNxbC9pJywkY29uZmlnWydkYm1zJ10pKSA/ICdWQVJCSU5BUlkoMjU2KSc6J0JJVCBWQVJZSU5HKDIwNDgpJzsKJGZsZHMgPSAiCmdhdGVfaWQgSSBOT1ROVUxMLAp0aXRsZSBDKDk2KSwKdmFsdWUgQygyNTYpLAplbmN2YWx1ZSAkZnR5cGUsCmFwaW5hbWUgQyg2NCksCnNpZ25hdHVyZSBDKDY0KSwKZW5jcnlwdCBJKDEpIERFRkFVTFQgMCwKZW5hYmxlZCBJKDEpIERFRkFVTFQgMSwKYXBpb3JkZXIgSSgxKSBERUZBVUxUIC0xCiI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTCgkcHJlZi4nbW9kdWxlX3Ntc2dfcHJvcHMnLCRmbGRzLCR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRmbGRzID0gIgptb2JpbGUgQygyNSksCmlwIEMoMjUpLAptc2cgQygxNjApLApzZGF0ZSAiLkNNU19BRE9EQl9EVDsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKCRwcmVmLidtb2R1bGVfc21zZ19zZW50JywkZmxkcywkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokdGhpcy0+U2V0UHJlZmVyZW5jZSgnaG91cmxpbWl0Jyw1KTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RheWxpbWl0JywyMCk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdsb2dzZW5kcycsVFJVRSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdsb2dkYXlzJyw3KTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2xvZ2RlbGl2ZXJpZXMnLFRSVUUpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbGFzdGNsZWFyZWQnLHRpbWUoKSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtYXN0ZXJwYXNzJywnT1dGbU5UMWRHYlU1RmJuUmxjaUJoZENCNWIzVnlJRzkzYmlCeWFYTnJJU0JFWVc1blpYSnZkWE1nWkdGMFlTRT0nKTsKCiRzYW1wbGUgPSAkdGhpcy0+TGFuZygnc2FtcGxlJyk7IC8vQ0hFQ0tNRSBMYW5nIG5vdCBpbnN0YWxsZWQgeWV0PwovL2VudGVyLW51bWJlciB0ZW1wbGF0ZQokZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdlbnRlcm51bWJlcl90ZW1wbGF0ZS50cGwnKTsKJG51bWJlcnRwbCA9IChpc19maWxlKCRmbikpID8gJycuQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbikgOiBGQUxTRTsKLy9lbnRlci10ZXh0IHRlbXBsYXRlCiRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ2VudGVydGV4dF90ZW1wbGF0ZS50cGwnKTsKJHRleHR0cGwgPSAoaXNfZmlsZSgkZm4pKSA/ICcnLkBmaWxlX2dldF9jb250ZW50cygkZm4pIDogRkFMU0U7CgppZigkdGhpcy0+YmVmb3JlMjApCnsKCWlmKCRudW1iZXJ0cGwpCgl7CgkJLy9lZGl0YWJsZSAnZGVmYXVsdCBmb3IgbmV3IHRlbXBsYXRlcycgdGVtcGxhdGUKCQkkdGhpcy0+U2V0VGVtcGxhdGUoU01TRzo6UFJFRl9FTlRFUk5VTUJFUl9DT05URU5UREZMVCwkbnVtYmVydHBsKTsKCQkvL3NhbXBsZSB0ZW1wbGF0ZSwgYWxzbyB0aGUgZGVmYXVsdCBmb3IgdGhpcyB0eXBlCgkJJHRoaXMtPlNldFRlbXBsYXRlKCdlbnRlcm51bWJlcl8nLiRzYW1wbGUsJG51bWJlcnRwbCk7CgkJJG5hbWUgPSAkc2FtcGxlOwoJfQoJZWxzZQoJCSRuYW1lID0gJyc7CgkkdGhpcy0+U2V0UHJlZmVyZW5jZShTTVNHOjpQUkVGX0VOVEVSTlVNQkVSX1RQTERGTFQsJG5hbWUpOyAvL1RPRE8gQ0hFQ0sgdXNlcwoJaWYoJHRleHR0cGwpCgl7CgkJLy9lZGl0YWJsZSAnZGVmYXVsdCBmb3IgbmV3IHRlbXBsYXRlcycgdGVtcGxhdGUKCQkkdGhpcy0+U2V0VGVtcGxhdGUoU01TRzo6UFJFRl9FTlRFUlRFWFRfQ09OVEVOVERGTFQsJHRleHR0cGwpOwoJCS8vc2FtcGxlIHRlbXBsYXRlLCBhbHNvIHRoZSBkZWZhdWx0IGZvciB0aGlzIHR5cGUKCQkkdGhpcy0+U2V0VGVtcGxhdGUoJ2VudGVydGV4dF8nLiRzYW1wbGUsJHRleHR0cGwpOwoJCSRuYW1lID0gJHNhbXBsZTsKCX0KCWVsc2UKCQkkbmFtZSA9ICcnOwoJJHRoaXMtPlNldFByZWZlcmVuY2UoU01TRzo6UFJFRl9FTlRFUlRFWFRfVFBMREZMVCwkbmFtZSk7IC8vVE9ETyBDSEVDSyB1c2VzCn0KZWxzZQp7CgkkbXluYW1lID0gJHRoaXMtPkdldE5hbWUoKTsKCSR1aWQgPSBnZXRfdXNlcmlkKGZhbHNlKTsKCgkkdHR5cGUgPSBuZXcgQ21zTGF5b3V0VGVtcGxhdGVUeXBlKCk7CgkkdHR5cGUtPnNldF9vcmlnaW5hdG9yKCRteW5hbWUpOwoJJHR0eXBlLT5zZXRfbmFtZSgnZW50ZXJudW1iZXInKTsKCSR0dHlwZS0+c2V0X2RmbHRfZmxhZyhGQUxTRSk7CgkkdHR5cGUtPnNhdmUoKTsKCglpZigkbnVtYmVydHBsKQoJewoJCSR0cGwgPSBuZXcgQ21zTGF5b3V0VGVtcGxhdGUoKTsKCQkkdHBsLT5zZXRfdHlwZSgnZW50ZXJudW1iZXInKTsKCQkkdHBsLT5zZXRfbmFtZSgnZW50ZXJudW1iZXJfZGVmYXVsdGNvbnRlbnQnKTsKCQkkdHBsLT5zZXRfb3duZXIoJHVpZCk7CgkJJHRwbC0+c2V0X2NvbnRlbnQoJG51bWJlcnRwbCk7CgkJJHRwbC0+c2F2ZSgpOwoKCQkkdHBsID0gbmV3IENtc0xheW91dFRlbXBsYXRlKCk7CgkJJHRwbC0+c2V0X3R5cGUoJ2VudGVybnVtYmVyJyk7CgkJJHRwbC0+c2V0X25hbWUoJ2VudGVybnVtYmVyXycuJHNhbXBsZSk7CgkJJHRwbC0+c2V0X293bmVyKCR1aWQpOwoJCSR0cGwtPnNldF9jb250ZW50KCRudW1iZXJ0cGwpOwoJCSR0cGwtPnNhdmUoKTsKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZShTTVNHOjpQUkVGX0VOVEVSTlVNQkVSX1RQTERGTFQsJHNhbXBsZSk7Cgl9CgllbHNlCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoU01TRzo6UFJFRl9FTlRFUk5VTUJFUl9UUExERkxULCcnKTsKCgkkdHR5cGUgPSBuZXcgQ21zTGF5b3V0VGVtcGxhdGVUeXBlKCk7CgkkdHR5cGUtPnNldF9vcmlnaW5hdG9yKCRteW5hbWUpOwoJJHR0eXBlLT5zZXRfbmFtZSgnZW50ZXJ0ZXh0Jyk7CgkkdHR5cGUtPnNldF9kZmx0X2ZsYWcoRkFMU0UpOwoJJHR0eXBlLT5zYXZlKCk7CgoJaWYoJHRleHR0cGwpCgl7CgkJJHRwbCA9IG5ldyBDbXNMYXlvdXRUZW1wbGF0ZSgpOwoJCSR0cGwtPnNldF90eXBlKCdlbnRlcnRleHQnKTsKCQkkdHBsLT5zZXRfbmFtZSgnZW50ZXJ0ZXh0X2RlZmF1bHR0ZW1wbGF0ZScpOwoJCSR0cGwtPnNldF9vd25lcigkdWlkKTsKCQkkdHBsLT5zZXRfY29udGVudCgkdGV4dHRwbCk7CgkJJHRwbC0+c2F2ZSgpOwoJCgkJJHRwbCA9IG5ldyBDbXNMYXlvdXRUZW1wbGF0ZSgpOwoJCSR0cGwtPnNldF90eXBlKCdlbnRlcnRleHQnKTsKCQkkdHBsLT5zZXRfbmFtZSgnZW50ZXJ0ZXh0XycuJHNhbXBsZSk7CgkJJHRwbC0+c2V0X293bmVyKCR1aWQpOwoJCSR0cGwtPnNldF9jb250ZW50KCR0ZXh0dHBsKTsKCQkkdHBsLT5zYXZlKCk7CgkJJHRoaXMtPlNldFByZWZlcmVuY2UoU01TRzo6UFJFRl9FTlRFUlRFWFRfVFBMREZMVCwkc2FtcGxlKTsKCX0KCWVsc2UKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZShTTVNHOjpQUkVGX0VOVEVSVEVYVF9UUExERkxULCcnKTsKfQoKJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ0FkbWluaXN0ZXJTTVNHYXRld2F5cycsJHRoaXMtPkxhbmcoJ3Blcm1fYWRtaW4nKSk7CiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdNb2RpZnlTTVNHYXRld2F5cycsJHRoaXMtPkxhbmcoJ3Blcm1fbW9kaWZ5JykpOwokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignTW9kaWZ5U01TR2F0ZVRlbXBsYXRlcycsJHRoaXMtPkxhbmcoJ3Blcm1fdGVtcGxhdGVzJykpOwokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignVXNlU01TR2F0ZXdheXMnLCR0aGlzLT5MYW5nKCdwZXJtX3VzZScpKTsKCiR0aGlzLT5DcmVhdGVFdmVudCgnU01TRGVsaXZlcnlSZXBvcnRlZCcpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgokZGIgPSBjbXNtcygpLT5HZXREYigpOwokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiRwcmVmID0gY21zX2RiX3ByZWZpeCgpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCgkcHJlZi4nbW9kdWxlX3Ntc2dfbnVtcycpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoJHByZWYuJ21vZHVsZV9zbXNnX2dhdGVzJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCgkcHJlZi4nbW9kdWxlX3Ntc2dfcHJvcHMnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCRwcmVmLidtb2R1bGVfc21zZ19zZW50Jyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRkYi0+RHJvcFNlcXVlbmNlKCRwcmVmLidtb2R1bGVfc21zZ19nYXRlc19zZXEnKTsKCmlmKCR0aGlzLT5iZWZvcmUyMCkKCSR0aGlzLT5EZWxldGVUZW1wbGF0ZSgpOwplbHNlCnsKCSR0eXBlcyA9IENtc0xheW91dFRlbXBsYXRlVHlwZTo6bG9hZF9hbGxfYnlfb3JpZ2luYXRvcigkdGhpcy0+R2V0TmFtZSgpKTsKCWlmKCR0eXBlcykKCXsKCQlmb3JlYWNoKCR0eXBlcyBhcyAkdHlwZSkKCQl7CgkJCSR0ZW1wbGF0ZXMgPSAkdHlwZS0+Z2V0X3RlbXBsYXRlX2xpc3QoKTsKCQkJaWYoJHRlbXBsYXRlcykKCQkJewoJCQkJZm9yZWFjaCgkdGVtcGxhdGVzIGFzICR0cGwpCgkJCQkJJHRwbC0+ZGVsZXRlKCk7CgkJCX0KCQkJJHR5cGUtPmRlbGV0ZSgpOwoJCX0KCX0KfQoKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoKTsKCiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdBZG1pbmlzdGVyU01TR2F0ZXdheXMnKTsKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ01vZGlmeVNNU0dhdGV3YXlzJyk7CiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdNb2RpZnlTTVNHYXRlVGVtcGxhdGVzJyk7CgokdGhpcy0+UmVtb3ZlRXZlbnQoJHRoaXMtPkdldE5hbWUoKSwnU01TRGVsaXZlcnlSZXBvcnRlZCcpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBSZWZlciB0byBsaWNlbmNlIGFuZCBvdGhlciBkZXRhaWxzIGF0IHRoZSB0b3Agb2YgZmlsZSBTTVNHLm1vZHVsZS5waHAKIyBNb3JlIGluZm8gYXQgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXNnCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgokZGIgPSBjbXNtcygpLT5HZXREYigpOwokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiRwcmVmID0gY21zX2RiX3ByZWZpeCgpOwokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdFTkdJTkUgTXlJU0FNIENIQVJBQ1RFUiBTRVQgdXRmOCBDT0xMQVRFIHV0ZjhfZ2VuZXJhbF9jaScsCiAnbXlzcWxpJyA9PiAnRU5HSU5FIE15SVNBTSBDSEFSQUNURVIgU0VUIHV0ZjggQ09MTEFURSB1dGY4X2dlbmVyYWxfY2knKTsKCnN3aXRjaCgkb2xkdmVyc2lvbikKewp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/SMSG.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlOiBTTVNHCiMgQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgVG9tIFBoYW5lIDx0cGd3d0BvbmVwb3N0Lm5ldD4KIyBEZXJpdmVkIGluIHBhcnQgZnJvbSBtb2R1bGUgQ0dTTVMgYnkgUm9iZXJ0IENhbXBiZWxsIDxjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnPgojIFRoaXMgbW9kdWxlIHByb3ZpZGVzIHRoZSBhYmlsaXR5IGZvciBvdGhlciBtb2R1bGVzIHRvIHNlbmQgU01TIG1lc3NhZ2VzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIE1hZGUgU2ltcGxlIChDKSAyMDA1LTIwMTUgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIEl0cyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgbW9kdWxlIGlzIGZyZWUgc29mdHdhcmUuIFlvdSBjYW4gcmVkaXN0cmlidXRlIGFuZC9vciBtb2RpZnkgaXQKIyB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQKIyBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoYXQgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBtb2R1bGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CiMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZQojIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFJlYWQgdGhlIExpY2Vuc2Ugb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNBR1BMCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpjbGFzcyBTTVNHIGV4dGVuZHMgQ01TTW9kdWxlCnsKCWNvbnN0IE1PRE5BTUUgPSAnU01TRyc7Cgljb25zdCBBVURJVF9TRU5EID0gMTsKCWNvbnN0IEFVRElUX0RFTElWID0gMjsKCWNvbnN0IEFVRElUX0VSUiA9IDM7CgkvL3RoZXNlIGFyZSBhbGwgbGlrZSBwcmVmaXguYmFzZQoJY29uc3QgUFJFRl9FTlRFUk5VTUJFUl9UUExERkxUID0gJ2VudGVybnVtYmVyX2RmbHR0cGwnOwoJY29uc3QgUFJFRl9FTlRFUk5VTUJFUl9DT05URU5UREZMVCA9ICdlbnRlcm51bWJlcl9kZWZhdWx0Y29udGVudCc7Cgljb25zdCBQUkVGX0VOVEVSVEVYVF9UUExERkxUID0gJ2VudGVydGV4dF9kZmx0dHBsJzsKCWNvbnN0IFBSRUZfRU5URVJURVhUX0NPTlRFTlRERkxUID0gJ2VudGVydGV4dF9kZWZhdWx0Y29udGVudCc7CgoJcHVibGljICRiZWZvcmUyMDsKCWNvbnN0IEVOQ19ST1VORFMgPSAxMDAwMDsKCS8vd2hldGhlciBwYXNzd29yZCBlbmNyeXB0aW9uIGlzIHN1cHBvcnRlZAoJcHVibGljICRoYXZlbWNyeXB0OwoKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCgl7CgkJcGFyZW50OjpfX2NvbnN0cnVjdCgpOwoJCWdsb2JhbCAkQ01TX1ZFUlNJT047CgkJJHRoaXMtPmJlZm9yZTIwID0gKHZlcnNpb25fY29tcGFyZSgkQ01TX1ZFUlNJT04sJzIuMCcpIDwgMCk7CgkJJHRoaXMtPmhhdmVtY3J5cHQgPSBmdW5jdGlvbl9leGlzdHMoJ21jcnlwdF9lbmNyeXB0Jyk7CgkJJHRoaXMtPlJlZ2lzdGVyTW9kdWxlUGx1Z2luKFRSVUUpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBBbGxvd0F1dG9JbnN0YWxsKCkKCXsKCQlyZXR1cm4gRkFMU0U7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIEFsbG93QXV0b1VwZ3JhZGUoKQoJewoJCXJldHVybiBGQUxTRTsKCX0KCgkvL2ZvciAxLjExKwoJcHVibGljIGZ1bmN0aW9uIEFsbG93U21hcnR5Q2FjaGluZygpCgl7CgkJcmV0dXJuIFRSVUU7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIEdldE5hbWUoKQoJewoJCXJldHVybiBzZWxmOjpNT0ROQU1FOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIEdldEhlbHAoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnaGVscF9tb2R1bGUnKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gR2V0VmVyc2lvbigpCgl7CgkJcmV0dXJuICcxLjAnOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBHZXRBdXRob3IoKQoJewoJCXJldHVybiAndG9tcGhhbnRvbyc7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkKCXsKCQlyZXR1cm4gJ3RwZ3d3QG9uZXBvc3QubmV0JzsKCX0KCglwdWJsaWMgZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkKCXsKCQlyZXR1cm4gJycuQGZpbGVfZ2V0X2NvbnRlbnRzKGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ2luY2x1ZGUnLCdjaGFuZ2Vsb2cuaW5jJykpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpCgl7CgkJcmV0dXJuIFRSVUU7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIEhhc0NhcGFiaWxpdHkoJGNhcGFiaWxpdHksJHBhcmFtcyA9IGFycmF5KCkpCgl7CgkJc3dpdGNoKCRjYXBhYmlsaXR5KQoJCXsKCQkgY2FzZSAnU01TZ2F0ZXdheSc6CgkJIGNhc2UgJ1NNU21lc3NhZ2luZyc6CgkJIGNhc2UgJ1NNU0cnOgoJCSBjYXNlICdDR1NNUyc6CgkJCXJldHVybiBUUlVFOwoJCSBkZWZhdWx0OgoJCQlyZXR1cm4gRkFMU0U7CgkJfQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBIYXNBZG1pbigpCgl7CgkJcmV0dXJuIFRSVUU7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIExhenlMb2FkQWRtaW4oKQoJewoJCXJldHVybiBGQUxTRTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uKCkKCXsKCQlyZXR1cm4gJ2V4dGVuc2lvbnMnOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ21vZHVsZV9kZXNjcmlwdGlvbicpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKQoJewoJCXJldHVybgoJCSAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdBZG1pbmlzdGVyU01TR2F0ZXdheXMnKSB8fAoJCSAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnlTTVNHYXRld2F5cycpIHx8CgkJICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeVNNU0dhdGVUZW1wbGF0ZXMnKSB8fAoJCSAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdVc2VTTVNHYXRld2F5cycpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBBZG1pblN0eWxlKCkKCXsKCQkkZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCdjc3MnLCdhZG1pbi5jc3MnKTsKCQlyZXR1cm4gJycuQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7Cgl9CgovKglwdWJsaWMgZnVuY3Rpb24gR2V0SGVhZGVySFRNTCgpCgl7Cgl9CiovCglwdWJsaWMgZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkKCXsKCQlyZXR1cm4gYXJyYXkoKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gTGF6eUxvYWRGcm9udGVuZCgpCgl7CgkJcmV0dXJuIEZBTFNFOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBNaW5pbXVtQ01TVmVyc2lvbigpCgl7CgkJcmV0dXJuICcxLjknOwoJfQoKLyoJcHVibGljIGZ1bmN0aW9uIE1heGltdW1DTVNWZXJzaW9uKCkKCXsKCX0KKi8KCglwdWJsaWMgZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnY29uZmlybV91bmluc3RhbGwnKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygncG9zdHVuaW5zdGFsbCcpOwoJfQoKCS8vc2V0dXAgZm9yIHByZS0xLjEwCglwdWJsaWMgZnVuY3Rpb24gU2V0UGFyYW1ldGVycygpCgl7CgkJJHRoaXMtPkluaXRpYWxpemVBZG1pbigpOwoJCSR0aGlzLT5Jbml0aWFsaXplRnJvbnRlbmQoKTsKCX0KCgkvL3BhcnRpYWwgc2V0dXAgZm9yIHByZS0xLjEwLCBiYWNrZW5kIHNldHVwIGZvciAxLjEwKwoJcHVibGljIGZ1bmN0aW9uIEluaXRpYWxpemVGcm9udGVuZCgpCgl7CgkJJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdhY3Rpb24nLENMRUFOX1NUUklORyk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2Rlc3RwYWdlJyxDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdlbnRlcm51bWJlcnRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdlbnRlcnRleHR0ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZ2F0ZW5hbWUnLENMRUFOX1NUUklORyk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2lubGluZScsQ0xFQU5fSU5UKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbGlua3RleHQnLENMRUFOX1NUUklORyk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Ntc2tleScsQ0xFQU5fU1RSSU5HKTsgLy9oYXNoIG9mIGNhY2hlZCBkYXRhLCBmb3IgaW50ZXJuYWwgdXNlIG9ubHkKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc21zbnVtJyxDTEVBTl9JTlQpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzbXN0ZXh0JyxDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCd1cmxvbmx5JyxDTEVBTl9JTlQpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKENMRUFOX1JFR0VYUC4nL3Ntc2dfLiovJyxDTEVBTl9OT05FKTsKCX0KCgkvL3BhcnRpYWwgc2V0dXAgZm9yIHByZS0xLjEwLCBiYWNrZW5kIHNldHVwIGZvciAxLjEwKwoJcHVibGljIGZ1bmN0aW9uIEluaXRpYWxpemVBZG1pbigpCgl7CgkJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignYWN0aW9uJywnZW50ZXJudW1iZXInLCR0aGlzLT5MYW5nKCdoZWxwX2FjdGlvbicpKTsKCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdkZXN0cGFnZScsJzAnLCR0aGlzLT5MYW5nKCdoZWxwX2Rlc3RwYWdlJykpOwoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2VudGVybnVtYmVydGVtcGxhdGUnLCcnLCR0aGlzLT5MYW5nKCdoZWxwX2VudGVybnVtYmVydGVtcGxhdGUnKSk7CgkJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZW50ZXJ0ZXh0dGVtcGxhdGUnLCcnLCR0aGlzLT5MYW5nKCdoZWxwX2VudGVybnVtYmVydGVtcGxhdGUnKSk7CgkJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZ2F0ZW5hbWUnLCcnLCR0aGlzLT5MYW5nKCdoZWxwX2dhdGVuYW1lJykpOwoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2lubGluZScsMCwkdGhpcy0+TGFuZygnaGVscF9pbmxpbmUnKSk7CgkJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbGlua3RleHQnLCR0aGlzLT5MYW5nKCdzZW5kX3RvX21vYmlsZScpLCR0aGlzLT5MYW5nKCdoZWxwX2xpbmt0ZXh0JykpOwoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3Ntc251bScsMCwkdGhpcy0+TGFuZygnaGVscF9zbXNudW0nKSk7CgkJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc21zdGV4dCcsJycsJHRoaXMtPkxhbmcoJ2hlbHBfc21zdGV4dCcpKTsKCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCd1cmxvbmx5JywwLCR0aGlzLT5MYW5nKCdoZWxwX3VybG9ubHknKSk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIEdldEV2ZW50RGVzY3JpcHRpb24oJGV2ZW50bmFtZSkKCXsKCQlzd2l0Y2goJGV2ZW50bmFtZSkKCQl7CgkJIGNhc2UgJ1NNU0RlbGl2ZXJ5UmVwb3J0ZWQnOgoJCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2V2ZW50X2Rlc2NfZGVsaXZlcnknKTsKCQkgZGVmYXVsdDoKCQkJcmV0dXJuICcnOwoJCX0KCX0KCglwdWJsaWMgZnVuY3Rpb24gR2V0RXZlbnRIZWxwKCRldmVudG5hbWUpIAoJewoJCXN3aXRjaCgkZXZlbnRuYW1lKQoJCXsKCQkgY2FzZSAnU01TRGVsaXZlcnlSZXBvcnRlZCc6CgkJCXJldHVybiAkdGhpcy0+TGFuZygnZXZlbnRfaGVscF9kZWxpdmVyeScpOwoJCSBkZWZhdWx0OgoJCQlyZXR1cm4gJyc7CgkJfQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBnZXRfdGFza3MoKQoJewoJCXJldHVybiBuZXcgc21zZ19jbGVhcmxvZ190YXNrKCk7Cgl9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/adminpanel.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICFlbXB0eSgkbWVzc2FnZSl9PHA+eyRtZXNzYWdlfTwvcD57L2lmfQoKeyR0YWJzaGVhZGVyfQp7aWYgKCRwbW9kIHx8ICRwdXNlKX0KeyR0YWJzdGFydF9nYXRlc30Ke2lmICRwbW9kfQp7JGZvcm1zdGFydF9nYXRlc30KPGRpdiBjbGFzcz0icGFnZWlucHV0IHBhZ2VvdmVyZmxvdyI+CiA8cCBjbGFzcz0icGFnZXRleHQiPnskcmVwb3J0aW5nX3VybH06PC9wPgogPHA+eyRyZXBvcnR1cmx9PC9wPgogPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGRlZmF1bHRfZ2F0ZXdheX06PC9wPgogPHNlbGVjdCBpZD0ic21zX2dhdGV3YXkiIG5hbWU9InskYWN0aW9uaWR9c21zX2dhdGV3YXkiPgogIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kZ2F0ZXNuYW1lcyBzZWxlY3RlZD0kZ2F0ZWN1cnJlbnR9CiA8L3NlbGVjdD4Ke2ZvcmVhY2ggZnJvbT0kZ2F0ZXNkYXRhIGtleT1hbGlhcyBpdGVtPW9uZX0KIDxkaXYgaWQ9InskYWxpYXN9IiBjbGFzcz0ic21zX2dhdGV3YXlfcGFuZWwiIHN0eWxlPSJtYXJnaW46MC41ZW0gMDsiPgp7JG9uZX0KIDwvZGl2Pgp7L2ZvcmVhY2h9CiA8cCBzdHlsZT0ibWFyZ2luLXRvcDoxZW0iPgogPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JHN1Ym1pdH0iIC8+CiA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskY2FuY2VsfSIgLz4KIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0Ke2Vsc2V9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cjx0YWJsZSBjbGFzcz0icGFnZXRhYmxlIiBzdHlsZT0iYm9yZGVyOjA7Ij4KIDx0aGVhZD48dHI+CiAgPHRoPnskdGl0bGVuYW1lfTwvdGg+CiAgPHRoPnskdGl0bGVkZWZhdWx0fTwvdGg+CiA8L3RyPjwvdGhlYWQ+Cjx0Ym9keT4Ke2ZvcmVhY2ggZnJvbT0kZ2F0ZXNkYXRhIGl0ZW09b25lfQp7Y3ljbGUgbmFtZT1nYXRlcyB2YWx1ZXM9InJvdzEscm93MiIgYXNzaWduPSdyb3djbGFzcyd9CiA8dHIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPgp7JG9uZX0KIDwvdHI+CnsvZm9yZWFjaH0KPC90Ym9keT48L3RhYmxlPgo8L2Rpdj4Key9pZn17KiRwbW9kKn0KeyRlbmR0YWJ9Cgp7JHRhYnN0YXJ0X3Rlc3R9CjxkaXYgY2xhc3M9InBhZ2VpbnB1dCBwYWdlb3ZlcmZsb3ciPgo8cD57JGluZm9fc21zdGVzdH08L3A+CnskZm9ybXN0YXJ0X3Rlc3R9CiA8cCBjbGFzcz0icGFnZXRleHQiPnskcGhvbmVfbnVtYmVyfTo8L3A+CiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1tb2JpbGUiIHNpemU9IjIwIiBtYXhsZW5ndGg9IjIwIiAvPgogPGJyIC8+PGJyIC8+CiA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9Inskc3VibWl0fSIgLz4KeyRmb3JtZW5kfQo8L2Rpdj4KeyRlbmR0YWJ9Cgp7JHRhYnN0YXJ0X21vYmlsZXN9CjxkaXYgY2xhc3M9InBhZ2VpbnB1dCBwYWdlb3ZlcmZsb3ciPgp7aWYgIWVtcHR5KCRudW1iZXJzKX08dGFibGUgY2xhc3M9InBhZ2V0YWJsZSIgc3R5bGU9ImJvcmRlcjowOyI+CiA8dGhlYWQ+PHRyPgogIDx0aD57JGlkfTwvdGg+CiAgPHRoPnskdGl0bGVuYW1lfTwvdGg+CntpZiAkcG1vZH0gPHRoPnskbnVtYmVyfTwvdGg+CiAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPnsvaWZ9CiA8L3RyPjwvdGhlYWQ+CiA8dGJvZHk+Cntmb3JlYWNoIGZyb209JG51bWJlcnMgaXRlbT1vbmV9CntjeWNsZSBuYW1lPXBob25lcyB2YWx1ZXM9InJvdzEscm93MiIgYXNzaWduPSdyb3djbGFzcyd9CiAgPHRyIGNsYXNzPSJ7JHJvd2NsYXNzfSIgb25tb3VzZW92ZXI9InRoaXMuY2xhc3NOYW1lPSd7JHJvd2NsYXNzfWhvdmVyJzsiIG9ubW91c2VvdXQ9InRoaXMuY2xhc3NOYW1lPSd7JHJvd2NsYXNzfSc7Ij4KICAgPHRkPnskb25lLT5pZH08L3RkPgogICA8dGQ+eyRvbmUtPm5hbWV9PC90ZD4KICAgPHRkPnskb25lLT5tb2JpbGV9PC90ZD4Ke2lmICRwbW9kfSA8dGQ+eyRvbmUtPmVkaXRsaW5rfTwvdGQ+CiAgIDx0ZD57JG9uZS0+ZGVsZXRlbGlua308L3RkPnsvaWZ9CiAgPC90cj4Key9mb3JlYWNofQogPC90Ym9keT4KPC90YWJsZT57ZWxzZX0KPHA+eyRub251bWJlcnN9PC9wPgp7L2lmfXsqJG51bWJlcnMqfQp7aWYgJHBtb2R9PGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPgp7JGFkZF9tb2JpbGV9CjwvZGl2PnsvaWZ9CjwvZGl2Pgp7JGVuZHRhYn0Key9pZn17KiRwbW9kfHwkcHVzZSp9Cgp7aWYgKCRwdHBsfHwgJHB1c2UpfQp7JHRhYnN0YXJ0X2VudGVybnVtYmVyfQo8ZGl2IGNsYXNzPSJwYWdlaW5wdXQgcGFnZW92ZXJmbG93Ij4KPHRhYmxlIGNsYXNzPSJwYWdldGFibGUiPgogPHRoZWFkPjx0cj4KICA8dGg+eyR0aXRsZW5hbWV9PC90aD4KICA8dGg+eyR0aXRsZWRlZmF1bHR9PC90aD4Ke2lmICRwdHBsfTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CiAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD57L2lmfQogPC90cj48L3RoZWFkPgogPHRib2R5Pgp7Zm9yZWFjaCBmcm9tPSRlbnRlcm51bWJlcl9pdGVtcyBpdGVtPW9uZX0Ke2N5Y2xlIG5hbWU9bnVtdHBsIHZhbHVlcz0icm93MSxyb3cyIiBhc3NpZ249J3Jvd2NsYXNzJ30KICA8dHIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPgogICA8dGQ+eyRvbmUtPm5hbWV9PC90ZD4KICAgPHRkPnskb25lLT5kZWZhdWx0fTwvdGQ+CntpZiAkcHRwbH0gPHRkPnskb25lLT5lZGl0bGlua308L3RkPgogICA8dGQ+eyRvbmUtPmRlbGV0ZWxpbmt9PC90ZD57L2lmfQogIDwvdHI+CnsvZm9yZWFjaH0KIDwvdGJvZHk+CjwvdGFibGU+CntpZiAkcHRwbH08YnIgLz4KPHAgY2xhc3M9InBhZ2VvcHRpb25zIj57JGFkZF9lbnRlcm51bWJlcl90ZW1wbGF0ZX08L3A+ey9pZn17KiRwdHBsKn0KPC9kaXY+CnskZW5kdGFifQoKeyR0YWJzdGFydF9lbnRlcnRleHR9CjxkaXYgY2xhc3M9InBhZ2VpbnB1dCBwYWdlb3ZlcmZsb3ciPgo8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSI+CiA8dGhlYWQ+PHRyPgogIDx0aD57JHRpdGxlbmFtZX08L3RoPgogIDx0aD57JHRpdGxlZGVmYXVsdH08L3RoPgp7aWYgJHB0cGx9IDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CiAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD57L2lmfQogPC90cj48L3RoZWFkPgogPHRib2R5Pgp7Zm9yZWFjaCBmcm9tPSRlbnRlcnRleHRfaXRlbXMgaXRlbT1vbmV9CntjeWNsZSBuYW1lPXRleHR0cGwgdmFsdWVzPSJyb3cxLHJvdzIiIGFzc2lnbj0ncm93Y2xhc3MnfQogIDx0ciBjbGFzcz0ieyRyb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc30nOyI+CiAgIDx0ZD57JG9uZS0+bmFtZX08L3RkPgogICA8dGQ+eyRvbmUtPmRlZmF1bHR9PC90ZD4Ke2lmICRwdHBsfSA8dGQ+eyRvbmUtPmVkaXRsaW5rfTwvdGQ+CiAgIDx0ZD57JG9uZS0+ZGVsZXRlbGlua308L3RkPnsvaWZ9CiAgPC90cj4Key9mb3JlYWNofQogPC90Ym9keT4KPC90YWJsZT4Ke2lmICRwdHBsfTxiciAvPgo8cCBjbGFzcz0icGFnZW9wdGlvbnMiPnskYWRkX2VudGVydGV4dF90ZW1wbGF0ZX08L3A+ey9pZn17KiRwdHBsKn0KPC9kaXY+CnskZW5kdGFifQp7L2lmfXsqJHB0cGx8fCRwdXNlKn0KCntpZiAkcGFkbX0KeyR0YWJzdGFydF9zZWN1cml0eX0KeyRmb3Jtc3RhcnRfc2VjdXJpdHl9CjxkaXYgY2xhc3M9InBhZ2VpbnB1dCBwYWdlb3ZlcmZsb3ciPgogPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2hvdXJseWxpbWl0fTo8L3A+CiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1ob3VybGltaXQiIHZhbHVlPSJ7JGhvdXJsaW1pdH0iIHNpemU9IjMiIG1heGxlbmd0aD0iMyIgLz4KIDxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9kYWlseWxpbWl0fTo8L3A+CiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1kYXlsaW1pdCIgdmFsdWU9InskZGF5bGltaXR9IiBzaXplPSIzIiBtYXhsZW5ndGg9IjQiIC8+CiA8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfbG9nc2VuZHN9OjwvcD4KIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRhY3Rpb25pZH1sb2dzZW5kcyJ7aWYgJGxvZ3NlbmRzfSBjaGVja2VkPSJjaGVja2VkInsvaWZ9IC8+CiA8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfbG9ncmV0YWlufTo8L3A+CiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1sb2dkYXlzIiB2YWx1ZT0ieyRsb2dkYXlzfSIgc2l6ZT0iMiIgbWF4bGVuZ3RoPSIzIiAvPgogPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2xvZ2RlbGl2ZXJzfTo8L3A+CiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InskYWN0aW9uaWR9bG9nZGVsaXZlcmllcyJ7aWYgJGxvZ2RlbGl2ZXJpZXN9IGNoZWNrZWQ9ImNoZWNrZWQiey9pZn0gLz4KIDxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9wYXNzd29yZH06PC9wPgogPHRleHRhcmVhIGlkPSJ7JGFjdGlvbmlkfXBhc3N3ZCIgbmFtZT0ieyRhY3Rpb25pZH1tYXN0ZXJwYXNzIiBjbGFzcz0iY2xvYWtlZCIgcm93cz0iMiIgY29scz0iNDAiPnskbWFzdGVycGFzc308L3RleHRhcmVhPgogPGJyIC8+PGJyIC8+CiA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9Inskc3VibWl0fSIgLz4KIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRjYW5jZWx9IiAvPgo8L2Rpdj4KeyRmb3JtZW5kfQp7JGVuZHRhYn0Key9pZn17KiRwYWRtKn0KeyR0YWJzZm9vdGVyfQoKe2lmICFlbXB0eSgkanNpbmNzKX17Zm9yZWFjaCBmcm9tPSRqc2luY3MgaXRlbT1maWxlfXskZmlsZX0Key9mb3JlYWNofXsvaWZ9CntpZiAhZW1wdHkoJGpzZnVuY3MpfQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci8vPCFbQ0RBVEFbCntmb3JlYWNoIGZyb209JGpzZnVuY3MgaXRlbT1mdW5jfXskZnVuY317L2ZvcmVhY2h9Ci8vXV0+Cjwvc2NyaXB0Pgp7L2lmfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/edit_mobile.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdhZGRlZGl0X21vYmlsZScpfTwvaDM+CnskZm9ybXN0YXJ0fQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ25hbWUnKX08L3A+IAogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9bmFtZSIgdmFsdWU9InskbmFtZX0iIHNpemU9IjI1IiBtYXhsZW5ndGg9IjI1IiAvPgogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Bob25lX251bWJlcicpfTwvcD4gCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1tb2JpbGUiIHZhbHVlPSJ7JG1vYmlsZX0iIHNpemU9IjI1IiBtYXhsZW5ndGg9IjI1IiAvPgogIDwvcD4KPC9kaXY+CjxiciAvPgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9IiAvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYW5jZWwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9IiAvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0K]]></data>
	</file>
	<file>
	  <filename>/templates/edit_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICFlbXB0eSgkdGVtcGxhdGVfaW5mbyl9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+eyR0ZW1wbGF0ZV9pbmZvfTwvZGl2Pgp7L2lmfQp7JGZvcm1zdGFydH0KeyRoaWRkZW59CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiA8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfbmFtZX06PC9wPgogeyRuYW1lfQogPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2NvbnRlbnR9OjwvcD4KIHskY29udGVudH0KIDxiciAvPjxiciAvPgogeyRzdWJtaXR9IHskY2FuY2VsfXtpZiBpc3NldCgkYXBwbHkpfSB7JGFwcGx5fXsvaWZ9CjwvZGl2Pgp7JGZvcm1lbmR9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/enternumber_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogZGVmYXVsdCBlbnRlci1udW1iZXIgdGVtcGxhdGUgKn0KPGRpdiBjbGFzcz0ic21zZ19lbnRlcm51bWJlciI+CntpZiAhZW1wdHkoJGVycm9yKX08cCBjbGFzcz0iZXJyb3Jtc2ciPnskZXJyb3J9PC9wPnsvaWZ9CntpZiAhZW1wdHkoJG1lc3NhZ2UpfTxwIGNsYXNzPSJpbmZvbXNnIj57JG1lc3NhZ2V9PC9wPnsvaWZ9CnskZm9ybXN0YXJ0fQp7aWYgIWVtcHR5KCRnYXRlbmFtZSl9PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1nYXRlbmFtZSIgdmFsdWU9InskZ2F0ZW5hbWV9IiAvPnsvaWZ9CiA8ZGl2IGNsYXNzPSJyb3ciPgogIDxwIGNsYXNzPSJsZWZ0Y29sIj57JG1vZC0+TGFuZygnZW50ZXJfbW9iaWxlX251bWJlcicpfTo8L3A+CiAgPHAgY2xhc3M9InJpZ2h0Y29sIj4KICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9c21zZ19tb2JpbGUiIHZhbHVlPSIiIHNpemU9IjE0IiBtYXhsZW5ndGg9IjE0IiAvPgogIDwvcD4KIDwvZGl2PgogPGJyIC8+CiA8cCBjbGFzcz0icmlnaHRjb2wiPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c21zZ19zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc2VuZCcpfSIgLz4KIDwvcD4KeyRmb3JtZW5kfQo8L2Rpdj4K]]></data>
	</file>
	<file>
	  <filename>/templates/entertext_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogZGVmYXVsdCBlbnRlci10ZXh0IHRlbXBsYXRlICp9CjxkaXYgaWQ9InNtc2dfZW50ZXJ0ZXh0Ij4Ke2lmICFlbXB0eSgkZXJyb3IpfTxwIGNsYXNzPSJlcnJvcm1zZyI+eyRlcnJvcn08L3A+ey9pZn0Ke2lmICFlbXB0eSgkbWVzc2FnZSl9PHAgY2xhc3M9ImluZm9tc2ciPnskbWVzc2FnZX08L3A+ey9pZn0KeyRmb3Jtc3RhcnR9CntpZiAhZW1wdHkoJGdhdGVuYW1lKX08aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWdhdGVuYW1lIiB2YWx1ZT0ieyRnYXRlbmFtZX0iIC8+ey9pZn0KIDx0ZXh0YXJlYSBuYW1lPSJ7JGFjdGlvbmlkfXNtc2dfc21zdGV4dCIgaWQ9InNtc2dfZW50ZXJ0ZXh0IiByb3dzPSI0IiBjb2xzPSI0MCIgb25rZXlwcmVzcz0ic21zZ19lbnRlcnRleHRfb25jaGFuZ2UoKTsiPnskc21zdGV4dH08L3RleHRhcmVhPgogPGJyIC8+PGJyIC8+CiA8aW5wdXQgdHlwZT0ic3VibWl0IiBpZD0ic21zZ19lbnRlcnRleHRfc3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXNtc2dfc3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIgLz4KIDxzcGFuIGlkPSJzbXNnX2NoYXJzbGVmdCI+eyRtYXhzbXNjaGFyc308L3NwYW4+CnskZm9ybWVuZH0KPC9kaXY+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLy88IVtDREFUQVt7bGl0ZXJhbH0KdmFyIHN0ID0gbnVsbCwgY2wgPSBudWxsOwpmdW5jdGlvbiBzbXNnX2VudGVydGV4dF9vbmNoYW5nZSgpIHsKIGlmKHN0ID09IG51bGwpIHN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Ntc2dfZW50ZXJ0ZXh0Jyk7CiB2YXIgY2hhcnNsZWZ0ID0gey9saXRlcmFsfXskbWF4c21zY2hhcnN9e2xpdGVyYWx9IC0gc3QudmFsdWUubGVuZ3RoOwogaWYoY2hhcnNsZWZ0IDwgMCkgcmV0dXJuIGZhbHNlOwogaWYoY2wgPT0gbnVsbCkgY2wgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc21zZ19jaGFyc2xlZnQnKTsKIGNsLmlubmVySFRNTCA9IGNoYXJzbGVmdDsKIHJldHVybiB0cnVlOwp9Ci8vXV0+ey9saXRlcmFsfQo8L3NjcmlwdD4K]]></data>
	</file>
	<file>
	  <filename>/templates/gatedata_admin.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH17JHNwYWNlfX5nYXRlX2lkIiB2YWx1ZT0ieyRnYXRlaWR9IiAvPgp7aWYgIWVtcHR5KCRoaWRkZW4pfXskaGlkZGVufXsvaWZ9CjxmaWVsZHNldD4KPGxlZ2VuZD57JGdhdGV0aXRsZX08L2xlZ2VuZD4KPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDowOyI+CnskaGVscH0KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyIgc3R5bGU9Im1hcmdpbi10b3A6MWVtO3dpZHRoOmF1dG87ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KPHRhYmxlIGNsYXNzPSJwYWdldGFibGUgZ2F0ZWRhdGEiPgo8dGhlYWQ+PHRyPgo8dGg+eyR0aXRsZV90aXRsZX08L3RoPgo8dGg+eyR0aXRsZV92YWx1ZX08L3RoPgo8dGg+eyR0aXRsZV9lbmNyeXB0fTwvdGg+Cjx0aD57JHRpdGxlX2FwaW5hbWV9PC90aD4KPHRoPnskdGl0bGVfZW5hYmxlZH08L3RoPgo8dGg+eyR0aXRsZV9oZWxwfTwvdGg+Cjx0aD57JHRpdGxlX3NlbGVjdH08L3RoPgo8L3RyPjwvdGhlYWQ+Cjx0Ym9keT4Ke2ZvcmVhY2ggZnJvbT0kZGF0YSBpdGVtPW9uZSBuYW1lPWJsb2NrfQp7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIiIGFzc2lnbj1yb3djbGFzc30KPHRyIGNsYXNzPSJ7JHJvd2NsYXNzfSIgb25tb3VzZW92ZXI9InRoaXMuY2xhc3NOYW1lPSd7JHJvd2NsYXNzfWhvdmVyJzsiIG9ubW91c2VvdXQ9InRoaXMuY2xhc3NOYW1lPSd7JHJvd2NsYXNzfSc7Ij4KPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXskb25lLT5zcGFjZX10aXRsZSIgc2l6ZT0iMTUiIHZhbHVlPSJ7JG9uZS0+dGl0bGV9IiAvPjwvdGQ+Cjx0ZD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH17JG9uZS0+c3BhY2V9dmFsdWUiIHNpemU9IntpZiAhZW1wdHkoJG9uZS0+c2l6ZSl9eyRvbmUtPnNpemV9e2Vsc2V9MTV7L2lmfSIgdmFsdWU9Inskb25lLT52YWx1ZX0iIC8+PC90ZD4KPHRkPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRhY3Rpb25pZH17JG9uZS0+c3BhY2V9ZW5jcnlwdCJ7aWYgJG9uZS0+ZW5jcnlwdH0gY2hlY2tlZD0iY2hlY2tlZCJ7L2lmfSAvPjwvdGQ+Cjx0ZD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH17JG9uZS0+c3BhY2V9YXBpbmFtZSIgc2l6ZT0iMTUiIHZhbHVlPSJ7JG9uZS0+YXBpbmFtZX0iIC8+PC90ZD4KPHRkPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRhY3Rpb25pZH17JG9uZS0+c3BhY2V9ZW5hYmxlZCJ7aWYgJG9uZS0+ZW5hYmxlZH0gY2hlY2tlZD0iY2hlY2tlZCJ7L2lmfSAvPjwvdGQ+Cjx0ZD57aWYgIWVtcHR5KCRvbmUtPmhlbHApfXskb25lLT5oZWxwfT57L2lmfTwvdGQ+Cjx0ZD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InskYWN0aW9uaWR9eyRvbmUtPnNwYWNlfXNlbCIgLz48L3RkPgo8L3RyPgp7L2ZvcmVhY2h9CjwvdGJvZHk+CjwvdGFibGU+CjxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIiBzdHlsZT0ibWFyZ2luLXRvcDoxZW07Ij4KeyRhZGRpdGVtfQp7aWYgJGRjb3VudH08ZGl2IHN0eWxlPSJmbG9hdDpyaWdodDsiPnskYnRuZGVsZXRlfTwvZGl2Pgo8ZGl2IHN0eWxlPSJmbG9hdDpjbGVhciI+PC9kaXY+ey9pZn0KPC9kaXY+CjwvZmllbGRzZXQ+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/gatedata_mod.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH17JHNwYWNlfX5nYXRlX2lkIiB2YWx1ZT0ieyRnYXRlaWR9IiAvPgp7aWYgIWVtcHR5KCRoaWRkZW4pfXskaGlkZGVufXsvaWZ9CjxmaWVsZHNldD4KPGxlZ2VuZD57JGdhdGV0aXRsZX08L2xlZ2VuZD4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IiBzdHlsZT0ibWFyZ2luLXRvcDowOyI+Cntmb3JlYWNoIGZyb209JGRhdGEgaXRlbT1vbmUgbmFtZT1ibG9ja30KIDxwIGNsYXNzPSJwYWdldGV4dCJ7aWYgJHNtYXJ0eS5mb3JlYWNoLmJsb2NrLmZpcnN0fSBzdHlsZT0ibWFyZ2luLXRvcDowOyJ7L2lmfT57JG9uZS0+dGl0bGV9PC9wPgp7aWYgJG9uZS0+YXBpbmFtZX08ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPgogIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXskb25lLT5zcGFjZX12YWx1ZSIgc2l6ZT0ie2lmICFlbXB0eSgkb25lLT5zaXplKX17JG9uZS0+c2l6ZX17ZWxzZX0xNXsvaWZ9IiB2YWx1ZT0ieyRvbmUtPnZhbHVlfSIgLz4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfXskb25lLT5zcGFjZX1lbmNyeXB0IiB2YWx1ZT0ieyRvbmUtPmVuY3J5cHR9IiAvPgogPC9kaXY+ey9pZn0Ke2lmICFlbXB0eSgkb25lLT5oZWxwKX08cCBjbGFzcz0icGFnZWlucHV0Ij57JG9uZS0+aGVscH08L3A+ey9pZn0Key9mb3JlYWNofQo8L2Rpdj4KPC9maWVsZHNldD4K]]></data>
	</file>
	<file>
	  <filename>/templates/gatedata_use.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHRkPnskZ2F0ZXRpdGxlfTwvdGQ+Cjx0ZD57JGRlZmF1bHR9PC90ZD4K]]></data>
	</file>
	<file>
	  <filename>/templates/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
</module>
