<?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>Cart2</name>
	<version>1.4.2</version>
    <mincmsversion>2.2.2</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgaXMgdGhpcz88L2gzPgo8cD5UaGlzIG1vZHVsZSBpcyBhIGZvcmsgb2YgdGhlIG9yaWdpbmFsIENhcnQgbW9kdWxlLiAgaXQgd29ya3MgaW4gc2ltaWxhciB3YXlzLCBob3dldmVyIGl0IHdvcmtzIHdpdGggdGhlIChuZXcgYXMgb2YgRGVjZW1iZXIgMjAxMikgT3B0aW9ucyBtZWNoYW5pc20gaW4gdGhlIFByb2R1Y3RzIG1vZHVsZSwgYW5kIHJlcXVpcmVzIHRoYXQgU0tVcyBiZSBlbmFibGVkIGFuZCB1bmlxdWUgdGhyb3VnaG91dCBhbGwgb2YgdGhlIGRhdGEgb2YgdGhlIFByb2R1Y3RzIG1vZHVsZS48L3A+CjxoMz5XaGF0IGRvZXMgaXQgZG8/PC9oMz4KPHA+VGhpcyBpcyBhIHNpbXBsZSBtb2R1bGUgdG8gYWxsb3cgbWFpbnRhaW5pbmcgYSBzaG9wcGluZyBjYXJ0IG9mIHByb2R1Y3RzLiAgSXQgYWxsb3dzIHlvdSB0byBhZGQgcHJvZHVjdHMgdG8geW91ciBjYXJ0LCB2aWV3IHRoZW0sIGFuZCBkZWxldGUgdGhlbS48L3A+CjxoMz5Ib3cgRG8gSSB1c2UgSXQ8L2gzPgogIDxwPlRoaXMgbW9kdWxlIHdvcmtzIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIFByb2R1Y3RzIG1vZHVsZSwgb3IgYW55IG90aGVyIHN1cHBsaWVyIG1vZHVsZSBhcyBsaXN0ZWQgYW5kIHNlbGVjdGVkIGluIENHRWNvbW1lcmNlQmFzZSwgYW5kIGNhbiByZWFkIHByb2R1Y3QgaW5mb3JtYXRpb24gZnJvbSB0aGF0IG1vZHVsZS48L3A+CiAgPHA+VGhlcmUgYXJlIG11bHRpcGxlIGNhcnQgbW9kdWxlcywgdGhlcmVmb3JlIHlvdSBtdXN0IHNlbGVjdCB3aGljaCAob2YgdGhlIGluc3RhbGxlZCBhbmQgYXZhaWxhYmxlKSBjYXJ0IG1vZHVsZXMgeW91IHdvdWxkIGxpa2UgdG8gdXNlIGluIHRoZSAnQ2FydCBTZXR0aW5ncycgdGFiIG9mIENHRWNvbW1lcmNlQmFzZS4gIFRoZW4geW91IHdpbGwgYWxzbyB1c2UgdGhlIHtDYXJ0MiBza3U9J3NvbWVfc2t1J30gcGx1Z2luIHRvIGFkZCBhbiAnYWRkIHRvIGNhcnQnIGZvcm0gd2hlcmUgeW91IHdhbnQgaXQuPC9wPgo8cD5TZWNvbmRseSwgYSB0YWcgbGlrZSB7Q2FydDIgYWN0aW9uPSdteWNhcnQnfSBjb3VsZCBiZSBiZSBwbGFjZWQgb24gYSBwYWdlIG9yIHBhZ2UgdGVtcGxhdGUgdG8gYWxsb3cgdXNlcnMgdG8gc2VlIGEgYnJpZWYgc3VtbWFyeSBvZiBpdGVtcyBpbiB0aGUgY2FydC4gVGhpcyBpcyB0eXBpY2FsbHkgdXNlZCBpbiB0aGUgaGVhZGVyIG9mIGFuIGUtY29tbWVyY2Ugc2l0ZS48L3A+CjxwPlRoaXJkbHksIGEgdGFnIGxpa2Uge0NhcnQyIGFjdGlvbj0ndmlld2NhcnQnfSB3b3VsZCBiZSBwbGFjZWQgb24gYSBwYWdlIG9yIHBhZ2UgdGVtcGxhdGUgdG8gYWxsb3cgdXNlcnMgdG8gZWRpdCBhbmQgcHJldmlldyB0aGUgaXRlbXMgaW4gdGhlaXIgY2FydC48L3A+Cgo8aDM+VGlwIC8gRkFROjwvaDM+Cjx1bD4KICA8bGk+SG93IGRvIEkgYWRkIGEgJnF1b3Q7Y2hlY2tvdXQmcXVvdDsgYnV0dG9uIHRvIG15IGNhcnQ/CiAgICAgPHA+U2luY2UgdGhlIGNoZWNrb3V0IHByb2Nlc3MgaXMgaGFuZGxlZCBieSB0aGUgT3JkZXJzIG1vZHVsZSwgYW5kIHRoZSBPcmRlcnMgbW9kdWxlIGlzIHVzdWFsbHkgY2FsbGVkIG9uIGEgc2VwYXJhdGUgcGFnZSwgeW91IGp1c3QgbmVlZCB0byBjcmVhdGUgYSBsaW5rIHRvIHRoYXQgcGFnZSB3aXRoaW4geW91ciAmcXVvdDtWaWV3IENhcnQmcXVvdDsgdGVtcGxhdGUuICBpLmUuOiBhc3N1bWluZyB0aGUgYWxpYXMgdG8geW91ciBjaGVja291dCBwYWdlIGlzICZxdW90O2NoZWNrb3V0JnF1b3Q7IHRoaXMgc2hvdWxkIHdvcms6PC9wPgogICAgIDxwcmU+PGNvZGU+Jmx0O2EgaHJlZj0ie2Ntc19zZWxmbGluayBocmVmPWNoZWNrb3V0fSImZ3Q7Q2hlY2tvdXQmbHQ7L2EmZ3Q7PC9jb2RlPjwvcHJlPgoKICA8L2xpPgo8L3VsPgoKPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGUgbW9kdWxlIGF1dGhvciBpcyBpbiBubyB3YXkgb2JsaWdhdGVkIHRvIHByaXZpZGUgc3VwcG9ydCBmb3IgdGhpcyBjb2RlIGluIGFueSBmYXNoaW9uLiAgSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkEgYnVnIHRyYWNraW5nIGFuZCBmZWF0dXJlIHJlcXVlc3Qgc3lzdGVtIGhhcyBiZWVuIGNyZWF0ZWQgZm9yIHRoaXMgbW9kdWxlIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FydDIiPmhlcmU8L2E+LiAgUGxlYXNlIGJlIHZlcmJvc2UgYW5kIGRlc2NyaXB0aXZlIHdoZW4gc3VibWl0dGluZyBidWcgcmVwb3J0cyBhbmQgZmVhdHVyZSByZXF1ZXN0cywgYW5kIGZvciBidWcgcmVwb3J0cyBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBwcm92aWRlZCBzdWZmaWNpZW50IGluZm9ybWF0aW9uIHRvIHJlbGlhYmx5IHJlcHJvZHVjZSB0aGUgaXNzdWUuPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi4gIFdoZW4gZGVzY3JpYmluZyBhbiBpc3N1ZSBwbGVhc2UgbWFrZSBhbiBlZmZvcnQgdG8gcHJpdmlkZSBhbGwgcmVsYXZhbnQgaW5mb3JtYXRpb24sIGEgdGhvcm91Z2ggZGVzY3JpcHRpb24gb2YgeW91ciBpc3N1ZSwgYW5kIHN0ZXBzIHRvIHJlcHJvZHVjZSBpdCBvciB5b3VyIGRpc2N1c3Npb24gbWF5IGJlIGlnbm9yZWQuPC9saT4KPGxpPlRoZSBhdXRob3IsIGNhbGd1eTEwMDAsIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS4gIEhvd2V2ZXIsIHBsZWFzZSB1c2UgdGhpcyBhcyBhIGxhc3QgcmVzb3J0LCBhbmQgZW5zdXJlIHRoYXQgeW91IGhhdmUgZm9sbG93ZWQgYWxsIGFwcGxpY2FibGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSBmb3JnZSwgaW4gdGhlIGZvcnVtcywgZXRjLjwvbGk+CjwvdWw+Cgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA4LCBSb2JlcnQgQ2FtcGJlbCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+Jmx0O2NhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcmZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgooYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4KPHA+SG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCmFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQppbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCk1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgpzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+PGgzPkRlcGVuZGVuY2llczwvaDM+PHVsPjxsaT5DR0V4dGVuc2lvbnMgPSZndDsgMS41Ni4yPC9saT48bGk+Q0dFY29tbWVyY2VCYXNlID0mZ3Q7IDEuOC41PC9saT48L3VsPjxoMz5QYXJhbWV0ZXJzPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYWRkdG9jYXJ0dGVtcGxhdGU9IiIgLSBTcGVjaWZpZXMgYSBub24gZGVmYXVsdCB0ZW1wbGF0ZSB0byB1c2UgZm9yIHRoZSAnYWRkdG9jYXJ0JyBtb2RlLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbXljYXJ0dGVtcGxhdGU9IiIgLSBTcGVjaWZpZXMgYSBub24gZGVmYXVsdCB0ZW1wbGF0ZSB0byB1c2UgZm9yIHRoZSAgJ215Y2FydCcgbW9kZS48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHN1cHBsaWVyPSJQcm9kdWN0cyIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgd2hpY2ggc3VwcGxpZXIgbW9kdWxlIHRvIHF1ZXJ5IGluZm9ybWF0aW9uIHRvLiAgQnkgZGVmYXVsdCB0aGlzIGlzICZxdW90O1Byb2R1Y3RzJnF1b3Q7PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBza3U9IlByb2R1Y3RzIiAtIEFwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB3aGljaCBwcm9kdWN0IChieSBTS1UpIHNob3VsZCBiZSBhZGRlZCB0byB0aGUgY2FydC4gVGhpcyBzaG91bGQgbm90IGJlIHVzZWQgd2l0aCB0aGUgcHJvZHVjdCBwYXJhbWV0ZXIuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBwcmljZT0iIiAtIEFwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBvdmVycmlkaW5nIHRoZSBiYXNlIHByaWNlIG9mIGEgcHJvZHVjdC48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHByb2R1Y3Q9IlByb2R1Y3RzIiAtIEFwcGxpY2FibGUgb25seSBmb3IgdGhlIGRlZmF1bHQgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgd2hpY2ggcHJvZHVjdCAoYnkgaWQpIHNob3VsZCBiZSBhZGRlZCB0byB0aGUgY2FydC4gIFR5cGljYWxseSwgaW4gdGhlIHByb2R1Y3QgZGV0YWlsIHRlbXBsYXRlIG9mIHRoZSBwcm9kdWN0cyBtb2R1bGUsIHlvdSB3b3VsZCBhZGQge0NhcnQyIHNrdT0kZW50cnktPnNrdX0gdG8gYWxsb3cgYWRkaW5nIGl0ZW1zIHRvIHRoZSBjYXJ0IGZyb20gcHJvZHVjdCBkZXRhaWwgcGFnZXMuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiB2aWV3Y2FydHRlbXBsYXRlPSIiIC0gU3BlY2lmaWVzIGEgbm9uIGRlZmF1bHQgdGVtcGxhdGUgdG8gdXNlIGZvciB0aGUgJ3ZpZXdjYXJ0JyBtb2RlLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gdmlld2NhcnRwYWdlPSIiIC0gU3BlY2lmeSBhIGRlc3RpbmF0aW9uIHBhZ2UgZm9yIHRoZSAndmlld2NhcnQnIG1vZGUuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBoaWRlZm9ybT0iMCIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlICd2aWV3Y2FydCcgYWN0aW9uLCB0aGlzIGZsYWcgaW5kaWNhdGVzIHdldGhlciB0aGUgdmlld2NhcnQgZm9ybSBzaG91bGQgYmUgZGlzcGxheWVkPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBkZXN0cGFnZT0iIiAtIEFwcGxpY2FibGUgb25seSB0byB0aGUgJ2RlZmF1bHQnIChhZGQgdG8gY2FydCBmb3JtKSBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBwYWdlIGFsaWFzIG9yIGlkIHRvIGp1bXAgdG8gYWZ0ZXIgdGhlIGl0ZW0gaGFzIGJlZW4gYWRkZWQgdG8gdGhlIGNhcnQ8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGFjdGlvbj0iZGVmYXVsdCIgLSBTcGVjaWZpZXMgdGhlIGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGFyZSAnZGVmYXVsdCcsJ215Y2FydCcsIGFuZCAndmlld2NhcnQnLjxici8+PHVsPjxsaT5kZWZhdWx0OiBkaXNwbGF5cyBhIGZvcm0gd2l0aCBhbiAnYWRkIHRvIGNhcnQnIGJ1dHRvbiB0byBhbGxvdyBhZGRpbmcgYSBzcGVjaWZpYyBwcm9kdWN0IHRvIHRoZSBjYXJ0LiAgVGhpcyBtb2RlIHJlcXVpcmVzIHRoZSAncHJvZHVjdCcgcGFyYW1ldGVyIGJlIHN1cHBsaWVkLjwvbGk+PGxpPm15Y2FydDogRGlzcGxheXMgYSBmb3JtIHRoYXQgZGlzcGxheXMgdGhlIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgY2FydCwgYW5kIGEgJ2NoZWNrb3V0JyBidXR0b24uPC9saT48bGk+dmlld2NhcnQ6IERpc3BsYXlzIGEgZGV0YWlsZWQgZm9ybSBvZiB0aGUgY29udGVudHMgb2YgdGhlIGNhcnQsIGluY2x1ZGluZyBhIGN1cnJlbnQgdG90YWwsIGFuZCBhbGxvd3MgZGVsZXRpbmcgaXRlbXMgZnJvbSB0aGUgY2FydC48L2xpPjwvdWw+PC9saT48L3VsPg==]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuNC4yPGJyIC8+PGJyIC8+Q2hhbmdlIEhpc3Rvcnk6PGJyIC8+PHVsPgogIDxsaT5WZXJzaW9uIDEuMC41CiAgICA8cD48c3Ryb25nPk5PVEU6IFJFUVVJUkVTIFBIUCA1LjMueDwvc3Ryb25nPjwvcD4KICAgIDxwPkluaXRpYWwgcHVibGljIHJlbGVhc2UuPC9saT4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuMC43CiAgICA8cD5GaXggbWlub3IgaXNzdWUgd2hlcmUgUHJvbW90aW9ucyBpcyByZXF1aXJlZC48L3A+CiAgICA8cD5SZWdpc3RlcnMgc3RhdGljIHBsdWdpbiBvbiBpbnN0YWxsLjwvcD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuMS54CiAgICA8dWw+CiAgICAgIDxsaT5CdWcgZml4ZXMuPC9saT4KICAgICAgPGxpPkFkZHMgYWJpbGl0eSB0byBvdmVycmlkZSBwcmljZSBwZXIgc2t1IChub3Qgb3B0aW9ucyk8L2xpPgogICAgICA8bGk+QWRkcyBzdXBwb3J0IGZvciBleHRlbmRlZCBwcm9tb3Rpb25zLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMS4yLngKICAgIDxici8+CiAgICA8cCBjbGFzcz0id2FybmluZyI+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUZW1wbGF0ZXMgaGF2ZSBjaGFuZ2VkLCBhbmQgd2UgYXJlIG5vdyB1c2luZyBzbWFydHkgc2NvcGVzLiAgVGhlcmUgbWF5IGJlIGNvbXBhdGliaWxpdHkgcHJvYmxlbXMgd2l0aCB5b3VyIHRlbXBsYXRlcyBhbmQgbG9naWMuPC9wPgogICAgPHVsPgogICAgICA8bGk+QWRkcyBmdW5jdGlvbmFsaXR5IGZvciByZXN0cmljdGluZyBwdXJjaGFzZXMgYmFzZWQgb24gcW9oIGRhdGE6CiAgICAgICAgPHVsPgoJICA8bGk+RGVwZW5kcyBvbiBhIHByZWZlcmVuY2UgKG9mZiBieSBkZWZhdWx0KTwvbGk+CiAgIAkgIDxsaT5DaGVja3MgdGhlIHByb2R1Y3QgKG9yIHByb2R1Y3Qgb3B0aW9uKSBmb3IgcW9oIGFmdGVyIHN1Ym1pdCBhbmQgd2lsbCBub3QgYWNjZXB0IHRoZSBjYXJ0IGl0ZW0gaWYgcXVhbnRpdHkgPiBxb2g8L2xpPgogIAkgIDxsaT5DaGVja3MgdGhlIGl0ZW1zIGFscmVhZHkgaW4gdGhlIGNhcnQgYWZ0ZXIgc3VibWl0IGFuZCB3aWxsIG5vdCBhY2NlcHQgdGhlIGNhcnQgaXRlbSBpZiB0b3RhbCBxdWFudGl0eSA+IHFvaDwvbGk+CiAgCSAgPGxpPkhpZGUgb3B0aW9ucyBmcm9tIHRoZSBkcm9wZG93biBpZiBxb2ggPCAxPC9saT4KCTwvdWw+Cgk8L2xpPgogICAgICA8bGk+QWRkcyBhYmlsaXR5IHRvIG92ZXJyaWRlIHByaWNlIHBlciBza3UgKG5vdCBvcHRpb25zKTwvbGk+CiAgICAgIDxsaT5BZGRzIHN1cHBvcnQgZm9yIGV4dGVuZGVkIHByb21vdGlvbnMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KCgk8bGk+VmVyc2lvbiAxLjMueAoJPHAgY2xhc3M9Indhcm5pbmciPlRoaXMgdmVyc2lvbiBub3cgdXNlcyBEZXNpZ25NYW5hZ2VyIHRvIG1hbmFnZSBhbGwgZnJvbnRlbmQgdmlldyB0ZW1wbGF0ZXMuICBUaG91Z2ggdGhlIHRlbXBsYXRlIGNvbnRlbnRzIGhhdmUgbm90IGNoYW5nZWQsIGluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IHRlbXBsYXRlIG5hbWVzIGFyZSB1bmlxdWUgdGhlIG5hbWVzIG1heSBoYXZlIGJlZW4gYWx0ZXJlZCBkdXJpbmcgdGhlIGNvbnZlcnNpb24gcHJvY2Vzcy4gICBZb3UgbWF5IG5lZWQgdG8gbW9kaWZ5IHRoZSBsb2NhdGlvbnMgd2hlcmUgeW91IHNwZWNpZnkgYWx0ZXJuYXRlIHRlbXBsYXRlcyB0byByZWZsZWN0IHRoZSBuZXcgdGVtcGxhdGUgbmFtZXMuPC9wPgoJPHVsPgoJICAgPGxpPlN0b3JlIGFsbCB0ZW1wbGF0ZXMgd2l0aGluIERlc2lnbk1hbmFnZXIuPC9saT4KCSAgIDxsaT5VcGRhdGVkIHRvIHVzZSB0aGUgbmV3IGludGVyZmFjZXMgaW4gQ0dFY29tbWVyY2VCYXNlLjwvbGk+Cgk8bGk+U3RvcmUgY2FydCBkYXRhIGluIHRoZSBzZXNzaW9uIGFuZCBhc3NpZ24gaXQgdG8gc21hcnR5LCBzbyB0aGF0IHNoaXBwaW5nIG1vZHVsZXMgKGxpa2UgQ2FuYWRhUG9zdFNoaXBwaW5nKSBjYW4gZ2V0IHRoZSBjb250ZW50cyBvZiB0aGUgY2FydC48L2xpPgoJPC91bD4KCTwvbGk+CgogIDxsaT5WZXJzaW9uIDEuNC54Cgk8dWw+Cgk8bGk+Tm93IHVzZSBkZXNpZ24gbWFuYWdlciBmb3IgYWxsIHRlbXBsYXRlcy48L2xpPgoJPGxpPk5vdyBpbXBsZW1lbnRzIHRoZSBcQ0dFY29tbWVyY2VCYXNlXHNob3BwaW5nX2NhcnRfbWFuYWdlciBpbnRlcmZhY2UgaW4gYSBwcm94eSBvYmplY3QuCgk8bGk+Tm93IHJlcXVpcmVzIENNU01TIDIuMi4yIG9yIGdyZWF0ZXIuPC9saT4KCTxsaT5CdWcgZml4ZXMgd3J0LiBwcm9tb3Rpb25zIGFuZCBkaW1lbnNpb25zLjwvbGk+Cgk8L3VsPgogIDwvbGk+CjwvdWw+CjxiciAvPg==]]></about>
	<description><![CDATA[A Simple Cart Module]]></description>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.56.2</requiredversion>
	</requires>
	<requires>
	  <requiredname>CGEcommerceBase</requiredname>
	  <requiredversion>1.8.5</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.admin_preferences_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENhcnQgLSBBIHNpbXBsZSBleGFtcGxlIGZyb250ZW5kIGZvcm0gbW9kdWxlCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgKSBleGl0OwoKaWYoIFxjZ2VfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdzZXRhc2NhcnQnKSApIHsKICAgIHRyeSB7CiAgICAgICAgXENHRWNvbW1lcmNlQmFzZVxzZXR1cF9tYW5hZ2VyOjpzZXRfc2hvcHBpbmdfY2FydF9tZ3IoICR0aGlzLT5HZXROYW1lKCkgKTsKICAgICAgICBlY2hvICR0aGlzLT5TaG93TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX3NldGFzY2FydCcpKTsKICAgIH0KICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJGUtPkdldE1lc3NhZ2UoKSk7CiAgICB9Cn0KZWxzZSBpZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3N1Ym1pdCcpICkgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FkZHRvY2FydF9kZXN0cGFnZScsJHBhcmFtc1snYWRkdG9jYXJ0X2Rlc3RwYWdlJ10pOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ29wdGlvbl90ZW1wbGF0ZScsJHBhcmFtc1snb3B0aW9uX3RlbXBsYXRlJ10pOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3dhdGNoX3FvaCcsKGludCkgY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnd2F0Y2hfcW9oJykpOwp9CgokY29udGVudG9wcyA9ICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwokc21hcnR5LT5hc3NpZ24oJ29wdGlvbl90ZW1wbGF0ZScsJHRoaXMtPkdldFByZWZlcmVuY2UoJ29wdGlvbl90ZW1wbGF0ZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfYWRkdG9jYXJ0X2Rlc3RwYWdlJywkdGhpcy0+TGFuZygnYWRkdG9jYXJ0X2Rlc3RwYWdlJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2FkZHRvY2FydF9kZXN0cGFnZScsCgkJJGNvbnRlbnRvcHMtPkNyZWF0ZUhpZXJhcmNoeURyb3Bkb3duKCcnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhZGR0b2NhcnRfZGVzdHBhZ2UnKSwKCQkJCQkJICAgICAkaWQuJ2FkZHRvY2FydF9kZXN0cGFnZScpKTsKJHNtYXJ0eS0+YXNzaWduKCd3YXRjaF9xb2gnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd3YXRjaF9xb2gnLDApKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fcHJlZmVyZW5jZXNfdGFiLnRwbCcpOwovLyBFT0YK]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENhcnQgLSBBIHNpbXBsZSBleGFtcGxlIGZyb250ZW5kIGZvcm0gbW9kdWxlCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7Ci8vIE5PVEU6IENBVVRJT04gQVQgVEhJUyBUSU1FIFRISVMgQUNUSU9OIEFTU1VNRVMgVEhFIFBST0RVQ1RTIE1PRFVMRSBJUyBCRUlORyBVU0VELgoKLy8KLy8gRlVOQ1RJT05TCi8vCmlmKCAhZnVuY3Rpb25fZXhpc3RzKCdfX2NhcnQyX3Jlc2V0X215b2ZmZXInKSApIHsKZnVuY3Rpb24gJl9fY2FydDJfcmVzZXRfbXlvZmZlcigpCnsKICAgICRteV9vZmZlciA9IG5ldyBzdGRDbGFzczsKICAgICRteV9vZmZlci0+cGFyZW50ID0gLTE7CiAgICAkbXlfb2ZmZXItPmRpc2NvdW50ID0gbnVsbDsKICAgICRteV9vZmZlci0+cGVyY2VudCA9IG51bGw7CiAgICAkbXlfb2ZmZXItPnByb21vX2lkID0gbnVsbDsKICAgICRteV9vZmZlci0+ZnJlZV9wcm9kdWN0aWQgPSBudWxsOwogICAgJG15X29mZmVyLT5mcmVlX3Byb2R1Y3Rza3UgPSBudWxsOwogICAgcmV0dXJuICRteV9vZmZlcjsKfQoKZnVuY3Rpb24gX19jYXJ0Ml9hZGp1c3Rfb2ZmZXIoJHN1cHBsaWVyX21vZCxjZ19lY29tbV9wcm9tb3Rpb25fbWF0Y2ggJG9mZmVyKQp7CiAgICAvLyB0aGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBpbiB0aGUgbWF0Y2ggb2JqZWN0LgoKICAgIC8vIGlkZWFsbHkgc3VwcGxpZXIgbW9kIHNob3VsZCBiZSBpbiB0aGUgb2ZmZXIuCiAgICAkbmV3b2ZmZXIgPSBuZXcgc3RkQ2xhc3M7CiAgICAkbmV3b2ZmZXItPmRpc2NvdW50ID0gbnVsbDsKICAgICRuZXdvZmZlci0+cGVyY2VudCA9IG51bGw7CiAgICAkbmV3b2ZmZXItPmZyZWVfcHJvZHVjdGlkID0gbnVsbDsKICAgICRuZXdvZmZlci0+ZnJlZV9wcm9kdWN0c2t1ID0gbnVsbDsKICAgICRuZXdvZmZlci0+cGFyZW50ID0gJG9mZmVyLT5nZXRfY2FydF9pZHgoKTsKICAgICRuZXdvZmZlci0+cHJvbW9faWQgPSAkb2ZmZXItPmdldF9wcm9tbygpOwoKICAgIHN3aXRjaCggJG9mZmVyLT5nZXRfdHlwZSgpICkgewogICAgY2FzZSAkb2ZmZXI6Ok9GRkVSX0RJU0NPVU5UOgogICAgICAgIC8vIHN1YnRyYWN0IHRoZSBkaXNjb3VudCBmcm9tZSBwcm9kdWN0IHZhbHVlLi4uIG1heWJlLgogICAgICAgICRkaXNjb3VudCA9IChmbG9hdCkgJG9mZmVyLT5nZXRfZGlzY291bnRfYW10KCk7CiAgICAgICAgaWYoICRkaXNjb3VudCA+IDAgKSAkZGlzY291bnQgKj0gLTE7CiAgICAgICAgJG5ld29mZmVyLT5kaXNjb3VudCA9ICRkaXNjb3VudDsKICAgICAgICBicmVhazsKCiAgICBjYXNlICRvZmZlcjo6T0ZGRVJfUEVSQ0VOVDo7CiAgICAgICAgJHBlcmNlbnQgPSAoZmxvYXQpJG9mZmVyLT5nZXRfdmFsKCk7CiAgICAgICAgaWYoICRwZXJjZW50IDwgMCApICRwZXJjZW50ICo9IC0xOwogICAgICAgIGlmKCAkcGVyY2VudCA+IDEgKSAkcGVyY2VudCAvPSAxMDAuMDsKICAgICAgICAkbmV3b2ZmZXItPnBlcmNlbnQgPSAkcGVyY2VudDsKICAgICAgICBicmVhazsKCiAgICBjYXNlICRvZmZlcjo6T0ZGRVJfUFJPRFVDVElEOgogICAgICAgICRuZXdvZmZlci0+ZnJlZV9wcm9kdWN0aWQgPSAkb2ZmZXItPmdldF92YWwoKTsKICAgICAgICBicmVhazsKCiAgICBjYXNlICRvZmZlcjo6T0ZGRVJfUFJPRFVDVFNLVToKICAgICAgICAvLyB0ZXN0IHRoZSB2YWx1ZSB0byBzZWUgaWYgaXQgbWF0Y2hlcyBhIHNpbmdsZSBza3UuCiAgICAgICAgJHRtcCA9IGV4cGxvZGUoJywnLCRvZmZlci0+Z2V0X3ZhbCgpKTsKICAgICAgICBpZiggY291bnQoJHRtcCkgPT0gMSApIHsKICAgICAgICAgICAgLy8gaWYgc2t1IGRvZXMgbm90IGNvbnRhaW4gd2lsZGNoYXJkIGNoYXJzLgogICAgICAgICAgICAkdG1wWzBdID0gdHJpbSgkdG1wWzBdKTsKICAgICAgICAgICAgaWYoIHN0cnBvcygkdG1wWzBdLCcqJykgPT09IEZBTFNFICYmIHN0cnBvcygkdG1wWzBdLCdbJykgPT09IEZBTFNFICAmJiBzdHJwb3MoJHRtcFswXSwnPycpID09IEZBTFNFICkgewogICAgICAgICAgICAgICAgLy8gaWYgd2UgY2FuIGdldCB0aGlzIHByb2R1Y3QgYnkgc2t1LCB0aGVuIGl0J3MgdmFsaWQuCiAgICAgICAgICAgICAgICAkdHByb2R1Y3QgPSBjZ19lY29tbTo6Z2V0X3Byb2R1Y3RfYnlfc2t1KCRzdXBwbGllcl9tb2QsJHRtcFswXSk7CiAgICAgICAgICAgICAgICBpZiggaXNfb2JqZWN0KCR0cHJvZHVjdCkgKSB7CiAgICAgICAgICAgICAgICAgICAgLy8kbXlfb2ZmZXItPmZyZWVfcHJvZHVjdHNrdSA9ICRvZmZlci0+Z2V0X3ZhbCgpOyBiYWQKICAgICAgICAgICAgICAgICAgICAkbmV3b2ZmZXItPmZyZWVfcHJvZHVjdHNrdSA9ICRvZmZlci0+Z2V0X3ZhbCgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnb2ZmZXIgc2F5cyBza3UgJy4kb2ZmZXItPmdldF92YWwoKS4nIGlzIGZyZWUsIGJ1dCB3ZSBjb3VsZCBub3QgZmluZCBpdCcpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGJyZWFrOwogICAgZGVmYXVsdDoKICAgICAgICAvLyBpZ25vcmUgYW55dGhpbmcgZWxzZQogICAgfQoKICAgIHJldHVybiAkbmV3b2ZmZXI7Cn0KfSAvLyBmdW5jdGlvbnMuLi4KCgppZiggIWlzc2V0KCRwYXJhbXNbJ3NrdSddKSApIHsKICAgIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ21vZHVsZSBjYWxsZWQgd2l0aG91dCBhIHNrdSBwYXJhbWV0ZXIgb24gcGFnZSAnLiRyZXR1cm5pZCk7CiAgICByZXR1cm47Cn0KJHNrdSA9IHRyaW0oJHBhcmFtc1snc2t1J10pOwppZiggJHNrdSA9PSAnJyApIHsKICAgIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ21vZHVsZSBjYWxsZWQgd2l0aCBhbiBpbnZhbGlkIHNrdSBwYXJhbWV0ZXIgb24gcGFnZSAnLiRyZXR1cm5pZCk7CiAgICByZXR1cm47Cn0KCgokdGhldGVtcGxhdGUgPSAkdGhpcy0+ZmluZF9sYXlvdXRfdGVtcGxhdGUoICRwYXJhbXMsICdhZGR0b2NhcnR0ZW1wbGF0ZScsICdDYXJ0Mjo6QWRkIHRvIENhcnQgRm9ybScpOwokdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCR0aGV0ZW1wbGF0ZSk7CiRoZWxwZXIgPSAkdGhpcy0+Z2V0X2NhcnRfbWFuYWdlcigpOwoKLy8gTm93IHNlZSBpZiB3ZSBjYW4gZmluZCB0aGUgcHJvZHVjdAokc3VwcGxpZXJfbW9kID0gJ1Byb2R1Y3RzJzsKaWYoIGlzc2V0KCRwYXJhbXNbJ3N1cHBsaWVyJ10pICkgJHN1cHBsaWVyX21vZCA9IHRyaW0oJHBhcmFtc1snc3VwcGxpZXInXSk7CiRwcm9kdWN0ID0gY2dfZWNvbW06OmdldF9wcm9kdWN0X2J5X3NrdSgkc3VwcGxpZXJfbW9kLCRza3UpOwppZiggISRwcm9kdWN0ICkgewogICAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwiQ291bGQgbm90IGdldCBwcm9kdWN0IHdpdGggc2t1ICRza3UgZnJvbSAkc3VwcGxpZXJfbW9kLCBvbiBwYWdlICRyZXR1cm5pZCIpOwogICAgcmV0dXJuOwp9Cgokc2Vzc2lvbl9vYmogPSBuZXcgY2dlX3Nlc3Npb24oJHRoaXMtPkdldE5hbWUoKS4nX2FkZCcpOwoKLy8KLy8gc2V0dXAKLy8KJG15X29mZmVyID0gX19jYXJ0Ml9yZXNldF9teW9mZmVyKCk7CiRvZmZlciA9IG51bGw7CgovLyBhZGp1c3QgdW5pdCBwcmljZSBmb3IgdGhlIGNhc2Ugd2hlbiB0aGUgcHJvZHVjdCBoYXMgbm8gb3B0aW9ucy4KJHVuaXRfcHJpY2UgPSAkcHJvZHVjdC0+Z2V0X3ByaWNlKCk7CmlmKCBpc3NldCgkcGFyYW1zWydwcmljZSddKSApIHsKICAgICR0bXAgPSAoZmxvYXQpICRwYXJhbXNbJ3ByaWNlJ107CiAgICBpZiggJHRtcCA+IDAuMDAxICkgJHVuaXRfcHJpY2UgPSAkdG1wOwp9CgoKLy8gVGVzdCB0aGUgcHJvZHVjdCBhZ2FpbnN0IHByb21vdGlvbnMgKGRvZXMgbm90IGhhbmRsZSBvcHRpb25zKS4KJHRlc3RlciA9IGNnX2Vjb21tOjpnZXRfcHJvbW90aW9uc190ZXN0ZXIoKTsKaWYoICR0ZXN0ZXIgKSB7CiAgICAvLyB0aGlzIHdpbGwgdGVzdCBmb3IgbWF0Y2hlcyBhZ2FpbnN0IHRoZSBwcm9kdWN0IGl0c2VsZiBiZWZvcmUgYWRkaW5nIHRvIGNhcnQgKG5vdCBuZWNlc3NhcmlseSBvcHRpb25zKQogICAgJHRlc3Rlci0+c2V0X3Byb21vX3R5cGUoJHRlc3Rlcjo6VFlQRV9JTlNUQU5UKTsKICAgICR0ZXN0ZXItPnNldF9wcm9kdWN0KCRwcm9kdWN0KTsKICAgICR0ZXN0ZXItPnNldF9za3UoJHNrdSk7CiAgICAkdGVzdGVyLT5zZXRfY2FydCgkaGVscGVyLT5HZXRJdGVtcygpKTsKCiAgICAkb2ZmZXIgPSAkdGVzdGVyLT5maW5kX21hdGNoKCk7CiAgICBpZiggJG9mZmVyICkgJG15X29mZmVyID0gX19jYXJ0Ml9hZGp1c3Rfb2ZmZXIoJHN1cHBsaWVyX21vZCwkb2ZmZXIpOyAgLy8gd2UgaGF2ZSBvcHRpb25zLCBhbmQgc29tZXRoaW5nIG1hdGNoZXMuCn0KCmlmKCBpc3NldCgkcGFyYW1zWydjYXJ0X3N1Ym1pdCddKSApIHsKICAgIHRyeSB7CiAgICAgICAgJHF1YW50aXR5ID0gY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnY2FydF9xdWFudGl0eScsMSk7CiAgICAgICAgJGF2YWlsX3F1YW50aXR5ID0gKGludCkgJHByb2R1Y3QtPmdldF9xb2goKTsKCiAgICAgICAgaWYoICRxdWFudGl0eSA+IDAgKSB7CiAgICAgICAgICAgIC8vIGhhbmRsZSBhZGRpbmcgdGhlIGJhc2UgY2FydCBpdGVtIChldmVuIGlmIGl0cyBhbiBvcHRpb24pLi4KICAgICAgICAgICAgLy8gYWxzbyBoYW5kbGVzIGluc3RhbnQgZGlzY291bnRzIG9uIHRoZSBpdGVtIGl0c2VsZi4KICAgICAgICAgICAgJGNhcnRfaXRlbSA9IG51bGw7CgogICAgICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1snY2FydF9vcHRpb25zJ10pICkgewogICAgICAgICAgICAgICAgLy8gdGhlcmUgYXJlIG9wdGlvbnMgZm9yIHRoaXMgaXRlbS4KCiAgICAgICAgICAgICAgICBsaXN0KCRjaGssJHNpZykgPSBleHBsb2RlKCc6OicsJHBhcmFtc1snY2FydF9vcHRpb25zJ10sMik7CiAgICAgICAgICAgICAgICBpZiggbWQ1KF9fRklMRV9fLnNlc3Npb25faWQoKS4kc2lnKSAhPSAkY2hrICkgewogICAgICAgICAgICAgICAgICAgIGRlYnVnX2Rpc3BsYXkoJHBhcmFtcyk7CiAgICAgICAgICAgICAgICAgICAgZGllKCdjaGVja3N1bSBlcnJvcicpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHRtcCA9IGJhc2U2NF9kZWNvZGUoJHNpZyk7CiAgICAgICAgICAgICAgICBsaXN0KCRvcHRza3UsJHFvaCwkYmFzZV9wcmljZSwkbXlfb2ZmZXItPmRpc2NvdW50LCRteV9vZmZlci0+cGFyZW50LCRteV9vZmZlci0+cHJvbW9faWQpID0gZXhwbG9kZSgnOjonLCR0bXApOwogICAgICAgICAgICAgICAgJGJhc2VfcHJpY2UgPSAoZmxvYXQpICRiYXNlX3ByaWNlOwoKICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHRoZSBvcHRpb24gc2t1IGlzIGFuIGF0dHJpYnV0ZSBvZiB0aGUgbG9hZGVkIHByb2R1Y3QuCiAgICAgICAgICAgICAgICAkb3B0ID0gJHByb2R1Y3QtPmdldF9vcHRpb25fYnlfc2t1KCRvcHRza3UpOwogICAgICAgICAgICAgICAgaWYoICEkb3B0ICkgewogICAgICAgICAgICAgICAgICAgIC8vIG9vcHMsIG9wdGlvbiBzcGVjaWZpZWQgd2l0aCBhIHByaWNlLCBidXQgY291bGRuJ3QgZmluZCB0aGUgb3B0aW9uLgogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgaXRlbSB3aXRoIGFuIG9wdGlvbiB0aGF0IGhhcyB0aGUgc2t1ICcuJG9wdHNrdSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkYXZhaWxfcXVhbnRpdHkgPSAoaW50KSAkb3B0LT5xb2g7CgogICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhpcyBza3UgbWF0Y2hlcyBhbiBvZmZlci4uLgogICAgICAgICAgICAgICAgaWYoICEkb2ZmZXIgJiYgISRteV9vZmZlci0+ZGlzY291bnQgJiYgaXNfb2JqZWN0KCR0ZXN0ZXIpICkgewogICAgICAgICAgICAgICAgICAgICR0ZXN0ZXItPnNldF9za3UoJG9wdHNrdSk7CiAgICAgICAgICAgICAgICAgICAgJG5ld29mZmVyID0gJHRlc3Rlci0+ZmluZF9tYXRjaCgpOwogICAgICAgICAgICAgICAgICAgIGlmKCAkbmV3b2ZmZXIgKSAkbXlfb2ZmZXIgPSBfX2NhcnQyX2FkanVzdF9vZmZlcigkc3VwcGxpZXJfbW9kLCRuZXdvZmZlcik7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYoICRteV9vZmZlci0+cGVyY2VudCAhPSBudWxsICYmICRteV9vZmZlci0+ZGlzY291bnQgPT0gbnVsbCApIHsKICAgICAgICAgICAgICAgICAgICAkbXlfb2ZmZXItPmRpc2NvdW50ID0gcm91bmQoJHByb2R1Y3QtPmdldF9wcmljZSgpICogJG15X29mZmVyLT5wZXJjZW50ICogLTEsMik7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJGNhcnRfaXRlbSA9IG5ldyBjZ19lY29tbV9jYXJ0aXRlbSgkb3B0c2t1LCRwcm9kdWN0LT5nZXRfcHJvZHVjdF9pZCgpLCRxdWFudGl0eSwkc3VwcGxpZXJfbW9kKTsKICAgICAgICAgICAgICAgICRjYXJ0X2l0ZW0tPnNldF9zdW1tYXJ5KCRwcm9kdWN0LT5nZXRfbmFtZSgpLic6ICcuJG9wdC0+dGV4dCk7CiAgICAgICAgICAgICAgICAkY2FydF9pdGVtLT5zZXRfdW5pdF93ZWlnaHQoJHByb2R1Y3QtPmdldF93ZWlnaHQoKSk7CiAgICAgICAgICAgICAgICBpZiggJHByb2R1Y3QtPmdldF90eXBlKCkgPT0gJHByb2R1Y3Q6OlRZUEVfU0VSVklDRSApICRjYXJ0X2l0ZW0tPnNldF90eXBlKCAkY2FydF9pdGVtOjpUWVBFX1NFUlZJQ0UgKTsKICAgICAgICAgICAgICAgICRjYXJ0X2l0ZW0tPnNldF9kaWdpdGFsKCRwcm9kdWN0LT5nZXRfZGlnaXRhbCgpKTsKICAgICAgICAgICAgICAgICRkaW0gPSAkcHJvZHVjdC0+Z2V0X2RpbWVuc2lvbnMoKTsKICAgICAgICAgICAgICAgIGlmKCAkZGltICkgJGNhcnRfaXRlbS0+c2V0X2RpbWVuc2lvbnMoICRkaW1bMF0sICRkaW1bMV0sICRkaW1bMl0gKTsKICAgICAgICAgICAgICAgICRjYXJ0X2l0ZW0tPnNldF91bml0X3ByaWNlKCRiYXNlX3ByaWNlKTsKICAgICAgICAgICAgICAgICRjYXJ0X2l0ZW0tPnNldF91bml0X2Rpc2NvdW50KCRteV9vZmZlci0+ZGlzY291bnQpOwogICAgICAgICAgICAgICAgaWYoICRteV9vZmZlci0+cGFyZW50ID4gLTEgKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gaXRlbSBpcyBiZWluZyBhZGRlZCBhcyBhIGNoaWxkCiAgICAgICAgICAgICAgICAgICAgJGNhcnRfaXRlbS0+c2V0X3F1YW50aXR5KDEpOwogICAgICAgICAgICAgICAgICAgICRjYXJ0X2l0ZW0tPnNldF9wYXJlbnQoJG15X29mZmVyLT5wYXJlbnQpOwogICAgICAgICAgICAgICAgICAgICRjYXJ0X2l0ZW0tPnNldF9hbGxvd19yZW1vdmUoRkFMU0UpOwogICAgICAgICAgICAgICAgICAgICRjYXJ0X2l0ZW0tPnNldF9hbGxvd19xdWFudGl0eV9hZGp1c3QoRkFMU0UpOwogICAgICAgICAgICAgICAgICAgICRjYXJ0X2l0ZW0tPnNldF9wcm9tbygkbXlfb2ZmZXItPnByb21vX2lkKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIHRoZXJlIGFyZSBubyBvcHRpb25zIGZvciB0aGlzIGl0ZW0uCiAgICAgICAgICAgICAgICAkY2FydF9pdGVtID0gbmV3IGNnX2Vjb21tX2NhcnRpdGVtKCRza3UsJHByb2R1Y3QtPmdldF9wcm9kdWN0X2lkKCksJHF1YW50aXR5LCRzdXBwbGllcl9tb2QpOwogICAgICAgICAgICAgICAgJGNhcnRfaXRlbS0+c2V0X3N1bW1hcnkoJHByb2R1Y3QtPmdldF9uYW1lKCkpOwogICAgICAgICAgICAgICAgJGNhcnRfaXRlbS0+c2V0X3VuaXRfd2VpZ2h0KCRwcm9kdWN0LT5nZXRfd2VpZ2h0KCkpOwogICAgICAgICAgICAgICAgJGNhcnRfaXRlbS0+c2V0X2RpZ2l0YWwoJHByb2R1Y3QtPmdldF9kaWdpdGFsKCkpOwogICAgICAgICAgICAgICAgaWYoICRwcm9kdWN0LT5nZXRfdHlwZSgpID09ICRwcm9kdWN0OjpUWVBFX1NFUlZJQ0UgKSAkY2FydF9pdGVtLT5zZXRfdHlwZSggJGNhcnRfaXRlbTo6VFlQRV9TRVJWSUNFICk7CiAgICAgICAgICAgICAgICAkZGltID0gJHByb2R1Y3QtPmdldF9kaW1lbnNpb25zKCk7CiAgICAgICAgICAgICAgICBpZiggJGRpbSApICRjYXJ0X2l0ZW0tPnNldF9kaW1lbnNpb25zKCAkZGltWzBdLCAkZGltWzFdLCAkZGltWzJdICk7CiAgICAgICAgICAgICAgICAkY2FydF9pdGVtLT5zZXRfdW5pdF9wcmljZSgkdW5pdF9wcmljZSk7CgogICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhpcyBza3UgbWF0Y2hlcyBhbiBvZmZlci4uLgogICAgICAgICAgICAgICAgaWYoICEkb2ZmZXIgJiYgISRteV9vZmZlci0+ZGlzY291bnQgJiYgaXNfb2JqZWN0KCR0ZXN0ZXIpICkgewogICAgICAgICAgICAgICAgICAgICR0ZXN0ZXItPnNldF9xdWFudGl0eSgkcXVhbnRpdHkpOwogICAgICAgICAgICAgICAgICAgICRuZXdvZmZlciA9ICR0ZXN0ZXItPmZpbmRfbWF0Y2goKTsKICAgICAgICAgICAgICAgICAgICBpZiggJG5ld29mZmVyICkgJG15X29mZmVyID0gX19jYXJ0Ml9hZGp1c3Rfb2ZmZXIoJHN1cHBsaWVyX21vZCwkbmV3b2ZmZXIpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmKCAkbXlfb2ZmZXItPnBhcmVudCA+IC0xICkgewogICAgICAgICAgICAgICAgICAgIC8vIGl0ZW0gaXMgYmVpbmcgYWRkZWQgYXMgYSBjaGlsZCwgZHVlIHRvIHNvbWUgcHJvbW90aW9uCiAgICAgICAgICAgICAgICAgICAgJGNhcnRfaXRlbS0+c2V0X3F1YW50aXR5KDEpOwogICAgICAgICAgICAgICAgICAgICRjYXJ0X2l0ZW0tPnNldF9wYXJlbnQoJG15X29mZmVyLT5wYXJlbnQpOwogICAgICAgICAgICAgICAgICAgICRjYXJ0X2l0ZW0tPnNldF9hbGxvd19yZW1vdmUoRkFMU0UpOwogICAgICAgICAgICAgICAgICAgICRjYXJ0X2l0ZW0tPnNldF9hbGxvd19xdWFudGl0eV9hZGp1c3QoRkFMU0UpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmKCAkbXlfb2ZmZXItPnByb21vX2lkID4gMCApICRjYXJ0X2l0ZW0tPnNldF9wcm9tbygkbXlfb2ZmZXItPnByb21vX2lkKTsKCiAgICAgICAgICAgICAgICBpZiggJG15X29mZmVyLT5wZXJjZW50ICE9IG51bGwgKSAkbXlfb2ZmZXItPmRpc2NvdW50ID0gcm91bmQoJHVuaXRfcHJpY2UgKiAkbXlfb2ZmZXItPnBlcmNlbnQgKiAtMSwyKTsKICAgICAgICAgICAgICAgICRjYXJ0X2l0ZW0tPnNldF91bml0X2Rpc2NvdW50KCRteV9vZmZlci0+ZGlzY291bnQpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiggJHRoaXMtPkdldFByZWZlcmVuY2UoJ3dhdGNoX3FvaCcpICYmICRxdWFudGl0eSA+ICRhdmFpbF9xdWFudGl0eSApIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBjYXJ0Ml9RT0hFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX3F1YW50aXR5X25vdGF2YWlsYWJsZScsJHF1YW50aXR5LCRhdmFpbF9xdWFudGl0eSkpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBhZGRzIHRoaXMgaXRlbSB0byB0aGUgY2FydC4KICAgICAgICAgICAgJG15X29mZmVyLT5wYXJlbnQgPSAkaGVscGVyLT5BZGRDYXJ0SXRlbSgkY2FydF9pdGVtKTsKCiAgICAgICAgICAgIC8vIGhhbmRsZSBhZGRpbmcgZnJlZSBpdGVtcyB0byB0aGUgY2FydC4gZHVlIHRvIHNvbWUgcHJvbW90aW9uCiAgICAgICAgICAgICRmcmVlX3Byb2R1Y3QgPSBudWxsOwogICAgICAgICAgICBpZiggJG15X29mZmVyLT5mcmVlX3Byb2R1Y3Rza3UgKSB7CiAgICAgICAgICAgICAgICAkZnJlZV9wcm9kdWN0ID0gY2dfZWNvbW06OmdldF9wcm9kdWN0X2J5X3NrdSgkc3VwcGxpZXJfbW9kLCRteV9vZmZlci0+ZnJlZV9wcm9kdWN0c2t1KTsKICAgICAgICAgICAgICAgIGlmKCAhJGZyZWVfcHJvZHVjdCApIHsKICAgICAgICAgICAgICAgICAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCJDb3VsZCBub3QgZmluZCBwcm9kdWN0IHdpdGggc2t1IHskbXlfb2ZmZXItPmZyZWVfcHJvZHVjdHNrdX0gdG8gYWRkIChmcmVlKSB0byB0aGUgY2FydCIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYoICRteV9vZmZlci0+ZnJlZV9wcm9kdWN0aWQpIHsKICAgICAgICAgICAgICAgICRmcmVlX3Byb2R1Y3QgPSBjZ19lY29tbTo6Z2V0X3Byb2R1Y3RfaW5mbygkc3VwcGxpZXJfbW9kLCRteV9vZmZlci0+ZnJlZV9wcm9kdWN0aWQpOwogICAgICAgICAgICAgICAgaWYoICEkZnJlZV9wcm9kdWN0ICkgewogICAgICAgICAgICAgICAgICAgIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksIkNvdWxkIG5vdCBmaW5kIHByb2R1Y3Qgd2l0aCBpZCB7JG15X29mZmVyLT5mcmVlX3Byb2R1Y3RpZH0gdG8gYWRkIChmcmVlKSB0byB0aGUgY2FydCIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCAkZnJlZV9wcm9kdWN0ICkgewogICAgICAgICAgICAgICAgLy8gYnVpbGQgdGhlIHNsYXZlIGNhcnQgaXRlbS4gLi4uIGFkZCBvbmx5IG9uZSBvZiB0aGVzZSBpdGVtcy4KICAgICAgICAgICAgICAgICRmcmVlX2NhcnRfaXRlbSA9IG5ldyBjZ19lY29tbV9jYXJ0aXRlbSgkbXlfb2ZmZXItPmZyZWVfcHJvZHVjdHNrdSwkZnJlZV9wcm9kdWN0LT5nZXRfcHJvZHVjdF9pZCgpLCRxdWFudGl0eSwkc3VwcGxpZXJfbW9kKTsKICAgICAgICAgICAgICAgICRmcmVlX2NhcnRfaXRlbS0+c2V0X3BhcmVudCgkbXlfb2ZmZXItPnBhcmVudCk7CiAgICAgICAgICAgICAgICAkZnJlZV9jYXJ0X2l0ZW0tPnNldF91bml0X3dlaWdodCgkZnJlZV9wcm9kdWN0LT5nZXRfd2VpZ2h0KCkpOwogICAgICAgICAgICAgICAgJGRpbSA9ICRmcmVlX3Byb2R1Y3QtPmdldF9kaW1lbnNpb25zKCk7CiAgICAgICAgICAgICAgICBpZiggJGRpbSApICRmcmVlX2NhcnRfaXRlbS0+c2V0X2RpbWVuc2lvbnMoICRkaW1bMF0sICRkaW1bMV0sICRkaW1bMl0gKTsKICAgICAgICAgICAgICAgICRmcmVlX2NhcnRfaXRlbS0+c2V0X3Byb21vKCRteV9vZmZlci0+cHJvbW9faWQpOwoKICAgICAgICAgICAgICAgIC8vIGNoZWNrIGlmIGZyZWVwcm9kdWN0c2t1IGlzIGFuIG9wdGlvbidzIHNrdQogICAgICAgICAgICAgICAgJHRleHQgPSAkZnJlZV9wcm9kdWN0LT5nZXRfbmFtZSgpOwogICAgICAgICAgICAgICAgJHVuaXRfcHJpY2UgPSAkZnJlZV9wcm9kdWN0LT5nZXRfcHJpY2UoKTsKICAgICAgICAgICAgICAgICRza3UgPSAkbXlfb2ZmZXItPmZyZWVfcHJvZHVjdHNrdTsKCiAgICAgICAgICAgICAgICAkdGV4dCA9ICRmcmVlX3Byb2R1Y3QtPmdldF9uYW1lKCk7CiAgICAgICAgICAgICAgICBpZiggJG15X29mZmVyLT5mcmVlX3Byb2R1Y3RpZCA9PSAkZnJlZV9wcm9kdWN0LT5nZXRfcHJvZHVjdF9pZCgpIHx8CiAgICAgICAgICAgICAgICAgICAgJG15X29mZmVyLT5mcmVlX3Byb2R1Y3Rza3UgPT0gJGZyZWVfcHJvZHVjdC0+Z2V0X3NrdSgpICkgewogICAgICAgICAgICAgICAgICAgIC8vIHdlJ3JlIGdldHRpbmcgYSBwcm9kdWN0Li4uIGVpdGhlciB0aGUgcHJvZHVjdCBpdHNlbGYsIG9yIGFuIG9wdGlvbgogICAgICAgICAgICAgICAgICAgICR1bml0X3ByaWNlID0gJGZyZWVfcHJvZHVjdC0+Z2V0X3ByaWNlKCk7CiAgICAgICAgICAgICAgICAgICAgJHNrdSA9ICRmcmVlX3Byb2R1Y3QtPmdldF9za3UoKTsKCiAgICAgICAgICAgICAgICAgICAgaWYoICRteV9vZmZlci0+ZnJlZV9wcm9kdWN0c2t1ICkgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBnZXR0aW5nIGEgZnJlZSBwcm9kdWN0IGJ5IHNrdS4KICAgICAgICAgICAgICAgICAgICAgICAgJG5vcHQgPSAkZnJlZV9wcm9kdWN0LT5nZXRfb3B0aW9uX2J5X3NrdSgkbXlfb2ZmZXItPmZyZWVfcHJvZHVjdHNrdSk7CiAgICAgICAgICAgICAgICAgICAgICAgICR0ZXh0IC49ICc6ICcuJG5vcHQtPnRleHQ7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgJGZyZWVfcHJvZHVjdC0+Y291bnRfb3B0aW9ucygpOyAkaSsrICkgewogICAgICAgICAgICAgICAgICAgICAgICAkb3B0ID0gJGZyZWVfcHJvZHVjdC0+Z2V0X29wdGlvbl9ieV9pZHgoJGkpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiggJG9wdC0+c2t1ID09ICRteV9vZmZlci0+ZnJlZV9wcm9kdWN0c2t1ICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRleHQgLj0gJzogJy4kb3B0LT50ZXh0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNrdSA9PSAkbXlfb2ZmZXItPmZyZWVfcHJvZHVjdHNrdTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR1bml0X3ByaWNlID0gJG9wdC0+cGFyc2VfYWRqdXN0bWVudCgkZnJlZV9wcm9kdWN0LT5nZXRfcHJpY2UoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkZnJlZV9jYXJ0X2l0ZW0tPnNldF9za3UoJHNrdSk7CiAgICAgICAgICAgICAgICAkZnJlZV9jYXJ0X2l0ZW0tPnNldF9zdW1tYXJ5KCR0ZXh0KTsKICAgICAgICAgICAgICAgICRmcmVlX2NhcnRfaXRlbS0+c2V0X3VuaXRfcHJpY2UoJHVuaXRfcHJpY2UpOwogICAgICAgICAgICAgICAgJGZyZWVfY2FydF9pdGVtLT5zZXRfdW5pdF9kaXNjb3VudCgkdW5pdF9wcmljZSAqIC0xKTsKICAgICAgICAgICAgICAgICRmcmVlX2NhcnRfaXRlbS0+c2V0X2FsbG93X3JlbW92ZShGQUxTRSk7CiAgICAgICAgICAgICAgICAkZnJlZV9jYXJ0X2l0ZW0tPnNldF9hbGxvd19xdWFudGl0eV9hZGp1c3QoRkFMU0UpOwoKICAgICAgICAgICAgICAgICRoZWxwZXItPkFkZENhcnRJdGVtKCRmcmVlX2NhcnRfaXRlbSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRkZXN0aWQgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWRkdG9jYXJ0X2Rlc3RwYWdlJywtMSk7CiAgICAgICAgICAgIGlmKCAkZGVzdGlkID09IC0xICkgJGRlc3RpZCA9ICRyZXR1cm5pZDsKICAgICAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2Rlc3RwYWdlJ10pICkgewogICAgICAgICAgICAgICAgJHRtcCA9ICR0aGlzLT5yZXNvbHZlX2FsaWFzX29yX2lkKCRwYXJhbXNbJ2Rlc3RwYWdlJ10pOwogICAgICAgICAgICAgICAgaWYoICR0bXAgKSAkZGVzdGlkID0gJHRtcDsKICAgICAgICAgICAgfQogICAgICAgICAgICAkdGhpcy0+UmVkaXJlY3RDb250ZW50KCRkZXN0aWQpOwogICAgICAgIH0KICAgIH0KICAgIGNhdGNoKCBjYXJ0Ml9RT0hFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgJHNlc3Npb25fb2JqLT5wdXQoJGlkLidlcnJvcicsJ3FvaCcpOwogICAgICAgICRzZXNzaW9uX29iai0+cHV0KCRpZC4nZXJybXNnJywkZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdQcm9ibGVtIGFkZGluZyBpdGVtIHRvIGNhcnQ6ICcuJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NhcnRfcmV0dXJudG8nXSkgKSByZWRpcmVjdChodG1sX2VudGl0eV9kZWNvZGUoJHBhcmFtc1snY2FydF9yZXR1cm50byddKSk7CiAgICB9CiAgICBjYXRjaCggRXhjZXB0aW9uICRlICkgewogICAgICAgICRzZXNzaW9uX29iai0+cHV0KCRpZC4nZXJyb3InLCdhZGR0b2NhcnQnKTsKICAgICAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdQcm9ibGVtIGFkZGluZyBpdGVtIHRvIGNhcnQ6ICcuJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NhcnRfcmV0dXJudG8nXSkgKSByZWRpcmVjdChodG1sX2VudGl0eV9kZWNvZGUoJHBhcmFtc1snY2FydF9yZXR1cm50byddKSk7CiAgICB9Cn0gLy8gY2FydCBzdWJtaXQuCgovLwovLyBidWlsZCB0aGUgZm9ybQovLwppZiggJHNlc3Npb25fb2JqLT5leGlzdHMoJGlkLidlcnJvcicpICkgewogICAgJGVyciA9ICRzZXNzaW9uX29iai0+Z2V0KCRpZC4nZXJyb3InKTsKICAgICRtc2cgPSAkc2Vzc2lvbl9vYmotPmdldCgkaWQuJ2Vycm1zZycpOwogICAgJHNlc3Npb25fb2JqLT5jbGVhcigkaWQuJ2Vycm9yJyk7CiAgICAkc2Vzc2lvbl9vYmotPmNsZWFyKCRpZC4nZXJybXNnJyk7CiAgICBpZiggISRtc2cgKSAkbXNnID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2NhcnRwb2xpY3lfYWRkaXRlbScpOwogICAgaWYoICRlcnIgPT0gJ2FkZHRvY2FydCcgfHwgJGVyciA9PSAncW9oJyApICR0cGwtPmFzc2lnbignY2FydF9lcnJvcicsJG1zZyk7Cn0KCiRwYXJtcyA9IGFycmF5KCdza3UnPT4kcGFyYW1zWydza3UnXSwnY2FydF9yZXR1cm50byc9PmNnZV91cmw6OmN1cnJlbnRfdXJsKCkpOwokcGFybXNbJ3N1cHBsaWVyJ10gPSAkc3VwcGxpZXJfbW9kOwppZiggaXNzZXQoJHBhcmFtc1snZGVzdHBhZ2UnXSkgKSAkcGFybXNbJ2Rlc3RwYWdlJ10gPSAkcGFyYW1zWydkZXN0cGFnZSddOwppZiggaXNzZXQoJHBhcmFtc1sncHJpY2UnXSkgKSAkcGFybXNbJ3ByaWNlJ10gPSAkcGFyYW1zWydwcmljZSddOwokdHBsLT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnZGVmYXVsdCcsJHJldHVybmlkLCRwYXJtcykpOwokdHBsLT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokdHBsLT5hc3NpZ24oJ3F1YW50aXR5bmFtZScsJGlkLidjYXJ0X3F1YW50aXR5Jyk7CiR0cGwtPmFzc2lnbignc3VibWl0bmFtZScsJGlkLidjYXJ0X3N1Ym1pdCcpOwokdHBsLT5hc3NpZ24oJ2FkZHRvY2FydHRleHQnLCR0aGlzLT5MYW5nKCdhZGRfdG9fY2FydCcpKTsKJHRwbC0+YXNzaWduKCd1bml0cHJpY2UnLCR1bml0X3ByaWNlKTsKaWYoICRteV9vZmZlci0+cGVyY2VudCAhPSBudWxsICkgJG15X29mZmVyLT5kaXNjb3VudCA9ICR1bml0X3ByaWNlICogJG15X29mZmVyLT5wZXJjZW50ICogLTE7CmlmKCAkbXlfb2ZmZXItPmZyZWVfcHJvZHVjdGlkID09ICRwcm9kdWN0LT5nZXRfcHJvZHVjdF9pZCgpICkgewogICAgLy8gd29vdCwgdGhpcyBwcm9kdWN0IGlzIGZyZWUuCiAgICAkdHBsLT5hc3NpZ24oJ3VuaXRwcmljZScsMCk7Cn0KZWxzZSBpZiggJG15X29mZmVyLT5kaXNjb3VudCA8IDAgKSB7CiAgICAkdHBsLT5hc3NpZ24oJ3VuaXRwcmljZScsJHVuaXRfcHJpY2UgKyAkbXlfb2ZmZXItPmRpc2NvdW50KTsKfQoKLy8gR2V0IHRoZSBsaXN0IG9mIG9wdGlvbnMgZm9yIHRoaXMgcHJvZHVjdAppZiggJHByb2R1Y3QtPmNvdW50X29wdGlvbnMoKSApIHsKICAgIC8vIHRoZXJlIGFyZSBvcHRpb25zIHNvIGNyZWF0ZSBhIHB1bGxkb3duIHRoYXQgY2FuIGJlIGRpc3BsYXllZCBpbiB0aGUgdGVtcGxhdGUKCiAgICAkb3B0X2FycmF5ID0gYXJyYXkoKTsKICAgICRvcHRpb25zID0gYXJyYXkoKTsKICAgICRvbmVfb3B0aW9uID0gbnVsbDsKICAgIGZvciggJG9wdF9pZHggPSAwOyAkb3B0X2lkeCA8ICRwcm9kdWN0LT5jb3VudF9vcHRpb25zKCk7ICRvcHRfaWR4KysgKSB7CiAgICAgICAgJG9wdCA9ICRwcm9kdWN0LT5nZXRfb3B0aW9uX2J5X2lkeCgkb3B0X2lkeCk7CiAgICAgICAgaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd3YXRjaF9xb2gnKSAmJiAkb3B0LT5xb2ggPCAxICkgY29udGludWU7CiAgICAgICAgJGJhc2VfcHJpY2UgPSAkb3B0LT5wYXJzZV9hZGp1c3RtZW50KCR1bml0X3ByaWNlKTsKCiAgICAgICAgaWYoIGlzX29iamVjdCgkdGVzdGVyKSApIHsKICAgICAgICAgICAgaWYoICFpc3NldCgkb2ZmZXIpICkgewogICAgICAgICAgICAgICAgLy8gdGVzdCBhbGwgcHJvbW90aW9ucyBhZ2FpbnN0IHRoZSBza3Ugb2YgdGhpcyBvcHRpb24uCiAgICAgICAgICAgICAgICAkdGVzdGVyLT5zZXRfc2t1KCRvcHQtPnNrdSk7CiAgICAgICAgICAgICAgICAkdGVzdGVyLT5zZXRfcHJpY2UoJGJhc2VfcHJpY2UpOwogICAgICAgICAgICAgICAgJG9mZmVyID0gJHRlc3Rlci0+ZmluZF9tYXRjaCgpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiggIWlzc2V0KCRvZmZlcikgKSB7CiAgICAgICAgICAgICAgICAvLyBzdGlsbCBubyBtYXRjaGluZyBvZmZlcj8KICAgICAgICAgICAgICAgIC8vIHRlc3QgaWYgdGhpcyAnc2t1JyBpcyB0aGUgb2ZmZXIgcGFydCBvZiBhIHByb21vdGlvbgogICAgICAgICAgICAgICAgLy8gYW5kIHRoYXQgdGhlIGNhcnQgY29udGVudHMgYWxyZWFkeSBtYXRjaC4KICAgICAgICAgICAgICAgICR0ZXN0ZXItPnNldF9za3UoJG9wdC0+c2t1KTsKICAgICAgICAgICAgICAgICRvZmZlciA9ICR0ZXN0ZXItPmZpbmRfb2ZmZXJfbWF0Y2goKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJG15X29mZmVyID0gX19jYXJ0Ml9yZXNldF9teW9mZmVyKCk7CiAgICAgICAgaWYoICRvZmZlciApIHsKICAgICAgICAgICAgJG15X29mZmVyID0gX19jYXJ0Ml9hZGp1c3Rfb2ZmZXIoJHN1cHBsaWVyX21vZCwkb2ZmZXIpOwogICAgICAgICAgICBzd2l0Y2goICRvZmZlci0+Z2V0X3R5cGUoKSApIHsKICAgICAgICAgICAgY2FzZSAkb2ZmZXI6Ok9GRkVSX1BST0RVQ1RTS1U6CiAgICAgICAgICAgICAgICAvLyB3ZSBhcmUgb2ZmZXJpbmcgdGhpcyBza3UgZnJlZSAuLi4gd2hlbiB3ZSBhZGQgaXQgdG8gdGhlIGNhcnQKICAgICAgICAgICAgICAgIC8vIHNvIGFkanVzdCB0aGUgb2ZmZXIgdG8gYSB0eXBlICdkaXNjb3VudCcgd2l0aCB0aGUgcHJpY2UgYmVpbmcgdGhlIGJhc2UgcHJpY2Ugb2YgdGhlIG9wdGlvbi4KICAgICAgICAgICAgICAgIGlmKCBmbm1hdGNoKCRvZmZlci0+Z2V0X3ZhbCgpLCRvcHQtPnNrdSkgKSB7CiAgICAgICAgICAgICAgICAgICAgJG9mZmVyLT5zZXRfdHlwZSgkb2ZmZXI6Ok9GRkVSX0RJU0NPVU5UKTsKICAgICAgICAgICAgICAgICAgICAkb2ZmZXItPnNldF92YWwoJGJhc2VfcHJpY2UgKiAtMSk7CiAgICAgICAgICAgICAgICAgICAgJG15X29mZmVyID0gX19jYXJ0Ml9hZGp1c3Rfb2ZmZXIoJHN1cHBsaWVyX21vZCwkb2ZmZXIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJG9mZmVyOjpPRkZFUl9QUk9EVUNUSUQ6CiAgICAgICAgICAgICAgICAvLyBkbyBub3RoaW5nLgogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAkbXlfb2ZmZXIgPSBfX2NhcnQyX2FkanVzdF9vZmZlcigkc3VwcGxpZXJfbW9kLCRvZmZlcik7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gY2FsY3VsYXRlIHRoZSBkaXNjb3VudC4uLiBpZiBhbnkuCiAgICAgICAgICAgIGlmKCAkbXlfb2ZmZXItPnBlcmNlbnQgIT0gbnVsbCApICRteV9vZmZlci0+ZGlzY291bnQgPSByb3VuZCgkYmFzZV9wcmljZSAqICRteV9vZmZlci0+cGVyY2VudCAqIC0xLDIpOwogICAgICAgICAgICB1bnNldCgkb2ZmZXIpOwogICAgICAgIH0KCiAgICAgICAgLy8gY2FsY3VsYXRlIHRoZSBmaW5hbCBwcmljZSBmb3IgdGhpcyBpdGVtLCBhbmQgYnVpbGQgdGhlIGxpc3Qgb2Ygb3B0aW9ucyB0byBkaXNwbGF5LgogICAgICAgICRwcmljZSA9IChmbG9hdClzcHJpbnRmKCclLjJmJywkYmFzZV9wcmljZSArICRteV9vZmZlci0+ZGlzY291bnQpOwogICAgICAgICRzaWcgPSBiYXNlNjRfZW5jb2RlKGltcGxvZGUoJzo6JyxhcnJheSgkb3B0LT5za3UsJG9wdC0+cW9oLCRiYXNlX3ByaWNlLCRteV9vZmZlci0+ZGlzY291bnQsJG15X29mZmVyLT5wYXJlbnQsJG15X29mZmVyLT5wcm9tb19pZCkpKTsKICAgICAgICAkc2lnID0gbWQ1KF9fRklMRV9fLnNlc3Npb25faWQoKS4kc2lnKS4nOjonLiRzaWc7CgogICAgICAgIGlmKCAkb3B0LT5za3UgPT0gJHNrdSApIHsKICAgICAgICAgICAgLy8gd2UncmUgc3BlY2lmeWluZyBhbiBvcHRpb24gc2t1LgogICAgICAgICAgICAkb25lX29wdGlvbiA9ICRzaWc7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbigndW5pdHByaWNlJywkcHJpY2UpOwogICAgICAgIH0KICAgICAgICAkb3B0aW9uc1skc2lnXSA9IGNhcnQyX3V0aWxzOjpnZXRfb3B0aW9uX3RleHQoJHByb2R1Y3QsJG9wdCwkbXlfb2ZmZXItPnBlcmNlbnQsJG15X29mZmVyLT5kaXNjb3VudCwkcHJpY2UpOwogICAgfQoKICAgIGlmKCAkb25lX29wdGlvbiAhPSBudWxsICkgewogICAgICAgICR0cGwtPmFzc2lnbignc2luZ2xlX29wdGlvbicsJG9uZV9vcHRpb24pOwogICAgfQogICAgZWxzZSBpZiggY291bnQoJG9wdGlvbnMpID4gMCApIHsKICAgICAgICAkdHBsLT5hc3NpZ24oJ29wdGlvbnMnLCRvcHRpb25zKTsKICAgIH0KfQokdHBsLT5kaXNwbGF5KCk7CgovLyBFT0YK]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENhcnQgLSBBIHNpbXBsZSBleGFtcGxlIGZyb250ZW5kIGZvcm0gbW9kdWxlCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgKSBleGl0OwoKaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2FjdGlvbi5hZG1pbl9wcmVmZXJlbmNlc190YWIucGhwJyk7Cg==]]></data>
	</file>
	<file>
	  <filename>/action.mycart.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENhcnQgLSBBIHNpbXBsZSBleGFtcGxlIGZyb250ZW5kIGZvcm0gbW9kdWxlCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiR2aWV3Y2FydHBhZ2UgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ3ZpZXdjYXJ0cGFnZSddKSkgewogICAgJG1hbmFnZXIgPSYgJGdDbXMtPkdldEhpZXJhcmNoeU1hbmFnZXIoKTsKICAgICRub2RlID0mICRtYW5hZ2VyLT5zdXJlR2V0Tm9kZUJ5QWxpYXMoJHBhcmFtc1sndmlld2NhcnRwYWdlJ10pOwogICAgaWYgKGlzc2V0KCRub2RlKSkgewogICAgICAgICRjb250ZW50ID0gJG5vZGUtPkdldENvbnRlbnQoKTsKICAgICAgICBpZiAoaXNzZXQoJGNvbnRlbnQpKSB7CiAgICAgICAgICAgICR2aWV3Y2FydHBhZ2UgPSAkY29udGVudC0+SWQoKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkbm9kZSA9ICRtYW5hZ2VyLT5zdXJlR2V0Tm9kZUJ5SWQoJHBhcmFtc1sndmlld2NhcnRwYWdlJ10pOwogICAgICAgIGlmIChpc3NldCgkbm9kZSkpIHsKICAgICAgICAgICAgJHZpZXdjYXJ0cGFnZSA9ICRwYXJhbXNbJ3ZpZXdjYXJ0cGFnZSddOwogICAgICAgIH0KICAgIH0KfQppZiggJHZpZXdjYXJ0cGFnZSAhPSAnJyApICRyZXR1cm5pZCA9ICR2aWV3Y2FydHBhZ2U7CgokdGhldGVtcGxhdGUgPSAkdGhpcy0+ZmluZF9sYXlvdXRfdGVtcGxhdGUoICRwYXJhbXMsICdteWNhcnR0ZW1wbGF0ZScsICdDYXJ0Mjo6TXkgQ2FydCBGb3JtJyk7CiR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJHRoZXRlbXBsYXRlKTsKCi8vIEV4cGFuZCB0aGUgY2FydAokaXRlbWNvdW50ID0gMDsKJGNhcnR0b3RhbCA9IDA7CiRoZWxwZXIgPSAkdGhpcy0+Z2V0X2NhcnRfbWFuYWdlcigpOwokaXRlbXMgPSAkaGVscGVyLT5HZXRJdGVtcygpOwpmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkaXRlbXMpOyAkaSsrICkgewogICAgJG9iaiA9JiAkaXRlbXNbJGldOwogICAgJGl0ZW1jb3VudCArPSAkb2JqLT5nZXRfcXVhbnRpdHkoKTsKfQoKJGNhcnR0b3RhbCA9ICR0aGlzLT5HZXRUb3RhbCgpOwokdG90YWx3ZWlnaHQgPSAkdGhpcy0+R2V0VG90YWxXZWlnaHQoKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2NhcnRfc3VibWl0J10pICYmICRpdGVtY291bnQgPiAwKSAkdGhpcy0+UmVkaXJlY3QoJGlkLCd2aWV3Y2FydCcsJHJldHVybmlkLCRwYXJhbXMpOwoKJHRwbC0+YXNzaWduKCdwcmljZXRleHQnLCR0aGlzLT5MYW5nKCdwcmljZScpKTsKJHRwbC0+YXNzaWduKCdjYXJ0X2l0ZW1jb3VudCcsJGl0ZW1jb3VudCk7CiR0cGwtPmFzc2lnbignY2FydF90b3RhbHdlaWdodCcsJHRvdGFsd2VpZ2h0KTsKJHRwbC0+YXNzaWduKCdjYXJ0X3RvdGFscHJpY2UnLCRjYXJ0dG90YWwpOwokdHBsLT5hc3NpZ24oJ2NhcnR0b3RhbCcsJGNhcnR0b3RhbCk7CiR0cGwtPmFzc2lnbignbnVtaXRlbXN0ZXh0JywkdGhpcy0+TGFuZygnbnVtYmVyX29mX2l0ZW1zJykpOwokdHBsLT5hc3NpZ24oJ2N1cnJlbmN5X3N5bWJvbCcsY2dfZWNvbW06OmdldF9jdXJyZW5jeV9zeW1ib2woKSk7CiR0cGwtPmFzc2lnbignd2VpZ2h0X3VuaXRzJyxjZ19lY29tbTo6Z2V0X3dlaWdodF91bml0cygpKTsKaWYoICRpdGVtY291bnQgPiAwICkgewogICR0cGwtPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdteWNhcnQnLCRyZXR1cm5pZCwkcGFyYW1zKSk7CiAgJHRwbC0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKICAkdHBsLT5hc3NpZ24oJ3N1Ym1pdG5hbWUnLCRpZC4nY2FydF9zdWJtaXQnKTsKICAkdHBsLT5hc3NpZ24oJ2NoZWNrb3V0dGV4dCcsJHRoaXMtPkxhbmcoJ215X2NhcnQnKSk7Cn0KJHRwbC0+ZGlzcGxheSgpOwoKCi8vIEVPRgo=]]></data>
	</file>
	<file>
	  <filename>/action.viewcart.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENhcnQgLSBBIHNpbXBsZSBleGFtcGxlIGZyb250ZW5kIGZvcm0gbW9kdWxlCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiRkZXN0cGFnZSA9ICRyZXR1cm5pZDsKaWYgKGlzc2V0KCRwYXJhbXNbJ3ZpZXdjYXJ0cGFnZSddKSkgewogICAgJHRtcCA9ICR0aGlzLT5yZXNvbHZlX2FsaWFzX29yX2lkKCRwYXJhbXNbJ3ZpZXdjYXJ0cGFnZSddKTsKICAgIGlmKCAkdG1wICkgJGRlc3RwYWdlID0gJHRtcDsKfQoKJHRoZXRlbXBsYXRlID0gJHRoaXMtPmZpbmRfbGF5b3V0X3RlbXBsYXRlKCRwYXJhbXMsJ3ZpZXdjYXJ0dGVtcGxhdGUnLCdDYXJ0Mjo6VmlldyBDYXJ0IEZvcm0nKTsKJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgkdGhldGVtcGxhdGUpOwoKJGhlbHBlciA9ICR0aGlzLT5nZXRfY2FydF9tYW5hZ2VyKCk7CnRyeSB7CiAgICAvLyBFeHBhbmQgdGhlIGNhcnQKICAgICRpdGVtcyA9ICRoZWxwZXItPkdldEl0ZW1zKCk7CgogICAgLy8gaGFuZGxlIGVtcHR5aW5nIHRoZSBjYXJ0CiAgICBpZiggaXNzZXQoJHBhcmFtc1snY2FydF9lbXB0eV9jYXJ0J10pICkgewogICAgICAgICRoZWxwZXItPkVyYXNlQ2FydCgpOwogICAgICAgICR0aGlzLT5SZWRpcmVjdENvbnRlbnQoJHJldHVybmlkKTsKICAgIH0KICAgIC8vIGhhbmRsZSBhZGp1c3RpbmcgdGhlIGNhcnQKICAgIGVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ2NhcnRfYWRqdXN0J10pICkgewogICAgICAgIC8vIGFkanVzdCB0aGUgcXVhbnRpdHkKICAgICAgICAkaWR4ID0gMDsKICAgICAgICBmb3JlYWNoKCAkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlICkgewogICAgICAgICAgICBpZiggcHJlZ19tYXRjaCggJy9jYXJ0X3F1YW50aXR5Xy8nLCAka2V5ICkgKSB7CiAgICAgICAgICAgICAgICAkaWR4ID0gKGludClzdWJzdHIoJGtleSwxNCk7CiAgICAgICAgICAgICAgICAkaXRlbXNbJGlkeF0tPnNldF9xdWFudGl0eSgkdmFsdWUpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyByZW1vdmUgYW55IHplcm8gcXVhbnRpdHkgaXRlbXMKICAgICAgICAvLyBvciBmbGFnZ2VkIGZvciByZW1vdmFsLgogICAgICAgICR0bXAgPSBhcnJheSgpOwogICAgICAgICRyZW1vdmVkID0gYXJyYXkoKTsKICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkaXRlbXMpOyAkaSsrICkgewogICAgICAgICAgICAkaXRlbSA9ICRpdGVtc1skaV07CiAgICAgICAgICAgIGlmKCAkaXRlbS0+Z2V0X3F1YW50aXR5KCkgPT0gMCAgfHwgaXNzZXQoJHBhcmFtc1snY2FydF9yZW1vdmVfJy4kaV0pIHx8CiAgICAgICAgICAgICAgICAoJGl0ZW0tPmdldF9wYXJlbnQoKSAhPT0gbnVsbCAmJiBpbl9hcnJheSgkaXRlbS0+Z2V0X3BhcmVudCgpLCRyZW1vdmVkKSkgKSB7CiAgICAgICAgICAgICAgICAkcmVtb3ZlZFtdID0gJGk7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkdG1wW10gPSAkaXRlbTsKICAgICAgICB9CiAgICAgICAgJGl0ZW1zID0gJHRtcDsKCiAgICAgICAgLy8gd2UgaGF2ZSB0byBjbGVhciBhbGwgZGlzY291bnRlZCBjYXJ0IGl0ZW1zCiAgICAgICAgLy8gYW5kIGZyZWUgY2FydCBpdGVtcwogICAgICAgIC8vIHRvIGFkZCBuZXcgb25lcy4KICAgICAgICAkdG1wID0gYXJyYXkoKTsKICAgICAgICBmb3JlYWNoKCAkaXRlbXMgYXMgJGl0ZW0gKSB7CiAgICAgICAgICAgIGlmKCAkaXRlbS0+Z2V0X3BhcmVudCgpID4gLTEgKSBjb250aW51ZTsKICAgICAgICAgICAgaWYoICRpdGVtLT5nZXRfdW5pdF9kaXNjb3VudCgpIDwgMCApICRpdGVtLT5zZXRfdW5pdF9kaXNjb3VudCgwKTsKICAgICAgICAgICAgJGl0ZW0tPnNldF9wcm9tbyhudWxsKTsKICAgICAgICAgICAgJHRtcFtdID0gJGl0ZW07CiAgICAgICAgfQogICAgICAgICRpdGVtcyA9ICR0bXA7CgogICAgICAgIC8vIHJlIGFuYWx5emUgcHJvbW90aW9ucy4KICAgICAgICAkdGVzdGVyID0gY2dfZWNvbW06OmdldF9wcm9tb3Rpb25zX3Rlc3RlcigpOwogICAgICAgIGlmKCAkdGVzdGVyICkgewogICAgICAgICAgICAkdGVzdGVyLT5zZXRfcHJvbW9fdHlwZSgkdGVzdGVyOjpUWVBFX0lOU1RBTlQpOwogICAgICAgICAgICAkdGVzdGVyLT5zZXRfY2FydCgkaXRlbXMpOwogICAgICAgICAgICAkb2ZmZXJzID0gJHRlc3Rlci0+ZmluZF9hbGxfY2FydF9tYXRjaGVzKCk7CiAgICAgICAgICAgIGlmKCAkb2ZmZXJzICkgewogICAgICAgICAgICAgICAgZm9yZWFjaCggJG9mZmVycyBhcyAkb2ZmZXIgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoICRvZmZlci0+Z2V0X2NhcnRfaWR4KCkgPiAtMSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICRvZmZlci0+Z2V0X2NhcnRfaWR4KCkgPj0gY291bnQoJGl0ZW1zKSApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICAgICAkaXRlbSA9ICRpdGVtc1skb2ZmZXItPmdldF9jYXJ0X2lkeCgpXTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICRpdGVtLT5nZXRfdW5pdF9kaXNjb3VudCgpICE9IDAgfHwgJGl0ZW0tPmdldF9wYXJlbnQoKSA+IC0xICkgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICAgICRhZGogPSBjYXJ0Ml91dGlsczo6YWRqdXN0X29mZmVyKCRpdGVtLT5nZXRfc291cmNlKCksJG9mZmVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoIGlzX29iamVjdCgkYWRqKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkaXNjb3VudCA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZnJlZV9wcm9kdWN0ID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAkYWRqLT5mcmVlX3Byb2R1Y3RpZCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZnJlZV9wcm9kdWN0ID0gY2dfZWNvbW06OmdldF9wcm9kdWN0X2luZm8oJGl0ZW0tPmdldF9zb3VyY2UoKSwkYWRqLT5mcmVlX3Byb2R1Y3RpZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKCAkYWRqLT5mcmVlX3Byb2R1Y3Rza3UgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZyZWVfcHJvZHVjdCA9IGNnX2Vjb21tOjpnZXRfcHJvZHVjdF9ieV9za3UoJGl0ZW0tPmdldF9zb3VyY2UoKSwkYWRqLT5mcmVlX3Byb2R1Y3Rza3UpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiggJGFkai0+cGVyY2VudCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWRqLT5kaXNjb3VudCA9ICRpdGVtLT5nZXRfdW5pdF9wcmljZSgpICogJG9iai0+cGVyY2VudCAqIC0xOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAkYWRqLT5kaXNjb3VudCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGp1c3QgdGhlIHNwZWNpZmllZCBjYXJ0IGl0ZW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXRlbS0+c2V0X3VuaXRfZGlzY291bnQoJGFkai0+ZGlzY291bnQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpdGVtLT5zZXRfcHJvbW8oJGFkai0+cHJvbW9faWQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiggJGZyZWVfcHJvZHVjdCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGQgYSBuZXcgY2FydCBpdGVtLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjYXJ0X2l0ZW0gPSBuZXcgY2dfZWNvbW1fY2FydGl0ZW0oJGFkai0+ZnJlZV9wcm9kdWN0c2t1LCRmcmVlX3Byb2R1Y3QtPmdldF9wcm9kdWN0X2lkKCksJGl0ZW0tPmdldF9xdWFudGl0eSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGl0ZW0tPmdldF9zb3VyY2UoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNhcnRfaXRlbS0+c2V0X3BhcmVudCgkYWRqLT5wYXJlbnQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjYXJ0X2l0ZW0tPnNldF91bml0X3dlaWdodCgkZnJlZV9wcm9kdWN0LT5nZXRfd2VpZ2h0KCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjYXJ0X2l0ZW0tPnNldF9wcm9tbygkYWRqLT5wcm9tb19pZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHVuaXRfcHJpY2UgPSAkZnJlZV9wcm9kdWN0LT5nZXRfcHJpY2UoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2t1ID0gJGFkai0+ZnJlZV9wcm9kdWN0c2t1OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0ZXh0ID0gJGZyZWVfcHJvZHVjdC0+Z2V0X25hbWUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggJGFkai0+ZnJlZV9wcm9kdWN0c2t1ICE9ICRmcmVlX3Byb2R1Y3QtPmdldF9za3UoKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgJGZyZWVfcHJvZHVjdC0+Y291bnRfb3B0aW9ucygpOyAkaSsrICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9wdCA9ICRmcmVlX3Byb2R1Y3QtPmdldF9vcHRpb25fYnlfaWR4KCRpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAkb3B0LT5za3UgPT0gJG15X29mZmVyLT5mcmVlX3Byb2R1Y3Rza3UgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRleHQgLj0gJzogJy4kb3B0LT50ZXh0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRza3UgPT0gJG15X29mZmVyLT5mcmVlX3Byb2R1Y3Rza3U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHVuaXRfcHJpY2UgPSAkb3B0LT5wYXJzZV9hZGp1c3RtZW50KCRmcmVlX3Byb2R1Y3QtPmdldF9wcmljZSgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAvLyBmb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRpbSA9ICRmcmVlX3Byb2R1Y3QtPmdldF9kaW1lbnNpb25zKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoICRkaW0gKSAkY2FydF9pdGVtLT5zZXRfZGltZW5zaW9ucyggJGRpbVswXSwgJGRpbVsxXSwgJGRpbVsyXSApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjYXJ0X2l0ZW0tPnNldF9za3UoJHNrdSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNhcnRfaXRlbS0+c2V0X3N1bW1hcnkoJHRleHQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjYXJ0X2l0ZW0tPnNldF91bml0X3ByaWNlKCR1bml0X3ByaWNlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2FydF9pdGVtLT5zZXRfdW5pdF9kaXNjb3VudCgkdW5pdF9wcmljZSAqIC0xKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2FydF9pdGVtLT5zZXRfYWxsb3dfcmVtb3ZlKEZBTFNFKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2FydF9pdGVtLT5zZXRfYWxsb3dfZHVwbGljYXRlKEZBTFNFKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2FydF9pdGVtLT5zZXRfYWxsb3dfcXVhbnRpdHlfYWRqdXN0KEZBTFNFKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXRlbXNbXSA9ICRjYXJ0X2l0ZW07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0gLy9pZiBoYXZlIGFkanVzdG1lbnQKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRpZSwgY29uZGl0aW9uIG5vdCBoYW5kbGVkLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9mZmVyIHByZXJjZW50LCBhbmQgb2ZmZXIgZGlzY291bnQuLi4KICAgICAgICAgICAgICAgICAgICAgICAgLy8KICAgICAgICAgICAgICAgICAgICAgICAgZGllKCd0b2RvOiBoYW5kbGUgb2ZmZXIgd2l0aCBubyBjYXJ0IGluZGV4Jyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSAvLyBmb3JlYWNoIG9mZmVyCiAgICAgICAgICAgIH0gLy8gaWYgb2ZmZXJzCiAgICAgICAgfSAvLyBpZiB0ZXN0ZXIKCiAgICAgICAgJGhlbHBlci0+U2V0SXRlbXMoJGl0ZW1zKTsKICAgICAgICAkdGhpcy0+UmVkaXJlY3RDb250ZW50KCRyZXR1cm5pZCk7CiAgICB9Cn0KY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsKICAgICR0cGwtPmFzc2lnbignZXJyb3InLCRlLT5HZXRNZXNzYWdlKCkpOwp9CgoKJHRwbC0+YXNzaWduKCdjYXJ0dG90YWwnLCRoZWxwZXItPkdldFRvdGFsKCkpOwokdHBsLT5hc3NpZ24oJ2NhcnR3ZWlnaHQnLCRoZWxwZXItPkdldFRvdGFsV2VpZ2h0KCkpOwokY2FydG9ianMgPSBhcnJheSgpOwokaWR4ID0gMDsKJGl0ZW1zID0gJGhlbHBlci0+R2V0SXRlbXMoKTsKZm9yZWFjaCggJGl0ZW1zIGFzICRvbmVpdGVtICkgewogICAgLy8gY29udmVydCB0aGUgY2FydCBpdGVtIHRvIGEgc3RkY2xhc3Mgb2JqZWN0IHVzaW5nIHNvbWUgdHJpY2tlcnkuCiAgICAkdG1wID0gYXJyYXkoJ3NvdXJjZScsJ3Byb2R1Y3RfaWQnLCdza3UnLCdxdWFudGl0eScsJ2Jhc2VfcHJpY2UnLCd0eXBlJywKICAgICAgICAgICAgICAgICAnZXN0aW1hdGVkJywncGVuZGluZycsJ3VuaXRfd2VpZ2h0JywndW5pdF9wcmljZScsJ3N1bW1hcnknLCdpdGVtX3RvdGFsJywKICAgICAgICAgICAgICAgICAnc3Vic2NyaXB0aW9uJywnYWxsb3dfcXVhbnRpdHlfYWRqdXN0JywnYWxsb3dfcmVtb3ZlJywndW5pdF9kaXNjb3VudCcsJ3BhcmVudCcsJ25ldF91bml0X3ByaWNlJyk7CiAgICAkb2JqID0gbmV3IFxzdGRDbGFzczsKICAgIGZvcmVhY2goICR0bXAgYXMgJHQyICkgewogICAgICAgICR0MyA9ICdnZXRfJy4kdDI7CiAgICAgICAgaWYoICR0MiA9PSAnZXN0aW1hdGVkJyApICR0MyA9ICdpc18nLiR0MjsKICAgICAgICBpZiggJHQyID09ICdhbGxvd19xdWFudGl0eV9hZGp1c3QnICkgJHQzID0gJHQyOwogICAgICAgIGlmKCAkdDIgPT0gJ2FsbG93X3JlbW92ZScgKSAkdDMgPSAkdDI7CiAgICAgICAgJG9iai0+JHQyID0gJG9uZWl0ZW0tPiR0MygpOwogICAgfQoKICAgIGlmKCAkb25laXRlbS0+YWxsb3dfcXVhbnRpdHlfYWRqdXN0KCkgKSB7CiAgICAgICAgLy8gdGhpcyBpdGVtIGFsbG93cyBhZGp1c3RpbmcgdGhlIHF1YW50aXR5LgogICAgICAgICRvYmotPnF1YW50aXR5X2JveCA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdjYXJ0X3F1YW50aXR5XycuJGlkeCwgJG9iai0+cXVhbnRpdHksMywzKTsKICAgIH0KCiAgICBpZiggJG9uZWl0ZW0tPmFsbG93X3JlbW92ZSgpICYmICRvbmVpdGVtLT5nZXRfdHlwZSgpICE9IGNnX2Vjb21tX2NhcnRpdGVtOjpUWVBFX0RJU0NPVU5UICkgewogICAgICAgICRvYmotPnJlbW92ZV9ib3ggPSAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ2NhcnRfcmVtb3ZlXycuJGlkeCwxKTsKICAgIH0KCiAgICAkY2FydG9ianNbXSA9ICRvYmo7CiAgICAkaWR4Kys7Cn0KCiR0cGwtPmFzc2lnbignY2FydF9kYXRhJywkaXRlbXMpOwokdHBsLT5hc3NpZ24oJ2NhcnRpdGVtcycsJGNhcnRvYmpzKTsKJHRwbC0+YXNzaWduKCdzdWJ0b3RhbF90ZXh0JywkdGhpcy0+TGFuZygnc3VidG90YWwnKSk7CiR0cGwtPmFzc2lnbigncHJpY2V0ZXh0JywkdGhpcy0+TGFuZygncHJpY2UnKSk7CiR0cGwtPmFzc2lnbigncXVhbnRpdHl0ZXh0JywkdGhpcy0+TGFuZygncXVhbnRpdHknKSk7CiR0cGwtPmFzc2lnbigndG90YWxfdGV4dCcsJHRoaXMtPkxhbmcoJ3RvdGFsJykpOwokdHBsLT5hc3NpZ24oJ3RvdGFsX3dlaWdodF90ZXh0JywkdGhpcy0+TGFuZygndG90YWxfd2VpZ2h0JykpOwokdHBsLT5hc3NpZ24oJ2N1cnJlbmN5c3ltYm9sJyxcY2dfZWNvbW06OmdldF9jdXJyZW5jeV9zeW1ib2woKSk7CiR0cGwtPmFzc2lnbignd2VpZ2h0dW5pdHMnLFxjZ19lY29tbTo6Z2V0X3dlaWdodF91bml0cygpKTsKaWYoICFpc3NldCgkcGFyYW1zWydoaWRlZm9ybSddKSApIHsKICAgICR0cGwtPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCd2aWV3Y2FydCcsJGRlc3RwYWdlKSk7CiAgICAkdHBsLT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwogICAgJHRwbC0+YXNzaWduKCdzdWJtaXRfbmFtZScsJGlkLidjYXJ0X2FkanVzdCcpOwogICAgJHRwbC0+YXNzaWduKCdzdWJtaXRfdGV4dCcsJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKTsKCn0KJHRwbC0+ZGlzcGxheSgpOwoKLy8gRU9GCg==]]></data>
	</file>
	<file>
	  <filename>/Cart2.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENhcnQyLSBBIHNpbXBsZSBleGFtcGxlIGZyb250ZW5kIGZvcm0gbW9kdWxlCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgovLwovLyBFWENFUFRJT04KLy8KY2xhc3MgY2FydDJfRXhjZXB0aW9uIGV4dGVuZHMgY2dfZXhjZXB0aW9uIHt9CmNsYXNzIGNhcnQyX1FPSEV4Y2VwdGlvbiBleHRlbmRzIGNhcnQyX0V4Y2VwdGlvbiB7fQoKZmluYWwgY2xhc3MgQ2FydDIgZXh0ZW5kcyBDR0V4dGVuc2lvbnMKewogICAgcHJpdmF0ZSAkX2NhcnRfaGVscGVyOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXROYW1lKCkgeyByZXR1cm4gJ0NhcnQyJzsgfQogICAgcHVibGljIGZ1bmN0aW9uIEdldFZlcnNpb24oKSB7IHJldHVybiAnMS40LjInOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKSB7IHJldHVybiAiMi4yLjIiOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0QXV0aG9yKCkgeyByZXR1cm4gJ2NhbGd1eTEwMDAnOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKSB7IHJldHVybiAnY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyc7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpIHsgcmV0dXJuIHRydWU7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBIYXNBZG1pbigpIHsgcmV0dXJuIHRydWU7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKSB7IHJldHVybiAnZWNvbW1lcmNlJzsgfQogICAgcHVibGljIGZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24oKSB7IHJldHVybiAkdGhpcy0+TGFuZygnbW9kZGVzY3JpcHRpb24nKTsgfQogICAgcHVibGljIGZ1bmN0aW9uIEFsbG93QXV0b0luc3RhbGwoKSB7IHJldHVybiBGQUxTRTsgfQogICAgcHVibGljIGZ1bmN0aW9uIEFsbG93QXV0b1VwZ3JhZGUoKSB7IHJldHVybiBGQUxTRTsgfQogICAgcHVibGljIGZ1bmN0aW9uIExhenlMb2FkRnJvbnRlbmQoKSB7IHJldHVybiBUUlVFOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gTGF6eUxvYWRBZG1pbigpIHsgcmV0dXJuIFRSVUU7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKSB7IHJldHVybiAkdGhpcy0+TGFuZygncG9zdGluc3RhbGwnKTsgfQogICAgcHVibGljIGZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsgfQogICAgcHVibGljIGZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKSB7IHJldHVybiAkdGhpcy0+TGFuZygncmVhbGx5X3VuaW5zdGFsbCcpOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkgeyByZXR1cm4gYXJyYXkoJ0NHRXh0ZW5zaW9ucyc9PicxLjU2LjInLCAnQ0dFY29tbWVyY2VCYXNlJz0+JzEuOC41Jyk7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKSB7IHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpOyB9CgogICAgcHVibGljIGZ1bmN0aW9uIEluaXRpYWxpemVGcm9udGVuZCgpCiAgICB7CiAgICAgICAgJHRoaXMtPlJlZ2lzdGVyTW9kdWxlUGx1Z2luKCk7CiAgICAgICAgJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdhZGR0b2NhcnR0ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbXljYXJ0dGVtcGxhdGUnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3N1cHBsaWVyJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdza3UnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3ByaWNlJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdwcm9kdWN0JyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCd2aWV3Y2FydHRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCd2aWV3Y2FydHBhZ2UnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2hpZGVmb3JtJyxDTEVBTl9JTlQpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdkZXN0cGFnZScsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAuJy9jYXJ0Xy4qLycsQ0xFQU5fU1RSSU5HKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gSW5pdGlhbGl6ZWFkbWluKCkKICAgIHsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdhZGR0b2NhcnR0ZW1wbGF0ZScsJycsJHRoaXMtPkxhbmcoJ2hlbHBfYWRkdG9jYXJ0dGVtcGxhdGUnKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbXljYXJ0dGVtcGxhdGUnLCcnLCR0aGlzLT5MYW5nKCdoZWxwX215Y2FydHRlbXBsYXRlJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3N1cHBsaWVyJywnUHJvZHVjdHMnLCR0aGlzLT5MYW5nKCdoZWxwX3N1cHBsaWVyJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3NrdScsJ1Byb2R1Y3RzJywkdGhpcy0+TGFuZygnaGVscF9za3UnKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigncHJpY2UnLCcnLCR0aGlzLT5MYW5nKCdoZWxwX3ByaWNlJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3Byb2R1Y3QnLCdQcm9kdWN0cycsJHRoaXMtPkxhbmcoJ2hlbHBfcHJvZHVjdCcpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCd2aWV3Y2FydHRlbXBsYXRlJywnJywkdGhpcy0+TGFuZygnaGVscF92aWV3Y2FydHRlbXBsYXRlJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3ZpZXdjYXJ0cGFnZScsJycsJHRoaXMtPkxhbmcoJ2hlbHBfdmlld2NhcnRwYWdlJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2hpZGVmb3JtJywnMCcsJHRoaXMtPkxhbmcoJ2hlbHBfaGlkZWZvcm0nKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZGVzdHBhZ2UnLCcnLCR0aGlzLT5MYW5nKCdoZWxwX2Rlc3RwYWdlJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2FjdGlvbicsJ2RlZmF1bHQnLCR0aGlzLT5MYW5nKCdoZWxwX2FjdGlvbicpKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB0cGxfdHlwZV9sYW5nX2NiKCRzdHIpCiAgICB7CiAgICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NhcnQyJyk7CiAgICAgICAgJHN0ciA9IHN0cl9yZXBsYWNlKCcgJywnXycsJHN0cik7CiAgICAgICAgaWYoIGlzX29iamVjdCgkbW9kKSApIHJldHVybiAkbW9kLT5MYW5nKCd0cGx0eXBlXycuJHN0cik7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gdHBsX3R5cGVfcmVzZXRfY2IoQ21zTGF5b3V0VGVtcGxhdGVUeXBlICR0eXBlKQogICAgewogICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDYXJ0MicpOwogICAgICAgIGlmKCAkdHlwZS0+Z2V0X29yaWdpbmF0b3IoKSAhPSAkbW9kLT5HZXROYW1lKCkgKSB0aHJvdyBuZXcgQ21zTG9naWNFeGNlcHRpb24oJ0Nhbm5vdCByZXNldCBjb250ZW50cyBmb3IgdGhpcyB0ZW1wbGF0ZSB0eXBlJyk7CgogICAgICAgICRmbiA9IG51bGw7CiAgICAgICAgc3dpdGNoKCAkdHlwZS0+Z2V0X25hbWUoKSApIHsKICAgICAgICBjYXNlICdBZGQgdG8gQ2FydCBGb3JtJzoKICAgICAgICAgICAgJGZuID0gJ29yaWdfYWRkdG9jYXJ0X3RlbXBsYXRlLnRwbCc7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ1ZpZXcgQ2FydCBGb3JtJzoKICAgICAgICAgICAgJGZuID0gJ29yaWdfdmlld2NhcnRmb3JtX3RlbXBsYXRlLnRwbCc7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ015IENhcnQgRm9ybSc6CiAgICAgICAgICAgICRmbiA9ICdvcmlnX215Y2FydGZvcm1fdGVtcGxhdGUudHBsJzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQoKICAgICAgICBpZiggISRmbiApIHJldHVybjsKICAgICAgICAkZm4gPSBfX0RJUl9fLicvdGVtcGxhdGVzLycuJGZuOwogICAgICAgIGlmKCBmaWxlX2V4aXN0cygkZm4pICkgcmV0dXJuIEBmaWxlX2dldF9jb250ZW50cygkZm4pOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NhcnRfbWFuYWdlcigpCiAgICB7CiAgICAgICAgaWYoICEkdGhpcy0+X2NhcnRfaGVscGVyICkgJHRoaXMtPl9jYXJ0X2hlbHBlciA9IG5ldyBcQ2FydDJcY2FydF9oZWxwZXIoICR0aGlzICk7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fY2FydF9oZWxwZXI7CiAgICB9Cgp9IC8vIGNsYXNzCgojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/doc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgogIDxsaT5WZXJzaW9uIDEuMC41CiAgICA8cD48c3Ryb25nPk5PVEU6IFJFUVVJUkVTIFBIUCA1LjMueDwvc3Ryb25nPjwvcD4KICAgIDxwPkluaXRpYWwgcHVibGljIHJlbGVhc2UuPC9saT4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuMC43CiAgICA8cD5GaXggbWlub3IgaXNzdWUgd2hlcmUgUHJvbW90aW9ucyBpcyByZXF1aXJlZC48L3A+CiAgICA8cD5SZWdpc3RlcnMgc3RhdGljIHBsdWdpbiBvbiBpbnN0YWxsLjwvcD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuMS54CiAgICA8dWw+CiAgICAgIDxsaT5CdWcgZml4ZXMuPC9saT4KICAgICAgPGxpPkFkZHMgYWJpbGl0eSB0byBvdmVycmlkZSBwcmljZSBwZXIgc2t1IChub3Qgb3B0aW9ucyk8L2xpPgogICAgICA8bGk+QWRkcyBzdXBwb3J0IGZvciBleHRlbmRlZCBwcm9tb3Rpb25zLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMS4yLngKICAgIDxici8+CiAgICA8cCBjbGFzcz0id2FybmluZyI+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUZW1wbGF0ZXMgaGF2ZSBjaGFuZ2VkLCBhbmQgd2UgYXJlIG5vdyB1c2luZyBzbWFydHkgc2NvcGVzLiAgVGhlcmUgbWF5IGJlIGNvbXBhdGliaWxpdHkgcHJvYmxlbXMgd2l0aCB5b3VyIHRlbXBsYXRlcyBhbmQgbG9naWMuPC9wPgogICAgPHVsPgogICAgICA8bGk+QWRkcyBmdW5jdGlvbmFsaXR5IGZvciByZXN0cmljdGluZyBwdXJjaGFzZXMgYmFzZWQgb24gcW9oIGRhdGE6CiAgICAgICAgPHVsPgoJICA8bGk+RGVwZW5kcyBvbiBhIHByZWZlcmVuY2UgKG9mZiBieSBkZWZhdWx0KTwvbGk+CiAgIAkgIDxsaT5DaGVja3MgdGhlIHByb2R1Y3QgKG9yIHByb2R1Y3Qgb3B0aW9uKSBmb3IgcW9oIGFmdGVyIHN1Ym1pdCBhbmQgd2lsbCBub3QgYWNjZXB0IHRoZSBjYXJ0IGl0ZW0gaWYgcXVhbnRpdHkgPiBxb2g8L2xpPgogIAkgIDxsaT5DaGVja3MgdGhlIGl0ZW1zIGFscmVhZHkgaW4gdGhlIGNhcnQgYWZ0ZXIgc3VibWl0IGFuZCB3aWxsIG5vdCBhY2NlcHQgdGhlIGNhcnQgaXRlbSBpZiB0b3RhbCBxdWFudGl0eSA+IHFvaDwvbGk+CiAgCSAgPGxpPkhpZGUgb3B0aW9ucyBmcm9tIHRoZSBkcm9wZG93biBpZiBxb2ggPCAxPC9saT4KCTwvdWw+Cgk8L2xpPgogICAgICA8bGk+QWRkcyBhYmlsaXR5IHRvIG92ZXJyaWRlIHByaWNlIHBlciBza3UgKG5vdCBvcHRpb25zKTwvbGk+CiAgICAgIDxsaT5BZGRzIHN1cHBvcnQgZm9yIGV4dGVuZGVkIHByb21vdGlvbnMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KCgk8bGk+VmVyc2lvbiAxLjMueAoJPHAgY2xhc3M9Indhcm5pbmciPlRoaXMgdmVyc2lvbiBub3cgdXNlcyBEZXNpZ25NYW5hZ2VyIHRvIG1hbmFnZSBhbGwgZnJvbnRlbmQgdmlldyB0ZW1wbGF0ZXMuICBUaG91Z2ggdGhlIHRlbXBsYXRlIGNvbnRlbnRzIGhhdmUgbm90IGNoYW5nZWQsIGluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IHRlbXBsYXRlIG5hbWVzIGFyZSB1bmlxdWUgdGhlIG5hbWVzIG1heSBoYXZlIGJlZW4gYWx0ZXJlZCBkdXJpbmcgdGhlIGNvbnZlcnNpb24gcHJvY2Vzcy4gICBZb3UgbWF5IG5lZWQgdG8gbW9kaWZ5IHRoZSBsb2NhdGlvbnMgd2hlcmUgeW91IHNwZWNpZnkgYWx0ZXJuYXRlIHRlbXBsYXRlcyB0byByZWZsZWN0IHRoZSBuZXcgdGVtcGxhdGUgbmFtZXMuPC9wPgoJPHVsPgoJICAgPGxpPlN0b3JlIGFsbCB0ZW1wbGF0ZXMgd2l0aGluIERlc2lnbk1hbmFnZXIuPC9saT4KCSAgIDxsaT5VcGRhdGVkIHRvIHVzZSB0aGUgbmV3IGludGVyZmFjZXMgaW4gQ0dFY29tbWVyY2VCYXNlLjwvbGk+Cgk8bGk+U3RvcmUgY2FydCBkYXRhIGluIHRoZSBzZXNzaW9uIGFuZCBhc3NpZ24gaXQgdG8gc21hcnR5LCBzbyB0aGF0IHNoaXBwaW5nIG1vZHVsZXMgKGxpa2UgQ2FuYWRhUG9zdFNoaXBwaW5nKSBjYW4gZ2V0IHRoZSBjb250ZW50cyBvZiB0aGUgY2FydC48L2xpPgoJPC91bD4KCTwvbGk+CgogIDxsaT5WZXJzaW9uIDEuNC54Cgk8dWw+Cgk8bGk+Tm93IHVzZSBkZXNpZ24gbWFuYWdlciBmb3IgYWxsIHRlbXBsYXRlcy48L2xpPgoJPGxpPk5vdyBpbXBsZW1lbnRzIHRoZSBcQ0dFY29tbWVyY2VCYXNlXHNob3BwaW5nX2NhcnRfbWFuYWdlciBpbnRlcmZhY2UgaW4gYSBwcm94eSBvYmplY3QuCgk8bGk+Tm93IHJlcXVpcmVzIENNU01TIDIuMi4yIG9yIGdyZWF0ZXIuPC9saT4KCTxsaT5CdWcgZml4ZXMgd3J0LiBwcm9tb3Rpb25zIGFuZCBkaW1lbnNpb25zLjwvbGk+Cgk8L3VsPgogIDwvbGk+CjwvdWw+Cg==]]></data>
	</file>
	<file>
	  <filename>/doc/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMiwgSnVuZSAxOTkxCgogQ29weXJpZ2h0IChDKSAxOTg5LCAxOTkxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKIEV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcwogb2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQgaXMgbm90IGFsbG93ZWQuCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJlYW1ibGUKCiAgVGhlIGxpY2Vuc2VzIGZvciBtb3N0IHNvZnR3YXJlIGFyZSBkZXNpZ25lZCB0byB0YWtlIGF3YXkgeW91cgpmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgaXQuICBCeSBjb250cmFzdCwgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwpMaWNlbnNlIGlzIGludGVuZGVkIHRvIGd1YXJhbnRlZSB5b3VyIGZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZSBmcmVlCnNvZnR3YXJlLS10byBtYWtlIHN1cmUgdGhlIHNvZnR3YXJlIGlzIGZyZWUgZm9yIGFsbCBpdHMgdXNlcnMuICBUaGlzCkdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXBwbGllcyB0byBtb3N0IG9mIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24ncyBzb2Z0d2FyZSBhbmQgdG8gYW55IG90aGVyIHByb2dyYW0gd2hvc2UgYXV0aG9ycyBjb21taXQgdG8KdXNpbmcgaXQuICAoU29tZSBvdGhlciBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gc29mdHdhcmUgaXMgY292ZXJlZCBieQp0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGluc3RlYWQuKSAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoaXMgc2VydmljZSBpZiB5b3Ugd2lzaCksIHRoYXQgeW91IHJlY2VpdmUgc291cmNlIGNvZGUgb3IgY2FuIGdldCBpdAppZiB5b3Ugd2FudCBpdCwgdGhhdCB5b3UgY2FuIGNoYW5nZSB0aGUgc29mdHdhcmUgb3IgdXNlIHBpZWNlcyBvZiBpdAppbiBuZXcgZnJlZSBwcm9ncmFtczsgYW5kIHRoYXQgeW91IGtub3cgeW91IGNhbiBkbyB0aGVzZSB0aGluZ3MuCgogIFRvIHByb3RlY3QgeW91ciByaWdodHMsIHdlIG5lZWQgdG8gbWFrZSByZXN0cmljdGlvbnMgdGhhdCBmb3JiaWQKYW55b25lIHRvIGRlbnkgeW91IHRoZXNlIHJpZ2h0cyBvciB0byBhc2sgeW91IHRvIHN1cnJlbmRlciB0aGUgcmlnaHRzLgpUaGVzZSByZXN0cmljdGlvbnMgdHJhbnNsYXRlIHRvIGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBmb3IgeW91IGlmIHlvdQpkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUgc29mdHdhcmUsIG9yIGlmIHlvdSBtb2RpZnkgaXQuCgogIEZvciBleGFtcGxlLCBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2Ygc3VjaCBhIHByb2dyYW0sIHdoZXRoZXIKZ3JhdGlzIG9yIGZvciBhIGZlZSwgeW91IG11c3QgZ2l2ZSB0aGUgcmVjaXBpZW50cyBhbGwgdGhlIHJpZ2h0cyB0aGF0CnlvdSBoYXZlLiAgWW91IG11c3QgbWFrZSBzdXJlIHRoYXQgdGhleSwgdG9vLCByZWNlaXZlIG9yIGNhbiBnZXQgdGhlCnNvdXJjZSBjb2RlLiAgQW5kIHlvdSBtdXN0IHNob3cgdGhlbSB0aGVzZSB0ZXJtcyBzbyB0aGV5IGtub3cgdGhlaXIKcmlnaHRzLgoKICBXZSBwcm90ZWN0IHlvdXIgcmlnaHRzIHdpdGggdHdvIHN0ZXBzOiAoMSkgY29weXJpZ2h0IHRoZSBzb2Z0d2FyZSwgYW5kCigyKSBvZmZlciB5b3UgdGhpcyBsaWNlbnNlIHdoaWNoIGdpdmVzIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksCmRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGUgc29mdHdhcmUuCgogIEFsc28sIGZvciBlYWNoIGF1dGhvcidzIHByb3RlY3Rpb24gYW5kIG91cnMsIHdlIHdhbnQgdG8gbWFrZSBjZXJ0YWluCnRoYXQgZXZlcnlvbmUgdW5kZXJzdGFuZHMgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhpcyBmcmVlCnNvZnR3YXJlLiAgSWYgdGhlIHNvZnR3YXJlIGlzIG1vZGlmaWVkIGJ5IHNvbWVvbmUgZWxzZSBhbmQgcGFzc2VkIG9uLCB3ZQp3YW50IGl0cyByZWNpcGllbnRzIHRvIGtub3cgdGhhdCB3aGF0IHRoZXkgaGF2ZSBpcyBub3QgdGhlIG9yaWdpbmFsLCBzbwp0aGF0IGFueSBwcm9ibGVtcyBpbnRyb2R1Y2VkIGJ5IG90aGVycyB3aWxsIG5vdCByZWZsZWN0IG9uIHRoZSBvcmlnaW5hbAphdXRob3JzJyByZXB1dGF0aW9ucy4KCiAgRmluYWxseSwgYW55IGZyZWUgcHJvZ3JhbSBpcyB0aHJlYXRlbmVkIGNvbnN0YW50bHkgYnkgc29mdHdhcmUKcGF0ZW50cy4gIFdlIHdpc2ggdG8gYXZvaWQgdGhlIGRhbmdlciB0aGF0IHJlZGlzdHJpYnV0b3JzIG9mIGEgZnJlZQpwcm9ncmFtIHdpbGwgaW5kaXZpZHVhbGx5IG9idGFpbiBwYXRlbnQgbGljZW5zZXMsIGluIGVmZmVjdCBtYWtpbmcgdGhlCnByb2dyYW0gcHJvcHJpZXRhcnkuICBUbyBwcmV2ZW50IHRoaXMsIHdlIGhhdmUgbWFkZSBpdCBjbGVhciB0aGF0IGFueQpwYXRlbnQgbXVzdCBiZSBsaWNlbnNlZCBmb3IgZXZlcnlvbmUncyBmcmVlIHVzZSBvciBub3QgbGljZW5zZWQgYXQgYWxsLgoKICBUaGUgcHJlY2lzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW9uIGFuZAptb2RpZmljYXRpb24gZm9sbG93LgoKICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgQ09QWUlORywgRElTVFJJQlVUSU9OIEFORCBNT0RJRklDQVRJT04KCiAgMC4gVGhpcyBMaWNlbnNlIGFwcGxpZXMgdG8gYW55IHByb2dyYW0gb3Igb3RoZXIgd29yayB3aGljaCBjb250YWlucwphIG5vdGljZSBwbGFjZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXIgc2F5aW5nIGl0IG1heSBiZSBkaXN0cmlidXRlZAp1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgVGhlICJQcm9ncmFtIiwgYmVsb3csCnJlZmVycyB0byBhbnkgc3VjaCBwcm9ncmFtIG9yIHdvcmssIGFuZCBhICJ3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtIgptZWFucyBlaXRoZXIgdGhlIFByb2dyYW0gb3IgYW55IGRlcml2YXRpdmUgd29yayB1bmRlciBjb3B5cmlnaHQgbGF3Ogp0aGF0IGlzIHRvIHNheSwgYSB3b3JrIGNvbnRhaW5pbmcgdGhlIFByb2dyYW0gb3IgYSBwb3J0aW9uIG9mIGl0LAplaXRoZXIgdmVyYmF0aW0gb3Igd2l0aCBtb2RpZmljYXRpb25zIGFuZC9vciB0cmFuc2xhdGVkIGludG8gYW5vdGhlcgpsYW5ndWFnZS4gIChIZXJlaW5hZnRlciwgdHJhbnNsYXRpb24gaXMgaW5jbHVkZWQgd2l0aG91dCBsaW1pdGF0aW9uIGluCnRoZSB0ZXJtICJtb2RpZmljYXRpb24iLikgIEVhY2ggbGljZW5zZWUgaXMgYWRkcmVzc2VkIGFzICJ5b3UiLgoKQWN0aXZpdGllcyBvdGhlciB0aGFuIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQgbW9kaWZpY2F0aW9uIGFyZSBub3QKY292ZXJlZCBieSB0aGlzIExpY2Vuc2U7IHRoZXkgYXJlIG91dHNpZGUgaXRzIHNjb3BlLiAgVGhlIGFjdCBvZgpydW5uaW5nIHRoZSBQcm9ncmFtIGlzIG5vdCByZXN0cmljdGVkLCBhbmQgdGhlIG91dHB1dCBmcm9tIHRoZSBQcm9ncmFtCmlzIGNvdmVyZWQgb25seSBpZiBpdHMgY29udGVudHMgY29uc3RpdHV0ZSBhIHdvcmsgYmFzZWQgb24gdGhlClByb2dyYW0gKGluZGVwZW5kZW50IG9mIGhhdmluZyBiZWVuIG1hZGUgYnkgcnVubmluZyB0aGUgUHJvZ3JhbSkuCldoZXRoZXIgdGhhdCBpcyB0cnVlIGRlcGVuZHMgb24gd2hhdCB0aGUgUHJvZ3JhbSBkb2VzLgoKICAxLiBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzIG9mIHRoZSBQcm9ncmFtJ3MKc291cmNlIGNvZGUgYXMgeW91IHJlY2VpdmUgaXQsIGluIGFueSBtZWRpdW0sIHByb3ZpZGVkIHRoYXQgeW91CmNvbnNwaWN1b3VzbHkgYW5kIGFwcHJvcHJpYXRlbHkgcHVibGlzaCBvbiBlYWNoIGNvcHkgYW4gYXBwcm9wcmlhdGUKY29weXJpZ2h0IG5vdGljZSBhbmQgZGlzY2xhaW1lciBvZiB3YXJyYW50eTsga2VlcCBpbnRhY3QgYWxsIHRoZQpub3RpY2VzIHRoYXQgcmVmZXIgdG8gdGhpcyBMaWNlbnNlIGFuZCB0byB0aGUgYWJzZW5jZSBvZiBhbnkgd2FycmFudHk7CmFuZCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBQcm9ncmFtIGEgY29weSBvZiB0aGlzIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGUgUHJvZ3JhbS4KCllvdSBtYXkgY2hhcmdlIGEgZmVlIGZvciB0aGUgcGh5c2ljYWwgYWN0IG9mIHRyYW5zZmVycmluZyBhIGNvcHksIGFuZAp5b3UgbWF5IGF0IHlvdXIgb3B0aW9uIG9mZmVyIHdhcnJhbnR5IHByb3RlY3Rpb24gaW4gZXhjaGFuZ2UgZm9yIGEgZmVlLgoKICAyLiBZb3UgbWF5IG1vZGlmeSB5b3VyIGNvcHkgb3IgY29waWVzIG9mIHRoZSBQcm9ncmFtIG9yIGFueSBwb3J0aW9uCm9mIGl0LCB0aHVzIGZvcm1pbmcgYSB3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtLCBhbmQgY29weSBhbmQKZGlzdHJpYnV0ZSBzdWNoIG1vZGlmaWNhdGlvbnMgb3Igd29yayB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbiAxCmFib3ZlLCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgWW91IG11c3QgY2F1c2UgdGhlIG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCiAgICBzdGF0aW5nIHRoYXQgeW91IGNoYW5nZWQgdGhlIGZpbGVzIGFuZCB0aGUgZGF0ZSBvZiBhbnkgY2hhbmdlLgoKICAgIGIpIFlvdSBtdXN0IGNhdXNlIGFueSB3b3JrIHRoYXQgeW91IGRpc3RyaWJ1dGUgb3IgcHVibGlzaCwgdGhhdCBpbgogICAgd2hvbGUgb3IgaW4gcGFydCBjb250YWlucyBvciBpcyBkZXJpdmVkIGZyb20gdGhlIFByb2dyYW0gb3IgYW55CiAgICBwYXJ0IHRoZXJlb2YsIHRvIGJlIGxpY2Vuc2VkIGFzIGEgd2hvbGUgYXQgbm8gY2hhcmdlIHRvIGFsbCB0aGlyZAogICAgcGFydGllcyB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLgoKICAgIGMpIElmIHRoZSBtb2RpZmllZCBwcm9ncmFtIG5vcm1hbGx5IHJlYWRzIGNvbW1hbmRzIGludGVyYWN0aXZlbHkKICAgIHdoZW4gcnVuLCB5b3UgbXVzdCBjYXVzZSBpdCwgd2hlbiBzdGFydGVkIHJ1bm5pbmcgZm9yIHN1Y2gKICAgIGludGVyYWN0aXZlIHVzZSBpbiB0aGUgbW9zdCBvcmRpbmFyeSB3YXksIHRvIHByaW50IG9yIGRpc3BsYXkgYW4KICAgIGFubm91bmNlbWVudCBpbmNsdWRpbmcgYW4gYXBwcm9wcmlhdGUgY29weXJpZ2h0IG5vdGljZSBhbmQgYQogICAgbm90aWNlIHRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgKG9yIGVsc2UsIHNheWluZyB0aGF0IHlvdSBwcm92aWRlCiAgICBhIHdhcnJhbnR5KSBhbmQgdGhhdCB1c2VycyBtYXkgcmVkaXN0cmlidXRlIHRoZSBwcm9ncmFtIHVuZGVyCiAgICB0aGVzZSBjb25kaXRpb25zLCBhbmQgdGVsbGluZyB0aGUgdXNlciBob3cgdG8gdmlldyBhIGNvcHkgb2YgdGhpcwogICAgTGljZW5zZS4gIChFeGNlcHRpb246IGlmIHRoZSBQcm9ncmFtIGl0c2VsZiBpcyBpbnRlcmFjdGl2ZSBidXQKICAgIGRvZXMgbm90IG5vcm1hbGx5IHByaW50IHN1Y2ggYW4gYW5ub3VuY2VtZW50LCB5b3VyIHdvcmsgYmFzZWQgb24KICAgIHRoZSBQcm9ncmFtIGlzIG5vdCByZXF1aXJlZCB0byBwcmludCBhbiBhbm5vdW5jZW1lbnQuKQoKVGhlc2UgcmVxdWlyZW1lbnRzIGFwcGx5IHRvIHRoZSBtb2RpZmllZCB3b3JrIGFzIGEgd2hvbGUuICBJZgppZGVudGlmaWFibGUgc2VjdGlvbnMgb2YgdGhhdCB3b3JrIGFyZSBub3QgZGVyaXZlZCBmcm9tIHRoZSBQcm9ncmFtLAphbmQgY2FuIGJlIHJlYXNvbmFibHkgY29uc2lkZXJlZCBpbmRlcGVuZGVudCBhbmQgc2VwYXJhdGUgd29ya3MgaW4KdGhlbXNlbHZlcywgdGhlbiB0aGlzIExpY2Vuc2UsIGFuZCBpdHMgdGVybXMsIGRvIG5vdCBhcHBseSB0byB0aG9zZQpzZWN0aW9ucyB3aGVuIHlvdSBkaXN0cmlidXRlIHRoZW0gYXMgc2VwYXJhdGUgd29ya3MuICBCdXQgd2hlbiB5b3UKZGlzdHJpYnV0ZSB0aGUgc2FtZSBzZWN0aW9ucyBhcyBwYXJ0IG9mIGEgd2hvbGUgd2hpY2ggaXMgYSB3b3JrIGJhc2VkCm9uIHRoZSBQcm9ncmFtLCB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoZSB3aG9sZSBtdXN0IGJlIG9uIHRoZSB0ZXJtcyBvZgp0aGlzIExpY2Vuc2UsIHdob3NlIHBlcm1pc3Npb25zIGZvciBvdGhlciBsaWNlbnNlZXMgZXh0ZW5kIHRvIHRoZQplbnRpcmUgd2hvbGUsIGFuZCB0aHVzIHRvIGVhY2ggYW5kIGV2ZXJ5IHBhcnQgcmVnYXJkbGVzcyBvZiB3aG8gd3JvdGUgaXQuCgpUaHVzLCBpdCBpcyBub3QgdGhlIGludGVudCBvZiB0aGlzIHNlY3Rpb24gdG8gY2xhaW0gcmlnaHRzIG9yIGNvbnRlc3QKeW91ciByaWdodHMgdG8gd29yayB3cml0dGVuIGVudGlyZWx5IGJ5IHlvdTsgcmF0aGVyLCB0aGUgaW50ZW50IGlzIHRvCmV4ZXJjaXNlIHRoZSByaWdodCB0byBjb250cm9sIHRoZSBkaXN0cmlidXRpb24gb2YgZGVyaXZhdGl2ZSBvcgpjb2xsZWN0aXZlIHdvcmtzIGJhc2VkIG9uIHRoZSBQcm9ncmFtLgoKSW4gYWRkaXRpb24sIG1lcmUgYWdncmVnYXRpb24gb2YgYW5vdGhlciB3b3JrIG5vdCBiYXNlZCBvbiB0aGUgUHJvZ3JhbQp3aXRoIHRoZSBQcm9ncmFtIChvciB3aXRoIGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSkgb24gYSB2b2x1bWUgb2YKYSBzdG9yYWdlIG9yIGRpc3RyaWJ1dGlvbiBtZWRpdW0gZG9lcyBub3QgYnJpbmcgdGhlIG90aGVyIHdvcmsgdW5kZXIKdGhlIHNjb3BlIG9mIHRoaXMgTGljZW5zZS4KCiAgMy4gWW91IG1heSBjb3B5IGFuZCBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIChvciBhIHdvcmsgYmFzZWQgb24gaXQsCnVuZGVyIFNlY3Rpb24gMikgaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHVuZGVyIHRoZSB0ZXJtcyBvZgpTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gZG8gb25lIG9mIHRoZSBmb2xsb3dpbmc6CgogICAgYSkgQWNjb21wYW55IGl0IHdpdGggdGhlIGNvbXBsZXRlIGNvcnJlc3BvbmRpbmcgbWFjaGluZS1yZWFkYWJsZQogICAgc291cmNlIGNvZGUsIHdoaWNoIG11c3QgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb25zCiAgICAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlOyBvciwKCiAgICBiKSBBY2NvbXBhbnkgaXQgd2l0aCBhIHdyaXR0ZW4gb2ZmZXIsIHZhbGlkIGZvciBhdCBsZWFzdCB0aHJlZQogICAgeWVhcnMsIHRvIGdpdmUgYW55IHRoaXJkIHBhcnR5LCBmb3IgYSBjaGFyZ2Ugbm8gbW9yZSB0aGFuIHlvdXIKICAgIGNvc3Qgb2YgcGh5c2ljYWxseSBwZXJmb3JtaW5nIHNvdXJjZSBkaXN0cmlidXRpb24sIGEgY29tcGxldGUKICAgIG1hY2hpbmUtcmVhZGFibGUgY29weSBvZiB0aGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZSwgdG8gYmUKICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtCiAgICBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZTsgb3IsCgogICAgYykgQWNjb21wYW55IGl0IHdpdGggdGhlIGluZm9ybWF0aW9uIHlvdSByZWNlaXZlZCBhcyB0byB0aGUgb2ZmZXIKICAgIHRvIGRpc3RyaWJ1dGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZS4gIChUaGlzIGFsdGVybmF0aXZlIGlzCiAgICBhbGxvd2VkIG9ubHkgZm9yIG5vbmNvbW1lcmNpYWwgZGlzdHJpYnV0aW9uIGFuZCBvbmx5IGlmIHlvdQogICAgcmVjZWl2ZWQgdGhlIHByb2dyYW0gaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHdpdGggc3VjaAogICAgYW4gb2ZmZXIsIGluIGFjY29yZCB3aXRoIFN1YnNlY3Rpb24gYiBhYm92ZS4pCgpUaGUgc291cmNlIGNvZGUgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsgZm9yCm1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgRm9yIGFuIGV4ZWN1dGFibGUgd29yaywgY29tcGxldGUgc291cmNlCmNvZGUgbWVhbnMgYWxsIHRoZSBzb3VyY2UgY29kZSBmb3IgYWxsIG1vZHVsZXMgaXQgY29udGFpbnMsIHBsdXMgYW55CmFzc29jaWF0ZWQgaW50ZXJmYWNlIGRlZmluaXRpb24gZmlsZXMsIHBsdXMgdGhlIHNjcmlwdHMgdXNlZCB0bwpjb250cm9sIGNvbXBpbGF0aW9uIGFuZCBpbnN0YWxsYXRpb24gb2YgdGhlIGV4ZWN1dGFibGUuICBIb3dldmVyLCBhcyBhCnNwZWNpYWwgZXhjZXB0aW9uLCB0aGUgc291cmNlIGNvZGUgZGlzdHJpYnV0ZWQgbmVlZCBub3QgaW5jbHVkZQphbnl0aGluZyB0aGF0IGlzIG5vcm1hbGx5IGRpc3RyaWJ1dGVkIChpbiBlaXRoZXIgc291cmNlIG9yIGJpbmFyeQpmb3JtKSB3aXRoIHRoZSBtYWpvciBjb21wb25lbnRzIChjb21waWxlciwga2VybmVsLCBhbmQgc28gb24pIG9mIHRoZQpvcGVyYXRpbmcgc3lzdGVtIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHJ1bnMsIHVubGVzcyB0aGF0IGNvbXBvbmVudAppdHNlbGYgYWNjb21wYW5pZXMgdGhlIGV4ZWN1dGFibGUuCgpJZiBkaXN0cmlidXRpb24gb2YgZXhlY3V0YWJsZSBvciBvYmplY3QgY29kZSBpcyBtYWRlIGJ5IG9mZmVyaW5nCmFjY2VzcyB0byBjb3B5IGZyb20gYSBkZXNpZ25hdGVkIHBsYWNlLCB0aGVuIG9mZmVyaW5nIGVxdWl2YWxlbnQKYWNjZXNzIHRvIGNvcHkgdGhlIHNvdXJjZSBjb2RlIGZyb20gdGhlIHNhbWUgcGxhY2UgY291bnRzIGFzCmRpc3RyaWJ1dGlvbiBvZiB0aGUgc291cmNlIGNvZGUsIGV2ZW4gdGhvdWdoIHRoaXJkIHBhcnRpZXMgYXJlIG5vdApjb21wZWxsZWQgdG8gY29weSB0aGUgc291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLgoKICA0LiBZb3UgbWF5IG5vdCBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2UsIG9yIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0KZXhjZXB0IGFzIGV4cHJlc3NseSBwcm92aWRlZCB1bmRlciB0aGlzIExpY2Vuc2UuICBBbnkgYXR0ZW1wdApvdGhlcndpc2UgdG8gY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlIG9yIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gaXMKdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIgdGhpcyBMaWNlbnNlLgpIb3dldmVyLCBwYXJ0aWVzIHdobyBoYXZlIHJlY2VpdmVkIGNvcGllcywgb3IgcmlnaHRzLCBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2Ugd2lsbCBub3QgaGF2ZSB0aGVpciBsaWNlbnNlcyB0ZXJtaW5hdGVkIHNvIGxvbmcgYXMgc3VjaApwYXJ0aWVzIHJlbWFpbiBpbiBmdWxsIGNvbXBsaWFuY2UuCgogIDUuIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UsIHNpbmNlIHlvdSBoYXZlIG5vdApzaWduZWQgaXQuICBIb3dldmVyLCBub3RoaW5nIGVsc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIG1vZGlmeSBvcgpkaXN0cmlidXRlIHRoZSBQcm9ncmFtIG9yIGl0cyBkZXJpdmF0aXZlIHdvcmtzLiAgVGhlc2UgYWN0aW9ucyBhcmUKcHJvaGliaXRlZCBieSBsYXcgaWYgeW91IGRvIG5vdCBhY2NlcHQgdGhpcyBMaWNlbnNlLiAgVGhlcmVmb3JlLCBieQptb2RpZnlpbmcgb3IgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIChvciBhbnkgd29yayBiYXNlZCBvbiB0aGUKUHJvZ3JhbSksIHlvdSBpbmRpY2F0ZSB5b3VyIGFjY2VwdGFuY2Ugb2YgdGhpcyBMaWNlbnNlIHRvIGRvIHNvLCBhbmQKYWxsIGl0cyB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW5nIG9yIG1vZGlmeWluZwp0aGUgUHJvZ3JhbSBvciB3b3JrcyBiYXNlZCBvbiBpdC4KCiAgNi4gRWFjaCB0aW1lIHlvdSByZWRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gKG9yIGFueSB3b3JrIGJhc2VkIG9uIHRoZQpQcm9ncmFtKSwgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5IHJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZQpvcmlnaW5hbCBsaWNlbnNvciB0byBjb3B5LCBkaXN0cmlidXRlIG9yIG1vZGlmeSB0aGUgUHJvZ3JhbSBzdWJqZWN0IHRvCnRoZXNlIHRlcm1zIGFuZCBjb25kaXRpb25zLiAgWW91IG1heSBub3QgaW1wb3NlIGFueSBmdXJ0aGVyCnJlc3RyaWN0aW9ucyBvbiB0aGUgcmVjaXBpZW50cycgZXhlcmNpc2Ugb2YgdGhlIHJpZ2h0cyBncmFudGVkIGhlcmVpbi4KWW91IGFyZSBub3QgcmVzcG9uc2libGUgZm9yIGVuZm9yY2luZyBjb21wbGlhbmNlIGJ5IHRoaXJkIHBhcnRpZXMgdG8KdGhpcyBMaWNlbnNlLgoKICA3LiBJZiwgYXMgYSBjb25zZXF1ZW5jZSBvZiBhIGNvdXJ0IGp1ZGdtZW50IG9yIGFsbGVnYXRpb24gb2YgcGF0ZW50CmluZnJpbmdlbWVudCBvciBmb3IgYW55IG90aGVyIHJlYXNvbiAobm90IGxpbWl0ZWQgdG8gcGF0ZW50IGlzc3VlcyksCmNvbmRpdGlvbnMgYXJlIGltcG9zZWQgb24geW91ICh3aGV0aGVyIGJ5IGNvdXJ0IG9yZGVyLCBhZ3JlZW1lbnQgb3IKb3RoZXJ3aXNlKSB0aGF0IGNvbnRyYWRpY3QgdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLCB0aGV5IGRvIG5vdApleGN1c2UgeW91IGZyb20gdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLiAgSWYgeW91IGNhbm5vdApkaXN0cmlidXRlIHNvIGFzIHRvIHNhdGlzZnkgc2ltdWx0YW5lb3VzbHkgeW91ciBvYmxpZ2F0aW9ucyB1bmRlciB0aGlzCkxpY2Vuc2UgYW5kIGFueSBvdGhlciBwZXJ0aW5lbnQgb2JsaWdhdGlvbnMsIHRoZW4gYXMgYSBjb25zZXF1ZW5jZSB5b3UKbWF5IG5vdCBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiBhIHBhdGVudApsaWNlbnNlIHdvdWxkIG5vdCBwZXJtaXQgcm95YWx0eS1mcmVlIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGJ5CmFsbCB0aG9zZSB3aG8gcmVjZWl2ZSBjb3BpZXMgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSB0aHJvdWdoIHlvdSwgdGhlbgp0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCBpdCBhbmQgdGhpcyBMaWNlbnNlIHdvdWxkIGJlIHRvCnJlZnJhaW4gZW50aXJlbHkgZnJvbSBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0uCgpJZiBhbnkgcG9ydGlvbiBvZiB0aGlzIHNlY3Rpb24gaXMgaGVsZCBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKYW55IHBhcnRpY3VsYXIgY2lyY3Vtc3RhbmNlLCB0aGUgYmFsYW5jZSBvZiB0aGUgc2VjdGlvbiBpcyBpbnRlbmRlZCB0bwphcHBseSBhbmQgdGhlIHNlY3Rpb24gYXMgYSB3aG9sZSBpcyBpbnRlbmRlZCB0byBhcHBseSBpbiBvdGhlcgpjaXJjdW1zdGFuY2VzLgoKSXQgaXMgbm90IHRoZSBwdXJwb3NlIG9mIHRoaXMgc2VjdGlvbiB0byBpbmR1Y2UgeW91IHRvIGluZnJpbmdlIGFueQpwYXRlbnRzIG9yIG90aGVyIHByb3BlcnR5IHJpZ2h0IGNsYWltcyBvciB0byBjb250ZXN0IHZhbGlkaXR5IG9mIGFueQpzdWNoIGNsYWltczsgdGhpcyBzZWN0aW9uIGhhcyB0aGUgc29sZSBwdXJwb3NlIG9mIHByb3RlY3RpbmcgdGhlCmludGVncml0eSBvZiB0aGUgZnJlZSBzb2Z0d2FyZSBkaXN0cmlidXRpb24gc3lzdGVtLCB3aGljaCBpcwppbXBsZW1lbnRlZCBieSBwdWJsaWMgbGljZW5zZSBwcmFjdGljZXMuICBNYW55IHBlb3BsZSBoYXZlIG1hZGUKZ2VuZXJvdXMgY29udHJpYnV0aW9ucyB0byB0aGUgd2lkZSByYW5nZSBvZiBzb2Z0d2FyZSBkaXN0cmlidXRlZAp0aHJvdWdoIHRoYXQgc3lzdGVtIGluIHJlbGlhbmNlIG9uIGNvbnNpc3RlbnQgYXBwbGljYXRpb24gb2YgdGhhdApzeXN0ZW07IGl0IGlzIHVwIHRvIHRoZSBhdXRob3IvZG9ub3IgdG8gZGVjaWRlIGlmIGhlIG9yIHNoZSBpcyB3aWxsaW5nCnRvIGRpc3RyaWJ1dGUgc29mdHdhcmUgdGhyb3VnaCBhbnkgb3RoZXIgc3lzdGVtIGFuZCBhIGxpY2Vuc2VlIGNhbm5vdAppbXBvc2UgdGhhdCBjaG9pY2UuCgpUaGlzIHNlY3Rpb24gaXMgaW50ZW5kZWQgdG8gbWFrZSB0aG9yb3VnaGx5IGNsZWFyIHdoYXQgaXMgYmVsaWV2ZWQgdG8KYmUgYSBjb25zZXF1ZW5jZSBvZiB0aGUgcmVzdCBvZiB0aGlzIExpY2Vuc2UuCgogIDguIElmIHRoZSBkaXN0cmlidXRpb24gYW5kL29yIHVzZSBvZiB0aGUgUHJvZ3JhbSBpcyByZXN0cmljdGVkIGluCmNlcnRhaW4gY291bnRyaWVzIGVpdGhlciBieSBwYXRlbnRzIG9yIGJ5IGNvcHlyaWdodGVkIGludGVyZmFjZXMsIHRoZQpvcmlnaW5hbCBjb3B5cmlnaHQgaG9sZGVyIHdobyBwbGFjZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcyBMaWNlbnNlCm1heSBhZGQgYW4gZXhwbGljaXQgZ2VvZ3JhcGhpY2FsIGRpc3RyaWJ1dGlvbiBsaW1pdGF0aW9uIGV4Y2x1ZGluZwp0aG9zZSBjb3VudHJpZXMsIHNvIHRoYXQgZGlzdHJpYnV0aW9uIGlzIHBlcm1pdHRlZCBvbmx5IGluIG9yIGFtb25nCmNvdW50cmllcyBub3QgdGh1cyBleGNsdWRlZC4gIEluIHN1Y2ggY2FzZSwgdGhpcyBMaWNlbnNlIGluY29ycG9yYXRlcwp0aGUgbGltaXRhdGlvbiBhcyBpZiB3cml0dGVuIGluIHRoZSBib2R5IG9mIHRoaXMgTGljZW5zZS4KCiAgOS4gVGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBtYXkgcHVibGlzaCByZXZpc2VkIGFuZC9vciBuZXcgdmVyc2lvbnMKb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCkVhY2ggdmVyc2lvbiBpcyBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiAgSWYgdGhlIFByb2dyYW0Kc3BlY2lmaWVzIGEgdmVyc2lvbiBudW1iZXIgb2YgdGhpcyBMaWNlbnNlIHdoaWNoIGFwcGxpZXMgdG8gaXQgYW5kICJhbnkKbGF0ZXIgdmVyc2lvbiIsIHlvdSBoYXZlIHRoZSBvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucwplaXRoZXIgb2YgdGhhdCB2ZXJzaW9uIG9yIG9mIGFueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQpTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgSWYgdGhlIFByb2dyYW0gZG9lcyBub3Qgc3BlY2lmeSBhIHZlcnNpb24gbnVtYmVyIG9mCnRoaXMgTGljZW5zZSwgeW91IG1heSBjaG9vc2UgYW55IHZlcnNpb24gZXZlciBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4KCiAgMTAuIElmIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlIHBhcnRzIG9mIHRoZSBQcm9ncmFtIGludG8gb3RoZXIgZnJlZQpwcm9ncmFtcyB3aG9zZSBkaXN0cmlidXRpb24gY29uZGl0aW9ucyBhcmUgZGlmZmVyZW50LCB3cml0ZSB0byB0aGUgYXV0aG9yCnRvIGFzayBmb3IgcGVybWlzc2lvbi4gIEZvciBzb2Z0d2FyZSB3aGljaCBpcyBjb3B5cmlnaHRlZCBieSB0aGUgRnJlZQpTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB3ZSBzb21ldGltZXMKbWFrZSBleGNlcHRpb25zIGZvciB0aGlzLiAgT3VyIGRlY2lzaW9uIHdpbGwgYmUgZ3VpZGVkIGJ5IHRoZSB0d28gZ29hbHMKb2YgcHJlc2VydmluZyB0aGUgZnJlZSBzdGF0dXMgb2YgYWxsIGRlcml2YXRpdmVzIG9mIG91ciBmcmVlIHNvZnR3YXJlIGFuZApvZiBwcm9tb3RpbmcgdGhlIHNoYXJpbmcgYW5kIHJldXNlIG9mIHNvZnR3YXJlIGdlbmVyYWxseS4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOTyBXQVJSQU5UWQoKICAxMS4gQkVDQVVTRSBUSEUgUFJPR1JBTSBJUyBMSUNFTlNFRCBGUkVFIE9GIENIQVJHRSwgVEhFUkUgSVMgTk8gV0FSUkFOVFkKRk9SIFRIRSBQUk9HUkFNLCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRCBCWSBBUFBMSUNBQkxFIExBVy4gIEVYQ0VQVCBXSEVOCk9USEVSV0lTRSBTVEFURUQgSU4gV1JJVElORyBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EL09SIE9USEVSIFBBUlRJRVMKUFJPVklERSBUSEUgUFJPR1JBTSAiQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTRUQKT1IgSU1QTElFRCwgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFRIRSBFTlRJUkUgUklTSyBBUwpUTyBUSEUgUVVBTElUWSBBTkQgUEVSRk9STUFOQ0UgT0YgVEhFIFBST0dSQU0gSVMgV0lUSCBZT1UuICBTSE9VTEQgVEhFClBST0dSQU0gUFJPVkUgREVGRUNUSVZFLCBZT1UgQVNTVU1FIFRIRSBDT1NUIE9GIEFMTCBORUNFU1NBUlkgU0VSVklDSU5HLApSRVBBSVIgT1IgQ09SUkVDVElPTi4KCiAgMTIuIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1BWSBNT0RJRlkgQU5EL09SClJFRElTVFJJQlVURSBUSEUgUFJPR1JBTSBBUyBQRVJNSVRURUQgQUJPVkUsIEJFIExJQUJMRSBUTyBZT1UgRk9SIERBTUFHRVMsCklOQ0xVRElORyBBTlkgR0VORVJBTCwgU1BFQ0lBTCwgSU5DSURFTlRBTCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORwpPVVQgT0YgVEhFIFVTRSBPUiBJTkFCSUxJVFkgVE8gVVNFIFRIRSBQUk9HUkFNIChJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEClRPIExPU1MgT0YgREFUQSBPUiBEQVRBIEJFSU5HIFJFTkRFUkVEIElOQUNDVVJBVEUgT1IgTE9TU0VTIFNVU1RBSU5FRCBCWQpZT1UgT1IgVEhJUkQgUEFSVElFUyBPUiBBIEZBSUxVUkUgT0YgVEhFIFBST0dSQU0gVE8gT1BFUkFURSBXSVRIIEFOWSBPVEhFUgpQUk9HUkFNUyksIEVWRU4gSUYgU1VDSCBIT0xERVIgT1IgT1RIRVIgUEFSVFkgSEFTIEJFRU4gQURWSVNFRCBPRiBUSEUKUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgoKICAgICAgICAgICAgICAgICAgICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCgogICAgICAgICAgICBIb3cgdG8gQXBwbHkgVGhlc2UgVGVybXMgdG8gWW91ciBOZXcgUHJvZ3JhbXMKCiAgSWYgeW91IGRldmVsb3AgYSBuZXcgcHJvZ3JhbSwgYW5kIHlvdSB3YW50IGl0IHRvIGJlIG9mIHRoZSBncmVhdGVzdApwb3NzaWJsZSB1c2UgdG8gdGhlIHB1YmxpYywgdGhlIGJlc3Qgd2F5IHRvIGFjaGlldmUgdGhpcyBpcyB0byBtYWtlIGl0CmZyZWUgc29mdHdhcmUgd2hpY2ggZXZlcnlvbmUgY2FuIHJlZGlzdHJpYnV0ZSBhbmQgY2hhbmdlIHVuZGVyIHRoZXNlIHRlcm1zLgoKICBUbyBkbyBzbywgYXR0YWNoIHRoZSBmb2xsb3dpbmcgbm90aWNlcyB0byB0aGUgcHJvZ3JhbS4gIEl0IGlzIHNhZmVzdAp0byBhdHRhY2ggdGhlbSB0byB0aGUgc3RhcnQgb2YgZWFjaCBzb3VyY2UgZmlsZSB0byBtb3N0IGVmZmVjdGl2ZWx5CmNvbnZleSB0aGUgZXhjbHVzaW9uIG9mIHdhcnJhbnR5OyBhbmQgZWFjaCBmaWxlIHNob3VsZCBoYXZlIGF0IGxlYXN0CnRoZSAiY29weXJpZ2h0IiBsaW5lIGFuZCBhIHBvaW50ZXIgdG8gd2hlcmUgdGhlIGZ1bGwgbm90aWNlIGlzIGZvdW5kLgoKICAgIDxvbmUgbGluZSB0byBnaXZlIHRoZSBwcm9ncmFtJ3MgbmFtZSBhbmQgYSBicmllZiBpZGVhIG9mIHdoYXQgaXQgZG9lcy4+CiAgICBDb3B5cmlnaHQgKEMpIDx5ZWFyPiAgPG5hbWUgb2YgYXV0aG9yPgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZwogICAgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKICAgIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EuCgpBbHNvIGFkZCBpbmZvcm1hdGlvbiBvbiBob3cgdG8gY29udGFjdCB5b3UgYnkgZWxlY3Ryb25pYyBhbmQgcGFwZXIgbWFpbC4KCklmIHRoZSBwcm9ncmFtIGlzIGludGVyYWN0aXZlLCBtYWtlIGl0IG91dHB1dCBhIHNob3J0IG5vdGljZSBsaWtlIHRoaXMKd2hlbiBpdCBzdGFydHMgaW4gYW4gaW50ZXJhY3RpdmUgbW9kZToKCiAgICBHbm9tb3Zpc2lvbiB2ZXJzaW9uIDY5LCBDb3B5cmlnaHQgKEMpIHllYXIgbmFtZSBvZiBhdXRob3IKICAgIEdub21vdmlzaW9uIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWTsgZm9yIGRldGFpbHMgdHlwZSBgc2hvdyB3Jy4KICAgIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZSwgYW5kIHlvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXQKICAgIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9uczsgdHlwZSBgc2hvdyBjJyBmb3IgZGV0YWlscy4KClRoZSBoeXBvdGhldGljYWwgY29tbWFuZHMgYHNob3cgdycgYW5kIGBzaG93IGMnIHNob3VsZCBzaG93IHRoZSBhcHByb3ByaWF0ZQpwYXJ0cyBvZiB0aGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIE9mIGNvdXJzZSwgdGhlIGNvbW1hbmRzIHlvdSB1c2UgbWF5CmJlIGNhbGxlZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBgc2hvdyB3JyBhbmQgYHNob3cgYyc7IHRoZXkgY291bGQgZXZlbiBiZQptb3VzZS1jbGlja3Mgb3IgbWVudSBpdGVtcy0td2hhdGV2ZXIgc3VpdHMgeW91ciBwcm9ncmFtLgoKWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHlvdXIKc2Nob29sLCBpZiBhbnksIHRvIHNpZ24gYSAiY29weXJpZ2h0IGRpc2NsYWltZXIiIGZvciB0aGUgcHJvZ3JhbSwgaWYKbmVjZXNzYXJ5LiAgSGVyZSBpcyBhIHNhbXBsZTsgYWx0ZXIgdGhlIG5hbWVzOgoKICBZb3lvZHluZSwgSW5jLiwgaGVyZWJ5IGRpc2NsYWltcyBhbGwgY29weXJpZ2h0IGludGVyZXN0IGluIHRoZSBwcm9ncmFtCiAgYEdub21vdmlzaW9uJyAod2hpY2ggbWFrZXMgcGFzc2VzIGF0IGNvbXBpbGVycykgd3JpdHRlbiBieSBKYW1lcyBIYWNrZXIuCgogIDxzaWduYXR1cmUgb2YgVHkgQ29vbj4sIDEgQXByaWwgMTk4OQogIFR5IENvb24sIFByZXNpZGVudCBvZiBWaWNlCgpUaGlzIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtIGludG8KcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdSBtYXkKY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGggdGhlCmxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLgo=]]></data>
	</file>
	<file>
	  <filename>/doc/help.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPldoYXQgaXMgdGhpcz88L2gzPgo8cD5UaGlzIG1vZHVsZSBpcyBhIGZvcmsgb2YgdGhlIG9yaWdpbmFsIENhcnQgbW9kdWxlLiAgaXQgd29ya3MgaW4gc2ltaWxhciB3YXlzLCBob3dldmVyIGl0IHdvcmtzIHdpdGggdGhlIChuZXcgYXMgb2YgRGVjZW1iZXIgMjAxMikgT3B0aW9ucyBtZWNoYW5pc20gaW4gdGhlIFByb2R1Y3RzIG1vZHVsZSwgYW5kIHJlcXVpcmVzIHRoYXQgU0tVcyBiZSBlbmFibGVkIGFuZCB1bmlxdWUgdGhyb3VnaG91dCBhbGwgb2YgdGhlIGRhdGEgb2YgdGhlIFByb2R1Y3RzIG1vZHVsZS48L3A+CjxoMz5XaGF0IGRvZXMgaXQgZG8/PC9oMz4KPHA+VGhpcyBpcyBhIHNpbXBsZSBtb2R1bGUgdG8gYWxsb3cgbWFpbnRhaW5pbmcgYSBzaG9wcGluZyBjYXJ0IG9mIHByb2R1Y3RzLiAgSXQgYWxsb3dzIHlvdSB0byBhZGQgcHJvZHVjdHMgdG8geW91ciBjYXJ0LCB2aWV3IHRoZW0sIGFuZCBkZWxldGUgdGhlbS48L3A+CjxoMz5Ib3cgRG8gSSB1c2UgSXQ8L2gzPgogIDxwPlRoaXMgbW9kdWxlIHdvcmtzIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIFByb2R1Y3RzIG1vZHVsZSwgb3IgYW55IG90aGVyIHN1cHBsaWVyIG1vZHVsZSBhcyBsaXN0ZWQgYW5kIHNlbGVjdGVkIGluIENHRWNvbW1lcmNlQmFzZSwgYW5kIGNhbiByZWFkIHByb2R1Y3QgaW5mb3JtYXRpb24gZnJvbSB0aGF0IG1vZHVsZS48L3A+CiAgPHA+VGhlcmUgYXJlIG11bHRpcGxlIGNhcnQgbW9kdWxlcywgdGhlcmVmb3JlIHlvdSBtdXN0IHNlbGVjdCB3aGljaCAob2YgdGhlIGluc3RhbGxlZCBhbmQgYXZhaWxhYmxlKSBjYXJ0IG1vZHVsZXMgeW91IHdvdWxkIGxpa2UgdG8gdXNlIGluIHRoZSAnQ2FydCBTZXR0aW5ncycgdGFiIG9mIENHRWNvbW1lcmNlQmFzZS4gIFRoZW4geW91IHdpbGwgYWxzbyB1c2UgdGhlIHtDYXJ0MiBza3U9J3NvbWVfc2t1J30gcGx1Z2luIHRvIGFkZCBhbiAnYWRkIHRvIGNhcnQnIGZvcm0gd2hlcmUgeW91IHdhbnQgaXQuPC9wPgo8cD5TZWNvbmRseSwgYSB0YWcgbGlrZSB7Q2FydDIgYWN0aW9uPSdteWNhcnQnfSBjb3VsZCBiZSBiZSBwbGFjZWQgb24gYSBwYWdlIG9yIHBhZ2UgdGVtcGxhdGUgdG8gYWxsb3cgdXNlcnMgdG8gc2VlIGEgYnJpZWYgc3VtbWFyeSBvZiBpdGVtcyBpbiB0aGUgY2FydC4gVGhpcyBpcyB0eXBpY2FsbHkgdXNlZCBpbiB0aGUgaGVhZGVyIG9mIGFuIGUtY29tbWVyY2Ugc2l0ZS48L3A+CjxwPlRoaXJkbHksIGEgdGFnIGxpa2Uge0NhcnQyIGFjdGlvbj0ndmlld2NhcnQnfSB3b3VsZCBiZSBwbGFjZWQgb24gYSBwYWdlIG9yIHBhZ2UgdGVtcGxhdGUgdG8gYWxsb3cgdXNlcnMgdG8gZWRpdCBhbmQgcHJldmlldyB0aGUgaXRlbXMgaW4gdGhlaXIgY2FydC48L3A+Cgo8aDM+VGlwIC8gRkFROjwvaDM+Cjx1bD4KICA8bGk+SG93IGRvIEkgYWRkIGEgJnF1b3Q7Y2hlY2tvdXQmcXVvdDsgYnV0dG9uIHRvIG15IGNhcnQ/CiAgICAgPHA+U2luY2UgdGhlIGNoZWNrb3V0IHByb2Nlc3MgaXMgaGFuZGxlZCBieSB0aGUgT3JkZXJzIG1vZHVsZSwgYW5kIHRoZSBPcmRlcnMgbW9kdWxlIGlzIHVzdWFsbHkgY2FsbGVkIG9uIGEgc2VwYXJhdGUgcGFnZSwgeW91IGp1c3QgbmVlZCB0byBjcmVhdGUgYSBsaW5rIHRvIHRoYXQgcGFnZSB3aXRoaW4geW91ciAmcXVvdDtWaWV3IENhcnQmcXVvdDsgdGVtcGxhdGUuICBpLmUuOiBhc3N1bWluZyB0aGUgYWxpYXMgdG8geW91ciBjaGVja291dCBwYWdlIGlzICZxdW90O2NoZWNrb3V0JnF1b3Q7IHRoaXMgc2hvdWxkIHdvcms6PC9wPgogICAgIDxwcmU+PGNvZGU+Jmx0O2EgaHJlZj0ie2Ntc19zZWxmbGluayBocmVmPWNoZWNrb3V0fSImZ3Q7Q2hlY2tvdXQmbHQ7L2EmZ3Q7PC9jb2RlPjwvcHJlPgoKICA8L2xpPgo8L3VsPgoKPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGUgbW9kdWxlIGF1dGhvciBpcyBpbiBubyB3YXkgb2JsaWdhdGVkIHRvIHByaXZpZGUgc3VwcG9ydCBmb3IgdGhpcyBjb2RlIGluIGFueSBmYXNoaW9uLiAgSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkEgYnVnIHRyYWNraW5nIGFuZCBmZWF0dXJlIHJlcXVlc3Qgc3lzdGVtIGhhcyBiZWVuIGNyZWF0ZWQgZm9yIHRoaXMgbW9kdWxlIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FydDIiPmhlcmU8L2E+LiAgUGxlYXNlIGJlIHZlcmJvc2UgYW5kIGRlc2NyaXB0aXZlIHdoZW4gc3VibWl0dGluZyBidWcgcmVwb3J0cyBhbmQgZmVhdHVyZSByZXF1ZXN0cywgYW5kIGZvciBidWcgcmVwb3J0cyBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBwcm92aWRlZCBzdWZmaWNpZW50IGluZm9ybWF0aW9uIHRvIHJlbGlhYmx5IHJlcHJvZHVjZSB0aGUgaXNzdWUuPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi4gIFdoZW4gZGVzY3JpYmluZyBhbiBpc3N1ZSBwbGVhc2UgbWFrZSBhbiBlZmZvcnQgdG8gcHJpdmlkZSBhbGwgcmVsYXZhbnQgaW5mb3JtYXRpb24sIGEgdGhvcm91Z2ggZGVzY3JpcHRpb24gb2YgeW91ciBpc3N1ZSwgYW5kIHN0ZXBzIHRvIHJlcHJvZHVjZSBpdCBvciB5b3VyIGRpc2N1c3Npb24gbWF5IGJlIGlnbm9yZWQuPC9saT4KPGxpPlRoZSBhdXRob3IsIGNhbGd1eTEwMDAsIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS4gIEhvd2V2ZXIsIHBsZWFzZSB1c2UgdGhpcyBhcyBhIGxhc3QgcmVzb3J0LCBhbmQgZW5zdXJlIHRoYXQgeW91IGhhdmUgZm9sbG93ZWQgYWxsIGFwcGxpY2FibGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSBmb3JnZSwgaW4gdGhlIGZvcnVtcywgZXRjLjwvbGk+CjwvdWw+Cgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA4LCBSb2JlcnQgQ2FtcGJlbCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+Jmx0O2NhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcmZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgooYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4KPHA+SG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCmFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQppbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCk1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgpzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMgQQokbGFuZ1snYWRkZWRpdF9hZGR0b2NhcnRfdGVtcGxhdGUnXSA9ICdBZGQvRWRpdCBBZGRUb0NhcnQgVGVtcGxhdGUnOwokbGFuZ1snYWRkZWRpdF9teWNhcnRmb3JtX3RlbXBsYXRlJ10gPSAnQWRkL0VkaXQgTXlDYXJ0IEZvcm0gVGVtcGxhdGUnOwokbGFuZ1snYWRkZWRpdF92aWV3Y2FydGZvcm1fdGVtcGxhdGUnXSA9ICdBZGQvRWRpdCBWaWV3Y2FydCBGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ2FkZHRvY2FydF9kZXN0cGFnZSddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgYWRkIHRvIGNhcnQnOwokbGFuZ1snYWRkdG9jYXJ0X3RlbXBsYXRlcyddID0gJ0FkZFRvQ2FydCBUZW1wbGF0ZXMnOwokbGFuZ1snYWRkX3RvX2NhcnQnXSA9ICdBZGQgVG8gTXkgQ2FydCc7CiRsYW5nWydhbW91bnQnXSA9ICdBbW91bnQnOwokbGFuZ1snYXZhaWxhYmxlJ10gPSAnQXZhaWxhYmxlJzsKCiMgQwokbGFuZ1snY2FydCddID0gJ0NhcnQnOwoKIyBECiRsYW5nWydkZWZhdWx0X2FkZHRvY2FydF90ZW1wbGF0ZSddID0gJ1Byb3RvdHlwZSBBZGRUb0NhcnQgVGVtcGxhdGUnOwokbGFuZ1snZGVmYXVsdF9teWNhcnRmb3JtX3RlbXBsYXRlJ10gPSAnUHJvdG90eXBlIE15Q2FydCBmb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ2RlZmF1bHRfdmlld2NhcnRmb3JtX3RlbXBsYXRlJ10gPSAnUHJvdG90eXBlIFZpZXdjYXJ0IGZvcm0gVGVtcGxhdGUnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZXMnXSA9ICdQcm90b3R5cGUgVGVtcGxhdGVzJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0RlbGV0ZSc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXB0aW9uJzsKCiMgRQokbGFuZ1snZW1wdHlfY2FydCddID0gJ1JlbW92ZSBBbGwgSXRlbXMnOwokbGFuZ1snZXJyb3JfY2FydHBvbGljeV9hZGRpdGVtJ10gPSAnQ2Fubm90IGFkZCB0aGlzIGl0ZW0gdG8gdGhlIGNhcnQuIFNlZSB0aGUgd2Vic2l0ZXMgY2FydCBwb2xpY3knOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmFtJ10gPSAnQSBzdXBwbGllZCBwYXJhbWV0ZXIgaGFzIGFuIGluY29ycmVjdCB2YWx1ZTogJXMnOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnQSByZXF1aXJlZCBwYXJhbWV0ZXIgaXMgbWlzc2luZzogJXMnOwokbGFuZ1snZXJyb3Jfbm9zdWNocHJvZHVjdCddID0gJ0NvdWxkIG5vdCBmaW5kIGluZm9ybWF0aW9uIG9uIHRoZSBwcm9kdWN0OiAlcyc7CiRsYW5nWydlcnJvcl9xdWFudGl0eV9ub3RhdmFpbGFibGUnXSA9ICdXZSBhcmUgc29ycnksIGJ1dCB5b3UgcmVxdWVzdGVkIHRvIGFkZCAlZCBpdGVtcyB0byB5b3VyIGNhcnQsIHdoZXJlIG9ubHkgJWQgYXJlIGF2YWlsYWJsZS4nOwokbGFuZ1snZXJyb3JfcXVhbnRpdHlfbm90YXZhaWxhYmxlMiddID0gJ1dlIGFyZSBzb3JyeSwgYnV0IHlvdSByZXF1ZXN0ZWQgdG8gYWRkICVkIGl0ZW1zIHRvIHlvdXIgY2FydC4gVGhlcmUgYXJlIG9ubHkgJWQgYXJlIGF2YWlsYWJsZSwgYW5kIHRoZXJlIGFyZSBzb21lIGFscmVhZHkgaW4geW91ciBjYXJ0Lic7CgojIEYKJGxhbmdbJ2ZyZWVfcHJvZHVjdCddID0gJ0ZyZWUgSXRlbSc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdDYXJ0Mic7CgojIEgKJGxhbmdbJ2hlbHBfb3B0aW9uX3RlbXBsYXRlJ10gPSA8PDxFT1QKPGgzPk9wdGlvbiBUZW1wbGF0ZTo8L2gzPgo8cD5UaGlzIHRlbXBsYXRlIGlzIHVzZWQgZm9yIGdlbmVyYXRpbmcgdGhlIGRyb3Bkb3duIGxpc3QgaW4gdGhlIGFkZC10by1jYXJ0IGZvcm0gZm9yIGl0ZW1zIDxlbT4odXN1YWxseSBwcm9kdWN0cyk8L2VtPiBUaGF0IGNvbnRhaW4gb3B0aW9ucy4gIEl0IGdlbmVyYXRlcyBhIHNpbXBsZSBvbmUgbGluZSBkaXNwbGF5LjwvcD4KPHA+QXZhaWxhYmxlIHZhcmlhYmxlcyBpbmNsdWRlOjwvcD4KPHRhYmxlIGJvcmRlcj0iMSIgY2VsbHBhZGRpbmc9IjMiIHN0eWxlPSJtYXJnaW4tdG9wOiAwLjVlbTsiPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPk5hbWU6PC90aD4KICAgICAgPHRoPkRlc2NyaXB0aW9uOjwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAgPHRyPgogICAgICA8dGQ+XCRjdXJyZW5jeV9zeW1ib2w8L3RkPgogICAgICA8dGQ+VGhlIGN1cnJlbmN5IHN5bWJvbC4gPGVtPihpLmU6IFwkKTwvZW0+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5cJGN1cnJlbmN5X2NvZGU8L3RkPgogICAgICA8dGQ+VGhlIGN1cnJlbmN5IGNvZGUuIDxlbT4oaS5lOiBVU0QpPC9lbT48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPlwkcHJvZHVjdDwvdGQ+CiAgICAgIDx0ZD5BbiBvYmplY3QgcmVwcmVzZW50aW5nIHByb2R1Y3QgaW5mb3JtYXRpb24uIFNlZSB0aGUgY2dfZWNvbW1fcHJvZHVjdGluZm8gY2xhc3MgZm9yIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBtZXRob2RzLjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+XCRvcHRpb248L3RkPgogICAgICA8dGQ+QW4gb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgb3B0aW9uIGluZm9ybWF0aW9uLiBTZWUgdGhlIGNnX2Vjb21tX3Byb2R1Y3RpbmZvX29wdGlvbiBjbGFzcyBmb3IgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIG1ldGhvZHMuPC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5cJGRpc2NvdW50PC90ZD4KICAgICAgPHRkPlRoZSB2YWx1ZSBvZiBhbnkgZGlzY291bnQgYXBwbGllZCB0byB0aGlzIG9wdGlvbiB2aWEgcHJvbW90aW9uIG1hdGNoaW5nLiA8ZW0+KE1heSBiZSBudWxsIG9yIGVtcHR5Lik8L2VtPjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+XCRwZXJjZW50PC90ZD4KICAgICAgPHRkPlRoZSBwZXJjZW50YWdlIGRpc2NvdW50IGFwcGxpZWQgdG8gdGhpcyBvcHRpb24gdmlhIHByb21vdGlvbiBtYXRjaGluZy4gPGVtPihNYXkgYmUgbnVsbCBvciBlbXB0eS4pPC9lbT48L3RkPgogICAgPC90cj4KICA8L3Rib2R5Pgo8L3RhYmxlPgpFT1Q7CiRsYW5nWydoZWxwX2FjdGlvbiddID0gJ1NwZWNpZmllcyB0aGUgYmVoYXZpb3VyIG9mIHRoZSBtb2R1bGUuICBQb3NzaWJsZSB2YWx1ZXMgYXJlIFwnZGVmYXVsdFwnLFwnbXljYXJ0XCcsIGFuZCBcJ3ZpZXdjYXJ0XCcuPGJyLz48dWw+PGxpPmRlZmF1bHQ6IGRpc3BsYXlzIGEgZm9ybSB3aXRoIGFuIFwnYWRkIHRvIGNhcnRcJyBidXR0b24gdG8gYWxsb3cgYWRkaW5nIGEgc3BlY2lmaWMgcHJvZHVjdCB0byB0aGUgY2FydC4gIFRoaXMgbW9kZSByZXF1aXJlcyB0aGUgXCdwcm9kdWN0XCcgcGFyYW1ldGVyIGJlIHN1cHBsaWVkLjwvbGk+PGxpPm15Y2FydDogRGlzcGxheXMgYSBmb3JtIHRoYXQgZGlzcGxheXMgdGhlIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgY2FydCwgYW5kIGEgXCdjaGVja291dFwnIGJ1dHRvbi48L2xpPjxsaT52aWV3Y2FydDogRGlzcGxheXMgYSBkZXRhaWxlZCBmb3JtIG9mIHRoZSBjb250ZW50cyBvZiB0aGUgY2FydCwgaW5jbHVkaW5nIGEgY3VycmVudCB0b3RhbCwgYW5kIGFsbG93cyBkZWxldGluZyBpdGVtcyBmcm9tIHRoZSBjYXJ0LjwvbGk+PC91bD4nOwokbGFuZ1snaGVscF9hZGR0b2NhcnR0ZW1wbGF0ZSddID0gJ1NwZWNpZmllcyBhIG5vbiBkZWZhdWx0IHRlbXBsYXRlIHRvIHVzZSBmb3IgdGhlIFwnYWRkdG9jYXJ0XCcgbW9kZS4nOwokbGFuZ1snaGVscF9kZXN0cGFnZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgXCdkZWZhdWx0XCcgKGFkZCB0byBjYXJ0IGZvcm0pIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHBhZ2UgYWxpYXMgb3IgaWQgdG8ganVtcCB0byBhZnRlciB0aGUgaXRlbSBoYXMgYmVlbiBhZGRlZCB0byB0aGUgY2FydCc7CiRsYW5nWydoZWxwX2hpZGVmb3JtJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBcJ3ZpZXdjYXJ0XCcgYWN0aW9uLCB0aGlzIGZsYWcgaW5kaWNhdGVzIHdldGhlciB0aGUgdmlld2NhcnQgZm9ybSBzaG91bGQgYmUgZGlzcGxheWVkJzsKJGxhbmdbJ2hlbHBfbXljYXJ0dGVtcGxhdGUnXSA9ICdTcGVjaWZpZXMgYSBub24gZGVmYXVsdCB0ZW1wbGF0ZSB0byB1c2UgZm9yIHRoZSAgXCdteWNhcnRcJyBtb2RlLic7CiRsYW5nWydoZWxwX3ByaWNlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIG92ZXJyaWRpbmcgdGhlIGJhc2UgcHJpY2Ugb2YgYSBwcm9kdWN0Lic7CiRsYW5nWydoZWxwX3Byb2R1Y3QnXSA9ICdBcHBsaWNhYmxlIG9ubHkgZm9yIHRoZSBkZWZhdWx0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHdoaWNoIHByb2R1Y3QgKGJ5IGlkKSBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGNhcnQuICBUeXBpY2FsbHksIGluIHRoZSBwcm9kdWN0IGRldGFpbCB0ZW1wbGF0ZSBvZiB0aGUgcHJvZHVjdHMgbW9kdWxlLCB5b3Ugd291bGQgYWRkIHtDYXJ0MiBza3U9JGVudHJ5LT5za3V9IHRvIGFsbG93IGFkZGluZyBpdGVtcyB0byB0aGUgY2FydCBmcm9tIHByb2R1Y3QgZGV0YWlsIHBhZ2VzLic7CiRsYW5nWydoZWxwX3NrdSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB3aGljaCBwcm9kdWN0IChieSBTS1UpIHNob3VsZCBiZSBhZGRlZCB0byB0aGUgY2FydC4gVGhpcyBzaG91bGQgbm90IGJlIHVzZWQgd2l0aCB0aGUgcHJvZHVjdCBwYXJhbWV0ZXIuJzsKJGxhbmdbJ2hlbHBfc3VwcGxpZXInXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgd2hpY2ggc3VwcGxpZXIgbW9kdWxlIHRvIHF1ZXJ5IGluZm9ybWF0aW9uIHRvLiAgQnkgZGVmYXVsdCB0aGlzIGlzICZxdW90O1Byb2R1Y3RzJnF1b3Q7JzsKJGxhbmdbJ2hlbHBfdmlld2NhcnRwYWdlJ10gPSAnU3BlY2lmeSBhIGRlc3RpbmF0aW9uIHBhZ2UgZm9yIHRoZSBcJ3ZpZXdjYXJ0XCcgbW9kZS4nOwokbGFuZ1snaGVscF92aWV3Y2FydHRlbXBsYXRlJ10gPSAnU3BlY2lmaWVzIGEgbm9uIGRlZmF1bHQgdGVtcGxhdGUgdG8gdXNlIGZvciB0aGUgXCd2aWV3Y2FydFwnIG1vZGUuJzsKJGxhbmdbJ2hlbHBfd2F0Y2hfcW9oJ10gPSA8PDxFT1QKPHA+SWYgdGhpcyBvcHRpb24gaXMgZW5hYmxlZCwgdXNlcnMgd2lsbCBub3QgYmUgYWxsb3dlZCB0byBhZGQgbW9yZSBpdGVtcyB0byB0aGUgY2FydCB0aGFuIGlzIGN1cnJlbnRseSBhdmFpYWxibGUgb24gaGFuZC48L3A+CjxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyBzeXN0ZW0gaXMgbm90IGZvb2xwcm9vZi48L3A+Cjx1bD4KICA8bGk+QXZhaWxhYmxlIHF1YW50aXR5IGlzIG5vdCBhZGp1c3RlZCB1bnRpbCBhbiBvcmRlciBpcyBjb21wbGV0ZWQuICBUaGVyZWZvcmUgaXQgaXMgcG9zc2libGUgZm9yIG5lZ2F0aXZlIHF1YW50aXRpZXMgKGJhY2tvcmRlciBzaXR1YXRpb25zKSB0byBvY2N1ciBmb3IgcG9wdWxhciBpdGVtcyB3aGVuIG11bHRpcGxlIGN1c3RvbWVycyBvcmRlciB0aGUgc2FtZSBpdGVtIHdpdGhpbiB0aGUgc2FtZSBwZXJpb2QuPC9saT4KICA8bGk+UXVhbnRpdHkgb24gaGFuZCBpcyBOT1QgaW5jcmVhc2VkIGF0IGFsbCB0aW1lcyB3aGVuIGFuIG9yZGVyIGlzIHVwZGF0ZWQgZnJvbSB3aXRoaW4gdGhlIG9yZGVycyBtb2R1bGUuPC9saT4KPC91bD4KRU9UOwojIEkKJGxhbmdbJ2luZm9fcHJvZHVjdHN1bW1hcnl0ZW1wbGF0ZSddID0gJ1RoaXMgdGVtcGxhdGUgaXMgdXNlZCB0byBmb3JtYXQgdGhlIG91dHB1dCB1c2VkIGZvciBlYWNoIHByb2R1Y3Qgc3VtbWFyeSBpbiB0aGUgdmlldyBjYXJ0IGZvcm0uICBJdCBhbGxvd3MgY3VzdG9taXppbmcgdGhlIHByb2R1Y3QgbGFiZWwgYmFzZWQgb24gdGhlIGF0dHJpYnV0ZXMsIHByb2R1Y3QgbmFtZSwgYW5kIHByaWNlLic7CiRsYW5nWydpbmZvc3VidG90YWwnXSA9ICdUaGlzIGlzIGEgc3VidG90YWwuICBUYXhlcyBhbmQgc2hpcHBpbmcgY29zdHMgYXJlIGNhbGN1bGF0ZWQgYXQgdGltZSBvZiBjaGVja291dCc7CgojIEwKJGxhbmdbJ2xibF9wcm9kdWN0c3VtbWFyeXRlbXBsYXRlJ10gPSAnUHJvZHVjdCBTdW1tYXJ5IFRlbXBsYXRlJzsKCiMgTQokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdBIFNpbXBsZSBDYXJ0IE1vZHVsZSc7CiRsYW5nWydtc2dfc2V0YXNjYXJ0J10gPSAnVGhpcyBpcyBub3cgeW91ciBwcmVmZXJyZWQgY2FydCBtb2R1bGUnOwokbGFuZ1snbXljYXJ0Zm9ybV90ZW1wbGF0ZXMnXSA9ICdNeUNhcnQgRm9ybSBUZW1wbGF0ZXMnOwokbGFuZ1snbXlfY2FydCddID0gJ015IENhcnQnOwokbGFuZ1snbXlfaXRlbXMnXSA9ICdNeSBJdGVtcyc7CgojIE4KJGxhbmdbJ25vJ10gPSAnTm8nOwokbGFuZ1snbm9uZSddID0gJ05vbmUnOwokbGFuZ1snbnVtYmVyJ10gPSAnTnVtYmVyJzsKJGxhbmdbJ251bWJlcl9vZl9pdGVtcyddID0gJ051bWJlciBvZiBpdGVtcyc7CgojIFAKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnVGhlIENhcnQgbW9kdWxlIGhhcyBzdWNjZXNzZnVsbHkgYmVlbiBpbnN0YWxsZWQnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1RoZSBDYXJ0IG1vZHVsZSBoYXMgYmVlbiByZW1vdmVkJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnUHJlZmVyZW5jZXMnOwokbGFuZ1sncHJpY2UnXSA9ICdQcmljZSc7CiRsYW5nWydwcm9kdWN0X2lkJ10gPSAnUHJvZHVjdCBJRCc7CiRsYW5nWydwcm9kdWN0X3N1bW1hcnknXSA9ICdQcm9kdWN0IFN1bW1hcnkgVGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X29wdGlvbl90ZW1wbGF0ZSddID0gJ0FkZCB0byBDYXJ0IE9wdGlvbiBUZW1wbGF0ZSc7CiRsYW5nWydwcm9tcHRfd2F0Y2hfcW9oJ10gPSAnV2F0Y2ggUXVhbnRpdHkgT24gSGFuZCc7CgojIFEKJGxhbmdbJ3F1YW50aXR5J10gPSAnUXVhbnRpdHknOwoKIyBSCiRsYW5nWydyZWFsbHlfdW5pbnN0YWxsJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJlbW92ZSB0aGlzIG1vZHVsZT8nOwokbGFuZ1sncmVtb3ZlJ10gPSAnUmVtb3ZlJzsKCiMgUwokbGFuZ1snc2V0YXNjYXJ0J10gPSAnU2V0IGFzIGNhcnQgTW9kdWxlJzsKJGxhbmdbJ3NrdSddID0gJ1NLVSc7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwokbGFuZ1snc3VidG90YWwnXSA9ICdTdWJ0b3RhbCc7CiRsYW5nWydzdW1tYXJ5J10gPSAnU3VtbWFyeSc7CiRsYW5nWydzaGlwcGluZyddID0gJ1NoaXBwaW5nJzsKJGxhbmdbJ3NoaXBwaW5nX21vZHVsZSddID0gJ1NoaXBwaW5nIE1vZHVsZSc7CgojIFQKJGxhbmdbJ3RvdGFsJ10gPSAnVG90YWwnOwokbGFuZ1sndG90YWxfd2VpZ2h0J10gPSAnVG90YWwgV2VpZ2h0JzsKJGxhbmdbJ3RwbHR5cGVfQ2FydDInXSA9ICdDYXJ0Mic7CiRsYW5nWyd0cGx0eXBlX0FkZF90b19DYXJ0X0Zvcm0nXSA9ICdBZGQgdG8gQ2FydCBGb3JtJzsKJGxhbmdbJ3RwbHR5cGVfTXlfQ2FydF9Gb3JtJ10gPSAnTXkgQ2FydCBGb3JtJzsKJGxhbmdbJ3RwbHR5cGVfVmlld19DYXJ0X0Zvcm0nXSA9ICdWaWV3IENhcnQgRm9ybSc7CgojIFUKJGxhbmdbJ3VuaXRfZGlzY291bnQnXSA9ICdVbml0IGRpc2NvdW50JzsKJGxhbmdbJ3VuaXRfcHJpY2UnXSA9ICdVbml0IHByaWNlJzsKCiMgVgokbGFuZ1sndmlld2NhcnRmb3JtX3RlbXBsYXRlcyddID0gJ1ZpZXdjYXJ0IGZvcm0gdGVtcGxhdGVzJzsKCiMgVwokbGFuZ1snd2Fybl9kZWZhdWx0X3RlbXBsYXRlcyddID0gJ1RoaXMgZm9ybSBjb250cm9scyB3aGF0IGlzIGRpc3BsYXllZCBpbml0aWFsbHkgd2hlbiB5b3UgY2xpY2sgXCdBZGQgTmV3IFRlbXBsYXRlXCcgaW4gdGhlIGFwcHJvcHJpYXRlIHRhYi4gIEFkanVzdGluZyB0aGUgY29udGVudHMgaW4gdGhpcyBlZGl0IGFyZWEgd2lsbCBoYXZlIG5vIGltbWVkaWNhdGUgZWZmZWN0IG9uIHlvdXIgd2Vic2l0ZS4nOwokbGFuZ1snd2VpZ2h0J10gPSAnV2VpZ2h0JzsKCiMgWAoKIyBZCiRsYW5nWyd5ZXMnXSA9ICdZZXMnOwokbGFuZ1sneW91c2F2ZSddID0gJ1lvdSBTYXZlJzsKCiMgWgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZGVkaXRfYWRkdG9jYXJ0X3RlbXBsYXRlJ10gPSAn4oCeWnVtIFdhcmVua29yYiBoaW56dWbDvGdlbuKAnC1Wb3JsYWdlIGhpbnp1ZsO8Z2VuL2JlYXJiZWl0ZW4nOwokbGFuZ1snYWRkZWRpdF9teWNhcnRmb3JtX3RlbXBsYXRlJ10gPSAn4oCeTWVpbiBXYXJlbmtvcmLigJwtVm9ybGFnZSBoaW56dWbDvGdlbi9iZWFyYmVpdGVuJzsKJGxhbmdbJ2FkZGVkaXRfdmlld2NhcnRmb3JtX3RlbXBsYXRlJ10gPSAn4oCeV2FyZW5rb3JiIGFuemVpZ2Vu4oCcLVZvcmxhZ2UgaGluenVmw7xnZW4vYmVhcmJlaXRlbic7CiRsYW5nWydhZGR0b2NhcnRfZGVzdHBhZ2UnXSA9ICdOYWNoIGRlbSBIaW56dWbDvGdlbiB6dW0gV2FyZW5rb3JiIHdlaXRlcmxlaXRlbiBhdWYnOwokbGFuZ1snYWRkdG9jYXJ0X3RlbXBsYXRlcyddID0gJ+KAnlp1bSBXYXJlbmtvcmIgaGluenVmw7xnZW7igJwtVm9ybGFnZW4nOwokbGFuZ1snYWRkX3RvX2NhcnQnXSA9ICdJbiBkZW4gV2FyZW5rb3JiJzsKJGxhbmdbJ2Ftb3VudCddID0gJ0JldHJhZyc7CiRsYW5nWydkZWZhdWx0X2FkZHRvY2FydF90ZW1wbGF0ZSddID0gJ1N0YW5kYXJkdm9ybGFnZSBmw7xyIOKAnlp1bSBXYXJlbmtvcmIgaGluenVmw7xnZW7igJwnOwokbGFuZ1snZGVmYXVsdF9teWNhcnRmb3JtX3RlbXBsYXRlJ10gPSAnU3RhbmRhcmR2b3JsYWdlIGbDvHIg4oCeTWVpbiBXYXJlbmtvcmLigJwnOwokbGFuZ1snZGVmYXVsdF92aWV3Y2FydGZvcm1fdGVtcGxhdGUnXSA9ICdTdGFuZGFyZHZvcmxhZ2UgZsO8ciDigJ5XYXJlbmtvcmIgYW56ZWlnZW7igJwnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZXMnXSA9ICdTdGFuZGFyZHZvcmxhZ2VuJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0zDtnNjaGVuJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnQmVzY2hyZWlidW5nJzsKJGxhbmdbJ2VtcHR5X2NhcnQnXSA9ICdBbGxlIEFydGlrZWwgZW50ZmVybmVuJzsKJGxhbmdbJ2Vycm9yX2NhcnRwb2xpY3lfYWRkaXRlbSddID0gJ0RpZXNlciBBcnRpa2VsIGthbm4gbmljaHQgaGluenVnZWbDvGd0IHdlcmRlbi4gQml0dGUga29uc3VsdGllcmVuIHNpZSBkaWUgV2FyZW5rb3JicmljaHRsaW5pZW4gZGllc2VyIFdlYnNpdGUuJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJhbSddID0gJ0VpbiBhbmdlZ2ViZW5lciBQYXJhbWV0ZXIgaGF0IGVpbmVuIHVuZ8O8bHRpZ2VuIFdlcnQ6ICVzJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0VpbiBiZW7DtnRpZ3RlciBQYXJhbWV0ZXIgZmVobHQ6ICVzJzsKJGxhbmdbJ2Vycm9yX25vc3VjaHByb2R1Y3QnXSA9ICdLb25udGUga2VpbmUgSW5mb3JtYXRpb24genVtIFByb2R1a3QgJXMgZmluZGVuJzsKJGxhbmdbJ2ZyZWVfcHJvZHVjdCddID0gJ0tvc3Rlbmxvc2VyIEFydGlrZWwnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnV2FyZW5rb3JiIChDYXJ0Mi1Nb2R1bCknOwokbGFuZ1snaGVscF9vcHRpb25fdGVtcGxhdGUnXSA9ICc8aDM+T3B0aW9uIFRlbXBsYXRlOjwvaDM+DQo8cD5UaGlzIHRlbXBsYXRlIGlzIHVzZWQgZm9yIGdlbmVyYXRpbmcgdGhlIGRyb3Bkb3duIGxpc3QgaW4gdGhlIGFkZC10by1jYXJ0IGZvcm0gZm9yIGl0ZW1zIDxlbT4odXN1YWxseSBwcm9kdWN0cyk8L2VtPiBUaGF0IGNvbnRhaW4gb3B0aW9ucy4gIEl0IGdlbmVyYXRlcyBhIHNpbXBsZSBvbmUgbGluZSBkaXNwbGF5LjwvcD4NCjxwPkF2YWlsYWJsZSB2YXJpYWJsZXMgaW5jbHVkZTo8L3A+DQo8dGFibGUgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iMyIgc3R5bGU9Im1hcmdpbi10b3A6IDAuNWVtOyI+DQogIDx0aGVhZD4NCiAgICA8dHI+DQogICAgICA8dGg+TmFtZTo8L3RoPg0KICAgICAgPHRoPkRlc2NyaXB0aW9uOjwvdGg+DQogICAgPC90cj4NCiAgPC90aGVhZD4NCiAgPHRib2R5Pg0KICAgIDx0cj4NCiAgICAgIDx0ZD4kY3VycmVuY3lfc3ltYm9sPC90ZD4NCiAgICAgIDx0ZD5UaGUgY3VycmVuY3kgc3ltYm9sLiA8ZW0+KGkuZTogJCk8L2VtPjwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQ+JGN1cnJlbmN5X2NvZGU8L3RkPg0KICAgICAgPHRkPlRoZSBjdXJyZW5jeSBjb2RlLiA8ZW0+KGkuZTogVVNEKTwvZW0+PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZD4kcHJvZHVjdDwvdGQ+DQogICAgICA8dGQ+QW4gb2JqZWN0IHJlcHJlc2VudGluZyBwcm9kdWN0IGluZm9ybWF0aW9uLiBTZWUgdGhlIGNnX2Vjb21tX3Byb2R1Y3RpbmZvIGNsYXNzIGZvciB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbWV0aG9kcy48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkPiRvcHRpb248L3RkPg0KICAgICAgPHRkPkFuIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG9wdGlvbiBpbmZvcm1hdGlvbi4gU2VlIHRoZSBjZ19lY29tbV9wcm9kdWN0aW5mb19vcHRpb24gY2xhc3MgZm9yIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBtZXRob2RzLjwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQ+JGRpc2NvdW50PC90ZD4NCiAgICAgIDx0ZD5UaGUgdmFsdWUgb2YgYW55IGRpc2NvdW50IGFwcGxpZWQgdG8gdGhpcyBvcHRpb24gdmlhIHByb21vdGlvbiBtYXRjaGluZy4gPGVtPihNYXkgYmUgbnVsbCBvciBlbXB0eS4pPC9lbT48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkPiRwZXJjZW50PC90ZD4NCiAgICAgIDx0ZD5UaGUgcGVyY2VudGFnZSBkaXNjb3VudCBhcHBsaWVkIHRvIHRoaXMgb3B0aW9uIHZpYSBwcm9tb3Rpb24gbWF0Y2hpbmcuIDxlbT4oTWF5IGJlIG51bGwgb3IgZW1wdHkuKTwvZW0+PC90ZD4NCiAgICA8L3RyPg0KICA8L3Rib2R5Pg0KPC90YWJsZT4nOwokbGFuZ1snaGVscF9hY3Rpb24nXSA9ICdTcGVjaWZpZXMgdGhlIGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGFyZSBcJ2RlZmF1bHRcJyxcJ215Y2FydFwnLCBhbmQgXCd2aWV3Y2FydFwnLjxici8+PHVsPjxsaT5kZWZhdWx0OiBkaXNwbGF5cyBhIGZvcm0gd2l0aCBhbiBcJ2FkZCB0byBjYXJ0XCcgYnV0dG9uIHRvIGFsbG93IGFkZGluZyBhIHNwZWNpZmljIHByb2R1Y3QgdG8gdGhlIGNhcnQuICBUaGlzIG1vZGUgcmVxdWlyZXMgdGhlIFwncHJvZHVjdFwnIHBhcmFtZXRlciBiZSBzdXBwbGllZC48L2xpPjxsaT5teWNhcnQ6IERpc3BsYXlzIGEgZm9ybSB0aGF0IGRpc3BsYXlzIHRoZSBudW1iZXIgb2YgaXRlbXMgaW4gdGhlIGNhcnQsIGFuZCBhIFwnY2hlY2tvdXRcJyBidXR0b24uPC9saT48bGk+dmlld2NhcnQ6IERpc3BsYXlzIGEgZGV0YWlsZWQgZm9ybSBvZiB0aGUgY29udGVudHMgb2YgdGhlIGNhcnQsIGluY2x1ZGluZyBhIGN1cnJlbnQgdG90YWwsIGFuZCBhbGxvd3MgZGVsZXRpbmcgaXRlbXMgZnJvbSB0aGUgY2FydC48L2xpPjwvdWw+JzsKJGxhbmdbJ2hlbHBfYWRkdG9jYXJ0dGVtcGxhdGUnXSA9ICdTcGVjaWZpZXMgYSBub24gZGVmYXVsdCB0ZW1wbGF0ZSB0byB1c2UgZm9yIHRoZSBcJ2FkZHRvY2FydFwnIG1vZGUuJzsKJGxhbmdbJ2hlbHBfZGVzdHBhZ2UnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIFwnZGVmYXVsdFwnIChhZGQgdG8gY2FydCBmb3JtKSBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBwYWdlIGFsaWFzIG9yIGlkIHRvIGp1bXAgdG8gYWZ0ZXIgdGhlIGl0ZW0gaGFzIGJlZW4gYWRkZWQgdG8gdGhlIGNhcnQnOwokbGFuZ1snaGVscF9oaWRlZm9ybSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgXCd2aWV3Y2FydFwnIGFjdGlvbiwgdGhpcyBmbGFnIGluZGljYXRlcyB3ZXRoZXIgdGhlIHZpZXdjYXJ0IGZvcm0gc2hvdWxkIGJlIGRpc3BsYXllZCc7CiRsYW5nWydoZWxwX215Y2FydHRlbXBsYXRlJ10gPSAnU3BlY2lmaWVzIGEgbm9uIGRlZmF1bHQgdGVtcGxhdGUgdG8gdXNlIGZvciB0aGUgIFwnbXljYXJ0XCcgbW9kZS4nOwokbGFuZ1snaGVscF9wcm9kdWN0J10gPSAnQXBwbGljYWJsZSBvbmx5IGZvciB0aGUgZGVmYXVsdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB3aGljaCBwcm9kdWN0IChieSBpZCkgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBjYXJ0LiAgVHlwaWNhbGx5LCBpbiB0aGUgcHJvZHVjdCBkZXRhaWwgdGVtcGxhdGUgb2YgdGhlIHByb2R1Y3RzIG1vZHVsZSwgeW91IHdvdWxkIGFkZCB7Q2FydDIgc2t1PSRlbnRyeS0+c2t1fSB0byBhbGxvdyBhZGRpbmcgaXRlbXMgdG8gdGhlIGNhcnQgZnJvbSBwcm9kdWN0IGRldGFpbCBwYWdlcy4nOwokbGFuZ1snaGVscF9zdXBwbGllciddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB3aGljaCBzdXBwbGllciBtb2R1bGUgdG8gcXVlcnkgaW5mb3JtYXRpb24gdG8uICBCeSBkZWZhdWx0IHRoaXMgaXMgIlByb2R1Y3RzIic7CiRsYW5nWydoZWxwX3ZpZXdjYXJ0cGFnZSddID0gJ1NwZWNpZnkgYSBkZXN0aW5hdGlvbiBwYWdlIGZvciB0aGUgXCd2aWV3Y2FydFwnIG1vZGUuJzsKJGxhbmdbJ2hlbHBfdmlld2NhcnR0ZW1wbGF0ZSddID0gJ1NwZWNpZmllcyBhIG5vbiBkZWZhdWx0IHRlbXBsYXRlIHRvIHVzZSBmb3IgdGhlIFwndmlld2NhcnRcJyBtb2RlLic7CiRsYW5nWydpbmZvX3Byb2R1Y3RzdW1tYXJ5dGVtcGxhdGUnXSA9ICdUaGlzIHRlbXBsYXRlIGlzIHVzZWQgdG8gZm9ybWF0IHRoZSBvdXRwdXQgdXNlZCBmb3IgZWFjaCBwcm9kdWN0IHN1bW1hcnkgaW4gdGhlIHZpZXcgY2FydCBmb3JtLiAgSXQgYWxsb3dzIGN1c3RvbWl6aW5nIHRoZSBwcm9kdWN0IGxhYmVsIGJhc2VkIG9uIHRoZSBhdHRyaWJ1dGVzLCBwcm9kdWN0IG5hbWUsIGFuZCBwcmljZS4nOwokbGFuZ1snaW5mb3N1YnRvdGFsJ10gPSAnRGllcyBpc3QgZWluZSBad2lzY2hlbnN1bW1lLiBTdGV1ZXJuIHVuZCBWZXJzYW5ka29zdGVuIHdlcmRlbiBiZWkgZGVyIGVuZGfDvGx0aWdlbiBCZXN0ZWxsdW5nIGJlcmVjaG5ldC4nOwokbGFuZ1snbGJsX3Byb2R1Y3RzdW1tYXJ5dGVtcGxhdGUnXSA9ICdQcm9kdWt0LVp1c2FtbWVuZmFzc3VuZ3N2b3JsYWdlJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnRWluIGVpbmZhY2hlcyBXYXJlbmtvcmItTW9kdWwnOwokbGFuZ1snbXljYXJ0Zm9ybV90ZW1wbGF0ZXMnXSA9ICdXYXJlbmtvcmItVm9ybGFnZW4nOwokbGFuZ1snbXlfY2FydCddID0gJ01laW4gV2FyZW5rb3JiJzsKJGxhbmdbJ25vJ10gPSAnTmVpbic7CiRsYW5nWydub25lJ10gPSAnS2VpbmUgVm9yZ2FiZSc7CiRsYW5nWydudW1iZXInXSA9ICdBbnphaGwnOwokbGFuZ1snbnVtYmVyX29mX2l0ZW1zJ10gPSAnQXJ0aWtlbCBpbSBXYXJlbmtvcmInOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdEYXMgV2FyZW5rb3JiLU1vZHVsIHd1cmRlIGluc3RhbGxpZXJ0JzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdEYXMgV2FyZW5rb3JiLU1vZHVsIHd1cmRlIGVudGZlcm50JzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnRWluc3RlbGx1bmdlbic7CiRsYW5nWydwcmljZSddID0gJ1ByZWlzJzsKJGxhbmdbJ3Byb2R1Y3RfaWQnXSA9ICdQcm9kdWt0LUlEJzsKJGxhbmdbJ3Byb2R1Y3Rfc3VtbWFyeSddID0gJ1Byb2R1a3RiZXNjaHJlaWJ1bmdzdm9ybGFnZSc7CiRsYW5nWydwcm9tcHRfb3B0aW9uX3RlbXBsYXRlJ10gPSAnUHJvZHVrdG9wdGlvbmVudm9ybGFnZSc7CiRsYW5nWydxdWFudGl0eSddID0gJ01lbmdlJzsKJGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXSA9ICdXb2xsZW4gU2llIHdpcmtsaWNoIGRpZXNlcyBNb2R1bCBlbnRmZXJuZW4/JzsKJGxhbmdbJ3JlbW92ZSddID0gJ0VudGZlcm5lbic7CiRsYW5nWydza3UnXSA9ICdBcnRpa2VsbnVtbWVyJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ0FrdHVhbGlzaWVyZW4nOwokbGFuZ1snc3VidG90YWwnXSA9ICdad2lzY2hlbnN1bW1lJzsKJGxhbmdbJ3N1bW1hcnknXSA9ICdLdXJ6YmVzY2hyZWlidW5nJzsKJGxhbmdbJ3NoaXBwaW5nJ10gPSAnVmVyc2FuZCc7CiRsYW5nWydzaGlwcGluZ19tb2R1bGUnXSA9ICdWZXJzYW5kLU1vZHVsJzsKJGxhbmdbJ3RvdGFsJ10gPSAnR2VzYW10JzsKJGxhbmdbJ3RvdGFsX3dlaWdodCddID0gJ0dlc2FtdGdld2ljaHQnOwokbGFuZ1sndW5pdF9wcmljZSddID0gJ1N0w7xja3ByZWlzJzsKJGxhbmdbJ3ZpZXdjYXJ0Zm9ybV90ZW1wbGF0ZXMnXSA9ICdXYXJlbmtvcmItRGV0YWlsdm9ybGFnZW4nOwokbGFuZ1snd2Fybl9kZWZhdWx0X3RlbXBsYXRlcyddID0gJ1RoaXMgZm9ybSBjb250cm9scyB3aGF0IGlzIGRpc3BsYXllZCBpbml0aWFsbHkgd2hlbiB5b3UgY2xpY2sgXCdBZGQgTmV3IFRlbXBsYXRlXCcgaW4gdGhlIGFwcHJvcHJpYXRlIHRhYi4gIEFkanVzdGluZyB0aGUgY29udGVudHMgaW4gdGhpcyBlZGl0IGFyZWEgd2lsbCBoYXZlIG5vIGltbWVkaWNhdGUgZWZmZWN0IG9uIHlvdXIgd2Vic2l0ZS4nOwokbGFuZ1snd2VpZ2h0J10gPSAnR2V3aWNodCc7CiRsYW5nWyd5ZXMnXSA9ICdKYSc7CiRsYW5nWyd5b3VzYXZlJ10gPSAnU2llIHNwYXJlbic7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZGVkaXRfYWRkdG9jYXJ0X3RlbXBsYXRlJ10gPSAnQWpvdXRlciAvIMOJZGl0ZXIgbGUgZ2FiYXJpdCBBam91dGVyIGF1IHBhbmllciAoQWRkVG9DYXJ0KSc7CiRsYW5nWydhZGRlZGl0X215Y2FydGZvcm1fdGVtcGxhdGUnXSA9ICdBam91dGVyIC8gw4lkaXRlciBsZSBnYWJhcml0IE1vbiBwYW5pZXIgKE15Q2FydCknOwokbGFuZ1snYWRkZWRpdF92aWV3Y2FydGZvcm1fdGVtcGxhdGUnXSA9ICdBam91dGVyIC8gw4lkaXRlciBsZSBnYWJhcml0IFZvaXIgbGUgcGFuaWVyIChWaWV3Q2FydCknOwokbGFuZ1snYWRkdG9jYXJ0X2Rlc3RwYWdlJ10gPSAnUGFnZSBvw7kgcmVkaXJpZ2VyIGxcJ3V0aWxpc2F0ZXVyIGFwcsOocyBsXCdham91dCBhdSBwYW5pZXInOwokbGFuZ1snYWRkdG9jYXJ0X3RlbXBsYXRlcyddID0gJ0dhYmFyaXRzIEFqb3V0ZXIgYXUgcGFuaWVyIChBZGRUb0NhcnQpJzsKJGxhbmdbJ2FkZF90b19jYXJ0J10gPSAnQWpvdXRlciDDoCBtb24gcGFuaWVyJzsKJGxhbmdbJ2Ftb3VudCddID0gJ01vbnRhbnQnOwokbGFuZ1snYXZhaWxhYmxlJ10gPSAnRGlzcG9uaWJsZSc7CiRsYW5nWydjYXJ0J10gPSAnUGFuaWVyJzsKJGxhbmdbJ2RlZmF1bHRfYWRkdG9jYXJ0X3RlbXBsYXRlJ10gPSAnR2FiYXJpdCBBam91dGVyIGF1IHBhbmllciBwYXIgZMOpZmF1dCc7CiRsYW5nWydkZWZhdWx0X215Y2FydGZvcm1fdGVtcGxhdGUnXSA9ICdHYWJhcml0IE1vbiBwYW5pZXIgcGFyIGTDqWZhdXQnOwokbGFuZ1snZGVmYXVsdF92aWV3Y2FydGZvcm1fdGVtcGxhdGUnXSA9ICdHYWJhcml0IFZvaXIgbGUgcGFuaWVyIHBhciBkw6lmYXV0JzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVzJ10gPSAnR2FiYXJpdHMgcGFyIGTDqWZhdXQnOwokbGFuZ1snZGVsZXRlJ10gPSAnU3VwcHJpbWVyJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnRGVzY3JpcHRpb24mbmJzcDsnOwokbGFuZ1snZW1wdHlfY2FydCddID0gJ1N1cHByaW1lciB0b3VzIGxlcyBhcnRpY2xlcyc7CiRsYW5nWydlcnJvcl9jYXJ0cG9saWN5X2FkZGl0ZW0nXSA9ICdJbXBvc3NpYmxlIGRcJ2Fqb3V0ZXIgY2V0IGFydGljbGUgZGFucyBsZSBwYW5pZXIuIFZldWlsbGV6IGNvbnN1bHRlciBsZXMgcsOoZ2xlcyBkdSBzaXRlIGNvbmNlcm5hbnQgbGEgZ2VzdGlvbiBkdSBwYW5pZXInOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmFtJ10gPSAnVW4gcGFyYW3DqHRyZSBmb3VybmkgYSB1bmUgdmFsZXVyIG5vbiBjb3JyZWN0ZSZuYnNwOzogJXMnOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnVW4gcGFyYW3DqHRyZSByZXF1aXMgZXN0IG1hbnF1YW50Jm5icHM7OiAlcyc7CiRsYW5nWydlcnJvcl9ub3N1Y2hwcm9kdWN0J10gPSAnQXVjdW5lIGluZm9ybWF0aW9uIHRyb3V2w6llIHN1ciBsZSBwcm9kdWl0Jm5ic3A7OiAlcyc7CiRsYW5nWydlcnJvcl9xdWFudGl0eV9ub3RhdmFpbGFibGUnXSA9ICdOb3VzIHNvbW1lcyBkw6lzb2zDqXMsIG1haXMgdm91cyBhdmV6IGRlbWFuZMOpIGRcJ2Fqb3V0ZXIgJWQgYXJ0aWNsZXMgw6Agdm90cmUgcGFuaWVyLCBtYWlzIHNldWxzICVkIHNvbnQgZGlzcG9uaWJsZXMuJzsKJGxhbmdbJ2Vycm9yX3F1YW50aXR5X25vdGF2YWlsYWJsZTInXSA9ICdOb3VzIHNvbW1lcyBkw6lzb2zDqXMsIG1haXMgdm91cyBhdmV6IGRlbWFuZMOpIGRcJ2Fqb3V0ZXIgJWQgYXJ0aWNsZXMgw6Agdm90cmUgcGFuaWVyLiBTZXVscyAlZCBzb250IGRpc3BvbmlibGVzLCBldCBpbCB5IGVuIGEgZMOpasOgIGRhbnMgdm90cmUgcGFuaWVyLic7CiRsYW5nWydmcmVlX3Byb2R1Y3QnXSA9ICdBcnRpY2xlIGdyYXR1aXQnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnUGFuaWVyMic7CiRsYW5nWydoZWxwX29wdGlvbl90ZW1wbGF0ZSddID0gJzxoMz5PcHRpb24gVGVtcGxhdGU6PC9oMz4NCjxwPlRoaXMgdGVtcGxhdGUgaXMgdXNlZCBmb3IgZ2VuZXJhdGluZyB0aGUgZHJvcGRvd24gbGlzdCBpbiB0aGUgYWRkLXRvLWNhcnQgZm9ybSBmb3IgaXRlbXMgPGVtPih1c3VhbGx5IHByb2R1Y3RzKTwvZW0+IFRoYXQgY29udGFpbiBvcHRpb25zLiAgSXQgZ2VuZXJhdGVzIGEgc2ltcGxlIG9uZSBsaW5lIGRpc3BsYXkuPC9wPg0KPHA+QXZhaWxhYmxlIHZhcmlhYmxlcyBpbmNsdWRlOjwvcD4NCjx0YWJsZSBib3JkZXI9IjEiIGNlbGxwYWRkaW5nPSIzIiBzdHlsZT0ibWFyZ2luLXRvcDogMC41ZW07Ij4NCiAgPHRoZWFkPg0KICAgIDx0cj4NCiAgICAgIDx0aD5OYW1lOjwvdGg+DQogICAgICA8dGg+RGVzY3JpcHRpb246PC90aD4NCiAgICA8L3RyPg0KICA8L3RoZWFkPg0KICA8dGJvZHk+DQogICAgPHRyPg0KICAgICAgPHRkPiRjdXJyZW5jeV9zeW1ib2w8L3RkPg0KICAgICAgPHRkPlRoZSBjdXJyZW5jeSBzeW1ib2wuIDxlbT4oaS5lOiAkKTwvZW0+PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZD4kY3VycmVuY3lfY29kZTwvdGQ+DQogICAgICA8dGQ+VGhlIGN1cnJlbmN5IGNvZGUuIDxlbT4oaS5lOiBVU0QpPC9lbT48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkPiRwcm9kdWN0PC90ZD4NCiAgICAgIDx0ZD5BbiBvYmplY3QgcmVwcmVzZW50aW5nIHByb2R1Y3QgaW5mb3JtYXRpb24uIFNlZSB0aGUgY2dfZWNvbW1fcHJvZHVjdGluZm8gY2xhc3MgZm9yIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBtZXRob2RzLjwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQ+JG9wdGlvbjwvdGQ+DQogICAgICA8dGQ+QW4gb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgb3B0aW9uIGluZm9ybWF0aW9uLiBTZWUgdGhlIGNnX2Vjb21tX3Byb2R1Y3RpbmZvX29wdGlvbiBjbGFzcyBmb3IgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIG1ldGhvZHMuPC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZD4kZGlzY291bnQ8L3RkPg0KICAgICAgPHRkPlRoZSB2YWx1ZSBvZiBhbnkgZGlzY291bnQgYXBwbGllZCB0byB0aGlzIG9wdGlvbiB2aWEgcHJvbW90aW9uIG1hdGNoaW5nLiA8ZW0+KE1heSBiZSBudWxsIG9yIGVtcHR5Lik8L2VtPjwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQ+JHBlcmNlbnQ8L3RkPg0KICAgICAgPHRkPlRoZSBwZXJjZW50YWdlIGRpc2NvdW50IGFwcGxpZWQgdG8gdGhpcyBvcHRpb24gdmlhIHByb21vdGlvbiBtYXRjaGluZy4gPGVtPihNYXkgYmUgbnVsbCBvciBlbXB0eS4pPC9lbT48L3RkPg0KICAgIDwvdHI+DQogIDwvdGJvZHk+DQo8L3RhYmxlPic7CiRsYW5nWydoZWxwX2FjdGlvbiddID0gJ1Nww6ljaWZpZSBsZSBjb21wb3J0ZW1lbnQgZHUgbW9kdWxlLiBMZXMgdmFsZXVycyBwb3NzaWJsZXMgc29udCBcJ2RlZmF1bHRcJywgXCdteWNhcnRcJyBldCBcJ3ZpZXdjYXJ0XCcuPGJyLz48dWw+PGxpPmRlZmF1bHQgOiBhZmZpY2hlIHVuIGZvcm11bGFpcmUgYXZlYyB1biBib3V0b24gZFwnYWpvdXQgYXUgcGFuaWVyIHBlcm1ldHRhbnQgZFwnYWpvdXRlciB1biBwcm9kdWl0IHNww6ljaWZpcXVlIGF1IHBhbmllci4gQ2UgbW9kZSByZXF1aWVydCBxdWUgbGUgcGFyYW3DqHRyZSBcJ3Byb2R1Y3RcJyBzb2l0IHByw6lzZW50LjwvbGk+PGxpPm15Y2FydCA6IGFmZmljaGUgdW4gZm9ybXVsYWlyZSBxdWkgaW5kaXF1ZSBsZSBub21icmUgZFwnYXJ0aWNsZXMgZGFucyBsZSBwYW5pZXIsIGV0IHVuIGJvdXRvbiBcJ01vbiBwYW5pZXJcJy48L2xpPjxsaT52aWV3Y2FydCA6IGFmZmljaGUgdW4gZm9ybXVsYWlyZSBkw6l0YWlsbMOpIGR1IGNvbnRlbnUgZHUgcGFuaWVyLCBpbmNsdWFudCBsZSB0b3RhbCBlbiBjb3VycywgZXQgcGVybWV0dGFudCBkZSBzdXBwcmltZXIgZGVzIGFydGljbGVzIGR1IHBhbmllci48L2xpPjwvdWw+JzsKJGxhbmdbJ2hlbHBfYWRkdG9jYXJ0dGVtcGxhdGUnXSA9ICdTcMOpY2lmaWUgdW4gZ2FiYXJpdCBkaWZmw6lyZW50IGRlIGNlbHVpIHBhciBkw6lmYXV0IHBvdXIgbGUgbW9kZSAiQWpvdXRlciBhdSBwYW5pZXIgKGFkZHRvY2FydCkiLic7CiRsYW5nWydoZWxwX2Rlc3RwYWdlJ10gPSAnQXBwbGljYWJsZSB1bmlxdWVtZW50IMOgIGxcJ2FjdGlvbiBwYXIgZMOpZmF1dCAoZm9ybXVsYWlyZSBBam91dCBhdSBwYW5pZXIpLCBjZSBwYXJhbcOodHJlIHBldXQgw6p0cmUgdXRpbGlzw6kgcG91ciBzcMOpY2lmaWVyIHVuIGFsaWFzIG91IElEIGRlIHBhZ2UgdmVycyBsYXF1ZWxsZSByZWRpcmlnZXIgYXByw6hzIGxcJ2Fqb3V0IGRcJ3VuIGFydGljbGUgYXUgcGFuaWVyLic7CiRsYW5nWydoZWxwX2hpZGVmb3JtJ10gPSAnQXBwbGljYWJsZSB1bmlxdWVtZW50IMOgIGxcJ2FjdGlvbiAidmlld2NhcnQiICh2b2lyIGxlIHBhbmllciksIGNldHRlIG9wdGlvbiBpbmRpcXVlIHNpIGxlIGZvcm11bGFpcmUgZGUgdmlld2NhcnQgZG9pdCDDqnRyZSBhZmZpY2jDqS4nOwokbGFuZ1snaGVscF9teWNhcnR0ZW1wbGF0ZSddID0gJ1Nww6ljaWZpZSB1biBnYWJhcml0IGRpZmbDqXJlbnQgZGUgY2VsdWkgcGFyIGTDqWZhdXQgcG91ciBsZSBtb2RlICJNb24gcGFuaWVyIChteWNhcnQpIi4nOwokbGFuZ1snaGVscF9wcmljZSddID0gJ0FwcGxpY2FibGUgdW5pcXVlbWVudCDDoCBsXCdhY3Rpb24gcGFyIGTDqWZhdXQsIGNlIHBhcmFtw6h0cmUgcGVybWV0IGRcJ291dHJlcGFzc2VyIGxlIHByaXggZGUgYmFzZSBkXCd1biBwcm9kdWl0Lic7CiRsYW5nWydoZWxwX3Byb2R1Y3QnXSA9ICdBcHBsaWNhYmxlIHVuaXF1ZW1lbnQgw6AgbFwnYWN0aW9uIHBhciBkw6lmYXV0LCBjZSBwYXJhbcOodHJlIHNww6ljaWZpZSBxdWVsIHByb2R1aXQgKHBhciBpZCkgZG9pdCDDqnRyZSBham91dMOpIGF1IHBhbmllci4gVHlwaXF1ZW1lbnQsIGRhbnMgbGUgZ2FiYXJpdCBkZSBkw6l0YWlsIGR1IHByb2R1aXQgZHUgbW9kdWxlIFByb2R1aXRzLCBpbCBmYXVkcmEgYWpvdXRlciB7Q2FydDIgc2t1PSRlbnRyeS0+c2t1fSBwb3VyIHBlcm1ldHRyZSBkXCdham91dGVyIGRlcyBhcnRpY2xlcyBhdSBwYW5pZXIgZGVwdWlzIGxlcyBwYWdlcyBkZSBkw6l0YWlsIGRlIHByb2R1aXQuJzsKJGxhbmdbJ2hlbHBfc2t1J10gPSAnQXBwbGljYWJsZSB1bmlxdWVtZW50IMOgIGxcJ2FjdGlvbiBwYXIgZMOpZmF1dCwgY2UgcGFyYW3DqHRyZSBzcMOpY2lmaWUgcXVlbCBwcm9kdWl0IChwYXIgU0tVKSBkb2l0IMOqdHJlIGFqb3V0w6kgYXUgcGFuaWVyLiBJbCBuZSBkb2l0IHBhcyDDqnRyZSB1dGlsaXPDqSBhdmVjIGxlIHBhcmFtw6h0cmUgcHJvZHVjdC4nOwokbGFuZ1snaGVscF9zdXBwbGllciddID0gJ0FwcGxpY2FibGUgdW5pcXVlbWVudCDDoCBsXCdhY3Rpb24gcGFyIGTDqWZhdXQsIGNlIHBhcmFtw6h0cmUgc3DDqWNpZmllIGRlIHF1ZWwgbW9kdWxlIHLDqWN1cMOpcmVyIGxlcyBpbmZvcm1hdGlvbnMuIFBhciBkw6lmYXV0IGlsIHNcJ2FnaXQgZHUgbW9kdWxlICJQcm9kdWN0cyInOwokbGFuZ1snaGVscF92aWV3Y2FydHBhZ2UnXSA9ICdTcMOpY2lmaWUgdW5lIHBhZ2UgZGUgZGVzdGluYXRpb24gcG91ciBsZSBtb2RlICJ2aWV3Y2FydCIuJzsKJGxhbmdbJ2hlbHBfdmlld2NhcnR0ZW1wbGF0ZSddID0gJ1Nww6ljaWZpZSB1biBnYWJhcml0IGRpZmbDqXJlbnQgZGUgY2VsdWkgcGFyIGTDqWZhdXQgw6AgdXRpbGlzZXIgcG91ciBsZSBtb2RlICJ2aWV3Y2FydCIuJzsKJGxhbmdbJ2hlbHBfd2F0Y2hfcW9oJ10gPSAnPHA+U2kgY2V0dGUgb3B0aW9uIGVzdCBhY3RpdsOpZSwgbGVzIHV0aWxpc2F0ZXVycyBuZSBwb3Vycm9udCBwYXMgYWpvdXRlciBwbHVzIGRcJ2FydGljbGVzIHF1XCdpbCBuXCd5IGVuIGEgZW4gc3RvY2suPC9wPg0KPHA+PHN0cm9uZz5Ob3RlIDo8L3N0cm9uZz4gQ2Ugc3lzdMOobWUgblwnZXN0IHBhcyBpbmZhaWxsaWJsZS48L3A+DQo8dWw+DQogIDxsaT5MYSBxdWFudGl0w6kgZGlzcG9uaWJsZSBuXCdlc3QgcGFzIGFqdXN0w6llIHRhbnQgcXVcJ3VuZSBjb21tYW5kZSBuXCdlc3QgcGFzIHRlcm1pbsOpZS4gSWwgZXN0IGNlcGVuZGFudCBwb3NzaWJsZSBxdVwnaWwgeSBhaXQgZGVzIHF1YW50aXTDqXMgbsOpZ2F0aXZlcyAoc2l0dWF0aW9ucyBkZSBjb21tYW5kZSBlbiBzdXNwZW5zKSBwb3VyIGRlcyBhcnRpY2xlcyBwb3B1bGFpcmVzIHF1YW5kIGRlIG5vbWJyZXV4IGFjaGV0ZXVycyBjb21tYW5kZW50IGxlIG3Dqm1lIGFydGljbGUgZHVyYW50IGxhIG3Dqm1lIHDDqXJpb2RlLjwvbGk+DQogIDxsaT5MYSBxdWFudGl0w6kgZW4gc3RvY2sgblwnZXN0IFBBUyBhdWdtZW50w6llIHRvdXRlcyBsZXMgZm9pcyBxdVwndW5lIGNvbW1hbmRlIGVzdCBwYXNzw6llIGRlcHVpcyBsZSBtb2R1bGUgQ29tbWFuZGUgKG9yZGVycykuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2luZm9fcHJvZHVjdHN1bW1hcnl0ZW1wbGF0ZSddID0gJ0NlIGdhYmFyaXQgZXN0IHV0aWxpc8OpIHBvdXIgZm9ybWF0ZXIgbFwnYWZmaWNoYWdlIHBvdXIgY2hhcXVlIHLDqXN1bcOpIGRlIHByb2R1aXQgZGFucyBsZSBmb3JtdWxhaXJlIFZvaXIgbGUgcGFuaWVyICh2aWV3Y2FydCkuIElsIHBlcm1ldCBsYSBwZXJzb25uYWxpc2F0aW9uIGRlIGxhIGTDqWZpbml0aW9uIGR1IHByb2R1aXQgYmFzw6kgc3VyIGNlcyBhdHRyaWJ1dHMsIG5vbSBkZSBwcm9kdWl0IGV0IHByaXguJzsKJGxhbmdbJ2luZm9zdWJ0b3RhbCddID0gJ0NlY2kgZXN0IHVuIHNvdXMtdG90YWwuIExlcyB0YXhlcyBldCBsZXMgZnJhaXMgZGUgdHJhbnNwb3J0cyBzb250IGNhbGN1bMOpcyBhdSBtb21lbnQgZGUgbGEgZmluYWxpc2F0aW9uIGRlIGxhIGNvbW1hbmRlLic7CiRsYW5nWydsYmxfcHJvZHVjdHN1bW1hcnl0ZW1wbGF0ZSddID0gJ0dhYmFyaXQgZGUgc29tbWFpcmUgZGUgcHJvZHVpdCc7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ1VuIG1vZHVsZSBkZSBwYW5pZXIgc2ltcGxlJzsKJGxhbmdbJ215Y2FydGZvcm1fdGVtcGxhdGVzJ10gPSAnR2FiYXJpdHMgZHUgZm9ybXVsYWlyZSBNb24gcGFuaWVyJzsKJGxhbmdbJ215X2NhcnQnXSA9ICdNb24gcGFuaWVyJzsKJGxhbmdbJ25vJ10gPSAnTm9uJzsKJGxhbmdbJ25vbmUnXSA9ICdBdWN1bic7CiRsYW5nWydudW1iZXInXSA9ICdOb21icmUnOwokbGFuZ1snbnVtYmVyX29mX2l0ZW1zJ10gPSAnTm9tYnJlIGRcJ2FydGljbGVzJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTGUgbW9kdWxlIFBhbmllciBhIGJpZW4gw6l0w6kgaW5zdGFsbMOpJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdMZSBtb2R1bGUgUGFuaWVyIGEgw6l0w6kgZMOpc2luc3RhbGzDqSc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1Byw6lmw6lyZW5jZXMnOwokbGFuZ1sncHJpY2UnXSA9ICdQcml4JzsKJGxhbmdbJ3Byb2R1Y3RfaWQnXSA9ICdJZCBwcm9kdWl0JzsKJGxhbmdbJ3Byb2R1Y3Rfc3VtbWFyeSddID0gJ0dhYmFyaXQgZGUgc29tbWFpcmUgZGUgcHJvZHVpdCc7CiRsYW5nWydwcm9tcHRfb3B0aW9uX3RlbXBsYXRlJ10gPSAnR2FiYXJpdCBkXCdvcHRpb24gZFwnYWpvdXQgYXUgcGFuaWVyJzsKJGxhbmdbJ3Byb21wdF93YXRjaF9xb2gnXSA9ICdTdXJ2ZWlsbGVyIGxhIHF1YW50aXTDqSBlbiBzdG9jayc7CiRsYW5nWydxdWFudGl0eSddID0gJ1F1YW50aXTDqSc7CiRsYW5nWydyZWFsbHlfdW5pbnN0YWxsJ10gPSAnw4p0ZXMtdm91cyBzw7tyIGRlIHZvdWxvaXIgZMOpc2luc3RhbGxlciBjZSBtb2R1bGUgPyc7CiRsYW5nWydyZW1vdmUnXSA9ICdTdXBwcmltZXInOwokbGFuZ1snc2t1J10gPSAnVUdTJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ0Vudm95ZXInOwokbGFuZ1snc3VidG90YWwnXSA9ICdTb3VzLXRvdGFsJzsKJGxhbmdbJ3N1bW1hcnknXSA9ICdTb21tYWlyZSc7CiRsYW5nWydzaGlwcGluZyddID0gJ0xpdnJhaXNvbic7CiRsYW5nWydzaGlwcGluZ19tb2R1bGUnXSA9ICdNb2R1bGUgZGUgbGl2cmFpc29uJzsKJGxhbmdbJ3RvdGFsJ10gPSAnVG90YWwmbmJzcDsnOwokbGFuZ1sndG90YWxfd2VpZ2h0J10gPSAnUG9pZHMgdG90YWwnOwokbGFuZ1sndHBsdHlwZV9DYXJ0MiddID0gJ1BhbmllcjInOwokbGFuZ1sndHBsdHlwZV9BZGRfdG9fQ2FydF9Gb3JtJ10gPSAnRm9ybXVsYWlyZSBBam91dGVyIGF1IHBhbmllcic7CiRsYW5nWyd0cGx0eXBlX015X0NhcnRfRm9ybSddID0gJ0Zvcm11bGFpcmUgTW9uIHBhbmllcic7CiRsYW5nWyd0cGx0eXBlX1ZpZXdfQ2FydF9Gb3JtJ10gPSAnRm9ybXVsYWlyZSBWb2lyIGxlIHBhbmllcic7CiRsYW5nWyd1bml0X2Rpc2NvdW50J10gPSAnUmVtaXNlIHVuaXRhaXJlJzsKJGxhbmdbJ3VuaXRfcHJpY2UnXSA9ICdQcml4IHVuaXRhaXJlJzsKJGxhbmdbJ3ZpZXdjYXJ0Zm9ybV90ZW1wbGF0ZXMnXSA9ICdHYWJhcml0cyBkdSBmb3JtdWxhaXJlIFZpZXdDYXJ0JzsKJGxhbmdbJ3dhcm5fZGVmYXVsdF90ZW1wbGF0ZXMnXSA9ICdDZSBmb3JtdWxhaXJlIGNvbnRyw7RsZSBjZSBxdWkgZXN0IGFmZmljaMOpIGF1IGTDqXBhcnQgcXVhbmQgdm91cyBjbGlxdWV6IHN1ciAiQWpvdXRlciB1biBub3V2ZWF1IGdhYmFyaXQiIGRhbnMgbFwnb25nbGV0IGNvcnJlc3BvbmRhbnQuIExhIG1vZGlmaWNhdGlvbiBkdSBjb250ZW51IGRhbnMgY2V0dGUgem9uZSBkXCfDqWRpdGlvbiBuXCdhdXJhIHBhcyBkXCdlZmZldCBpbW3DqWRpYXQgc3VyIHZvdHJlIHNpdGUuJzsKJGxhbmdbJ3dlaWdodCddID0gJ1BvaWRzJzsKJGxhbmdbJ3llcyddID0gJ091aSc7CiRsYW5nWyd5b3VzYXZlJ10gPSAnVm91cyBzYXV2ZWdhcmRleic7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZF90b19jYXJ0J10gPSAnTGVnZyB0aWwgbWluIGhhbmRsZWt1cnYnOwokbGFuZ1snYW1vdW50J10gPSAnTWVuZ2RlJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1NsZXR0JzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnQmVza3JpdmVsc2UnOwokbGFuZ1snZW1wdHlfY2FydCddID0gJ0ZqZXJuIGFsbGUgdmFyZXInOwokbGFuZ1snZXJyb3JfY2FydHBvbGljeV9hZGRpdGVtJ10gPSAnS2FuIGlra2UgbGVnZ2UgZGVubmUgdmFyZW4gdGlsIGhhbmxkZWt1cnZlbi4gU2VlIG5ldHRzdGVkZXRzIGhhbmRsZXZvZ25yZWdsZXInOwokbGFuZ1snZnJlZV9wcm9kdWN0J10gPSAnRnJpIHZhcmUnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnQ2FydDInOwokbGFuZ1snaW5mb3N1YnRvdGFsJ10gPSAnRGV0dGUgZXIgZW4gc3ViLXRvdGFsLiBBdmdpZnRlciBvZyBmb3JzZW5kbGVzZXNrb3N0bmFkZXIgYmxpciBrYWxrdWxlcnQgdmVkIHV0c2pla2tpbmcnOwokbGFuZ1snbXlfY2FydCddID0gJ01pbiBoYW5kbGVrdXJ2JzsKJGxhbmdbJ25vJ10gPSAnTmVpJzsKJGxhbmdbJ25vbmUnXSA9ICdJbmdlbic7CiRsYW5nWydudW1iZXInXSA9ICdBbnRhbGwnOwokbGFuZ1snbnVtYmVyX29mX2l0ZW1zJ10gPSAnQW50YWxsIHZhcmVyJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnUHJlZmVyYW5zZXInOwokbGFuZ1sncHJpY2UnXSA9ICdQcmlzJzsKJGxhbmdbJ3Byb2R1Y3RfaWQnXSA9ICdQcm9kdWt0IElEJzsKJGxhbmdbJ3F1YW50aXR5J10gPSAnTWVuZ2RlJzsKJGxhbmdbJ3JlbW92ZSddID0gJ0ZqZXJuJzsKJGxhbmdbJ3NrdSddID0gJ1NLVSc7CiRsYW5nWydzdWJtaXQnXSA9ICdVdGbDuHInOwokbGFuZ1snc3VidG90YWwnXSA9ICdTdWItdG90YWwnOwokbGFuZ1snc3VtbWFyeSddID0gJ1NhbW1lbmRyYWcnOwokbGFuZ1snc2hpcHBpbmcnXSA9ICdGb3JzZW5kZWxzZSc7CiRsYW5nWydzaGlwcGluZ19tb2R1bGUnXSA9ICdGb3JzZW5kZWxzZXNtb2R1bCc7CiRsYW5nWyd0b3RhbCddID0gJ1RvdGFsJzsKJGxhbmdbJ3RvdGFsX3dlaWdodCddID0gJ1RvdGFsIHZla3QnOwokbGFuZ1sndW5pdF9wcmljZSddID0gJ0VuaGV0c3ByaXMnOwokbGFuZ1snd2VpZ2h0J10gPSAnVmVrdCc7CiRsYW5nWyd5ZXMnXSA9ICdKYSc7CiRsYW5nWyd5b3VzYXZlJ10gPSAnRHUgc3BhcmVyJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZGVkaXRfYWRkdG9jYXJ0X3RlbXBsYXRlJ10gPSAnVm9lZyB0b2UvV2lqemlnIEFkZFRvQ2FydCBGb3JtdWxpZXJzamFibG9vbic7CiRsYW5nWydhZGRlZGl0X215Y2FydGZvcm1fdGVtcGxhdGUnXSA9ICdWb2VnIHRvZS9XaWp6aWcgTXlDYXJ0IEZvcm11bGllcnNqYWJsb29uJzsKJGxhbmdbJ2FkZGVkaXRfdmlld2NhcnRmb3JtX3RlbXBsYXRlJ10gPSAnVm9lZyB0b2UvV2lqemlnIFZpZXdjYXJ0IEZvcm11bGllcnNqYWJsb29uJzsKJGxhbmdbJ2FkZHRvY2FydF9kZXN0cGFnZSddID0gJ1RlIG9wZW5lbiBwYWdpbmEgbmEgQ2FydCB0b2V2b2VnaW5nJzsKJGxhbmdbJ2FkZHRvY2FydF90ZW1wbGF0ZXMnXSA9ICdBZGRUb0NhcnQgU2phYmxvb24nOwokbGFuZ1snYWRkX3RvX2NhcnQnXSA9ICdWb2VnIHRvZSBhYW4gTXkgQ2FydCc7CiRsYW5nWydhbW91bnQnXSA9ICdCZWRyYWcnOwokbGFuZ1snZGVmYXVsdF9hZGR0b2NhcnRfdGVtcGxhdGUnXSA9ICdTdGFuZGFhcmQgQWRkVG9DYXJ0IFNqYWJsb29uJzsKJGxhbmdbJ2RlZmF1bHRfbXljYXJ0Zm9ybV90ZW1wbGF0ZSddID0gJ1N0YW5kYWFyZCBNeUNhcnQgZm9ybSBTamFibG9vbic7CiRsYW5nWydkZWZhdWx0X3ZpZXdjYXJ0Zm9ybV90ZW1wbGF0ZSddID0gJ1N0YW5kYWFyZCBWaWV3Y2FydCBmb3JtIFNqYWJsb29uJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVzJ10gPSAnU3RhbmRhYXJkIFNqYWJsb25lbic7CiRsYW5nWydkZWxldGUnXSA9ICdWZXJ3aWpkZXInOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdPbXNjaHJpanZpbmcnOwokbGFuZ1snZW1wdHlfY2FydCddID0gJ1ZlcndpamRlciBBbGxlIEl0ZW1zJzsKJGxhbmdbJ2Vycm9yX2NhcnRwb2xpY3lfYWRkaXRlbSddID0gJ0thbiBkaXQgYXJ0aWtlbCBuaWV0IHRvZXZvZWdlbiBhYW4gZGUgd2lua2Vsd2FnZW4uIEJla2lqayBkZSB3ZWJzaXRlIHZvb3J3YWFyZGVuJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJhbSddID0gJ0luZ2VnZXZlbiBwYXJhbWV0ZXIgaGVlZnQgZWVuIG9uZ2VsZGlnZSB3YWFyZGU6ICVzJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0VlbiBiZW5vZGlnZGUgcGFyYW1ldGVyIG1pc3Q6ICVzJzsKJGxhbmdbJ2Vycm9yX25vc3VjaHByb2R1Y3QnXSA9ICdHZWVuIGluZm9ybWF0aWUgZ2V2b25kZW4gdm9vciBwcm9kdWN0OiAlcyc7CiRsYW5nWydmcmVlX3Byb2R1Y3QnXSA9ICdHcmF0aXMgcHJvZHVjdCc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdDYXJ0IDInOwokbGFuZ1snaGVscF9vcHRpb25fdGVtcGxhdGUnXSA9ICc8aDM+T3B0aW9uIFRlbXBsYXRlOjwvaDM+DQo8cD5UaGlzIHRlbXBsYXRlIGlzIHVzZWQgZm9yIGdlbmVyYXRpbmcgdGhlIGRyb3Bkb3duIGxpc3QgaW4gdGhlIGFkZC10by1jYXJ0IGZvcm0gZm9yIGl0ZW1zIDxlbT4odXN1YWxseSBwcm9kdWN0cyk8L2VtPiBUaGF0IGNvbnRhaW4gb3B0aW9ucy4gIEl0IGdlbmVyYXRlcyBhIHNpbXBsZSBvbmUgbGluZSBkaXNwbGF5LjwvcD4NCjxwPkF2YWlsYWJsZSB2YXJpYWJsZXMgaW5jbHVkZTo8L3A+DQo8dGFibGUgYm9yZGVyPSZxdW90OzEmcXVvdDsgY2VsbHBhZGRpbmc9JnF1b3Q7MyZxdW90OyBzdHlsZT0mcXVvdDttYXJnaW4tdG9wOiAwLjVlbTsmcXVvdDs+DQogIDx0aGVhZD4NCiAgICA8dHI+DQogICAgICA8dGg+TmFtZTo8L3RoPg0KICAgICAgPHRoPkRlc2NyaXB0aW9uOjwvdGg+DQogICAgPC90cj4NCiAgPC90aGVhZD4NCiAgPHRib2R5Pg0KICAgIDx0cj4NCiAgICAgIDx0ZD4kY3VycmVuY3lfc3ltYm9sPC90ZD4NCiAgICAgIDx0ZD5UaGUgY3VycmVuY3kgc3ltYm9sLiA8ZW0+KGkuZTogJCk8L2VtPjwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQ+JGN1cnJlbmN5X2NvZGU8L3RkPg0KICAgICAgPHRkPlRoZSBjdXJyZW5jeSBjb2RlLiA8ZW0+KGkuZTogVVNEKTwvZW0+PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZD4kcHJvZHVjdDwvdGQ+DQogICAgICA8dGQ+QW4gb2JqZWN0IHJlcHJlc2VudGluZyBwcm9kdWN0IGluZm9ybWF0aW9uLiBTZWUgdGhlIGNnX2Vjb21tX3Byb2R1Y3RpbmZvIGNsYXNzIGZvciB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbWV0aG9kcy48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkPiRvcHRpb248L3RkPg0KICAgICAgPHRkPkFuIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG9wdGlvbiBpbmZvcm1hdGlvbi4gU2VlIHRoZSBjZ19lY29tbV9wcm9kdWN0aW5mb19vcHRpb24gY2xhc3MgZm9yIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBtZXRob2RzLjwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQ+JGRpc2NvdW50PC90ZD4NCiAgICAgIDx0ZD5UaGUgdmFsdWUgb2YgYW55IGRpc2NvdW50IGFwcGxpZWQgdG8gdGhpcyBvcHRpb24gdmlhIHByb21vdGlvbiBtYXRjaGluZy4gPGVtPihNYXkgYmUgbnVsbCBvciBlbXB0eS4pPC9lbT48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkPiRwZXJjZW50PC90ZD4NCiAgICAgIDx0ZD5UaGUgcGVyY2VudGFnZSBkaXNjb3VudCBhcHBsaWVkIHRvIHRoaXMgb3B0aW9uIHZpYSBwcm9tb3Rpb24gbWF0Y2hpbmcuIDxlbT4oTWF5IGJlIG51bGwgb3IgZW1wdHkuKTwvZW0+PC90ZD4NCiAgICA8L3RyPg0KICA8L3Rib2R5Pg0KPC90YWJsZT4nOwokbGFuZ1snaGVscF9hY3Rpb24nXSA9ICdTcGVjaWZpZXMgdGhlIGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGFyZSAmIzAzOTtkZWZhdWx0JiMwMzk7LCYjMDM5O215Y2FydCYjMDM5OywgYW5kICYjMDM5O3ZpZXdjYXJ0JiMwMzk7Ljxici8+PHVsPjxsaT5kZWZhdWx0OiBkaXNwbGF5cyBhIGZvcm0gd2l0aCBhbiAmIzAzOTthZGQgdG8gY2FydCYjMDM5OyBidXR0b24gdG8gYWxsb3cgYWRkaW5nIGEgc3BlY2lmaWMgcHJvZHVjdCB0byB0aGUgY2FydC4gIFRoaXMgbW9kZSByZXF1aXJlcyB0aGUgJiMwMzk7cHJvZHVjdCYjMDM5OyBwYXJhbWV0ZXIgYmUgc3VwcGxpZWQuPC9saT48bGk+bXljYXJ0OiBEaXNwbGF5cyBhIGZvcm0gdGhhdCBkaXNwbGF5cyB0aGUgbnVtYmVyIG9mIGl0ZW1zIGluIHRoZSBjYXJ0LCBhbmQgYSAmIzAzOTtjaGVja291dCYjMDM5OyBidXR0b24uPC9saT48bGk+dmlld2NhcnQ6IERpc3BsYXlzIGEgZGV0YWlsZWQgZm9ybSBvZiB0aGUgY29udGVudHMgb2YgdGhlIGNhcnQsIGluY2x1ZGluZyBhIGN1cnJlbnQgdG90YWwsIGFuZCBhbGxvd3MgZGVsZXRpbmcgaXRlbXMgZnJvbSB0aGUgY2FydC48L2xpPjwvdWw+JzsKJGxhbmdbJ2hlbHBfYWRkdG9jYXJ0dGVtcGxhdGUnXSA9ICdHZWVmdCBlZW4gbmlldC1zdGFuZGFhcmQgc2phYmxvb24gdm9vciBnZWJydWlrIGJpaiBkZSAmIzAzOTthZGR0b2NhcnQmIzAzOTsgbW9kdXMuJzsKJGxhbmdbJ2hlbHBfZGVzdHBhZ2UnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlICYjMDM5O2RlZmF1bHQmIzAzOTsgKGFkZCB0byBjYXJ0IGZvcm0pIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHBhZ2UgYWxpYXMgb3IgaWQgdG8ganVtcCB0byBhZnRlciB0aGUgaXRlbSBoYXMgYmVlbiBhZGRlZCB0byB0aGUgY2FydCc7CiRsYW5nWydoZWxwX2hpZGVmb3JtJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSAmIzAzOTt2aWV3Y2FydCYjMDM5OyBhY3Rpb24sIHRoaXMgZmxhZyBpbmRpY2F0ZXMgd2V0aGVyIHRoZSB2aWV3Y2FydCBmb3JtIHNob3VsZCBiZSBkaXNwbGF5ZWQnOwokbGFuZ1snaGVscF9teWNhcnR0ZW1wbGF0ZSddID0gJ1NwZWNpZmllcyBhIG5vbiBkZWZhdWx0IHRlbXBsYXRlIHRvIHVzZSBmb3IgdGhlICAmIzAzOTtteWNhcnQmIzAzOTsgbW9kZS4nOwokbGFuZ1snaGVscF9wcm9kdWN0J10gPSAnQXBwbGljYWJsZSBvbmx5IGZvciB0aGUgZGVmYXVsdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB3aGljaCBwcm9kdWN0IChieSBpZCkgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBjYXJ0LiAgVHlwaWNhbGx5LCBpbiB0aGUgcHJvZHVjdCBkZXRhaWwgdGVtcGxhdGUgb2YgdGhlIHByb2R1Y3RzIG1vZHVsZSwgeW91IHdvdWxkIGFkZCB7Q2FydDIgc2t1PSRlbnRyeS0+c2t1fSB0byBhbGxvdyBhZGRpbmcgaXRlbXMgdG8gdGhlIGNhcnQgZnJvbSBwcm9kdWN0IGRldGFpbCBwYWdlcy4nOwokbGFuZ1snaGVscF9zdXBwbGllciddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB3aGljaCBzdXBwbGllciBtb2R1bGUgdG8gcXVlcnkgaW5mb3JtYXRpb24gdG8uICBCeSBkZWZhdWx0IHRoaXMgaXMgJnF1b3Q7UHJvZHVjdHMmcXVvdDsnOwokbGFuZ1snaGVscF92aWV3Y2FydHBhZ2UnXSA9ICdTcGVjaWZ5IGEgZGVzdGluYXRpb24gcGFnZSBmb3IgdGhlICYjMDM5O3ZpZXdjYXJ0JiMwMzk7IG1vZGUuJzsKJGxhbmdbJ2hlbHBfdmlld2NhcnR0ZW1wbGF0ZSddID0gJ1NwZWNpZmllcyBhIG5vbiBkZWZhdWx0IHRlbXBsYXRlIHRvIHVzZSBmb3IgdGhlICYjMDM5O3ZpZXdjYXJ0JiMwMzk7IG1vZGUuJzsKJGxhbmdbJ2luZm9fcHJvZHVjdHN1bW1hcnl0ZW1wbGF0ZSddID0gJ1RoaXMgdGVtcGxhdGUgaXMgdXNlZCB0byBmb3JtYXQgdGhlIG91dHB1dCB1c2VkIGZvciBlYWNoIHByb2R1Y3Qgc3VtbWFyeSBpbiB0aGUgdmlldyBjYXJ0IGZvcm0uICBJdCBhbGxvd3MgY3VzdG9taXppbmcgdGhlIHByb2R1Y3QgbGFiZWwgYmFzZWQgb24gdGhlIGF0dHJpYnV0ZXMsIHByb2R1Y3QgbmFtZSwgYW5kIHByaWNlLic7CiRsYW5nWydpbmZvc3VidG90YWwnXSA9ICdEaXQgaXMgZWVuIHN1YnRvdGFhbC4gQmVsYXN0aW5nZW4gZW4gdmVyemVuZGtvc3RlbiB3b3JkZW4gYmVyZWtlbmQgYWxzIHUgZ2FhdCBhZnJla2VuZW4nOwokbGFuZ1snbGJsX3Byb2R1Y3RzdW1tYXJ5dGVtcGxhdGUnXSA9ICdQcm9kdWN0IFNhbWVudmF0dGluZyBTamFibG9vbic7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0VlbiBlZW52b3VkaWdlIENhcnQgTW9kdWxlJzsKJGxhbmdbJ215Y2FydGZvcm1fdGVtcGxhdGVzJ10gPSAnTXlDYXJ0IEZvcm11bGllcnNqYWJsb25lbic7CiRsYW5nWydteV9jYXJ0J10gPSAnTWlqbiBXaW5rZWx3YWdlbic7CiRsYW5nWydubyddID0gJ05lZSc7CiRsYW5nWydub25lJ10gPSAnR2Vlbic7CiRsYW5nWydudW1iZXInXSA9ICdBYW50YWwnOwokbGFuZ1snbnVtYmVyX29mX2l0ZW1zJ10gPSAnQWFudGFsIHByb2R1Y3Rlbic7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0RlIENhcnQyIG1vZHVsZSBpcyBnZWluc3RhbGxlZXJkJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdEZSBDYXJ0MiBtb2R1bGUgaXMgZ2VkZSZpdW1sO25zdGFsbGVlcmQnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdJbnN0ZWxsaW5nZW4nOwokbGFuZ1sncHJpY2UnXSA9ICdQcmlqcyc7CiRsYW5nWydwcm9kdWN0X2lkJ10gPSAnUHJvZHVjdCBJZCc7CiRsYW5nWydwcm9kdWN0X3N1bW1hcnknXSA9ICdQcm9kdWN0IFNhbWVudmF0dGluZyBTamFibG9vbic7CiRsYW5nWydwcm9tcHRfb3B0aW9uX3RlbXBsYXRlJ10gPSAnQWRkIHRvIENhcnQgT3B0aW9uIFRlbXBsYXRlJzsKJGxhbmdbJ3F1YW50aXR5J10gPSAnSG9ldmVlbGhlaWQnOwokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddID0gJ1dlZXQgdSB6ZWtlciBkYXQgdSBkZXplIG1vZHVsZSB3aWx0IGRlJml1bWw7bnN0YWxsZXJlbj8nOwokbGFuZ1sncmVtb3ZlJ10gPSAnVmVyd2lqZGVyJzsKJGxhbmdbJ3NrdSddID0gJ1NLVSAnOwokbGFuZ1snc3VibWl0J10gPSAnVmVyc3R1cmVuJzsKJGxhbmdbJ3N1YnRvdGFsJ10gPSAnU3VidG90YWFsJzsKJGxhbmdbJ3N1bW1hcnknXSA9ICdTYW1lbnZhdHRpbmcnOwokbGFuZ1snc2hpcHBpbmcnXSA9ICdWZXJ6ZW5kaW5nJzsKJGxhbmdbJ3NoaXBwaW5nX21vZHVsZSddID0gJ1ZlcnplbmRpbmcgTW9kdWxlJzsKJGxhbmdbJ3RvdGFsJ10gPSAnVG90YWFsJzsKJGxhbmdbJ3RvdGFsX3dlaWdodCddID0gJ1RvdGFhbCBHZXdpY2h0JzsKJGxhbmdbJ3VuaXRfcHJpY2UnXSA9ICdFZW5oZWlkc3ByaWpzJzsKJGxhbmdbJ3ZpZXdjYXJ0Zm9ybV90ZW1wbGF0ZXMnXSA9ICdWaWV3Y2FydCBGb3JtdWxpZXJzamFibG9uZW4nOwokbGFuZ1snd2Fybl9kZWZhdWx0X3RlbXBsYXRlcyddID0gJ1RoaXMgZm9ybSBjb250cm9scyB3aGF0IGlzIGRpc3BsYXllZCBpbml0aWFsbHkgd2hlbiB5b3UgY2xpY2sgJiMwMzk7QWRkIE5ldyBUZW1wbGF0ZSYjMDM5OyBpbiB0aGUgYXBwcm9wcmlhdGUgdGFiLiAgQWRqdXN0aW5nIHRoZSBjb250ZW50cyBpbiB0aGlzIGVkaXQgYXJlYSB3aWxsIGhhdmUgbm8gaW1tZWRpY2F0ZSBlZmZlY3Qgb24geW91ciB3ZWJzaXRlLic7CiRsYW5nWyd3ZWlnaHQnXSA9ICdHZXdpY2h0JzsKJGxhbmdbJ3llcyddID0gJ0phJzsKJGxhbmdbJ3lvdXNhdmUnXSA9ICdVIGJlc3BhYXJ0JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuNjc4NzMzMDM0LjEzNzgzNjk2NzkuMTM3ODM2OTY3OS4xMzc4MzY5Njc5LjEnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMzc4MzY5Njc5LjEuMS51dG1jY249KGRpcmVjdCl8dXRtY3NyPShkaXJlY3QpfHV0bWNtZD0obm9uZSknOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.cart2_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmZpbmFsIGNsYXNzIGNhcnQyX3V0aWxzCnsKICBwcml2YXRlIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkge30KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfb3B0aW9uX3RleHQoY2dfZWNvbW1fcHJvZHVjdGluZm8gJHByb2R1Y3QsY2dfZWNvbW1fcHJvZHVjdGluZm9fb3B0aW9uICRvcHQsCgkJCQkJICAkcGVyY2VudCwkZGlzY291bnQsJHByaWNlKQogIHsKICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NhcnQyJyk7CiAgICAkc21hcnR5ID0gXENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldFNtYXJ0eSgpOwogICAgJHRwbCA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ29wdGlvbl90ZW1wbGF0ZScpOwogICAgaWYoICR0cGwgPT0gJycgKSByZXR1cm47CgogICAgJHNtYXJ0eS0+YXNzaWduKCRtb2QtPkdldE5hbWUoKSwkbW9kKTsKICAgICRzbWFydHktPmFzc2lnbignbW9kJywkbW9kKTsKICAgICRzbWFydHktPmFzc2lnbigncGVyY2VudCcsJHBlcmNlbnQpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdkaXNjb3VudCcsJGRpc2NvdW50KTsKICAgICRzbWFydHktPmFzc2lnbigncHJpY2UnLCRwcmljZSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3Byb2R1Y3QnLCRwcm9kdWN0KTsKICAgICRzbWFydHktPmFzc2lnbignb3B0Jywkb3B0KTsKICAgICRzbWFydHktPmFzc2lnbignY3VycmVuY3lfc3ltYm9sJyxjZ19lY29tbTo6Z2V0X2N1cnJlbmN5X3N5bWJvbCgpKTsKICAgICRzbWFydHktPmFzc2lnbignY3VycmVuY3lfY29kZScsY2dfZWNvbW06OmdldF9jdXJyZW5jeV9jb2RlKCkpOwogICAgJHNtYXJ0eS0+YXNzaWduKCd3ZWlnaHRfdW5pdHMnLGNnX2Vjb21tOjpnZXRfd2VpZ2h0X3VuaXRzKCkpOwoKICAgIHJldHVybiAkc21hcnR5LT5mZXRjaCgnc3RyaW5nOicuJHRwbCk7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGFkanVzdF9vZmZlcigkc3VwcGxpZXJfbW9kLGNnX2Vjb21tX3Byb21vdGlvbl9tYXRjaCAkb2ZmZXIpCiAgewogICAgLy8gdGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgaW4gdGhlIG1hdGNoIG9iamVjdC4KCiAgICAvLyBpZGVhbGx5IHN1cHBsaWVyIG1vZCBzaG91bGQgYmUgaW4gdGhlIG9mZmVyLgogICAgJG5ld29mZmVyID0gbmV3IHN0ZENsYXNzOwogICAgJG5ld29mZmVyLT5kaXNjb3VudCA9IG51bGw7CiAgICAkbmV3b2ZmZXItPnBlcmNlbnQgPSBudWxsOwogICAgJG5ld29mZmVyLT5mcmVlX3Byb2R1Y3RpZCA9IG51bGw7CiAgICAkbmV3b2ZmZXItPmZyZWVfcHJvZHVjdHNrdSA9IG51bGw7CiAgICAkbmV3b2ZmZXItPnBhcmVudCA9ICRvZmZlci0+Z2V0X2NhcnRfaWR4KCk7CiAgICAkbmV3b2ZmZXItPnByb21vX2lkID0gJG9mZmVyLT5nZXRfcHJvbW8oKTsKCiAgICBzd2l0Y2goICRvZmZlci0+Z2V0X3R5cGUoKSApIHsKICAgIGNhc2UgJG9mZmVyOjpPRkZFUl9ESVNDT1VOVDoKICAgICAgLy8gc3VidHJhY3QgdGhlIGRpc2NvdW50IGZyb21lIHByb2R1Y3QgdmFsdWUuLi4gbWF5YmUuCiAgICAgICRkaXNjb3VudCA9IChmbG9hdCkkb2ZmZXItPmdldF92YWwoKTsKICAgICAgaWYoICRkaXNjb3VudCA+IDAgKSAkZGlzY291bnQgKj0gLTE7CiAgICAgICRuZXdvZmZlci0+ZGlzY291bnQgPSAkZGlzY291bnQ7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJG9mZmVyOjpPRkZFUl9QRVJDRU5UOjsKICAgICAgJHBlcmNlbnQgPSAoZmxvYXQpJG9mZmVyLT5nZXRfdmFsKCk7CiAgICAgIGlmKCAkcGVyY2VudCA8IDAgKSAkcGVyY2VudCAqPSAtMTsKICAgICAgaWYoICRwZXJjZW50ID4gMSApICRwZXJjZW50IC89IDEwMC4wOwogICAgICAkbmV3b2ZmZXItPnBlcmNlbnQgPSAkcGVyY2VudDsKICAgICAgYnJlYWs7CgogICAgY2FzZSAkb2ZmZXI6Ok9GRkVSX1BST0RVQ1RJRDoKICAgICAgJG5ld29mZmVyLT5mcmVlX3Byb2R1Y3RpZCA9ICRvZmZlci0+Z2V0X3ZhbCgpOwogICAgICBicmVhazsKCiAgICBjYXNlICRvZmZlcjo6T0ZGRVJfUFJPRFVDVFNLVToKICAgICAgLy8gdGVzdCB0aGUgdmFsdWUgdG8gc2VlIGlmIGl0IG1hdGNoZXMgYSBzaW5nbGUgc2t1LgogICAgICAkdG1wID0gZXhwbG9kZSgnLCcsJG9mZmVyLT5nZXRfdmFsKCkpOwogICAgICBpZiggY291bnQoJHRtcCkgPT0gMSApIHsKCS8vIGlmIHNrdSBkb2VzIG5vdCBjb250YWluIHdpbGRjaGFyZCBjaGFycy4KCSR0bXBbMF0gPSB0cmltKCR0bXBbMF0pOwoJaWYoIHN0cnBvcygkdG1wWzBdLCcqJykgPT09IEZBTFNFICYmIHN0cnBvcygkdG1wWzBdLCdbJykgPT09IEZBTFNFICAmJiBzdHJwb3MoJHRtcFswXSwnPycpID09IEZBTFNFICkgewoJICAvLyBpZiB3ZSBjYW4gZ2V0IHRoaXMgcHJvZHVjdCBieSBza3UsIHRoZW4gaXQncyB2YWxpZC4KCSAgJHRwcm9kdWN0ID0gY2dfZWNvbW06OmdldF9wcm9kdWN0X2J5X3NrdSgkc3VwcGxpZXJfbW9kLCR0bXBbMF0pOwoJICBpZiggaXNfb2JqZWN0KCR0cHJvZHVjdCkgKSB7CgkgICAgLy8kbXlfb2ZmZXItPmZyZWVfcHJvZHVjdHNrdSA9ICRvZmZlci0+Z2V0X3ZhbCgpOyBiYWQKCSAgICAkbmV3b2ZmZXItPmZyZWVfcHJvZHVjdHNrdSA9ICRvZmZlci0+Z2V0X3ZhbCgpOwoJICB9CgkgIGVsc2UgewoJICAgIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ29mZmVyIHNheXMgc2t1ICcuJG9mZmVyLT5nZXRfdmFsKCkuJyBpcyBmcmVlLCBidXQgd2UgY291bGQgbm90IGZpbmQgaXQnKTsKCSAgfQoJfQogICAgICB9CiAgICAgIGJyZWFrOwoKICAgIGRlZmF1bHQ6CiAgICAgIC8vIGlnbm9yZSBhbnl0aGluZyBlbHNlCiAgICB9CgogICAgcmV0dXJuICRuZXdvZmZlcjsKICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cart_helper.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENhcnQyOwoKY2xhc3MgY2FydF9oZWxwZXIgaW1wbGVtZW50cyBcQ0dFY29tbWVyY2VCYXNlXHNob3BwaW5nX2NhcnRfbWdyCnsKICAgIHByaXZhdGUgJF9tb2Q7CiAgICBwcml2YXRlICRfaXRlbXM7CiAgICBwcml2YXRlICRfY2FsY3VsYXRlZDsKICAgIHByaXZhdGUgJF9zdWJ0b3RhbDsKICAgIHByaXZhdGUgJF90b3RhbDsKICAgIHByaXZhdGUgJF93ZWlnaHQ7CiAgICBwcml2YXRlICRfbnVtaXRlbXM7CiAgICBwcml2YXRlICRfa2V5OwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggXENhcnQyICRtb2QgKQogICAgewogICAgICAgICR0aGlzLT5fbW9kID0gJG1vZDsKICAgICAgICAkdGhpcy0+X2tleSA9IG1kNShfX0ZJTEVfXyk7CiAgICAgICAgJHRoaXMtPl9pdGVtcyA9IGFycmF5KCk7CiAgICAgICAgJHRoaXMtPl9jYWxjdWxhdGVkID0gMDsKICAgICAgICAkdGhpcy0+X3N1YnRvdGFsID0gMDsKICAgICAgICAkdGhpcy0+X3RvdGFsID0gMDsKICAgICAgICAkdGhpcy0+X3dlaWdodCA9IDA7CiAgICAgICAgJHRoaXMtPl9udW1pdGVtcyA9IDA7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIEdldE5hbWUoKSB7IHJldHVybiAkdGhpcy0+X21vZC0+R2V0TmFtZSgpOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gSXNDb25maWd1cmVkKCkgeyByZXR1cm4gVFJVRTsgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBTdXBwb3J0c1NoaXBwaW5nSW5mbygpIHsgcmV0dXJuIEZBTFNFOyB9CgogICAgLyoqCiAgICAgKiBFcmFzZSB0aGUgZW50aXJlIGNvbnRlbnRzIG9mIHRoZSBjYXJ0LgogICAgICoKICAgICAqIEBpbnRlcm5hbAogICAgICogQGlnbm9yZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gRXJhc2VDYXJ0KCRhZGRkYXRhID0gJycpCiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCRfU0VTU0lPTlskdGhpcy0+X2tleV0pICkgewogICAgICAgICAgICBcY2dfZWNvbW1fY2FydDo6b25fY2FydF9hZGp1c3RlZCgnYmVmb3JlJywkYWRkZGF0YSk7CiAgICAgICAgICAgIHVuc2V0KCRfU0VTU0lPTlskdGhpcy0+X2tleV0pOwogICAgICAgICAgICAkdGhpcy0+X2l0ZW1zID0gYXJyYXkoKTsKICAgICAgICAgICAgJHRoaXMtPl9jYWxjdWxhdGVkID0gMDsKICAgICAgICAgICAgXGNnX2Vjb21tX2NhcnQ6Om9uX2NhcnRfYWRqdXN0ZWQoJ2FmdGVyJywkYWRkZGF0YSk7CiAgICAgICAgfQogICAgfQoKCiAgICAvKioKICAgICAqIENhbGN1bGF0ZSBhbmQgc3RvcmUgKHRlbXBvcmFyaWx5KSBhbnkgY2FydCBtZXRhZGF0YQogICAgICoKICAgICAqIEBpbnRlcm5hbAogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gX2NhbGN1bGF0ZV9jYXJ0X21ldGFkYXRhKCRmb3JjZSA9IDApCiAgICB7CiAgICAgICAgJGdDbXMgPSBjbXNtcygpOwogICAgICAgICRzbWFydHkgPSAkZ0Ntcy0+R2V0U21hcnR5KCk7CiAgICAgICAgY2xhc3NfZXhpc3RzKCdcY2dfZWNvbW1fcHJvZHVjdGluZm8nKTsgLy8gZm9yY2UgdGhlIHByb2R1Y3QgaW5mbyBzdHVmZiB0byBiZSBsb2FkZWQuCgogICAgICAgIGlmKCAkdGhpcy0+X2NhbGN1bGF0ZWQgPT0gMSApIHJldHVybjsKICAgICAgICBpZiggY291bnQoJHRoaXMtPl9pdGVtcykgPT0gMCB8fCAkZm9yY2UgPT0gMSkgJHRoaXMtPl9leHBhbmRfY2FydCgpOwoKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2N1cnJlbmN5c3ltYm9sJyxcY2dfZWNvbW06OmdldF9jdXJyZW5jeV9zeW1ib2woKSk7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCd3ZWlnaHR1bml0cycsXGNnX2Vjb21tOjpnZXRfd2VpZ2h0X3VuaXRzKCkpOwoKICAgICAgICAkdGhpcy0+X3dlaWdodCA9IDA7CiAgICAgICAgJHRoaXMtPl9zdWJ0b3RhbCA9IDA7CiAgICAgICAgJHRoaXMtPl90b3RhbCA9IDA7CiAgICAgICAgJHRoaXMtPl9udW1pdGVtcyA9IDA7CiAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRoaXMtPl9pdGVtcyk7ICRpKysgKSB7CiAgICAgICAgICAgICRvYmogPSYgJHRoaXMtPl9pdGVtc1skaV07CgogICAgICAgICAgICAvLyBhZGp1c3QgbWV0YWRhdGEuCiAgICAgICAgICAgICR0aGlzLT5fc3VidG90YWwgKz0gJG9iai0+Z2V0X3VuaXRfcHJpY2UoKSAqICRvYmotPmdldF9xdWFudGl0eSgpOwogICAgICAgICAgICAkdGhpcy0+X3RvdGFsICs9ICRvYmotPmdldF9pdGVtX3RvdGFsKCk7CiAgICAgICAgICAgICR0aGlzLT5fd2VpZ2h0ICs9ICRvYmotPmdldF91bml0X3dlaWdodCgpICogJG9iai0+Z2V0X3F1YW50aXR5KCk7CiAgICAgICAgICAgICR0aGlzLT5fbnVtaXRlbXMgKz0gJG9iai0+Z2V0X3F1YW50aXR5KCk7CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+X2NhbGN1bGF0ZWQgPSAxOwogICAgfQoKCiAgICAvKioKICAgICAqIFJldHVybiB0aGUgY29udGVudHMgb2YgdGhlIG5hbWVkIGJhc2tldC4KICAgICAqIFRoaXMgbW9kdWxlIGRvZXMgbm90IHN1cHBvcnQgbW9yZSB0aGFuIG9uZSBiYXNrZXQuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyBUaGUgYmFza2V0IG5hbWUKICAgICAqIEBwYXJhbSBpbnRlZ2VyIFRoZSBmZXUgdWlkCiAgICAgKiBAcmV0dXJuIGFycmF5IG9mIGNnX2Vjb21tX2NhcnRpdGVtIG9iamVjdHMuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRCYXNrZXRJdGVtcygkbmFtZSwkZmV1X3VpZCA9IC0xKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+R2V0SXRlbXMoKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiBzaGlwcGluZyBpbmZvcm1hdGlvbiBhbmQgbWV0YSBkYXRhIGFib3V0IGEgYmFza2V0CiAgICAgKiBUaGlzIG1vZHVsZSBvbmx5IHN1cHBvcnRzIG9uZSBiYXNrZXQKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nIFRoZSBiYXNrZXQgbmFtZQogICAgICogQHBhcmFtIGludGVnZXIgVGhlIEZFVSB1c2VyaWQKICAgICAqIEByZXR1cm4gbWl4ZWQgSGFzaCBjb250YWluaW5nIGFkZHJlc3MgaW5mb3JtYXRpb24sIHN1YnRvdGFsLCB0b3RhbCwgd2VpZ2h0IHZhbHVlcwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0QmFza2V0RGV0YWlscygkbmFtZSwkZmV1X3VpZCA9IC0xKQogICAgewogICAgICAgICR0aGlzLT5fY2FsY3VsYXRlX2NhcnRfbWV0YWRhdGEoKTsKICAgICAgICAkcmVzdWx0ID0gYXJyYXkoKTsKICAgICAgICAkcmVzdWx0WydjYXJ0X25hbWUnXSA9ICR0aGlzLT5fbW9kLT5MYW5nKCdjYXJ0Jyk7CiAgICAgICAgJHJlc3VsdFsnZGVzdF9maXJzdF9uYW1lJ10gPSAnLS0gbm90IGVudGVyZWQgLS0nOyAvLyB3aGF0J3MgdGhpcyBmb3I/CiAgICAgICAgJHJlc3VsdFsnc3VidG90YWwnXSA9ICR0aGlzLT5fc3VidG90YWw7CiAgICAgICAgJHJlc3VsdFsndG90YWwnXSA9ICR0aGlzLT5fdG90YWw7CiAgICAgICAgJHJlc3VsdFsnd2VpZ2h0J10gPSAkdGhpcy0+X3dlaWdodDsKICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KCgogICAgLyoqCiAgICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgYmFza2V0IG5hbWVzLgogICAgICogVGhpcyBtb2R1bGUgb25seSBzdXBwb3J0cyBvbmUgYmFza2V0LgogICAgICoKICAgICAqIEBwYXJhbSBpbnRlZ2VyIHRoZSBGRVUgVXNlciBpZC4KICAgICAqIEByZXR1cm4gYXJyYXkgb2Ygc3RyaW5ncwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0QmFza2V0TmFtZXMoJGZldV91aWQ9JycpCiAgICB7CiAgICAgICAgLy8gdGhpcyBtb2R1bGUgZG9lcyBub3Qgc3VwcG9ydCBuYW1pbmcgYmFza2V0cy4KICAgICAgICByZXR1cm4gWyAkdGhpcy0+X21vZC0+TGFuZygnbXlfaXRlbXMnKSBdOwogICAgfQoKCiAgICAvKioKICAgICAqIEdldCB0aGUgbnVtYmVyIG9mIGJhc2tldHMgY3VycmVudGx5IGNyZWF0ZWQKICAgICAqIFRoaXMgbW9kdWxlIG9ubHkgc3VwcG9ydHMgb25lIGJhc2tldC4KICAgICAqCiAgICAgKiBAcmV0dXJuIGludGVnZXIKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldE51bUJhc2tldHMoKQogICAgewogICAgICAgIHJldHVybiAxOwogICAgfQoKCiAgICAvKioKICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIGNhcnQgKG5vdCBpbmNsdWRpbmcgcXVhbnRpdGllcykKICAgICAqCiAgICAgKiBAcmV0dXJuIGludGVnZXIKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldE51bUl0ZW1zKCkKICAgIHsKICAgICAgICAkdGhpcy0+X2NhbGN1bGF0ZV9jYXJ0X21ldGFkYXRhKCk7CiAgICAgICAgcmV0dXJuIGNvdW50KCR0aGlzLT5faXRlbXMpOwogICAgfQoKCiAgICAvKioKICAgICAqIEdldCB0aGUgc3VidG90YWwgb2YgdGhlIGNvc3Qgb2YgYWxsIG9mIHRoZSBpdGVtcyBpbiB0aGUgY2FydAogICAgICogdGFraW5nIGludG8gYWNjb3VudCBxdWFudGl0aWVzLCBhbmQgYW55IHByaWNlIGFkanVzdG1lbnRzCiAgICAgKiBidXQgbm90IGluY2x1ZGluZyBhbnkgdGF4ZXMgb3Igc2hpcHBpbmcgY29zdHMuCiAgICAgKgogICAgICogQHJldHVybiBmbG9hdAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0VG90YWwoKQogICAgewogICAgICAgICR0aGlzLT5fY2FsY3VsYXRlX2NhcnRfbWV0YWRhdGEoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPl90b3RhbDsKICAgIH0KCgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHRvdGFsIHdlaWdodCBvZiB0aGUgb3JkZXIuIFVuaXQgb2Ygd2VpZ2h0IGlzIGRldGVybWluZWQgYnkgdGhlIHByb2R1Y3RzIG1vZHVsZQogICAgICoKICAgICAqIEByZXR1cm4gZmxvYXQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldFRvdGFsV2VpZ2h0KCkKICAgIHsKICAgICAgICAkdGhpcy0+X2NhbGN1bGF0ZV9jYXJ0X21ldGFkYXRhKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fd2VpZ2h0OwogICAgfQoKCiAgICAvKioKICAgICAqIERvZXMgdGhpcyBtb2R1bGUgc3VwcG9ydCBtdWx0aXBsZSBiYXNrZXRzID8KICAgICAqCiAgICAgKiBAcmV0dXJuIGJvb2wKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFN1cHBvcnRzTXVsdGlwbGVCYXNrZXRzKCkgeyByZXR1cm4gRkFMU0U7IH0KCiAgICAvKioKICAgICAqIEV4cGFuZCB0aGUgY2FydAogICAgICoKICAgICAqIEBpbnRlcm5hbAogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gX2V4cGFuZF9jYXJ0KCkKICAgIHsKICAgICAgICAkdGhpcy0+X2l0ZW1zID0gYXJyYXkoKTsKICAgICAgICBpZiggIWlzc2V0KCRfU0VTU0lPTlskdGhpcy0+X2tleV0pICkgcmV0dXJuOwoKICAgICAgICAkdGhpcy0+X2l0ZW1zID0gdW5zZXJpYWxpemUoYmFzZTY0X2RlY29kZSgkX1NFU1NJT05bJHRoaXMtPl9rZXldKSk7CiAgICAgICAgJHRoaXMtPl9jYWxjdWxhdGVkID0gMDsKICAgICAgICAkdGhpcy0+X3N1YnRvdGFsID0gMDsKICAgICAgICAkdGhpcy0+X3RvdGFsID0gMDsKICAgICAgICAkdGhpcy0+X3dlaWdodCA9IDA7CiAgICAgICAgJHRoaXMtPl9udW1pdGVtcyA9IDA7CiAgICB9CgoKICAgIC8qKgogICAgICogQ29sbGFwc2UgdGhlIGNhcnQKICAgICAqCiAgICAgKiBAaW50ZXJuYWwKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9jb2xsYXBzZV9jYXJ0KCRpdGVtcyA9IGFycmF5KCkpCiAgICB7CiAgICAgICAgaWYoIGNvdW50KCRpdGVtcykgPT0gMCApICRpdGVtcyA9JiAkdGhpcy0+X2l0ZW1zOwoKICAgICAgICAkZGF0YSA9IGJhc2U2NF9lbmNvZGUoc2VyaWFsaXplKCRpdGVtcykpOwogICAgICAgICRfU0VTU0lPTlskdGhpcy0+X2tleV0gPSAkZGF0YTsKICAgIH0KCgogICAgLyoqCiAgICAgKiBBZGQgYW4gaXRlbSB0byB0aGUgbmFtZWQgY2FydAogICAgICoKICAgICAqIE5vdGU6IFRoaXMgbW9kdWxlIGlnbm9yZXMgdGhlIGJhc2tldF9uYW1lIHBhcmFtZXRlciBhcyB0aGVyZSBpcyBvbmx5IG9uZSBiYXNrZXQuCiAgICAgKgogICAgICogQHBhcmFtIGNnX2Vjb21tX2NhcnRpdGVtIFRoZSBjYXJ0IGl0ZW0gdG8gYWRkCiAgICAgKiBAcGFyYW0gc3RyaW5nIE9wdGlvbmFsIGJhc2tldCBuYW1lIChpZiB0aGUgYmFza2V0IGRvZXMgbm90IGV4aXN0IGl0IHdpbGwgYmUgY3JlYXRlZCkKICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gQWRkQ2FydEl0ZW0oXGNnX2Vjb21tX2NhcnRpdGVtICYkb2JqLCRiYXNrZXRfbmFtZSA9ICcnKQogICAgewogICAgICAgICR0aGlzLT5fZXhwYW5kX2NhcnQoKTsKCiAgICAgICAgJG1zZyA9ICcnOwogICAgICAgICRyZXMgPSBcY2dfZWNvbW1fY2FydDo6Y2hlY2tfY2FydGl0ZW1fdmFsaWQoJHRoaXMtPl9pdGVtcywkb2JqKTsKICAgICAgICBpZiggISRyZXMgKSB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdBdHRlbXB0IHRvIGFkZCBpbnZhbGlkIGNhcnQgaXRlbSB0byB0aGUgY2FydCcpOwoKICAgICAgICAvLyBzZXQgdGhlIHN1bW1hcnkgZm9yIHRoZSBpdGVtLiBpZiBpdCBkb2Vzbid0IGhhdmUgb25lLgogICAgICAgICRwcm9kdWN0ID0gbnVsbDsKICAgICAgICBpZiggJG9iai0+Z2V0X3R5cGUoKSA9PSAkb2JqOjpUWVBFX1BST0RVQ1QgJiYgJG9iai0+Z2V0X3N1bW1hcnkoKSA9PSAnJyApIHsKICAgICAgICAgICAgJHByb2R1Y3QgPSBcY2dfZWNvbW06OmdldF9wcm9kdWN0X2luZm8oJG9iai0+Z2V0X3NvdXJjZSgpLCRvYmotPmdldF9wcm9kdWN0X2lkKCkpOwogICAgICAgICAgICAkb2JqLT5zZXRfc3VtbWFyeShcY2dfZWNvbW1fY2FydDo6Y2FsY3VsYXRlX2NhcnRpdGVtX3N1bW1hcnkoJHByb2R1Y3QsJG9iai0+Z2V0X2F0dHJpYnV0ZXMoKSwkb2JqKSk7CiAgICAgICAgfQoKICAgICAgICAvLyBoZXJlIHdlIGNoZWNrIHRoZSBwb2xpY3kgb24gYWRkaW5nIHF1YW50aXRpZXMgb3IgYWRkaW5nIGEgbmV3IGl0ZW0uCiAgICAgICAgJGFkZGVkID0gZmFsc2U7CiAgICAgICAgJGlkeCA9IG51bGw7CiAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRoaXMtPl9pdGVtcyk7ICRpKysgKSB7CiAgICAgICAgICAgICRvbmUgPSYgJHRoaXMtPl9pdGVtc1skaV07CgogICAgICAgICAgICBpZiggJG9uZS0+Y29tcGFyZSgkb2JqKSApIHsKICAgICAgICAgICAgICAgIC8vIHRoZXkgYXJlIHRoZSBzYW1lIGl0ZW0uCiAgICAgICAgICAgICAgICAvLyBpbmNyZWFzZSB0aGUgcXVhbnRpdHkgYW5kIHBsYXkgd2l0aCB0aGUgdW5pdCBkaXNjb3VudCBpZiBhbnkuCgogICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgd2UgaGF2ZSB0aGlzIG1hbnkgYXZhaWxhYmxlLgogICAgICAgICAgICAgICAgJHF1YW50aXR5ID0gJG9uZS0+Z2V0X3F1YW50aXR5KCkrJG9iai0+Z2V0X3F1YW50aXR5KCk7CiAgICAgICAgICAgICAgICBpZiggJHByb2R1Y3QgJiYgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3dhdGNoX3FvaCcpICkgewogICAgICAgICAgICAgICAgICAgICRhdmFpbF9xdWFudGl0eSA9ICRwcm9kdWN0LT5nZXRfcW9oX2J5X3NrdSgkb2JqLT5nZXRfc2t1KCkpOwogICAgICAgICAgICAgICAgICAgIGlmKCAkcXVhbnRpdHkgPiAkYXZhaWxfcXVhbnRpdHkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBjYXJ0Ml9RT0hFeGNlcHRpb24oJHRoaXMtPl9tb2QtPkxhbmcoJ2Vycm9yX3F1YW50aXR5X25vdGF2YWlsYWJsZTInLCRvYmotPmdldF9xdWFudGl0eSgpLCRhdmFpbF9xdWFudGl0eSkpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkb25lLT5zZXRfcXVhbnRpdHkoJG9uZS0+Z2V0X3F1YW50aXR5KCkrJG9iai0+Z2V0X3F1YW50aXR5KCkpOwogICAgICAgICAgICAgICAgJGRpc2NvdW50ID0gbWluKCRvbmUtPmdldF91bml0X2Rpc2NvdW50KCksJG9iai0+Z2V0X3VuaXRfZGlzY291bnQoKSk7CiAgICAgICAgICAgICAgICAkb25lLT5zZXRfdW5pdF9kaXNjb3VudCgkZGlzY291bnQpOwogICAgICAgICAgICAgICAgJGlkeCA9ICRpOwogICAgICAgICAgICAgICAgJGFkZGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiggISRhZGRlZCApIHsKICAgICAgICAgICAgXGNnX2Vjb21tX2NhcnQ6OmJlZm9yZV9hZGRfY2FydGl0ZW0oJG9iaik7CiAgICAgICAgICAgICRpZHggPSBjb3VudCgkdGhpcy0+X2l0ZW1zKTsKICAgICAgICAgICAgJHRoaXMtPl9pdGVtc1tdID0gJG9iajsKICAgICAgICB9CgogICAgICAgICR0aGlzLT5fY2FsY3VsYXRlZCA9IDA7CiAgICAgICAgJHRoaXMtPl9jb2xsYXBzZV9jYXJ0KCk7CgogICAgICAgIC8vIG5vdGUgdGhpcyBjb3VsZCBiZSBkb25lIGJ5IGhhdmluZyBhIGNhcnQgYmFzZSBjbGFzcwogICAgICAgIC8vIG9yIGJ5IGxldHRpbmcgdGhlIGNnX2Vjb21tIHN0dWZmIGhhbmRsZSBhbGwgdGhlIGNhcnQgc3R1ZmYKICAgICAgICBcY2dfZWNvbW1fY2FydDo6b25fY2FydF9pdGVtX2FkZGVkKCRvYmopOwogICAgICAgIHJldHVybiAkaWR4OwogICAgfQoKICAgIC8qKgogICAgICogR2V0IGFsbCBvZiB0aGUgaXRlbXMgaW4gdGhlIGNhcnQKICAgICAqCiAgICAgKiBAcmV0dXJuIG1peGVkIGFycmF5IG9mIGNhcnQgaXRlbXMsIG9yIG51bGwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uICZHZXRJdGVtcygpCiAgICB7CiAgICAgICAgJHRoaXMtPl9jYWxjdWxhdGVfY2FydF9tZXRhZGF0YSgpOwogICAgICAgIHJldHVybiAkdGhpcy0+X2l0ZW1zOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IGFsbCBpdGVtcyBpbnRvIHRoZSBjYXJ0CiAgICAgKgogICAgICogQHBhcmFtIGFycmF5IG9mIGNnX2Vjb21tX2NhcnRpdGVtIG9iamVjdHMKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldEl0ZW1zKCRpdGVtcykKICAgIHsKICAgICAgICBpZiggaXNfYXJyYXkoJGl0ZW1zKSApIHsKICAgICAgICAgICAgXGNnX2Vjb21tX2NhcnQ6Om9uX2NhcnRfYWRqdXN0ZWQoJ2JlZm9yZScpOwogICAgICAgICAgICAkdGhpcy0+X2l0ZW1zID0gJGl0ZW1zOwogICAgICAgICAgICAkdGhpcy0+X2NhbGN1bGF0ZWQgPSAwOwogICAgICAgICAgICAkdGhpcy0+X2NvbGxhcHNlX2NhcnQoKTsKICAgICAgICAgICAgXGNnX2Vjb21tX2NhcnQ6Om9uX2NhcnRfYWRqdXN0ZWQoJ2FmdGVyJyk7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIHRoZSBIVE1MIGZvcm0gZm9yIGFkZGluZyBhbiBpdGVtIHRvIHRoZSBjYXJ0CiAgICAgKgogICAgICogQHBhcmFtIGhhc2ggb2YgZm9ybSBwYXJhbWV0ZXJzCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2FkZHRvY2FydF9mb3JtKCRwYXJhbXMpCiAgICB7CiAgICAgICAgQG9iX3N0YXJ0KCk7CiAgICAgICAgJHRoaXMtPkRvQWN0aW9uQmFzZSgnZGVmYXVsdCcsJ3Rlc3QnLCRwYXJhbXMpOwogICAgICAgICR0bXAgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7CiAgICAgICAgQG9iX2VuZF9jbGVhbigpOwogICAgICAgIHJldHVybiAkdG1wOwogICAgfQoKICAgIC8qKgogICAgICogQ2hlY2sgaWYgYW4gaXRlbSB3aXRoIHRoZSBzYW1lIHNvdXJjZSBhbmQgcHJvZHVjdCBpZCBleGlzdHMgaW4gdGhlIGNhcnQKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nIFRoZSBzdXBwbGllciBtb2R1bGUgbmFtZQogICAgICogQHBhcmFtIGludGVnZXIgVGhlIHByb2R1Y3QgaWQKICAgICAqIEBwYXJhbSBudWxsIGlnbm9yZWQKICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gY2hlY2tfaXRlbWlkX2V4aXN0cygkc291cmNlLCRwcm9kdWN0LCRleHRyYSA9IG51bGwpCiAgICB7CiAgICAgICAgaWYoICEkc291cmNlICkgcmV0dXJuIEZBTFNFOwogICAgICAgIGlmKCAkcHJvZHVjdCA8PSAwICkgcmV0dXJuIEZBTFNFOwoKICAgICAgICAkdGhpcy0+X2V4cGFuZF9jYXJ0KCk7CiAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRoaXMtPl9pdGVtcyk7ICRpKysgKSB7CiAgICAgICAgICAgICRpdGVtID0mICR0aGlzLT5faXRlbXNbJGldOwogICAgICAgICAgICBpZiggJGl0ZW0tPmdldF9zb3VyY2UoKSA9PSAkc291cmNlICYmICRpdGVtLT5nZXRfcHJvZHVjdF9pZCgpID09ICRwcm9kdWN0ICkgcmV0dXJuIFRSVUU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCgogICAgLyoqCiAgICAgKiBDaGVjayBpZiBhbiBpdGVtIHdpdGggdGhlIHNwZWNpZmllZCBTS1UgZXhpc3RzIGluIHRoZSBjYXJ0LgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgVGhlIHN1cHBsaWVyIG1vZHVsZSBuYW1lCiAgICAgKiBAcGFyYW0gc3RyaW5nIFRoZSBTS1UKICAgICAqIEBwYXJhbSBudWxsIGlnbm9yZWQKICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gY2hlY2tfc2t1X2V4aXN0cygkc291cmNlLCRza3UsJGV4dHJhID0gbnVsbCkKICAgIHsKICAgICAgICBpZiggISRzb3VyY2UgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgaWYoICEkc2t1ICkgcmV0dXJuIEZBTFNFOwoKICAgICAgICAkdGhpcy0+X2V4cGFuZF9jYXJ0KCk7CiAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRoaXMtPl9pdGVtcyk7ICRpKysgKSB7CiAgICAgICAgICAgICRpdGVtID0mICR0aGlzLT5faXRlbXNbJGldOwogICAgICAgICAgICBpZiggJGl0ZW0tPmdldF9zb3VyY2UoKSA9PSAkc291cmNlICYmICRpdGVtLT5nZXRfc2t1KCkgPT0gJHNrdSApIHJldHVybiBUUlVFOwogICAgICAgIH0KICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9Cgp9IC8vIGVuZCBvZiBjbGFzcy4=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENhcnQgLSBBIHNpbXBsZSBleGFtcGxlIGZyb250ZW5kIGZvcm0gbW9kdWxlCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiR0cGwgPSA8PDxFT1QKICB7c3RyaXB9e1wkb3B0LT50ZXh0fTombmJzcDt7XCRjdXJyZW5jeV9zeW1ib2x9e1wkcHJpY2V8YXNfbnVtOjJ9e2lmIFwkZGlzY291bnQgbmUgJyd9Jm5ic3A7KHtcJG1vZC0+TGFuZygneW91c2F2ZScpfSB7XCRjdXJyZW5jeV9zeW1ib2x9e1wkZGlzY291bnR8YXNfbnVtOjJ9KXsvaWZ9CiAge2lmIFwkb3B0LT5xb2ggPiAwfSAtLSB7XCRvcHQtPnFvaH0ge1wkbW9kLT5MYW5nKCdhdmFpbGFibGUnKX17L2lmfXsvc3RyaXB9CkVPVDsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ29wdGlvbl90ZW1wbGF0ZScsJHRwbCk7Cgp7CiAgICAkY3JlYXRlX3RlbXBsYXRlX3R5cGUgPSBmdW5jdGlvbigkdHlwZV9uYW1lLCRtb2QpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICAkdHBsX3R5cGUgPSBuZXcgXENtc0xheW91dFRlbXBsYXRlVHlwZSgpOwogICAgICAgICAgICAkdHBsX3R5cGUtPnNldF9vcmlnaW5hdG9yKCR0aGlzLT5HZXROYW1lKCkpOwogICAgICAgICAgICAkdHBsX3R5cGUtPnNldF9kZmx0X2ZsYWcoKTsKICAgICAgICAgICAgJHRwbF90eXBlLT5zZXRfbmFtZSgkdHlwZV9uYW1lKTsKICAgICAgICAgICAgJHRwbF90eXBlLT5zZXRfbGFuZ19jYWxsYmFjaygkdGhpcy0+R2V0TmFtZSgpLic6OnRwbF90eXBlX2xhbmdfY2InKTsKICAgICAgICAgICAgJHRwbF90eXBlLT5zZXRfY29udGVudF9jYWxsYmFjaygkdGhpcy0+R2V0TmFtZSgpLic6OnRwbF90eXBlX3Jlc2V0X2NiJyk7CiAgICAgICAgICAgICR0cGxfdHlwZS0+cmVzZXRfY29udGVudF90b19mYWN0b3J5KCk7CiAgICAgICAgICAgICR0cGxfdHlwZS0+c2F2ZSgpOwogICAgICAgIH0KICAgICAgICBjYXRjaCggXENtc0V4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgXGNnZV91dGlsczo6bG9nX2V4Y2VwdGlvbigkZSk7CiAgICAgICAgICAgIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ0luc3RhbGwgZXJyb3I6ICcuJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAgICAgfQoKICAgICAgICAkdHBsX3R5cGUgPSBcQ21zTGF5b3V0VGVtcGxhdGVUeXBlOjpsb2FkKCR0aGlzLT5HZXROYW1lKCkuJzo6Jy4kdHlwZV9uYW1lKTsKICAgICAgICByZXR1cm4gJHRwbF90eXBlOwogICAgfTsKCiAgICAkY3JlYXRlX3RlbXBsYXRlX29mX3R5cGUgPSBmdW5jdGlvbigkdHlwZV9vYiwkZGZsdCA9IHRydWUpIHsKICAgICAgICAkbmFtZSA9ICdDYXJ0MiBTYW1wbGUgJy4kdHlwZV9vYi0+Z2V0X25hbWUoKTsKICAgICAgICAkb2IgPSBuZXcgXENtc0xheW91dFRlbXBsYXRlKCk7CiAgICAgICAgJG9iLT5zZXRfdHlwZSggJHR5cGVfb2IgKTsKICAgICAgICAkb2ItPnNldF9jb250ZW50KCAkdHlwZV9vYi0+Z2V0X2RmbHRfY29udGVudHMoKSApOwogICAgICAgICRvYi0+c2V0X293bmVyKCBnZXRfdXNlcmlkKCkgKTsKICAgICAgICAkb2ItPnNldF90eXBlX2RmbHQoICRkZmx0ICk7CiAgICAgICAgJG5ld19uYW1lID0gJG9iLT5nZW5lcmF0ZV91bmlxdWVfbmFtZSggJG5hbWUgKTsKICAgICAgICAkb2ItPnNldF9uYW1lKCAkbmV3X25hbWUgKTsKICAgICAgICAkb2ItPnNhdmUoKTsKICAgIH07CgogICAgJGFkZHRvY2FydF90eXBlID0gJGNyZWF0ZV90ZW1wbGF0ZV90eXBlKCdBZGQgdG8gQ2FydCBGb3JtJywkdGhpcyk7CiAgICAkY3JlYXRlX3RlbXBsYXRlX29mX3R5cGUoICRhZGR0b2NhcnRfdHlwZSApOwogICAgJHZpZXdjYXJ0X3R5cGUgPSAkY3JlYXRlX3RlbXBsYXRlX3R5cGUoJ1ZpZXcgQ2FydCBGb3JtJywkdGhpcyk7CiAgICAkY3JlYXRlX3RlbXBsYXRlX29mX3R5cGUoICR2aWV3Y2FydF90eXBlICk7CiAgICAkbXljYXJ0X3R5cGUgPSAkY3JlYXRlX3RlbXBsYXRlX3R5cGUoJ015IENhcnQgRm9ybScsJHRoaXMpOwogICAgJGNyZWF0ZV90ZW1wbGF0ZV9vZl90eXBlKCAkbXljYXJ0X3R5cGUgKTsKICAgICR0aGlzLT5EZWxldGVUZW1wbGF0ZSgpOwp9CgokdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oVFJVRSk7CgovLyBFT0YK]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENhcnQgLSBBIHNpbXBsZSBleGFtcGxlIGZyb250ZW5kIGZvcm0gbW9kdWxlCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKClxDR0Vjb21tZXJjZUJhc2Vcc2V0dXBfbWFuYWdlcjo6dW5zZXRfc2hvcHBpbmdfY2FydF9tZ3IoICR0aGlzLT5HZXROYW1lKCkgKTsKJHRoaXMtPkRlbGV0ZVRlbXBsYXRlKCk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCk7CiR0aGlzLT5SZW1vdmVTbWFydHlQbHVnaW4oKTsKCnRyeSB7CiAgICAkdHlwZXMgPSBDbXNMYXlvdXRUZW1wbGF0ZVR5cGU6OmxvYWRfYWxsX2J5X29yaWdpbmF0b3IoJHRoaXMtPkdldE5hbWUoKSk7CiAgICBpZiggaXNfYXJyYXkoJHR5cGVzKSAmJiBjb3VudCgkdHlwZXMpICkgewogICAgICAgIGZvcmVhY2goICR0eXBlcyBhcyAkdHlwZSApIHsKICAgICAgICAgICAgJHRlbXBsYXRlcyA9ICR0eXBlLT5nZXRfdGVtcGxhdGVfbGlzdCgpOwogICAgICAgICAgICBpZiggaXNfYXJyYXkoJHRlbXBsYXRlcykgJiYgY291bnQoJHRlbXBsYXRlcykgKSB7CiAgICAgICAgICAgICAgICBmb3JlYWNoKCAkdGVtcGxhdGVzIGFzICR0ZW1wbGF0ZSApIHsKICAgICAgICAgICAgICAgICAgICAkdGVtcGxhdGUtPmRlbGV0ZSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICR0eXBlLT5kZWxldGUoKTsKICAgICAgICB9CiAgICB9Cn0KY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsKICAgIC8vIGxvZyBpdAogICAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnVW5pbnN0YWxsIEVycm9yOiAnLiRlLT5HZXRNZXNzYWdlKCkpOwp9CgovLyBFT0YK]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENhcnQgLSBBIHNpbXBsZSBleGFtcGxlIGZyb250ZW5kIGZvcm0gbW9kdWxlCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiRjdXJyZW50X3ZlcnNpb24gPSAkb2xkdmVyc2lvbjsKLy8gJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwovLyAkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoKCmlmKCB2ZXJzaW9uX2NvbXBhcmUoJGN1cnJlbnRfdmVyc2lvbiwnMS4wLjYnKSA8IDAgKSB7CiAgJHRoaXMtPlJlZ2lzdGVyTW9kdWxlUGx1Z2luKFRSVUUpOwp9CgppZiggdmVyc2lvbl9jb21wYXJlKCRjdXJyZW50X3ZlcnNpb24sJzEuMycpIDwgMCApIHsKICAgICRjcmVhdGVfdGVtcGxhdGVfdHlwZSA9IGZ1bmN0aW9uKCR0eXBlX25hbWUsJG1vZCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgICR0cGxfdHlwZSA9IG5ldyBcQ21zTGF5b3V0VGVtcGxhdGVUeXBlKCk7CiAgICAgICAgICAgICR0cGxfdHlwZS0+c2V0X29yaWdpbmF0b3IoJHRoaXMtPkdldE5hbWUoKSk7CiAgICAgICAgICAgICR0cGxfdHlwZS0+c2V0X2RmbHRfZmxhZygpOwogICAgICAgICAgICAkdHBsX3R5cGUtPnNldF9uYW1lKCR0eXBlX25hbWUpOwogICAgICAgICAgICAkdHBsX3R5cGUtPnNldF9sYW5nX2NhbGxiYWNrKCR0aGlzLT5HZXROYW1lKCkuJzo6dHBsX3R5cGVfbGFuZ19jYicpOwogICAgICAgICAgICAkdHBsX3R5cGUtPnNldF9jb250ZW50X2NhbGxiYWNrKCR0aGlzLT5HZXROYW1lKCkuJzo6dHBsX3R5cGVfcmVzZXRfY2InKTsKICAgICAgICAgICAgJHRwbF90eXBlLT5yZXNldF9jb250ZW50X3RvX2ZhY3RvcnkoKTsKICAgICAgICAgICAgJHRwbF90eXBlLT5zYXZlKCk7CiAgICAgICAgfQogICAgICAgIGNhdGNoKCBcQ21zRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICBcY2dlX3V0aWxzOjpsb2dfZXhjZXB0aW9uKCRlKTsKICAgICAgICAgICAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnSW5zdGFsbCBlcnJvcjogJy4kZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICB9CgogICAgICAgICR0cGxfdHlwZSA9IFxDbXNMYXlvdXRUZW1wbGF0ZVR5cGU6OmxvYWQoJHRoaXMtPkdldE5hbWUoKS4nOjonLiR0eXBlX25hbWUpOwogICAgICAgIHJldHVybiAkdHBsX3R5cGU7CiAgICB9OwoKICAgICRjcmVhdGVfdGVtcGxhdGVfb2ZfdHlwZSA9IGZ1bmN0aW9uKCR0eXBlX29iLCRkZmx0ID0gdHJ1ZSkgewogICAgICAgICRuYW1lID0gJ0NhcnQyIFNhbXBsZSAnLiR0eXBlX29iLT5nZXRfbmFtZSgpOwogICAgICAgICRvYiA9IG5ldyBcQ21zTGF5b3V0VGVtcGxhdGUoKTsKICAgICAgICAkb2ItPnNldF90eXBlKCAkdHlwZV9vYiApOwogICAgICAgICRvYi0+c2V0X2NvbnRlbnQoICR0eXBlX29iLT5nZXRfZGZsdF9jb250ZW50cygpICk7CiAgICAgICAgJG9iLT5zZXRfb3duZXIoIGdldF91c2VyaWQoKSApOwogICAgICAgICRvYi0+c2V0X3R5cGVfZGZsdCggJGRmbHQgKTsKICAgICAgICAkbmV3X25hbWUgPSAkb2ItPmdlbmVyYXRlX3VuaXF1ZV9uYW1lKCAkbmFtZSApOwogICAgICAgICRvYi0+c2V0X25hbWUoICRuZXdfbmFtZSApOwogICAgICAgICRvYi0+c2F2ZSgpOwogICAgfTsKCiAgICAkYWRkdG9jYXJ0X3R5cGUgPSAkY3JlYXRlX3RlbXBsYXRlX3R5cGUoJ0FkZCB0byBDYXJ0IEZvcm0nLCR0aGlzKTsKICAgICRjcmVhdGVfdGVtcGxhdGVfb2ZfdHlwZSggJGFkZHRvY2FydF90eXBlICk7CiAgICAkdmlld2NhcnRfdHlwZSA9ICRjcmVhdGVfdGVtcGxhdGVfdHlwZSgnVmlldyBDYXJ0IEZvcm0nLCR0aGlzKTsKICAgICRjcmVhdGVfdGVtcGxhdGVfb2ZfdHlwZSggJHZpZXdjYXJ0X3R5cGUgKTsKICAgICRteWNhcnRfdHlwZSA9ICRjcmVhdGVfdGVtcGxhdGVfdHlwZSgnTXkgQ2FydCBGb3JtJywkdGhpcyk7CiAgICAkY3JlYXRlX3RlbXBsYXRlX29mX3R5cGUoICRteWNhcnRfdHlwZSApOwogICAgJHRoaXMtPkRlbGV0ZVRlbXBsYXRlKCk7Cn0KCi8vIEVPRgo=]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9ICJDYXJ0MiIKdmVyc2lvbiA9ICIxLjQuMiIKYXV0aG9yID0gImNhbGd1eTEwMDAiCmF1dGhvcmVtYWlsID0gImNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciCm1pbmNtc3ZlcnNpb24gPSAiMi4yLjIiCmxhenlsb2FkYWRtaW4gPSAxCmxhenlsb2FkZnJvbnRlbmQgPSAxCltkZXBlbmRzXQpDR0V4dGVuc2lvbnMgPSAiMS41Ni4yIgpDR0Vjb21tZXJjZUJhc2UgPSAiMS44LjUiCg==]]></data>
	</file>
	<file>
	  <filename>/skeleton.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENhcnQgLSBBIHNpbXBsZSBleGFtcGxlIGZyb250ZW5kIGZvcm0gbW9kdWxlCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCi8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_preferences_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Zvcm1fc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9hZGR0b2NhcnRfZGVzdHBhZ2V9PC9wPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRpbnB1dF9hZGR0b2NhcnRfZGVzdHBhZ2V9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfb3B0aW9uX3RlbXBsYXRlJyl9Jm5ic3A7e2NnZV9oZWxwdGFnIGtleT0nb3B0aW9uX3RlbXBsYXRlJ30KICA8cCBjbGFzcz0icGFnZXRleHQiPgogICAgPHRleHRhcmVhIHJvd3M9IjUiIGNvbHM9IjgwIiBuYW1lPSJ7JGFjdGlvbmlkfW9wdGlvbl90ZW1wbGF0ZSI+eyRvcHRpb25fdGVtcGxhdGV9PC90ZXh0YXJlYT4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF93YXRjaF9xb2gnKX0mbmJzcDt7Y2dlX2hlbHB0YWcga2V5PSd3YXRjaF9xb2gnfQogIDxwIGNsYXNzPSJwYWdldGV4dCI+CiAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPXdhdGNoX3FvaCBzZWxlY3RlZD0kd2F0Y2hfcW9ofQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zZXRhc2NhcnQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc2V0YXNjYXJ0Jyl9Ii8+CiAgPC9wPgo8L2Rpdj4Ke2Zvcm1fZW5kfQoKe2NnZV9oZWxwaGFuZGxlcn0KPGRpdiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgogIHtjZ2VfaGVscGNvbnRlbnQga2V5PSdvcHRpb25fdGVtcGxhdGUnIHRleHQ9JG1vZC0+TGFuZygnaGVscF9vcHRpb25fdGVtcGxhdGUnKX0KICB7Y2dlX2hlbHBjb250ZW50IGtleT0nd2F0Y2hfcW9oJyB0ZXh0PSRtb2QtPkxhbmcoJ2hlbHBfd2F0Y2hfcW9oJyl9CjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_addtocart_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogYWRkIHRvIGNhcnQgdGVtcGxhdGUgKn0Ke2lmIGlzc2V0KCRjYXJ0X2Vycm9yKX0Ke2NnZXJyb3J9eyRjYXJ0X2Vycm9yfXsvY2dlcnJvcn0Key9pZn0KCnskZm9ybXN0YXJ0fXtzdHJpcH0KPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskcXVhbnRpdHluYW1lfSIgdmFsdWU9IjEiIHNpemU9IjIiIG1heGxlbmd0aD0iMiIvPgp7aWYgaXNzZXQoJHNpbmdsZV9vcHRpb24pfQogIHsqIHRoaXMgaXMgdXNlZCBpZiB0aGUgc2t1IHBhc3NlZCB0byB0aGUgQ2FydDIgbW9kdWxlIHdhcyB0aGUgc2t1IG9mIGFuIG9wdGlvbiBvZiBhIHByb2R1Y3QgKn0KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWNhcnRfb3B0aW9ucyIgdmFsdWU9Inskc2luZ2xlX29wdGlvbn0iLz4KICAmbmJzcDtAIHtjZ2Vjb21tX2N1cnJlbmN5X3N5bWJvbH17JHVuaXRwcmljZXxhc19udW06Mn0Ke2Vsc2VpZiBpc3NldCgkb3B0aW9ucyl9CiAgeyogd2UgaGF2ZSBtdWx0aXBsZSBvcHRpb25zICp9CiAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWNhcnRfb3B0aW9ucyI+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JG9wdGlvbnN9CiAgPC9zZWxlY3Q+CntlbHNlfQogIHsqIG5vIG9wdGlvbnMgKn0KICAmbmJzcDtAIHtjZ2Vjb21tX2N1cnJlbmN5X3N5bWJvbH17JHVuaXRwcmljZXxhc19udW06Mn0Key9pZn0KPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRzdWJtaXRuYW1lfSIgdmFsdWU9InskYWRkdG9jYXJ0dGV4dH0iLz4Key9zdHJpcH17JGZvcm1lbmR9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_mycartform_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogbXljYXJ0IGZvcm0gdGVtcGxhdGUgKn0KeyRudW1pdGVtc3RleHR9OiZuYnNwO3skY2FydF9pdGVtY291bnR9PGJyLz4KeyRDYXJ0Mi0+TGFuZygnc3VidG90YWwnKX06Jm5ic3A7eyRjdXJyZW5jeV9zeW1ib2x9eyRjYXJ0X3RvdGFscHJpY2V8YXNfbnVtOjJ9Jm5ic3A7Cjxici8+KnskQ2FydDItPkxhbmcoJ2luZm9zdWJ0b3RhbCcpfQp7aWYgaXNzZXQoJHN1Ym1pdG5hbWUpfQogIHskZm9ybXN0YXJ0fQogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9Inskc3VibWl0bmFtZX0iIHZhbHVlPSJ7JGNoZWNrb3V0dGV4dH0iLz4KICB7JGZvcm1lbmR9CnsvaWZ9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_product_summary_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogcHJvZHVjdCBzdW1tYXJ5IHRlbXBsYXRlICp9CnsqIHVzZWQgZm9yIHN1bW1hcml6aW5nIHByb2R1Y3RzIGluIHZpZXcgY2FydCBmb3JtIHBhZ2UgKn0Ke3N0cmlwfQp7JG9uZXByb2R1Y3QucHJvZHVjdF9uYW1lfSZuYnNwOwp7Zm9yZWFjaCBmcm9tPSRtZXRhLT5hdHRyaWJ1dGVzIGl0ZW09J2F0dHJpYid9CiAgeyRhdHRyaWItPm5hbWV9Jm5ic3A7e2lmICRhdHRyaWItPmFkanVzdG1lbnQgIT0gMH17JGN1cnJlbmN5c3ltYm9sfSh7JGF0dHJpYi0+YWRqdXN0bWVudHxhc19udW06Mn0pey9pZn0mbmJzcDsKey9mb3JlYWNofQp7L3N0cmlwfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_viewcartform_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogdmlld2NhcnRmb3JtIHRlbXBsYXRlICp9CjxzdHlsZT4KLnZpZXdjYXJ0Zm9ybSB0aCB7CiAgdGV4dC1hbGlnbjogbGVmdDsKfQo8L3N0eWxlPgoKPGRpdiBjbGFzcz0idmlld2NhcnRmb3JtIj4KeyogaWYgdGhlIHNtYXJ0eSB2YXJpYWJsZSBvcmRlcnNfc2ltcGxldmlld2NhcnQgaXMgbm90IHNldCwgdGhlbiBkb24ndCBwcm92aWRlIGEgZm9ybSBmb3IgYWRqdXN0aW5nIHF1YW50aXRpZXMgKn0Ke2lmICFpc3NldCgkY2FydGl0ZW1zKSB8fCBjb3VudCgkY2FydGl0ZW1zKSA9PSAwIH0KICA8ZGl2IGNsYXNzPSJhbGVydCBhbGVydC13YXJuaW5nIj5Zb3VyIGNhcnQgaXMgZW1wdHk8L2Rpdj4Ke2Vsc2V9Cgp7aWYgaXNzZXQoJGZvcm1zdGFydCkgJiYgIWlzc2V0KCRvcmRlcnNfc2ltcGxldmlld2NhcnQpfXskZm9ybXN0YXJ0fXsvaWZ9Cjx0YWJsZSBjbGFzcz0idGFibGUiIHdpZHRoPSIxMDAlIj4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD57JENhcnQyLT5MYW5nKCdza3UnKX08L3RoPgogICAgICA8dGg+eyRDYXJ0Mi0+TGFuZygnc3VtbWFyeScpfTwvdGg+CiAgICAgIDx0aD57JENhcnQyLT5MYW5nKCdxdWFudGl0eScpfTwvdGg+CiAgICAgIDx0aD57JENhcnQyLT5MYW5nKCd1bml0X3ByaWNlJyl9PC90aD4KICAgICAgPHRoPnskQ2FydDItPkxhbmcoJ3VuaXRfZGlzY291bnQnKX08L3RoPgogICAgICA8dGg+eyRDYXJ0Mi0+TGFuZygndG90YWwnKX08L3RoPgogICAgICA8dGggd2lkdGg9IjElIj57JENhcnQyLT5MYW5nKCdyZW1vdmUnKX08L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICB7Zm9yZWFjaCBmcm9tPSRjYXJ0aXRlbXMgaXRlbT0nb25laXRlbSd9CiAgICA8dHI+CiAgICAgIDx0ZD57JG9uZWl0ZW0tPnNrdX08L3RkPgogICAgICA8dGQ+eyRvbmVpdGVtLT5zdW1tYXJ5fTwvdGQ+CiAgICAgIDx0ZD4KICAgICAgICAge2lmICRvbmVpdGVtLT50eXBlICE9IDEgfHwgIWlzc2V0KCRvbmVpdGVtLT5xdWFudGl0eV9ib3gpfQogICAgICAgICAgIHskb25laXRlbS0+cXVhbnRpdHl9CiAgICAgICAgIHtlbHNlfQogICAgICAgICAgIHskb25laXRlbS0+cXVhbnRpdHlfYm94fQogICAgICAgICB7L2lmfQogICAgICA8L3RkPgogICAgICA8dGQ+eyRjdXJyZW5jeXN5bWJvbH17JG9uZWl0ZW0tPnVuaXRfcHJpY2V8YXNfbnVtOjJ9PC90ZD4KICAgICAgPHRkPnskY3VycmVuY3lzeW1ib2x9eyRvbmVpdGVtLT51bml0X2Rpc2NvdW50fGFzX251bToyfTwvdGQ+CiAgICAgIDx0ZD57JGN1cnJlbmN5c3ltYm9sfXskb25laXRlbS0+aXRlbV90b3RhbHxhc19udW06Mn08L3RkPgogICAgICA8dGQ+e2lmIGlzc2V0KCRvbmVpdGVtLT5yZW1vdmVfYm94KX17JG9uZWl0ZW0tPnJlbW92ZV9ib3h9ey9pZn08L3RkPgogICAgPC90cj4KICB7L2ZvcmVhY2h9CiAgPC90Ym9keT4KICA8dGZvb3Q+CiAgICA8dHI+CiAgICAgIDx0ZCBjb2xzcGFuPSI1IiBhbGlnbj0icmlnaHQiPnskQ2FydDItPkxhbmcoJ3RvdGFsX3dlaWdodCcpfTo8L3RkPgogICAgICA8dGQ+eyRjYXJ0d2VpZ2h0fGFzX251bToyfXskd2VpZ2h0dW5pdHN9PC90ZD4KICAgICAgPHRkPjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgY29sc3Bhbj0iNSIgYWxpZ249InJpZ2h0Ij57JENhcnQyLT5MYW5nKCdzdWJ0b3RhbCcpfTo8YnI+CiAgICAgICAgICA8ZW0+KHskQ2FydDItPkxhbmcoJ2luZm9zdWJ0b3RhbCcpfSk8L2VtPgogICAgICA8L3RkPgogICAgICA8dGQ+eyRjdXJyZW5jeXN5bWJvbH17JGNhcnR0b3RhbHxhc19udW06Mn08L3RkPgogICAgICA8dGQ+PC90ZD4KICAgIDwvdHI+CiAgICB7aWYgaXNzZXQoJGZvcm1zdGFydCkgJiYgIWlzc2V0KCRvcmRlcnNfc2ltcGxldmlld2NhcnQpfQogICAgPHRyPgogICAgICA8dGQgY29sc3Bhbj0iNyI+CiAgICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRzdWJtaXRfbmFtZX0iIHZhbHVlPSJ7JHN1Ym1pdF90ZXh0fSIvPgogICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FydF9lbXB0eV9jYXJ0IiB2YWx1ZT0ieyRDYXJ0Mi0+TGFuZygnZW1wdHlfY2FydCcpfSIvPgogICAgICA8L3RkPgogICAgPC90cj4KICAgIHsvaWZ9CiAgPC90Zm9vdD4KPC90YWJsZT4KCntpZiBpc3NldCgkZm9ybXN0YXJ0KSAmJiAhaXNzZXQoJG9yZGVyc19zaW1wbGV2aWV3Y2FydCl9eyRmb3JtZW5kfXsvaWZ9CnsvaWZ9CjwvZGl2Pgo=]]></data>
	</file>
	<file>
	  <filename>/templates/table_viewcartform_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[cnRmb3JtIHRlbXBsYXRlICp9Cjx0YWJsZSBjbGFzcz0icGFnZXRhYmxlIiBjZWxsc3BhY2luZz0iMCI+CiAgPHRoZWFkPgogICAgIDx0cj4KICAgICAgICA8dGg+eyRtb2QtPkxhbmcoJ251bWJlcicpfTwvdGg+CiAgICAgICAgPHRoPnskbW9kLT5MYW5nKCdwcm9kdWN0X2lkJyl9PC90aD4KICAgICAgICA8dGg+eyRtb2QtPkxhbmcoJ2Rlc2NyaXB0aW9uJyl9PC90aD4KICAgICAgICA8dGg+eyRtb2QtPkxhbmcoJ3F1YW50aXR5Jyl9PC90aD4KICAgICAgICA8dGg+eyRtb2QtPkxhbmcoJ3VuaXRfcHJpY2UnKX08L3RoPiAKICAgICAgICA8dGg+eyRtb2QtPkxhbmcoJ3dlaWdodCcpfTwvdGg+CiAgICAgICAgPHRoPnskbW9kLT5MYW5nKCdhbW91bnQnKX08L3RoPgogICAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAge2ZvcmVhY2ggZnJvbT0kY2FydGl0ZW1zIGl0ZW09J29uZWl0ZW0nIG5hbWU9J2xvb3AnfQogICAge2N5Y2xlIHZhbHVlcz0icm93MSxyb3cyIiBhc3NpZ249J3Jvd2NsYXNzJ30KICAgIDx0ciBjbGFzcz0ieyRyb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc30nOyI+CiAgICAgICAgPHRkPnskc21hcnR5LmZvcmVhY2gubG9vcC5pbmRleH08L3RkPgogICAgICAgIDx0ZD57JG9uZWl0ZW0tPnByb2R1Y3RfaWR9PC90ZD4KICAgICAgICA8dGQ+eyRvbmVpdGVtLT5zdW1tYXJ5fTwvdGQ+CiAgICAgICAgPHRkPnskb25laXRlbS0+cXVhbnRpdHl9PC90ZD4KICAgICAgICA8dGQ+eyRvbmVpdGVtLT51bml0X3ByaWNlfGFzX251bToyfTwvdGQ+CiAgICAgICAgPHRkPnskb25laXRlbS0+d2VpZ2h0fTwvdGQ+CiAgICAgICA8dGQ+eyRjdXJyZW5jeXN5bWJvbH17JG9uZWl0ZW0tPnF1YW50aXR5KiRvbmVpdGVtLT51bml0X3ByaWNlfGFzX251bToyfTwvdGQ+CiAgICA8L3RyPgogIHsvZm9yZWFjaH0KICA8dHI+CiAgICAgPHRkIGNvbHNwYW49IjUiPjxzcGFuIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsiPnskbW9kLT5MYW5nKCdzdWJ0b3RhbCcpfTwvdGQ+CiAgICAgPHRkPnskY2FydHdlaWdodHxhc19udW06Mn17JHdlaWdodHVuaXRzfTwvdGQ+CiAgICAgPHRkPnskY3VycmVuY3lzeW1ib2x9eyRjYXJ0c3VidG90YWx8YXNfbnVtOjJ9PC90ZD4KICA8L3RyPgogIHtmb3JlYWNoIGZyb209JGNhcnR0YXhlcyBrZXk9J25hbWUnIGl0ZW09J2FtdCd9CiAgICB7aWYgIWVtcHR5KCRuYW1lKX0KICAgICAgPHRyPgogICAgICAgIDx0ZCBjb2xzcGFuPSI1Ij48c3BhbiBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7Ij57JG5hbWV9PC90ZD4KICAgICAgICA8dGQ+IDwvdGQ+CiAgICAgICAgPHRkPnskY3VycmVuY3lzeW1ib2x9eyRhbXR8YXNfbnVtOjJ9PC90ZD4KICAgICA8L3RyPgogICAgey9pZn0KICB7L2ZvcmVhY2h9CiAgPHRyPgogICAgPHRkIGNvbHNwYW49IjUiPjxzcGFuIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsiPnskbW9kLT5MYW5nKCd0b3RhbCcpfTwvdGQ+CiAgICA8dGQ+IDwvdGQ+CiAgICA8dGQ+eyRjdXJyZW5jeXN5bWJvbH17JGNhcnR0b3RhbHxhc19udW06Mn08L3RkPgogIDwvdHI+CiAgIDwvdGJvZHk+CjwvdGFibGU+Cgo=]]></data>
	</file>
</module>
